ERC-20
Source Code
Overview
Max Total Supply
10,000,000,000 NIKI
Holders
100
Transfers
-
0
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
NIKICompany
Compiler Version
v0.8.23+commit.f704f362
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2024-10-18
*/
/**
// SPDX-License-Identifier: MIT
/**
//Website - https://nikicompany.com/
//Telegram - https://t.me/nikicompany
//X - https://x.com/Nikicompany
//Play, Earn, Feed Pets
**/
pragma solidity ^0.8.23;
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
);
}
contract Ownable is Context {
address private _owner;
address private _previousOwner;
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);
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
library SafeMath {
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;
}
}
interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB)
external
returns (address pair);
}
interface IUniswapV2Router02 {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidityETH(
address token,
uint256 amountTokenDesired,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
)
external
payable
returns (
uint256 amountToken,
uint256 amountETH,
uint256 liquidity
);
}
contract NIKICompany is Context, IERC20, Ownable {
using SafeMath for uint256;
string private constant _name = "Nikicoin";
string private constant _symbol = "NIKI";
uint8 private constant _decimals = 9;
mapping(address => uint256) private _tOwned;
mapping(address => mapping(address => uint256)) private _allowances;
mapping(address => bool) private _isExcludedFromFee;
uint256 private constant MAX = ~uint256(0);
uint256 private constant _tTotal = 10_000_000_000 * 10 ** _decimals;
uint256 private _rTotal = (MAX - (MAX % _tTotal));
uint256 private _tFeeTotal;
uint256 private _taxFeeOnBuy = 95;
uint256 private _taxFeeOnSell = 95;
uint256 private _taxFee = _taxFeeOnSell;
uint256 private _previoustaxFee = _taxFee;
address payable private _devAddress;
IUniswapV2Router02 public uniswapV2Router;
address public uniswapV2Pair;
bool private tradingOpen;
bool private inSwap = false;
bool private swapEnabled = true;
uint256 public _maxTxAmount = _tTotal.div(100);
uint256 public _maxWalletSize = _tTotal.div(100);
uint256 public _swapTokensAtAmount = 1000 * 10**_decimals;
modifier lockTheSwap {
inSwap = true;
_;
inSwap = false;
}
constructor(address routerAddress, address devAddress) {
_tOwned[_msgSender()] = _rTotal;
_devAddress = payable(devAddress);
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(routerAddress);
uniswapV2Router = _uniswapV2Router;
uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
.createPair(address(this), _uniswapV2Router.WETH());
_isExcludedFromFee[owner()] = true;
_isExcludedFromFee[address(this)] = true;
_isExcludedFromFee[_devAddress] = 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 tokenFromRef(_tOwned[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,
"the transfer amount exceeds allowance"
)
);
return true;
}
function tokenFromRef(uint256 rAmount)
private
view
returns (uint256)
{
require(
rAmount <= _rTotal,
"Amount has to be less than total reflections"
);
uint256 currentRate = _getRate();
return rAmount.div(currentRate);
}
function remAllFee() private {
if (_taxFee == 0) return;
_previoustaxFee = _taxFee;
_taxFee = 0;
}
function resAllFee() private {
_taxFee = _previoustaxFee;
}
function _approve(
address owner,
address spender,
uint256 amount
) private {
require(owner != address(0), "Can't approve from zero address");
require(spender != address(0), "Can't approve to zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function _transfer(
address from,
address to,
uint256 amount
) private {
require(to != address(0), "Cant transfer to address zero");
require(amount > 0, "Amount should be above zero");
if (from != owner() && to != owner()) {
if (!tradingOpen) {
require(from == owner(), "Only owner can trade before trading activation");
}
require(amount <= _maxTxAmount, "Exceeded max transaction limit");
if(to != uniswapV2Pair) {
require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds max wallet balance");
}
uint256 contractTokenBalance = balanceOf(address(this));
bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
if(contractTokenBalance >= _maxTxAmount)
{
contractTokenBalance = _maxTxAmount;
}
if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
swapTokensForEth(contractTokenBalance);
uint256 contractETHBalance = address(this).balance;
if (contractETHBalance > 0) {
sendETHToFee(address(this).balance);
}
}
}
bool takeFee = true;
if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
takeFee = false;
} else {
if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
_taxFee = _taxFeeOnBuy;
}
if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
_taxFee = _taxFeeOnSell;
}
}
_tokenTransfer(from, to, amount, takeFee);
}
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 sendETHToFee(uint256 amount) private {
_devAddress.transfer(amount);
}
function setTrading(bool _tradingOpen) public onlyOwner {
tradingOpen = _tradingOpen;
}
function manualSwap() external {
require(_msgSender() == _devAddress);
uint256 contractBalance = balanceOf(address(this));
swapTokensForEth(contractBalance);
}
function manualSend() external {
require(_msgSender() == _devAddress);
uint256 contractETHBalance = address(this).balance;
sendETHToFee(contractETHBalance);
}
function _tokenTransfer(
address sender,
address recipient,
uint256 amount,
bool takeFee
) private {
if (!takeFee) remAllFee();
_transferStandard(sender, recipient, amount);
if (!takeFee) resAllFee();
}
function _transferStandard(
address sender,
address recipient,
uint256 tAmount
) private {
(
uint256 rAmount,
uint256 rTransferAmount,
uint256 tTransferAmount,
uint256 tCom
) = _getValues(tAmount);
_tOwned[sender] = _tOwned[sender].sub(rAmount);
_tOwned[recipient] = _tOwned[recipient].add(rTransferAmount);
_takeCom(tCom);
emit Transfer(sender, recipient, tTransferAmount);
}
function _takeCom(uint256 tCom) private {
uint256 currentRate = _getRate();
uint256 rCom = tCom.mul(currentRate);
_tOwned[address(this)] = _tOwned[address(this)].add(rCom);
}
receive() external payable {}
function _getValues(uint256 tAmount)
private
view
returns (
uint256,
uint256,
uint256,
uint256
)
{
(uint256 tTransferAmount, uint256 tTeam) =
_getTValues(tAmount, _taxFee);
uint256 currentRate = _getRate();
(uint256 rAmount, uint256 rTransferAmount) =
_getRValues(tAmount, tTeam, currentRate);
return (rAmount, rTransferAmount, tTransferAmount, tTeam);
}
function _getTValues(
uint256 tAmount,
uint256 taxFee
)
private
pure
returns (
uint256,
uint256
)
{
uint256 tTeam = tAmount.mul(taxFee).div(100);
uint256 tTransferAmount = tAmount.sub(tTeam);
return (tTransferAmount, tTeam);
}
function _getRValues(
uint256 tAmount,
uint256 tTeam,
uint256 currentRate
)
private
pure
returns (
uint256,
uint256
)
{
uint256 rAmount = tAmount.mul(currentRate);
uint256 rTeam = tTeam.mul(currentRate);
uint256 rTransferAmount = rAmount.sub(rTeam);
return (rAmount, rTransferAmount);
}
function _getRate() private view returns (uint256) {
(uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
return rSupply.div(tSupply);
}
function _getCurrentSupply() private view returns (uint256, uint256) {
uint256 rSupply = _rTotal;
uint256 tSupply = _tTotal;
if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
return (rSupply, tSupply);
}
function setFee(uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
require(taxFeeOnBuy >= 0 && taxFeeOnBuy <= 95, "Buy tax must be between 0% and 95%");
require(taxFeeOnSell >= 0 && taxFeeOnSell <= 95, "Sell tax must be between 0% and 95%");
_taxFeeOnBuy = taxFeeOnBuy;
_taxFeeOnSell = taxFeeOnSell;
}
function setMinSwapTokens(uint256 swapTokensAtAmount) public onlyOwner {
_swapTokensAtAmount = swapTokensAtAmount;
}
function enabledSwap(bool _swapEnabled) public onlyOwner {
swapEnabled = _swapEnabled;
}
function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
_maxTxAmount = maxTxAmount;
}
function setMaxWalletAmount(uint256 maxWalletSize) public onlyOwner {
_maxWalletSize = maxWalletSize;
}
function excludeAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
for(uint256 i = 0; i < accounts.length; i++) {
_isExcludedFromFee[accounts[i]] = excluded;
}
}
function changeDevelopmentAddress(address newDevAddress) public onlyOwner {
require(newDevAddress != address(0), "New development address cannot be zero address");
_isExcludedFromFee[_devAddress] = false;
_devAddress = payable(newDevAddress);
_isExcludedFromFee[_devAddress] = true;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"routerAddress","type":"address"},{"internalType":"address","name":"devAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"_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":"_swapTokensAtAmount","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":[{"internalType":"address","name":"newDevAddress","type":"address"}],"name":"changeDevelopmentAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"enabledSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60806040526009600a620000149190620008bf565b6402540be4006200002691906200090f565b5f1962000034919062000986565b5f19620000429190620009bd565b600555605f600755605f600855600854600955600954600a555f600d60156101000a81548160ff0219169083151502179055506001600d60166101000a81548160ff021916908315150217905550620000c760646009600a620000a69190620008bf565b6402540be400620000b891906200090f565b6200064860201b90919060201c565b600e556200010160646009600a620000e09190620008bf565b6402540be400620000f291906200090f565b6200064860201b90919060201c565b600f556009600a620001149190620008bf565b6103e86200012391906200090f565b60105534801562000132575f80fd5b50604051620044bb380380620044bb833981810160405281019062000158919062000a5c565b5f620001696200069960201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060055460025f6200021b6200069960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f82905080600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000326573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200034c919062000aa1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003b2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003d8919062000aa1565b6040518363ffffffff1660e01b8152600401620003f792919062000ae2565b6020604051808303815f875af115801562000414573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200043a919062000aa1565b600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f6200048e620006a060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620005b86200069960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620006169190620008bf565b6402540be4006200062891906200090f565b60405162000637919062000b1e565b60405180910390a350505062000c26565b5f6200069183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620006c760201b60201c565b905092915050565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f808311829062000710576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000707919062000bcd565b60405180910390fd5b505f838562000720919062000bef565b9050809150509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620007b7578086048111156200078f576200078e6200072d565b5b60018516156200079f5780820291505b8081029050620007af856200075a565b94506200076f565b94509492505050565b5f82620007d15760019050620008a3565b81620007e0575f9050620008a3565b8160018114620007f9576002811462000804576200083a565b6001915050620008a3565b60ff8411156200081957620008186200072d565b5b8360020a9150848211156200083357620008326200072d565b5b50620008a3565b5060208310610133831016604e8410600b8410161715620008745782820a9050838111156200086e576200086d6200072d565b5b620008a3565b62000883848484600162000766565b925090508184048111156200089d576200089c6200072d565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620008cb82620008aa565b9150620008d883620008b3565b9250620009077fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620007c0565b905092915050565b5f6200091b82620008aa565b91506200092883620008aa565b92508282026200093881620008aa565b915082820484148315176200095257620009516200072d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200099282620008aa565b91506200099f83620008aa565b925082620009b257620009b162000959565b5b828206905092915050565b5f620009c982620008aa565b9150620009d683620008aa565b9250828203905081811115620009f157620009f06200072d565b5b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000a2682620009fb565b9050919050565b62000a388162000a1a565b811462000a43575f80fd5b50565b5f8151905062000a568162000a2d565b92915050565b5f806040838503121562000a755762000a74620009f7565b5b5f62000a848582860162000a46565b925050602062000a978582860162000a46565b9150509250929050565b5f6020828403121562000ab95762000ab8620009f7565b5b5f62000ac88482850162000a46565b91505092915050565b62000adc8162000a1a565b82525050565b5f60408201905062000af75f83018562000ad1565b62000b06602083018462000ad1565b9392505050565b62000b1881620008aa565b82525050565b5f60208201905062000b335f83018462000b0d565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101562000b7257808201518184015260208101905062000b55565b5f8484015250505050565b5f601f19601f8301169050919050565b5f62000b998262000b39565b62000ba5818562000b43565b935062000bb781856020860162000b53565b62000bc28162000b7d565b840191505092915050565b5f6020820190508181035f83015262000be7818462000b8d565b905092915050565b5f62000bfb82620008aa565b915062000c0883620008aa565b92508262000c1b5762000c1a62000959565b5b828204905092915050565b6138878062000c345f395ff3fe60806040526004361061019f575f3560e01c8063715018a6116100eb57806395d89b4111610089578063dd88800511610063578063dd88800514610596578063f2fde38b146105be578063f4293890146105e6578063fb0c2643146105fc576101a6565b806395d89b41146104f4578063a9059cbb1461051e578063dd62ed3e1461055a576101a6565b80638da5cb5b116100c55780638da5cb5b146104505780638f70ccf71461047a5780638f9a55c0146104a257806390d2c93a146104cc576101a6565b8063715018a6146103e857806374010ece146103fe5780637d1db4a514610426576101a6565b80632fd689e31161015857806351bc3c851161013257806351bc3c851461034657806352f7c9881461035c57806365db9cbb1461038457806370a08231146103ac576101a6565b80632fd689e3146102c8578063313ce567146102f257806349bd5a5e1461031c576101a6565b806306fdde03146101aa578063095ea7b3146101d45780631694505e1461021057806318160ddd1461023a57806323b872dd1461026457806327a14fc2146102a0576101a6565b366101a657005b5f80fd5b3480156101b5575f80fd5b506101be610624565b6040516101cb919061282c565b60405180910390f35b3480156101df575f80fd5b506101fa60048036038101906101f591906128e1565b610661565b6040516102079190612939565b60405180910390f35b34801561021b575f80fd5b5061022461067e565b60405161023191906129ad565b60405180910390f35b348015610245575f80fd5b5061024e6106a3565b60405161025b91906129d5565b60405180910390f35b34801561026f575f80fd5b5061028a600480360381019061028591906129ee565b6106c7565b6040516102979190612939565b60405180910390f35b3480156102ab575f80fd5b506102c660048036038101906102c19190612a3e565b61079b565b005b3480156102d3575f80fd5b506102dc610839565b6040516102e991906129d5565b60405180910390f35b3480156102fd575f80fd5b5061030661083f565b6040516103139190612a84565b60405180910390f35b348015610327575f80fd5b50610330610847565b60405161033d9190612aac565b60405180910390f35b348015610351575f80fd5b5061035a61086c565b005b348015610367575f80fd5b50610382600480360381019061037d9190612ac5565b6108e3565b005b34801561038f575f80fd5b506103aa60048036038101906103a59190612b2d565b610a29565b005b3480156103b7575f80fd5b506103d260048036038101906103cd9190612b58565b610ada565b6040516103df91906129d5565b60405180910390f35b3480156103f3575f80fd5b506103fc610b28565b005b348015610409575f80fd5b50610424600480360381019061041f9190612a3e565b610c76565b005b348015610431575f80fd5b5061043a610d14565b60405161044791906129d5565b60405180910390f35b34801561045b575f80fd5b50610464610d1a565b6040516104719190612aac565b60405180910390f35b348015610485575f80fd5b506104a0600480360381019061049b9190612b2d565b610d41565b005b3480156104ad575f80fd5b506104b6610df2565b6040516104c391906129d5565b60405180910390f35b3480156104d7575f80fd5b506104f260048036038101906104ed9190612be4565b610df8565b005b3480156104ff575f80fd5b50610508610f27565b604051610515919061282c565b60405180910390f35b348015610529575f80fd5b50610544600480360381019061053f91906128e1565b610f64565b6040516105519190612939565b60405180910390f35b348015610565575f80fd5b50610580600480360381019061057b9190612c41565b610f81565b60405161058d91906129d5565b60405180910390f35b3480156105a1575f80fd5b506105bc60048036038101906105b79190612a3e565b611003565b005b3480156105c9575f80fd5b506105e460048036038101906105df9190612b58565b6110a1565b005b3480156105f1575f80fd5b506105fa61125e565b005b348015610607575f80fd5b50610622600480360381019061061d9190612b58565b6112cd565b005b60606040518060400160405280600881526020017f4e696b69636f696e000000000000000000000000000000000000000000000000815250905090565b5f61067461066d6114fd565b8484611504565b6001905092915050565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6009600a6106b29190612ddb565b6402540be4006106c29190612e25565b905090565b5f6106d38484846116c7565b610790846106df6114fd565b61078b8560405180606001604052806025815260200161382d6025913960035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107426114fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611dcd9092919063ffffffff16565b611504565b600190509392505050565b6107a36114fd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461082f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082690612eb0565b60405180910390fd5b80600f8190555050565b60105481565b5f6009905090565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108ac6114fd565b73ffffffffffffffffffffffffffffffffffffffff16146108cb575f80fd5b5f6108d530610ada565b90506108e081611e2f565b50565b6108eb6114fd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610977576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096e90612eb0565b60405180910390fd5b5f82101580156109885750605f8211155b6109c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109be90612f3e565b60405180910390fd5b5f81101580156109d85750605f8111155b610a17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0e90612fcc565b60405180910390fd5b81600781905550806008819055505050565b610a316114fd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610abd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab490612eb0565b60405180910390fd5b80600d60166101000a81548160ff02191690831515021790555050565b5f610b2160025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461209a565b9050919050565b610b306114fd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb390612eb0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610c7e6114fd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0190612eb0565b60405180910390fd5b80600e8190555050565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610d496114fd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcc90612eb0565b60405180910390fd5b80600d60146101000a81548160ff02191690831515021790555050565b600f5481565b610e006114fd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8390612eb0565b60405180910390fd5b5f5b83839050811015610f21578160045f868685818110610eb057610eaf612fea565b5b9050602002016020810190610ec59190612b58565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610e8e565b50505050565b60606040518060400160405280600481526020017f4e494b4900000000000000000000000000000000000000000000000000000000815250905090565b5f610f77610f706114fd565b84846116c7565b6001905092915050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61100b6114fd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108e90612eb0565b60405180910390fd5b8060108190555050565b6110a96114fd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611135576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112c90612eb0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036111a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119a90613087565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661129e6114fd565b73ffffffffffffffffffffffffffffffffffffffff16146112bd575f80fd5b5f4790506112ca81612106565b50565b6112d56114fd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611361576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135890612eb0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036113cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c690613115565b60405180910390fd5b5f60045f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611572576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115699061317d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d7906131e5565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116ba91906129d5565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172c9061324d565b60405180910390fd5b5f8111611777576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176e906132b5565b60405180910390fd5b61177f610d1a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117ed57506117bd610d1a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611aec57600d60149054906101000a900460ff1661187c5761180e610d1a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461187b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187290613343565b60405180910390fd5b5b600e548111156118c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b8906133ab565b60405180910390fd5b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461196e57600f548161192284610ada565b61192c91906133c9565b111561196d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196490613446565b60405180910390fd5b5b5f61197830610ada565b90505f6010548210159050600e54821061199257600e5491505b8080156119ac5750600d60159054906101000a900460ff16155b8015611a055750600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611a1d5750600d60169054906101000a900460ff165b8015611a70575060045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611ac3575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611ae957611ad182611e2f565b5f4790505f811115611ae757611ae647612106565b5b505b50505b5f6001905060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611b8c575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611c3d5750600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611c3c5750600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611c4a575f9050611dbb565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611cf35750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d02576007546009819055505b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611dab5750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611dba576008546009819055505b5b611dc78484848461216e565b50505050565b5f838311158290611e14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0b919061282c565b60405180910390fd5b505f8385611e229190613464565b9050809150509392505050565b6001600d60156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611e6657611e65613497565b5b604051908082528060200260200182016040528015611e945781602001602082028036833780820191505090505b50905030815f81518110611eab57611eaa612fea565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f4f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f7391906134d8565b81600181518110611f8757611f86612fea565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611fed30600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611504565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161204f9594939291906135f3565b5f604051808303815f87803b158015612066575f80fd5b505af1158015612078573d5f803e3d5ffd5b50505050505f600d60156101000a81548160ff02191690831515021790555050565b5f6005548211156120e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d7906136bb565b60405180910390fd5b5f6120e961219b565b90506120fe81846121c490919063ffffffff16565b915050919050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561216a573d5f803e3d5ffd5b5050565b8061217c5761217b61220d565b5b61218784848461222a565b80612195576121946123d8565b5b50505050565b5f805f6121a66123e3565b915091506121bd81836121c490919063ffffffff16565b9250505090565b5f61220583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061247e565b905092915050565b5f600954031561222857600954600a819055505f6009819055505b565b5f805f80612237856124df565b935093509350935061228f8460025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461252990919063ffffffff16565b60025f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506123208360025f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461257290919063ffffffff16565b60025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061236a816125cf565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123c791906129d5565b60405180910390a350505050505050565b600a54600981905550565b5f805f60055490505f6009600a6123fa9190612ddb565b6402540be40061240a9190612e25565b905061243e6009600a61241d9190612ddb565b6402540be40061242d9190612e25565b6005546121c490919063ffffffff16565b821015612471576005546009600a6124569190612ddb565b6402540be4006124669190612e25565b93509350505061247a565b81819350935050505b9091565b5f80831182906124c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124bb919061282c565b60405180910390fd5b505f83856124d29190613706565b9050809150509392505050565b5f805f805f806124f187600954612686565b915091505f6124fe61219b565b90505f8061250d8a85856126d6565b9150915081818686985098509850985050505050509193509193565b5f61256a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611dcd565b905092915050565b5f80828461258091906133c9565b9050838110156125c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125bc90613780565b60405180910390fd5b8091505092915050565b5f6125d861219b565b90505f6125ee828461272b90919063ffffffff16565b90506126408160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461257290919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b5f805f6126af60646126a1868861272b90919063ffffffff16565b6121c490919063ffffffff16565b90505f6126c5828761252990919063ffffffff16565b905080829350935050509250929050565b5f805f6126ec848761272b90919063ffffffff16565b90505f612702858761272b90919063ffffffff16565b90505f612718828461252990919063ffffffff16565b9050828194509450505050935093915050565b5f80830361273b575f905061279c565b5f82846127489190612e25565b90508284826127579190613706565b14612797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278e9061380e565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156127d95780820151818401526020810190506127be565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6127fe826127a2565b61280881856127ac565b93506128188185602086016127bc565b612821816127e4565b840191505092915050565b5f6020820190508181035f83015261284481846127f4565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61287d82612854565b9050919050565b61288d81612873565b8114612897575f80fd5b50565b5f813590506128a881612884565b92915050565b5f819050919050565b6128c0816128ae565b81146128ca575f80fd5b50565b5f813590506128db816128b7565b92915050565b5f80604083850312156128f7576128f661284c565b5b5f6129048582860161289a565b9250506020612915858286016128cd565b9150509250929050565b5f8115159050919050565b6129338161291f565b82525050565b5f60208201905061294c5f83018461292a565b92915050565b5f819050919050565b5f61297561297061296b84612854565b612952565b612854565b9050919050565b5f6129868261295b565b9050919050565b5f6129978261297c565b9050919050565b6129a78161298d565b82525050565b5f6020820190506129c05f83018461299e565b92915050565b6129cf816128ae565b82525050565b5f6020820190506129e85f8301846129c6565b92915050565b5f805f60608486031215612a0557612a0461284c565b5b5f612a128682870161289a565b9350506020612a238682870161289a565b9250506040612a34868287016128cd565b9150509250925092565b5f60208284031215612a5357612a5261284c565b5b5f612a60848285016128cd565b91505092915050565b5f60ff82169050919050565b612a7e81612a69565b82525050565b5f602082019050612a975f830184612a75565b92915050565b612aa681612873565b82525050565b5f602082019050612abf5f830184612a9d565b92915050565b5f8060408385031215612adb57612ada61284c565b5b5f612ae8858286016128cd565b9250506020612af9858286016128cd565b9150509250929050565b612b0c8161291f565b8114612b16575f80fd5b50565b5f81359050612b2781612b03565b92915050565b5f60208284031215612b4257612b4161284c565b5b5f612b4f84828501612b19565b91505092915050565b5f60208284031215612b6d57612b6c61284c565b5b5f612b7a8482850161289a565b91505092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112612ba457612ba3612b83565b5b8235905067ffffffffffffffff811115612bc157612bc0612b87565b5b602083019150836020820283011115612bdd57612bdc612b8b565b5b9250929050565b5f805f60408486031215612bfb57612bfa61284c565b5b5f84013567ffffffffffffffff811115612c1857612c17612850565b5b612c2486828701612b8f565b93509350506020612c3786828701612b19565b9150509250925092565b5f8060408385031215612c5757612c5661284c565b5b5f612c648582860161289a565b9250506020612c758582860161289a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612d0157808604811115612cdd57612cdc612c7f565b5b6001851615612cec5780820291505b8081029050612cfa85612cac565b9450612cc1565b94509492505050565b5f82612d195760019050612dd4565b81612d26575f9050612dd4565b8160018114612d3c5760028114612d4657612d75565b6001915050612dd4565b60ff841115612d5857612d57612c7f565b5b8360020a915084821115612d6f57612d6e612c7f565b5b50612dd4565b5060208310610133831016604e8410600b8410161715612daa5782820a905083811115612da557612da4612c7f565b5b612dd4565b612db78484846001612cb8565b92509050818404811115612dce57612dcd612c7f565b5b81810290505b9392505050565b5f612de5826128ae565b9150612df083612a69565b9250612e1d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612d0a565b905092915050565b5f612e2f826128ae565b9150612e3a836128ae565b9250828202612e48816128ae565b91508282048414831517612e5f57612e5e612c7f565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612e9a6020836127ac565b9150612ea582612e66565b602082019050919050565b5f6020820190508181035f830152612ec781612e8e565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e6420395f8201527f3525000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f286022836127ac565b9150612f3382612ece565b604082019050919050565b5f6020820190508181035f830152612f5581612f1c565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e64205f8201527f3935250000000000000000000000000000000000000000000000000000000000602082015250565b5f612fb66023836127ac565b9150612fc182612f5c565b604082019050919050565b5f6020820190508181035f830152612fe381612faa565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6130716026836127ac565b915061307c82613017565b604082019050919050565b5f6020820190508181035f83015261309e81613065565b9050919050565b7f4e657720646576656c6f706d656e7420616464726573732063616e6e6f7420625f8201527f65207a65726f2061646472657373000000000000000000000000000000000000602082015250565b5f6130ff602e836127ac565b915061310a826130a5565b604082019050919050565b5f6020820190508181035f83015261312c816130f3565b9050919050565b7f43616e277420617070726f76652066726f6d207a65726f2061646472657373005f82015250565b5f613167601f836127ac565b915061317282613133565b602082019050919050565b5f6020820190508181035f8301526131948161315b565b9050919050565b7f43616e277420617070726f766520746f207a65726f20616464726573730000005f82015250565b5f6131cf601d836127ac565b91506131da8261319b565b602082019050919050565b5f6020820190508181035f8301526131fc816131c3565b9050919050565b7f43616e74207472616e7366657220746f2061646472657373207a65726f0000005f82015250565b5f613237601d836127ac565b915061324282613203565b602082019050919050565b5f6020820190508181035f8301526132648161322b565b9050919050565b7f416d6f756e742073686f756c642062652061626f7665207a65726f00000000005f82015250565b5f61329f601b836127ac565b91506132aa8261326b565b602082019050919050565b5f6020820190508181035f8301526132cc81613293565b9050919050565b7f4f6e6c79206f776e65722063616e207472616465206265666f726520747261645f8201527f696e672061637469766174696f6e000000000000000000000000000000000000602082015250565b5f61332d602e836127ac565b9150613338826132d3565b604082019050919050565b5f6020820190508181035f83015261335a81613321565b9050919050565b7f4578636565646564206d6178207472616e73616374696f6e206c696d697400005f82015250565b5f613395601e836127ac565b91506133a082613361565b602082019050919050565b5f6020820190508181035f8301526133c281613389565b9050919050565b5f6133d3826128ae565b91506133de836128ae565b92508282019050808211156133f6576133f5612c7f565b5b92915050565b7f45786365656473206d61782077616c6c65742062616c616e63650000000000005f82015250565b5f613430601a836127ac565b915061343b826133fc565b602082019050919050565b5f6020820190508181035f83015261345d81613424565b9050919050565b5f61346e826128ae565b9150613479836128ae565b925082820390508181111561349157613490612c7f565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f815190506134d281612884565b92915050565b5f602082840312156134ed576134ec61284c565b5b5f6134fa848285016134c4565b91505092915050565b5f819050919050565b5f61352661352161351c84613503565b612952565b6128ae565b9050919050565b6135368161350c565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61356e81612873565b82525050565b5f61357f8383613565565b60208301905092915050565b5f602082019050919050565b5f6135a18261353c565b6135ab8185613546565b93506135b683613556565b805f5b838110156135e65781516135cd8882613574565b97506135d88361358b565b9250506001810190506135b9565b5085935050505092915050565b5f60a0820190506136065f8301886129c6565b613613602083018761352d565b81810360408301526136258186613597565b90506136346060830185612a9d565b61364160808301846129c6565b9695505050505050565b7f416d6f756e742068617320746f206265206c657373207468616e20746f74616c5f8201527f207265666c656374696f6e730000000000000000000000000000000000000000602082015250565b5f6136a5602c836127ac565b91506136b08261364b565b604082019050919050565b5f6020820190508181035f8301526136d281613699565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613710826128ae565b915061371b836128ae565b92508261372b5761372a6136d9565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61376a601b836127ac565b915061377582613736565b602082019050919050565b5f6020820190508181035f8301526137978161375e565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6137f86021836127ac565b91506138038261379e565b604082019050919050565b5f6020820190508181035f830152613825816137ec565b905091905056fe746865207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a7d55e939fdc036ea27c2748052ad2cf9c0dae66c4925973460171eaa276819964736f6c634300081700330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000006ecd683c896b15082f2f90628332a45d46f7ddf1
Deployed Bytecode
0x60806040526004361061019f575f3560e01c8063715018a6116100eb57806395d89b4111610089578063dd88800511610063578063dd88800514610596578063f2fde38b146105be578063f4293890146105e6578063fb0c2643146105fc576101a6565b806395d89b41146104f4578063a9059cbb1461051e578063dd62ed3e1461055a576101a6565b80638da5cb5b116100c55780638da5cb5b146104505780638f70ccf71461047a5780638f9a55c0146104a257806390d2c93a146104cc576101a6565b8063715018a6146103e857806374010ece146103fe5780637d1db4a514610426576101a6565b80632fd689e31161015857806351bc3c851161013257806351bc3c851461034657806352f7c9881461035c57806365db9cbb1461038457806370a08231146103ac576101a6565b80632fd689e3146102c8578063313ce567146102f257806349bd5a5e1461031c576101a6565b806306fdde03146101aa578063095ea7b3146101d45780631694505e1461021057806318160ddd1461023a57806323b872dd1461026457806327a14fc2146102a0576101a6565b366101a657005b5f80fd5b3480156101b5575f80fd5b506101be610624565b6040516101cb919061282c565b60405180910390f35b3480156101df575f80fd5b506101fa60048036038101906101f591906128e1565b610661565b6040516102079190612939565b60405180910390f35b34801561021b575f80fd5b5061022461067e565b60405161023191906129ad565b60405180910390f35b348015610245575f80fd5b5061024e6106a3565b60405161025b91906129d5565b60405180910390f35b34801561026f575f80fd5b5061028a600480360381019061028591906129ee565b6106c7565b6040516102979190612939565b60405180910390f35b3480156102ab575f80fd5b506102c660048036038101906102c19190612a3e565b61079b565b005b3480156102d3575f80fd5b506102dc610839565b6040516102e991906129d5565b60405180910390f35b3480156102fd575f80fd5b5061030661083f565b6040516103139190612a84565b60405180910390f35b348015610327575f80fd5b50610330610847565b60405161033d9190612aac565b60405180910390f35b348015610351575f80fd5b5061035a61086c565b005b348015610367575f80fd5b50610382600480360381019061037d9190612ac5565b6108e3565b005b34801561038f575f80fd5b506103aa60048036038101906103a59190612b2d565b610a29565b005b3480156103b7575f80fd5b506103d260048036038101906103cd9190612b58565b610ada565b6040516103df91906129d5565b60405180910390f35b3480156103f3575f80fd5b506103fc610b28565b005b348015610409575f80fd5b50610424600480360381019061041f9190612a3e565b610c76565b005b348015610431575f80fd5b5061043a610d14565b60405161044791906129d5565b60405180910390f35b34801561045b575f80fd5b50610464610d1a565b6040516104719190612aac565b60405180910390f35b348015610485575f80fd5b506104a0600480360381019061049b9190612b2d565b610d41565b005b3480156104ad575f80fd5b506104b6610df2565b6040516104c391906129d5565b60405180910390f35b3480156104d7575f80fd5b506104f260048036038101906104ed9190612be4565b610df8565b005b3480156104ff575f80fd5b50610508610f27565b604051610515919061282c565b60405180910390f35b348015610529575f80fd5b50610544600480360381019061053f91906128e1565b610f64565b6040516105519190612939565b60405180910390f35b348015610565575f80fd5b50610580600480360381019061057b9190612c41565b610f81565b60405161058d91906129d5565b60405180910390f35b3480156105a1575f80fd5b506105bc60048036038101906105b79190612a3e565b611003565b005b3480156105c9575f80fd5b506105e460048036038101906105df9190612b58565b6110a1565b005b3480156105f1575f80fd5b506105fa61125e565b005b348015610607575f80fd5b50610622600480360381019061061d9190612b58565b6112cd565b005b60606040518060400160405280600881526020017f4e696b69636f696e000000000000000000000000000000000000000000000000815250905090565b5f61067461066d6114fd565b8484611504565b6001905092915050565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6009600a6106b29190612ddb565b6402540be4006106c29190612e25565b905090565b5f6106d38484846116c7565b610790846106df6114fd565b61078b8560405180606001604052806025815260200161382d6025913960035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107426114fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611dcd9092919063ffffffff16565b611504565b600190509392505050565b6107a36114fd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461082f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082690612eb0565b60405180910390fd5b80600f8190555050565b60105481565b5f6009905090565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108ac6114fd565b73ffffffffffffffffffffffffffffffffffffffff16146108cb575f80fd5b5f6108d530610ada565b90506108e081611e2f565b50565b6108eb6114fd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610977576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096e90612eb0565b60405180910390fd5b5f82101580156109885750605f8211155b6109c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109be90612f3e565b60405180910390fd5b5f81101580156109d85750605f8111155b610a17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0e90612fcc565b60405180910390fd5b81600781905550806008819055505050565b610a316114fd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610abd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab490612eb0565b60405180910390fd5b80600d60166101000a81548160ff02191690831515021790555050565b5f610b2160025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461209a565b9050919050565b610b306114fd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb390612eb0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610c7e6114fd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0190612eb0565b60405180910390fd5b80600e8190555050565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610d496114fd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcc90612eb0565b60405180910390fd5b80600d60146101000a81548160ff02191690831515021790555050565b600f5481565b610e006114fd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8390612eb0565b60405180910390fd5b5f5b83839050811015610f21578160045f868685818110610eb057610eaf612fea565b5b9050602002016020810190610ec59190612b58565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610e8e565b50505050565b60606040518060400160405280600481526020017f4e494b4900000000000000000000000000000000000000000000000000000000815250905090565b5f610f77610f706114fd565b84846116c7565b6001905092915050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61100b6114fd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108e90612eb0565b60405180910390fd5b8060108190555050565b6110a96114fd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611135576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112c90612eb0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036111a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119a90613087565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661129e6114fd565b73ffffffffffffffffffffffffffffffffffffffff16146112bd575f80fd5b5f4790506112ca81612106565b50565b6112d56114fd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611361576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135890612eb0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036113cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c690613115565b60405180910390fd5b5f60045f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611572576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115699061317d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d7906131e5565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116ba91906129d5565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172c9061324d565b60405180910390fd5b5f8111611777576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176e906132b5565b60405180910390fd5b61177f610d1a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117ed57506117bd610d1a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611aec57600d60149054906101000a900460ff1661187c5761180e610d1a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461187b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187290613343565b60405180910390fd5b5b600e548111156118c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b8906133ab565b60405180910390fd5b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461196e57600f548161192284610ada565b61192c91906133c9565b111561196d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196490613446565b60405180910390fd5b5b5f61197830610ada565b90505f6010548210159050600e54821061199257600e5491505b8080156119ac5750600d60159054906101000a900460ff16155b8015611a055750600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611a1d5750600d60169054906101000a900460ff165b8015611a70575060045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611ac3575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611ae957611ad182611e2f565b5f4790505f811115611ae757611ae647612106565b5b505b50505b5f6001905060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611b8c575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611c3d5750600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611c3c5750600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611c4a575f9050611dbb565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611cf35750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d02576007546009819055505b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611dab5750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611dba576008546009819055505b5b611dc78484848461216e565b50505050565b5f838311158290611e14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0b919061282c565b60405180910390fd5b505f8385611e229190613464565b9050809150509392505050565b6001600d60156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611e6657611e65613497565b5b604051908082528060200260200182016040528015611e945781602001602082028036833780820191505090505b50905030815f81518110611eab57611eaa612fea565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f4f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f7391906134d8565b81600181518110611f8757611f86612fea565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611fed30600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611504565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161204f9594939291906135f3565b5f604051808303815f87803b158015612066575f80fd5b505af1158015612078573d5f803e3d5ffd5b50505050505f600d60156101000a81548160ff02191690831515021790555050565b5f6005548211156120e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d7906136bb565b60405180910390fd5b5f6120e961219b565b90506120fe81846121c490919063ffffffff16565b915050919050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561216a573d5f803e3d5ffd5b5050565b8061217c5761217b61220d565b5b61218784848461222a565b80612195576121946123d8565b5b50505050565b5f805f6121a66123e3565b915091506121bd81836121c490919063ffffffff16565b9250505090565b5f61220583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061247e565b905092915050565b5f600954031561222857600954600a819055505f6009819055505b565b5f805f80612237856124df565b935093509350935061228f8460025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461252990919063ffffffff16565b60025f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506123208360025f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461257290919063ffffffff16565b60025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061236a816125cf565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123c791906129d5565b60405180910390a350505050505050565b600a54600981905550565b5f805f60055490505f6009600a6123fa9190612ddb565b6402540be40061240a9190612e25565b905061243e6009600a61241d9190612ddb565b6402540be40061242d9190612e25565b6005546121c490919063ffffffff16565b821015612471576005546009600a6124569190612ddb565b6402540be4006124669190612e25565b93509350505061247a565b81819350935050505b9091565b5f80831182906124c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124bb919061282c565b60405180910390fd5b505f83856124d29190613706565b9050809150509392505050565b5f805f805f806124f187600954612686565b915091505f6124fe61219b565b90505f8061250d8a85856126d6565b9150915081818686985098509850985050505050509193509193565b5f61256a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611dcd565b905092915050565b5f80828461258091906133c9565b9050838110156125c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125bc90613780565b60405180910390fd5b8091505092915050565b5f6125d861219b565b90505f6125ee828461272b90919063ffffffff16565b90506126408160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461257290919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b5f805f6126af60646126a1868861272b90919063ffffffff16565b6121c490919063ffffffff16565b90505f6126c5828761252990919063ffffffff16565b905080829350935050509250929050565b5f805f6126ec848761272b90919063ffffffff16565b90505f612702858761272b90919063ffffffff16565b90505f612718828461252990919063ffffffff16565b9050828194509450505050935093915050565b5f80830361273b575f905061279c565b5f82846127489190612e25565b90508284826127579190613706565b14612797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278e9061380e565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156127d95780820151818401526020810190506127be565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6127fe826127a2565b61280881856127ac565b93506128188185602086016127bc565b612821816127e4565b840191505092915050565b5f6020820190508181035f83015261284481846127f4565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61287d82612854565b9050919050565b61288d81612873565b8114612897575f80fd5b50565b5f813590506128a881612884565b92915050565b5f819050919050565b6128c0816128ae565b81146128ca575f80fd5b50565b5f813590506128db816128b7565b92915050565b5f80604083850312156128f7576128f661284c565b5b5f6129048582860161289a565b9250506020612915858286016128cd565b9150509250929050565b5f8115159050919050565b6129338161291f565b82525050565b5f60208201905061294c5f83018461292a565b92915050565b5f819050919050565b5f61297561297061296b84612854565b612952565b612854565b9050919050565b5f6129868261295b565b9050919050565b5f6129978261297c565b9050919050565b6129a78161298d565b82525050565b5f6020820190506129c05f83018461299e565b92915050565b6129cf816128ae565b82525050565b5f6020820190506129e85f8301846129c6565b92915050565b5f805f60608486031215612a0557612a0461284c565b5b5f612a128682870161289a565b9350506020612a238682870161289a565b9250506040612a34868287016128cd565b9150509250925092565b5f60208284031215612a5357612a5261284c565b5b5f612a60848285016128cd565b91505092915050565b5f60ff82169050919050565b612a7e81612a69565b82525050565b5f602082019050612a975f830184612a75565b92915050565b612aa681612873565b82525050565b5f602082019050612abf5f830184612a9d565b92915050565b5f8060408385031215612adb57612ada61284c565b5b5f612ae8858286016128cd565b9250506020612af9858286016128cd565b9150509250929050565b612b0c8161291f565b8114612b16575f80fd5b50565b5f81359050612b2781612b03565b92915050565b5f60208284031215612b4257612b4161284c565b5b5f612b4f84828501612b19565b91505092915050565b5f60208284031215612b6d57612b6c61284c565b5b5f612b7a8482850161289a565b91505092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112612ba457612ba3612b83565b5b8235905067ffffffffffffffff811115612bc157612bc0612b87565b5b602083019150836020820283011115612bdd57612bdc612b8b565b5b9250929050565b5f805f60408486031215612bfb57612bfa61284c565b5b5f84013567ffffffffffffffff811115612c1857612c17612850565b5b612c2486828701612b8f565b93509350506020612c3786828701612b19565b9150509250925092565b5f8060408385031215612c5757612c5661284c565b5b5f612c648582860161289a565b9250506020612c758582860161289a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612d0157808604811115612cdd57612cdc612c7f565b5b6001851615612cec5780820291505b8081029050612cfa85612cac565b9450612cc1565b94509492505050565b5f82612d195760019050612dd4565b81612d26575f9050612dd4565b8160018114612d3c5760028114612d4657612d75565b6001915050612dd4565b60ff841115612d5857612d57612c7f565b5b8360020a915084821115612d6f57612d6e612c7f565b5b50612dd4565b5060208310610133831016604e8410600b8410161715612daa5782820a905083811115612da557612da4612c7f565b5b612dd4565b612db78484846001612cb8565b92509050818404811115612dce57612dcd612c7f565b5b81810290505b9392505050565b5f612de5826128ae565b9150612df083612a69565b9250612e1d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612d0a565b905092915050565b5f612e2f826128ae565b9150612e3a836128ae565b9250828202612e48816128ae565b91508282048414831517612e5f57612e5e612c7f565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612e9a6020836127ac565b9150612ea582612e66565b602082019050919050565b5f6020820190508181035f830152612ec781612e8e565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e6420395f8201527f3525000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f286022836127ac565b9150612f3382612ece565b604082019050919050565b5f6020820190508181035f830152612f5581612f1c565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e64205f8201527f3935250000000000000000000000000000000000000000000000000000000000602082015250565b5f612fb66023836127ac565b9150612fc182612f5c565b604082019050919050565b5f6020820190508181035f830152612fe381612faa565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6130716026836127ac565b915061307c82613017565b604082019050919050565b5f6020820190508181035f83015261309e81613065565b9050919050565b7f4e657720646576656c6f706d656e7420616464726573732063616e6e6f7420625f8201527f65207a65726f2061646472657373000000000000000000000000000000000000602082015250565b5f6130ff602e836127ac565b915061310a826130a5565b604082019050919050565b5f6020820190508181035f83015261312c816130f3565b9050919050565b7f43616e277420617070726f76652066726f6d207a65726f2061646472657373005f82015250565b5f613167601f836127ac565b915061317282613133565b602082019050919050565b5f6020820190508181035f8301526131948161315b565b9050919050565b7f43616e277420617070726f766520746f207a65726f20616464726573730000005f82015250565b5f6131cf601d836127ac565b91506131da8261319b565b602082019050919050565b5f6020820190508181035f8301526131fc816131c3565b9050919050565b7f43616e74207472616e7366657220746f2061646472657373207a65726f0000005f82015250565b5f613237601d836127ac565b915061324282613203565b602082019050919050565b5f6020820190508181035f8301526132648161322b565b9050919050565b7f416d6f756e742073686f756c642062652061626f7665207a65726f00000000005f82015250565b5f61329f601b836127ac565b91506132aa8261326b565b602082019050919050565b5f6020820190508181035f8301526132cc81613293565b9050919050565b7f4f6e6c79206f776e65722063616e207472616465206265666f726520747261645f8201527f696e672061637469766174696f6e000000000000000000000000000000000000602082015250565b5f61332d602e836127ac565b9150613338826132d3565b604082019050919050565b5f6020820190508181035f83015261335a81613321565b9050919050565b7f4578636565646564206d6178207472616e73616374696f6e206c696d697400005f82015250565b5f613395601e836127ac565b91506133a082613361565b602082019050919050565b5f6020820190508181035f8301526133c281613389565b9050919050565b5f6133d3826128ae565b91506133de836128ae565b92508282019050808211156133f6576133f5612c7f565b5b92915050565b7f45786365656473206d61782077616c6c65742062616c616e63650000000000005f82015250565b5f613430601a836127ac565b915061343b826133fc565b602082019050919050565b5f6020820190508181035f83015261345d81613424565b9050919050565b5f61346e826128ae565b9150613479836128ae565b925082820390508181111561349157613490612c7f565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f815190506134d281612884565b92915050565b5f602082840312156134ed576134ec61284c565b5b5f6134fa848285016134c4565b91505092915050565b5f819050919050565b5f61352661352161351c84613503565b612952565b6128ae565b9050919050565b6135368161350c565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61356e81612873565b82525050565b5f61357f8383613565565b60208301905092915050565b5f602082019050919050565b5f6135a18261353c565b6135ab8185613546565b93506135b683613556565b805f5b838110156135e65781516135cd8882613574565b97506135d88361358b565b9250506001810190506135b9565b5085935050505092915050565b5f60a0820190506136065f8301886129c6565b613613602083018761352d565b81810360408301526136258186613597565b90506136346060830185612a9d565b61364160808301846129c6565b9695505050505050565b7f416d6f756e742068617320746f206265206c657373207468616e20746f74616c5f8201527f207265666c656374696f6e730000000000000000000000000000000000000000602082015250565b5f6136a5602c836127ac565b91506136b08261364b565b604082019050919050565b5f6020820190508181035f8301526136d281613699565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613710826128ae565b915061371b836128ae565b92508261372b5761372a6136d9565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61376a601b836127ac565b915061377582613736565b602082019050919050565b5f6020820190508181035f8301526137978161375e565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6137f86021836127ac565b91506138038261379e565b604082019050919050565b5f6020820190508181035f830152613825816137ec565b905091905056fe746865207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a7d55e939fdc036ea27c2748052ad2cf9c0dae66c4925973460171eaa276819964736f6c63430008170033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000006ecd683c896b15082f2f90628332a45d46f7ddf1
-----Decoded View---------------
Arg [0] : routerAddress (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : devAddress (address): 0x6eCd683c896B15082F2F90628332a45D46f7dDF1
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 0000000000000000000000006ecd683c896b15082f2f90628332a45d46f7ddf1
Deployed Bytecode Sourcemap
4245:11734:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6209:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7134:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5105:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6489:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7336:443;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15291:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5405:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6397:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5153:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11337:191;;;;;;;;;;;;;:::i;:::-;;14558:357;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15061:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6593:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1718:148;;;;;;;;;;;;;:::i;:::-;;15171:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5297:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1502:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11227:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5350:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15417:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6301:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6733:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6941:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14923:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1875:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11537:190;;;;;;;;;;;;;:::i;:::-;;15651:325;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6209:83;6246:13;6279:5;;;;;;;;;;;;;;;;;6272:12;;6209:83;:::o;7134:193::-;7236:4;7258:39;7267:12;:10;:12::i;:::-;7281:7;7290:6;7258:8;:39::i;:::-;7315:4;7308:11;;7134:193;;;;:::o;5105:41::-;;;;;;;;;;;;;:::o;6489:95::-;6542:7;4471:1;4765:2;:15;;;;:::i;:::-;4748:14;:32;;;;:::i;:::-;6562:14;;6489:95;:::o;7336:443::-;7468:4;7485:36;7495:6;7503:9;7514:6;7485:9;:36::i;:::-;7532:217;7555:6;7576:12;:10;:12::i;:::-;7603:135;7659:6;7603:135;;;;;;;;;;;;;;;;;:11;:19;7615:6;7603:19;;;;;;;;;;;;;;;:33;7623:12;:10;:12::i;:::-;7603:33;;;;;;;;;;;;;;;;:37;;:135;;;;;:::i;:::-;7532:8;:217::i;:::-;7767:4;7760:11;;7336:443;;;;;:::o;15291:117::-;1640:12;:10;:12::i;:::-;1630:22;;:6;;;;;;;;;;:22;;;1622:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15387:13:::1;15370:14;:30;;;;15291:117:::0;:::o;5405:57::-;;;;:::o;6397:83::-;6438:5;4471:1;6456:16;;6397:83;:::o;5153:28::-;;;;;;;;;;;;;:::o;11337:191::-;11403:11;;;;;;;;;;;11387:27;;:12;:10;:12::i;:::-;:27;;;11379:36;;;;;;11426:23;11452:24;11470:4;11452:9;:24::i;:::-;11426:50;;11487:33;11504:15;11487:16;:33::i;:::-;11368:160;11337:191::o;14558:357::-;1640:12;:10;:12::i;:::-;1630:22;;:6;;;;;;;;;;:22;;;1622:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14668:1:::1;14653:11;:16;;:37;;;;;14688:2;14673:11;:17;;14653:37;14645:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;14764:1;14748:12;:17;;:39;;;;;14785:2;14769:12;:18;;14748:39;14740:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;14855:11;14840:12;:26;;;;14893:12;14877:13;:28;;;;14558:357:::0;;:::o;15061:102::-;1640:12;:10;:12::i;:::-;1630:22;;:6;;;;;;;;;;:22;;;1622:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15143:12:::1;15129:11;;:26;;;;;;;;;;;;;;;;;;15061:102:::0;:::o;6593:131::-;6659:7;6686:30;6699:7;:16;6707:7;6699:16;;;;;;;;;;;;;;;;6686:12;:30::i;:::-;6679:37;;6593:131;;;:::o;1718:148::-;1640:12;:10;:12::i;:::-;1630:22;;:6;;;;;;;;;;:22;;;1622:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1825:1:::1;1788:40;;1809:6;::::0;::::1;;;;;;;;1788:40;;;;;;;;;;;;1856:1;1839:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1718:148::o:0;15171:111::-;1640:12;:10;:12::i;:::-;1630:22;;:6;;;;;;;;;;:22;;;1622:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15263:11:::1;15248:12;:26;;;;15171:111:::0;:::o;5297:46::-;;;;:::o;1502:79::-;1540:7;1567:6;;;;;;;;;;;1560:13;;1502:79;:::o;11227:101::-;1640:12;:10;:12::i;:::-;1630:22;;:6;;;;;;;;;;:22;;;1622:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11308:12:::1;11294:11;;:26;;;;;;;;;;;;;;;;;;11227:101:::0;:::o;5350:48::-;;;;:::o;15417:226::-;1640:12;:10;:12::i;:::-;1630:22;;:6;;;;;;;;;;:22;;;1622:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15526:9:::1;15522:114;15545:8;;:15;;15541:1;:19;15522:114;;;15616:8;15582:18;:31;15601:8;;15610:1;15601:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;15582:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;15562:3;;;;;;;15522:114;;;;15417:226:::0;;;:::o;6301:87::-;6340:13;6373:7;;;;;;;;;;;;;;;;;6366:14;;6301:87;:::o;6733:199::-;6838:4;6860:42;6870:12;:10;:12::i;:::-;6884:9;6895:6;6860:9;:42::i;:::-;6920:4;6913:11;;6733:199;;;;:::o;6941:184::-;7058:7;7090:11;:18;7102:5;7090:18;;;;;;;;;;;;;;;:27;7109:7;7090:27;;;;;;;;;;;;;;;;7083:34;;6941:184;;;;:::o;14923:130::-;1640:12;:10;:12::i;:::-;1630:22;;:6;;;;;;;;;;:22;;;1622:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15027:18:::1;15005:19;:40;;;;14923:130:::0;:::o;1875:244::-;1640:12;:10;:12::i;:::-;1630:22;;:6;;;;;;;;;;:22;;;1622:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1984:1:::1;1964:22;;:8;:22;;::::0;1956:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2074:8;2045:38;;2066:6;::::0;::::1;;;;;;;;2045:38;;;;;;;;;;;;2103:8;2094:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1875:244:::0;:::o;11537:190::-;11603:11;;;;;;;;;;;11587:27;;:12;:10;:12::i;:::-;:27;;;11579:36;;;;;;11626:26;11655:21;11626:50;;11687:32;11700:18;11687:12;:32::i;:::-;11568:159;11537:190::o;15651:325::-;1640:12;:10;:12::i;:::-;1630:22;;:6;;;;;;;;;;:22;;;1622:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15769:1:::1;15744:27;;:13;:27;;::::0;15736:86:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;15867:5;15833:18;:31;15852:11;;;;;;;;;;;15833:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;15905:13;15883:11;;:36;;;;;;;;;;;;;;;;;;15964:4;15930:18;:31;15949:11;;;;;;;;;;;15930:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;15651:325:::0;:::o;251:98::-;304:7;331:10;324:17;;251:98;:::o;8336:361::-;8480:1;8463:19;;:5;:19;;;8455:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;8556:1;8537:21;;:7;:21;;;8529:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;8635:6;8605:11;:18;8617:5;8605:18;;;;;;;;;;;;;;;:27;8624:7;8605:27;;;;;;;;;;;;;;;:36;;;;8673:7;8657:32;;8666:5;8657:32;;;8682:6;8657:32;;;;;;:::i;:::-;;;;;;;;8336:361;;;:::o;8706:1918::-;8842:1;8828:16;;:2;:16;;;8820:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;8906:1;8897:6;:10;8889:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;8965:7;:5;:7::i;:::-;8957:15;;:4;:15;;;;:32;;;;;8982:7;:5;:7::i;:::-;8976:13;;:2;:13;;;;8957:32;8953:1122;;;9014:11;;;;;;;;;;;9009:127;;9062:7;:5;:7::i;:::-;9054:15;;:4;:15;;;9046:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9009:127;9171:12;;9161:6;:22;;9153:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;9245:13;;;;;;;;;;;9239:19;;:2;:19;;;9236:138;;9313:14;;9303:6;9287:13;9297:2;9287:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9279:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9236:138;9391:28;9422:24;9440:4;9422:9;:24::i;:::-;9391:55;;9461:12;9500:19;;9476:20;:43;;9461:58;;9564:12;;9540:20;:36;9537:124;;9633:12;;9610:35;;9537:124;9682:7;:18;;;;;9694:6;;;;;;;;;;;9693:7;9682:18;:43;;;;;9712:13;;;;;;;;;;;9704:21;;:4;:21;;;;9682:43;:58;;;;;9729:11;;;;;;;;;;;9682:58;:87;;;;;9745:18;:24;9764:4;9745:24;;;;;;;;;;;;;;;;;;;;;;;;;9744:25;9682:87;:114;;;;;9774:18;:22;9793:2;9774:22;;;;;;;;;;;;;;;;;;;;;;;;;9773:23;9682:114;9678:386;;;9817:38;9834:20;9817:16;:38::i;:::-;9874:26;9903:21;9874:50;;9968:1;9947:18;:22;9943:106;;;9994:35;10007:21;9994:12;:35::i;:::-;9943:106;9798:266;9678:386;8991:1084;;8953:1122;10088:12;10103:4;10088:19;;10126:18;:24;10145:4;10126:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10154:18;:22;10173:2;10154:22;;;;;;;;;;;;;;;;;;;;;;;;;10126:50;10125:102;;;;10190:13;;;;;;;;;;;10182:21;;:4;:21;;;;:44;;;;;10213:13;;;;;;;;;;;10207:19;;:2;:19;;;;10182:44;10125:102;10121:441;;;10254:5;10244:15;;10121:441;;;10306:13;;;;;;;;;;;10298:21;;:4;:21;;;:55;;;;;10337:15;;;;;;;;;;;10323:30;;:2;:30;;;;10298:55;10295:117;;;10384:12;;10374:7;:22;;;;10295:117;10439:13;;;;;;;;;;;10433:19;;:2;:19;;;:55;;;;;10472:15;;;;;;;;;;;10456:32;;:4;:32;;;;10433:55;10429:119;;;10519:13;;10509:7;:23;;;;10429:119;10121:441;10575:41;10590:4;10596:2;10600:6;10608:7;10575:14;:41::i;:::-;8809:1815;8706:1918;;;:::o;2487:224::-;2607:7;2640:1;2635;:6;;2643:12;2627:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2667:9;2683:1;2679;:5;;;;:::i;:::-;2667:17;;2702:1;2695:8;;;2487:224;;;;;:::o;10633:483::-;5512:4;5503:6;;:13;;;;;;;;;;;;;;;;;;10711:21:::1;10749:1;10735:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10711:40;;10780:4;10762;10767:1;10762:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10806:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10796:4;10801:1;10796:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10839:62;10856:4;10871:15;;;;;;;;;;;10889:11;10839:8;:62::i;:::-;10912:15;;;;;;;;;;;:66;;;10993:11;11019:1;11035:4;11062;11082:15;10912:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10700:416;5548:5:::0;5539:6;;:14;;;;;;;;;;;;;;;;;;10633:483;:::o;7788:318::-;7876:7;7934;;7923;:18;;7901:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;8024:19;8046:10;:8;:10::i;:::-;8024:32;;8074:24;8086:11;8074:7;:11;;:24;;;;:::i;:::-;8067:31;;;7788:318;;;:::o;11125:93::-;11182:11;;;;;;;;;;;:20;;:28;11203:6;11182:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11125:93;:::o;11736:275::-;11892:7;11887:25;;11901:11;:9;:11::i;:::-;11887:25;11923:44;11941:6;11949:9;11960:6;11923:17;:44::i;:::-;11983:7;11978:25;;11992:11;:9;:11::i;:::-;11978:25;11736:275;;;;:::o;14119:164::-;14161:7;14182:15;14199;14218:19;:17;:19::i;:::-;14181:56;;;;14255:20;14267:7;14255;:11;;:20;;;;:::i;:::-;14248:27;;;;14119:164;:::o;2975:132::-;3033:7;3060:39;3064:1;3067;3060:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3053:46;;2975:132;;;;:::o;8115:130::-;8170:1;8159:7;;:12;8155:25;8173:7;8155:25;8208:7;;8190:15;:25;;;;8236:1;8226:7;:11;;;;8115:130;:::o;12020:519::-;12167:15;12197:23;12235;12273:12;12299:19;12310:7;12299:10;:19::i;:::-;12152:166;;;;;;;;12347:28;12367:7;12347;:15;12355:6;12347:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12329:7;:15;12337:6;12329:15;;;;;;;;;;;;;;;:46;;;;12407:39;12430:15;12407:7;:18;12415:9;12407:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;12386:7;:18;12394:9;12386:18;;;;;;;;;;;;;;;:60;;;;12457:14;12466:4;12457:8;:14::i;:::-;12504:9;12487:44;;12496:6;12487:44;;;12515:15;12487:44;;;;;;:::i;:::-;;;;;;;;12141:398;;;;12020:519;;;:::o;8254:73::-;8304:15;;8294:7;:25;;;;8254:73::o;14292:257::-;14343:7;14352;14372:15;14390:7;;14372:25;;14408:15;4471:1;4765:2;:15;;;;:::i;:::-;4748:14;:32;;;;:::i;:::-;14408:25;;14458:20;4471:1;4765:2;:15;;;;:::i;:::-;4748:14;:32;;;;:::i;:::-;14458:7;;:11;;:20;;;;:::i;:::-;14448:7;:30;14444:61;;;14488:7;;4471:1;4765:2;:15;;;;:::i;:::-;4748:14;:32;;;;:::i;:::-;14480:25;;;;;;;;14444:61;14524:7;14533;14516:25;;;;;;14292:257;;;:::o;3116:223::-;3236:7;3268:1;3264;:5;3271:12;3256:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3295:9;3311:1;3307;:5;;;;:::i;:::-;3295:17;;3330:1;3323:8;;;3116:223;;;;;:::o;12801:515::-;12901:7;12923;12945;12967;13003:23;13029:13;13059:29;13071:7;13080;;13059:11;:29::i;:::-;13002:86;;;;13099:19;13121:10;:8;:10::i;:::-;13099:32;;13143:15;13160:23;13200:40;13212:7;13221:5;13228:11;13200;:40::i;:::-;13142:98;;;;13259:7;13268:15;13285;13302:5;13251:57;;;;;;;;;;;;;12801:515;;;;;:::o;2342:136::-;2400:7;2427:43;2431:1;2434;2427:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2420:50;;2342:136;;;;:::o;2154:179::-;2212:7;2232:9;2248:1;2244;:5;;;;:::i;:::-;2232:17;;2273:1;2268;:6;;2260:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2324:1;2317:8;;;2154:179;;;;:::o;12548:206::-;12599:19;12621:10;:8;:10::i;:::-;12599:32;;12642:12;12657:21;12666:11;12657:4;:8;;:21;;;;:::i;:::-;12642:36;;12714:32;12741:4;12714:7;:22;12730:4;12714:22;;;;;;;;;;;;;;;;:26;;:32;;;;:::i;:::-;12689:7;:22;12705:4;12689:22;;;;;;;;;;;;;;;:57;;;;12588:166;;12548:206;:::o;13325:350::-;13467:7;13489;13524:13;13540:28;13564:3;13540:19;13552:6;13540:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;13524:44;;13580:23;13606:18;13618:5;13606:7;:11;;:18;;;;:::i;:::-;13580:44;;13644:15;13661:5;13636:31;;;;;;13325:350;;;;;:::o;13684:426::-;13855:7;13877;13912:15;13930:24;13942:11;13930:7;:11;;:24;;;;:::i;:::-;13912:42;;13965:13;13981:22;13991:11;13981:5;:9;;:22;;;;:::i;:::-;13965:38;;14014:23;14040:18;14052:5;14040:7;:11;;:18;;;;:::i;:::-;14014:44;;14077:7;14086:15;14069:33;;;;;;;13684:426;;;;;;:::o;2720:246::-;2778:7;2807:1;2802;:6;2798:47;;2832:1;2825:8;;;;2798:47;2855:9;2871:1;2867;:5;;;;:::i;:::-;2855:17;;2900:1;2895;2891;:5;;;;:::i;:::-;:10;2883:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2957:1;2950:8;;;2720:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:329::-;5455:6;5504:2;5492:9;5483:7;5479:23;5475:32;5472:119;;;5510:79;;:::i;:::-;5472:119;5630:1;5655:53;5700:7;5691:6;5680:9;5676:22;5655:53;:::i;:::-;5645:63;;5601:117;5396:329;;;;:::o;5731:86::-;5766:7;5806:4;5799:5;5795:16;5784:27;;5731:86;;;:::o;5823:112::-;5906:22;5922:5;5906:22;:::i;:::-;5901:3;5894:35;5823:112;;:::o;5941:214::-;6030:4;6068:2;6057:9;6053:18;6045:26;;6081:67;6145:1;6134:9;6130:17;6121:6;6081:67;:::i;:::-;5941:214;;;;:::o;6161:118::-;6248:24;6266:5;6248:24;:::i;:::-;6243:3;6236:37;6161:118;;:::o;6285:222::-;6378:4;6416:2;6405:9;6401:18;6393:26;;6429:71;6497:1;6486:9;6482:17;6473:6;6429:71;:::i;:::-;6285:222;;;;:::o;6513:474::-;6581:6;6589;6638:2;6626:9;6617:7;6613:23;6609:32;6606:119;;;6644:79;;:::i;:::-;6606:119;6764:1;6789:53;6834:7;6825:6;6814:9;6810:22;6789:53;:::i;:::-;6779:63;;6735:117;6891:2;6917:53;6962:7;6953:6;6942:9;6938:22;6917:53;:::i;:::-;6907:63;;6862:118;6513:474;;;;;:::o;6993:116::-;7063:21;7078:5;7063:21;:::i;:::-;7056:5;7053:32;7043:60;;7099:1;7096;7089:12;7043:60;6993:116;:::o;7115:133::-;7158:5;7196:6;7183:20;7174:29;;7212:30;7236:5;7212:30;:::i;:::-;7115:133;;;;:::o;7254:323::-;7310:6;7359:2;7347:9;7338:7;7334:23;7330:32;7327:119;;;7365:79;;:::i;:::-;7327:119;7485:1;7510:50;7552:7;7543:6;7532:9;7528:22;7510:50;:::i;:::-;7500:60;;7456:114;7254:323;;;;:::o;7583:329::-;7642:6;7691:2;7679:9;7670:7;7666:23;7662:32;7659:119;;;7697:79;;:::i;:::-;7659:119;7817:1;7842:53;7887:7;7878:6;7867:9;7863:22;7842:53;:::i;:::-;7832:63;;7788:117;7583:329;;;;:::o;7918:117::-;8027:1;8024;8017:12;8041:117;8150:1;8147;8140:12;8164:117;8273:1;8270;8263:12;8304:568;8377:8;8387:6;8437:3;8430:4;8422:6;8418:17;8414:27;8404:122;;8445:79;;:::i;:::-;8404:122;8558:6;8545:20;8535:30;;8588:18;8580:6;8577:30;8574:117;;;8610:79;;:::i;:::-;8574:117;8724:4;8716:6;8712:17;8700:29;;8778:3;8770:4;8762:6;8758:17;8748:8;8744:32;8741:41;8738:128;;;8785:79;;:::i;:::-;8738:128;8304:568;;;;;:::o;8878:698::-;8970:6;8978;8986;9035:2;9023:9;9014:7;9010:23;9006:32;9003:119;;;9041:79;;:::i;:::-;9003:119;9189:1;9178:9;9174:17;9161:31;9219:18;9211:6;9208:30;9205:117;;;9241:79;;:::i;:::-;9205:117;9354:80;9426:7;9417:6;9406:9;9402:22;9354:80;:::i;:::-;9336:98;;;;9132:312;9483:2;9509:50;9551:7;9542:6;9531:9;9527:22;9509:50;:::i;:::-;9499:60;;9454:115;8878:698;;;;;:::o;9582:474::-;9650:6;9658;9707:2;9695:9;9686:7;9682:23;9678:32;9675:119;;;9713:79;;:::i;:::-;9675:119;9833:1;9858:53;9903:7;9894:6;9883:9;9879:22;9858:53;:::i;:::-;9848:63;;9804:117;9960:2;9986:53;10031:7;10022:6;10011:9;10007:22;9986:53;:::i;:::-;9976:63;;9931:118;9582:474;;;;;:::o;10062:180::-;10110:77;10107:1;10100:88;10207:4;10204:1;10197:15;10231:4;10228:1;10221:15;10248:102;10290:8;10337:5;10334:1;10330:13;10309:34;;10248:102;;;:::o;10356:848::-;10417:5;10424:4;10448:6;10439:15;;10472:5;10463:14;;10486:712;10507:1;10497:8;10494:15;10486:712;;;10602:4;10597:3;10593:14;10587:4;10584:24;10581:50;;;10611:18;;:::i;:::-;10581:50;10661:1;10651:8;10647:16;10644:451;;;11076:4;11069:5;11065:16;11056:25;;10644:451;11126:4;11120;11116:15;11108:23;;11156:32;11179:8;11156:32;:::i;:::-;11144:44;;10486:712;;;10356:848;;;;;;;:::o;11210:1073::-;11264:5;11455:8;11445:40;;11476:1;11467:10;;11478:5;;11445:40;11504:4;11494:36;;11521:1;11512:10;;11523:5;;11494:36;11590:4;11638:1;11633:27;;;;11674:1;11669:191;;;;11583:277;;11633:27;11651:1;11642:10;;11653:5;;;11669:191;11714:3;11704:8;11701:17;11698:43;;;11721:18;;:::i;:::-;11698:43;11770:8;11767:1;11763:16;11754:25;;11805:3;11798:5;11795:14;11792:40;;;11812:18;;:::i;:::-;11792:40;11845:5;;;11583:277;;11969:2;11959:8;11956:16;11950:3;11944:4;11941:13;11937:36;11919:2;11909:8;11906:16;11901:2;11895:4;11892:12;11888:35;11872:111;11869:246;;;12025:8;12019:4;12015:19;12006:28;;12060:3;12053:5;12050:14;12047:40;;;12067:18;;:::i;:::-;12047:40;12100:5;;11869:246;12140:42;12178:3;12168:8;12162:4;12159:1;12140:42;:::i;:::-;12125:57;;;;12214:4;12209:3;12205:14;12198:5;12195:25;12192:51;;;12223:18;;:::i;:::-;12192:51;12272:4;12265:5;12261:16;12252:25;;11210:1073;;;;;;:::o;12289:281::-;12347:5;12371:23;12389:4;12371:23;:::i;:::-;12363:31;;12415:25;12431:8;12415:25;:::i;:::-;12403:37;;12459:104;12496:66;12486:8;12480:4;12459:104;:::i;:::-;12450:113;;12289:281;;;;:::o;12576:410::-;12616:7;12639:20;12657:1;12639:20;:::i;:::-;12634:25;;12673:20;12691:1;12673:20;:::i;:::-;12668:25;;12728:1;12725;12721:9;12750:30;12768:11;12750:30;:::i;:::-;12739:41;;12929:1;12920:7;12916:15;12913:1;12910:22;12890:1;12883:9;12863:83;12840:139;;12959:18;;:::i;:::-;12840:139;12624:362;12576:410;;;;:::o;12992:182::-;13132:34;13128:1;13120:6;13116:14;13109:58;12992:182;:::o;13180:366::-;13322:3;13343:67;13407:2;13402:3;13343:67;:::i;:::-;13336:74;;13419:93;13508:3;13419:93;:::i;:::-;13537:2;13532:3;13528:12;13521:19;;13180:366;;;:::o;13552:419::-;13718:4;13756:2;13745:9;13741:18;13733:26;;13805:9;13799:4;13795:20;13791:1;13780:9;13776:17;13769:47;13833:131;13959:4;13833:131;:::i;:::-;13825:139;;13552:419;;;:::o;13977:221::-;14117:34;14113:1;14105:6;14101:14;14094:58;14186:4;14181:2;14173:6;14169:15;14162:29;13977:221;:::o;14204:366::-;14346:3;14367:67;14431:2;14426:3;14367:67;:::i;:::-;14360:74;;14443:93;14532:3;14443:93;:::i;:::-;14561:2;14556:3;14552:12;14545:19;;14204:366;;;:::o;14576:419::-;14742:4;14780:2;14769:9;14765:18;14757:26;;14829:9;14823:4;14819:20;14815:1;14804:9;14800:17;14793:47;14857:131;14983:4;14857:131;:::i;:::-;14849:139;;14576:419;;;:::o;15001:222::-;15141:34;15137:1;15129:6;15125:14;15118:58;15210:5;15205:2;15197:6;15193:15;15186:30;15001:222;:::o;15229:366::-;15371:3;15392:67;15456:2;15451:3;15392:67;:::i;:::-;15385:74;;15468:93;15557:3;15468:93;:::i;:::-;15586:2;15581:3;15577:12;15570:19;;15229:366;;;:::o;15601:419::-;15767:4;15805:2;15794:9;15790:18;15782:26;;15854:9;15848:4;15844:20;15840:1;15829:9;15825:17;15818:47;15882:131;16008:4;15882:131;:::i;:::-;15874:139;;15601:419;;;:::o;16026:180::-;16074:77;16071:1;16064:88;16171:4;16168:1;16161:15;16195:4;16192:1;16185:15;16212:225;16352:34;16348:1;16340:6;16336:14;16329:58;16421:8;16416:2;16408:6;16404:15;16397:33;16212:225;:::o;16443:366::-;16585:3;16606:67;16670:2;16665:3;16606:67;:::i;:::-;16599:74;;16682:93;16771:3;16682:93;:::i;:::-;16800:2;16795:3;16791:12;16784:19;;16443:366;;;:::o;16815:419::-;16981:4;17019:2;17008:9;17004:18;16996:26;;17068:9;17062:4;17058:20;17054:1;17043:9;17039:17;17032:47;17096:131;17222:4;17096:131;:::i;:::-;17088:139;;16815:419;;;:::o;17240:233::-;17380:34;17376:1;17368:6;17364:14;17357:58;17449:16;17444:2;17436:6;17432:15;17425:41;17240:233;:::o;17479:366::-;17621:3;17642:67;17706:2;17701:3;17642:67;:::i;:::-;17635:74;;17718:93;17807:3;17718:93;:::i;:::-;17836:2;17831:3;17827:12;17820:19;;17479:366;;;:::o;17851:419::-;18017:4;18055:2;18044:9;18040:18;18032:26;;18104:9;18098:4;18094:20;18090:1;18079:9;18075:17;18068:47;18132:131;18258:4;18132:131;:::i;:::-;18124:139;;17851:419;;;:::o;18276:181::-;18416:33;18412:1;18404:6;18400:14;18393:57;18276:181;:::o;18463:366::-;18605:3;18626:67;18690:2;18685:3;18626:67;:::i;:::-;18619:74;;18702:93;18791:3;18702:93;:::i;:::-;18820:2;18815:3;18811:12;18804:19;;18463:366;;;:::o;18835:419::-;19001:4;19039:2;19028:9;19024:18;19016:26;;19088:9;19082:4;19078:20;19074:1;19063:9;19059:17;19052:47;19116:131;19242:4;19116:131;:::i;:::-;19108:139;;18835:419;;;:::o;19260:179::-;19400:31;19396:1;19388:6;19384:14;19377:55;19260:179;:::o;19445:366::-;19587:3;19608:67;19672:2;19667:3;19608:67;:::i;:::-;19601:74;;19684:93;19773:3;19684:93;:::i;:::-;19802:2;19797:3;19793:12;19786:19;;19445:366;;;:::o;19817:419::-;19983:4;20021:2;20010:9;20006:18;19998:26;;20070:9;20064:4;20060:20;20056:1;20045:9;20041:17;20034:47;20098:131;20224:4;20098:131;:::i;:::-;20090:139;;19817:419;;;:::o;20242:179::-;20382:31;20378:1;20370:6;20366:14;20359:55;20242:179;:::o;20427:366::-;20569:3;20590:67;20654:2;20649:3;20590:67;:::i;:::-;20583:74;;20666:93;20755:3;20666:93;:::i;:::-;20784:2;20779:3;20775:12;20768:19;;20427:366;;;:::o;20799:419::-;20965:4;21003:2;20992:9;20988:18;20980:26;;21052:9;21046:4;21042:20;21038:1;21027:9;21023:17;21016:47;21080:131;21206:4;21080:131;:::i;:::-;21072:139;;20799:419;;;:::o;21224:177::-;21364:29;21360:1;21352:6;21348:14;21341:53;21224:177;:::o;21407:366::-;21549:3;21570:67;21634:2;21629:3;21570:67;:::i;:::-;21563:74;;21646:93;21735:3;21646:93;:::i;:::-;21764:2;21759:3;21755:12;21748:19;;21407:366;;;:::o;21779:419::-;21945:4;21983:2;21972:9;21968:18;21960:26;;22032:9;22026:4;22022:20;22018:1;22007:9;22003:17;21996:47;22060:131;22186:4;22060:131;:::i;:::-;22052:139;;21779:419;;;:::o;22204:233::-;22344:34;22340:1;22332:6;22328:14;22321:58;22413:16;22408:2;22400:6;22396:15;22389:41;22204:233;:::o;22443:366::-;22585:3;22606:67;22670:2;22665:3;22606:67;:::i;:::-;22599:74;;22682:93;22771:3;22682:93;:::i;:::-;22800:2;22795:3;22791:12;22784:19;;22443:366;;;:::o;22815:419::-;22981:4;23019:2;23008:9;23004:18;22996:26;;23068:9;23062:4;23058:20;23054:1;23043:9;23039:17;23032:47;23096:131;23222:4;23096:131;:::i;:::-;23088:139;;22815:419;;;:::o;23240:180::-;23380:32;23376:1;23368:6;23364:14;23357:56;23240:180;:::o;23426:366::-;23568:3;23589:67;23653:2;23648:3;23589:67;:::i;:::-;23582:74;;23665:93;23754:3;23665:93;:::i;:::-;23783:2;23778:3;23774:12;23767:19;;23426:366;;;:::o;23798:419::-;23964:4;24002:2;23991:9;23987:18;23979:26;;24051:9;24045:4;24041:20;24037:1;24026:9;24022:17;24015:47;24079:131;24205:4;24079:131;:::i;:::-;24071:139;;23798:419;;;:::o;24223:191::-;24263:3;24282:20;24300:1;24282:20;:::i;:::-;24277:25;;24316:20;24334:1;24316:20;:::i;:::-;24311:25;;24359:1;24356;24352:9;24345:16;;24380:3;24377:1;24374:10;24371:36;;;24387:18;;:::i;:::-;24371:36;24223:191;;;;:::o;24420:176::-;24560:28;24556:1;24548:6;24544:14;24537:52;24420:176;:::o;24602:366::-;24744:3;24765:67;24829:2;24824:3;24765:67;:::i;:::-;24758:74;;24841:93;24930:3;24841:93;:::i;:::-;24959:2;24954:3;24950:12;24943:19;;24602:366;;;:::o;24974:419::-;25140:4;25178:2;25167:9;25163:18;25155:26;;25227:9;25221:4;25217:20;25213:1;25202:9;25198:17;25191:47;25255:131;25381:4;25255:131;:::i;:::-;25247:139;;24974:419;;;:::o;25399:194::-;25439:4;25459:20;25477:1;25459:20;:::i;:::-;25454:25;;25493:20;25511:1;25493:20;:::i;:::-;25488:25;;25537:1;25534;25530:9;25522:17;;25561:1;25555:4;25552:11;25549:37;;;25566:18;;:::i;:::-;25549:37;25399:194;;;;:::o;25599:180::-;25647:77;25644:1;25637:88;25744:4;25741:1;25734:15;25768:4;25765:1;25758:15;25785:143;25842:5;25873:6;25867:13;25858:22;;25889:33;25916:5;25889:33;:::i;:::-;25785:143;;;;:::o;25934:351::-;26004:6;26053:2;26041:9;26032:7;26028:23;26024:32;26021:119;;;26059:79;;:::i;:::-;26021:119;26179:1;26204:64;26260:7;26251:6;26240:9;26236:22;26204:64;:::i;:::-;26194:74;;26150:128;25934:351;;;;:::o;26291:85::-;26336:7;26365:5;26354:16;;26291:85;;;:::o;26382:158::-;26440:9;26473:61;26491:42;26500:32;26526:5;26500:32;:::i;:::-;26491:42;:::i;:::-;26473:61;:::i;:::-;26460:74;;26382:158;;;:::o;26546:147::-;26641:45;26680:5;26641:45;:::i;:::-;26636:3;26629:58;26546:147;;:::o;26699:114::-;26766:6;26800:5;26794:12;26784:22;;26699:114;;;:::o;26819:184::-;26918:11;26952:6;26947:3;26940:19;26992:4;26987:3;26983:14;26968:29;;26819:184;;;;:::o;27009:132::-;27076:4;27099:3;27091:11;;27129:4;27124:3;27120:14;27112:22;;27009:132;;;:::o;27147:108::-;27224:24;27242:5;27224:24;:::i;:::-;27219:3;27212:37;27147:108;;:::o;27261:179::-;27330:10;27351:46;27393:3;27385:6;27351:46;:::i;:::-;27429:4;27424:3;27420:14;27406:28;;27261:179;;;;:::o;27446:113::-;27516:4;27548;27543:3;27539:14;27531:22;;27446:113;;;:::o;27595:732::-;27714:3;27743:54;27791:5;27743:54;:::i;:::-;27813:86;27892:6;27887:3;27813:86;:::i;:::-;27806:93;;27923:56;27973:5;27923:56;:::i;:::-;28002:7;28033:1;28018:284;28043:6;28040:1;28037:13;28018:284;;;28119:6;28113:13;28146:63;28205:3;28190:13;28146:63;:::i;:::-;28139:70;;28232:60;28285:6;28232:60;:::i;:::-;28222:70;;28078:224;28065:1;28062;28058:9;28053:14;;28018:284;;;28022:14;28318:3;28311:10;;27719:608;;;27595:732;;;;:::o;28333:831::-;28596:4;28634:3;28623:9;28619:19;28611:27;;28648:71;28716:1;28705:9;28701:17;28692:6;28648:71;:::i;:::-;28729:80;28805:2;28794:9;28790:18;28781:6;28729:80;:::i;:::-;28856:9;28850:4;28846:20;28841:2;28830:9;28826:18;28819:48;28884:108;28987:4;28978:6;28884:108;:::i;:::-;28876:116;;29002:72;29070:2;29059:9;29055:18;29046:6;29002:72;:::i;:::-;29084:73;29152:3;29141:9;29137:19;29128:6;29084:73;:::i;:::-;28333:831;;;;;;;;:::o;29170:231::-;29310:34;29306:1;29298:6;29294:14;29287:58;29379:14;29374:2;29366:6;29362:15;29355:39;29170:231;:::o;29407:366::-;29549:3;29570:67;29634:2;29629:3;29570:67;:::i;:::-;29563:74;;29646:93;29735:3;29646:93;:::i;:::-;29764:2;29759:3;29755:12;29748:19;;29407:366;;;:::o;29779:419::-;29945:4;29983:2;29972:9;29968:18;29960:26;;30032:9;30026:4;30022:20;30018:1;30007:9;30003:17;29996:47;30060:131;30186:4;30060:131;:::i;:::-;30052:139;;29779:419;;;:::o;30204:180::-;30252:77;30249:1;30242:88;30349:4;30346:1;30339:15;30373:4;30370:1;30363:15;30390:185;30430:1;30447:20;30465:1;30447:20;:::i;:::-;30442:25;;30481:20;30499:1;30481:20;:::i;:::-;30476:25;;30520:1;30510:35;;30525:18;;:::i;:::-;30510:35;30567:1;30564;30560:9;30555:14;;30390:185;;;;:::o;30581:177::-;30721:29;30717:1;30709:6;30705:14;30698:53;30581:177;:::o;30764:366::-;30906:3;30927:67;30991:2;30986:3;30927:67;:::i;:::-;30920:74;;31003:93;31092:3;31003:93;:::i;:::-;31121:2;31116:3;31112:12;31105:19;;30764:366;;;:::o;31136:419::-;31302:4;31340:2;31329:9;31325:18;31317:26;;31389:9;31383:4;31379:20;31375:1;31364:9;31360:17;31353:47;31417:131;31543:4;31417:131;:::i;:::-;31409:139;;31136:419;;;:::o;31561:220::-;31701:34;31697:1;31689:6;31685:14;31678:58;31770:3;31765:2;31757:6;31753:15;31746:28;31561:220;:::o;31787:366::-;31929:3;31950:67;32014:2;32009:3;31950:67;:::i;:::-;31943:74;;32026:93;32115:3;32026:93;:::i;:::-;32144:2;32139:3;32135:12;32128:19;;31787:366;;;:::o;32159:419::-;32325:4;32363:2;32352:9;32348:18;32340:26;;32412:9;32406:4;32402:20;32398:1;32387:9;32383:17;32376:47;32440:131;32566:4;32440:131;:::i;:::-;32432:139;;32159:419;;;:::o
Swarm Source
ipfs://a7d55e939fdc036ea27c2748052ad2cf9c0dae66c4925973460171eaa2768199
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.
Add Token to MetaMask (Web3)