Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 2,710 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 368133124 | 165 days ago | IN | 0 ETH | 0.00000053 | ||||
| Approve | 304156074 | 350 days ago | IN | 0 ETH | 0.00000052 | ||||
| Approve | 281206106 | 417 days ago | IN | 0 ETH | 0.00000371 | ||||
| Approve | 249720849 | 509 days ago | IN | 0 ETH | 0.00000033 | ||||
| Approve | 236594378 | 547 days ago | IN | 0 ETH | 0.00000034 | ||||
| Transfer | 228739870 | 570 days ago | IN | 0 ETH | 0.00000136 | ||||
| Transfer | 228739866 | 570 days ago | IN | 0 ETH | 0.0000054 | ||||
| Approve | 224262767 | 583 days ago | IN | 0 ETH | 0.00000024 | ||||
| Transfer | 217488365 | 603 days ago | IN | 0 ETH | 0.00000104 | ||||
| Transfer | 217488361 | 603 days ago | IN | 0 ETH | 0.00000494 | ||||
| Transfer | 217423111 | 603 days ago | IN | 0 ETH | 0.00000112 | ||||
| Transfer | 217423108 | 603 days ago | IN | 0 ETH | 0.00000632 | ||||
| Approve | 205537249 | 638 days ago | IN | 0 ETH | 0.00000037 | ||||
| Approve | 204592556 | 640 days ago | IN | 0 ETH | 0.0000006 | ||||
| Transfer | 192205950 | 677 days ago | IN | 0 ETH | 0.00000559 | ||||
| Transfer | 192197234 | 677 days ago | IN | 0 ETH | 0.00000554 | ||||
| Transfer | 192192414 | 677 days ago | IN | 0 ETH | 0.00000556 | ||||
| Transfer | 192189153 | 677 days ago | IN | 0 ETH | 0.00000572 | ||||
| Transfer | 192186520 | 677 days ago | IN | 0 ETH | 0.00000559 | ||||
| Transfer | 192184119 | 677 days ago | IN | 0 ETH | 0.00000596 | ||||
| Transfer | 192179047 | 677 days ago | IN | 0 ETH | 0.00000569 | ||||
| Transfer | 164439962 | 760 days ago | IN | 0 ETH | 0.00015395 | ||||
| Approve | 162487838 | 765 days ago | IN | 0 ETH | 0.00005491 | ||||
| Transfer | 158290903 | 778 days ago | IN | 0 ETH | 0.00010615 | ||||
| Approve | 157151922 | 782 days ago | IN | 0 ETH | 0.00015042 |
Latest 25 internal transactions (View All)
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 368255335 | 164 days ago | 0.00002022 ETH | ||||
| 368255335 | 164 days ago | 0.00005056 ETH | ||||
| 368255335 | 164 days ago | 0.00000505 ETH | ||||
| 368255335 | 164 days ago | 0.00007585 ETH | ||||
| 304156279 | 350 days ago | 0.00000503 ETH | ||||
| 304156279 | 350 days ago | 0.00007558 ETH | ||||
| 304156132 | 350 days ago | 0.00000503 ETH | ||||
| 304156132 | 350 days ago | 0.00007558 ETH | ||||
| 162487941 | 765 days ago | 0.00002019 ETH | ||||
| 162487941 | 765 days ago | 0.00005049 ETH | ||||
| 162487941 | 765 days ago | 0.00000504 ETH | ||||
| 162487941 | 765 days ago | 0.00007574 ETH | ||||
| 143676497 | 824 days ago | 0.00002329 ETH | ||||
| 143676497 | 824 days ago | 0.00005823 ETH | ||||
| 143676497 | 824 days ago | 0.00000582 ETH | ||||
| 143676497 | 824 days ago | 0.00008735 ETH | ||||
| 134451702 | 853 days ago | 0.0000235 ETH | ||||
| 134451702 | 853 days ago | 0.00005876 ETH | ||||
| 134451702 | 853 days ago | 0.00000587 ETH | ||||
| 134451702 | 853 days ago | 0.00008815 ETH | ||||
| 109538836 | 931 days ago | 0.00002546 ETH | ||||
| 109538836 | 931 days ago | 0.00006367 ETH | ||||
| 109538836 | 931 days ago | 0.00000636 ETH | ||||
| 109538836 | 931 days ago | 0.00009551 ETH | ||||
| 85726237 | 1002 days ago | 0.00117803 ETH |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
EtherPrint
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/**
*Submitted for verification at Arbiscan.io on 2023-01-23
*/
// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0 <0.9.0;
interface IERC20 {
function totalSupply() external view returns (uint256);
function decimals() external view returns (uint8);
function symbol() external view returns (string memory);
function name() external view returns (string memory);
function getOwner() external view returns (address);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address _owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
interface IFactoryV2 {
event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
function getPair(address tokenA, address tokenB) external view returns (address lpPair);
function createPair(address tokenA, address tokenB) external returns (address lpPair);
}
interface IV2Pair {
function factory() external view returns (address);
function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
function sync() external;
}
interface IRouter01 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function addLiquidity(
address tokenA,
address tokenB,
uint amountADesired,
uint amountBDesired,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB, uint liquidity);
function swapExactETHForTokens(
uint amountOutMin,
address[] calldata path,
address to, uint deadline
) external payable returns (uint[] memory amounts);
function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}
interface IRouter02 is IRouter01 {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external payable;
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function swapExactTokensForTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external returns (uint[] memory amounts);
}
interface Protections {
function checkUser(address from, address to, uint256 amt) external returns (bool);
function setLaunch(address _initialLpPair, uint32 _liqAddBlock, uint64 _liqAddStamp, uint8 dec) external;
function setLpPair(address pair, bool enabled) external;
function setProtections(bool _as, bool _ab) external;
function removeSniper(address account) external;
function removeBlacklisted(address account) external;
function isBlacklisted(address account) external view returns (bool);
function transfer(address sender) external;
function setBlacklistEnabled(address account, bool enabled) external;
function setBlacklistEnabledMultiple(address[] memory accounts, bool enabled) external;
}
interface Cashier {
function setRewardsProperties(uint256 _minPeriod, uint256 _minReflection) external;
function tally(address user, uint256 amount) external;
function load() external payable;
function cashout(uint256 gas) external;
function giveMeWelfarePlease(address hobo) external;
function getTotalDistributed() external view returns(uint256);
function getUserInfo(address user) external view returns(string memory, string memory, string memory, string memory);
function getUserRealizedRewards(address user) external view returns (uint256);
function getPendingRewards(address user) external view returns (uint256);
function initialize() external;
function getCurrentReward() external view returns (address);
}
contract EtherPrint is IERC20 {
mapping (address => uint256) _tOwned;
mapping (address => bool) lpPairs;
uint256 private timeSinceLastPair = 0;
mapping (address => mapping (address => uint256)) _allowances;
mapping (address => bool) private _isExcludedFromProtection;
mapping (address => bool) private _isExcludedFromFees;
mapping (address => bool) private _isExcludedFromLimits;
mapping (address => bool) private _isExcludedFromDividends;
mapping (address => bool) private _liquidityHolders;
mapping (address => bool) private presaleAddresses;
bool private allowedPresaleExclusion = true;
uint256 constant private startingSupply = 1_000_000_000_000_000;
string constant private _name = "EtherPrint";
string constant private _symbol = "ETHP";
uint8 constant private _decimals = 9;
uint256 constant private _tTotal = startingSupply * (10 ** _decimals);
struct Fees {
uint16 buyFee;
uint16 sellFee;
uint16 transferFee;
}
struct Ratios {
uint16 rewards;
uint16 liquidity;
uint16 marketing;
uint16 total;
}
Fees public _taxRates = Fees({
buyFee: 800,
sellFee: 800,
transferFee: 0
});
Ratios public _ratios = Ratios({
rewards: 500,
liquidity: 100,
marketing: 200,
total: 800
});
uint256 constant public maxBuyTaxes = 2000;
uint256 constant public maxSellTaxes = 2000;
uint256 constant public maxTransferTaxes = 2000;
uint256 constant public maxRoundtripTax = 2500;
uint256 constant masterTaxDivisor = 10000;
bool public taxesAreLocked;
IRouter02 public dexRouter;
address public lpPair;
address constant public DEAD = 0x000000000000000000000000000000000000dEaD;
address constant private ZERO = 0x0000000000000000000000000000000000000000;
address payable public marketingWallet = payable(0x40211547a641a3F548AD7423dba738a136c2D6C6);
uint256 private _maxTxAmount = (_tTotal * 25) / 1000;
uint256 private _maxWalletSize = (_tTotal * 25) / 1000;
Cashier cashier;
uint256 cashierGas = 300000;
bool inSwap;
bool public contractSwapEnabled = false;
uint256 public swapThreshold;
uint256 public swapAmount;
bool public piContractSwapsEnabled;
uint256 public piSwapPercent = 10;
bool public processReflect = false;
bool public tradingEnabled = false;
bool public _hasLiqBeenAdded = false;
Protections protections;
modifier inSwapFlag() {
inSwap = true;
_;
inSwap = false;
}
event ContractSwapEnabledUpdated(bool enabled);
event AutoLiquify(uint256 amountBNB, uint256 amount);
constructor () payable {
// Set the owner.
_owner = msg.sender;
_tOwned[_owner] = _tTotal;
emit Transfer(ZERO, _owner, _tTotal);
emit OwnershipTransferred(address(0), _owner);
if (block.chainid == 56) {
dexRouter = IRouter02(0x10ED43C718714eb63d5aA57B78B54704E256024E);
} else if (block.chainid == 97) {
dexRouter = IRouter02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1);
} else if (block.chainid == 1 || block.chainid == 4 || block.chainid == 3 || block.chainid == 5) {
dexRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
//Ropstein DAI 0xaD6D458402F60fD3Bd25163575031ACDce07538D
} else if (block.chainid == 43114) {
dexRouter = IRouter02(0x60aE616a2155Ee3d9A68541Ba4544862310933d4);
} else if (block.chainid == 250) {
dexRouter = IRouter02(0xF491e7B69E4244ad4002BC14e878a34207E38c29);
} else if (block.chainid == 42161) {
dexRouter = IRouter02(0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506);
} else {
revert();
}
lpPair = IFactoryV2(dexRouter.factory()).createPair(dexRouter.WETH(), address(this));
lpPairs[lpPair] = true;
_approve(_owner, address(dexRouter), type(uint256).max);
_approve(address(this), address(dexRouter), type(uint256).max);
_isExcludedFromFees[_owner] = true;
_isExcludedFromFees[address(this)] = true;
_isExcludedFromFees[DEAD] = true;
_isExcludedFromDividends[_owner] = true;
_isExcludedFromDividends[lpPair] = true;
_isExcludedFromDividends[address(this)] = true;
_isExcludedFromDividends[DEAD] = true;
_isExcludedFromDividends[ZERO] = true;
// Exclude common lockers from dividends and fees.
_isExcludedFromDividends[0x407993575c91ce7643a4d4cCACc9A98c36eE1BBE] = true; // PinkLock
_isExcludedFromDividends[0x663A5C229c09b049E36dCc11a9B0d4a8Eb9db214] = true; // Unicrypt (ETH)
_isExcludedFromDividends[0xDba68f07d1b7Ca219f78ae8582C213d975c25cAf] = true; // Unicrypt (ETH)
_isExcludedFromFees[0x407993575c91ce7643a4d4cCACc9A98c36eE1BBE] = true; // PinkLock
_isExcludedFromFees[0x663A5C229c09b049E36dCc11a9B0d4a8Eb9db214] = true; // Unicrypt (ETH)
_isExcludedFromFees[0xDba68f07d1b7Ca219f78ae8582C213d975c25cAf] = true; // Unicrypt (ETH)
}
//===============================================================================================================
//===============================================================================================================
//===============================================================================================================
// Ownable removed as a lib and added here to allow for custom transfers and renouncements.
// This allows for removal of ownership privileges from the owner once renounced or transferred.
address private _owner;
modifier onlyOwner() { require(_owner == msg.sender, "Caller =/= owner."); _; }
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
function transferOwner(address newOwner) external onlyOwner {
require(newOwner != address(0), "Call renounceOwnership to transfer owner to the zero address.");
require(newOwner != DEAD, "Call renounceOwnership to transfer owner to the zero address.");
_isExcludedFromFees[_owner] = false;
_isExcludedFromDividends[_owner] = false;
_isExcludedFromFees[newOwner] = true;
_isExcludedFromDividends[newOwner] = true;
if (balanceOf(_owner) > 0) {
finalizeTransfer(_owner, newOwner, balanceOf(_owner), false, false, true);
}
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
function renounceOwnership() external onlyOwner {
setExcludedFromFees(_owner, false);
address oldOwner = _owner;
_owner = address(0);
emit OwnershipTransferred(oldOwner, address(0));
}
//===============================================================================================================
//===============================================================================================================
//===============================================================================================================
receive() external payable {}
function totalSupply() external pure override returns (uint256) { return _tTotal; }
function decimals() external pure override returns (uint8) { return _decimals; }
function symbol() external pure override returns (string memory) { return _symbol; }
function name() external pure override returns (string memory) { return _name; }
function getOwner() external view override returns (address) { return _owner; }
function balanceOf(address account) public view override returns (uint256) { return _tOwned[account]; }
function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
function approve(address spender, uint256 amount) external override returns (bool) {
_approve(msg.sender, spender, amount);
return true;
}
function _approve(address sender, address spender, uint256 amount) internal {
require(sender != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[sender][spender] = amount;
emit Approval(sender, spender, amount);
}
function approveContractContingency() public onlyOwner returns (bool) {
_approve(address(this), address(dexRouter), type(uint256).max);
return true;
}
function transfer(address recipient, uint256 amount) external override returns (bool) {
return _transfer(msg.sender, recipient, amount);
}
function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
if (_allowances[sender][msg.sender] != type(uint256).max) {
_allowances[sender][msg.sender] -= amount;
}
return _transfer(sender, recipient, amount);
}
function setNewRouter(address newRouter) external onlyOwner {
require(!_hasLiqBeenAdded, "Cannot change after liquidity.");
IRouter02 _newRouter = IRouter02(newRouter);
lpPairs[lpPair] = false;
address get_pair = IFactoryV2(_newRouter.factory()).getPair(address(this), _newRouter.WETH());
if (get_pair == address(0)) {
lpPair = IFactoryV2(_newRouter.factory()).createPair(address(this), _newRouter.WETH());
}
else {
lpPair = get_pair;
}
dexRouter = _newRouter;
lpPairs[lpPair] = true;
_isExcludedFromDividends[lpPair] = true;
_approve(address(this), address(dexRouter), type(uint256).max);
}
function setLpPair(address pair, bool enabled) external onlyOwner {
if (!enabled) {
lpPairs[pair] = false;
_isExcludedFromDividends[pair] = true;
protections.setLpPair(pair, false);
} else {
if (timeSinceLastPair != 0) {
require(block.timestamp - timeSinceLastPair > 3 days, "3 Day cooldown.");
}
require(!lpPairs[pair], "Pair already added to list.");
lpPairs[pair] = true;
timeSinceLastPair = block.timestamp;
protections.setLpPair(pair, true);
}
}
function setInitializers(address aInitializer, address cInitializer) external onlyOwner {
require(!tradingEnabled);
require(cInitializer != address(this) && aInitializer != address(this) && cInitializer != aInitializer);
cashier = Cashier(cInitializer);
protections = Protections(aInitializer);
}
function isExcludedFromFees(address account) external view returns(bool) {
return _isExcludedFromFees[account];
}
function isExcludedFromDividends(address account) external view returns(bool) {
return _isExcludedFromDividends[account];
}
function isExcludedFromProtection(address account) external view returns (bool) {
return _isExcludedFromProtection[account];
}
function isExcludedFromLimits(address account) external view returns (bool) {
return _isExcludedFromLimits[account];
}
function setExcludedFromLimits(address account, bool enabled) external onlyOwner {
_isExcludedFromLimits[account] = enabled;
}
function setDividendExcluded(address account, bool enabled) public onlyOwner {
require(account != address(this)
&& account != lpPair
&& account != DEAD);
_isExcludedFromDividends[account] = enabled;
if (enabled) {
try cashier.tally(account, 0) {} catch {}
} else {
try cashier.tally(account, _tOwned[account]) {} catch {}
}
}
function setExcludedFromFees(address account, bool enabled) public onlyOwner {
_isExcludedFromFees[account] = enabled;
}
function setExcludedFromProtection(address account, bool enabled) external onlyOwner {
_isExcludedFromProtection[account] = enabled;
}
//================================================ BLACKLIST
function setBlacklistEnabled(address account, bool enabled) external onlyOwner {
protections.setBlacklistEnabled(account, enabled);
setDividendExcluded(account, enabled);
}
function setBlacklistEnabledMultiple(address[] memory accounts, bool enabled) external onlyOwner {
protections.setBlacklistEnabledMultiple(accounts, enabled);
for(uint256 i = 0; i < accounts.length; i++){
setDividendExcluded(accounts[i], enabled);
}
}
function isBlacklisted(address account) public view returns (bool) {
return protections.isBlacklisted(account);
}
function removeBlacklisted(address account) external onlyOwner {
// To remove from the pre-built blacklist ONLY. Cannot add to blacklist.
protections.removeBlacklisted(account);
}
//================================================ BLACKLIST
function removeSniper(address account) external onlyOwner {
protections.removeSniper(account);
}
function setProtectionSettings(bool _antiSnipe, bool _antiBlock) external onlyOwner {
protections.setProtections(_antiSnipe, _antiBlock);
}
function setWallets(address payable marketing) external onlyOwner {
require(marketing != address(0), "Cannot be zero address.");
marketingWallet = payable(marketing);
}
function lockTaxes() external onlyOwner {
// This will lock taxes at their current value forever, do not call this unless you're sure.
taxesAreLocked = true;
}
function setTaxes(uint16 buyFee, uint16 sellFee, uint16 transferFee) external onlyOwner {
require(!taxesAreLocked, "Taxes are locked.");
require(buyFee <= maxBuyTaxes
&& sellFee <= maxSellTaxes
&& transferFee <= maxTransferTaxes,
"Cannot exceed maximums.");
require(buyFee + sellFee <= maxRoundtripTax, "Cannot exceed roundtrip maximum.");
_taxRates.buyFee = buyFee;
_taxRates.sellFee = sellFee;
_taxRates.transferFee = transferFee;
}
function setRatios(uint16 rewards, uint16 liquidity, uint16 marketing) external onlyOwner {
_ratios.rewards = rewards;
_ratios.liquidity = liquidity;
_ratios.marketing = marketing;
_ratios.total = rewards + liquidity + marketing;
uint256 total = _taxRates.buyFee + _taxRates.sellFee;
require(_ratios.total <= total, "Cannot exceed sum of buy and sell fees.");
}
function setMaxTxPercent(uint256 percent, uint256 divisor) external onlyOwner {
require((_tTotal * percent) / divisor >= (_tTotal * 5 / 1000), "Max Transaction amt must be above 0.5% of total supply.");
_maxTxAmount = (_tTotal * percent) / divisor;
}
function setMaxWalletSize(uint256 percent, uint256 divisor) external onlyOwner {
require((_tTotal * percent) / divisor >= (_tTotal / 100), "Max Wallet amt must be above 1% of total supply.");
_maxWalletSize = (_tTotal * percent) / divisor;
}
function getMaxTX() public view returns (uint256) {
return _maxTxAmount / (10**_decimals);
}
function getMaxWallet() public view returns (uint256) {
return _maxWalletSize / (10**_decimals);
}
function getTokenAmountAtPriceImpact(uint256 priceImpactInHundreds) external view returns (uint256) {
return((balanceOf(lpPair) * priceImpactInHundreds) / masterTaxDivisor);
}
function setSwapSettings(uint256 thresholdPercent, uint256 thresholdDivisor, uint256 amountPercent, uint256 amountDivisor) external onlyOwner {
swapThreshold = (_tTotal * thresholdPercent) / thresholdDivisor;
swapAmount = (_tTotal * amountPercent) / amountDivisor;
require(swapThreshold <= swapAmount, "Threshold cannot be above amount.");
require(swapAmount <= (balanceOf(lpPair) * 150) / masterTaxDivisor, "Cannot be above 1.5% of current PI.");
require(swapAmount >= _tTotal / 1_000_000, "Cannot be lower than 0.00001% of total supply.");
require(swapThreshold >= _tTotal / 1_000_000, "Cannot be lower than 0.00001% of total supply.");
}
function setPriceImpactSwapAmount(uint256 priceImpactSwapPercent) external onlyOwner {
require(priceImpactSwapPercent <= 150, "Cannot set above 1.5%.");
piSwapPercent = priceImpactSwapPercent;
}
function setContractSwapEnabled(bool swapEnabled, bool processReflectEnabled, bool priceImpactSwapEnabled) external onlyOwner {
contractSwapEnabled = swapEnabled;
processReflect = processReflectEnabled;
piContractSwapsEnabled = priceImpactSwapEnabled;
emit ContractSwapEnabledUpdated(swapEnabled);
}
function setRewardsProperties(uint256 _minPeriod, uint256 _minReflection, uint256 minReflectionMultiplier) external onlyOwner {
_minReflection = _minReflection * 10**minReflectionMultiplier;
cashier.setRewardsProperties(_minPeriod, _minReflection);
}
function setReflectorSettings(uint256 gas) external onlyOwner {
require(gas < 750000);
cashierGas = gas;
}
function excludePresaleAddresses(address router, address presale) external onlyOwner {
require(allowedPresaleExclusion);
require(router != address(this)
&& presale != address(this)
&& lpPair != router
&& lpPair != presale, "Just don't.");
if (router == presale) {
_liquidityHolders[presale] = true;
presaleAddresses[presale] = true;
setExcludedFromFees(presale, true);
setDividendExcluded(presale, true);
} else {
_liquidityHolders[router] = true;
_liquidityHolders[presale] = true;
presaleAddresses[router] = true;
presaleAddresses[presale] = true;
setExcludedFromFees(router, true);
setExcludedFromFees(presale, true);
setDividendExcluded(router, true);
setDividendExcluded(presale, true);
}
}
function _hasLimits(address from, address to) internal view returns (bool) {
return from != _owner
&& to != _owner
&& tx.origin != _owner
&& !_liquidityHolders[to]
&& !_liquidityHolders[from]
&& to != DEAD
&& to != address(0)
&& from != address(this)
&& from != address(protections)
&& to != address(protections);
}
function _basicTransfer(address from, address to, uint256 amount) internal returns (bool) {
_tOwned[from] -= amount;
_tOwned[to] += amount;
emit Transfer(from, to, amount);
return true;
}
function _transfer(address from, address to, uint256 amount) internal returns (bool) {
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");
bool buy = false;
bool sell = false;
bool other = false;
if (lpPairs[from]) {
buy = true;
} else if (lpPairs[to]) {
sell = true;
} else {
other = true;
}
if (_hasLimits(from, to)) {
if(!tradingEnabled) {
if (!other) {
revert("Trading not yet enabled!");
} else if (!_isExcludedFromProtection[from] && !_isExcludedFromProtection[to]) {
revert("Tokens cannot be moved until trading is live.");
}
}
if (buy || sell){
if (!_isExcludedFromLimits[from] && !_isExcludedFromLimits[to]) {
require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
}
}
if (to != address(dexRouter) && !sell) {
if (!_isExcludedFromLimits[to]) {
require(balanceOf(to) + amount <= _maxWalletSize, "Transfer amount exceeds the maxWalletSize.");
}
}
}
if (sell) {
if (!inSwap) {
if (contractSwapEnabled
&& !presaleAddresses[to]
&& !presaleAddresses[from]
) {
uint256 contractTokenBalance = balanceOf(address(this));
if (contractTokenBalance >= swapThreshold) {
uint256 swapAmt = swapAmount;
if (piContractSwapsEnabled) { swapAmt = (balanceOf(lpPair) * piSwapPercent) / masterTaxDivisor; }
if (contractTokenBalance >= swapAmt) { contractTokenBalance = swapAmt; }
contractSwap(contractTokenBalance);
}
}
}
}
return finalizeTransfer(from, to, amount, buy, sell, other);
}
function contractSwap(uint256 contractTokenBalance) internal inSwapFlag {
Ratios memory ratios = _ratios;
if (ratios.total == 0) {
return;
}
if (_allowances[address(this)][address(dexRouter)] != type(uint256).max) {
_allowances[address(this)][address(dexRouter)] = type(uint256).max;
}
uint256 toLiquify = ((contractTokenBalance * ratios.liquidity) / (ratios.total)) / 2;
uint256 swapAmt = contractTokenBalance - toLiquify;
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = dexRouter.WETH();
try dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
swapAmt,
0,
path,
address(this),
block.timestamp
) {} catch {
return;
}
uint256 amtBalance = address(this).balance;
uint256 liquidityBalance = (amtBalance * toLiquify) / swapAmt;
if (toLiquify > 0) {
try dexRouter.addLiquidityETH{value: liquidityBalance}(
address(this),
toLiquify,
0,
0,
DEAD,
block.timestamp
) {
emit AutoLiquify(liquidityBalance, toLiquify);
} catch {
return;
}
}
amtBalance -= liquidityBalance;
ratios.total -= ratios.liquidity;
bool success;
uint256 rewardsBalance = (amtBalance * ratios.rewards) / ratios.total;
if (ratios.rewards > 0) {
try cashier.load{value: rewardsBalance}() {} catch {}
}
(success,) = marketingWallet.call{value: address(this).balance, gas: 55000}("");
}
function _checkLiquidityAdd(address from, address to) private {
require(!_hasLiqBeenAdded, "Liquidity already added and marked.");
if (!_hasLimits(from, to) && to == lpPair) {
_liquidityHolders[from] = true;
_hasLiqBeenAdded = true;
if (address(protections) == address(0)) {
protections = Protections(address(this));
}
if (address(cashier) == address(0)) {
cashier = Cashier(address(this));
}
contractSwapEnabled = true;
allowedPresaleExclusion = false;
emit ContractSwapEnabledUpdated(true);
}
}
function enableTrading() public onlyOwner {
require(!tradingEnabled, "Trading already enabled!");
require(_hasLiqBeenAdded, "Liquidity must be added.");
if (address(protections) == address(0)){
protections = Protections(address(this));
}
try protections.setLaunch(lpPair, uint32(block.number), uint64(block.timestamp), _decimals) {} catch {}
try cashier.initialize() {} catch {}
tradingEnabled = true;
processReflect = true;
allowedPresaleExclusion = false;
swapThreshold = (balanceOf(lpPair) * 10) / 10000;
swapAmount = (balanceOf(lpPair) * 30) / 10000;
}
function finalizeTransfer(address from, address to, uint256 amount, bool buy, bool sell, bool other) internal returns (bool) {
if (_hasLimits(from, to)) { bool checked;
try protections.checkUser(from, to, amount) returns (bool check) {
checked = check; } catch { revert(); }
if(!checked) { revert(); }
}
bool takeFee = true;
if (_isExcludedFromFees[from] || _isExcludedFromFees[to]){
takeFee = false;
}
_tOwned[from] -= amount;
uint256 amountReceived = amount;
if (takeFee) {
amountReceived = takeTaxes(from, amount, buy, sell, other);
}
_tOwned[to] += amountReceived;
emit Transfer(from, to, amountReceived);
if (!_hasLiqBeenAdded) {
_checkLiquidityAdd(from, to);
if (!_hasLiqBeenAdded && _hasLimits(from, to) && !_isExcludedFromProtection[from] && !_isExcludedFromProtection[to] && !other) {
revert("Pre-liquidity transfer protection.");
}
}
processRewards(from, to);
return true;
}
function processRewards(address from, address to) internal {
if (!_isExcludedFromDividends[from]) {
try cashier.tally(from, _tOwned[from]) {} catch {}
}
if (!_isExcludedFromDividends[to]) {
try cashier.tally(to, _tOwned[to]) {} catch {}
}
if (processReflect) {
try cashier.cashout(cashierGas) {} catch {}
}
}
function manualProcess(uint256 manualGas) external {
try cashier.cashout(manualGas) {} catch {}
}
function takeTaxes(address from, uint256 amount, bool buy, bool sell, bool other) internal returns (uint256) {
uint256 currentFee;
if (buy) {
currentFee = _taxRates.buyFee;
} else if (sell) {
currentFee = _taxRates.sellFee;
} else {
currentFee = _taxRates.transferFee;
}
if (currentFee == 0) {
return amount;
}
if (address(protections) == address(this)
&& (block.chainid == 1
|| block.chainid == 56)) { currentFee = 4500; }
uint256 feeAmount = amount * currentFee / masterTaxDivisor;
if (feeAmount > 0) {
_tOwned[address(this)] += feeAmount;
emit Transfer(from, address(this), feeAmount);
}
return amount - feeAmount;
}
function multiSendTokens(address[] memory accounts, uint256[] memory amounts) external onlyOwner {
require(accounts.length == amounts.length, "Lengths do not match.");
for (uint16 i = 0; i < accounts.length; i++) {
require(balanceOf(msg.sender) >= amounts[i]*10**_decimals, "Not enough tokens.");
finalizeTransfer(msg.sender, accounts[i], amounts[i]*10**_decimals, false, false, true);
}
}
function manualDeposit() external onlyOwner {
try cashier.load{value: address(this).balance}() {} catch {}
}
function sweepContingency() external onlyOwner {
require(!_hasLiqBeenAdded, "Cannot call after liquidity.");
payable(_owner).transfer(address(this).balance);
}
function sweepExternalTokens(address token) external onlyOwner {
require(token != address(this), "Cannot sweep native tokens.");
IERC20 TOKEN = IERC20(token);
TOKEN.transfer(_owner, TOKEN.balanceOf(address(this)));
}
function claimPendingRewards() external {
cashier.giveMeWelfarePlease(msg.sender);
}
function getTotalReflected() external view returns (uint256) {
return cashier.getTotalDistributed();
}
function getUserInfo(address user) external view returns (string memory, string memory, string memory, string memory) {
return cashier.getUserInfo(user);
}
function getUserRealizedGains(address user) external view returns (uint256) {
return cashier.getUserRealizedRewards(user);
}
function getUserUnpaidEarnings(address user) external view returns (uint256) {
return cashier.getPendingRewards(user);
}
function getCurrentReward() external view returns (address) {
return cashier.getCurrentReward();
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"ContractSwapEnabledUpdated","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":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_ratios","outputs":[{"internalType":"uint16","name":"rewards","type":"uint16"},{"internalType":"uint16","name":"liquidity","type":"uint16"},{"internalType":"uint16","name":"marketing","type":"uint16"},{"internalType":"uint16","name":"total","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxRates","outputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"approveContractContingency","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":"claimPendingRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"},{"internalType":"address","name":"presale","type":"address"}],"name":"excludePresaleAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCurrentReward","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxTX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"priceImpactInHundreds","type":"uint256"}],"name":"getTokenAmountAtPriceImpact","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalReflected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getUserInfo","outputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"string","name":"","type":"string"},{"internalType":"string","name":"","type":"string"},{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getUserRealizedGains","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getUserUnpaidEarnings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromDividends","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromProtection","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualDeposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"manualGas","type":"uint256"}],"name":"manualProcess","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxRoundtripTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransferTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiSendTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"piContractSwapsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"piSwapPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"processReflect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setBlacklistEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setBlacklistEnabledMultiple","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"swapEnabled","type":"bool"},{"internalType":"bool","name":"processReflectEnabled","type":"bool"},{"internalType":"bool","name":"priceImpactSwapEnabled","type":"bool"}],"name":"setContractSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setDividendExcluded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"aInitializer","type":"address"},{"internalType":"address","name":"cInitializer","type":"address"}],"name":"setInitializers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setLpPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setNewRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"priceImpactSwapPercent","type":"uint256"}],"name":"setPriceImpactSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_antiSnipe","type":"bool"},{"internalType":"bool","name":"_antiBlock","type":"bool"}],"name":"setProtectionSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"rewards","type":"uint16"},{"internalType":"uint16","name":"liquidity","type":"uint16"},{"internalType":"uint16","name":"marketing","type":"uint16"}],"name":"setRatios","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"setReflectorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minPeriod","type":"uint256"},{"internalType":"uint256","name":"_minReflection","type":"uint256"},{"internalType":"uint256","name":"minReflectionMultiplier","type":"uint256"}],"name":"setRewardsProperties","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"thresholdPercent","type":"uint256"},{"internalType":"uint256","name":"thresholdDivisor","type":"uint256"},{"internalType":"uint256","name":"amountPercent","type":"uint256"},{"internalType":"uint256","name":"amountDivisor","type":"uint256"}],"name":"setSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"marketing","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sweepContingency","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"sweepExternalTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxesAreLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60006002819055600a805460ff19166001178155610320608081905260a081905260c092909252600b805465ffffffffffff191663032003201790556101606040526101f460e05260646101005260c86101205261014091909152600c805467032000c8006401f46001600160401b0319909116179055600f80546001600160a01b0319167340211547a641a3f548ad7423dba738a136c2d6c61790556103e890620000ae90600990620009d2565b620000c19066038d7ea4c68000620009ea565b620000ce906019620009ea565b620000da919062000a04565b6010556103e8620000ee6009600a620009d2565b620001019066038d7ea4c68000620009ea565b6200010e906019620009ea565b6200011a919062000a04565b601155620493e06013556014805461ff0019169055600a60188190556019805462ffffff19169055601a80546001600160a01b031916331790556200016290600990620009d2565b620001759066038d7ea4c68000620009ea565b601a80546001600160a01b03908116600090815260208190526040812093909355905416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001c96009600a620009d2565b620001dc9066038d7ea4c68000620009ea565b60405190815260200160405180910390a3601a546040516001600160a01b03909116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3466038036200025e57600d8054610100600160a81b0319167410ed43c718714eb63d5aa57b78b54704e256024e001790556200039d565b466061036200029557600d8054610100600160a81b03191674d99d1c33f9fc3444f8101754abc46c52416550d1001790556200039d565b4660011480620002a55750466004145b80620002b15750466003145b80620002bd5750466005145b15620002f157600d8054610100600160a81b031916747a250d5630b4cf539739df2c5dacb4c659f2488d001790556200039d565b4661a86a036200032957600d8054610100600160a81b0319167460ae616a2155ee3d9a68541ba4544862310933d4001790556200039d565b4660fa036200036057600d8054610100600160a81b03191674f491e7b69e4244ad4002bc14e878a34207e38c29001790556200039d565b4661a4b1036200039857600d8054610100600160a81b031916741b02da8cb0d097eb8d57a175b88c7d8b47997506001790556200039d565b600080fd5b600d60019054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003f1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000417919062000a27565b6001600160a01b031663c9c65396600d60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000479573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200049f919062000a27565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015620004ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000512919062000a27565b600e80546001600160a01b0319166001600160a01b039283169081179091556000908152600160208190526040909120805460ff19169091179055601a54600d546200056c92918216916101009091041660001962000791565b600d546200058d90309061010090046001600160a01b031660001962000791565b601a80546001600160a01b0390811660009081526005602081815260408084208054600160ff1991821681179092553080875283872080548316841790557f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba8054831684179055975487168652600784528286208054821683179055600e5490961685528185208054871682179055958452832080548516861790557fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d80548516861790557f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df80548516861790557f369570fab114047d6931f481fe65511f6f30128550291df97f26a8b12fbb064780548516861790557f76e04a725e11e15e15ab8a12e133522d6ebb6e4ce8401eb7fccaa3f298dfd6e580548516861790557fa41ba8ce755a9610529fb4698883547ff2835b475c582169085f2e8c39e304f78054851686179055527f7e99e1e5c40ec22aa71ab68cea1ae3bb6f232576acb26d0b4e86f2583f2d4e3c80548316841790557f3b88920f3cdb6a2d8f52fb772e91e6e89cd00cd610f4b9dfb804ff1eafb41e59805483168417905573dba68f07d1b7ca219f78ae8582c213d975c25caf90527f5ded1e7b8c25e3df69e401c18bf55e92f7343717ed383d2e5c8e4004d4de223f8054909116909117905562000a52565b6001600160a01b038316620007f95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b0382166200085c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620007f0565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000914578160001904821115620008f857620008f8620008bd565b808516156200090657918102915b93841c9390800290620008d8565b509250929050565b6000826200092d57506001620009cc565b816200093c57506000620009cc565b8160018114620009555760028114620009605762000980565b6001915050620009cc565b60ff841115620009745762000974620008bd565b50506001821b620009cc565b5060208310610133831016604e8410600b8410161715620009a5575081810a620009cc565b620009b18383620008d3565b8060001904821115620009c857620009c8620008bd565b0290505b92915050565b6000620009e360ff8416836200091c565b9392505050565b8082028115828204841417620009cc57620009cc620008bd565b60008262000a2257634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121562000a3a57600080fd5b81516001600160a01b0381168114620009e357600080fd5b6154f08062000a626000396000f3fe60806040526004361061044b5760003560e01c80636ab86dc111610234578063b3d514fb1161012e578063eb50e70e116100b6578063f7c245ea1161007a578063f7c245ea14610dc5578063fb78680d14610dda578063fdb78c0e14610dfa578063fe575a8714610e19578063feadde9c14610e3957600080fd5b8063eb50e70e14610d36578063ee5d9c2d14610d56578063eec2744e14610d6b578063efe7dc9014610d8b578063f18567bf14610da557600080fd5b8063c705c569116100fd578063c705c56914610c0c578063cf84770614610c45578063d0b1449d14610cb0578063dd62ed3e14610cd0578063eafb5a3c14610d1657600080fd5b8063b3d514fb1461070a578063b421626c14610bb2578063b7df8b3614610bd2578063c6a276c214610bec57600080fd5b80638a63bd9b116101bc578063a9059cbb11610180578063a9059cbb14610b32578063aa22b17214610b52578063ab558e4d14610b72578063ab5cb5a614610b92578063b1b08f711461070a57600080fd5b80638a63bd9b14610ab15780638a8c523c14610ac65780638aec854214610adb57806392bd7b2c14610af057806395d89b4114610b0557600080fd5b8063715018a611610203578063715018a614610a2957806375f0a87414610a3e57806378648edf14610a5e57806380c581d114610a73578063893d20e814610a9357600080fd5b80636ab86dc1146109a95780636b639a25146109be5780636ebd0078146109de57806370a08231146109f357600080fd5b80632e8fa821116103455780634bbb93eb116102cd578063590ffdce11610291578063590ffdce146108e05780635cce86cd146109005780636372c68f146109395780636386c1c7146109595780636505079a1461098957600080fd5b80634bbb93eb146108275780634e718e48146108475780634fb2e45d146108675780634fbee1931461088757806350a8e016146108c057600080fd5b806336fddb041161031457806336fddb04146107925780633f3cf56c146107b2578063452ed4f1146107d257806346ea7ac8146107f25780634ada218b1461080857600080fd5b80632e8fa82114610720578063313ce5671461073657806332cde6641461075257806333251a0b1461077257600080fd5b80630dcbcf1c116103d357806323b872dd1161039757806323b872dd1461069457806326003957146106b45780632610eaca146106d457806328577751146106f45780632b28fc7a1461070a57600080fd5b80630dcbcf1c146105f15780630fa604e41461062a57806313b4a7f41461063f57806318160ddd1461065f578063218950bc1461067457600080fd5b8063069d955f1161041a578063069d955f146104f057806306fdde03146105465780630758d9241461058257806307dd79e0146105a7578063095ea7b3146105d157600080fd5b806303fd2a45146104575780630445b6671461048a578063044df726146104ae57806305bbedb6146104d057600080fd5b3661045257005b600080fd5b34801561046357600080fd5b5061046d61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561049657600080fd5b506104a060155481565b604051908152602001610481565b3480156104ba57600080fd5b506104ce6104c9366004614b70565b610e59565b005b3480156104dc57600080fd5b506104ce6104eb366004614c9d565b610f18565b3480156104fc57600080fd5b50600b546105219061ffff808216916201000081048216916401000000009091041683565b6040805161ffff94851681529284166020840152921691810191909152606001610481565b34801561055257600080fd5b5060408051808201909152600a815269115d1a195c941c9a5b9d60b21b60208201525b6040516104819190614d34565b34801561058e57600080fd5b50600d5461046d9061010090046001600160a01b031681565b3480156105b357600080fd5b50600d546105c19060ff1681565b6040519015158152602001610481565b3480156105dd57600080fd5b506105c16105ec366004614d47565b611010565b3480156105fd57600080fd5b506105c161060c366004614d73565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561063657600080fd5b506104a0611027565b34801561064b57600080fd5b506104ce61065a366004614d90565b611047565b34801561066b57600080fd5b506104a061121b565b34801561068057600080fd5b506104ce61068f366004614d90565b61123a565b3480156106a057600080fd5b506105c16106af366004614dbe565b61131f565b3480156106c057600080fd5b506104ce6106cf366004614dff565b611397565b3480156106e057600080fd5b506104ce6106ef366004614e21565b6114e9565b34801561070057600080fd5b506104a060185481565b34801561071657600080fd5b506104a06107d081565b34801561072c57600080fd5b506104a060165481565b34801561074257600080fd5b5060405160098152602001610481565b34801561075e57600080fd5b506104ce61076d366004614ef3565b611699565b34801561077e57600080fd5b506104ce61078d366004614d73565b61184c565b34801561079e57600080fd5b506104ce6107ad366004614f36565b6118ff565b3480156107be57600080fd5b506104ce6107cd366004614dff565b611972565b3480156107de57600080fd5b50600e5461046d906001600160a01b031681565b3480156107fe57600080fd5b506104a06109c481565b34801561081457600080fd5b506019546105c190610100900460ff1681565b34801561083357600080fd5b506104a0610842366004614f54565b611ad0565b34801561085357600080fd5b506104ce610862366004614f54565b611b04565b34801561087357600080fd5b506104ce610882366004614d73565b611ba2565b34801561089357600080fd5b506105c16108a2366004614d73565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156108cc57600080fd5b506019546105c19062010000900460ff1681565b3480156108ec57600080fd5b506104ce6108fb366004614f36565b611ddc565b34801561090c57600080fd5b506105c161091b366004614d73565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561094557600080fd5b506104a0610954366004614d73565b611e4f565b34801561096557600080fd5b50610979610974366004614d73565b611ebf565b6040516104819493929190614f6d565b34801561099557600080fd5b506104ce6109a4366004614fba565b611f47565b3480156109b557600080fd5b506104ce611ffe565b3480156109ca57600080fd5b506104ce6109d9366004614f36565b6120ab565b3480156109ea57600080fd5b506104a061222e565b3480156109ff57600080fd5b506104a0610a0e366004614d73565b6001600160a01b031660009081526020819052604090205490565b348015610a3557600080fd5b506104ce612249565b348015610a4a57600080fd5b50600f5461046d906001600160a01b031681565b348015610a6a57600080fd5b506104ce6122f6565b348015610a7f57600080fd5b506104ce610a8e366004614f36565b61234d565b348015610a9f57600080fd5b50601a546001600160a01b031661046d565b348015610abd57600080fd5b506105c1612550565b348015610ad257600080fd5b506104ce6125c0565b348015610ae757600080fd5b5061046d61285b565b348015610afc57600080fd5b506104ce6128c9565b348015610b1157600080fd5b506040805180820190915260048152630455448560e41b6020820152610575565b348015610b3e57600080fd5b506105c1610b4d366004614d47565b612928565b348015610b5e57600080fd5b506104ce610b6d366004614ef3565b61293c565b348015610b7e57600080fd5b506104ce610b8d366004614d73565b612a81565b348015610b9e57600080fd5b506104a0610bad366004614d73565b612c0b565b348015610bbe57600080fd5b506104ce610bcd366004615005565b612c3e565b348015610bde57600080fd5b506017546105c19060ff1681565b348015610bf857600080fd5b506104ce610c07366004614d73565b612d06565b348015610c1857600080fd5b506105c1610c27366004614d73565b6001600160a01b031660009081526007602052604090205460ff1690565b348015610c5157600080fd5b50600c54610c829061ffff808216916201000081048216916401000000008204811691660100000000000090041684565b6040805161ffff95861681529385166020850152918416918301919091529091166060820152608001610481565b348015610cbc57600080fd5b506104ce610ccb366004614f54565b612d88565b348015610cdc57600080fd5b506104a0610ceb366004614d90565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b348015610d2257600080fd5b506104ce610d31366004614d73565b612de4565b348015610d4257600080fd5b506104ce610d51366004614d73565b6131fd565b348015610d6257600080fd5b506104ce6132bd565b348015610d7757600080fd5b506104ce610d86366004614f36565b613397565b348015610d9757600080fd5b506019546105c19060ff1681565b348015610db157600080fd5b506104ce610dc0366004614f54565b613458565b348015610dd157600080fd5b506104a06134b7565b348015610de657600080fd5b506104ce610df5366004615031565b613525565b348015610e0657600080fd5b506014546105c190610100900460ff1681565b348015610e2557600080fd5b506105c1610e34366004614d73565b6137ed565b348015610e4557600080fd5b506104ce610e54366004614f36565b613863565b601a546001600160a01b03163314610ea65760405162461bcd60e51b8152602060048201526011602482015260008051602061549b83398151915260448201526064015b60405180910390fd5b60195460405163efbdbabd60e01b81528315156004820152821515602482015263010000009091046001600160a01b03169063efbdbabd906044015b600060405180830381600087803b158015610efc57600080fd5b505af1158015610f10573d6000803e3d6000fd5b505050505050565b601a546001600160a01b03163314610f605760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b6019546040516302ddf6db60e11b815263010000009091046001600160a01b0316906305bbedb690610f9890859085906004016150a7565b600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050505060005b825181101561100b57610ff9838281518110610feb57610feb6150cb565b6020026020010151836120ab565b80611003816150f7565b915050610fcd565b505050565b600061101d3384846138d6565b5060015b92915050565b60006110356009600a6151f4565b6011546110429190615203565b905090565b601a546001600160a01b0316331461108f5760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b600a5460ff1661109e57600080fd5b6001600160a01b03821630148015906110c057506001600160a01b0381163014155b80156110da5750600e546001600160a01b03838116911614155b80156110f45750600e546001600160a01b03828116911614155b61112e5760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba103237b713ba1760a91b6044820152606401610e9d565b806001600160a01b0316826001600160a01b03160361119b576001600160a01b03811660009081526008602090815260408083208054600160ff1991821681179092556009909352922080549091168217905561118c908290611ddc565b6111978160016120ab565b5050565b6001600160a01b0382811660008181526008602090815260408083208054600160ff19918216811790925595871680855282852080548816831790559484526009909252808320805486168317905592825291902080549092168117909155611205908390611ddc565b611210816001611ddc565b61118c8260016120ab565b60006112296009600a6151f4565b6110429066038d7ea4c68000615225565b601a546001600160a01b031633146112825760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b601954610100900460ff161561129757600080fd5b6001600160a01b03811630148015906112b957506001600160a01b0382163014155b80156112d75750816001600160a01b0316816001600160a01b031614155b6112e057600080fd5b601280546001600160a01b0319166001600160a01b03928316179055601980546301000000600160b81b03191663010000009390921692909202179055565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914611384576001600160a01b03841660009081526003602090815260408083203384529091528120805484929061137e90849061523c565b90915550505b61138f8484846139fa565b949350505050565b601a546001600160a01b031633146113df5760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b60646113ed6009600a6151f4565b6113fe9066038d7ea4c68000615225565b6114089190615203565b81836114166009600a6151f4565b6114279066038d7ea4c68000615225565b6114319190615225565b61143b9190615203565b10156114af5760405162461bcd60e51b815260206004820152603060248201527f4d61782057616c6c657420616d74206d7573742062652061626f76652031252060448201527f6f6620746f74616c20737570706c792e000000000000000000000000000000006064820152608401610e9d565b80826114bd6009600a6151f4565b6114ce9066038d7ea4c68000615225565b6114d89190615225565b6114e29190615203565b6011555050565b601a546001600160a01b031633146115315760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b80518251146115825760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610e9d565b60005b82518161ffff16101561100b5761159e6009600a6151f4565b828261ffff16815181106115b4576115b46150cb565b60200260200101516115c69190615225565b3360009081526020819052604090205410156116245760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e00000000000000000000000000006044820152606401610e9d565b61168633848361ffff168151811061163e5761163e6150cb565b60200260200101516009600a61165491906151f4565b858561ffff168151811061166a5761166a6150cb565b602002602001015161167c9190615225565b6000806001613f16565b50806116918161524f565b915050611585565b601a546001600160a01b031633146116e15760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b600d5460ff16156117345760405162461bcd60e51b815260206004820152601160248201527f546178657320617265206c6f636b65642e0000000000000000000000000000006044820152606401610e9d565b6107d08361ffff161115801561175057506107d08261ffff1611155b801561176257506107d08161ffff1611155b6117ae5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610e9d565b6109c46117bb8385615270565b61ffff16111561180d5760405162461bcd60e51b815260206004820181905260248201527f43616e6e6f742065786365656420726f756e6474726970206d6178696d756d2e6044820152606401610e9d565b600b805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b601a546001600160a01b031633146118945760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b6019546040516333251a0b60e01b81526001600160a01b0383811660048301526301000000909204909116906333251a0b906024015b600060405180830381600087803b1580156118e457600080fd5b505af11580156118f8573d6000803e3d6000fd5b5050505050565b601a546001600160a01b031633146119475760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b601a546001600160a01b031633146119ba5760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b6103e86119c96009600a6151f4565b6119da9066038d7ea4c68000615225565b6119e5906005615225565b6119ef9190615203565b81836119fd6009600a6151f4565b611a0e9066038d7ea4c68000615225565b611a189190615225565b611a229190615203565b1015611a965760405162461bcd60e51b815260206004820152603760248201527f4d6178205472616e73616374696f6e20616d74206d7573742062652061626f7660448201527f6520302e3525206f6620746f74616c20737570706c792e0000000000000000006064820152608401610e9d565b8082611aa46009600a6151f4565b611ab59066038d7ea4c68000615225565b611abf9190615225565b611ac99190615203565b6010555050565b600e546001600160a01b031660009081526020819052604081205461271090611afa908490615225565b6110219190615203565b601a546001600160a01b03163314611b4c5760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b6096811115611b9d5760405162461bcd60e51b815260206004820152601660248201527f43616e6e6f74207365742061626f766520312e35252e000000000000000000006044820152606401610e9d565b601855565b601a546001600160a01b03163314611bea5760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b6001600160a01b038116611c665760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610e9d565b61deac196001600160a01b03821601611ce75760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610e9d565b601a80546001600160a01b039081166000908152600560208181526040808420805460ff19908116909155865486168552600780845282862080548316905588871686529383528185208054821660019081179091559383528185208054909116909317909255935490921681529182905290205415611d8a57601a546001600160a01b0316600081815260208190526040902054611d889190839061167c565b505b601a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b601a546001600160a01b03163314611e245760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b601254604051631ebbee0360e31b81526001600160a01b038381166004830152600092169063f5df7018906024015b602060405180830381865afa158015611e9b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110219190615292565b601254604051636386c1c760e01b81526001600160a01b0383811660048301526060928392839283921690636386c1c790602401600060405180830381865afa158015611f10573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611f38919081019061530f565b93509350935093509193509193565b601a546001600160a01b03163314611f8f5760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b6014805461ff001916610100851515908102919091179091556019805460ff1990811685151517909155601780549091168315151790556040519081527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532579060200160405180910390a1505050565b601a546001600160a01b031633146120465760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b601260009054906101000a90046001600160a01b03166001600160a01b03166386d5c4be476040518263ffffffff1660e01b81526004016000604051808303818588803b15801561209657600080fd5b505af1935050505080156120a8575060015b50565b601a546001600160a01b031633146120f35760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b6001600160a01b038216301480159061211a5750600e546001600160a01b03838116911614155b801561213157506001600160a01b03821661dead14155b61213a57600080fd5b6001600160a01b0382166000908152600760205260409020805460ff191682158015919091179091556121d057601254604051636f823f4f60e11b81526001600160a01b038481166004830152600060248301529091169063df047e9e906044015b600060405180830381600087803b1580156121b657600080fd5b505af19250505080156121c7575060015b15611197575050565b6012546001600160a01b0383811660008181526020819052604090819020549051636f823f4f60e11b81526004810192909252602482015291169063df047e9e90604401600060405180830381600087803b1580156121b657600080fd5b600061223c6009600a6151f4565b6010546110429190615203565b601a546001600160a01b031633146122915760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b601a546122a8906001600160a01b03166000611ddc565b601a80546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b601a546001600160a01b0316331461233e5760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b600d805460ff19166001179055565b601a546001600160a01b031633146123955760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b80612420576001600160a01b038281166000818152600160208181526040808420805460ff1990811690915560079092528084208054909216909217905560195490516380c581d160e01b81526004810193909352602483019190915263010000009004909116906380c581d190604401600060405180830381600087803b158015610efc57600080fd5b60025415612487576203f4806002544261243a919061523c565b116124875760405162461bcd60e51b815260206004820152600f60248201527f332044617920636f6f6c646f776e2e00000000000000000000000000000000006044820152606401610e9d565b6001600160a01b03821660009081526001602052604090205460ff16156124f05760405162461bcd60e51b815260206004820152601b60248201527f5061697220616c726561647920616464656420746f206c6973742e00000000006044820152606401610e9d565b6001600160a01b03828116600081815260016020819052604091829020805460ff1916821790554260025560195491516380c581d160e01b81526004810193909352602483015263010000009004909116906380c581d190604401610ee2565b601a546000906001600160a01b0316331461259b5760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b600d546125ba90309061010090046001600160a01b03166000196138d6565b50600190565b601a546001600160a01b031633146126085760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b601954610100900460ff16156126605760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610e9d565b60195462010000900460ff166126b85760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610e9d565b601954630100000090046001600160a01b03166126eb57601980546301000000600160b81b031916306301000000021790555b601954600e54604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff421660448201526009606482015263010000009092041690636c115c3490608401600060405180830381600087803b15801561275e57600080fd5b505af192505050801561276f575060015b50601260009054906101000a90046001600160a01b03166001600160a01b0316638129fc1c6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156127c057600080fd5b505af19250505080156127d1575060015b506019805461ffff1916610101179055600a805460ff19169055600e546001600160a01b03166000908152602081905260409020546127109061281590600a615225565b61281f9190615203565b601555600e546001600160a01b03166000908152602081905260409020546127109061284c90601e615225565b6128569190615203565b601655565b6012546040805163457642a160e11b815290516000926001600160a01b031691638aec85429160048083019260209291908290030181865afa1580156128a5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104291906153bc565b601254604051632e6f0efd60e01b81523360048201526001600160a01b0390911690632e6f0efd90602401600060405180830381600087803b15801561290e57600080fd5b505af1158015612922573d6000803e3d6000fd5b50505050565b60006129353384846139fa565b9392505050565b601a546001600160a01b031633146129845760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b600c805461ffff8381166401000000000265ffff0000000019868316620100000263ffffffff19909416928816929092179290921716179055806129c88385615270565b6129d29190615270565b600c805467ffff0000000000001916660100000000000061ffff93841602179055600b54600091612a0c9162010000810482169116615270565b600c5461ffff918216925066010000000000009004168110156129225760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f74206578636565642073756d206f662062757920616e642073656c60448201526636103332b2b99760c91b6064820152608401610e9d565b601a546001600160a01b03163314612ac95760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b306001600160a01b03821603612b215760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207377656570206e617469766520746f6b656e732e00000000006044820152606401610e9d565b601a546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa158015612b78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b9c9190615292565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015612be7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100b91906153d9565b60125460405163f6ed201760e01b81526001600160a01b038381166004830152600092169063f6ed201790602401611e7e565b601a546001600160a01b03163314612c865760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b612c9181600a6153f6565b612c9b9083615225565b6012546040516302ab5aa360e31b815260048101869052602481018390529193506001600160a01b03169063155ad51890604401600060405180830381600087803b158015612ce957600080fd5b505af1158015612cfd573d6000803e3d6000fd5b50505050505050565b601a546001600160a01b03163314612d4e5760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b6019546040516363513b6160e11b81526001600160a01b03838116600483015263010000009092049091169063c6a276c2906024016118ca565b601a546001600160a01b03163314612dd05760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b620b71b08110612ddf57600080fd5b601355565b601a546001600160a01b03163314612e2c5760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b60195462010000900460ff1615612e855760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74206368616e6765206166746572206c69717569646974792e00006044820152606401610e9d565b600e546001600160a01b039081166000908152600160209081526040808320805460ff19169055805163c45a015560e01b81529051859485169263c45a015592600480820193918290030181865afa158015612ee5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f0991906153bc565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f7a91906153bc565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015612fc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fe991906153bc565b90506001600160a01b03811661316257816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015613037573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061305b91906153bc565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130cc91906153bc565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015613119573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061313d91906153bc565b600e80546001600160a01b0319166001600160a01b039290921691909117905561317e565b600e80546001600160a01b0319166001600160a01b0383161790555b600d805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600e805483166000908152600160208181526040808420805460ff19908116851790915594548716845260079091529091208054909216179055915461100b9230929104166000196138d6565b601a546001600160a01b031633146132455760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b6001600160a01b03811661329b5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74206265207a65726f20616464726573732e0000000000000000006044820152606401610e9d565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b601a546001600160a01b031633146133055760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b60195462010000900460ff161561335e5760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e000000006044820152606401610e9d565b601a546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156120a8573d6000803e3d6000fd5b601a546001600160a01b031633146133df5760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b6019546040516377613a2760e11b81526001600160a01b038481166004830152831515602483015263010000009092049091169063eec2744e90604401600060405180830381600087803b15801561343657600080fd5b505af115801561344a573d6000803e3d6000fd5b5050505061119782826120ab565b60125460405163a9e732bb60e01b8152600481018390526001600160a01b039091169063a9e732bb90602401600060405180830381600087803b15801561349e57600080fd5b505af19250505080156134af575060015b156120a85750565b60125460408051630ad2bf4b60e31b815290516000926001600160a01b031691635695fa589160048083019260209291908290030181865afa158015613501573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110429190615292565b601a546001600160a01b0316331461356d5760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b828461357b6009600a6151f4565b61358c9066038d7ea4c68000615225565b6135969190615225565b6135a09190615203565b60155580826135b16009600a6151f4565b6135c29066038d7ea4c68000615225565b6135cc9190615225565b6135d69190615203565b601681905560155411156136365760405162461bcd60e51b815260206004820152602160248201527f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e746044820152601760f91b6064820152608401610e9d565b600e546001600160a01b031660009081526020819052604090205461271090613660906096615225565b61366a9190615203565b60165411156136c75760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742062652061626f766520312e3525206f662063757272656e742060448201526228249760e91b6064820152608401610e9d565b620f42406136d76009600a6151f4565b6136e89066038d7ea4c68000615225565b6136f29190615203565b601654101561375a5760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610e9d565b620f424061376a6009600a6151f4565b61377b9066038d7ea4c68000615225565b6137859190615203565b60155410156129225760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610e9d565b60195460405163fe575a8760e01b81526001600160a01b03838116600483015260009263010000009004169063fe575a8790602401602060405180830381865afa15801561383f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102191906153d9565b601a546001600160a01b031633146138ab5760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6001600160a01b0383166139385760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610e9d565b6001600160a01b0382166139995760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610e9d565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416613a605760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610e9d565b6001600160a01b038316613ac25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610e9d565b60008211613b245760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610e9d565b6001600160a01b0384166000908152600160205260408120548190819060ff1615613b525760019250613b80565b6001600160a01b03861660009081526001602052604090205460ff1615613b7c5760019150613b80565b5060015b613b8a87876141c6565b15613e1c57601954610100900460ff16613c905780613beb5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610e9d565b6001600160a01b03871660009081526004602052604090205460ff16158015613c2d57506001600160a01b03861660009081526004602052604090205460ff16155b15613c905760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b6064820152608401610e9d565b8280613c995750815b15613d48576001600160a01b03871660009081526006602052604090205460ff16158015613ce057506001600160a01b03861660009081526006602052604090205460ff16155b15613d4857601054851115613d485760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610e9d565b600d546001600160a01b038781166101009092041614801590613d69575081155b15613e1c576001600160a01b03861660009081526006602052604090205460ff16613e1c5760115485613db1886001600160a01b031660009081526020819052604090205490565b613dbb9190615402565b1115613e1c5760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526930b63632ba29b4bd329760b11b6064820152608401610e9d565b8115613efd5760145460ff16613efd57601454610100900460ff168015613e5c57506001600160a01b03861660009081526009602052604090205460ff16155b8015613e8157506001600160a01b03871660009081526009602052604090205460ff16155b15613efd57306000908152602081905260409020546015548110613efb5760165460175460ff1615613ee557601854600e546001600160a01b031660009081526020819052604090205461271091613ed891615225565b613ee29190615203565b90505b808210613ef0578091505b613ef9826142dd565b505b505b613f0b878787868686613f16565b979650505050505050565b6000613f2287876141c6565b15613fbd5760195460405163ecd07a5360e01b81526001600160a01b03898116600483015288811660248301526044820188905260009263010000009004169063ecd07a53906064016020604051808303816000875af1925050508015613fa6575060408051601f3d908101601f19168201909252613fa3918101906153d9565b60015b613faf57600080fd5b905080613fbb57600080fd5b505b6001600160a01b03871660009081526005602052604090205460019060ff1680613fff57506001600160a01b03871660009081526005602052604090205460ff165b15614008575060005b6001600160a01b0388166000908152602081905260408120805488929061403090849061523c565b90915550869050811561404d5761404a898888888861477b565b90505b6001600160a01b03881660009081526020819052604081208054839290614075908490615402565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516140c191815260200190565b60405180910390a360195462010000900460ff166141ad576140e3898961489f565b60195462010000900460ff16158015614101575061410189896141c6565b801561412657506001600160a01b03891660009081526004602052604090205460ff16155b801561414b57506001600160a01b03881660009081526004602052604090205460ff16155b8015614155575083155b156141ad5760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b6064820152608401610e9d565b6141b78989614a00565b50600198975050505050505050565b601a546000906001600160a01b038481169116148015906141f55750601a546001600160a01b03838116911614155b801561420c5750601a546001600160a01b03163214155b801561423157506001600160a01b03821660009081526008602052604090205460ff16155b801561425657506001600160a01b03831660009081526008602052604090205460ff16155b801561426d57506001600160a01b03821661dead14155b801561428157506001600160a01b03821615155b801561429657506001600160a01b0383163014155b80156142b757506019546001600160a01b0384811663010000009092041614155b8015612935575050601954630100000090046001600160a01b0390811691161415919050565b6014805460ff1916600117905560408051608081018252600c5461ffff8082168352620100008204811660208401526401000000008204811693830193909352660100000000000090049091166060820181905260000361433e575061476e565b306000908152600360209081526040808320600d5461010090046001600160a01b03168452909152902054600019146143a157306000908152600360209081526040808320600d5461010090046001600160a01b03168452909152902060001990555b60006002826060015161ffff16836020015161ffff16856143c29190615225565b6143cc9190615203565b6143d69190615203565b905060006143e4828561523c565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061441e5761441e6150cb565b60200260200101906001600160a01b031690816001600160a01b031681525050600d60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015614491573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144b591906153bc565b816001815181106144c8576144c86150cb565b6001600160a01b039283166020918202929092010152600d5460405163791ac94760e01b81526101009091049091169063791ac94790614515908590600090869030904290600401615415565b600060405180830381600087803b15801561452f57600080fd5b505af1925050508015614540575060015b61454d575050505061476e565b4760008361455b8684615225565b6145659190615203565b9050841561464857600d5460405163f305d71960e01b815230600482015260248101879052600060448201819052606482015261dead60848201524260a48201526101009091046001600160a01b03169063f305d71990839060c40160606040518083038185885af1935050505080156145fc575060408051601f3d908101601f191682019092526145f991810190615451565b60015b61460b5750505050505061476e565b505060408051838152602081018890527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b614652818361523c565b915085602001518660600181815161466a919061547f565b61ffff908116909152606088015188516000935083929182169161468f911686615225565b6146999190615203565b885190915061ffff161561470b57601260009054906101000a90046001600160a01b03166001600160a01b03166386d5c4be826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156146f757600080fd5b505af193505050508015614709575060015b505b600f546040516001600160a01b039091169061d6d89047906000818181858888f193505050503d806000811461475d576040519150601f19603f3d011682016040523d82523d6000602084013e614762565b606091505b50505050505050505050505b506014805460ff19169055565b60008084156147915750600b5461ffff166147bb565b83156147aa5750600b5462010000900461ffff166147bb565b50600b54640100000000900461ffff165b806000036147cc5785915050614896565b601954630100000090046001600160a01b0316301480156147f7575046600114806147f75750466038145b1561480157506111945b60006127106148108389615225565b61481a9190615203565b90508015614887573060009081526020819052604081208054839290614841908490615402565b909155505060405181815230906001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b614891818861523c565b925050505b95945050505050565b60195462010000900460ff16156149045760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610e9d565b61490e82826141c6565b1580156149285750600e546001600160a01b038281169116145b15611197576001600160a01b038083166000908152600860205260409020805460ff191660011790556019805462ff00001916620100001790819055630100000090041661498c57601980546301000000600160b81b031916306301000000021790555b6012546001600160a01b03166149af57601280546001600160a01b031916301790555b6014805461ff001916610100179055600a805460ff19169055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532579060200160405180910390a15050565b6001600160a01b03821660009081526007602052604090205460ff16614a91576012546001600160a01b0383811660008181526020819052604090819020549051636f823f4f60e11b81526004810192909252602482015291169063df047e9e90604401600060405180830381600087803b158015614a7e57600080fd5b505af1925050508015614a8f575060015b505b6001600160a01b03811660009081526007602052604090205460ff16614b22576012546001600160a01b0382811660008181526020819052604090819020549051636f823f4f60e11b81526004810192909252602482015291169063df047e9e90604401600060405180830381600087803b158015614b0f57600080fd5b505af1925050508015614b20575060015b505b60195460ff16156111975760125460135460405163a9e732bb60e01b81526001600160a01b039092169163a9e732bb9161219c9160040190815260200190565b80151581146120a857600080fd5b60008060408385031215614b8357600080fd5b8235614b8e81614b62565b91506020830135614b9e81614b62565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715614be857614be8614ba9565b604052919050565b600067ffffffffffffffff821115614c0a57614c0a614ba9565b5060051b60200190565b6001600160a01b03811681146120a857600080fd5b600082601f830112614c3a57600080fd5b81356020614c4f614c4a83614bf0565b614bbf565b82815260059290921b84018101918181019086841115614c6e57600080fd5b8286015b84811015614c92578035614c8581614c14565b8352918301918301614c72565b509695505050505050565b60008060408385031215614cb057600080fd5b823567ffffffffffffffff811115614cc757600080fd5b614cd385828601614c29565b9250506020830135614b9e81614b62565b60005b83811015614cff578181015183820152602001614ce7565b50506000910152565b60008151808452614d20816020860160208601614ce4565b601f01601f19169290920160200192915050565b6020815260006129356020830184614d08565b60008060408385031215614d5a57600080fd5b8235614d6581614c14565b946020939093013593505050565b600060208284031215614d8557600080fd5b813561293581614c14565b60008060408385031215614da357600080fd5b8235614dae81614c14565b91506020830135614b9e81614c14565b600080600060608486031215614dd357600080fd5b8335614dde81614c14565b92506020840135614dee81614c14565b929592945050506040919091013590565b60008060408385031215614e1257600080fd5b50508035926020909101359150565b60008060408385031215614e3457600080fd5b823567ffffffffffffffff80821115614e4c57600080fd5b614e5886838701614c29565b9350602091508185013581811115614e6f57600080fd5b85019050601f81018613614e8257600080fd5b8035614e90614c4a82614bf0565b81815260059190911b82018301908381019088831115614eaf57600080fd5b928401925b82841015614ecd57833582529284019290840190614eb4565b80955050505050509250929050565b803561ffff81168114614eee57600080fd5b919050565b600080600060608486031215614f0857600080fd5b614f1184614edc565b9250614f1f60208501614edc565b9150614f2d60408501614edc565b90509250925092565b60008060408385031215614f4957600080fd5b8235614b8e81614c14565b600060208284031215614f6657600080fd5b5035919050565b608081526000614f806080830187614d08565b8281036020840152614f928187614d08565b90508281036040840152614fa68186614d08565b90508281036060840152613f0b8185614d08565b600080600060608486031215614fcf57600080fd5b8335614fda81614b62565b92506020840135614fea81614b62565b91506040840135614ffa81614b62565b809150509250925092565b60008060006060848603121561501a57600080fd5b505081359360208301359350604090920135919050565b6000806000806080858703121561504757600080fd5b5050823594602084013594506040840135936060013592509050565b600081518084526020808501945080840160005b8381101561509c5781516001600160a01b031687529582019590820190600101615077565b509495945050505050565b6040815260006150ba6040830185615063565b905082151560208301529392505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201615109576151096150e1565b5060010190565b600181815b8085111561514b578160001904821115615131576151316150e1565b8085161561513e57918102915b93841c9390800290615115565b509250929050565b60008261516257506001611021565b8161516f57506000611021565b8160018114615185576002811461518f576151ab565b6001915050611021565b60ff8411156151a0576151a06150e1565b50506001821b611021565b5060208310610133831016604e8410600b84101617156151ce575081810a611021565b6151d88383615110565b80600019048211156151ec576151ec6150e1565b029392505050565b600061293560ff841683615153565b60008261522057634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417611021576110216150e1565b81810381811115611021576110216150e1565b600061ffff808316818103615266576152666150e1565b6001019392505050565b61ffff81811683821601908082111561528b5761528b6150e1565b5092915050565b6000602082840312156152a457600080fd5b5051919050565b600082601f8301126152bc57600080fd5b815167ffffffffffffffff8111156152d6576152d6614ba9565b6152e9601f8201601f1916602001614bbf565b8181528460208386010111156152fe57600080fd5b61138f826020830160208701614ce4565b6000806000806080858703121561532557600080fd5b845167ffffffffffffffff8082111561533d57600080fd5b615349888389016152ab565b9550602087015191508082111561535f57600080fd5b61536b888389016152ab565b9450604087015191508082111561538157600080fd5b61538d888389016152ab565b935060608701519150808211156153a357600080fd5b506153b0878288016152ab565b91505092959194509250565b6000602082840312156153ce57600080fd5b815161293581614c14565b6000602082840312156153eb57600080fd5b815161293581614b62565b60006129358383615153565b80820180821115611021576110216150e1565b85815284602082015260a06040820152600061543460a0830186615063565b6001600160a01b0394909416606083015250608001529392505050565b60008060006060848603121561546657600080fd5b8351925060208401519150604084015190509250925092565b61ffff82811682821603908082111561528b5761528b6150e156fe43616c6c6572203d2f3d206f776e65722e000000000000000000000000000000a2646970667358221220d6de9d5a0a4af1d67baade280e7bcbb4dd1e1c0a198eb226522b935ad2f54f6464736f6c63430008110033
Deployed Bytecode
0x60806040526004361061044b5760003560e01c80636ab86dc111610234578063b3d514fb1161012e578063eb50e70e116100b6578063f7c245ea1161007a578063f7c245ea14610dc5578063fb78680d14610dda578063fdb78c0e14610dfa578063fe575a8714610e19578063feadde9c14610e3957600080fd5b8063eb50e70e14610d36578063ee5d9c2d14610d56578063eec2744e14610d6b578063efe7dc9014610d8b578063f18567bf14610da557600080fd5b8063c705c569116100fd578063c705c56914610c0c578063cf84770614610c45578063d0b1449d14610cb0578063dd62ed3e14610cd0578063eafb5a3c14610d1657600080fd5b8063b3d514fb1461070a578063b421626c14610bb2578063b7df8b3614610bd2578063c6a276c214610bec57600080fd5b80638a63bd9b116101bc578063a9059cbb11610180578063a9059cbb14610b32578063aa22b17214610b52578063ab558e4d14610b72578063ab5cb5a614610b92578063b1b08f711461070a57600080fd5b80638a63bd9b14610ab15780638a8c523c14610ac65780638aec854214610adb57806392bd7b2c14610af057806395d89b4114610b0557600080fd5b8063715018a611610203578063715018a614610a2957806375f0a87414610a3e57806378648edf14610a5e57806380c581d114610a73578063893d20e814610a9357600080fd5b80636ab86dc1146109a95780636b639a25146109be5780636ebd0078146109de57806370a08231146109f357600080fd5b80632e8fa821116103455780634bbb93eb116102cd578063590ffdce11610291578063590ffdce146108e05780635cce86cd146109005780636372c68f146109395780636386c1c7146109595780636505079a1461098957600080fd5b80634bbb93eb146108275780634e718e48146108475780634fb2e45d146108675780634fbee1931461088757806350a8e016146108c057600080fd5b806336fddb041161031457806336fddb04146107925780633f3cf56c146107b2578063452ed4f1146107d257806346ea7ac8146107f25780634ada218b1461080857600080fd5b80632e8fa82114610720578063313ce5671461073657806332cde6641461075257806333251a0b1461077257600080fd5b80630dcbcf1c116103d357806323b872dd1161039757806323b872dd1461069457806326003957146106b45780632610eaca146106d457806328577751146106f45780632b28fc7a1461070a57600080fd5b80630dcbcf1c146105f15780630fa604e41461062a57806313b4a7f41461063f57806318160ddd1461065f578063218950bc1461067457600080fd5b8063069d955f1161041a578063069d955f146104f057806306fdde03146105465780630758d9241461058257806307dd79e0146105a7578063095ea7b3146105d157600080fd5b806303fd2a45146104575780630445b6671461048a578063044df726146104ae57806305bbedb6146104d057600080fd5b3661045257005b600080fd5b34801561046357600080fd5b5061046d61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561049657600080fd5b506104a060155481565b604051908152602001610481565b3480156104ba57600080fd5b506104ce6104c9366004614b70565b610e59565b005b3480156104dc57600080fd5b506104ce6104eb366004614c9d565b610f18565b3480156104fc57600080fd5b50600b546105219061ffff808216916201000081048216916401000000009091041683565b6040805161ffff94851681529284166020840152921691810191909152606001610481565b34801561055257600080fd5b5060408051808201909152600a815269115d1a195c941c9a5b9d60b21b60208201525b6040516104819190614d34565b34801561058e57600080fd5b50600d5461046d9061010090046001600160a01b031681565b3480156105b357600080fd5b50600d546105c19060ff1681565b6040519015158152602001610481565b3480156105dd57600080fd5b506105c16105ec366004614d47565b611010565b3480156105fd57600080fd5b506105c161060c366004614d73565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561063657600080fd5b506104a0611027565b34801561064b57600080fd5b506104ce61065a366004614d90565b611047565b34801561066b57600080fd5b506104a061121b565b34801561068057600080fd5b506104ce61068f366004614d90565b61123a565b3480156106a057600080fd5b506105c16106af366004614dbe565b61131f565b3480156106c057600080fd5b506104ce6106cf366004614dff565b611397565b3480156106e057600080fd5b506104ce6106ef366004614e21565b6114e9565b34801561070057600080fd5b506104a060185481565b34801561071657600080fd5b506104a06107d081565b34801561072c57600080fd5b506104a060165481565b34801561074257600080fd5b5060405160098152602001610481565b34801561075e57600080fd5b506104ce61076d366004614ef3565b611699565b34801561077e57600080fd5b506104ce61078d366004614d73565b61184c565b34801561079e57600080fd5b506104ce6107ad366004614f36565b6118ff565b3480156107be57600080fd5b506104ce6107cd366004614dff565b611972565b3480156107de57600080fd5b50600e5461046d906001600160a01b031681565b3480156107fe57600080fd5b506104a06109c481565b34801561081457600080fd5b506019546105c190610100900460ff1681565b34801561083357600080fd5b506104a0610842366004614f54565b611ad0565b34801561085357600080fd5b506104ce610862366004614f54565b611b04565b34801561087357600080fd5b506104ce610882366004614d73565b611ba2565b34801561089357600080fd5b506105c16108a2366004614d73565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156108cc57600080fd5b506019546105c19062010000900460ff1681565b3480156108ec57600080fd5b506104ce6108fb366004614f36565b611ddc565b34801561090c57600080fd5b506105c161091b366004614d73565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561094557600080fd5b506104a0610954366004614d73565b611e4f565b34801561096557600080fd5b50610979610974366004614d73565b611ebf565b6040516104819493929190614f6d565b34801561099557600080fd5b506104ce6109a4366004614fba565b611f47565b3480156109b557600080fd5b506104ce611ffe565b3480156109ca57600080fd5b506104ce6109d9366004614f36565b6120ab565b3480156109ea57600080fd5b506104a061222e565b3480156109ff57600080fd5b506104a0610a0e366004614d73565b6001600160a01b031660009081526020819052604090205490565b348015610a3557600080fd5b506104ce612249565b348015610a4a57600080fd5b50600f5461046d906001600160a01b031681565b348015610a6a57600080fd5b506104ce6122f6565b348015610a7f57600080fd5b506104ce610a8e366004614f36565b61234d565b348015610a9f57600080fd5b50601a546001600160a01b031661046d565b348015610abd57600080fd5b506105c1612550565b348015610ad257600080fd5b506104ce6125c0565b348015610ae757600080fd5b5061046d61285b565b348015610afc57600080fd5b506104ce6128c9565b348015610b1157600080fd5b506040805180820190915260048152630455448560e41b6020820152610575565b348015610b3e57600080fd5b506105c1610b4d366004614d47565b612928565b348015610b5e57600080fd5b506104ce610b6d366004614ef3565b61293c565b348015610b7e57600080fd5b506104ce610b8d366004614d73565b612a81565b348015610b9e57600080fd5b506104a0610bad366004614d73565b612c0b565b348015610bbe57600080fd5b506104ce610bcd366004615005565b612c3e565b348015610bde57600080fd5b506017546105c19060ff1681565b348015610bf857600080fd5b506104ce610c07366004614d73565b612d06565b348015610c1857600080fd5b506105c1610c27366004614d73565b6001600160a01b031660009081526007602052604090205460ff1690565b348015610c5157600080fd5b50600c54610c829061ffff808216916201000081048216916401000000008204811691660100000000000090041684565b6040805161ffff95861681529385166020850152918416918301919091529091166060820152608001610481565b348015610cbc57600080fd5b506104ce610ccb366004614f54565b612d88565b348015610cdc57600080fd5b506104a0610ceb366004614d90565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b348015610d2257600080fd5b506104ce610d31366004614d73565b612de4565b348015610d4257600080fd5b506104ce610d51366004614d73565b6131fd565b348015610d6257600080fd5b506104ce6132bd565b348015610d7757600080fd5b506104ce610d86366004614f36565b613397565b348015610d9757600080fd5b506019546105c19060ff1681565b348015610db157600080fd5b506104ce610dc0366004614f54565b613458565b348015610dd157600080fd5b506104a06134b7565b348015610de657600080fd5b506104ce610df5366004615031565b613525565b348015610e0657600080fd5b506014546105c190610100900460ff1681565b348015610e2557600080fd5b506105c1610e34366004614d73565b6137ed565b348015610e4557600080fd5b506104ce610e54366004614f36565b613863565b601a546001600160a01b03163314610ea65760405162461bcd60e51b8152602060048201526011602482015260008051602061549b83398151915260448201526064015b60405180910390fd5b60195460405163efbdbabd60e01b81528315156004820152821515602482015263010000009091046001600160a01b03169063efbdbabd906044015b600060405180830381600087803b158015610efc57600080fd5b505af1158015610f10573d6000803e3d6000fd5b505050505050565b601a546001600160a01b03163314610f605760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b6019546040516302ddf6db60e11b815263010000009091046001600160a01b0316906305bbedb690610f9890859085906004016150a7565b600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050505060005b825181101561100b57610ff9838281518110610feb57610feb6150cb565b6020026020010151836120ab565b80611003816150f7565b915050610fcd565b505050565b600061101d3384846138d6565b5060015b92915050565b60006110356009600a6151f4565b6011546110429190615203565b905090565b601a546001600160a01b0316331461108f5760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b600a5460ff1661109e57600080fd5b6001600160a01b03821630148015906110c057506001600160a01b0381163014155b80156110da5750600e546001600160a01b03838116911614155b80156110f45750600e546001600160a01b03828116911614155b61112e5760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba103237b713ba1760a91b6044820152606401610e9d565b806001600160a01b0316826001600160a01b03160361119b576001600160a01b03811660009081526008602090815260408083208054600160ff1991821681179092556009909352922080549091168217905561118c908290611ddc565b6111978160016120ab565b5050565b6001600160a01b0382811660008181526008602090815260408083208054600160ff19918216811790925595871680855282852080548816831790559484526009909252808320805486168317905592825291902080549092168117909155611205908390611ddc565b611210816001611ddc565b61118c8260016120ab565b60006112296009600a6151f4565b6110429066038d7ea4c68000615225565b601a546001600160a01b031633146112825760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b601954610100900460ff161561129757600080fd5b6001600160a01b03811630148015906112b957506001600160a01b0382163014155b80156112d75750816001600160a01b0316816001600160a01b031614155b6112e057600080fd5b601280546001600160a01b0319166001600160a01b03928316179055601980546301000000600160b81b03191663010000009390921692909202179055565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914611384576001600160a01b03841660009081526003602090815260408083203384529091528120805484929061137e90849061523c565b90915550505b61138f8484846139fa565b949350505050565b601a546001600160a01b031633146113df5760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b60646113ed6009600a6151f4565b6113fe9066038d7ea4c68000615225565b6114089190615203565b81836114166009600a6151f4565b6114279066038d7ea4c68000615225565b6114319190615225565b61143b9190615203565b10156114af5760405162461bcd60e51b815260206004820152603060248201527f4d61782057616c6c657420616d74206d7573742062652061626f76652031252060448201527f6f6620746f74616c20737570706c792e000000000000000000000000000000006064820152608401610e9d565b80826114bd6009600a6151f4565b6114ce9066038d7ea4c68000615225565b6114d89190615225565b6114e29190615203565b6011555050565b601a546001600160a01b031633146115315760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b80518251146115825760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610e9d565b60005b82518161ffff16101561100b5761159e6009600a6151f4565b828261ffff16815181106115b4576115b46150cb565b60200260200101516115c69190615225565b3360009081526020819052604090205410156116245760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e00000000000000000000000000006044820152606401610e9d565b61168633848361ffff168151811061163e5761163e6150cb565b60200260200101516009600a61165491906151f4565b858561ffff168151811061166a5761166a6150cb565b602002602001015161167c9190615225565b6000806001613f16565b50806116918161524f565b915050611585565b601a546001600160a01b031633146116e15760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b600d5460ff16156117345760405162461bcd60e51b815260206004820152601160248201527f546178657320617265206c6f636b65642e0000000000000000000000000000006044820152606401610e9d565b6107d08361ffff161115801561175057506107d08261ffff1611155b801561176257506107d08161ffff1611155b6117ae5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610e9d565b6109c46117bb8385615270565b61ffff16111561180d5760405162461bcd60e51b815260206004820181905260248201527f43616e6e6f742065786365656420726f756e6474726970206d6178696d756d2e6044820152606401610e9d565b600b805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b601a546001600160a01b031633146118945760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b6019546040516333251a0b60e01b81526001600160a01b0383811660048301526301000000909204909116906333251a0b906024015b600060405180830381600087803b1580156118e457600080fd5b505af11580156118f8573d6000803e3d6000fd5b5050505050565b601a546001600160a01b031633146119475760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b601a546001600160a01b031633146119ba5760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b6103e86119c96009600a6151f4565b6119da9066038d7ea4c68000615225565b6119e5906005615225565b6119ef9190615203565b81836119fd6009600a6151f4565b611a0e9066038d7ea4c68000615225565b611a189190615225565b611a229190615203565b1015611a965760405162461bcd60e51b815260206004820152603760248201527f4d6178205472616e73616374696f6e20616d74206d7573742062652061626f7660448201527f6520302e3525206f6620746f74616c20737570706c792e0000000000000000006064820152608401610e9d565b8082611aa46009600a6151f4565b611ab59066038d7ea4c68000615225565b611abf9190615225565b611ac99190615203565b6010555050565b600e546001600160a01b031660009081526020819052604081205461271090611afa908490615225565b6110219190615203565b601a546001600160a01b03163314611b4c5760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b6096811115611b9d5760405162461bcd60e51b815260206004820152601660248201527f43616e6e6f74207365742061626f766520312e35252e000000000000000000006044820152606401610e9d565b601855565b601a546001600160a01b03163314611bea5760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b6001600160a01b038116611c665760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610e9d565b61deac196001600160a01b03821601611ce75760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610e9d565b601a80546001600160a01b039081166000908152600560208181526040808420805460ff19908116909155865486168552600780845282862080548316905588871686529383528185208054821660019081179091559383528185208054909116909317909255935490921681529182905290205415611d8a57601a546001600160a01b0316600081815260208190526040902054611d889190839061167c565b505b601a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b601a546001600160a01b03163314611e245760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b601254604051631ebbee0360e31b81526001600160a01b038381166004830152600092169063f5df7018906024015b602060405180830381865afa158015611e9b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110219190615292565b601254604051636386c1c760e01b81526001600160a01b0383811660048301526060928392839283921690636386c1c790602401600060405180830381865afa158015611f10573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611f38919081019061530f565b93509350935093509193509193565b601a546001600160a01b03163314611f8f5760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b6014805461ff001916610100851515908102919091179091556019805460ff1990811685151517909155601780549091168315151790556040519081527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532579060200160405180910390a1505050565b601a546001600160a01b031633146120465760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b601260009054906101000a90046001600160a01b03166001600160a01b03166386d5c4be476040518263ffffffff1660e01b81526004016000604051808303818588803b15801561209657600080fd5b505af1935050505080156120a8575060015b50565b601a546001600160a01b031633146120f35760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b6001600160a01b038216301480159061211a5750600e546001600160a01b03838116911614155b801561213157506001600160a01b03821661dead14155b61213a57600080fd5b6001600160a01b0382166000908152600760205260409020805460ff191682158015919091179091556121d057601254604051636f823f4f60e11b81526001600160a01b038481166004830152600060248301529091169063df047e9e906044015b600060405180830381600087803b1580156121b657600080fd5b505af19250505080156121c7575060015b15611197575050565b6012546001600160a01b0383811660008181526020819052604090819020549051636f823f4f60e11b81526004810192909252602482015291169063df047e9e90604401600060405180830381600087803b1580156121b657600080fd5b600061223c6009600a6151f4565b6010546110429190615203565b601a546001600160a01b031633146122915760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b601a546122a8906001600160a01b03166000611ddc565b601a80546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b601a546001600160a01b0316331461233e5760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b600d805460ff19166001179055565b601a546001600160a01b031633146123955760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b80612420576001600160a01b038281166000818152600160208181526040808420805460ff1990811690915560079092528084208054909216909217905560195490516380c581d160e01b81526004810193909352602483019190915263010000009004909116906380c581d190604401600060405180830381600087803b158015610efc57600080fd5b60025415612487576203f4806002544261243a919061523c565b116124875760405162461bcd60e51b815260206004820152600f60248201527f332044617920636f6f6c646f776e2e00000000000000000000000000000000006044820152606401610e9d565b6001600160a01b03821660009081526001602052604090205460ff16156124f05760405162461bcd60e51b815260206004820152601b60248201527f5061697220616c726561647920616464656420746f206c6973742e00000000006044820152606401610e9d565b6001600160a01b03828116600081815260016020819052604091829020805460ff1916821790554260025560195491516380c581d160e01b81526004810193909352602483015263010000009004909116906380c581d190604401610ee2565b601a546000906001600160a01b0316331461259b5760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b600d546125ba90309061010090046001600160a01b03166000196138d6565b50600190565b601a546001600160a01b031633146126085760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b601954610100900460ff16156126605760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610e9d565b60195462010000900460ff166126b85760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610e9d565b601954630100000090046001600160a01b03166126eb57601980546301000000600160b81b031916306301000000021790555b601954600e54604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff421660448201526009606482015263010000009092041690636c115c3490608401600060405180830381600087803b15801561275e57600080fd5b505af192505050801561276f575060015b50601260009054906101000a90046001600160a01b03166001600160a01b0316638129fc1c6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156127c057600080fd5b505af19250505080156127d1575060015b506019805461ffff1916610101179055600a805460ff19169055600e546001600160a01b03166000908152602081905260409020546127109061281590600a615225565b61281f9190615203565b601555600e546001600160a01b03166000908152602081905260409020546127109061284c90601e615225565b6128569190615203565b601655565b6012546040805163457642a160e11b815290516000926001600160a01b031691638aec85429160048083019260209291908290030181865afa1580156128a5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104291906153bc565b601254604051632e6f0efd60e01b81523360048201526001600160a01b0390911690632e6f0efd90602401600060405180830381600087803b15801561290e57600080fd5b505af1158015612922573d6000803e3d6000fd5b50505050565b60006129353384846139fa565b9392505050565b601a546001600160a01b031633146129845760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b600c805461ffff8381166401000000000265ffff0000000019868316620100000263ffffffff19909416928816929092179290921716179055806129c88385615270565b6129d29190615270565b600c805467ffff0000000000001916660100000000000061ffff93841602179055600b54600091612a0c9162010000810482169116615270565b600c5461ffff918216925066010000000000009004168110156129225760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f74206578636565642073756d206f662062757920616e642073656c60448201526636103332b2b99760c91b6064820152608401610e9d565b601a546001600160a01b03163314612ac95760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b306001600160a01b03821603612b215760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207377656570206e617469766520746f6b656e732e00000000006044820152606401610e9d565b601a546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa158015612b78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b9c9190615292565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015612be7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100b91906153d9565b60125460405163f6ed201760e01b81526001600160a01b038381166004830152600092169063f6ed201790602401611e7e565b601a546001600160a01b03163314612c865760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b612c9181600a6153f6565b612c9b9083615225565b6012546040516302ab5aa360e31b815260048101869052602481018390529193506001600160a01b03169063155ad51890604401600060405180830381600087803b158015612ce957600080fd5b505af1158015612cfd573d6000803e3d6000fd5b50505050505050565b601a546001600160a01b03163314612d4e5760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b6019546040516363513b6160e11b81526001600160a01b03838116600483015263010000009092049091169063c6a276c2906024016118ca565b601a546001600160a01b03163314612dd05760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b620b71b08110612ddf57600080fd5b601355565b601a546001600160a01b03163314612e2c5760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b60195462010000900460ff1615612e855760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74206368616e6765206166746572206c69717569646974792e00006044820152606401610e9d565b600e546001600160a01b039081166000908152600160209081526040808320805460ff19169055805163c45a015560e01b81529051859485169263c45a015592600480820193918290030181865afa158015612ee5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f0991906153bc565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f7a91906153bc565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015612fc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fe991906153bc565b90506001600160a01b03811661316257816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015613037573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061305b91906153bc565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130cc91906153bc565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015613119573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061313d91906153bc565b600e80546001600160a01b0319166001600160a01b039290921691909117905561317e565b600e80546001600160a01b0319166001600160a01b0383161790555b600d805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600e805483166000908152600160208181526040808420805460ff19908116851790915594548716845260079091529091208054909216179055915461100b9230929104166000196138d6565b601a546001600160a01b031633146132455760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b6001600160a01b03811661329b5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74206265207a65726f20616464726573732e0000000000000000006044820152606401610e9d565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b601a546001600160a01b031633146133055760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b60195462010000900460ff161561335e5760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e000000006044820152606401610e9d565b601a546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156120a8573d6000803e3d6000fd5b601a546001600160a01b031633146133df5760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b6019546040516377613a2760e11b81526001600160a01b038481166004830152831515602483015263010000009092049091169063eec2744e90604401600060405180830381600087803b15801561343657600080fd5b505af115801561344a573d6000803e3d6000fd5b5050505061119782826120ab565b60125460405163a9e732bb60e01b8152600481018390526001600160a01b039091169063a9e732bb90602401600060405180830381600087803b15801561349e57600080fd5b505af19250505080156134af575060015b156120a85750565b60125460408051630ad2bf4b60e31b815290516000926001600160a01b031691635695fa589160048083019260209291908290030181865afa158015613501573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110429190615292565b601a546001600160a01b0316331461356d5760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b828461357b6009600a6151f4565b61358c9066038d7ea4c68000615225565b6135969190615225565b6135a09190615203565b60155580826135b16009600a6151f4565b6135c29066038d7ea4c68000615225565b6135cc9190615225565b6135d69190615203565b601681905560155411156136365760405162461bcd60e51b815260206004820152602160248201527f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e746044820152601760f91b6064820152608401610e9d565b600e546001600160a01b031660009081526020819052604090205461271090613660906096615225565b61366a9190615203565b60165411156136c75760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742062652061626f766520312e3525206f662063757272656e742060448201526228249760e91b6064820152608401610e9d565b620f42406136d76009600a6151f4565b6136e89066038d7ea4c68000615225565b6136f29190615203565b601654101561375a5760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610e9d565b620f424061376a6009600a6151f4565b61377b9066038d7ea4c68000615225565b6137859190615203565b60155410156129225760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610e9d565b60195460405163fe575a8760e01b81526001600160a01b03838116600483015260009263010000009004169063fe575a8790602401602060405180830381865afa15801561383f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102191906153d9565b601a546001600160a01b031633146138ab5760405162461bcd60e51b8152602060048201526011602482015260008051602061549b8339815191526044820152606401610e9d565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6001600160a01b0383166139385760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610e9d565b6001600160a01b0382166139995760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610e9d565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416613a605760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610e9d565b6001600160a01b038316613ac25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610e9d565b60008211613b245760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610e9d565b6001600160a01b0384166000908152600160205260408120548190819060ff1615613b525760019250613b80565b6001600160a01b03861660009081526001602052604090205460ff1615613b7c5760019150613b80565b5060015b613b8a87876141c6565b15613e1c57601954610100900460ff16613c905780613beb5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610e9d565b6001600160a01b03871660009081526004602052604090205460ff16158015613c2d57506001600160a01b03861660009081526004602052604090205460ff16155b15613c905760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b6064820152608401610e9d565b8280613c995750815b15613d48576001600160a01b03871660009081526006602052604090205460ff16158015613ce057506001600160a01b03861660009081526006602052604090205460ff16155b15613d4857601054851115613d485760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610e9d565b600d546001600160a01b038781166101009092041614801590613d69575081155b15613e1c576001600160a01b03861660009081526006602052604090205460ff16613e1c5760115485613db1886001600160a01b031660009081526020819052604090205490565b613dbb9190615402565b1115613e1c5760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526930b63632ba29b4bd329760b11b6064820152608401610e9d565b8115613efd5760145460ff16613efd57601454610100900460ff168015613e5c57506001600160a01b03861660009081526009602052604090205460ff16155b8015613e8157506001600160a01b03871660009081526009602052604090205460ff16155b15613efd57306000908152602081905260409020546015548110613efb5760165460175460ff1615613ee557601854600e546001600160a01b031660009081526020819052604090205461271091613ed891615225565b613ee29190615203565b90505b808210613ef0578091505b613ef9826142dd565b505b505b613f0b878787868686613f16565b979650505050505050565b6000613f2287876141c6565b15613fbd5760195460405163ecd07a5360e01b81526001600160a01b03898116600483015288811660248301526044820188905260009263010000009004169063ecd07a53906064016020604051808303816000875af1925050508015613fa6575060408051601f3d908101601f19168201909252613fa3918101906153d9565b60015b613faf57600080fd5b905080613fbb57600080fd5b505b6001600160a01b03871660009081526005602052604090205460019060ff1680613fff57506001600160a01b03871660009081526005602052604090205460ff165b15614008575060005b6001600160a01b0388166000908152602081905260408120805488929061403090849061523c565b90915550869050811561404d5761404a898888888861477b565b90505b6001600160a01b03881660009081526020819052604081208054839290614075908490615402565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516140c191815260200190565b60405180910390a360195462010000900460ff166141ad576140e3898961489f565b60195462010000900460ff16158015614101575061410189896141c6565b801561412657506001600160a01b03891660009081526004602052604090205460ff16155b801561414b57506001600160a01b03881660009081526004602052604090205460ff16155b8015614155575083155b156141ad5760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b6064820152608401610e9d565b6141b78989614a00565b50600198975050505050505050565b601a546000906001600160a01b038481169116148015906141f55750601a546001600160a01b03838116911614155b801561420c5750601a546001600160a01b03163214155b801561423157506001600160a01b03821660009081526008602052604090205460ff16155b801561425657506001600160a01b03831660009081526008602052604090205460ff16155b801561426d57506001600160a01b03821661dead14155b801561428157506001600160a01b03821615155b801561429657506001600160a01b0383163014155b80156142b757506019546001600160a01b0384811663010000009092041614155b8015612935575050601954630100000090046001600160a01b0390811691161415919050565b6014805460ff1916600117905560408051608081018252600c5461ffff8082168352620100008204811660208401526401000000008204811693830193909352660100000000000090049091166060820181905260000361433e575061476e565b306000908152600360209081526040808320600d5461010090046001600160a01b03168452909152902054600019146143a157306000908152600360209081526040808320600d5461010090046001600160a01b03168452909152902060001990555b60006002826060015161ffff16836020015161ffff16856143c29190615225565b6143cc9190615203565b6143d69190615203565b905060006143e4828561523c565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061441e5761441e6150cb565b60200260200101906001600160a01b031690816001600160a01b031681525050600d60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015614491573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144b591906153bc565b816001815181106144c8576144c86150cb565b6001600160a01b039283166020918202929092010152600d5460405163791ac94760e01b81526101009091049091169063791ac94790614515908590600090869030904290600401615415565b600060405180830381600087803b15801561452f57600080fd5b505af1925050508015614540575060015b61454d575050505061476e565b4760008361455b8684615225565b6145659190615203565b9050841561464857600d5460405163f305d71960e01b815230600482015260248101879052600060448201819052606482015261dead60848201524260a48201526101009091046001600160a01b03169063f305d71990839060c40160606040518083038185885af1935050505080156145fc575060408051601f3d908101601f191682019092526145f991810190615451565b60015b61460b5750505050505061476e565b505060408051838152602081018890527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b614652818361523c565b915085602001518660600181815161466a919061547f565b61ffff908116909152606088015188516000935083929182169161468f911686615225565b6146999190615203565b885190915061ffff161561470b57601260009054906101000a90046001600160a01b03166001600160a01b03166386d5c4be826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156146f757600080fd5b505af193505050508015614709575060015b505b600f546040516001600160a01b039091169061d6d89047906000818181858888f193505050503d806000811461475d576040519150601f19603f3d011682016040523d82523d6000602084013e614762565b606091505b50505050505050505050505b506014805460ff19169055565b60008084156147915750600b5461ffff166147bb565b83156147aa5750600b5462010000900461ffff166147bb565b50600b54640100000000900461ffff165b806000036147cc5785915050614896565b601954630100000090046001600160a01b0316301480156147f7575046600114806147f75750466038145b1561480157506111945b60006127106148108389615225565b61481a9190615203565b90508015614887573060009081526020819052604081208054839290614841908490615402565b909155505060405181815230906001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b614891818861523c565b925050505b95945050505050565b60195462010000900460ff16156149045760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610e9d565b61490e82826141c6565b1580156149285750600e546001600160a01b038281169116145b15611197576001600160a01b038083166000908152600860205260409020805460ff191660011790556019805462ff00001916620100001790819055630100000090041661498c57601980546301000000600160b81b031916306301000000021790555b6012546001600160a01b03166149af57601280546001600160a01b031916301790555b6014805461ff001916610100179055600a805460ff19169055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532579060200160405180910390a15050565b6001600160a01b03821660009081526007602052604090205460ff16614a91576012546001600160a01b0383811660008181526020819052604090819020549051636f823f4f60e11b81526004810192909252602482015291169063df047e9e90604401600060405180830381600087803b158015614a7e57600080fd5b505af1925050508015614a8f575060015b505b6001600160a01b03811660009081526007602052604090205460ff16614b22576012546001600160a01b0382811660008181526020819052604090819020549051636f823f4f60e11b81526004810192909252602482015291169063df047e9e90604401600060405180830381600087803b158015614b0f57600080fd5b505af1925050508015614b20575060015b505b60195460ff16156111975760125460135460405163a9e732bb60e01b81526001600160a01b039092169163a9e732bb9161219c9160040190815260200190565b80151581146120a857600080fd5b60008060408385031215614b8357600080fd5b8235614b8e81614b62565b91506020830135614b9e81614b62565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715614be857614be8614ba9565b604052919050565b600067ffffffffffffffff821115614c0a57614c0a614ba9565b5060051b60200190565b6001600160a01b03811681146120a857600080fd5b600082601f830112614c3a57600080fd5b81356020614c4f614c4a83614bf0565b614bbf565b82815260059290921b84018101918181019086841115614c6e57600080fd5b8286015b84811015614c92578035614c8581614c14565b8352918301918301614c72565b509695505050505050565b60008060408385031215614cb057600080fd5b823567ffffffffffffffff811115614cc757600080fd5b614cd385828601614c29565b9250506020830135614b9e81614b62565b60005b83811015614cff578181015183820152602001614ce7565b50506000910152565b60008151808452614d20816020860160208601614ce4565b601f01601f19169290920160200192915050565b6020815260006129356020830184614d08565b60008060408385031215614d5a57600080fd5b8235614d6581614c14565b946020939093013593505050565b600060208284031215614d8557600080fd5b813561293581614c14565b60008060408385031215614da357600080fd5b8235614dae81614c14565b91506020830135614b9e81614c14565b600080600060608486031215614dd357600080fd5b8335614dde81614c14565b92506020840135614dee81614c14565b929592945050506040919091013590565b60008060408385031215614e1257600080fd5b50508035926020909101359150565b60008060408385031215614e3457600080fd5b823567ffffffffffffffff80821115614e4c57600080fd5b614e5886838701614c29565b9350602091508185013581811115614e6f57600080fd5b85019050601f81018613614e8257600080fd5b8035614e90614c4a82614bf0565b81815260059190911b82018301908381019088831115614eaf57600080fd5b928401925b82841015614ecd57833582529284019290840190614eb4565b80955050505050509250929050565b803561ffff81168114614eee57600080fd5b919050565b600080600060608486031215614f0857600080fd5b614f1184614edc565b9250614f1f60208501614edc565b9150614f2d60408501614edc565b90509250925092565b60008060408385031215614f4957600080fd5b8235614b8e81614c14565b600060208284031215614f6657600080fd5b5035919050565b608081526000614f806080830187614d08565b8281036020840152614f928187614d08565b90508281036040840152614fa68186614d08565b90508281036060840152613f0b8185614d08565b600080600060608486031215614fcf57600080fd5b8335614fda81614b62565b92506020840135614fea81614b62565b91506040840135614ffa81614b62565b809150509250925092565b60008060006060848603121561501a57600080fd5b505081359360208301359350604090920135919050565b6000806000806080858703121561504757600080fd5b5050823594602084013594506040840135936060013592509050565b600081518084526020808501945080840160005b8381101561509c5781516001600160a01b031687529582019590820190600101615077565b509495945050505050565b6040815260006150ba6040830185615063565b905082151560208301529392505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201615109576151096150e1565b5060010190565b600181815b8085111561514b578160001904821115615131576151316150e1565b8085161561513e57918102915b93841c9390800290615115565b509250929050565b60008261516257506001611021565b8161516f57506000611021565b8160018114615185576002811461518f576151ab565b6001915050611021565b60ff8411156151a0576151a06150e1565b50506001821b611021565b5060208310610133831016604e8410600b84101617156151ce575081810a611021565b6151d88383615110565b80600019048211156151ec576151ec6150e1565b029392505050565b600061293560ff841683615153565b60008261522057634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417611021576110216150e1565b81810381811115611021576110216150e1565b600061ffff808316818103615266576152666150e1565b6001019392505050565b61ffff81811683821601908082111561528b5761528b6150e1565b5092915050565b6000602082840312156152a457600080fd5b5051919050565b600082601f8301126152bc57600080fd5b815167ffffffffffffffff8111156152d6576152d6614ba9565b6152e9601f8201601f1916602001614bbf565b8181528460208386010111156152fe57600080fd5b61138f826020830160208701614ce4565b6000806000806080858703121561532557600080fd5b845167ffffffffffffffff8082111561533d57600080fd5b615349888389016152ab565b9550602087015191508082111561535f57600080fd5b61536b888389016152ab565b9450604087015191508082111561538157600080fd5b61538d888389016152ab565b935060608701519150808211156153a357600080fd5b506153b0878288016152ab565b91505092959194509250565b6000602082840312156153ce57600080fd5b815161293581614c14565b6000602082840312156153eb57600080fd5b815161293581614b62565b60006129358383615153565b80820180821115611021576110216150e1565b85815284602082015260a06040820152600061543460a0830186615063565b6001600160a01b0394909416606083015250608001529392505050565b60008060006060848603121561546657600080fd5b8351925060208401519150604084015190509250925092565b61ffff82811682821603908082111561528b5761528b6150e156fe43616c6c6572203d2f3d206f776e65722e000000000000000000000000000000a2646970667358221220d6de9d5a0a4af1d67baade280e7bcbb4dd1e1c0a198eb226522b935ad2f54f6464736f6c63430008110033
Deployed Bytecode Sourcemap
5076:29331:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6863:73;;;;;;;;;;;;6894:42;6863:73;;;;;-1:-1:-1;;;;;178:55:1;;;160:74;;148:2;133:18;6863:73:0;;;;;;;;7369:28;;;;;;;;;;;;;;;;;;;391:25:1;;;379:2;364:18;7369:28:0;245:177:1;18642:153:0;;;;;;;;;;-1:-1:-1;18642:153:0;;;;;:::i;:::-;;:::i;:::-;;17811:296;;;;;;;;;;-1:-1:-1;17811:296:0;;;;;:::i;:::-;;:::i;6255:107::-;;;;;;;;;;-1:-1:-1;6255:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;3120:6:1;3153:15;;;3135:34;;3205:15;;;3200:2;3185:18;;3178:43;3257:15;;3237:18;;;3230:43;;;;3098:2;3083:18;6255:107:0;2914:365:1;12784:80:0;;;;;;;;;;-1:-1:-1;12856:5:0;;;;;;;;;;;;-1:-1:-1;;;12856:5:0;;;;12784:80;;;;;;;:::i;6802:26::-;;;;;;;;;;-1:-1:-1;6802:26:0;;;;;;;-1:-1:-1;;;;;6802:26:0;;;6769;;;;;;;;;;-1:-1:-1;6769:26:0;;;;;;;;;;;4453:14:1;;4446:22;4428:41;;4416:2;4401:18;6769:26:0;4288:187:1;13205:161:0;;;;;;;;;;-1:-1:-1;13205:161:0;;;;;:::i;:::-;;:::i;16366:140::-;;;;;;;;;;-1:-1:-1;16366:140:0;;;;;:::i;:::-;-1:-1:-1;;;;;16464:34:0;16440:4;16464:34;;;:25;:34;;;;;;;;;16366:140;20839:112;;;;;;;;;;;;;:::i;22854:955::-;;;;;;;;;;-1:-1:-1;22854:955:0;;;;;:::i;:::-;;:::i;12519:83::-;;;;;;;;;;;;;:::i;15741:337::-;;;;;;;;;;-1:-1:-1;15741:337:0;;;;;:::i;:::-;;:::i;14065:306::-;;;;;;;;;;-1:-1:-1;14065:306:0;;;;;:::i;:::-;;:::i;20453:264::-;;;;;;;;;;-1:-1:-1;20453:264:0;;;;;:::i;:::-;;:::i;32566:447::-;;;;;;;;;;-1:-1:-1;32566:447:0;;;;;:::i;:::-;;:::i;7477:33::-;;;;;;;;;;;;;;;;6513:42;;;;;;;;;;;;6551:4;6513:42;;7404:25;;;;;;;;;;;;;;;;12608:80;;;;;;;;;;-1:-1:-1;12608:80:0;;5931:1;7444:36:1;;7432:2;7417:18;12608:80:0;7302:184:1;19192:544:0;;;;;;;;;;-1:-1:-1;19192:544:0;;;;;:::i;:::-;;:::i;18524:110::-;;;;;;;;;;-1:-1:-1;18524:110:0;;;;;:::i;:::-;;:::i;16654:140::-;;;;;;;;;;-1:-1:-1;16654:140:0;;;;;:::i;:::-;;:::i;20172:273::-;;;;;;;;;;-1:-1:-1;20172:273:0;;;;;:::i;:::-;;:::i;6835:21::-;;;;;;;;;;-1:-1:-1;6835:21:0;;;;-1:-1:-1;;;;;6835:21:0;;;6666:46;;;;;;;;;;;;6708:4;6666:46;;7562:34;;;;;;;;;;-1:-1:-1;7562:34:0;;;;;;;;;;;20959:189;;;;;;;;;;-1:-1:-1;20959:189:0;;;;;:::i;:::-;;:::i;21863:217::-;;;;;;;;;;-1:-1:-1;21863:217:0;;;;;:::i;:::-;;:::i;11137:759::-;;;;;;;;;;-1:-1:-1;11137:759:0;;;;;:::i;:::-;;:::i;16086:127::-;;;;;;;;;;-1:-1:-1;16086:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;16177:28:0;16153:4;16177:28;;;:19;:28;;;;;;;;;16086:127;7603:36;;;;;;;;;;-1:-1:-1;7603:36:0;;;;;;;;;;;17246:134;;;;;;;;;;-1:-1:-1;17246:134:0;;;;;:::i;:::-;;:::i;16514:132::-;;;;;;;;;;-1:-1:-1;16514:132:0;;;;;:::i;:::-;-1:-1:-1;;;;;16608:30:0;16584:4;16608:30;;;:21;:30;;;;;;;;;16514:132;34004:138;;;;;;;;;;-1:-1:-1;34004:138:0;;;;;:::i;:::-;;:::i;33827:169::-;;;;;;;;;;-1:-1:-1;33827:169:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;22088:340::-;;;;;;;;;;-1:-1:-1;22088:340:0;;;;;:::i;:::-;;:::i;33021:122::-;;;;;;;;;;;;;:::i;16802:436::-;;;;;;;;;;-1:-1:-1;16802:436:0;;;;;:::i;:::-;;:::i;20725:106::-;;;;;;;;;;;;;:::i;12955:103::-;;;;;;;;;;-1:-1:-1;12955:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;13039:16:0;13021:7;13039:16;;;;;;;;;;;;12955:103;11904:225;;;;;;;;;;;;;:::i;7024:92::-;;;;;;;;;;-1:-1:-1;7024:92:0;;;;-1:-1:-1;;;;;7024:92:0;;;19002:182;;;;;;;;;;;;;:::i;15117:616::-;;;;;;;;;;-1:-1:-1;15117:616:0;;;;;:::i;:::-;;:::i;12870:79::-;;;;;;;;;;-1:-1:-1;12940:6:0;;-1:-1:-1;;;;;12940:6:0;12870:79;;13724:173;;;;;;;;;;;;;:::i;29331:673::-;;;;;;;;;;;;;:::i;34292:112::-;;;;;;;;;;;;;:::i;33597:98::-;;;;;;;;;;;;;:::i;12694:84::-;;;;;;;;;;-1:-1:-1;12768:7:0;;;;;;;;;;;;-1:-1:-1;;;12768:7:0;;;;12694:84;;13905:152;;;;;;;;;;-1:-1:-1;13905:152:0;;;;;:::i;:::-;;:::i;19744:420::-;;;;;;;;;;-1:-1:-1;19744:420:0;;;;;:::i;:::-;;:::i;33341:248::-;;;;;;;;;;-1:-1:-1;33341:248:0;;;;;:::i;:::-;;:::i;34150:134::-;;;;;;;;;;-1:-1:-1;34150:134:0;;;;;:::i;:::-;;:::i;22436:273::-;;;;;;;;;;-1:-1:-1;22436:273:0;;;;;:::i;:::-;;:::i;7436:34::-;;;;;;;;;;-1:-1:-1;7436:34:0;;;;;;;;18250:202;;;;;;;;;;-1:-1:-1;18250:202:0;;;;;:::i;:::-;;:::i;16221:137::-;;;;;;;;;;-1:-1:-1;16221:137:0;;;;;:::i;:::-;-1:-1:-1;;;;;16317:33:0;16293:4;16317:33;;;:24;:33;;;;;;;;;16221:137;6371:133;;;;;;;;;;-1:-1:-1;6371:133:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10593:6:1;10626:15;;;10608:34;;10678:15;;;10673:2;10658:18;;10651:43;10730:15;;;10710:18;;;10703:43;;;;10782:15;;;10777:2;10762:18;;10755:43;10570:3;10555:19;6371:133:0;10360:444:1;22717:129:0;;;;;;;;;;-1:-1:-1;22717:129:0;;;;;:::i;:::-;;:::i;13064:133::-;;;;;;;;;;-1:-1:-1;13064:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;13166:19:0;;;13148:7;13166:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;13064:133;14379:730;;;;;;;;;;-1:-1:-1;14379:730:0;;;;;:::i;:::-;;:::i;18803:191::-;;;;;;;;;;-1:-1:-1;18803:191:0;;;;;:::i;:::-;;:::i;33151:182::-;;;;;;;;;;;;;:::i;17608:195::-;;;;;;;;;;-1:-1:-1;17608:195:0;;;;;:::i;:::-;;:::i;7519:34::-;;;;;;;;;;-1:-1:-1;7519:34:0;;;;;;;;31597:111;;;;;;;;;;-1:-1:-1;31597:111:0;;;;;:::i;:::-;;:::i;33703:116::-;;;;;;;;;;;;;:::i;21156:699::-;;;;;;;;;;-1:-1:-1;21156:699:0;;;;;:::i;:::-;;:::i;7323:39::-;;;;;;;;;;-1:-1:-1;7323:39:0;;;;;;;;;;;18115:127;;;;;;;;;;-1:-1:-1;18115:127:0;;;;;:::i;:::-;;:::i;17388:148::-;;;;;;;;;;-1:-1:-1;17388:148:0;;;;;:::i;:::-;;:::i;18642:153::-;10991:6;;-1:-1:-1;;;;;10991:6:0;11001:10;10991:20;10983:50;;;;-1:-1:-1;;;10983:50:0;;11661:2:1;10983:50:0;;;11643:21:1;11700:2;11680:18;;;11673:30;-1:-1:-1;;;;;;;;;;;11719:18:1;;;11712:47;11776:18;;10983:50:0;;;;;;;;;18737:11:::1;::::0;:50:::1;::::0;-1:-1:-1;;;18737:50:0;;11992:14:1;;11985:22;18737:50:0::1;::::0;::::1;11967:41:1::0;12051:14;;12044:22;12024:18;;;12017:50;18737:11:0;;;::::1;-1:-1:-1::0;;;;;18737:11:0::1;::::0;:26:::1;::::0;11940:18:1;;18737:50:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18642:153:::0;;:::o;17811:296::-;10991:6;;-1:-1:-1;;;;;10991:6:0;11001:10;10991:20;10983:50;;;;-1:-1:-1;;;10983:50:0;;11661:2:1;10983:50:0;;;11643:21:1;11700:2;11680:18;;;11673:30;-1:-1:-1;;;;;;;;;;;11719:18:1;;;11712:47;11776:18;;10983:50:0;11459:341:1;10983:50:0;17919:11:::1;::::0;:58:::1;::::0;-1:-1:-1;;;17919:58:0;;:11;;;::::1;-1:-1:-1::0;;;;;17919:11:0::1;::::0;:39:::1;::::0;:58:::1;::::0;17959:8;;17969:7;;17919:58:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;17992:9;17988:112;18011:8;:15;18007:1;:19;17988:112;;;18047:41;18067:8;18076:1;18067:11;;;;;;;;:::i;:::-;;;;;;;18080:7;18047:19;:41::i;:::-;18028:3:::0;::::1;::::0;::::1;:::i;:::-;;;;17988:112;;;;17811:296:::0;;:::o;13205:161::-;13282:4;13299:37;13308:10;13320:7;13329:6;13299:8;:37::i;:::-;-1:-1:-1;13354:4:0;13205:161;;;;;:::o;20839:112::-;20884:7;20929:13;5931:1;20929:2;:13;:::i;:::-;20911:14;;:32;;;;:::i;:::-;20904:39;;20839:112;:::o;22854:955::-;10991:6;;-1:-1:-1;;;;;10991:6:0;11001:10;10991:20;10983:50;;;;-1:-1:-1;;;10983:50:0;;11661:2:1;10983:50:0;;;11643:21:1;11700:2;11680:18;;;11673:30;-1:-1:-1;;;;;;;;;;;11719:18:1;;;11712:47;11776:18;;10983:50:0;11459:341:1;10983:50:0;22958:23:::1;::::0;::::1;;22950:32;;;::::0;::::1;;-1:-1:-1::0;;;;;23001:23:0;::::1;23019:4;23001:23;::::0;::::1;::::0;:69:::1;;-1:-1:-1::0;;;;;;23046:24:0;::::1;23065:4;23046:24;;23001:69;:107;;;;-1:-1:-1::0;23092:6:0::1;::::0;-1:-1:-1;;;;;23092:16:0;;::::1;:6:::0;::::1;:16;;23001:107;:146;;;;-1:-1:-1::0;23130:6:0::1;::::0;-1:-1:-1;;;;;23130:17:0;;::::1;:6:::0;::::1;:17;;23001:146;22993:170;;;::::0;-1:-1:-1;;;22993:170:0;;15125:2:1;22993:170:0::1;::::0;::::1;15107:21:1::0;15164:2;15144:18;;;15137:30;-1:-1:-1;;;15183:18:1;;;15176:41;15234:18;;22993:170:0::1;14923:335:1::0;22993:170:0::1;23188:7;-1:-1:-1::0;;;;;23178:17:0::1;:6;-1:-1:-1::0;;;;;23178:17:0::1;::::0;23174:628:::1;;-1:-1:-1::0;;;;;23212:26:0;::::1;;::::0;;;:17:::1;:26;::::0;;;;;;;:33;;23241:4:::1;-1:-1:-1::0;;23212:33:0;;::::1;::::0;::::1;::::0;;;23260:16:::1;:25:::0;;;;;:32;;;;::::1;::::0;::::1;::::0;;23307:34:::1;::::0;23212:26;;23307:19:::1;:34::i;:::-;23356;23376:7;23385:4;23356:19;:34::i;:::-;22854:955:::0;;:::o;23174:628::-:1;-1:-1:-1::0;;;;;23423:25:0;;::::1;;::::0;;;:17:::1;:25;::::0;;;;;;;:32;;23451:4:::1;-1:-1:-1::0;;23423:32:0;;::::1;::::0;::::1;::::0;;;23470:26;;::::1;::::0;;;;;;:33;;;::::1;::::0;::::1;::::0;;23518:24;;;:16:::1;:24:::0;;;;;;:31;;;::::1;::::0;::::1;::::0;;23564:25;;;;;;:32;;;;::::1;::::0;::::1;::::0;;;23611:33:::1;::::0;23423:25;;23611:19:::1;:33::i;:::-;23659:34;23679:7;23688:4;23659:19;:34::i;:::-;23708:33;23728:6;23736:4;23708:19;:33::i;12519:83::-:0;12574:7;5992:15;5931:1;5992:2;:15;:::i;:::-;5974:34;;5770:21;5974:34;:::i;15741:337::-;10991:6;;-1:-1:-1;;;;;10991:6:0;11001:10;10991:20;10983:50;;;;-1:-1:-1;;;10983:50:0;;11661:2:1;10983:50:0;;;11643:21:1;11700:2;11680:18;;;11673:30;-1:-1:-1;;;;;;;;;;;11719:18:1;;;11712:47;11776:18;;10983:50:0;11459:341:1;10983:50:0;15849:14:::1;::::0;::::1;::::0;::::1;;;15848:15;15840:24;;;::::0;::::1;;-1:-1:-1::0;;;;;15883:29:0;::::1;15907:4;15883:29;::::0;::::1;::::0;:62:::1;;-1:-1:-1::0;;;;;;15916:29:0;::::1;15940:4;15916:29;;15883:62;:94;;;;;15965:12;-1:-1:-1::0;;;;;15949:28:0::1;:12;-1:-1:-1::0;;;;;15949:28:0::1;;;15883:94;15875:103;;;::::0;::::1;;15989:7;:31:::0;;-1:-1:-1;;;;;;15989:31:0::1;-1:-1:-1::0;;;;;15989:31:0;;::::1;;::::0;;16031:11:::1;:39:::0;;-1:-1:-1;;;;;;16031:39:0::1;::::0;;;;::::1;::::0;;;::::1;;::::0;;15741:337::o;14065:306::-;-1:-1:-1;;;;;14186:19:0;;14165:4;14186:19;;;:11;:19;;;;;;;;14206:10;14186:31;;;;;;;;-1:-1:-1;;14186:52:0;14182:126;;-1:-1:-1;;;;;14255:19:0;;;;;;:11;:19;;;;;;;;14275:10;14255:31;;;;;;;:41;;14290:6;;14255:19;:41;;14290:6;;14255:41;:::i;:::-;;;;-1:-1:-1;;14182:126:0;14327:36;14337:6;14345:9;14356:6;14327:9;:36::i;:::-;14320:43;14065:306;-1:-1:-1;;;;14065:306:0:o;20453:264::-;10991:6;;-1:-1:-1;;;;;10991:6:0;11001:10;10991:20;10983:50;;;;-1:-1:-1;;;10983:50:0;;11661:2:1;10983:50:0;;;11643:21:1;11700:2;11680:18;;;11673:30;-1:-1:-1;;;;;;;;;;;11719:18:1;;;11712:47;11776:18;;10983:50:0;11459:341:1;10983:50:0;20595:3:::1;5992:15;5931:1;5992:2;:15;:::i;:::-;5974:34;::::0;5770:21:::1;5974:34;:::i;:::-;20585:13;;;;:::i;:::-;20573:7:::0;20562;5992:15:::1;5931:1;5992:2;:15;:::i;:::-;5974:34;::::0;5770:21:::1;5974:34;:::i;:::-;20552:17;;;;:::i;:::-;20551:29;;;;:::i;:::-;:48;;20543:109;;;::::0;-1:-1:-1;;;20543:109:0;;15771:2:1;20543:109:0::1;::::0;::::1;15753:21:1::0;15810:2;15790:18;;;15783:30;15849:34;15829:18;;;15822:62;15920:18;15900;;;15893:46;15956:19;;20543:109:0::1;15569:412:1::0;20543:109:0::1;20702:7:::0;20691;5992:15:::1;5931:1;5992:2;:15;:::i;:::-;5974:34;::::0;5770:21:::1;5974:34;:::i;:::-;20681:17;;;;:::i;:::-;20680:29;;;;:::i;:::-;20663:14;:46:::0;-1:-1:-1;;20453:264:0:o;32566:447::-;10991:6;;-1:-1:-1;;;;;10991:6:0;11001:10;10991:20;10983:50;;;;-1:-1:-1;;;10983:50:0;;11661:2:1;10983:50:0;;;11643:21:1;11700:2;11680:18;;;11673:30;-1:-1:-1;;;;;;;;;;;11719:18:1;;;11712:47;11776:18;;10983:50:0;11459:341:1;10983:50:0;32701:7:::1;:14;32682:8;:15;:33;32674:67;;;::::0;-1:-1:-1;;;32674:67:0;;16188:2:1;32674:67:0::1;::::0;::::1;16170:21:1::0;16227:2;16207:18;;;16200:30;16266:23;16246:18;;;16239:51;16307:18;;32674:67:0::1;15986:345:1::0;32674:67:0::1;32757:8;32752:254;32775:8;:15;32771:1;:19;;;32752:254;;;32856:13;5931:1;32856:2;:13;:::i;:::-;32845:7;32853:1;32845:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;32830:10;13021:7:::0;13039:16;;;;;;;;;;;32820:49:::1;;32812:80;;;::::0;-1:-1:-1;;;32812:80:0;;16538:2:1;32812:80:0::1;::::0;::::1;16520:21:1::0;16577:2;16557:18;;;16550:30;16616:20;16596:18;;;16589:48;16654:18;;32812:80:0::1;16336:342:1::0;32812:80:0::1;32907:87;32924:10;32936:8;32945:1;32936:11;;;;;;;;;;:::i;:::-;;;;;;;5931:1;32960:2;:13;;;;:::i;:::-;32949:7;32957:1;32949:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;32975:5;32982::::0;32989:4:::1;32907:16;:87::i;:::-;-1:-1:-1::0;32792:3:0;::::1;::::0;::::1;:::i;:::-;;;;32752:254;;19192:544:::0;10991:6;;-1:-1:-1;;;;;10991:6:0;11001:10;10991:20;10983:50;;;;-1:-1:-1;;;10983:50:0;;11661:2:1;10983:50:0;;;11643:21:1;11700:2;11680:18;;;11673:30;-1:-1:-1;;;;;;;;;;;11719:18:1;;;11712:47;11776:18;;10983:50:0;11459:341:1;10983:50:0;19300:14:::1;::::0;::::1;;19299:15;19291:45;;;::::0;-1:-1:-1;;;19291:45:0;;17087:2:1;19291:45:0::1;::::0;::::1;17069:21:1::0;17126:2;17106:18;;;17099:30;17165:19;17145:18;;;17138:47;17202:18;;19291:45:0::1;16885:341:1::0;19291:45:0::1;6551:4;19355:6;:21;;;;:65;;;;;6601:4;19397:7;:23;;;;19355:65;:117;;;;;6655:4;19441:11;:31;;;;19355:117;19347:170;;;::::0;-1:-1:-1;;;19347:170:0;;17433:2:1;19347:170:0::1;::::0;::::1;17415:21:1::0;17472:2;17452:18;;;17445:30;17511:25;17491:18;;;17484:53;17554:18;;19347:170:0::1;17231:347:1::0;19347:170:0::1;6708:4;19536:16;19545:7:::0;19536:6;:16:::1;:::i;:::-;:35;;;;19528:80;;;::::0;-1:-1:-1;;;19528:80:0;;17958:2:1;19528:80:0::1;::::0;::::1;17940:21:1::0;;;17977:18;;;17970:30;18036:34;18016:18;;;18009:62;18088:18;;19528:80:0::1;17756:356:1::0;19528:80:0::1;19619:9;:25:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;19655:27:0;;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;-1:-1:-1::0;;19693:35:0::1;::::0;;;;::::1;;::::0;;;::::1;::::0;;19192:544::o;18524:110::-;10991:6;;-1:-1:-1;;;;;10991:6:0;11001:10;10991:20;10983:50;;;;-1:-1:-1;;;10983:50:0;;11661:2:1;10983:50:0;;;11643:21:1;11700:2;11680:18;;;11673:30;-1:-1:-1;;;;;;;;;;;11719:18:1;;;11712:47;11776:18;;10983:50:0;11459:341:1;10983:50:0;18593:11:::1;::::0;:33:::1;::::0;-1:-1:-1;;;18593:33:0;;-1:-1:-1;;;;;178:55:1;;;18593:33:0::1;::::0;::::1;160:74:1::0;18593:11:0;;;::::1;::::0;;::::1;::::0;:24:::1;::::0;133:18:1;;18593:33:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18524:110:::0;:::o;16654:140::-;10991:6;;-1:-1:-1;;;;;10991:6:0;11001:10;10991:20;10983:50;;;;-1:-1:-1;;;10983:50:0;;11661:2:1;10983:50:0;;;11643:21:1;11700:2;11680:18;;;11673:30;-1:-1:-1;;;;;;;;;;;11719:18:1;;;11712:47;11776:18;;10983:50:0;11459:341:1;10983:50:0;-1:-1:-1;;;;;16746:30:0;;;::::1;;::::0;;;:21:::1;:30;::::0;;;;:40;;-1:-1:-1;;16746:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16654:140::o;20172:273::-;10991:6;;-1:-1:-1;;;;;10991:6:0;11001:10;10991:20;10983:50;;;;-1:-1:-1;;;10983:50:0;;11661:2:1;10983:50:0;;;11643:21:1;11700:2;11680:18;;;11673:30;-1:-1:-1;;;;;;;;;;;11719:18:1;;;11712:47;11776:18;;10983:50:0;11459:341:1;10983:50:0;20317:4:::1;5992:15;5931:1;5992:2;:15;:::i;:::-;5974:34;::::0;5770:21:::1;5974:34;:::i;:::-;20303:11;::::0;20313:1:::1;20303:11;:::i;:::-;:18;;;;:::i;:::-;20291:7:::0;20280;5992:15:::1;5931:1;5992:2;:15;:::i;:::-;5974:34;::::0;5770:21:::1;5974:34;:::i;:::-;20270:17;;;;:::i;:::-;20269:29;;;;:::i;:::-;:53;;20261:121;;;::::0;-1:-1:-1;;;20261:121:0;;18319:2:1;20261:121:0::1;::::0;::::1;18301:21:1::0;18358:2;18338:18;;;18331:30;18397:34;18377:18;;;18370:62;18468:25;18448:18;;;18441:53;18511:19;;20261:121:0::1;18117:419:1::0;20261:121:0::1;20430:7:::0;20419;5992:15:::1;5931:1;5992:2;:15;:::i;:::-;5974:34;::::0;5770:21:::1;5974:34;:::i;:::-;20409:17;;;;:::i;:::-;20408:29;;;;:::i;:::-;20393:12;:44:::0;-1:-1:-1;;20172:273:0:o;20959:189::-;21088:6;;-1:-1:-1;;;;;21088:6:0;21050:7;13039:16;;;;;;;;;;;6755:5;;21078:41;;21098:21;;21078:41;:::i;:::-;21077:62;;;;:::i;21863:217::-;10991:6;;-1:-1:-1;;;;;10991:6:0;11001:10;10991:20;10983:50;;;;-1:-1:-1;;;10983:50:0;;11661:2:1;10983:50:0;;;11643:21:1;11700:2;11680:18;;;11673:30;-1:-1:-1;;;;;;;;;;;11719:18:1;;;11712:47;11776:18;;10983:50:0;11459:341:1;10983:50:0;21993:3:::1;21967:22;:29;;21959:64;;;::::0;-1:-1:-1;;;21959:64:0;;18743:2:1;21959:64:0::1;::::0;::::1;18725:21:1::0;18782:2;18762:18;;;18755:30;18821:24;18801:18;;;18794:52;18863:18;;21959:64:0::1;18541:346:1::0;21959:64:0::1;22034:13;:38:::0;21863:217::o;11137:759::-;10991:6;;-1:-1:-1;;;;;10991:6:0;11001:10;10991:20;10983:50;;;;-1:-1:-1;;;10983:50:0;;11661:2:1;10983:50:0;;;11643:21:1;11700:2;11680:18;;;11673:30;-1:-1:-1;;;;;;;;;;;11719:18:1;;;11712:47;11776:18;;10983:50:0;11459:341:1;10983:50:0;-1:-1:-1;;;;;11216:22:0;::::1;11208:96;;;::::0;-1:-1:-1;;;11208:96:0;;19094:2:1;11208:96:0::1;::::0;::::1;19076:21:1::0;19133:2;19113:18;;;19106:30;19172:34;19152:18;;;19145:62;19243:31;19223:18;;;19216:59;19292:19;;11208:96:0::1;18892:425:1::0;11208:96:0::1;-1:-1:-1::0;;;;;;;11323:16:0;::::1;::::0;11315:90:::1;;;::::0;-1:-1:-1;;;11315:90:0;;19094:2:1;11315:90:0::1;::::0;::::1;19076:21:1::0;19133:2;19113:18;;;19106:30;19172:34;19152:18;;;19145:62;19243:31;19223:18;;;19216:59;19292:19;;11315:90:0::1;18892:425:1::0;11315:90:0::1;11436:6;::::0;;-1:-1:-1;;;;;11436:6:0;;::::1;11446:5;11416:27:::0;;;:19:::1;:27;::::0;;;;;;;:35;;-1:-1:-1;;11416:35:0;;::::1;::::0;;;11487:6;;;::::1;11462:32:::0;;:24:::1;:32:::0;;;;;;:40;;;::::1;::::0;;11513:29;;::::1;::::0;;;;;;;;:36;;;::::1;-1:-1:-1::0;11513:36:0;;::::1;::::0;;;11560:34;;;;;;:41;;;;::::1;::::0;;::::1;::::0;;;11636:6;;;;::::1;13039:16:::0;;;;;;;;;11626:21;11622:127:::1;;11681:6;::::0;-1:-1:-1;;;;;11681:6:0::1;13021:7:::0;13039:16;;;;;;;;;;;11664:73:::1;::::0;11681:6;11689:8;;11699:17:::1;12955:103:::0;11664:73:::1;;11622:127;11788:6;::::0;;-1:-1:-1;;;;;11805:17:0;;::::1;-1:-1:-1::0;;;;;;11805:17:0;::::1;::::0;::::1;::::0;;;11838:40:::1;::::0;11788:6;::::1;::::0;11805:17;11788:6;;11838:40:::1;::::0;11769:16:::1;::::0;11838:40:::1;11197:699;11137:759:::0;:::o;17246:134::-;10991:6;;-1:-1:-1;;;;;10991:6:0;11001:10;10991:20;10983:50;;;;-1:-1:-1;;;10983:50:0;;11661:2:1;10983:50:0;;;11643:21:1;11700:2;11680:18;;;11673:30;-1:-1:-1;;;;;;;;;;;11719:18:1;;;11712:47;11776:18;;10983:50:0;11459:341:1;10983:50:0;-1:-1:-1;;;;;17334:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:38;;-1:-1:-1;;17334:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17246:134::o;34004:138::-;34098:7;;:36;;-1:-1:-1;;;34098:36:0;;-1:-1:-1;;;;;178:55:1;;;34098:36:0;;;160:74:1;34071:7:0;;34098;;:30;;133:18:1;;34098:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;33827:169::-;33963:7;;:25;;-1:-1:-1;;;33963:25:0;;-1:-1:-1;;;;;178:55:1;;;33963:25:0;;;160:74:1;33885:13:0;;;;;;;;33963:7;;:19;;133:18:1;;33963:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;33963:25:0;;;;;;;;;;;;:::i;:::-;33956:32;;;;;;;;33827:169;;;;;:::o;22088:340::-;10991:6;;-1:-1:-1;;;;;10991:6:0;11001:10;10991:20;10983:50;;;;-1:-1:-1;;;10983:50:0;;11661:2:1;10983:50:0;;;11643:21:1;11700:2;11680:18;;;11673:30;-1:-1:-1;;;;;;;;;;;11719:18:1;;;11712:47;11776:18;;10983:50:0;11459:341:1;10983:50:0;22225:19:::1;:33:::0;;-1:-1:-1;;22225:33:0::1;;::::0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;22269:14:::1;:38:::0;;-1:-1:-1;;22269:38:0;;::::1;::::0;::::1;;;::::0;;;22318:22:::1;:47:::0;;;;::::1;::::0;::::1;;;::::0;;22381:39:::1;::::0;4428:41:1;;;22381:39:0::1;::::0;4416:2:1;4401:18;22381:39:0::1;;;;;;;22088:340:::0;;;:::o;33021:122::-;10991:6;;-1:-1:-1;;;;;10991:6:0;11001:10;10991:20;10983:50;;;;-1:-1:-1;;;10983:50:0;;11661:2:1;10983:50:0;;;11643:21:1;11700:2;11680:18;;;11673:30;-1:-1:-1;;;;;;;;;;;11719:18:1;;;11712:47;11776:18;;10983:50:0;11459:341:1;10983:50:0;33080:7:::1;;;;;;;;;-1:-1:-1::0;;;;;33080:7:0::1;-1:-1:-1::0;;;;;33080:12:0::1;;33100:21;33080:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;33076:60:::0;33021:122::o;16802:436::-;10991:6;;-1:-1:-1;;;;;10991:6:0;11001:10;10991:20;10983:50;;;;-1:-1:-1;;;10983:50:0;;11661:2:1;10983:50:0;;;11643:21:1;11700:2;11680:18;;;11673:30;-1:-1:-1;;;;;;;;;;;11719:18:1;;;11712:47;11776:18;;10983:50:0;11459:341:1;10983:50:0;-1:-1:-1;;;;;16898:24:0;::::1;16917:4;16898:24;::::0;::::1;::::0;:63:::1;;-1:-1:-1::0;16955:6:0::1;::::0;-1:-1:-1;;;;;16944:17:0;;::::1;16955:6:::0;::::1;16944:17;;16898:63;:99;;;;-1:-1:-1::0;;;;;;16982:15:0;::::1;6894:42;16982:15;;16898:99;16890:108;;;::::0;::::1;;-1:-1:-1::0;;;;;17009:33:0;::::1;;::::0;;;:24:::1;:33;::::0;;;;:43;;-1:-1:-1;;17009:43:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;17063:168:::1;;17095:7;::::0;:25:::1;::::0;-1:-1:-1;;;17095:25:0;;-1:-1:-1;;;;;21202:55:1;;;17095:25:0::1;::::0;::::1;21184:74:1::0;17095:7:0::1;21274:18:1::0;;;21267:34;17095:7:0;;::::1;::::0;:13:::1;::::0;21157:18:1;;17095:25:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;17091:41:::0;17063:168:::1;17091:41;22854:955:::0;;:::o;17063:168::-:1;17168:7;::::0;-1:-1:-1;;;;;17191:16:0;;::::1;17168:7;17191:16:::0;;;::::1;::::0;;;;;;;;;17168:40;;-1:-1:-1;;;17168:40:0;;::::1;::::0;::::1;21184:74:1::0;;;;21274:18;;;21267:34;17168:7:0;::::1;::::0;:13:::1;::::0;21157:18:1;;17168:40:0::1;;;;;;;;;;;;;;;;;::::0;::::1;20725:106:::0;20766:7;20809:13;5931:1;20809:2;:13;:::i;:::-;20793:12;;:30;;;;:::i;11904:225::-;10991:6;;-1:-1:-1;;;;;10991:6:0;11001:10;10991:20;10983:50;;;;-1:-1:-1;;;10983:50:0;;11661:2:1;10983:50:0;;;11643:21:1;11700:2;11680:18;;;11673:30;-1:-1:-1;;;;;;;;;;;11719:18:1;;;11712:47;11776:18;;10983:50:0;11459:341:1;10983:50:0;11983:6:::1;::::0;11963:34:::1;::::0;-1:-1:-1;;;;;11983:6:0::1;;11963:19;:34::i;:::-;12027:6;::::0;;-1:-1:-1;;;;;;12044:19:0;::::1;::::0;;;12079:42:::1;::::0;-1:-1:-1;;;;;12027:6:0;;::::1;::::0;12008:16:::1;::::0;12027:6;;12079:42:::1;::::0;12008:16;;12079:42:::1;11952:177;11904:225::o:0;19002:182::-;10991:6;;-1:-1:-1;;;;;10991:6:0;11001:10;10991:20;10983:50;;;;-1:-1:-1;;;10983:50:0;;11661:2:1;10983:50:0;;;11643:21:1;11700:2;11680:18;;;11673:30;-1:-1:-1;;;;;;;;;;;11719:18:1;;;11712:47;11776:18;;10983:50:0;11459:341:1;10983:50:0;19155:14:::1;:21:::0;;-1:-1:-1;;19155:21:0::1;19172:4;19155:21;::::0;;19002:182::o;15117:616::-;10991:6;;-1:-1:-1;;;;;10991:6:0;11001:10;10991:20;10983:50;;;;-1:-1:-1;;;10983:50:0;;11661:2:1;10983:50:0;;;11643:21:1;11700:2;11680:18;;;11673:30;-1:-1:-1;;;;;;;;;;;11719:18:1;;;11712:47;11776:18;;10983:50:0;11459:341:1;10983:50:0;15199:7:::1;15194:532;;-1:-1:-1::0;;;;;15223:13:0;;::::1;15239:5;15223:13:::0;;;:7:::1;:13;::::0;;;;;;;:21;;-1:-1:-1;;15223:21:0;;::::1;::::0;;;15259:24:::1;:30:::0;;;;;;:37;;;;::::1;::::0;;::::1;::::0;;15311:11:::1;::::0;:34;;-1:-1:-1;;;15311:34:0;;::::1;::::0;::::1;21782:74:1::0;;;;21872:18;;;21865:50;;;;15311:11:0;;::::1;::::0;;::::1;::::0;:21:::1;::::0;21755:18:1;;15311:34:0::1;;;;;;;;;;;;;;;;;::::0;::::1;15194:532;15382:17;::::0;:22;15378:135:::1;;15471:6;15451:17;;15433:15;:35;;;;:::i;:::-;:44;15425:72;;;::::0;-1:-1:-1;;;15425:72:0;;22128:2:1;15425:72:0::1;::::0;::::1;22110:21:1::0;22167:2;22147:18;;;22140:30;22206:17;22186:18;;;22179:45;22241:18;;15425:72:0::1;21926:339:1::0;15425:72:0::1;-1:-1:-1::0;;;;;15536:13:0;::::1;;::::0;;;:7:::1;:13;::::0;;;;;::::1;;15535:14;15527:54;;;::::0;-1:-1:-1;;;15527:54:0;;22472:2:1;15527:54:0::1;::::0;::::1;22454:21:1::0;22511:2;22491:18;;;22484:30;22550:29;22530:18;;;22523:57;22597:18;;15527:54:0::1;22270:351:1::0;15527:54:0::1;-1:-1:-1::0;;;;;15596:13:0;;::::1;;::::0;;;15612:4:::1;15596:13;::::0;;;;;;;;:20;;-1:-1:-1;;15596:20:0::1;::::0;::::1;::::0;;15651:15:::1;15631:17;:35:::0;15681:11:::1;::::0;:33;;-1:-1:-1;;;15681:33:0;;::::1;::::0;::::1;21782:74:1::0;;;;21872:18;;;21865:50;15681:11:0;;::::1;::::0;;::::1;::::0;:21:::1;::::0;21755:18:1;;15681:33:0::1;21614:307:1::0;13724:173:0;10991:6;;13788:4;;-1:-1:-1;;;;;10991:6:0;11001:10;10991:20;10983:50;;;;-1:-1:-1;;;10983:50:0;;11661:2:1;10983:50:0;;;11643:21:1;11700:2;11680:18;;;11673:30;-1:-1:-1;;;;;;;;;;;11719:18:1;;;11712:47;11776:18;;10983:50:0;11459:341:1;10983:50:0;13837:9:::1;::::0;13805:62:::1;::::0;13822:4:::1;::::0;13837:9:::1;::::0;::::1;-1:-1:-1::0;;;;;13837:9:0::1;-1:-1:-1::0;;13805:8:0::1;:62::i;:::-;-1:-1:-1::0;13885:4:0::1;13724:173:::0;:::o;29331:673::-;10991:6;;-1:-1:-1;;;;;10991:6:0;11001:10;10991:20;10983:50;;;;-1:-1:-1;;;10983:50:0;;11661:2:1;10983:50:0;;;11643:21:1;11700:2;11680:18;;;11673:30;-1:-1:-1;;;;;;;;;;;11719:18:1;;;11712:47;11776:18;;10983:50:0;11459:341:1;10983:50:0;29393:14:::1;::::0;::::1;::::0;::::1;;;29392:15;29384:52;;;::::0;-1:-1:-1;;;29384:52:0;;22828:2:1;29384:52:0::1;::::0;::::1;22810:21:1::0;22867:2;22847:18;;;22840:30;22906:26;22886:18;;;22879:54;22950:18;;29384:52:0::1;22626:348:1::0;29384:52:0::1;29455:16;::::0;;;::::1;;;29447:53;;;::::0;-1:-1:-1;;;29447:53:0;;23181:2:1;29447:53:0::1;::::0;::::1;23163:21:1::0;23220:2;23200:18;;;23193:30;23259:26;23239:18;;;23232:54;23303:18;;29447:53:0::1;22979:348:1::0;29447:53:0::1;29523:11;::::0;;;::::1;-1:-1:-1::0;;;;;29523:11:0::1;29511:106;;29565:11;:40:::0;;-1:-1:-1;;;;;;29565:40:0::1;29599:4;29565:40:::0;::::1;;::::0;;29511:106:::1;29631:11;::::0;29653:6:::1;::::0;29631:87:::1;::::0;-1:-1:-1;;;29631:87:0;;-1:-1:-1;;;;;29653:6:0;;::::1;29631:87;::::0;::::1;23555:74:1::0;23677:10;29668:12:0::1;23665:23:1::0;23645:18;;;23638:51;23737:18;29690:15:0::1;23725:31:1::0;23705:18;;;23698:59;5931:1:0::1;23773:18:1::0;;;23766:45;29631:11:0;;;::::1;;::::0;:21:::1;::::0;23527:19:1;;29631:87:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;29627:103:::0;29744:7:::1;;;;;;;;;-1:-1:-1::0;;;;;29744:7:0::1;-1:-1:-1::0;;;;;29744:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;29740:36:::0;29786:14:::1;:21:::0;;-1:-1:-1;;29818:21:0;;;;;29850:23:::1;:31:::0;;-1:-1:-1;;29850:31:0::1;::::0;;29919:6:::1;::::0;-1:-1:-1;;;;;29919:6:0::1;-1:-1:-1::0;13039:16:0;;;;;;;;;;;29935:5:::1;::::0;29909:22:::1;::::0;29929:2:::1;29909:22;:::i;:::-;29908:32;;;;:::i;:::-;29892:13;:48:::0;29975:6:::1;::::0;-1:-1:-1;;;;;29975:6:0::1;13021:7:::0;13039:16;;;;;;;;;;;29991:5:::1;::::0;29965:22:::1;::::0;29985:2:::1;29965:22;:::i;:::-;29964:32;;;;:::i;:::-;29951:10;:45:::0;29331:673::o;34292:112::-;34370:7;;:26;;;-1:-1:-1;;;34370:26:0;;;;34343:7;;-1:-1:-1;;;;;34370:7:0;;:24;;:26;;;;;;;;;;;;;;:7;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;33597:98::-;33648:7;;:39;;-1:-1:-1;;;33648:39:0;;33676:10;33648:39;;;160:74:1;-1:-1:-1;;;;;33648:7:0;;;;:27;;133:18:1;;33648:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33597:98::o;13905:152::-;13985:4;14009:40;14019:10;14031:9;14042:6;14009:9;:40::i;:::-;14002:47;13905:152;-1:-1:-1;;;13905:152:0:o;19744:420::-;10991:6;;-1:-1:-1;;;;;10991:6:0;11001:10;10991:20;10983:50;;;;-1:-1:-1;;;10983:50:0;;11661:2:1;10983:50:0;;;11643:21:1;11700:2;11680:18;;;11673:30;-1:-1:-1;;;;;;;;;;;11719:18:1;;;11712:47;11776:18;;10983:50:0;11459:341:1;10983:50:0;19845:7:::1;:25:::0;;::::1;19921:29:::0;;::::1;::::0;::::1;-1:-1:-1::0;;19881:29:0;;::::1;::::0;::::1;-1:-1:-1::0;;19881:29:0;;;19845:25;;::::1;19881:29:::0;;;;;;;::::1;19921;;::::0;;19941:9;19977:19:::1;19901:9:::0;19863:7;19977:19:::1;:::i;:::-;:31;;;;:::i;:::-;19961:7;:47:::0;;-1:-1:-1;;19961:47:0::1;::::0;::::1;::::0;;::::1;;;::::0;;20054:9:::1;:17:::0;-1:-1:-1;;20035:36:0::1;::::0;20054:17;;::::1;::::0;::::1;::::0;20035:16:::1;:36;:::i;:::-;20090:7;:13:::0;20019:52:::1;::::0;;::::1;::::0;-1:-1:-1;20090:13:0;;::::1;;:22:::0;-1:-1:-1;20090:22:0::1;20082:74;;;::::0;-1:-1:-1;;;20082:74:0;;24280:2:1;20082:74:0::1;::::0;::::1;24262:21:1::0;24319:2;24299:18;;;24292:30;24358:34;24338:18;;;24331:62;-1:-1:-1;;;24409:18:1;;;24402:37;24456:19;;20082:74:0::1;24078:403:1::0;33341:248:0;10991:6;;-1:-1:-1;;;;;10991:6:0;11001:10;10991:20;10983:50;;;;-1:-1:-1;;;10983:50:0;;11661:2:1;10983:50:0;;;11643:21:1;11700:2;11680:18;;;11673:30;-1:-1:-1;;;;;;;;;;;11719:18:1;;;11712:47;11776:18;;10983:50:0;11459:341:1;10983:50:0;33440:4:::1;-1:-1:-1::0;;;;;33423:22:0;::::1;::::0;33415:62:::1;;;::::0;-1:-1:-1;;;33415:62:0;;24688:2:1;33415:62:0::1;::::0;::::1;24670:21:1::0;24727:2;24707:18;;;24700:30;24766:29;24746:18;;;24739:57;24813:18;;33415:62:0::1;24486:351:1::0;33415:62:0::1;33542:6;::::0;33550:30:::1;::::0;-1:-1:-1;;;33550:30:0;;33574:4:::1;33550:30;::::0;::::1;160:74:1::0;33510:5:0;;-1:-1:-1;;;;;33527:14:0;;::::1;::::0;::::1;::::0;33542:6;;;::::1;::::0;33527:14;;33550:15:::1;::::0;133:18:1;;33550:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;33527:54;::::0;-1:-1:-1;;;;;;33527:54:0::1;::::0;;;;;;-1:-1:-1;;;;;21202:55:1;;;33527:54:0::1;::::0;::::1;21184:74:1::0;21274:18;;;21267:34;21157:18;;33527:54:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;34150:134::-:0;34245:7;;:31;;-1:-1:-1;;;34245:31:0;;-1:-1:-1;;;;;178:55:1;;;34245:31:0;;;160:74:1;34218:7:0;;34245;;:25;;133:18:1;;34245:31:0;14:226:1;22436:273:0;10991:6;;-1:-1:-1;;;;;10991:6:0;11001:10;10991:20;10983:50;;;;-1:-1:-1;;;10983:50:0;;11661:2:1;10983:50:0;;;11643:21:1;11700:2;11680:18;;;11673:30;-1:-1:-1;;;;;;;;;;;11719:18:1;;;11712:47;11776:18;;10983:50:0;11459:341:1;10983:50:0;22607:27:::1;22611:23:::0;22607:2:::1;:27;:::i;:::-;22590:44;::::0;:14;:44:::1;:::i;:::-;22645:7;::::0;:56:::1;::::0;-1:-1:-1;;;22645:56:0;;::::1;::::0;::::1;25402:25:1::0;;;25443:18;;;25436:34;;;22573:61:0;;-1:-1:-1;;;;;;22645:7:0::1;::::0;:28:::1;::::0;25375:18:1;;22645:56:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;22436:273:::0;;;:::o;18250:202::-;10991:6;;-1:-1:-1;;;;;10991:6:0;11001:10;10991:20;10983:50;;;;-1:-1:-1;;;10983:50:0;;11661:2:1;10983:50:0;;;11643:21:1;11700:2;11680:18;;;11673:30;-1:-1:-1;;;;;;;;;;;11719:18:1;;;11712:47;11776:18;;10983:50:0;11459:341:1;10983:50:0;18406:11:::1;::::0;:38:::1;::::0;-1:-1:-1;;;18406:38:0;;-1:-1:-1;;;;;178:55:1;;;18406:38:0::1;::::0;::::1;160:74:1::0;18406:11:0;;;::::1;::::0;;::::1;::::0;:29:::1;::::0;133:18:1;;18406:38:0::1;14:226:1::0;22717:129:0;10991:6;;-1:-1:-1;;;;;10991:6:0;11001:10;10991:20;10983:50;;;;-1:-1:-1;;;10983:50:0;;11661:2:1;10983:50:0;;;11643:21:1;11700:2;11680:18;;;11673:30;-1:-1:-1;;;;;;;;;;;11719:18:1;;;11712:47;11776:18;;10983:50:0;11459:341:1;10983:50:0;22804:6:::1;22798:3;:12;22790:21;;;::::0;::::1;;22822:10;:16:::0;22717:129::o;14379:730::-;10991:6;;-1:-1:-1;;;;;10991:6:0;11001:10;10991:20;10983:50;;;;-1:-1:-1;;;10983:50:0;;11661:2:1;10983:50:0;;;11643:21:1;11700:2;11680:18;;;11673:30;-1:-1:-1;;;;;;;;;;;11719:18:1;;;11712:47;11776:18;;10983:50:0;11459:341:1;10983:50:0;14459:16:::1;::::0;;;::::1;;;14458:17;14450:60;;;::::0;-1:-1:-1;;;14450:60:0;;25683:2:1;14450:60:0::1;::::0;::::1;25665:21:1::0;25722:2;25702:18;;;25695:30;25761:32;25741:18;;;25734:60;25811:18;;14450:60:0::1;25481:354:1::0;14450:60:0::1;14583:6;::::0;-1:-1:-1;;;;;14583:6:0;;::::1;14521:20;14575:15:::0;;;:7:::1;:15;::::0;;;;;;;:23;;-1:-1:-1;;14575:23:0::1;::::0;;14639:20;;-1:-1:-1;;;14639:20:0;;;;14554:9;;14639:18;::::1;::::0;::::1;::::0;:20:::1;::::0;;::::1;::::0;;;;;;;:18;:20:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14628:40:0::1;;14677:4;14684:10;-1:-1:-1::0;;;;;14684:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14628:74;::::0;-1:-1:-1;;;;;;14628:74:0::1;::::0;;;;;;-1:-1:-1;;;;;26093:15:1;;;14628:74:0::1;::::0;::::1;26075:34:1::0;26145:15;;26125:18;;;26118:43;25987:18;;14628:74:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14609:93:::0;-1:-1:-1;;;;;;14717:22:0;::::1;14713:200;;14776:10;-1:-1:-1::0;;;;;14776:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14765:43:0::1;;14817:4;14824:10;-1:-1:-1::0;;;;;14824:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14765:77;::::0;-1:-1:-1;;;;;;14765:77:0::1;::::0;;;;;;-1:-1:-1;;;;;26093:15:1;;;14765:77:0::1;::::0;::::1;26075:34:1::0;26145:15;;26125:18;;;26118:43;25987:18;;14765:77:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14756:6;:86:::0;;-1:-1:-1;;;;;;14756:86:0::1;-1:-1:-1::0;;;;;14756:86:0;;;::::1;::::0;;;::::1;::::0;;14713:200:::1;;;14884:6;:17:::0;;-1:-1:-1;;;;;;14884:17:0::1;-1:-1:-1::0;;;;;14884:17:0;::::1;;::::0;;14713:200:::1;14923:9;:22:::0;;-1:-1:-1;;14923:22:0::1;;-1:-1:-1::0;;;;;14923:22:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;14964:6:::1;::::0;;;::::1;-1:-1:-1::0;14956:15:0;;;-1:-1:-1;14956:15:0::1;::::0;;;;;;;:22;;-1:-1:-1;;14956:22:0;;::::1;::::0;::::1;::::0;;;15014:6;;;::::1;14989:32:::0;;:24:::1;:32:::0;;;;;;:39;;;;::::1;;::::0;;15071:9;;15039:62:::1;::::0;15056:4:::1;::::0;15071:9;::::1;;-1:-1:-1::0;;15039:8:0::1;:62::i;18803:191::-:0;10991:6;;-1:-1:-1;;;;;10991:6:0;11001:10;10991:20;10983:50;;;;-1:-1:-1;;;10983:50:0;;11661:2:1;10983:50:0;;;11643:21:1;11700:2;11680:18;;;11673:30;-1:-1:-1;;;;;;;;;;;11719:18:1;;;11712:47;11776:18;;10983:50:0;11459:341:1;10983:50:0;-1:-1:-1;;;;;18888:23:0;::::1;18880:59;;;::::0;-1:-1:-1;;;18880:59:0;;26374:2:1;18880:59:0::1;::::0;::::1;26356:21:1::0;26413:2;26393:18;;;26386:30;26452:25;26432:18;;;26425:53;26495:18;;18880:59:0::1;26172:347:1::0;18880:59:0::1;18950:15;:36:::0;;-1:-1:-1;;;;;;18950:36:0::1;-1:-1:-1::0;;;;;18950:36:0;;;::::1;::::0;;;::::1;::::0;;18803:191::o;33151:182::-;10991:6;;-1:-1:-1;;;;;10991:6:0;11001:10;10991:20;10983:50;;;;-1:-1:-1;;;10983:50:0;;11661:2:1;10983:50:0;;;11643:21:1;11700:2;11680:18;;;11673:30;-1:-1:-1;;;;;;;;;;;11719:18:1;;;11712:47;11776:18;;10983:50:0;11459:341:1;10983:50:0;33218:16:::1;::::0;;;::::1;;;33217:17;33209:58;;;::::0;-1:-1:-1;;;33209:58:0;;26726:2:1;33209:58:0::1;::::0;::::1;26708:21:1::0;26765:2;26745:18;;;26738:30;26804;26784:18;;;26777:58;26852:18;;33209:58:0::1;26524:352:1::0;33209:58:0::1;33286:6;::::0;33278:47:::1;::::0;-1:-1:-1;;;;;33286:6:0;;::::1;::::0;33303:21:::1;33278:47:::0;::::1;;;::::0;33286:6:::1;33278:47:::0;33286:6;33278:47;33303:21;33286:6;33278:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;17608:195:::0;10991:6;;-1:-1:-1;;;;;10991:6:0;11001:10;10991:20;10983:50;;;;-1:-1:-1;;;10983:50:0;;11661:2:1;10983:50:0;;;11643:21:1;11700:2;11680:18;;;11673:30;-1:-1:-1;;;;;;;;;;;11719:18:1;;;11712:47;11776:18;;10983:50:0;11459:341:1;10983:50:0;17698:11:::1;::::0;:49:::1;::::0;-1:-1:-1;;;17698:49:0;;-1:-1:-1;;;;;21800:55:1;;;17698:49:0::1;::::0;::::1;21782:74:1::0;21899:14;;21892:22;21872:18;;;21865:50;17698:11:0;;;::::1;::::0;;::::1;::::0;:31:::1;::::0;21755:18:1;;17698:49:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;17758:37;17778:7;17787;17758:19;:37::i;31597:111::-:0;31663:7;;:26;;-1:-1:-1;;;31663:26:0;;;;;391:25:1;;;-1:-1:-1;;;;;31663:7:0;;;;:15;;364:18:1;;31663:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31659:42;;;31597:111;:::o;33703:116::-;33782:7;;:29;;;-1:-1:-1;;;33782:29:0;;;;33755:7;;-1:-1:-1;;;;;33782:7:0;;:27;;:29;;;;;;;;;;;;;;:7;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;21156:699::-;10991:6;;-1:-1:-1;;;;;10991:6:0;11001:10;10991:20;10983:50;;;;-1:-1:-1;;;10983:50:0;;11661:2:1;10983:50:0;;;11643:21:1;11700:2;11680:18;;;11673:30;-1:-1:-1;;;;;;;;;;;11719:18:1;;;11712:47;11776:18;;10983:50:0;11459:341:1;10983:50:0;21356:16;21336;5992:15:::1;5931:1;5992:2;:15;:::i;:::-;5974:34;::::0;5770:21:::1;5974:34;:::i;:::-;21326:26;;;;:::i;:::-;21325:47;;;;:::i;:::-;21309:13;:63:::0;21424:13;21407;5992:15:::1;5931:1;5992:2;:15;:::i;:::-;5974:34;::::0;5770:21:::1;5974:34;:::i;:::-;21397:23;;;;:::i;:::-;21396:41;;;;:::i;:::-;21383:10;:54:::0;;;21456:13:::1;::::0;:27:::1;;21448:73;;;::::0;-1:-1:-1;;;21448:73:0;;27083:2:1;21448:73:0::1;::::0;::::1;27065:21:1::0;27122:2;27102:18;;;27095:30;27161:34;27141:18;;;27134:62;-1:-1:-1;;;27212:18:1;;;27205:31;27253:19;;21448:73:0::1;26881:397:1::0;21448:73:0::1;21565:6;::::0;-1:-1:-1;;;;;21565:6:0::1;13021:7:::0;13039:16;;;;;;;;;;;6755:5:::1;::::0;21555:23:::1;::::0;21575:3:::1;21555:23;:::i;:::-;21554:44;;;;:::i;:::-;21540:10;;:58;;21532:106;;;::::0;-1:-1:-1;;;21532:106:0;;27485:2:1;21532:106:0::1;::::0;::::1;27467:21:1::0;27524:2;27504:18;;;27497:30;27563:34;27543:18;;;27536:62;-1:-1:-1;;;27614:18:1;;;27607:33;27657:19;;21532:106:0::1;27283:399:1::0;21532:106:0::1;21681:9;5992:15;5931:1;5992:2;:15;:::i;:::-;5974:34;::::0;5770:21:::1;5974:34;:::i;:::-;21671:19;;;;:::i;:::-;21657:10;;:33;;21649:92;;;::::0;-1:-1:-1;;;21649:92:0;;27889:2:1;21649:92:0::1;::::0;::::1;27871:21:1::0;27928:2;27908:18;;;27901:30;27967:34;27947:18;;;27940:62;-1:-1:-1;;;28018:18:1;;;28011:44;28072:19;;21649:92:0::1;27687:410:1::0;21649:92:0::1;21787:9;5992:15;5931:1;5992:2;:15;:::i;:::-;5974:34;::::0;5770:21:::1;5974:34;:::i;:::-;21777:19;;;;:::i;:::-;21760:13;;:36;;21752:95;;;::::0;-1:-1:-1;;;21752:95:0;;27889:2:1;21752:95:0::1;::::0;::::1;27871:21:1::0;27928:2;27908:18;;;27901:30;27967:34;27947:18;;;27940:62;-1:-1:-1;;;28018:18:1;;;28011:44;28072:19;;21752:95:0::1;27687:410:1::0;18115:127:0;18200:11;;:34;;-1:-1:-1;;;18200:34:0;;-1:-1:-1;;;;;178:55:1;;;18200:34:0;;;160:74:1;18176:4:0;;18200:11;;;;;:25;;133:18:1;;18200:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17388:148::-;10991:6;;-1:-1:-1;;;;;10991:6:0;11001:10;10991:20;10983:50;;;;-1:-1:-1;;;10983:50:0;;11661:2:1;10983:50:0;;;11643:21:1;11700:2;11680:18;;;11673:30;-1:-1:-1;;;;;;;;;;;11719:18:1;;;11712:47;11776:18;;10983:50:0;11459:341:1;10983:50:0;-1:-1:-1;;;;;17484:34:0;;;::::1;;::::0;;;:25:::1;:34;::::0;;;;:44;;-1:-1:-1;;17484:44:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17388:148::o;13374:342::-;-1:-1:-1;;;;;13469:20:0;;13461:69;;;;-1:-1:-1;;;13461:69:0;;28304:2:1;13461:69:0;;;28286:21:1;28343:2;28323:18;;;28316:30;28382:34;28362:18;;;28355:62;-1:-1:-1;;;28433:18:1;;;28426:34;28477:19;;13461:69:0;28102:400:1;13461:69:0;-1:-1:-1;;;;;13549:21:0;;13541:68;;;;-1:-1:-1;;;13541:68:0;;28709:2:1;13541:68:0;;;28691:21:1;28748:2;28728:18;;;28721:30;28787:34;28767:18;;;28760:62;-1:-1:-1;;;28838:18:1;;;28831:32;28880:19;;13541:68:0;28507:398:1;13541:68:0;-1:-1:-1;;;;;13622:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;13675:33;;391:25:1;;;13675:33:0;;364:18:1;13675:33:0;;;;;;;13374:342;;;:::o;24507:2287::-;24586:4;-1:-1:-1;;;;;24611:18:0;;24603:68;;;;-1:-1:-1;;;24603:68:0;;29112:2:1;24603:68:0;;;29094:21:1;29151:2;29131:18;;;29124:30;29190:34;29170:18;;;29163:62;-1:-1:-1;;;29241:18:1;;;29234:35;29286:19;;24603:68:0;28910:401:1;24603:68:0;-1:-1:-1;;;;;24690:16:0;;24682:64;;;;-1:-1:-1;;;24682:64:0;;29518:2:1;24682:64:0;;;29500:21:1;29557:2;29537:18;;;29530:30;29596:34;29576:18;;;29569:62;-1:-1:-1;;;29647:18:1;;;29640:33;29690:19;;24682:64:0;29316:399:1;24682:64:0;24774:1;24765:6;:10;24757:64;;;;-1:-1:-1;;;24757:64:0;;29922:2:1;24757:64:0;;;29904:21:1;29961:2;29941:18;;;29934:30;30000:34;29980:18;;;29973:62;-1:-1:-1;;;30051:18:1;;;30044:39;30100:19;;24757:64:0;29720:405:1;24757:64:0;-1:-1:-1;;;;;24920:13:0;;24832:8;24920:13;;;:7;:13;;;;;;24832:8;;;;24920:13;;24916:162;;;24956:4;24950:10;;24916:162;;;-1:-1:-1;;;;;24982:11:0;;;;;;:7;:11;;;;;;;;24978:100;;;25017:4;25010:11;;24978:100;;;-1:-1:-1;25062:4:0;24978:100;25092:20;25103:4;25109:2;25092:10;:20::i;:::-;25088:874;;;25133:14;;;;;;;25129:319;;25173:5;25168:265;;25203:34;;-1:-1:-1;;;25203:34:0;;30332:2:1;25203:34:0;;;30314:21:1;30371:2;30351:18;;;30344:30;30410:26;30390:18;;;30383:54;30454:18;;25203:34:0;30130:348:1;25168:265:0;-1:-1:-1;;;;;25268:31:0;;;;;;:25;:31;;;;;;;;25267:32;:66;;;;-1:-1:-1;;;;;;25304:29:0;;;;;;:25;:29;;;;;;;;25303:30;25267:66;25263:170;;;25358:55;;-1:-1:-1;;;25358:55:0;;30685:2:1;25358:55:0;;;30667:21:1;30724:2;30704:18;;;30697:30;30763:34;30743:18;;;30736:62;-1:-1:-1;;;30814:18:1;;;30807:43;30867:19;;25358:55:0;30483:409:1;25263:170:0;25466:3;:11;;;;25473:4;25466:11;25462:232;;;-1:-1:-1;;;;;25502:27:0;;;;;;:21;:27;;;;;;;;25501:28;:58;;;;-1:-1:-1;;;;;;25534:25:0;;;;;;:21;:25;;;;;;;;25533:26;25501:58;25497:182;;;25602:12;;25592:6;:22;;25584:75;;;;-1:-1:-1;;;25584:75:0;;31099:2:1;25584:75:0;;;31081:21:1;31138:2;31118:18;;;31111:30;31177:34;31157:18;;;31150:62;-1:-1:-1;;;31228:18:1;;;31221:38;31276:19;;25584:75:0;30897:404:1;25584:75:0;25726:9;;-1:-1:-1;;;;;25712:24:0;;;25726:9;;;;;25712:24;;;;:33;;;25741:4;25740:5;25712:33;25708:243;;;-1:-1:-1;;;;;25771:25:0;;;;;;:21;:25;;;;;;;;25766:170;;25855:14;;25845:6;25829:13;25839:2;-1:-1:-1;;;;;13039:16:0;13021:7;13039:16;;;;;;;;;;;;12955:103;25829:13;:22;;;;:::i;:::-;:40;;25821:95;;;;-1:-1:-1;;;25821:95:0;;31638:2:1;25821:95:0;;;31620:21:1;31677:2;31657:18;;;31650:30;31716:34;31696:18;;;31689:62;-1:-1:-1;;;31767:18:1;;;31760:40;31817:19;;25821:95:0;31436:406:1;25821:95:0;25978:4;25974:742;;;26004:6;;;;25999:706;;26035:19;;;;;;;:64;;;;-1:-1:-1;;;;;;26079:20:0;;;;;;:16;:20;;;;;;;;26078:21;26035:64;:111;;;;-1:-1:-1;;;;;;26124:22:0;;;;;;:16;:22;;;;;;;;26123:23;26035:111;26031:659;;;26238:4;26189:28;13039:16;;;;;;;;;;;26295:13;;26271:37;;26267:404;;26355:10;;26396:22;;;;26392:97;;;26453:13;;26443:6;;-1:-1:-1;;;;;26443:6:0;13021:7;13039:16;;;;;;;;;;;6755:5;;26433:33;;;:::i;:::-;26432:54;;;;:::i;:::-;26422:64;;26392:97;26543:7;26519:20;:31;26515:72;;26577:7;26554:30;;26515:72;26613:34;26626:20;26613:12;:34::i;:::-;26310:361;26267:404;26166:524;26031:659;26734:52;26751:4;26757:2;26761:6;26769:3;26774:4;26780:5;26734:16;:52::i;:::-;26727:59;24507:2287;-1:-1:-1;;;;;;;24507:2287:0:o;30012:1163::-;30131:4;30152:20;30163:4;30169:2;30152:10;:20::i;:::-;30148:228;;;30207:11;;:39;;-1:-1:-1;;;30207:39:0;;-1:-1:-1;;;;;32128:15:1;;;30207:39:0;;;32110:34:1;32180:15;;;32160:18;;;32153:43;32212:18;;;32205:34;;;30176:12:0;;30207:11;;;;;:21;;32022:18:1;;30207:39:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;30207:39:0;;;;;;;;-1:-1:-1;;30207:39:0;;;;;;;;;;;;:::i;:::-;;;30203:122;;30314:8;;;30203:122;30297:5;-1:-1:-1;30343:7:0;30339:26;;30354:8;;;30339:26;30174:202;30148:228;-1:-1:-1;;;;;30422:25:0;;30388:12;30422:25;;;:19;:25;;;;;;30403:4;;30422:25;;;:52;;-1:-1:-1;;;;;;30451:23:0;;;;;;:19;:23;;;;;;;;30422:52;30418:99;;;-1:-1:-1;30500:5:0;30418:99;-1:-1:-1;;;;;30529:13:0;;:7;:13;;;;;;;;;;:23;;30546:6;;30529:7;:23;;30546:6;;30529:23;:::i;:::-;;;;-1:-1:-1;30588:6:0;;-1:-1:-1;30605:98:0;;;;30650:41;30660:4;30666:6;30674:3;30679:4;30685:5;30650:9;:41::i;:::-;30633:58;;30605:98;-1:-1:-1;;;;;30713:11:0;;:7;:11;;;;;;;;;;:29;;30728:14;;30713:7;:29;;30728:14;;30713:29;:::i;:::-;;;;;;;;30773:2;-1:-1:-1;;;;;30758:34:0;30767:4;-1:-1:-1;;;;;30758:34:0;;30777:14;30758:34;;;;391:25:1;;379:2;364:18;;245:177;30758:34:0;;;;;;;;30808:16;;;;;;;30803:298;;30841:28;30860:4;30866:2;30841:18;:28::i;:::-;30889:16;;;;;;;30888:17;:41;;;;;30909:20;30920:4;30926:2;30909:10;:20::i;:::-;30888:77;;;;-1:-1:-1;;;;;;30934:31:0;;;;;;:25;:31;;;;;;;;30933:32;30888:77;:111;;;;-1:-1:-1;;;;;;30970:29:0;;;;;;:25;:29;;;;;;;;30969:30;30888:111;:121;;;;;31004:5;31003:6;30888:121;30884:206;;;31030:44;;-1:-1:-1;;;31030:44:0;;32452:2:1;31030:44:0;;;32434:21:1;32491:2;32471:18;;;32464:30;32530:34;32510:18;;;32503:62;-1:-1:-1;;;32581:18:1;;;32574:32;32623:19;;31030:44:0;32250:398:1;30884:206:0;31111:24;31126:4;31132:2;31111:14;:24::i;:::-;-1:-1:-1;31163:4:0;;30012:1163;-1:-1:-1;;;;;;;;30012:1163:0:o;23817:446::-;23918:6;;23886:4;;-1:-1:-1;;;;;23910:14:0;;;23918:6;;23910:14;;;;:43;;-1:-1:-1;23947:6:0;;-1:-1:-1;;;;;23941:12:0;;;23947:6;;23941:12;;23910:43;:79;;;;-1:-1:-1;23983:6:0;;-1:-1:-1;;;;;23983:6:0;23970:9;:19;;23910:79;:118;;;;-1:-1:-1;;;;;;24007:21:0;;;;;;:17;:21;;;;;;;;24006:22;23910:118;:159;;;;-1:-1:-1;;;;;;24046:23:0;;;;;;:17;:23;;;;;;;;24045:24;23910:159;:186;;;;-1:-1:-1;;;;;;24086:10:0;;6894:42;24086:10;;23910:186;:219;;;;-1:-1:-1;;;;;;24113:16:0;;;;23910:219;:257;;;;-1:-1:-1;;;;;;24146:21:0;;24162:4;24146:21;;23910:257;:302;;;;-1:-1:-1;24200:11:0;;-1:-1:-1;;;;;24184:28:0;;;24200:11;;;;;24184:28;;23910:302;:345;;;;-1:-1:-1;;24243:11:0;;;;;-1:-1:-1;;;;;24243:11:0;;;24229:26;;;;;23817:446;-1:-1:-1;23817:446:0:o;26802:1833::-;7711:6;:13;;-1:-1:-1;;7711:13:0;7720:4;7711:13;;;26885:30:::1;::::0;;::::1;::::0;::::1;::::0;;26908:7:::1;26885:30:::0;::::1;::::0;;::::1;::::0;;;;::::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;;;;;;;::::1;::::0;;::::1;::::0;;;;;;7711:6;26930:17;26926:56:::1;;26964:7;;;26926:56;27026:4;27006:26;::::0;;;:11:::1;:26;::::0;;;;;;;27041:9:::1;::::0;::::1;::::0;::::1;-1:-1:-1::0;;;;;27041:9:0::1;27006:46:::0;;;;;;;;-1:-1:-1;;27006:67:0::1;27002:166;;27110:4;27090:26;::::0;;;:11:::1;:26;::::0;;;;;;;27125:9:::1;::::0;::::1;::::0;::::1;-1:-1:-1::0;;;;;27125:9:0::1;27090:46:::0;;;;;;;-1:-1:-1;;27090:66:0;;27002:166:::1;27180:17;27263:1;27246:6;:12;;;27201:58;;27225:6;:16;;;27202:39;;:20;:39;;;;:::i;:::-;27201:58;;;;:::i;:::-;27200:64;;;;:::i;:::-;27180:84:::0;-1:-1:-1;27275:15:0::1;27293:32;27180:84:::0;27293:20;:32:::1;:::i;:::-;27362:16;::::0;;27376:1:::1;27362:16:::0;;;;;::::1;::::0;;27275:50;;-1:-1:-1;27338:21:0::1;::::0;27362:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;27362:16:0::1;27338:40;;27407:4;27389;27394:1;27389:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;27389:23:0::1;;;-1:-1:-1::0;;;;;27389:23:0::1;;;::::0;::::1;27433:9;;;;;;;;;-1:-1:-1::0;;;;;27433:9:0::1;-1:-1:-1::0;;;;;27433:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27423:4;27428:1;27423:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;27423:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;27466:9:::1;::::0;:186:::1;::::0;-1:-1:-1;;;27466:186:0;;:9:::1;::::0;;::::1;::::0;;::::1;::::0;:60:::1;::::0;:186:::1;::::0;27541:7;;27563:1:::1;::::0;27579:4;;27606::::1;::::0;27626:15:::1;::::0;27466:186:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;27462:233;;27677:7;;;;;;27462:233;27728:21;27707:18;27814:7:::0;27788:22:::1;27801:9:::0;27728:21;27788:22:::1;:::i;:::-;27787:34;;;;:::i;:::-;27760:61:::0;-1:-1:-1;27838:13:0;;27834:400:::1;;27872:9;::::0;:222:::1;::::0;-1:-1:-1;;;27872:222:0;;27949:4:::1;27872:222;::::0;::::1;33627:34:1::0;33677:18;;;33670:34;;;28001:1:0::1;33720:18:1::0;;;33713:34;;;33763:18;;;33756:34;6894:42:0::1;33806:19:1::0;;;33799:44;28064:15:0::1;33859:19:1::0;;;33852:35;27872:9:0::1;::::0;;::::1;-1:-1:-1::0;;;;;27872:9:0::1;::::0;:25:::1;::::0;27905:16;;33538:19:1;;27872:222:0::1;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;27872:222:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;27872:222:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;27868:355;;28201:7;;;;;;;;27868:355;-1:-1:-1::0;;28119:40:0::1;::::0;;25402:25:1;;;25458:2;25443:18;;25436:34;;;28119:40:0::1;::::0;-1:-1:-1;25375:18:1;28119:40:0::1;;;;;;;27868:355;28246:30;28260:16:::0;28246:30;::::1;:::i;:::-;;;28303:6;:16;;;28287:6;:12;;:32;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;28410:12:::1;::::0;::::1;::::0;28392:14;;28330:12:::1;::::0;-1:-1:-1;28330:12:0;;28378:44;;::::1;::::0;28379:27:::1;::::0;::::1;:10:::0;:27:::1;:::i;:::-;28378:44;;;;:::i;:::-;28439:14:::0;;28353:69;;-1:-1:-1;28439:18:0::1;;::::0;28435:103:::1;;28478:7;;;;;;;;;-1:-1:-1::0;;;;;28478:7:0::1;-1:-1:-1::0;;;;;28478:12:0::1;;28498:14;28478:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;28474:53:::0;::::1;28561:15;::::0;:66:::1;::::0;-1:-1:-1;;;;;28561:15:0;;::::1;::::0;28617:5:::1;::::0;28589:21:::1;::::0;28561:66:::1;::::0;;;28589:21;28561:15;28617:5;28561:66:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;;;;;;7735:1:0::1;-1:-1:-1::0;7747:6:0;:14;;-1:-1:-1;;7747:14:0;;;26802:1833::o;31716:842::-;31816:7;31836:18;31869:3;31865:205;;;-1:-1:-1;31902:9:0;:16;;;31865:205;;;31940:4;31936:134;;;-1:-1:-1;31974:9:0;:17;;;;;;31936:134;;;-1:-1:-1;32037:9:0;:21;;;;;;31936:134;32086:10;32100:1;32086:15;32082:61;;32125:6;32118:13;;;;;32082:61;32167:11;;;;;-1:-1:-1;;;;;32167:11:0;32191:4;32159:37;:110;;;;;32214:13;32231:1;32214:18;:54;;;;32249:13;32266:2;32249:19;32214:54;32155:138;;;-1:-1:-1;32286:4:0;32155:138;32303:17;6755:5;32323:19;32332:10;32323:6;:19;:::i;:::-;:38;;;;:::i;:::-;32303:58;-1:-1:-1;32376:13:0;;32372:141;;32422:4;32406:7;:22;;;;;;;;;;:35;;32432:9;;32406:7;:35;;32432:9;;32406:35;:::i;:::-;;;;-1:-1:-1;;32461:40:0;;391:25:1;;;32484:4:0;;-1:-1:-1;;;;;32461:40:0;;;;;379:2:1;364:18;32461:40:0;;;;;;;32372:141;32532:18;32541:9;32532:6;:18;:::i;:::-;32525:25;;;;31716:842;;;;;;;;:::o;28643:680::-;28725:16;;;;;;;28724:17;28716:65;;;;-1:-1:-1;;;28716:65:0;;34797:2:1;28716:65:0;;;34779:21:1;34836:2;34816:18;;;34809:30;34875:34;34855:18;;;34848:62;-1:-1:-1;;;34926:18:1;;;34919:33;34969:19;;28716:65:0;34595:399:1;28716:65:0;28797:20;28808:4;28814:2;28797:10;:20::i;:::-;28796:21;:37;;;;-1:-1:-1;28827:6:0;;-1:-1:-1;;;;;28821:12:0;;;28827:6;;28821:12;28796:37;28792:524;;;-1:-1:-1;;;;;28850:23:0;;;;;;;:17;:23;;;;;:30;;-1:-1:-1;;28850:30:0;28876:4;28850:30;;;28895:16;:23;;-1:-1:-1;;28895:23:0;;;;;;;28945:11;;;;28933:115;;28992:11;:40;;-1:-1:-1;;;;;;28992:40:0;29026:4;28992:40;;;;;28933:115;29074:7;;-1:-1:-1;;;;;29074:7:0;29062:104;;29118:7;:32;;-1:-1:-1;;;;;;29118:32:0;29144:4;29118:32;;;29062:104;29180:19;:26;;-1:-1:-1;;29180:26:0;;;;;29221:23;:31;;-1:-1:-1;;29221:31:0;;;29272:32;;-1:-1:-1;4428:41:1;;29272:32:0;;4416:2:1;4401:18;29272:32:0;;;;;;;28643:680;;:::o;31183:406::-;-1:-1:-1;;;;;31258:30:0;;;;;;:24;:30;;;;;;;;31253:113;;31309:7;;-1:-1:-1;;;;;31329:13:0;;;31309:7;31329:13;;;;;;;;;;;;;31309:34;;-1:-1:-1;;;31309:34:0;;;;;21184:74:1;;;;21274:18;;;21267:34;31309:7:0;;;:13;;21157:18:1;;31309:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31305:50;;-1:-1:-1;;;;;31381:28:0;;;;;;:24;:28;;;;;;;;31376:107;;31430:7;;-1:-1:-1;;;;;31448:11:0;;;31430:7;31448:11;;;;;;;;;;;;;31430:30;;-1:-1:-1;;;31430:30:0;;;;;21184:74:1;;;;21274:18;;;21267:34;31430:7:0;;;:13;;21157:18:1;;31430:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31426:46;;31497:14;;;;31493:89;;;31532:7;;31548:10;;31532:27;;-1:-1:-1;;;31532:27:0;;-1:-1:-1;;;;;31532:7:0;;;;:15;;:27;;;;391:25:1;;;379:2;364:18;;245:177;427:118;513:5;506:13;499:21;492:5;489:32;479:60;;535:1;532;525:12;550:376;612:6;620;673:2;661:9;652:7;648:23;644:32;641:52;;;689:1;686;679:12;641:52;728:9;715:23;747:28;769:5;747:28;:::i;:::-;794:5;-1:-1:-1;851:2:1;836:18;;823:32;864:30;823:32;864:30;:::i;:::-;913:7;903:17;;;550:376;;;;;:::o;931:127::-;992:10;987:3;983:20;980:1;973:31;1023:4;1020:1;1013:15;1047:4;1044:1;1037:15;1063:275;1134:2;1128:9;1199:2;1180:13;;-1:-1:-1;;1176:27:1;1164:40;;1234:18;1219:34;;1255:22;;;1216:62;1213:88;;;1281:18;;:::i;:::-;1317:2;1310:22;1063:275;;-1:-1:-1;1063:275:1:o;1343:183::-;1403:4;1436:18;1428:6;1425:30;1422:56;;;1458:18;;:::i;:::-;-1:-1:-1;1503:1:1;1499:14;1515:4;1495:25;;1343:183::o;1531:154::-;-1:-1:-1;;;;;1610:5:1;1606:54;1599:5;1596:65;1586:93;;1675:1;1672;1665:12;1690:737;1744:5;1797:3;1790:4;1782:6;1778:17;1774:27;1764:55;;1815:1;1812;1805:12;1764:55;1851:6;1838:20;1877:4;1901:60;1917:43;1957:2;1917:43;:::i;:::-;1901:60;:::i;:::-;1995:15;;;2081:1;2077:10;;;;2065:23;;2061:32;;;2026:12;;;;2105:15;;;2102:35;;;2133:1;2130;2123:12;2102:35;2169:2;2161:6;2157:15;2181:217;2197:6;2192:3;2189:15;2181:217;;;2277:3;2264:17;2294:31;2319:5;2294:31;:::i;:::-;2338:18;;2376:12;;;;2214;;2181:217;;;-1:-1:-1;2416:5:1;1690:737;-1:-1:-1;;;;;;1690:737:1:o;2432:477::-;2522:6;2530;2583:2;2571:9;2562:7;2558:23;2554:32;2551:52;;;2599:1;2596;2589:12;2551:52;2639:9;2626:23;2672:18;2664:6;2661:30;2658:50;;;2704:1;2701;2694:12;2658:50;2727:61;2780:7;2771:6;2760:9;2756:22;2727:61;:::i;:::-;2717:71;;;2838:2;2827:9;2823:18;2810:32;2851:28;2873:5;2851:28;:::i;3284:250::-;3369:1;3379:113;3393:6;3390:1;3387:13;3379:113;;;3469:11;;;3463:18;3450:11;;;3443:39;3415:2;3408:10;3379:113;;;-1:-1:-1;;3526:1:1;3508:16;;3501:27;3284:250::o;3539:271::-;3581:3;3619:5;3613:12;3646:6;3641:3;3634:19;3662:76;3731:6;3724:4;3719:3;3715:14;3708:4;3701:5;3697:16;3662:76;:::i;:::-;3792:2;3771:15;-1:-1:-1;;3767:29:1;3758:39;;;;3799:4;3754:50;;3539:271;-1:-1:-1;;3539:271:1:o;3815:220::-;3964:2;3953:9;3946:21;3927:4;3984:45;4025:2;4014:9;4010:18;4002:6;3984:45;:::i;4480:315::-;4548:6;4556;4609:2;4597:9;4588:7;4584:23;4580:32;4577:52;;;4625:1;4622;4615:12;4577:52;4664:9;4651:23;4683:31;4708:5;4683:31;:::i;:::-;4733:5;4785:2;4770:18;;;;4757:32;;-1:-1:-1;;;4480:315:1:o;4800:247::-;4859:6;4912:2;4900:9;4891:7;4887:23;4883:32;4880:52;;;4928:1;4925;4918:12;4880:52;4967:9;4954:23;4986:31;5011:5;4986:31;:::i;5052:388::-;5120:6;5128;5181:2;5169:9;5160:7;5156:23;5152:32;5149:52;;;5197:1;5194;5187:12;5149:52;5236:9;5223:23;5255:31;5280:5;5255:31;:::i;:::-;5305:5;-1:-1:-1;5362:2:1;5347:18;;5334:32;5375:33;5334:32;5375:33;:::i;5445:456::-;5522:6;5530;5538;5591:2;5579:9;5570:7;5566:23;5562:32;5559:52;;;5607:1;5604;5597:12;5559:52;5646:9;5633:23;5665:31;5690:5;5665:31;:::i;:::-;5715:5;-1:-1:-1;5772:2:1;5757:18;;5744:32;5785:33;5744:32;5785:33;:::i;:::-;5445:456;;5837:7;;-1:-1:-1;;;5891:2:1;5876:18;;;;5863:32;;5445:456::o;5906:248::-;5974:6;5982;6035:2;6023:9;6014:7;6010:23;6006:32;6003:52;;;6051:1;6048;6041:12;6003:52;-1:-1:-1;;6074:23:1;;;6144:2;6129:18;;;6116:32;;-1:-1:-1;5906:248:1:o;6159:1138::-;6277:6;6285;6338:2;6326:9;6317:7;6313:23;6309:32;6306:52;;;6354:1;6351;6344:12;6306:52;6394:9;6381:23;6423:18;6464:2;6456:6;6453:14;6450:34;;;6480:1;6477;6470:12;6450:34;6503:61;6556:7;6547:6;6536:9;6532:22;6503:61;:::i;:::-;6493:71;;6583:2;6573:12;;6638:2;6627:9;6623:18;6610:32;6667:2;6657:8;6654:16;6651:36;;;6683:1;6680;6673:12;6651:36;6706:24;;;-1:-1:-1;6761:4:1;6753:13;;6749:27;-1:-1:-1;6739:55:1;;6790:1;6787;6780:12;6739:55;6826:2;6813:16;6849:60;6865:43;6905:2;6865:43;:::i;6849:60::-;6943:15;;;7025:1;7021:10;;;;7013:19;;7009:28;;;6974:12;;;;7049:19;;;7046:39;;;7081:1;7078;7071:12;7046:39;7105:11;;;;7125:142;7141:6;7136:3;7133:15;7125:142;;;7207:17;;7195:30;;7158:12;;;;7245;;;;7125:142;;;7286:5;7276:15;;;;;;;6159:1138;;;;;:::o;7491:159::-;7558:20;;7618:6;7607:18;;7597:29;;7587:57;;7640:1;7637;7630:12;7587:57;7491:159;;;:::o;7655:328::-;7729:6;7737;7745;7798:2;7786:9;7777:7;7773:23;7769:32;7766:52;;;7814:1;7811;7804:12;7766:52;7837:28;7855:9;7837:28;:::i;:::-;7827:38;;7884:37;7917:2;7906:9;7902:18;7884:37;:::i;:::-;7874:47;;7940:37;7973:2;7962:9;7958:18;7940:37;:::i;:::-;7930:47;;7655:328;;;;;:::o;7988:382::-;8053:6;8061;8114:2;8102:9;8093:7;8089:23;8085:32;8082:52;;;8130:1;8127;8120:12;8082:52;8169:9;8156:23;8188:31;8213:5;8188:31;:::i;8375:180::-;8434:6;8487:2;8475:9;8466:7;8462:23;8458:32;8455:52;;;8503:1;8500;8493:12;8455:52;-1:-1:-1;8526:23:1;;8375:180;-1:-1:-1;8375:180:1:o;8560:711::-;8853:3;8842:9;8835:22;8816:4;8880:46;8921:3;8910:9;8906:19;8898:6;8880:46;:::i;:::-;8974:9;8966:6;8962:22;8957:2;8946:9;8942:18;8935:50;9008:33;9034:6;9026;9008:33;:::i;:::-;8994:47;;9089:9;9081:6;9077:22;9072:2;9061:9;9057:18;9050:50;9123:33;9149:6;9141;9123:33;:::i;:::-;9109:47;;9204:9;9196:6;9192:22;9187:2;9176:9;9172:18;9165:50;9232:33;9258:6;9250;9232:33;:::i;9276:511::-;9344:6;9352;9360;9413:2;9401:9;9392:7;9388:23;9384:32;9381:52;;;9429:1;9426;9419:12;9381:52;9468:9;9455:23;9487:28;9509:5;9487:28;:::i;:::-;9534:5;-1:-1:-1;9591:2:1;9576:18;;9563:32;9604:30;9563:32;9604:30;:::i;:::-;9653:7;-1:-1:-1;9712:2:1;9697:18;;9684:32;9725:30;9684:32;9725:30;:::i;:::-;9774:7;9764:17;;;9276:511;;;;;:::o;10039:316::-;10116:6;10124;10132;10185:2;10173:9;10164:7;10160:23;10156:32;10153:52;;;10201:1;10198;10191:12;10153:52;-1:-1:-1;;10224:23:1;;;10294:2;10279:18;;10266:32;;-1:-1:-1;10345:2:1;10330:18;;;10317:32;;10039:316;-1:-1:-1;10039:316:1:o;11069:385::-;11155:6;11163;11171;11179;11232:3;11220:9;11211:7;11207:23;11203:33;11200:53;;;11249:1;11246;11239:12;11200:53;-1:-1:-1;;11272:23:1;;;11342:2;11327:18;;11314:32;;-1:-1:-1;11393:2:1;11378:18;;11365:32;;11444:2;11429:18;11416:32;;-1:-1:-1;11069:385:1;-1:-1:-1;11069:385:1:o;12078:484::-;12131:3;12169:5;12163:12;12196:6;12191:3;12184:19;12222:4;12251:2;12246:3;12242:12;12235:19;;12288:2;12281:5;12277:14;12309:1;12319:218;12333:6;12330:1;12327:13;12319:218;;;12398:13;;-1:-1:-1;;;;;12394:62:1;12382:75;;12477:12;;;;12512:15;;;;12355:1;12348:9;12319:218;;;-1:-1:-1;12553:3:1;;12078:484;-1:-1:-1;;;;;12078:484:1:o;12567:342::-;12768:2;12757:9;12750:21;12731:4;12788:56;12840:2;12829:9;12825:18;12817:6;12788:56;:::i;:::-;12780:64;;12894:6;12887:14;12880:22;12875:2;12864:9;12860:18;12853:50;12567:342;;;;;:::o;12914:127::-;12975:10;12970:3;12966:20;12963:1;12956:31;13006:4;13003:1;12996:15;13030:4;13027:1;13020:15;13046:127;13107:10;13102:3;13098:20;13095:1;13088:31;13138:4;13135:1;13128:15;13162:4;13159:1;13152:15;13178:135;13217:3;13238:17;;;13235:43;;13258:18;;:::i;:::-;-1:-1:-1;13305:1:1;13294:13;;13178:135::o;13318:422::-;13407:1;13450:5;13407:1;13464:270;13485:7;13475:8;13472:21;13464:270;;;13544:4;13540:1;13536:6;13532:17;13526:4;13523:27;13520:53;;;13553:18;;:::i;:::-;13603:7;13593:8;13589:22;13586:55;;;13623:16;;;;13586:55;13702:22;;;;13662:15;;;;13464:270;;;13468:3;13318:422;;;;;:::o;13745:806::-;13794:5;13824:8;13814:80;;-1:-1:-1;13865:1:1;13879:5;;13814:80;13913:4;13903:76;;-1:-1:-1;13950:1:1;13964:5;;13903:76;13995:4;14013:1;14008:59;;;;14081:1;14076:130;;;;13988:218;;14008:59;14038:1;14029:10;;14052:5;;;14076:130;14113:3;14103:8;14100:17;14097:43;;;14120:18;;:::i;:::-;-1:-1:-1;;14176:1:1;14162:16;;14191:5;;13988:218;;14290:2;14280:8;14277:16;14271:3;14265:4;14262:13;14258:36;14252:2;14242:8;14239:16;14234:2;14228:4;14225:12;14221:35;14218:77;14215:159;;;-1:-1:-1;14327:19:1;;;14359:5;;14215:159;14406:34;14431:8;14425:4;14406:34;:::i;:::-;14476:6;14472:1;14468:6;14464:19;14455:7;14452:32;14449:58;;;14487:18;;:::i;:::-;14525:20;;13745:806;-1:-1:-1;;;13745:806:1:o;14556:140::-;14614:5;14643:47;14684:4;14674:8;14670:19;14664:4;14643:47;:::i;14701:217::-;14741:1;14767;14757:132;;14811:10;14806:3;14802:20;14799:1;14792:31;14846:4;14843:1;14836:15;14874:4;14871:1;14864:15;14757:132;-1:-1:-1;14903:9:1;;14701:217::o;15263:168::-;15336:9;;;15367;;15384:15;;;15378:22;;15364:37;15354:71;;15405:18;;:::i;15436:128::-;15503:9;;;15524:11;;;15521:37;;;15538:18;;:::i;16683:197::-;16721:3;16749:6;16790:2;16783:5;16779:14;16817:2;16808:7;16805:15;16802:41;;16823:18;;:::i;:::-;16872:1;16859:15;;16683:197;-1:-1:-1;;;16683:197:1:o;17583:168::-;17650:6;17676:10;;;17688;;;17672:27;;17711:11;;;17708:37;;;17725:18;;:::i;:::-;17708:37;17583:168;;;;:::o;19322:184::-;19392:6;19445:2;19433:9;19424:7;19420:23;19416:32;19413:52;;;19461:1;19458;19451:12;19413:52;-1:-1:-1;19484:16:1;;19322:184;-1:-1:-1;19322:184:1:o;19511:510::-;19565:5;19618:3;19611:4;19603:6;19599:17;19595:27;19585:55;;19636:1;19633;19626:12;19585:55;19665:6;19659:13;19691:18;19687:2;19684:26;19681:52;;;19713:18;;:::i;:::-;19757:55;19800:2;19781:13;;-1:-1:-1;;19777:27:1;19806:4;19773:38;19757:55;:::i;:::-;19837:2;19828:7;19821:19;19883:3;19876:4;19871:2;19863:6;19859:15;19855:26;19852:35;19849:55;;;19900:1;19897;19890:12;19849:55;19913:77;19987:2;19980:4;19971:7;19967:18;19960:4;19952:6;19948:17;19913:77;:::i;20026:971::-;20163:6;20171;20179;20187;20240:3;20228:9;20219:7;20215:23;20211:33;20208:53;;;20257:1;20254;20247:12;20208:53;20290:9;20284:16;20319:18;20360:2;20352:6;20349:14;20346:34;;;20376:1;20373;20366:12;20346:34;20399:61;20452:7;20443:6;20432:9;20428:22;20399:61;:::i;:::-;20389:71;;20506:2;20495:9;20491:18;20485:25;20469:41;;20535:2;20525:8;20522:16;20519:36;;;20551:1;20548;20541:12;20519:36;20574:63;20629:7;20618:8;20607:9;20603:24;20574:63;:::i;:::-;20564:73;;20683:2;20672:9;20668:18;20662:25;20646:41;;20712:2;20702:8;20699:16;20696:36;;;20728:1;20725;20718:12;20696:36;20751:63;20806:7;20795:8;20784:9;20780:24;20751:63;:::i;:::-;20741:73;;20860:2;20849:9;20845:18;20839:25;20823:41;;20889:2;20879:8;20876:16;20873:36;;;20905:1;20902;20895:12;20873:36;;20928:63;20983:7;20972:8;20961:9;20957:24;20928:63;:::i;:::-;20918:73;;;20026:971;;;;;;;:::o;23822:251::-;23892:6;23945:2;23933:9;23924:7;23920:23;23916:32;23913:52;;;23961:1;23958;23951:12;23913:52;23993:9;23987:16;24012:31;24037:5;24012:31;:::i;24842:245::-;24909:6;24962:2;24950:9;24941:7;24937:23;24933:32;24930:52;;;24978:1;24975;24968:12;24930:52;25010:9;25004:16;25029:28;25051:5;25029:28;:::i;25092:131::-;25152:5;25181:36;25208:8;25202:4;25181:36;:::i;31306:125::-;31371:9;;;31392:10;;;31389:36;;;31405:18;;:::i;32653:605::-;32952:6;32941:9;32934:25;32995:6;32990:2;32979:9;32975:18;32968:34;33038:3;33033:2;33022:9;33018:18;33011:31;32915:4;33059:57;33111:3;33100:9;33096:19;33088:6;33059:57;:::i;:::-;-1:-1:-1;;;;;33152:55:1;;;;33147:2;33132:18;;33125:83;-1:-1:-1;33239:3:1;33224:19;33217:35;33051:65;32653:605;-1:-1:-1;;;32653:605:1:o;33898:306::-;33986:6;33994;34002;34055:2;34043:9;34034:7;34030:23;34026:32;34023:52;;;34071:1;34068;34061:12;34023:52;34100:9;34094:16;34084:26;;34150:2;34139:9;34135:18;34129:25;34119:35;;34194:2;34183:9;34179:18;34173:25;34163:35;;33898:306;;;;;:::o;34209:171::-;34277:6;34316:10;;;34304;;;34300:27;;34339:12;;;34336:38;;;34354:18;;:::i
Swarm Source
ipfs://d6de9d5a0a4af1d67baade280e7bcbb4dd1e1c0a198eb226522b935ad2f54f64
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.