More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Latest 25 internal transactions (View All)
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
12833370 | 1118 days ago | 0.00073336 AVAX | ||||
12833370 | 1118 days ago | 0.00073336 AVAX | ||||
12833365 | 1118 days ago | 0.35629535 AVAX | ||||
12833365 | 1118 days ago | 0.35629535 AVAX | ||||
12833272 | 1118 days ago | 0.24211802 AVAX | ||||
12833272 | 1118 days ago | 0.24211802 AVAX | ||||
12833226 | 1118 days ago | 0.00479154 AVAX | ||||
12833226 | 1118 days ago | 0.00479154 AVAX | ||||
12833217 | 1118 days ago | 0.29062764 AVAX | ||||
12833217 | 1118 days ago | 0.29062764 AVAX | ||||
12833201 | 1118 days ago | 0.03438262 AVAX | ||||
12833201 | 1118 days ago | 0.03438262 AVAX | ||||
12833192 | 1118 days ago | Contract Creation | 0 AVAX | |||
12833186 | 1118 days ago | 0.15909924 AVAX | ||||
12833186 | 1118 days ago | 0.15909924 AVAX | ||||
12833171 | 1118 days ago | 0.03444481 AVAX | ||||
12833171 | 1118 days ago | 0.03444481 AVAX | ||||
12833159 | 1118 days ago | 0.00228901 AVAX | ||||
12833159 | 1118 days ago | 0.00228901 AVAX | ||||
12833154 | 1118 days ago | 0.0345532 AVAX | ||||
12833154 | 1118 days ago | 0.0345532 AVAX | ||||
12833140 | 1118 days ago | 0.1063763 AVAX | ||||
12833140 | 1118 days ago | 0.1063763 AVAX | ||||
12833134 | 1118 days ago | 0.1061333 AVAX | ||||
12833134 | 1118 days ago | 0.1061333 AVAX |
Loading...
Loading
Contract Name:
MansionHelper
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at snowscan.xyz on 2022-02-23 */ /** *Submitted for verification at snowtrace.io on 2022-01-30 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is TKNaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouTKNd) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouTKNd) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouTKNd) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouTKNd) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // This method relies on extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; assembly { size := extcodesize(account) } return size > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain `call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: value}(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the * revert reason using the provided one. * * _Available since v4.3._ */ function verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) internal pure returns (bytes memory) { if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } library SafeERC20 { using Address for address; function safeTransfer( IERC20 token, address to, uint256 value ) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom( IERC20 token, address from, address to, uint256 value ) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } /** * @dev Deprecated. This function has issues similar to the ones found in * {IERC20-approve}, and its usage is discouraged. * * Whenever possible, use {safeIncreaseAllowance} and * {safeDecreaseAllowance} instead. */ function safeApprove( IERC20 token, address spender, uint256 value ) internal { // safeApprove should only be called when setting an initial allowance, // or when resetting it to zero. To increase and decrease it, use // 'safeIncreaseAllowance' and 'safeDecreaseAllowance' require( (value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); } function safeIncreaseAllowance( IERC20 token, address spender, uint256 value ) internal { uint256 newAllowance = token.allowance(address(this), spender) + value; _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } function safeDecreaseAllowance( IERC20 token, address spender, uint256 value ) internal { unchecked { uint256 oldAllowance = token.allowance(address(this), spender); require(oldAllowance >= value, "SafeERC20: decreased allowance below zero"); uint256 newAllowance = oldAllowance - value; _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } } /** * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement * on the return value: the return value is optional (but if data is returned, it must not be false). * @param token The token targeted by the call. * @param data The call data (encoded using abi.encode or one of its variants). */ function _callOptionalReturn(IERC20 token, bytes memory data) private { // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that // the target address contains contract code and also asserts for success in the low-level call. bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed"); if (returndata.length > 0) { // Return data is optional require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } } } interface IRouter01 { function factory() external pure returns (address); function WAVAX() external pure returns (address); function addLiquidityAVAX( address token, uint amountTokenDesired, uint amountTokenMin, uint amountAVAXMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountAVAX, uint liquidity); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IRouter02 is IRouter01 { function swapExactTokensForAVAXSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract Pool is Ownable { IERC20 public PLAYMATES; constructor(address _PLAYMATES) { PLAYMATES = IERC20(_PLAYMATES); } function pay(address _to, uint _amount) external onlyOwner returns (bool) { return PLAYMATES.transfer(_to, _amount); } } interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); } abstract contract ERC165 is IERC165 { /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165).interfaceId; } } interface IERC721 is IERC165 { /** * @dev Emitted when `tokenId` token is transferred from `from` to `to`. */ event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. */ event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets. */ event ApprovalForAll(address indexed owner, address indexed operator, bool approved); /** * @dev Returns the number of tokens in ``owner``'s account. */ function balanceOf(address owner) external view returns (uint256 balance); /** * @dev Returns the owner of the `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function ownerOf(uint256 tokenId) external view returns (address owner); /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Transfers `tokenId` token from `from` to `to`. * * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an {Approval} event. */ function approve(address to, uint256 tokenId) external; /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the caller. * * Emits an {ApprovalForAll} event. */ function setApprovalForAll(address operator, bool _approved) external; /** * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * * See {setApprovalForAll} */ function isApprovedForAll(address owner, address operator) external view returns (bool); /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; } interface MansionManager is IERC721 { function price(address) external returns(uint256); function createNode(address account, string memory nodeName) external; function claim(address account, uint256 _id) external returns (uint); function getNameOf(uint256 _id) external view returns (string memory); function getMintOf(uint256 _id) external view returns (uint64); function getClaimOf(uint256 _id) external view returns (uint64); } interface RewardToken is IERC20{ function nodeApprove(address spender, uint256 amount) external returns (bool); } interface DistrictHelper { function claim(address account, uint256 _id) external returns (uint); } contract MansionHelper is Ownable { MansionManager public manager; IERC20 public PLAYMATES; DistrictHelper public districtHelper; IRouter02 public dexRouter; using SafeMath for uint; using SafeMath for uint256; Pool public pool; uint256 public baseFee = 15; uint256 public newTax = 0; address public DEAD = 0x000000000000000000000000000000000000dEaD; address private WAVAX; address payable public marketingWallet = payable(0x8C400D07C258e07681587D3DBDc3dF1CE3306DD7); address public currentRouter; address public TREASURY = 0xE63fb42e89cD67d93bcb6DC5E9388B347E3174be; uint256 public claimLiquidityAmount = 0; uint256 public claimLiquidityThreshold = 10; uint public swapThreshold = 10; uint public maxWallet = 200; uint public maxMansionTX = 20; struct NodeRatios { uint16 poolFee; uint16 liquidityFee; uint16 total; } NodeRatios public _nodeRatios = NodeRatios({ poolFee: 80, liquidityFee: 20, total: 100 }); struct ClaimRatios { uint16 poolClaimFee; uint16 marketingFee; uint16 total; } ClaimRatios public _claimRatios = ClaimRatios({ poolClaimFee: 80, marketingFee: 20, total: 100 }); struct NewTaxRatios { uint16 rewards; uint16 liquidity; uint16 marketing; uint16 treasury; uint16 total; } NewTaxRatios public _newTaxRatios = NewTaxRatios({ rewards: 50, liquidity: 30, marketing: 10, treasury: 10, total: 100 }); bool private swapLiquify = true; IERC20 public DISTRICT = IERC20(0xfb47FabEf2e2b4032e4AdA60f7a3729be048e07d); event AutoLiquify(uint256 amountAVAX, uint256 amount); event Transfer(address to, uint256 amount); event Received(address, uint); mapping(address => bool) public blacklist; constructor(address _manager, address _PLAYMATES, address _district) { manager = MansionManager(_manager); districtHelper = DistrictHelper(_district); PLAYMATES = IERC20(_PLAYMATES); pool = new Pool(_PLAYMATES); currentRouter = 0x60aE616a2155Ee3d9A68541Ba4544862310933d4; dexRouter = IRouter02(currentRouter); WAVAX = dexRouter.WAVAX(); } receive() external payable { emit Received(msg.sender, msg.value); } function setBlacklisted(address user, bool _val) external onlyOwner { blacklist[user] = _val; } function setTreasury(address _TREASURY) external onlyOwner { TREASURY = _TREASURY; } function setNewUpgrade(IERC20 _DISTRICT) external onlyOwner { DISTRICT = IERC20(_DISTRICT); } function setNewDistrictHelper(address _district) external onlyOwner { districtHelper = DistrictHelper(_district); } function approveTokenOnRouter() external onlyOwner{ PLAYMATES.approve(currentRouter, type(uint256).max); } function updatePoolAddress(address _pool) external onlyOwner { pool.pay(address(owner()), PLAYMATES.balanceOf(address(pool))); pool = new Pool(_pool); } function updateManager(MansionManager _newManager) external onlyOwner { manager = MansionManager(_newManager); } function updateMaxWallet(uint256 _maxWallet) external onlyOwner { maxWallet = _maxWallet; } function updateBaseFee(uint256 _baseFee) external onlyOwner { baseFee = _baseFee; } function updateNewTax(uint256 _newTax) external onlyOwner { newTax = _newTax; } function updateMaxMansionTX(uint256 _maxMansionTX) external onlyOwner { maxMansionTX = _maxMansionTX; } function updateMarketingWallet(address payable _marketingWallet) external onlyOwner { marketingWallet = _marketingWallet; } function setNodeRatios(uint16 _poolFee, uint16 _liquidityFee) external onlyOwner { _nodeRatios.poolFee = _poolFee; _nodeRatios.liquidityFee = _liquidityFee; _nodeRatios.total = _poolFee + _liquidityFee; } function setClaimRatios(uint16 _poolClaimFee, uint16 _marketingFee) external onlyOwner { _claimRatios.poolClaimFee = _poolClaimFee; _claimRatios.marketingFee = _marketingFee; _claimRatios.total = _poolClaimFee + _marketingFee; } function setNewTaxRatios(uint16 _rewardsFee, uint16 _marketingFee, uint16 _liquidityFee, uint16 _treasuryFee) external onlyOwner { _newTaxRatios.rewards = _rewardsFee; _newTaxRatios.marketing = _marketingFee; _newTaxRatios.liquidity = _liquidityFee; _newTaxRatios.treasury = _treasuryFee; _newTaxRatios.total = _rewardsFee + _marketingFee + _liquidityFee + _treasuryFee; } function setClaimLiquidityThreshold(uint256 _amount) external onlyOwner { claimLiquidityThreshold = _amount; } function tokenApprovals() external onlyOwner { PLAYMATES.approve(address(dexRouter), 2000000 * 10^18); } function setNewRouter(address _dexRouter) external onlyOwner() { dexRouter = IRouter02(_dexRouter); } function contractSwap(uint256 numTokensToSwap) internal { if (_nodeRatios.total == 0) { return; } uint256 amountToLiquify = ((numTokensToSwap * _nodeRatios.liquidityFee) / (_nodeRatios.total)) / 2; uint256 amountToRewardsPool = (numTokensToSwap * _nodeRatios.poolFee) / (_nodeRatios.total); if(amountToRewardsPool > 0) { PLAYMATES.transfer(address(pool), amountToRewardsPool); } address[] memory path = new address[](2); path[0] = address(PLAYMATES); path[1] = WAVAX; dexRouter.swapExactTokensForAVAXSupportingFeeOnTransferTokens( amountToLiquify, 0, path, address(this), block.timestamp ); uint256 amountAVAX = address(this).balance; if (amountToLiquify > 0) { dexRouter.addLiquidityAVAX{value: amountAVAX}( address(PLAYMATES), amountToLiquify, 0, 0, marketingWallet, block.timestamp ); emit AutoLiquify(amountAVAX, amountToLiquify); } } function claimContractSwap(uint256 numTokensToSwap) internal { address[] memory path = new address[](2); path[0] = address(PLAYMATES); path[1] = WAVAX; dexRouter.swapExactTokensForAVAXSupportingFeeOnTransferTokens( numTokensToSwap, 0, path, address(this), block.timestamp ); uint256 amountAVAX = address(this).balance; dexRouter.addLiquidityAVAX{value: amountAVAX}( address(PLAYMATES), numTokensToSwap, 0, 0, marketingWallet, block.timestamp ); emit AutoLiquify(amountAVAX, numTokensToSwap); claimLiquidityAmount = 0; } function createNodeWithTokens(string memory name) public { require(bytes(name).length > 0 && bytes(name).length < 33, "HELPER: name size is invalid"); address sender = _msgSender(); require(sender != address(0), "HELPER: Creation from the zero address"); uint256 nodePrice = manager.price(sender) * 10 ** 18; require(nodePrice > 0, "error"); require(PLAYMATES.balanceOf(sender) >= nodePrice, "HELPER: Balance too low for creation."); require(manager.balanceOf(sender) + 1 < maxWallet, "HELPER: Exceeds max wallet amount"); PLAYMATES.transferFrom(_msgSender(), address(this), nodePrice); manager.createNode(sender, name); } function createMultipleNodeWithTokens(string memory name, uint amount) public { require(amount <= maxMansionTX, "HELPER: Exceeds max transaction amount"); require(bytes(name).length > 0 && bytes(name).length < 33, "HELPER: name size is invalid"); address sender = _msgSender(); require(sender != address(0), "HELPER: Creation from the zero address"); uint256 nodePrice = manager.price(sender) * 10 ** 18; require(PLAYMATES.balanceOf(sender) >= nodePrice * amount, "HELPER: Balance too low for creation."); require(manager.balanceOf(sender) + amount < maxWallet, "HELPER: Exceeds max wallet amount"); PLAYMATES.transferFrom(_msgSender(), address(this), nodePrice * amount); for (uint256 i = 0; i < amount; i++) { manager.createNode(sender, name); } if ((PLAYMATES.balanceOf(address(this)) > swapThreshold)) { uint256 contractTokenBalance = PLAYMATES.balanceOf(address(this)); contractSwap(contractTokenBalance); } } function createMultipleNodeWithTokensAndName(string[] memory names, uint amount) public { require(amount <= maxMansionTX, "HELPER: Exceeds max transaction amount"); require(names.length == amount, "HELPER: You need to provide exactly matching names"); address sender = _msgSender(); require(sender != address(0), "HELPER: creation from the zero address"); uint256 nodePrice = manager.price(sender) * 10 ** 18; require(PLAYMATES.balanceOf(sender) >= nodePrice * amount, "HELPER: Balance too low for creation."); require(manager.balanceOf(sender) + amount < maxWallet, "HELPER: Exceeds max wallet amount"); PLAYMATES.transferFrom(_msgSender(), address(this), nodePrice * amount); for (uint256 i = 0; i < amount; i++) { string memory name = names[i]; require(bytes(name).length > 0 && bytes(name).length < 33, "HELPER: name size is invalid"); manager.createNode(sender, name); } if ((PLAYMATES.balanceOf(address(this)) > swapThreshold)) { uint256 contractTokenBalance = PLAYMATES.balanceOf(address(this)); contractSwap(contractTokenBalance); } } function createNodesWithRewards(string memory name, uint64[] calldata _nodes, uint256 amount, bool useBalance) public { require(amount <= maxMansionTX, "HELPER: Exceeds max transaction amount"); address sender = _msgSender(); require(sender != address(0), "HELPER: creation from the zero address"); require(blacklist[sender] == false, "HELPER: You are blacklisted"); uint256 rewardAmount = 0; for (uint256 i = 0; i < _nodes.length; i++) { rewardAmount = rewardAmount + manager.claim(_msgSender(), _nodes[i]); } uint256 nodePrice = manager.price(sender) * 10 ** 18; if (!useBalance) require(rewardAmount >= nodePrice * amount,"HELPER: You don't have enough reward to cash out"); else require(useBalance && rewardAmount + PLAYMATES.balanceOf(sender) >= nodePrice * amount,"HELPER: You don't have enough reward to cash out"); require(manager.balanceOf(sender) + amount < maxWallet, "HELPER: Exceeds max wallet amount"); for (uint256 i = 0; i < amount; i++) { require(bytes(name).length > 0 && bytes(name).length < 33, "HELPER: name size is invalid"); manager.createNode(sender, name); } if (rewardAmount > nodePrice * amount) { uint256 remainingRewards = rewardAmount - nodePrice * amount; uint256 feeAmount = remainingRewards.mul(getClaimFee(sender)).div(100); uint256 excessRewards = remainingRewards - feeAmount; pool.pay(sender, excessRewards); uint256 amountToCollect = (feeAmount * _claimRatios.marketingFee) / (_claimRatios.total); pool.pay(address(this), amountToCollect); } else if (useBalance && rewardAmount + PLAYMATES.balanceOf(sender) >= nodePrice * amount) { uint256 balanceToTransfer = nodePrice * amount - rewardAmount; PLAYMATES.transferFrom(_msgSender(), address(this), balanceToTransfer); if ((PLAYMATES.balanceOf(address(this)) > swapThreshold)) { uint256 contractTokenBalance = PLAYMATES.balanceOf(address(this)); contractSwap(contractTokenBalance); } } } function getClaimFee (address sender) public view returns (uint256) { uint256 claimFee; if(DISTRICT.balanceOf(sender) >= baseFee) { return 0; } else { claimFee = baseFee.sub(DISTRICT.balanceOf(sender)); return claimFee; } } function claimAll(uint64[] calldata _nodes) public { address sender = _msgSender(); require(sender != address(0), "HELPER: creation from the zero address"); require(blacklist[sender] == false, "HELPER: You are blacklisted"); uint256 rewardAmount = 0; for (uint256 i = 0; i < _nodes.length; i++) { rewardAmount = rewardAmount + manager.claim(_msgSender(), _nodes[i]); } require(rewardAmount > 0,"HELPER: You don't have enough reward to cash out"); uint256 feeAmount = rewardAmount.mul(getClaimFee(sender)).div(100); uint256 newFeeAmount = rewardAmount.mul(newTax).div(100); require(feeAmount > 0, "Helper: Error"); if (getClaimFee(sender) > 0) { uint256 realReward = rewardAmount - feeAmount - newFeeAmount; pool.pay(sender, realReward); // MARKETING uint256 amountToMarketingWallet = (feeAmount * _claimRatios.marketingFee) / (_claimRatios.total) + (newFeeAmount * _newTaxRatios.marketing) / _newTaxRatios.total; pool.pay(address(this), amountToMarketingWallet); address[] memory path = new address[](2); path[0] = address(PLAYMATES); path[1] = WAVAX; dexRouter.swapExactTokensForAVAXSupportingFeeOnTransferTokens( amountToMarketingWallet, 0, path, marketingWallet, block.timestamp ); if (newTax > 0) { // REWARDS POOL -> JUST DON'T TRANSFER ANYTHING, ALREADY IN THE POOL // TREASURY uint256 amountToTreasury = (newFeeAmount * _newTaxRatios.treasury) / _newTaxRatios.total; pool.pay(address(this), amountToTreasury); dexRouter.swapExactTokensForAVAXSupportingFeeOnTransferTokens( amountToTreasury, 0, path, TREASURY, block.timestamp ); // LIQUIDITY uint256 amountToLiquidity = (newFeeAmount * _newTaxRatios.liquidity) / _newTaxRatios.total; claimLiquidityAmount += amountToLiquidity; if (claimLiquidityAmount >= claimLiquidityThreshold) { pool.pay(address(this), claimLiquidityAmount); claimContractSwap(claimLiquidityAmount); } } } else { pool.pay(sender, rewardAmount); } } function claimDistricts(uint64[] calldata _nodes) public { address sender = _msgSender(); require(sender != address(0), "HELPER: creation from the zero address"); require(blacklist[sender] == false, "HELPER: You are blacklisted"); uint256 rewardAmount = 0; for (uint256 i = 0; i < _nodes.length; i++) { rewardAmount = rewardAmount + districtHelper.claim(_msgSender(), _nodes[i]); } require(rewardAmount > 0,"HELPER: You don't have enough reward to cash out"); uint256 feeAmount = rewardAmount.mul(getClaimFee(sender)).div(100); require(feeAmount > 0, "Helper: Error"); if (getClaimFee(sender) > 0) { uint256 realReward = rewardAmount - feeAmount; pool.pay(sender, realReward); uint256 amountToMarketingWallet = (feeAmount * _claimRatios.marketingFee) / (_claimRatios.total); pool.pay(address(this), amountToMarketingWallet); address[] memory path = new address[](2); path[0] = address(PLAYMATES); path[1] = WAVAX; dexRouter.swapExactTokensForAVAXSupportingFeeOnTransferTokens( amountToMarketingWallet, 0, path, marketingWallet, block.timestamp ); } else { pool.pay(sender, rewardAmount); } } function claim(uint64 _node) public { address sender = _msgSender(); require(sender != address(0), "HELPER: creation from the zero address"); require(blacklist[sender] == false, "HELPER: You are blacklisted"); uint256 rewardAmount = manager.claim(_msgSender(), _node); require(rewardAmount > 0,"HELPER: You don't have enough reward to cash out"); uint256 feeAmount = rewardAmount.mul(getClaimFee(sender)).div(100); uint256 newFeeAmount = rewardAmount.mul(newTax).div(100); require(feeAmount > 0, "Helper: Error"); if (getClaimFee(sender) > 0) { uint256 realReward = rewardAmount - feeAmount - newFeeAmount; pool.pay(sender, realReward); // MARKETING uint256 amountToMarketingWallet = (feeAmount * _claimRatios.marketingFee) / (_claimRatios.total) + (newFeeAmount * _newTaxRatios.marketing) / _newTaxRatios.total; pool.pay(address(this), amountToMarketingWallet); address[] memory path = new address[](2); path[0] = address(PLAYMATES); path[1] = WAVAX; dexRouter.swapExactTokensForAVAXSupportingFeeOnTransferTokens( amountToMarketingWallet, 0, path, marketingWallet, block.timestamp ); if (newTax > 0) { // REWARDS POOL -> JUST DON'T TRANSFER ANYTHING, ALREADY IN THE POOL // TREASURY uint256 amountToTreasury = (newFeeAmount * _newTaxRatios.treasury) / _newTaxRatios.total; pool.pay(address(this), amountToTreasury); dexRouter.swapExactTokensForAVAXSupportingFeeOnTransferTokens( amountToTreasury, 0, path, TREASURY, block.timestamp ); // LIQUIDITY uint256 amountToLiquidity = (newFeeAmount * _newTaxRatios.liquidity) / _newTaxRatios.total; claimLiquidityAmount += amountToLiquidity; if (claimLiquidityAmount >= claimLiquidityThreshold) { pool.pay(address(this), claimLiquidityAmount); claimContractSwap(claimLiquidityAmount); } } } else { pool.pay(sender, rewardAmount); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_manager","type":"address"},{"internalType":"address","name":"_PLAYMATES","type":"address"},{"internalType":"address","name":"_district","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountAVAX","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"Received","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DISTRICT","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PLAYMATES","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TREASURY","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_claimRatios","outputs":[{"internalType":"uint16","name":"poolClaimFee","type":"uint16"},{"internalType":"uint16","name":"marketingFee","type":"uint16"},{"internalType":"uint16","name":"total","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_newTaxRatios","outputs":[{"internalType":"uint16","name":"rewards","type":"uint16"},{"internalType":"uint16","name":"liquidity","type":"uint16"},{"internalType":"uint16","name":"marketing","type":"uint16"},{"internalType":"uint16","name":"treasury","type":"uint16"},{"internalType":"uint16","name":"total","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_nodeRatios","outputs":[{"internalType":"uint16","name":"poolFee","type":"uint16"},{"internalType":"uint16","name":"liquidityFee","type":"uint16"},{"internalType":"uint16","name":"total","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"approveTokenOnRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"baseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint64","name":"_node","type":"uint64"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64[]","name":"_nodes","type":"uint64[]"}],"name":"claimAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64[]","name":"_nodes","type":"uint64[]"}],"name":"claimDistricts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimLiquidityAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimLiquidityThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"createMultipleNodeWithTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string[]","name":"names","type":"string[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"createMultipleNodeWithTokensAndName","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"name":"createNodeWithTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint64[]","name":"_nodes","type":"uint64[]"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"useBalance","type":"bool"}],"name":"createNodesWithRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentRouter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"districtHelper","outputs":[{"internalType":"contract DistrictHelper","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"getClaimFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manager","outputs":[{"internalType":"contract MansionManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxMansionTX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"newTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pool","outputs":[{"internalType":"contract Pool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"_val","type":"bool"}],"name":"setBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setClaimLiquidityThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_poolClaimFee","type":"uint16"},{"internalType":"uint16","name":"_marketingFee","type":"uint16"}],"name":"setClaimRatios","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_district","type":"address"}],"name":"setNewDistrictHelper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_dexRouter","type":"address"}],"name":"setNewRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_rewardsFee","type":"uint16"},{"internalType":"uint16","name":"_marketingFee","type":"uint16"},{"internalType":"uint16","name":"_liquidityFee","type":"uint16"},{"internalType":"uint16","name":"_treasuryFee","type":"uint16"}],"name":"setNewTaxRatios","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_DISTRICT","type":"address"}],"name":"setNewUpgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_poolFee","type":"uint16"},{"internalType":"uint16","name":"_liquidityFee","type":"uint16"}],"name":"setNodeRatios","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_TREASURY","type":"address"}],"name":"setTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenApprovals","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_baseFee","type":"uint256"}],"name":"updateBaseFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract MansionManager","name":"_newManager","type":"address"}],"name":"updateManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_marketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxMansionTX","type":"uint256"}],"name":"updateMaxMansionTX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWallet","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newTax","type":"uint256"}],"name":"updateNewTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pool","type":"address"}],"name":"updatePoolAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
600f600681905560006007819055600880546001600160a01b031990811661dead17909155600a80548216738c400d07c258e07681587d3dbdc3df1ce3306dd7178155600c805490921673e63fb42e89cd67d93bcb6dc5e9388b347e3174be17909155600d91909155600e8190559081905560c8601055601460118190556050608081905260a0829052606460c08190526012805464640014005065ffffffffffff19918216811790925560e09390935261010084905261012082905260138054909316179091556101e0604052603261014052601e610160526101808390526101a0929092526101c09190915280546864000a000a001e00326001600160501b03199091161790556015805474fb47fabef2e2b4032e4ada60f7a3729be048e07d016001600160a81b03199091161790553480156200013e57600080fd5b5060405162005a5d38038062005a5d83398101604081905262000161916200036c565b6200016c33620002cc565b600180546001600160a01b038086166001600160a01b0319928316179092556003805484841690831617905560028054928516929091169190911790556040518290620001b9906200031c565b6001600160a01b039091168152602001604051809103906000f080158015620001e6573d6000803e3d6000fd5b50600580546001600160a01b03929092166001600160a01b0319928316179055600b805482167360ae616a2155ee3d9a68541ba4544862310933d49081179091556004805490921681178255604080516339d94ae160e11b8152905191926373b295c2928282019260209290829003018186803b1580156200026757600080fd5b505afa1580156200027c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a2919062000347565b600980546001600160a01b0319166001600160a01b039290921691909117905550620003b6915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61049980620055c483390190565b80516001600160a01b03811681146200034257600080fd5b919050565b6000602082840312156200035a57600080fd5b62000365826200032a565b9392505050565b6000806000606084860312156200038257600080fd5b6200038d846200032a565b92506200039d602085016200032a565b9150620003ad604085016200032a565b90509250925092565b6151fe80620003c66000396000f3fe608060405260043610620003095760003560e01c806381582dda1162000194578063bab3eadc11620000ee578063f0f4426011620000a1578063f5c709731162000078578063f5c709731462000a29578063f5cc34e51462000a4e578063f8b45b051462000a73578063f9f92be41462000a8b57600080fd5b8063f0f4426014620009c7578063f2fde38b14620009ec578063f58fad851462000a1157600080fd5b8063bab3eadc14620008f6578063cf0cef01146200091b578063d00f9db11462000933578063d01dd6d21462000958578063e7694bc6146200097d578063eafb5a3c14620009a257600080fd5b80638f0ba4ca11620001475780638f0ba4ca14620008165780639c69fb53146200083b578063aab8ab0c1462000862578063aacebbe31462000887578063b2ecfc1814620008ac578063b96d611c14620008d157600080fd5b806381582dda14620007005780638270c049146200077c57806388f2193d14620007945780638a6458cc14620007b95780638da5cb5b14620007d15780638e69018614620007f157600080fd5b806340b2e4791162000263578063644afb7c1162000216578063715018a611620001ed578063715018a6146200067c57806375f0a87414620006945780637c9bf13d14620006b65780637eabbf1f14620006db57600080fd5b8063644afb7c146200061d5780636aa4b0a614620006425780636ef25c3a146200066457600080fd5b806340b2e479146200053857806342ce736c146200055d578063481c6a75146200058257806358aba00f14620005a45780635e58bea514620005c95780636251be7114620005fb57600080fd5b80631c499ab011620002bc5780631c499ab014620004375780631cb8eae1146200045c5780632205ac2514620004b45780632369fde514620004d95780632d2c556514620004f15780632f6d4c82146200051357600080fd5b806303fd2a4514620003515780630445b66714620003905780630758d92414620003b7578063122fea3b14620003d9578063168fea0714620003fb57806316f0115b146200041557600080fd5b366200034c577f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f8852587433346040516200034292919062004870565b60405180910390a1005b600080fd5b3480156200035e57600080fd5b5060085462000373906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156200039d57600080fd5b50620003a8600f5481565b60405190815260200162000387565b348015620003c457600080fd5b5060045462000373906001600160a01b031681565b348015620003e657600080fd5b50600b5462000373906001600160a01b031681565b3480156200040857600080fd5b506200041362000ad0565b005b3480156200042257600080fd5b5060055462000373906001600160a01b031681565b3480156200044457600080fd5b50620004136200045636600462004727565b62000b99565b3480156200046957600080fd5b506012546200048e9061ffff80821691620100008104821691600160201b9091041683565b6040805161ffff9485168152928416602084015292169181019190915260600162000387565b348015620004c157600080fd5b5062000413620004d336600462004727565b62000bcb565b348015620004e657600080fd5b506200041362000bfd565b348015620004fe57600080fd5b50600c5462000373906001600160a01b031681565b3480156200052057600080fd5b506200041362000532366004620045b8565b62000c66565b3480156200054557600080fd5b50620004136200055736600462004727565b62001504565b3480156200056a57600080fd5b50620004136200057c36600462004727565b62001536565b3480156200058f57600080fd5b5060015462000373906001600160a01b031681565b348015620005b157600080fd5b5062000413620005c3366004620043d7565b62001568565b348015620005d657600080fd5b506013546200048e9061ffff80821691620100008104821691600160201b9091041683565b3480156200060857600080fd5b5060025462000373906001600160a01b031681565b3480156200062a57600080fd5b50620004136200063c36600462004692565b620015b7565b3480156200064f57600080fd5b5060035462000373906001600160a01b031681565b3480156200067157600080fd5b50620003a860065481565b3480156200068957600080fd5b506200041362001635565b348015620006a157600080fd5b50600a5462000373906001600160a01b031681565b348015620006c357600080fd5b5062000413620006d5366004620046ca565b62001670565b348015620006e857600080fd5b5062000413620006fa366004620043d7565b62001740565b3480156200070d57600080fd5b50601454620007469061ffff80821691620100008104821691600160201b8204811691600160301b8104821691600160401b9091041685565b6040805161ffff968716815294861660208601529285169284019290925283166060830152909116608082015260a00162000387565b3480156200078957600080fd5b50620003a860115481565b348015620007a157600080fd5b5062000413620007b336600462004511565b6200178f565b348015620007c657600080fd5b50620003a8600d5481565b348015620007de57600080fd5b506000546001600160a01b031662000373565b348015620007fe57600080fd5b50620004136200081036600462004727565b62001c30565b3480156200082357600080fd5b50620004136200083536600462004577565b62001c62565b3480156200084857600080fd5b50601554620003739061010090046001600160a01b031681565b3480156200086f57600080fd5b5062000413620008813660046200478a565b62001fd4565b3480156200089457600080fd5b5062000413620008a6366004620043d7565b6200265f565b348015620008b957600080fd5b5062000413620008cb36600462004435565b620026ae565b348015620008de57600080fd5b5062000413620008f036600462004649565b62002c29565b3480156200090357600080fd5b506200041362000915366004620043d7565b62002fb9565b3480156200092857600080fd5b50620003a8600e5481565b3480156200094057600080fd5b506200041362000952366004620043d7565b6200300e565b3480156200096557600080fd5b506200041362000977366004620043f7565b620031b8565b3480156200098a57600080fd5b50620003a86200099c366004620043d7565b62003210565b348015620009af57600080fd5b5062000413620009c1366004620043d7565b6200334a565b348015620009d457600080fd5b5062000413620009e6366004620043d7565b62003399565b348015620009f957600080fd5b506200041362000a0b366004620043d7565b620033e8565b34801562000a1e57600080fd5b50620003a860075481565b34801562000a3657600080fd5b506200041362000a4836600462004511565b62003487565b34801562000a5b57600080fd5b506200041362000a6d36600462004692565b62003bbf565b34801562000a8057600080fd5b50620003a860105481565b34801562000a9857600080fd5b5062000abf62000aaa366004620043d7565b60166020526000908152604090205460ff1681565b604051901515815260200162000387565b6000546001600160a01b0316331462000b065760405162461bcd60e51b815260040162000afd9062004a93565b60405180910390fd5b600254600b5460405163095ea7b360e01b81526001600160a01b039283169263095ea7b39262000b40929116906000199060040162004870565b602060405180830381600087803b15801562000b5b57600080fd5b505af115801562000b70573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b96919062004557565b50565b6000546001600160a01b0316331462000bc65760405162461bcd60e51b815260040162000afd9062004a93565b601055565b6000546001600160a01b0316331462000bf85760405162461bcd60e51b815260040162000afd9062004a93565b600755565b6000546001600160a01b0316331462000c2a5760405162461bcd60e51b815260040162000afd9062004a93565b6002546004805460405163095ea7b360e01b81526001600160a01b039384169363095ea7b39362000b4093909116916301312d12910162004870565b60115482111562000c8b5760405162461bcd60e51b815260040162000afd9062004a4d565b338062000cac5760405162461bcd60e51b815260040162000afd9062004aff565b6001600160a01b03811660009081526016602052604090205460ff161562000ce85760405162461bcd60e51b815260040162000afd9062004a16565b6000805b8581101562000dcb576001546001600160a01b031663aad3ec963389898581811062000d1c5762000d1c62004cde565b905060200201602081019062000d3391906200478a565b6040518363ffffffff1660e01b815260040162000d52929190620048ea565b602060405180830381600087803b15801562000d6d57600080fd5b505af115801562000d82573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000da8919062004741565b62000db4908362004c30565b91508062000dc28162004caa565b91505062000cec565b506001546040516315d5220f60e31b81526001600160a01b038481166004830152600092169063aea9107890602401602060405180830381600087803b15801562000e1557600080fd5b505af115801562000e2a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e50919062004741565b62000e6490670de0b6b3a764000062004c6e565b90508362000ea05762000e78858262004c6e565b82101562000e9a5760405162461bcd60e51b815260040162000afd9062004b45565b62000f64565b83801562000f45575062000eb5858262004c6e565b6002546040516370a0823160e01b81526001600160a01b038681166004830152909116906370a082319060240160206040518083038186803b15801562000efb57600080fd5b505afa15801562000f10573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f36919062004741565b62000f42908462004c30565b10155b62000f645760405162461bcd60e51b815260040162000afd9062004b45565b6010546001546040516370a0823160e01b81526001600160a01b038681166004830152889216906370a082319060240160206040518083038186803b15801562000fad57600080fd5b505afa15801562000fc2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000fe8919062004741565b62000ff4919062004c30565b10620010145760405162461bcd60e51b815260040162000afd90620049d5565b60005b85811015620010d0576000895111801562001033575060218951105b620010525760405162461bcd60e51b815260040162000afd9062004ac8565b6001546040516312b8603f60e01b81526001600160a01b03909116906312b8603f90620010869087908d9060040162004889565b600060405180830381600087803b158015620010a157600080fd5b505af1158015620010b6573d6000803e3d6000fd5b505050508080620010c79062004caa565b91505062001017565b50620010dd858262004c6e565b8211156200128c576000620010f3868362004c6e565b620010ff908462004c90565b9050600062001127606462001120620011188862003210565b859062003c3d565b9062003ccd565b9050600062001137828462004c90565b600554604051636203b43b60e11b81529192506001600160a01b03169063c4076876906200116c908990859060040162004870565b602060405180830381600087803b1580156200118757600080fd5b505af11580156200119c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011c2919062004557565b5060135460009061ffff600160201b8204811691620011ea9162010000909104168562004c6e565b620011f6919062004c4b565b600554604051636203b43b60e11b81529192506001600160a01b03169063c4076876906200122b903090859060040162004870565b602060405180830381600087803b1580156200124657600080fd5b505af11580156200125b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001281919062004557565b5050505050620014fa565b838015620013315750620012a1858262004c6e565b6002546040516370a0823160e01b81526001600160a01b038681166004830152909116906370a082319060240160206040518083038186803b158015620012e757600080fd5b505afa158015620012fc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001322919062004741565b6200132e908462004c30565b10155b15620014fa5760008262001346878462004c6e565b62001352919062004c90565b6002546040516323b872dd60e01b81529192506001600160a01b0316906323b872dd9062001389903390309086906004016200484c565b602060405180830381600087803b158015620013a457600080fd5b505af1158015620013b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620013df919062004557565b50600f546002546040516370a0823160e01b81523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b1580156200142757600080fd5b505afa1580156200143c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001462919062004741565b1115620014f8576002546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b158015620014ae57600080fd5b505afa158015620014c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620014e9919062004741565b9050620014f68162003d11565b505b505b5050505050505050565b6000546001600160a01b03163314620015315760405162461bcd60e51b815260040162000afd9062004a93565b601155565b6000546001600160a01b03163314620015635760405162461bcd60e51b815260040162000afd9062004a93565b600e55565b6000546001600160a01b03163314620015955760405162461bcd60e51b815260040162000afd9062004a93565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314620015e45760405162461bcd60e51b815260040162000afd9062004a93565b6013805461ffff838116620100000263ffffffff19909216908516171790556200160f818362004c07565b6013805461ffff92909216600160201b0265ffff00000000199092169190911790555050565b6000546001600160a01b03163314620016625760405162461bcd60e51b815260040162000afd9062004a93565b6200166e60006200400d565b565b6000546001600160a01b031633146200169d5760405162461bcd60e51b815260040162000afd9062004a93565b6014805461ffff86811665ffff0000ffff1990921691909117600160201b868316021767ffff0000ffff00001916620100008583160267ffff000000000000191617600160301b918416919091021790558082620016fc858762004c07565b62001708919062004c07565b62001714919062004c07565b6014805461ffff92909216600160401b0269ffff00000000000000001990921691909117905550505050565b6000546001600160a01b031633146200176d5760405162461bcd60e51b815260040162000afd9062004a93565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b3380620017b05760405162461bcd60e51b815260040162000afd9062004aff565b6001600160a01b03811660009081526016602052604090205460ff1615620017ec5760405162461bcd60e51b815260040162000afd9062004a16565b6000805b83811015620018cf576003546001600160a01b031663aad3ec963387878581811062001820576200182062004cde565b90506020020160208101906200183791906200478a565b6040518363ffffffff1660e01b815260040162001856929190620048ea565b602060405180830381600087803b1580156200187157600080fd5b505af115801562001886573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620018ac919062004741565b620018b8908362004c30565b915080620018c68162004caa565b915050620017f0565b5060008111620018f35760405162461bcd60e51b815260040162000afd9062004b45565b60006200190a606462001120620011188662003210565b9050600081116200192f5760405162461bcd60e51b815260040162000afd9062004922565b60006200193c8462003210565b111562001b9d57600062001951828462004c90565b600554604051636203b43b60e11b81529192506001600160a01b03169063c40768769062001986908790859060040162004870565b602060405180830381600087803b158015620019a157600080fd5b505af1158015620019b6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019dc919062004557565b5060135460009061ffff600160201b820481169162001a049162010000909104168562004c6e565b62001a10919062004c4b565b600554604051636203b43b60e11b81529192506001600160a01b03169063c40768769062001a45903090859060040162004870565b602060405180830381600087803b15801562001a6057600080fd5b505af115801562001a75573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a9b919062004557565b50604080516002808252606082018352600092602083019080368337505060025482519293506001600160a01b03169183915060009062001ae05762001ae062004cde565b6001600160a01b03928316602091820292909201015260095482519116908290600190811062001b145762001b1462004cde565b6001600160a01b03928316602091820292909201015260048054600a54604051633b158ab160e11b81529184169363762b15629362001b60938893600093899391169142910162004b95565b600060405180830381600087803b15801562001b7b57600080fd5b505af115801562001b90573d6000803e3d6000fd5b5050505050505062001c29565b600554604051636203b43b60e11b81526001600160a01b039091169063c40768769062001bd1908690869060040162004870565b602060405180830381600087803b15801562001bec57600080fd5b505af115801562001c01573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001c27919062004557565b505b5050505050565b6000546001600160a01b0316331462001c5d5760405162461bcd60e51b815260040162000afd9062004a93565b600655565b6000815111801562001c75575060218151105b62001c945760405162461bcd60e51b815260040162000afd9062004ac8565b338062001cb55760405162461bcd60e51b815260040162000afd9062004949565b6001546040516315d5220f60e31b81526001600160a01b038381166004830152600092169063aea9107890602401602060405180830381600087803b15801562001cfe57600080fd5b505af115801562001d13573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001d39919062004741565b62001d4d90670de0b6b3a764000062004c6e565b90506000811162001d895760405162461bcd60e51b815260206004820152600560248201526432b93937b960d91b604482015260640162000afd565b6002546040516370a0823160e01b81526001600160a01b038481166004830152839216906370a082319060240160206040518083038186803b15801562001dcf57600080fd5b505afa15801562001de4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001e0a919062004741565b101562001e2b5760405162461bcd60e51b815260040162000afd9062004990565b6010546001546040516370a0823160e01b81526001600160a01b038581166004830152909116906370a082319060240160206040518083038186803b15801562001e7457600080fd5b505afa15801562001e89573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001eaf919062004741565b62001ebc90600162004c30565b1062001edc5760405162461bcd60e51b815260040162000afd90620049d5565b6002546001600160a01b03166323b872dd3330846040518463ffffffff1660e01b815260040162001f10939291906200484c565b602060405180830381600087803b15801562001f2b57600080fd5b505af115801562001f40573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001f66919062004557565b506001546040516312b8603f60e01b81526001600160a01b03909116906312b8603f9062001f9b908590879060040162004889565b600060405180830381600087803b15801562001fb657600080fd5b505af115801562001fcb573d6000803e3d6000fd5b50505050505050565b338062001ff55760405162461bcd60e51b815260040162000afd9062004aff565b6001600160a01b03811660009081526016602052604090205460ff1615620020315760405162461bcd60e51b815260040162000afd9062004a16565b600154604051635569f64b60e11b81526000916001600160a01b03169063aad3ec9690620020669033908790600401620048ea565b602060405180830381600087803b1580156200208157600080fd5b505af115801562002096573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620020bc919062004741565b905060008111620020e15760405162461bcd60e51b815260040162000afd9062004b45565b6000620020f8606462001120620011188662003210565b90506000620021196064620011206007548662003c3d90919063ffffffff16565b9050600082116200213e5760405162461bcd60e51b815260040162000afd9062004922565b60006200214b8562003210565b11156200262b5760008162002161848662004c90565b6200216d919062004c90565b600554604051636203b43b60e11b81529192506001600160a01b03169063c407687690620021a2908890859060040162004870565b602060405180830381600087803b158015620021bd57600080fd5b505af1158015620021d2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620021f8919062004557565b5060145460009061ffff600160401b82048116916200222191600160201b909104168562004c6e565b6200222d919062004c4b565b60135461ffff600160201b8204811691620022519162010000909104168762004c6e565b6200225d919062004c4b565b62002269919062004c30565b600554604051636203b43b60e11b81529192506001600160a01b03169063c4076876906200229e903090859060040162004870565b602060405180830381600087803b158015620022b957600080fd5b505af1158015620022ce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620022f4919062004557565b50604080516002808252606082018352600092602083019080368337505060025482519293506001600160a01b03169183915060009062002339576200233962004cde565b6001600160a01b0392831660209182029290920101526009548251911690829060019081106200236d576200236d62004cde565b6001600160a01b03928316602091820292909201015260048054600a54604051633b158ab160e11b81529184169363762b156293620023b9938893600093899391169142910162004b95565b600060405180830381600087803b158015620023d457600080fd5b505af1158015620023e9573d6000803e3d6000fd5b5050505060006007541115620026225760145460009061ffff600160401b82048116916200242191600160301b909104168762004c6e565b6200242d919062004c4b565b600554604051636203b43b60e11b81529192506001600160a01b03169063c40768769062002462903090859060040162004870565b602060405180830381600087803b1580156200247d57600080fd5b505af115801562002492573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620024b8919062004557565b5060048054600c54604051633b158ab160e11b81526001600160a01b039283169363762b156293620024f89387936000938a939092169142910162004b95565b600060405180830381600087803b1580156200251357600080fd5b505af115801562002528573d6000803e3d6000fd5b50506014546000925061ffff600160401b8204811692506200255291620100009004168862004c6e565b6200255e919062004c4b565b905080600d600082825462002574919062004c30565b9091555050600e54600d54106200261f57600554600d54604051636203b43b60e11b81526001600160a01b039092169163c407687691620025bb9130919060040162004870565b602060405180830381600087803b158015620025d657600080fd5b505af1158015620025eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002611919062004557565b506200261f600d546200405d565b50505b50505062001c29565b600554604051636203b43b60e11b81526001600160a01b039091169063c40768769062001bd1908790879060040162004870565b6000546001600160a01b031633146200268c5760405162461bcd60e51b815260040162000afd9062004a93565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b601154811115620026d35760405162461bcd60e51b815260040162000afd9062004a4d565b80825114620027405760405162461bcd60e51b815260206004820152603260248201527f48454c5045523a20596f75206e65656420746f2070726f766964652065786163604482015271746c79206d61746368696e67206e616d657360701b606482015260840162000afd565b3380620027a05760405162461bcd60e51b815260206004820152602760248201527f48454c5045523a20206372656174696f6e2066726f6d20746865207a65726f206044820152666164647265737360c81b606482015260840162000afd565b6001546040516315d5220f60e31b81526001600160a01b038381166004830152600092169063aea9107890602401602060405180830381600087803b158015620027e957600080fd5b505af1158015620027fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002824919062004741565b6200283890670de0b6b3a764000062004c6e565b905062002846838262004c6e565b6002546040516370a0823160e01b81526001600160a01b038581166004830152909116906370a082319060240160206040518083038186803b1580156200288c57600080fd5b505afa158015620028a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620028c7919062004741565b1015620028e85760405162461bcd60e51b815260040162000afd9062004990565b6010546001546040516370a0823160e01b81526001600160a01b038581166004830152869216906370a082319060240160206040518083038186803b1580156200293157600080fd5b505afa15801562002946573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200296c919062004741565b62002978919062004c30565b10620029985760405162461bcd60e51b815260040162000afd90620049d5565b6002546001600160a01b03166323b872dd3330620029b7878662004c6e565b6040518463ffffffff1660e01b8152600401620029d7939291906200484c565b602060405180830381600087803b158015620029f257600080fd5b505af115801562002a07573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002a2d919062004557565b5060005b8381101562002b0c57600085828151811062002a515762002a5162004cde565b602002602001015190506000815111801562002a6e575060218151105b62002a8d5760405162461bcd60e51b815260040162000afd9062004ac8565b6001546040516312b8603f60e01b81526001600160a01b03909116906312b8603f9062002ac1908790859060040162004889565b600060405180830381600087803b15801562002adc57600080fd5b505af115801562002af1573d6000803e3d6000fd5b5050505050808062002b039062004caa565b91505062002a31565b50600f546002546040516370a0823160e01b81523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b15801562002b5457600080fd5b505afa15801562002b69573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002b8f919062004741565b111562002c23576002546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801562002bdb57600080fd5b505afa15801562002bf0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002c16919062004741565b905062001c298162003d11565b50505050565b60115481111562002c4e5760405162461bcd60e51b815260040162000afd9062004a4d565b6000825111801562002c61575060218251105b62002c805760405162461bcd60e51b815260040162000afd9062004ac8565b338062002ca15760405162461bcd60e51b815260040162000afd9062004949565b6001546040516315d5220f60e31b81526001600160a01b038381166004830152600092169063aea9107890602401602060405180830381600087803b15801562002cea57600080fd5b505af115801562002cff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002d25919062004741565b62002d3990670de0b6b3a764000062004c6e565b905062002d47838262004c6e565b6002546040516370a0823160e01b81526001600160a01b038581166004830152909116906370a082319060240160206040518083038186803b15801562002d8d57600080fd5b505afa15801562002da2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002dc8919062004741565b101562002de95760405162461bcd60e51b815260040162000afd9062004990565b6010546001546040516370a0823160e01b81526001600160a01b038581166004830152869216906370a082319060240160206040518083038186803b15801562002e3257600080fd5b505afa15801562002e47573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002e6d919062004741565b62002e79919062004c30565b1062002e995760405162461bcd60e51b815260040162000afd90620049d5565b6002546001600160a01b03166323b872dd333062002eb8878662004c6e565b6040518463ffffffff1660e01b815260040162002ed8939291906200484c565b602060405180830381600087803b15801562002ef357600080fd5b505af115801562002f08573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002f2e919062004557565b5060005b8381101562002b0c576001546040516312b8603f60e01b81526001600160a01b03909116906312b8603f9062002f6f908690899060040162004889565b600060405180830381600087803b15801562002f8a57600080fd5b505af115801562002f9f573d6000803e3d6000fd5b50505050808062002fb09062004caa565b91505062002f32565b6000546001600160a01b0316331462002fe65760405162461bcd60e51b815260040162000afd9062004a93565b601580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000546001600160a01b031633146200303b5760405162461bcd60e51b815260040162000afd9062004a93565b6005546001600160a01b031663c40768766200305f6000546001600160a01b031690565b6002546005546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a082319060240160206040518083038186803b158015620030a757600080fd5b505afa158015620030bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620030e2919062004741565b6040518363ffffffff1660e01b81526004016200310192919062004870565b602060405180830381600087803b1580156200311c57600080fd5b505af115801562003131573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003157919062004557565b50806040516200316790620042eb565b6001600160a01b039091168152602001604051809103906000f08015801562003194573d6000803e3d6000fd5b50600580546001600160a01b0319166001600160a01b039290921691909117905550565b6000546001600160a01b03163314620031e55760405162461bcd60e51b815260040162000afd9062004a93565b6001600160a01b03919091166000908152601660205260409020805460ff1916911515919091179055565b6006546015546040516370a0823160e01b81526001600160a01b03848116600483015260009384939092610100909104909116906370a082319060240160206040518083038186803b1580156200326657600080fd5b505afa1580156200327b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620032a1919062004741565b10620032b05750600092915050565b6015546040516370a0823160e01b81526001600160a01b0385811660048301526200334392610100900416906370a082319060240160206040518083038186803b158015620032fe57600080fd5b505afa15801562003313573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003339919062004741565b6006549062004235565b9392505050565b6000546001600160a01b03163314620033775760405162461bcd60e51b815260040162000afd9062004a93565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314620033c65760405162461bcd60e51b815260040162000afd9062004a93565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314620034155760405162461bcd60e51b815260040162000afd9062004a93565b6001600160a01b0381166200347c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840162000afd565b62000b96816200400d565b3380620034a85760405162461bcd60e51b815260040162000afd9062004aff565b6001600160a01b03811660009081526016602052604090205460ff1615620034e45760405162461bcd60e51b815260040162000afd9062004a16565b6000805b83811015620035c7576001546001600160a01b031663aad3ec963387878581811062003518576200351862004cde565b90506020020160208101906200352f91906200478a565b6040518363ffffffff1660e01b81526004016200354e929190620048ea565b602060405180830381600087803b1580156200356957600080fd5b505af11580156200357e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620035a4919062004741565b620035b0908362004c30565b915080620035be8162004caa565b915050620034e8565b5060008111620035eb5760405162461bcd60e51b815260040162000afd9062004b45565b600062003602606462001120620011188662003210565b90506000620036236064620011206007548662003c3d90919063ffffffff16565b905060008211620036485760405162461bcd60e51b815260040162000afd9062004922565b6000620036558562003210565b111562003b35576000816200366b848662004c90565b62003677919062004c90565b600554604051636203b43b60e11b81529192506001600160a01b03169063c407687690620036ac908890859060040162004870565b602060405180830381600087803b158015620036c757600080fd5b505af1158015620036dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003702919062004557565b5060145460009061ffff600160401b82048116916200372b91600160201b909104168562004c6e565b62003737919062004c4b565b60135461ffff600160201b82048116916200375b9162010000909104168762004c6e565b62003767919062004c4b565b62003773919062004c30565b600554604051636203b43b60e11b81529192506001600160a01b03169063c407687690620037a8903090859060040162004870565b602060405180830381600087803b158015620037c357600080fd5b505af1158015620037d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620037fe919062004557565b50604080516002808252606082018352600092602083019080368337505060025482519293506001600160a01b03169183915060009062003843576200384362004cde565b6001600160a01b03928316602091820292909201015260095482519116908290600190811062003877576200387762004cde565b6001600160a01b03928316602091820292909201015260048054600a54604051633b158ab160e11b81529184169363762b156293620038c3938893600093899391169142910162004b95565b600060405180830381600087803b158015620038de57600080fd5b505af1158015620038f3573d6000803e3d6000fd5b505050506000600754111562003b2c5760145460009061ffff600160401b82048116916200392b91600160301b909104168762004c6e565b62003937919062004c4b565b600554604051636203b43b60e11b81529192506001600160a01b03169063c4076876906200396c903090859060040162004870565b602060405180830381600087803b1580156200398757600080fd5b505af11580156200399c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620039c2919062004557565b5060048054600c54604051633b158ab160e11b81526001600160a01b039283169363762b15629362003a029387936000938a939092169142910162004b95565b600060405180830381600087803b15801562003a1d57600080fd5b505af115801562003a32573d6000803e3d6000fd5b50506014546000925061ffff600160401b82048116925062003a5c91620100009004168862004c6e565b62003a68919062004c4b565b905080600d600082825462003a7e919062004c30565b9091555050600e54600d541062003b2957600554600d54604051636203b43b60e11b81526001600160a01b039092169163c40768769162003ac59130919060040162004870565b602060405180830381600087803b15801562003ae057600080fd5b505af115801562003af5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003b1b919062004557565b5062003b29600d546200405d565b50505b50505062001c27565b600554604051636203b43b60e11b81526001600160a01b039091169063c40768769062003b69908790879060040162004870565b602060405180830381600087803b15801562003b8457600080fd5b505af115801562003b99573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001fcb919062004557565b6000546001600160a01b0316331462003bec5760405162461bcd60e51b815260040162000afd9062004a93565b6012805461ffff838116620100000263ffffffff199092169085161717905562003c17818362004c07565b6012805461ffff92909216600160201b0265ffff00000000199092169190911790555050565b60008262003c4e5750600062003cc7565b600062003c5c838562004c6e565b90508262003c6b858362004c4b565b1462003cc45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840162000afd565b90505b92915050565b600062003cc483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062004279565b601254600160201b900461ffff1662003d275750565b60125460009060029061ffff600160201b820481169162003d519162010000909104168562004c6e565b62003d5d919062004c4b565b62003d69919062004c4b565b60125490915060009061ffff600160201b820481169162003d8c91168562004c6e565b62003d98919062004c4b565b9050801562003e315760025460055460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb9262003dd992911690859060040162004870565b602060405180830381600087803b15801562003df457600080fd5b505af115801562003e09573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003e2f919062004557565b505b604080516002808252606082018352600092602083019080368337505060025482519293506001600160a01b03169183915060009062003e755762003e7562004cde565b6001600160a01b03928316602091820292909201015260095482519116908290600190811062003ea95762003ea962004cde565b6001600160a01b03928316602091820292909201015260048054604051633b158ab160e11b815292169163762b15629162003ef09187916000918791309142910162004b95565b600060405180830381600087803b15801562003f0b57600080fd5b505af115801562003f20573d6000803e3d6000fd5b50479250508415905062001c295760048054600254600a54604051637c8d9fb960e11b81526001600160a01b039384169463f91b3f7294879462003f7494908216938c9360009384931691429101620048af565b6060604051808303818588803b15801562003f8e57600080fd5b505af115801562003fa3573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062003fca91906200475b565b505060408051838152602081018790527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516002808252606082018352600092602083019080368337505060025482519293506001600160a01b031691839150600090620040a157620040a162004cde565b6001600160a01b039283166020918202929092010152600954825191169082906001908110620040d557620040d562004cde565b6001600160a01b03928316602091820292909201015260048054604051633b158ab160e11b815292169163762b1562916200411c9186916000918791309142910162004b95565b600060405180830381600087803b1580156200413757600080fd5b505af11580156200414c573d6000803e3d6000fd5b505060048054600254600a54604051637c8d9fb960e11b81524796506001600160a01b03938416955063f91b3f7294879462004199948116938b93600093849390921691429101620048af565b6060604051808303818588803b158015620041b357600080fd5b505af1158015620041c8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190620041ef91906200475b565b505060408051838152602081018690527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a150506000600d5550565b600062003cc483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250620042b5565b600081836200429d5760405162461bcd60e51b815260040162000afd91906200490d565b506000620042ac848662004c4b565b95945050505050565b60008184841115620042dc5760405162461bcd60e51b815260040162000afd91906200490d565b506000620042ac848662004c90565b6104998062004d3083390190565b60008083601f8401126200430c57600080fd5b50813567ffffffffffffffff8111156200432557600080fd5b6020830191508360208260051b85010111156200434157600080fd5b9250929050565b600082601f8301126200435a57600080fd5b813567ffffffffffffffff81111562004377576200437762004cf4565b6200438c601f8201601f191660200162004bd3565b818152846020838601011115620043a257600080fd5b816020850160208301376000918101602001919091529392505050565b803561ffff81168114620043d257600080fd5b919050565b600060208284031215620043ea57600080fd5b813562003cc48162004d0a565b600080604083850312156200440b57600080fd5b8235620044188162004d0a565b915060208301356200442a8162004d20565b809150509250929050565b600080604083850312156200444957600080fd5b823567ffffffffffffffff808211156200446257600080fd5b818501915085601f8301126200447757600080fd5b81356020828211156200448e576200448e62004cf4565b8160051b6200449f82820162004bd3565b8381528281019086840183880185018c1015620044bb57600080fd5b60009350835b86811015620044fd57813588811115620044d9578586fd5b620044e98e88838d010162004348565b8552509285019290850190600101620044c1565b50909b999093013599505050505050505050565b600080602083850312156200452557600080fd5b823567ffffffffffffffff8111156200453d57600080fd5b6200454b85828601620042f9565b90969095509350505050565b6000602082840312156200456a57600080fd5b815162003cc48162004d20565b6000602082840312156200458a57600080fd5b813567ffffffffffffffff811115620045a257600080fd5b620045b08482850162004348565b949350505050565b600080600080600060808688031215620045d157600080fd5b853567ffffffffffffffff80821115620045ea57600080fd5b620045f889838a0162004348565b965060208801359150808211156200460f57600080fd5b506200461e88828901620042f9565b9095509350506040860135915060608601356200463b8162004d20565b809150509295509295909350565b600080604083850312156200465d57600080fd5b823567ffffffffffffffff8111156200467557600080fd5b620046838582860162004348565b95602094909401359450505050565b60008060408385031215620046a657600080fd5b620046b183620043bf565b9150620046c160208401620043bf565b90509250929050565b60008060008060808587031215620046e157600080fd5b620046ec85620043bf565b9350620046fc60208601620043bf565b92506200470c60408601620043bf565b91506200471c60608601620043bf565b905092959194509250565b6000602082840312156200473a57600080fd5b5035919050565b6000602082840312156200475457600080fd5b5051919050565b6000806000606084860312156200477157600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156200479d57600080fd5b813567ffffffffffffffff8116811462003cc457600080fd5b600081518084526020808501945080840160005b83811015620047f15781516001600160a01b031687529582019590820190600101620047ca565b509495945050505050565b6000815180845260005b81811015620048245760208185018101518683018201520162004806565b8181111562004837576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0383168152604060208201819052600090620045b090830184620047fc565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b6001600160a01b0392909216825267ffffffffffffffff16602082015260400190565b60208152600062003cc46020830184620047fc565b6020808252600d908201526c2432b63832b91d1022b93937b960991b604082015260600190565b60208082526027908201527f48454c5045523a20204372656174696f6e2066726f6d20746865207a65726f206040820152666164647265737360c81b606082015260800190565b60208082526025908201527f48454c5045523a2042616c616e636520746f6f206c6f7720666f7220637265616040820152643a34b7b71760d91b606082015260800190565b60208082526021908201527f48454c5045523a2045786365656473206d61782077616c6c657420616d6f756e6040820152601d60fa1b606082015260800190565b6020808252601b908201527f48454c5045523a20596f752061726520626c61636b6c69737465640000000000604082015260600190565b60208082526026908201527f48454c5045523a2045786365656473206d6178207472616e73616374696f6e20604082015265185b5bdd5b9d60d21b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601c908201527f48454c5045523a206e616d652073697a6520697320696e76616c696400000000604082015260600190565b60208082526026908201527f48454c5045523a206372656174696f6e2066726f6d20746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526030908201527f48454c5045523a20596f7520646f6e2774206861766520656e6f75676820726560408201526f1dd85c99081d1bc818d85cda081bdd5d60821b606082015260800190565b85815284602082015260a06040820152600062004bb660a0830186620047b6565b6001600160a01b0394909416606083015250608001529392505050565b604051601f8201601f1916810167ffffffffffffffff8111828210171562004bff5762004bff62004cf4565b604052919050565b600061ffff80831681851680830382111562004c275762004c2762004cc8565b01949350505050565b6000821982111562004c465762004c4662004cc8565b500190565b60008262004c6957634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161562004c8b5762004c8b62004cc8565b500290565b60008282101562004ca55762004ca562004cc8565b500390565b600060001982141562004cc15762004cc162004cc8565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811462000b9657600080fd5b801515811462000b9657600080fdfe608060405234801561001057600080fd5b5060405161049938038061049983398101604081905261002f916100ad565b6100383361005d565b600180546001600160a01b0319166001600160a01b03929092169190911790556100dd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100bf57600080fd5b81516001600160a01b03811681146100d657600080fd5b9392505050565b6103ad806100ec6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80636251be711461005c578063715018a61461008c5780638da5cb5b14610096578063c4076876146100a7578063f2fde38b146100ca575b600080fd5b60015461006f906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100946100dd565b005b6000546001600160a01b031661006f565b6100ba6100b53660046102f6565b61011c565b6040519015158152602001610083565b6100946100d83660046102db565b6101d4565b6000546001600160a01b031633146101105760405162461bcd60e51b815260040161010790610342565b60405180910390fd5b61011a600061026f565b565b600080546001600160a01b031633146101475760405162461bcd60e51b815260040161010790610342565b60015460405163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529091169063a9059cbb90604401602060405180830381600087803b15801561019557600080fd5b505af11580156101a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101cd9190610320565b9392505050565b6000546001600160a01b031633146101fe5760405162461bcd60e51b815260040161010790610342565b6001600160a01b0381166102635760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610107565b61026c8161026f565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b03811681146102d657600080fd5b919050565b6000602082840312156102ed57600080fd5b6101cd826102bf565b6000806040838503121561030957600080fd5b610312836102bf565b946020939093013593505050565b60006020828403121561033257600080fd5b815180151581146101cd57600080fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408201526060019056fea26469706673582212203c720f55d7faf515107d323a5dcfbd9086d2cdc5470e8f72d1bfbaba55e1891264736f6c63430008070033a2646970667358221220f003d3c0b4f9e239a5448375ad09f76808cc0f64c65a360988ea85dd128a86b464736f6c63430008070033608060405234801561001057600080fd5b5060405161049938038061049983398101604081905261002f916100ad565b6100383361005d565b600180546001600160a01b0319166001600160a01b03929092169190911790556100dd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100bf57600080fd5b81516001600160a01b03811681146100d657600080fd5b9392505050565b6103ad806100ec6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80636251be711461005c578063715018a61461008c5780638da5cb5b14610096578063c4076876146100a7578063f2fde38b146100ca575b600080fd5b60015461006f906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100946100dd565b005b6000546001600160a01b031661006f565b6100ba6100b53660046102f6565b61011c565b6040519015158152602001610083565b6100946100d83660046102db565b6101d4565b6000546001600160a01b031633146101105760405162461bcd60e51b815260040161010790610342565b60405180910390fd5b61011a600061026f565b565b600080546001600160a01b031633146101475760405162461bcd60e51b815260040161010790610342565b60015460405163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529091169063a9059cbb90604401602060405180830381600087803b15801561019557600080fd5b505af11580156101a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101cd9190610320565b9392505050565b6000546001600160a01b031633146101fe5760405162461bcd60e51b815260040161010790610342565b6001600160a01b0381166102635760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610107565b61026c8161026f565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b03811681146102d657600080fd5b919050565b6000602082840312156102ed57600080fd5b6101cd826102bf565b6000806040838503121561030957600080fd5b610312836102bf565b946020939093013593505050565b60006020828403121561033257600080fd5b815180151581146101cd57600080fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408201526060019056fea26469706673582212203c720f55d7faf515107d323a5dcfbd9086d2cdc5470e8f72d1bfbaba55e1891264736f6c63430008070033000000000000000000000000c4a25f823582d9ccf5cf8c8bf5338073e7a51676000000000000000000000000490bf3abcab1fb5c88533d850f2a8d6d38298465000000000000000000000000065be0c6f851713a28cc65d3211f674999ada83d
Deployed Bytecode
0x608060405260043610620003095760003560e01c806381582dda1162000194578063bab3eadc11620000ee578063f0f4426011620000a1578063f5c709731162000078578063f5c709731462000a29578063f5cc34e51462000a4e578063f8b45b051462000a73578063f9f92be41462000a8b57600080fd5b8063f0f4426014620009c7578063f2fde38b14620009ec578063f58fad851462000a1157600080fd5b8063bab3eadc14620008f6578063cf0cef01146200091b578063d00f9db11462000933578063d01dd6d21462000958578063e7694bc6146200097d578063eafb5a3c14620009a257600080fd5b80638f0ba4ca11620001475780638f0ba4ca14620008165780639c69fb53146200083b578063aab8ab0c1462000862578063aacebbe31462000887578063b2ecfc1814620008ac578063b96d611c14620008d157600080fd5b806381582dda14620007005780638270c049146200077c57806388f2193d14620007945780638a6458cc14620007b95780638da5cb5b14620007d15780638e69018614620007f157600080fd5b806340b2e4791162000263578063644afb7c1162000216578063715018a611620001ed578063715018a6146200067c57806375f0a87414620006945780637c9bf13d14620006b65780637eabbf1f14620006db57600080fd5b8063644afb7c146200061d5780636aa4b0a614620006425780636ef25c3a146200066457600080fd5b806340b2e479146200053857806342ce736c146200055d578063481c6a75146200058257806358aba00f14620005a45780635e58bea514620005c95780636251be7114620005fb57600080fd5b80631c499ab011620002bc5780631c499ab014620004375780631cb8eae1146200045c5780632205ac2514620004b45780632369fde514620004d95780632d2c556514620004f15780632f6d4c82146200051357600080fd5b806303fd2a4514620003515780630445b66714620003905780630758d92414620003b7578063122fea3b14620003d9578063168fea0714620003fb57806316f0115b146200041557600080fd5b366200034c577f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f8852587433346040516200034292919062004870565b60405180910390a1005b600080fd5b3480156200035e57600080fd5b5060085462000373906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156200039d57600080fd5b50620003a8600f5481565b60405190815260200162000387565b348015620003c457600080fd5b5060045462000373906001600160a01b031681565b348015620003e657600080fd5b50600b5462000373906001600160a01b031681565b3480156200040857600080fd5b506200041362000ad0565b005b3480156200042257600080fd5b5060055462000373906001600160a01b031681565b3480156200044457600080fd5b50620004136200045636600462004727565b62000b99565b3480156200046957600080fd5b506012546200048e9061ffff80821691620100008104821691600160201b9091041683565b6040805161ffff9485168152928416602084015292169181019190915260600162000387565b348015620004c157600080fd5b5062000413620004d336600462004727565b62000bcb565b348015620004e657600080fd5b506200041362000bfd565b348015620004fe57600080fd5b50600c5462000373906001600160a01b031681565b3480156200052057600080fd5b506200041362000532366004620045b8565b62000c66565b3480156200054557600080fd5b50620004136200055736600462004727565b62001504565b3480156200056a57600080fd5b50620004136200057c36600462004727565b62001536565b3480156200058f57600080fd5b5060015462000373906001600160a01b031681565b348015620005b157600080fd5b5062000413620005c3366004620043d7565b62001568565b348015620005d657600080fd5b506013546200048e9061ffff80821691620100008104821691600160201b9091041683565b3480156200060857600080fd5b5060025462000373906001600160a01b031681565b3480156200062a57600080fd5b50620004136200063c36600462004692565b620015b7565b3480156200064f57600080fd5b5060035462000373906001600160a01b031681565b3480156200067157600080fd5b50620003a860065481565b3480156200068957600080fd5b506200041362001635565b348015620006a157600080fd5b50600a5462000373906001600160a01b031681565b348015620006c357600080fd5b5062000413620006d5366004620046ca565b62001670565b348015620006e857600080fd5b5062000413620006fa366004620043d7565b62001740565b3480156200070d57600080fd5b50601454620007469061ffff80821691620100008104821691600160201b8204811691600160301b8104821691600160401b9091041685565b6040805161ffff968716815294861660208601529285169284019290925283166060830152909116608082015260a00162000387565b3480156200078957600080fd5b50620003a860115481565b348015620007a157600080fd5b5062000413620007b336600462004511565b6200178f565b348015620007c657600080fd5b50620003a8600d5481565b348015620007de57600080fd5b506000546001600160a01b031662000373565b348015620007fe57600080fd5b50620004136200081036600462004727565b62001c30565b3480156200082357600080fd5b50620004136200083536600462004577565b62001c62565b3480156200084857600080fd5b50601554620003739061010090046001600160a01b031681565b3480156200086f57600080fd5b5062000413620008813660046200478a565b62001fd4565b3480156200089457600080fd5b5062000413620008a6366004620043d7565b6200265f565b348015620008b957600080fd5b5062000413620008cb36600462004435565b620026ae565b348015620008de57600080fd5b5062000413620008f036600462004649565b62002c29565b3480156200090357600080fd5b506200041362000915366004620043d7565b62002fb9565b3480156200092857600080fd5b50620003a8600e5481565b3480156200094057600080fd5b506200041362000952366004620043d7565b6200300e565b3480156200096557600080fd5b506200041362000977366004620043f7565b620031b8565b3480156200098a57600080fd5b50620003a86200099c366004620043d7565b62003210565b348015620009af57600080fd5b5062000413620009c1366004620043d7565b6200334a565b348015620009d457600080fd5b5062000413620009e6366004620043d7565b62003399565b348015620009f957600080fd5b506200041362000a0b366004620043d7565b620033e8565b34801562000a1e57600080fd5b50620003a860075481565b34801562000a3657600080fd5b506200041362000a4836600462004511565b62003487565b34801562000a5b57600080fd5b506200041362000a6d36600462004692565b62003bbf565b34801562000a8057600080fd5b50620003a860105481565b34801562000a9857600080fd5b5062000abf62000aaa366004620043d7565b60166020526000908152604090205460ff1681565b604051901515815260200162000387565b6000546001600160a01b0316331462000b065760405162461bcd60e51b815260040162000afd9062004a93565b60405180910390fd5b600254600b5460405163095ea7b360e01b81526001600160a01b039283169263095ea7b39262000b40929116906000199060040162004870565b602060405180830381600087803b15801562000b5b57600080fd5b505af115801562000b70573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b96919062004557565b50565b6000546001600160a01b0316331462000bc65760405162461bcd60e51b815260040162000afd9062004a93565b601055565b6000546001600160a01b0316331462000bf85760405162461bcd60e51b815260040162000afd9062004a93565b600755565b6000546001600160a01b0316331462000c2a5760405162461bcd60e51b815260040162000afd9062004a93565b6002546004805460405163095ea7b360e01b81526001600160a01b039384169363095ea7b39362000b4093909116916301312d12910162004870565b60115482111562000c8b5760405162461bcd60e51b815260040162000afd9062004a4d565b338062000cac5760405162461bcd60e51b815260040162000afd9062004aff565b6001600160a01b03811660009081526016602052604090205460ff161562000ce85760405162461bcd60e51b815260040162000afd9062004a16565b6000805b8581101562000dcb576001546001600160a01b031663aad3ec963389898581811062000d1c5762000d1c62004cde565b905060200201602081019062000d3391906200478a565b6040518363ffffffff1660e01b815260040162000d52929190620048ea565b602060405180830381600087803b15801562000d6d57600080fd5b505af115801562000d82573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000da8919062004741565b62000db4908362004c30565b91508062000dc28162004caa565b91505062000cec565b506001546040516315d5220f60e31b81526001600160a01b038481166004830152600092169063aea9107890602401602060405180830381600087803b15801562000e1557600080fd5b505af115801562000e2a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e50919062004741565b62000e6490670de0b6b3a764000062004c6e565b90508362000ea05762000e78858262004c6e565b82101562000e9a5760405162461bcd60e51b815260040162000afd9062004b45565b62000f64565b83801562000f45575062000eb5858262004c6e565b6002546040516370a0823160e01b81526001600160a01b038681166004830152909116906370a082319060240160206040518083038186803b15801562000efb57600080fd5b505afa15801562000f10573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f36919062004741565b62000f42908462004c30565b10155b62000f645760405162461bcd60e51b815260040162000afd9062004b45565b6010546001546040516370a0823160e01b81526001600160a01b038681166004830152889216906370a082319060240160206040518083038186803b15801562000fad57600080fd5b505afa15801562000fc2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000fe8919062004741565b62000ff4919062004c30565b10620010145760405162461bcd60e51b815260040162000afd90620049d5565b60005b85811015620010d0576000895111801562001033575060218951105b620010525760405162461bcd60e51b815260040162000afd9062004ac8565b6001546040516312b8603f60e01b81526001600160a01b03909116906312b8603f90620010869087908d9060040162004889565b600060405180830381600087803b158015620010a157600080fd5b505af1158015620010b6573d6000803e3d6000fd5b505050508080620010c79062004caa565b91505062001017565b50620010dd858262004c6e565b8211156200128c576000620010f3868362004c6e565b620010ff908462004c90565b9050600062001127606462001120620011188862003210565b859062003c3d565b9062003ccd565b9050600062001137828462004c90565b600554604051636203b43b60e11b81529192506001600160a01b03169063c4076876906200116c908990859060040162004870565b602060405180830381600087803b1580156200118757600080fd5b505af11580156200119c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011c2919062004557565b5060135460009061ffff600160201b8204811691620011ea9162010000909104168562004c6e565b620011f6919062004c4b565b600554604051636203b43b60e11b81529192506001600160a01b03169063c4076876906200122b903090859060040162004870565b602060405180830381600087803b1580156200124657600080fd5b505af11580156200125b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001281919062004557565b5050505050620014fa565b838015620013315750620012a1858262004c6e565b6002546040516370a0823160e01b81526001600160a01b038681166004830152909116906370a082319060240160206040518083038186803b158015620012e757600080fd5b505afa158015620012fc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001322919062004741565b6200132e908462004c30565b10155b15620014fa5760008262001346878462004c6e565b62001352919062004c90565b6002546040516323b872dd60e01b81529192506001600160a01b0316906323b872dd9062001389903390309086906004016200484c565b602060405180830381600087803b158015620013a457600080fd5b505af1158015620013b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620013df919062004557565b50600f546002546040516370a0823160e01b81523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b1580156200142757600080fd5b505afa1580156200143c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001462919062004741565b1115620014f8576002546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b158015620014ae57600080fd5b505afa158015620014c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620014e9919062004741565b9050620014f68162003d11565b505b505b5050505050505050565b6000546001600160a01b03163314620015315760405162461bcd60e51b815260040162000afd9062004a93565b601155565b6000546001600160a01b03163314620015635760405162461bcd60e51b815260040162000afd9062004a93565b600e55565b6000546001600160a01b03163314620015955760405162461bcd60e51b815260040162000afd9062004a93565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314620015e45760405162461bcd60e51b815260040162000afd9062004a93565b6013805461ffff838116620100000263ffffffff19909216908516171790556200160f818362004c07565b6013805461ffff92909216600160201b0265ffff00000000199092169190911790555050565b6000546001600160a01b03163314620016625760405162461bcd60e51b815260040162000afd9062004a93565b6200166e60006200400d565b565b6000546001600160a01b031633146200169d5760405162461bcd60e51b815260040162000afd9062004a93565b6014805461ffff86811665ffff0000ffff1990921691909117600160201b868316021767ffff0000ffff00001916620100008583160267ffff000000000000191617600160301b918416919091021790558082620016fc858762004c07565b62001708919062004c07565b62001714919062004c07565b6014805461ffff92909216600160401b0269ffff00000000000000001990921691909117905550505050565b6000546001600160a01b031633146200176d5760405162461bcd60e51b815260040162000afd9062004a93565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b3380620017b05760405162461bcd60e51b815260040162000afd9062004aff565b6001600160a01b03811660009081526016602052604090205460ff1615620017ec5760405162461bcd60e51b815260040162000afd9062004a16565b6000805b83811015620018cf576003546001600160a01b031663aad3ec963387878581811062001820576200182062004cde565b90506020020160208101906200183791906200478a565b6040518363ffffffff1660e01b815260040162001856929190620048ea565b602060405180830381600087803b1580156200187157600080fd5b505af115801562001886573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620018ac919062004741565b620018b8908362004c30565b915080620018c68162004caa565b915050620017f0565b5060008111620018f35760405162461bcd60e51b815260040162000afd9062004b45565b60006200190a606462001120620011188662003210565b9050600081116200192f5760405162461bcd60e51b815260040162000afd9062004922565b60006200193c8462003210565b111562001b9d57600062001951828462004c90565b600554604051636203b43b60e11b81529192506001600160a01b03169063c40768769062001986908790859060040162004870565b602060405180830381600087803b158015620019a157600080fd5b505af1158015620019b6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019dc919062004557565b5060135460009061ffff600160201b820481169162001a049162010000909104168562004c6e565b62001a10919062004c4b565b600554604051636203b43b60e11b81529192506001600160a01b03169063c40768769062001a45903090859060040162004870565b602060405180830381600087803b15801562001a6057600080fd5b505af115801562001a75573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a9b919062004557565b50604080516002808252606082018352600092602083019080368337505060025482519293506001600160a01b03169183915060009062001ae05762001ae062004cde565b6001600160a01b03928316602091820292909201015260095482519116908290600190811062001b145762001b1462004cde565b6001600160a01b03928316602091820292909201015260048054600a54604051633b158ab160e11b81529184169363762b15629362001b60938893600093899391169142910162004b95565b600060405180830381600087803b15801562001b7b57600080fd5b505af115801562001b90573d6000803e3d6000fd5b5050505050505062001c29565b600554604051636203b43b60e11b81526001600160a01b039091169063c40768769062001bd1908690869060040162004870565b602060405180830381600087803b15801562001bec57600080fd5b505af115801562001c01573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001c27919062004557565b505b5050505050565b6000546001600160a01b0316331462001c5d5760405162461bcd60e51b815260040162000afd9062004a93565b600655565b6000815111801562001c75575060218151105b62001c945760405162461bcd60e51b815260040162000afd9062004ac8565b338062001cb55760405162461bcd60e51b815260040162000afd9062004949565b6001546040516315d5220f60e31b81526001600160a01b038381166004830152600092169063aea9107890602401602060405180830381600087803b15801562001cfe57600080fd5b505af115801562001d13573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001d39919062004741565b62001d4d90670de0b6b3a764000062004c6e565b90506000811162001d895760405162461bcd60e51b815260206004820152600560248201526432b93937b960d91b604482015260640162000afd565b6002546040516370a0823160e01b81526001600160a01b038481166004830152839216906370a082319060240160206040518083038186803b15801562001dcf57600080fd5b505afa15801562001de4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001e0a919062004741565b101562001e2b5760405162461bcd60e51b815260040162000afd9062004990565b6010546001546040516370a0823160e01b81526001600160a01b038581166004830152909116906370a082319060240160206040518083038186803b15801562001e7457600080fd5b505afa15801562001e89573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001eaf919062004741565b62001ebc90600162004c30565b1062001edc5760405162461bcd60e51b815260040162000afd90620049d5565b6002546001600160a01b03166323b872dd3330846040518463ffffffff1660e01b815260040162001f10939291906200484c565b602060405180830381600087803b15801562001f2b57600080fd5b505af115801562001f40573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001f66919062004557565b506001546040516312b8603f60e01b81526001600160a01b03909116906312b8603f9062001f9b908590879060040162004889565b600060405180830381600087803b15801562001fb657600080fd5b505af115801562001fcb573d6000803e3d6000fd5b50505050505050565b338062001ff55760405162461bcd60e51b815260040162000afd9062004aff565b6001600160a01b03811660009081526016602052604090205460ff1615620020315760405162461bcd60e51b815260040162000afd9062004a16565b600154604051635569f64b60e11b81526000916001600160a01b03169063aad3ec9690620020669033908790600401620048ea565b602060405180830381600087803b1580156200208157600080fd5b505af115801562002096573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620020bc919062004741565b905060008111620020e15760405162461bcd60e51b815260040162000afd9062004b45565b6000620020f8606462001120620011188662003210565b90506000620021196064620011206007548662003c3d90919063ffffffff16565b9050600082116200213e5760405162461bcd60e51b815260040162000afd9062004922565b60006200214b8562003210565b11156200262b5760008162002161848662004c90565b6200216d919062004c90565b600554604051636203b43b60e11b81529192506001600160a01b03169063c407687690620021a2908890859060040162004870565b602060405180830381600087803b158015620021bd57600080fd5b505af1158015620021d2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620021f8919062004557565b5060145460009061ffff600160401b82048116916200222191600160201b909104168562004c6e565b6200222d919062004c4b565b60135461ffff600160201b8204811691620022519162010000909104168762004c6e565b6200225d919062004c4b565b62002269919062004c30565b600554604051636203b43b60e11b81529192506001600160a01b03169063c4076876906200229e903090859060040162004870565b602060405180830381600087803b158015620022b957600080fd5b505af1158015620022ce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620022f4919062004557565b50604080516002808252606082018352600092602083019080368337505060025482519293506001600160a01b03169183915060009062002339576200233962004cde565b6001600160a01b0392831660209182029290920101526009548251911690829060019081106200236d576200236d62004cde565b6001600160a01b03928316602091820292909201015260048054600a54604051633b158ab160e11b81529184169363762b156293620023b9938893600093899391169142910162004b95565b600060405180830381600087803b158015620023d457600080fd5b505af1158015620023e9573d6000803e3d6000fd5b5050505060006007541115620026225760145460009061ffff600160401b82048116916200242191600160301b909104168762004c6e565b6200242d919062004c4b565b600554604051636203b43b60e11b81529192506001600160a01b03169063c40768769062002462903090859060040162004870565b602060405180830381600087803b1580156200247d57600080fd5b505af115801562002492573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620024b8919062004557565b5060048054600c54604051633b158ab160e11b81526001600160a01b039283169363762b156293620024f89387936000938a939092169142910162004b95565b600060405180830381600087803b1580156200251357600080fd5b505af115801562002528573d6000803e3d6000fd5b50506014546000925061ffff600160401b8204811692506200255291620100009004168862004c6e565b6200255e919062004c4b565b905080600d600082825462002574919062004c30565b9091555050600e54600d54106200261f57600554600d54604051636203b43b60e11b81526001600160a01b039092169163c407687691620025bb9130919060040162004870565b602060405180830381600087803b158015620025d657600080fd5b505af1158015620025eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002611919062004557565b506200261f600d546200405d565b50505b50505062001c29565b600554604051636203b43b60e11b81526001600160a01b039091169063c40768769062001bd1908790879060040162004870565b6000546001600160a01b031633146200268c5760405162461bcd60e51b815260040162000afd9062004a93565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b601154811115620026d35760405162461bcd60e51b815260040162000afd9062004a4d565b80825114620027405760405162461bcd60e51b815260206004820152603260248201527f48454c5045523a20596f75206e65656420746f2070726f766964652065786163604482015271746c79206d61746368696e67206e616d657360701b606482015260840162000afd565b3380620027a05760405162461bcd60e51b815260206004820152602760248201527f48454c5045523a20206372656174696f6e2066726f6d20746865207a65726f206044820152666164647265737360c81b606482015260840162000afd565b6001546040516315d5220f60e31b81526001600160a01b038381166004830152600092169063aea9107890602401602060405180830381600087803b158015620027e957600080fd5b505af1158015620027fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002824919062004741565b6200283890670de0b6b3a764000062004c6e565b905062002846838262004c6e565b6002546040516370a0823160e01b81526001600160a01b038581166004830152909116906370a082319060240160206040518083038186803b1580156200288c57600080fd5b505afa158015620028a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620028c7919062004741565b1015620028e85760405162461bcd60e51b815260040162000afd9062004990565b6010546001546040516370a0823160e01b81526001600160a01b038581166004830152869216906370a082319060240160206040518083038186803b1580156200293157600080fd5b505afa15801562002946573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200296c919062004741565b62002978919062004c30565b10620029985760405162461bcd60e51b815260040162000afd90620049d5565b6002546001600160a01b03166323b872dd3330620029b7878662004c6e565b6040518463ffffffff1660e01b8152600401620029d7939291906200484c565b602060405180830381600087803b158015620029f257600080fd5b505af115801562002a07573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002a2d919062004557565b5060005b8381101562002b0c57600085828151811062002a515762002a5162004cde565b602002602001015190506000815111801562002a6e575060218151105b62002a8d5760405162461bcd60e51b815260040162000afd9062004ac8565b6001546040516312b8603f60e01b81526001600160a01b03909116906312b8603f9062002ac1908790859060040162004889565b600060405180830381600087803b15801562002adc57600080fd5b505af115801562002af1573d6000803e3d6000fd5b5050505050808062002b039062004caa565b91505062002a31565b50600f546002546040516370a0823160e01b81523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b15801562002b5457600080fd5b505afa15801562002b69573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002b8f919062004741565b111562002c23576002546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801562002bdb57600080fd5b505afa15801562002bf0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002c16919062004741565b905062001c298162003d11565b50505050565b60115481111562002c4e5760405162461bcd60e51b815260040162000afd9062004a4d565b6000825111801562002c61575060218251105b62002c805760405162461bcd60e51b815260040162000afd9062004ac8565b338062002ca15760405162461bcd60e51b815260040162000afd9062004949565b6001546040516315d5220f60e31b81526001600160a01b038381166004830152600092169063aea9107890602401602060405180830381600087803b15801562002cea57600080fd5b505af115801562002cff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002d25919062004741565b62002d3990670de0b6b3a764000062004c6e565b905062002d47838262004c6e565b6002546040516370a0823160e01b81526001600160a01b038581166004830152909116906370a082319060240160206040518083038186803b15801562002d8d57600080fd5b505afa15801562002da2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002dc8919062004741565b101562002de95760405162461bcd60e51b815260040162000afd9062004990565b6010546001546040516370a0823160e01b81526001600160a01b038581166004830152869216906370a082319060240160206040518083038186803b15801562002e3257600080fd5b505afa15801562002e47573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002e6d919062004741565b62002e79919062004c30565b1062002e995760405162461bcd60e51b815260040162000afd90620049d5565b6002546001600160a01b03166323b872dd333062002eb8878662004c6e565b6040518463ffffffff1660e01b815260040162002ed8939291906200484c565b602060405180830381600087803b15801562002ef357600080fd5b505af115801562002f08573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002f2e919062004557565b5060005b8381101562002b0c576001546040516312b8603f60e01b81526001600160a01b03909116906312b8603f9062002f6f908690899060040162004889565b600060405180830381600087803b15801562002f8a57600080fd5b505af115801562002f9f573d6000803e3d6000fd5b50505050808062002fb09062004caa565b91505062002f32565b6000546001600160a01b0316331462002fe65760405162461bcd60e51b815260040162000afd9062004a93565b601580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000546001600160a01b031633146200303b5760405162461bcd60e51b815260040162000afd9062004a93565b6005546001600160a01b031663c40768766200305f6000546001600160a01b031690565b6002546005546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a082319060240160206040518083038186803b158015620030a757600080fd5b505afa158015620030bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620030e2919062004741565b6040518363ffffffff1660e01b81526004016200310192919062004870565b602060405180830381600087803b1580156200311c57600080fd5b505af115801562003131573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003157919062004557565b50806040516200316790620042eb565b6001600160a01b039091168152602001604051809103906000f08015801562003194573d6000803e3d6000fd5b50600580546001600160a01b0319166001600160a01b039290921691909117905550565b6000546001600160a01b03163314620031e55760405162461bcd60e51b815260040162000afd9062004a93565b6001600160a01b03919091166000908152601660205260409020805460ff1916911515919091179055565b6006546015546040516370a0823160e01b81526001600160a01b03848116600483015260009384939092610100909104909116906370a082319060240160206040518083038186803b1580156200326657600080fd5b505afa1580156200327b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620032a1919062004741565b10620032b05750600092915050565b6015546040516370a0823160e01b81526001600160a01b0385811660048301526200334392610100900416906370a082319060240160206040518083038186803b158015620032fe57600080fd5b505afa15801562003313573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003339919062004741565b6006549062004235565b9392505050565b6000546001600160a01b03163314620033775760405162461bcd60e51b815260040162000afd9062004a93565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314620033c65760405162461bcd60e51b815260040162000afd9062004a93565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314620034155760405162461bcd60e51b815260040162000afd9062004a93565b6001600160a01b0381166200347c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840162000afd565b62000b96816200400d565b3380620034a85760405162461bcd60e51b815260040162000afd9062004aff565b6001600160a01b03811660009081526016602052604090205460ff1615620034e45760405162461bcd60e51b815260040162000afd9062004a16565b6000805b83811015620035c7576001546001600160a01b031663aad3ec963387878581811062003518576200351862004cde565b90506020020160208101906200352f91906200478a565b6040518363ffffffff1660e01b81526004016200354e929190620048ea565b602060405180830381600087803b1580156200356957600080fd5b505af11580156200357e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620035a4919062004741565b620035b0908362004c30565b915080620035be8162004caa565b915050620034e8565b5060008111620035eb5760405162461bcd60e51b815260040162000afd9062004b45565b600062003602606462001120620011188662003210565b90506000620036236064620011206007548662003c3d90919063ffffffff16565b905060008211620036485760405162461bcd60e51b815260040162000afd9062004922565b6000620036558562003210565b111562003b35576000816200366b848662004c90565b62003677919062004c90565b600554604051636203b43b60e11b81529192506001600160a01b03169063c407687690620036ac908890859060040162004870565b602060405180830381600087803b158015620036c757600080fd5b505af1158015620036dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003702919062004557565b5060145460009061ffff600160401b82048116916200372b91600160201b909104168562004c6e565b62003737919062004c4b565b60135461ffff600160201b82048116916200375b9162010000909104168762004c6e565b62003767919062004c4b565b62003773919062004c30565b600554604051636203b43b60e11b81529192506001600160a01b03169063c407687690620037a8903090859060040162004870565b602060405180830381600087803b158015620037c357600080fd5b505af1158015620037d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620037fe919062004557565b50604080516002808252606082018352600092602083019080368337505060025482519293506001600160a01b03169183915060009062003843576200384362004cde565b6001600160a01b03928316602091820292909201015260095482519116908290600190811062003877576200387762004cde565b6001600160a01b03928316602091820292909201015260048054600a54604051633b158ab160e11b81529184169363762b156293620038c3938893600093899391169142910162004b95565b600060405180830381600087803b158015620038de57600080fd5b505af1158015620038f3573d6000803e3d6000fd5b505050506000600754111562003b2c5760145460009061ffff600160401b82048116916200392b91600160301b909104168762004c6e565b62003937919062004c4b565b600554604051636203b43b60e11b81529192506001600160a01b03169063c4076876906200396c903090859060040162004870565b602060405180830381600087803b1580156200398757600080fd5b505af11580156200399c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620039c2919062004557565b5060048054600c54604051633b158ab160e11b81526001600160a01b039283169363762b15629362003a029387936000938a939092169142910162004b95565b600060405180830381600087803b15801562003a1d57600080fd5b505af115801562003a32573d6000803e3d6000fd5b50506014546000925061ffff600160401b82048116925062003a5c91620100009004168862004c6e565b62003a68919062004c4b565b905080600d600082825462003a7e919062004c30565b9091555050600e54600d541062003b2957600554600d54604051636203b43b60e11b81526001600160a01b039092169163c40768769162003ac59130919060040162004870565b602060405180830381600087803b15801562003ae057600080fd5b505af115801562003af5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003b1b919062004557565b5062003b29600d546200405d565b50505b50505062001c27565b600554604051636203b43b60e11b81526001600160a01b039091169063c40768769062003b69908790879060040162004870565b602060405180830381600087803b15801562003b8457600080fd5b505af115801562003b99573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001fcb919062004557565b6000546001600160a01b0316331462003bec5760405162461bcd60e51b815260040162000afd9062004a93565b6012805461ffff838116620100000263ffffffff199092169085161717905562003c17818362004c07565b6012805461ffff92909216600160201b0265ffff00000000199092169190911790555050565b60008262003c4e5750600062003cc7565b600062003c5c838562004c6e565b90508262003c6b858362004c4b565b1462003cc45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840162000afd565b90505b92915050565b600062003cc483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062004279565b601254600160201b900461ffff1662003d275750565b60125460009060029061ffff600160201b820481169162003d519162010000909104168562004c6e565b62003d5d919062004c4b565b62003d69919062004c4b565b60125490915060009061ffff600160201b820481169162003d8c91168562004c6e565b62003d98919062004c4b565b9050801562003e315760025460055460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb9262003dd992911690859060040162004870565b602060405180830381600087803b15801562003df457600080fd5b505af115801562003e09573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003e2f919062004557565b505b604080516002808252606082018352600092602083019080368337505060025482519293506001600160a01b03169183915060009062003e755762003e7562004cde565b6001600160a01b03928316602091820292909201015260095482519116908290600190811062003ea95762003ea962004cde565b6001600160a01b03928316602091820292909201015260048054604051633b158ab160e11b815292169163762b15629162003ef09187916000918791309142910162004b95565b600060405180830381600087803b15801562003f0b57600080fd5b505af115801562003f20573d6000803e3d6000fd5b50479250508415905062001c295760048054600254600a54604051637c8d9fb960e11b81526001600160a01b039384169463f91b3f7294879462003f7494908216938c9360009384931691429101620048af565b6060604051808303818588803b15801562003f8e57600080fd5b505af115801562003fa3573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062003fca91906200475b565b505060408051838152602081018790527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516002808252606082018352600092602083019080368337505060025482519293506001600160a01b031691839150600090620040a157620040a162004cde565b6001600160a01b039283166020918202929092010152600954825191169082906001908110620040d557620040d562004cde565b6001600160a01b03928316602091820292909201015260048054604051633b158ab160e11b815292169163762b1562916200411c9186916000918791309142910162004b95565b600060405180830381600087803b1580156200413757600080fd5b505af11580156200414c573d6000803e3d6000fd5b505060048054600254600a54604051637c8d9fb960e11b81524796506001600160a01b03938416955063f91b3f7294879462004199948116938b93600093849390921691429101620048af565b6060604051808303818588803b158015620041b357600080fd5b505af1158015620041c8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190620041ef91906200475b565b505060408051838152602081018690527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a150506000600d5550565b600062003cc483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250620042b5565b600081836200429d5760405162461bcd60e51b815260040162000afd91906200490d565b506000620042ac848662004c4b565b95945050505050565b60008184841115620042dc5760405162461bcd60e51b815260040162000afd91906200490d565b506000620042ac848662004c90565b6104998062004d3083390190565b60008083601f8401126200430c57600080fd5b50813567ffffffffffffffff8111156200432557600080fd5b6020830191508360208260051b85010111156200434157600080fd5b9250929050565b600082601f8301126200435a57600080fd5b813567ffffffffffffffff81111562004377576200437762004cf4565b6200438c601f8201601f191660200162004bd3565b818152846020838601011115620043a257600080fd5b816020850160208301376000918101602001919091529392505050565b803561ffff81168114620043d257600080fd5b919050565b600060208284031215620043ea57600080fd5b813562003cc48162004d0a565b600080604083850312156200440b57600080fd5b8235620044188162004d0a565b915060208301356200442a8162004d20565b809150509250929050565b600080604083850312156200444957600080fd5b823567ffffffffffffffff808211156200446257600080fd5b818501915085601f8301126200447757600080fd5b81356020828211156200448e576200448e62004cf4565b8160051b6200449f82820162004bd3565b8381528281019086840183880185018c1015620044bb57600080fd5b60009350835b86811015620044fd57813588811115620044d9578586fd5b620044e98e88838d010162004348565b8552509285019290850190600101620044c1565b50909b999093013599505050505050505050565b600080602083850312156200452557600080fd5b823567ffffffffffffffff8111156200453d57600080fd5b6200454b85828601620042f9565b90969095509350505050565b6000602082840312156200456a57600080fd5b815162003cc48162004d20565b6000602082840312156200458a57600080fd5b813567ffffffffffffffff811115620045a257600080fd5b620045b08482850162004348565b949350505050565b600080600080600060808688031215620045d157600080fd5b853567ffffffffffffffff80821115620045ea57600080fd5b620045f889838a0162004348565b965060208801359150808211156200460f57600080fd5b506200461e88828901620042f9565b9095509350506040860135915060608601356200463b8162004d20565b809150509295509295909350565b600080604083850312156200465d57600080fd5b823567ffffffffffffffff8111156200467557600080fd5b620046838582860162004348565b95602094909401359450505050565b60008060408385031215620046a657600080fd5b620046b183620043bf565b9150620046c160208401620043bf565b90509250929050565b60008060008060808587031215620046e157600080fd5b620046ec85620043bf565b9350620046fc60208601620043bf565b92506200470c60408601620043bf565b91506200471c60608601620043bf565b905092959194509250565b6000602082840312156200473a57600080fd5b5035919050565b6000602082840312156200475457600080fd5b5051919050565b6000806000606084860312156200477157600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156200479d57600080fd5b813567ffffffffffffffff8116811462003cc457600080fd5b600081518084526020808501945080840160005b83811015620047f15781516001600160a01b031687529582019590820190600101620047ca565b509495945050505050565b6000815180845260005b81811015620048245760208185018101518683018201520162004806565b8181111562004837576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0383168152604060208201819052600090620045b090830184620047fc565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b6001600160a01b0392909216825267ffffffffffffffff16602082015260400190565b60208152600062003cc46020830184620047fc565b6020808252600d908201526c2432b63832b91d1022b93937b960991b604082015260600190565b60208082526027908201527f48454c5045523a20204372656174696f6e2066726f6d20746865207a65726f206040820152666164647265737360c81b606082015260800190565b60208082526025908201527f48454c5045523a2042616c616e636520746f6f206c6f7720666f7220637265616040820152643a34b7b71760d91b606082015260800190565b60208082526021908201527f48454c5045523a2045786365656473206d61782077616c6c657420616d6f756e6040820152601d60fa1b606082015260800190565b6020808252601b908201527f48454c5045523a20596f752061726520626c61636b6c69737465640000000000604082015260600190565b60208082526026908201527f48454c5045523a2045786365656473206d6178207472616e73616374696f6e20604082015265185b5bdd5b9d60d21b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601c908201527f48454c5045523a206e616d652073697a6520697320696e76616c696400000000604082015260600190565b60208082526026908201527f48454c5045523a206372656174696f6e2066726f6d20746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526030908201527f48454c5045523a20596f7520646f6e2774206861766520656e6f75676820726560408201526f1dd85c99081d1bc818d85cda081bdd5d60821b606082015260800190565b85815284602082015260a06040820152600062004bb660a0830186620047b6565b6001600160a01b0394909416606083015250608001529392505050565b604051601f8201601f1916810167ffffffffffffffff8111828210171562004bff5762004bff62004cf4565b604052919050565b600061ffff80831681851680830382111562004c275762004c2762004cc8565b01949350505050565b6000821982111562004c465762004c4662004cc8565b500190565b60008262004c6957634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161562004c8b5762004c8b62004cc8565b500290565b60008282101562004ca55762004ca562004cc8565b500390565b600060001982141562004cc15762004cc162004cc8565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811462000b9657600080fd5b801515811462000b9657600080fdfe608060405234801561001057600080fd5b5060405161049938038061049983398101604081905261002f916100ad565b6100383361005d565b600180546001600160a01b0319166001600160a01b03929092169190911790556100dd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100bf57600080fd5b81516001600160a01b03811681146100d657600080fd5b9392505050565b6103ad806100ec6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80636251be711461005c578063715018a61461008c5780638da5cb5b14610096578063c4076876146100a7578063f2fde38b146100ca575b600080fd5b60015461006f906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100946100dd565b005b6000546001600160a01b031661006f565b6100ba6100b53660046102f6565b61011c565b6040519015158152602001610083565b6100946100d83660046102db565b6101d4565b6000546001600160a01b031633146101105760405162461bcd60e51b815260040161010790610342565b60405180910390fd5b61011a600061026f565b565b600080546001600160a01b031633146101475760405162461bcd60e51b815260040161010790610342565b60015460405163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529091169063a9059cbb90604401602060405180830381600087803b15801561019557600080fd5b505af11580156101a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101cd9190610320565b9392505050565b6000546001600160a01b031633146101fe5760405162461bcd60e51b815260040161010790610342565b6001600160a01b0381166102635760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610107565b61026c8161026f565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b03811681146102d657600080fd5b919050565b6000602082840312156102ed57600080fd5b6101cd826102bf565b6000806040838503121561030957600080fd5b610312836102bf565b946020939093013593505050565b60006020828403121561033257600080fd5b815180151581146101cd57600080fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408201526060019056fea26469706673582212203c720f55d7faf515107d323a5dcfbd9086d2cdc5470e8f72d1bfbaba55e1891264736f6c63430008070033a2646970667358221220f003d3c0b4f9e239a5448375ad09f76808cc0f64c65a360988ea85dd128a86b464736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c4a25f823582d9ccf5cf8c8bf5338073e7a51676000000000000000000000000490bf3abcab1fb5c88533d850f2a8d6d38298465000000000000000000000000065be0c6f851713a28cc65d3211f674999ada83d
-----Decoded View---------------
Arg [0] : _manager (address): 0xc4a25F823582d9ccf5cf8C8BF5338073e7a51676
Arg [1] : _PLAYMATES (address): 0x490bf3ABcAb1fB5c88533d850F2a8d6D38298465
Arg [2] : _district (address): 0x065bE0C6f851713a28Cc65d3211f674999ada83D
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000c4a25f823582d9ccf5cf8c8bf5338073e7a51676
Arg [1] : 000000000000000000000000490bf3abcab1fb5c88533d850f2a8d6d38298465
Arg [2] : 000000000000000000000000065be0c6f851713a28cc65d3211f674999ada83d
Deployed Bytecode Sourcemap
28645:19543:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31134:31;31143:10;31155:9;31134:31;;;;;;;:::i;:::-;;;;;;;;28645:19543;;;;;28986:64;;;;;;;;;;-1:-1:-1;28986:64:0;;;;-1:-1:-1;;;;;28986:64:0;;;;;;-1:-1:-1;;;;;8754:32:1;;;8736:51;;8724:2;8709:18;28986:64:0;;;;;;;;29392:30;;;;;;;;;;;;;;;;;;;19644:25:1;;;19632:2;19617:18;29392:30:0;19498:177:1;28795:26:0;;;;;;;;;;-1:-1:-1;28795:26:0;;;;-1:-1:-1;;;;;28795:26:0;;;29184:28;;;;;;;;;;-1:-1:-1;29184:28:0;;;;-1:-1:-1;;;;;29184:28:0;;;31654:120;;;;;;;;;;;;;:::i;:::-;;28893:16;;;;;;;;;;-1:-1:-1;28893:16:0;;;;-1:-1:-1;;;;;28893:16:0;;;32099:105;;;;;;;;;;-1:-1:-1;32099:105:0;;;;;:::i;:::-;;:::i;29613:125::-;;;;;;;;;;-1:-1:-1;29613:125:0;;;;;;;;;;;;;;;-1:-1:-1;;;29613:125:0;;;;;;;;;;18806:6:1;18839:15;;;18821:34;;18891:15;;;18886:2;18871:18;;18864:43;18943:15;;18923:18;;;18916:43;;;;18784:2;18769:18;29613:125:0;18600:365:1;32317:93:0;;;;;;;;;;-1:-1:-1;32317:93:0;;;;;:::i;:::-;;:::i;33759:118::-;;;;;;;;;;;;;:::i;29219:68::-;;;;;;;;;;-1:-1:-1;29219:68:0;;;;-1:-1:-1;;;;;29219:68:0;;;39063:2236;;;;;;;;;;-1:-1:-1;39063:2236:0;;;;;:::i;:::-;;:::i;32418:117::-;;;;;;;;;;-1:-1:-1;32418:117:0;;;;;:::i;:::-;;:::i;33629:122::-;;;;;;;;;;-1:-1:-1;33629:122:0;;;;;:::i;:::-;;:::i;28686:29::-;;;;;;;;;;-1:-1:-1;28686:29:0;;;;-1:-1:-1;;;;;28686:29:0;;;31965:126;;;;;;;;;;-1:-1:-1;31965:126:0;;;;;:::i;:::-;;:::i;29865:129::-;;;;;;;;;;-1:-1:-1;29865:129:0;;;;;;;;;;;;;;;-1:-1:-1;;;29865:129:0;;;;;;28722:23;;;;;;;;;;-1:-1:-1;28722:23:0;;;;-1:-1:-1;;;;;28722:23:0;;;32931:260;;;;;;;;;;-1:-1:-1;32931:260:0;;;;;:::i;:::-;;:::i;28752:36::-;;;;;;;;;;-1:-1:-1;28752:36:0;;;;-1:-1:-1;;;;;28752:36:0;;;28918:27;;;;;;;;;;;;;;;;6270:103;;;;;;;;;;;;;:::i;29085:92::-;;;;;;;;;;-1:-1:-1;29085:92:0;;;;-1:-1:-1;;;;;29085:92:0;;;33199:422;;;;;;;;;;-1:-1:-1;33199:422:0;;;;;:::i;:::-;;:::i;31517:129::-;;;;;;;;;;-1:-1:-1;31517:129:0;;;;;:::i;:::-;;:::i;30167:171::-;;;;;;;;;;-1:-1:-1;30167:171:0;;;;;;;;;;;;;;;-1:-1:-1;;;30167:171:0;;;;;-1:-1:-1;;;30167:171:0;;;;;-1:-1:-1;;;30167:171:0;;;;;;;;;;19229:6:1;19262:15;;;19244:34;;19314:15;;;19309:2;19294:18;;19287:43;19366:15;;;19346:18;;;19339:43;;;;19418:15;;19413:2;19398:18;;19391:43;19471:15;;;19465:3;19450:19;;19443:44;19206:3;19191:19;30167:171:0;18970:523:1;29463:29:0;;;;;;;;;;;;;;;;44255:1449;;;;;;;;;;-1:-1:-1;44255:1449:0;;;;;:::i;:::-;;:::i;29296:39::-;;;;;;;;;;;;;;;;5619:87;;;;;;;;;;-1:-1:-1;5665:7:0;5692:6;-1:-1:-1;;;;;5692:6:0;5619:87;;32212:97;;;;;;;;;;-1:-1:-1;32212:97:0;;;;;:::i;:::-;;:::i;36020:718::-;;;;;;;;;;-1:-1:-1;36020:718:0;;;;;:::i;:::-;;:::i;30387:75::-;;;;;;;;;;-1:-1:-1;30387:75:0;;;;;;;-1:-1:-1;;;;;30387:75:0;;;45712:2473;;;;;;;;;;-1:-1:-1;45712:2473:0;;;;;:::i;:::-;;:::i;32543:137::-;;;;;;;;;;-1:-1:-1;32543:137:0;;;;;:::i;:::-;;:::i;37829:1226::-;;;;;;;;;;-1:-1:-1;37829:1226:0;;;;;:::i;:::-;;:::i;36746:1075::-;;;;;;;;;;-1:-1:-1;36746:1075:0;;;;;:::i;:::-;;:::i;31402:107::-;;;;;;;;;;-1:-1:-1;31402:107:0;;;;;:::i;:::-;;:::i;29342:43::-;;;;;;;;;;;;;;;;31782:175;;;;;;;;;;-1:-1:-1;31782:175:0;;;;;:::i;:::-;;:::i;31181:107::-;;;;;;;;;;-1:-1:-1;31181:107:0;;;;;:::i;:::-;;:::i;41307:328::-;;;;;;;;;;-1:-1:-1;41307:328:0;;;;;:::i;:::-;;:::i;33885:115::-;;;;;;;;;;-1:-1:-1;33885:115:0;;;;;:::i;:::-;;:::i;31296:98::-;;;;;;;;;;-1:-1:-1;31296:98:0;;;;;:::i;:::-;;:::i;6528:201::-;;;;;;;;;;-1:-1:-1;6528:201:0;;;;;:::i;:::-;;:::i;28952:25::-;;;;;;;;;;;;;;;;41643:2604;;;;;;;;;;-1:-1:-1;41643:2604:0;;;;;:::i;:::-;;:::i;32687:236::-;;;;;;;;;;-1:-1:-1;32687:236:0;;;;;:::i;:::-;;:::i;29429:27::-;;;;;;;;;;;;;;;;30622:41;;;;;;;;;;-1:-1:-1;30622:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11385:14:1;;11378:22;11360:41;;11348:2;11333:18;30622:41:0;11220:187:1;31654:120:0;5665:7;5692:6;-1:-1:-1;;;;;5692:6:0;246:10;5839:23;5831:68;;;;-1:-1:-1;;;5831:68:0;;;;;;;:::i;:::-;;;;;;;;;31715:9:::1;::::0;31733:13:::1;::::0;31715:51:::1;::::0;-1:-1:-1;;;31715:51:0;;-1:-1:-1;;;;;31715:9:0;;::::1;::::0;:17:::1;::::0;:51:::1;::::0;31733:13;::::1;::::0;-1:-1:-1;;31748:17:0;31715:51:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;31654:120::o:0;32099:105::-;5665:7;5692:6;-1:-1:-1;;;;;5692:6:0;246:10;5839:23;5831:68;;;;-1:-1:-1;;;5831:68:0;;;;;;;:::i;:::-;32174:9:::1;:22:::0;32099:105::o;32317:93::-;5665:7;5692:6;-1:-1:-1;;;;;5692:6:0;246:10;5839:23;5831:68;;;;-1:-1:-1;;;5831:68:0;;;;;;;:::i;:::-;32386:6:::1;:16:::0;32317:93::o;33759:118::-;5665:7;5692:6;-1:-1:-1;;;;;5692:6:0;246:10;5839:23;5831:68;;;;-1:-1:-1;;;5831:68:0;;;;;;;:::i;:::-;33815:9:::1;::::0;33841::::1;::::0;;33815:54:::1;::::0;-1:-1:-1;;;33815:54:0;;-1:-1:-1;;;;;33815:9:0;;::::1;::::0;:17:::1;::::0;:54:::1;::::0;33841:9;;::::1;::::0;33853:15:::1;::::0;33815:54:::1;;:::i;39063:2236::-:0;39210:12;;39200:6;:22;;39192:73;;;;-1:-1:-1;;;39192:73:0;;;;;;;:::i;:::-;246:10;;39316:71;;;;-1:-1:-1;;;39316:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;39406:17:0;;;;;;:9;:17;;;;;;;;:26;39398:66;;;;-1:-1:-1;;;39398:66:0;;;;;;;:::i;:::-;39477:20;39517:9;39512:139;39532:17;;;39512:139;;;39601:7;;-1:-1:-1;;;;;39601:7:0;:13;246:10;39629:6;;39636:1;39629:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;39601:38;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;39586:53;;:12;:53;:::i;:::-;39571:68;-1:-1:-1;39551:3:0;;;;:::i;:::-;;;;39512:139;;;-1:-1:-1;39683:7:0;;:21;;-1:-1:-1;;;39683:21:0;;-1:-1:-1;;;;;8754:32:1;;;39683:21:0;;;8736:51:1;39663:17:0;;39683:7;;:13;;8709:18:1;;39683:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:32;;39707:8;39683:32;:::i;:::-;39663:52;;39731:10;39726:265;;39767:18;39779:6;39767:9;:18;:::i;:::-;39751:12;:34;;39743:94;;;;-1:-1:-1;;;39743:94:0;;;;;;;:::i;:::-;39726:265;;;39861:10;:78;;;;-1:-1:-1;39921:18:0;39933:6;39921:9;:18;:::i;:::-;39890:9;;:27;;-1:-1:-1;;;39890:27:0;;-1:-1:-1;;;;;8754:32:1;;;39890:27:0;;;8736:51:1;39890:9:0;;;;:19;;8709:18:1;;39890:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;39875:42;;:12;:42;:::i;:::-;:64;;39861:78;39853:138;;;;-1:-1:-1;;;39853:138:0;;;;;;;:::i;:::-;40049:9;;40012:7;;:25;;-1:-1:-1;;;40012:25:0;;-1:-1:-1;;;;;8754:32:1;;;40012:25:0;;;8736:51:1;40040:6:0;;40012:7;;:17;;8709:18:1;;40012:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:34;;;;:::i;:::-;:46;40004:92;;;;-1:-1:-1;;;40004:92:0;;;;;;;:::i;:::-;40112:9;40107:202;40131:6;40127:1;:10;40107:202;;;40188:1;40173:4;40167:18;:22;:49;;;;;40214:2;40199:4;40193:18;:23;40167:49;40159:90;;;;-1:-1:-1;;;40159:90:0;;;;;;;:::i;:::-;40264:7;;:32;;-1:-1:-1;;;40264:32:0;;-1:-1:-1;;;;;40264:7:0;;;;:18;;:32;;40283:6;;40291:4;;40264:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;40139:3;;;;;:::i;:::-;;;;40107:202;;;-1:-1:-1;40340:18:0;40352:6;40340:9;:18;:::i;:::-;40325:12;:33;40321:971;;;40375:24;40417:18;40429:6;40417:9;:18;:::i;:::-;40402:33;;:12;:33;:::i;:::-;40375:60;;40450:17;40470:50;40516:3;40470:41;40491:19;40503:6;40491:11;:19::i;:::-;40470:16;;:20;:41::i;:::-;:45;;:50::i;:::-;40450:70;-1:-1:-1;40535:21:0;40559:28;40450:70;40559:16;:28;:::i;:::-;40602:4;;:31;;-1:-1:-1;;;40602:31:0;;40535:52;;-1:-1:-1;;;;;;40602:4:0;;:8;;:31;;40611:6;;40535:52;;40602:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;40717:12:0;:18;40648:23;;40717:18;-1:-1:-1;;;40717:18:0;;;;;40675:37;;40687:25;;;;;40675:9;:37;:::i;:::-;40674:62;;;;:::i;:::-;40751:4;;:40;;-1:-1:-1;;;40751:40:0;;40648:88;;-1:-1:-1;;;;;;40751:4:0;;:8;;:40;;40768:4;;40648:88;;40751:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;40360:443;;;;40321:971;;;40813:10;:78;;;;-1:-1:-1;40873:18:0;40885:6;40873:9;:18;:::i;:::-;40842:9;;:27;;-1:-1:-1;;;40842:27:0;;-1:-1:-1;;;;;8754:32:1;;;40842:27:0;;;8736:51:1;40842:9:0;;;;:19;;8709:18:1;;40842:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;40827:42;;:12;:42;:::i;:::-;:64;;40813:78;40809:483;;;40908:25;40957:12;40936:18;40948:6;40936:9;:18;:::i;:::-;:33;;;;:::i;:::-;40984:9;;:71;;-1:-1:-1;;;40984:71:0;;40908:61;;-1:-1:-1;;;;;;40984:9:0;;:22;;:71;;246:10;;41029:4;;40908:61;;40984:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;41112:13:0;;41075:9;;:34;;-1:-1:-1;;;41075:34:0;;41103:4;41075:34;;;8736:51:1;-1:-1:-1;;;;;41075:9:0;;;;:19;;8709:18:1;;41075:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:50;41070:211;;;41178:9;;:34;;-1:-1:-1;;;41178:34:0;;41206:4;41178:34;;;8736:51:1;41147:28:0;;-1:-1:-1;;;;;41178:9:0;;:19;;8709:18:1;;41178:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;41147:65;;41231:34;41244:20;41231:12;:34::i;:::-;41128:153;41070:211;40893:399;40809:483;39181:2118;;;39063:2236;;;;;:::o;32418:117::-;5665:7;5692:6;-1:-1:-1;;;;;5692:6:0;246:10;5839:23;5831:68;;;;-1:-1:-1;;;5831:68:0;;;;;;;:::i;:::-;32499:12:::1;:28:::0;32418:117::o;33629:122::-;5665:7;5692:6;-1:-1:-1;;;;;5692:6:0;246:10;5839:23;5831:68;;;;-1:-1:-1;;;5831:68:0;;;;;;;:::i;:::-;33710:23:::1;:33:::0;33629:122::o;31965:126::-;5665:7;5692:6;-1:-1:-1;;;;;5692:6:0;246:10;5839:23;5831:68;;;;-1:-1:-1;;;5831:68:0;;;;;;;:::i;:::-;32046:7:::1;:37:::0;;-1:-1:-1;;;;;;32046:37:0::1;-1:-1:-1::0;;;;;32046:37:0;;;::::1;::::0;;;::::1;::::0;;31965:126::o;32931:260::-;5665:7;5692:6;-1:-1:-1;;;;;5692:6:0;246:10;5839:23;5831:68;;;;-1:-1:-1;;;5831:68:0;;;;;;;:::i;:::-;33029:12:::1;:41:::0;;::::1;33081::::0;;::::1;::::0;::::1;-1:-1:-1::0;;33081:41:0;;;33029;;::::1;33081::::0;::::1;::::0;;33154:29:::1;33109:13:::0;33057;33154:29:::1;:::i;:::-;33133:12;:50:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;33133:50:0::1;-1:-1:-1::0;;33133:50:0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;32931:260:0:o;6270:103::-;5665:7;5692:6;-1:-1:-1;;;;;5692:6:0;246:10;5839:23;5831:68;;;;-1:-1:-1;;;5831:68:0;;;;;;;:::i;:::-;6335:30:::1;6362:1;6335:18;:30::i;:::-;6270:103::o:0;33199:422::-;5665:7;5692:6;-1:-1:-1;;;;;5692:6:0;246:10;5839:23;5831:68;;;;-1:-1:-1;;;5831:68:0;;;;;;;:::i;:::-;33339:13:::1;:35:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;33385:39:0;;;;;;;-1:-1:-1;;;33385:39:0;;::::1;;;-1:-1:-1::0;;33485:37:0;33435:39;;;::::1;;-1:-1:-1::0;;33485:37:0;;-1:-1:-1;;;33485:37:0;;::::1;::::0;;;::::1;;::::0;;;33435:39;33555:27:::1;33385:39:::0;33339:35;33555:27:::1;:::i;:::-;:43;;;;:::i;:::-;:58;;;;:::i;:::-;33533:13;:80:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;33533:80:0::1;-1:-1:-1::0;;33533:80:0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;;33199:422:0:o;31517:129::-;5665:7;5692:6;-1:-1:-1;;;;;5692:6:0;246:10;5839:23;5831:68;;;;-1:-1:-1;;;5831:68:0;;;;;;;:::i;:::-;31596:14:::1;:42:::0;;-1:-1:-1;;;;;;31596:42:0::1;-1:-1:-1::0;;;;;31596:42:0;;;::::1;::::0;;;::::1;::::0;;31517:129::o;44255:1449::-;246:10;;44363:71;;;;-1:-1:-1;;;44363:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;44453:17:0;;;;;;:9;:17;;;;;;;;:26;44445:66;;;;-1:-1:-1;;;44445:66:0;;;;;;;:::i;:::-;44522:20;44562:9;44557:146;44577:17;;;44557:146;;;44646:14;;-1:-1:-1;;;;;44646:14:0;:20;246:10;44681:6;;44688:1;44681:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;44646:45;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;44631:60;;:12;:60;:::i;:::-;44616:75;-1:-1:-1;44596:3:0;;;;:::i;:::-;;;;44557:146;;;;44736:1;44721:12;:16;44713:76;;;;-1:-1:-1;;;44713:76:0;;;;;;;:::i;:::-;44800:17;44820:46;44862:3;44820:37;44837:19;44849:6;44837:11;:19::i;44820:46::-;44800:66;;44897:1;44885:9;:13;44877:39;;;;-1:-1:-1;;;44877:39:0;;;;;;;:::i;:::-;44953:1;44931:19;44943:6;44931:11;:19::i;:::-;:23;44927:770;;;44971:18;44992:24;45007:9;44992:12;:24;:::i;:::-;45031:4;;:28;;-1:-1:-1;;;45031:28:0;;44971:45;;-1:-1:-1;;;;;;45031:4:0;;:8;;:28;;45040:6;;44971:45;;45031:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;45153:12:0;:18;45076:31;;45153:18;-1:-1:-1;;;45153:18:0;;;;;45111:37;;45123:25;;;;;45111:9;:37;:::i;:::-;45110:62;;;;:::i;:::-;45189:4;;:48;;-1:-1:-1;;;45189:48:0;;45076:96;;-1:-1:-1;;;;;;45189:4:0;;:8;;:48;;45206:4;;45076:96;;45189:48;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;45278:16:0;;;45292:1;45278:16;;;;;;;;45254:21;;45278:16;;;;;;;;-1:-1:-1;;45327:9:0;;45309:7;;;;-1:-1:-1;;;;;;45327:9:0;;45309:7;;-1:-1:-1;45327:9:0;;45309:7;;;;:::i;:::-;-1:-1:-1;;;;;45309:28:0;;;:7;;;;;;;;;:28;45362:5;;45352:7;;45362:5;;;45352:4;;45362:5;;45352:7;;;;;;:::i;:::-;-1:-1:-1;;;;;45352:15:0;;;:7;;;;;;;;;:15;45384:9;;;45549:15;;45384:229;;-1:-1:-1;;;45384:229:0;;:9;;;;:61;;:229;;45464:23;;45384:9;;45526:4;;45549:15;;;45583;;45384:229;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;44956:669;;;44927:770;;;45655:4;;:30;;-1:-1:-1;;;45655:30:0;;-1:-1:-1;;;;;45655:4:0;;;;:8;;:30;;45664:6;;45672:12;;45655:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;44927:770;44312:1392;;;44255:1449;;:::o;32212:97::-;5665:7;5692:6;-1:-1:-1;;;;;5692:6:0;246:10;5839:23;5831:68;;;;-1:-1:-1;;;5831:68:0;;;;;;;:::i;:::-;32283:7:::1;:18:::0;32212:97::o;36020:718::-;36117:1;36102:4;36096:18;:22;:49;;;;;36143:2;36128:4;36122:18;:23;36096:49;36088:90;;;;-1:-1:-1;;;36088:90:0;;;;;;;:::i;:::-;246:10;;36229:72;;;;-1:-1:-1;;;36229:72:0;;;;;;;:::i;:::-;36332:7;;:21;;-1:-1:-1;;;36332:21:0;;-1:-1:-1;;;;;8754:32:1;;;36332:21:0;;;8736:51:1;36312:17:0;;36332:7;;:13;;8709:18:1;;36332:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:32;;36356:8;36332:32;:::i;:::-;36312:52;;36395:1;36383:9;:13;36375:31;;;;-1:-1:-1;;;36375:31:0;;13731:2:1;36375:31:0;;;13713:21:1;13770:1;13750:18;;;13743:29;-1:-1:-1;;;13788:18:1;;;13781:35;13833:18;;36375:31:0;13529:328:1;36375:31:0;36425:9;;:27;;-1:-1:-1;;;36425:27:0;;-1:-1:-1;;;;;8754:32:1;;;36425:27:0;;;8736:51:1;36456:9:0;;36425;;:19;;8709:18:1;;36425:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:40;;36417:90;;;;-1:-1:-1;;;36417:90:0;;;;;;;:::i;:::-;36558:9;;36526:7;;:25;;-1:-1:-1;;;36526:25:0;;-1:-1:-1;;;;;8754:32:1;;;36526:25:0;;;8736:51:1;36526:7:0;;;;:17;;8709:18:1;;36526:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:29;;36554:1;36526:29;:::i;:::-;:41;36518:87;;;;-1:-1:-1;;;36518:87:0;;;;;;;:::i;:::-;36616:9;;-1:-1:-1;;;;;36616:9:0;:22;246:10;36661:4;36669:9;36616:63;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;36690:7:0;;:32;;-1:-1:-1;;;36690:32:0;;-1:-1:-1;;;;;36690:7:0;;;;:18;;:32;;36709:6;;36717:4;;36690:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36077:661;;36020:718;:::o;45712:2473::-;246:10;;45799:71;;;;-1:-1:-1;;;45799:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;45889:17:0;;;;;;:9;:17;;;;;;;;:26;45881:66;;;;-1:-1:-1;;;45881:66:0;;;;;;;:::i;:::-;45981:7;;:34;;-1:-1:-1;;;45981:34:0;;45958:20;;-1:-1:-1;;;;;45981:7:0;;:13;;:34;;246:10;;46009:5;;45981:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;45958:57;;46049:1;46034:12;:16;46026:76;;;;-1:-1:-1;;;46026:76:0;;;;;;;:::i;:::-;46113:17;46133:46;46175:3;46133:37;46150:19;46162:6;46150:11;:19::i;46133:46::-;46113:66;;46190:20;46213:33;46242:3;46213:24;46230:6;;46213:12;:16;;:24;;;;:::i;:33::-;46190:56;;46277:1;46265:9;:13;46257:39;;;;-1:-1:-1;;;46257:39:0;;;;;;;:::i;:::-;46333:1;46311:19;46323:6;46311:11;:19::i;:::-;:23;46307:1871;;;46351:18;46399:12;46372:24;46387:9;46372:12;:24;:::i;:::-;:39;;;;:::i;:::-;46426:4;;:28;;-1:-1:-1;;;46426:28:0;;46351:60;;-1:-1:-1;;;;;;46426:4:0;;:8;;:28;;46435:6;;46351:60;;46426:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;46639:13:0;:19;46497:31;;46639:19;-1:-1:-1;;;46639:19:0;;;;;46597:38;;-1:-1:-1;;;46612:23:0;;;;46597:12;:38;:::i;:::-;46596:62;;;;:::i;:::-;46574:12;:18;;-1:-1:-1;;;46574:18:0;;;;;46532:37;;46544:25;;;;;46532:9;:37;:::i;:::-;46531:62;;;;:::i;:::-;:127;;;;:::i;:::-;46673:4;;:48;;-1:-1:-1;;;46673:48:0;;46497:161;;-1:-1:-1;;;;;;46673:4:0;;:8;;:48;;46690:4;;46497:161;;46673:48;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;46760:16:0;;;46774:1;46760:16;;;;;;;;46736:21;;46760:16;;;;;;;;-1:-1:-1;;46809:9:0;;46791:7;;;;-1:-1:-1;;;;;;46809:9:0;;46791:7;;-1:-1:-1;46809:9:0;;46791:7;;;;:::i;:::-;-1:-1:-1;;;;;46791:28:0;;;:7;;;;;;;;;:28;46844:5;;46834:7;;46844:5;;;46834:4;;46844:5;;46834:7;;;;;;:::i;:::-;-1:-1:-1;;;;;46834:15:0;;;:7;;;;;;;;;:15;46864:9;;;47029:15;;46864:229;;-1:-1:-1;;;46864:229:0;;:9;;;;:61;;:229;;46944:23;;46864:9;;47006:4;;47029:15;;;47063;;46864:229;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47123:1;47114:6;;:10;47110:985;;;47339:13;:19;47270:24;;47339:19;-1:-1:-1;;;47339:19:0;;;;;47298:37;;-1:-1:-1;;;47313:22:0;;;;47298:12;:37;:::i;:::-;47297:61;;;;:::i;:::-;47375:4;;:41;;-1:-1:-1;;;47375:41:0;;47270:88;;-1:-1:-1;;;;;;47375:4:0;;:8;;:41;;47392:4;;47270:88;;47375:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;47433:9:0;;;47599:8;;47433:227;;-1:-1:-1;;;47433:227:0;;-1:-1:-1;;;;;47433:9:0;;;;:61;;:227;;47515:16;;47433:9;;47574:4;;47599:8;;;;47628:15;;47433:227;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;47793:13:0;:19;47722:25;;-1:-1:-1;47793:19:0;-1:-1:-1;;;47793:19:0;;;;;-1:-1:-1;47751:38:0;;47766:23;;;;47751:12;:38;:::i;:::-;47750:62;;;;:::i;:::-;47722:90;;47853:17;47829:20;;:41;;;;;;;:::i;:::-;;;;-1:-1:-1;;47915:23:0;;47891:20;;:47;47887:193;;47959:4;;47983:20;;47959:45;;-1:-1:-1;;;47959:45:0;;-1:-1:-1;;;;;47959:4:0;;;;:8;;:45;;47976:4;;47983:20;47959:45;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;48023:39;48041:20;;48023:17;:39::i;:::-;47126:969;;47110:985;46336:1770;;;46307:1871;;;48136:4;;:30;;-1:-1:-1;;;48136:30:0;;-1:-1:-1;;;;;48136:4:0;;;;:8;;:30;;48145:6;;48153:12;;48136:30;;;:::i;32543:137::-;5665:7;5692:6;-1:-1:-1;;;;;5692:6:0;246:10;5839:23;5831:68;;;;-1:-1:-1;;;5831:68:0;;;;;;;:::i;:::-;32638:15:::1;:34:::0;;-1:-1:-1;;;;;;32638:34:0::1;-1:-1:-1::0;;;;;32638:34:0;;;::::1;::::0;;;::::1;::::0;;32543:137::o;37829:1226::-;37946:12;;37936:6;:22;;37928:73;;;;-1:-1:-1;;;37928:73:0;;;;;;;:::i;:::-;38036:6;38020:5;:12;:22;38012:85;;;;-1:-1:-1;;;38012:85:0;;12970:2:1;38012:85:0;;;12952:21:1;13009:2;12989:18;;;12982:30;13048:34;13028:18;;;13021:62;-1:-1:-1;;;13099:18:1;;;13092:48;13157:19;;38012:85:0;12768:414:1;38012:85:0;246:10;;38148:72;;;;-1:-1:-1;;;38148:72:0;;15285:2:1;38148:72:0;;;15267:21:1;15324:2;15304:18;;;15297:30;15363:34;15343:18;;;15336:62;-1:-1:-1;;;15414:18:1;;;15407:37;15461:19;;38148:72:0;15083:403:1;38148:72:0;38251:7;;:21;;-1:-1:-1;;;38251:21:0;;-1:-1:-1;;;;;8754:32:1;;;38251:21:0;;;8736:51:1;38231:17:0;;38251:7;;:13;;8709:18:1;;38251:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:32;;38275:8;38251:32;:::i;:::-;38231:52;-1:-1:-1;38333:18:0;38345:6;38231:52;38333:18;:::i;:::-;38302:9;;:27;;-1:-1:-1;;;38302:27:0;;-1:-1:-1;;;;;8754:32:1;;;38302:27:0;;;8736:51:1;38302:9:0;;;;:19;;8709:18:1;;38302:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:49;;38294:99;;;;-1:-1:-1;;;38294:99:0;;;;;;;:::i;:::-;38449:9;;38412:7;;:25;;-1:-1:-1;;;38412:25:0;;-1:-1:-1;;;;;8754:32:1;;;38412:25:0;;;8736:51:1;38440:6:0;;38412:7;;:17;;8709:18:1;;38412:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:34;;;;:::i;:::-;:46;38404:92;;;;-1:-1:-1;;;38404:92:0;;;;;;;:::i;:::-;38507:9;;-1:-1:-1;;;;;38507:9:0;:22;246:10;38552:4;38559:18;38571:6;38559:9;:18;:::i;:::-;38507:71;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;38596:9;38591:246;38615:6;38611:1;:10;38591:246;;;38643:18;38664:5;38670:1;38664:8;;;;;;;;:::i;:::-;;;;;;;38643:29;;38716:1;38701:4;38695:18;:22;:49;;;;;38742:2;38727:4;38721:18;:23;38695:49;38687:90;;;;-1:-1:-1;;;38687:90:0;;;;;;;:::i;:::-;38792:7;;:32;;-1:-1:-1;;;38792:32:0;;-1:-1:-1;;;;;38792:7:0;;;;:18;;:32;;38811:6;;38819:4;;38792:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;38628:209;38623:3;;;;;:::i;:::-;;;;38591:246;;;-1:-1:-1;38891:13:0;;38854:9;;:34;;-1:-1:-1;;;38854:34:0;;38882:4;38854:34;;;8736:51:1;-1:-1:-1;;;;;38854:9:0;;;;:19;;8709:18:1;;38854:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:50;38849:199;;;38953:9;;:34;;-1:-1:-1;;;38953:34:0;;38981:4;38953:34;;;8736:51:1;38922:28:0;;-1:-1:-1;;;;;38953:9:0;;:19;;8709:18:1;;38953:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;38922:65;;39002:34;39015:20;39002:12;:34::i;38849:199::-;37917:1138;;37829:1226;;:::o;36746:1075::-;36853:12;;36843:6;:22;;36835:73;;;;-1:-1:-1;;;36835:73:0;;;;;;;:::i;:::-;36948:1;36933:4;36927:18;:22;:49;;;;;36974:2;36959:4;36953:18;:23;36927:49;36919:90;;;;-1:-1:-1;;;36919:90:0;;;;;;;:::i;:::-;246:10;;37060:72;;;;-1:-1:-1;;;37060:72:0;;;;;;;:::i;:::-;37163:7;;:21;;-1:-1:-1;;;37163:21:0;;-1:-1:-1;;;;;8754:32:1;;;37163:21:0;;;8736:51:1;37143:17:0;;37163:7;;:13;;8709:18:1;;37163:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:32;;37187:8;37163:32;:::i;:::-;37143:52;-1:-1:-1;37245:18:0;37257:6;37143:52;37245:18;:::i;:::-;37214:9;;:27;;-1:-1:-1;;;37214:27:0;;-1:-1:-1;;;;;8754:32:1;;;37214:27:0;;;8736:51:1;37214:9:0;;;;:19;;8709:18:1;;37214:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:49;;37206:99;;;;-1:-1:-1;;;37206:99:0;;;;;;;:::i;:::-;37361:9;;37324:7;;:25;;-1:-1:-1;;;37324:25:0;;-1:-1:-1;;;;;8754:32:1;;;37324:25:0;;;8736:51:1;37352:6:0;;37324:7;;:17;;8709:18:1;;37324:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:34;;;;:::i;:::-;:46;37316:92;;;;-1:-1:-1;;;37316:92:0;;;;;;;:::i;:::-;37419:9;;-1:-1:-1;;;;;37419:9:0;:22;246:10;37464:4;37472:18;37484:6;37472:9;:18;:::i;:::-;37419:72;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;37509:9;37504:99;37528:6;37524:1;:10;37504:99;;;37556:7;;:32;;-1:-1:-1;;;37556:32:0;;-1:-1:-1;;;;;37556:7:0;;;;:18;;:32;;37575:6;;37583:4;;37556:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37536:3;;;;;:::i;:::-;;;;37504:99;;31402:107;5665:7;5692:6;-1:-1:-1;;;;;5692:6:0;246:10;5839:23;5831:68;;;;-1:-1:-1;;;5831:68:0;;;;;;;:::i;:::-;31473:8:::1;:28:::0;;-1:-1:-1;;;;;31473:28:0;;::::1;;;-1:-1:-1::0;;;;;;31473:28:0;;::::1;::::0;;;::::1;::::0;;31402:107::o;31782:175::-;5665:7;5692:6;-1:-1:-1;;;;;5692:6:0;246:10;5839:23;5831:68;;;;-1:-1:-1;;;5831:68:0;;;;;;;:::i;:::-;31854:4:::1;::::0;-1:-1:-1;;;;;31854:4:0::1;:8;31871:7;5665::::0;5692:6;-1:-1:-1;;;;;5692:6:0;;5619:87;31871:7:::1;31881:9;::::0;31909:4:::1;::::0;31881:34:::1;::::0;-1:-1:-1;;;31881:34:0;;-1:-1:-1;;;;;31909:4:0;;::::1;31881:34;::::0;::::1;8736:51:1::0;31881:9:0;::::1;::::0;:19:::1;::::0;8709:18:1;;31881:34:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;31854:62;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;31943:5;31934:15;;;;;:::i;:::-;-1:-1:-1::0;;;;;8754:32:1;;;8736:51;;8724:2;8709:18;31934:15:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;31927:4:0::1;:22:::0;;-1:-1:-1;;;;;;31927:22:0::1;-1:-1:-1::0;;;;;31927:22:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;31782:175:0:o;31181:107::-;5665:7;5692:6;-1:-1:-1;;;;;5692:6:0;246:10;5839:23;5831:68;;;;-1:-1:-1;;;5831:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;31258:15:0;;;::::1;;::::0;;;:9:::1;:15;::::0;;;;:22;;-1:-1:-1;;31258:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;31181:107::o;41307:328::-;41446:7;;41416:8;;:26;;-1:-1:-1;;;41416:26:0;;-1:-1:-1;;;;;8754:32:1;;;41416:26:0;;;8736:51:1;-1:-1:-1;;;;41446:7:0;;41416:8;;;;;;;;:18;;8709::1;;41416:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:37;41413:215;;-1:-1:-1;41477:1:0;;41307:328;-1:-1:-1;;41307:328:0:o;41413:215::-;41559:8;;:26;;-1:-1:-1;;;41559:26:0;;-1:-1:-1;;;;;8754:32:1;;;41559:26:0;;;8736:51:1;41547:39:0;;41559:8;;;;;:18;;8709::1;;41559:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;41547:7;;;:11;:39::i;:::-;41536:50;41307:328;-1:-1:-1;;;41307:328:0:o;33885:115::-;5665:7;5692:6;-1:-1:-1;;;;;5692:6:0;246:10;5839:23;5831:68;;;;-1:-1:-1;;;5831:68:0;;;;;;;:::i;:::-;33959:9:::1;:33:::0;;-1:-1:-1;;;;;;33959:33:0::1;-1:-1:-1::0;;;;;33959:33:0;;;::::1;::::0;;;::::1;::::0;;33885:115::o;31296:98::-;5665:7;5692:6;-1:-1:-1;;;;;5692:6:0;246:10;5839:23;5831:68;;;;-1:-1:-1;;;5831:68:0;;;;;;;:::i;:::-;31366:8:::1;:20:::0;;-1:-1:-1;;;;;;31366:20:0::1;-1:-1:-1::0;;;;;31366:20:0;;;::::1;::::0;;;::::1;::::0;;31296:98::o;6528:201::-;5665:7;5692:6;-1:-1:-1;;;;;5692:6:0;246:10;5839:23;5831:68;;;;-1:-1:-1;;;5831:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6617:22:0;::::1;6609:73;;;::::0;-1:-1:-1;;;6609:73:0;;14472:2:1;6609:73:0::1;::::0;::::1;14454:21:1::0;14511:2;14491:18;;;14484:30;14550:34;14530:18;;;14523:62;-1:-1:-1;;;14601:18:1;;;14594:36;14647:19;;6609:73:0::1;14270:402:1::0;6609:73:0::1;6693:28;6712:8;6693:18;:28::i;41643:2604::-:0;246:10;;41745:71;;;;-1:-1:-1;;;41745:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;41835:17:0;;;;;;:9;:17;;;;;;;;:26;41827:66;;;;-1:-1:-1;;;41827:66:0;;;;;;;:::i;:::-;41904:20;41944:9;41939:139;41959:17;;;41939:139;;;42028:7;;-1:-1:-1;;;;;42028:7:0;:13;246:10;42056:6;;42063:1;42056:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;42028:38;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;42013:53;;:12;:53;:::i;:::-;41998:68;-1:-1:-1;41978:3:0;;;;:::i;:::-;;;;41939:139;;;;42111:1;42096:12;:16;42088:76;;;;-1:-1:-1;;;42088:76:0;;;;;;;:::i;:::-;42175:17;42195:46;42237:3;42195:37;42212:19;42224:6;42212:11;:19::i;42195:46::-;42175:66;;42252:20;42275:33;42304:3;42275:24;42292:6;;42275:12;:16;;:24;;;;:::i;:33::-;42252:56;;42339:1;42327:9;:13;42319:39;;;;-1:-1:-1;;;42319:39:0;;;;;;;:::i;:::-;42395:1;42373:19;42385:6;42373:11;:19::i;:::-;:23;42369:1871;;;42413:18;42461:12;42434:24;42449:9;42434:12;:24;:::i;:::-;:39;;;;:::i;:::-;42488:4;;:28;;-1:-1:-1;;;42488:28:0;;42413:60;;-1:-1:-1;;;;;;42488:4:0;;:8;;:28;;42497:6;;42413:60;;42488:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;42701:13:0;:19;42559:31;;42701:19;-1:-1:-1;;;42701:19:0;;;;;42659:38;;-1:-1:-1;;;42674:23:0;;;;42659:12;:38;:::i;:::-;42658:62;;;;:::i;:::-;42636:12;:18;;-1:-1:-1;;;42636:18:0;;;;;42594:37;;42606:25;;;;;42594:9;:37;:::i;:::-;42593:62;;;;:::i;:::-;:127;;;;:::i;:::-;42735:4;;:48;;-1:-1:-1;;;42735:48:0;;42559:161;;-1:-1:-1;;;;;;42735:4:0;;:8;;:48;;42752:4;;42559:161;;42735:48;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;42822:16:0;;;42836:1;42822:16;;;;;;;;42798:21;;42822:16;;;;;;;;-1:-1:-1;;42871:9:0;;42853:7;;;;-1:-1:-1;;;;;;42871:9:0;;42853:7;;-1:-1:-1;42871:9:0;;42853:7;;;;:::i;:::-;-1:-1:-1;;;;;42853:28:0;;;:7;;;;;;;;;:28;42906:5;;42896:7;;42906:5;;;42896:4;;42906:5;;42896:7;;;;;;:::i;:::-;-1:-1:-1;;;;;42896:15:0;;;:7;;;;;;;;;:15;42926:9;;;43091:15;;42926:229;;-1:-1:-1;;;42926:229:0;;:9;;;;:61;;:229;;43006:23;;42926:9;;43068:4;;43091:15;;;43125;;42926:229;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;43185:1;43176:6;;:10;43172:985;;;43401:13;:19;43332:24;;43401:19;-1:-1:-1;;;43401:19:0;;;;;43360:37;;-1:-1:-1;;;43375:22:0;;;;43360:12;:37;:::i;:::-;43359:61;;;;:::i;:::-;43437:4;;:41;;-1:-1:-1;;;43437:41:0;;43332:88;;-1:-1:-1;;;;;;43437:4:0;;:8;;:41;;43454:4;;43332:88;;43437:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;43495:9:0;;;43661:8;;43495:227;;-1:-1:-1;;;43495:227:0;;-1:-1:-1;;;;;43495:9:0;;;;:61;;:227;;43577:16;;43495:9;;43636:4;;43661:8;;;;43690:15;;43495:227;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;43855:13:0;:19;43784:25;;-1:-1:-1;43855:19:0;-1:-1:-1;;;43855:19:0;;;;;-1:-1:-1;43813:38:0;;43828:23;;;;43813:12;:38;:::i;:::-;43812:62;;;;:::i;:::-;43784:90;;43915:17;43891:20;;:41;;;;;;;:::i;:::-;;;;-1:-1:-1;;43977:23:0;;43953:20;;:47;43949:193;;44021:4;;44045:20;;44021:45;;-1:-1:-1;;;44021:45:0;;-1:-1:-1;;;;;44021:4:0;;;;:8;;:45;;44038:4;;44045:20;44021:45;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;44085:39;44103:20;;44085:17;:39::i;:::-;43188:969;;43172:985;42398:1770;;;42369:1871;;;44198:4;;:30;;-1:-1:-1;;;44198:30:0;;-1:-1:-1;;;;;44198:4:0;;;;:8;;:30;;44207:6;;44215:12;;44198:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;32687:236::-;5665:7;5692:6;-1:-1:-1;;;;;5692:6:0;246:10;5839:23;5831:68;;;;-1:-1:-1;;;5831:68:0;;;;;;;:::i;:::-;32779:11:::1;:30:::0;;::::1;32820:40:::0;;::::1;::::0;::::1;-1:-1:-1::0;;32820:40:0;;;32779:30;;::::1;32820:40:::0;::::1;::::0;;32891:24:::1;32847:13:::0;32801:8;32891:24:::1;:::i;:::-;32871:11;:44:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;32871:44:0::1;-1:-1:-1::0;;32871:44:0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;32687:236:0:o;2031:471::-;2089:7;2334:6;2330:47;;-1:-1:-1;2364:1:0;2357:8;;2330:47;2389:9;2401:5;2405:1;2401;:5;:::i;:::-;2389:17;-1:-1:-1;2434:1:0;2425:5;2429:1;2389:17;2425:5;:::i;:::-;:10;2417:56;;;;-1:-1:-1;;;2417:56:0;;16858:2:1;2417:56:0;;;16840:21:1;16897:2;16877:18;;;16870:30;16936:34;16916:18;;;16909:62;-1:-1:-1;;;16987:18:1;;;16980:31;17028:19;;2417:56:0;16656:397:1;2417:56:0;2493:1;-1:-1:-1;2031:471:0;;;;;:::o;2978:132::-;3036:7;3063:39;3067:1;3070;3063:39;;;;;;;;;;;;;;;;;:3;:39::i;34014:1223::-;34085:11;:17;-1:-1:-1;;;34085:17:0;;;;34081:61;;34014:1223;:::o;34081:61::-;34229:11;:17;34154:23;;34251:1;;34229:17;-1:-1:-1;;;34229:17:0;;;;;34182:42;;34200:24;;;;;34182:15;:42;:::i;:::-;34181:66;;;;:::i;:::-;34180:72;;;;:::i;:::-;34336:11;:17;34154:98;;-1:-1:-1;34263:27:0;;34336:17;-1:-1:-1;;;34336:17:0;;;;;34294:37;;34312:19;34294:15;:37;:::i;:::-;34293:61;;;;:::i;:::-;34263:91;-1:-1:-1;34370:23:0;;34367:109;;34410:9;;34437:4;;34410:54;;-1:-1:-1;;;34410:54:0;;-1:-1:-1;;;;;34410:9:0;;;;:18;;:54;;34437:4;;;34444:19;;34410:54;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;34367:109;34512:16;;;34526:1;34512:16;;;;;;;;34488:21;;34512:16;;;;;;;;-1:-1:-1;;34557:9:0;;34539:7;;;;-1:-1:-1;;;;;;34557:9:0;;34539:7;;-1:-1:-1;34557:9:0;;34539:7;;;;:::i;:::-;-1:-1:-1;;;;;34539:28:0;;;:7;;;;;;;;;:28;34588:5;;34578:7;;34588:5;;;34578:4;;34588:5;;34578:7;;;;;;:::i;:::-;-1:-1:-1;;;;;34578:15:0;;;:7;;;;;;;;;:15;34606:9;;;:195;;-1:-1:-1;;;34606:195:0;;:9;;;:61;;:195;;34682:15;;34606:9;;34728:4;;34755;;34775:15;;34606:195;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34835:21:0;;-1:-1:-1;;34873:19:0;;;-1:-1:-1;34869:351:0;;34909:9;;;34981;;35084:15;;34909:239;;-1:-1:-1;;;34909:239:0;;-1:-1:-1;;;;;34909:9:0;;;;:26;;34943:10;;34909:239;;34981:9;;;;35010:15;;34909:9;;;;35084:15;;35118;;34909:239;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;35168:40:0;;;21036:25:1;;;21092:2;21077:18;;21070:34;;;35168:40:0;;-1:-1:-1;21009:18:1;35168:40:0;;;;;;;34070:1167;;;;34014:1223;:::o;6889:191::-;6963:16;6982:6;;-1:-1:-1;;;;;6999:17:0;;;-1:-1:-1;;;;;;6999:17:0;;;;;;7032:40;;6982:6;;;;;;;7032:40;;6963:16;7032:40;6952:128;6889:191;:::o;35249:763::-;35345:16;;;35359:1;35345:16;;;;;;;;35321:21;;35345:16;;;;;;;;-1:-1:-1;;35390:9:0;;35372:7;;;;-1:-1:-1;;;;;;35390:9:0;;35372:7;;-1:-1:-1;35390:9:0;;35372:7;;;;:::i;:::-;-1:-1:-1;;;;;35372:28:0;;;:7;;;;;;;;;:28;35421:5;;35411:7;;35421:5;;;35411:4;;35421:5;;35411:7;;;;;;:::i;:::-;-1:-1:-1;;;;;35411:15:0;;;:7;;;;;;;;;:15;35439:9;;;:195;;-1:-1:-1;;;35439:195:0;;:9;;;:61;;:195;;35515:15;;35439:9;;35561:4;;35588;;35608:15;;35439:195;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;35702:9:0;;;35770;;35857:15;;35702:211;;-1:-1:-1;;;35702:211:0;;35668:21;;-1:-1:-1;;;;;;35702:9:0;;;;-1:-1:-1;35702:26:0;;35668:21;;35702:211;;35770:9;;;35795:15;;35647:18;;;;35857:15;;;;35887;;35702:211;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;35929:40:0;;;21036:25:1;;;21092:2;21077:18;;21070:34;;;35929:40:0;;-1:-1:-1;21009:18:1;35929:40:0;;;;;;;-1:-1:-1;;36003:1:0;35980:20;:24;-1:-1:-1;35249:763:0:o;1107:136::-;1165:7;1192:43;1196:1;1199;1192:43;;;;;;;;;;;;;;;;;:3;:43::i;3606:312::-;3726:7;3761:12;3754:5;3746:28;;;;-1:-1:-1;;;3746:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3785:9:0;3797:5;3801:1;3797;:5;:::i;:::-;3785:17;3606:312;-1:-1:-1;;;;;3606:312:0:o;1546:226::-;1666:7;1702:12;1694:6;;;;1686:29;;;;-1:-1:-1;;;1686:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1726:9:0;1738:5;1742:1;1738;:5;:::i;-1:-1:-1:-;;;;;;;;:::o;14:366:1:-;76:8;86:6;140:3;133:4;125:6;121:17;117:27;107:55;;158:1;155;148:12;107:55;-1:-1:-1;181:20:1;;224:18;213:30;;210:50;;;256:1;253;246:12;210:50;293:4;285:6;281:17;269:29;;353:3;346:4;336:6;333:1;329:14;321:6;317:27;313:38;310:47;307:67;;;370:1;367;360:12;307:67;14:366;;;;;:::o;385:531::-;428:5;481:3;474:4;466:6;462:17;458:27;448:55;;499:1;496;489:12;448:55;535:6;522:20;561:18;557:2;554:26;551:52;;;583:18;;:::i;:::-;627:55;670:2;651:13;;-1:-1:-1;;647:27:1;676:4;643:38;627:55;:::i;:::-;707:2;698:7;691:19;753:3;746:4;741:2;733:6;729:15;725:26;722:35;719:55;;;770:1;767;760:12;719:55;835:2;828:4;820:6;816:17;809:4;800:7;796:18;783:55;883:1;858:16;;;876:4;854:27;847:38;;;;862:7;385:531;-1:-1:-1;;;385:531:1:o;921:159::-;988:20;;1048:6;1037:18;;1027:29;;1017:57;;1070:1;1067;1060:12;1017:57;921:159;;;:::o;1085:247::-;1144:6;1197:2;1185:9;1176:7;1172:23;1168:32;1165:52;;;1213:1;1210;1203:12;1165:52;1252:9;1239:23;1271:31;1296:5;1271:31;:::i;1597:382::-;1662:6;1670;1723:2;1711:9;1702:7;1698:23;1694:32;1691:52;;;1739:1;1736;1729:12;1691:52;1778:9;1765:23;1797:31;1822:5;1797:31;:::i;:::-;1847:5;-1:-1:-1;1904:2:1;1889:18;;1876:32;1917:30;1876:32;1917:30;:::i;:::-;1966:7;1956:17;;;1597:382;;;;;:::o;1984:1205::-;2087:6;2095;2148:2;2136:9;2127:7;2123:23;2119:32;2116:52;;;2164:1;2161;2154:12;2116:52;2204:9;2191:23;2233:18;2274:2;2266:6;2263:14;2260:34;;;2290:1;2287;2280:12;2260:34;2328:6;2317:9;2313:22;2303:32;;2373:7;2366:4;2362:2;2358:13;2354:27;2344:55;;2395:1;2392;2385:12;2344:55;2431:2;2418:16;2453:4;2476:2;2472;2469:10;2466:36;;;2482:18;;:::i;:::-;2528:2;2525:1;2521:10;2551:28;2575:2;2571;2567:11;2551:28;:::i;:::-;2613:15;;;2644:12;;;;2676:11;;;2706;;;2702:20;;2699:33;-1:-1:-1;2696:53:1;;;2745:1;2742;2735:12;2696:53;2767:1;2758:10;;2788:1;2798:310;2814:2;2809:3;2806:11;2798:310;;;2895:3;2882:17;2931:2;2918:11;2915:19;2912:39;;;2947:1;2944;2937:12;2912:39;2976:57;3025:7;3020:2;3006:11;3002:2;2998:20;2994:29;2976:57;:::i;:::-;2964:70;;-1:-1:-1;3054:12:1;;;;3086;;;;2836:1;2827:11;2798:310;;;-1:-1:-1;3127:5:1;;3164:18;;;;3151:32;;-1:-1:-1;;;;;;;;;1984:1205:1:o;3194:435::-;3279:6;3287;3340:2;3328:9;3319:7;3315:23;3311:32;3308:52;;;3356:1;3353;3346:12;3308:52;3396:9;3383:23;3429:18;3421:6;3418:30;3415:50;;;3461:1;3458;3451:12;3415:50;3500:69;3561:7;3552:6;3541:9;3537:22;3500:69;:::i;:::-;3588:8;;3474:95;;-1:-1:-1;3194:435:1;-1:-1:-1;;;;3194:435:1:o;3634:245::-;3701:6;3754:2;3742:9;3733:7;3729:23;3725:32;3722:52;;;3770:1;3767;3760:12;3722:52;3802:9;3796:16;3821:28;3843:5;3821:28;:::i;4425:322::-;4494:6;4547:2;4535:9;4526:7;4522:23;4518:32;4515:52;;;4563:1;4560;4553:12;4515:52;4603:9;4590:23;4636:18;4628:6;4625:30;4622:50;;;4668:1;4665;4658:12;4622:50;4691;4733:7;4724:6;4713:9;4709:22;4691:50;:::i;:::-;4681:60;4425:322;-1:-1:-1;;;;4425:322:1:o;4752:854::-;4871:6;4879;4887;4895;4903;4956:3;4944:9;4935:7;4931:23;4927:33;4924:53;;;4973:1;4970;4963:12;4924:53;5013:9;5000:23;5042:18;5083:2;5075:6;5072:14;5069:34;;;5099:1;5096;5089:12;5069:34;5122:50;5164:7;5155:6;5144:9;5140:22;5122:50;:::i;:::-;5112:60;;5225:2;5214:9;5210:18;5197:32;5181:48;;5254:2;5244:8;5241:16;5238:36;;;5270:1;5267;5260:12;5238:36;;5309:71;5372:7;5361:8;5350:9;5346:24;5309:71;:::i;:::-;5399:8;;-1:-1:-1;5283:97:1;-1:-1:-1;;5481:2:1;5466:18;;5453:32;;-1:-1:-1;5535:2:1;5520:18;;5507:32;5548:28;5507:32;5548:28;:::i;:::-;5595:5;5585:15;;;4752:854;;;;;;;;:::o;5611:390::-;5689:6;5697;5750:2;5738:9;5729:7;5725:23;5721:32;5718:52;;;5766:1;5763;5756:12;5718:52;5806:9;5793:23;5839:18;5831:6;5828:30;5825:50;;;5871:1;5868;5861:12;5825:50;5894;5936:7;5927:6;5916:9;5912:22;5894:50;:::i;:::-;5884:60;5991:2;5976:18;;;;5963:32;;-1:-1:-1;;;;5611:390:1:o;6006:256::-;6072:6;6080;6133:2;6121:9;6112:7;6108:23;6104:32;6101:52;;;6149:1;6146;6139:12;6101:52;6172:28;6190:9;6172:28;:::i;:::-;6162:38;;6219:37;6252:2;6241:9;6237:18;6219:37;:::i;:::-;6209:47;;6006:256;;;;;:::o;6267:401::-;6349:6;6357;6365;6373;6426:3;6414:9;6405:7;6401:23;6397:33;6394:53;;;6443:1;6440;6433:12;6394:53;6466:28;6484:9;6466:28;:::i;:::-;6456:38;;6513:37;6546:2;6535:9;6531:18;6513:37;:::i;:::-;6503:47;;6569:37;6602:2;6591:9;6587:18;6569:37;:::i;:::-;6559:47;;6625:37;6658:2;6647:9;6643:18;6625:37;:::i;:::-;6615:47;;6267:401;;;;;;;:::o;6673:180::-;6732:6;6785:2;6773:9;6764:7;6760:23;6756:32;6753:52;;;6801:1;6798;6791:12;6753:52;-1:-1:-1;6824:23:1;;6673:180;-1:-1:-1;6673:180:1:o;6858:184::-;6928:6;6981:2;6969:9;6960:7;6956:23;6952:32;6949:52;;;6997:1;6994;6987:12;6949:52;-1:-1:-1;7020:16:1;;6858:184;-1:-1:-1;6858:184:1:o;7047:306::-;7135:6;7143;7151;7204:2;7192:9;7183:7;7179:23;7175:32;7172:52;;;7220:1;7217;7210:12;7172:52;7249:9;7243:16;7233:26;;7299:2;7288:9;7284:18;7278:25;7268:35;;7343:2;7332:9;7328:18;7322:25;7312:35;;7047:306;;;;;:::o;7358:284::-;7416:6;7469:2;7457:9;7448:7;7444:23;7440:32;7437:52;;;7485:1;7482;7475:12;7437:52;7524:9;7511:23;7574:18;7567:5;7563:30;7556:5;7553:41;7543:69;;7608:1;7605;7598:12;7647:461;7700:3;7738:5;7732:12;7765:6;7760:3;7753:19;7791:4;7820:2;7815:3;7811:12;7804:19;;7857:2;7850:5;7846:14;7878:1;7888:195;7902:6;7899:1;7896:13;7888:195;;;7967:13;;-1:-1:-1;;;;;7963:39:1;7951:52;;8023:12;;;;8058:15;;;;7999:1;7917:9;7888:195;;;-1:-1:-1;8099:3:1;;7647:461;-1:-1:-1;;;;;7647:461:1:o;8113:472::-;8155:3;8193:5;8187:12;8220:6;8215:3;8208:19;8245:1;8255:162;8269:6;8266:1;8263:13;8255:162;;;8331:4;8387:13;;;8383:22;;8377:29;8359:11;;;8355:20;;8348:59;8284:12;8255:162;;;8435:6;8432:1;8429:13;8426:87;;;8501:1;8494:4;8485:6;8480:3;8476:16;8472:27;8465:38;8426:87;-1:-1:-1;8567:2:1;8546:15;-1:-1:-1;;8542:29:1;8533:39;;;;8574:4;8529:50;;8113:472;-1:-1:-1;;8113:472:1:o;9022:375::-;-1:-1:-1;;;;;9280:15:1;;;9262:34;;9332:15;;;;9327:2;9312:18;;9305:43;9379:2;9364:18;;9357:34;;;;9212:2;9197:18;;9022:375::o;9402:289::-;-1:-1:-1;;;;;9609:32:1;;;;9591:51;;9673:2;9658:18;;9651:34;9579:2;9564:18;;9402:289::o;9696:317::-;-1:-1:-1;;;;;9873:32:1;;9855:51;;9942:2;9937;9922:18;;9915:30;;;-1:-1:-1;;9962:45:1;;9988:18;;9980:6;9962:45;:::i;10297:615::-;-1:-1:-1;;;;;10664:15:1;;;10646:34;;10711:2;10696:18;;10689:34;;;;10754:2;10739:18;;10732:34;;;;10797:2;10782:18;;10775:34;;;;10846:15;;;10840:3;10825:19;;10818:44;10626:3;10878:19;;10871:35;;;;10595:3;10580:19;;10297:615::o;10917:298::-;-1:-1:-1;;;;;11108:32:1;;;;11090:51;;11189:18;11177:31;11172:2;11157:18;;11150:59;11078:2;11063:18;;10917:298::o;12543:220::-;12692:2;12681:9;12674:21;12655:4;12712:45;12753:2;12742:9;12738:18;12730:6;12712:45;:::i;13187:337::-;13389:2;13371:21;;;13428:2;13408:18;;;13401:30;-1:-1:-1;;;13462:2:1;13447:18;;13440:43;13515:2;13500:18;;13187:337::o;13862:403::-;14064:2;14046:21;;;14103:2;14083:18;;;14076:30;14142:34;14137:2;14122:18;;14115:62;-1:-1:-1;;;14208:2:1;14193:18;;14186:37;14255:3;14240:19;;13862:403::o;14677:401::-;14879:2;14861:21;;;14918:2;14898:18;;;14891:30;14957:34;14952:2;14937:18;;14930:62;-1:-1:-1;;;15023:2:1;15008:18;;15001:35;15068:3;15053:19;;14677:401::o;15491:397::-;15693:2;15675:21;;;15732:2;15712:18;;;15705:30;15771:34;15766:2;15751:18;;15744:62;-1:-1:-1;;;15837:2:1;15822:18;;15815:31;15878:3;15863:19;;15491:397::o;15893:351::-;16095:2;16077:21;;;16134:2;16114:18;;;16107:30;16173:29;16168:2;16153:18;;16146:57;16235:2;16220:18;;15893:351::o;16249:402::-;16451:2;16433:21;;;16490:2;16470:18;;;16463:30;16529:34;16524:2;16509:18;;16502:62;-1:-1:-1;;;16595:2:1;16580:18;;16573:36;16641:3;16626:19;;16249:402::o;17058:356::-;17260:2;17242:21;;;17279:18;;;17272:30;17338:34;17333:2;17318:18;;17311:62;17405:2;17390:18;;17058:356::o;17419:352::-;17621:2;17603:21;;;17660:2;17640:18;;;17633:30;17699;17694:2;17679:18;;17672:58;17762:2;17747:18;;17419:352::o;17776:402::-;17978:2;17960:21;;;18017:2;17997:18;;;17990:30;18056:34;18051:2;18036:18;;18029:62;-1:-1:-1;;;18122:2:1;18107:18;;18100:36;18168:3;18153:19;;17776:402::o;18183:412::-;18385:2;18367:21;;;18424:2;18404:18;;;18397:30;18463:34;18458:2;18443:18;;18436:62;-1:-1:-1;;;18529:2:1;18514:18;;18507:46;18585:3;18570:19;;18183:412::o;19680:590::-;19987:6;19976:9;19969:25;20030:6;20025:2;20014:9;20010:18;20003:34;20073:3;20068:2;20057:9;20053:18;20046:31;19950:4;20094:57;20146:3;20135:9;20131:19;20123:6;20094:57;:::i;:::-;-1:-1:-1;;;;;20187:32:1;;;;20182:2;20167:18;;20160:60;-1:-1:-1;20251:3:1;20236:19;20229:35;20086:65;19680:590;-1:-1:-1;;;19680:590:1:o;21115:275::-;21186:2;21180:9;21251:2;21232:13;;-1:-1:-1;;21228:27:1;21216:40;;21286:18;21271:34;;21307:22;;;21268:62;21265:88;;;21333:18;;:::i;:::-;21369:2;21362:22;21115:275;;-1:-1:-1;21115:275:1:o;21395:224::-;21434:3;21462:6;21495:2;21492:1;21488:10;21525:2;21522:1;21518:10;21556:3;21552:2;21548:12;21543:3;21540:21;21537:47;;;21564:18;;:::i;:::-;21600:13;;21395:224;-1:-1:-1;;;;21395:224:1:o;21624:128::-;21664:3;21695:1;21691:6;21688:1;21685:13;21682:39;;;21701:18;;:::i;:::-;-1:-1:-1;21737:9:1;;21624:128::o;21757:217::-;21797:1;21823;21813:132;;21867:10;21862:3;21858:20;21855:1;21848:31;21902:4;21899:1;21892:15;21930:4;21927:1;21920:15;21813:132;-1:-1:-1;21959:9:1;;21757:217::o;21979:168::-;22019:7;22085:1;22081;22077:6;22073:14;22070:1;22067:21;22062:1;22055:9;22048:17;22044:45;22041:71;;;22092:18;;:::i;:::-;-1:-1:-1;22132:9:1;;21979:168::o;22152:125::-;22192:4;22220:1;22217;22214:8;22211:34;;;22225:18;;:::i;:::-;-1:-1:-1;22262:9:1;;22152:125::o;22282:135::-;22321:3;-1:-1:-1;;22342:17:1;;22339:43;;;22362:18;;:::i;:::-;-1:-1:-1;22409:1:1;22398:13;;22282:135::o;22422:127::-;22483:10;22478:3;22474:20;22471:1;22464:31;22514:4;22511:1;22504:15;22538:4;22535:1;22528:15;22554:127;22615:10;22610:3;22606:20;22603:1;22596:31;22646:4;22643:1;22636:15;22670:4;22667:1;22660:15;22686:127;22747:10;22742:3;22738:20;22735:1;22728:31;22778:4;22775:1;22768:15;22802:4;22799:1;22792:15;22818:131;-1:-1:-1;;;;;22893:31:1;;22883:42;;22873:70;;22939:1;22936;22929:12;22954:118;23040:5;23033:13;23026:21;23019:5;23016:32;23006:60;;23062:1;23059;23052:12
Swarm Source
ipfs://3c720f55d7faf515107d323a5dcfbd9086d2cdc5470e8f72d1bfbaba55e18912
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
AVAX | 100.00% | $22.24 | 1 | $22.24 |
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.