Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 6 from a total of 6 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Withdraw | 10833103 | 2025 days ago | IN | 0 ETH | 0.04510429 | ||||
| Withdraw | 10833100 | 2025 days ago | IN | 0 ETH | 0.05138037 | ||||
| Withdraw | 10833095 | 2025 days ago | IN | 0 ETH | 0.04320866 | ||||
| Deposit All | 10831937 | 2026 days ago | IN | 0 ETH | 0.61278334 | ||||
| Deposit All | 10831937 | 2026 days ago | IN | 0 ETH | 0.61076914 | ||||
| Deposit All | 10831934 | 2026 days ago | IN | 0 ETH | 0.61022699 |
Latest 3 internal transactions
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| - | 10831937 | 2026 days ago | Contract Creation | 0 ETH | |||
| - | 10831937 | 2026 days ago | Contract Creation | 0 ETH | |||
| - | 10831934 | 2026 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
SingleSidedAMM
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2020-09-10
*/
pragma solidity ^0.5.16;
interface IERC20 {
function totalSupply() external view returns (uint);
function balanceOf(address account) external view returns (uint);
function transfer(address recipient, uint amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint);
function approve(address spender, uint amount) external returns (bool);
function transferFrom(address sender, address recipient, uint amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint value);
event Approval(address indexed owner, address indexed spender, uint value);
}
contract Context {
constructor () internal { }
// solhint-disable-previous-line no-empty-blocks
function _msgSender() internal view returns (address payable) {
return msg.sender;
}
}
contract Ownable is Context {
address private _owner;
constructor () internal {
_owner = _msgSender();
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(isOwner(), "Ownable: caller is not the owner");
_;
}
function isOwner() public view returns (bool) {
return _msgSender() == _owner;
}
}
contract ERC20 is Context, IERC20 {
using SafeMath for uint;
mapping (address => uint) private _balances;
mapping (address => mapping (address => uint)) private _allowances;
uint private _totalSupply;
function totalSupply() public view returns (uint) {
return _totalSupply;
}
function balanceOf(address account) public view returns (uint) {
return _balances[account];
}
function transfer(address recipient, uint amount) public returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender) public view returns (uint) {
return _allowances[owner][spender];
}
function approve(address spender, uint amount) public returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(address sender, address recipient, uint amount) public returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
return true;
}
function increaseAllowance(address spender, uint addedValue) public returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
return true;
}
function decreaseAllowance(address spender, uint subtractedValue) public returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
return true;
}
function _transfer(address sender, address recipient, uint amount) internal {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
_balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
_balances[recipient] = _balances[recipient].add(amount);
emit Transfer(sender, recipient, amount);
}
function _mint(address account, uint amount) internal {
require(account != address(0), "ERC20: mint to the zero address");
_totalSupply = _totalSupply.add(amount);
_balances[account] = _balances[account].add(amount);
emit Transfer(address(0), account, amount);
}
function _burn(address account, uint amount) internal {
require(account != address(0), "ERC20: burn from the zero address");
_balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
_totalSupply = _totalSupply.sub(amount);
emit Transfer(account, address(0), amount);
}
function _approve(address owner, address spender, uint amount) internal {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
}
contract ERC20Detailed is IERC20 {
string private _name;
string private _symbol;
uint8 private _decimals;
constructor (string memory name, string memory symbol, uint8 decimals) public {
_name = name;
_symbol = symbol;
_decimals = decimals;
}
function name() public view returns (string memory) {
return _name;
}
function symbol() public view returns (string memory) {
return _symbol;
}
function decimals() public view returns (uint8) {
return _decimals;
}
}
contract ReentrancyGuard {
uint private _guardCounter;
constructor () internal {
_guardCounter = 1;
}
modifier nonReentrant() {
_guardCounter += 1;
uint localCounter = _guardCounter;
_;
require(localCounter == _guardCounter, "ReentrancyGuard: reentrant call");
}
}
library SafeMath {
function add(uint a, uint b) internal pure returns (uint) {
uint c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint a, uint b) internal pure returns (uint) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(uint a, uint b, string memory errorMessage) internal pure returns (uint) {
require(b <= a, errorMessage);
uint c = a - b;
return c;
}
function mul(uint a, uint b) internal pure returns (uint) {
if (a == 0) {
return 0;
}
uint c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint a, uint b) internal pure returns (uint) {
return div(a, b, "SafeMath: division by zero");
}
function div(uint a, uint b, string memory errorMessage) internal pure returns (uint) {
// Solidity only automatically asserts when dividing by 0
require(b > 0, errorMessage);
uint c = a / b;
return c;
}
}
library Address {
function isContract(address account) internal view returns (bool) {
bytes32 codehash;
bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
// solhint-disable-next-line no-inline-assembly
assembly { codehash := extcodehash(account) }
return (codehash != 0x0 && codehash != accountHash);
}
}
library SafeERC20 {
using SafeMath for uint;
using Address for address;
function safeTransfer(IERC20 token, address to, uint value) internal {
callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
}
function safeTransferFrom(IERC20 token, address from, address to, uint value) internal {
callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
}
function safeApprove(IERC20 token, address spender, uint value) internal {
require((value == 0) || (token.allowance(address(this), spender) == 0),
"SafeERC20: approve from non-zero to non-zero allowance"
);
callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
}
function callOptionalReturn(IERC20 token, bytes memory data) private {
require(address(token).isContract(), "SafeERC20: call to non-contract");
// solhint-disable-next-line avoid-low-level-calls
(bool success, bytes memory returndata) = address(token).call(data);
require(success, "SafeERC20: low-level call failed");
if (returndata.length > 0) { // Return data is optional
// solhint-disable-next-line max-line-length
require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
}
}
}
interface Oracle {
function getPriceUSD(address reserve) external view returns (uint);
}
interface UniswapRouter {
function addLiquidity(
address tokenA,
address tokenB,
uint amountADesired,
uint amountBDesired,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB, uint liquidity);
function removeLiquidity(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB);
function factory() external view returns (address);
}
interface UniswapFactory {
function getPair(address tokenA, address tokenB) external view returns (address pair);
}
interface UniswapPair {
function token0() external view returns (address);
function token1() external view returns (address);
}
contract SupplyToken is ERC20, ERC20Detailed, Ownable {
using SafeERC20 for IERC20;
using Address for address;
using SafeMath for uint;
constructor (
string memory name,
string memory symbol,
uint8 decimals
) public ERC20Detailed(name, symbol, decimals) {}
function mint(address account, uint amount) public onlyOwner {
_mint(account, amount);
}
function burn(address account, uint amount) public onlyOwner {
_burn(account, amount);
}
}
contract SingleSidedAMM is ERC20, ERC20Detailed, ReentrancyGuard {
using SafeERC20 for IERC20;
using SafeERC20 for ERC20Detailed;
using Address for address;
using SafeMath for uint;
Oracle public constant LINK = Oracle(0x271bf4568fb737cc2e6277e9B1EE0034098cDA2a);
UniswapRouter public constant UNI = UniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
mapping (address => address) public tokens;
constructor () public ERC20Detailed("AMM USD", "aUSD", 8) {}
function getUNI(address _token) public view returns (address) {
address pair = UniswapFactory(UNI.factory()).getPair(_token, address(this));
return tokens[pair];
}
function depositAll(ERC20Detailed token) external {
deposit(token, token.balanceOf(msg.sender));
}
function deposit(ERC20Detailed token, uint amount) public {
token.safeTransferFrom(msg.sender, address(this), amount);
_deposit(token, amount);
}
function _deposit(ERC20Detailed token, uint amount) internal {
uint value = LINK.getPriceUSD(address(token)).mul(amount).div(uint256(10)**token.decimals());
require(value > 0, "!value");
_mint(address(this), value); // Amount of aUSD to mint
token.safeApprove(address(UNI), 0);
token.safeApprove(address(UNI), amount);
IERC20(address(this)).safeApprove(address(UNI), 0);
IERC20(address(this)).safeApprove(address(UNI), value);
(,,uint liquidity) = UNI.addLiquidity(
address(token),
address(this),
amount,
value,
amount.mul(98).div(100), // allow a 2% variance on deposits
value.mul(98).div(100), // allow a 2% variance on deposits
address(this),
now.add(1800)
);
address pair = UniswapFactory(UNI.factory()).getPair(address(token), address(this));
require(pair != address(0), "!pair");
if (tokens[pair] == address(0)) {
tokens[pair] = address(new SupplyToken(
string(abi.encodePacked(token.symbol(), " ", ERC20Detailed(pair).name())),
string(abi.encodePacked(token.symbol(), ERC20Detailed(pair).symbol())),
ERC20Detailed(pair).decimals()
));
}
SupplyToken(tokens[pair]).mint(msg.sender, liquidity);
uint _dust = token.balanceOf(address(this));
if (_dust > 0) {
token.safeTransfer(msg.sender, _dust);
}
uint _aUSD = balanceOf(address(this));
if (_aUSD > 0) {
_burn(address(this), _aUSD);
}
}
function withdraw(address token, uint amount) external {
(uint amountA, uint amountB) = _withdraw(token, amount);
_return(token, amountA, amountB);
}
function _withdraw(address token, uint amount) internal returns (uint amountA, uint amountB) {
address pair = UniswapFactory(UNI.factory()).getPair(token, address(this));
SupplyToken(tokens[pair]).burn(msg.sender, amount);
IERC20(pair).safeApprove(address(UNI), 0);
IERC20(pair).safeApprove(address(UNI), amount);
UNI.removeLiquidity(
token,
address(this),
amount,
0,
0,
address(this),
now.add(1800)
);
amountA = IERC20(token).balanceOf(address(this));
amountB = balanceOf(address(this));
}
function _return(address token, uint amountA, uint amountB) internal {
uint valueA = LINK.getPriceUSD(token).mul(amountA).div(uint256(10)**ERC20Detailed(token).decimals());
require(valueA > 0, "!value");
if (valueA > amountB) {
valueA = amountB;
}
_burn(address(this), valueA); // Amount of aUSD to burn (value of A leaving the system)
IERC20(token).safeTransfer(msg.sender, amountA);
if (amountB > valueA) {
IERC20(address(this)).safeTransfer(msg.sender, balanceOf(address(this)));
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"constant":true,"inputs":[],"name":"LINK","outputs":[{"internalType":"contract Oracle","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"UNI","outputs":[{"internalType":"contract UniswapRouter","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract ERC20Detailed","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract ERC20Detailed","name":"token","type":"address"}],"name":"depositAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"getUNI","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tokens","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60806040523480156200001157600080fd5b506040518060400160405280600781526020017f414d4d20555344000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f61555344000000000000000000000000000000000000000000000000000000008152506008826003908051906020019062000098929190620000de565b508160049080519060200190620000b1929190620000de565b5080600560006101000a81548160ff021916908360ff16021790555050505060016006819055506200018d565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200012157805160ff191683800117855562000152565b8280016001018555821562000152579182015b828111156200015157825182559160200191906001019062000134565b5b50905062000161919062000165565b5090565b6200018a91905b80821115620001865760008160009055506001016200016c565b5090565b90565b615a66806200019d6000396000f3fe60806040523480156200001157600080fd5b5060043610620001305760003560e01c80636e15971211620000b1578063a457c2d7116200007b578063a457c2d714620005f8578063a9059cbb1462000661578063dd62ed3e14620006ca578063e48603391462000745578063f3fef3a314620007cc5762000130565b80636e159712146200044757806370a0823114620004ce57806395d89b4114620005295780639f0d5f2714620005b15762000130565b806323b872dd11620000ff57806323b872dd1462000292578063313ce567146200031b57806339509351146200034157806347e7ef2414620003aa578063541bcb7614620003fb5762000130565b806306fdde031462000135578063095ea7b314620001bd57806318160ddd14620002265780631b6b6d231462000246575b600080fd5b6200013f6200081d565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156200018157808201518184015260208101905062000164565b50505050905090810190601f168015620001af5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6200020c60048036036040811015620001d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050620008c3565b604051808215151515815260200191505060405180910390f35b62000230620008e5565b6040518082815260200191505060405180910390f35b62000250620008ef565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6200030160048036036060811015620002aa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505062000907565b604051808215151515815260200191505060405180910390f35b62000325620009eb565b604051808260ff1660ff16815260200191505060405180910390f35b62000390600480360360408110156200035957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505062000a02565b604051808215151515815260200191505060405180910390f35b620003f960048036036040811015620003c257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505062000abd565b005b6200040562000afc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6200048c600480360360208110156200045f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062000b14565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6200051360048036036020811015620004e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062000d07565b6040518082815260200191505060405180910390f35b6200053362000d4f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156200057557808201518184015260208101905062000558565b50505050905090810190601f168015620005a35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b620005f660048036036020811015620005c957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062000df5565b005b62000647600480360360408110156200061057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505062000ebe565b604051808215151515815260200191505060405180910390f35b620006b0600480360360408110156200067957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505062000f94565b604051808215151515815260200191505060405180910390f35b6200072f60048036036040811015620006e257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062000fb6565b6040518082815260200191505060405180910390f35b6200078a600480360360208110156200075d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200103d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6200081b60048036036040811015620007e457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505062001070565b005b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620008b95780601f106200088d57610100808354040283529160200191620008b9565b820191906000526020600020905b8154815290600101906020018083116200089b57829003601f168201915b5050505050905090565b6000620008db620008d362001096565b84846200109e565b6001905092915050565b6000600254905090565b73271bf4568fb737cc2e6277e9b1ee0034098cda2a81565b60006200091684848462001299565b620009e0846200092562001096565b620009da856040518060600160405280602881526020016200591b60289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006200098f62001096565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620015589092919063ffffffff16565b6200109e565b600190509392505050565b6000600560009054906101000a900460ff16905090565b600062000ab362000a1262001096565b8462000aad856001600062000a2662001096565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200161c90919063ffffffff16565b6200109e565b6001905092915050565b62000aec3330838573ffffffffffffffffffffffffffffffffffffffff16620016a5909392919063ffffffff16565b62000af88282620017ad565b5050565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b600080737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801562000b7257600080fd5b505afa15801562000b87573d6000803e3d6000fd5b505050506040513d602081101562000b9e57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663e6a4390584306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801562000c6057600080fd5b505afa15801562000c75573d6000803e3d6000fd5b505050506040513d602081101562000c8c57600080fd5b81019080805190602001909291905050509050600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801562000deb5780601f1062000dbf5761010080835404028352916020019162000deb565b820191906000526020600020905b81548152906001019060200180831162000dcd57829003601f168201915b5050505050905090565b62000ebb818273ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801562000e7857600080fd5b505afa15801562000e8d573d6000803e3d6000fd5b505050506040513d602081101562000ea457600080fd5b810190808051906020019092919050505062000abd565b50565b600062000f8a62000ece62001096565b8462000f848560405180606001604052806025815260200162005a0d602591396001600062000efc62001096565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620015589092919063ffffffff16565b6200109e565b6001905092915050565b600062000fac62000fa462001096565b848462001299565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60076020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806200107f848462002a6c565b915091506200109084838362002fc9565b50505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141562001126576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180620059896024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620011ae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180620058b26022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141562001321576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180620059646025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620013a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806200586d6023913960400191505060405180910390fd5b6200141781604051806060016040528060268152602001620058d4602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620015589092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620014ac816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200161c90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600083831115829062001609576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620015cd578082015181840152602081019050620015b0565b50505050905090810190601f168015620015fb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000808284019050838110156200169b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b620017a7848573ffffffffffffffffffffffffffffffffffffffff166323b872dd905060e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505062003251565b50505050565b60006200192f8373ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015620017fa57600080fd5b505afa1580156200180f573d6000803e3d6000fd5b505050506040513d60208110156200182657600080fd5b810190808051906020019092919050505060ff16600a0a620019208473271bf4568fb737cc2e6277e9b1ee0034098cda2a73ffffffffffffffffffffffffffffffffffffffff16635708447d886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015620018d457600080fd5b505afa158015620018e9573d6000803e3d6000fd5b505050506040513d60208110156200190057600080fd5b8101908080519060200190929190505050620034a890919063ffffffff16565b6200353390919063ffffffff16565b905060008111620019a8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f2176616c7565000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b620019b430826200357f565b620019f6737a250d5630b4cf539739df2c5dacb4c659f2488d60008573ffffffffffffffffffffffffffffffffffffffff166200373f9092919063ffffffff16565b62001a37737a250d5630b4cf539739df2c5dacb4c659f2488d838573ffffffffffffffffffffffffffffffffffffffff166200373f9092919063ffffffff16565b62001a79737a250d5630b4cf539739df2c5dacb4c659f2488d60003073ffffffffffffffffffffffffffffffffffffffff166200373f9092919063ffffffff16565b62001aba737a250d5630b4cf539739df2c5dacb4c659f2488d823073ffffffffffffffffffffffffffffffffffffffff166200373f9092919063ffffffff16565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663e8e337008530868662001b1b606462001b0c60628c620034a890919063ffffffff16565b6200353390919063ffffffff16565b62001b46606462001b3760628c620034a890919063ffffffff16565b6200353390919063ffffffff16565b3062001b5e610708426200161c90919063ffffffff16565b6040518963ffffffff1660e01b8152600401808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200198505050505050505050606060405180830381600087803b15801562001c4a57600080fd5b505af115801562001c5f573d6000803e3d6000fd5b505050506040513d606081101562001c7657600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050925050506000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801562001cfc57600080fd5b505afa15801562001d11573d6000803e3d6000fd5b505050506040513d602081101562001d2857600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663e6a4390586306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801562001dea57600080fd5b505afa15801562001dff573d6000803e3d6000fd5b505050506040513d602081101562001e1657600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141562001ecd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f217061697200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141562002846578473ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801562001fa957600080fd5b505afa15801562001fbe573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101562001fe957600080fd5b81019080805160405193929190846401000000008211156200200a57600080fd5b838201915060208201858111156200202157600080fd5b82518660018202830111640100000000821117156200203f57600080fd5b8083526020830192505050908051906020019080838360005b838110156200207557808201518184015260208101905062002058565b50505050905090810190601f168015620020a35780820380516001836020036101000a031916815260200191505b506040525050508173ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b158015620020f157600080fd5b505afa15801562002106573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156200213157600080fd5b81019080805160405193929190846401000000008211156200215257600080fd5b838201915060208201858111156200216957600080fd5b82518660018202830111640100000000821117156200218757600080fd5b8083526020830192505050908051906020019080838360005b83811015620021bd578082015181840152602081019050620021a0565b50505050905090810190601f168015620021eb5780820380516001836020036101000a031916815260200191505b506040525050506040516020018083805190602001908083835b602083106200222a578051825260208201915060208101905060208303925062002205565b6001836020036101000a038019825116818451168082178552505050505050905001807f200000000000000000000000000000000000000000000000000000000000000081525060010182805190602001908083835b60208310620022a5578051825260208201915060208101905060208303925062002280565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040528573ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156200232157600080fd5b505afa15801562002336573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156200236157600080fd5b81019080805160405193929190846401000000008211156200238257600080fd5b838201915060208201858111156200239957600080fd5b8251866001820283011164010000000082111715620023b757600080fd5b8083526020830192505050908051906020019080838360005b83811015620023ed578082015181840152602081019050620023d0565b50505050905090810190601f1680156200241b5780820380516001836020036101000a031916815260200191505b506040525050508273ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156200246957600080fd5b505afa1580156200247e573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015620024a957600080fd5b8101908080516040519392919084640100000000821115620024ca57600080fd5b83820191506020820185811115620024e157600080fd5b8251866001820283011164010000000082111715620024ff57600080fd5b8083526020830192505050908051906020019080838360005b838110156200253557808201518184015260208101905062002518565b50505050905090810190601f168015620025635780820380516001836020036101000a031916815260200191505b506040525050506040516020018083805190602001908083835b60208310620025a257805182526020820191506020810190506020830392506200257d565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310620025f55780518252602082019150602081019050602083039250620025d0565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040528273ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156200267157600080fd5b505afa15801562002686573d6000803e3d6000fd5b505050506040513d60208110156200269d57600080fd5b8101908080519060200190929190505050604051620026bc9062003d5c565b8080602001806020018460ff1660ff168152602001838103835286818151815260200191508051906020019080838360005b838110156200270b578082015181840152602081019050620026ee565b50505050905090810190601f168015620027395780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156200277457808201518184015260208101905062002757565b50505050905090810190601f168015620027a25780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f080158015620027c7573d6000803e3d6000fd5b50600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156200292d57600080fd5b505af115801562002942573d6000803e3d6000fd5b5050505060008573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015620029c657600080fd5b505afa158015620029db573d6000803e3d6000fd5b505050506040513d6020811015620029f257600080fd5b81019080805190602001909291905050509050600081111562002a3d5762002a3c33828873ffffffffffffffffffffffffffffffffffffffff16620039679092919063ffffffff16565b5b600062002a4a3062000d07565b9050600081111562002a635762002a62308262003a3a565b5b50505050505050565b6000806000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801562002acc57600080fd5b505afa15801562002ae1573d6000803e3d6000fd5b505050506040513d602081101562002af857600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663e6a4390586306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801562002bba57600080fd5b505afa15801562002bcf573d6000803e3d6000fd5b505050506040513d602081101562002be657600080fd5b81019080805190602001909291905050509050600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac33866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801562002ce057600080fd5b505af115801562002cf5573d6000803e3d6000fd5b5050505062002d3b737a250d5630b4cf539739df2c5dacb4c659f2488d60008373ffffffffffffffffffffffffffffffffffffffff166200373f9092919063ffffffff16565b62002d7c737a250d5630b4cf539739df2c5dacb4c659f2488d858373ffffffffffffffffffffffffffffffffffffffff166200373f9092919063ffffffff16565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663baa2abde8630876000803062002dca610708426200161c90919063ffffffff16565b6040518863ffffffff1660e01b8152600401808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019750505050505050506040805180830381600087803b15801562002eae57600080fd5b505af115801562002ec3573d6000803e3d6000fd5b505050506040513d604081101562002eda57600080fd5b81019080805190602001909291908051906020019092919050505050508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801562002f7557600080fd5b505afa15801562002f8a573d6000803e3d6000fd5b505050506040513d602081101562002fa157600080fd5b8101908080519060200190929190505050925062002fbf3062000d07565b9150509250929050565b60006200314b8473ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156200301657600080fd5b505afa1580156200302b573d6000803e3d6000fd5b505050506040513d60208110156200304257600080fd5b810190808051906020019092919050505060ff16600a0a6200313c8573271bf4568fb737cc2e6277e9b1ee0034098cda2a73ffffffffffffffffffffffffffffffffffffffff16635708447d896040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015620030f057600080fd5b505afa15801562003105573d6000803e3d6000fd5b505050506040513d60208110156200311c57600080fd5b8101908080519060200190929190505050620034a890919063ffffffff16565b6200353390919063ffffffff16565b905060008111620031c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f2176616c7565000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81811115620031d1578190505b620031dd308262003a3a565b6200320a33848673ffffffffffffffffffffffffffffffffffffffff16620039679092919063ffffffff16565b808211156200324b576200324a33620032233062000d07565b3073ffffffffffffffffffffffffffffffffffffffff16620039679092919063ffffffff16565b5b50505050565b620032728273ffffffffffffffffffffffffffffffffffffffff1662003bf9565b620032e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740081525060200191505060405180910390fd5b600060608373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b6020831062003336578051825260208201915060208101905060208303925062003311565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146200339a576040519150601f19603f3d011682016040523d82523d6000602084013e6200339f565b606091505b50915091508162003418576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656481525060200191505060405180910390fd5b600081511115620034a2578080602001905160208110156200343957600080fd5b8101908080519060200190929190505050620034a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180620059ad602a913960400191505060405180910390fd5b5b50505050565b600080831415620034bd57600090506200352d565b6000828402905082848281620034cf57fe5b041462003528576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180620058fa6021913960400191505060405180910390fd5b809150505b92915050565b60006200357783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062003c45565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562003623576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6200363a816002546200161c90919063ffffffff16565b60028190555062003693816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200161c90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008114806200383d575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b158015620037fe57600080fd5b505afa15801562003813573d6000803e3d6000fd5b505050506040513d60208110156200382a57600080fd5b8101908080519060200190929190505050145b62003894576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180620059d76036913960400191505060405180910390fd5b62003962838473ffffffffffffffffffffffffffffffffffffffff1663095ea7b3905060e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505062003251565b505050565b62003a35838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb905060e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505062003251565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562003ac2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180620059436021913960400191505060405180910390fd5b62003b308160405180606001604052806022815260200162005890602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620015589092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062003b898160025462003d1090919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91506000801b821415801562003c3c5750808214155b92505050919050565b6000808311829062003cf5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101562003cb957808201518184015260208101905062003c9c565b50505050905090810190601f16801562003ce75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858162003d0257fe5b049050809150509392505050565b600062003d5483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525062001558565b905092915050565b611b028062003d6b8339019056fe60806040523480156200001157600080fd5b5060405162001b0238038062001b02833981810160405260608110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b838201915060208201858111156200006f57600080fd5b82518660018202830111640100000000821117156200008d57600080fd5b8083526020830192505050908051906020019080838360005b83811015620000c3578082015181840152602081019050620000a6565b50505050905090810190601f168015620000f15780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011557600080fd5b838201915060208201858111156200012c57600080fd5b82518660018202830111640100000000821117156200014a57600080fd5b8083526020830192505050908051906020019080838360005b838110156200018057808201518184015260208101905062000163565b50505050905090810190601f168015620001ae5780820380516001836020036101000a031916815260200191505b50604052602001805190602001909291905050508282828260039080519060200190620001dd92919062000276565b508160049080519060200190620001f692919062000276565b5080600560006101000a81548160ff021916908360ff160217905550505050620002256200026e60201b60201c565b600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505062000325565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002b957805160ff1916838001178555620002ea565b82800160010185558215620002ea579182015b82811115620002e9578251825591602001919060010190620002cc565b5b509050620002f99190620002fd565b5090565b6200032291905b808211156200031e57600081600090555060010162000304565b5090565b90565b6117cd80620003356000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806370a08231116100975780639dc29fac116100665780639dc29fac146104a6578063a457c2d7146104f4578063a9059cbb1461055a578063dd62ed3e146105c0576100f5565b806370a082311461035f5780638da5cb5b146103b75780638f32d59b1461040157806395d89b4114610423576100f5565b806323b872dd116100d357806323b872dd14610201578063313ce5671461028757806339509351146102ab57806340c10f1914610311576100f5565b806306fdde03146100fa578063095ea7b31461017d57806318160ddd146101e3575b600080fd5b610102610638565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610142578082015181840152602081019050610127565b50505050905090810190601f16801561016f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101c96004803603604081101561019357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106da565b604051808215151515815260200191505060405180910390f35b6101eb6106f8565b6040518082815260200191505060405180910390f35b61026d6004803603606081101561021757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610702565b604051808215151515815260200191505060405180910390f35b61028f6107db565b604051808260ff1660ff16815260200191505060405180910390f35b6102f7600480360360408110156102c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506107f2565b604051808215151515815260200191505060405180910390f35b61035d6004803603604081101561032757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108a5565b005b6103a16004803603602081101561037557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061092d565b6040518082815260200191505060405180910390f35b6103bf610975565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61040961099f565b604051808215151515815260200191505060405180910390f35b61042b6109fe565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561046b578082015181840152602081019050610450565b50505050905090810190601f1680156104985780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104f2600480360360408110156104bc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610aa0565b005b6105406004803603604081101561050a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b28565b604051808215151515815260200191505060405180910390f35b6105a66004803603604081101561057057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bf5565b604051808215151515815260200191505060405180910390f35b610622600480360360408110156105d657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c13565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106d05780601f106106a5576101008083540402835291602001916106d0565b820191906000526020600020905b8154815290600101906020018083116106b357829003601f168201915b5050505050905090565b60006106ee6106e7610c9a565b8484610ca2565b6001905092915050565b6000600254905090565b600061070f848484610e99565b6107d08461071b610c9a565b6107cb856040518060600160405280602881526020016116e260289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610781610c9a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461114f9092919063ffffffff16565b610ca2565b600190509392505050565b6000600560009054906101000a900460ff16905090565b600061089b6107ff610c9a565b846108968560016000610810610c9a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120f90919063ffffffff16565b610ca2565b6001905092915050565b6108ad61099f565b61091f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6109298282611297565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109e2610c9a565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b606060048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a965780601f10610a6b57610100808354040283529160200191610a96565b820191906000526020600020905b815481529060010190602001808311610a7957829003601f168201915b5050505050905090565b610aa861099f565b610b1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610b248282611452565b5050565b6000610beb610b35610c9a565b84610be6856040518060600160405280602581526020016117746025913960016000610b5f610c9a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461114f9092919063ffffffff16565b610ca2565b6001905092915050565b6000610c09610c02610c9a565b8484610e99565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d28576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806117506024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610dae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061169a6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f1f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061172b6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fa5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806116556023913960400191505060405180910390fd5b611010816040518060600160405280602681526020016116bc602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461114f9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110a3816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120f90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008383111582906111fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156111c15780820151818401526020810190506111a6565b50505050905090810190601f1680156111ee5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008082840190508381101561128d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561133a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b61134f8160025461120f90919063ffffffff16565b6002819055506113a6816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120f90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061170a6021913960400191505060405180910390fd5b61154381604051806060016040528060228152602001611678602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461114f9092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061159a8160025461160a90919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600061164c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061114f565b90509291505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a723158201b258d4fbd0a1527228b6df27015eae6507536e69bec582824cf02bd56dd397864736f6c6343000511003245524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a72315820d4f3b0cd32dac9bc3a0f113e55bdcdac1198d7d7eb37811ba84b26146b6c59b564736f6c63430005110032
Deployed Bytecode
0x60806040523480156200001157600080fd5b5060043610620001305760003560e01c80636e15971211620000b1578063a457c2d7116200007b578063a457c2d714620005f8578063a9059cbb1462000661578063dd62ed3e14620006ca578063e48603391462000745578063f3fef3a314620007cc5762000130565b80636e159712146200044757806370a0823114620004ce57806395d89b4114620005295780639f0d5f2714620005b15762000130565b806323b872dd11620000ff57806323b872dd1462000292578063313ce567146200031b57806339509351146200034157806347e7ef2414620003aa578063541bcb7614620003fb5762000130565b806306fdde031462000135578063095ea7b314620001bd57806318160ddd14620002265780631b6b6d231462000246575b600080fd5b6200013f6200081d565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156200018157808201518184015260208101905062000164565b50505050905090810190601f168015620001af5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6200020c60048036036040811015620001d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050620008c3565b604051808215151515815260200191505060405180910390f35b62000230620008e5565b6040518082815260200191505060405180910390f35b62000250620008ef565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6200030160048036036060811015620002aa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505062000907565b604051808215151515815260200191505060405180910390f35b62000325620009eb565b604051808260ff1660ff16815260200191505060405180910390f35b62000390600480360360408110156200035957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505062000a02565b604051808215151515815260200191505060405180910390f35b620003f960048036036040811015620003c257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505062000abd565b005b6200040562000afc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6200048c600480360360208110156200045f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062000b14565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6200051360048036036020811015620004e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062000d07565b6040518082815260200191505060405180910390f35b6200053362000d4f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156200057557808201518184015260208101905062000558565b50505050905090810190601f168015620005a35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b620005f660048036036020811015620005c957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062000df5565b005b62000647600480360360408110156200061057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505062000ebe565b604051808215151515815260200191505060405180910390f35b620006b0600480360360408110156200067957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505062000f94565b604051808215151515815260200191505060405180910390f35b6200072f60048036036040811015620006e257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062000fb6565b6040518082815260200191505060405180910390f35b6200078a600480360360208110156200075d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200103d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6200081b60048036036040811015620007e457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505062001070565b005b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620008b95780601f106200088d57610100808354040283529160200191620008b9565b820191906000526020600020905b8154815290600101906020018083116200089b57829003601f168201915b5050505050905090565b6000620008db620008d362001096565b84846200109e565b6001905092915050565b6000600254905090565b73271bf4568fb737cc2e6277e9b1ee0034098cda2a81565b60006200091684848462001299565b620009e0846200092562001096565b620009da856040518060600160405280602881526020016200591b60289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006200098f62001096565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620015589092919063ffffffff16565b6200109e565b600190509392505050565b6000600560009054906101000a900460ff16905090565b600062000ab362000a1262001096565b8462000aad856001600062000a2662001096565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200161c90919063ffffffff16565b6200109e565b6001905092915050565b62000aec3330838573ffffffffffffffffffffffffffffffffffffffff16620016a5909392919063ffffffff16565b62000af88282620017ad565b5050565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b600080737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801562000b7257600080fd5b505afa15801562000b87573d6000803e3d6000fd5b505050506040513d602081101562000b9e57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663e6a4390584306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801562000c6057600080fd5b505afa15801562000c75573d6000803e3d6000fd5b505050506040513d602081101562000c8c57600080fd5b81019080805190602001909291905050509050600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801562000deb5780601f1062000dbf5761010080835404028352916020019162000deb565b820191906000526020600020905b81548152906001019060200180831162000dcd57829003601f168201915b5050505050905090565b62000ebb818273ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801562000e7857600080fd5b505afa15801562000e8d573d6000803e3d6000fd5b505050506040513d602081101562000ea457600080fd5b810190808051906020019092919050505062000abd565b50565b600062000f8a62000ece62001096565b8462000f848560405180606001604052806025815260200162005a0d602591396001600062000efc62001096565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620015589092919063ffffffff16565b6200109e565b6001905092915050565b600062000fac62000fa462001096565b848462001299565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60076020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806200107f848462002a6c565b915091506200109084838362002fc9565b50505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141562001126576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180620059896024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620011ae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180620058b26022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141562001321576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180620059646025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620013a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806200586d6023913960400191505060405180910390fd5b6200141781604051806060016040528060268152602001620058d4602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620015589092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620014ac816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200161c90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600083831115829062001609576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620015cd578082015181840152602081019050620015b0565b50505050905090810190601f168015620015fb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000808284019050838110156200169b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b620017a7848573ffffffffffffffffffffffffffffffffffffffff166323b872dd905060e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505062003251565b50505050565b60006200192f8373ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015620017fa57600080fd5b505afa1580156200180f573d6000803e3d6000fd5b505050506040513d60208110156200182657600080fd5b810190808051906020019092919050505060ff16600a0a620019208473271bf4568fb737cc2e6277e9b1ee0034098cda2a73ffffffffffffffffffffffffffffffffffffffff16635708447d886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015620018d457600080fd5b505afa158015620018e9573d6000803e3d6000fd5b505050506040513d60208110156200190057600080fd5b8101908080519060200190929190505050620034a890919063ffffffff16565b6200353390919063ffffffff16565b905060008111620019a8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f2176616c7565000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b620019b430826200357f565b620019f6737a250d5630b4cf539739df2c5dacb4c659f2488d60008573ffffffffffffffffffffffffffffffffffffffff166200373f9092919063ffffffff16565b62001a37737a250d5630b4cf539739df2c5dacb4c659f2488d838573ffffffffffffffffffffffffffffffffffffffff166200373f9092919063ffffffff16565b62001a79737a250d5630b4cf539739df2c5dacb4c659f2488d60003073ffffffffffffffffffffffffffffffffffffffff166200373f9092919063ffffffff16565b62001aba737a250d5630b4cf539739df2c5dacb4c659f2488d823073ffffffffffffffffffffffffffffffffffffffff166200373f9092919063ffffffff16565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663e8e337008530868662001b1b606462001b0c60628c620034a890919063ffffffff16565b6200353390919063ffffffff16565b62001b46606462001b3760628c620034a890919063ffffffff16565b6200353390919063ffffffff16565b3062001b5e610708426200161c90919063ffffffff16565b6040518963ffffffff1660e01b8152600401808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200198505050505050505050606060405180830381600087803b15801562001c4a57600080fd5b505af115801562001c5f573d6000803e3d6000fd5b505050506040513d606081101562001c7657600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050925050506000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801562001cfc57600080fd5b505afa15801562001d11573d6000803e3d6000fd5b505050506040513d602081101562001d2857600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663e6a4390586306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801562001dea57600080fd5b505afa15801562001dff573d6000803e3d6000fd5b505050506040513d602081101562001e1657600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141562001ecd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f217061697200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141562002846578473ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801562001fa957600080fd5b505afa15801562001fbe573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101562001fe957600080fd5b81019080805160405193929190846401000000008211156200200a57600080fd5b838201915060208201858111156200202157600080fd5b82518660018202830111640100000000821117156200203f57600080fd5b8083526020830192505050908051906020019080838360005b838110156200207557808201518184015260208101905062002058565b50505050905090810190601f168015620020a35780820380516001836020036101000a031916815260200191505b506040525050508173ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b158015620020f157600080fd5b505afa15801562002106573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156200213157600080fd5b81019080805160405193929190846401000000008211156200215257600080fd5b838201915060208201858111156200216957600080fd5b82518660018202830111640100000000821117156200218757600080fd5b8083526020830192505050908051906020019080838360005b83811015620021bd578082015181840152602081019050620021a0565b50505050905090810190601f168015620021eb5780820380516001836020036101000a031916815260200191505b506040525050506040516020018083805190602001908083835b602083106200222a578051825260208201915060208101905060208303925062002205565b6001836020036101000a038019825116818451168082178552505050505050905001807f200000000000000000000000000000000000000000000000000000000000000081525060010182805190602001908083835b60208310620022a5578051825260208201915060208101905060208303925062002280565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040528573ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156200232157600080fd5b505afa15801562002336573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156200236157600080fd5b81019080805160405193929190846401000000008211156200238257600080fd5b838201915060208201858111156200239957600080fd5b8251866001820283011164010000000082111715620023b757600080fd5b8083526020830192505050908051906020019080838360005b83811015620023ed578082015181840152602081019050620023d0565b50505050905090810190601f1680156200241b5780820380516001836020036101000a031916815260200191505b506040525050508273ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156200246957600080fd5b505afa1580156200247e573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015620024a957600080fd5b8101908080516040519392919084640100000000821115620024ca57600080fd5b83820191506020820185811115620024e157600080fd5b8251866001820283011164010000000082111715620024ff57600080fd5b8083526020830192505050908051906020019080838360005b838110156200253557808201518184015260208101905062002518565b50505050905090810190601f168015620025635780820380516001836020036101000a031916815260200191505b506040525050506040516020018083805190602001908083835b60208310620025a257805182526020820191506020810190506020830392506200257d565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310620025f55780518252602082019150602081019050602083039250620025d0565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040528273ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156200267157600080fd5b505afa15801562002686573d6000803e3d6000fd5b505050506040513d60208110156200269d57600080fd5b8101908080519060200190929190505050604051620026bc9062003d5c565b8080602001806020018460ff1660ff168152602001838103835286818151815260200191508051906020019080838360005b838110156200270b578082015181840152602081019050620026ee565b50505050905090810190601f168015620027395780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156200277457808201518184015260208101905062002757565b50505050905090810190601f168015620027a25780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f080158015620027c7573d6000803e3d6000fd5b50600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156200292d57600080fd5b505af115801562002942573d6000803e3d6000fd5b5050505060008573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015620029c657600080fd5b505afa158015620029db573d6000803e3d6000fd5b505050506040513d6020811015620029f257600080fd5b81019080805190602001909291905050509050600081111562002a3d5762002a3c33828873ffffffffffffffffffffffffffffffffffffffff16620039679092919063ffffffff16565b5b600062002a4a3062000d07565b9050600081111562002a635762002a62308262003a3a565b5b50505050505050565b6000806000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801562002acc57600080fd5b505afa15801562002ae1573d6000803e3d6000fd5b505050506040513d602081101562002af857600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663e6a4390586306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801562002bba57600080fd5b505afa15801562002bcf573d6000803e3d6000fd5b505050506040513d602081101562002be657600080fd5b81019080805190602001909291905050509050600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac33866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801562002ce057600080fd5b505af115801562002cf5573d6000803e3d6000fd5b5050505062002d3b737a250d5630b4cf539739df2c5dacb4c659f2488d60008373ffffffffffffffffffffffffffffffffffffffff166200373f9092919063ffffffff16565b62002d7c737a250d5630b4cf539739df2c5dacb4c659f2488d858373ffffffffffffffffffffffffffffffffffffffff166200373f9092919063ffffffff16565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663baa2abde8630876000803062002dca610708426200161c90919063ffffffff16565b6040518863ffffffff1660e01b8152600401808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019750505050505050506040805180830381600087803b15801562002eae57600080fd5b505af115801562002ec3573d6000803e3d6000fd5b505050506040513d604081101562002eda57600080fd5b81019080805190602001909291908051906020019092919050505050508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801562002f7557600080fd5b505afa15801562002f8a573d6000803e3d6000fd5b505050506040513d602081101562002fa157600080fd5b8101908080519060200190929190505050925062002fbf3062000d07565b9150509250929050565b60006200314b8473ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156200301657600080fd5b505afa1580156200302b573d6000803e3d6000fd5b505050506040513d60208110156200304257600080fd5b810190808051906020019092919050505060ff16600a0a6200313c8573271bf4568fb737cc2e6277e9b1ee0034098cda2a73ffffffffffffffffffffffffffffffffffffffff16635708447d896040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015620030f057600080fd5b505afa15801562003105573d6000803e3d6000fd5b505050506040513d60208110156200311c57600080fd5b8101908080519060200190929190505050620034a890919063ffffffff16565b6200353390919063ffffffff16565b905060008111620031c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f2176616c7565000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81811115620031d1578190505b620031dd308262003a3a565b6200320a33848673ffffffffffffffffffffffffffffffffffffffff16620039679092919063ffffffff16565b808211156200324b576200324a33620032233062000d07565b3073ffffffffffffffffffffffffffffffffffffffff16620039679092919063ffffffff16565b5b50505050565b620032728273ffffffffffffffffffffffffffffffffffffffff1662003bf9565b620032e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740081525060200191505060405180910390fd5b600060608373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b6020831062003336578051825260208201915060208101905060208303925062003311565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146200339a576040519150601f19603f3d011682016040523d82523d6000602084013e6200339f565b606091505b50915091508162003418576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656481525060200191505060405180910390fd5b600081511115620034a2578080602001905160208110156200343957600080fd5b8101908080519060200190929190505050620034a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180620059ad602a913960400191505060405180910390fd5b5b50505050565b600080831415620034bd57600090506200352d565b6000828402905082848281620034cf57fe5b041462003528576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180620058fa6021913960400191505060405180910390fd5b809150505b92915050565b60006200357783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062003c45565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562003623576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6200363a816002546200161c90919063ffffffff16565b60028190555062003693816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200161c90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008114806200383d575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b158015620037fe57600080fd5b505afa15801562003813573d6000803e3d6000fd5b505050506040513d60208110156200382a57600080fd5b8101908080519060200190929190505050145b62003894576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180620059d76036913960400191505060405180910390fd5b62003962838473ffffffffffffffffffffffffffffffffffffffff1663095ea7b3905060e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505062003251565b505050565b62003a35838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb905060e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505062003251565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562003ac2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180620059436021913960400191505060405180910390fd5b62003b308160405180606001604052806022815260200162005890602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620015589092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062003b898160025462003d1090919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91506000801b821415801562003c3c5750808214155b92505050919050565b6000808311829062003cf5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101562003cb957808201518184015260208101905062003c9c565b50505050905090810190601f16801562003ce75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858162003d0257fe5b049050809150509392505050565b600062003d5483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525062001558565b905092915050565b611b028062003d6b8339019056fe60806040523480156200001157600080fd5b5060405162001b0238038062001b02833981810160405260608110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b838201915060208201858111156200006f57600080fd5b82518660018202830111640100000000821117156200008d57600080fd5b8083526020830192505050908051906020019080838360005b83811015620000c3578082015181840152602081019050620000a6565b50505050905090810190601f168015620000f15780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011557600080fd5b838201915060208201858111156200012c57600080fd5b82518660018202830111640100000000821117156200014a57600080fd5b8083526020830192505050908051906020019080838360005b838110156200018057808201518184015260208101905062000163565b50505050905090810190601f168015620001ae5780820380516001836020036101000a031916815260200191505b50604052602001805190602001909291905050508282828260039080519060200190620001dd92919062000276565b508160049080519060200190620001f692919062000276565b5080600560006101000a81548160ff021916908360ff160217905550505050620002256200026e60201b60201c565b600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505062000325565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002b957805160ff1916838001178555620002ea565b82800160010185558215620002ea579182015b82811115620002e9578251825591602001919060010190620002cc565b5b509050620002f99190620002fd565b5090565b6200032291905b808211156200031e57600081600090555060010162000304565b5090565b90565b6117cd80620003356000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806370a08231116100975780639dc29fac116100665780639dc29fac146104a6578063a457c2d7146104f4578063a9059cbb1461055a578063dd62ed3e146105c0576100f5565b806370a082311461035f5780638da5cb5b146103b75780638f32d59b1461040157806395d89b4114610423576100f5565b806323b872dd116100d357806323b872dd14610201578063313ce5671461028757806339509351146102ab57806340c10f1914610311576100f5565b806306fdde03146100fa578063095ea7b31461017d57806318160ddd146101e3575b600080fd5b610102610638565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610142578082015181840152602081019050610127565b50505050905090810190601f16801561016f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101c96004803603604081101561019357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106da565b604051808215151515815260200191505060405180910390f35b6101eb6106f8565b6040518082815260200191505060405180910390f35b61026d6004803603606081101561021757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610702565b604051808215151515815260200191505060405180910390f35b61028f6107db565b604051808260ff1660ff16815260200191505060405180910390f35b6102f7600480360360408110156102c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506107f2565b604051808215151515815260200191505060405180910390f35b61035d6004803603604081101561032757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108a5565b005b6103a16004803603602081101561037557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061092d565b6040518082815260200191505060405180910390f35b6103bf610975565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61040961099f565b604051808215151515815260200191505060405180910390f35b61042b6109fe565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561046b578082015181840152602081019050610450565b50505050905090810190601f1680156104985780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104f2600480360360408110156104bc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610aa0565b005b6105406004803603604081101561050a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b28565b604051808215151515815260200191505060405180910390f35b6105a66004803603604081101561057057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bf5565b604051808215151515815260200191505060405180910390f35b610622600480360360408110156105d657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c13565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106d05780601f106106a5576101008083540402835291602001916106d0565b820191906000526020600020905b8154815290600101906020018083116106b357829003601f168201915b5050505050905090565b60006106ee6106e7610c9a565b8484610ca2565b6001905092915050565b6000600254905090565b600061070f848484610e99565b6107d08461071b610c9a565b6107cb856040518060600160405280602881526020016116e260289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610781610c9a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461114f9092919063ffffffff16565b610ca2565b600190509392505050565b6000600560009054906101000a900460ff16905090565b600061089b6107ff610c9a565b846108968560016000610810610c9a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120f90919063ffffffff16565b610ca2565b6001905092915050565b6108ad61099f565b61091f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6109298282611297565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109e2610c9a565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b606060048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a965780601f10610a6b57610100808354040283529160200191610a96565b820191906000526020600020905b815481529060010190602001808311610a7957829003601f168201915b5050505050905090565b610aa861099f565b610b1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610b248282611452565b5050565b6000610beb610b35610c9a565b84610be6856040518060600160405280602581526020016117746025913960016000610b5f610c9a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461114f9092919063ffffffff16565b610ca2565b6001905092915050565b6000610c09610c02610c9a565b8484610e99565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d28576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806117506024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610dae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061169a6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f1f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061172b6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fa5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806116556023913960400191505060405180910390fd5b611010816040518060600160405280602681526020016116bc602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461114f9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110a3816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120f90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008383111582906111fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156111c15780820151818401526020810190506111a6565b50505050905090810190601f1680156111ee5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008082840190508381101561128d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561133a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b61134f8160025461120f90919063ffffffff16565b6002819055506113a6816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120f90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061170a6021913960400191505060405180910390fd5b61154381604051806060016040528060228152602001611678602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461114f9092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061159a8160025461160a90919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600061164c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061114f565b90509291505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a723158201b258d4fbd0a1527228b6df27015eae6507536e69bec582824cf02bd56dd397864736f6c6343000511003245524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a72315820d4f3b0cd32dac9bc3a0f113e55bdcdac1198d7d7eb37811ba84b26146b6c59b564736f6c63430005110032
Deployed Bytecode Sourcemap
9898:4241:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9898:4241:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4786:83;;;:::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;4786:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2068:149;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2068:149:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1563:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10107:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2223:301;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2223:301:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4968:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2530:207;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2530:207:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10751:168;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10751:168:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10194:93;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10429:186;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10429:186:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1657:107;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1657:107:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4875:87;;;:::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;4875:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10627:112;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10627:112:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;2743:258;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2743:258:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1770:155;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1770:155:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1931:131;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1931:131:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10300:42;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10300:42:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12661:172;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12661:172:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4786:83;4823:13;4856:5;4849:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4786:83;:::o;2068:149::-;2131:4;2148:39;2157:12;:10;:12::i;:::-;2171:7;2180:6;2148:8;:39::i;:::-;2205:4;2198:11;;2068:149;;;;:::o;1563:88::-;1607:4;1631:12;;1624:19;;1563:88;:::o;10107:80::-;10144:42;10107:80;:::o;2223:301::-;2309:4;2326:36;2336:6;2344:9;2355:6;2326:9;:36::i;:::-;2373:121;2382:6;2390:12;:10;:12::i;:::-;2404:89;2442:6;2404:89;;;;;;;;;;;;;;;;;:11;:19;2416:6;2404:19;;;;;;;;;;;;;;;:33;2424:12;:10;:12::i;:::-;2404:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;2373:8;:121::i;:::-;2512:4;2505:11;;2223:301;;;;;:::o;4968:83::-;5009:5;5034:9;;;;;;;;;;;5027:16;;4968:83;:::o;2530:207::-;2607:4;2624:83;2633:12;:10;:12::i;:::-;2647:7;2656:50;2695:10;2656:11;:25;2668:12;:10;:12::i;:::-;2656:25;;;;;;;;;;;;;;;:34;2682:7;2656:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;2624:8;:83::i;:::-;2725:4;2718:11;;2530:207;;;;:::o;10751:168::-;10820:57;10843:10;10863:4;10870:6;10820:5;:22;;;;:57;;;;;;:::i;:::-;10888:23;10897:5;10904:6;10888:8;:23::i;:::-;10751:168;;:::o;10194:93::-;10244:42;10194:93;:::o;10429:186::-;10482:7;10502:12;10244:42;10532:11;;;:13;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10532:13:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10532:13:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10532:13:0;;;;;;;;;;;;;;;;10517:37;;;10555:6;10571:4;10517:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10517:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10517:60:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10517:60:0;;;;;;;;;;;;;;;;10502:75;;10595:6;:12;10602:4;10595:12;;;;;;;;;;;;;;;;;;;;;;;;;10588:19;;;10429:186;;;:::o;1657:107::-;1714:4;1738:9;:18;1748:7;1738:18;;;;;;;;;;;;;;;;1731:25;;1657:107;;;:::o;4875:87::-;4914:13;4947:7;4940:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4875:87;:::o;10627:112::-;10688:43;10696:5;10703;:15;;;10719:10;10703:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10703:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10703:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10703:27:0;;;;;;;;;;;;;;;;10688:7;:43::i;:::-;10627:112;:::o;2743:258::-;2825:4;2842:129;2851:12;:10;:12::i;:::-;2865:7;2874:96;2913:15;2874:96;;;;;;;;;;;;;;;;;:11;:25;2886:12;:10;:12::i;:::-;2874:25;;;;;;;;;;;;;;;:34;2900:7;2874:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;2842:8;:129::i;:::-;2989:4;2982:11;;2743:258;;;;:::o;1770:155::-;1836:4;1853:42;1863:12;:10;:12::i;:::-;1877:9;1888:6;1853:9;:42::i;:::-;1913:4;1906:11;;1770:155;;;;:::o;1931:131::-;2003:4;2027:11;:18;2039:5;2027:18;;;;;;;;;;;;;;;:27;2046:7;2027:27;;;;;;;;;;;;;;;;2020:34;;1931:131;;;;:::o;10300:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;12661:172::-;12728:12;12742;12758:24;12768:5;12775:6;12758:9;:24::i;:::-;12727:55;;;;12793:32;12801:5;12808:7;12817;12793;:32::i;:::-;12661:172;;;;:::o;794:98::-;839:15;874:10;867:17;;794:98;:::o;4143:335::-;4251:1;4234:19;;:5;:19;;;;4226:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4332:1;4313:21;;:7;:21;;;;4305:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4416:6;4386:11;:18;4398:5;4386:18;;;;;;;;;;;;;;;:27;4405:7;4386:27;;;;;;;;;;;;;;;:36;;;;4454:7;4438:32;;4447:5;4438:32;;;4463:6;4438:32;;;;;;;;;;;;;;;;;;4143:335;;;:::o;3007:468::-;3120:1;3102:20;;:6;:20;;;;3094:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3204:1;3183:23;;:9;:23;;;;3175:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3279;3301:6;3279:71;;;;;;;;;;;;;;;;;:9;:17;3289:6;3279:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;3259:9;:17;3269:6;3259:17;;;;;;;;;;;;;;;:91;;;;3384:32;3409:6;3384:9;:20;3394:9;3384:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;3361:9;:20;3371:9;3361:20;;;;;;;;;;;;;;;:55;;;;3449:9;3432:35;;3441:6;3432:35;;;3460:6;3432:35;;;;;;;;;;;;;;;;;;3007:468;;;:::o;5733:180::-;5813:4;5843:1;5838;:6;;5846:12;5830:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;5830:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5870:6;5883:1;5879;:5;5870:14;;5904:1;5897:8;;;5733:180;;;;;:::o;5425:169::-;5477:4;5494:6;5507:1;5503;:5;5494:14;;5532:1;5527;:6;;5519:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5585:1;5578:8;;;5425:169;;;;:::o;7219:201::-;7317:95;7336:5;7366;:18;;;:27;;;;7395:4;7401:2;7405:5;7343:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7343:68:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;7343:68:0;7317:18;:95::i;:::-;7219:201;;;;:::o;10931:1718::-;11003:10;11016:79;11078:5;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11078:16:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11078:16:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11078:16:0;;;;;;;;;;;;;;;;11065:29;;11073:2;11065:29;11016:44;11053:6;10144:42;11016:16;;;11041:5;11016:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11016:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11016:32:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11016:32:0;;;;;;;;;;;;;;;;:36;;:44;;;;:::i;:::-;:48;;:79;;;;:::i;:::-;11003:92;;11122:1;11114:5;:9;11106:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11145:27;11159:4;11166:5;11145;:27::i;:::-;11211:34;10244:42;11243:1;11211:5;:17;;;;:34;;;;;:::i;:::-;11256:39;10244:42;11288:6;11256:5;:17;;;;:39;;;;;:::i;:::-;11308:50;10244:42;11356:1;11323:4;11308:33;;;;:50;;;;;:::i;:::-;11369:54;10244:42;11417:5;11384:4;11369:33;;;;:54;;;;;:::i;:::-;11447:14;10244:42;11465:16;;;11504:5;11533:4;11553:6;11574:5;11594:23;11613:3;11594:14;11605:2;11594:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;11667:22;11685:3;11667:13;11677:2;11667:5;:9;;:13;;;;:::i;:::-;:17;;:22;;;;:::i;:::-;11747:4;11767:13;11775:4;11767:3;:7;;:13;;;;:::i;:::-;11465:326;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11465:326:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11465:326:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11465:326:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11444:347;;;;11804:12;10244:42;11834:11;;;:13;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11834:13:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11834:13:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11834:13:0;;;;;;;;;;;;;;;;11819:37;;;11865:5;11881:4;11819:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11819:68:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11819:68:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11819:68:0;;;;;;;;;;;;;;;;11804:83;;11922:1;11906:18;;:4;:18;;;;11898:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11973:1;11949:26;;:6;:12;11956:4;11949:12;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;11945:343;;;12073:5;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12073:14:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12073:14:0;;;;;;39:16:-1;36:1;17:17;2:54;12073:14:0;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12073:14:0;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;71:11;66:3;62:21;55:28;;123:4;118:3;114:14;159:9;141:16;138:31;135:2;;;182:1;179;172:12;135:2;219:3;213:10;330:9;325:1;311:12;307:20;289:16;285:43;282:58;261:11;247:12;244:29;233:115;230:2;;;361:1;358;351:12;230:2;384:12;379:3;372:25;420:4;415:3;411:14;404:21;;0:432;;12073:14:0;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;12073::0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12108:4;12094:24;;;:26;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12094:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12094:26:0;;;;;;39:16:-1;36:1;17:17;2:54;12094:26:0;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12094:26:0;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;71:11;66:3;62:21;55:28;;123:4;118:3;114:14;159:9;141:16;138:31;135:2;;;182:1;179;172:12;135:2;219:3;213:10;330:9;325:1;311:12;307:20;289:16;285:43;282:58;261:11;247:12;244:29;233:115;230:2;;;361:1;358;351:12;230:2;384:12;379:3;372:25;420:4;415:3;411:14;404:21;;0:432;;12094:26:0;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;12094:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12056:65;;;;;;;;;;;;;;;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;;;12056:65: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;;;12056:65:0;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12056:65:0;;;12165:5;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12165:14:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12165:14:0;;;;;;39:16:-1;36:1;17:17;2:54;12165:14:0;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12165:14:0;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;71:11;66:3;62:21;55:28;;123:4;118:3;114:14;159:9;141:16;138:31;135:2;;;182:1;179;172:12;135:2;219:3;213:10;330:9;325:1;311:12;307:20;289:16;285:43;282:58;261:11;247:12;244:29;233:115;230:2;;;361:1;358;351:12;230:2;384:12;379:3;372:25;420:4;415:3;411:14;404:21;;0:432;;12165:14:0;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;12165::0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12195:4;12181:26;;;:28;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12181:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12181:28:0;;;;;;39:16:-1;36:1;17:17;2:54;12181:28:0;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12181:28:0;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;71:11;66:3;62:21;55:28;;123:4;118:3;114:14;159:9;141:16;138:31;135:2;;;182:1;179;172:12;135:2;219:3;213:10;330:9;325:1;311:12;307:20;289:16;285:43;282:58;261:11;247:12;244:29;233:115;230:2;;;361:1;358;351:12;230:2;384:12;379:3;372:25;420:4;415:3;411:14;404:21;;0:432;;12181:28:0;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;12181:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12148:62;;;;;;;;;;;;;;;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;;;12148:62: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;;;12148:62:0;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12148:62:0;;;12244:4;12230:28;;;:30;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12230:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12230:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12230:30:0;;;;;;;;;;;;;;;;12015:260;;;;;:::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;12015:260:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;12015:260:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12015:260:0;11992:6;:12;11999:4;11992:12;;;;;;;;;;;;;;;;:284;;;;;;;;;;;;;;;;;;11945:343;12320:6;:12;12327:4;12320:12;;;;;;;;;;;;;;;;;;;;;;;;;12308:30;;;12339:10;12351:9;12308:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12308:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12308:53:0;;;;12382:10;12395:5;:15;;;12419:4;12395:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12395:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12395:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12395:30:0;;;;;;;;;;;;;;;;12382:43;;12448:1;12440:5;:9;12436:79;;;12466:37;12485:10;12497:5;12466;:18;;;;:37;;;;;:::i;:::-;12436:79;12525:10;12538:24;12556:4;12538:9;:24::i;:::-;12525:37;;12585:1;12577:5;:9;12573:69;;;12603:27;12617:4;12624:5;12603;:27::i;:::-;12573:69;10931:1718;;;;;;;:::o;12841:684::-;12906:12;12920;12945;10244:42;12975:11;;;:13;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12975:13:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12975:13:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12975:13:0;;;;;;;;;;;;;;;;12960:37;;;12998:5;13013:4;12960:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12960:59:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12960:59:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12960:59:0;;;;;;;;;;;;;;;;12945:74;;13042:6;:12;13049:4;13042:12;;;;;;;;;;;;;;;;;;;;;;;;;13030:30;;;13061:10;13073:6;13030:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13030:50:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13030:50:0;;;;13101:41;10244:42;13140:1;13108:4;13101:24;;;;:41;;;;;:::i;:::-;13153:46;10244:42;13192:6;13160:4;13153:24;;;;:46;;;;;:::i;:::-;10244:42;13220:19;;;13252:5;13278:4;13296:6;13315:1;13329;13351:4;13369:13;13377:4;13369:3;:7;;:13;;;;:::i;:::-;13220:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13220:173:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13220:173:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13220:173:0;;;;;;;;;;;;;;;;;;;;;;;;;;;13431:5;13424:23;;;13456:4;13424:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13424:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13424:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13424:38:0;;;;;;;;;;;;;;;;13414:48;;13483:24;13501:4;13483:9;:24::i;:::-;13473:34;;12841:684;;;;;;:::o;13537:599::-;13617:11;13631:86;13699:5;13685:29;;;:31;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13685:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13685:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13685:31:0;;;;;;;;;;;;;;;;13672:44;;13680:2;13672:44;13631:36;13659:7;10144:42;13631:16;;;13648:5;13631:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13631:23:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13631:23:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13631:23:0;;;;;;;;;;;;;;;;:27;;:36;;;;:::i;:::-;:40;;:86;;;;:::i;:::-;13617:100;;13745:1;13736:6;:10;13728:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13781:7;13772:6;:16;13768:65;;;13814:7;13805:16;;13768:65;13843:28;13857:4;13864:6;13843:5;:28::i;:::-;13950:47;13977:10;13989:7;13957:5;13950:26;;;;:47;;;;;:::i;:::-;14022:6;14012:7;:16;14008:121;;;14045:72;14080:10;14092:24;14110:4;14092:9;:24::i;:::-;14060:4;14045:34;;;;:72;;;;;:::i;:::-;14008:121;13537:599;;;;:::o;7778:598::-;7866:27;7874:5;7866:25;;;:27::i;:::-;7858:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8003:12;8017:23;8052:5;8044:19;;8064:4;8044:25;;;;;;;;;;;;;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;;;8044:25:0;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;8002:67:0;;;;8088:7;8080:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8169:1;8149:10;:17;:21;8145:224;;;8291:10;8280:30;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8280:30:0;;;;;;;;;;;;;;;;8272:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8145:224;7778:598;;;;:::o;5919:238::-;5971:4;5997:1;5992;:6;5988:47;;;6022:1;6015:8;;;;5988:47;6047:6;6060:1;6056;:5;6047:14;;6089:1;6084;6080;:5;;;;;;:10;6072:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6148:1;6141:8;;;5919:238;;;;;:::o;6163:123::-;6215:4;6239:39;6243:1;6246;6239:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;6232:46;;6163:123;;;;:::o;3481:305::-;3573:1;3554:21;;:7;:21;;;;3546:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3639:24;3656:6;3639:12;;:16;;:24;;;;:::i;:::-;3624:12;:39;;;;3695:30;3718:6;3695:9;:18;3705:7;3695:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;3674:9;:18;3684:7;3674:18;;;;;;;;;;;;;;;:51;;;;3762:7;3741:37;;3758:1;3741:37;;;3771:6;3741:37;;;;;;;;;;;;;;;;;;3481:305;;:::o;7428:344::-;7530:1;7521:5;:10;7520:62;;;;7580:1;7537:5;:15;;;7561:4;7568:7;7537:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7537:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7537:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7537:39:0;;;;;;;;;;;;;;;;:44;7520:62;7512:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7675:89;7694:5;7724;:13;;;:22;;;;7748:7;7757:5;7701:62;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7701:62:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;7701:62:0;7675:18;:89::i;:::-;7428:344;;;:::o;7038:173::-;7118:85;7137:5;7167;:14;;;:23;;;;7192:2;7196:5;7144:58;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7144:58:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;7144:58:0;7118:18;:85::i;:::-;7038:173;;;:::o;3792:345::-;3884:1;3865:21;;:7;:21;;;;3857:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3958:68;3981:6;3958:68;;;;;;;;;;;;;;;;;:9;:18;3968:7;3958:18;;;;;;;;;;;;;;;;:22;;:68;;;;;:::i;:::-;3937:9;:18;3947:7;3937:18;;;;;;;;;;;;;;;:89;;;;4052:24;4069:6;4052:12;;:16;;:24;;;;:::i;:::-;4037:12;:39;;;;4118:1;4092:37;;4101:7;4092:37;;;4122:6;4092:37;;;;;;;;;;;;;;;;;;3792:345;;:::o;6568:374::-;6628:4;6645:16;6672:19;6694:66;6672:88;;;;6863:7;6851:20;6839:32;;6903:3;6891:15;;:8;:15;;:42;;;;;6922:11;6910:8;:23;;6891:42;6883:51;;;;6568:374;;;:::o;6292:246::-;6372:4;6468:1;6464;:5;6471:12;6456:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;6456:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6495:6;6508:1;6504;:5;;;;;;6495:14;;6529:1;6522:8;;;6292:246;;;;;:::o;5600:127::-;5652:4;5676:43;5680:1;5683;5676:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;5669:50;;5600:127;;;;:::o;9898:4241::-;;;;;;;;:::o
Swarm Source
bzzr://d4f3b0cd32dac9bc3a0f113e55bdcdac1198d7d7eb37811ba84b26146b6c59b5
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.