ERC-20
Source Code
Overview
Max Total Supply
1,370,212,394,704.477209992097873497 BABYPEPE
Holders
800
Market
Price
$0.00 @ 0.000000 ETH
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
357.702322395833333333 BABYPEPEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
GGGTOKEN
Compiler Version
v0.8.6+commit.11564f7e
Contract Source Code (Solidity)
/**
*Submitted for verification at Arbiscan.io on 2023-06-18
*/
// SPDX-License-Identifier: MIT
pragma solidity =0.8.6;
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.
*/
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
);
}
abstract contract Ownable {
address private _owner;
address private _previousOwner;
uint256 private _lockTime;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor () {
address msgSender = msg.sender;
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == msg.sender, "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
library SafeMath {
/**
* @dev Returns the addition of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `+` operator.
*
* Requirements:
*
* - Addition cannot overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting with custom message on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
/**
* @dev Returns the multiplication of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `*` operator.
*
* Requirements:
*
* - Multiplication cannot overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts with custom message on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
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 IUniswapV2Factory {
function createPair(address tokenA, address tokenB)
external
returns (address pair);
}
interface IUniswapV2Router01 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
address tokenA,
address tokenB,
uint256 amountADesired,
uint256 amountBDesired,
uint256 amountAMin,
uint256 amountBMin,
address to,
uint256 deadline
)
external
returns (
uint256 amountA,
uint256 amountB,
uint256 liquidity
);
}
interface IUniswapV2Router02 is IUniswapV2Router01 {
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
}
interface IDO{
function getPartnerAddr(address user) external view returns(address) ;
}
contract GGGTOKEN is IERC20, Ownable {
using SafeMath for uint256;
mapping(address => uint256) private _tOwned;
mapping(address => mapping(address => uint256)) private _allowances;
mapping(address => bool) private _isExcludedFromFee;
mapping(address => bool) private _updated;
string public _name ;
string public _symbol ;
uint8 public _decimals ;
uint256 public _buyMarketingFee ;
uint256 public _buyBurnFee ;
uint256 public _buyLiquidityFee ;
uint256 public _sellMarketingFee ;
uint256 public _sellBurnFee ;
uint256 public _sellLiquidityFee ;
uint256 private _tTotal ;
address public _uniswapV2Pair;
address public _marketAddr ;
address public _token ;
address public _router ;
uint256 public _startTimeForSwap;
uint256 public _intervalSecondsForSwap ;
uint256 public _swapTokensAtAmount ;
uint256 public _maxHave;
uint256 public _maxBuyTax;
uint256 public _maxSellTax;
uint256 public _dropNum;
uint256 public _tranFee;
uint8 public _enabOwnerAddLiq;
IUniswapV2Router02 public _uniswapV2Router;
address public _ido;
uint256[] public _inviters;
uint256 public _inviterFee ;
uint8 public _inviType;
uint256 public _interestFee ;
mapping(address => uint256) _interestNode;
mapping(address => bool) _excludeList;
uint256 public _interestTime;
uint256 public _secMax ;
constructor(){}
bool private _init;
function initialize ( bytes memory _data) public {
require(!_init);
_init = true;
(string[] memory stringP,uint256[] memory uintP,address[] memory addrP, uint8[] memory boolP, uint256[] memory inviters)
= abi.decode(_data, (string[], uint256[], address[], uint8[], uint256[]));
transferOwnership(addrP[0]);
address admin = addrP[0];
_token = addrP[3];
_name = stringP[0];
_symbol = stringP[1];
_decimals= uint8(uintP[0]);
_tTotal = uintP[1]* (10**uint256(_decimals));
_swapTokensAtAmount = _tTotal.mul(1).div(10**4);
_maxBuyTax = uintP[2]* (10**uint256(_decimals));
_maxSellTax = uintP[12]* (10**uint256(_decimals));
_maxHave = uintP[3] * (10**uint256(_decimals));
if(uintP[1] ==uintP[2]&&uintP[1]== uintP[12]&&uintP[1]==uintP[3]){
_maxBuyTax = ~uint256(0);
_maxSellTax = ~uint256(0);
_maxHave = ~uint256(0);
}
_intervalSecondsForSwap = uintP[4];
_dropNum = uintP[5];
_buyMarketingFee =uintP[6];
_buyBurnFee =uintP[7];
_buyLiquidityFee =uintP[8];
_sellMarketingFee =uintP[9];
_sellBurnFee =uintP[10];
_sellLiquidityFee =uintP[11];
_marketAddr = addrP[1];
_tOwned[admin] = _tTotal;
_uniswapV2Router = IUniswapV2Router02(
addrP[2]
);
// Create a uniswap pair for this new token
_uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
.createPair(address(this),_token);
_enabOwnerAddLiq = boolP[0];
_tranFee = boolP[1];
//exclude owner and this contract from fee
_isExcludedFromFee[_marketAddr] = true;
_isExcludedFromFee[admin] = true ;
_isExcludedFromFee[address(this)] = true;
emit Transfer(address(0), admin, _tTotal);
_router = address( new URoter(_token,address(this)));
_token.call(abi.encodeWithSelector(0x095ea7b3, _uniswapV2Router, ~uint256(0)));
_ido = addrP[4];
_inviters = inviters;
_inviType = boolP[2];
for(uint i ;i<_inviters.length;i++){
_inviterFee += _inviters[i];
}
_excludeList[address(this)] = true;
_excludeList[admin] = true;
_excludeList[_marketAddr] = true;
_interestFee = uintP[13];
_interestTime = uintP[14];
_secMax = uintP[15]*86400;
_interestNode[admin] = _interestTime;
}
function name() public view returns (string memory) {
return _name;
}
function symbol() public view returns (string memory) {
return _symbol;
}
function decimals() public view returns (uint256) {
return _decimals;
}
function totalSupply() public view override returns (uint256) {
return _tTotal;
}
function balanceOf(address account) public view override returns (uint256) {
return _tOwned[account].add(getInterest(account));
}
function transfer(address recipient, uint256 amount)
public
override
returns (bool)
{
_transfer(msg.sender, recipient, amount);
return true;
}
function allowance(address owner, address spender)
public
view
override
returns (uint256)
{
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount)
public
override
returns (bool)
{
_approve(msg.sender, spender, amount);
return true;
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) public override returns (bool) {
if(_startTimeForSwap == 0 && msg.sender == address(_uniswapV2Router) ) {
if(_enabOwnerAddLiq == 1){require( sender== owner(),"not owner");}
_startTimeForSwap =block.timestamp;
}
_transfer(sender, recipient, amount);
_approve(
sender,
msg.sender,
_allowances[sender][msg.sender].sub(
amount,
"ERC20: transfer amount exceeds allowance"
)
);
return true;
}
function increaseAllowance(address spender, uint256 addedValue)
public
virtual
returns (bool)
{
_approve(
msg.sender,
spender,
_allowances[msg.sender][spender].add(addedValue)
);
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue)
public
virtual
returns (bool)
{
_approve(
msg.sender,
spender,
_allowances[msg.sender][spender].sub(
subtractedValue,
"ERC20: decreased allowance below zero"
)
);
return true;
}
function getExcludedFromFee(address account) public view returns (bool) {
return _isExcludedFromFee[account];
}
function excludeFromFee(address account) public onlyOwner {
_isExcludedFromFee[account] = true;
}
function includeInFee(address account) public onlyOwner {
_isExcludedFromFee[account] = false;
}
function excludeFromBatchFee(address[] calldata accounts) external onlyOwner{
for (uint256 i = 0; i < accounts.length; i++) {
_isExcludedFromFee[accounts[i]] = true;
}
}
function setBuyFee(uint buyMarketingFee ,uint buyBurnFee,uint buyLiquidityFee ) public onlyOwner {
_buyMarketingFee = buyMarketingFee;
_buyBurnFee = buyBurnFee;
_buyLiquidityFee = buyLiquidityFee;
}
function setSellFee(uint sellMarketingFee ,uint sellBurnFee,uint sellLiquidityFee ) public onlyOwner {
_sellMarketingFee = sellMarketingFee;
_sellBurnFee = sellBurnFee;
_sellLiquidityFee = sellLiquidityFee;
}
//to recieve ETH from uniswapV2Router when swaping
receive() external payable {}
function _approve(
address owner,
address spender,
uint256 amount
) private {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function _transfer(
address from,
address to,
uint256 amount
) private {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
require(amount > 0, "Transfer amount must be greater than zero");
uint256 contractTokenBalance = balanceOf(address(this));
bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
if(canSwap &&from != address(this) &&from != _uniswapV2Pair &&from != owner() && to != owner()&& _startTimeForSwap>0 ){
transferSwap(contractTokenBalance);
}
_mintInterest(from);
_mintInterest(to);
if( !_isExcludedFromFee[from] &&!_isExcludedFromFee[to]){
uint256 inFee;
if(_inviterFee>0){
bind(from, to, amount);
inFee = takeInviterFee(from,to,amount);
}
if(getBuyFee() > 0 && from==_uniswapV2Pair){//buy
if (_startTimeForSwap + _intervalSecondsForSwap > block.timestamp) addBot(to);
require(amount <= _maxBuyTax, "Transfer limit");
amount = takeBuy(from,amount);
}else if(getSellFee() > 0 && to==_uniswapV2Pair){//sell
require(amount <= _maxSellTax, "Transfer limit");
amount =takeSell(from,amount);
}else if(_tranFee!=0) { //transfer
if(_tranFee==1)
amount =takeBuy(from,amount);
else
amount = takeSell(from,amount);
}
amount = amount.sub(inFee);
require(!_isBot[from] ,"The bot address");
_takeInviter();
if(to!=_uniswapV2Pair)require((balanceOf(to).add(amount)) <= _maxHave, "Transfer amount exceeds the maxHave.");
}
_basicTransfer(from, to, amount);
}
function takeBuy(address from,uint256 amount) private returns(uint256 _amount) {
uint256 fees = amount.mul(getBuyFee()).div(10000);
_basicTransfer(from, address(this), fees.sub(amount.mul(_buyBurnFee).div(10000)) );
if(_buyBurnFee>0){
_basicTransfer(from, address(0xdead), amount.mul(_buyBurnFee).div(10000));
}
_amount = amount.sub(fees);
}
function takeSell( address from,uint256 amount) private returns(uint256 _amount) {
uint256 fees = amount.mul(getSellFee()).div(10000);
_basicTransfer(from, address(this), fees.sub(amount.mul(_sellBurnFee).div(10000)));
if(_sellBurnFee>0){
_basicTransfer(from, address(0xdead), amount.mul(_sellBurnFee).div(10000));
}
_amount = amount.sub(fees);
}
function transferSwap(uint256 contractTokenBalance) private{
uint _denominator = _buyMarketingFee.add(_sellMarketingFee).add(_buyLiquidityFee).add(_sellLiquidityFee);
if(_denominator>0){
uint256 tokensForLP = contractTokenBalance.mul(_buyLiquidityFee.add(_sellLiquidityFee)).div(_denominator).div(2);
swapTokensForTokens(contractTokenBalance.sub(tokensForLP));
uint256 tokenBal = IERC20(_token).balanceOf(address(this));
if(_buyLiquidityFee.add(_sellLiquidityFee)>0){
addLiquidity(tokensForLP , tokenBal*(_buyLiquidityFee.add(_sellLiquidityFee))/(_denominator));
}
IERC20(_token).transfer(_marketAddr, IERC20(_token).balanceOf(address(this)));
}
}
function takeInviterFee(
address sender,
address recipient,
uint256 tAmount
) private returns(uint256){
if (_inviterFee == 0) return 0 ;
address cur ;
uint256 accurRate;
if (sender == _uniswapV2Pair && (_inviType==1 || _inviType==0 ) ) {
cur = recipient;
} else if (recipient == _uniswapV2Pair && (_inviType==2||_inviType==0 )) {
cur = sender;
}else{
return 0;
}
for (uint256 i = 0; i < _inviters.length; i++) {
cur = getPar(cur);
if (cur == address(0)) {
break;
}
accurRate = accurRate.add(_inviters[i]);
uint256 curTAmount = tAmount.mul(_inviters[i]).div(10000);
_basicTransfer(sender, cur, curTAmount);
}
if(_inviterFee.sub(accurRate)!=0){
_basicTransfer(sender, _marketAddr, tAmount.mul(_inviterFee.sub(accurRate)).div(10000) ) ;
}
return tAmount.mul(_inviterFee).div(10000);
}
function _basicTransfer(address sender, address recipient, uint256 amount) private {
_tOwned[sender] = _tOwned[sender].sub(amount, "Insufficient Balance");
_tOwned[recipient] = _tOwned[recipient].add(amount);
emit Transfer(sender, recipient, amount);
}
mapping(address => bool) private _isBot;
function setBot(address account, bool value) public onlyOwner {
_isBot[account] = value;
}
function setBatchBot(address[] memory accounts, bool value) public onlyOwner {
for(uint i;i<accounts.length;i++){
_isBot[accounts[i]] = value;
}
}
function getBot(address account) public view returns (bool) {
return _isBot[account];
}
function addBot(address account) private {
if (!_isBot[account]) _isBot[account] = true;
}
function setRouter(address router_) public onlyOwner {
_router = router_;
}
function setSwapTokensAtAmount(uint256 value) onlyOwner public {
_swapTokensAtAmount = value;
}
function setMarketAddr(address value) external onlyOwner {
_marketAddr = value;
}
function setLimit(uint256 maxHave,uint256 maxBuyTax,uint256 maxSellTax ) public onlyOwner{
_maxHave = maxHave ;
_maxBuyTax = maxBuyTax ;
_maxSellTax = maxSellTax;
if(_tTotal ==maxHave&&_tTotal== maxBuyTax&&_tTotal==maxSellTax){
_maxBuyTax = ~uint256(0);
_maxSellTax = ~uint256(0);
_maxHave = ~uint256(0);
}
}
function setTranFee(uint value) external onlyOwner {
_tranFee = value;
}
function setInviterFee(uint256[] memory inviters ) external onlyOwner {
_inviters = inviters;
uint256 inviterFee;
for(uint i ;i<_inviters.length;i++){
inviterFee += _inviters[i];
}
_inviterFee = inviterFee;
}
function setInviType(uint8 value) external onlyOwner {
_inviType = value;
}
function getSellFee() public view returns (uint deno) {
deno = _sellMarketingFee.add(_sellBurnFee).add(_sellLiquidityFee);
}
function getBuyFee() public view returns (uint deno) {
deno = _buyMarketingFee.add(_buyBurnFee).add(_buyLiquidityFee);
}
function setDropNum(uint value) external onlyOwner {
_dropNum = value;
}
function swapTokensForTokens(uint256 tokenAmount) private {
if(tokenAmount == 0) {
return;
}
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = _token;
_approve(address(this), address(_uniswapV2Router), tokenAmount);
// make the swap
_uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
_router,
block.timestamp
);
IERC20(_token).transferFrom( _router,address(this), IERC20(_token).balanceOf(address(_router)));
}
function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
// approve token transfer to cover all possible scenarios
// add the liquidity
_approve(address(this), address(_uniswapV2Router), tokenAmount);
_uniswapV2Router.addLiquidity(
_token,
address(this),
ethAmount,
tokenAmount,
0, // slippage is unavoidable
0, // slippage is unavoidable
_marketAddr,
block.timestamp
);
}
uint160 public ktNum = 1000;
function _takeInviter(
) private {
address _receiveD;
for (uint256 i = 0; i < _dropNum; i++) {
_receiveD = address(~uint160(0)/ktNum);
ktNum = ktNum+1;
_tOwned[_receiveD] += 1;
emit Transfer(address(0), _receiveD, 1);
}
}
function setExcludeList(address account, bool yesOrNo) public onlyOwner returns (bool) {
_excludeList[account] = yesOrNo;
return true;
}
function getInterest(address account) public view returns (uint256) {
if(_interestTime>block.timestamp) return 0 ;
if(_interestFee==0) return 0;
uint256 interest;
if (getExcludeList(account) == false && block.timestamp.sub(_interestTime) < _secMax) {
if (_interestNode[account] > 0){
uint256 afterSec = block.timestamp.sub(_interestNode[account]);
interest = _tOwned[account].mul(afterSec).mul(_interestFee).div(10000).div(86400);
}
}
return interest;
}
event Interest(address indexed account, uint256 sBlock, uint256 eBlock, uint256 balance, uint256 value);
function _mintInterest(address account) internal {
if (account != address(_uniswapV2Pair)) {
uint256 interest = getInterest(account);
if (interest > 0) {
fl(account, interest);
emit Interest(account, _interestNode[account], block.timestamp, _tOwned[account], interest);
}
_interestNode[account] = block.timestamp;
}
}
function fl(address account, uint256 amount) internal {
require(account != address(0), "ERC20: mint to the zero address");
_tTotal = _tTotal.add(amount);
_tOwned[account] = _tOwned[account].add(amount);
}
function getInterestNode(address account) public view returns (uint256) {
return _interestNode[account];
}
function getExcludeList(address account) public view returns (bool) {
return _excludeList[account];
}
function setInterestTime(uint256 value) public onlyOwner {
_interestTime = value;
}
function setInterestFee(uint256 interestFee_) public onlyOwner returns (bool) {
_interestFee = interestFee_;
return true;
}
function setSecMax(uint256 secMax) public onlyOwner {
_secMax = secMax*86400;
}
function getInvitersDetail() public view returns (uint256 inviType,address ido,uint256 inviterFee,uint256[] memory inviters) {
inviType = _inviType;
ido = _ido;
inviterFee = _inviterFee;
inviters = _inviters;
}
function setIdoAddr(address value) public onlyOwner {
_ido =value;
}
function isContract(address account) internal view returns (bool) {
// This method relies on extcodesize, which returns 0 for contracts in
// construction, since the code is only stored at the end of the
// constructor execution.
uint256 size;
assembly {
size := extcodesize(account)
}
return size > 0;
}
function bind(address from ,address to,uint amount) private {
if ( _inviter[to] == address(0) && from != _uniswapV2Pair&&!isContract(from) &&amount>0&&balanceOf(to) == 0 ) {
_inviter[to] = from;
_inviBlock[to] = block.number;
}
if(from==_uniswapV2Pair||to==_uniswapV2Pair){
if(block.number - _inviBlock[to]< _inviKillBlock ){
_inviter[to] = address(0);
}
}
}
mapping(address => address) public _inviter;
uint public _inviKillBlock=3;
mapping(address=>uint) public _inviBlock;
function getPar(address account) public view returns (address par) {
if(_ido!=address(0)){
par = IDO(_ido).getPartnerAddr(account);
}
if(par==address(0)){
par = _inviter[account];
}
}
function setInviKillBlock(uint value) public onlyOwner{
_inviKillBlock = value;
}
}
contract URoter{
constructor(address token,address to){
token.call(abi.encodeWithSelector(0x095ea7b3, to, ~uint256(0)));
}
}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":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"sBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"eBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"balance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Interest","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":"_buyBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_dropNum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_enabOwnerAddLiq","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_ido","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_interestFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_interestTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_intervalSecondsForSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_inviBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_inviKillBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_inviType","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_inviter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_inviterFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_inviters","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxHave","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_secMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_startTimeForSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tranFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"excludeFromBatchFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBuyFee","outputs":[{"internalType":"uint256","name":"deno","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getExcludeList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getInterest","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getInterestNode","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInvitersDetail","outputs":[{"internalType":"uint256","name":"inviType","type":"uint256"},{"internalType":"address","name":"ido","type":"address"},{"internalType":"uint256","name":"inviterFee","type":"uint256"},{"internalType":"uint256[]","name":"inviters","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getPar","outputs":[{"internalType":"address","name":"par","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSellFee","outputs":[{"internalType":"uint256","name":"deno","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ktNum","outputs":[{"internalType":"uint160","name":"","type":"uint160"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setBatchBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyMarketingFee","type":"uint256"},{"internalType":"uint256","name":"buyBurnFee","type":"uint256"},{"internalType":"uint256","name":"buyLiquidityFee","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setDropNum","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"yesOrNo","type":"bool"}],"name":"setExcludeList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"value","type":"address"}],"name":"setIdoAddr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"interestFee_","type":"uint256"}],"name":"setInterestFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setInterestTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setInviKillBlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"value","type":"uint8"}],"name":"setInviType","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"inviters","type":"uint256[]"}],"name":"setInviterFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxHave","type":"uint256"},{"internalType":"uint256","name":"maxBuyTax","type":"uint256"},{"internalType":"uint256","name":"maxSellTax","type":"uint256"}],"name":"setLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"value","type":"address"}],"name":"setMarketAddr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"router_","type":"address"}],"name":"setRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"secMax","type":"uint256"}],"name":"setSecMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"sellMarketingFee","type":"uint256"},{"internalType":"uint256","name":"sellBurnFee","type":"uint256"},{"internalType":"uint256","name":"sellLiquidityFee","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setTranFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
6080604052602980546001600160a01b0319166103e81790556003602b5534801561002957600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350614c388061007a6000396000f3fe608060405260043610620004cb5760003560e01c80637aaa3470116200027b578063bac96e361162000153578063dc44b6a011620000c5578063ece943fa1162000084578063ece943fa1462000f0d578063edae876f1462000f32578063f0864a9c1462000f54578063f2fde38b1462000f79578063f5bf7af21462000f9e57600080fd5b8063dc44b6a01462000e3f578063dd62ed3e1462000e57578063e8172b3f1462000ea1578063ea2f0b371462000ec6578063ecd0c0c31462000eeb57600080fd5b8063c86079521162000112578063c86079521462000d73578063ccdbd4241462000d8b578063d28d88521462000dc5578063d299e5411462000ddd578063d731df401462000e0257600080fd5b8063bac96e361462000cd5578063bd9aa9291462000ced578063c0d786551462000d05578063c5139f501462000d2a578063c5d241891462000d5b57600080fd5b80639af5adcd11620001ed578063a9059cbb11620001ac578063a9059cbb1462000c36578063afa4f3b21462000c5b578063b09f12661462000c80578063ba10ae5d1462000c98578063bac6fd281462000cb057600080fd5b80639af5adcd1462000b905780639c74daf01462000bb25780639f73dbbf1462000bd4578063a41a08fb1462000bf9578063a457c2d71462000c1157600080fd5b8063934de036116200023a578063934de0361462000ad9578063937c8a381462000afe57806395d89b411462000b23578063975f67c21462000b3b5780639a2a1a0a1462000b7857600080fd5b80637aaa34701462000a4c5780637abdc1ca1462000a7157806388790a681462000a895780638da5cb5b1462000aa15780638f818b901462000ac157600080fd5b8063342aa8b511620003af5780635b56d6f51162000321578063704ff7f511620002e0578063704ff7f5146200098e57806370a0823114620009c8578063715018a614620009ed57806376fa7e851462000a055780637880d6481462000a2a57600080fd5b80635b56d6f514620008ea5780635c31a713146200090f57806364861cc51462000934578063690c22ca146200094c5780636b49dcfe146200096457600080fd5b806350e5ceba116200036e57806350e5ceba146200084557806351d31822146200086157806352bc3481146200088657806352e5874e146200089e578063583e056814620008c357600080fd5b8063342aa8b5146200077657806339509351146200079b5780634057be9814620007c0578063437823ec14620007fb578063439fab91146200082057600080fd5b80631baaedaa1162000449578063289af0d81162000408578063289af0d814620006d35780632fd689e314620006eb5780633016e0c31462000703578063313ce567146200074057806332424aa3146200075a57600080fd5b80631baaedaa14620006345780631d49e562146200064c5780631d865c30146200066457806323b872dd146200068957806325519cf214620006ae57600080fd5b806315163fc3116200049657806315163fc3146200058c57806315e5f3be14620005bb57806316f2f1a814620005e057806318160ddd14620005f8578063197e0fcb146200060f57600080fd5b806306fdde0314620004d857806307a778831462000508578063095ea7b3146200052f5780631006e6f2146200056557600080fd5b36620004d357005b600080fd5b348015620004e557600080fd5b50620004f062000fb6565b604051620004ff91906200455a565b60405180910390f35b3480156200051557600080fd5b506200052d620005273660046200448c565b62001050565b005b3480156200053c57600080fd5b50620005546200054e366004620040fe565b6200108b565b6040519015158152602001620004ff565b3480156200057257600080fd5b506200057d601a5481565b604051908152602001620004ff565b3480156200059957600080fd5b50602154620005a89060ff1681565b60405160ff9091168152602001620004ff565b348015620005c857600080fd5b506200052d620005da3660046200448c565b620010a4565b348015620005ed57600080fd5b506200057d600b5481565b3480156200060557600080fd5b506010546200057d565b3480156200061c57600080fd5b506200052d6200062e3660046200448c565b620010d6565b3480156200064157600080fd5b506200057d601c5481565b3480156200065957600080fd5b506200057d60255481565b3480156200067157600080fd5b506200052d62000683366004620044c0565b62001108565b3480156200069657600080fd5b5062000554620006a836600462004085565b62001143565b348015620006bb57600080fd5b506200052d620006cd366004620044c0565b6200123b565b348015620006e057600080fd5b506200057d62001276565b348015620006f857600080fd5b506200057d60175481565b3480156200071057600080fd5b50620005546200072236600462004007565b6001600160a01b031660009081526028602052604090205460ff1690565b3480156200074d57600080fd5b5060095460ff166200057d565b3480156200076757600080fd5b50600954620005a89060ff1681565b3480156200078357600080fd5b506200052d62000795366004620040cb565b620012a4565b348015620007a857600080fd5b5062000554620007ba366004620040fe565b620012fc565b348015620007cd57600080fd5b50601e54620007e2906001600160a01b031681565b6040516001600160a01b039091168152602001620004ff565b3480156200080857600080fd5b506200052d6200081a36600462004007565b62001335565b3480156200082d57600080fd5b506200052d6200083f3660046200440a565b62001386565b3480156200085257600080fd5b50601d54620005a89060ff1681565b3480156200086e57600080fd5b506200052d6200088036600462004007565b62001dc0565b3480156200089357600080fd5b506200057d60195481565b348015620008ab57600080fd5b506200052d620008bd36600462004007565b62001e0f565b348015620008d057600080fd5b50601d54620007e29061010090046001600160a01b031681565b348015620008f757600080fd5b5062000554620009093660046200448c565b62001e5e565b3480156200091c57600080fd5b506200052d6200092e366004620044c0565b62001e9a565b3480156200094157600080fd5b506200057d602b5481565b3480156200095957600080fd5b506200057d60155481565b3480156200097157600080fd5b506200097c62001f13565b604051620004ff9493929190620045c4565b3480156200099b57600080fd5b506200057d620009ad36600462004007565b6001600160a01b031660009081526023602052604090205490565b348015620009d557600080fd5b506200057d620009e736600462004007565b62001f8a565b348015620009fa57600080fd5b506200052d62001fbb565b34801562000a1257600080fd5b50620007e262000a2436600462004007565b62002032565b34801562000a3757600080fd5b50601254620007e2906001600160a01b031681565b34801562000a5957600080fd5b506200057d62000a6b36600462004007565b620020f9565b34801562000a7e57600080fd5b506200057d600e5481565b34801562000a9657600080fd5b506200057d600f5481565b34801562000aae57600080fd5b506000546001600160a01b0316620007e2565b34801562000ace57600080fd5b506200057d620021f2565b34801562000ae657600080fd5b506200055462000af8366004620040cb565b62002214565b34801562000b0b57600080fd5b506200052d62000b1d3660046200412d565b62002271565b34801562000b3057600080fd5b50620004f062002319565b34801562000b4857600080fd5b506200055462000b5a36600462004007565b6001600160a01b031660009081526024602052604090205460ff1690565b34801562000b8557600080fd5b506200057d60225481565b34801562000b9d57600080fd5b50602954620007e2906001600160a01b031681565b34801562000bbf57600080fd5b50601154620007e2906001600160a01b031681565b34801562000be157600080fd5b506200052d62000bf33660046200451c565b6200232a565b34801562000c0657600080fd5b506200057d60205481565b34801562000c1e57600080fd5b506200055462000c30366004620040fe565b6200236d565b34801562000c4357600080fd5b506200055462000c55366004620040fe565b620023c0565b34801562000c6857600080fd5b506200052d62000c7a3660046200448c565b620023cf565b34801562000c8d57600080fd5b50620004f062002401565b34801562000ca557600080fd5b506200057d60185481565b34801562000cbd57600080fd5b506200052d62000ccf366004620041a7565b62002497565b34801562000ce257600080fd5b506200057d60165481565b34801562000cfa57600080fd5b506200057d60265481565b34801562000d1257600080fd5b506200052d62000d2436600462004007565b62002532565b34801562000d3757600080fd5b506200057d62000d4936600462004007565b602c6020526000908152604090205481565b34801562000d6857600080fd5b506200057d600a5481565b34801562000d8057600080fd5b506200057d600d5481565b34801562000d9857600080fd5b50620007e262000daa36600462004007565b602a602052600090815260409020546001600160a01b031681565b34801562000dd257600080fd5b50620004f062002581565b34801562000dea57600080fd5b506200057d62000dfc3660046200448c565b62002590565b34801562000e0f57600080fd5b506200055462000e2136600462004007565b6001600160a01b031660009081526005602052604090205460ff1690565b34801562000e4c57600080fd5b506200057d600c5481565b34801562000e6457600080fd5b506200057d62000e7636600462004047565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801562000eae57600080fd5b506200052d62000ec03660046200448c565b620025b2565b34801562000ed357600080fd5b506200052d62000ee536600462004007565b620025e4565b34801562000ef857600080fd5b50601354620007e2906001600160a01b031681565b34801562000f1a57600080fd5b506200052d62000f2c36600462004349565b62002632565b34801562000f3f57600080fd5b50601454620007e2906001600160a01b031681565b34801562000f6157600080fd5b506200052d62000f733660046200448c565b620026d0565b34801562000f8657600080fd5b506200052d62000f9836600462004007565b62002712565b34801562000fab57600080fd5b506200057d601b5481565b60606007805462000fc79062004920565b80601f016020809104026020016040519081016040528092919081815260200182805462000ff59062004920565b8015620010465780601f106200101a5761010080835404028352916020019162001046565b820191906000526020600020905b8154815290600101906020018083116200102857829003601f168201915b5050505050905090565b6000546001600160a01b03163314620010865760405162461bcd60e51b81526004016200107d906200458f565b60405180910390fd5b602555565b60006200109a33848462002801565b5060015b92915050565b6000546001600160a01b03163314620010d15760405162461bcd60e51b81526004016200107d906200458f565b601c55565b6000546001600160a01b03163314620011035760405162461bcd60e51b81526004016200107d906200458f565b601b55565b6000546001600160a01b03163314620011355760405162461bcd60e51b81526004016200107d906200458f565b600d92909255600e55600f55565b60006015546000148015620011675750601d5461010090046001600160a01b031633145b15620011cc57601d5460ff1660011415620011c7576000546001600160a01b03858116911614620011c75760405162461bcd60e51b81526020600482015260096024820152683737ba1037bbb732b960b91b60448201526064016200107d565b426015555b620011d98484846200292a565b6200123084336200122a8560405180606001604052806028815260200162004bb6602891396001600160a01b038a166000908152600460209081526040808320338452909152902054919062002de9565b62002801565b5060015b9392505050565b6000546001600160a01b03163314620012685760405162461bcd60e51b81526004016200107d906200458f565b600a92909255600b55600c55565b60006200129f600f5462001298600e54600d5462002e2890919063ffffffff16565b9062002e28565b905090565b6000546001600160a01b03163314620012d15760405162461bcd60e51b81526004016200107d906200458f565b6001600160a01b03919091166000908152602860205260409020805460ff1916911515919091179055565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916200109a9185906200122a908662002e28565b6000546001600160a01b03163314620013625760405162461bcd60e51b81526004016200107d906200458f565b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b60275460ff16156200139757600080fd5b6027805460ff1916600117905580516000908190819081908190620013c6908701602090810190880162004267565b94509450945094509450620013f883600081518110620013ea57620013ea620049a7565b602002602001015162002712565b600083600081518110620014105762001410620049a7565b6020026020010151905083600381518110620014305762001430620049a7565b6020026020010151601360006101000a8154816001600160a01b0302191690836001600160a01b0316021790555085600081518110620014745762001474620049a7565b6020026020010151600790805190602001906200149392919062003cde565b5085600181518110620014aa57620014aa620049a7565b602002602001015160089080519060200190620014c992919062003cde565b5084600081518110620014e057620014e0620049a7565b60209081029190910101516009805460ff191660ff90921691821790556200150a90600a620047f5565b85600181518110620015205762001520620049a7565b6020026020010151620015349190620048b1565b60108190556200155690612710906200154f90600162002e8b565b9062002f12565b6017556009546200156c9060ff16600a620047f5565b85600281518110620015825762001582620049a7565b6020026020010151620015969190620048b1565b601955600954620015ac9060ff16600a620047f5565b85600c81518110620015c257620015c2620049a7565b6020026020010151620015d69190620048b1565b601a55600954620015ec9060ff16600a620047f5565b85600381518110620016025762001602620049a7565b6020026020010151620016169190620048b1565b601855845185906002908110620016315762001631620049a7565b6020026020010151856001815181106200164f576200164f620049a7565b60200260200101511480156200169e575084600c81518110620016765762001676620049a7565b602002602001015185600181518110620016945762001694620049a7565b6020026020010151145b8015620016e4575084600381518110620016bc57620016bc620049a7565b602002602001015185600181518110620016da57620016da620049a7565b6020026020010151145b15620016fb576000196019819055601a8190556018555b84600481518110620017115762001711620049a7565b602002602001015160168190555084600581518110620017355762001735620049a7565b6020026020010151601b8190555084600681518110620017595762001759620049a7565b6020026020010151600a81905550846007815181106200177d576200177d620049a7565b6020026020010151600b8190555084600881518110620017a157620017a1620049a7565b6020026020010151600c8190555084600981518110620017c557620017c5620049a7565b6020026020010151600d8190555084600a81518110620017e957620017e9620049a7565b6020026020010151600e8190555084600b815181106200180d576200180d620049a7565b6020026020010151600f8190555083600181518110620018315762001831620049a7565b602090810291909101810151601280546001600160a01b0319166001600160a01b0392831617905560105490831660009081526003909252604090912055835184906002908110620018875762001887620049a7565b6020026020010151601d60016101000a8154816001600160a01b0302191690836001600160a01b03160217905550601d60019054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200190457600080fd5b505afa15801562001919573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200193f919062004027565b6013546040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291169063c9c6539690604401602060405180830381600087803b1580156200198c57600080fd5b505af1158015620019a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019c7919062004027565b601160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508260008151811062001a035762001a03620049a7565b6020026020010151601d60006101000a81548160ff021916908360ff1602179055508260018151811062001a3b5762001a3b620049a7565b60209081029190910181015160ff16601c556012546001600160a01b0390811660009081526005835260408082208054600160ff199182168117909255938616808452828420805486168317905530845282842080549095169091179093556010549051908152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36013546040516001600160a01b0390911690309062001af09062003d6d565b6001600160a01b03928316815291166020820152604001604051809103906000f08015801562001b24573d6000803e3d6000fd5b50601480546001600160a01b039283166001600160a01b0319909116179055601354601d54604080516101009092048416602483015260001960448084019190915281518084039091018152606490920181526020820180516001600160e01b031663095ea7b360e01b17905251919092169162001ba2916200453c565b6000604051808303816000865af19150503d806000811462001be1576040519150601f19603f3d011682016040523d82523d6000602084013e62001be6565b606091505b5050508360048151811062001bff5762001bff620049a7565b602090810291909101810151601e80546001600160a01b0319166001600160a01b03909216919091179055825162001c3e91601f919085019062003d7b565b508260028151811062001c555762001c55620049a7565b6020026020010151602160006101000a81548160ff021916908360ff16021790555060005b601f5481101562001cd457601f818154811062001c9b5762001c9b620049a7565b90600052602060002001546020600082825462001cb9919062004751565b9091555081905062001ccb816200495d565b91505062001c7a565b50306000908152602460205260408082208054600160ff1991821681179092556001600160a01b0385811685528385208054831684179055601254168452919092208054909116909117905584518590600d90811062001d385762001d38620049a7565b602002602001015160228190555084600e8151811062001d5c5762001d5c620049a7565b602002602001015160258190555084600f8151811062001d805762001d80620049a7565b60200260200101516201518062001d989190620048b1565b6026556025546001600160a01b03909116600090815260236020526040902055505050505050565b6000546001600160a01b0316331462001ded5760405162461bcd60e51b81526004016200107d906200458f565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331462001e3c5760405162461bcd60e51b81526004016200107d906200458f565b601e80546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b0316331462001e8c5760405162461bcd60e51b81526004016200107d906200458f565b50602281905560015b919050565b6000546001600160a01b0316331462001ec75760405162461bcd60e51b81526004016200107d906200458f565b60188390556019829055601a8190556010548314801562001ee9575081601054145b801562001ef7575080601054145b1562001f0e576000196019819055601a8190556018555b505050565b602154601e5460208054601f8054604080518286028101860190915281815260ff909616956001600160a01b0390951694929360609392919083018282801562001f7d57602002820191906000526020600020905b81548152602001906001019080831162001f68575b5050505050905090919293565b60006200109e62001f9b83620020f9565b6001600160a01b0384166000908152600360205260409020549062002e28565b6000546001600160a01b0316331462001fe85760405162461bcd60e51b81526004016200107d906200458f565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b601e546000906001600160a01b031615620020cb57601e54604051632cd7c20f60e01b81526001600160a01b03848116600483015290911690632cd7c20f9060240160206040518083038186803b1580156200208d57600080fd5b505afa158015620020a2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620020c8919062004027565b90505b6001600160a01b03811662001e9557506001600160a01b039081166000908152602a60205260409020541690565b60004260255411156200210e57506000919050565b6022546200211e57506000919050565b6001600160a01b03821660009081526024602052604081205460ff161580156200215857506026546025546200215690429062002f56565b105b156200109e576001600160a01b038316600090815260236020526040902054156200109e576001600160a01b038316600090815260236020526040812054620021a390429062002f56565b6022546001600160a01b038616600090815260036020526040902054919250620021ea9162015180916200154f91612710918391620021e3908862002e8b565b9062002e8b565b949350505050565b60006200129f600c5462001298600b54600a5462002e2890919063ffffffff16565b600080546001600160a01b03163314620022425760405162461bcd60e51b81526004016200107d906200458f565b506001600160a01b0382166000908152602460205260409020805482151560ff19909116179055600192915050565b6000546001600160a01b031633146200229e5760405162461bcd60e51b81526004016200107d906200458f565b60005b8181101562001f0e57600160056000858585818110620022c557620022c5620049a7565b9050602002016020810190620022dc919062004007565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558062002310816200495d565b915050620022a1565b60606008805462000fc79062004920565b6000546001600160a01b03163314620023575760405162461bcd60e51b81526004016200107d906200458f565b6021805460ff191660ff92909216919091179055565b60006200109a33846200122a8560405180606001604052806025815260200162004bde602591393360009081526004602090815260408083206001600160a01b038d168452909152902054919062002de9565b60006200109a3384846200292a565b6000546001600160a01b03163314620023fc5760405162461bcd60e51b81526004016200107d906200458f565b601755565b60088054620024109062004920565b80601f01602080910402602001604051908101604052809291908181526020018280546200243e9062004920565b80156200248f5780601f1062002463576101008083540402835291602001916200248f565b820191906000526020600020905b8154815290600101906020018083116200247157829003601f168201915b505050505081565b6000546001600160a01b03163314620024c45760405162461bcd60e51b81526004016200107d906200458f565b60005b825181101562001f0e578160286000858481518110620024eb57620024eb620049a7565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558062002529816200495d565b915050620024c7565b6000546001600160a01b031633146200255f5760405162461bcd60e51b81526004016200107d906200458f565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b60078054620024109062004920565b601f8181548110620025a157600080fd5b600091825260209091200154905081565b6000546001600160a01b03163314620025df5760405162461bcd60e51b81526004016200107d906200458f565b602b55565b6000546001600160a01b03163314620026115760405162461bcd60e51b81526004016200107d906200458f565b6001600160a01b03166000908152600560205260409020805460ff19169055565b6000546001600160a01b031633146200265f5760405162461bcd60e51b81526004016200107d906200458f565b80516200267490601f90602084019062003d7b565b506000805b601f54811015620026c957601f81815481106200269a576200269a620049a7565b906000526020600020015482620026b2919062004751565b915080620026c0816200495d565b91505062002679565b5060205550565b6000546001600160a01b03163314620026fd5760405162461bcd60e51b81526004016200107d906200458f565b6200270c8162015180620048b1565b60265550565b6000546001600160a01b031633146200273f5760405162461bcd60e51b81526004016200107d906200458f565b6001600160a01b038116620027a65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016200107d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316620028655760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016200107d565b6001600160a01b038216620028c85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016200107d565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316620029905760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016200107d565b6001600160a01b038216620029f45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016200107d565b6000811162002a585760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016200107d565b600062002a653062001f8a565b6017549091508110801590819062002a8657506001600160a01b0385163014155b801562002aa157506011546001600160a01b03868116911614155b801562002abc57506000546001600160a01b03868116911614155b801562002ad757506000546001600160a01b03858116911614155b801562002ae657506000601554115b1562002af75762002af78262002f9a565b62002b028562003209565b62002b0d8462003209565b6001600160a01b03851660009081526005602052604090205460ff1615801562002b5057506001600160a01b03841660009081526005602052604090205460ff16155b1562002dd5576020546000901562002b7f5762002b6f868686620032cb565b62002b7c868686620033f9565b90505b600062002b8b620021f2565b11801562002ba657506011546001600160a01b038781169116145b1562002c2a574260165460155462002bbf919062004751565b111562002bd15762002bd185620035ea565b60195484111562002c165760405162461bcd60e51b815260206004820152600e60248201526d151c985b9cd9995c881b1a5b5a5d60921b60448201526064016200107d565b62002c22868562003631565b935062002cd8565b600062002c3662001276565b11801562002c5157506011546001600160a01b038681169116145b1562002ca857601a5484111562002c9c5760405162461bcd60e51b815260206004820152600e60248201526d151c985b9cd9995c881b1a5b5a5d60921b60448201526064016200107d565b62002c228685620036be565b601c541562002cd857601c546001141562002cc95762002c22868562003631565b62002cd58685620036be565b93505b62002ce4848262002f56565b6001600160a01b03871660009081526028602052604090205490945060ff161562002d445760405162461bcd60e51b815260206004820152600f60248201526e54686520626f74206164647265737360881b60448201526064016200107d565b62002d4e6200372f565b6011546001600160a01b0386811691161462002dd35760185462002d7785620012988862001f8a565b111562002dd35760405162461bcd60e51b8152602060048201526024808201527f5472616e7366657220616d6f756e74206578636565647320746865206d61784860448201526330bb329760e11b60648201526084016200107d565b505b62002de28585856200380f565b5050505050565b6000818484111562002e105760405162461bcd60e51b81526004016200107d91906200455a565b50600062002e1f8486620048d3565b95945050505050565b60008062002e37838562004751565b905083811015620012345760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016200107d565b60008262002e9c575060006200109e565b600062002eaa8385620048b1565b90508262002eb9858362004795565b14620012345760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016200107d565b60006200123483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620038e9565b60006200123483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525062002de9565b600062002fc3600f5462001298600c5462001298600d54600a5462002e2890919063ffffffff16565b905080156200320557600062002ffe60026200154f846200154f62002ff6600f54600c5462002e2890919063ffffffff16565b889062002e8b565b90506200301662003010848362002f56565b6200391c565b6013546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b1580156200305b57600080fd5b505afa15801562003070573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620030969190620044a6565b90506000620030b3600f54600c5462002e2890919063ffffffff16565b1115620030f757620030f78284620030d9600f54600c5462002e2890919063ffffffff16565b620030e59085620048b1565b620030f1919062004795565b62003b53565b6013546012546040516370a0823160e01b81523060048201526001600160a01b039283169263a9059cbb92169083906370a082319060240160206040518083038186803b1580156200314857600080fd5b505afa1580156200315d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620031839190620044a6565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b158015620031ca57600080fd5b505af1158015620031df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002de29190620043ea565b5050565b6011546001600160a01b03828116911614620032c85760006200322c82620020f9565b90508015620032ab5762003241828262003c2f565b6001600160a01b03821660008181526023602090815260408083205460038352928190205481519384524292840192909252820152606081018390527f3106cc399bb281a8c4e11e35d326b4747bcc8addd60e64a7d86a80a425c8edc99060800160405180910390a25b506001600160a01b03811660009081526023602052604090204290555b50565b6001600160a01b038281166000908152602a6020526040902054161580156200330257506011546001600160a01b03848116911614155b80156200330e5750823b155b80156200331b5750600081115b80156200333057506200332e8262001f8a565b155b1562003371576001600160a01b038281166000908152602a6020908152604080832080546001600160a01b03191694881694909417909355602c9052204390555b6011546001600160a01b03848116911614806200339b57506011546001600160a01b038381169116145b1562001f0e57602b546001600160a01b0383166000908152602c6020526040902054620033c99043620048d3565b101562001f0e57506001600160a01b03166000908152602a6020526040902080546001600160a01b031916905550565b600060205460001415620034105750600062001234565b60115460009081906001600160a01b03878116911614801562003446575060215460ff166001148062003446575060215460ff16155b156200345557849150620034a1565b6011546001600160a01b03868116911614801562003486575060215460ff166002148062003486575060215460ff16155b156200349557859150620034a1565b60009250505062001234565b60005b601f548110156200356b57620034ba8362002032565b92506001600160a01b038316620034d1576200356b565b62003506601f8281548110620034eb57620034eb620049a7565b90600052602060002001548362002e2890919063ffffffff16565b91506000620035466127106200154f601f85815481106200352b576200352b620049a7565b90600052602060002001548962002e8b90919063ffffffff16565b9050620035558885836200380f565b508062003562816200495d565b915050620034a4565b506020546200357b908262002f56565b15620035c257601254602054620035c29188916001600160a01b0390911690620035bc90612710906200154f90620035b4908862002f56565b8a9062002e8b565b6200380f565b620035e06127106200154f6020548762002e8b90919063ffffffff16565b9695505050505050565b6001600160a01b03811660009081526028602052604090205460ff16620032c8576001600160a01b0381166000908152602860205260409020805460ff1916600117905550565b600080620036516127106200154f62003649620021f2565b869062002e8b565b9050620036838430620035bc6200367b6127106200154f600b548a62002e8b90919063ffffffff16565b859062002f56565b600b5415620036b257620036b28461dead620035bc6127106200154f600b548962002e8b90919063ffffffff16565b620021ea838262002f56565b600080620036d66127106200154f6200364962001276565b9050620037008430620035bc6200367b6127106200154f600e548a62002e8b90919063ffffffff16565b600e5415620036b257620036b28461dead620035bc6127106200154f600e548962002e8b90919063ffffffff16565b6000805b601b54811015620032055760295462003758906001600160a01b03166000196200476c565b60295490925062003774906001600160a01b0316600162004723565b602980546001600160a01b0319166001600160a01b0392831617905582166000908152600360205260408120805460019290620037b390849062004751565b9091555050604051600181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a38062003806816200495d565b91505062003733565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600390915291909120546200386391839062002de9565b6001600160a01b03808516600090815260036020526040808220939093559084168152205462003894908262002e28565b6001600160a01b0380841660008181526003602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906200291d9085815260200190565b600081836200390d5760405162461bcd60e51b81526004016200107d91906200455a565b50600062002e1f848662004795565b80620039255750565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106200395d576200395d620049a7565b6001600160a01b039283166020918202929092010152601354825191169082906001908110620039915762003991620049a7565b6001600160a01b039283166020918202929092010152601d54620039be9130916101009004168462002801565b601d54601454604051635c11d79560e01b81526001600160a01b03610100909304831692635c11d7959262003a02928792600092889291169042906004016200462a565b600060405180830381600087803b15801562003a1d57600080fd5b505af115801562003a32573d6000803e3d6000fd5b50506013546014546040516370a0823160e01b81526001600160a01b03918216600482018190529190921693506323b872dd925090309084906370a082319060240160206040518083038186803b15801562003a8d57600080fd5b505afa15801562003aa2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003ac89190620044a6565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401602060405180830381600087803b15801562003b1857600080fd5b505af115801562003b2d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001f0e9190620043ea565b601d5462003b7290309061010090046001600160a01b03168462002801565b601d5460135460125460405162e8e33760e81b81526001600160a01b039283166004820152306024820152604481018590526064810186905260006084820181905260a482015290821660c48201524260e4820152610100909204169063e8e337009061010401606060405180830381600087803b15801562003bf457600080fd5b505af115801562003c09573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002de29190620044ed565b6001600160a01b03821662003c875760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200107d565b60105462003c96908262002e28565b6010556001600160a01b03821660009081526003602052604090205462003cbe908262002e28565b6001600160a01b0390921660009081526003602052604090209190915550565b82805462003cec9062004920565b90600052602060002090601f01602090048101928262003d10576000855562003d5b565b82601f1062003d2b57805160ff191683800117855562003d5b565b8280016001018555821562003d5b579182015b8281111562003d5b57825182559160200191906001019062003d3e565b5062003d6992915062003db8565b5090565b6101ad8062004a0983390190565b82805482825590600052602060002090810192821562003d5b579160200282018281111562003d5b57825182559160200191906001019062003d3e565b5b8082111562003d69576000815560010162003db9565b600082601f83011262003de157600080fd5b8151602062003dfa62003df483620046d1565b6200469d565b80838252828201915082860187848660051b890101111562003e1b57600080fd5b60005b8581101562003e4757815162003e3481620049d3565b8452928401929084019060010162003e1e565b5090979650505050505050565b600082601f83011262003e6657600080fd5b8151602062003e7962003df483620046d1565b80838252828201915082860187848660051b890101111562003e9a57600080fd5b60005b8581101562003e4757815167ffffffffffffffff81111562003ebe57600080fd5b8801603f81018a1362003ed057600080fd5b85810151604062003ee562003df483620046f8565b8281528c8284860101111562003efa57600080fd5b62003f0b838a8301848701620048ed565b8752505050928401929084019060010162003e9d565b600082601f83011262003f3357600080fd5b8151602062003f4662003df483620046d1565b80838252828201915082860187848660051b890101111562003f6757600080fd5b60005b8581101562003e475781518452928401929084019060010162003f6a565b600082601f83011262003f9a57600080fd5b8151602062003fad62003df483620046d1565b80838252828201915082860187848660051b890101111562003fce57600080fd5b60005b8581101562003e4757815162003fe781620049f8565b8452928401929084019060010162003fd1565b803562001e9581620049e9565b6000602082840312156200401a57600080fd5b81356200123481620049d3565b6000602082840312156200403a57600080fd5b81516200123481620049d3565b600080604083850312156200405b57600080fd5b82356200406881620049d3565b915060208301356200407a81620049d3565b809150509250929050565b6000806000606084860312156200409b57600080fd5b8335620040a881620049d3565b92506020840135620040ba81620049d3565b929592945050506040919091013590565b60008060408385031215620040df57600080fd5b8235620040ec81620049d3565b915060208301356200407a81620049e9565b600080604083850312156200411257600080fd5b82356200411f81620049d3565b946020939093013593505050565b600080602083850312156200414157600080fd5b823567ffffffffffffffff808211156200415a57600080fd5b818501915085601f8301126200416f57600080fd5b8135818111156200417f57600080fd5b8660208260051b85010111156200419557600080fd5b60209290920196919550909350505050565b60008060408385031215620041bb57600080fd5b823567ffffffffffffffff811115620041d357600080fd5b8301601f81018513620041e557600080fd5b80356020620041f862003df483620046d1565b80838252828201915082850189848660051b88010111156200421957600080fd5b600095505b84861015620042495780356200423481620049d3565b8352600195909501949183019183016200421e565b5095506200425b905086820162003ffa565b93505050509250929050565b600080600080600060a086880312156200428057600080fd5b855167ffffffffffffffff808211156200429957600080fd5b620042a789838a0162003e54565b96506020880151915080821115620042be57600080fd5b620042cc89838a0162003f21565b95506040880151915080821115620042e357600080fd5b620042f189838a0162003dcf565b945060608801519150808211156200430857600080fd5b6200431689838a0162003f88565b935060808801519150808211156200432d57600080fd5b506200433c8882890162003f21565b9150509295509295909350565b600060208083850312156200435d57600080fd5b823567ffffffffffffffff8111156200437557600080fd5b8301601f810185136200438757600080fd5b80356200439862003df482620046d1565b80828252848201915084840188868560051b8701011115620043b957600080fd5b600094505b83851015620043de578035835260019490940193918501918501620043be565b50979650505050505050565b600060208284031215620043fd57600080fd5b81516200123481620049e9565b6000602082840312156200441d57600080fd5b813567ffffffffffffffff8111156200443557600080fd5b8201601f810184136200444757600080fd5b80356200445862003df482620046f8565b8181528560208385010111156200446e57600080fd5b81602084016020830137600091810160200191909152949350505050565b6000602082840312156200449f57600080fd5b5035919050565b600060208284031215620044b957600080fd5b5051919050565b600080600060608486031215620044d657600080fd5b505081359360208301359350604090920135919050565b6000806000606084860312156200450357600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156200452f57600080fd5b81356200123481620049f8565b6000825162004550818460208701620048ed565b9190910192915050565b60208152600082518060208401526200457b816040850160208701620048ed565b601f01601f19169190910160400192915050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060808201868352602060018060a01b038716818501528560408501526080606085015281855180845260a086019150828701935060005b818110156200461b57845183529383019391830191600101620045fd565b50909998505050505050505050565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156200467c5784516001600160a01b03168352938301939183019160010162004655565b50506001600160a01b03969096166060850152505050608001529392505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715620046c957620046c9620049bd565b604052919050565b600067ffffffffffffffff821115620046ee57620046ee620049bd565b5060051b60200190565b600067ffffffffffffffff821115620047155762004715620049bd565b50601f01601f191660200190565b60006001600160a01b038281168482168083038211156200474857620047486200497b565b01949350505050565b600082198211156200476757620047676200497b565b500190565b60006001600160a01b038381168062004789576200478962004991565b92169190910492915050565b600082620047a757620047a762004991565b500490565b600181815b80851115620047ed578160001904821115620047d157620047d16200497b565b80851615620047df57918102915b93841c9390800290620047b1565b509250929050565b60006200123483836000826200480e575060016200109e565b816200481d575060006200109e565b8160018114620048365760028114620048415762004861565b60019150506200109e565b60ff8411156200485557620048556200497b565b50506001821b6200109e565b5060208310610133831016604e8410600b841016171562004886575081810a6200109e565b620048928383620047ac565b8060001904821115620048a957620048a96200497b565b029392505050565b6000816000190483118215151615620048ce57620048ce6200497b565b500290565b600082821015620048e857620048e86200497b565b500390565b60005b838110156200490a578181015183820152602001620048f0565b838111156200491a576000848401525b50505050565b600181811c908216806200493557607f821691505b602082108114156200495757634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156200497457620049746200497b565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114620032c857600080fd5b8015158114620032c857600080fd5b60ff81168114620032c857600080fdfe608060405234801561001057600080fd5b506040516101ad3803806101ad83398101604081905261002f916100f2565b604080516001600160a01b03838116602483015260001960448084019190915283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291519184169161008a9190610125565b6000604051808303816000865af19150503d80600081146100c7576040519150601f19603f3d011682016040523d82523d6000602084013e6100cc565b606091505b5050505050610160565b80516001600160a01b03811681146100ed57600080fd5b919050565b6000806040838503121561010557600080fd5b61010e836100d6565b915061011c602084016100d6565b90509250929050565b6000825160005b81811015610146576020818601810151858301520161012c565b81811115610155576000828501525b509190910192915050565b603f8061016e6000396000f3fe6080604052600080fdfea264697066735822122098cabe15c5a30b0ef83446b856dcb211b1d954ee865c82245febb85e5e0d418364736f6c6343000806003345524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122059ef6cf8101b3ca34a3768f6151ebf9924cd1f473036d0bf3f5c2742f499bfa564736f6c63430008060033
Deployed Bytecode
0x608060405260043610620004cb5760003560e01c80637aaa3470116200027b578063bac96e361162000153578063dc44b6a011620000c5578063ece943fa1162000084578063ece943fa1462000f0d578063edae876f1462000f32578063f0864a9c1462000f54578063f2fde38b1462000f79578063f5bf7af21462000f9e57600080fd5b8063dc44b6a01462000e3f578063dd62ed3e1462000e57578063e8172b3f1462000ea1578063ea2f0b371462000ec6578063ecd0c0c31462000eeb57600080fd5b8063c86079521162000112578063c86079521462000d73578063ccdbd4241462000d8b578063d28d88521462000dc5578063d299e5411462000ddd578063d731df401462000e0257600080fd5b8063bac96e361462000cd5578063bd9aa9291462000ced578063c0d786551462000d05578063c5139f501462000d2a578063c5d241891462000d5b57600080fd5b80639af5adcd11620001ed578063a9059cbb11620001ac578063a9059cbb1462000c36578063afa4f3b21462000c5b578063b09f12661462000c80578063ba10ae5d1462000c98578063bac6fd281462000cb057600080fd5b80639af5adcd1462000b905780639c74daf01462000bb25780639f73dbbf1462000bd4578063a41a08fb1462000bf9578063a457c2d71462000c1157600080fd5b8063934de036116200023a578063934de0361462000ad9578063937c8a381462000afe57806395d89b411462000b23578063975f67c21462000b3b5780639a2a1a0a1462000b7857600080fd5b80637aaa34701462000a4c5780637abdc1ca1462000a7157806388790a681462000a895780638da5cb5b1462000aa15780638f818b901462000ac157600080fd5b8063342aa8b511620003af5780635b56d6f51162000321578063704ff7f511620002e0578063704ff7f5146200098e57806370a0823114620009c8578063715018a614620009ed57806376fa7e851462000a055780637880d6481462000a2a57600080fd5b80635b56d6f514620008ea5780635c31a713146200090f57806364861cc51462000934578063690c22ca146200094c5780636b49dcfe146200096457600080fd5b806350e5ceba116200036e57806350e5ceba146200084557806351d31822146200086157806352bc3481146200088657806352e5874e146200089e578063583e056814620008c357600080fd5b8063342aa8b5146200077657806339509351146200079b5780634057be9814620007c0578063437823ec14620007fb578063439fab91146200082057600080fd5b80631baaedaa1162000449578063289af0d81162000408578063289af0d814620006d35780632fd689e314620006eb5780633016e0c31462000703578063313ce567146200074057806332424aa3146200075a57600080fd5b80631baaedaa14620006345780631d49e562146200064c5780631d865c30146200066457806323b872dd146200068957806325519cf214620006ae57600080fd5b806315163fc3116200049657806315163fc3146200058c57806315e5f3be14620005bb57806316f2f1a814620005e057806318160ddd14620005f8578063197e0fcb146200060f57600080fd5b806306fdde0314620004d857806307a778831462000508578063095ea7b3146200052f5780631006e6f2146200056557600080fd5b36620004d357005b600080fd5b348015620004e557600080fd5b50620004f062000fb6565b604051620004ff91906200455a565b60405180910390f35b3480156200051557600080fd5b506200052d620005273660046200448c565b62001050565b005b3480156200053c57600080fd5b50620005546200054e366004620040fe565b6200108b565b6040519015158152602001620004ff565b3480156200057257600080fd5b506200057d601a5481565b604051908152602001620004ff565b3480156200059957600080fd5b50602154620005a89060ff1681565b60405160ff9091168152602001620004ff565b348015620005c857600080fd5b506200052d620005da3660046200448c565b620010a4565b348015620005ed57600080fd5b506200057d600b5481565b3480156200060557600080fd5b506010546200057d565b3480156200061c57600080fd5b506200052d6200062e3660046200448c565b620010d6565b3480156200064157600080fd5b506200057d601c5481565b3480156200065957600080fd5b506200057d60255481565b3480156200067157600080fd5b506200052d62000683366004620044c0565b62001108565b3480156200069657600080fd5b5062000554620006a836600462004085565b62001143565b348015620006bb57600080fd5b506200052d620006cd366004620044c0565b6200123b565b348015620006e057600080fd5b506200057d62001276565b348015620006f857600080fd5b506200057d60175481565b3480156200071057600080fd5b50620005546200072236600462004007565b6001600160a01b031660009081526028602052604090205460ff1690565b3480156200074d57600080fd5b5060095460ff166200057d565b3480156200076757600080fd5b50600954620005a89060ff1681565b3480156200078357600080fd5b506200052d62000795366004620040cb565b620012a4565b348015620007a857600080fd5b5062000554620007ba366004620040fe565b620012fc565b348015620007cd57600080fd5b50601e54620007e2906001600160a01b031681565b6040516001600160a01b039091168152602001620004ff565b3480156200080857600080fd5b506200052d6200081a36600462004007565b62001335565b3480156200082d57600080fd5b506200052d6200083f3660046200440a565b62001386565b3480156200085257600080fd5b50601d54620005a89060ff1681565b3480156200086e57600080fd5b506200052d6200088036600462004007565b62001dc0565b3480156200089357600080fd5b506200057d60195481565b348015620008ab57600080fd5b506200052d620008bd36600462004007565b62001e0f565b348015620008d057600080fd5b50601d54620007e29061010090046001600160a01b031681565b348015620008f757600080fd5b5062000554620009093660046200448c565b62001e5e565b3480156200091c57600080fd5b506200052d6200092e366004620044c0565b62001e9a565b3480156200094157600080fd5b506200057d602b5481565b3480156200095957600080fd5b506200057d60155481565b3480156200097157600080fd5b506200097c62001f13565b604051620004ff9493929190620045c4565b3480156200099b57600080fd5b506200057d620009ad36600462004007565b6001600160a01b031660009081526023602052604090205490565b348015620009d557600080fd5b506200057d620009e736600462004007565b62001f8a565b348015620009fa57600080fd5b506200052d62001fbb565b34801562000a1257600080fd5b50620007e262000a2436600462004007565b62002032565b34801562000a3757600080fd5b50601254620007e2906001600160a01b031681565b34801562000a5957600080fd5b506200057d62000a6b36600462004007565b620020f9565b34801562000a7e57600080fd5b506200057d600e5481565b34801562000a9657600080fd5b506200057d600f5481565b34801562000aae57600080fd5b506000546001600160a01b0316620007e2565b34801562000ace57600080fd5b506200057d620021f2565b34801562000ae657600080fd5b506200055462000af8366004620040cb565b62002214565b34801562000b0b57600080fd5b506200052d62000b1d3660046200412d565b62002271565b34801562000b3057600080fd5b50620004f062002319565b34801562000b4857600080fd5b506200055462000b5a36600462004007565b6001600160a01b031660009081526024602052604090205460ff1690565b34801562000b8557600080fd5b506200057d60225481565b34801562000b9d57600080fd5b50602954620007e2906001600160a01b031681565b34801562000bbf57600080fd5b50601154620007e2906001600160a01b031681565b34801562000be157600080fd5b506200052d62000bf33660046200451c565b6200232a565b34801562000c0657600080fd5b506200057d60205481565b34801562000c1e57600080fd5b506200055462000c30366004620040fe565b6200236d565b34801562000c4357600080fd5b506200055462000c55366004620040fe565b620023c0565b34801562000c6857600080fd5b506200052d62000c7a3660046200448c565b620023cf565b34801562000c8d57600080fd5b50620004f062002401565b34801562000ca557600080fd5b506200057d60185481565b34801562000cbd57600080fd5b506200052d62000ccf366004620041a7565b62002497565b34801562000ce257600080fd5b506200057d60165481565b34801562000cfa57600080fd5b506200057d60265481565b34801562000d1257600080fd5b506200052d62000d2436600462004007565b62002532565b34801562000d3757600080fd5b506200057d62000d4936600462004007565b602c6020526000908152604090205481565b34801562000d6857600080fd5b506200057d600a5481565b34801562000d8057600080fd5b506200057d600d5481565b34801562000d9857600080fd5b50620007e262000daa36600462004007565b602a602052600090815260409020546001600160a01b031681565b34801562000dd257600080fd5b50620004f062002581565b34801562000dea57600080fd5b506200057d62000dfc3660046200448c565b62002590565b34801562000e0f57600080fd5b506200055462000e2136600462004007565b6001600160a01b031660009081526005602052604090205460ff1690565b34801562000e4c57600080fd5b506200057d600c5481565b34801562000e6457600080fd5b506200057d62000e7636600462004047565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801562000eae57600080fd5b506200052d62000ec03660046200448c565b620025b2565b34801562000ed357600080fd5b506200052d62000ee536600462004007565b620025e4565b34801562000ef857600080fd5b50601354620007e2906001600160a01b031681565b34801562000f1a57600080fd5b506200052d62000f2c36600462004349565b62002632565b34801562000f3f57600080fd5b50601454620007e2906001600160a01b031681565b34801562000f6157600080fd5b506200052d62000f733660046200448c565b620026d0565b34801562000f8657600080fd5b506200052d62000f9836600462004007565b62002712565b34801562000fab57600080fd5b506200057d601b5481565b60606007805462000fc79062004920565b80601f016020809104026020016040519081016040528092919081815260200182805462000ff59062004920565b8015620010465780601f106200101a5761010080835404028352916020019162001046565b820191906000526020600020905b8154815290600101906020018083116200102857829003601f168201915b5050505050905090565b6000546001600160a01b03163314620010865760405162461bcd60e51b81526004016200107d906200458f565b60405180910390fd5b602555565b60006200109a33848462002801565b5060015b92915050565b6000546001600160a01b03163314620010d15760405162461bcd60e51b81526004016200107d906200458f565b601c55565b6000546001600160a01b03163314620011035760405162461bcd60e51b81526004016200107d906200458f565b601b55565b6000546001600160a01b03163314620011355760405162461bcd60e51b81526004016200107d906200458f565b600d92909255600e55600f55565b60006015546000148015620011675750601d5461010090046001600160a01b031633145b15620011cc57601d5460ff1660011415620011c7576000546001600160a01b03858116911614620011c75760405162461bcd60e51b81526020600482015260096024820152683737ba1037bbb732b960b91b60448201526064016200107d565b426015555b620011d98484846200292a565b6200123084336200122a8560405180606001604052806028815260200162004bb6602891396001600160a01b038a166000908152600460209081526040808320338452909152902054919062002de9565b62002801565b5060015b9392505050565b6000546001600160a01b03163314620012685760405162461bcd60e51b81526004016200107d906200458f565b600a92909255600b55600c55565b60006200129f600f5462001298600e54600d5462002e2890919063ffffffff16565b9062002e28565b905090565b6000546001600160a01b03163314620012d15760405162461bcd60e51b81526004016200107d906200458f565b6001600160a01b03919091166000908152602860205260409020805460ff1916911515919091179055565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916200109a9185906200122a908662002e28565b6000546001600160a01b03163314620013625760405162461bcd60e51b81526004016200107d906200458f565b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b60275460ff16156200139757600080fd5b6027805460ff1916600117905580516000908190819081908190620013c6908701602090810190880162004267565b94509450945094509450620013f883600081518110620013ea57620013ea620049a7565b602002602001015162002712565b600083600081518110620014105762001410620049a7565b6020026020010151905083600381518110620014305762001430620049a7565b6020026020010151601360006101000a8154816001600160a01b0302191690836001600160a01b0316021790555085600081518110620014745762001474620049a7565b6020026020010151600790805190602001906200149392919062003cde565b5085600181518110620014aa57620014aa620049a7565b602002602001015160089080519060200190620014c992919062003cde565b5084600081518110620014e057620014e0620049a7565b60209081029190910101516009805460ff191660ff90921691821790556200150a90600a620047f5565b85600181518110620015205762001520620049a7565b6020026020010151620015349190620048b1565b60108190556200155690612710906200154f90600162002e8b565b9062002f12565b6017556009546200156c9060ff16600a620047f5565b85600281518110620015825762001582620049a7565b6020026020010151620015969190620048b1565b601955600954620015ac9060ff16600a620047f5565b85600c81518110620015c257620015c2620049a7565b6020026020010151620015d69190620048b1565b601a55600954620015ec9060ff16600a620047f5565b85600381518110620016025762001602620049a7565b6020026020010151620016169190620048b1565b601855845185906002908110620016315762001631620049a7565b6020026020010151856001815181106200164f576200164f620049a7565b60200260200101511480156200169e575084600c81518110620016765762001676620049a7565b602002602001015185600181518110620016945762001694620049a7565b6020026020010151145b8015620016e4575084600381518110620016bc57620016bc620049a7565b602002602001015185600181518110620016da57620016da620049a7565b6020026020010151145b15620016fb576000196019819055601a8190556018555b84600481518110620017115762001711620049a7565b602002602001015160168190555084600581518110620017355762001735620049a7565b6020026020010151601b8190555084600681518110620017595762001759620049a7565b6020026020010151600a81905550846007815181106200177d576200177d620049a7565b6020026020010151600b8190555084600881518110620017a157620017a1620049a7565b6020026020010151600c8190555084600981518110620017c557620017c5620049a7565b6020026020010151600d8190555084600a81518110620017e957620017e9620049a7565b6020026020010151600e8190555084600b815181106200180d576200180d620049a7565b6020026020010151600f8190555083600181518110620018315762001831620049a7565b602090810291909101810151601280546001600160a01b0319166001600160a01b0392831617905560105490831660009081526003909252604090912055835184906002908110620018875762001887620049a7565b6020026020010151601d60016101000a8154816001600160a01b0302191690836001600160a01b03160217905550601d60019054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200190457600080fd5b505afa15801562001919573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200193f919062004027565b6013546040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291169063c9c6539690604401602060405180830381600087803b1580156200198c57600080fd5b505af1158015620019a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019c7919062004027565b601160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508260008151811062001a035762001a03620049a7565b6020026020010151601d60006101000a81548160ff021916908360ff1602179055508260018151811062001a3b5762001a3b620049a7565b60209081029190910181015160ff16601c556012546001600160a01b0390811660009081526005835260408082208054600160ff199182168117909255938616808452828420805486168317905530845282842080549095169091179093556010549051908152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36013546040516001600160a01b0390911690309062001af09062003d6d565b6001600160a01b03928316815291166020820152604001604051809103906000f08015801562001b24573d6000803e3d6000fd5b50601480546001600160a01b039283166001600160a01b0319909116179055601354601d54604080516101009092048416602483015260001960448084019190915281518084039091018152606490920181526020820180516001600160e01b031663095ea7b360e01b17905251919092169162001ba2916200453c565b6000604051808303816000865af19150503d806000811462001be1576040519150601f19603f3d011682016040523d82523d6000602084013e62001be6565b606091505b5050508360048151811062001bff5762001bff620049a7565b602090810291909101810151601e80546001600160a01b0319166001600160a01b03909216919091179055825162001c3e91601f919085019062003d7b565b508260028151811062001c555762001c55620049a7565b6020026020010151602160006101000a81548160ff021916908360ff16021790555060005b601f5481101562001cd457601f818154811062001c9b5762001c9b620049a7565b90600052602060002001546020600082825462001cb9919062004751565b9091555081905062001ccb816200495d565b91505062001c7a565b50306000908152602460205260408082208054600160ff1991821681179092556001600160a01b0385811685528385208054831684179055601254168452919092208054909116909117905584518590600d90811062001d385762001d38620049a7565b602002602001015160228190555084600e8151811062001d5c5762001d5c620049a7565b602002602001015160258190555084600f8151811062001d805762001d80620049a7565b60200260200101516201518062001d989190620048b1565b6026556025546001600160a01b03909116600090815260236020526040902055505050505050565b6000546001600160a01b0316331462001ded5760405162461bcd60e51b81526004016200107d906200458f565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331462001e3c5760405162461bcd60e51b81526004016200107d906200458f565b601e80546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b0316331462001e8c5760405162461bcd60e51b81526004016200107d906200458f565b50602281905560015b919050565b6000546001600160a01b0316331462001ec75760405162461bcd60e51b81526004016200107d906200458f565b60188390556019829055601a8190556010548314801562001ee9575081601054145b801562001ef7575080601054145b1562001f0e576000196019819055601a8190556018555b505050565b602154601e5460208054601f8054604080518286028101860190915281815260ff909616956001600160a01b0390951694929360609392919083018282801562001f7d57602002820191906000526020600020905b81548152602001906001019080831162001f68575b5050505050905090919293565b60006200109e62001f9b83620020f9565b6001600160a01b0384166000908152600360205260409020549062002e28565b6000546001600160a01b0316331462001fe85760405162461bcd60e51b81526004016200107d906200458f565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b601e546000906001600160a01b031615620020cb57601e54604051632cd7c20f60e01b81526001600160a01b03848116600483015290911690632cd7c20f9060240160206040518083038186803b1580156200208d57600080fd5b505afa158015620020a2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620020c8919062004027565b90505b6001600160a01b03811662001e9557506001600160a01b039081166000908152602a60205260409020541690565b60004260255411156200210e57506000919050565b6022546200211e57506000919050565b6001600160a01b03821660009081526024602052604081205460ff161580156200215857506026546025546200215690429062002f56565b105b156200109e576001600160a01b038316600090815260236020526040902054156200109e576001600160a01b038316600090815260236020526040812054620021a390429062002f56565b6022546001600160a01b038616600090815260036020526040902054919250620021ea9162015180916200154f91612710918391620021e3908862002e8b565b9062002e8b565b949350505050565b60006200129f600c5462001298600b54600a5462002e2890919063ffffffff16565b600080546001600160a01b03163314620022425760405162461bcd60e51b81526004016200107d906200458f565b506001600160a01b0382166000908152602460205260409020805482151560ff19909116179055600192915050565b6000546001600160a01b031633146200229e5760405162461bcd60e51b81526004016200107d906200458f565b60005b8181101562001f0e57600160056000858585818110620022c557620022c5620049a7565b9050602002016020810190620022dc919062004007565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558062002310816200495d565b915050620022a1565b60606008805462000fc79062004920565b6000546001600160a01b03163314620023575760405162461bcd60e51b81526004016200107d906200458f565b6021805460ff191660ff92909216919091179055565b60006200109a33846200122a8560405180606001604052806025815260200162004bde602591393360009081526004602090815260408083206001600160a01b038d168452909152902054919062002de9565b60006200109a3384846200292a565b6000546001600160a01b03163314620023fc5760405162461bcd60e51b81526004016200107d906200458f565b601755565b60088054620024109062004920565b80601f01602080910402602001604051908101604052809291908181526020018280546200243e9062004920565b80156200248f5780601f1062002463576101008083540402835291602001916200248f565b820191906000526020600020905b8154815290600101906020018083116200247157829003601f168201915b505050505081565b6000546001600160a01b03163314620024c45760405162461bcd60e51b81526004016200107d906200458f565b60005b825181101562001f0e578160286000858481518110620024eb57620024eb620049a7565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558062002529816200495d565b915050620024c7565b6000546001600160a01b031633146200255f5760405162461bcd60e51b81526004016200107d906200458f565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b60078054620024109062004920565b601f8181548110620025a157600080fd5b600091825260209091200154905081565b6000546001600160a01b03163314620025df5760405162461bcd60e51b81526004016200107d906200458f565b602b55565b6000546001600160a01b03163314620026115760405162461bcd60e51b81526004016200107d906200458f565b6001600160a01b03166000908152600560205260409020805460ff19169055565b6000546001600160a01b031633146200265f5760405162461bcd60e51b81526004016200107d906200458f565b80516200267490601f90602084019062003d7b565b506000805b601f54811015620026c957601f81815481106200269a576200269a620049a7565b906000526020600020015482620026b2919062004751565b915080620026c0816200495d565b91505062002679565b5060205550565b6000546001600160a01b03163314620026fd5760405162461bcd60e51b81526004016200107d906200458f565b6200270c8162015180620048b1565b60265550565b6000546001600160a01b031633146200273f5760405162461bcd60e51b81526004016200107d906200458f565b6001600160a01b038116620027a65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016200107d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316620028655760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016200107d565b6001600160a01b038216620028c85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016200107d565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316620029905760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016200107d565b6001600160a01b038216620029f45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016200107d565b6000811162002a585760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016200107d565b600062002a653062001f8a565b6017549091508110801590819062002a8657506001600160a01b0385163014155b801562002aa157506011546001600160a01b03868116911614155b801562002abc57506000546001600160a01b03868116911614155b801562002ad757506000546001600160a01b03858116911614155b801562002ae657506000601554115b1562002af75762002af78262002f9a565b62002b028562003209565b62002b0d8462003209565b6001600160a01b03851660009081526005602052604090205460ff1615801562002b5057506001600160a01b03841660009081526005602052604090205460ff16155b1562002dd5576020546000901562002b7f5762002b6f868686620032cb565b62002b7c868686620033f9565b90505b600062002b8b620021f2565b11801562002ba657506011546001600160a01b038781169116145b1562002c2a574260165460155462002bbf919062004751565b111562002bd15762002bd185620035ea565b60195484111562002c165760405162461bcd60e51b815260206004820152600e60248201526d151c985b9cd9995c881b1a5b5a5d60921b60448201526064016200107d565b62002c22868562003631565b935062002cd8565b600062002c3662001276565b11801562002c5157506011546001600160a01b038681169116145b1562002ca857601a5484111562002c9c5760405162461bcd60e51b815260206004820152600e60248201526d151c985b9cd9995c881b1a5b5a5d60921b60448201526064016200107d565b62002c228685620036be565b601c541562002cd857601c546001141562002cc95762002c22868562003631565b62002cd58685620036be565b93505b62002ce4848262002f56565b6001600160a01b03871660009081526028602052604090205490945060ff161562002d445760405162461bcd60e51b815260206004820152600f60248201526e54686520626f74206164647265737360881b60448201526064016200107d565b62002d4e6200372f565b6011546001600160a01b0386811691161462002dd35760185462002d7785620012988862001f8a565b111562002dd35760405162461bcd60e51b8152602060048201526024808201527f5472616e7366657220616d6f756e74206578636565647320746865206d61784860448201526330bb329760e11b60648201526084016200107d565b505b62002de28585856200380f565b5050505050565b6000818484111562002e105760405162461bcd60e51b81526004016200107d91906200455a565b50600062002e1f8486620048d3565b95945050505050565b60008062002e37838562004751565b905083811015620012345760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016200107d565b60008262002e9c575060006200109e565b600062002eaa8385620048b1565b90508262002eb9858362004795565b14620012345760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016200107d565b60006200123483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620038e9565b60006200123483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525062002de9565b600062002fc3600f5462001298600c5462001298600d54600a5462002e2890919063ffffffff16565b905080156200320557600062002ffe60026200154f846200154f62002ff6600f54600c5462002e2890919063ffffffff16565b889062002e8b565b90506200301662003010848362002f56565b6200391c565b6013546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b1580156200305b57600080fd5b505afa15801562003070573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620030969190620044a6565b90506000620030b3600f54600c5462002e2890919063ffffffff16565b1115620030f757620030f78284620030d9600f54600c5462002e2890919063ffffffff16565b620030e59085620048b1565b620030f1919062004795565b62003b53565b6013546012546040516370a0823160e01b81523060048201526001600160a01b039283169263a9059cbb92169083906370a082319060240160206040518083038186803b1580156200314857600080fd5b505afa1580156200315d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620031839190620044a6565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b158015620031ca57600080fd5b505af1158015620031df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002de29190620043ea565b5050565b6011546001600160a01b03828116911614620032c85760006200322c82620020f9565b90508015620032ab5762003241828262003c2f565b6001600160a01b03821660008181526023602090815260408083205460038352928190205481519384524292840192909252820152606081018390527f3106cc399bb281a8c4e11e35d326b4747bcc8addd60e64a7d86a80a425c8edc99060800160405180910390a25b506001600160a01b03811660009081526023602052604090204290555b50565b6001600160a01b038281166000908152602a6020526040902054161580156200330257506011546001600160a01b03848116911614155b80156200330e5750823b155b80156200331b5750600081115b80156200333057506200332e8262001f8a565b155b1562003371576001600160a01b038281166000908152602a6020908152604080832080546001600160a01b03191694881694909417909355602c9052204390555b6011546001600160a01b03848116911614806200339b57506011546001600160a01b038381169116145b1562001f0e57602b546001600160a01b0383166000908152602c6020526040902054620033c99043620048d3565b101562001f0e57506001600160a01b03166000908152602a6020526040902080546001600160a01b031916905550565b600060205460001415620034105750600062001234565b60115460009081906001600160a01b03878116911614801562003446575060215460ff166001148062003446575060215460ff16155b156200345557849150620034a1565b6011546001600160a01b03868116911614801562003486575060215460ff166002148062003486575060215460ff16155b156200349557859150620034a1565b60009250505062001234565b60005b601f548110156200356b57620034ba8362002032565b92506001600160a01b038316620034d1576200356b565b62003506601f8281548110620034eb57620034eb620049a7565b90600052602060002001548362002e2890919063ffffffff16565b91506000620035466127106200154f601f85815481106200352b576200352b620049a7565b90600052602060002001548962002e8b90919063ffffffff16565b9050620035558885836200380f565b508062003562816200495d565b915050620034a4565b506020546200357b908262002f56565b15620035c257601254602054620035c29188916001600160a01b0390911690620035bc90612710906200154f90620035b4908862002f56565b8a9062002e8b565b6200380f565b620035e06127106200154f6020548762002e8b90919063ffffffff16565b9695505050505050565b6001600160a01b03811660009081526028602052604090205460ff16620032c8576001600160a01b0381166000908152602860205260409020805460ff1916600117905550565b600080620036516127106200154f62003649620021f2565b869062002e8b565b9050620036838430620035bc6200367b6127106200154f600b548a62002e8b90919063ffffffff16565b859062002f56565b600b5415620036b257620036b28461dead620035bc6127106200154f600b548962002e8b90919063ffffffff16565b620021ea838262002f56565b600080620036d66127106200154f6200364962001276565b9050620037008430620035bc6200367b6127106200154f600e548a62002e8b90919063ffffffff16565b600e5415620036b257620036b28461dead620035bc6127106200154f600e548962002e8b90919063ffffffff16565b6000805b601b54811015620032055760295462003758906001600160a01b03166000196200476c565b60295490925062003774906001600160a01b0316600162004723565b602980546001600160a01b0319166001600160a01b0392831617905582166000908152600360205260408120805460019290620037b390849062004751565b9091555050604051600181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a38062003806816200495d565b91505062003733565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600390915291909120546200386391839062002de9565b6001600160a01b03808516600090815260036020526040808220939093559084168152205462003894908262002e28565b6001600160a01b0380841660008181526003602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906200291d9085815260200190565b600081836200390d5760405162461bcd60e51b81526004016200107d91906200455a565b50600062002e1f848662004795565b80620039255750565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106200395d576200395d620049a7565b6001600160a01b039283166020918202929092010152601354825191169082906001908110620039915762003991620049a7565b6001600160a01b039283166020918202929092010152601d54620039be9130916101009004168462002801565b601d54601454604051635c11d79560e01b81526001600160a01b03610100909304831692635c11d7959262003a02928792600092889291169042906004016200462a565b600060405180830381600087803b15801562003a1d57600080fd5b505af115801562003a32573d6000803e3d6000fd5b50506013546014546040516370a0823160e01b81526001600160a01b03918216600482018190529190921693506323b872dd925090309084906370a082319060240160206040518083038186803b15801562003a8d57600080fd5b505afa15801562003aa2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003ac89190620044a6565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401602060405180830381600087803b15801562003b1857600080fd5b505af115801562003b2d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001f0e9190620043ea565b601d5462003b7290309061010090046001600160a01b03168462002801565b601d5460135460125460405162e8e33760e81b81526001600160a01b039283166004820152306024820152604481018590526064810186905260006084820181905260a482015290821660c48201524260e4820152610100909204169063e8e337009061010401606060405180830381600087803b15801562003bf457600080fd5b505af115801562003c09573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002de29190620044ed565b6001600160a01b03821662003c875760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200107d565b60105462003c96908262002e28565b6010556001600160a01b03821660009081526003602052604090205462003cbe908262002e28565b6001600160a01b0390921660009081526003602052604090209190915550565b82805462003cec9062004920565b90600052602060002090601f01602090048101928262003d10576000855562003d5b565b82601f1062003d2b57805160ff191683800117855562003d5b565b8280016001018555821562003d5b579182015b8281111562003d5b57825182559160200191906001019062003d3e565b5062003d6992915062003db8565b5090565b6101ad8062004a0983390190565b82805482825590600052602060002090810192821562003d5b579160200282018281111562003d5b57825182559160200191906001019062003d3e565b5b8082111562003d69576000815560010162003db9565b600082601f83011262003de157600080fd5b8151602062003dfa62003df483620046d1565b6200469d565b80838252828201915082860187848660051b890101111562003e1b57600080fd5b60005b8581101562003e4757815162003e3481620049d3565b8452928401929084019060010162003e1e565b5090979650505050505050565b600082601f83011262003e6657600080fd5b8151602062003e7962003df483620046d1565b80838252828201915082860187848660051b890101111562003e9a57600080fd5b60005b8581101562003e4757815167ffffffffffffffff81111562003ebe57600080fd5b8801603f81018a1362003ed057600080fd5b85810151604062003ee562003df483620046f8565b8281528c8284860101111562003efa57600080fd5b62003f0b838a8301848701620048ed565b8752505050928401929084019060010162003e9d565b600082601f83011262003f3357600080fd5b8151602062003f4662003df483620046d1565b80838252828201915082860187848660051b890101111562003f6757600080fd5b60005b8581101562003e475781518452928401929084019060010162003f6a565b600082601f83011262003f9a57600080fd5b8151602062003fad62003df483620046d1565b80838252828201915082860187848660051b890101111562003fce57600080fd5b60005b8581101562003e4757815162003fe781620049f8565b8452928401929084019060010162003fd1565b803562001e9581620049e9565b6000602082840312156200401a57600080fd5b81356200123481620049d3565b6000602082840312156200403a57600080fd5b81516200123481620049d3565b600080604083850312156200405b57600080fd5b82356200406881620049d3565b915060208301356200407a81620049d3565b809150509250929050565b6000806000606084860312156200409b57600080fd5b8335620040a881620049d3565b92506020840135620040ba81620049d3565b929592945050506040919091013590565b60008060408385031215620040df57600080fd5b8235620040ec81620049d3565b915060208301356200407a81620049e9565b600080604083850312156200411257600080fd5b82356200411f81620049d3565b946020939093013593505050565b600080602083850312156200414157600080fd5b823567ffffffffffffffff808211156200415a57600080fd5b818501915085601f8301126200416f57600080fd5b8135818111156200417f57600080fd5b8660208260051b85010111156200419557600080fd5b60209290920196919550909350505050565b60008060408385031215620041bb57600080fd5b823567ffffffffffffffff811115620041d357600080fd5b8301601f81018513620041e557600080fd5b80356020620041f862003df483620046d1565b80838252828201915082850189848660051b88010111156200421957600080fd5b600095505b84861015620042495780356200423481620049d3565b8352600195909501949183019183016200421e565b5095506200425b905086820162003ffa565b93505050509250929050565b600080600080600060a086880312156200428057600080fd5b855167ffffffffffffffff808211156200429957600080fd5b620042a789838a0162003e54565b96506020880151915080821115620042be57600080fd5b620042cc89838a0162003f21565b95506040880151915080821115620042e357600080fd5b620042f189838a0162003dcf565b945060608801519150808211156200430857600080fd5b6200431689838a0162003f88565b935060808801519150808211156200432d57600080fd5b506200433c8882890162003f21565b9150509295509295909350565b600060208083850312156200435d57600080fd5b823567ffffffffffffffff8111156200437557600080fd5b8301601f810185136200438757600080fd5b80356200439862003df482620046d1565b80828252848201915084840188868560051b8701011115620043b957600080fd5b600094505b83851015620043de578035835260019490940193918501918501620043be565b50979650505050505050565b600060208284031215620043fd57600080fd5b81516200123481620049e9565b6000602082840312156200441d57600080fd5b813567ffffffffffffffff8111156200443557600080fd5b8201601f810184136200444757600080fd5b80356200445862003df482620046f8565b8181528560208385010111156200446e57600080fd5b81602084016020830137600091810160200191909152949350505050565b6000602082840312156200449f57600080fd5b5035919050565b600060208284031215620044b957600080fd5b5051919050565b600080600060608486031215620044d657600080fd5b505081359360208301359350604090920135919050565b6000806000606084860312156200450357600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156200452f57600080fd5b81356200123481620049f8565b6000825162004550818460208701620048ed565b9190910192915050565b60208152600082518060208401526200457b816040850160208701620048ed565b601f01601f19169190910160400192915050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060808201868352602060018060a01b038716818501528560408501526080606085015281855180845260a086019150828701935060005b818110156200461b57845183529383019391830191600101620045fd565b50909998505050505050505050565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156200467c5784516001600160a01b03168352938301939183019160010162004655565b50506001600160a01b03969096166060850152505050608001529392505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715620046c957620046c9620049bd565b604052919050565b600067ffffffffffffffff821115620046ee57620046ee620049bd565b5060051b60200190565b600067ffffffffffffffff821115620047155762004715620049bd565b50601f01601f191660200190565b60006001600160a01b038281168482168083038211156200474857620047486200497b565b01949350505050565b600082198211156200476757620047676200497b565b500190565b60006001600160a01b038381168062004789576200478962004991565b92169190910492915050565b600082620047a757620047a762004991565b500490565b600181815b80851115620047ed578160001904821115620047d157620047d16200497b565b80851615620047df57918102915b93841c9390800290620047b1565b509250929050565b60006200123483836000826200480e575060016200109e565b816200481d575060006200109e565b8160018114620048365760028114620048415762004861565b60019150506200109e565b60ff8411156200485557620048556200497b565b50506001821b6200109e565b5060208310610133831016604e8410600b841016171562004886575081810a6200109e565b620048928383620047ac565b8060001904821115620048a957620048a96200497b565b029392505050565b6000816000190483118215151615620048ce57620048ce6200497b565b500290565b600082821015620048e857620048e86200497b565b500390565b60005b838110156200490a578181015183820152602001620048f0565b838111156200491a576000848401525b50505050565b600181811c908216806200493557607f821691505b602082108114156200495757634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156200497457620049746200497b565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114620032c857600080fd5b8015158114620032c857600080fd5b60ff81168114620032c857600080fdfe608060405234801561001057600080fd5b506040516101ad3803806101ad83398101604081905261002f916100f2565b604080516001600160a01b03838116602483015260001960448084019190915283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291519184169161008a9190610125565b6000604051808303816000865af19150503d80600081146100c7576040519150601f19603f3d011682016040523d82523d6000602084013e6100cc565b606091505b5050505050610160565b80516001600160a01b03811681146100ed57600080fd5b919050565b6000806040838503121561010557600080fd5b61010e836100d6565b915061011c602084016100d6565b90509250929050565b6000825160005b81811015610146576020818601810151858301520161012c565b81811115610155576000828501525b509190910192915050565b603f8061016e6000396000f3fe6080604052600080fdfea264697066735822122098cabe15c5a30b0ef83446b856dcb211b1d954ee865c82245febb85e5e0d418364736f6c6343000806003345524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122059ef6cf8101b3ca34a3768f6151ebf9924cd1f473036d0bf3f5c2742f499bfa564736f6c63430008060033
Deployed Bytecode Sourcemap
8396:20983:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12709:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27301:99;;;;;;;;;;-1:-1:-1;27301:99:0;;;;;:::i;:::-;;:::i;:::-;;13639:191;;;;;;;;;;-1:-1:-1;13639:191:0;;;;;:::i;:::-;;:::i;:::-;;;14042:14:1;;14035:22;14017:41;;14005:2;13990:18;13639:191:0;13972:92:1;9368:26:0;;;;;;;;;;;;;;;;;;;14762:25:1;;;14750:2;14735:18;9368:26:0;14717:76:1;9640:22:0;;;;;;;;;;-1:-1:-1;9640:22:0;;;;;;;;;;;23351:4:1;23339:17;;;23321:36;;23309:2;23294:18;9640:22:0;23276:87:1;23073:86:0;;;;;;;;;;-1:-1:-1;23073:86:0;;;;;:::i;:::-;;:::i;8831:26::-;;;;;;;;;;;;;;;;12988:95;;;;;;;;;;-1:-1:-1;13068:7:0;;12988:95;;23842:86;;;;;;;;;;-1:-1:-1;23842:86:0;;;;;:::i;:::-;;:::i;9431:23::-;;;;;;;;;;;;;;;;9796:28;;;;;;;;;;;;;;;;16050:242;;;;;;;;;;-1:-1:-1;16050:242:0;;;;;:::i;:::-;;:::i;13838:665::-;;;;;;;;;;-1:-1:-1;13838:665:0;;;;;:::i;:::-;;:::i;15810:232::-;;;;;;;;;;-1:-1:-1;15810:232:0;;;;;:::i;:::-;;:::i;23554:138::-;;;;;;;;;;;;;:::i;9264:34::-;;;;;;;;;;;;;;;;22115:101;;;;;;;;;;-1:-1:-1;22115:101:0;;;;;:::i;:::-;-1:-1:-1;;;;;22193:15:0;22169:4;22193:15;;;:6;:15;;;;;;;;;22115:101;12895:85;;;;;;;;;;-1:-1:-1;12963:9:0;;;;12895:85;;8762:22;;;;;;;;;;-1:-1:-1;8762:22:0;;;;;;;;21811:104;;;;;;;;;;-1:-1:-1;21811:104:0;;;;;:::i;:::-;;:::i;14511:296::-;;;;;;;;;;-1:-1:-1;14511:296:0;;;;;:::i;:::-;;:::i;9547:19::-;;;;;;;;;;-1:-1:-1;9547:19:0;;;;-1:-1:-1;;;;;9547:19:0;;;;;;-1:-1:-1;;;;;12100:32:1;;;12082:51;;12070:2;12055:18;9547:19:0;12037:102:1;15356:111:0;;;;;;;;;;-1:-1:-1;15356:111:0;;;;;:::i;:::-;;:::i;9913:2786::-;;;;;;;;;;-1:-1:-1;9913:2786:0;;;;;:::i;:::-;;:::i;9461:29::-;;;;;;;;;;-1:-1:-1;9461:29:0;;;;;;;;22556:95;;;;;;;;;;-1:-1:-1;22556:95:0;;;;;:::i;:::-;;:::i;9336:25::-;;;;;;;;;;;;;;;;27924:82;;;;;;;;;;-1:-1:-1;27924:82:0;;;;;:::i;:::-;;:::i;9497:43::-;;;;;;;;;;-1:-1:-1;9497:43:0;;;;;;;-1:-1:-1;;;;;9497:43:0;;;27408:146;;;;;;;;;;-1:-1:-1;27408:146:0;;;;;:::i;:::-;;:::i;22659:401::-;;;;;;;;;;-1:-1:-1;22659:401:0;;;;;:::i;:::-;;:::i;28939:28::-;;;;;;;;;;;;;;;;9179:32;;;;;;;;;;;;;;;;27664:252;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;27050:120::-;;;;;;;;;;-1:-1:-1;27050:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;27140:22:0;27113:7;27140:22;;;:13;:22;;;;;;;27050:120;13091:143;;;;;;;;;;-1:-1:-1;13091:143:0;;;;;:::i;:::-;;:::i;3359:148::-;;;;;;;;;;;;;:::i;29021:250::-;;;;;;;;;;-1:-1:-1;29021:250:0;;;;;:::i;:::-;;:::i;9086:26::-;;;;;;;;;;-1:-1:-1;9086:26:0;;;;-1:-1:-1;;;;;9086:26:0;;;25677:573;;;;;;;;;;-1:-1:-1;25677:573:0;;;;;:::i;:::-;;:::i;8944:27::-;;;;;;;;;;;;;;;;8979:32;;;;;;;;;;;;;;;;3136:79;;;;;;;;;;-1:-1:-1;3174:7:0;3201:6;-1:-1:-1;;;;;3201:6:0;3136:79;;23700:134;;;;;;;;;;;;;:::i;25510:159::-;;;;;;;;;;-1:-1:-1;25510:159:0;;;;;:::i;:::-;;:::i;15593:205::-;;;;;;;;;;-1:-1:-1;15593:205:0;;;;;:::i;:::-;;:::i;12800:87::-;;;;;;;;;;;;;:::i;27178:115::-;;;;;;;;;;-1:-1:-1;27178:115:0;;;;;:::i;:::-;-1:-1:-1;;;;;27264:21:0;27240:4;27264:21;;;:12;:21;;;;;;;;;27178:115;9669:27;;;;;;;;;;;;;;;;25158;;;;;;;;;;-1:-1:-1;25158:27:0;;;;-1:-1:-1;;;;;25158:27:0;;;9050:29;;;;;;;;;;-1:-1:-1;9050:29:0;;;;-1:-1:-1;;;;;9050:29:0;;;23449:89;;;;;;;;;;-1:-1:-1;23449:89:0;;;;;:::i;:::-;;:::i;9606:26::-;;;;;;;;;;;;;;;;14815:396;;;;;;;;;;-1:-1:-1;14815:396:0;;;;;:::i;:::-;;:::i;13242:197::-;;;;;;;;;;-1:-1:-1;13242:197:0;;;;;:::i;:::-;;:::i;22438:110::-;;;;;;;;;;-1:-1:-1;22438:110:0;;;;;:::i;:::-;;:::i;8733:21::-;;;;;;;;;;;;;:::i;9306:23::-;;;;;;;;;;;;;;;;21923:184;;;;;;;;;;-1:-1:-1;21923:184:0;;;;;:::i;:::-;;:::i;9218:38::-;;;;;;;;;;;;;;;;9831:22;;;;;;;;;;;;;;;;22336:90;;;;;;;;;;-1:-1:-1;22336:90:0;;;;;:::i;:::-;;:::i;28974:40::-;;;;;;;;;;-1:-1:-1;28974:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;8792:31;;;;;;;;;;;;;;;;8904:32;;;;;;;;;;;;;;;;28889:43;;;;;;;;;;-1:-1:-1;28889:43:0;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;28889:43:0;;;8706:19;;;;;;;;;;;;;:::i;9573:26::-;;;;;;;;;;-1:-1:-1;9573:26:0;;;;;:::i;:::-;;:::i;15225:125::-;;;;;;;;;;-1:-1:-1;15225:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;15315:27:0;15291:4;15315:27;;;:18;:27;;;;;;;;;15225:125;8865:31;;;;;;;;;;;;;;;;13447:184;;;;;;;;;;-1:-1:-1;13447:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;13596:18:0;;;13564:7;13596:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;13447:184;29279:95;;;;;;;;;;-1:-1:-1;29279:95:0;;;;;:::i;:::-;;:::i;15475:110::-;;;;;;;;;;-1:-1:-1;15475:110:0;;;;;:::i;:::-;;:::i;9120:21::-;;;;;;;;;;-1:-1:-1;9120:21:0;;;;-1:-1:-1;;;;;9120:21:0;;;23167:274;;;;;;;;;;-1:-1:-1;23167:274:0;;;;;:::i;:::-;;:::i;9149:22::-;;;;;;;;;;-1:-1:-1;9149:22:0;;;;-1:-1:-1;;;;;9149:22:0;;;27562:94;;;;;;;;;;-1:-1:-1;27562:94:0;;;;;:::i;:::-;;:::i;3515:244::-;;;;;;;;;;-1:-1:-1;3515:244:0;;;;;:::i;:::-;;:::i;9401:23::-;;;;;;;;;;;;;;;;12709:83;12746:13;12779:5;12772:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12709:83;:::o;27301:99::-;3270:6;;-1:-1:-1;;;;;3270:6:0;3280:10;3270:20;3262:65;;;;-1:-1:-1;;;3262:65:0;;;;;;;:::i;:::-;;;;;;;;;27371:13:::1;:21:::0;27301:99::o;13639:191::-;13741:4;13763:37;13772:10;13784:7;13793:6;13763:8;:37::i;:::-;-1:-1:-1;13818:4:0;13639:191;;;;;:::o;23073:86::-;3270:6;;-1:-1:-1;;;;;3270:6:0;3280:10;3270:20;3262:65;;;;-1:-1:-1;;;3262:65:0;;;;;;;:::i;:::-;23135:8:::1;:16:::0;23073:86::o;23842:::-;3270:6;;-1:-1:-1;;;;;3270:6:0;3280:10;3270:20;3262:65;;;;-1:-1:-1;;;3262:65:0;;;;;;;:::i;:::-;23904:8:::1;:16:::0;23842:86::o;16050:242::-;3270:6;;-1:-1:-1;;;;;3270:6:0;3280:10;3270:20;3262:65;;;;-1:-1:-1;;;3262:65:0;;;;;;;:::i;:::-;16162:17:::1;:37:::0;;;;16210:12:::1;:27:::0;16248:17:::1;:36:::0;16050:242::o;13838:665::-;13970:4;13990:17;;14011:1;13990:22;:65;;;;-1:-1:-1;14038:16:0;;;;;-1:-1:-1;;;;;14038:16:0;14016:10;:39;13990:65;13987:212;;;14076:16;;;;;:21;14073:66;;;3174:7;3201:6;-1:-1:-1;;;;;14108:16:0;;;3201:6;;14108:16;14099:38;;;;-1:-1:-1;;;14099:38:0;;20034:2:1;14099:38:0;;;20016:21:1;20073:1;20053:18;;;20046:29;-1:-1:-1;;;20091:18:1;;;20084:39;20140:18;;14099:38:0;20006:158:1;14099:38:0;14172:15;14153:17;:34;13987:212;14210:36;14220:6;14228:9;14239:6;14210:9;:36::i;:::-;14257:216;14280:6;14301:10;14326:136;14380:6;14326:136;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14326:19:0;;;;;;:11;:19;;;;;;;;14346:10;14326:31;;;;;;;;;:136;:35;:136::i;:::-;14257:8;:216::i;:::-;-1:-1:-1;14491:4:0;13838:665;;;;;;:::o;15810:232::-;3270:6;;-1:-1:-1;;;;;3270:6:0;3280:10;3270:20;3262:65;;;;-1:-1:-1;;;3262:65:0;;;;;;;:::i;:::-;15918:16:::1;:35:::0;;;;15964:11:::1;:25:::0;16000:16:::1;:34:::0;15810:232::o;23554:138::-;23597:9;23626:58;23666:17;;23626:35;23648:12;;23626:17;;:21;;:35;;;;:::i;:::-;:39;;:58::i;:::-;23619:65;;23554:138;:::o;21811:104::-;3270:6;;-1:-1:-1;;;;;3270:6:0;3280:10;3270:20;3262:65;;;;-1:-1:-1;;;3262:65:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21884:15:0;;;::::1;;::::0;;;:6:::1;:15;::::0;;;;:23;;-1:-1:-1;;21884:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21811:104::o;14511:296::-;14671:10;14626:4;14718:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;14718:32:0;;;;;;;;;;14626:4;;14648:129;;14696:7;;14718:48;;14755:10;14718:36;:48::i;15356:111::-;3270:6;;-1:-1:-1;;;;;3270:6:0;3280:10;3270:20;3262:65;;;;-1:-1:-1;;;3262:65:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15425:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;15425:34:0::1;15455:4;15425:34;::::0;;15356:111::o;9913:2786::-;9982:5;;;;9981:6;9973:15;;;;;;9999:5;:12;;-1:-1:-1;;9999:12:0;10007:4;9999:12;;;10156:71;;9999:5;;;;;;;;;;10156:71;;;;;;;;;;;;:::i;:::-;10022:205;;;;;;;;;;10238:27;10256:5;10262:1;10256:8;;;;;;;;:::i;:::-;;;;;;;10238:17;:27::i;:::-;10280:13;10296:5;10302:1;10296:8;;;;;;;;:::i;:::-;;;;;;;10280:24;;10328:5;10334:1;10328:8;;;;;;;;:::i;:::-;;;;;;;10319:6;;:17;;;;;-1:-1:-1;;;;;10319:17:0;;;;;-1:-1:-1;;;;;10319:17:0;;;;;;10359:7;10367:1;10359:10;;;;;;;;:::i;:::-;;;;;;;10351:5;:18;;;;;;;;;;;;:::i;:::-;;10394:7;10402:1;10394:10;;;;;;;;:::i;:::-;;;;;;;10384:7;:20;;;;;;;;;;;;:::i;:::-;;10436:5;10442:1;10436:8;;;;;;;;:::i;:::-;;;;;;;;;;;10419:9;:26;;-1:-1:-1;;10419:26:0;;;;;;;;;;10481:22;;:2;:22;:::i;:::-;10470:5;10476:1;10470:8;;;;;;;;:::i;:::-;;;;;;;:34;;;;:::i;:::-;10460:7;:44;;;10541:25;;10560:5;;10541:14;;10553:1;10541:11;:14::i;:::-;:18;;:25::i;:::-;10519:19;:47;10618:9;;10606:22;;10618:9;;10606:2;:22;:::i;:::-;10595:5;10601:1;10595:8;;;;;;;;:::i;:::-;;;;;;;:34;;;;:::i;:::-;10581:10;:48;10683:9;;10671:22;;10683:9;;10671:2;:22;:::i;:::-;10659:5;10665:2;10659:9;;;;;;;;:::i;:::-;;;;;;;:35;;;;:::i;:::-;10644:11;:50;10745:9;;10733:22;;10745:9;;10733:2;:22;:::i;:::-;10721:5;10727:1;10721:8;;;;;;;;:::i;:::-;;;;;;;:35;;;;:::i;:::-;10709:8;:47;10785:8;;:5;;10791:1;;10785:8;;;;;;:::i;:::-;;;;;;;10774:5;10780:1;10774:8;;;;;;;;:::i;:::-;;;;;;;:19;:41;;;;;10806:5;10812:2;10806:9;;;;;;;;:::i;:::-;;;;;;;10795:5;10801:1;10795:8;;;;;;;;:::i;:::-;;;;;;;:20;10774:41;:61;;;;;10827:5;10833:1;10827:8;;;;;;;;:::i;:::-;;;;;;;10817:5;10823:1;10817:8;;;;;;;;:::i;:::-;;;;;;;:18;10774:61;10771:212;;;-1:-1:-1;;10855:10:0;:25;;;10899:11;:26;;;10944:8;:23;10771:212;11023:5;11029:1;11023:8;;;;;;;;:::i;:::-;;;;;;;10997:23;:34;;;;11057:5;11063:1;11057:8;;;;;;;;:::i;:::-;;;;;;;11046;:19;;;;11098:5;11104:1;11098:8;;;;;;;;:::i;:::-;;;;;;;11080:16;:26;;;;11134:5;11140:1;11134:8;;;;;;;;:::i;:::-;;;;;;;11121:11;:21;;;;11175:5;11181:1;11175:8;;;;;;;;:::i;:::-;;;;;;;11157:16;:26;;;;11217:5;11223:1;11217:8;;;;;;;;:::i;:::-;;;;;;;11198:17;:27;;;;11254:5;11260:2;11254:9;;;;;;;;:::i;:::-;;;;;;;11240:12;:23;;;;11297:5;11303:2;11297:9;;;;;;;;:::i;:::-;;;;;;;11278:17;:28;;;;11336:5;11342:1;11336:8;;;;;;;;:::i;:::-;;;;;;;;;;;;11321:11;:23;;-1:-1:-1;;;;;;11321:23:0;-1:-1:-1;;;;;11321:23:0;;;;;;11376:7;;11359:14;;;-1:-1:-1;11359:14:0;;;:7;:14;;;;;;;:24;11454:8;;;;11460:1;;11454:8;;;;;;:::i;:::-;;;;;;;11398:16;;:79;;;;;-1:-1:-1;;;;;11398:79:0;;;;;-1:-1:-1;;;;;11398:79:0;;;;;;11584:16;;;;;;;;;-1:-1:-1;;;;;11584:16:0;-1:-1:-1;;;;;11584:24:0;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11655:6;;11566:96;;-1:-1:-1;;;11566:96:0;;11649:4;11566:96;;;12356:34:1;-1:-1:-1;;;;;11655:6:0;;;12406:18:1;;;12399:43;11566:74:0;;;;;12291:18:1;;11566:96:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11549:14;;:113;;;;;-1:-1:-1;;;;;11549:113:0;;;;;-1:-1:-1;;;;;11549:113:0;;;;;;11698:5;11704:1;11698:8;;;;;;;;:::i;:::-;;;;;;;11679:16;;:27;;;;;;;;;;;;;;;;;;11732:5;11738:1;11732:8;;;;;;;;:::i;:::-;;;;;;;;;;;;11721:19;;:8;:19;11830:11;;-1:-1:-1;;;;;11830:11:0;;;11811:31;;;;:18;:31;;;;;;:38;;11845:4;-1:-1:-1;;11811:38:0;;;;;;;;11864:25;;;;;;;;;:32;;;;;;;;11939:4;11912:33;;;;;:40;;;;;;;;;;;12001:7;;11972:37;;14762:25:1;;;11864::0;;11811:31;;11972:37;;14735:18:1;11972:37:0;;;;;;;12055:6;;12044:32;;-1:-1:-1;;;;;12055:6:0;;;;12070:4;;12044:32;;;:::i;:::-;-1:-1:-1;;;;;12374:15:1;;;12356:34;;12426:15;;12421:2;12406:18;;12399:43;12306:2;12291:18;12044:32:0;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12024:7:0;:53;;-1:-1:-1;;;;;12024:53:0;;;-1:-1:-1;;;;;;12024:53:0;;;;;;12092:6;;12139:16;;12104:65;;;12024:53;12139:16;;;;;12104:65;;;13772:51:1;-1:-1:-1;;13839:18:1;;;;13832:34;;;;12104:65:0;;;;;;;;;;13745:18:1;;;;12104:65:0;;;;;;;-1:-1:-1;;;;;12104:65:0;-1:-1:-1;;;12104:65:0;;;12092:78;:6;;;;;:78;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12193:5;12199:1;12193:8;;;;;;;;:::i;:::-;;;;;;;;;;;;12186:4;:15;;-1:-1:-1;;;;;;12186:15:0;-1:-1:-1;;;;;12186:15:0;;;;;;;;;12216:20;;;;:9;;:20;;;;;:::i;:::-;;12263:5;12269:1;12263:8;;;;;;;;:::i;:::-;;;;;;;12251:9;;:20;;;;;;;;;;;;;;;;;;12290:6;12286:99;12300:9;:16;12298:18;;12286:99;;;12357:9;12367:1;12357:12;;;;;;;;:::i;:::-;;;;;;;;;12340:11;;:29;;;;;;;:::i;:::-;;;;-1:-1:-1;12317:3:0;;-1:-1:-1;12317:3:0;;;:::i;:::-;;;;12286:99;;;-1:-1:-1;12420:4:0;12399:27;;;;:12;:27;;;;;;:34;;12429:4;-1:-1:-1;;12399:34:0;;;;;;;;-1:-1:-1;;;;;12448:19:0;;;;;;;;:26;;;;;;;;12502:11;;;12489:25;;;;;;:32;;;;;;;;;;12551:9;;;;12557:2;;12551:9;;;;;;:::i;:::-;;;;;;;12536:12;:24;;;;12591:5;12597:2;12591:9;;;;;;;;:::i;:::-;;;;;;;12575:13;:25;;;;12625:5;12631:2;12625:9;;;;;;;;:::i;:::-;;;;;;;12635:5;12625:15;;;;:::i;:::-;12615:7;:25;12678:13;;-1:-1:-1;;;;;12655:20:0;;;;;;;:13;:20;;;;;:36;-1:-1:-1;;;;;;9913:2786:0:o;22556:95::-;3270:6;;-1:-1:-1;;;;;3270:6:0;3280:10;3270:20;3262:65;;;;-1:-1:-1;;;3262:65:0;;;;;;;:::i;:::-;22624:11:::1;:19:::0;;-1:-1:-1;;;;;;22624:19:0::1;-1:-1:-1::0;;;;;22624:19:0;;;::::1;::::0;;;::::1;::::0;;22556:95::o;27924:82::-;3270:6;;-1:-1:-1;;;;;3270:6:0;3280:10;3270:20;3262:65;;;;-1:-1:-1;;;3262:65:0;;;;;;;:::i;:::-;27987:4:::1;:11:::0;;-1:-1:-1;;;;;;27987:11:0::1;-1:-1:-1::0;;;;;27987:11:0;;;::::1;::::0;;;::::1;::::0;;27924:82::o;27408:146::-;27480:4;3270:6;;-1:-1:-1;;;;;3270:6:0;3280:10;3270:20;3262:65;;;;-1:-1:-1;;;3262:65:0;;;;;;;:::i;:::-;-1:-1:-1;27497:12:0::1;:27:::0;;;27542:4:::1;3338:1;27408:146:::0;;;:::o;22659:401::-;3270:6;;-1:-1:-1;;;;;3270:6:0;3280:10;3270:20;3262:65;;;;-1:-1:-1;;;3262:65:0;;;;;;;:::i;:::-;22759:8:::1;:18:::0;;;22790:10:::1;:22:::0;;;22824:11:::1;:24:::0;;;22862:7:::1;::::0;:17;::::1;:38:::0;::::1;;;;22891:9;22881:7;;:19;22862:38;:59;;;;;22911:10;22902:7;;:19;22862:59;22859:194;;;-1:-1:-1::0;;22937:10:0::1;:25:::0;;;22977:11:::1;:26:::0;;;23018:8:::1;:23:::0;22859:194:::1;22659:401:::0;;;:::o;27664:252::-;27812:9;;27838:4;;27866:11;;;27899:9;27888:20;;;;;;;;;;;;;;;;;;27812:9;;;;;-1:-1:-1;;;;;27838:4:0;;;;27866:11;;27763:25;;27888:20;27899:9;27888:20;;;27899:9;27888:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27664:252;;;;:::o;13091:143::-;13157:7;13184:42;13205:20;13217:7;13205:11;:20::i;:::-;-1:-1:-1;;;;;13184:16:0;;;;;;:7;:16;;;;;;;:20;:42::i;3359:148::-;3270:6;;-1:-1:-1;;;;;3270:6:0;3280:10;3270:20;3262:65;;;;-1:-1:-1;;;3262:65:0;;;;;;;:::i;:::-;3466:1:::1;3450:6:::0;;3429:40:::1;::::0;-1:-1:-1;;;;;3450:6:0;;::::1;::::0;3429:40:::1;::::0;3466:1;;3429:40:::1;3497:1;3480:19:::0;;-1:-1:-1;;;;;;3480:19:0::1;::::0;;3359:148::o;29021:250::-;29102:4;;29075:11;;-1:-1:-1;;;;;29102:4:0;:16;29099:86;;29144:4;;29140:33;;-1:-1:-1;;;29140:33:0;;-1:-1:-1;;;;;12100:32:1;;;29140:33:0;;;12082:51:1;29144:4:0;;;;29140:24;;12055:18:1;;29140:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29134:39;;29099:86;-1:-1:-1;;;;;29198:15:0;;29195:69;;-1:-1:-1;;;;;;29235:17:0;;;;;;;:8;:17;;;;;;;;29021:250::o;25677:573::-;25736:7;25773:15;25759:13;;:29;25756:42;;;-1:-1:-1;25797:1:0;;25677:573;-1:-1:-1;25677:573:0:o;25756:42::-;25813:12;;25810:28;;-1:-1:-1;25837:1:0;;25677:573;-1:-1:-1;25677:573:0:o;25810:28::-;-1:-1:-1;;;;;27264:21:0;;25849:16;27264:21;;;:12;:21;;;;;;;;25880:32;;;:80;;-1:-1:-1;25953:7:0;;25936:13;;25916:34;;:15;;:19;:34::i;:::-;:44;25880:80;25876:341;;;-1:-1:-1;;;;;25981:22:0;;26006:1;25981:22;;;:13;:22;;;;;;:26;25977:229;;-1:-1:-1;;;;;26066:22:0;;26027:16;26066:22;;;:13;:22;;;;;;26046:43;;:15;;:19;:43::i;:::-;26155:12;;-1:-1:-1;;;;;26120:16:0;;;;;;:7;:16;;;;;;26027:62;;-1:-1:-1;26120:70:0;;26184:5;;26120:59;;26173:5;;26120:59;;:30;;26027:62;26120:20;:30::i;:::-;:34;;:48::i;:70::-;26108:82;26234:8;-1:-1:-1;;;;25677:573:0:o;23700:134::-;23742:9;23771:55;23809:16;;23771:33;23792:11;;23771:16;;:20;;:33;;;;:::i;25510:159::-;25591:4;3270:6;;-1:-1:-1;;;;;3270:6:0;3280:10;3270:20;3262:65;;;;-1:-1:-1;;;3262:65:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;;25608:21:0;::::1;;::::0;;;:12:::1;:21;::::0;;;;:31;;;::::1;;-1:-1:-1::0;;25608:31:0;;::::1;;::::0;;;25510:159;;;;:::o;15593:205::-;3270:6;;-1:-1:-1;;;;;3270:6:0;3280:10;3270:20;3262:65;;;;-1:-1:-1;;;3262:65:0;;;;;;;:::i;:::-;15685:9:::1;15680:111;15700:19:::0;;::::1;15680:111;;;15775:4;15741:18;:31;15760:8;;15769:1;15760:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15741:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;15741:31:0;:38;;-1:-1:-1;;15741:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15721:3;::::1;::::0;::::1;:::i;:::-;;;;15680:111;;12800:87:::0;12839:13;12872:7;12865:14;;;;;:::i;23449:89::-;3270:6;;-1:-1:-1;;;;;3270:6:0;3280:10;3270:20;3262:65;;;;-1:-1:-1;;;3262:65:0;;;;;;;:::i;:::-;23513:9:::1;:17:::0;;-1:-1:-1;;23513:17:0::1;;::::0;;;::::1;::::0;;;::::1;::::0;;23449:89::o;14815:396::-;14935:4;14957:224;14980:10;15005:7;15027:143;15082:15;15027:143;;;;;;;;;;;;;;;;;15039:10;15027:23;;;;:11;:23;;;;;;;;-1:-1:-1;;;;;15027:32:0;;;;;;;;;;;:143;:36;:143::i;13242:197::-;13347:4;13369:40;13379:10;13391:9;13402:6;13369:9;:40::i;22438:110::-;3270:6;;-1:-1:-1;;;;;3270:6:0;3280:10;3270:20;3262:65;;;;-1:-1:-1;;;3262:65:0;;;;;;;:::i;:::-;22513:19:::1;:27:::0;22438:110::o;8733:21::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;21923:184::-;3270:6;;-1:-1:-1;;;;;3270:6:0;3280:10;3270:20;3262:65;;;;-1:-1:-1;;;3262:65:0;;;;;;;:::i;:::-;22015:6:::1;22011:89;22024:8;:15;22022:1;:17;22011:89;;;22083:5;22061:6;:19;22068:8;22077:1;22068:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;22061:19:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;22061:19:0;:27;;-1:-1:-1;;22061:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22040:3;::::1;::::0;::::1;:::i;:::-;;;;22011:89;;22336:90:::0;3270:6;;-1:-1:-1;;;;;3270:6:0;3280:10;3270:20;3262:65;;;;-1:-1:-1;;;3262:65:0;;;;;;;:::i;:::-;22400:7:::1;:18:::0;;-1:-1:-1;;;;;;22400:18:0::1;-1:-1:-1::0;;;;;22400:18:0;;;::::1;::::0;;;::::1;::::0;;22336:90::o;8706:19::-;;;;;;;:::i;9573:26::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9573:26:0;:::o;29279:95::-;3270:6;;-1:-1:-1;;;;;3270:6:0;3280:10;3270:20;3262:65;;;;-1:-1:-1;;;3262:65:0;;;;;;;:::i;:::-;29344:14:::1;:22:::0;29279:95::o;15475:110::-;3270:6;;-1:-1:-1;;;;;3270:6:0;3280:10;3270:20;3262:65;;;;-1:-1:-1;;;3262:65:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15542:27:0::1;15572:5;15542:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;15542:35:0::1;::::0;;15475:110::o;23167:274::-;3270:6;;-1:-1:-1;;;;;3270:6:0;3280:10;3270:20;3262:65;;;;-1:-1:-1;;;3262:65:0;;;;;;;:::i;:::-;23249:20;;::::1;::::0;:9:::1;::::0;:20:::1;::::0;::::1;::::0;::::1;:::i;:::-;;23280:18;23313:6:::0;23309:90:::1;23323:9;:16:::0;23321:18;::::1;23309:90;;;23375:9;23385:1;23375:12;;;;;;;;:::i;:::-;;;;;;;;;23359:28;;;;;:::i;:::-;::::0;-1:-1:-1;23340:3:0;::::1;::::0;::::1;:::i;:::-;;;;23309:90;;;-1:-1:-1::0;23409:11:0::1;:24:::0;-1:-1:-1;23167:274:0:o;27562:94::-;3270:6;;-1:-1:-1;;;;;3270:6:0;3280:10;3270:20;3262:65;;;;-1:-1:-1;;;3262:65:0;;;;;;;:::i;:::-;27636:12:::1;:6:::0;27643:5:::1;27636:12;:::i;:::-;27626:7;:22:::0;-1:-1:-1;27562:94:0:o;3515:244::-;3270:6;;-1:-1:-1;;;;;3270:6:0;3280:10;3270:20;3262:65;;;;-1:-1:-1;;;3262:65:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3604:22:0;::::1;3596:73;;;::::0;-1:-1:-1;;;3596:73:0;;15792:2:1;3596:73:0::1;::::0;::::1;15774:21:1::0;15831:2;15811:18;;;15804:30;15870:34;15850:18;;;15843:62;-1:-1:-1;;;15921:18:1;;;15914:36;15967:19;;3596:73:0::1;15764:228:1::0;3596:73:0::1;3706:6;::::0;;3685:38:::1;::::0;-1:-1:-1;;;;;3685:38:0;;::::1;::::0;3706:6;::::1;::::0;3685:38:::1;::::0;::::1;3734:6;:17:::0;;-1:-1:-1;;;;;;3734:17:0::1;-1:-1:-1::0;;;;;3734:17:0;;;::::1;::::0;;;::::1;::::0;;3515:244::o;16395:369::-;-1:-1:-1;;;;;16522:19:0;;16514:68;;;;-1:-1:-1;;;16514:68:0;;19629:2:1;16514:68:0;;;19611:21:1;19668:2;19648:18;;;19641:30;19707:34;19687:18;;;19680:62;-1:-1:-1;;;19758:18:1;;;19751:34;19802:19;;16514:68:0;19601:226:1;16514:68:0;-1:-1:-1;;;;;16601:21:0;;16593:68;;;;-1:-1:-1;;;16593:68:0;;16199:2:1;16593:68:0;;;16181:21:1;16238:2;16218:18;;;16211:30;16277:34;16257:18;;;16250:62;-1:-1:-1;;;16328:18:1;;;16321:32;16370:19;;16593:68:0;16171:224:1;16593:68:0;-1:-1:-1;;;;;16672:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16724:32;;14762:25:1;;;16724:32:0;;14735:18:1;16724:32:0;;;;;;;;16395:369;;;:::o;16772:1976::-;-1:-1:-1;;;;;16894:18:0;;16886:68;;;;-1:-1:-1;;;16886:68:0;;19223:2:1;16886:68:0;;;19205:21:1;19262:2;19242:18;;;19235:30;19301:34;19281:18;;;19274:62;-1:-1:-1;;;19352:18:1;;;19345:35;19397:19;;16886:68:0;19195:227:1;16886:68:0;-1:-1:-1;;;;;16973:16:0;;16965:64;;;;-1:-1:-1;;;16965:64:0;;15388:2:1;16965:64:0;;;15370:21:1;15427:2;15407:18;;;15400:30;15466:34;15446:18;;;15439:62;-1:-1:-1;;;15517:18:1;;;15510:33;15560:19;;16965:64:0;15360:225:1;16965:64:0;17057:1;17048:6;:10;17040:64;;;;-1:-1:-1;;;17040:64:0;;18813:2:1;17040:64:0;;;18795:21:1;18852:2;18832:18;;;18825:30;18891:34;18871:18;;;18864:62;-1:-1:-1;;;18942:18:1;;;18935:39;18991:19;;17040:64:0;18785:231:1;17040:64:0;17140:28;17171:24;17189:4;17171:9;:24::i;:::-;17245:19;;17140:55;;-1:-1:-1;17221:43:0;;;;;;;17278:31;;-1:-1:-1;;;;;;17288:21:0;;17304:4;17288:21;;17278:31;:56;;;;-1:-1:-1;17320:14:0;;-1:-1:-1;;;;;17312:22:0;;;17320:14;;17312:22;;17278:56;:75;;;;-1:-1:-1;3174:7:0;3201:6;-1:-1:-1;;;;;17338:15:0;;;3201:6;;17338:15;;17278:75;:92;;;;-1:-1:-1;3174:7:0;3201:6;-1:-1:-1;;;;;17357:13:0;;;3201:6;;17357:13;;17278:92;:114;;;;;17391:1;17373:17;;:19;17278:114;17275:181;;;17410:34;17423:20;17410:12;:34::i;:::-;17466:19;17480:4;17466:13;:19::i;:::-;17496:17;17510:2;17496:13;:17::i;:::-;-1:-1:-1;;;;;17529:24:0;;;;;;:18;:24;;;;;;;;17528:25;:51;;;;-1:-1:-1;;;;;;17557:22:0;;;;;;:18;:22;;;;;;;;17556:23;17528:51;17524:1174;;;17626:11;;17595:13;;17626;17623:131;;17659:22;17664:4;17670:2;17674:6;17659:4;:22::i;:::-;17708:30;17723:4;17728:2;17731:6;17708:14;:30::i;:::-;17700:38;;17623:131;17785:1;17771:11;:9;:11::i;:::-;:15;:39;;;;-1:-1:-1;17796:14:0;;-1:-1:-1;;;;;17790:20:0;;;17796:14;;17790:20;17771:39;17768:668;;;17885:15;17859:23;;17839:17;;:43;;;;:::i;:::-;:61;17835:78;;;17903:10;17910:2;17903:6;:10::i;:::-;17950;;17940:6;:20;;17932:47;;;;-1:-1:-1;;;17932:47:0;;17302:2:1;17932:47:0;;;17284:21:1;17341:2;17321:18;;;17314:30;-1:-1:-1;;;17360:18:1;;;17353:44;17414:18;;17932:47:0;17274:164:1;17932:47:0;18007:20;18015:4;18020:6;18007:7;:20::i;:::-;17998:29;;17768:668;;;18066:1;18051:12;:10;:12::i;:::-;:16;:38;;;;-1:-1:-1;18075:14:0;;-1:-1:-1;;;;;18071:18:0;;;18075:14;;18071:18;18051:38;18048:388;;;18133:11;;18123:6;:21;;18115:48;;;;-1:-1:-1;;;18115:48:0;;17302:2:1;18115:48:0;;;17284:21:1;17341:2;17321:18;;;17314:30;-1:-1:-1;;;17360:18:1;;;17353:44;17414:18;;18115:48:0;17274:164:1;18115:48:0;18190:21;18199:4;18204:6;18190:8;:21::i;18048:388::-;18235:8;;:11;18232:204;;18281:8;;18291:1;18281:11;18278:142;;;18323:20;18331:4;18336:6;18323:7;:20::i;18278:142::-;18399:21;18408:4;18413:6;18399:8;:21::i;:::-;18390:30;;18278:142;18459:17;:6;18470:5;18459:10;:17::i;:::-;-1:-1:-1;;;;;18500:12:0;;;;;;:6;:12;;;;;;18450:26;;-1:-1:-1;18500:12:0;;18499:13;18491:41;;;;-1:-1:-1;;;18491:41:0;;16958:2:1;18491:41:0;;;16940:21:1;16997:2;16977:18;;;16970:30;-1:-1:-1;;;17016:18:1;;;17009:45;17071:18;;18491:41:0;16930:165:1;18491:41:0;18547:14;:12;:14::i;:::-;18583;;-1:-1:-1;;;;;18579:18:0;;;18583:14;;18579:18;18576:110;;18637:8;;18607:25;18625:6;18607:13;18617:2;18607:9;:13::i;:25::-;18606:39;;18598:88;;;;-1:-1:-1;;;18598:88:0;;17645:2:1;18598:88:0;;;17627:21:1;17684:2;17664:18;;;17657:30;17723:34;17703:18;;;17696:62;-1:-1:-1;;;17774:18:1;;;17767:34;17818:19;;18598:88:0;17617:226:1;18598:88:0;17580:1118;17524:1174;18708:32;18723:4;18729:2;18733:6;18708:14;:32::i;:::-;16875:1873;;16772:1976;;;:::o;4932:226::-;5052:7;5088:12;5080:6;;;;5072:29;;;;-1:-1:-1;;;5072:29:0;;;;;;;;:::i;:::-;-1:-1:-1;5112:9:0;5124:5;5128:1;5124;:5;:::i;:::-;5112:17;4932:226;-1:-1:-1;;;;;4932:226:0:o;4029:181::-;4087:7;;4119:5;4123:1;4119;:5;:::i;:::-;4107:17;;4148:1;4143;:6;;4135:46;;;;-1:-1:-1;;;4135:46:0;;16602:2:1;4135:46:0;;;16584:21:1;16641:2;16621:18;;;16614:30;16680:29;16660:18;;;16653:57;16727:18;;4135:46:0;16574:177:1;5417:471:0;5475:7;5720:6;5716:47;;-1:-1:-1;5750:1:0;5743:8;;5716:47;5775:9;5787:5;5791:1;5787;:5;:::i;:::-;5775:17;-1:-1:-1;5820:1:0;5811:5;5815:1;5775:17;5811:5;:::i;:::-;:10;5803:56;;;;-1:-1:-1;;;5803:56:0;;18050:2:1;5803:56:0;;;18032:21:1;18089:2;18069:18;;;18062:30;18128:34;18108:18;;;18101:62;-1:-1:-1;;;18179:18:1;;;18172:31;18220:19;;5803:56:0;18022:223:1;6364:132:0;6422:7;6449:39;6453:1;6456;6449:39;;;;;;;;;;;;;;;;;:3;:39::i;4493:136::-;4551:7;4578:43;4582:1;4585;4578:43;;;;;;;;;;;;;;;;;:3;:43::i;19595:779::-;19665:17;19685:84;19751:17;;19685:61;19729:16;;19685:39;19706:17;;19685:16;;:20;;:39;;;;:::i;:84::-;19665:104;-1:-1:-1;19783:14:0;;19780:587;;19813:19;19835:90;19923:1;19835:83;19905:12;19835:65;19860:39;19881:17;;19860:16;;:20;;:39;;;;:::i;:::-;19835:20;;:24;:65::i;:90::-;19813:112;-1:-1:-1;19940:58:0;19960:37;:20;19813:112;19960:24;:37::i;:::-;19940:19;:58::i;:::-;20039:6;;20032:39;;-1:-1:-1;;;20032:39:0;;20065:4;20032:39;;;12082:51:1;20013:16:0;;-1:-1:-1;;;;;20039:6:0;;20032:24;;12055:18:1;;20032:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20013:58;;20129:1;20089:39;20110:17;;20089:16;;:20;;:39;;;;:::i;:::-;:41;20086:177;;;20154:93;20167:11;20233:12;20191:39;20212:17;;20191:16;;:20;;:39;;;;:::i;:::-;20181:50;;:8;:50;:::i;:::-;:65;;;;:::i;:::-;20154:12;:93::i;:::-;20284:6;;20301:11;;20315:39;;-1:-1:-1;;;20315:39:0;;20348:4;20315:39;;;12082:51:1;-1:-1:-1;;;;;20284:6:0;;;;20277:23;;20301:11;;20284:6;;20315:24;;12055:18:1;;20315:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20277:78;;-1:-1:-1;;;;;;20277:78:0;;;;;;;-1:-1:-1;;;;;13790:32:1;;;20277:78:0;;;13772:51:1;13839:18;;;13832:34;13745:18;;20277:78:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;19780:587::-;19654:720;19595:779;:::o;26370:427::-;26453:14;;-1:-1:-1;;;;;26434:34:0;;;26453:14;;26434:34;26430:360;;26485:16;26504:20;26516:7;26504:11;:20::i;:::-;26485:39;-1:-1:-1;26543:12:0;;26539:185;;26576:21;26579:7;26588:8;26576:2;:21::i;:::-;-1:-1:-1;;;;;26621:87:0;;26639:22;;;;:13;:22;;;;;;;;;26681:7;:16;;;;;;;26621:87;;23014:25:1;;;26663:15:0;23055:18:1;;;23048:34;;;;23098:18;;23091:34;23156:2;23141:18;;23134:34;;;26621:87:0;;23001:3:1;22986:19;26621:87:0;;;;;;;26539:185;-1:-1:-1;;;;;;26738:22:0;;;;;;:13;:22;;;;;26763:15;26738:40;;26430:360;26370:427;:::o;28411:470::-;-1:-1:-1;;;;;28488:12:0;;;28512:1;28488:12;;;:8;:12;;;;;;;:26;:52;;;;-1:-1:-1;28526:14:0;;-1:-1:-1;;;;;28518:22:0;;;28526:14;;28518:22;;28488:52;:71;;;;-1:-1:-1;28339:20:0;;28387:8;28488:71;:82;;;;;28569:1;28562:6;:8;28488:82;:102;;;;;28572:13;28582:2;28572:9;:13::i;:::-;:18;28488:102;28483:200;;;-1:-1:-1;;;;;28608:12:0;;;;;;;:8;:12;;;;;;;;:19;;-1:-1:-1;;;;;;28608:19:0;;;;;;;;;;;28642:10;:14;;;28659:12;28642:29;;28483:200;28703:14;;-1:-1:-1;;;;;28697:20:0;;;28703:14;;28697:20;;:40;;-1:-1:-1;28723:14:0;;-1:-1:-1;;;;;28719:18:0;;;28723:14;;28719:18;28697:40;28694:180;;;28787:14;;-1:-1:-1;;;;;28771:14:0;;;;;;:10;:14;;;;;;28756:29;;:12;:29;:::i;:::-;:45;28753:110;;;-1:-1:-1;;;;;;28822:12:0;28845:1;28822:12;;;:8;:12;;;;;:25;;-1:-1:-1;;;;;;28822:25:0;;;-1:-1:-1;28411:470:0:o;20382:1075::-;20509:7;20532:11;;20547:1;20532:16;20528:30;;;-1:-1:-1;20557:1:0;20550:8;;20528:30;20635:14;;20570:11;;;;-1:-1:-1;;;;;20625:24:0;;;20635:14;;20625:24;:59;;;;-1:-1:-1;20654:9:0;;;;;:12;;:28;;-1:-1:-1;20670:9:0;;;;:12;20654:28;20621:259;;;20708:9;20702:15;;20621:259;;;20752:14;;-1:-1:-1;;;;;20739:27:0;;;20752:14;;20739:27;:60;;;;-1:-1:-1;20771:9:0;;;;20782:1;20771:12;;:26;;-1:-1:-1;20785:9:0;;;;:12;20771:26;20735:145;;;20822:6;20816:12;;20735:145;;;20867:1;20860:8;;;;;;20735:145;20895:9;20890:348;20914:9;:16;20910:20;;20890:348;;;20958:11;20965:3;20958:6;:11::i;:::-;20952:17;-1:-1:-1;;;;;;20988:17:0;;20984:63;;21026:5;;20984:63;21073:27;21087:9;21097:1;21087:12;;;;;;;;:::i;:::-;;;;;;;;;21073:9;:13;;:27;;;;:::i;:::-;21061:39;;21115:18;21136:36;21166:5;21136:25;21148:9;21158:1;21148:12;;;;;;;;:::i;:::-;;;;;;;;;21136:7;:11;;:25;;;;:::i;:36::-;21115:57;;21187:39;21202:6;21210:3;21215:10;21187:14;:39::i;:::-;-1:-1:-1;20932:3:0;;;;:::i;:::-;;;;20890:348;;;-1:-1:-1;21251:11:0;;:26;;21267:9;21251:15;:26::i;:::-;:29;21248:149;;21319:11;;21344;;21296:88;;21311:6;;-1:-1:-1;;;;;21319:11:0;;;;21332:50;;21376:5;;21332:39;;21344:26;;21360:9;21344:15;:26::i;:::-;21332:7;;:11;:39::i;:50::-;21296:14;:88::i;:::-;21414:35;21443:5;21414:24;21426:11;;21414:7;:11;;:24;;;;:::i;:35::-;21407:42;20382:1075;-1:-1:-1;;;;;;20382:1075:0:o;22224:104::-;-1:-1:-1;;;;;22281:15:0;;;;;;:6;:15;;;;;;;;22276:44;;-1:-1:-1;;;;;22298:15:0;;;;;;:6;:15;;;;;:22;;-1:-1:-1;;22298:22:0;22316:4;22298:22;;;22224:104;:::o;18756:405::-;18818:15;18846:12;18861:34;18889:5;18861:23;18872:11;:9;:11::i;:::-;18861:6;;:10;:23::i;:34::-;18846:49;;18906:82;18921:4;18935;18942:44;18951:34;18979:5;18951:23;18962:11;;18951:6;:10;;:23;;;;:::i;:34::-;18942:4;;:8;:44::i;18906:82::-;19002:11;;:13;18999:118;;19031:74;19046:4;19060:6;19070:34;19098:5;19070:23;19081:11;;19070:6;:10;;:23;;;;:::i;19031:74::-;19137:16;:6;19148:4;19137:10;:16::i;19171:410::-;19235:15;19263:12;19278:35;19307:5;19278:24;19289:12;:10;:12::i;19278:35::-;19263:50;;19324:82;19339:4;19353;19360:45;19369:35;19398:5;19369:24;19380:12;;19369:6;:10;;:24;;;;:::i;19324:82::-;19420:12;;:14;19417:120;;19450:75;19465:4;19479:6;19489:35;19518:5;19489:24;19500:12;;19489:6;:10;;:24;;;;:::i;25192:310::-;25241:17;;25269:226;25293:8;;25289:1;:12;25269:226;;;25355:5;;25343:17;;-1:-1:-1;;;;;25355:5:0;-1:-1:-1;;25343:17:0;:::i;:::-;25384:5;;25323:38;;-1:-1:-1;25384:7:0;;-1:-1:-1;;;;;25384:5:0;;:7;:::i;:::-;25376:5;:15;;-1:-1:-1;;;;;;25376:15:0;-1:-1:-1;;;;;25376:15:0;;;;;;25406:18;;-1:-1:-1;25406:18:0;;;:7;:18;;;;;:23;;-1:-1:-1;;;25406:23:0;;-1:-1:-1;;25406:23:0;:::i;:::-;;;;-1:-1:-1;;25449:34:0;;25481:1;14762:25:1;;-1:-1:-1;;;;;25449:34:0;;;25466:1;;25449:34;;14750:2:1;14735:18;25449:34:0;;;;;;;25303:3;;;;:::i;:::-;;;;25269:226;;21467:284;21579:51;;;;;;;;;;;-1:-1:-1;;;21579:51:0;;;;;;;;-1:-1:-1;;;;;21579:15:0;;-1:-1:-1;21579:15:0;;;:7;:15;;;;;;;;:51;;21599:6;;21579:19;:51::i;:::-;-1:-1:-1;;;;;21561:15:0;;;;;;;:7;:15;;;;;;:69;;;;21662:18;;;;;;;:30;;21685:6;21662:22;:30::i;:::-;-1:-1:-1;;;;;21641:18:0;;;;;;;:7;:18;;;;;;;:51;;;;21708:35;;;;;;;;;;21736:6;14762:25:1;;14750:2;14735:18;;14717:76;6992:312:0;7112:7;7147:12;7140:5;7132:28;;;;-1:-1:-1;;;7132:28:0;;;;;;;;:::i;:::-;-1:-1:-1;7171:9:0;7183:5;7187:1;7183;:5;:::i;23939:660::-;24011:16;24008:54;;23939:660;:::o;24008:54::-;24097:16;;;24111:1;24097:16;;;;;;;;24073:21;;24097:16;;;;;;;;;;-1:-1:-1;24097:16:0;24073:40;;24142:4;24124;24129:1;24124:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24124:23:0;;;:7;;;;;;;;;:23;24168:6;;24158:7;;24168:6;;;24158:4;;24168:6;;24158:7;;;;;;:::i;:::-;-1:-1:-1;;;;;24158:16:0;;;:7;;;;;;;;;:16;24219;;24187:63;;24204:4;;24219:16;;;;24238:11;24187:8;:63::i;:::-;24291:16;;24437:7;;24291:194;;-1:-1:-1;;;24291:194:0;;-1:-1:-1;;;;;24291:16:0;;;;;;;:70;;:194;;24376:11;;24402:1;;24418:4;;24437:7;;;24459:15;;24291:194;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;24503:6:0;;24525:7;;24548:42;;-1:-1:-1;;;24548:42:0;;-1:-1:-1;;;;;24525:7:0;;;24548:42;;;12082:51:1;;;24503:6:0;;;;;-1:-1:-1;24496:27:0;;-1:-1:-1;24525:7:0;24541:4;;24503:6;;24548:24;;12055:18:1;;24548:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24496:95;;-1:-1:-1;;;;;;24496:95:0;;;;;;;-1:-1:-1;;;;;12711:15:1;;;24496:95:0;;;12693:34:1;12763:15;;;;12743:18;;;12736:43;12795:18;;;12788:34;12628:18;;24496:95:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;24609:541::-;24819:16;;24787:63;;24804:4;;24819:16;;;-1:-1:-1;;;;;24819:16:0;24838:11;24787:8;:63::i;:::-;24861:16;;24905:6;;25090:11;;24861:281;;-1:-1:-1;;;24861:281:0;;-1:-1:-1;;;;;24905:6:0;;;24861:281;;;13230:34:1;24934:4:0;13280:18:1;;;13273:43;13332:18;;;13325:34;;;13375:18;;;13368:34;;;24905:6:0;13418:19:1;;;13411:35;;;13462:19;;;13455:35;25090:11:0;;;13506:19:1;;;13499:44;25116:15:0;13559:19:1;;;13552:35;24861:16:0;;;;;;:29;;13164:19:1;;24861:281:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;26805:237::-;-1:-1:-1;;;;;26878:21:0;;26870:65;;;;-1:-1:-1;;;26870:65:0;;20371:2:1;26870:65:0;;;20353:21:1;20410:2;20390:18;;;20383:30;20449:33;20429:18;;;20422:61;20500:18;;26870:65:0;20343:181:1;26870:65:0;26956:7;;:19;;26968:6;26956:11;:19::i;:::-;26946:7;:29;-1:-1:-1;;;;;27006:16:0;;;;;;:7;:16;;;;;;:28;;27027:6;27006:20;:28::i;:::-;-1:-1:-1;;;;;26986:16:0;;;;;;;:7;:16;;;;;:48;;;;-1:-1:-1;26805:237:0:o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:745:1;79:5;132:3;125:4;117:6;113:17;109:27;99:2;;150:1;147;140:12;99:2;179:6;173:13;205:4;229:60;245:43;285:2;245:43;:::i;:::-;229:60;:::i;:::-;311:3;335:2;330:3;323:15;363:2;358:3;354:12;347:19;;398:2;390:6;386:15;450:3;445:2;439;436:1;432:10;424:6;420:23;416:32;413:41;410:2;;;467:1;464;457:12;410:2;489:1;499:231;513:2;510:1;507:9;499:231;;;577:3;571:10;594:31;619:5;594:31;:::i;:::-;638:18;;676:12;;;;708;;;;531:1;524:9;499:231;;;-1:-1:-1;748:5:1;;89:670;-1:-1:-1;;;;;;;89:670:1:o;764:1190::-;828:5;881:3;874:4;866:6;862:17;858:27;848:2;;899:1;896;889:12;848:2;928:6;922:13;954:4;978:60;994:43;1034:2;994:43;:::i;978:60::-;1060:3;1084:2;1079:3;1072:15;1112:2;1107:3;1103:12;1096:19;;1147:2;1139:6;1135:15;1199:3;1194:2;1188;1185:1;1181:10;1173:6;1169:23;1165:32;1162:41;1159:2;;;1216:1;1213;1206:12;1159:2;1238:1;1248:677;1262:2;1259:1;1256:9;1248:677;;;1332:3;1326:10;1368:18;1355:11;1352:35;1349:2;;;1400:1;1397;1390:12;1349:2;1427:24;;1486:2;1478:11;;1474:21;-1:-1:-1;1464:2:1;;1509:1;1506;1499:12;1464:2;1550;1546;1542:11;1536:18;1577:2;1607:48;1623:31;1651:2;1623:31;:::i;1607:48::-;1684:2;1675:7;1668:19;1728:3;1723:2;1718;1714;1710:11;1706:20;1703:29;1700:2;;;1745:1;1742;1735:12;1700:2;1762:56;1815:2;1810;1801:7;1797:16;1792:2;1788;1784:11;1762:56;:::i;:::-;1831:20;;-1:-1:-1;;;1871:12:1;;;;1903;;;;1280:1;1273:9;1248:677;;1959:670;2024:5;2077:3;2070:4;2062:6;2058:17;2054:27;2044:2;;2095:1;2092;2085:12;2044:2;2124:6;2118:13;2150:4;2174:60;2190:43;2230:2;2190:43;:::i;2174:60::-;2256:3;2280:2;2275:3;2268:15;2308:2;2303:3;2299:12;2292:19;;2343:2;2335:6;2331:15;2395:3;2390:2;2384;2381:1;2377:10;2369:6;2365:23;2361:32;2358:41;2355:2;;;2412:1;2409;2402:12;2355:2;2434:1;2444:156;2458:2;2455:1;2452:9;2444:156;;;2515:10;;2503:23;;2546:12;;;;2578;;;;2476:1;2469:9;2444:156;;2634:741;2697:5;2750:3;2743:4;2735:6;2731:17;2727:27;2717:2;;2768:1;2765;2758:12;2717:2;2797:6;2791:13;2823:4;2847:60;2863:43;2903:2;2863:43;:::i;2847:60::-;2929:3;2953:2;2948:3;2941:15;2981:2;2976:3;2972:12;2965:19;;3016:2;3008:6;3004:15;3068:3;3063:2;3057;3054:1;3050:10;3042:6;3038:23;3034:32;3031:41;3028:2;;;3085:1;3082;3075:12;3028:2;3107:1;3117:229;3131:2;3128:1;3125:9;3117:229;;;3195:3;3189:10;3212:29;3235:5;3212:29;:::i;:::-;3254:18;;3292:12;;;;3324;;;;3149:1;3142:9;3117:229;;3380:128;3445:20;;3474:28;3445:20;3474:28;:::i;3513:247::-;3572:6;3625:2;3613:9;3604:7;3600:23;3596:32;3593:2;;;3641:1;3638;3631:12;3593:2;3680:9;3667:23;3699:31;3724:5;3699:31;:::i;3765:251::-;3835:6;3888:2;3876:9;3867:7;3863:23;3859:32;3856:2;;;3904:1;3901;3894:12;3856:2;3936:9;3930:16;3955:31;3980:5;3955:31;:::i;4021:388::-;4089:6;4097;4150:2;4138:9;4129:7;4125:23;4121:32;4118:2;;;4166:1;4163;4156:12;4118:2;4205:9;4192:23;4224:31;4249:5;4224:31;:::i;:::-;4274:5;-1:-1:-1;4331:2:1;4316:18;;4303:32;4344:33;4303:32;4344:33;:::i;:::-;4396:7;4386:17;;;4108:301;;;;;:::o;4414:456::-;4491:6;4499;4507;4560:2;4548:9;4539:7;4535:23;4531:32;4528:2;;;4576:1;4573;4566:12;4528:2;4615:9;4602:23;4634:31;4659:5;4634:31;:::i;:::-;4684:5;-1:-1:-1;4741:2:1;4726:18;;4713:32;4754:33;4713:32;4754:33;:::i;:::-;4518:352;;4806:7;;-1:-1:-1;;;4860:2:1;4845:18;;;;4832:32;;4518:352::o;4875:382::-;4940:6;4948;5001:2;4989:9;4980:7;4976:23;4972:32;4969:2;;;5017:1;5014;5007:12;4969:2;5056:9;5043:23;5075:31;5100:5;5075:31;:::i;:::-;5125:5;-1:-1:-1;5182:2:1;5167:18;;5154:32;5195:30;5154:32;5195:30;:::i;5262:315::-;5330:6;5338;5391:2;5379:9;5370:7;5366:23;5362:32;5359:2;;;5407:1;5404;5397:12;5359:2;5446:9;5433:23;5465:31;5490:5;5465:31;:::i;:::-;5515:5;5567:2;5552:18;;;;5539:32;;-1:-1:-1;;;5349:228:1:o;5582:615::-;5668:6;5676;5729:2;5717:9;5708:7;5704:23;5700:32;5697:2;;;5745:1;5742;5735:12;5697:2;5785:9;5772:23;5814:18;5855:2;5847:6;5844:14;5841:2;;;5871:1;5868;5861:12;5841:2;5909:6;5898:9;5894:22;5884:32;;5954:7;5947:4;5943:2;5939:13;5935:27;5925:2;;5976:1;5973;5966:12;5925:2;6016;6003:16;6042:2;6034:6;6031:14;6028:2;;;6058:1;6055;6048:12;6028:2;6111:7;6106:2;6096:6;6093:1;6089:14;6085:2;6081:23;6077:32;6074:45;6071:2;;;6132:1;6129;6122:12;6071:2;6163;6155:11;;;;;6185:6;;-1:-1:-1;5687:510:1;;-1:-1:-1;;;;5687:510:1:o;6202:1047::-;6292:6;6300;6353:2;6341:9;6332:7;6328:23;6324:32;6321:2;;;6369:1;6366;6359:12;6321:2;6409:9;6396:23;6442:18;6434:6;6431:30;6428:2;;;6474:1;6471;6464:12;6428:2;6497:22;;6550:4;6542:13;;6538:27;-1:-1:-1;6528:2:1;;6579:1;6576;6569:12;6528:2;6615;6602:16;6637:4;6661:60;6677:43;6717:2;6677:43;:::i;6661:60::-;6743:3;6767:2;6762:3;6755:15;6795:2;6790:3;6786:12;6779:19;;6826:2;6822;6818:11;6874:7;6869:2;6863;6860:1;6856:10;6852:2;6848:19;6844:28;6841:41;6838:2;;;6895:1;6892;6885:12;6838:2;6917:1;6908:10;;6927:238;6941:2;6938:1;6935:9;6927:238;;;7012:3;6999:17;7029:31;7054:5;7029:31;:::i;:::-;7073:18;;6959:1;6952:9;;;;;7111:12;;;;7143;;6927:238;;;-1:-1:-1;7184:5:1;-1:-1:-1;7208:35:1;;-1:-1:-1;7224:18:1;;;7208:35;:::i;:::-;7198:45;;;;;6311:938;;;;;:::o;7254:1311::-;7493:6;7501;7509;7517;7525;7578:3;7566:9;7557:7;7553:23;7549:33;7546:2;;;7595:1;7592;7585:12;7546:2;7628:9;7622:16;7657:18;7698:2;7690:6;7687:14;7684:2;;;7714:1;7711;7704:12;7684:2;7737:71;7800:7;7791:6;7780:9;7776:22;7737:71;:::i;:::-;7727:81;;7854:2;7843:9;7839:18;7833:25;7817:41;;7883:2;7873:8;7870:16;7867:2;;;7899:1;7896;7889:12;7867:2;7922:74;7988:7;7977:8;7966:9;7962:24;7922:74;:::i;:::-;7912:84;;8042:2;8031:9;8027:18;8021:25;8005:41;;8071:2;8061:8;8058:16;8055:2;;;8087:1;8084;8077:12;8055:2;8110:74;8176:7;8165:8;8154:9;8150:24;8110:74;:::i;:::-;8100:84;;8230:2;8219:9;8215:18;8209:25;8193:41;;8259:2;8249:8;8246:16;8243:2;;;8275:1;8272;8265:12;8243:2;8298:72;8362:7;8351:8;8340:9;8336:24;8298:72;:::i;:::-;8288:82;;8416:3;8405:9;8401:19;8395:26;8379:42;;8446:2;8436:8;8433:16;8430:2;;;8462:1;8459;8452:12;8430:2;;8485:74;8551:7;8540:8;8529:9;8525:24;8485:74;:::i;:::-;8475:84;;;7536:1029;;;;;;;;:::o;8570:902::-;8654:6;8685:2;8728;8716:9;8707:7;8703:23;8699:32;8696:2;;;8744:1;8741;8734:12;8696:2;8784:9;8771:23;8817:18;8809:6;8806:30;8803:2;;;8849:1;8846;8839:12;8803:2;8872:22;;8925:4;8917:13;;8913:27;-1:-1:-1;8903:2:1;;8954:1;8951;8944:12;8903:2;8990;8977:16;9013:60;9029:43;9069:2;9029:43;:::i;9013:60::-;9095:3;9119:2;9114:3;9107:15;9147:2;9142:3;9138:12;9131:19;;9178:2;9174;9170:11;9226:7;9221:2;9215;9212:1;9208:10;9204:2;9200:19;9196:28;9193:41;9190:2;;;9247:1;9244;9237:12;9190:2;9269:1;9260:10;;9279:163;9293:2;9290:1;9287:9;9279:163;;;9350:17;;9338:30;;9311:1;9304:9;;;;;9388:12;;;;9420;;9279:163;;;-1:-1:-1;9461:5:1;8665:807;-1:-1:-1;;;;;;;8665:807:1:o;9477:245::-;9544:6;9597:2;9585:9;9576:7;9572:23;9568:32;9565:2;;;9613:1;9610;9603:12;9565:2;9645:9;9639:16;9664:28;9686:5;9664:28;:::i;9727:671::-;9795:6;9848:2;9836:9;9827:7;9823:23;9819:32;9816:2;;;9864:1;9861;9854:12;9816:2;9904:9;9891:23;9937:18;9929:6;9926:30;9923:2;;;9969:1;9966;9959:12;9923:2;9992:22;;10045:4;10037:13;;10033:27;-1:-1:-1;10023:2:1;;10074:1;10071;10064:12;10023:2;10110;10097:16;10135:48;10151:31;10179:2;10151:31;:::i;10135:48::-;10206:2;10199:5;10192:17;10246:7;10241:2;10236;10232;10228:11;10224:20;10221:33;10218:2;;;10267:1;10264;10257:12;10218:2;10322;10317;10313;10309:11;10304:2;10297:5;10293:14;10280:45;10366:1;10345:14;;;10361:2;10341:23;10334:34;;;;10349:5;9806:592;-1:-1:-1;;;;9806:592:1:o;10403:180::-;10462:6;10515:2;10503:9;10494:7;10490:23;10486:32;10483:2;;;10531:1;10528;10521:12;10483:2;-1:-1:-1;10554:23:1;;10473:110;-1:-1:-1;10473:110:1:o;10588:184::-;10658:6;10711:2;10699:9;10690:7;10686:23;10682:32;10679:2;;;10727:1;10724;10717:12;10679:2;-1:-1:-1;10750:16:1;;10669:103;-1:-1:-1;10669:103:1:o;10777:316::-;10854:6;10862;10870;10923:2;10911:9;10902:7;10898:23;10894:32;10891:2;;;10939:1;10936;10929:12;10891:2;-1:-1:-1;;10962:23:1;;;11032:2;11017:18;;11004:32;;-1:-1:-1;11083:2:1;11068:18;;;11055:32;;10881:212;-1:-1:-1;10881:212:1:o;11098:306::-;11186:6;11194;11202;11255:2;11243:9;11234:7;11230:23;11226:32;11223:2;;;11271:1;11268;11261:12;11223:2;11300:9;11294:16;11284:26;;11350:2;11339:9;11335:18;11329:25;11319:35;;11394:2;11383:9;11379:18;11373:25;11363:35;;11213:191;;;;;:::o;11409:243::-;11466:6;11519:2;11507:9;11498:7;11494:23;11490:32;11487:2;;;11535:1;11532;11525:12;11487:2;11574:9;11561:23;11593:29;11616:5;11593:29;:::i;11657:274::-;11786:3;11824:6;11818:13;11840:53;11886:6;11881:3;11874:4;11866:6;11862:17;11840:53;:::i;:::-;11909:16;;;;;11794:137;-1:-1:-1;;11794:137:1:o;14798:383::-;14947:2;14936:9;14929:21;14910:4;14979:6;14973:13;15022:6;15017:2;15006:9;15002:18;14995:34;15038:66;15097:6;15092:2;15081:9;15077:18;15072:2;15064:6;15060:15;15038:66;:::i;:::-;15165:2;15144:15;-1:-1:-1;;15140:29:1;15125:45;;;;15172:2;15121:54;;14919:262;-1:-1:-1;;14919:262:1:o;18250:356::-;18452:2;18434:21;;;18471:18;;;18464:30;18530:34;18525:2;18510:18;;18503:62;18597:2;18582:18;;18424:182::o;20919:874::-;21145:4;21193:3;21182:9;21178:19;21224:6;21213:9;21206:25;21250:2;21317:1;21313;21308:3;21304:11;21300:19;21292:6;21288:32;21283:2;21272:9;21268:18;21261:60;21357:6;21352:2;21341:9;21337:18;21330:34;21400:3;21395:2;21384:9;21380:18;21373:31;21424:6;21459;21453:13;21490:6;21482;21475:22;21528:3;21517:9;21513:19;21506:26;;21567:2;21559:6;21555:15;21541:29;;21588:1;21598:169;21612:6;21609:1;21606:13;21598:169;;;21673:13;;21661:26;;21742:15;;;;21707:12;;;;21634:1;21627:9;21598:169;;;-1:-1:-1;21784:3:1;;21154:639;-1:-1:-1;;;;;;;;;21154:639:1:o;21798:980::-;22060:4;22108:3;22097:9;22093:19;22139:6;22128:9;22121:25;22165:2;22203:6;22198:2;22187:9;22183:18;22176:34;22246:3;22241:2;22230:9;22226:18;22219:31;22270:6;22305;22299:13;22336:6;22328;22321:22;22374:3;22363:9;22359:19;22352:26;;22413:2;22405:6;22401:15;22387:29;;22434:1;22444:195;22458:6;22455:1;22452:13;22444:195;;;22523:13;;-1:-1:-1;;;;;22519:39:1;22507:52;;22614:15;;;;22579:12;;;;22555:1;22473:9;22444:195;;;-1:-1:-1;;;;;;;22695:32:1;;;;22690:2;22675:18;;22668:60;-1:-1:-1;;;22759:3:1;22744:19;22737:35;22656:3;22069:709;-1:-1:-1;;;22069:709:1:o;23368:275::-;23439:2;23433:9;23504:2;23485:13;;-1:-1:-1;;23481:27:1;23469:40;;23539:18;23524:34;;23560:22;;;23521:62;23518:2;;;23586:18;;:::i;:::-;23622:2;23615:22;23413:230;;-1:-1:-1;23413:230:1:o;23648:183::-;23708:4;23741:18;23733:6;23730:30;23727:2;;;23763:18;;:::i;:::-;-1:-1:-1;23808:1:1;23804:14;23820:4;23800:25;;23717:114::o;23836:186::-;23884:4;23917:18;23909:6;23906:30;23903:2;;;23939:18;;:::i;:::-;-1:-1:-1;24005:2:1;23984:15;-1:-1:-1;;23980:29:1;24011:4;23976:40;;23893:129::o;24027:238::-;24067:3;-1:-1:-1;;;;;24134:10:1;;;24164;;;24194:12;;;24186:21;;24183:2;;;24210:18;;:::i;:::-;24246:13;;24075:190;-1:-1:-1;;;;24075:190:1:o;24270:128::-;24310:3;24341:1;24337:6;24334:1;24331:13;24328:2;;;24347:18;;:::i;:::-;-1:-1:-1;24383:9:1;;24318:80::o;24403:201::-;24443:1;-1:-1:-1;;;;;24508:10:1;;;;24527:2;;24544:18;;:::i;:::-;24582:10;;24578:20;;;;;24449:155;-1:-1:-1;;24449:155:1:o;24609:120::-;24649:1;24675;24665:2;;24680:18;;:::i;:::-;-1:-1:-1;24714:9:1;;24655:74::o;24734:422::-;24823:1;24866:5;24823:1;24880:270;24901:7;24891:8;24888:21;24880:270;;;24960:4;24956:1;24952:6;24948:17;24942:4;24939:27;24936:2;;;24969:18;;:::i;:::-;25019:7;25009:8;25005:22;25002:2;;;25039:16;;;;25002:2;25118:22;;;;25078:15;;;;24880:270;;;24884:3;24798:358;;;;;:::o;25161:131::-;25221:5;25250:36;25277:8;25271:4;25346:5;25376:8;25366:2;;-1:-1:-1;25417:1:1;25431:5;;25366:2;25465:4;25455:2;;-1:-1:-1;25502:1:1;25516:5;;25455:2;25547:4;25565:1;25560:59;;;;25633:1;25628:130;;;;25540:218;;25560:59;25590:1;25581:10;;25604:5;;;25628:130;25665:3;25655:8;25652:17;25649:2;;;25672:18;;:::i;:::-;-1:-1:-1;;25728:1:1;25714:16;;25743:5;;25540:218;;25842:2;25832:8;25829:16;25823:3;25817:4;25814:13;25810:36;25804:2;25794:8;25791:16;25786:2;25780:4;25777:12;25773:35;25770:77;25767:2;;;-1:-1:-1;25879:19:1;;;25911:5;;25767:2;25958:34;25983:8;25977:4;25958:34;:::i;:::-;26028:6;26024:1;26020:6;26016:19;26007:7;26004:32;26001:2;;;26039:18;;:::i;:::-;26077:20;;25356:747;-1:-1:-1;;;25356:747:1:o;26108:168::-;26148:7;26214:1;26210;26206:6;26202:14;26199:1;26196:21;26191:1;26184:9;26177:17;26173:45;26170:2;;;26221:18;;:::i;:::-;-1:-1:-1;26261:9:1;;26160:116::o;26281:125::-;26321:4;26349:1;26346;26343:8;26340:2;;;26354:18;;:::i;:::-;-1:-1:-1;26391:9:1;;26330:76::o;26411:258::-;26483:1;26493:113;26507:6;26504:1;26501:13;26493:113;;;26583:11;;;26577:18;26564:11;;;26557:39;26529:2;26522:10;26493:113;;;26624:6;26621:1;26618:13;26615:2;;;26659:1;26650:6;26645:3;26641:16;26634:27;26615:2;;26464:205;;;:::o;26674:380::-;26753:1;26749:12;;;;26796;;;26817:2;;26871:4;26863:6;26859:17;26849:27;;26817:2;26924;26916:6;26913:14;26893:18;26890:38;26887:2;;;26970:10;26965:3;26961:20;26958:1;26951:31;27005:4;27002:1;26995:15;27033:4;27030:1;27023:15;26887:2;;26729:325;;;:::o;27059:135::-;27098:3;-1:-1:-1;;27119:17:1;;27116:2;;;27139:18;;:::i;:::-;-1:-1:-1;27186:1:1;27175:13;;27106:88::o;27199:127::-;27260:10;27255:3;27251:20;27248:1;27241:31;27291:4;27288:1;27281:15;27315:4;27312:1;27305:15;27331:127;27392:10;27387:3;27383:20;27380:1;27373:31;27423:4;27420:1;27413:15;27447:4;27444:1;27437:15;27463:127;27524:10;27519:3;27515:20;27512:1;27505:31;27555:4;27552:1;27545:15;27579:4;27576:1;27569:15;27595:127;27656:10;27651:3;27647:20;27644:1;27637:31;27687:4;27684:1;27677:15;27711:4;27708:1;27701:15;27727:131;-1:-1:-1;;;;;27802:31:1;;27792:42;;27782:2;;27848:1;27845;27838:12;27863:118;27949:5;27942:13;27935:21;27928:5;27925:32;27915:2;;27971:1;27968;27961:12;27986:114;28070:4;28063:5;28059:16;28052:5;28049:27;28039:2;;28090:1;28087;28080:12
Swarm Source
ipfs://59ef6cf8101b3ca34a3768f6151ebf9924cd1f473036d0bf3f5c2742f499bfa5
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.
Add Token to MetaMask (Web3)