More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 507 transactions
| Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 23578503 | 9 days ago | IN | 0 ETH | 0.00001419 | ||||
| Approve | 23578498 | 9 days ago | IN | 0 ETH | 0.00001455 | ||||
| Transfer | 23511894 | 19 days ago | IN | 0 ETH | 0.000009 | ||||
| Approve | 23166657 | 67 days ago | IN | 0 ETH | 0.00005032 | ||||
| Approve | 23132268 | 72 days ago | IN | 0 ETH | 0.00015338 | ||||
| Approve | 23130539 | 72 days ago | IN | 0 ETH | 0.00009655 | ||||
| Approve | 23076395 | 79 days ago | IN | 0 ETH | 0.00007588 | ||||
| Approve | 23072019 | 80 days ago | IN | 0 ETH | 0.00001336 | ||||
| Approve | 23067090 | 81 days ago | IN | 0 ETH | 0.00002157 | ||||
| Approve | 23032609 | 86 days ago | IN | 0 ETH | 0.00021451 | ||||
| Approve | 22939595 | 99 days ago | IN | 0 ETH | 0.00117258 | ||||
| Approve | 22918110 | 102 days ago | IN | 0 ETH | 0.00027286 | ||||
| Approve | 22891212 | 105 days ago | IN | 0 ETH | 0.00010988 | ||||
| Approve | 22826993 | 114 days ago | IN | 0 ETH | 0.00003852 | ||||
| Transfer | 22824266 | 115 days ago | IN | 0 ETH | 0.00020778 | ||||
| Approve | 22796313 | 119 days ago | IN | 0 ETH | 0.00007984 | ||||
| Approve | 22794233 | 119 days ago | IN | 0 ETH | 0.00012409 | ||||
| Transfer | 22750358 | 125 days ago | IN | 0 ETH | 0.00002419 | ||||
| Approve | 22746318 | 126 days ago | IN | 0 ETH | 0.0001129 | ||||
| Approve | 22723034 | 129 days ago | IN | 0 ETH | 0.0001332 | ||||
| Approve | 22716344 | 130 days ago | IN | 0 ETH | 0.00013347 | ||||
| Approve | 22709695 | 131 days ago | IN | 0 ETH | 0.00004233 | ||||
| Approve | 22699780 | 132 days ago | IN | 0 ETH | 0.00002441 | ||||
| Approve | 22699523 | 132 days ago | IN | 0 ETH | 0.00003231 | ||||
| Approve | 22647194 | 139 days ago | IN | 0 ETH | 0.0001327 |
Latest 25 internal transactions
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
To
|
|||
|---|---|---|---|---|---|---|---|
| Transfer | 23294537 | 49 days ago | 0.00205962 ETH | ||||
| Transfer | 23294537 | 49 days ago | 0.00205962 ETH | ||||
| Transfer | 23166658 | 67 days ago | 0.00142011 ETH | ||||
| Transfer | 23166658 | 67 days ago | 0.00142011 ETH | ||||
| Transfer | 23035171 | 85 days ago | 0.00519263 ETH | ||||
| Transfer | 23035171 | 85 days ago | 0.00519263 ETH | ||||
| Transfer | 23035095 | 85 days ago | 0.00207227 ETH | ||||
| Transfer | 23035095 | 85 days ago | 0.00207227 ETH | ||||
| Transfer | 22826993 | 114 days ago | 0.00400777 ETH | ||||
| Transfer | 22826993 | 114 days ago | 0.00400777 ETH | ||||
| Transfer | 22796304 | 119 days ago | 0.00512079 ETH | ||||
| Transfer | 22796304 | 119 days ago | 0.00512079 ETH | ||||
| Transfer | 22794235 | 119 days ago | 0.00455613 ETH | ||||
| Transfer | 22794235 | 119 days ago | 0.00455613 ETH | ||||
| Transfer | 22723036 | 129 days ago | 0.00983798 ETH | ||||
| Transfer | 22723036 | 129 days ago | 0.00983798 ETH | ||||
| Transfer | 22709700 | 131 days ago | 0.00195323 ETH | ||||
| Transfer | 22709700 | 131 days ago | 0.00195323 ETH | ||||
| Transfer | 22644417 | 140 days ago | 0.00784837 ETH | ||||
| Transfer | 22644417 | 140 days ago | 0.00784837 ETH | ||||
| Transfer | 22639799 | 140 days ago | 0.00490251 ETH | ||||
| Transfer | 22639799 | 140 days ago | 0.00490251 ETH | ||||
| Transfer | 22634088 | 141 days ago | 0.00676454 ETH | ||||
| Transfer | 22634088 | 141 days ago | 0.00676454 ETH | ||||
| Transfer | 22630351 | 142 days ago | 0.00738015 ETH |
Cross-Chain Transactions
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
QAAI
Compiler Version
v0.8.29+commit.ab55807c
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2025-05-14
*/
/**
Website: https://quantumagentai.io/
Telegram: https://t.me/QuantumAgentAI
Twitter: https://x.com/Quantum_AIAgent
**/
//SPDX-License-Identifier: UNLICENSE
pragma solidity 0.8.29;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
}
interface IERC20 {
function totalSupply() external view returns (uint256);
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);
}
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
return c;
}
}
contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor () {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
}
interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IUniswapV2Router02 {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
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);
}
contract QAAI is Context, IERC20, Ownable {
using SafeMath for uint256;
mapping (address => uint256) private _balances;
mapping (address => mapping (address => uint256)) private _allowances;
mapping (address => bool) private isExile;
mapping (address => bool) public marketPair;
address payable private _taxWallet;
uint256 firstBlock;
uint256 private _firstBuyTax=20;
uint256 private _firstSellTax=20;
uint256 private _finalBuyTax=5;
uint256 private _finalSellTax=5;
uint256 private _reduceBuyTaxAt=20;
uint256 private _reduceSellTaxAt=20;
uint256 private _preventSwapBefore=2;
uint256 private _buyCount= 0;
uint256 private sellCount = 0;
uint256 private lastSellBlock = 0;
uint8 private constant _decimals = 9;
uint256 private constant _tTotal = 120000000 * 10**_decimals;
string private constant _name = unicode"Quantum Agent AI";
string private constant _symbol = unicode"QAAI";
uint256 public _maxTxAmount = 2400000 * 10**_decimals;
uint256 public _maxWalletSize = 2400000 * 10**_decimals;
uint256 public _taxSwapThreshold= 240000 * 10**_decimals;
uint256 public _maxTaxSwap= 2400000 * 10**_decimals;
IUniswapV2Router02 private uniswapV2Router;
address public uniswapV2Pair;
bool private tradingOpen;
uint256 public caBlockLimit = 3;
bool private inSwap = false;
bool private swapEnabled = false;
bool public caLimit = true;
event MaxTxAmountUpdated(uint _maxTxAmount);
modifier lockTheSwap {
inSwap = true;
_;
inSwap = false;
}
constructor () {
_taxWallet = payable(0x9Bdb1C63EFED2B2d6Ca9E83b968435f4Fb460FCB);
_balances[_msgSender()] = _tTotal;
isExile[owner()] = true;
isExile[address(this)] = true;
isExile[address(uniswapV2Pair)] = true;
emit Transfer(address(0), _msgSender(), _tTotal);
}
function name() public pure returns (string memory) {
return _name;
}
function symbol() public pure returns (string memory) {
return _symbol;
}
function decimals() public pure returns (uint8) {
return _decimals;
}
function totalSupply() public pure override returns (uint256) {
return _tTotal;
}
function balanceOf(address account) public view override returns (uint256) {
return _balances[account];
}
function transfer(address recipient, uint256 amount) public override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender) public view override returns (uint256) {
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount) public override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
return true;
}
function _approve(address owner, address spender, uint256 amount) private {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function _transfer(address from, address to, uint256 amount) private {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
require(amount > 0, "Transfer amount must be greater than zero");
uint256 taxAmount=0;
if (from != owner() && to != owner()) {
taxAmount = amount.mul((_buyCount> _reduceBuyTaxAt)? _finalBuyTax: _firstBuyTax).div(100);
if (marketPair[from] && to != address(uniswapV2Router) && ! isExile[to] ) {
require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
if (firstBlock + 1 > block.number) {
require(!isContract(to));
}
_buyCount++;
}
if (!marketPair[to] && ! isExile[to]) {
require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
}
if(marketPair[to] && from!= address(this) ){
taxAmount = amount.mul((_buyCount> _reduceSellTaxAt)? _finalSellTax: _firstSellTax).div(100);
}
if (!marketPair[from] && !marketPair[to] && from!= address(this) ) {
taxAmount = 0;
}
uint256 contractTokenBalance = balanceOf(address(this));
if (caLimit && !inSwap && marketPair[to] && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
if (block.number > lastSellBlock) {
sellCount = 0;
}
require(sellCount < caBlockLimit, "CA balance sell");
swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
uint256 contractETHBalance = address(this).balance;
if(contractETHBalance > 0) {
sendETHToFee(address(this).balance);
}
sellCount++;
lastSellBlock = block.number;
}
else if(!inSwap && marketPair[to] && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
uint256 contractETHBalance = address(this).balance;
if(contractETHBalance > 0) {
sendETHToFee(address(this).balance);
}
}
}
if(taxAmount>0){
_balances[address(this)]=_balances[address(this)].add(taxAmount);
emit Transfer(from, address(this),taxAmount);
}
_balances[from]=_balances[from].sub(amount);
_balances[to]=_balances[to].add(amount.sub(taxAmount));
emit Transfer(from, to, amount.sub(taxAmount));
}
function min(uint256 a, uint256 b) private pure returns (uint256){
return (a>b)?b:a;
}
function isContract(address account) private view returns (bool) {
uint256 size;
assembly {
size := extcodesize(account)
}
return size > 0;
}
function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapV2Router.WETH();
_approve(address(this), address(uniswapV2Router), tokenAmount);
uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
address(this),
block.timestamp
);
}
function rescueStuckETH() external onlyOwner {
payable(_taxWallet).transfer(address(this).balance);
}
function updateSwapSettings(uint256 newinitialBuyTax, uint256 newinitialSellTax, uint256 newReduBTax, uint256 newReduSTax, uint256 newPrevSwapBef) external onlyOwner {
_firstBuyTax = newinitialBuyTax;
_firstSellTax = newinitialSellTax;
_reduceBuyTaxAt = newReduBTax;
_reduceSellTaxAt = newReduSTax;
_preventSwapBefore = newPrevSwapBef;
}
function rescueStuckERC20Tokens(address _tokenAddr, uint _amount) external onlyOwner {
IERC20(_tokenAddr).transfer(_taxWallet, _amount);
}
function openMax() external onlyOwner{
_maxTxAmount = _tTotal;
_maxWalletSize=_tTotal;
emit MaxTxAmountUpdated(_tTotal);
}
function sendETHToFee(uint256 amount) private {
_taxWallet.transfer(amount);
}
function startTrade() external onlyOwner() {
require(!tradingOpen,"trading is already open");
uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
_approve(address(this), address(uniswapV2Router), _tTotal);
uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
marketPair[address(uniswapV2Pair)] = true;
isExile[address(uniswapV2Pair)] = true;
uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
swapEnabled = true;
tradingOpen = true;
firstBlock = block.number;
}
receive() external payable {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"caBlockLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"caLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"marketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueStuckERC20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newinitialBuyTax","type":"uint256"},{"internalType":"uint256","name":"newinitialSellTax","type":"uint256"},{"internalType":"uint256","name":"newReduBTax","type":"uint256"},{"internalType":"uint256","name":"newReduSTax","type":"uint256"},{"internalType":"uint256","name":"newPrevSwapBef","type":"uint256"}],"name":"updateSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60806040526014600755601460085560056009556005600a556014600b556014600c556002600d555f600e555f600f555f6010556009600a61004191906105d7565b62249f0061004f9190610621565b6011556009600a61006091906105d7565b62249f0061006e9190610621565b6012556009600a61007f91906105d7565b6203a98061008d9190610621565b6013556009600a61009e91906105d7565b62249f006100ac9190610621565b60145560036017555f60185f6101000a81548160ff0219169083151502179055505f601860016101000a81548160ff0219169083151502179055506001601860026101000a81548160ff02191690831515021790555034801561010d575f5ffd5b505f61011d61043860201b60201c565b9050805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350739bdb1c63efed2b2d6ca9e83b968435f4fb460fcb60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a61021b91906105d7565b6307270e0061022a9190610621565b60015f61023b61043860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61028b61043f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506103b361043860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a61040f91906105d7565b6307270e0061041e9190610621565b60405161042b9190610671565b60405180910390a361068a565b5f33905090565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b60018511156104e8578086048111156104c4576104c3610466565b5b60018516156104d35780820291505b80810290506104e185610493565b94506104a8565b94509492505050565b5f8261050057600190506105bb565b8161050d575f90506105bb565b8160018114610523576002811461052d5761055c565b60019150506105bb565b60ff84111561053f5761053e610466565b5b8360020a91508482111561055657610555610466565b5b506105bb565b5060208310610133831016604e8410600b84101617156105915782820a90508381111561058c5761058b610466565b5b6105bb565b61059e848484600161049f565b925090508184048111156105b5576105b4610466565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6105e1826105c2565b91506105ec836105cb565b92506106197fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104f1565b905092915050565b5f61062b826105c2565b9150610636836105c2565b9250828202610644816105c2565b9150828204841483151761065b5761065a610466565b5b5092915050565b61066b816105c2565b82525050565b5f6020820190506106845f830184610662565b92915050565b613652806106975f395ff3fe60806040526004361061014e575f3560e01c8063715018a6116100b5578063a9059cbb1161006e578063a9059cbb14610443578063bf474bed1461047f578063c2773d4e146104a9578063cee3e84d146104bf578063dd62ed3e146104e9578063f5b3c3bf1461052557610155565b8063715018a61461035b5780637d1db4a51461037157806383aa62901461039b5780638da5cb5b146103c55780638f9a55c0146103ef57806395d89b411461041957610155565b80632c65469e116101075780632c65469e14610265578063313ce5671461028d578063331221d5146102b757806349bd5a5e146102df5780636c5808011461030957806370a082311461031f57610155565b80630150fe4c1461015957806306fdde031461016f578063095ea7b3146101995780630faee56f146101d557806318160ddd146101ff57806323b872dd1461022957610155565b3661015557005b5f5ffd5b348015610164575f5ffd5b5061016d610561565b005b34801561017a575f5ffd5b5061018361065d565b60405161019091906126a0565b60405180910390f35b3480156101a4575f5ffd5b506101bf60048036038101906101ba9190612751565b61069a565b6040516101cc91906127a9565b60405180910390f35b3480156101e0575f5ffd5b506101e96106b7565b6040516101f691906127d1565b60405180910390f35b34801561020a575f5ffd5b506102136106bd565b60405161022091906127d1565b60405180910390f35b348015610234575f5ffd5b5061024f600480360381019061024a91906127ea565b6106e0565b60405161025c91906127a9565b60405180910390f35b348015610270575f5ffd5b5061028b60048036038101906102869190612751565b6107b4565b005b348015610298575f5ffd5b506102a16108ea565b6040516102ae9190612855565b60405180910390f35b3480156102c2575f5ffd5b506102dd60048036038101906102d8919061286e565b6108f2565b005b3480156102ea575f5ffd5b506102f36109b1565b60405161030091906128f4565b60405180910390f35b348015610314575f5ffd5b5061031d6109d6565b005b34801561032a575f5ffd5b506103456004803603810190610340919061290d565b610fec565b60405161035291906127d1565b60405180910390f35b348015610366575f5ffd5b5061036f611032565b005b34801561037c575f5ffd5b50610385611182565b60405161039291906127d1565b60405180910390f35b3480156103a6575f5ffd5b506103af611188565b6040516103bc91906127d1565b60405180910390f35b3480156103d0575f5ffd5b506103d961118e565b6040516103e691906128f4565b60405180910390f35b3480156103fa575f5ffd5b506104036111b5565b60405161041091906127d1565b60405180910390f35b348015610424575f5ffd5b5061042d6111bb565b60405161043a91906126a0565b60405180910390f35b34801561044e575f5ffd5b5061046960048036038101906104649190612751565b6111f8565b60405161047691906127a9565b60405180910390f35b34801561048a575f5ffd5b50610493611215565b6040516104a091906127d1565b60405180910390f35b3480156104b4575f5ffd5b506104bd61121b565b005b3480156104ca575f5ffd5b506104d361134b565b6040516104e091906127a9565b60405180910390f35b3480156104f4575f5ffd5b5061050f600480360381019061050a9190612938565b61135e565b60405161051c91906127d1565b60405180910390f35b348015610530575f5ffd5b5061054b6004803603810190610546919061290d565b6113e0565b60405161055891906127a9565b60405180910390f35b6105696113fd565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ed906129c0565b60405180910390fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f1935050505015801561065a573d5f5f3e3d5ffd5b50565b60606040518060400160405280601081526020017f5175616e74756d204167656e7420414900000000000000000000000000000000815250905090565b5f6106ad6106a66113fd565b8484611404565b6001905092915050565b60145481565b5f6009600a6106cc9190612b3a565b6307270e006106db9190612b84565b905090565b5f6106ec8484846115c7565b6107a9846106f86113fd565b6107a4856040518060600160405280602881526020016135f56028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61075b6113fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461210d9092919063ffffffff16565b611404565b600190509392505050565b6107bc6113fd565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610849576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610840906129c0565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016108a5929190612c20565b6020604051808303815f875af11580156108c1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e59190612c71565b505050565b5f6009905090565b6108fa6113fd565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610987576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097e906129c0565b60405180910390fd5b846007819055508360088190555082600b8190555081600c8190555080600d819055505050505050565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109de6113fd565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a62906129c0565b60405180910390fd5b601660149054906101000a900460ff1615610abb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab290612ce6565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b573060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610b439190612b3a565b6307270e00610b529190612b84565b611404565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bc1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be59190612d18565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c6b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c8f9190612d18565b6040518363ffffffff1660e01b8152600401610cac929190612d43565b6020604051808303815f875af1158015610cc8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cec9190612d18565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e5f30610fec565b5f5f610e6961118e565b426040518863ffffffff1660e01b8152600401610e8b96959493929190612da3565b60606040518083038185885af1158015610ea7573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ecc9190612e16565b50505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f6c929190612e66565b6020604051808303815f875af1158015610f88573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fac9190612c71565b506001601860016101000a81548160ff0219169083151502179055506001601660146101000a81548160ff02191690831515021790555043600681905550565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61103a6113fd565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110be906129c0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115481565b60175481565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600481526020017f5141414900000000000000000000000000000000000000000000000000000000815250905090565b5f61120b6112046113fd565b84846115c7565b6001905092915050565b60135481565b6112236113fd565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a7906129c0565b60405180910390fd5b6009600a6112be9190612b3a565b6307270e006112cd9190612b84565b6011819055506009600a6112e19190612b3a565b6307270e006112f09190612b84565b6012819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6113259190612b3a565b6307270e006113349190612b84565b60405161134191906127d1565b60405180910390a1565b601860029054906101000a900460ff1681565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6004602052805f5260405f205f915054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611472576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146990612efd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d790612f8b565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115ba91906127d1565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611635576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162c90613019565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169a906130a7565b60405180910390fd5b5f81116116e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116dc90613135565b60405180910390fd5b5f5f90506116f161118e565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561175f575061172f61118e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e5d576117a06064611792600b54600e541161177f57600754611783565b6009545b8561216f90919063ffffffff16565b6121e690919063ffffffff16565b905060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611845575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611898575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561197b576011548211156118e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d99061319d565b60405180910390fd5b601254826118ef85610fec565b6118f991906131bb565b111561193a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193190613238565b60405180910390fd5b43600160065461194a91906131bb565b1115611963576119598361222f565b15611962575f5ffd5b5b600e5f81548092919061197590613256565b91905055505b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611a19575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a775760125482611a2b85610fec565b611a3591906131bb565b1115611a76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6d90613238565b60405180910390fd5b5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611af957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b3d57611b3a6064611b2c600c54600e5411611b1957600854611b1d565b600a545b8561216f90919063ffffffff16565b6121e690919063ffffffff16565b90505b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611bdb575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611c1357503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611c1c575f90505b5f611c2630610fec565b9050601860029054906101000a900460ff168015611c50575060185f9054906101000a900460ff16155b8015611ca2575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611cba5750601860019054906101000a900460ff165b8015611cc7575060135481115b8015611cd65750600d54600e54115b15611d8a57601054431115611ced575f600f819055505b601754600f5410611d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2a906132e7565b60405180910390fd5b611d50611d4b84611d4684601454612240565b612240565b612258565b5f4790505f811115611d6657611d65476124c1565b5b600f5f815480929190611d7890613256565b91905055504360108190555050611e5b565b60185f9054906101000a900460ff16158015611dec575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611e045750601860019054906101000a900460ff165b8015611e11575060135481115b8015611e205750600d54600e54115b15611e5a57611e42611e3d84611e3884601454612240565b612240565b612258565b5f4790505f811115611e5857611e57476124c1565b5b505b5b505b5f811115611f5c57611eb58160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461252990919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f5391906127d1565b60405180910390a35b611fac8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461258690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061204f612003828461258690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461252990919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6120f2848661258690919063ffffffff16565b6040516120ff91906127d1565b60405180910390a350505050565b5f838311158290612154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214b91906126a0565b60405180910390fd5b505f83856121629190613305565b9050809150509392505050565b5f5f830361217f575f90506121e0565b5f828461218c9190612b84565b905082848261219b9190613365565b146121db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d290613405565b60405180910390fd5b809150505b92915050565b5f61222783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125cf565b905092915050565b5f5f823b90505f8111915050919050565b5f81831161224e5782612250565b815b905092915050565b600160185f6101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561228e5761228d613423565b5b6040519080825280602002602001820160405280156122bc5781602001602082028036833780820191505090505b50905030815f815181106122d3576122d2613450565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612377573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061239b9190612d18565b816001815181106123af576123ae613450565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124153060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611404565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612477959493929190613534565b5f604051808303815f87803b15801561248e575f5ffd5b505af11580156124a0573d5f5f3e3d5ffd5b50505050505f60185f6101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612525573d5f5f3e3d5ffd5b5050565b5f5f828461253791906131bb565b90508381101561257c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612573906135d6565b60405180910390fd5b8091505092915050565b5f6125c783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061210d565b905092915050565b5f5f83118290612615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260c91906126a0565b60405180910390fd5b505f83856126239190613365565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61267282612630565b61267c818561263a565b935061268c81856020860161264a565b61269581612658565b840191505092915050565b5f6020820190508181035f8301526126b88184612668565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6126ed826126c4565b9050919050565b6126fd816126e3565b8114612707575f5ffd5b50565b5f81359050612718816126f4565b92915050565b5f819050919050565b6127308161271e565b811461273a575f5ffd5b50565b5f8135905061274b81612727565b92915050565b5f5f60408385031215612767576127666126c0565b5b5f6127748582860161270a565b92505060206127858582860161273d565b9150509250929050565b5f8115159050919050565b6127a38161278f565b82525050565b5f6020820190506127bc5f83018461279a565b92915050565b6127cb8161271e565b82525050565b5f6020820190506127e45f8301846127c2565b92915050565b5f5f5f60608486031215612801576128006126c0565b5b5f61280e8682870161270a565b935050602061281f8682870161270a565b92505060406128308682870161273d565b9150509250925092565b5f60ff82169050919050565b61284f8161283a565b82525050565b5f6020820190506128685f830184612846565b92915050565b5f5f5f5f5f60a08688031215612887576128866126c0565b5b5f6128948882890161273d565b95505060206128a58882890161273d565b94505060406128b68882890161273d565b93505060606128c78882890161273d565b92505060806128d88882890161273d565b9150509295509295909350565b6128ee816126e3565b82525050565b5f6020820190506129075f8301846128e5565b92915050565b5f60208284031215612922576129216126c0565b5b5f61292f8482850161270a565b91505092915050565b5f5f6040838503121561294e5761294d6126c0565b5b5f61295b8582860161270a565b925050602061296c8582860161270a565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6129aa60208361263a565b91506129b582612976565b602082019050919050565b5f6020820190508181035f8301526129d78161299e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b6001851115612a6057808604811115612a3c57612a3b6129de565b5b6001851615612a4b5780820291505b8081029050612a5985612a0b565b9450612a20565b94509492505050565b5f82612a785760019050612b33565b81612a85575f9050612b33565b8160018114612a9b5760028114612aa557612ad4565b6001915050612b33565b60ff841115612ab757612ab66129de565b5b8360020a915084821115612ace57612acd6129de565b5b50612b33565b5060208310610133831016604e8410600b8410161715612b095782820a905083811115612b0457612b036129de565b5b612b33565b612b168484846001612a17565b92509050818404811115612b2d57612b2c6129de565b5b81810290505b9392505050565b5f612b448261271e565b9150612b4f8361283a565b9250612b7c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a69565b905092915050565b5f612b8e8261271e565b9150612b998361271e565b9250828202612ba78161271e565b91508282048414831517612bbe57612bbd6129de565b5b5092915050565b5f819050919050565b5f612be8612be3612bde846126c4565b612bc5565b6126c4565b9050919050565b5f612bf982612bce565b9050919050565b5f612c0a82612bef565b9050919050565b612c1a81612c00565b82525050565b5f604082019050612c335f830185612c11565b612c4060208301846127c2565b9392505050565b612c508161278f565b8114612c5a575f5ffd5b50565b5f81519050612c6b81612c47565b92915050565b5f60208284031215612c8657612c856126c0565b5b5f612c9384828501612c5d565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612cd060178361263a565b9150612cdb82612c9c565b602082019050919050565b5f6020820190508181035f830152612cfd81612cc4565b9050919050565b5f81519050612d12816126f4565b92915050565b5f60208284031215612d2d57612d2c6126c0565b5b5f612d3a84828501612d04565b91505092915050565b5f604082019050612d565f8301856128e5565b612d6360208301846128e5565b9392505050565b5f819050919050565b5f612d8d612d88612d8384612d6a565b612bc5565b61271e565b9050919050565b612d9d81612d73565b82525050565b5f60c082019050612db65f8301896128e5565b612dc360208301886127c2565b612dd06040830187612d94565b612ddd6060830186612d94565b612dea60808301856128e5565b612df760a08301846127c2565b979650505050505050565b5f81519050612e1081612727565b92915050565b5f5f5f60608486031215612e2d57612e2c6126c0565b5b5f612e3a86828701612e02565b9350506020612e4b86828701612e02565b9250506040612e5c86828701612e02565b9150509250925092565b5f604082019050612e795f8301856128e5565b612e8660208301846127c2565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612ee760248361263a565b9150612ef282612e8d565b604082019050919050565b5f6020820190508181035f830152612f1481612edb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f7560228361263a565b9150612f8082612f1b565b604082019050919050565b5f6020820190508181035f830152612fa281612f69565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61300360258361263a565b915061300e82612fa9565b604082019050919050565b5f6020820190508181035f83015261303081612ff7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61309160238361263a565b915061309c82613037565b604082019050919050565b5f6020820190508181035f8301526130be81613085565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61311f60298361263a565b915061312a826130c5565b604082019050919050565b5f6020820190508181035f83015261314c81613113565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61318760198361263a565b915061319282613153565b602082019050919050565b5f6020820190508181035f8301526131b48161317b565b9050919050565b5f6131c58261271e565b91506131d08361271e565b92508282019050808211156131e8576131e76129de565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613222601a8361263a565b915061322d826131ee565b602082019050919050565b5f6020820190508181035f83015261324f81613216565b9050919050565b5f6132608261271e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613292576132916129de565b5b600182019050919050565b7f43412062616c616e63652073656c6c00000000000000000000000000000000005f82015250565b5f6132d1600f8361263a565b91506132dc8261329d565b602082019050919050565b5f6020820190508181035f8301526132fe816132c5565b9050919050565b5f61330f8261271e565b915061331a8361271e565b9250828203905081811115613332576133316129de565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61336f8261271e565b915061337a8361271e565b92508261338a57613389613338565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133ef60218361263a565b91506133fa82613395565b604082019050919050565b5f6020820190508181035f83015261341c816133e3565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6134af816126e3565b82525050565b5f6134c083836134a6565b60208301905092915050565b5f602082019050919050565b5f6134e28261347d565b6134ec8185613487565b93506134f783613497565b805f5b8381101561352757815161350e88826134b5565b9750613519836134cc565b9250506001810190506134fa565b5085935050505092915050565b5f60a0820190506135475f8301886127c2565b6135546020830187612d94565b818103604083015261356681866134d8565b905061357560608301856128e5565b61358260808301846127c2565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6135c0601b8361263a565b91506135cb8261358c565b602082019050919050565b5f6020820190508181035f8301526135ed816135b4565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ecadba2d5789bc2205eea273ad147eaea044ae63cbd46c9531fa7fe60091359e64736f6c634300081d0033
Deployed Bytecode
0x60806040526004361061014e575f3560e01c8063715018a6116100b5578063a9059cbb1161006e578063a9059cbb14610443578063bf474bed1461047f578063c2773d4e146104a9578063cee3e84d146104bf578063dd62ed3e146104e9578063f5b3c3bf1461052557610155565b8063715018a61461035b5780637d1db4a51461037157806383aa62901461039b5780638da5cb5b146103c55780638f9a55c0146103ef57806395d89b411461041957610155565b80632c65469e116101075780632c65469e14610265578063313ce5671461028d578063331221d5146102b757806349bd5a5e146102df5780636c5808011461030957806370a082311461031f57610155565b80630150fe4c1461015957806306fdde031461016f578063095ea7b3146101995780630faee56f146101d557806318160ddd146101ff57806323b872dd1461022957610155565b3661015557005b5f5ffd5b348015610164575f5ffd5b5061016d610561565b005b34801561017a575f5ffd5b5061018361065d565b60405161019091906126a0565b60405180910390f35b3480156101a4575f5ffd5b506101bf60048036038101906101ba9190612751565b61069a565b6040516101cc91906127a9565b60405180910390f35b3480156101e0575f5ffd5b506101e96106b7565b6040516101f691906127d1565b60405180910390f35b34801561020a575f5ffd5b506102136106bd565b60405161022091906127d1565b60405180910390f35b348015610234575f5ffd5b5061024f600480360381019061024a91906127ea565b6106e0565b60405161025c91906127a9565b60405180910390f35b348015610270575f5ffd5b5061028b60048036038101906102869190612751565b6107b4565b005b348015610298575f5ffd5b506102a16108ea565b6040516102ae9190612855565b60405180910390f35b3480156102c2575f5ffd5b506102dd60048036038101906102d8919061286e565b6108f2565b005b3480156102ea575f5ffd5b506102f36109b1565b60405161030091906128f4565b60405180910390f35b348015610314575f5ffd5b5061031d6109d6565b005b34801561032a575f5ffd5b506103456004803603810190610340919061290d565b610fec565b60405161035291906127d1565b60405180910390f35b348015610366575f5ffd5b5061036f611032565b005b34801561037c575f5ffd5b50610385611182565b60405161039291906127d1565b60405180910390f35b3480156103a6575f5ffd5b506103af611188565b6040516103bc91906127d1565b60405180910390f35b3480156103d0575f5ffd5b506103d961118e565b6040516103e691906128f4565b60405180910390f35b3480156103fa575f5ffd5b506104036111b5565b60405161041091906127d1565b60405180910390f35b348015610424575f5ffd5b5061042d6111bb565b60405161043a91906126a0565b60405180910390f35b34801561044e575f5ffd5b5061046960048036038101906104649190612751565b6111f8565b60405161047691906127a9565b60405180910390f35b34801561048a575f5ffd5b50610493611215565b6040516104a091906127d1565b60405180910390f35b3480156104b4575f5ffd5b506104bd61121b565b005b3480156104ca575f5ffd5b506104d361134b565b6040516104e091906127a9565b60405180910390f35b3480156104f4575f5ffd5b5061050f600480360381019061050a9190612938565b61135e565b60405161051c91906127d1565b60405180910390f35b348015610530575f5ffd5b5061054b6004803603810190610546919061290d565b6113e0565b60405161055891906127a9565b60405180910390f35b6105696113fd565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ed906129c0565b60405180910390fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f1935050505015801561065a573d5f5f3e3d5ffd5b50565b60606040518060400160405280601081526020017f5175616e74756d204167656e7420414900000000000000000000000000000000815250905090565b5f6106ad6106a66113fd565b8484611404565b6001905092915050565b60145481565b5f6009600a6106cc9190612b3a565b6307270e006106db9190612b84565b905090565b5f6106ec8484846115c7565b6107a9846106f86113fd565b6107a4856040518060600160405280602881526020016135f56028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61075b6113fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461210d9092919063ffffffff16565b611404565b600190509392505050565b6107bc6113fd565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610849576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610840906129c0565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016108a5929190612c20565b6020604051808303815f875af11580156108c1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e59190612c71565b505050565b5f6009905090565b6108fa6113fd565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610987576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097e906129c0565b60405180910390fd5b846007819055508360088190555082600b8190555081600c8190555080600d819055505050505050565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109de6113fd565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a62906129c0565b60405180910390fd5b601660149054906101000a900460ff1615610abb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab290612ce6565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b573060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610b439190612b3a565b6307270e00610b529190612b84565b611404565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bc1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be59190612d18565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c6b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c8f9190612d18565b6040518363ffffffff1660e01b8152600401610cac929190612d43565b6020604051808303815f875af1158015610cc8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cec9190612d18565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e5f30610fec565b5f5f610e6961118e565b426040518863ffffffff1660e01b8152600401610e8b96959493929190612da3565b60606040518083038185885af1158015610ea7573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ecc9190612e16565b50505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f6c929190612e66565b6020604051808303815f875af1158015610f88573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fac9190612c71565b506001601860016101000a81548160ff0219169083151502179055506001601660146101000a81548160ff02191690831515021790555043600681905550565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61103a6113fd565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110be906129c0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115481565b60175481565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600481526020017f5141414900000000000000000000000000000000000000000000000000000000815250905090565b5f61120b6112046113fd565b84846115c7565b6001905092915050565b60135481565b6112236113fd565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a7906129c0565b60405180910390fd5b6009600a6112be9190612b3a565b6307270e006112cd9190612b84565b6011819055506009600a6112e19190612b3a565b6307270e006112f09190612b84565b6012819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6113259190612b3a565b6307270e006113349190612b84565b60405161134191906127d1565b60405180910390a1565b601860029054906101000a900460ff1681565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6004602052805f5260405f205f915054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611472576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146990612efd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d790612f8b565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115ba91906127d1565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611635576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162c90613019565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169a906130a7565b60405180910390fd5b5f81116116e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116dc90613135565b60405180910390fd5b5f5f90506116f161118e565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561175f575061172f61118e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e5d576117a06064611792600b54600e541161177f57600754611783565b6009545b8561216f90919063ffffffff16565b6121e690919063ffffffff16565b905060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611845575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611898575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561197b576011548211156118e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d99061319d565b60405180910390fd5b601254826118ef85610fec565b6118f991906131bb565b111561193a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193190613238565b60405180910390fd5b43600160065461194a91906131bb565b1115611963576119598361222f565b15611962575f5ffd5b5b600e5f81548092919061197590613256565b91905055505b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611a19575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a775760125482611a2b85610fec565b611a3591906131bb565b1115611a76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6d90613238565b60405180910390fd5b5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611af957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b3d57611b3a6064611b2c600c54600e5411611b1957600854611b1d565b600a545b8561216f90919063ffffffff16565b6121e690919063ffffffff16565b90505b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611bdb575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611c1357503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611c1c575f90505b5f611c2630610fec565b9050601860029054906101000a900460ff168015611c50575060185f9054906101000a900460ff16155b8015611ca2575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611cba5750601860019054906101000a900460ff165b8015611cc7575060135481115b8015611cd65750600d54600e54115b15611d8a57601054431115611ced575f600f819055505b601754600f5410611d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2a906132e7565b60405180910390fd5b611d50611d4b84611d4684601454612240565b612240565b612258565b5f4790505f811115611d6657611d65476124c1565b5b600f5f815480929190611d7890613256565b91905055504360108190555050611e5b565b60185f9054906101000a900460ff16158015611dec575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611e045750601860019054906101000a900460ff165b8015611e11575060135481115b8015611e205750600d54600e54115b15611e5a57611e42611e3d84611e3884601454612240565b612240565b612258565b5f4790505f811115611e5857611e57476124c1565b5b505b5b505b5f811115611f5c57611eb58160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461252990919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f5391906127d1565b60405180910390a35b611fac8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461258690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061204f612003828461258690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461252990919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6120f2848661258690919063ffffffff16565b6040516120ff91906127d1565b60405180910390a350505050565b5f838311158290612154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214b91906126a0565b60405180910390fd5b505f83856121629190613305565b9050809150509392505050565b5f5f830361217f575f90506121e0565b5f828461218c9190612b84565b905082848261219b9190613365565b146121db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d290613405565b60405180910390fd5b809150505b92915050565b5f61222783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125cf565b905092915050565b5f5f823b90505f8111915050919050565b5f81831161224e5782612250565b815b905092915050565b600160185f6101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561228e5761228d613423565b5b6040519080825280602002602001820160405280156122bc5781602001602082028036833780820191505090505b50905030815f815181106122d3576122d2613450565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612377573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061239b9190612d18565b816001815181106123af576123ae613450565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124153060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611404565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612477959493929190613534565b5f604051808303815f87803b15801561248e575f5ffd5b505af11580156124a0573d5f5f3e3d5ffd5b50505050505f60185f6101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612525573d5f5f3e3d5ffd5b5050565b5f5f828461253791906131bb565b90508381101561257c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612573906135d6565b60405180910390fd5b8091505092915050565b5f6125c783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061210d565b905092915050565b5f5f83118290612615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260c91906126a0565b60405180910390fd5b505f83856126239190613365565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61267282612630565b61267c818561263a565b935061268c81856020860161264a565b61269581612658565b840191505092915050565b5f6020820190508181035f8301526126b88184612668565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6126ed826126c4565b9050919050565b6126fd816126e3565b8114612707575f5ffd5b50565b5f81359050612718816126f4565b92915050565b5f819050919050565b6127308161271e565b811461273a575f5ffd5b50565b5f8135905061274b81612727565b92915050565b5f5f60408385031215612767576127666126c0565b5b5f6127748582860161270a565b92505060206127858582860161273d565b9150509250929050565b5f8115159050919050565b6127a38161278f565b82525050565b5f6020820190506127bc5f83018461279a565b92915050565b6127cb8161271e565b82525050565b5f6020820190506127e45f8301846127c2565b92915050565b5f5f5f60608486031215612801576128006126c0565b5b5f61280e8682870161270a565b935050602061281f8682870161270a565b92505060406128308682870161273d565b9150509250925092565b5f60ff82169050919050565b61284f8161283a565b82525050565b5f6020820190506128685f830184612846565b92915050565b5f5f5f5f5f60a08688031215612887576128866126c0565b5b5f6128948882890161273d565b95505060206128a58882890161273d565b94505060406128b68882890161273d565b93505060606128c78882890161273d565b92505060806128d88882890161273d565b9150509295509295909350565b6128ee816126e3565b82525050565b5f6020820190506129075f8301846128e5565b92915050565b5f60208284031215612922576129216126c0565b5b5f61292f8482850161270a565b91505092915050565b5f5f6040838503121561294e5761294d6126c0565b5b5f61295b8582860161270a565b925050602061296c8582860161270a565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6129aa60208361263a565b91506129b582612976565b602082019050919050565b5f6020820190508181035f8301526129d78161299e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b6001851115612a6057808604811115612a3c57612a3b6129de565b5b6001851615612a4b5780820291505b8081029050612a5985612a0b565b9450612a20565b94509492505050565b5f82612a785760019050612b33565b81612a85575f9050612b33565b8160018114612a9b5760028114612aa557612ad4565b6001915050612b33565b60ff841115612ab757612ab66129de565b5b8360020a915084821115612ace57612acd6129de565b5b50612b33565b5060208310610133831016604e8410600b8410161715612b095782820a905083811115612b0457612b036129de565b5b612b33565b612b168484846001612a17565b92509050818404811115612b2d57612b2c6129de565b5b81810290505b9392505050565b5f612b448261271e565b9150612b4f8361283a565b9250612b7c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a69565b905092915050565b5f612b8e8261271e565b9150612b998361271e565b9250828202612ba78161271e565b91508282048414831517612bbe57612bbd6129de565b5b5092915050565b5f819050919050565b5f612be8612be3612bde846126c4565b612bc5565b6126c4565b9050919050565b5f612bf982612bce565b9050919050565b5f612c0a82612bef565b9050919050565b612c1a81612c00565b82525050565b5f604082019050612c335f830185612c11565b612c4060208301846127c2565b9392505050565b612c508161278f565b8114612c5a575f5ffd5b50565b5f81519050612c6b81612c47565b92915050565b5f60208284031215612c8657612c856126c0565b5b5f612c9384828501612c5d565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612cd060178361263a565b9150612cdb82612c9c565b602082019050919050565b5f6020820190508181035f830152612cfd81612cc4565b9050919050565b5f81519050612d12816126f4565b92915050565b5f60208284031215612d2d57612d2c6126c0565b5b5f612d3a84828501612d04565b91505092915050565b5f604082019050612d565f8301856128e5565b612d6360208301846128e5565b9392505050565b5f819050919050565b5f612d8d612d88612d8384612d6a565b612bc5565b61271e565b9050919050565b612d9d81612d73565b82525050565b5f60c082019050612db65f8301896128e5565b612dc360208301886127c2565b612dd06040830187612d94565b612ddd6060830186612d94565b612dea60808301856128e5565b612df760a08301846127c2565b979650505050505050565b5f81519050612e1081612727565b92915050565b5f5f5f60608486031215612e2d57612e2c6126c0565b5b5f612e3a86828701612e02565b9350506020612e4b86828701612e02565b9250506040612e5c86828701612e02565b9150509250925092565b5f604082019050612e795f8301856128e5565b612e8660208301846127c2565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612ee760248361263a565b9150612ef282612e8d565b604082019050919050565b5f6020820190508181035f830152612f1481612edb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f7560228361263a565b9150612f8082612f1b565b604082019050919050565b5f6020820190508181035f830152612fa281612f69565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61300360258361263a565b915061300e82612fa9565b604082019050919050565b5f6020820190508181035f83015261303081612ff7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61309160238361263a565b915061309c82613037565b604082019050919050565b5f6020820190508181035f8301526130be81613085565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61311f60298361263a565b915061312a826130c5565b604082019050919050565b5f6020820190508181035f83015261314c81613113565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61318760198361263a565b915061319282613153565b602082019050919050565b5f6020820190508181035f8301526131b48161317b565b9050919050565b5f6131c58261271e565b91506131d08361271e565b92508282019050808211156131e8576131e76129de565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613222601a8361263a565b915061322d826131ee565b602082019050919050565b5f6020820190508181035f83015261324f81613216565b9050919050565b5f6132608261271e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613292576132916129de565b5b600182019050919050565b7f43412062616c616e63652073656c6c00000000000000000000000000000000005f82015250565b5f6132d1600f8361263a565b91506132dc8261329d565b602082019050919050565b5f6020820190508181035f8301526132fe816132c5565b9050919050565b5f61330f8261271e565b915061331a8361271e565b9250828203905081811115613332576133316129de565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61336f8261271e565b915061337a8361271e565b92508261338a57613389613338565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133ef60218361263a565b91506133fa82613395565b604082019050919050565b5f6020820190508181035f83015261341c816133e3565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6134af816126e3565b82525050565b5f6134c083836134a6565b60208301905092915050565b5f602082019050919050565b5f6134e28261347d565b6134ec8185613487565b93506134f783613497565b805f5b8381101561352757815161350e88826134b5565b9750613519836134cc565b9250506001810190506134fa565b5085935050505092915050565b5f60a0820190506135475f8301886127c2565b6135546020830187612d94565b818103604083015261356681866134d8565b905061357560608301856128e5565b61358260808301846127c2565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6135c0601b8361263a565b91506135cb8261358c565b602082019050919050565b5f6020820190508181035f8301526135ed816135b4565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ecadba2d5789bc2205eea273ad147eaea044ae63cbd46c9531fa7fe60091359e64736f6c634300081d0033
Deployed Bytecode Sourcemap
3603:9225:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11041:115;;;;;;;;;;;;;:::i;:::-;;5599:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6432:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4786:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5876:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6601:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11559:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5785:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11164:387;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4895:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11981:807;;;;;;;;;;;;;:::i;:::-;;5979:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2686:148;;;;;;;;;;;;;:::i;:::-;;4599:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4961:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2472:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4661:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5690:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6106:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4723:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11719:154;;;;;;;;;;;;;:::i;:::-;;5072:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6281:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3862:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11041:115;2609:12;:10;:12::i;:::-;2599:22;;:6;;;;;;;;;;;:22;;;2591:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11105:10:::1;;;;;;;;;;;11097:28;;:51;11126:21;11097:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11041:115::o:0;5599:83::-;5636:13;5669:5;;;;;;;;;;;;;;;;;5662:12;;5599:83;:::o;6432:161::-;6507:4;6524:39;6533:12;:10;:12::i;:::-;6547:7;6556:6;6524:8;:39::i;:::-;6581:4;6574:11;;6432:161;;;;:::o;4786:51::-;;;;:::o;5876:95::-;5929:7;4406:1;4461:2;:13;;;;:::i;:::-;4449:9;:25;;;;:::i;:::-;5949:14;;5876:95;:::o;6601:313::-;6699:4;6716:36;6726:6;6734:9;6745:6;6716:9;:36::i;:::-;6763:121;6772:6;6780:12;:10;:12::i;:::-;6794:89;6832:6;6794:89;;;;;;;;;;;;;;;;;:11;:19;6806:6;6794:19;;;;;;;;;;;;;;;:33;6814:12;:10;:12::i;:::-;6794:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6763:8;:121::i;:::-;6902:4;6895:11;;6601:313;;;;;:::o;11559:152::-;2609:12;:10;:12::i;:::-;2599:22;;:6;;;;;;;;;;;:22;;;2591:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11662:10:::1;11655:27;;;11683:10;;;;;;;;;;;11695:7;11655:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11559:152:::0;;:::o;5785:83::-;5826:5;4406:1;5844:16;;5785:83;:::o;11164:387::-;2609:12;:10;:12::i;:::-;2599:22;;:6;;;;;;;;;;;:22;;;2591:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11356:16:::1;11341:12;:31;;;;11399:17;11383:13;:33;;;;11445:11;11427:15;:29;;;;11486:11;11467:16;:30;;;;11529:14;11508:18;:35;;;;11164:387:::0;;;;;:::o;4895:28::-;;;;;;;;;;;;;:::o;11981:807::-;2609:12;:10;:12::i;:::-;2599:22;;:6;;;;;;;;;;;:22;;;2591:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12044:11:::1;;;;;;;;;;;12043:12;12035:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;12130:42;12093:15;;:80;;;;;;;;;;;;;;;;;;12184:58;12201:4;12216:15;;;;;;;;;;;4406:1;4461:2;:13;;;;:::i;:::-;4449:9;:25;;;;:::i;:::-;12184:8;:58::i;:::-;12287:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12269:55;;;12333:4;12340:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12269:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12253:13;;:110;;;;;;;;;;;;;;;;;;12411:4;12374:10;:34;12393:13;;;;;;;;;;;12374:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;12460:4;12426:7;:31;12442:13;;;;;;;;;;;12426:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;12475:15;;;;;;;;;;;:31;;;12514:21;12545:4;12551:24;12569:4;12551:9;:24::i;:::-;12576:1;12578;12580:7;:5;:7::i;:::-;12588:15;12475:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12622:13;;;;;;;;;;;12615:29;;;12653:15;;;;;;;;;;;12671:14;12615:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12711:4;12697:11;;:18;;;;;;;;;;;;;;;;;;12740:4;12726:11;;:18;;;;;;;;;;;;;;;;;;12768:12;12755:10;:25;;;;11981:807::o:0;5979:119::-;6045:7;6072:9;:18;6082:7;6072:18;;;;;;;;;;;;;;;;6065:25;;5979:119;;;:::o;2686:148::-;2609:12;:10;:12::i;:::-;2599:22;;:6;;;;;;;;;;;:22;;;2591:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2793:1:::1;2756:40;;2777:6;;;;;;;;;;;2756:40;;;;;;;;;;;;2824:1;2807:6;;:19;;;;;;;;;;;;;;;;;;2686:148::o:0;4599:55::-;;;;:::o;4961:31::-;;;;:::o;2472:79::-;2510:7;2537:6;;;;;;;;;;;2530:13;;2472:79;:::o;4661:55::-;;;;:::o;5690:87::-;5729:13;5762:7;;;;;;;;;;;;;;;;;5755:14;;5690:87;:::o;6106:167::-;6184:4;6201:42;6211:12;:10;:12::i;:::-;6225:9;6236:6;6201:9;:42::i;:::-;6261:4;6254:11;;6106:167;;;;:::o;4723:56::-;;;;:::o;11719:154::-;2609:12;:10;:12::i;:::-;2599:22;;:6;;;;;;;;;;;:22;;;2591:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4406:1:::1;4461:2;:13;;;;:::i;:::-;4449:9;:25;;;;:::i;:::-;11767:12;:22;;;;4406:1;4461:2;:13;;;;:::i;:::-;4449:9;:25;;;;:::i;:::-;11800:14;:22;;;;11838:27;4406:1;4461:2;:13;;;;:::i;:::-;4449:9;:25;;;;:::i;:::-;11838:27;;;;;;:::i;:::-;;;;;;;;11719:154::o:0;5072:26::-;;;;;;;;;;;;;:::o;6281:143::-;6362:7;6389:11;:18;6401:5;6389:18;;;;;;;;;;;;;;;:27;6408:7;6389:27;;;;;;;;;;;;;;;;6382:34;;6281:143;;;;:::o;3862:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;227:98::-;280:7;307:10;300:17;;227:98;:::o;6922:335::-;7032:1;7015:19;;:5;:19;;;7007:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7113:1;7094:21;;:7;:21;;;7086:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7195:6;7165:11;:18;7177:5;7165:18;;;;;;;;;;;;;;;:27;7184:7;7165:27;;;;;;;;;;;;;;;:36;;;;7233:7;7217:32;;7226:5;7217:32;;;7242:6;7217:32;;;;;;:::i;:::-;;;;;;;;6922:335;;;:::o;7265:2966::-;7369:1;7353:18;;:4;:18;;;7345:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7446:1;7432:16;;:2;:16;;;7424:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7516:1;7507:6;:10;7499:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7574:17;7592:1;7574:19;;7618:7;:5;:7::i;:::-;7610:15;;:4;:15;;;;:32;;;;;7635:7;:5;:7::i;:::-;7629:13;;:2;:13;;;;7610:32;7606:2269;;;7671:77;7744:3;7671:68;7694:15;;7683:9;;:26;7682:56;;7726:12;;7682:56;;;7712:12;;7682:56;7671:6;:10;;:68;;;;:::i;:::-;:72;;:77;;;;:::i;:::-;7659:89;;7769:10;:16;7780:4;7769:16;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;7803:15;;;;;;;;;;;7789:30;;:2;:30;;;;7769:50;:67;;;;;7825:7;:11;7833:2;7825:11;;;;;;;;;;;;;;;;;;;;;;;;;7823:13;7769:67;7765:420;;;7876:12;;7866:6;:22;;7858:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7971:14;;7961:6;7945:13;7955:2;7945:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7937:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8059:12;8054:1;8041:10;;:14;;;;:::i;:::-;:30;8037:103;;;8105:14;8116:2;8105:10;:14::i;:::-;8104:15;8096:24;;;;;;8037:103;8158:9;;:11;;;;;;;;;:::i;:::-;;;;;;7765:420;8206:10;:14;8217:2;8206:14;;;;;;;;;;;;;;;;;;;;;;;;;8205:15;:32;;;;;8226:7;:11;8234:2;8226:11;;;;;;;;;;;;;;;;;;;;;;;;;8224:13;8205:32;8201:152;;;8292:14;;8282:6;8266:13;8276:2;8266:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8258:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8201:152;8372:10;:14;8383:2;8372:14;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;;;8405:4;8390:20;;:4;:20;;;;8372:38;8369:170;;;8443:80;8519:3;8443:71;8466:16;;8455:9;;:27;8454:59;;8500:13;;8454:59;;;8485:13;;8454:59;8443:6;:10;;:71;;;;:::i;:::-;:75;;:80;;;;:::i;:::-;8431:92;;8369:170;8553:10;:16;8564:4;8553:16;;;;;;;;;;;;;;;;;;;;;;;;;8552:17;:36;;;;;8574:10;:14;8585:2;8574:14;;;;;;;;;;;;;;;;;;;;;;;;;8573:15;8552:36;:60;;;;;8607:4;8592:20;;:4;:20;;;;8552:60;8548:115;;;8646:1;8634:13;;8548:115;8679:28;8710:24;8728:4;8710:9;:24::i;:::-;8679:55;;8753:7;;;;;;;;;;;:18;;;;;8765:6;;;;;;;;;;;8764:7;8753:18;:36;;;;;8775:10;:14;8786:2;8775:14;;;;;;;;;;;;;;;;;;;;;;;;;8753:36;:51;;;;;8793:11;;;;;;;;;;;8753:51;:93;;;;;8829:17;;8808:20;:38;8753:93;:125;;;;;8860:18;;8850:9;;:28;8753:125;8749:1115;;;8918:13;;8903:12;:28;8899:90;;;8968:1;8956:9;:13;;;;8899:90;9027:12;;9015:9;;:24;9007:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;9078:67;9095:49;9099:6;9106:37;9110:20;9131:11;;9106:3;:37::i;:::-;9095:3;:49::i;:::-;9078:16;:67::i;:::-;9164:26;9193:21;9164:50;;9257:1;9236:18;:22;9233:105;;;9283:35;9296:21;9283:12;:35::i;:::-;9233:105;9356:9;;:11;;;;;;;;;:::i;:::-;;;;;;9402:12;9386:13;:28;;;;8880:550;8749:1115;;;9455:6;;;;;;;;;;;9454:7;:25;;;;;9465:10;:14;9476:2;9465:14;;;;;;;;;;;;;;;;;;;;;;;;;9454:25;:40;;;;;9483:11;;;;;;;;;;;9454:40;:82;;;;;9519:17;;9498:20;:38;9454:82;:114;;;;;9550:18;;9540:9;;:28;9454:114;9451:413;;;9589:67;9606:49;9610:6;9617:37;9621:20;9642:11;;9617:3;:37::i;:::-;9606:3;:49::i;:::-;9589:16;:67::i;:::-;9675:26;9704:21;9675:50;;9768:1;9747:18;:22;9744:105;;;9794:35;9807:21;9794:12;:35::i;:::-;9744:105;9570:294;9451:413;8749:1115;7644:2231;7606:2269;9900:1;9890:9;:11;9887:161;;;9940:39;9969:9;9940;:24;9958:4;9940:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9915:9;:24;9933:4;9915:24;;;;;;;;;;;;;;;:64;;;;10020:4;9997:39;;10006:4;9997:39;;;10026:9;9997:39;;;;;;:::i;:::-;;;;;;;;9887:161;10074:27;10094:6;10074:9;:15;10084:4;10074:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10058:9;:15;10068:4;10058:15;;;;;;;;;;;;;;;:43;;;;10126:40;10144:21;10155:9;10144:6;:10;;:21;;;;:::i;:::-;10126:9;:13;10136:2;10126:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10112:9;:13;10122:2;10112:13;;;;;;;;;;;;;;;:54;;;;10197:2;10182:41;;10191:4;10182:41;;;10201:21;10212:9;10201:6;:10;;:21;;;;:::i;:::-;10182:41;;;;;;:::i;:::-;;;;;;;;7334:2897;7265:2966;;;:::o;1364:190::-;1450:7;1483:1;1478;:6;;1486:12;1470:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1510:9;1526:1;1522;:5;;;;:::i;:::-;1510:17;;1545:1;1538:8;;;1364:190;;;;;:::o;1562:246::-;1620:7;1649:1;1644;:6;1640:47;;1674:1;1667:8;;;;1640:47;1697:9;1713:1;1709;:5;;;;:::i;:::-;1697:17;;1742:1;1737;1733;:5;;;;:::i;:::-;:10;1725:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1799:1;1792:8;;;1562:246;;;;;:::o;1816:132::-;1874:7;1901:39;1905:1;1908;1901:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1894:46;;1816:132;;;;:::o;10347:195::-;10406:4;10423:12;10490:7;10478:20;10470:28;;10533:1;10526:4;:8;10519:15;;;10347:195;;;:::o;10241:98::-;10298:7;10325:1;10323;:3;10322:9;;10330:1;10322:9;;;10328:1;10322:9;10315:16;;10241:98;;;;:::o;10550:483::-;5198:4;5189:6;;:13;;;;;;;;;;;;;;;;;;10628:21:::1;10666:1;10652:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10628:40;;10697:4;10679;10684:1;10679:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10723:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10713:4;10718:1;10713:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10756:62;10773:4;10788:15;;;;;;;;;;;10806:11;10756:8;:62::i;:::-;10829:15;;;;;;;;;;;:66;;;10910:11;10936:1;10952:4;10979;10999:15;10829:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10617:416;5234:5:::0;5225:6;;:14;;;;;;;;;;;;;;;;;;10550:483;:::o;11881:92::-;11938:10;;;;;;;;;;;:19;;:27;11958:6;11938:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11881:92;:::o;1033:179::-;1091:7;1111:9;1127:1;1123;:5;;;;:::i;:::-;1111:17;;1152:1;1147;:6;;1139:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1203:1;1196:8;;;1033:179;;;;:::o;1220:136::-;1278:7;1305:43;1309:1;1312;1305:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1298:50;;1220:136;;;;:::o;1956:189::-;2042:7;2074:1;2070;:5;2077:12;2062:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2101:9;2117:1;2113;:5;;;;:::i;:::-;2101:17;;2136:1;2129:8;;;1956:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:911::-;4841:6;4849;4857;4865;4873;4922:3;4910:9;4901:7;4897:23;4893:33;4890:120;;;4929:79;;:::i;:::-;4890:120;5049:1;5074:53;5119:7;5110:6;5099:9;5095:22;5074:53;:::i;:::-;5064:63;;5020:117;5176:2;5202:53;5247:7;5238:6;5227:9;5223:22;5202:53;:::i;:::-;5192:63;;5147:118;5304:2;5330:53;5375:7;5366:6;5355:9;5351:22;5330:53;:::i;:::-;5320:63;;5275:118;5432:2;5458:53;5503:7;5494:6;5483:9;5479:22;5458:53;:::i;:::-;5448:63;;5403:118;5560:3;5587:53;5632:7;5623:6;5612:9;5608:22;5587:53;:::i;:::-;5577:63;;5531:119;4746:911;;;;;;;;:::o;5663:118::-;5750:24;5768:5;5750:24;:::i;:::-;5745:3;5738:37;5663:118;;:::o;5787:222::-;5880:4;5918:2;5907:9;5903:18;5895:26;;5931:71;5999:1;5988:9;5984:17;5975:6;5931:71;:::i;:::-;5787:222;;;;:::o;6015:329::-;6074:6;6123:2;6111:9;6102:7;6098:23;6094:32;6091:119;;;6129:79;;:::i;:::-;6091:119;6249:1;6274:53;6319:7;6310:6;6299:9;6295:22;6274:53;:::i;:::-;6264:63;;6220:117;6015:329;;;;:::o;6350:474::-;6418:6;6426;6475:2;6463:9;6454:7;6450:23;6446:32;6443:119;;;6481:79;;:::i;:::-;6443:119;6601:1;6626:53;6671:7;6662:6;6651:9;6647:22;6626:53;:::i;:::-;6616:63;;6572:117;6728:2;6754:53;6799:7;6790:6;6779:9;6775:22;6754:53;:::i;:::-;6744:63;;6699:118;6350:474;;;;;:::o;6830:182::-;6970:34;6966:1;6958:6;6954:14;6947:58;6830:182;:::o;7018:366::-;7160:3;7181:67;7245:2;7240:3;7181:67;:::i;:::-;7174:74;;7257:93;7346:3;7257:93;:::i;:::-;7375:2;7370:3;7366:12;7359:19;;7018:366;;;:::o;7390:419::-;7556:4;7594:2;7583:9;7579:18;7571:26;;7643:9;7637:4;7633:20;7629:1;7618:9;7614:17;7607:47;7671:131;7797:4;7671:131;:::i;:::-;7663:139;;7390:419;;;:::o;7815:180::-;7863:77;7860:1;7853:88;7960:4;7957:1;7950:15;7984:4;7981:1;7974:15;8001:102;8043:8;8090:5;8087:1;8083:13;8062:34;;8001:102;;;:::o;8109:848::-;8170:5;8177:4;8201:6;8192:15;;8225:5;8216:14;;8239:712;8260:1;8250:8;8247:15;8239:712;;;8355:4;8350:3;8346:14;8340:4;8337:24;8334:50;;;8364:18;;:::i;:::-;8334:50;8414:1;8404:8;8400:16;8397:451;;;8829:4;8822:5;8818:16;8809:25;;8397:451;8879:4;8873;8869:15;8861:23;;8909:32;8932:8;8909:32;:::i;:::-;8897:44;;8239:712;;;8109:848;;;;;;;:::o;8963:1073::-;9017:5;9208:8;9198:40;;9229:1;9220:10;;9231:5;;9198:40;9257:4;9247:36;;9274:1;9265:10;;9276:5;;9247:36;9343:4;9391:1;9386:27;;;;9427:1;9422:191;;;;9336:277;;9386:27;9404:1;9395:10;;9406:5;;;9422:191;9467:3;9457:8;9454:17;9451:43;;;9474:18;;:::i;:::-;9451:43;9523:8;9520:1;9516:16;9507:25;;9558:3;9551:5;9548:14;9545:40;;;9565:18;;:::i;:::-;9545:40;9598:5;;;9336:277;;9722:2;9712:8;9709:16;9703:3;9697:4;9694:13;9690:36;9672:2;9662:8;9659:16;9654:2;9648:4;9645:12;9641:35;9625:111;9622:246;;;9778:8;9772:4;9768:19;9759:28;;9813:3;9806:5;9803:14;9800:40;;;9820:18;;:::i;:::-;9800:40;9853:5;;9622:246;9893:42;9931:3;9921:8;9915:4;9912:1;9893:42;:::i;:::-;9878:57;;;;9967:4;9962:3;9958:14;9951:5;9948:25;9945:51;;;9976:18;;:::i;:::-;9945:51;10025:4;10018:5;10014:16;10005:25;;8963:1073;;;;;;:::o;10042:281::-;10100:5;10124:23;10142:4;10124:23;:::i;:::-;10116:31;;10168:25;10184:8;10168:25;:::i;:::-;10156:37;;10212:104;10249:66;10239:8;10233:4;10212:104;:::i;:::-;10203:113;;10042:281;;;;:::o;10329:410::-;10369:7;10392:20;10410:1;10392:20;:::i;:::-;10387:25;;10426:20;10444:1;10426:20;:::i;:::-;10421:25;;10481:1;10478;10474:9;10503:30;10521:11;10503:30;:::i;:::-;10492:41;;10682:1;10673:7;10669:15;10666:1;10663:22;10643:1;10636:9;10616:83;10593:139;;10712:18;;:::i;:::-;10593:139;10377:362;10329:410;;;;:::o;10745:60::-;10773:3;10794:5;10787:12;;10745:60;;;:::o;10811:142::-;10861:9;10894:53;10912:34;10921:24;10939:5;10921:24;:::i;:::-;10912:34;:::i;:::-;10894:53;:::i;:::-;10881:66;;10811:142;;;:::o;10959:126::-;11009:9;11042:37;11073:5;11042:37;:::i;:::-;11029:50;;10959:126;;;:::o;11091:134::-;11149:9;11182:37;11213:5;11182:37;:::i;:::-;11169:50;;11091:134;;;:::o;11231:147::-;11326:45;11365:5;11326:45;:::i;:::-;11321:3;11314:58;11231:147;;:::o;11384:348::-;11513:4;11551:2;11540:9;11536:18;11528:26;;11564:79;11640:1;11629:9;11625:17;11616:6;11564:79;:::i;:::-;11653:72;11721:2;11710:9;11706:18;11697:6;11653:72;:::i;:::-;11384:348;;;;;:::o;11738:116::-;11808:21;11823:5;11808:21;:::i;:::-;11801:5;11798:32;11788:60;;11844:1;11841;11834:12;11788:60;11738:116;:::o;11860:137::-;11914:5;11945:6;11939:13;11930:22;;11961:30;11985:5;11961:30;:::i;:::-;11860:137;;;;:::o;12003:345::-;12070:6;12119:2;12107:9;12098:7;12094:23;12090:32;12087:119;;;12125:79;;:::i;:::-;12087:119;12245:1;12270:61;12323:7;12314:6;12303:9;12299:22;12270:61;:::i;:::-;12260:71;;12216:125;12003:345;;;;:::o;12354:173::-;12494:25;12490:1;12482:6;12478:14;12471:49;12354:173;:::o;12533:366::-;12675:3;12696:67;12760:2;12755:3;12696:67;:::i;:::-;12689:74;;12772:93;12861:3;12772:93;:::i;:::-;12890:2;12885:3;12881:12;12874:19;;12533:366;;;:::o;12905:419::-;13071:4;13109:2;13098:9;13094:18;13086:26;;13158:9;13152:4;13148:20;13144:1;13133:9;13129:17;13122:47;13186:131;13312:4;13186:131;:::i;:::-;13178:139;;12905:419;;;:::o;13330:143::-;13387:5;13418:6;13412:13;13403:22;;13434:33;13461:5;13434:33;:::i;:::-;13330:143;;;;:::o;13479:351::-;13549:6;13598:2;13586:9;13577:7;13573:23;13569:32;13566:119;;;13604:79;;:::i;:::-;13566:119;13724:1;13749:64;13805:7;13796:6;13785:9;13781:22;13749:64;:::i;:::-;13739:74;;13695:128;13479:351;;;;:::o;13836:332::-;13957:4;13995:2;13984:9;13980:18;13972:26;;14008:71;14076:1;14065:9;14061:17;14052:6;14008:71;:::i;:::-;14089:72;14157:2;14146:9;14142:18;14133:6;14089:72;:::i;:::-;13836:332;;;;;:::o;14174:85::-;14219:7;14248:5;14237:16;;14174:85;;;:::o;14265:158::-;14323:9;14356:61;14374:42;14383:32;14409:5;14383:32;:::i;:::-;14374:42;:::i;:::-;14356:61;:::i;:::-;14343:74;;14265:158;;;:::o;14429:147::-;14524:45;14563:5;14524:45;:::i;:::-;14519:3;14512:58;14429:147;;:::o;14582:807::-;14831:4;14869:3;14858:9;14854:19;14846:27;;14883:71;14951:1;14940:9;14936:17;14927:6;14883:71;:::i;:::-;14964:72;15032:2;15021:9;15017:18;15008:6;14964:72;:::i;:::-;15046:80;15122:2;15111:9;15107:18;15098:6;15046:80;:::i;:::-;15136;15212:2;15201:9;15197:18;15188:6;15136:80;:::i;:::-;15226:73;15294:3;15283:9;15279:19;15270:6;15226:73;:::i;:::-;15309;15377:3;15366:9;15362:19;15353:6;15309:73;:::i;:::-;14582:807;;;;;;;;;:::o;15395:143::-;15452:5;15483:6;15477:13;15468:22;;15499:33;15526:5;15499:33;:::i;:::-;15395:143;;;;:::o;15544:663::-;15632:6;15640;15648;15697:2;15685:9;15676:7;15672:23;15668:32;15665:119;;;15703:79;;:::i;:::-;15665:119;15823:1;15848:64;15904:7;15895:6;15884:9;15880:22;15848:64;:::i;:::-;15838:74;;15794:128;15961:2;15987:64;16043:7;16034:6;16023:9;16019:22;15987:64;:::i;:::-;15977:74;;15932:129;16100:2;16126:64;16182:7;16173:6;16162:9;16158:22;16126:64;:::i;:::-;16116:74;;16071:129;15544:663;;;;;:::o;16213:332::-;16334:4;16372:2;16361:9;16357:18;16349:26;;16385:71;16453:1;16442:9;16438:17;16429:6;16385:71;:::i;:::-;16466:72;16534:2;16523:9;16519:18;16510:6;16466:72;:::i;:::-;16213:332;;;;;:::o;16551:223::-;16691:34;16687:1;16679:6;16675:14;16668:58;16760:6;16755:2;16747:6;16743:15;16736:31;16551:223;:::o;16780:366::-;16922:3;16943:67;17007:2;17002:3;16943:67;:::i;:::-;16936:74;;17019:93;17108:3;17019:93;:::i;:::-;17137:2;17132:3;17128:12;17121:19;;16780:366;;;:::o;17152:419::-;17318:4;17356:2;17345:9;17341:18;17333:26;;17405:9;17399:4;17395:20;17391:1;17380:9;17376:17;17369:47;17433:131;17559:4;17433:131;:::i;:::-;17425:139;;17152:419;;;:::o;17577:221::-;17717:34;17713:1;17705:6;17701:14;17694:58;17786:4;17781:2;17773:6;17769:15;17762:29;17577:221;:::o;17804:366::-;17946:3;17967:67;18031:2;18026:3;17967:67;:::i;:::-;17960:74;;18043:93;18132:3;18043:93;:::i;:::-;18161:2;18156:3;18152:12;18145:19;;17804:366;;;:::o;18176:419::-;18342:4;18380:2;18369:9;18365:18;18357:26;;18429:9;18423:4;18419:20;18415:1;18404:9;18400:17;18393:47;18457:131;18583:4;18457:131;:::i;:::-;18449:139;;18176:419;;;:::o;18601:224::-;18741:34;18737:1;18729:6;18725:14;18718:58;18810:7;18805:2;18797:6;18793:15;18786:32;18601:224;:::o;18831:366::-;18973:3;18994:67;19058:2;19053:3;18994:67;:::i;:::-;18987:74;;19070:93;19159:3;19070:93;:::i;:::-;19188:2;19183:3;19179:12;19172:19;;18831:366;;;:::o;19203:419::-;19369:4;19407:2;19396:9;19392:18;19384:26;;19456:9;19450:4;19446:20;19442:1;19431:9;19427:17;19420:47;19484:131;19610:4;19484:131;:::i;:::-;19476:139;;19203:419;;;:::o;19628:222::-;19768:34;19764:1;19756:6;19752:14;19745:58;19837:5;19832:2;19824:6;19820:15;19813:30;19628:222;:::o;19856:366::-;19998:3;20019:67;20083:2;20078:3;20019:67;:::i;:::-;20012:74;;20095:93;20184:3;20095:93;:::i;:::-;20213:2;20208:3;20204:12;20197:19;;19856:366;;;:::o;20228:419::-;20394:4;20432:2;20421:9;20417:18;20409:26;;20481:9;20475:4;20471:20;20467:1;20456:9;20452:17;20445:47;20509:131;20635:4;20509:131;:::i;:::-;20501:139;;20228:419;;;:::o;20653:228::-;20793:34;20789:1;20781:6;20777:14;20770:58;20862:11;20857:2;20849:6;20845:15;20838:36;20653:228;:::o;20887:366::-;21029:3;21050:67;21114:2;21109:3;21050:67;:::i;:::-;21043:74;;21126:93;21215:3;21126:93;:::i;:::-;21244:2;21239:3;21235:12;21228:19;;20887:366;;;:::o;21259:419::-;21425:4;21463:2;21452:9;21448:18;21440:26;;21512:9;21506:4;21502:20;21498:1;21487:9;21483:17;21476:47;21540:131;21666:4;21540:131;:::i;:::-;21532:139;;21259:419;;;:::o;21684:175::-;21824:27;21820:1;21812:6;21808:14;21801:51;21684:175;:::o;21865:366::-;22007:3;22028:67;22092:2;22087:3;22028:67;:::i;:::-;22021:74;;22104:93;22193:3;22104:93;:::i;:::-;22222:2;22217:3;22213:12;22206:19;;21865:366;;;:::o;22237:419::-;22403:4;22441:2;22430:9;22426:18;22418:26;;22490:9;22484:4;22480:20;22476:1;22465:9;22461:17;22454:47;22518:131;22644:4;22518:131;:::i;:::-;22510:139;;22237:419;;;:::o;22662:191::-;22702:3;22721:20;22739:1;22721:20;:::i;:::-;22716:25;;22755:20;22773:1;22755:20;:::i;:::-;22750:25;;22798:1;22795;22791:9;22784:16;;22819:3;22816:1;22813:10;22810:36;;;22826:18;;:::i;:::-;22810:36;22662:191;;;;:::o;22859:176::-;22999:28;22995:1;22987:6;22983:14;22976:52;22859:176;:::o;23041:366::-;23183:3;23204:67;23268:2;23263:3;23204:67;:::i;:::-;23197:74;;23280:93;23369:3;23280:93;:::i;:::-;23398:2;23393:3;23389:12;23382:19;;23041:366;;;:::o;23413:419::-;23579:4;23617:2;23606:9;23602:18;23594:26;;23666:9;23660:4;23656:20;23652:1;23641:9;23637:17;23630:47;23694:131;23820:4;23694:131;:::i;:::-;23686:139;;23413:419;;;:::o;23838:233::-;23877:3;23900:24;23918:5;23900:24;:::i;:::-;23891:33;;23946:66;23939:5;23936:77;23933:103;;24016:18;;:::i;:::-;23933:103;24063:1;24056:5;24052:13;24045:20;;23838:233;;;:::o;24077:165::-;24217:17;24213:1;24205:6;24201:14;24194:41;24077:165;:::o;24248:366::-;24390:3;24411:67;24475:2;24470:3;24411:67;:::i;:::-;24404:74;;24487:93;24576:3;24487:93;:::i;:::-;24605:2;24600:3;24596:12;24589:19;;24248:366;;;:::o;24620:419::-;24786:4;24824:2;24813:9;24809:18;24801:26;;24873:9;24867:4;24863:20;24859:1;24848:9;24844:17;24837:47;24901:131;25027:4;24901:131;:::i;:::-;24893:139;;24620:419;;;:::o;25045:194::-;25085:4;25105:20;25123:1;25105:20;:::i;:::-;25100:25;;25139:20;25157:1;25139:20;:::i;:::-;25134:25;;25183:1;25180;25176:9;25168:17;;25207:1;25201:4;25198:11;25195:37;;;25212:18;;:::i;:::-;25195:37;25045:194;;;;:::o;25245:180::-;25293:77;25290:1;25283:88;25390:4;25387:1;25380:15;25414:4;25411:1;25404:15;25431:185;25471:1;25488:20;25506:1;25488:20;:::i;:::-;25483:25;;25522:20;25540:1;25522:20;:::i;:::-;25517:25;;25561:1;25551:35;;25566:18;;:::i;:::-;25551:35;25608:1;25605;25601:9;25596:14;;25431:185;;;;:::o;25622:220::-;25762:34;25758:1;25750:6;25746:14;25739:58;25831:3;25826:2;25818:6;25814:15;25807:28;25622:220;:::o;25848:366::-;25990:3;26011:67;26075:2;26070:3;26011:67;:::i;:::-;26004:74;;26087:93;26176:3;26087:93;:::i;:::-;26205:2;26200:3;26196:12;26189:19;;25848:366;;;:::o;26220:419::-;26386:4;26424:2;26413:9;26409:18;26401:26;;26473:9;26467:4;26463:20;26459:1;26448:9;26444:17;26437:47;26501:131;26627:4;26501:131;:::i;:::-;26493:139;;26220:419;;;:::o;26645:180::-;26693:77;26690:1;26683:88;26790:4;26787:1;26780:15;26814:4;26811:1;26804:15;26831:180;26879:77;26876:1;26869:88;26976:4;26973:1;26966:15;27000:4;26997:1;26990:15;27017:114;27084:6;27118:5;27112:12;27102:22;;27017:114;;;:::o;27137:184::-;27236:11;27270:6;27265:3;27258:19;27310:4;27305:3;27301:14;27286:29;;27137:184;;;;:::o;27327:132::-;27394:4;27417:3;27409:11;;27447:4;27442:3;27438:14;27430:22;;27327:132;;;:::o;27465:108::-;27542:24;27560:5;27542:24;:::i;:::-;27537:3;27530:37;27465:108;;:::o;27579:179::-;27648:10;27669:46;27711:3;27703:6;27669:46;:::i;:::-;27747:4;27742:3;27738:14;27724:28;;27579:179;;;;:::o;27764:113::-;27834:4;27866;27861:3;27857:14;27849:22;;27764:113;;;:::o;27913:732::-;28032:3;28061:54;28109:5;28061:54;:::i;:::-;28131:86;28210:6;28205:3;28131:86;:::i;:::-;28124:93;;28241:56;28291:5;28241:56;:::i;:::-;28320:7;28351:1;28336:284;28361:6;28358:1;28355:13;28336:284;;;28437:6;28431:13;28464:63;28523:3;28508:13;28464:63;:::i;:::-;28457:70;;28550:60;28603:6;28550:60;:::i;:::-;28540:70;;28396:224;28383:1;28380;28376:9;28371:14;;28336:284;;;28340:14;28636:3;28629:10;;28037:608;;;27913:732;;;;:::o;28651:831::-;28914:4;28952:3;28941:9;28937:19;28929:27;;28966:71;29034:1;29023:9;29019:17;29010:6;28966:71;:::i;:::-;29047:80;29123:2;29112:9;29108:18;29099:6;29047:80;:::i;:::-;29174:9;29168:4;29164:20;29159:2;29148:9;29144:18;29137:48;29202:108;29305:4;29296:6;29202:108;:::i;:::-;29194:116;;29320:72;29388:2;29377:9;29373:18;29364:6;29320:72;:::i;:::-;29402:73;29470:3;29459:9;29455:19;29446:6;29402:73;:::i;:::-;28651:831;;;;;;;;:::o;29488:177::-;29628:29;29624:1;29616:6;29612:14;29605:53;29488:177;:::o;29671:366::-;29813:3;29834:67;29898:2;29893:3;29834:67;:::i;:::-;29827:74;;29910:93;29999:3;29910:93;:::i;:::-;30028:2;30023:3;30019:12;30012:19;;29671:366;;;:::o;30043:419::-;30209:4;30247:2;30236:9;30232:18;30224:26;;30296:9;30290:4;30286:20;30282:1;30271:9;30267:17;30260:47;30324:131;30450:4;30324:131;:::i;:::-;30316:139;;30043:419;;;:::o
Swarm Source
ipfs://ecadba2d5789bc2205eea273ad147eaea044ae63cbd46c9531fa7fe60091359e
Loading...
Loading
Loading...
Loading
OVERVIEW
Quantum Agent emerges as a groundbreaking Telegram bot that harnesses the power of artificial intelligence to transform how creators and brands establish their digital presence. Quantum Agent stands at the forefront of this transform.Multichain Portfolio | 34 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.