Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 21 from a total of 21 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Open Lock ETH An... | 15483221 | 861 days ago | IN | 0.001 ETH | 0.00586908 | ||||
Open Lock ETH An... | 15476386 | 862 days ago | IN | 0.1 ETH | 0.00391277 | ||||
Open Lock ETH An... | 15160646 | 911 days ago | IN | 85 ETH | 0.0119056 | ||||
Open Lock ETH An... | 14416415 | 1032 days ago | IN | 0.0051 ETH | 0.01261222 | ||||
Open Lock ETH An... | 14184230 | 1068 days ago | IN | 14 ETH | 0.0579105 | ||||
Open Lock ETH An... | 13851754 | 1119 days ago | IN | 9.2 ETH | 0.06847351 | ||||
Open Lock ETH An... | 13851624 | 1119 days ago | IN | 4.5 ETH | 0.05974357 | ||||
Open Lock ETH An... | 13803028 | 1126 days ago | IN | 3 ETH | 0.01783284 | ||||
Open Lock ETH An... | 13707472 | 1142 days ago | IN | 0.01 ETH | 0.08073866 | ||||
Open Lock ETH An... | 13485157 | 1177 days ago | IN | 11 ETH | 0.04938883 | ||||
Open Lock ETH An... | 13442176 | 1183 days ago | IN | 9 ETH | 0.07116639 | ||||
Open Lock ETH An... | 13410131 | 1188 days ago | IN | 110.2 ETH | 0.09055705 | ||||
Open Lock ETH An... | 13332960 | 1201 days ago | IN | 2.5 ETH | 0.03370036 | ||||
Open Lock ETH An... | 13254628 | 1213 days ago | IN | 0.01 ETH | 0.03294795 | ||||
Open Lock ETH An... | 13222819 | 1218 days ago | IN | 0.005 ETH | 0.066195 | ||||
Open Lock ETH An... | 13066070 | 1242 days ago | IN | 33 ETH | 0.01267231 | ||||
Open Lock ETH An... | 12889589 | 1269 days ago | IN | 8 ETH | 0.00656144 | ||||
Open Lock ETH An... | 12794766 | 1284 days ago | IN | 39 ETH | 0.00779171 | ||||
Open Lock ETH An... | 12769326 | 1288 days ago | IN | 0.001 ETH | 0.0127165 | ||||
Open Lock ETH An... | 12654670 | 1306 days ago | IN | 4 ETH | 0.00880373 | ||||
Open Lock ETH An... | 12638825 | 1308 days ago | IN | 0.00001 ETH | 0.00557303 |
Latest 21 internal transactions
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
15483221 | 861 days ago | 0.001 ETH | ||||
15476386 | 862 days ago | 0.1 ETH | ||||
15160646 | 911 days ago | 85 ETH | ||||
14416415 | 1032 days ago | 0.0051 ETH | ||||
14184230 | 1068 days ago | 14 ETH | ||||
13851754 | 1119 days ago | 9.2 ETH | ||||
13851624 | 1119 days ago | 4.5 ETH | ||||
13803028 | 1126 days ago | 3 ETH | ||||
13707472 | 1142 days ago | 0.01 ETH | ||||
13485157 | 1177 days ago | 11 ETH | ||||
13442176 | 1183 days ago | 9 ETH | ||||
13410131 | 1188 days ago | 110.2 ETH | ||||
13332960 | 1201 days ago | 2.5 ETH | ||||
13254628 | 1213 days ago | 0.01 ETH | ||||
13222819 | 1218 days ago | 0.005 ETH | ||||
13066070 | 1242 days ago | 33 ETH | ||||
12889589 | 1269 days ago | 8 ETH | ||||
12794766 | 1284 days ago | 39 ETH | ||||
12769326 | 1288 days ago | 0.001 ETH | ||||
12654670 | 1306 days ago | 4 ETH | ||||
12638825 | 1308 days ago | 0.00001 ETH |
Loading...
Loading
Contract Name:
BProxyActions
Compiler Version
v0.5.16+commit.9c3226ce
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-06-10 */ /** *Submitted for verification at Etherscan.io on 2021-05-12 */ /// DssProxyActions.sol // Copyright (C) 2018-2020 Maker Ecosystem Growth Holdings, INC. // 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; contract GemLike { function approve(address, uint) public; function transfer(address, uint) public; function transferFrom(address, address, uint) public; function deposit() public payable; function withdraw(uint) public; } contract ManagerLike { function cdpCan(address, uint, address) public view returns (uint); function ilks(uint) public view returns (bytes32); function owns(uint) public view returns (address); function urns(uint) public view returns (address); function vat() public view returns (address); function open(bytes32, address) public returns (uint); function give(uint, address) public; function cdpAllow(uint, address, uint) public; function urnAllow(address, uint) public; function frob(uint, int, int) public; function flux(uint, address, uint) public; function move(uint, address, uint) public; function exit(address, uint, address, uint) public; function quit(uint, address) public; function enter(address, uint) public; function shift(uint, uint) public; } contract VatLike { function can(address, address) public view returns (uint); function ilks(bytes32) public view returns (uint, uint, uint, uint, uint); function dai(address) public view returns (uint); function urns(bytes32, address) public view returns (uint, uint); function frob(bytes32, address, address, address, int, int) public; function hope(address) public; function move(address, address, uint) public; } contract GemJoinLike { function dec() public returns (uint); function gem() public returns (GemLike); function join(address, uint) public payable; function exit(address, uint) public; } contract GNTJoinLike { function bags(address) public view returns (address); function make(address) public returns (address); } contract DaiJoinLike { function vat() public returns (VatLike); function dai() public returns (GemLike); function join(address, uint) public payable; function exit(address, uint) public; } contract HopeLike { function hope(address) public; function nope(address) public; } contract EndLike { function fix(bytes32) public view returns (uint); function cash(bytes32, uint) public; function free(bytes32) public; function pack(uint) public; function skim(bytes32, address) public; } contract JugLike { function drip(bytes32) public returns (uint); } contract PotLike { function pie(address) public view returns (uint); function drip() public returns (uint); function join(uint) public; function exit(uint) public; } contract ProxyRegistryLike { function proxies(address) public view returns (address); function build(address) public returns (address); } contract ProxyLike { function owner() public view returns (address); } // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // WARNING: These functions meant to be used as a a library for a DSProxy. Some are unsafe if you call them directly. // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! contract Common { uint256 constant RAY = 10 ** 27; // Internal functions function mul(uint x, uint y) internal pure returns (uint z) { require(y == 0 || (z = x * y) / y == x, "mul-overflow"); } // Public functions function daiJoin_join(address apt, address urn, uint wad) public { // Gets DAI from the user's wallet DaiJoinLike(apt).dai().transferFrom(msg.sender, address(this), wad); // Approves adapter to take the DAI amount DaiJoinLike(apt).dai().approve(apt, wad); // Joins DAI into the vat DaiJoinLike(apt).join(urn, wad); } } contract DssProxyActions is Common { // Internal functions function sub(uint x, uint y) internal pure returns (uint z) { require((z = x - y) <= x, "sub-overflow"); } function toInt(uint x) internal pure returns (int y) { y = int(x); require(y >= 0, "int-overflow"); } function toRad(uint wad) internal pure returns (uint rad) { rad = mul(wad, 10 ** 27); } function convertTo18(address gemJoin, uint256 amt) internal returns (uint256 wad) { // For those collaterals that have less than 18 decimals precision we need to do the conversion before passing to frob function // Adapters will automatically handle the difference of precision wad = mul( amt, 10 ** (18 - GemJoinLike(gemJoin).dec()) ); } function _getDrawDart( address vat, address jug, address urn, bytes32 ilk, uint wad ) internal returns (int dart) { // Updates stability fee rate uint rate = JugLike(jug).drip(ilk); // Gets DAI balance of the urn in the vat uint dai = VatLike(vat).dai(urn); // If there was already enough DAI in the vat balance, just exits it without adding more debt if (dai < mul(wad, RAY)) { // Calculates the needed dart so together with the existing dai in the vat is enough to exit wad amount of DAI tokens dart = toInt(sub(mul(wad, RAY), dai) / rate); // This is neeeded due lack of precision. It might need to sum an extra dart wei (for the given DAI wad amount) dart = mul(uint(dart), rate) < mul(wad, RAY) ? dart + 1 : dart; } } function _getWipeDart( address vat, uint dai, address urn, bytes32 ilk ) internal view returns (int dart) { // Gets actual rate from the vat (, uint rate,,,) = VatLike(vat).ilks(ilk); // Gets actual art value of the urn (, uint art) = VatLike(vat).urns(ilk, urn); // Uses the whole dai balance in the vat to reduce the debt dart = toInt(dai / rate); // Checks the calculated dart is not higher than urn.art (total debt), otherwise uses its value dart = uint(dart) <= art ? - dart : - toInt(art); } function _getWipeAllWad( address vat, address usr, address urn, bytes32 ilk ) internal view returns (uint wad) { // Gets actual rate from the vat (, uint rate,,,) = VatLike(vat).ilks(ilk); // Gets actual art value of the urn (, uint art) = VatLike(vat).urns(ilk, urn); // Gets actual dai amount in the urn uint dai = VatLike(vat).dai(usr); uint rad = sub(mul(art, rate), dai); wad = rad / RAY; // If the rad precision has some dust, it will need to request for 1 extra wad wei wad = mul(wad, RAY) < rad ? wad + 1 : wad; } // Public functions function transfer(address gem, address dst, uint amt) public { GemLike(gem).transfer(dst, amt); } function ethJoin_join(address apt, address urn) public payable { // Wraps ETH in WETH GemJoinLike(apt).gem().deposit.value(msg.value)(); // Approves adapter to take the WETH amount GemJoinLike(apt).gem().approve(address(apt), msg.value); // Joins WETH collateral into the vat GemJoinLike(apt).join(urn, msg.value); } function gemJoin_join(address apt, address urn, uint amt, bool transferFrom) public { // Only executes for tokens that have approval/transferFrom implementation if (transferFrom) { // Gets token from the user's wallet GemJoinLike(apt).gem().transferFrom(msg.sender, address(this), amt); // Approves adapter to take the token amount GemJoinLike(apt).gem().approve(apt, amt); } // Joins token collateral into the vat GemJoinLike(apt).join(urn, amt); } function hope( address obj, address usr ) public { HopeLike(obj).hope(usr); } function nope( address obj, address usr ) public { HopeLike(obj).nope(usr); } function open( address manager, bytes32 ilk, address usr ) public returns (uint cdp) { cdp = ManagerLike(manager).open(ilk, usr); } function give( address manager, uint cdp, address usr ) public { ManagerLike(manager).give(cdp, usr); } function giveToProxy( address proxyRegistry, address manager, uint cdp, address dst ) public { // Gets actual proxy address address proxy = ProxyRegistryLike(proxyRegistry).proxies(dst); // Checks if the proxy address already existed and dst address is still the owner if (proxy == address(0) || ProxyLike(proxy).owner() != dst) { uint csize; assembly { csize := extcodesize(dst) } // We want to avoid creating a proxy for a contract address that might not be able to handle proxies, then losing the CDP require(csize == 0, "Dst-is-a-contract"); // Creates the proxy for the dst address proxy = ProxyRegistryLike(proxyRegistry).build(dst); } // Transfers CDP to the dst proxy give(manager, cdp, proxy); } function cdpAllow( address manager, uint cdp, address usr, uint ok ) public { ManagerLike(manager).cdpAllow(cdp, usr, ok); } function urnAllow( address manager, address usr, uint ok ) public { ManagerLike(manager).urnAllow(usr, ok); } function flux( address manager, uint cdp, address dst, uint wad ) public { ManagerLike(manager).flux(cdp, dst, wad); } function move( address manager, uint cdp, address dst, uint rad ) public { ManagerLike(manager).move(cdp, dst, rad); } function frob( address manager, uint cdp, int dink, int dart ) public { ManagerLike(manager).frob(cdp, dink, dart); } function quit( address manager, uint cdp, address dst ) public { ManagerLike(manager).quit(cdp, dst); } function enter( address manager, address src, uint cdp ) public { ManagerLike(manager).enter(src, cdp); } function shift( address manager, uint cdpSrc, uint cdpOrg ) public { ManagerLike(manager).shift(cdpSrc, cdpOrg); } function makeGemBag( address gemJoin ) public returns (address bag) { bag = GNTJoinLike(gemJoin).make(address(this)); } function lockETH( address manager, address ethJoin, uint cdp ) public payable { // Receives ETH amount, converts it to WETH and joins it into the vat ethJoin_join(ethJoin, address(this)); // Locks WETH amount into the CDP VatLike(ManagerLike(manager).vat()).frob( ManagerLike(manager).ilks(cdp), ManagerLike(manager).urns(cdp), address(this), address(this), toInt(msg.value), 0 ); } function safeLockETH( address manager, address ethJoin, uint cdp, address owner ) public payable { require(ManagerLike(manager).owns(cdp) == owner, "owner-missmatch"); lockETH(manager, ethJoin, cdp); } function lockGem( address manager, address gemJoin, uint cdp, uint amt, bool transferFrom ) public { // Takes token amount from user's wallet and joins into the vat gemJoin_join(gemJoin, address(this), amt, transferFrom); // Locks token amount into the CDP VatLike(ManagerLike(manager).vat()).frob( ManagerLike(manager).ilks(cdp), ManagerLike(manager).urns(cdp), address(this), address(this), toInt(convertTo18(gemJoin, amt)), 0 ); } function safeLockGem( address manager, address gemJoin, uint cdp, uint amt, bool transferFrom, address owner ) public { require(ManagerLike(manager).owns(cdp) == owner, "owner-missmatch"); lockGem(manager, gemJoin, cdp, amt, transferFrom); } function freeETH( address manager, address ethJoin, uint cdp, uint wad ) public { // Unlocks WETH amount from the CDP frob(manager, cdp, -toInt(wad), 0); // Moves the amount from the CDP urn to proxy's address flux(manager, cdp, address(this), wad); // Exits WETH amount to proxy address as a token GemJoinLike(ethJoin).exit(address(this), wad); // Converts WETH to ETH GemJoinLike(ethJoin).gem().withdraw(wad); // Sends ETH back to the user's wallet msg.sender.transfer(wad); } function freeGem( address manager, address gemJoin, uint cdp, uint amt ) public { uint wad = convertTo18(gemJoin, amt); // Unlocks token amount from the CDP frob(manager, cdp, -toInt(wad), 0); // Moves the amount from the CDP urn to proxy's address flux(manager, cdp, address(this), wad); // Exits token amount to the user's wallet as a token GemJoinLike(gemJoin).exit(msg.sender, amt); } function exitETH( address manager, address ethJoin, uint cdp, uint wad ) public { // Moves the amount from the CDP urn to proxy's address flux(manager, cdp, address(this), wad); // Exits WETH amount to proxy address as a token GemJoinLike(ethJoin).exit(address(this), wad); // Converts WETH to ETH GemJoinLike(ethJoin).gem().withdraw(wad); // Sends ETH back to the user's wallet msg.sender.transfer(wad); } function exitGem( address manager, address gemJoin, uint cdp, uint amt ) public { // Moves the amount from the CDP urn to proxy's address flux(manager, cdp, address(this), convertTo18(gemJoin, amt)); // Exits token amount to the user's wallet as a token GemJoinLike(gemJoin).exit(msg.sender, amt); } function draw( address manager, address jug, address daiJoin, uint cdp, uint wad ) public { address urn = ManagerLike(manager).urns(cdp); address vat = ManagerLike(manager).vat(); bytes32 ilk = ManagerLike(manager).ilks(cdp); // Generates debt in the CDP frob(manager, cdp, 0, _getDrawDart(vat, jug, urn, ilk, wad)); // Moves the DAI amount (balance in the vat in rad) to proxy's address move(manager, cdp, address(this), toRad(wad)); // Allows adapter to access to proxy's DAI balance in the vat if (VatLike(vat).can(address(this), address(daiJoin)) == 0) { VatLike(vat).hope(daiJoin); } // Exits DAI to the user's wallet as a token DaiJoinLike(daiJoin).exit(msg.sender, wad); } function wipe( address manager, address daiJoin, uint cdp, uint wad ) public { address vat = ManagerLike(manager).vat(); address urn = ManagerLike(manager).urns(cdp); bytes32 ilk = ManagerLike(manager).ilks(cdp); address own = ManagerLike(manager).owns(cdp); if (own == address(this) || ManagerLike(manager).cdpCan(own, cdp, address(this)) == 1) { // Joins DAI amount into the vat daiJoin_join(daiJoin, urn, wad); // Paybacks debt to the CDP frob(manager, cdp, 0, _getWipeDart(vat, VatLike(vat).dai(urn), urn, ilk)); } else { // Joins DAI amount into the vat daiJoin_join(daiJoin, address(this), wad); // Paybacks debt to the CDP VatLike(vat).frob( ilk, urn, address(this), address(this), 0, _getWipeDart(vat, wad * RAY, urn, ilk) ); } } function safeWipe( address manager, address daiJoin, uint cdp, uint wad, address owner ) public { require(ManagerLike(manager).owns(cdp) == owner, "owner-missmatch"); wipe(manager, daiJoin, cdp, wad); } function wipeAll( address manager, address daiJoin, uint cdp ) public { address vat = ManagerLike(manager).vat(); address urn = ManagerLike(manager).urns(cdp); bytes32 ilk = ManagerLike(manager).ilks(cdp); (, uint art) = VatLike(vat).urns(ilk, urn); address own = ManagerLike(manager).owns(cdp); if (own == address(this) || ManagerLike(manager).cdpCan(own, cdp, address(this)) == 1) { // Joins DAI amount into the vat daiJoin_join(daiJoin, urn, _getWipeAllWad(vat, urn, urn, ilk)); // Paybacks debt to the CDP frob(manager, cdp, 0, -int(art)); } else { // Joins DAI amount into the vat daiJoin_join(daiJoin, address(this), _getWipeAllWad(vat, address(this), urn, ilk)); // Paybacks debt to the CDP VatLike(vat).frob( ilk, urn, address(this), address(this), 0, -int(art) ); } } function safeWipeAll( address manager, address daiJoin, uint cdp, address owner ) public { require(ManagerLike(manager).owns(cdp) == owner, "owner-missmatch"); wipeAll(manager, daiJoin, cdp); } function lockETHAndDraw( address manager, address jug, address ethJoin, address daiJoin, uint cdp, uint wadD ) public payable { address urn = ManagerLike(manager).urns(cdp); address vat = ManagerLike(manager).vat(); bytes32 ilk = ManagerLike(manager).ilks(cdp); // Receives ETH amount, converts it to WETH and joins it into the vat ethJoin_join(ethJoin, urn); // Locks WETH amount into the CDP and generates debt frob(manager, cdp, toInt(msg.value), _getDrawDart(vat, jug, urn, ilk, wadD)); // Moves the DAI amount (balance in the vat in rad) to proxy's address move(manager, cdp, address(this), toRad(wadD)); // Allows adapter to access to proxy's DAI balance in the vat if (VatLike(vat).can(address(this), address(daiJoin)) == 0) { VatLike(vat).hope(daiJoin); } // Exits DAI to the user's wallet as a token DaiJoinLike(daiJoin).exit(msg.sender, wadD); } function openLockETHAndDraw( address manager, address jug, address ethJoin, address daiJoin, bytes32 ilk, uint wadD ) public payable returns (uint cdp) { cdp = open(manager, ilk, address(this)); lockETHAndDraw(manager, jug, ethJoin, daiJoin, cdp, wadD); } function lockGemAndDraw( address manager, address jug, address gemJoin, address daiJoin, uint cdp, uint amtC, uint wadD, bool transferFrom ) public { address urn = ManagerLike(manager).urns(cdp); address vat = ManagerLike(manager).vat(); bytes32 ilk = ManagerLike(manager).ilks(cdp); // Takes token amount from user's wallet and joins into the vat gemJoin_join(gemJoin, urn, amtC, transferFrom); // Locks token amount into the CDP and generates debt frob(manager, cdp, toInt(convertTo18(gemJoin, amtC)), _getDrawDart(vat, jug, urn, ilk, wadD)); // Moves the DAI amount (balance in the vat in rad) to proxy's address move(manager, cdp, address(this), toRad(wadD)); // Allows adapter to access to proxy's DAI balance in the vat if (VatLike(vat).can(address(this), address(daiJoin)) == 0) { VatLike(vat).hope(daiJoin); } // Exits DAI to the user's wallet as a token DaiJoinLike(daiJoin).exit(msg.sender, wadD); } function openLockGemAndDraw( address manager, address jug, address gemJoin, address daiJoin, bytes32 ilk, uint amtC, uint wadD, bool transferFrom ) public returns (uint cdp) { cdp = open(manager, ilk, address(this)); lockGemAndDraw(manager, jug, gemJoin, daiJoin, cdp, amtC, wadD, transferFrom); } function openLockGNTAndDraw( address manager, address jug, address gntJoin, address daiJoin, bytes32 ilk, uint amtC, uint wadD ) public returns (address bag, uint cdp) { // Creates bag (if doesn't exist) to hold GNT bag = GNTJoinLike(gntJoin).bags(address(this)); if (bag == address(0)) { bag = makeGemBag(gntJoin); } // Transfer funds to the funds which previously were sent to the proxy GemLike(GemJoinLike(gntJoin).gem()).transfer(bag, amtC); cdp = openLockGemAndDraw(manager, jug, gntJoin, daiJoin, ilk, amtC, wadD, false); } function wipeAndFreeETH( address manager, address ethJoin, address daiJoin, uint cdp, uint wadC, uint wadD ) public { address urn = ManagerLike(manager).urns(cdp); // Joins DAI amount into the vat daiJoin_join(daiJoin, urn, wadD); // Paybacks debt to the CDP and unlocks WETH amount from it frob( manager, cdp, -toInt(wadC), _getWipeDart(ManagerLike(manager).vat(), VatLike(ManagerLike(manager).vat()).dai(urn), urn, ManagerLike(manager).ilks(cdp)) ); // Moves the amount from the CDP urn to proxy's address flux(manager, cdp, address(this), wadC); // Exits WETH amount to proxy address as a token GemJoinLike(ethJoin).exit(address(this), wadC); // Converts WETH to ETH GemJoinLike(ethJoin).gem().withdraw(wadC); // Sends ETH back to the user's wallet msg.sender.transfer(wadC); } function wipeAllAndFreeETH( address manager, address ethJoin, address daiJoin, uint cdp, uint wadC ) public { address vat = ManagerLike(manager).vat(); address urn = ManagerLike(manager).urns(cdp); bytes32 ilk = ManagerLike(manager).ilks(cdp); (, uint art) = VatLike(vat).urns(ilk, urn); // Joins DAI amount into the vat daiJoin_join(daiJoin, urn, _getWipeAllWad(vat, urn, urn, ilk)); // Paybacks debt to the CDP and unlocks WETH amount from it frob( manager, cdp, -toInt(wadC), -int(art) ); // Moves the amount from the CDP urn to proxy's address flux(manager, cdp, address(this), wadC); // Exits WETH amount to proxy address as a token GemJoinLike(ethJoin).exit(address(this), wadC); // Converts WETH to ETH GemJoinLike(ethJoin).gem().withdraw(wadC); // Sends ETH back to the user's wallet msg.sender.transfer(wadC); } function wipeAndFreeGem( address manager, address gemJoin, address daiJoin, uint cdp, uint amtC, uint wadD ) public { address urn = ManagerLike(manager).urns(cdp); // Joins DAI amount into the vat daiJoin_join(daiJoin, urn, wadD); uint wadC = convertTo18(gemJoin, amtC); // Paybacks debt to the CDP and unlocks token amount from it frob( manager, cdp, -toInt(wadC), _getWipeDart(ManagerLike(manager).vat(), VatLike(ManagerLike(manager).vat()).dai(urn), urn, ManagerLike(manager).ilks(cdp)) ); // Moves the amount from the CDP urn to proxy's address flux(manager, cdp, address(this), wadC); // Exits token amount to the user's wallet as a token GemJoinLike(gemJoin).exit(msg.sender, amtC); } function wipeAllAndFreeGem( address manager, address gemJoin, address daiJoin, uint cdp, uint amtC ) public { address vat = ManagerLike(manager).vat(); address urn = ManagerLike(manager).urns(cdp); bytes32 ilk = ManagerLike(manager).ilks(cdp); (, uint art) = VatLike(vat).urns(ilk, urn); // Joins DAI amount into the vat daiJoin_join(daiJoin, urn, _getWipeAllWad(vat, urn, urn, ilk)); uint wadC = convertTo18(gemJoin, amtC); // Paybacks debt to the CDP and unlocks token amount from it frob( manager, cdp, -toInt(wadC), -int(art) ); // Moves the amount from the CDP urn to proxy's address flux(manager, cdp, address(this), wadC); // Exits token amount to the user's wallet as a token GemJoinLike(gemJoin).exit(msg.sender, amtC); } } contract DssProxyActionsEnd is Common { // Internal functions function _free( address manager, address end, uint cdp ) internal returns (uint ink) { bytes32 ilk = ManagerLike(manager).ilks(cdp); address urn = ManagerLike(manager).urns(cdp); VatLike vat = VatLike(ManagerLike(manager).vat()); uint art; (ink, art) = vat.urns(ilk, urn); // If CDP still has debt, it needs to be paid if (art > 0) { EndLike(end).skim(ilk, urn); (ink,) = vat.urns(ilk, urn); } // Approves the manager to transfer the position to proxy's address in the vat if (vat.can(address(this), address(manager)) == 0) { vat.hope(manager); } // Transfers position from CDP to the proxy address ManagerLike(manager).quit(cdp, address(this)); // Frees the position and recovers the collateral in the vat registry EndLike(end).free(ilk); } // Public functions function freeETH( address manager, address ethJoin, address end, uint cdp ) public { uint wad = _free(manager, end, cdp); // Exits WETH amount to proxy address as a token GemJoinLike(ethJoin).exit(address(this), wad); // Converts WETH to ETH GemJoinLike(ethJoin).gem().withdraw(wad); // Sends ETH back to the user's wallet msg.sender.transfer(wad); } function freeGem( address manager, address gemJoin, address end, uint cdp ) public { uint amt = _free(manager, end, cdp) / 10 ** (18 - GemJoinLike(gemJoin).dec()); // Exits token amount to the user's wallet as a token GemJoinLike(gemJoin).exit(msg.sender, amt); } function pack( address daiJoin, address end, uint wad ) public { daiJoin_join(daiJoin, address(this), wad); VatLike vat = DaiJoinLike(daiJoin).vat(); // Approves the end to take out DAI from the proxy's balance in the vat if (vat.can(address(this), address(end)) == 0) { vat.hope(end); } EndLike(end).pack(wad); } function cashETH( address ethJoin, address end, bytes32 ilk, uint wad ) public { EndLike(end).cash(ilk, wad); uint wadC = mul(wad, EndLike(end).fix(ilk)) / RAY; // Exits WETH amount to proxy address as a token GemJoinLike(ethJoin).exit(address(this), wadC); // Converts WETH to ETH GemJoinLike(ethJoin).gem().withdraw(wadC); // Sends ETH back to the user's wallet msg.sender.transfer(wadC); } function cashGem( address gemJoin, address end, bytes32 ilk, uint wad ) public { EndLike(end).cash(ilk, wad); // Exits token amount to the user's wallet as a token uint amt = mul(wad, EndLike(end).fix(ilk)) / RAY / 10 ** (18 - GemJoinLike(gemJoin).dec()); GemJoinLike(gemJoin).exit(msg.sender, amt); } } contract DssProxyActionsDsr is Common { function join( address daiJoin, address pot, uint wad ) public { VatLike vat = DaiJoinLike(daiJoin).vat(); // Executes drip to get the chi rate updated to rho == now, otherwise join will fail uint chi = PotLike(pot).drip(); // Joins wad amount to the vat balance daiJoin_join(daiJoin, address(this), wad); // Approves the pot to take out DAI from the proxy's balance in the vat if (vat.can(address(this), address(pot)) == 0) { vat.hope(pot); } // Joins the pie value (equivalent to the DAI wad amount) in the pot PotLike(pot).join(mul(wad, RAY) / chi); } function exit( address daiJoin, address pot, uint wad ) public { VatLike vat = DaiJoinLike(daiJoin).vat(); // Executes drip to count the savings accumulated until this moment uint chi = PotLike(pot).drip(); // Calculates the pie value in the pot equivalent to the DAI wad amount uint pie = mul(wad, RAY) / chi; // Exits DAI from the pot PotLike(pot).exit(pie); // Checks the actual balance of DAI in the vat after the pot exit uint bal = DaiJoinLike(daiJoin).vat().dai(address(this)); // Allows adapter to access to proxy's DAI balance in the vat if (vat.can(address(this), address(daiJoin)) == 0) { vat.hope(daiJoin); } // It is necessary to check if due rounding the exact wad amount can be exited by the adapter. // Otherwise it will do the maximum DAI balance in the vat DaiJoinLike(daiJoin).exit( msg.sender, bal >= mul(wad, RAY) ? wad : bal / RAY ); } function exitAll( address daiJoin, address pot ) public { VatLike vat = DaiJoinLike(daiJoin).vat(); // Executes drip to count the savings accumulated until this moment uint chi = PotLike(pot).drip(); // Gets the total pie belonging to the proxy address uint pie = PotLike(pot).pie(address(this)); // Exits DAI from the pot PotLike(pot).exit(pie); // Allows adapter to access to proxy's DAI balance in the vat if (vat.can(address(this), address(daiJoin)) == 0) { vat.hope(daiJoin); } // Exits the DAI amount corresponding to the value of pie DaiJoinLike(daiJoin).exit(msg.sender, mul(chi, pie) / RAY); } } contract BManagerLike is ManagerLike { function cushion(uint cdp) public returns(uint); } contract BProxyActions is DssProxyActions { function shiftManager( address managerSrc, address managerDst, uint cdpSrc, uint cdpDst ) public { address vat = ManagerLike(managerSrc).vat(); require(vat == ManagerLike(managerDst).vat(), "vat-mismatch"); bool canSrc = (VatLike(vat).can(address(this), managerSrc) != 0); bool canDst = (VatLike(vat).can(address(this), managerDst) != 0); if(! canSrc) hope(vat, managerSrc); if(! canDst) hope(vat, managerDst); quit(managerSrc, cdpSrc, address(this)); enter(managerDst, address(this), cdpDst); if(! canSrc) nope(vat, managerSrc); if(! canDst) nope(vat, managerDst); } function lockETHViaCdp( address manager, address ethJoin, uint cdp ) public payable { address urn = ManagerLike(manager).urns(cdp); // Receives ETH amount, converts it to WETH and joins it into the vat ethJoin_join(ethJoin, urn); // Locks WETH amount into the CDP and generates debt frob(manager, cdp, toInt(msg.value), 0); } function lockGemViaCdp( address manager, address gemJoin, uint cdp, uint amt, bool transferFrom ) public { address urn = ManagerLike(manager).urns(cdp); // Receives Gem and joins it into the vat gemJoin_join(gemJoin, urn, amt, transferFrom); // Locks WETH amount into the CDP and generates debt frob(manager, cdp, toInt(convertTo18(gemJoin, amt)), 0); } function openLockETHAndGiveToProxy( address proxyRegistry, address manager, address ethJoin, bytes32 ilk, address dst ) public payable returns (uint cdp) { cdp = open(manager, ilk, address(this)); lockETHViaCdp(manager,ethJoin,cdp); giveToProxy(proxyRegistry,manager,cdp,dst); } function openLockGem( address manager, address gemJoin, bytes32 ilk, uint amt, bool transferFrom ) public returns (uint cdp) { cdp = open(manager, ilk, address(this)); lockGemViaCdp(manager,gemJoin,cdp,amt,transferFrom); } function openAndImportFromManager( address managerSrc, address managerDst, uint cdpSrc, bytes32 ilk ) public payable returns (uint cdp) { cdp = open(managerDst, ilk, address(this)); shiftManager(managerSrc,managerDst,cdpSrc,cdp); } function beforeWipeAll(address manager, uint cdp) internal { if(BManagerLike(manager).cushion(cdp) > 0) ManagerLike(manager).frob(cdp,0,0); } function wipeAll( address manager, address daiJoin, uint cdp ) public { beforeWipeAll(manager, cdp); super.wipeAll(manager, daiJoin, cdp); } function safeWipeAll( address manager, address daiJoin, uint cdp, address owner ) public { beforeWipeAll(manager, cdp); super.safeWipeAll(manager, daiJoin, cdp, owner); } function wipeAllAndFreeETH( address manager, address ethJoin, address daiJoin, uint cdp, uint wadC ) public { beforeWipeAll(manager, cdp); super.wipeAllAndFreeETH(manager, ethJoin, daiJoin, cdp, wadC); } function wipeAllAndFreeGem( address manager, address gemJoin, address daiJoin, uint cdp, uint amtC ) public { beforeWipeAll(manager, cdp); super.wipeAllAndFreeGem(manager, gemJoin, daiJoin, cdp, amtC); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"uint256","name":"cdp","type":"uint256"},{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"ok","type":"uint256"}],"name":"cdpAllow","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"apt","type":"address"},{"internalType":"address","name":"urn","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"daiJoin_join","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"address","name":"jug","type":"address"},{"internalType":"address","name":"daiJoin","type":"address"},{"internalType":"uint256","name":"cdp","type":"uint256"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"draw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"address","name":"src","type":"address"},{"internalType":"uint256","name":"cdp","type":"uint256"}],"name":"enter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"apt","type":"address"},{"internalType":"address","name":"urn","type":"address"}],"name":"ethJoin_join","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"address","name":"ethJoin","type":"address"},{"internalType":"uint256","name":"cdp","type":"uint256"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"exitETH","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"address","name":"gemJoin","type":"address"},{"internalType":"uint256","name":"cdp","type":"uint256"},{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"exitGem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"uint256","name":"cdp","type":"uint256"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"flux","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"address","name":"ethJoin","type":"address"},{"internalType":"uint256","name":"cdp","type":"uint256"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"freeETH","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"address","name":"gemJoin","type":"address"},{"internalType":"uint256","name":"cdp","type":"uint256"},{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"freeGem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"uint256","name":"cdp","type":"uint256"},{"internalType":"int256","name":"dink","type":"int256"},{"internalType":"int256","name":"dart","type":"int256"}],"name":"frob","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"apt","type":"address"},{"internalType":"address","name":"urn","type":"address"},{"internalType":"uint256","name":"amt","type":"uint256"},{"internalType":"bool","name":"transferFrom","type":"bool"}],"name":"gemJoin_join","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"uint256","name":"cdp","type":"uint256"},{"internalType":"address","name":"usr","type":"address"}],"name":"give","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"proxyRegistry","type":"address"},{"internalType":"address","name":"manager","type":"address"},{"internalType":"uint256","name":"cdp","type":"uint256"},{"internalType":"address","name":"dst","type":"address"}],"name":"giveToProxy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"obj","type":"address"},{"internalType":"address","name":"usr","type":"address"}],"name":"hope","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"address","name":"ethJoin","type":"address"},{"internalType":"uint256","name":"cdp","type":"uint256"}],"name":"lockETH","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"address","name":"jug","type":"address"},{"internalType":"address","name":"ethJoin","type":"address"},{"internalType":"address","name":"daiJoin","type":"address"},{"internalType":"uint256","name":"cdp","type":"uint256"},{"internalType":"uint256","name":"wadD","type":"uint256"}],"name":"lockETHAndDraw","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"address","name":"ethJoin","type":"address"},{"internalType":"uint256","name":"cdp","type":"uint256"}],"name":"lockETHViaCdp","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"address","name":"gemJoin","type":"address"},{"internalType":"uint256","name":"cdp","type":"uint256"},{"internalType":"uint256","name":"amt","type":"uint256"},{"internalType":"bool","name":"transferFrom","type":"bool"}],"name":"lockGem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"address","name":"jug","type":"address"},{"internalType":"address","name":"gemJoin","type":"address"},{"internalType":"address","name":"daiJoin","type":"address"},{"internalType":"uint256","name":"cdp","type":"uint256"},{"internalType":"uint256","name":"amtC","type":"uint256"},{"internalType":"uint256","name":"wadD","type":"uint256"},{"internalType":"bool","name":"transferFrom","type":"bool"}],"name":"lockGemAndDraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"address","name":"gemJoin","type":"address"},{"internalType":"uint256","name":"cdp","type":"uint256"},{"internalType":"uint256","name":"amt","type":"uint256"},{"internalType":"bool","name":"transferFrom","type":"bool"}],"name":"lockGemViaCdp","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"gemJoin","type":"address"}],"name":"makeGemBag","outputs":[{"internalType":"address","name":"bag","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"uint256","name":"cdp","type":"uint256"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"rad","type":"uint256"}],"name":"move","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"obj","type":"address"},{"internalType":"address","name":"usr","type":"address"}],"name":"nope","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"bytes32","name":"ilk","type":"bytes32"},{"internalType":"address","name":"usr","type":"address"}],"name":"open","outputs":[{"internalType":"uint256","name":"cdp","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"managerSrc","type":"address"},{"internalType":"address","name":"managerDst","type":"address"},{"internalType":"uint256","name":"cdpSrc","type":"uint256"},{"internalType":"bytes32","name":"ilk","type":"bytes32"}],"name":"openAndImportFromManager","outputs":[{"internalType":"uint256","name":"cdp","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"address","name":"jug","type":"address"},{"internalType":"address","name":"ethJoin","type":"address"},{"internalType":"address","name":"daiJoin","type":"address"},{"internalType":"bytes32","name":"ilk","type":"bytes32"},{"internalType":"uint256","name":"wadD","type":"uint256"}],"name":"openLockETHAndDraw","outputs":[{"internalType":"uint256","name":"cdp","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"proxyRegistry","type":"address"},{"internalType":"address","name":"manager","type":"address"},{"internalType":"address","name":"ethJoin","type":"address"},{"internalType":"bytes32","name":"ilk","type":"bytes32"},{"internalType":"address","name":"dst","type":"address"}],"name":"openLockETHAndGiveToProxy","outputs":[{"internalType":"uint256","name":"cdp","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"address","name":"jug","type":"address"},{"internalType":"address","name":"gntJoin","type":"address"},{"internalType":"address","name":"daiJoin","type":"address"},{"internalType":"bytes32","name":"ilk","type":"bytes32"},{"internalType":"uint256","name":"amtC","type":"uint256"},{"internalType":"uint256","name":"wadD","type":"uint256"}],"name":"openLockGNTAndDraw","outputs":[{"internalType":"address","name":"bag","type":"address"},{"internalType":"uint256","name":"cdp","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"address","name":"gemJoin","type":"address"},{"internalType":"bytes32","name":"ilk","type":"bytes32"},{"internalType":"uint256","name":"amt","type":"uint256"},{"internalType":"bool","name":"transferFrom","type":"bool"}],"name":"openLockGem","outputs":[{"internalType":"uint256","name":"cdp","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"address","name":"jug","type":"address"},{"internalType":"address","name":"gemJoin","type":"address"},{"internalType":"address","name":"daiJoin","type":"address"},{"internalType":"bytes32","name":"ilk","type":"bytes32"},{"internalType":"uint256","name":"amtC","type":"uint256"},{"internalType":"uint256","name":"wadD","type":"uint256"},{"internalType":"bool","name":"transferFrom","type":"bool"}],"name":"openLockGemAndDraw","outputs":[{"internalType":"uint256","name":"cdp","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"uint256","name":"cdp","type":"uint256"},{"internalType":"address","name":"dst","type":"address"}],"name":"quit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"address","name":"ethJoin","type":"address"},{"internalType":"uint256","name":"cdp","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"safeLockETH","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"address","name":"gemJoin","type":"address"},{"internalType":"uint256","name":"cdp","type":"uint256"},{"internalType":"uint256","name":"amt","type":"uint256"},{"internalType":"bool","name":"transferFrom","type":"bool"},{"internalType":"address","name":"owner","type":"address"}],"name":"safeLockGem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"address","name":"daiJoin","type":"address"},{"internalType":"uint256","name":"cdp","type":"uint256"},{"internalType":"uint256","name":"wad","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"safeWipe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"address","name":"daiJoin","type":"address"},{"internalType":"uint256","name":"cdp","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"safeWipeAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"uint256","name":"cdpSrc","type":"uint256"},{"internalType":"uint256","name":"cdpOrg","type":"uint256"}],"name":"shift","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"managerSrc","type":"address"},{"internalType":"address","name":"managerDst","type":"address"},{"internalType":"uint256","name":"cdpSrc","type":"uint256"},{"internalType":"uint256","name":"cdpDst","type":"uint256"}],"name":"shiftManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"gem","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"ok","type":"uint256"}],"name":"urnAllow","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"address","name":"daiJoin","type":"address"},{"internalType":"uint256","name":"cdp","type":"uint256"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"wipe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"address","name":"daiJoin","type":"address"},{"internalType":"uint256","name":"cdp","type":"uint256"}],"name":"wipeAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"address","name":"ethJoin","type":"address"},{"internalType":"address","name":"daiJoin","type":"address"},{"internalType":"uint256","name":"cdp","type":"uint256"},{"internalType":"uint256","name":"wadC","type":"uint256"}],"name":"wipeAllAndFreeETH","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"address","name":"gemJoin","type":"address"},{"internalType":"address","name":"daiJoin","type":"address"},{"internalType":"uint256","name":"cdp","type":"uint256"},{"internalType":"uint256","name":"amtC","type":"uint256"}],"name":"wipeAllAndFreeGem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"address","name":"ethJoin","type":"address"},{"internalType":"address","name":"daiJoin","type":"address"},{"internalType":"uint256","name":"cdp","type":"uint256"},{"internalType":"uint256","name":"wadC","type":"uint256"},{"internalType":"uint256","name":"wadD","type":"uint256"}],"name":"wipeAndFreeETH","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"address","name":"gemJoin","type":"address"},{"internalType":"address","name":"daiJoin","type":"address"},{"internalType":"uint256","name":"cdp","type":"uint256"},{"internalType":"uint256","name":"amtC","type":"uint256"},{"internalType":"uint256","name":"wadD","type":"uint256"}],"name":"wipeAndFreeGem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b506150f0806100206000396000f3fe60806040526004361061027d5760003560e01c806396e8d72c1161014f578063c0791710116100c1578063e685cc041161007a578063e685cc0414610e11578063ead6472914610e5d578063eb0b9a8514610eb4578063ee28457614610ef7578063fba7591d14610f33578063fc784ea714610f825761027d565b8063c079171014610c00578063c56167c614610c82578063cbd4be3f14610cc5578063d8467e3114610d2d578063db802a3214610d73578063e205c10814610ddb5761027d565b8063a6add01111610113578063a6add01114610a42578063b50a586914610a97578063ba727a9514610ad2578063bcd6deec14610b19578063be5e6c0314610b68578063beabacc814610bbd5761027d565b806396e8d72c146108fc5780639f6f3d5b146109415780639f887fde14610990578063a028a55e146109cb578063a033df1214610a145761027d565b80634592aca7116101f35780636ab6a491116101ac5780636ab6a491146107555780636d68b70b1461079e57806374b49dc4146107ed5780637b5a3b43146108295780637bc3bd53146108725780637df2eb25146108b15761027d565b80634592aca714610597578063493c2049146105da5780634b66619914610623578063508629ea1461066c5780635f6ef447146106cf5780636aa3ee11146107125761027d565b80631d10f231116102455780631d10f231146103ec5780632555bac31461042f57806325cf37d0146104655780632958f8a5146104ac5780633e29e565146104fd57806342dd11bb1461054e5761027d565b8063036a23951461028257806308f00e34146102c75780630aee8dec146103105780631558b048146103595780631c02d846146103a0575b600080fd5b34801561028e57600080fd5b506102c5600480360360608110156102a557600080fd5b506001600160a01b03813581169160208101359091169060400135610fd3565b005b3480156102d357600080fd5b506102c5600480360360808110156102ea57600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135610fed565b34801561031c57600080fd5b506102c56004803603608081101561033357600080fd5b506001600160a01b0381358116916020810135821691604082013591606001351661115c565b34801561036557600080fd5b506102c56004803603608081101561037c57600080fd5b506001600160a01b0381358116916020810135916040820135169060600135611178565b6102c5600480360360c08110156103b657600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a001356111ef565b3480156103f857600080fd5b506102c56004803603606081101561040f57600080fd5b506001600160a01b038135811691602081013591604090910135166114ee565b6102c56004803603606081101561044557600080fd5b506001600160a01b0381358116916020810135909116906040013561156b565b34801561047157600080fd5b506102c56004803603608081101561048857600080fd5b506001600160a01b03813581169160208101359160408201351690606001356115fe565b3480156104b857600080fd5b506102c5600480360360a08110156104cf57600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160809091013516611657565b34801561050957600080fd5b506102c5600480360360a081101561052057600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060800135151561172a565b34801561055a57600080fd5b506102c56004803603608081101561057157600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013561192a565b3480156105a357600080fd5b506102c5600480360360608110156105ba57600080fd5b506001600160a01b0381358116916020810135916040909101351661198d565b3480156105e657600080fd5b506102c5600480360360808110156105fd57600080fd5b506001600160a01b038135811691602081013582169160408201359160600135166119ed565b34801561062f57600080fd5b506102c56004803603608081101561064657600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611be0565b34801561067857600080fd5b506106bd600480360360a081101561068f57600080fd5b506001600160a01b038135811691602081013590911690604081013590606081013590608001351515611fe0565b60408051918252519081900360200190f35b3480156106db57600080fd5b506102c5600480360360608110156106f257600080fd5b506001600160a01b03813581169160208101359091169060400135612005565b34801561071e57600080fd5b506106bd6004803603606081101561073557600080fd5b506001600160a01b03813581169160208101359160409091013516612065565b34801561076157600080fd5b506102c56004803603608081101561077857600080fd5b506001600160a01b038135811691602081013590911690604081013590606001356120ec565b3480156107aa57600080fd5b506102c5600480360360a08110156107c157600080fd5b506001600160a01b0381358116916020810135821691604082013516906060810135906080013561216c565b6106bd6004803603608081101561080357600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135612183565b34801561083557600080fd5b506102c56004803603608081101561084c57600080fd5b506001600160a01b038135811691602081013590911690604081013590606001356121a6565b34801561087e57600080fd5b506102c56004803603606081101561089557600080fd5b506001600160a01b0381351690602081013590604001356121b4565b3480156108bd57600080fd5b506102c5600480360360808110156108d457600080fd5b506001600160a01b038135811691602081013590911690604081013590606001351515612202565b34801561090857600080fd5b506102c56004803603608081101561091f57600080fd5b506001600160a01b03813516906020810135906040810135906060013561240f565b34801561094d57600080fd5b506102c5600480360360a081101561096457600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060800135612465565b34801561099c57600080fd5b506102c5600480360360408110156109b357600080fd5b506001600160a01b0381358116916020013516612726565b3480156109d757600080fd5b506102c5600480360360808110156109ee57600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013561279a565b6102c560048036036040811015610a2a57600080fd5b506001600160a01b0381358116916020013516612a16565b348015610a4e57600080fd5b506102c5600480360360c0811015610a6557600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060808101359060a00135612bfb565b348015610aa357600080fd5b506102c560048036036040811015610aba57600080fd5b506001600160a01b0381358116916020013516612eca565b348015610ade57600080fd5b506102c560048036036080811015610af557600080fd5b506001600160a01b0381358116916020810135916040820135169060600135612f22565b348015610b2557600080fd5b506102c5600480360360a0811015610b3c57600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060800135612f7b565b348015610b7457600080fd5b506102c5600480360360c0811015610b8b57600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060808101359060a00135612f92565b348015610bc957600080fd5b506102c560048036036060811015610be057600080fd5b506001600160a01b03813581169160208101359091169060400135613328565b348015610c0c57600080fd5b50610c5f600480360360e0811015610c2357600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c00135613388565b604080516001600160a01b03909316835260208301919091528051918290030190f35b348015610c8e57600080fd5b506102c560048036036060811015610ca557600080fd5b506001600160a01b0381358116916020810135909116906040013561350b565b348015610cd157600080fd5b506102c56004803603610100811015610ce957600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c08101359060e001351515613711565b6106bd600480360360a0811015610d4357600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359160809091013516613a0e565b348015610d7f57600080fd5b506106bd6004803603610100811015610d9757600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c08101359060e001351515613a34565b6102c560048036036060811015610df157600080fd5b506001600160a01b03813581169160208101359091169060400135613a5f565b6106bd600480360360c0811015610e2757600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a00135613c35565b348015610e6957600080fd5b506102c5600480360360c0811015610e8057600080fd5b506001600160a01b0381358116916020810135821691604082013591606081013591608082013515159160a0013516613c5c565b348015610ec057600080fd5b506102c560048036036060811015610ed757600080fd5b506001600160a01b03813581169160208101359091169060400135613d30565b6102c560048036036080811015610f0d57600080fd5b506001600160a01b03813581169160208101358216916040820135916060013516613d90565b348015610f3f57600080fd5b50610f6660048036036020811015610f5657600080fd5b50356001600160a01b0316613e62565b604080516001600160a01b039092168252519081900360200190f35b348015610f8e57600080fd5b506102c5600480360360a0811015610fa557600080fd5b506001600160a01b038135811691602081013590911690604081013590606081013590608001351515613edf565b610fdd8382613f71565b610fe8838383614043565b505050565b610ff984833084611178565b6040805163ef693bed60e01b81523060048201526024810183905290516001600160a01b0385169163ef693bed91604480830192600092919082900301818387803b15801561104757600080fd5b505af115801561105b573d6000803e3d6000fd5b50505050826001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561109a57600080fd5b505af11580156110ae573d6000803e3d6000fd5b505050506040513d60208110156110c457600080fd5b505160408051632e1a7d4d60e01b81526004810184905290516001600160a01b0390921691632e1a7d4d9160248082019260009290919082900301818387803b15801561111057600080fd5b505af1158015611124573d6000803e3d6000fd5b505060405133925083156108fc02915083906000818181858888f19350505050158015611155573d6000803e3d6000fd5b5050505050565b6111668483613f71565b611172848484846143d7565b50505050565b604080516313771f0760e31b8152600481018590526001600160a01b03848116602483015260448201849052915191861691639bb8f8389160648082019260009290919082900301818387803b1580156111d157600080fd5b505af11580156111e5573d6000803e3d6000fd5b5050505050505050565b6000866001600160a01b0316632726b073846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561123557600080fd5b505afa158015611249573d6000803e3d6000fd5b505050506040513d602081101561125f57600080fd5b5051604080516336569e7760e01b815290519192506000916001600160a01b038a16916336569e77916004808301926020929190829003018186803b1580156112a757600080fd5b505afa1580156112bb573d6000803e3d6000fd5b505050506040513d60208110156112d157600080fd5b505160408051632c2cb9fd60e01b81526004810187905290519192506000916001600160a01b038b1691632c2cb9fd916024808301926020929190829003018186803b15801561132057600080fd5b505afa158015611334573d6000803e3d6000fd5b505050506040513d602081101561134a57600080fd5b505190506113588784612a16565b6113788986611366346144a9565b611373868d89888c6144f4565b61240f565b61138c89863061138788614671565b6115fe565b60408051634538c4eb60e01b81523060048201526001600160a01b038881166024830152915191841691634538c4eb91604480820192602092909190829003018186803b1580156113dc57600080fd5b505afa1580156113f0573d6000803e3d6000fd5b505050506040513d602081101561140657600080fd5b505161147d57816001600160a01b031663a3b22fc4876040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b15801561146457600080fd5b505af1158015611478573d6000803e3d6000fd5b505050505b6040805163ef693bed60e01b81523360048201526024810186905290516001600160a01b0388169163ef693bed91604480830192600092919082900301818387803b1580156114cb57600080fd5b505af11580156114df573d6000803e3d6000fd5b50505050505050505050505050565b826001600160a01b031663fcafcc6883836040518363ffffffff1660e01b815260040180838152602001826001600160a01b03166001600160a01b0316815260200192505050600060405180830381600087803b15801561154e57600080fd5b505af1158015611562573d6000803e3d6000fd5b50505050505050565b6000836001600160a01b0316632726b073836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156115b157600080fd5b505afa1580156115c5573d6000803e3d6000fd5b505050506040513d60208110156115db57600080fd5b505190506115e98382612a16565b61117284836115f7346144a9565b600061240f565b60408051637cf986db60e11b8152600481018590526001600160a01b0384811660248301526044820184905291519186169163f9f30db69160648082019260009290919082900301818387803b1580156111d157600080fd5b806001600160a01b0316856001600160a01b0316638161b120856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156116a557600080fd5b505afa1580156116b9573d6000803e3d6000fd5b505050506040513d60208110156116cf57600080fd5b50516001600160a01b03161461171e576040805162461bcd60e51b815260206004820152600f60248201526e0deeedccae45adad2e6e6dac2e8c6d608b1b604482015290519081900360640190fd5b61115585858585611be0565b61173684308484612202565b846001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b15801561176f57600080fd5b505afa158015611783573d6000803e3d6000fd5b505050506040513d602081101561179957600080fd5b505160408051632c2cb9fd60e01b81526004810186905290516001600160a01b039283169263760887039290891691632c2cb9fd91602480820192602092909190829003018186803b1580156117ee57600080fd5b505afa158015611802573d6000803e3d6000fd5b505050506040513d602081101561181857600080fd5b505160408051632726b07360e01b81526004810188905290516001600160a01b038a1691632726b073916024808301926020929190829003018186803b15801561186157600080fd5b505afa158015611875573d6000803e3d6000fd5b505050506040513d602081101561188b57600080fd5b505130806118a161189c8b8a61468e565b6144a9565b604080516001600160e01b031960e089901b16815260048101969096526001600160a01b0394851660248701529284166044860152921660648401526084830191909152600060a48301819052905160c48084019382900301818387803b15801561190b57600080fd5b505af115801561191f573d6000803e3d6000fd5b505050505050505050565b61193f84833061193a878661468e565b611178565b6040805163ef693bed60e01b81523360048201526024810183905290516001600160a01b0385169163ef693bed91604480830192600092919082900301818387803b1580156111d157600080fd5b826001600160a01b0316631b0dbf7283836040518363ffffffff1660e01b815260040180838152602001826001600160a01b03166001600160a01b0316815260200192505050600060405180830381600087803b15801561154e57600080fd5b6000846001600160a01b031663c4552791836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611a4557600080fd5b505afa158015611a59573d6000803e3d6000fd5b505050506040513d6020811015611a6f57600080fd5b505190506001600160a01b0381161580611aff5750816001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611ac757600080fd5b505afa158015611adb573d6000803e3d6000fd5b505050506040513d6020811015611af157600080fd5b50516001600160a01b031614155b15611bd557813b8015611b4d576040805162461bcd60e51b8152602060048201526011602482015270111cdd0b5a5ccb584b58dbdb9d1c9858dd607a1b604482015290519081900360640190fd5b856001600160a01b031663f3701da2846040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b158015611ba557600080fd5b505af1158015611bb9573d6000803e3d6000fd5b505050506040513d6020811015611bcf57600080fd5b50519150505b6111558484836114ee565b6000846001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015611c1b57600080fd5b505afa158015611c2f573d6000803e3d6000fd5b505050506040513d6020811015611c4557600080fd5b505160408051632726b07360e01b81526004810186905290519192506000916001600160a01b03881691632726b073916024808301926020929190829003018186803b158015611c9457600080fd5b505afa158015611ca8573d6000803e3d6000fd5b505050506040513d6020811015611cbe57600080fd5b505160408051632c2cb9fd60e01b81526004810187905290519192506000916001600160a01b03891691632c2cb9fd916024808301926020929190829003018186803b158015611d0d57600080fd5b505afa158015611d21573d6000803e3d6000fd5b505050506040513d6020811015611d3757600080fd5b50516040805163040b0d8960e51b81526004810188905290519192506000916001600160a01b038a1691638161b120916024808301926020929190829003018186803b158015611d8657600080fd5b505afa158015611d9a573d6000803e3d6000fd5b505050506040513d6020811015611db057600080fd5b505190506001600160a01b038116301480611e4d5750604080516302d75da360e51b81526001600160a01b038381166004830152602482018990523060448301529151918a1691635aebb46091606480820192602092909190829003018186803b158015611e1d57600080fd5b505afa158015611e31573d6000803e3d6000fd5b505050506040513d6020811015611e4757600080fd5b50516001145b15611ef657611e5d87848761350b565b611ef18887600061137388896001600160a01b0316636c25b3468a6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611ebe57600080fd5b505afa158015611ed2573d6000803e3d6000fd5b505050506040513d6020811015611ee857600080fd5b5051898961470d565b6111e5565b611f0187308761350b565b836001600160a01b03166376088703838530306000611f2f8b676765c793fa10079d601b1b8e028c8c61470d565b6040518763ffffffff1660e01b815260040180878152602001866001600160a01b03166001600160a01b03168152602001856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018281526020019650505050505050600060405180830381600087803b158015611fbe57600080fd5b505af1158015611fd2573d6000803e3d6000fd5b505050505050505050505050565b6000611fed868530612065565b9050611ffc8686838686613edf565b95945050505050565b826001600160a01b031663b68f400483836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561154e57600080fd5b60408051636090dec560e01b8152600481018490526001600160a01b0383811660248301529151600092861691636090dec591604480830192602092919082900301818787803b1580156120b857600080fd5b505af11580156120cc573d6000803e3d6000fd5b505050506040513d60208110156120e257600080fd5b5051949350505050565b60006120f8848361468e565b90506121128584612108846144a9565b600003600061240f565b61211e85843084611178565b6040805163ef693bed60e01b81523360048201526024810184905290516001600160a01b0386169163ef693bed91604480830192600092919082900301818387803b15801561190b57600080fd5b6121768583613f71565b611155858585858561483d565b6000612190848330612065565b905061219e8585858461279a565b949350505050565b610fed8483612108846144a9565b826001600160a01b031663e50322a283836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b15801561154e57600080fd5b80156123af57836001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561224357600080fd5b505af1158015612257573d6000803e3d6000fd5b505050506040513d602081101561226d57600080fd5b5051604080516323b872dd60e01b81523360048201523060248201526044810185905290516001600160a01b03909216916323b872dd9160648082019260009290919082900301818387803b1580156122c557600080fd5b505af11580156122d9573d6000803e3d6000fd5b50505050836001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561231857600080fd5b505af115801561232c573d6000803e3d6000fd5b505050506040513d602081101561234257600080fd5b50516040805163095ea7b360e01b81526001600160a01b038781166004830152602482018690529151919092169163095ea7b391604480830192600092919082900301818387803b15801561239657600080fd5b505af11580156123aa573d6000803e3d6000fd5b505050505b836001600160a01b0316633b4da69f84846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156111d157600080fd5b836001600160a01b03166345e6bdcd8484846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b1580156111d157600080fd5b6000856001600160a01b0316632726b073846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156124ab57600080fd5b505afa1580156124bf573d6000803e3d6000fd5b505050506040513d60208110156124d557600080fd5b5051604080516336569e7760e01b815290519192506000916001600160a01b038916916336569e77916004808301926020929190829003018186803b15801561251d57600080fd5b505afa158015612531573d6000803e3d6000fd5b505050506040513d602081101561254757600080fd5b505160408051632c2cb9fd60e01b81526004810187905290519192506000916001600160a01b038a1691632c2cb9fd916024808301926020929190829003018186803b15801561259657600080fd5b505afa1580156125aa573d6000803e3d6000fd5b505050506040513d60208110156125c057600080fd5b505190506125d888866000611373868c89888c6144f4565b6125e788863061138788614671565b60408051634538c4eb60e01b81523060048201526001600160a01b038881166024830152915191841691634538c4eb91604480820192602092909190829003018186803b15801561263757600080fd5b505afa15801561264b573d6000803e3d6000fd5b505050506040513d602081101561266157600080fd5b50516126d857816001600160a01b031663a3b22fc4876040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b1580156126bf57600080fd5b505af11580156126d3573d6000803e3d6000fd5b505050505b6040805163ef693bed60e01b81523360048201526024810186905290516001600160a01b0388169163ef693bed91604480830192600092919082900301818387803b158015611fbe57600080fd5b816001600160a01b031663dc4d20fa826040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b15801561277e57600080fd5b505af1158015612792573d6000803e3d6000fd5b505050505050565b6000846001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b1580156127d557600080fd5b505afa1580156127e9573d6000803e3d6000fd5b505050506040513d60208110156127ff57600080fd5b5051604080516336569e7760e01b815290519192506001600160a01b038616916336569e7791600480820192602092909190829003018186803b15801561284557600080fd5b505afa158015612859573d6000803e3d6000fd5b505050506040513d602081101561286f57600080fd5b50516001600160a01b038281169116146128bf576040805162461bcd60e51b815260206004820152600c60248201526b0ecc2e85adad2e6dac2e8c6d60a31b604482015290519081900360640190fd5b60408051634538c4eb60e01b81523060048201526001600160a01b0387811660248301529151600092841691634538c4eb916044808301926020929190829003018186803b15801561291057600080fd5b505afa158015612924573d6000803e3d6000fd5b505050506040513d602081101561293a57600080fd5b505160408051634538c4eb60e01b81523060048201526001600160a01b0388811660248301529151921515935060009291851691634538c4eb91604480820192602092909190829003018186803b15801561299457600080fd5b505afa1580156129a8573d6000803e3d6000fd5b505050506040513d60208110156129be57600080fd5b505115159050816129d3576129d38388612eca565b806129e2576129e28387612eca565b6129ed87863061198d565b6129f8863086613d30565b81612a0757612a078388612726565b80611562576115628387612726565b816001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612a5157600080fd5b505af1158015612a65573d6000803e3d6000fd5b505050506040513d6020811015612a7b57600080fd5b505160408051630d0e30db60e41b815290516001600160a01b039092169163d0e30db0913491600480830192600092919082900301818588803b158015612ac157600080fd5b505af1158015612ad5573d6000803e3d6000fd5b5050505050816001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612b1557600080fd5b505af1158015612b29573d6000803e3d6000fd5b505050506040513d6020811015612b3f57600080fd5b50516040805163095ea7b360e01b81526001600160a01b0385811660048301523460248301529151919092169163095ea7b391604480830192600092919082900301818387803b158015612b9257600080fd5b505af1158015612ba6573d6000803e3d6000fd5b505060408051633b4da69f60e01b81526001600160a01b03858116600483015234602483015291519186169350633b4da69f925060448082019260009290919082900301818387803b15801561277e57600080fd5b6000866001600160a01b0316632726b073856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015612c4157600080fd5b505afa158015612c55573d6000803e3d6000fd5b505050506040513d6020811015612c6b57600080fd5b50519050612c7a85828461350b565b6000612c86878561468e565b9050612e708886612c96846144a9565b6000036113738c6001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015612cd557600080fd5b505afa158015612ce9573d6000803e3d6000fd5b505050506040513d6020811015612cff57600080fd5b81019080805190602001909291905050508d6001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015612d4957600080fd5b505afa158015612d5d573d6000803e3d6000fd5b505050506040513d6020811015612d7357600080fd5b505160408051633612d9a360e11b81526001600160a01b038b8116600483015291519190921691636c25b346916024808301926020929190829003018186803b158015612dbf57600080fd5b505afa158015612dd3573d6000803e3d6000fd5b505050506040513d6020811015612de957600080fd5b8101908080519060200190929190505050888f6001600160a01b0316632c2cb9fd8e6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015612e3f57600080fd5b505afa158015612e53573d6000803e3d6000fd5b505050506040513d6020811015612e6957600080fd5b505161470d565b612e7c88863084611178565b6040805163ef693bed60e01b81523360048201526024810186905290516001600160a01b0389169163ef693bed91604480830192600092919082900301818387803b158015611fbe57600080fd5b816001600160a01b031663a3b22fc4826040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b15801561277e57600080fd5b604080516305b1fdb160e11b8152600481018590526001600160a01b03848116602483015260448201849052915191861691630b63fb629160648082019260009290919082900301818387803b1580156111d157600080fd5b612f858583613f71565b6111558585858585614bb8565b6000866001600160a01b0316632726b073856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015612fd857600080fd5b505afa158015612fec573d6000803e3d6000fd5b505050506040513d602081101561300257600080fd5b5051905061301185828461350b565b6131c0878561301f866144a9565b6000036113738b6001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b15801561305e57600080fd5b505afa158015613072573d6000803e3d6000fd5b505050506040513d602081101561308857600080fd5b5051604080516336569e7760e01b815290516001600160a01b038f16916336569e77916004808301926020929190829003018186803b1580156130ca57600080fd5b505afa1580156130de573d6000803e3d6000fd5b505050506040513d60208110156130f457600080fd5b505160408051633612d9a360e11b81526001600160a01b038a8116600483015291519190921691636c25b346916024808301926020929190829003018186803b15801561314057600080fd5b505afa158015613154573d6000803e3d6000fd5b505050506040513d602081101561316a57600080fd5b8101908080519060200190929190505050878e6001600160a01b0316632c2cb9fd8d6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015612e3f57600080fd5b6131cc87853086611178565b6040805163ef693bed60e01b81523060048201526024810185905290516001600160a01b0388169163ef693bed91604480830192600092919082900301818387803b15801561321a57600080fd5b505af115801561322e573d6000803e3d6000fd5b50505050856001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561326d57600080fd5b505af1158015613281573d6000803e3d6000fd5b505050506040513d602081101561329757600080fd5b505160408051632e1a7d4d60e01b81526004810186905290516001600160a01b0390921691632e1a7d4d9160248082019260009290919082900301818387803b1580156132e357600080fd5b505af11580156132f7573d6000803e3d6000fd5b505060405133925085156108fc02915085906000818181858888f193505050501580156111e5573d6000803e3d6000fd5b826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561154e57600080fd5b60408051638c4c280160e01b8152306004820152905160009182916001600160a01b03891691638c4c2801916024808301926020929190829003018186803b1580156133d357600080fd5b505afa1580156133e7573d6000803e3d6000fd5b505050506040513d60208110156133fd57600080fd5b505191506001600160a01b03821661341b5761341887613e62565b91505b866001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561345657600080fd5b505af115801561346a573d6000803e3d6000fd5b505050506040513d602081101561348057600080fd5b50516040805163a9059cbb60e01b81526001600160a01b038581166004830152602482018890529151919092169163a9059cbb91604480830192600092919082900301818387803b1580156134d457600080fd5b505af11580156134e8573d6000803e3d6000fd5b505050506134fd898989898989896000613a34565b905097509795505050505050565b826001600160a01b031663f4b9fa756040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561354657600080fd5b505af115801561355a573d6000803e3d6000fd5b505050506040513d602081101561357057600080fd5b5051604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd9160648082019260009290919082900301818387803b1580156135c857600080fd5b505af11580156135dc573d6000803e3d6000fd5b50505050826001600160a01b031663f4b9fa756040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561361b57600080fd5b505af115801561362f573d6000803e3d6000fd5b505050506040513d602081101561364557600080fd5b50516040805163095ea7b360e01b81526001600160a01b038681166004830152602482018590529151919092169163095ea7b391604480830192600092919082900301818387803b15801561369957600080fd5b505af11580156136ad573d6000803e3d6000fd5b50505050826001600160a01b0316633b4da69f83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561154e57600080fd5b6000886001600160a01b0316632726b073866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561375757600080fd5b505afa15801561376b573d6000803e3d6000fd5b505050506040513d602081101561378157600080fd5b5051604080516336569e7760e01b815290519192506000916001600160a01b038c16916336569e77916004808301926020929190829003018186803b1580156137c957600080fd5b505afa1580156137dd573d6000803e3d6000fd5b505050506040513d60208110156137f357600080fd5b505160408051632c2cb9fd60e01b81526004810189905290519192506000916001600160a01b038d1691632c2cb9fd916024808301926020929190829003018186803b15801561384257600080fd5b505afa158015613856573d6000803e3d6000fd5b505050506040513d602081101561386c57600080fd5b5051905061387c89848887612202565b61389b8b8861388e61189c8d8b61468e565b611373868f89888d6144f4565b6138aa8b883061138789614671565b60408051634538c4eb60e01b81523060048201526001600160a01b038a81166024830152915191841691634538c4eb91604480820192602092909190829003018186803b1580156138fa57600080fd5b505afa15801561390e573d6000803e3d6000fd5b505050506040513d602081101561392457600080fd5b505161399b57816001600160a01b031663a3b22fc4896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b15801561398257600080fd5b505af1158015613996573d6000803e3d6000fd5b505050505b6040805163ef693bed60e01b81523360048201526024810187905290516001600160a01b038a169163ef693bed91604480830192600092919082900301818387803b1580156139e957600080fd5b505af11580156139fd573d6000803e3d6000fd5b505050505050505050505050505050565b6000613a1b858430612065565b9050613a2885858361156b565b611ffc868683856119ed565b6000613a41898630612065565b9050613a538989898985898989613711565b98975050505050505050565b613a698230612a16565b826001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015613aa257600080fd5b505afa158015613ab6573d6000803e3d6000fd5b505050506040513d6020811015613acc57600080fd5b505160408051632c2cb9fd60e01b81526004810184905290516001600160a01b039283169263760887039290871691632c2cb9fd91602480820192602092909190829003018186803b158015613b2157600080fd5b505afa158015613b35573d6000803e3d6000fd5b505050506040513d6020811015613b4b57600080fd5b505160408051632726b07360e01b81526004810186905290516001600160a01b03881691632726b073916024808301926020929190829003018186803b158015613b9457600080fd5b505afa158015613ba8573d6000803e3d6000fd5b505050506040513d6020811015613bbe57600080fd5b50513080613bcb346144a9565b604080516001600160e01b031960e089901b16815260048101969096526001600160a01b0394851660248701529284166044860152921660648401526084830191909152600060a48301819052905160c48084019382900301818387803b15801561154e57600080fd5b6000613c42878430612065565b9050613c528787878785876111ef565b9695505050505050565b806001600160a01b0316866001600160a01b0316638161b120866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015613caa57600080fd5b505afa158015613cbe573d6000803e3d6000fd5b505050506040513d6020811015613cd457600080fd5b50516001600160a01b031614613d23576040805162461bcd60e51b815260206004820152600f60248201526e0deeedccae45adad2e6e6dac2e8c6d608b1b604482015290519081900360640190fd5b612792868686868661172a565b826001600160a01b0316637e348b7d83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561154e57600080fd5b806001600160a01b0316846001600160a01b0316638161b120846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015613dde57600080fd5b505afa158015613df2573d6000803e3d6000fd5b505050506040513d6020811015613e0857600080fd5b50516001600160a01b031614613e57576040805162461bcd60e51b815260206004820152600f60248201526e0deeedccae45adad2e6e6dac2e8c6d608b1b604482015290519081900360640190fd5b611172848484613a5f565b60408051631060930d60e01b815230600482015290516000916001600160a01b03841691631060930d9160248082019260209290919082900301818787803b158015613ead57600080fd5b505af1158015613ec1573d6000803e3d6000fd5b505050506040513d6020811015613ed757600080fd5b505192915050565b6000856001600160a01b0316632726b073856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015613f2557600080fd5b505afa158015613f39573d6000803e3d6000fd5b505050506040513d6020811015613f4f57600080fd5b50519050613f5f85828585612202565b61279286856115f761189c898861468e565b6000826001600160a01b03166310b89f30836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b158015613fb957600080fd5b505af1158015613fcd573d6000803e3d6000fd5b505050506040513d6020811015613fe357600080fd5b5051111561403f57604080516345e6bdcd60e01b8152600481018390526000602482018190526044820181905291516001600160a01b038516926345e6bdcd926064808201939182900301818387803b15801561277e57600080fd5b5050565b6000836001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b15801561407e57600080fd5b505afa158015614092573d6000803e3d6000fd5b505050506040513d60208110156140a857600080fd5b505160408051632726b07360e01b81526004810185905290519192506000916001600160a01b03871691632726b073916024808301926020929190829003018186803b1580156140f757600080fd5b505afa15801561410b573d6000803e3d6000fd5b505050506040513d602081101561412157600080fd5b505160408051632c2cb9fd60e01b81526004810186905290519192506000916001600160a01b03881691632c2cb9fd916024808301926020929190829003018186803b15801561417057600080fd5b505afa158015614184573d6000803e3d6000fd5b505050506040513d602081101561419a57600080fd5b5051604080516309092f9760e21b8152600481018390526001600160a01b038581166024830152825193945060009390871692632424be5c9260448082019391829003018186803b1580156141ee57600080fd5b505afa158015614202573d6000803e3d6000fd5b505050506040513d604081101561421857600080fd5b506020908101516040805163040b0d8960e51b81526004810189905290519193506000926001600160a01b038b1692638161b120926024808201939291829003018186803b15801561426957600080fd5b505afa15801561427d573d6000803e3d6000fd5b505050506040513d602081101561429357600080fd5b505190506001600160a01b0381163014806143305750604080516302d75da360e51b81526001600160a01b038381166004830152602482018990523060448301529151918a1691635aebb46091606480820192602092909190829003018186803b15801561430057600080fd5b505afa158015614314573d6000803e3d6000fd5b505050506040513d602081101561432a57600080fd5b50516001145b1561435b5761434b878561434688888989614e4b565b61350b565b611ef1888760008560000361240f565b61436c873061434688308989614e4b565b60408051637608870360e01b8152600481018590526001600160a01b0386811660248301523060448301819052606483015260006084830181905285810360a484015292519088169263760887039260c4808201939182900301818387803b158015611fbe57600080fd5b806001600160a01b0316846001600160a01b0316638161b120846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561442557600080fd5b505afa158015614439573d6000803e3d6000fd5b505050506040513d602081101561444f57600080fd5b50516001600160a01b03161461449e576040805162461bcd60e51b815260206004820152600f60248201526e0deeedccae45adad2e6e6dac2e8c6d608b1b604482015290519081900360640190fd5b611172848484610fd3565b8060008112156144ef576040805162461bcd60e51b815260206004820152600c60248201526b696e742d6f766572666c6f7760a01b604482015290519081900360640190fd5b919050565b600080856001600160a01b03166344e2a5a8856040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b15801561453d57600080fd5b505af1158015614551573d6000803e3d6000fd5b505050506040513d602081101561456757600080fd5b505160408051633612d9a360e11b81526001600160a01b0388811660048301529151929350600092918a1691636c25b34691602480820192602092909190829003018186803b1580156145b957600080fd5b505afa1580156145cd573d6000803e3d6000fd5b505050506040513d60208110156145e357600080fd5b505190506145fc84676765c793fa10079d601b1b615019565b811015614666576146328261462561461f87676765c793fa10079d601b1b615019565b84615074565b8161462c57fe5b046144a9565b925061464984676765c793fa10079d601b1b615019565b6146538484615019565b1061465e5782614663565b826001015b92505b505095945050505050565b600061468882676765c793fa10079d601b1b615019565b92915050565b600061470682846001600160a01b031663b3bcfa826040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156146cf57600080fd5b505af11580156146e3573d6000803e3d6000fd5b505050506040513d60208110156146f957600080fd5b5051601203600a0a615019565b9392505050565b600080856001600160a01b031663d9638d36846040518263ffffffff1660e01b81526004018082815260200191505060a06040518083038186803b15801561475457600080fd5b505afa158015614768573d6000803e3d6000fd5b505050506040513d60a081101561477e57600080fd5b5060200151604080516309092f9760e21b8152600481018690526001600160a01b0387811660248301528251939450600093908a1692632424be5c9260448082019391829003018186803b1580156147d557600080fd5b505afa1580156147e9573d6000803e3d6000fd5b505050506040513d60408110156147ff57600080fd5b5060200151905061481282878161462c57fe5b92508083111561482d57614825816144a9565b600003614832565b826000035b979650505050505050565b6000856001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b15801561487857600080fd5b505afa15801561488c573d6000803e3d6000fd5b505050506040513d60208110156148a257600080fd5b505160408051632726b07360e01b81526004810186905290519192506000916001600160a01b03891691632726b073916024808301926020929190829003018186803b1580156148f157600080fd5b505afa158015614905573d6000803e3d6000fd5b505050506040513d602081101561491b57600080fd5b505160408051632c2cb9fd60e01b81526004810187905290519192506000916001600160a01b038a1691632c2cb9fd916024808301926020929190829003018186803b15801561496a57600080fd5b505afa15801561497e573d6000803e3d6000fd5b505050506040513d602081101561499457600080fd5b5051604080516309092f9760e21b8152600481018390526001600160a01b038581166024830152825193945060009390871692632424be5c9260448082019391829003018186803b1580156149e857600080fd5b505afa1580156149fc573d6000803e3d6000fd5b505050506040513d6040811015614a1257600080fd5b50602001519050614a2a878461434687828088614e4b565b614a448987614a38886144a9565b6000038460000361240f565b614a5089873088611178565b6040805163ef693bed60e01b81523060048201526024810187905290516001600160a01b038a169163ef693bed91604480830192600092919082900301818387803b158015614a9e57600080fd5b505af1158015614ab2573d6000803e3d6000fd5b50505050876001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b158015614af157600080fd5b505af1158015614b05573d6000803e3d6000fd5b505050506040513d6020811015614b1b57600080fd5b505160408051632e1a7d4d60e01b81526004810188905290516001600160a01b0390921691632e1a7d4d9160248082019260009290919082900301818387803b158015614b6757600080fd5b505af1158015614b7b573d6000803e3d6000fd5b505060405133925087156108fc02915087906000818181858888f19350505050158015614bac573d6000803e3d6000fd5b50505050505050505050565b6000856001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015614bf357600080fd5b505afa158015614c07573d6000803e3d6000fd5b505050506040513d6020811015614c1d57600080fd5b505160408051632726b07360e01b81526004810186905290519192506000916001600160a01b03891691632726b073916024808301926020929190829003018186803b158015614c6c57600080fd5b505afa158015614c80573d6000803e3d6000fd5b505050506040513d6020811015614c9657600080fd5b505160408051632c2cb9fd60e01b81526004810187905290519192506000916001600160a01b038a1691632c2cb9fd916024808301926020929190829003018186803b158015614ce557600080fd5b505afa158015614cf9573d6000803e3d6000fd5b505050506040513d6020811015614d0f57600080fd5b5051604080516309092f9760e21b8152600481018390526001600160a01b038581166024830152825193945060009390871692632424be5c9260448082019391829003018186803b158015614d6357600080fd5b505afa158015614d77573d6000803e3d6000fd5b505050506040513d6040811015614d8d57600080fd5b50602001519050614da5878461434687828088614e4b565b6000614db1898761468e565b9050614dcd8a88614dc1846144a9565b6000038560000361240f565b614dd98a883084611178565b6040805163ef693bed60e01b81523360048201526024810188905290516001600160a01b038b169163ef693bed91604480830192600092919082900301818387803b158015614e2757600080fd5b505af1158015614e3b573d6000803e3d6000fd5b5050505050505050505050505050565b600080856001600160a01b031663d9638d36846040518263ffffffff1660e01b81526004018082815260200191505060a06040518083038186803b158015614e9257600080fd5b505afa158015614ea6573d6000803e3d6000fd5b505050506040513d60a0811015614ebc57600080fd5b5060200151604080516309092f9760e21b8152600481018690526001600160a01b0387811660248301528251939450600093908a1692632424be5c9260448082019391829003018186803b158015614f1357600080fd5b505afa158015614f27573d6000803e3d6000fd5b505050506040513d6040811015614f3d57600080fd5b5060209081015160408051633612d9a360e11b81526001600160a01b038a811660048301529151929450600093918b1692636c25b34692602480840193919291829003018186803b158015614f9157600080fd5b505afa158015614fa5573d6000803e3d6000fd5b505050506040513d6020811015614fbb57600080fd5b505190506000614fd4614fce8486615019565b83615074565b9050676765c793fa10079d601b1b8104945080614ffc86676765c793fa10079d601b1b615019565b10615007578461500c565b846001015b9998505050505050505050565b60008115806150345750508082028282828161503157fe5b04145b614688576040805162461bcd60e51b815260206004820152600c60248201526b6d756c2d6f766572666c6f7760a01b604482015290519081900360640190fd5b80820382811115614688576040805162461bcd60e51b815260206004820152600c60248201526b7375622d6f766572666c6f7760a01b604482015290519081900360640190fdfea265627a7a7231582030fd3ab47a531378409a56b8e389fa6ab00acb940d5d4f9f1a32acc657055f7164736f6c63430005100032
Deployed Bytecode
0x60806040526004361061027d5760003560e01c806396e8d72c1161014f578063c0791710116100c1578063e685cc041161007a578063e685cc0414610e11578063ead6472914610e5d578063eb0b9a8514610eb4578063ee28457614610ef7578063fba7591d14610f33578063fc784ea714610f825761027d565b8063c079171014610c00578063c56167c614610c82578063cbd4be3f14610cc5578063d8467e3114610d2d578063db802a3214610d73578063e205c10814610ddb5761027d565b8063a6add01111610113578063a6add01114610a42578063b50a586914610a97578063ba727a9514610ad2578063bcd6deec14610b19578063be5e6c0314610b68578063beabacc814610bbd5761027d565b806396e8d72c146108fc5780639f6f3d5b146109415780639f887fde14610990578063a028a55e146109cb578063a033df1214610a145761027d565b80634592aca7116101f35780636ab6a491116101ac5780636ab6a491146107555780636d68b70b1461079e57806374b49dc4146107ed5780637b5a3b43146108295780637bc3bd53146108725780637df2eb25146108b15761027d565b80634592aca714610597578063493c2049146105da5780634b66619914610623578063508629ea1461066c5780635f6ef447146106cf5780636aa3ee11146107125761027d565b80631d10f231116102455780631d10f231146103ec5780632555bac31461042f57806325cf37d0146104655780632958f8a5146104ac5780633e29e565146104fd57806342dd11bb1461054e5761027d565b8063036a23951461028257806308f00e34146102c75780630aee8dec146103105780631558b048146103595780631c02d846146103a0575b600080fd5b34801561028e57600080fd5b506102c5600480360360608110156102a557600080fd5b506001600160a01b03813581169160208101359091169060400135610fd3565b005b3480156102d357600080fd5b506102c5600480360360808110156102ea57600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135610fed565b34801561031c57600080fd5b506102c56004803603608081101561033357600080fd5b506001600160a01b0381358116916020810135821691604082013591606001351661115c565b34801561036557600080fd5b506102c56004803603608081101561037c57600080fd5b506001600160a01b0381358116916020810135916040820135169060600135611178565b6102c5600480360360c08110156103b657600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a001356111ef565b3480156103f857600080fd5b506102c56004803603606081101561040f57600080fd5b506001600160a01b038135811691602081013591604090910135166114ee565b6102c56004803603606081101561044557600080fd5b506001600160a01b0381358116916020810135909116906040013561156b565b34801561047157600080fd5b506102c56004803603608081101561048857600080fd5b506001600160a01b03813581169160208101359160408201351690606001356115fe565b3480156104b857600080fd5b506102c5600480360360a08110156104cf57600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160809091013516611657565b34801561050957600080fd5b506102c5600480360360a081101561052057600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060800135151561172a565b34801561055a57600080fd5b506102c56004803603608081101561057157600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013561192a565b3480156105a357600080fd5b506102c5600480360360608110156105ba57600080fd5b506001600160a01b0381358116916020810135916040909101351661198d565b3480156105e657600080fd5b506102c5600480360360808110156105fd57600080fd5b506001600160a01b038135811691602081013582169160408201359160600135166119ed565b34801561062f57600080fd5b506102c56004803603608081101561064657600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611be0565b34801561067857600080fd5b506106bd600480360360a081101561068f57600080fd5b506001600160a01b038135811691602081013590911690604081013590606081013590608001351515611fe0565b60408051918252519081900360200190f35b3480156106db57600080fd5b506102c5600480360360608110156106f257600080fd5b506001600160a01b03813581169160208101359091169060400135612005565b34801561071e57600080fd5b506106bd6004803603606081101561073557600080fd5b506001600160a01b03813581169160208101359160409091013516612065565b34801561076157600080fd5b506102c56004803603608081101561077857600080fd5b506001600160a01b038135811691602081013590911690604081013590606001356120ec565b3480156107aa57600080fd5b506102c5600480360360a08110156107c157600080fd5b506001600160a01b0381358116916020810135821691604082013516906060810135906080013561216c565b6106bd6004803603608081101561080357600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135612183565b34801561083557600080fd5b506102c56004803603608081101561084c57600080fd5b506001600160a01b038135811691602081013590911690604081013590606001356121a6565b34801561087e57600080fd5b506102c56004803603606081101561089557600080fd5b506001600160a01b0381351690602081013590604001356121b4565b3480156108bd57600080fd5b506102c5600480360360808110156108d457600080fd5b506001600160a01b038135811691602081013590911690604081013590606001351515612202565b34801561090857600080fd5b506102c56004803603608081101561091f57600080fd5b506001600160a01b03813516906020810135906040810135906060013561240f565b34801561094d57600080fd5b506102c5600480360360a081101561096457600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060800135612465565b34801561099c57600080fd5b506102c5600480360360408110156109b357600080fd5b506001600160a01b0381358116916020013516612726565b3480156109d757600080fd5b506102c5600480360360808110156109ee57600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013561279a565b6102c560048036036040811015610a2a57600080fd5b506001600160a01b0381358116916020013516612a16565b348015610a4e57600080fd5b506102c5600480360360c0811015610a6557600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060808101359060a00135612bfb565b348015610aa357600080fd5b506102c560048036036040811015610aba57600080fd5b506001600160a01b0381358116916020013516612eca565b348015610ade57600080fd5b506102c560048036036080811015610af557600080fd5b506001600160a01b0381358116916020810135916040820135169060600135612f22565b348015610b2557600080fd5b506102c5600480360360a0811015610b3c57600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060800135612f7b565b348015610b7457600080fd5b506102c5600480360360c0811015610b8b57600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060808101359060a00135612f92565b348015610bc957600080fd5b506102c560048036036060811015610be057600080fd5b506001600160a01b03813581169160208101359091169060400135613328565b348015610c0c57600080fd5b50610c5f600480360360e0811015610c2357600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c00135613388565b604080516001600160a01b03909316835260208301919091528051918290030190f35b348015610c8e57600080fd5b506102c560048036036060811015610ca557600080fd5b506001600160a01b0381358116916020810135909116906040013561350b565b348015610cd157600080fd5b506102c56004803603610100811015610ce957600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c08101359060e001351515613711565b6106bd600480360360a0811015610d4357600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359160809091013516613a0e565b348015610d7f57600080fd5b506106bd6004803603610100811015610d9757600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c08101359060e001351515613a34565b6102c560048036036060811015610df157600080fd5b506001600160a01b03813581169160208101359091169060400135613a5f565b6106bd600480360360c0811015610e2757600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a00135613c35565b348015610e6957600080fd5b506102c5600480360360c0811015610e8057600080fd5b506001600160a01b0381358116916020810135821691604082013591606081013591608082013515159160a0013516613c5c565b348015610ec057600080fd5b506102c560048036036060811015610ed757600080fd5b506001600160a01b03813581169160208101359091169060400135613d30565b6102c560048036036080811015610f0d57600080fd5b506001600160a01b03813581169160208101358216916040820135916060013516613d90565b348015610f3f57600080fd5b50610f6660048036036020811015610f5657600080fd5b50356001600160a01b0316613e62565b604080516001600160a01b039092168252519081900360200190f35b348015610f8e57600080fd5b506102c5600480360360a0811015610fa557600080fd5b506001600160a01b038135811691602081013590911690604081013590606081013590608001351515613edf565b610fdd8382613f71565b610fe8838383614043565b505050565b610ff984833084611178565b6040805163ef693bed60e01b81523060048201526024810183905290516001600160a01b0385169163ef693bed91604480830192600092919082900301818387803b15801561104757600080fd5b505af115801561105b573d6000803e3d6000fd5b50505050826001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561109a57600080fd5b505af11580156110ae573d6000803e3d6000fd5b505050506040513d60208110156110c457600080fd5b505160408051632e1a7d4d60e01b81526004810184905290516001600160a01b0390921691632e1a7d4d9160248082019260009290919082900301818387803b15801561111057600080fd5b505af1158015611124573d6000803e3d6000fd5b505060405133925083156108fc02915083906000818181858888f19350505050158015611155573d6000803e3d6000fd5b5050505050565b6111668483613f71565b611172848484846143d7565b50505050565b604080516313771f0760e31b8152600481018590526001600160a01b03848116602483015260448201849052915191861691639bb8f8389160648082019260009290919082900301818387803b1580156111d157600080fd5b505af11580156111e5573d6000803e3d6000fd5b5050505050505050565b6000866001600160a01b0316632726b073846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561123557600080fd5b505afa158015611249573d6000803e3d6000fd5b505050506040513d602081101561125f57600080fd5b5051604080516336569e7760e01b815290519192506000916001600160a01b038a16916336569e77916004808301926020929190829003018186803b1580156112a757600080fd5b505afa1580156112bb573d6000803e3d6000fd5b505050506040513d60208110156112d157600080fd5b505160408051632c2cb9fd60e01b81526004810187905290519192506000916001600160a01b038b1691632c2cb9fd916024808301926020929190829003018186803b15801561132057600080fd5b505afa158015611334573d6000803e3d6000fd5b505050506040513d602081101561134a57600080fd5b505190506113588784612a16565b6113788986611366346144a9565b611373868d89888c6144f4565b61240f565b61138c89863061138788614671565b6115fe565b60408051634538c4eb60e01b81523060048201526001600160a01b038881166024830152915191841691634538c4eb91604480820192602092909190829003018186803b1580156113dc57600080fd5b505afa1580156113f0573d6000803e3d6000fd5b505050506040513d602081101561140657600080fd5b505161147d57816001600160a01b031663a3b22fc4876040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b15801561146457600080fd5b505af1158015611478573d6000803e3d6000fd5b505050505b6040805163ef693bed60e01b81523360048201526024810186905290516001600160a01b0388169163ef693bed91604480830192600092919082900301818387803b1580156114cb57600080fd5b505af11580156114df573d6000803e3d6000fd5b50505050505050505050505050565b826001600160a01b031663fcafcc6883836040518363ffffffff1660e01b815260040180838152602001826001600160a01b03166001600160a01b0316815260200192505050600060405180830381600087803b15801561154e57600080fd5b505af1158015611562573d6000803e3d6000fd5b50505050505050565b6000836001600160a01b0316632726b073836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156115b157600080fd5b505afa1580156115c5573d6000803e3d6000fd5b505050506040513d60208110156115db57600080fd5b505190506115e98382612a16565b61117284836115f7346144a9565b600061240f565b60408051637cf986db60e11b8152600481018590526001600160a01b0384811660248301526044820184905291519186169163f9f30db69160648082019260009290919082900301818387803b1580156111d157600080fd5b806001600160a01b0316856001600160a01b0316638161b120856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156116a557600080fd5b505afa1580156116b9573d6000803e3d6000fd5b505050506040513d60208110156116cf57600080fd5b50516001600160a01b03161461171e576040805162461bcd60e51b815260206004820152600f60248201526e0deeedccae45adad2e6e6dac2e8c6d608b1b604482015290519081900360640190fd5b61115585858585611be0565b61173684308484612202565b846001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b15801561176f57600080fd5b505afa158015611783573d6000803e3d6000fd5b505050506040513d602081101561179957600080fd5b505160408051632c2cb9fd60e01b81526004810186905290516001600160a01b039283169263760887039290891691632c2cb9fd91602480820192602092909190829003018186803b1580156117ee57600080fd5b505afa158015611802573d6000803e3d6000fd5b505050506040513d602081101561181857600080fd5b505160408051632726b07360e01b81526004810188905290516001600160a01b038a1691632726b073916024808301926020929190829003018186803b15801561186157600080fd5b505afa158015611875573d6000803e3d6000fd5b505050506040513d602081101561188b57600080fd5b505130806118a161189c8b8a61468e565b6144a9565b604080516001600160e01b031960e089901b16815260048101969096526001600160a01b0394851660248701529284166044860152921660648401526084830191909152600060a48301819052905160c48084019382900301818387803b15801561190b57600080fd5b505af115801561191f573d6000803e3d6000fd5b505050505050505050565b61193f84833061193a878661468e565b611178565b6040805163ef693bed60e01b81523360048201526024810183905290516001600160a01b0385169163ef693bed91604480830192600092919082900301818387803b1580156111d157600080fd5b826001600160a01b0316631b0dbf7283836040518363ffffffff1660e01b815260040180838152602001826001600160a01b03166001600160a01b0316815260200192505050600060405180830381600087803b15801561154e57600080fd5b6000846001600160a01b031663c4552791836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611a4557600080fd5b505afa158015611a59573d6000803e3d6000fd5b505050506040513d6020811015611a6f57600080fd5b505190506001600160a01b0381161580611aff5750816001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611ac757600080fd5b505afa158015611adb573d6000803e3d6000fd5b505050506040513d6020811015611af157600080fd5b50516001600160a01b031614155b15611bd557813b8015611b4d576040805162461bcd60e51b8152602060048201526011602482015270111cdd0b5a5ccb584b58dbdb9d1c9858dd607a1b604482015290519081900360640190fd5b856001600160a01b031663f3701da2846040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b158015611ba557600080fd5b505af1158015611bb9573d6000803e3d6000fd5b505050506040513d6020811015611bcf57600080fd5b50519150505b6111558484836114ee565b6000846001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015611c1b57600080fd5b505afa158015611c2f573d6000803e3d6000fd5b505050506040513d6020811015611c4557600080fd5b505160408051632726b07360e01b81526004810186905290519192506000916001600160a01b03881691632726b073916024808301926020929190829003018186803b158015611c9457600080fd5b505afa158015611ca8573d6000803e3d6000fd5b505050506040513d6020811015611cbe57600080fd5b505160408051632c2cb9fd60e01b81526004810187905290519192506000916001600160a01b03891691632c2cb9fd916024808301926020929190829003018186803b158015611d0d57600080fd5b505afa158015611d21573d6000803e3d6000fd5b505050506040513d6020811015611d3757600080fd5b50516040805163040b0d8960e51b81526004810188905290519192506000916001600160a01b038a1691638161b120916024808301926020929190829003018186803b158015611d8657600080fd5b505afa158015611d9a573d6000803e3d6000fd5b505050506040513d6020811015611db057600080fd5b505190506001600160a01b038116301480611e4d5750604080516302d75da360e51b81526001600160a01b038381166004830152602482018990523060448301529151918a1691635aebb46091606480820192602092909190829003018186803b158015611e1d57600080fd5b505afa158015611e31573d6000803e3d6000fd5b505050506040513d6020811015611e4757600080fd5b50516001145b15611ef657611e5d87848761350b565b611ef18887600061137388896001600160a01b0316636c25b3468a6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611ebe57600080fd5b505afa158015611ed2573d6000803e3d6000fd5b505050506040513d6020811015611ee857600080fd5b5051898961470d565b6111e5565b611f0187308761350b565b836001600160a01b03166376088703838530306000611f2f8b676765c793fa10079d601b1b8e028c8c61470d565b6040518763ffffffff1660e01b815260040180878152602001866001600160a01b03166001600160a01b03168152602001856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018281526020019650505050505050600060405180830381600087803b158015611fbe57600080fd5b505af1158015611fd2573d6000803e3d6000fd5b505050505050505050505050565b6000611fed868530612065565b9050611ffc8686838686613edf565b95945050505050565b826001600160a01b031663b68f400483836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561154e57600080fd5b60408051636090dec560e01b8152600481018490526001600160a01b0383811660248301529151600092861691636090dec591604480830192602092919082900301818787803b1580156120b857600080fd5b505af11580156120cc573d6000803e3d6000fd5b505050506040513d60208110156120e257600080fd5b5051949350505050565b60006120f8848361468e565b90506121128584612108846144a9565b600003600061240f565b61211e85843084611178565b6040805163ef693bed60e01b81523360048201526024810184905290516001600160a01b0386169163ef693bed91604480830192600092919082900301818387803b15801561190b57600080fd5b6121768583613f71565b611155858585858561483d565b6000612190848330612065565b905061219e8585858461279a565b949350505050565b610fed8483612108846144a9565b826001600160a01b031663e50322a283836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b15801561154e57600080fd5b80156123af57836001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561224357600080fd5b505af1158015612257573d6000803e3d6000fd5b505050506040513d602081101561226d57600080fd5b5051604080516323b872dd60e01b81523360048201523060248201526044810185905290516001600160a01b03909216916323b872dd9160648082019260009290919082900301818387803b1580156122c557600080fd5b505af11580156122d9573d6000803e3d6000fd5b50505050836001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561231857600080fd5b505af115801561232c573d6000803e3d6000fd5b505050506040513d602081101561234257600080fd5b50516040805163095ea7b360e01b81526001600160a01b038781166004830152602482018690529151919092169163095ea7b391604480830192600092919082900301818387803b15801561239657600080fd5b505af11580156123aa573d6000803e3d6000fd5b505050505b836001600160a01b0316633b4da69f84846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156111d157600080fd5b836001600160a01b03166345e6bdcd8484846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b1580156111d157600080fd5b6000856001600160a01b0316632726b073846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156124ab57600080fd5b505afa1580156124bf573d6000803e3d6000fd5b505050506040513d60208110156124d557600080fd5b5051604080516336569e7760e01b815290519192506000916001600160a01b038916916336569e77916004808301926020929190829003018186803b15801561251d57600080fd5b505afa158015612531573d6000803e3d6000fd5b505050506040513d602081101561254757600080fd5b505160408051632c2cb9fd60e01b81526004810187905290519192506000916001600160a01b038a1691632c2cb9fd916024808301926020929190829003018186803b15801561259657600080fd5b505afa1580156125aa573d6000803e3d6000fd5b505050506040513d60208110156125c057600080fd5b505190506125d888866000611373868c89888c6144f4565b6125e788863061138788614671565b60408051634538c4eb60e01b81523060048201526001600160a01b038881166024830152915191841691634538c4eb91604480820192602092909190829003018186803b15801561263757600080fd5b505afa15801561264b573d6000803e3d6000fd5b505050506040513d602081101561266157600080fd5b50516126d857816001600160a01b031663a3b22fc4876040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b1580156126bf57600080fd5b505af11580156126d3573d6000803e3d6000fd5b505050505b6040805163ef693bed60e01b81523360048201526024810186905290516001600160a01b0388169163ef693bed91604480830192600092919082900301818387803b158015611fbe57600080fd5b816001600160a01b031663dc4d20fa826040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b15801561277e57600080fd5b505af1158015612792573d6000803e3d6000fd5b505050505050565b6000846001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b1580156127d557600080fd5b505afa1580156127e9573d6000803e3d6000fd5b505050506040513d60208110156127ff57600080fd5b5051604080516336569e7760e01b815290519192506001600160a01b038616916336569e7791600480820192602092909190829003018186803b15801561284557600080fd5b505afa158015612859573d6000803e3d6000fd5b505050506040513d602081101561286f57600080fd5b50516001600160a01b038281169116146128bf576040805162461bcd60e51b815260206004820152600c60248201526b0ecc2e85adad2e6dac2e8c6d60a31b604482015290519081900360640190fd5b60408051634538c4eb60e01b81523060048201526001600160a01b0387811660248301529151600092841691634538c4eb916044808301926020929190829003018186803b15801561291057600080fd5b505afa158015612924573d6000803e3d6000fd5b505050506040513d602081101561293a57600080fd5b505160408051634538c4eb60e01b81523060048201526001600160a01b0388811660248301529151921515935060009291851691634538c4eb91604480820192602092909190829003018186803b15801561299457600080fd5b505afa1580156129a8573d6000803e3d6000fd5b505050506040513d60208110156129be57600080fd5b505115159050816129d3576129d38388612eca565b806129e2576129e28387612eca565b6129ed87863061198d565b6129f8863086613d30565b81612a0757612a078388612726565b80611562576115628387612726565b816001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612a5157600080fd5b505af1158015612a65573d6000803e3d6000fd5b505050506040513d6020811015612a7b57600080fd5b505160408051630d0e30db60e41b815290516001600160a01b039092169163d0e30db0913491600480830192600092919082900301818588803b158015612ac157600080fd5b505af1158015612ad5573d6000803e3d6000fd5b5050505050816001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612b1557600080fd5b505af1158015612b29573d6000803e3d6000fd5b505050506040513d6020811015612b3f57600080fd5b50516040805163095ea7b360e01b81526001600160a01b0385811660048301523460248301529151919092169163095ea7b391604480830192600092919082900301818387803b158015612b9257600080fd5b505af1158015612ba6573d6000803e3d6000fd5b505060408051633b4da69f60e01b81526001600160a01b03858116600483015234602483015291519186169350633b4da69f925060448082019260009290919082900301818387803b15801561277e57600080fd5b6000866001600160a01b0316632726b073856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015612c4157600080fd5b505afa158015612c55573d6000803e3d6000fd5b505050506040513d6020811015612c6b57600080fd5b50519050612c7a85828461350b565b6000612c86878561468e565b9050612e708886612c96846144a9565b6000036113738c6001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015612cd557600080fd5b505afa158015612ce9573d6000803e3d6000fd5b505050506040513d6020811015612cff57600080fd5b81019080805190602001909291905050508d6001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015612d4957600080fd5b505afa158015612d5d573d6000803e3d6000fd5b505050506040513d6020811015612d7357600080fd5b505160408051633612d9a360e11b81526001600160a01b038b8116600483015291519190921691636c25b346916024808301926020929190829003018186803b158015612dbf57600080fd5b505afa158015612dd3573d6000803e3d6000fd5b505050506040513d6020811015612de957600080fd5b8101908080519060200190929190505050888f6001600160a01b0316632c2cb9fd8e6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015612e3f57600080fd5b505afa158015612e53573d6000803e3d6000fd5b505050506040513d6020811015612e6957600080fd5b505161470d565b612e7c88863084611178565b6040805163ef693bed60e01b81523360048201526024810186905290516001600160a01b0389169163ef693bed91604480830192600092919082900301818387803b158015611fbe57600080fd5b816001600160a01b031663a3b22fc4826040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b15801561277e57600080fd5b604080516305b1fdb160e11b8152600481018590526001600160a01b03848116602483015260448201849052915191861691630b63fb629160648082019260009290919082900301818387803b1580156111d157600080fd5b612f858583613f71565b6111558585858585614bb8565b6000866001600160a01b0316632726b073856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015612fd857600080fd5b505afa158015612fec573d6000803e3d6000fd5b505050506040513d602081101561300257600080fd5b5051905061301185828461350b565b6131c0878561301f866144a9565b6000036113738b6001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b15801561305e57600080fd5b505afa158015613072573d6000803e3d6000fd5b505050506040513d602081101561308857600080fd5b5051604080516336569e7760e01b815290516001600160a01b038f16916336569e77916004808301926020929190829003018186803b1580156130ca57600080fd5b505afa1580156130de573d6000803e3d6000fd5b505050506040513d60208110156130f457600080fd5b505160408051633612d9a360e11b81526001600160a01b038a8116600483015291519190921691636c25b346916024808301926020929190829003018186803b15801561314057600080fd5b505afa158015613154573d6000803e3d6000fd5b505050506040513d602081101561316a57600080fd5b8101908080519060200190929190505050878e6001600160a01b0316632c2cb9fd8d6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015612e3f57600080fd5b6131cc87853086611178565b6040805163ef693bed60e01b81523060048201526024810185905290516001600160a01b0388169163ef693bed91604480830192600092919082900301818387803b15801561321a57600080fd5b505af115801561322e573d6000803e3d6000fd5b50505050856001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561326d57600080fd5b505af1158015613281573d6000803e3d6000fd5b505050506040513d602081101561329757600080fd5b505160408051632e1a7d4d60e01b81526004810186905290516001600160a01b0390921691632e1a7d4d9160248082019260009290919082900301818387803b1580156132e357600080fd5b505af11580156132f7573d6000803e3d6000fd5b505060405133925085156108fc02915085906000818181858888f193505050501580156111e5573d6000803e3d6000fd5b826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561154e57600080fd5b60408051638c4c280160e01b8152306004820152905160009182916001600160a01b03891691638c4c2801916024808301926020929190829003018186803b1580156133d357600080fd5b505afa1580156133e7573d6000803e3d6000fd5b505050506040513d60208110156133fd57600080fd5b505191506001600160a01b03821661341b5761341887613e62565b91505b866001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561345657600080fd5b505af115801561346a573d6000803e3d6000fd5b505050506040513d602081101561348057600080fd5b50516040805163a9059cbb60e01b81526001600160a01b038581166004830152602482018890529151919092169163a9059cbb91604480830192600092919082900301818387803b1580156134d457600080fd5b505af11580156134e8573d6000803e3d6000fd5b505050506134fd898989898989896000613a34565b905097509795505050505050565b826001600160a01b031663f4b9fa756040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561354657600080fd5b505af115801561355a573d6000803e3d6000fd5b505050506040513d602081101561357057600080fd5b5051604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd9160648082019260009290919082900301818387803b1580156135c857600080fd5b505af11580156135dc573d6000803e3d6000fd5b50505050826001600160a01b031663f4b9fa756040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561361b57600080fd5b505af115801561362f573d6000803e3d6000fd5b505050506040513d602081101561364557600080fd5b50516040805163095ea7b360e01b81526001600160a01b038681166004830152602482018590529151919092169163095ea7b391604480830192600092919082900301818387803b15801561369957600080fd5b505af11580156136ad573d6000803e3d6000fd5b50505050826001600160a01b0316633b4da69f83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561154e57600080fd5b6000886001600160a01b0316632726b073866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561375757600080fd5b505afa15801561376b573d6000803e3d6000fd5b505050506040513d602081101561378157600080fd5b5051604080516336569e7760e01b815290519192506000916001600160a01b038c16916336569e77916004808301926020929190829003018186803b1580156137c957600080fd5b505afa1580156137dd573d6000803e3d6000fd5b505050506040513d60208110156137f357600080fd5b505160408051632c2cb9fd60e01b81526004810189905290519192506000916001600160a01b038d1691632c2cb9fd916024808301926020929190829003018186803b15801561384257600080fd5b505afa158015613856573d6000803e3d6000fd5b505050506040513d602081101561386c57600080fd5b5051905061387c89848887612202565b61389b8b8861388e61189c8d8b61468e565b611373868f89888d6144f4565b6138aa8b883061138789614671565b60408051634538c4eb60e01b81523060048201526001600160a01b038a81166024830152915191841691634538c4eb91604480820192602092909190829003018186803b1580156138fa57600080fd5b505afa15801561390e573d6000803e3d6000fd5b505050506040513d602081101561392457600080fd5b505161399b57816001600160a01b031663a3b22fc4896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b15801561398257600080fd5b505af1158015613996573d6000803e3d6000fd5b505050505b6040805163ef693bed60e01b81523360048201526024810187905290516001600160a01b038a169163ef693bed91604480830192600092919082900301818387803b1580156139e957600080fd5b505af11580156139fd573d6000803e3d6000fd5b505050505050505050505050505050565b6000613a1b858430612065565b9050613a2885858361156b565b611ffc868683856119ed565b6000613a41898630612065565b9050613a538989898985898989613711565b98975050505050505050565b613a698230612a16565b826001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015613aa257600080fd5b505afa158015613ab6573d6000803e3d6000fd5b505050506040513d6020811015613acc57600080fd5b505160408051632c2cb9fd60e01b81526004810184905290516001600160a01b039283169263760887039290871691632c2cb9fd91602480820192602092909190829003018186803b158015613b2157600080fd5b505afa158015613b35573d6000803e3d6000fd5b505050506040513d6020811015613b4b57600080fd5b505160408051632726b07360e01b81526004810186905290516001600160a01b03881691632726b073916024808301926020929190829003018186803b158015613b9457600080fd5b505afa158015613ba8573d6000803e3d6000fd5b505050506040513d6020811015613bbe57600080fd5b50513080613bcb346144a9565b604080516001600160e01b031960e089901b16815260048101969096526001600160a01b0394851660248701529284166044860152921660648401526084830191909152600060a48301819052905160c48084019382900301818387803b15801561154e57600080fd5b6000613c42878430612065565b9050613c528787878785876111ef565b9695505050505050565b806001600160a01b0316866001600160a01b0316638161b120866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015613caa57600080fd5b505afa158015613cbe573d6000803e3d6000fd5b505050506040513d6020811015613cd457600080fd5b50516001600160a01b031614613d23576040805162461bcd60e51b815260206004820152600f60248201526e0deeedccae45adad2e6e6dac2e8c6d608b1b604482015290519081900360640190fd5b612792868686868661172a565b826001600160a01b0316637e348b7d83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561154e57600080fd5b806001600160a01b0316846001600160a01b0316638161b120846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015613dde57600080fd5b505afa158015613df2573d6000803e3d6000fd5b505050506040513d6020811015613e0857600080fd5b50516001600160a01b031614613e57576040805162461bcd60e51b815260206004820152600f60248201526e0deeedccae45adad2e6e6dac2e8c6d608b1b604482015290519081900360640190fd5b611172848484613a5f565b60408051631060930d60e01b815230600482015290516000916001600160a01b03841691631060930d9160248082019260209290919082900301818787803b158015613ead57600080fd5b505af1158015613ec1573d6000803e3d6000fd5b505050506040513d6020811015613ed757600080fd5b505192915050565b6000856001600160a01b0316632726b073856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015613f2557600080fd5b505afa158015613f39573d6000803e3d6000fd5b505050506040513d6020811015613f4f57600080fd5b50519050613f5f85828585612202565b61279286856115f761189c898861468e565b6000826001600160a01b03166310b89f30836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b158015613fb957600080fd5b505af1158015613fcd573d6000803e3d6000fd5b505050506040513d6020811015613fe357600080fd5b5051111561403f57604080516345e6bdcd60e01b8152600481018390526000602482018190526044820181905291516001600160a01b038516926345e6bdcd926064808201939182900301818387803b15801561277e57600080fd5b5050565b6000836001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b15801561407e57600080fd5b505afa158015614092573d6000803e3d6000fd5b505050506040513d60208110156140a857600080fd5b505160408051632726b07360e01b81526004810185905290519192506000916001600160a01b03871691632726b073916024808301926020929190829003018186803b1580156140f757600080fd5b505afa15801561410b573d6000803e3d6000fd5b505050506040513d602081101561412157600080fd5b505160408051632c2cb9fd60e01b81526004810186905290519192506000916001600160a01b03881691632c2cb9fd916024808301926020929190829003018186803b15801561417057600080fd5b505afa158015614184573d6000803e3d6000fd5b505050506040513d602081101561419a57600080fd5b5051604080516309092f9760e21b8152600481018390526001600160a01b038581166024830152825193945060009390871692632424be5c9260448082019391829003018186803b1580156141ee57600080fd5b505afa158015614202573d6000803e3d6000fd5b505050506040513d604081101561421857600080fd5b506020908101516040805163040b0d8960e51b81526004810189905290519193506000926001600160a01b038b1692638161b120926024808201939291829003018186803b15801561426957600080fd5b505afa15801561427d573d6000803e3d6000fd5b505050506040513d602081101561429357600080fd5b505190506001600160a01b0381163014806143305750604080516302d75da360e51b81526001600160a01b038381166004830152602482018990523060448301529151918a1691635aebb46091606480820192602092909190829003018186803b15801561430057600080fd5b505afa158015614314573d6000803e3d6000fd5b505050506040513d602081101561432a57600080fd5b50516001145b1561435b5761434b878561434688888989614e4b565b61350b565b611ef1888760008560000361240f565b61436c873061434688308989614e4b565b60408051637608870360e01b8152600481018590526001600160a01b0386811660248301523060448301819052606483015260006084830181905285810360a484015292519088169263760887039260c4808201939182900301818387803b158015611fbe57600080fd5b806001600160a01b0316846001600160a01b0316638161b120846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561442557600080fd5b505afa158015614439573d6000803e3d6000fd5b505050506040513d602081101561444f57600080fd5b50516001600160a01b03161461449e576040805162461bcd60e51b815260206004820152600f60248201526e0deeedccae45adad2e6e6dac2e8c6d608b1b604482015290519081900360640190fd5b611172848484610fd3565b8060008112156144ef576040805162461bcd60e51b815260206004820152600c60248201526b696e742d6f766572666c6f7760a01b604482015290519081900360640190fd5b919050565b600080856001600160a01b03166344e2a5a8856040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b15801561453d57600080fd5b505af1158015614551573d6000803e3d6000fd5b505050506040513d602081101561456757600080fd5b505160408051633612d9a360e11b81526001600160a01b0388811660048301529151929350600092918a1691636c25b34691602480820192602092909190829003018186803b1580156145b957600080fd5b505afa1580156145cd573d6000803e3d6000fd5b505050506040513d60208110156145e357600080fd5b505190506145fc84676765c793fa10079d601b1b615019565b811015614666576146328261462561461f87676765c793fa10079d601b1b615019565b84615074565b8161462c57fe5b046144a9565b925061464984676765c793fa10079d601b1b615019565b6146538484615019565b1061465e5782614663565b826001015b92505b505095945050505050565b600061468882676765c793fa10079d601b1b615019565b92915050565b600061470682846001600160a01b031663b3bcfa826040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156146cf57600080fd5b505af11580156146e3573d6000803e3d6000fd5b505050506040513d60208110156146f957600080fd5b5051601203600a0a615019565b9392505050565b600080856001600160a01b031663d9638d36846040518263ffffffff1660e01b81526004018082815260200191505060a06040518083038186803b15801561475457600080fd5b505afa158015614768573d6000803e3d6000fd5b505050506040513d60a081101561477e57600080fd5b5060200151604080516309092f9760e21b8152600481018690526001600160a01b0387811660248301528251939450600093908a1692632424be5c9260448082019391829003018186803b1580156147d557600080fd5b505afa1580156147e9573d6000803e3d6000fd5b505050506040513d60408110156147ff57600080fd5b5060200151905061481282878161462c57fe5b92508083111561482d57614825816144a9565b600003614832565b826000035b979650505050505050565b6000856001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b15801561487857600080fd5b505afa15801561488c573d6000803e3d6000fd5b505050506040513d60208110156148a257600080fd5b505160408051632726b07360e01b81526004810186905290519192506000916001600160a01b03891691632726b073916024808301926020929190829003018186803b1580156148f157600080fd5b505afa158015614905573d6000803e3d6000fd5b505050506040513d602081101561491b57600080fd5b505160408051632c2cb9fd60e01b81526004810187905290519192506000916001600160a01b038a1691632c2cb9fd916024808301926020929190829003018186803b15801561496a57600080fd5b505afa15801561497e573d6000803e3d6000fd5b505050506040513d602081101561499457600080fd5b5051604080516309092f9760e21b8152600481018390526001600160a01b038581166024830152825193945060009390871692632424be5c9260448082019391829003018186803b1580156149e857600080fd5b505afa1580156149fc573d6000803e3d6000fd5b505050506040513d6040811015614a1257600080fd5b50602001519050614a2a878461434687828088614e4b565b614a448987614a38886144a9565b6000038460000361240f565b614a5089873088611178565b6040805163ef693bed60e01b81523060048201526024810187905290516001600160a01b038a169163ef693bed91604480830192600092919082900301818387803b158015614a9e57600080fd5b505af1158015614ab2573d6000803e3d6000fd5b50505050876001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b158015614af157600080fd5b505af1158015614b05573d6000803e3d6000fd5b505050506040513d6020811015614b1b57600080fd5b505160408051632e1a7d4d60e01b81526004810188905290516001600160a01b0390921691632e1a7d4d9160248082019260009290919082900301818387803b158015614b6757600080fd5b505af1158015614b7b573d6000803e3d6000fd5b505060405133925087156108fc02915087906000818181858888f19350505050158015614bac573d6000803e3d6000fd5b50505050505050505050565b6000856001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015614bf357600080fd5b505afa158015614c07573d6000803e3d6000fd5b505050506040513d6020811015614c1d57600080fd5b505160408051632726b07360e01b81526004810186905290519192506000916001600160a01b03891691632726b073916024808301926020929190829003018186803b158015614c6c57600080fd5b505afa158015614c80573d6000803e3d6000fd5b505050506040513d6020811015614c9657600080fd5b505160408051632c2cb9fd60e01b81526004810187905290519192506000916001600160a01b038a1691632c2cb9fd916024808301926020929190829003018186803b158015614ce557600080fd5b505afa158015614cf9573d6000803e3d6000fd5b505050506040513d6020811015614d0f57600080fd5b5051604080516309092f9760e21b8152600481018390526001600160a01b038581166024830152825193945060009390871692632424be5c9260448082019391829003018186803b158015614d6357600080fd5b505afa158015614d77573d6000803e3d6000fd5b505050506040513d6040811015614d8d57600080fd5b50602001519050614da5878461434687828088614e4b565b6000614db1898761468e565b9050614dcd8a88614dc1846144a9565b6000038560000361240f565b614dd98a883084611178565b6040805163ef693bed60e01b81523360048201526024810188905290516001600160a01b038b169163ef693bed91604480830192600092919082900301818387803b158015614e2757600080fd5b505af1158015614e3b573d6000803e3d6000fd5b5050505050505050505050505050565b600080856001600160a01b031663d9638d36846040518263ffffffff1660e01b81526004018082815260200191505060a06040518083038186803b158015614e9257600080fd5b505afa158015614ea6573d6000803e3d6000fd5b505050506040513d60a0811015614ebc57600080fd5b5060200151604080516309092f9760e21b8152600481018690526001600160a01b0387811660248301528251939450600093908a1692632424be5c9260448082019391829003018186803b158015614f1357600080fd5b505afa158015614f27573d6000803e3d6000fd5b505050506040513d6040811015614f3d57600080fd5b5060209081015160408051633612d9a360e11b81526001600160a01b038a811660048301529151929450600093918b1692636c25b34692602480840193919291829003018186803b158015614f9157600080fd5b505afa158015614fa5573d6000803e3d6000fd5b505050506040513d6020811015614fbb57600080fd5b505190506000614fd4614fce8486615019565b83615074565b9050676765c793fa10079d601b1b8104945080614ffc86676765c793fa10079d601b1b615019565b10615007578461500c565b846001015b9998505050505050505050565b60008115806150345750508082028282828161503157fe5b04145b614688576040805162461bcd60e51b815260206004820152600c60248201526b6d756c2d6f766572666c6f7760a01b604482015290519081900360640190fd5b80820382811115614688576040805162461bcd60e51b815260206004820152600c60248201526b7375622d6f766572666c6f7760a01b604482015290519081900360640190fdfea265627a7a7231582030fd3ab47a531378409a56b8e389fa6ab00acb940d5d4f9f1a32acc657055f7164736f6c63430005100032
Deployed Bytecode Sourcemap
32976:3817:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35785:195;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35785:195:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;35785:195:0;;;;;;;;;;;;;;;;;:::i;:::-;;14909:526;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14909:526:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;14909:526:0;;;;;;;;;;;;;;;;;;;;;;:::i;35988:234::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35988:234:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;35988:234:0;;;;;;;;;;;;;;;;;;;;;;:::i;10828:173::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10828:173:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;10828:173:0;;;;;;;;;;;;;;;;;;;;:::i;19435:1058::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;19435:1058:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9392:149::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9392:149:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9392:149:0;;;;;;;;;;;;;;;;;:::i;33744:409::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;33744:409:0;;;;;;;;;;;;;;;;;:::i;11009:173::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11009:173:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;11009:173:0;;;;;;;;;;;;;;;;;;;;:::i;17773:275::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17773:275:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;17773:275:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12832:611::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12832:611:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;12832:611:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15443:383::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15443:383:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;15443:383:0;;;;;;;;;;;;;;;;;;;;;;:::i;11370:149::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11370:149:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11370:149:0;;;;;;;;;;;;;;;;;:::i;9549:921::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9549:921:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;9549:921:0;;;;;;;;;;;;;;;;;;;;;;:::i;16697:1068::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16697:1068:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;16697:1068:0;;;;;;;;;;;;;;;;;;;;;;:::i;35006:301::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35006:301:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;35006:301:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;10665:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10665:155:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;10665:155:0;;;;;;;;;;;;;;;;;:::i;9207:177::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9207:177:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9207:177:0;;;;;;;;;;;;;;;;;:::i;14404:497::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14404:497:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;14404:497:0;;;;;;;;;;;;;;;;;;;;;;:::i;36230:276::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;36230:276:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;36230:276:0;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;35319:295::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;35319:295:0;;;;;;;;;;;;;;;;;;;;;;:::i;13782:614::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13782:614:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;13782:614:0;;;;;;;;;;;;;;;;;;;;;;:::i;11686:160::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11686:160:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11686:160:0;;;;;;;;;;;;;:::i;8404:551::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8404:551:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;8404:551:0;;;;;;;;;;;;;;;;;;;;;;;;:::i;11190:172::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11190:172:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;11190:172:0;;;;;;;;;;;;;;;;;;:::i;15834:855::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15834:855:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;15834:855:0;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9085:114::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9085:114:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9085:114:0;;;;;;;;;;:::i;33025:711::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33025:711:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;33025:711:0;;;;;;;;;;;;;;;;;;;;;;:::i;8021:375::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8021:375:0;;;;;;;;;;:::i;25195:905::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25195:905:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;25195:905:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;8963:114::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8963:114:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8963:114:0;;;;;;;;;;:::i;10478:179::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10478:179:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;10478:179:0;;;;;;;;;;;;;;;;;;;;:::i;36514:276::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;36514:276:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;36514:276:0;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;23075:1022::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23075:1022:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;23075:1022:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7902:111::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7902:111:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7902:111:0;;;;;;;;;;;;;;;;;:::i;22389:678::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22389:678:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;22389:678:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;22389:678:0;;;;;;;;;;;;;;;;;;;;;4442:375;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4442:375:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4442:375:0;;;;;;;;;;;;;;;;;:::i;20846:1130::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20846:1130:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;20846:1130:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;34638:360::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;34638:360:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;21984:397::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21984:397:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;21984:397:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12009:542::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12009:542:0;;;;;;;;;;;;;;;;;:::i;20501:337::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;20501:337:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;13451:323::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13451:323:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;13451:323:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;11527:151::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11527:151:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11527:151:0;;;;;;;;;;;;;;;;;:::i;12559:265::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;12559:265:0;;;;;;;;;;;;;;;;;;;;;;:::i;11854:147::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11854:147:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11854:147:0;-1:-1:-1;;;;;11854:147:0;;:::i;:::-;;;;-1:-1:-1;;;;;11854:147:0;;;;;;;;;;;;;;34161:465;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34161:465:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;34161:465:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;35785:195::-;35898:27;35912:7;35921:3;35898:13;:27::i;:::-;35936:36;35950:7;35959;35968:3;35936:13;:36::i;:::-;35785:195;;;:::o;14909:526::-;15106:38;15111:7;15120:3;15133:4;15140:3;15106:4;:38::i;:::-;15215:45;;;-1:-1:-1;;;15215:45:0;;15249:4;15215:45;;;;;;;;;;;;-1:-1:-1;;;;;15215:25:0;;;;;:45;;;;;-1:-1:-1;;15215:45:0;;;;;;;-1:-1:-1;15215:25:0;:45;;;5:2:-1;;;;30:1;27;20:12;5:2;15215:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15215:45:0;;;;15316:7;-1:-1:-1;;;;;15304:24:0;;:26;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15304:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15304:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15304:26:0;:40;;;-1:-1:-1;;;15304:40:0;;;;;;;;;;-1:-1:-1;;;;;15304:35:0;;;;;;:40;;;;;-1:-1:-1;;15304:40:0;;;;;;;;-1:-1:-1;15304:35:0;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;15304:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;15403:24:0;;:10;;-1:-1:-1;15403:24:0;;;;;-1:-1:-1;15423:3:0;;15403:24;;;;15423:3;15403:10;:24;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15403:24:0;14909:526;;;;:::o;35988:234::-;36129:27;36143:7;36152:3;36129:13;:27::i;:::-;36167:47;36185:7;36194;36203:3;36208:5;36167:17;:47::i;:::-;35988:234;;;;:::o;10828:173::-;10953:40;;;-1:-1:-1;;;10953:40:0;;;;;;;;-1:-1:-1;;;;;10953:40:0;;;;;;;;;;;;;;;:25;;;;;;:40;;;;;-1:-1:-1;;10953:40:0;;;;;;;;-1:-1:-1;10953:25:0;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;10953:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10953:40:0;;;;10828:173;;;;:::o;19435:1058::-;19631:11;19657:7;-1:-1:-1;;;;;19645:25:0;;19671:3;19645:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19645:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19645:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19645:30:0;19700:26;;;-1:-1:-1;;;19700:26:0;;;;19645:30;;-1:-1:-1;19686:11:0;;-1:-1:-1;;;;;19700:24:0;;;;;:26;;;;;19645:30;;19700:26;;;;;;;:24;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;19700:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19700:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19700:26:0;19751:30;;;-1:-1:-1;;;19751:30:0;;;;;;;;;;19700:26;;-1:-1:-1;19737:11:0;;-1:-1:-1;;;;;19751:25:0;;;;;:30;;;;;19700:26;;19751:30;;;;;;;:25;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;19751:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19751:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19751:30:0;;-1:-1:-1;19871:26:0;19884:7;19893:3;19871:12;:26::i;:::-;19970:76;19975:7;19984:3;19989:16;19995:9;19989:5;:16::i;:::-;20007:38;20020:3;20025;20030;20035;20040:4;20007:12;:38::i;:::-;19970:4;:76::i;:::-;20137:46;20142:7;20151:3;20164:4;20171:11;20177:4;20171:5;:11::i;:::-;20137:4;:46::i;:::-;20269:49;;;-1:-1:-1;;;20269:49:0;;20294:4;20269:49;;;;-1:-1:-1;;;;;20269:49:0;;;;;;;;;:16;;;;;;:49;;;;;;;;;;;;;;;:16;:49;;;5:2:-1;;;;30:1;27;20:12;5:2;20269:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20269:49:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20269:49:0;20265:113;;20348:3;-1:-1:-1;;;;;20340:17:0;;20358:7;20340:26;;;;;;;;;;;;;-1:-1:-1;;;;;20340:26:0;-1:-1:-1;;;;;20340:26:0;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20340:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20340:26:0;;;;20265:113;20442:43;;;-1:-1:-1;;;20442:43:0;;20468:10;20442:43;;;;;;;;;;;;-1:-1:-1;;;;;20442:25:0;;;;;:43;;;;;-1:-1:-1;;20442:43:0;;;;;;;-1:-1:-1;20442:25:0;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;20442:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20442:43:0;;;;19435:1058;;;;;;;;;:::o;9392:149::-;9510:7;-1:-1:-1;;;;;9498:25:0;;9524:3;9529;9498:35;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9498:35:0;-1:-1:-1;;;;;9498:35:0;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9498:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9498:35:0;;;;9392:149;;;:::o;33744:409::-;33871:11;33897:7;-1:-1:-1;;;;;33885:25:0;;33911:3;33885:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33885:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33885:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33885:30:0;;-1:-1:-1;34007:26:0;34020:7;33885:30;34007:12;:26::i;:::-;34106:39;34111:7;34120:3;34125:16;34131:9;34125:5;:16::i;:::-;34143:1;34106:4;:39::i;11009:173::-;11134:40;;;-1:-1:-1;;;11134:40:0;;;;;;;;-1:-1:-1;;;;;11134:40:0;;;;;;;;;;;;;;;:25;;;;;;:40;;;;;-1:-1:-1;;11134:40:0;;;;;;;;-1:-1:-1;11134:25:0;:40;;;5:2:-1;;;;30:1;27;20:12;17773:275:0;17972:5;-1:-1:-1;;;;;17938:39:0;17950:7;-1:-1:-1;;;;;17938:25:0;;17964:3;17938:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17938:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17938:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17938:30:0;-1:-1:-1;;;;;17938:39:0;;17930:67;;;;;-1:-1:-1;;;17930:67:0;;;;;;;;;;;;-1:-1:-1;;;17930:67:0;;;;;;;;;;;;;;;18008:32;18013:7;18022;18031:3;18036;18008:4;:32::i;12832:611::-;13065:55;13078:7;13095:4;13102:3;13107:12;13065;:55::i;:::-;13195:7;-1:-1:-1;;;;;13183:24:0;;:26;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13183:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13183:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13183:26:0;13230:30;;;-1:-1:-1;;;13230:30:0;;;;;;;;;;-1:-1:-1;;;;;13175:40:0;;;;;;13230:25;;;;;;:30;;;;;13183:26;;13230:30;;;;;;;;:25;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;13230:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13230:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13230:30:0;13275;;;-1:-1:-1;;;13275:30:0;;;;;;;;;;-1:-1:-1;;;;;13275:25:0;;;;;:30;;;;;13230;;13275;;;;;;;:25;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;13275:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13275:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13275:30:0;13328:4;;13376:32;13382:25;13394:7;13403:3;13382:11;:25::i;:::-;13376:5;:32::i;:::-;13175:260;;;-1:-1:-1;;;;;;13175:260:0;;;;;;;;;;;;;;-1:-1:-1;;;;;13175:260:0;;;;;;;;;;;;;;;;;;;;;;;;;;;13423:1;13175:260;;;;;;;;;;;;;;;;;;13423:1;13175:260;;;;5:2:-1;;;;30:1;27;20:12;5:2;13175:260:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13175:260:0;;;;12832:611;;;;;:::o;15443:383::-;15640:60;15645:7;15654:3;15667:4;15674:25;15686:7;15695:3;15674:11;:25::i;:::-;15640:4;:60::i;:::-;15776:42;;;-1:-1:-1;;;15776:42:0;;15802:10;15776:42;;;;;;;;;;;;-1:-1:-1;;;;;15776:25:0;;;;;:42;;;;;-1:-1:-1;;15776:42:0;;;;;;;-1:-1:-1;15776:25:0;:42;;;5:2:-1;;;;30:1;27;20:12;11370:149:0;11488:7;-1:-1:-1;;;;;11476:25:0;;11502:3;11507;11476:35;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11476:35:0;-1:-1:-1;;;;;11476:35:0;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;9549:921:0;9732:13;9766;-1:-1:-1;;;;;9748:40:0;;9789:3;9748:45;;;;;;;;;;;;;-1:-1:-1;;;;;9748:45:0;-1:-1:-1;;;;;9748:45:0;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9748:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9748:45:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9748:45:0;;-1:-1:-1;;;;;;9899:19:0;;;;:54;;;9950:3;-1:-1:-1;;;;;9922:31:0;9932:5;-1:-1:-1;;;;;9922:22:0;;:24;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9922:24:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9922:24:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9922:24:0;-1:-1:-1;;;;;9922:31:0;;;9899:54;9895:489;;;10032:16;;10220:10;;10212:40;;;;;-1:-1:-1;;;10212:40:0;;;;;;;;;;;;-1:-1:-1;;;10212:40:0;;;;;;;;;;;;;;;10347:13;-1:-1:-1;;;;;10329:38:0;;10368:3;10329:43;;;;;;;;;;;;;-1:-1:-1;;;;;10329:43:0;-1:-1:-1;;;;;10329:43:0;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10329:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10329:43:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10329:43:0;;-1:-1:-1;;9895:489:0;10437:25;10442:7;10451:3;10456:5;10437:4;:25::i;16697:1068::-;16826:11;16852:7;-1:-1:-1;;;;;16840:24:0;;:26;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16840:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16840:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16840:26:0;16891:30;;;-1:-1:-1;;;16891:30:0;;;;;;;;;;16840:26;;-1:-1:-1;16877:11:0;;-1:-1:-1;;;;;16891:25:0;;;;;:30;;;;;16840:26;;16891:30;;;;;;;:25;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;16891:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16891:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16891:30:0;16946;;;-1:-1:-1;;;16946:30:0;;;;;;;;;;16891;;-1:-1:-1;16932:11:0;;-1:-1:-1;;;;;16946:25:0;;;;;:30;;;;;16891;;16946;;;;;;;:25;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;16946:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16946:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16946:30:0;17003;;;-1:-1:-1;;;17003:30:0;;;;;;;;;;16946;;-1:-1:-1;16989:11:0;;-1:-1:-1;;;;;17003:25:0;;;;;:30;;;;;16946;;17003;;;;;;;:25;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;17003:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17003:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17003:30:0;;-1:-1:-1;;;;;;17048:20:0;;17063:4;17048:20;;:81;;-1:-1:-1;17072:52:0;;;-1:-1:-1;;;17072:52:0;;-1:-1:-1;;;;;17072:52:0;;;;;;;;;;;;;17118:4;17072:52;;;;;;:27;;;;;;:52;;;;;;;;;;;;;;;:27;:52;;;5:2:-1;;;;30:1;27;20:12;5:2;17072:52:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17072:52:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17072:52:0;17128:1;17072:57;17048:81;17044:714;;;17192:31;17205:7;17214:3;17219;17192:12;:31::i;:::-;17279:73;17284:7;17293:3;17298:1;17301:50;17314:3;17327;-1:-1:-1;;;;;17319:16:0;;17336:3;17319:21;;;;;;;;;;;;;-1:-1:-1;;;;;17319:21:0;-1:-1:-1;;;;;17319:21:0;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17319:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17319:21:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17319:21:0;17342:3;17347;17301:12;:50::i;17279:73::-;17044:714;;;17432:41;17445:7;17462:4;17469:3;17432:12;:41::i;:::-;17537:3;-1:-1:-1;;;;;17529:17:0;;17565:3;17587;17617:4;17649;17673:1;17693:38;17706:3;-1:-1:-1;;;17711:3:0;:9;17722:3;17727;17693:12;:38::i;:::-;17529:217;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17529:217:0;-1:-1:-1;;;;;17529:217:0;;;;;;-1:-1:-1;;;;;17529:217:0;-1:-1:-1;;;;;17529:217:0;;;;;;-1:-1:-1;;;;;17529:217:0;-1:-1:-1;;;;;17529:217:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17529:217:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17529:217:0;;;;16697:1068;;;;;;;;:::o;35006:301::-;35177:8;35204:33;35209:7;35218:3;35231:4;35204;:33::i;:::-;35198:39;;35248:51;35262:7;35270;35278:3;35282;35286:12;35248:13;:51::i;:::-;35006:301;;;;;;;:::o;10665:155::-;10786:7;-1:-1:-1;;;;;10774:29:0;;10804:3;10809:2;10774:38;;;;;;;;;;;;;-1:-1:-1;;;;;10774:38:0;-1:-1:-1;;;;;10774:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;9207:177:0;9341:35;;;-1:-1:-1;;;9341:35:0;;;;;;;;-1:-1:-1;;;;;9341:35:0;;;;;;;;;9314:8;;9341:25;;;;;:35;;;;;;;;;;;;;;9314:8;9341:25;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;9341:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9341:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9341:35:0;;9207:177;-1:-1:-1;;;;9207:177:0:o;14404:497::-;14536:8;14547:25;14559:7;14568:3;14547:11;:25::i;:::-;14536:36;;14629:34;14634:7;14643:3;14649:10;14655:3;14649:5;:10::i;:::-;14648:11;;14661:1;14629:4;:34::i;:::-;14739:38;14744:7;14753:3;14766:4;14773:3;14739:4;:38::i;:::-;14851:42;;;-1:-1:-1;;;14851:42:0;;14877:10;14851:42;;;;;;;;;;;;-1:-1:-1;;;;;14851:25:0;;;;;:42;;;;;-1:-1:-1;;14851:42:0;;;;;;;-1:-1:-1;14851:25:0;:42;;;5:2:-1;;;;30:1;27;20:12;36230:276:0;36399:27;36413:7;36422:3;36399:13;:27::i;:::-;36437:61;36461:7;36470;36479;36488:3;36493:4;36437:23;:61::i;35319:295::-;35486:8;35513:36;35518:10;35530:3;35543:4;35513;:36::i;:::-;35507:42;;35560:46;35573:10;35584;35595:6;35602:3;35560:12;:46::i;:::-;35319:295;;;;;;:::o;13782:614::-;13959:34;13964:7;13973:3;13979:10;13985:3;13979:5;:10::i;11686:160::-;11808:7;-1:-1:-1;;;;;11796:26:0;;11823:6;11831;11796:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;8404:551:0;8587:12;8583:275;;;8678:3;-1:-1:-1;;;;;8666:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8666:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8666:22:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8666:22:0;:67;;;-1:-1:-1;;;8666:67:0;;8702:10;8666:67;;;;8722:4;8666:67;;;;;;;;;;;;-1:-1:-1;;;;;8666:35:0;;;;;;:67;;;;;-1:-1:-1;;8666:67:0;;;;;;;;-1:-1:-1;8666:35:0;:67;;;5:2:-1;;;;30:1;27;20:12;5:2;8666:67:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8666:67:0;;;;8818:3;-1:-1:-1;;;;;8806:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8806:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8806:22:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8806:22:0;:40;;;-1:-1:-1;;;8806:40:0;;-1:-1:-1;;;;;8806:40:0;;;;;;;;;;;;;;;:30;;;;;;;:40;;;;;-1:-1:-1;;8806:40:0;;;;;;;-1:-1:-1;8806:30:0;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;8806:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8806:40:0;;;;8583:275;8928:3;-1:-1:-1;;;;;8916:21:0;;8938:3;8943;8916:31;;;;;;;;;;;;;-1:-1:-1;;;;;8916:31:0;-1:-1:-1;;;;;8916:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;11190:172:0;11324:7;-1:-1:-1;;;;;11312:25:0;;11338:3;11343:4;11349;11312:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;15834:855:0;15985:11;16011:7;-1:-1:-1;;;;;15999:25:0;;16025:3;15999:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15999:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15999:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15999:30:0;16054:26;;;-1:-1:-1;;;16054:26:0;;;;15999:30;;-1:-1:-1;16040:11:0;;-1:-1:-1;;;;;16054:24:0;;;;;:26;;;;;15999:30;;16054:26;;;;;;;:24;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;16054:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16054:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16054:26:0;16105:30;;;-1:-1:-1;;;16105:30:0;;;;;;;;;;16054:26;;-1:-1:-1;16091:11:0;;-1:-1:-1;;;;;16105:25:0;;;;;:30;;;;;16054:26;;16105:30;;;;;;;:25;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;16105:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16105:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16105:30:0;;-1:-1:-1;16184:60:0;16189:7;16198:3;16203:1;16206:37;16219:3;16224;16229;16105:30;16239:3;16206:12;:37::i;16184:60::-;16335:45;16340:7;16349:3;16362:4;16369:10;16375:3;16369:5;:10::i;16335:45::-;16466:49;;;-1:-1:-1;;;16466:49:0;;16491:4;16466:49;;;;-1:-1:-1;;;;;16466:49:0;;;;;;;;;:16;;;;;;:49;;;;;;;;;;;;;;;:16;:49;;;5:2:-1;;;;30:1;27;20:12;5:2;16466:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16466:49:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16466:49:0;16462:113;;16545:3;-1:-1:-1;;;;;16537:17:0;;16555:7;16537:26;;;;;;;;;;;;;-1:-1:-1;;;;;16537:26:0;-1:-1:-1;;;;;16537:26:0;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16537:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16537:26:0;;;;16462:113;16639:42;;;-1:-1:-1;;;16639:42:0;;16665:10;16639:42;;;;;;;;;;;;-1:-1:-1;;;;;16639:25:0;;;;;:42;;;;;-1:-1:-1;;16639:42:0;;;;;;;-1:-1:-1;16639:25:0;:42;;;5:2:-1;;;;30:1;27;20:12;9085:114:0;9177:3;-1:-1:-1;;;;;9168:18:0;;9187:3;9168:23;;;;;;;;;;;;;-1:-1:-1;;;;;9168:23:0;-1:-1:-1;;;;;9168:23:0;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9168:23:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9168:23:0;;;;9085:114;;:::o;33025:711::-;33174:11;33200:10;-1:-1:-1;;;;;33188:27:0;;:29;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33188:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33188:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33188:29:0;33243;;;-1:-1:-1;;;33243:29:0;;;;33188;;-1:-1:-1;;;;;;33243:27:0;;;;;:29;;;;;33188;;33243;;;;;;;;:27;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;33243:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33243:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33243:29:0;-1:-1:-1;;;;;33236:36:0;;;;;;33228:61;;;;;-1:-1:-1;;;33228:61:0;;;;;;;;;;;;-1:-1:-1;;;33228:61:0;;;;;;;;;;;;;;;33317:43;;;-1:-1:-1;;;33317:43:0;;33342:4;33317:43;;;;-1:-1:-1;;;;;33317:43:0;;;;;;;;;33302:11;;33317:16;;;;;:43;;;;;;;;;;;;;;:16;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;33317:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33317:43:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33317:43:0;33392;;;-1:-1:-1;;;33392:43:0;;33417:4;33392:43;;;;-1:-1:-1;;;;;33392:43:0;;;;;;;;;33317:48;;;;-1:-1:-1;33364:1:0;;33392:16;;;;;;:43;;;;;33317;;33392;;;;;;;;:16;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;33392:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33392:43:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33392:43:0;:48;;;-1:-1:-1;33459:6:0;33454:34;;33467:21;33472:3;33477:10;33467:4;:21::i;:::-;33504:6;33499:34;;33512:21;33517:3;33522:10;33512:4;:21::i;:::-;33546:39;33551:10;33563:6;33579:4;33546;:39::i;:::-;33596:40;33602:10;33622:4;33629:6;33596:5;:40::i;:::-;33654:6;33649:34;;33662:21;33667:3;33672:10;33662:4;:21::i;:::-;33699:6;33694:34;;33707:21;33712:3;33717:10;33707:4;:21::i;8021:375::-;8137:3;-1:-1:-1;;;;;8125:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8125:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8125:22:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8125:22:0;:49;;;-1:-1:-1;;;8125:49:0;;;;-1:-1:-1;;;;;8125:30:0;;;;;;8162:9;;8125:49;;;;;;;;;;;;;;8162:9;8125:30;:49;;;5:2:-1;;;;30:1;27;20:12;5:2;8125:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8125:49:0;;;;;8250:3;-1:-1:-1;;;;;8238:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8238:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8238:22:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8238:22:0;:55;;;-1:-1:-1;;;8238:55:0;;-1:-1:-1;;;;;8238:55:0;;;;;;;8283:9;8238:55;;;;;;:30;;;;;;;:55;;;;;-1:-1:-1;;8238:55:0;;;;;;;-1:-1:-1;8238:30:0;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;8238:55:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;8351:37:0;;;-1:-1:-1;;;8351:37:0;;-1:-1:-1;;;;;8351:37:0;;;;;;;8378:9;8351:37;;;;;;:21;;;;-1:-1:-1;8351:21:0;;-1:-1:-1;8351:37:0;;;;;-1:-1:-1;;8351:37:0;;;;;;;;-1:-1:-1;8351:21:0;:37;;;5:2:-1;;;;30:1;27;20:12;25195:905:0;25381:11;25407:7;-1:-1:-1;;;;;25395:25:0;;25421:3;25395:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25395:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;25395:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;25395:30:0;;-1:-1:-1;25478:32:0;25491:7;25395:30;25505:4;25478:12;:32::i;:::-;25521:9;25533:26;25545:7;25554:4;25533:11;:26::i;:::-;25521:38;;25640:220;25659:7;25681:3;25700:11;25706:4;25700:5;:11::i;:::-;25699:12;;25726:123;25751:7;-1:-1:-1;;;;;25739:24:0;;:26;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25739:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;25739:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;25739:26:0;;;;;;;;;;;;;;;;25787:7;-1:-1:-1;;;;;25775:24:0;;:26;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25775:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;25775:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;25775:26:0;25767:44;;;-1:-1:-1;;;25767:44:0;;-1:-1:-1;;;;;25767:44:0;;;;;;;;;:39;;;;;;;:44;;;;;25775:26;;25767:44;;;;;;;:39;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;25767:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;25767:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;25767:44:0;;;;;;;;;;;;;;;;25813:3;25830:7;-1:-1:-1;;;;;25818:25:0;;25844:3;25818:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25818:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;25818:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;25818:30:0;25726:12;:123::i;25640:220::-;25936:39;25941:7;25950:3;25963:4;25970;25936;:39::i;:::-;26049:43;;;-1:-1:-1;;;26049:43:0;;26075:10;26049:43;;;;;;;;;;;;-1:-1:-1;;;;;26049:25:0;;;;;:43;;;;;-1:-1:-1;;26049:43:0;;;;;;;-1:-1:-1;26049:25:0;:43;;;5:2:-1;;;;30:1;27;20:12;8963:114:0;9055:3;-1:-1:-1;;;;;9046:18:0;;9065:3;9046:23;;;;;;;;;;;;;-1:-1:-1;;;;;9046:23:0;-1:-1:-1;;;;;9046:23:0;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;10478:179:0;10606:43;;;-1:-1:-1;;;10606:43:0;;;;;;;;-1:-1:-1;;;;;10606:43:0;;;;;;;;;;;;;;;:29;;;;;;:43;;;;;-1:-1:-1;;10606:43:0;;;;;;;;-1:-1:-1;10606:29:0;:43;;;5:2:-1;;;;30:1;27;20:12;36514:276:0;36683:27;36697:7;36706:3;36683:13;:27::i;:::-;36721:61;36745:7;36754;36763;36772:3;36777:4;36721:23;:61::i;23075:1022::-;23261:11;23287:7;-1:-1:-1;;;;;23275:25:0;;23301:3;23275:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23275:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23275:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23275:30:0;;-1:-1:-1;23358:32:0;23371:7;23275:30;23385:4;23358:12;:32::i;:::-;23470:220;23489:7;23511:3;23530:11;23536:4;23530:5;:11::i;:::-;23529:12;;23556:123;23581:7;-1:-1:-1;;;;;23569:24:0;;:26;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23569:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23569:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23569:26:0;23605;;;-1:-1:-1;;;23605:26:0;;;;-1:-1:-1;;;;;23605:24:0;;;;;:26;;;;;23569;;23605;;;;;;;:24;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;23605:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23605:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23605:26:0;23597:44;;;-1:-1:-1;;;23597:44:0;;-1:-1:-1;;;;;23597:44:0;;;;;;;;;:39;;;;;;;:44;;;;;23605:26;;23597:44;;;;;;;:39;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;23597:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23597:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;23597:44:0;;;;;;;;;;;;;;;;23643:3;23660:7;-1:-1:-1;;;;;23648:25:0;;23674:3;23648:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;23470:220:0;23766:39;23771:7;23780:3;23793:4;23800;23766;:39::i;:::-;23874:46;;;-1:-1:-1;;;23874:46:0;;23908:4;23874:46;;;;;;;;;;;;-1:-1:-1;;;;;23874:25:0;;;;;:46;;;;;-1:-1:-1;;23874:46:0;;;;;;;-1:-1:-1;23874:25:0;:46;;;5:2:-1;;;;30:1;27;20:12;5:2;23874:46:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23874:46:0;;;;23976:7;-1:-1:-1;;;;;23964:24:0;;:26;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23964:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23964:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23964:26:0;:41;;;-1:-1:-1;;;23964:41:0;;;;;;;;;;-1:-1:-1;;;;;23964:35:0;;;;;;:41;;;;;-1:-1:-1;;23964:41:0;;;;;;;;-1:-1:-1;23964:35:0;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;23964:41:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;24064:25:0;;:10;;-1:-1:-1;24064:25:0;;;;;-1:-1:-1;24084:4:0;;24064:25;;;;24084:4;24064:10;:25;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;7902:111:0;7982:3;-1:-1:-1;;;;;7974:21:0;;7996:3;8001;7974:31;;;;;;;;;;;;;-1:-1:-1;;;;;7974:31:0;-1:-1:-1;;;;;7974:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;22389:678:0;22697:40;;;-1:-1:-1;;;22697:40:0;;22731:4;22697:40;;;;;;22602:11;;;;-1:-1:-1;;;;;22697:25:0;;;;;:40;;;;;;;;;;;;;;:25;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;22697:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22697:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22697:40:0;;-1:-1:-1;;;;;;22752:17:0;;22748:75;;22792:19;22803:7;22792:10;:19::i;:::-;22786:25;;22748:75;22933:7;-1:-1:-1;;;;;22921:24:0;;:26;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22921:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22921:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22921:26:0;22913:55;;;-1:-1:-1;;;22913:55:0;;-1:-1:-1;;;;;22913:55:0;;;;;;;;;;;;;;;:44;;;;;;;:55;;;;;-1:-1:-1;;22913:55:0;;;;;;;-1:-1:-1;22913:44:0;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;22913:55:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22913:55:0;;;;22985:74;23004:7;23013:3;23018:7;23027;23036:3;23041:4;23047;23053:5;22985:18;:74::i;:::-;22979:80;;22389:678;;;;;;;;;;:::o;4442:375::-;4574:3;-1:-1:-1;;;;;4562:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4562:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4562:22:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4562:22:0;:67;;;-1:-1:-1;;;4562:67:0;;4598:10;4562:67;;;;4618:4;4562:67;;;;;;;;;;;;-1:-1:-1;;;;;4562:35:0;;;;;;:67;;;;;-1:-1:-1;;4562:67:0;;;;;;;;-1:-1:-1;4562:35:0;:67;;;5:2:-1;;;;30:1;27;20:12;5:2;4562:67:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4562:67:0;;;;4704:3;-1:-1:-1;;;;;4692:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4692:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4692:22:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4692:22:0;:40;;;-1:-1:-1;;;4692:40:0;;-1:-1:-1;;;;;4692:40:0;;;;;;;;;;;;;;;:30;;;;;;;:40;;;;;-1:-1:-1;;4692:40:0;;;;;;;-1:-1:-1;4692:30:0;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;4692:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4692:40:0;;;;4790:3;-1:-1:-1;;;;;4778:21:0;;4800:3;4805;4778:31;;;;;;;;;;;;;-1:-1:-1;;;;;4778:31:0;-1:-1:-1;;;;;4778:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;20846:1130:0;21082:11;21108:7;-1:-1:-1;;;;;21096:25:0;;21122:3;21096:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21096:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21096:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21096:30:0;21151:26;;;-1:-1:-1;;;21151:26:0;;;;21096:30;;-1:-1:-1;21137:11:0;;-1:-1:-1;;;;;21151:24:0;;;;;:26;;;;;21096:30;;21151:26;;;;;;;:24;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;21151:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21151:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21151:26:0;21202:30;;;-1:-1:-1;;;21202:30:0;;;;;;;;;;21151:26;;-1:-1:-1;21188:11:0;;-1:-1:-1;;;;;21202:25:0;;;;;:30;;;;;21151:26;;21202:30;;;;;;;:25;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;21202:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21202:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21202:30:0;;-1:-1:-1;21316:46:0;21329:7;21338:3;21343:4;21349:12;21316;:46::i;:::-;21436:93;21441:7;21450:3;21455:33;21461:26;21473:7;21482:4;21461:11;:26::i;21455:33::-;21490:38;21503:3;21508;21513;21518;21523:4;21490:12;:38::i;21436:93::-;21620:46;21625:7;21634:3;21647:4;21654:11;21660:4;21654:5;:11::i;21620:46::-;21752:49;;;-1:-1:-1;;;21752:49:0;;21777:4;21752:49;;;;-1:-1:-1;;;;;21752:49:0;;;;;;;;;:16;;;;;;:49;;;;;;;;;;;;;;;:16;:49;;;5:2:-1;;;;30:1;27;20:12;5:2;21752:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21752:49:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21752:49:0;21748:113;;21831:3;-1:-1:-1;;;;;21823:17:0;;21841:7;21823:26;;;;;;;;;;;;;-1:-1:-1;;;;;21823:26:0;-1:-1:-1;;;;;21823:26:0;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21823:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21823:26:0;;;;21748:113;21925:43;;;-1:-1:-1;;;21925:43:0;;21951:10;21925:43;;;;;;;;;;;;-1:-1:-1;;;;;21925:25:0;;;;;:43;;;;;-1:-1:-1;;21925:43:0;;;;;;;-1:-1:-1;21925:25:0;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;21925:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21925:43:0;;;;20846:1130;;;;;;;;;;;:::o;34638:360::-;34832:8;34859:33;34864:7;34873:3;34886:4;34859;:33::i;:::-;34853:39;;34903:34;34917:7;34925;34933:3;34903:13;:34::i;:::-;34948:42;34960:13;34974:7;34982:3;34986;34948:11;:42::i;21984:397::-;22225:8;22252:33;22257:7;22266:3;22279:4;22252;:33::i;:::-;22246:39;;22296:77;22311:7;22320:3;22325:7;22334;22343:3;22348:4;22354;22360:12;22296:14;:77::i;:::-;21984:397;;;;;;;;;;:::o;12009:542::-;12209:36;12222:7;12239:4;12209:12;:36::i;:::-;12319:7;-1:-1:-1;;;;;12307:24:0;;:26;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12307:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12307:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12307:26:0;12354:30;;;-1:-1:-1;;;12354:30:0;;;;;;;;;;-1:-1:-1;;;;;12299:40:0;;;;;;12354:25;;;;;;:30;;;;;12307:26;;12354:30;;;;;;;;:25;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;12354:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12354:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12354:30:0;12399;;;-1:-1:-1;;;12399:30:0;;;;;;;;;;-1:-1:-1;;;;;12399:25:0;;;;;:30;;;;;12354;;12399;;;;;;;:25;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;12399:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12399:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12399:30:0;12452:4;;12500:16;12506:9;12500:5;:16::i;:::-;12299:244;;;-1:-1:-1;;;;;;12299:244:0;;;;;;;;;;;;;;-1:-1:-1;;;;;12299:244:0;;;;;;;;;;;;;;;;;;;;;;;;;;;12531:1;12299:244;;;;;;;;;;;;;;;;;;12531:1;12299:244;;;;5:2:-1;;;;30:1;27;20:12;20501:337:0;20702:8;20729:33;20734:7;20743:3;20756:4;20729;:33::i;:::-;20723:39;;20773:57;20788:7;20797:3;20802:7;20811;20820:3;20825:4;20773:14;:57::i;:::-;20501:337;;;;;;;;:::o;13451:323::-;13681:5;-1:-1:-1;;;;;13647:39:0;13659:7;-1:-1:-1;;;;;13647:25:0;;13673:3;13647:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13647:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13647:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13647:30:0;-1:-1:-1;;;;;13647:39:0;;13639:67;;;;;-1:-1:-1;;;13639:67:0;;;;;;;;;;;;-1:-1:-1;;;13639:67:0;;;;;;;;;;;;;;;13717:49;13725:7;13734;13743:3;13748;13753:12;13717:7;:49::i;11527:151::-;11646:7;-1:-1:-1;;;;;11634:26:0;;11661:3;11666;11634:36;;;;;;;;;;;;;-1:-1:-1;;;;;11634:36:0;-1:-1:-1;;;;;11634:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;12559:265:0;12750:5;-1:-1:-1;;;;;12716:39:0;12728:7;-1:-1:-1;;;;;12716:25:0;;12742:3;12716:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12716:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12716:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12716:30:0;-1:-1:-1;;;;;12716:39:0;;12708:67;;;;;-1:-1:-1;;;12708:67:0;;;;;;;;;;;;-1:-1:-1;;;12708:67:0;;;;;;;;;;;;;;;12786:30;12794:7;12803;12812:3;12786:7;:30::i;11854:147::-;11953:40;;;-1:-1:-1;;;11953:40:0;;11987:4;11953:40;;;;;;11923:11;;-1:-1:-1;;;;;11953:25:0;;;;;:40;;;;;;;;;;;;;;;11923:11;11953:25;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;11953:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11953:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11953:40:0;;11854:147;-1:-1:-1;;11854:147:0:o;34161:465::-;34327:11;34353:7;-1:-1:-1;;;;;34341:25:0;;34367:3;34341:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34341:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;34341:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34341:30:0;;-1:-1:-1;34443:45:0;34456:7;34341:30;34470:3;34475:12;34443;:45::i;:::-;34563:55;34568:7;34577:3;34582:32;34588:25;34600:7;34609:3;34588:11;:25::i;35622:155::-;35732:1;35708:7;-1:-1:-1;;;;;35695:29:0;;35725:3;35695:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35695:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;35695:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;35695:34:0;:38;35692:77;;;35735:34;;;-1:-1:-1;;;35735:34:0;;;;;;;;35765:1;35735:34;;;;;;;;;;;;;;-1:-1:-1;;;;;35735:25:0;;;;;:34;;;;;;;;;;;35765:1;35735:25;:34;;;5:2:-1;;;;30:1;27;20:12;35692:77:0;35622:155;;:::o;18056:1106::-;18169:11;18195:7;-1:-1:-1;;;;;18183:24:0;;:26;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18183:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18183:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18183:26:0;18234:30;;;-1:-1:-1;;;18234:30:0;;;;;;;;;;18183:26;;-1:-1:-1;18220:11:0;;-1:-1:-1;;;;;18234:25:0;;;;;:30;;;;;18183:26;;18234:30;;;;;;;:25;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;18234:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18234:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18234:30:0;18289;;;-1:-1:-1;;;18289:30:0;;;;;;;;;;18234;;-1:-1:-1;18275:11:0;;-1:-1:-1;;;;;18289:25:0;;;;;:30;;;;;18234;;18289;;;;;;;:25;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;18289:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18289:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18289:30:0;18345:27;;;-1:-1:-1;;;18345:27:0;;;;;;;;-1:-1:-1;;;;;18345:27:0;;;;;;;;;18289:30;;-1:-1:-1;18333:8:0;;18345:17;;;;;;:27;;;;;;;;;;;:17;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;18345:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18345:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18345:27:0;;;;;;18399:30;;-1:-1:-1;;;18399:30:0;;;;;;;;;;18345:27;;-1:-1:-1;18385:11:0;;-1:-1:-1;;;;;18399:25:0;;;;;:30;;;;;18345:27;18399:30;;;;;;:25;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;18399:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18399:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18399:30:0;;-1:-1:-1;;;;;;18444:20:0;;18459:4;18444:20;;:81;;-1:-1:-1;18468:52:0;;;-1:-1:-1;;;18468:52:0;;-1:-1:-1;;;;;18468:52:0;;;;;;;;;;;;;18514:4;18468:52;;;;;;:27;;;;;;:52;;;;;;;;;;;;;;;:27;:52;;;5:2:-1;;;;30:1;27;20:12;5:2;18468:52:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18468:52:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18468:52:0;18524:1;18468:57;18444:81;18440:715;;;18588:62;18601:7;18610:3;18615:34;18630:3;18635;18640;18645;18615:14;:34::i;:::-;18588:12;:62::i;:::-;18706:32;18711:7;18720:3;18725:1;18733:3;18728:9;;18706:4;:32::i;18440:715::-;18817:82;18830:7;18847:4;18854:44;18869:3;18882:4;18889:3;18894;18854:14;:44::i;18817:82::-;18955:188;;;-1:-1:-1;;;18955:188:0;;;;;;;;-1:-1:-1;;;;;18955:188:0;;;;;;;19043:4;18955:188;;;;;;;;;;19099:1;18955:188;;;;;;19119:9;;;18955:188;;;;;;:17;;;;;;:188;;;;;;;;;;;19099:1;18955:17;:188;;;5:2:-1;;;;30:1;27;20:12;19170:257:0;19353:5;-1:-1:-1;;;;;19319:39:0;19331:7;-1:-1:-1;;;;;19319:25:0;;19345:3;19319:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19319:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19319:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19319:30:0;-1:-1:-1;;;;;19319:39:0;;19311:67;;;;;-1:-1:-1;;;19311:67:0;;;;;;;;;;;;-1:-1:-1;;;19311:67:0;;;;;;;;;;;;;;;19389:30;19397:7;19406;19415:3;19389:7;:30::i;5023:124::-;5095:1;5069:5;5116:6;;;5108:31;;;;;-1:-1:-1;;;5108:31:0;;;;;;;;;;;;-1:-1:-1;;;5108:31:0;;;;;;;;;;;;;;;5023:124;;;:::o;5677:896::-;5831:8;5891:9;5911:3;-1:-1:-1;;;;;5903:17:0;;5921:3;5903:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5903:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5903:22:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5903:22:0;6000:21;;;-1:-1:-1;;;6000:21:0;;-1:-1:-1;;;;;6000:21:0;;;;;;;;;5903:22;;-1:-1:-1;5989:8:0;;6000:16;;;;;;:21;;;;;5903:22;;6000:21;;;;;;;;:16;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;6000:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6000:21:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6000:21:0;;-1:-1:-1;6147:13:0;6151:3;-1:-1:-1;;;6147:3:0;:13::i;:::-;6141:3;:19;6137:429;;;6315:37;6347:4;6321:23;6325:13;6329:3;-1:-1:-1;;;6325:3:0;:13::i;:::-;6340:3;6321;:23::i;:::-;:30;;;;;;6315:5;:37::i;:::-;6308:44;;6523:13;6527:3;-1:-1:-1;;;6523:3:0;:13::i;:::-;6499:21;6508:4;6515;6499:3;:21::i;:::-;:37;:55;;6550:4;6499:55;;;6539:4;6546:1;6539:8;6499:55;6492:62;;6137:429;5677:896;;;;;;;;;:::o;5155:101::-;5203:8;5230:18;5234:3;-1:-1:-1;;;5230:3:0;:18::i;:::-;5224:24;5155:101;-1:-1:-1;;5155:101:0:o;5264:405::-;5333:11;5575:86;5593:3;5635:7;-1:-1:-1;;;;;5623:24:0;;:26;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5623:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5623:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5623:26:0;5618:2;:31;5611:2;:39;5575:3;:86::i;:::-;5569:92;5264:405;-1:-1:-1;;;5264:405:0:o;6581:617::-;6718:8;6784:9;6808:3;-1:-1:-1;;;;;6800:17:0;;6818:3;6800:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6800:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6800:22:0;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;6800:22:0;;;;6893:27;;-1:-1:-1;;;6893:27:0;;;;;;;;-1:-1:-1;;;;;6893:27:0;;;;;;;;;6800:22;;-1:-1:-1;6881:8:0;;6893:17;;;;;;:27;;;;;;;;;;;:17;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;6893:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6893:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6893:27:0;;;;-1:-1:-1;7009:17:0;7021:4;7015:3;7021:4;7015:10;;;7009:17;7002:24;;7163:3;7154:4;7149:17;;:41;;7180:10;7186:3;7180:5;:10::i;:::-;7178:12;;7149:41;;;7171:4;7169:6;;7149:41;7142:48;6581:617;-1:-1:-1;;;;;;;6581:617:0:o;24105:1082::-;24274:11;24300:7;-1:-1:-1;;;;;24288:24:0;;:26;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24288:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24288:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24288:26:0;24339:30;;;-1:-1:-1;;;24339:30:0;;;;;;;;;;24288:26;;-1:-1:-1;24325:11:0;;-1:-1:-1;;;;;24339:25:0;;;;;:30;;;;;24288:26;;24339:30;;;;;;;:25;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;24339:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24339:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24339:30:0;24394;;;-1:-1:-1;;;24394:30:0;;;;;;;;;;24339;;-1:-1:-1;24380:11:0;;-1:-1:-1;;;;;24394:25:0;;;;;:30;;;;;24339;;24394;;;;;;;:25;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;24394:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24394:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24394:30:0;24450:27;;;-1:-1:-1;;;24450:27:0;;;;;;;;-1:-1:-1;;;;;24450:27:0;;;;;;;;;24394:30;;-1:-1:-1;24438:8:0;;24450:17;;;;;;:27;;;;;;;;;;;:17;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;24450:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24450:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24450:27:0;;;;-1:-1:-1;24532:62:0;24545:7;24554:3;24559:34;24574:3;24554;;24589;24559:14;:34::i;24532:62::-;24674:106;24693:7;24715:3;24734:11;24740:4;24734:5;:11::i;:::-;24733:12;;24765:3;24760:9;;24674:4;:106::i;:::-;24856:39;24861:7;24870:3;24883:4;24890;24856;:39::i;:::-;24964:46;;;-1:-1:-1;;;24964:46:0;;24998:4;24964:46;;;;;;;;;;;;-1:-1:-1;;;;;24964:25:0;;;;;:46;;;;;-1:-1:-1;;24964:46:0;;;;;;;-1:-1:-1;24964:25:0;:46;;;5:2:-1;;;;30:1;27;20:12;5:2;24964:46:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24964:46:0;;;;25066:7;-1:-1:-1;;;;;25054:24:0;;:26;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25054:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;25054:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;25054:26:0;:41;;;-1:-1:-1;;;25054:41:0;;;;;;;;;;-1:-1:-1;;;;;25054:35:0;;;;;;:41;;;;;-1:-1:-1;;25054:41:0;;;;;;;;-1:-1:-1;25054:35:0;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;25054:41:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;25154:25:0;;:10;;-1:-1:-1;25154:25:0;;;;;-1:-1:-1;25174:4:0;;25154:25;;;;25174:4;25154:10;:25;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;25154:25:0;24105:1082;;;;;;;;;:::o;26108:965::-;26277:11;26303:7;-1:-1:-1;;;;;26291:24:0;;:26;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26291:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26291:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;26291:26:0;26342:30;;;-1:-1:-1;;;26342:30:0;;;;;;;;;;26291:26;;-1:-1:-1;26328:11:0;;-1:-1:-1;;;;;26342:25:0;;;;;:30;;;;;26291:26;;26342:30;;;;;;;:25;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;26342:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26342:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;26342:30:0;26397;;;-1:-1:-1;;;26397:30:0;;;;;;;;;;26342;;-1:-1:-1;26383:11:0;;-1:-1:-1;;;;;26397:25:0;;;;;:30;;;;;26342;;26397;;;;;;;:25;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;26397:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26397:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;26397:30:0;26453:27;;;-1:-1:-1;;;26453:27:0;;;;;;;;-1:-1:-1;;;;;26453:27:0;;;;;;;;;26397:30;;-1:-1:-1;26441:8:0;;26453:17;;;;;;:27;;;;;;;;;;;:17;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;26453:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26453:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;26453:27:0;;;;-1:-1:-1;26535:62:0;26548:7;26557:3;26562:34;26577:3;26557;;26592;26562:14;:34::i;26535:62::-;26608:9;26620:26;26632:7;26641:4;26620:11;:26::i;:::-;26608:38;;26727:106;26746:7;26768:3;26787:11;26793:4;26787:5;:11::i;:::-;26786:12;;26818:3;26813:9;;26727:4;:106::i;:::-;26909:39;26914:7;26923:3;26936:4;26943;26909;:39::i;:::-;27022:43;;;-1:-1:-1;;;27022:43:0;;27048:10;27022:43;;;;;;;;;;;;-1:-1:-1;;;;;27022:25:0;;;;;:43;;;;;-1:-1:-1;;27022:43:0;;;;;;;-1:-1:-1;27022:25:0;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;27022:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;27022:43:0;;;;26108:965;;;;;;;;;;:::o;7206:661::-;7348:8;7414:9;7438:3;-1:-1:-1;;;;;7430:17:0;;7448:3;7430:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7430:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7430:22:0;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;7430:22:0;;;;7523:27;;-1:-1:-1;;;7523:27:0;;;;;;;;-1:-1:-1;;;;;7523:27:0;;;;;;;;;7430:22;;-1:-1:-1;7511:8:0;;7523:17;;;;;;:27;;;;;;;;;;;:17;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;7523:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7523:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7523:27:0;;;;;;7618:21;;-1:-1:-1;;;7618:21:0;;-1:-1:-1;;;;;7618:21:0;;;;;;;;;7523:27;;-1:-1:-1;7607:8:0;;7618:16;;;;;;:21;;;;;7523:27;;7618:21;;;;;;:16;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;7618:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7618:21:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7618:21:0;;-1:-1:-1;7652:8:0;7663:24;7667:14;7671:3;7676:4;7667:3;:14::i;:::-;7683:3;7663;:24::i;:::-;7652:35;-1:-1:-1;;;;7652:35:0;7704:9;7698:15;;7840:3;7824:13;7828:3;-1:-1:-1;;;7824:3:0;:13::i;:::-;:19;:35;;7856:3;7824:35;;;7846:3;7852:1;7846:7;7824:35;7818:41;7206:661;-1:-1:-1;;;;;;;;;7206:661:0:o;4273:134::-;4325:6;4352;;;:30;;-1:-1:-1;;4367:5:0;;;4381:1;4376;4367:5;4376:1;4362:15;;;;;:20;4352:30;4344:55;;;;;-1:-1:-1;;;4344:55:0;;;;;;;;;;;;-1:-1:-1;;;4344:55:0;;;;;;;;;;;;;;4895:120;4979:5;;;4974:16;;;;4966:41;;;;;-1:-1:-1;;;4966:41:0;;;;;;;;;;;;-1:-1:-1;;;4966:41:0;;;;;;;;;;;;;
Swarm Source
bzzr://30fd3ab47a531378409a56b8e389fa6ab00acb940d5d4f9f1a32acc657055f71
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.