More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 3,511 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Mint Then Swap | 20451677 | 106 days ago | IN | 0 ETH | 0.00023742 | ||||
Mint Then Swap | 14774761 | 919 days ago | IN | 0 ETH | 0.02374988 | ||||
Mint Then Swap | 13940830 | 1048 days ago | IN | 0 ETH | 0.03743411 | ||||
Mint Then Swap | 13927395 | 1051 days ago | IN | 0 ETH | 0.02697003 | ||||
Mint Then Swap | 13926832 | 1051 days ago | IN | 0 ETH | 0.02220421 | ||||
Mint Then Swap | 13915552 | 1052 days ago | IN | 0 ETH | 0.02645428 | ||||
Mint Then Swap | 13915420 | 1052 days ago | IN | 0 ETH | 0.02688252 | ||||
Mint Then Swap | 13915287 | 1052 days ago | IN | 0 ETH | 0.02259836 | ||||
Mint Then Swap | 13910122 | 1053 days ago | IN | 0 ETH | 0.03037231 | ||||
Swap Then Burn | 13909460 | 1053 days ago | IN | 0 ETH | 0.02808936 | ||||
Mint Then Swap | 13904811 | 1054 days ago | IN | 0 ETH | 0.03067414 | ||||
Remove Liquidity... | 13903153 | 1054 days ago | IN | 0 ETH | 0.06875901 | ||||
Mint Then Swap | 13870523 | 1059 days ago | IN | 0 ETH | 0.02018847 | ||||
Mint Then Deposi... | 13863339 | 1060 days ago | IN | 0 ETH | 0.02831762 | ||||
Swap Then Burn | 13854502 | 1062 days ago | IN | 0 ETH | 0.01156257 | ||||
Swap Then Burn | 13854222 | 1062 days ago | IN | 0 ETH | 0.01948776 | ||||
Swap Then Burn | 13853801 | 1062 days ago | IN | 0 ETH | 0.01458604 | ||||
Swap Then Burn | 13853256 | 1062 days ago | IN | 0 ETH | 0.02105688 | ||||
Mint Then Deposi... | 13839703 | 1064 days ago | IN | 0 ETH | 0.02045457 | ||||
Swap Then Burn | 13837066 | 1065 days ago | IN | 0 ETH | 0.018811 | ||||
Swap Then Burn | 13836576 | 1065 days ago | IN | 0 ETH | 0.00327942 | ||||
Swap Then Burn | 13836497 | 1065 days ago | IN | 0 ETH | 0.01730597 | ||||
Mint Then Swap | 13834116 | 1065 days ago | IN | 0 ETH | 0.01349362 | ||||
Mint Then Swap | 13833668 | 1065 days ago | IN | 0 ETH | 0.0124685 | ||||
Mint Then Swap | 13809738 | 1069 days ago | IN | 0 ETH | 0.00183089 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
CurveExchangeAdapterSBTC
Compiler Version
v0.6.0+commit.26b70077
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-07-01 */ /** *Submitted for verification at Etherscan.io on 2020-05-18 */ /** *Submitted for verification at Etherscan.io on 2020-01-23 */ // File: github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/GSN/Context.sol pragma solidity ^0.6.0; library SafeMath { function add(uint a, uint b) internal pure returns (uint c) { c = a + b; require(c >= a); // dev: overflow } function sub(uint a, uint b) internal pure returns (uint c) { require(b <= a); // dev: underflow c = a - b; } function mul(uint a, uint b) internal pure returns (uint c) { c = a * b; require(a == 0 || c / a == b); // dev: overflow } function div(uint a, uint b) internal pure returns (uint c) { require(b > 0); // dev: divide by zero c = a / b; } } contract BasicMetaTransaction { using SafeMath for uint256; event MetaTransactionExecuted(address userAddress, address payable relayerAddress, bytes functionSignature); mapping(address => uint256) nonces; function getChainID() public pure returns (uint256) { uint256 id; assembly { id := chainid() } return id; } /** * Main function to be called when user wants to execute meta transaction. * The actual function to be called should be passed as param with name functionSignature * Here the basic signature recovery is being used. Signature is expected to be generated using * personal_sign method. * @param userAddress Address of user trying to do meta transaction * @param functionSignature Signature of the actual function to be called via meta transaction * @param message Message to be signed by the user * @param length Length of complete message that was signed * @param sigR R part of the signature * @param sigS S part of the signature * @param sigV V part of the signature */ function executeMetaTransaction(address userAddress, bytes memory functionSignature, string memory message, string memory length, bytes32 sigR, bytes32 sigS, uint8 sigV) public payable returns(bytes memory) { require(verify(userAddress, message, length, nonces[userAddress], getChainID(), sigR, sigS, sigV), "Signer and signature do not match"); // Append userAddress and relayer address at the end to extract it from calling context (bool success, bytes memory returnData) = address(this).call(abi.encodePacked(functionSignature, userAddress)); require(success, "Function call not successfull"); nonces[userAddress] = nonces[userAddress].add(1); emit MetaTransactionExecuted(userAddress, msg.sender, functionSignature); return returnData; } function getNonce(address user) public view returns(uint256 nonce) { nonce = nonces[user]; } function verify(address owner, string memory message, string memory length, uint256 nonce, uint256 chainID, bytes32 sigR, bytes32 sigS, uint8 sigV) public pure returns (bool) { string memory nonceStr = uint2str(nonce); string memory chainIDStr = uint2str(chainID); bytes32 hash = keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n", length, message, nonceStr, chainIDStr)); return (owner == ecrecover(hash, sigV, sigR, sigS)); } /** * Internal utility function used to convert an int to string. * @param _i integer to be converted into a string */ function uint2str(uint256 _i) internal pure returns (string memory _uintAsString) { if (_i == 0) { return "0"; } uint j = _i; uint len; while (j != 0) { len++; j /= 10; } bytes memory bstr = new bytes(len); uint k = len - 1; uint256 temp = _i; while (temp != 0) { bstr[k--] = byte(uint8(48 + temp % 10)); temp /= 10; } return string(bstr); } function msgSender() internal view returns(address sender) { if(msg.sender == address(this)) { bytes memory array = msg.data; uint256 index = msg.data.length; assembly { // Load the 32 bytes word from memory with the address on the lower 20 bytes, and mask those. sender := and(mload(add(array, index)), 0xffffffffffffffffffffffffffffffffffffffff) } } else { sender = msg.sender; } return sender; } // To recieve ether in contract receive() external payable { } fallback() external payable { } } // File: browser/dex-adapter-simple.sol library Math { /** * @dev Returns the largest of two numbers. */ function max(uint256 a, uint256 b) internal pure returns (uint256) { return a >= b ? a : b; } /** * @dev Returns the smallest of two numbers. */ function min(uint256 a, uint256 b) internal pure returns (uint256) { return a < b ? a : b; } /** * @dev Returns the average of two numbers. The result is rounded towards * zero. */ function average(uint256 a, uint256 b) internal pure returns (uint256) { // (a + b) / 2 can overflow, so we distribute return (a / 2) + (b / 2) + ((a % 2 + b % 2) / 2); } } interface IERC20 { function transfer(address recipient, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); function approve(address _spender, uint256 _value) external returns (bool); function balanceOf(address _owner) external view returns (uint256 balance); } interface IGateway { function mint(bytes32 _pHash, uint256 _amount, bytes32 _nHash, bytes calldata _sig) external returns (uint256); function burn(bytes calldata _to, uint256 _amount) external returns (uint256); } interface IGatewayRegistry { function getGatewayBySymbol(string calldata _tokenSymbol) external view returns (IGateway); function getGatewayByToken(address _tokenAddress) external view returns (IGateway); function getTokenBySymbol(string calldata _tokenSymbol) external view returns (IERC20); } interface ICurveExchange { function exchange(int128 i, int128 j, uint256 dx, uint256 min_dy) external; function get_dy(int128, int128 j, uint256 dx) external view returns (uint256); function calc_token_amount(uint256[3] calldata amounts, bool deposit) external returns (uint256 amount); function add_liquidity(uint256[3] calldata amounts, uint256 min_mint_amount) external; function remove_liquidity( uint256 _amount, uint256[3] calldata min_amounts ) external; function remove_liquidity_imbalance(uint256[3] calldata amounts, uint256 max_burn_amount) external; function remove_liquidity_one_coin(uint256 _token_amounts, int128 i, uint256 min_amount) external; } interface IFreeFromUpTo { function freeFromUpTo(address from, uint256 value) external returns (uint256 freed); function balanceOf(address account) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); } contract CurveExchangeAdapterSBTC is BasicMetaTransaction { using SafeMath for uint256; IFreeFromUpTo public constant chi = IFreeFromUpTo(0x0000000000004946c0e9F43F4Dee607b0eF1fA1c); modifier discountCHI { uint256 gasStart = gasleft(); _; uint256 gasSpent = 21000 + gasStart - gasleft() + 16 * msg.data.length; if(chi.balanceOf(address(this)) > 0) { chi.freeFromUpTo(address(this), (gasSpent + 14154) / 41947); } else { chi.freeFromUpTo(msgSender(), (gasSpent + 14154) / 41947); } } uint256 constant N_COINS = 3; //first coin always is renBTC IERC20[N_COINS] coins; uint256[N_COINS] precisions_normalized = [1,1,1e10]; IERC20 curveToken; ICurveExchange public exchange; IGatewayRegistry public registry; event SwapReceived(uint256 mintedAmount, uint256 erc20BTCAmount, int128 j); event DepositMintedCurve(uint256 mintedAmount, uint256 curveAmount, uint256[N_COINS] amounts); event ReceiveRen(uint256 renAmount); event Burn(uint256 burnAmount); constructor(ICurveExchange _exchange, address _curveTokenAddress, IGatewayRegistry _registry, IERC20[N_COINS] memory _coins) public { exchange = _exchange; registry = _registry; curveToken = IERC20(_curveTokenAddress); for(uint256 i = 0; i < N_COINS; i++) { coins[i] = _coins[i]; require(coins[i].approve(address(exchange), uint256(-1))); } require(chi.approve(address(this), uint256(-1))); } function recoverStuck( bytes calldata encoded, uint256 _amount, bytes32 _nHash, bytes calldata _sig ) external { uint256 start = encoded.length - 32; address sender = abi.decode(encoded[start:], (address)); require(sender == msgSender()); bytes32 pHash = keccak256(encoded); uint256 mintedAmount = registry.getGatewayBySymbol("BTC").mint(pHash, _amount, _nHash, _sig); require(coins[0].transfer(msgSender(), mintedAmount)); } function mintThenSwap( uint256 _minExchangeRate, uint256 _newMinExchangeRate, uint256 _slippage, int128 _j, address payable _coinDestination, uint256 _amount, bytes32 _nHash, bytes calldata _sig ) external discountCHI { //params is [_minExchangeRate, _slippage, _i, _j] //fail early so not to spend much gas? //require(_i <= 2 && _j <= 2 && _i != _j); // Mint renBTC tokens bytes32 pHash = keccak256(abi.encode(_minExchangeRate, _slippage, _j, _coinDestination, msgSender())); uint256 mintedAmount = registry.getGatewayBySymbol("BTC").mint(pHash, _amount, _nHash, _sig); // Get price // compare if the exchange rate now * slippage in BPS is what user submitted as uint256 dy = exchange.get_dy(0, _j, mintedAmount); uint256 rate = dy.mul(1e8).div(precisions_normalized[uint256(_j)]).div(mintedAmount); _slippage = uint256(1e4).sub(_slippage); uint256 min_dy = dy.mul(_slippage).div(1e4); // Price is OK if (rate >= _newMinExchangeRate) { require(_j != 0); doSwap(_j, mintedAmount, min_dy, _coinDestination); } else { //Send renBTC to the User instead require(coins[0].transfer(_coinDestination, mintedAmount)); emit ReceiveRen(mintedAmount); } } function doSwap(int128 _j, uint256 _mintedAmount, uint256 _min_dy, address payable _coinDestination) internal { uint256 startBalance = coins[uint256(_j)].balanceOf(address(this)); exchange.exchange(0, _j, _mintedAmount, _min_dy); uint256 endBalance = coins[uint256(_j)].balanceOf(address(this)); uint256 bought = endBalance.sub(startBalance); //Send proceeds to the User require(coins[uint256(_j)].transfer(_coinDestination, bought)); emit SwapReceived(_mintedAmount, bought, _j); } function mintThenDeposit( address payable _wbtcDestination, uint256 _amount, uint256[N_COINS] calldata _amounts, uint256 _min_mint_amount, uint256 _new_min_mint_amount, bytes32 _nHash, bytes calldata _sig ) external discountCHI { // Mint renBTC tokens bytes32 pHash = keccak256(abi.encode(_wbtcDestination, _amounts, _min_mint_amount, msgSender())); //use actual _amount the user sent uint256 mintedAmount = registry.getGatewayBySymbol("BTC").mint(pHash, _amount, _nHash, _sig); //set renBTC to actual minted amount in case the user sent less BTC to Ren uint256[N_COINS] memory receivedAmounts = _amounts; receivedAmounts[0] = mintedAmount; for(uint256 i = 1; i < N_COINS; i++) { receivedAmounts[i] = _amounts[i]; } if(exchange.calc_token_amount(_amounts, true) >= _new_min_mint_amount) { doDeposit(receivedAmounts, mintedAmount, _new_min_mint_amount, _wbtcDestination); } else { require(coins[0].transfer(_wbtcDestination, mintedAmount)); emit ReceiveRen(mintedAmount); } } function doDeposit(uint256[N_COINS] memory receivedAmounts, uint256 mintedAmount, uint256 _new_min_mint_amount, address _wbtcDestination) internal { for(uint256 i = 1; i < N_COINS; i++) { if(receivedAmounts[i] > 0) { require(coins[i].transferFrom(msgSender(), address(this), receivedAmounts[i])); } } uint256 curveBalanceBefore = curveToken.balanceOf(address(this)); exchange.add_liquidity(receivedAmounts, 0); uint256 curveBalanceAfter = curveToken.balanceOf(address(this)); uint256 curveAmount = curveBalanceAfter.sub(curveBalanceBefore); require(curveAmount >= _new_min_mint_amount); require(curveToken.transfer(_wbtcDestination, curveAmount)); emit DepositMintedCurve(mintedAmount, curveAmount, receivedAmounts); } // function mintNoSwap( // uint256 _minExchangeRate, // uint256 _newMinExchangeRate, // uint256 _slippage, // int128 _j, // address payable _wbtcDestination, // uint256 _amount, // bytes32 _nHash, // bytes calldata _sig // ) external discountCHI { // bytes32 pHash = keccak256(abi.encode(_minExchangeRate, _slippage, _j, _wbtcDestination, msgSender())); // uint256 mintedAmount = registry.getGatewayBySymbol("BTC").mint(pHash, _amount, _nHash, _sig); // require(coins[0].transfer(_wbtcDestination, mintedAmount)); // emit ReceiveRen(mintedAmount); // } // function mintNoDeposit( // address payable _wbtcDestination, // uint256 _amount, // uint256[N_COINS] calldata _amounts, // uint256 _min_mint_amount, // uint256 _new_min_mint_amount, // bytes32 _nHash, // bytes calldata _sig // ) external discountCHI { // // Mint renBTC tokens // bytes32 pHash = keccak256(abi.encode(_wbtcDestination, _amounts, _min_mint_amount, msgSender())); // //use actual _amount the user sent // uint256 mintedAmount = registry.getGatewayBySymbol("BTC").mint(pHash, _amount, _nHash, _sig); // require(coins[0].transfer(_wbtcDestination, mintedAmount)); // emit ReceiveRen(mintedAmount); // } function removeLiquidityThenBurn(bytes calldata _btcDestination, address _coinDestination, uint256 amount, uint256[N_COINS] calldata min_amounts) external discountCHI { uint256[N_COINS] memory balances; for(uint256 i = 0; i < coins.length; i++) { balances[i] = coins[i].balanceOf(address(this)); } require(curveToken.transferFrom(msgSender(), address(this), amount)); exchange.remove_liquidity(amount, min_amounts); for(uint256 i = 0; i < coins.length; i++) { balances[i] = coins[i].balanceOf(address(this)).sub(balances[i]); if(i == 0) continue; require(coins[i].transfer(_coinDestination, balances[i])); } // Burn and send proceeds to the User uint256 burnAmount = registry.getGatewayBySymbol("BTC").burn(_btcDestination, balances[0]); emit Burn(burnAmount); } function removeLiquidityImbalanceThenBurn(bytes calldata _btcDestination, address _coinDestination, uint256[N_COINS] calldata amounts, uint256 max_burn_amount) external discountCHI { uint256[N_COINS] memory balances; for(uint256 i = 0; i < coins.length; i++) { balances[i] = coins[i].balanceOf(address(this)); } uint256 _tokens = curveToken.balanceOf(msgSender()); if(_tokens > max_burn_amount) { _tokens = max_burn_amount; } require(curveToken.transferFrom(msgSender(), address(this), _tokens)); exchange.remove_liquidity_imbalance(amounts, max_burn_amount.mul(101).div(100)); _tokens = curveToken.balanceOf(address(this)); require(curveToken.transfer(_coinDestination, _tokens)); for(uint256 i = 0; i < coins.length; i++) { balances[i] = coins[i].balanceOf(address(this)).sub(balances[i]); if(i == 0) continue; require(coins[i].transfer(_coinDestination, balances[i])); } // Burn and send proceeds to the User uint256 burnAmount = registry.getGatewayBySymbol("BTC").burn(_btcDestination, balances[0]); emit Burn(burnAmount); } //always removing in renBTC, else use normal method function removeLiquidityOneCoinThenBurn(bytes calldata _btcDestination, uint256 _token_amounts, uint256 min_amount, uint8 _i) external discountCHI { uint256 startRenbtcBalance = coins[0].balanceOf(address(this)); require(curveToken.transferFrom(msgSender(), address(this), _token_amounts)); exchange.remove_liquidity_one_coin(_token_amounts, _i, min_amount); uint256 endRenbtcBalance = coins[0].balanceOf(address(this)); uint256 renbtcWithdrawn = endRenbtcBalance.sub(startRenbtcBalance); // Burn and send proceeds to the User uint256 burnAmount = registry.getGatewayBySymbol("BTC").burn(_btcDestination, renbtcWithdrawn); emit Burn(burnAmount); } function swapThenBurn(bytes calldata _btcDestination, uint256 _amount, uint256 _minRenbtcAmount, uint8 _i) external discountCHI { require(coins[_i].transferFrom(msgSender(), address(this), _amount)); uint256 startRenbtcBalance = coins[0].balanceOf(address(this)); exchange.exchange(_i, 0, _amount, _minRenbtcAmount); uint256 endRenbtcBalance = coins[0].balanceOf(address(this)); uint256 renbtcBought = endRenbtcBalance.sub(startRenbtcBalance); // Burn and send proceeds to the User uint256 burnAmount = registry.getGatewayBySymbol("BTC").burn(_btcDestination, renbtcBought); emit Burn(burnAmount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"contract ICurveExchange","name":"_exchange","type":"address"},{"internalType":"address","name":"_curveTokenAddress","type":"address"},{"internalType":"contract IGatewayRegistry","name":"_registry","type":"address"},{"internalType":"contract IERC20[3]","name":"_coins","type":"address[3]"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"burnAmount","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"mintedAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"curveAmount","type":"uint256"},{"indexed":false,"internalType":"uint256[3]","name":"amounts","type":"uint256[3]"}],"name":"DepositMintedCurve","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"userAddress","type":"address"},{"indexed":false,"internalType":"address payable","name":"relayerAddress","type":"address"},{"indexed":false,"internalType":"bytes","name":"functionSignature","type":"bytes"}],"name":"MetaTransactionExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"renAmount","type":"uint256"}],"name":"ReceiveRen","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"mintedAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"erc20BTCAmount","type":"uint256"},{"indexed":false,"internalType":"int128","name":"j","type":"int128"}],"name":"SwapReceived","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"chi","outputs":[{"internalType":"contract IFreeFromUpTo","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"exchange","outputs":[{"internalType":"contract ICurveExchange","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"bytes","name":"functionSignature","type":"bytes"},{"internalType":"string","name":"message","type":"string"},{"internalType":"string","name":"length","type":"string"},{"internalType":"bytes32","name":"sigR","type":"bytes32"},{"internalType":"bytes32","name":"sigS","type":"bytes32"},{"internalType":"uint8","name":"sigV","type":"uint8"}],"name":"executeMetaTransaction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getChainID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getNonce","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_wbtcDestination","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256[3]","name":"_amounts","type":"uint256[3]"},{"internalType":"uint256","name":"_min_mint_amount","type":"uint256"},{"internalType":"uint256","name":"_new_min_mint_amount","type":"uint256"},{"internalType":"bytes32","name":"_nHash","type":"bytes32"},{"internalType":"bytes","name":"_sig","type":"bytes"}],"name":"mintThenDeposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minExchangeRate","type":"uint256"},{"internalType":"uint256","name":"_newMinExchangeRate","type":"uint256"},{"internalType":"uint256","name":"_slippage","type":"uint256"},{"internalType":"int128","name":"_j","type":"int128"},{"internalType":"address payable","name":"_coinDestination","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes32","name":"_nHash","type":"bytes32"},{"internalType":"bytes","name":"_sig","type":"bytes"}],"name":"mintThenSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"encoded","type":"bytes"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes32","name":"_nHash","type":"bytes32"},{"internalType":"bytes","name":"_sig","type":"bytes"}],"name":"recoverStuck","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IGatewayRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"_btcDestination","type":"bytes"},{"internalType":"address","name":"_coinDestination","type":"address"},{"internalType":"uint256[3]","name":"amounts","type":"uint256[3]"},{"internalType":"uint256","name":"max_burn_amount","type":"uint256"}],"name":"removeLiquidityImbalanceThenBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"_btcDestination","type":"bytes"},{"internalType":"uint256","name":"_token_amounts","type":"uint256"},{"internalType":"uint256","name":"min_amount","type":"uint256"},{"internalType":"uint8","name":"_i","type":"uint8"}],"name":"removeLiquidityOneCoinThenBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"_btcDestination","type":"bytes"},{"internalType":"address","name":"_coinDestination","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256[3]","name":"min_amounts","type":"uint256[3]"}],"name":"removeLiquidityThenBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"_btcDestination","type":"bytes"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_minRenbtcAmount","type":"uint256"},{"internalType":"uint8","name":"_i","type":"uint8"}],"name":"swapThenBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"string","name":"message","type":"string"},{"internalType":"string","name":"length","type":"string"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"chainID","type":"uint256"},{"internalType":"bytes32","name":"sigR","type":"bytes32"},{"internalType":"bytes32","name":"sigS","type":"bytes32"},{"internalType":"uint8","name":"sigV","type":"uint8"}],"name":"verify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526040518060600160405280600164ffffffffff168152602001600164ffffffffff1681526020016402540be40064ffffffffff1681525060049060036200004d9291906200042f565b503480156200005b57600080fd5b5060405162005f8738038062005f87833981810160405260c08110156200008157600080fd5b810190808051906020019092919080519060200190929190805190602001909291909190505083600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008090505b600381101562000327578181600381106200018757fe5b6020020151600182600381106200019a57fe5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018160038110620001e757fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015620002d257600080fd5b505af1158015620002e7573d6000803e3d6000fd5b505050506040513d6020811015620002fe57600080fd5b81019080805190602001909291905050506200031957600080fd5b808060010191505062000170565b506d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff1663095ea7b3307fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015620003de57600080fd5b505af1158015620003f3573d6000803e3d6000fd5b505050506040513d60208110156200040a57600080fd5b81019080805190602001909291905050506200042557600080fd5b50505050620004a5565b82600381019282156200046a579160200282015b8281111562000469578251829064ffffffffff1690559160200191906001019062000443565b5b5090506200047991906200047d565b5090565b620004a291905b808211156200049e57600081600090555060010162000484565b5090565b90565b615ad280620004b56000396000f3fe6080604052600436106100e15760003560e01c80637b1039991161007f578063afd1fe0311610059578063afd1fe0314610867578063c92aecc41461090e578063d039fca114610965578063d2f7265a14610c08576100e8565b80637b1039991461056a578063a318f9de146105c1578063a461e5fa1461069a576100e8565b806329349116116100bb578063293491161461033a5780632d0335ab14610420578063564b81ef146104855780635c72f616146104b0576100e8565b80630bfe8b92146100ea57806318274dd6146101d95780631ad8e63614610293576100e8565b366100e857005b005b3480156100f657600080fd5b506101d76004803603608081101561010d57600080fd5b810190808035906020019064010000000081111561012a57600080fd5b82018360208201111561013c57600080fd5b8035906020019184600183028401116401000000008311171561015e57600080fd5b909192939192939080359060200190929190803590602001909291908035906020019064010000000081111561019357600080fd5b8201836020820111156101a557600080fd5b803590602001918460018302840111640100000000831117156101c757600080fd5b9091929391929390505050610c5f565b005b3480156101e557600080fd5b50610291600480360360c08110156101fc57600080fd5b810190808035906020019064010000000081111561021957600080fd5b82018360208201111561022b57600080fd5b8035906020019184600183028401116401000000008311171561024d57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908060600190919291929080359060200190929190505050610ff3565b005b34801561029f57600080fd5b50610338600480360360808110156102b657600080fd5b81019080803590602001906401000000008111156102d357600080fd5b8201836020820111156102e557600080fd5b8035906020019184600183028401116401000000008311171561030757600080fd5b90919293919293908035906020019092919080359060200190929190803560ff169060200190929190505050611cc8565b005b34801561034657600080fd5b5061041e600480360361010081101561035e57600080fd5b810190808035906020019092919080359060200190929190803590602001909291908035600f0b9060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001906401000000008111156103da57600080fd5b8201836020820111156103ec57600080fd5b8035906020019184600183028401116401000000008311171561040e57600080fd5b9091929391929390505050612536565b005b34801561042c57600080fd5b5061046f6004803603602081101561044357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d18565b6040518082815260200191505060405180910390f35b34801561049157600080fd5b5061049a612d60565b6040518082815260200191505060405180910390f35b3480156104bc57600080fd5b50610568600480360360c08110156104d357600080fd5b81019080803590602001906401000000008111156104f057600080fd5b82018360208201111561050257600080fd5b8035906020019184600183028401116401000000008311171561052457600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080606001909192919290505050612d6d565b005b34801561057657600080fd5b5061057f613761565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105cd57600080fd5b5061069860048036036101208110156105e557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190806060019091929192908035906020019092919080359060200190929190803590602001909291908035906020019064010000000081111561065457600080fd5b82018360208201111561066657600080fd5b8035906020019184600183028401116401000000008311171561068857600080fd5b9091929391929390505050613787565b005b3480156106a657600080fd5b5061084d60048036036101008110156106be57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156106fb57600080fd5b82018360208201111561070d57600080fd5b8035906020019184600183028401116401000000008311171561072f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561079257600080fd5b8201836020820111156107a457600080fd5b803590602001918460018302840111640100000000831117156107c657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190803590602001909291908035906020019092919080359060200190929190803560ff169060200190929190505050613f78565b604051808215151515815260200191505060405180910390f35b34801561087357600080fd5b5061090c6004803603608081101561088a57600080fd5b81019080803590602001906401000000008111156108a757600080fd5b8201836020820111156108b957600080fd5b803590602001918460018302840111640100000000831117156108db57600080fd5b90919293919293908035906020019092919080359060200190929190803560ff1690602001909291905050506141d1565b005b34801561091a57600080fd5b50610923614a24565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610b8d600480360360e081101561097b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156109b857600080fd5b8201836020820111156109ca57600080fd5b803590602001918460018302840111640100000000831117156109ec57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610a4f57600080fd5b820183602082011115610a6157600080fd5b80359060200191846001830284011164010000000083111715610a8357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610ae657600080fd5b820183602082011115610af857600080fd5b80359060200191846001830284011164010000000083111715610b1a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919080359060200190929190803560ff169060200190929190505050614a36565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610bcd578082015181840152602081019050610bb2565b50505050905090810190601f168015610bfa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610c1457600080fd5b50610c1d614e59565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600060208787905003905060008787838180821115610c7d57600080fd5b82811115610c8a57600080fd5b6001820284019350818103925050506020811015610ca757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050509050610cd8614e7f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d0f57600080fd5b60008888604051808383808284378083019250505092505050604051809103902090506000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166364936b1e6040518163ffffffff1660e01b81526004018080602001828103825260038152602001807f425443000000000000000000000000000000000000000000000000000000000081525060200191505060206040518083038186803b158015610dd857600080fd5b505afa158015610dec573d6000803e3d6000fd5b505050506040513d6020811015610e0257600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663159ab14d838a8a8a8a6040518663ffffffff1660e01b815260040180868152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b158015610ea957600080fd5b505af1158015610ebd573d6000803e3d6000fd5b505050506040513d6020811015610ed357600080fd5b810190808051906020019092919050505090506001600060038110610ef457fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610f39614e7f565b836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610fa357600080fd5b505af1158015610fb7573d6000803e3d6000fd5b505050506040513d6020811015610fcd57600080fd5b8101908080519060200190929190505050610fe757600080fd5b50505050505050505050565b60005a9050611000615a59565b60008090505b6003811015611117576001816003811061101c57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156110ba57600080fd5b505afa1580156110ce573d6000803e3d6000fd5b505050506040513d60208110156110e457600080fd5b810190808051906020019092919050505082826003811061110157fe5b6020020181815250508080600101915050611006565b506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231611160614e7f565b6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156111c057600080fd5b505afa1580156111d4573d6000803e3d6000fd5b505050506040513d60208110156111ea57600080fd5b8101908080519060200190929190505050905083811115611209578390505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd61124f614e7f565b30846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156112ed57600080fd5b505af1158015611301573d6000803e3d6000fd5b505050506040513d602081101561131757600080fd5b810190808051906020019092919050505061133157600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fdaea0c86611397606461138960658a614f3490919063ffffffff16565b614f6190919063ffffffff16565b6040518363ffffffff1660e01b81526004018083600360200280828437600081840152601f19601f82011690508083019250505082815260200192505050600060405180830381600087803b1580156113ef57600080fd5b505af1158015611403573d6000803e3d6000fd5b50505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156114a657600080fd5b505afa1580156114ba573d6000803e3d6000fd5b505050506040513d60208110156114d057600080fd5b81019080805190602001909291905050509050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561158c57600080fd5b505af11580156115a0573d6000803e3d6000fd5b505050506040513d60208110156115b657600080fd5b81019080805190602001909291905050506115d057600080fd5b60008090505b6003811015611821576116e78382600381106115ee57fe5b60200201516001836003811061160057fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561169e57600080fd5b505afa1580156116b2573d6000803e3d6000fd5b505050506040513d60208110156116c857600080fd5b8101908080519060200190929190505050614f8190919063ffffffff16565b8382600381106116f357fe5b602002018181525050600081141561170a57611814565b6001816003811061171757fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8885846003811061176157fe5b60200201516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156117cf57600080fd5b505af11580156117e3573d6000803e3d6000fd5b505050506040513d60208110156117f957600080fd5b810190808051906020019092919050505061181357600080fd5b5b80806001019150506115d6565b506000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166364936b1e6040518163ffffffff1660e01b81526004018080602001828103825260038152602001807f425443000000000000000000000000000000000000000000000000000000000081525060200191505060206040518083038186803b1580156118c857600080fd5b505afa1580156118dc573d6000803e3d6000fd5b505050506040513d60208110156118f257600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff166338463cff8a8a8660006003811061192d57fe5b60200201516040518463ffffffff1660e01b815260040180806020018381526020018281038252858582818152602001925080828437600081840152601f19601f820116905080830192505050945050505050602060405180830381600087803b15801561199a57600080fd5b505af11580156119ae573d6000803e3d6000fd5b505050506040513d60208110156119c457600080fd5b810190808051906020019092919050505090507fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb816040518082815260200191505060405180910390a15050506000803690506010025a83615208010301905060006d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611ab157600080fd5b505afa158015611ac5573d6000803e3d6000fd5b505050506040513d6020811015611adb57600080fd5b81019080805190602001909291905050501115611bd7576d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff1663079d229f3061a3db61374a850181611b2c57fe5b046040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611b9657600080fd5b505af1158015611baa573d6000803e3d6000fd5b505050506040513d6020811015611bc057600080fd5b810190808051906020019092919050505050611cbf565b6d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff1663079d229f611c09614e7f565b61a3db61374a850181611c1857fe5b046040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611c8257600080fd5b505af1158015611c96573d6000803e3d6000fd5b505050506040513d6020811015611cac57600080fd5b8101908080519060200190929190505050505b50505050505050565b60005a905060018260ff1660038110611cdd57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd611d22614e7f565b30876040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611dc057600080fd5b505af1158015611dd4573d6000803e3d6000fd5b505050506040513d6020811015611dea57600080fd5b8101908080519060200190929190505050611e0457600080fd5b60006001600060038110611e1457fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611eb257600080fd5b505afa158015611ec6573d6000803e3d6000fd5b505050506040513d6020811015611edc57600080fd5b81019080805190602001909291905050509050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633df0212484600088886040518563ffffffff1660e01b8152600401808560ff16600f0b815260200184600f0b8152602001838152602001828152602001945050505050600060405180830381600087803b158015611f8657600080fd5b505af1158015611f9a573d6000803e3d6000fd5b5050505060006001600060038110611fae57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561204c57600080fd5b505afa158015612060573d6000803e3d6000fd5b505050506040513d602081101561207657600080fd5b81019080805190602001909291905050509050600061209e8383614f8190919063ffffffff16565b90506000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166364936b1e6040518163ffffffff1660e01b81526004018080602001828103825260038152602001807f425443000000000000000000000000000000000000000000000000000000000081525060200191505060206040518083038186803b15801561214657600080fd5b505afa15801561215a573d6000803e3d6000fd5b505050506040513d602081101561217057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff166338463cff8b8b856040518463ffffffff1660e01b815260040180806020018381526020018281038252858582818152602001925080828437600081840152601f19601f820116905080830192505050945050505050602060405180830381600087803b15801561220757600080fd5b505af115801561221b573d6000803e3d6000fd5b505050506040513d602081101561223157600080fd5b810190808051906020019092919050505090507fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb816040518082815260200191505060405180910390a1505050506000803690506010025a83615208010301905060006d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561231f57600080fd5b505afa158015612333573d6000803e3d6000fd5b505050506040513d602081101561234957600080fd5b81019080805190602001909291905050501115612445576d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff1663079d229f3061a3db61374a85018161239a57fe5b046040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561240457600080fd5b505af1158015612418573d6000803e3d6000fd5b505050506040513d602081101561242e57600080fd5b81019080805190602001909291905050505061252d565b6d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff1663079d229f612477614e7f565b61a3db61374a85018161248657fe5b046040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156124f057600080fd5b505af1158015612504573d6000803e3d6000fd5b505050506040513d602081101561251a57600080fd5b8101908080519060200190929190505050505b50505050505050565b60005a905060008a898989612549614e7f565b6040516020018086815260200185815260200184600f0b600f0b81526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001955050505050506040516020818303038152906040528051906020012090506000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166364936b1e6040518163ffffffff1660e01b81526004018080602001828103825260038152602001807f425443000000000000000000000000000000000000000000000000000000000081525060200191505060206040518083038186803b15801561269157600080fd5b505afa1580156126a5573d6000803e3d6000fd5b505050506040513d60208110156126bb57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663159ab14d83898989896040518663ffffffff1660e01b815260040180868152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b15801561276257600080fd5b505af1158015612776573d6000803e3d6000fd5b505050506040513d602081101561278c57600080fd5b810190808051906020019092919050505090506000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635e0d443f60008c856040518463ffffffff1660e01b81526004018084600f0b815260200183600f0b600f0b8152602001828152602001935050505060206040518083038186803b15801561282e57600080fd5b505afa158015612842573d6000803e3d6000fd5b505050506040513d602081101561285857600080fd5b8101908080519060200190929190505050905060006128b9836128ab60048e600f0b6003811061288457fe5b015461289d6305f5e10087614f3490919063ffffffff16565b614f6190919063ffffffff16565b614f6190919063ffffffff16565b90506128d08c612710614f8190919063ffffffff16565b9b5060006128fb6127106128ed8f86614f3490919063ffffffff16565b614f6190919063ffffffff16565b90508d82106129265760008c600f0b141561291557600080fd5b6129218c85838e614f9b565b612a58565b600160006003811061293457fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156129dc57600080fd5b505af11580156129f0573d6000803e3d6000fd5b505050506040513d6020811015612a0657600080fd5b8101908080519060200190929190505050612a2057600080fd5b7f168094234a7c53f3434b5ac1936fa7bdc59f28ea7f93bda1f79272fdf0537e5a846040518082815260200191505060405180910390a15b50505050506000803690506010025a83615208010301905060006d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612afd57600080fd5b505afa158015612b11573d6000803e3d6000fd5b505050506040513d6020811015612b2757600080fd5b81019080805190602001909291905050501115612c23576d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff1663079d229f3061a3db61374a850181612b7857fe5b046040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612be257600080fd5b505af1158015612bf6573d6000803e3d6000fd5b505050506040513d6020811015612c0c57600080fd5b810190808051906020019092919050505050612d0b565b6d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff1663079d229f612c55614e7f565b61a3db61374a850181612c6457fe5b046040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612cce57600080fd5b505af1158015612ce2573d6000803e3d6000fd5b505050506040513d6020811015612cf857600080fd5b8101908080519060200190929190505050505b5050505050505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000804690508091505090565b60005a9050612d7a615a59565b60008090505b6003811015612e915760018160038110612d9657fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612e3457600080fd5b505afa158015612e48573d6000803e3d6000fd5b505050506040513d6020811015612e5e57600080fd5b8101908080519060200190929190505050828260038110612e7b57fe5b6020020181815250508080600101915050612d80565b50600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd612ed8614e7f565b30876040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015612f7657600080fd5b505af1158015612f8a573d6000803e3d6000fd5b505050506040513d6020811015612fa057600080fd5b8101908080519060200190929190505050612fba57600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ecb586a585856040518363ffffffff1660e01b81526004018083815260200182600360200280828437600081840152601f19601f82011690508083019250505092505050600060405180830381600087803b15801561305257600080fd5b505af1158015613066573d6000803e3d6000fd5b5050505060008090505b60038110156132bb5761318182826003811061308857fe5b60200201516001836003811061309a57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561313857600080fd5b505afa15801561314c573d6000803e3d6000fd5b505050506040513d602081101561316257600080fd5b8101908080519060200190929190505050614f8190919063ffffffff16565b82826003811061318d57fe5b60200201818152505060008114156131a4576132ae565b600181600381106131b157fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb878484600381106131fb57fe5b60200201516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561326957600080fd5b505af115801561327d573d6000803e3d6000fd5b505050506040513d602081101561329357600080fd5b81019080805190602001909291905050506132ad57600080fd5b5b8080600101915050613070565b506000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166364936b1e6040518163ffffffff1660e01b81526004018080602001828103825260038152602001807f425443000000000000000000000000000000000000000000000000000000000081525060200191505060206040518083038186803b15801561336257600080fd5b505afa158015613376573d6000803e3d6000fd5b505050506040513d602081101561338c57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff166338463cff8989856000600381106133c757fe5b60200201516040518463ffffffff1660e01b815260040180806020018381526020018281038252858582818152602001925080828437600081840152601f19601f820116905080830192505050945050505050602060405180830381600087803b15801561343457600080fd5b505af1158015613448573d6000803e3d6000fd5b505050506040513d602081101561345e57600080fd5b810190808051906020019092919050505090507fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb816040518082815260200191505060405180910390a150506000803690506010025a83615208010301905060006d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561354a57600080fd5b505afa15801561355e573d6000803e3d6000fd5b505050506040513d602081101561357457600080fd5b81019080805190602001909291905050501115613670576d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff1663079d229f3061a3db61374a8501816135c557fe5b046040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561362f57600080fd5b505af1158015613643573d6000803e3d6000fd5b505050506040513d602081101561365957600080fd5b810190808051906020019092919050505050613758565b6d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff1663079d229f6136a2614e7f565b61a3db61374a8501816136b157fe5b046040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561371b57600080fd5b505af115801561372f573d6000803e3d6000fd5b505050506040513d602081101561374557600080fd5b8101908080519060200190929190505050505b50505050505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60005a90506000898888613799614e7f565b604051602001808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184600360200280828437600081840152601f19601f8201169050808301925050508381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019450505050506040516020818303038152906040528051906020012090506000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166364936b1e6040518163ffffffff1660e01b81526004018080602001828103825260038152602001807f425443000000000000000000000000000000000000000000000000000000000081525060200191505060206040518083038186803b1580156138ef57600080fd5b505afa158015613903573d6000803e3d6000fd5b505050506040513d602081101561391957600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663159ab14d838c8989896040518663ffffffff1660e01b815260040180868152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b1580156139c057600080fd5b505af11580156139d4573d6000803e3d6000fd5b505050506040513d60208110156139ea57600080fd5b81019080805190602001909291905050509050613a05615a59565b896003806020026040519081016040528092919082600360200280828437600081840152601f19601f82011690508083019250505050505090508181600060038110613a4d57fe5b6020020181815250506000600190505b6003811015613a99578a8160038110613a7257fe5b6020020135828260038110613a8357fe5b6020020181815250508080600101915050613a5d565b5087600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633883e1198c60016040518363ffffffff1660e01b81526004018083600360200280828437600081840152601f19601f8201169050808301925050508215151515815260200192505050602060405180830381600087803b158015613b3857600080fd5b505af1158015613b4c573d6000803e3d6000fd5b505050506040513d6020811015613b6257600080fd5b810190808051906020019092919050505010613b8957613b8481838a8f61538d565b613cbb565b6001600060038110613b9757fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8d846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015613c3f57600080fd5b505af1158015613c53573d6000803e3d6000fd5b505050506040513d6020811015613c6957600080fd5b8101908080519060200190929190505050613c8357600080fd5b7f168094234a7c53f3434b5ac1936fa7bdc59f28ea7f93bda1f79272fdf0537e5a826040518082815260200191505060405180910390a15b5050506000803690506010025a83615208010301905060006d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015613d5e57600080fd5b505afa158015613d72573d6000803e3d6000fd5b505050506040513d6020811015613d8857600080fd5b81019080805190602001909291905050501115613e84576d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff1663079d229f3061a3db61374a850181613dd957fe5b046040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015613e4357600080fd5b505af1158015613e57573d6000803e3d6000fd5b505050506040513d6020811015613e6d57600080fd5b810190808051906020019092919050505050613f6c565b6d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff1663079d229f613eb6614e7f565b61a3db61374a850181613ec557fe5b046040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015613f2f57600080fd5b505af1158015613f43573d6000803e3d6000fd5b505050506040513d6020811015613f5957600080fd5b8101908080519060200190929190505050505b50505050505050505050565b60006060613f858761590c565b90506060613f928761590c565b90506000898b848460405160200180807f19457468657265756d205369676e6564204d6573736167653a0a000000000000815250601a0185805190602001908083835b60208310613ff85780518252602082019150602081019050602083039250613fd5565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b602083106140495780518252602082019150602081019050602083039250614026565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b6020831061409a5780518252602082019150602081019050602083039250614077565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b602083106140eb57805182526020820191506020810190506020830392506140c8565b6001836020036101000a03801982511681845116808217855250505050505090500194505050505060405160208183030381529060405280519060200120905060018186898960405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015614188573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614935050505098975050505050505050565b60005a9050600060016000600381106141e657fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561428457600080fd5b505afa158015614298573d6000803e3d6000fd5b505050506040513d60208110156142ae57600080fd5b81019080805190602001909291905050509050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd614307614e7f565b30886040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156143a557600080fd5b505af11580156143b9573d6000803e3d6000fd5b505050506040513d60208110156143cf57600080fd5b81019080805190602001909291905050506143e957600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631a4d01d28685876040518463ffffffff1660e01b8152600401808481526020018360ff16600f0b81526020018281526020019350505050600060405180830381600087803b15801561447457600080fd5b505af1158015614488573d6000803e3d6000fd5b505050506000600160006003811061449c57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561453a57600080fd5b505afa15801561454e573d6000803e3d6000fd5b505050506040513d602081101561456457600080fd5b81019080805190602001909291905050509050600061458c8383614f8190919063ffffffff16565b90506000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166364936b1e6040518163ffffffff1660e01b81526004018080602001828103825260038152602001807f425443000000000000000000000000000000000000000000000000000000000081525060200191505060206040518083038186803b15801561463457600080fd5b505afa158015614648573d6000803e3d6000fd5b505050506040513d602081101561465e57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff166338463cff8b8b856040518463ffffffff1660e01b815260040180806020018381526020018281038252858582818152602001925080828437600081840152601f19601f820116905080830192505050945050505050602060405180830381600087803b1580156146f557600080fd5b505af1158015614709573d6000803e3d6000fd5b505050506040513d602081101561471f57600080fd5b810190808051906020019092919050505090507fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb816040518082815260200191505060405180910390a1505050506000803690506010025a83615208010301905060006d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561480d57600080fd5b505afa158015614821573d6000803e3d6000fd5b505050506040513d602081101561483757600080fd5b81019080805190602001909291905050501115614933576d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff1663079d229f3061a3db61374a85018161488857fe5b046040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156148f257600080fd5b505af1158015614906573d6000803e3d6000fd5b505050506040513d602081101561491c57600080fd5b810190808051906020019092919050505050614a1b565b6d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff1663079d229f614965614e7f565b61a3db61374a85018161497457fe5b046040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156149de57600080fd5b505af11580156149f2573d6000803e3d6000fd5b505050506040513d6020811015614a0857600080fd5b8101908080519060200190929190505050505b50505050505050565b6d4946c0e9f43f4dee607b0ef1fa1c81565b6060614a8d8887876000808d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614a85612d60565b898989613f78565b614ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615a7c6021913960400191505060405180910390fd5b600060603073ffffffffffffffffffffffffffffffffffffffff16898b6040516020018083805190602001908083835b60208310614b355780518252602082019150602081019050602083039250614b12565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401925050506040516020818303038152906040526040518082805190602001908083835b60208310614bd25780518252602082019150602081019050602083039250614baf565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114614c34576040519150601f19603f3d011682016040523d82523d6000602084013e614c39565b606091505b509150915081614cb1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f46756e6374696f6e2063616c6c206e6f74207375636365737366756c6c00000081525060200191505060405180910390fd5b614d0360016000808d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054615a3f90919063ffffffff16565b6000808c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b8a338b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015614e0d578082015181840152602081019050614df2565b50505050905090810190601f168015614e3a5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a18092505050979650505050505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415614f2a5760606000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050600080369050905073ffffffffffffffffffffffffffffffffffffffff818301511692505050614f2e565b3390505b80905090565b600081830290506000831480614f52575081838281614f4f57fe5b04145b614f5b57600080fd5b92915050565b6000808211614f6f57600080fd5b818381614f7857fe5b04905092915050565b600082821115614f9057600080fd5b818303905092915050565b6000600185600f0b60038110614fad57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561504b57600080fd5b505afa15801561505f573d6000803e3d6000fd5b505050506040513d602081101561507557600080fd5b81019080805190602001909291905050509050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633df0212460008787876040518563ffffffff1660e01b81526004018085600f0b815260200184600f0b600f0b8152602001838152602001828152602001945050505050600060405180830381600087803b15801561511f57600080fd5b505af1158015615133573d6000803e3d6000fd5b505050506000600186600f0b6003811061514957fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156151e757600080fd5b505afa1580156151fb573d6000803e3d6000fd5b505050506040513d602081101561521157600080fd5b8101908080519060200190929190505050905060006152398383614f8190919063ffffffff16565b9050600187600f0b6003811061524b57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156152f357600080fd5b505af1158015615307573d6000803e3d6000fd5b505050506040513d602081101561531d57600080fd5b810190808051906020019092919050505061533757600080fd5b7f0f53fda404376fdea6de5ffe0d5272072454f69b1abdf71a66e24ba0c128b4f28682896040518084815260200183815260200182600f0b600f0b8152602001935050505060405180910390a150505050505050565b6000600190505b60038110156155085760008582600381106153ab57fe5b602002015111156154fb57600181600381106153c357fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd615408614e7f565b3088856003811061541557fe5b60200201516040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156154b657600080fd5b505af11580156154ca573d6000803e3d6000fd5b505050506040513d60208110156154e057600080fd5b81019080805190602001909291905050506154fa57600080fd5b5b8080600101915050615394565b506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156155aa57600080fd5b505afa1580156155be573d6000803e3d6000fd5b505050506040513d60208110156155d457600080fd5b81019080805190602001909291905050509050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634515cef38660006040518363ffffffff1660e01b81526004018083600360200280838360005b83811015615662578082015181840152602081019050615647565b5050505090500182815260200192505050600060405180830381600087803b15801561568d57600080fd5b505af11580156156a1573d6000803e3d6000fd5b505050506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561574657600080fd5b505afa15801561575a573d6000803e3d6000fd5b505050506040513d602081101561577057600080fd5b8101908080519060200190929190505050905060006157988383614f8190919063ffffffff16565b9050848110156157a757600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561585057600080fd5b505af1158015615864573d6000803e3d6000fd5b505050506040513d602081101561587a57600080fd5b810190808051906020019092919050505061589457600080fd5b7f0882f81e7e1d407c41100a8a53cd546a2f6ffff18d00dc1268ee70f1640932cc8682896040518084815260200183815260200182600360200280838360005b838110156158ef5780820151818401526020810190506158d4565b50505050905001935050505060405180910390a150505050505050565b60606000821415615954576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050615a3a565b600082905060005b6000821461597e578080600101915050600a828161597657fe5b04915061595c565b6060816040519080825280601f01601f1916602001820160405280156159b35781602001600182028038833980820191505090505b509050600060018303905060008690505b60008114615a3157600a81816159d657fe5b0660300160f81b838380600190039450815181106159f057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8181615a2957fe5b0490506159c4565b82955050505050505b919050565b6000818301905082811015615a5357600080fd5b92915050565b604051806060016040528060039060208202803883398082019150509050509056fe5369676e657220616e64207369676e617475726520646f206e6f74206d61746368a264697066735822122018fd1ae8482a45efa90480d28c39af531c4512e500c6a8aa708f3652b492c8c364736f6c634300060000330000000000000000000000007fc77b5c7614e1533320ea6ddc2eb61fa00a9714000000000000000000000000075b1bb99792c9e1041ba13afef80c91a1e70fb3000000000000000000000000e80d347df1209a76dd9d2319d62912ba98c54ddd000000000000000000000000eb4c2781e4eba804ce9a9803c67d0893436bb27d0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599000000000000000000000000fe18be6b3bd88a2d2a7f928d00292e7a9963cfc6
Deployed Bytecode
0x6080604052600436106100e15760003560e01c80637b1039991161007f578063afd1fe0311610059578063afd1fe0314610867578063c92aecc41461090e578063d039fca114610965578063d2f7265a14610c08576100e8565b80637b1039991461056a578063a318f9de146105c1578063a461e5fa1461069a576100e8565b806329349116116100bb578063293491161461033a5780632d0335ab14610420578063564b81ef146104855780635c72f616146104b0576100e8565b80630bfe8b92146100ea57806318274dd6146101d95780631ad8e63614610293576100e8565b366100e857005b005b3480156100f657600080fd5b506101d76004803603608081101561010d57600080fd5b810190808035906020019064010000000081111561012a57600080fd5b82018360208201111561013c57600080fd5b8035906020019184600183028401116401000000008311171561015e57600080fd5b909192939192939080359060200190929190803590602001909291908035906020019064010000000081111561019357600080fd5b8201836020820111156101a557600080fd5b803590602001918460018302840111640100000000831117156101c757600080fd5b9091929391929390505050610c5f565b005b3480156101e557600080fd5b50610291600480360360c08110156101fc57600080fd5b810190808035906020019064010000000081111561021957600080fd5b82018360208201111561022b57600080fd5b8035906020019184600183028401116401000000008311171561024d57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908060600190919291929080359060200190929190505050610ff3565b005b34801561029f57600080fd5b50610338600480360360808110156102b657600080fd5b81019080803590602001906401000000008111156102d357600080fd5b8201836020820111156102e557600080fd5b8035906020019184600183028401116401000000008311171561030757600080fd5b90919293919293908035906020019092919080359060200190929190803560ff169060200190929190505050611cc8565b005b34801561034657600080fd5b5061041e600480360361010081101561035e57600080fd5b810190808035906020019092919080359060200190929190803590602001909291908035600f0b9060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001906401000000008111156103da57600080fd5b8201836020820111156103ec57600080fd5b8035906020019184600183028401116401000000008311171561040e57600080fd5b9091929391929390505050612536565b005b34801561042c57600080fd5b5061046f6004803603602081101561044357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d18565b6040518082815260200191505060405180910390f35b34801561049157600080fd5b5061049a612d60565b6040518082815260200191505060405180910390f35b3480156104bc57600080fd5b50610568600480360360c08110156104d357600080fd5b81019080803590602001906401000000008111156104f057600080fd5b82018360208201111561050257600080fd5b8035906020019184600183028401116401000000008311171561052457600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080606001909192919290505050612d6d565b005b34801561057657600080fd5b5061057f613761565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105cd57600080fd5b5061069860048036036101208110156105e557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190806060019091929192908035906020019092919080359060200190929190803590602001909291908035906020019064010000000081111561065457600080fd5b82018360208201111561066657600080fd5b8035906020019184600183028401116401000000008311171561068857600080fd5b9091929391929390505050613787565b005b3480156106a657600080fd5b5061084d60048036036101008110156106be57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156106fb57600080fd5b82018360208201111561070d57600080fd5b8035906020019184600183028401116401000000008311171561072f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561079257600080fd5b8201836020820111156107a457600080fd5b803590602001918460018302840111640100000000831117156107c657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190803590602001909291908035906020019092919080359060200190929190803560ff169060200190929190505050613f78565b604051808215151515815260200191505060405180910390f35b34801561087357600080fd5b5061090c6004803603608081101561088a57600080fd5b81019080803590602001906401000000008111156108a757600080fd5b8201836020820111156108b957600080fd5b803590602001918460018302840111640100000000831117156108db57600080fd5b90919293919293908035906020019092919080359060200190929190803560ff1690602001909291905050506141d1565b005b34801561091a57600080fd5b50610923614a24565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610b8d600480360360e081101561097b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156109b857600080fd5b8201836020820111156109ca57600080fd5b803590602001918460018302840111640100000000831117156109ec57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610a4f57600080fd5b820183602082011115610a6157600080fd5b80359060200191846001830284011164010000000083111715610a8357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610ae657600080fd5b820183602082011115610af857600080fd5b80359060200191846001830284011164010000000083111715610b1a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919080359060200190929190803560ff169060200190929190505050614a36565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610bcd578082015181840152602081019050610bb2565b50505050905090810190601f168015610bfa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610c1457600080fd5b50610c1d614e59565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600060208787905003905060008787838180821115610c7d57600080fd5b82811115610c8a57600080fd5b6001820284019350818103925050506020811015610ca757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050509050610cd8614e7f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d0f57600080fd5b60008888604051808383808284378083019250505092505050604051809103902090506000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166364936b1e6040518163ffffffff1660e01b81526004018080602001828103825260038152602001807f425443000000000000000000000000000000000000000000000000000000000081525060200191505060206040518083038186803b158015610dd857600080fd5b505afa158015610dec573d6000803e3d6000fd5b505050506040513d6020811015610e0257600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663159ab14d838a8a8a8a6040518663ffffffff1660e01b815260040180868152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b158015610ea957600080fd5b505af1158015610ebd573d6000803e3d6000fd5b505050506040513d6020811015610ed357600080fd5b810190808051906020019092919050505090506001600060038110610ef457fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610f39614e7f565b836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610fa357600080fd5b505af1158015610fb7573d6000803e3d6000fd5b505050506040513d6020811015610fcd57600080fd5b8101908080519060200190929190505050610fe757600080fd5b50505050505050505050565b60005a9050611000615a59565b60008090505b6003811015611117576001816003811061101c57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156110ba57600080fd5b505afa1580156110ce573d6000803e3d6000fd5b505050506040513d60208110156110e457600080fd5b810190808051906020019092919050505082826003811061110157fe5b6020020181815250508080600101915050611006565b506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231611160614e7f565b6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156111c057600080fd5b505afa1580156111d4573d6000803e3d6000fd5b505050506040513d60208110156111ea57600080fd5b8101908080519060200190929190505050905083811115611209578390505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd61124f614e7f565b30846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156112ed57600080fd5b505af1158015611301573d6000803e3d6000fd5b505050506040513d602081101561131757600080fd5b810190808051906020019092919050505061133157600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fdaea0c86611397606461138960658a614f3490919063ffffffff16565b614f6190919063ffffffff16565b6040518363ffffffff1660e01b81526004018083600360200280828437600081840152601f19601f82011690508083019250505082815260200192505050600060405180830381600087803b1580156113ef57600080fd5b505af1158015611403573d6000803e3d6000fd5b50505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156114a657600080fd5b505afa1580156114ba573d6000803e3d6000fd5b505050506040513d60208110156114d057600080fd5b81019080805190602001909291905050509050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561158c57600080fd5b505af11580156115a0573d6000803e3d6000fd5b505050506040513d60208110156115b657600080fd5b81019080805190602001909291905050506115d057600080fd5b60008090505b6003811015611821576116e78382600381106115ee57fe5b60200201516001836003811061160057fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561169e57600080fd5b505afa1580156116b2573d6000803e3d6000fd5b505050506040513d60208110156116c857600080fd5b8101908080519060200190929190505050614f8190919063ffffffff16565b8382600381106116f357fe5b602002018181525050600081141561170a57611814565b6001816003811061171757fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8885846003811061176157fe5b60200201516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156117cf57600080fd5b505af11580156117e3573d6000803e3d6000fd5b505050506040513d60208110156117f957600080fd5b810190808051906020019092919050505061181357600080fd5b5b80806001019150506115d6565b506000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166364936b1e6040518163ffffffff1660e01b81526004018080602001828103825260038152602001807f425443000000000000000000000000000000000000000000000000000000000081525060200191505060206040518083038186803b1580156118c857600080fd5b505afa1580156118dc573d6000803e3d6000fd5b505050506040513d60208110156118f257600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff166338463cff8a8a8660006003811061192d57fe5b60200201516040518463ffffffff1660e01b815260040180806020018381526020018281038252858582818152602001925080828437600081840152601f19601f820116905080830192505050945050505050602060405180830381600087803b15801561199a57600080fd5b505af11580156119ae573d6000803e3d6000fd5b505050506040513d60208110156119c457600080fd5b810190808051906020019092919050505090507fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb816040518082815260200191505060405180910390a15050506000803690506010025a83615208010301905060006d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611ab157600080fd5b505afa158015611ac5573d6000803e3d6000fd5b505050506040513d6020811015611adb57600080fd5b81019080805190602001909291905050501115611bd7576d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff1663079d229f3061a3db61374a850181611b2c57fe5b046040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611b9657600080fd5b505af1158015611baa573d6000803e3d6000fd5b505050506040513d6020811015611bc057600080fd5b810190808051906020019092919050505050611cbf565b6d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff1663079d229f611c09614e7f565b61a3db61374a850181611c1857fe5b046040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611c8257600080fd5b505af1158015611c96573d6000803e3d6000fd5b505050506040513d6020811015611cac57600080fd5b8101908080519060200190929190505050505b50505050505050565b60005a905060018260ff1660038110611cdd57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd611d22614e7f565b30876040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611dc057600080fd5b505af1158015611dd4573d6000803e3d6000fd5b505050506040513d6020811015611dea57600080fd5b8101908080519060200190929190505050611e0457600080fd5b60006001600060038110611e1457fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611eb257600080fd5b505afa158015611ec6573d6000803e3d6000fd5b505050506040513d6020811015611edc57600080fd5b81019080805190602001909291905050509050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633df0212484600088886040518563ffffffff1660e01b8152600401808560ff16600f0b815260200184600f0b8152602001838152602001828152602001945050505050600060405180830381600087803b158015611f8657600080fd5b505af1158015611f9a573d6000803e3d6000fd5b5050505060006001600060038110611fae57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561204c57600080fd5b505afa158015612060573d6000803e3d6000fd5b505050506040513d602081101561207657600080fd5b81019080805190602001909291905050509050600061209e8383614f8190919063ffffffff16565b90506000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166364936b1e6040518163ffffffff1660e01b81526004018080602001828103825260038152602001807f425443000000000000000000000000000000000000000000000000000000000081525060200191505060206040518083038186803b15801561214657600080fd5b505afa15801561215a573d6000803e3d6000fd5b505050506040513d602081101561217057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff166338463cff8b8b856040518463ffffffff1660e01b815260040180806020018381526020018281038252858582818152602001925080828437600081840152601f19601f820116905080830192505050945050505050602060405180830381600087803b15801561220757600080fd5b505af115801561221b573d6000803e3d6000fd5b505050506040513d602081101561223157600080fd5b810190808051906020019092919050505090507fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb816040518082815260200191505060405180910390a1505050506000803690506010025a83615208010301905060006d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561231f57600080fd5b505afa158015612333573d6000803e3d6000fd5b505050506040513d602081101561234957600080fd5b81019080805190602001909291905050501115612445576d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff1663079d229f3061a3db61374a85018161239a57fe5b046040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561240457600080fd5b505af1158015612418573d6000803e3d6000fd5b505050506040513d602081101561242e57600080fd5b81019080805190602001909291905050505061252d565b6d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff1663079d229f612477614e7f565b61a3db61374a85018161248657fe5b046040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156124f057600080fd5b505af1158015612504573d6000803e3d6000fd5b505050506040513d602081101561251a57600080fd5b8101908080519060200190929190505050505b50505050505050565b60005a905060008a898989612549614e7f565b6040516020018086815260200185815260200184600f0b600f0b81526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001955050505050506040516020818303038152906040528051906020012090506000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166364936b1e6040518163ffffffff1660e01b81526004018080602001828103825260038152602001807f425443000000000000000000000000000000000000000000000000000000000081525060200191505060206040518083038186803b15801561269157600080fd5b505afa1580156126a5573d6000803e3d6000fd5b505050506040513d60208110156126bb57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663159ab14d83898989896040518663ffffffff1660e01b815260040180868152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b15801561276257600080fd5b505af1158015612776573d6000803e3d6000fd5b505050506040513d602081101561278c57600080fd5b810190808051906020019092919050505090506000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635e0d443f60008c856040518463ffffffff1660e01b81526004018084600f0b815260200183600f0b600f0b8152602001828152602001935050505060206040518083038186803b15801561282e57600080fd5b505afa158015612842573d6000803e3d6000fd5b505050506040513d602081101561285857600080fd5b8101908080519060200190929190505050905060006128b9836128ab60048e600f0b6003811061288457fe5b015461289d6305f5e10087614f3490919063ffffffff16565b614f6190919063ffffffff16565b614f6190919063ffffffff16565b90506128d08c612710614f8190919063ffffffff16565b9b5060006128fb6127106128ed8f86614f3490919063ffffffff16565b614f6190919063ffffffff16565b90508d82106129265760008c600f0b141561291557600080fd5b6129218c85838e614f9b565b612a58565b600160006003811061293457fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156129dc57600080fd5b505af11580156129f0573d6000803e3d6000fd5b505050506040513d6020811015612a0657600080fd5b8101908080519060200190929190505050612a2057600080fd5b7f168094234a7c53f3434b5ac1936fa7bdc59f28ea7f93bda1f79272fdf0537e5a846040518082815260200191505060405180910390a15b50505050506000803690506010025a83615208010301905060006d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612afd57600080fd5b505afa158015612b11573d6000803e3d6000fd5b505050506040513d6020811015612b2757600080fd5b81019080805190602001909291905050501115612c23576d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff1663079d229f3061a3db61374a850181612b7857fe5b046040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612be257600080fd5b505af1158015612bf6573d6000803e3d6000fd5b505050506040513d6020811015612c0c57600080fd5b810190808051906020019092919050505050612d0b565b6d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff1663079d229f612c55614e7f565b61a3db61374a850181612c6457fe5b046040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612cce57600080fd5b505af1158015612ce2573d6000803e3d6000fd5b505050506040513d6020811015612cf857600080fd5b8101908080519060200190929190505050505b5050505050505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000804690508091505090565b60005a9050612d7a615a59565b60008090505b6003811015612e915760018160038110612d9657fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612e3457600080fd5b505afa158015612e48573d6000803e3d6000fd5b505050506040513d6020811015612e5e57600080fd5b8101908080519060200190929190505050828260038110612e7b57fe5b6020020181815250508080600101915050612d80565b50600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd612ed8614e7f565b30876040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015612f7657600080fd5b505af1158015612f8a573d6000803e3d6000fd5b505050506040513d6020811015612fa057600080fd5b8101908080519060200190929190505050612fba57600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ecb586a585856040518363ffffffff1660e01b81526004018083815260200182600360200280828437600081840152601f19601f82011690508083019250505092505050600060405180830381600087803b15801561305257600080fd5b505af1158015613066573d6000803e3d6000fd5b5050505060008090505b60038110156132bb5761318182826003811061308857fe5b60200201516001836003811061309a57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561313857600080fd5b505afa15801561314c573d6000803e3d6000fd5b505050506040513d602081101561316257600080fd5b8101908080519060200190929190505050614f8190919063ffffffff16565b82826003811061318d57fe5b60200201818152505060008114156131a4576132ae565b600181600381106131b157fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb878484600381106131fb57fe5b60200201516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561326957600080fd5b505af115801561327d573d6000803e3d6000fd5b505050506040513d602081101561329357600080fd5b81019080805190602001909291905050506132ad57600080fd5b5b8080600101915050613070565b506000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166364936b1e6040518163ffffffff1660e01b81526004018080602001828103825260038152602001807f425443000000000000000000000000000000000000000000000000000000000081525060200191505060206040518083038186803b15801561336257600080fd5b505afa158015613376573d6000803e3d6000fd5b505050506040513d602081101561338c57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff166338463cff8989856000600381106133c757fe5b60200201516040518463ffffffff1660e01b815260040180806020018381526020018281038252858582818152602001925080828437600081840152601f19601f820116905080830192505050945050505050602060405180830381600087803b15801561343457600080fd5b505af1158015613448573d6000803e3d6000fd5b505050506040513d602081101561345e57600080fd5b810190808051906020019092919050505090507fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb816040518082815260200191505060405180910390a150506000803690506010025a83615208010301905060006d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561354a57600080fd5b505afa15801561355e573d6000803e3d6000fd5b505050506040513d602081101561357457600080fd5b81019080805190602001909291905050501115613670576d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff1663079d229f3061a3db61374a8501816135c557fe5b046040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561362f57600080fd5b505af1158015613643573d6000803e3d6000fd5b505050506040513d602081101561365957600080fd5b810190808051906020019092919050505050613758565b6d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff1663079d229f6136a2614e7f565b61a3db61374a8501816136b157fe5b046040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561371b57600080fd5b505af115801561372f573d6000803e3d6000fd5b505050506040513d602081101561374557600080fd5b8101908080519060200190929190505050505b50505050505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60005a90506000898888613799614e7f565b604051602001808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184600360200280828437600081840152601f19601f8201169050808301925050508381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019450505050506040516020818303038152906040528051906020012090506000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166364936b1e6040518163ffffffff1660e01b81526004018080602001828103825260038152602001807f425443000000000000000000000000000000000000000000000000000000000081525060200191505060206040518083038186803b1580156138ef57600080fd5b505afa158015613903573d6000803e3d6000fd5b505050506040513d602081101561391957600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663159ab14d838c8989896040518663ffffffff1660e01b815260040180868152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b1580156139c057600080fd5b505af11580156139d4573d6000803e3d6000fd5b505050506040513d60208110156139ea57600080fd5b81019080805190602001909291905050509050613a05615a59565b896003806020026040519081016040528092919082600360200280828437600081840152601f19601f82011690508083019250505050505090508181600060038110613a4d57fe5b6020020181815250506000600190505b6003811015613a99578a8160038110613a7257fe5b6020020135828260038110613a8357fe5b6020020181815250508080600101915050613a5d565b5087600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633883e1198c60016040518363ffffffff1660e01b81526004018083600360200280828437600081840152601f19601f8201169050808301925050508215151515815260200192505050602060405180830381600087803b158015613b3857600080fd5b505af1158015613b4c573d6000803e3d6000fd5b505050506040513d6020811015613b6257600080fd5b810190808051906020019092919050505010613b8957613b8481838a8f61538d565b613cbb565b6001600060038110613b9757fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8d846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015613c3f57600080fd5b505af1158015613c53573d6000803e3d6000fd5b505050506040513d6020811015613c6957600080fd5b8101908080519060200190929190505050613c8357600080fd5b7f168094234a7c53f3434b5ac1936fa7bdc59f28ea7f93bda1f79272fdf0537e5a826040518082815260200191505060405180910390a15b5050506000803690506010025a83615208010301905060006d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015613d5e57600080fd5b505afa158015613d72573d6000803e3d6000fd5b505050506040513d6020811015613d8857600080fd5b81019080805190602001909291905050501115613e84576d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff1663079d229f3061a3db61374a850181613dd957fe5b046040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015613e4357600080fd5b505af1158015613e57573d6000803e3d6000fd5b505050506040513d6020811015613e6d57600080fd5b810190808051906020019092919050505050613f6c565b6d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff1663079d229f613eb6614e7f565b61a3db61374a850181613ec557fe5b046040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015613f2f57600080fd5b505af1158015613f43573d6000803e3d6000fd5b505050506040513d6020811015613f5957600080fd5b8101908080519060200190929190505050505b50505050505050505050565b60006060613f858761590c565b90506060613f928761590c565b90506000898b848460405160200180807f19457468657265756d205369676e6564204d6573736167653a0a000000000000815250601a0185805190602001908083835b60208310613ff85780518252602082019150602081019050602083039250613fd5565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b602083106140495780518252602082019150602081019050602083039250614026565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b6020831061409a5780518252602082019150602081019050602083039250614077565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b602083106140eb57805182526020820191506020810190506020830392506140c8565b6001836020036101000a03801982511681845116808217855250505050505090500194505050505060405160208183030381529060405280519060200120905060018186898960405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015614188573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614935050505098975050505050505050565b60005a9050600060016000600381106141e657fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561428457600080fd5b505afa158015614298573d6000803e3d6000fd5b505050506040513d60208110156142ae57600080fd5b81019080805190602001909291905050509050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd614307614e7f565b30886040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156143a557600080fd5b505af11580156143b9573d6000803e3d6000fd5b505050506040513d60208110156143cf57600080fd5b81019080805190602001909291905050506143e957600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631a4d01d28685876040518463ffffffff1660e01b8152600401808481526020018360ff16600f0b81526020018281526020019350505050600060405180830381600087803b15801561447457600080fd5b505af1158015614488573d6000803e3d6000fd5b505050506000600160006003811061449c57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561453a57600080fd5b505afa15801561454e573d6000803e3d6000fd5b505050506040513d602081101561456457600080fd5b81019080805190602001909291905050509050600061458c8383614f8190919063ffffffff16565b90506000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166364936b1e6040518163ffffffff1660e01b81526004018080602001828103825260038152602001807f425443000000000000000000000000000000000000000000000000000000000081525060200191505060206040518083038186803b15801561463457600080fd5b505afa158015614648573d6000803e3d6000fd5b505050506040513d602081101561465e57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff166338463cff8b8b856040518463ffffffff1660e01b815260040180806020018381526020018281038252858582818152602001925080828437600081840152601f19601f820116905080830192505050945050505050602060405180830381600087803b1580156146f557600080fd5b505af1158015614709573d6000803e3d6000fd5b505050506040513d602081101561471f57600080fd5b810190808051906020019092919050505090507fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb816040518082815260200191505060405180910390a1505050506000803690506010025a83615208010301905060006d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561480d57600080fd5b505afa158015614821573d6000803e3d6000fd5b505050506040513d602081101561483757600080fd5b81019080805190602001909291905050501115614933576d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff1663079d229f3061a3db61374a85018161488857fe5b046040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156148f257600080fd5b505af1158015614906573d6000803e3d6000fd5b505050506040513d602081101561491c57600080fd5b810190808051906020019092919050505050614a1b565b6d4946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff1663079d229f614965614e7f565b61a3db61374a85018161497457fe5b046040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156149de57600080fd5b505af11580156149f2573d6000803e3d6000fd5b505050506040513d6020811015614a0857600080fd5b8101908080519060200190929190505050505b50505050505050565b6d4946c0e9f43f4dee607b0ef1fa1c81565b6060614a8d8887876000808d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614a85612d60565b898989613f78565b614ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615a7c6021913960400191505060405180910390fd5b600060603073ffffffffffffffffffffffffffffffffffffffff16898b6040516020018083805190602001908083835b60208310614b355780518252602082019150602081019050602083039250614b12565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401925050506040516020818303038152906040526040518082805190602001908083835b60208310614bd25780518252602082019150602081019050602083039250614baf565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114614c34576040519150601f19603f3d011682016040523d82523d6000602084013e614c39565b606091505b509150915081614cb1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f46756e6374696f6e2063616c6c206e6f74207375636365737366756c6c00000081525060200191505060405180910390fd5b614d0360016000808d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054615a3f90919063ffffffff16565b6000808c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b8a338b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015614e0d578082015181840152602081019050614df2565b50505050905090810190601f168015614e3a5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a18092505050979650505050505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415614f2a5760606000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050600080369050905073ffffffffffffffffffffffffffffffffffffffff818301511692505050614f2e565b3390505b80905090565b600081830290506000831480614f52575081838281614f4f57fe5b04145b614f5b57600080fd5b92915050565b6000808211614f6f57600080fd5b818381614f7857fe5b04905092915050565b600082821115614f9057600080fd5b818303905092915050565b6000600185600f0b60038110614fad57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561504b57600080fd5b505afa15801561505f573d6000803e3d6000fd5b505050506040513d602081101561507557600080fd5b81019080805190602001909291905050509050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633df0212460008787876040518563ffffffff1660e01b81526004018085600f0b815260200184600f0b600f0b8152602001838152602001828152602001945050505050600060405180830381600087803b15801561511f57600080fd5b505af1158015615133573d6000803e3d6000fd5b505050506000600186600f0b6003811061514957fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156151e757600080fd5b505afa1580156151fb573d6000803e3d6000fd5b505050506040513d602081101561521157600080fd5b8101908080519060200190929190505050905060006152398383614f8190919063ffffffff16565b9050600187600f0b6003811061524b57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156152f357600080fd5b505af1158015615307573d6000803e3d6000fd5b505050506040513d602081101561531d57600080fd5b810190808051906020019092919050505061533757600080fd5b7f0f53fda404376fdea6de5ffe0d5272072454f69b1abdf71a66e24ba0c128b4f28682896040518084815260200183815260200182600f0b600f0b8152602001935050505060405180910390a150505050505050565b6000600190505b60038110156155085760008582600381106153ab57fe5b602002015111156154fb57600181600381106153c357fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd615408614e7f565b3088856003811061541557fe5b60200201516040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156154b657600080fd5b505af11580156154ca573d6000803e3d6000fd5b505050506040513d60208110156154e057600080fd5b81019080805190602001909291905050506154fa57600080fd5b5b8080600101915050615394565b506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156155aa57600080fd5b505afa1580156155be573d6000803e3d6000fd5b505050506040513d60208110156155d457600080fd5b81019080805190602001909291905050509050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634515cef38660006040518363ffffffff1660e01b81526004018083600360200280838360005b83811015615662578082015181840152602081019050615647565b5050505090500182815260200192505050600060405180830381600087803b15801561568d57600080fd5b505af11580156156a1573d6000803e3d6000fd5b505050506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561574657600080fd5b505afa15801561575a573d6000803e3d6000fd5b505050506040513d602081101561577057600080fd5b8101908080519060200190929190505050905060006157988383614f8190919063ffffffff16565b9050848110156157a757600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561585057600080fd5b505af1158015615864573d6000803e3d6000fd5b505050506040513d602081101561587a57600080fd5b810190808051906020019092919050505061589457600080fd5b7f0882f81e7e1d407c41100a8a53cd546a2f6ffff18d00dc1268ee70f1640932cc8682896040518084815260200183815260200182600360200280838360005b838110156158ef5780820151818401526020810190506158d4565b50505050905001935050505060405180910390a150505050505050565b60606000821415615954576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050615a3a565b600082905060005b6000821461597e578080600101915050600a828161597657fe5b04915061595c565b6060816040519080825280601f01601f1916602001820160405280156159b35781602001600182028038833980820191505090505b509050600060018303905060008690505b60008114615a3157600a81816159d657fe5b0660300160f81b838380600190039450815181106159f057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8181615a2957fe5b0490506159c4565b82955050505050505b919050565b6000818301905082811015615a5357600080fd5b92915050565b604051806060016040528060039060208202803883398082019150509050509056fe5369676e657220616e64207369676e617475726520646f206e6f74206d61746368a264697066735822122018fd1ae8482a45efa90480d28c39af531c4512e500c6a8aa708f3652b492c8c364736f6c63430006000033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007fc77b5c7614e1533320ea6ddc2eb61fa00a9714000000000000000000000000075b1bb99792c9e1041ba13afef80c91a1e70fb3000000000000000000000000e80d347df1209a76dd9d2319d62912ba98c54ddd000000000000000000000000eb4c2781e4eba804ce9a9803c67d0893436bb27d0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599000000000000000000000000fe18be6b3bd88a2d2a7f928d00292e7a9963cfc6
-----Decoded View---------------
Arg [0] : _exchange (address): 0x7fC77b5c7614E1533320Ea6DDc2Eb61fa00A9714
Arg [1] : _curveTokenAddress (address): 0x075b1bb99792c9E1041bA13afEf80C91a1e70fB3
Arg [2] : _registry (address): 0xe80d347DF1209a76DD9d2319d62912ba98C54DDD
Arg [3] : _coins (address[3]): 0xEB4C2781e4ebA804CE9a9803C67d0893436bB27D,0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599,0xfE18be6b3Bd88A2D2A7f928d00292E7a9963CfC6
-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000007fc77b5c7614e1533320ea6ddc2eb61fa00a9714
Arg [1] : 000000000000000000000000075b1bb99792c9e1041ba13afef80c91a1e70fb3
Arg [2] : 000000000000000000000000e80d347df1209a76dd9d2319d62912ba98c54ddd
Arg [3] : 000000000000000000000000eb4c2781e4eba804ce9a9803c67d0893436bb27d
Arg [4] : 0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599
Arg [5] : 000000000000000000000000fe18be6b3bd88a2d2a7f928d00292e7a9963cfc6
Deployed Bytecode Sourcemap
7453:11403:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9101:525;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9101:525:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;9101:525:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;9101:525:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9101:525:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;9101:525:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;9101:525:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9101:525:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;9101:525:0;;;;;;;;;;;;:::i;:::-;;16124:1240;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16124:1240:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;16124:1240:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;16124:1240:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;16124:1240:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;16124:1240:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18167:686;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18167:686:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;18167:686:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;18167:686:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;18167:686:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;18167:686:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9638:1455;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9638:1455:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;9638:1455:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;9638:1455:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9638:1455:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;9638:1455:0;;;;;;;;;;;;:::i;:::-;;2852:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2852:106:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2852:106:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1094:161;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1094:161:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15201:915;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15201:915:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;15201:915:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;15201:915:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;15201:915:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;15201:915:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8313:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8313:32:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11665:1224;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11665:1224:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;11665:1224:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;11665:1224:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;11665:1224:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;11665:1224:0;;;;;;;;;;;;:::i;:::-;;2970:482;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2970:482:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;2970:482:0;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;2970:482:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2970:482:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2970:482:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2970:482:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;2970:482:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2970:482:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2970:482:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2970:482:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;17429:726;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17429:726:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;17429:726:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;17429:726:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;17429:726:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;17429:726:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7553:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7553:93:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2013:831;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;2013:831:0;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;2013:831:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2013:831:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2013:831:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2013:831:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;2013:831:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2013:831:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2013:831:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2013:831:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;2013:831:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2013:831:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2013:831:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2013:831:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2013:831:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8274:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8274:30:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9101:525;9264:13;9297:2;9280:7;;:14;;:19;9264:35;;9310:14;9338:7;;9346:5;9338:15;25:8:-1;13:10;10:24;7:2;;;47:1;44;37:12;7:2;73:6;63:8;60:20;57:2;;;93:1;90;83:12;57:2;142:1;130:10;126:18;118:6;114:31;104:41;;175:10;165:8;161:25;151:35;;9338:15:0;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9327:38:0;;;;;;;;;;;;;;;;;;9310:55;;9394:11;:9;:11::i;:::-;9384:21;;:6;:21;;;9376:30;;;;;;9417:13;9443:7;;9433:18;;;;;30:3:-1;22:6;14;1:33;57:3;49:6;45:16;35:26;;9433:18:0;;;;;;;;;;;;;9417:34;;9462:20;9485:8;;;;;;;;;;;:27;;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9485:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9485:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9485:34:0;;;;;;;;;;;;;;;;:39;;;9525:5;9532:7;9541:6;9549:4;;9485:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;9485:69:0;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9485:69:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9485:69:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9485:69:0;;;;;;;;;;;;;;;;9462:92;;9573:5;9579:1;9573:8;;;;;;;;;;;;;;;;;;:17;;;9591:11;:9;:11::i;:::-;9604:12;9573:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9573:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9573:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9573:44:0;;;;;;;;;;;;;;;;9565:53;;;;;;9101:525;;;;;;;;;;:::o;16124:1240::-;7687:16;7706:9;7687:28;;16316:32:::1;;:::i;:::-;16363:9;16375:1:::0;16363:13:::1;;16359:116;16382:12;16378:1;:16;16359:116;;;16430:5;16436:1;16430:8;;;;;;;;;;;;;;;;;;:18;;;16457:4;16430:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;16430:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;16430:33:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;16430:33:0;;;;;;;;;;;;;;;;16416:8;16425:1;16416:11;;;;;;;;;;:47;;;::::0;::::1;16396:3;;;;;;;16359:116;;;;16487:15;16505:10;;;;;;;;;;;:20;;;16526:11;:9;:11::i;:::-;16505:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;16505:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;16505:33:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;16505:33:0;;;;;;;;;;;;;;;;16487:51;;16562:15;16552:7;:25;16549:83;;;16605:15;16595:25;;16549:83;16650:10;;;;;;;;;;;:23;;;16674:11;:9;:11::i;:::-;16695:4;16702:7;16650:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;16650:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;16650:60:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;16650:60:0;;;;;;;;;;;;;;;;16642:69;;;::::0;::::1;;16722:8;;;;;;;;;;;:35;;;16758:7;16767:33;16796:3;16767:24;16787:3;16767:15;:19;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;16722:79;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;16722:79:0;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;16722:79:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;16722:79:0;;;;16822:10;;;;;;;;;;;:20;;;16851:4;16822:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;16822:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;16822:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;16822:35:0;;;;;;;;;;;;;;;;16812:45;;16876:10;;;;;;;;;;;:19;;;16896:16;16914:7;16876:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;16876:46:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;16876:46:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;16876:46:0;;;;;;;;;;;;;;;;16868:55;;;::::0;::::1;;16940:9;16952:1:::0;16940:13:::1;;16936:239;16959:12;16955:1;:16;16936:239;;;17007:50;17045:8;17054:1;17045:11;;;;;;;;;;;17007:5;17013:1;17007:8;;;;;;;;;;;;;;;;;;:18;;;17034:4;17007:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;17007:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;17007:33:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;17007:33:0;;;;;;;;;;;;;;;;:37;;:50;;;;:::i;:::-;16993:8;17002:1;16993:11;;;;;;;;;;:64;;;::::0;::::1;17080:1;17075;:6;17072:19;;;17083:8;;17072:19;17114:5;17120:1;17114:8;;;;;;;;;;;;;;;;;;:17;;;17132:16;17150:8;17159:1;17150:11;;;;;;;;;;;17114:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;17114:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;17114:48:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;17114:48:0;;;;;;;;;;;;;;;;17106:57;;;::::0;::::1;;16936:239;16973:3;;;;;;;16936:239;;;;17234:18;17255:8;;;;;;;;;;;:27;;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;17255:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;17255:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;17255:34:0;;;;;;;;;;;;;;;;:39;;;17295:15;;17312:8;17321:1;17312:11;;;;;;;;;;;17255:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;17255:69:0;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;17255:69:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;17255:69:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;17255:69:0;;;;;;;;;;;;;;;;17234:90;;17340:16;17345:10;17340:16;;;;;;;;;;;;;;;;;;7726:1;;;7738:16:::0;7821:8;;:15;;7788:2;:48;7776:9;7765:8;7757:5;:16;:28;:79;7738:98;;7881:1;7603:42;7850:13;;;7872:4;7850:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7850:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7850:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7850:28:0;;;;;;;;;;;;;;;;:32;7847:222;;;7603:42;7899:16;;;7924:4;7952:5;7943;7932:8;:16;7931:26;;;;;;7899:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7899:59:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7899:59:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7899:59:0;;;;;;;;;;;;;;;;;7847:222;;;7603:42;8000:16;;;8017:11;:9;:11::i;:::-;8051:5;8042;8031:8;:16;8030:26;;;;;;8000:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8000:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8000:57:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8000:57:0;;;;;;;;;;;;;;;;;7847:222;16124:1240;;;;;;;:::o;18167:686::-;7687:16;7706:9;7687:28;;18314:5:::1;18320:2;18314:9;;;;;;;;;;;;;;;;;;;;:22;;;18337:11;:9;:11::i;:::-;18358:4;18365:7;18314:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;18314:59:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;18314:59:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;18314:59:0;;;;;;;;;;;;;;;;18306:68;;;::::0;::::1;;18385:26;18414:5;18420:1;18414:8;;;;;;;;;;;;;;;;;;:18;;;18441:4;18414:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;18414:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;18414:33:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;18414:33:0;;;;;;;;;;;;;;;;18385:62;;18458:8;;;;;;;;;;;:17;;;18476:2;18480:1;18483:7;18492:16;18458:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;18458:51:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;18458:51:0;;;;18520:24;18547:5;18553:1;18547:8;;;;;;;;;;;;;;;;;;:18;;;18574:4;18547:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;18547:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;18547:33:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;18547:33:0;;;;;;;;;;;;;;;;18520:60;;18591:20;18614:40;18635:18;18614:16;:20;;:40;;;;:::i;:::-;18591:63;;18722:18;18743:8;;;;;;;;;;;:27;;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;18743:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;18743:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;18743:34:0;;;;;;;;;;;;;;;;:39;;;18783:15;;18800:12;18743:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;18743:70:0;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;18743:70:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;18743:70:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;18743:70:0;;;;;;;;;;;;;;;;18722:91;;18829:16;18834:10;18829:16;;;;;;;;;;;;;;;;;;7726:1;;;;7738:16:::0;7821:8;;:15;;7788:2;:48;7776:9;7765:8;7757:5;:16;:28;:79;7738:98;;7881:1;7603:42;7850:13;;;7872:4;7850:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7850:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7850:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7850:28:0;;;;;;;;;;;;;;;;:32;7847:222;;;7603:42;7899:16;;;7924:4;7952:5;7943;7932:8;:16;7931:26;;;;;;7899:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7899:59:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7899:59:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7899:59:0;;;;;;;;;;;;;;;;;7847:222;;;7603:42;8000:16;;;8017:11;:9;:11::i;:::-;8051:5;8042;8031:8;:16;8030:26;;;;;;8000:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8000:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8000:57:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8000:57:0;;;;;;;;;;;;;;;;;7847:222;18167:686;;;;;;;:::o;9638:1455::-;7687:16;7706:9;7687:28;;10134:13:::1;10171:16;10189:9;10200:2;10204:16;10222:11;:9;:11::i;:::-;10160:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;10160:74:0;;;10150:85;;;;;;10134:101;;10246:20;10269:8;;;;;;;;;;;:27;;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;10269:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;10269:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;10269:34:0;;;;;;;;;;;;;;;;:39;;;10309:5;10316:7;10325:6;10333:4;;10269:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;10269:69:0;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;10269:69:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;10269:69:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;10269:69:0;;;;;;;;;;;;;;;;10246:92;;10470:10;10483:8;;;;;;;;;;;:15;;;10499:1;10502:2;10506:12;10483:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;10483:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;10483:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;10483:36:0;;;;;;;;;;;;;;;;10470:49;;10530:12;10545:69;10601:12;10545:51;10561:21;10591:2;10583:11;;10561:34;;;;;;;;;10545:11;10552:3;10545:2;:6;;:11;;;;:::i;:::-;:15;;:51;;;;:::i;:::-;:55;;:69;;;;:::i;:::-;10530:84;;10637:27;10654:9;10645:3;10637:16;;:27;;;;:::i;:::-;10625:39;;10675:14;10692:26;10714:3;10692:17;10699:9;10692:2;:6;;:17;;;;:::i;:::-;:21;;:26;;;;:::i;:::-;10675:43;;10775:19;10767:4;:27;10763:323;;10825:1;10819:2;:7;;;;10811:16;;;::::0;::::1;;10842:50;10849:2;10853:12;10867:6;10875:16;10842:6;:50::i;:::-;10763:323;;;10980:5;10986:1;10980:8;;;;;;;;;;;;;;;;;;:17;;;10998:16;11016:12;10980:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;10980:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;10980:49:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;10980:49:0;;;;;;;;;;;;;;;;10972:58;;;::::0;::::1;;11050:24;11061:12;11050:24;;;;;;;;;;;;;;;;;;10763:323;7726:1;;;;;7738:16:::0;7821:8;;:15;;7788:2;:48;7776:9;7765:8;7757:5;:16;:28;:79;7738:98;;7881:1;7603:42;7850:13;;;7872:4;7850:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7850:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7850:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7850:28:0;;;;;;;;;;;;;;;;:32;7847:222;;;7603:42;7899:16;;;7924:4;7952:5;7943;7932:8;:16;7931:26;;;;;;7899:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7899:59:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7899:59:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7899:59:0;;;;;;;;;;;;;;;;;7847:222;;;7603:42;8000:16;;;8017:11;:9;:11::i;:::-;8051:5;8042;8031:8;:16;8030:26;;;;;;8000:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8000:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8000:57:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8000:57:0;;;;;;;;;;;;;;;;;7847:222;9638:1455;;;;;;;;;;;:::o;2852:106::-;2904:13;2938:6;:12;2945:4;2938:12;;;;;;;;;;;;;;;;2930:20;;2852:106;;;:::o;1094:161::-;1137:7;1157:10;1208:9;1202:15;;1245:2;1238:9;;;1094:161;:::o;15201:915::-;7687:16;7706:9;7687:28;;15379:32:::1;;:::i;:::-;15426:9;15438:1:::0;15426:13:::1;;15422:116;15445:12;15441:1;:16;15422:116;;;15493:5;15499:1;15493:8;;;;;;;;;;;;;;;;;;:18;;;15520:4;15493:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;15493:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;15493:33:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;15493:33:0;;;;;;;;;;;;;;;;15479:8;15488:1;15479:11;;;;;;;;;;:47;;;::::0;::::1;15459:3;;;;;;;15422:116;;;;15558:10;;;;;;;;;;;:23;;;15582:11;:9;:11::i;:::-;15603:4;15610:6;15558:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;15558:59:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;15558:59:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;15558:59:0;;;;;;;;;;;;;;;;15550:68;;;::::0;::::1;;15629:8;;;;;;;;;;;:25;;;15655:6;15663:11;15629:46;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;15629:46:0;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;15629:46:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;15629:46:0;;;;15692:9;15704:1:::0;15692:13:::1;;15688:239;15711:12;15707:1;:16;15688:239;;;15759:50;15797:8;15806:1;15797:11;;;;;;;;;;;15759:5;15765:1;15759:8;;;;;;;;;;;;;;;;;;:18;;;15786:4;15759:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;15759:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;15759:33:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;15759:33:0;;;;;;;;;;;;;;;;:37;;:50;;;;:::i;:::-;15745:8;15754:1;15745:11;;;;;;;;;;:64;;;::::0;::::1;15832:1;15827;:6;15824:19;;;15835:8;;15824:19;15866:5;15872:1;15866:8;;;;;;;;;;;;;;;;;;:17;;;15884:16;15902:8;15911:1;15902:11;;;;;;;;;;;15866:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;15866:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;15866:48:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;15866:48:0;;;;;;;;;;;;;;;;15858:57;;;::::0;::::1;;15688:239;15725:3;;;;;;;15688:239;;;;15986:18;16007:8;;;;;;;;;;;:27;;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;16007:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;16007:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;16007:34:0;;;;;;;;;;;;;;;;:39;;;16047:15;;16064:8;16073:1;16064:11;;;;;;;;;;;16007:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;16007:69:0;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;16007:69:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;16007:69:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;16007:69:0;;;;;;;;;;;;;;;;15986:90;;16092:16;16097:10;16092:16;;;;;;;;;;;;;;;;;;7726:1;;7738:16:::0;7821:8;;:15;;7788:2;:48;7776:9;7765:8;7757:5;:16;:28;:79;7738:98;;7881:1;7603:42;7850:13;;;7872:4;7850:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7850:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7850:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7850:28:0;;;;;;;;;;;;;;;;:32;7847:222;;;7603:42;7899:16;;;7924:4;7952:5;7943;7932:8;:16;7931:26;;;;;;7899:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7899:59:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7899:59:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7899:59:0;;;;;;;;;;;;;;;;;7847:222;;;7603:42;8000:16;;;8017:11;:9;:11::i;:::-;8051:5;8042;8031:8;:16;8030:26;;;;;;8000:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8000:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8000:57:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8000:57:0;;;;;;;;;;;;;;;;;7847:222;15201:915;;;;;;;:::o;8313:32::-;;;;;;;;;;;;;:::o;11665:1224::-;7687:16;7706:9;7687:28;;12009:13:::1;12046:16;12064:8;12074:16;12092:11;:9;:11::i;:::-;12035:69;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;12035:69:0;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12035:69:0;;;12025:80;;;;;;12009:96;;12160:20;12183:8;;;;;;;;;;;:27;;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;12183:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;12183:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;12183:34:0;;;;;;;;;;;;;;;;:39;;;12223:5;12230:7;12239:6;12247:4;;12183:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;12183:69:0;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;12183:69:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;12183:69:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;12183:69:0;;;;;;;;;;;;;;;;12160:92;;12349:39;;:::i;:::-;12391:8;12349:50;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;12349:50:0;;;;;;;12431:12;12410:15;12426:1;12410:18;;;;;;;;;;:33;;;::::0;::::1;12458:9;12470:1;12458:13;;12454:96;8111:1;12473;:11;12454:96;;;12527:8;12536:1;12527:11;;;;;;;;;;;12506:15;12522:1;12506:18;;;;;;;;;;:32;;;::::0;::::1;12486:3;;;;;;;12454:96;;;;12609:20;12563:8;;;;;;;;;;;:26;;;12590:8;12600:4;12563:42;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;12563:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;12563:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;12563:42:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;12563:42:0;;;;;;;;;;;;;;;;:66;12560:322;;12646:80;12656:15;12673:12;12687:20;12709:16;12646:9;:80::i;:::-;12560:322;;;12776:5;12782:1;12776:8;;;;;;;;;;;;;;;;;;:17;;;12794:16;12812:12;12776:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;12776:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;12776:49:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;12776:49:0;;;;;;;;;;;;;;;;12768:58;;;::::0;::::1;;12846:24;12857:12;12846:24;;;;;;;;;;;;;;;;;;12560:322;7726:1;;;7738:16:::0;7821:8;;:15;;7788:2;:48;7776:9;7765:8;7757:5;:16;:28;:79;7738:98;;7881:1;7603:42;7850:13;;;7872:4;7850:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7850:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7850:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7850:28:0;;;;;;;;;;;;;;;;:32;7847:222;;;7603:42;7899:16;;;7924:4;7952:5;7943;7932:8;:16;7931:26;;;;;;7899:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7899:59:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7899:59:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7899:59:0;;;;;;;;;;;;;;;;;7847:222;;;7603:42;8000:16;;;8017:11;:9;:11::i;:::-;8051:5;8042;8031:8;:16;8030:26;;;;;;8000:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8000:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8000:57:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8000:57:0;;;;;;;;;;;;;;;;;7847:222;11665:1224;;;;;;;;;;:::o;2970:482::-;3148:4;3167:22;3192:15;3201:5;3192:8;:15::i;:::-;3167:40;;3218:24;3245:17;3254:7;3245:8;:17::i;:::-;3218:44;;3273:12;3349:6;3357:7;3366:8;3376:10;3298:89;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3298:89:0;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3298:89:0;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3298:89:0;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3298:89:0;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3298:89:0;;;3288:100;;;;;;3273:115;;3410:33;3420:4;3426;3432;3438;3410:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3410:33:0;;;;;;;;3401:42;;:5;:42;;;3393:51;;;;;2970:482;;;;;;;;;;:::o;17429:726::-;7687:16;7706:9;7687:28;;17587:26:::1;17616:5;17622:1;17616:8;;;;;;;;;;;;;;;;;;:18;;;17643:4;17616:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;17616:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;17616:33:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;17616:33:0;;;;;;;;;;;;;;;;17587:62;;17668:10;;;;;;;;;;;:23;;;17692:11;:9;:11::i;:::-;17713:4;17720:14;17668:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;17668:67:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;17668:67:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;17668:67:0;;;;;;;;;;;;;;;;17660:76;;;::::0;::::1;;17747:8;;;;;;;;;;;:34;;;17782:14;17798:2;17802:10;17747:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;17747:66:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;17747:66:0;;;;17824:24;17851:5;17857:1;17851:8;;;;;;;;;;;;;;;;;;:18;;;17878:4;17851:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;17851:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;17851:33:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;17851:33:0;;;;;;;;;;;;;;;;17824:60;;17895:23;17921:40;17942:18;17921:16;:20;;:40;;;;:::i;:::-;17895:66;;18021:18;18042:8;;;;;;;;;;;:27;;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;18042:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;18042:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;18042:34:0;;;;;;;;;;;;;;;;:39;;;18082:15;;18099;18042:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;18042:73:0;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;18042:73:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;18042:73:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;18042:73:0;;;;;;;;;;;;;;;;18021:94;;18131:16;18136:10;18131:16;;;;;;;;;;;;;;;;;;7726:1;;;;7738:16:::0;7821:8;;:15;;7788:2;:48;7776:9;7765:8;7757:5;:16;:28;:79;7738:98;;7881:1;7603:42;7850:13;;;7872:4;7850:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7850:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7850:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7850:28:0;;;;;;;;;;;;;;;;:32;7847:222;;;7603:42;7899:16;;;7924:4;7952:5;7943;7932:8;:16;7931:26;;;;;;7899:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7899:59:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7899:59:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7899:59:0;;;;;;;;;;;;;;;;;7847:222;;;7603:42;8000:16;;;8017:11;:9;:11::i;:::-;8051:5;8042;8031:8;:16;8030:26;;;;;;8000:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8000:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8000:57:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8000:57:0;;;;;;;;;;;;;;;;;7847:222;17429:726;;;;;;;:::o;7553:93::-;7603:42;7553:93;:::o;2013:831::-;2224:12;2259:89;2266:11;2279:7;2288:6;2296;:19;2303:11;2296:19;;;;;;;;;;;;;;;;2317:12;:10;:12::i;:::-;2331:4;2337;2343;2259:6;:89::i;:::-;2251:135;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2495:12;2509:23;2544:4;2536:18;;2572:17;2591:11;2555:48;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2555:48:0;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2555:48:0;;;2536:68;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2536:68:0;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;2494:110:0;;;;2625:7;2617:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2699:26;2723:1;2699:6;:19;2706:11;2699:19;;;;;;;;;;;;;;;;:23;;:26;;;;:::i;:::-;2677:6;:19;2684:11;2677:19;;;;;;;;;;;;;;;:48;;;;2741:67;2765:11;2778:10;2790:17;2741:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2741:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2826:10;2819:17;;;;2013:831;;;;;;;;;:::o;8274:30::-;;;;;;;;;;;;;:::o;4129:538::-;4172:14;4224:4;4202:27;;:10;:27;;;4199:437;;;4246:18;4267:8;;4246:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;4246:29:0;;;;;;;;4290:13;4306:8;;:15;;4290:31;;4515:42;4506:5;4499;4495:17;4489:24;4485:73;4475:83;;4345:228;;;;;4614:10;4605:19;;4199:437;4653:6;4646:13;;4129:538;:::o;565:145::-;617:6;644:1;640;:5;636:9;;669:1;664;:6;:20;;;;683:1;678;674;:5;;;;;;:10;664:20;656:29;;;;;;565:145;;;;:::o;716:136::-;768:6;799:1;795;:5;787:14;;;;;;843:1;839;:5;;;;;;835:9;;716:136;;;;:::o;427:132::-;479:6;511:1;506;:6;;498:15;;;;;;550:1;546;:5;542:9;;427:132;;;;:::o;11101:556::-;11222:20;11245:5;11259:2;11251:11;;11245:18;;;;;;;;;;;;;;;;;;:28;;;11282:4;11245:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11245:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11245:43:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11245:43:0;;;;;;;;;;;;;;;;11222:66;;11299:8;;;;;;;;;;;:17;;;11317:1;11320:2;11324:13;11339:7;11299:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11299:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11299:48:0;;;;11358:18;11379:5;11393:2;11385:11;;11379:18;;;;;;;;;;;;;;;;;;:28;;;11416:4;11379:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11379:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11379:43:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11379:43:0;;;;;;;;;;;;;;;;11358:64;;11433:14;11450:28;11465:12;11450:10;:14;;:28;;;;:::i;:::-;11433:45;;11540:5;11554:2;11546:11;;11540:18;;;;;;;;;;;;;;;;;;:27;;;11568:16;11586:6;11540:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11540:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11540:53:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11540:53:0;;;;;;;;;;;;;;;;11532:62;;;;;;11610:39;11623:13;11638:6;11646:2;11610:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11101:556;;;;;;;:::o;12897:847::-;13059:9;13071:1;13059:13;;13055:203;8111:1;13074;:11;13055:203;;;13131:1;13110:15;13126:1;13110:18;;;;;;;;;;;:22;13107:140;;;13161:5;13167:1;13161:8;;;;;;;;;;;;;;;;;;:21;;;13183:11;:9;:11::i;:::-;13204:4;13211:15;13227:1;13211:18;;;;;;;;;;;13161:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13161:69:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13161:69:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13161:69:0;;;;;;;;;;;;;;;;13153:78;;;;;;13107:140;13087:3;;;;;;;13055:203;;;;13268:26;13297:10;;;;;;;;;;;:20;;;13326:4;13297:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13297:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13297:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13297:35:0;;;;;;;;;;;;;;;;13268:64;;13343:8;;;;;;;;;;;:22;;;13366:15;13383:1;13343:42;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;13343:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13343:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13343:42:0;;;;13396:25;13424:10;;;;;;;;;;;:20;;;13453:4;13424:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13424:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13424:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13424:35:0;;;;;;;;;;;;;;;;13396:63;;13470:19;13492:41;13514:18;13492:17;:21;;:41;;;;:::i;:::-;13470:63;;13567:20;13552:11;:35;;13544:44;;;;;;13607:10;;;;;;;;;;;:19;;;13627:16;13645:11;13607:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13607:50:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13607:50:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13607:50:0;;;;;;;;;;;;;;;;13599:59;;;;;;13674:62;13693:12;13707:11;13720:15;13674:62;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;13674:62:0;;;;;;;;;;;;;;;;;;12897:847;;;;;;;:::o;3602:519::-;3655:27;3705:1;3699:2;:7;3695:50;;;3723:10;;;;;;;;;;;;;;;;;;;;;3695:50;3755:6;3764:2;3755:11;;3777:8;3796:69;3808:1;3803;:6;3796:69;;3826:5;;;;;;;3851:2;3846:7;;;;;;;;;3796:69;;;3875:17;3905:3;3895:14;;;;;;;;;;;;;;;;;;;;;;;;;29:1:-1;21:6;17:14;116:4;104:10;96:6;87:34;147:4;139:6;135:17;125:27;;0:156;3895:14:0;;;;3875:34;;3920:6;3935:1;3929:3;:7;3920:16;;3947:12;3962:2;3947:17;;3975:109;3990:1;3982:4;:9;3975:109;;4043:2;4036:4;:9;;;;;;4031:2;:14;4020:27;;4008:4;4013:3;;;;;;;4008:9;;;;;;;;;;;:39;;;;;;;;;;;4070:2;4062:10;;;;;;;;;3975:109;;;4108:4;4094:19;;;;;;;3602:519;;;;:::o;290:131::-;342:6;369:1;365;:5;361:9;;394:1;389;:6;;381:15;;;;;;290:131;;;;:::o;7453:11403::-;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;7453:11403:0;;;;:::o
Swarm Source
ipfs://18fd1ae8482a45efa90480d28c39af531c4512e500c6a8aa708f3652b492c8c3
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | Ether (ETH) | 100.00% | $3,184.59 | 1.7993 | $5,729.98 |
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.