Overview
ETH Balance
0 ETH
ETH Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Add | 508542 | 11 hrs ago | IN | 0 ETH | 0.00000928 |
Latest 1 internal transaction
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
508436 | 11 hrs ago | Contract Creation | 0 ETH |
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Source Code Verified (Exact Match)
Contract Name:
MasterChefV2
Compiler Version
v0.8.28+commit.7893614a
ZkSolc Version
v1.5.7
Optimization Enabled:
Yes with Mode 3
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// Sapling Dex on Abstract // x.com/SaplingDex // t.me/SaplingDex // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with GSN meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @dev Interface of the ERC20 standard as defined in the EIP. */ 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); } /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @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 untouched) 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 untouched) 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; } } /** * @dev Collection of functions related to the address type */ 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 in extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; // solhint-disable-next-line no-inline-assembly 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"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (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"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); 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 // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ 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 () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view 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 { emit OwnershipTransferred(_owner, address(0)); _owner = 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"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IERC20Mintable is IERC20 { function mint(address to, uint256 amount) external; } /** * @title SafeERC20 * @dev Wrappers around ERC20 operations that throw on failure (when the token * contract returns false). Tokens that return no value (and instead revert or * throw on failure) are also supported, non-reverting calls are assumed to be * successful. * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, * which allows you to call the safe operations as `token.safeTransfer(...)`, etc. */ library SafeERC20 { using SafeMath for uint256; 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' // solhint-disable-next-line max-line-length 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).add(value); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).sub(value, "SafeERC20: decreased allowance below zero"); _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 // solhint-disable-next-line max-line-length require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } } } /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor () { _status = _NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and make it call a * `private` function that does the actual work. */ modifier nonReentrant() { // On the first call to nonReentrant, _notEntered will be true require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; _; // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } } // MasterChef is the master of Sapling. He can make Sapling and he is a fair guy. // Note that it's ownable and the owner wields tremendous power. The ownership // will be transferred to a governance smart contract once SAPLING is sufficiently // distributed and the community can show to govern itself. // // Have fun reading it. Hopefully it's bug-free. God bless. contract MasterChefV2 is Ownable, ReentrancyGuard { using SafeMath for uint256; using SafeERC20 for IERC20; // Info of each user. struct UserInfo { uint256 amount; // How many LP tokens the user has provided. uint256 rewardDebt; // Reward debt. See explanation below. // // We do some fancy math here. Basically, any point in time, the amount of SAPLINGs // entitled to a user but is pending to be distributed is: // // pending reward = (user.amount * pool.accSaplingPerShare) - user.rewardDebt // // Whenever a user deposits or withdraws LP tokens to a pool. Here's what happens: // 1. The pool's `accSaplingPerShare` (and `lastRewardBlock`) gets updated. // 2. User receives the pending reward sent to his/her address. // 3. User's `amount` gets updated. // 4. User's `rewardDebt` gets updated. } // Info of each pool. struct PoolInfo { IERC20 lpToken; // Address of LP token contract. uint256 allocPoint; // How many allocation points assigned to this pool. SAPLINGs to distribute per block. uint256 lastRewardBlock; // Last block number that SAPLINGs distribution occurs. uint256 accSaplingPerShare; // Accumulated SAPLINGs per share, times PRECISION_FACTOR. See below. bool exists; } // The SAPLING TOKEN! IERC20Mintable public sapling; // Dev address. address public devaddr; // SAPLING tokens created per block. uint256 public saplingPerBlock; // Bonus muliplier for early sapling makers. uint256 public constant BONUS_MULTIPLIER = 1; // Dev Fee uint256 public devFee = 10; // 10% // Info of each pool. uint256[] public poolIds; mapping(uint256 => PoolInfo) public poolInfo; uint256 public currentPoolId = 1000; // Info of each user that stakes LP tokens. mapping(uint256 => mapping(address => UserInfo)) public userInfo; // Total allocation points. Must be the sum of all allocation points in all pools. uint256 public totalAllocPoint = 0; // The block number when SAPLING mining starts. uint256 public startBlock; uint256 private constant PRECISION_FACTOR = 1e24; event Deposit(address indexed user, uint256 indexed pid, uint256 amount); event Withdraw(address indexed user, uint256 indexed pid, uint256 amount); event EmergencyWithdraw(address indexed user, uint256 indexed pid, uint256 amount); event SetDevAddress(address indexed user, address indexed newAddress); event UpdateEmissionRate(address indexed user, uint256 saplingPerBlock); constructor( address _sapling, address _devaddr, uint256 _saplingPerBlock, uint256 _startBlock ) { sapling = IERC20Mintable(_sapling); devaddr = _devaddr; saplingPerBlock = _saplingPerBlock; startBlock = _startBlock; } function poolLength() external view returns (uint256) { return poolIds.length; } mapping(IERC20 => bool) public poolExistence; modifier nonDuplicated(IERC20 _lpToken) { require(poolExistence[_lpToken] == false, "nonDuplicated: duplicated"); _; } // Add a new lp to the pool. Can only be called by the owner. function add(uint256 _allocPoint, IERC20 _lpToken, bool _withUpdate) public onlyOwner nonDuplicated(_lpToken) { if (_withUpdate) { massUpdatePools(); } uint256 lastRewardBlock = block.number > startBlock ? block.number : startBlock; totalAllocPoint = totalAllocPoint.add(_allocPoint); poolExistence[_lpToken] = true; poolInfo[currentPoolId] = PoolInfo({ lpToken : _lpToken, allocPoint : _allocPoint, lastRewardBlock : lastRewardBlock, accSaplingPerShare : 0, exists: true }); poolIds.push(currentPoolId); currentPoolId++; } // Update the given pool's SAPLING allocation point and deposit fee. Can only be called by the owner. function set(uint256 _pid, uint256 _allocPoint, bool _withUpdate) public onlyOwner { require (poolInfo[_pid].exists, "Invalid pid"); if (_withUpdate) { massUpdatePools(); } totalAllocPoint = totalAllocPoint.sub(poolInfo[_pid].allocPoint).add(_allocPoint); poolInfo[_pid].allocPoint = _allocPoint; } // Return reward multiplier over the given _from to _to block. function getMultiplier(uint256 _from, uint256 _to) public pure returns (uint256) { return _to.sub(_from).mul(BONUS_MULTIPLIER); } // View function to see pending SAPLINGs on frontend. function pendingSapling(uint256 _pid, address _user) external view returns (uint256) { PoolInfo storage pool = poolInfo[_pid]; UserInfo storage user = userInfo[_pid][_user]; uint256 accSaplingPerShare = pool.accSaplingPerShare; uint256 lpSupply = pool.lpToken.balanceOf(address(this)); if (block.number > pool.lastRewardBlock && lpSupply != 0) { uint256 multiplier = getMultiplier(pool.lastRewardBlock, block.number); uint256 saplingReward = multiplier.mul(saplingPerBlock).mul(pool.allocPoint).div(totalAllocPoint); accSaplingPerShare = accSaplingPerShare.add(saplingReward.mul(PRECISION_FACTOR).div(lpSupply)); } return user.amount.mul(accSaplingPerShare).div(PRECISION_FACTOR).sub(user.rewardDebt); } // Update reward variables for all pools. Be careful of gas spending! function massUpdatePools() public { uint256 length = poolIds.length; for (uint256 index = 0; index < length; ++index) { updatePool(poolIds[index]); } } // Update reward variables of the given pool to be up-to-date. function updatePool(uint256 _pid) public { PoolInfo storage pool = poolInfo[_pid]; require (pool.exists, "Invalid pid"); if (block.number <= pool.lastRewardBlock) { return; } uint256 lpSupply = pool.lpToken.balanceOf(address(this)); if (lpSupply == 0 || pool.allocPoint == 0) { pool.lastRewardBlock = block.number; return; } uint256 multiplier = getMultiplier(pool.lastRewardBlock, block.number); uint256 saplingReward = multiplier.mul(saplingPerBlock).mul(pool.allocPoint).div(totalAllocPoint); sapling.mint(devaddr, saplingReward.div(devFee)); sapling.mint(address(this), saplingReward); pool.accSaplingPerShare = pool.accSaplingPerShare.add(saplingReward.mul(PRECISION_FACTOR).div(lpSupply)); pool.lastRewardBlock = block.number; } // Deposit LP tokens to MasterChef for SAPLING allocation. function deposit(uint256 _pid, uint256 _amount) public nonReentrant { PoolInfo storage pool = poolInfo[_pid]; require (poolInfo[_pid].exists, "Invalid pid"); UserInfo storage user = userInfo[_pid][_msgSender()]; updatePool(_pid); if (user.amount > 0) { uint256 pending = user.amount.mul(pool.accSaplingPerShare).div(PRECISION_FACTOR).sub(user.rewardDebt); if (pending > 0) { safeSaplingTransfer(_msgSender(), pending); } } if (_amount > 0) { pool.lpToken.safeTransferFrom(address(_msgSender()), address(this), _amount); user.amount = user.amount.add(_amount); } user.rewardDebt = user.amount.mul(pool.accSaplingPerShare).div(PRECISION_FACTOR); emit Deposit(_msgSender(), _pid, _amount); } // Withdraw LP tokens from MasterChef. function withdraw(uint256 _pid, uint256 _amount) public nonReentrant { PoolInfo storage pool = poolInfo[_pid]; require (poolInfo[_pid].exists, "Invalid pid"); UserInfo storage user = userInfo[_pid][_msgSender()]; require(user.amount >= _amount, "withdraw: not good"); updatePool(_pid); uint256 pending = user.amount.mul(pool.accSaplingPerShare).div(PRECISION_FACTOR).sub(user.rewardDebt); if (pending > 0) { safeSaplingTransfer(_msgSender(), pending); } if (_amount > 0) { user.amount = user.amount.sub(_amount); pool.lpToken.safeTransfer(address(_msgSender()), _amount); } user.rewardDebt = user.amount.mul(pool.accSaplingPerShare).div(PRECISION_FACTOR); emit Withdraw(_msgSender(), _pid, _amount); } // Withdraw without caring about rewards. EMERGENCY ONLY. function emergencyWithdraw(uint256 _pid) public nonReentrant { PoolInfo storage pool = poolInfo[_pid]; require (poolInfo[_pid].exists, "Invalid pid"); UserInfo storage user = userInfo[_pid][_msgSender()]; uint256 amount = user.amount; user.amount = 0; user.rewardDebt = 0; pool.lpToken.safeTransfer(address(_msgSender()), amount); emit EmergencyWithdraw(_msgSender(), _pid, amount); } // Safe sapling transfer function, just in case if rounding error causes pool to not have enough SAPLINGs. function safeSaplingTransfer(address _to, uint256 _amount) internal { uint256 saplingBal = sapling.balanceOf(address(this)); bool transferSuccess = false; if (_amount > saplingBal) { transferSuccess = sapling.transfer(_to, saplingBal); } else { transferSuccess = sapling.transfer(_to, _amount); } require(transferSuccess, "safeSaplingTransfer: transfer failed"); } function dev(address _devaddr) public onlyOwner { devaddr = _devaddr; emit SetDevAddress(_msgSender(), _devaddr); } function setStartBlock(uint256 _startBlock) public onlyOwner { require(block.number < startBlock, "Farm has started"); startBlock = _startBlock; } function setDevFee(uint256 _newDevFee) public onlyOwner { require(_newDevFee <= 10, "Must keep fees at 10% or less"); devFee = _newDevFee; } function updateEmissionRate(uint256 _saplingPerBlock) public onlyOwner { massUpdatePools(); saplingPerBlock = _saplingPerBlock; emit UpdateEmissionRate(_msgSender(), _saplingPerBlock); } }
{ "optimizer": { "enabled": true, "mode": "3" }, "evmVersion": "paris", "outputSelection": { "*": { "*": [ "abi", "metadata" ], "": [ "ast" ] } }, "detectMissingLibraries": false, "forceEVMLA": false, "enableEraVMExtensions": true, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_sapling","type":"address"},{"internalType":"address","name":"_devaddr","type":"address"},{"internalType":"uint256","name":"_saplingPerBlock","type":"uint256"},{"internalType":"uint256","name":"_startBlock","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"EmergencyWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newAddress","type":"address"}],"name":"SetDevAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"saplingPerBlock","type":"uint256"}],"name":"UpdateEmissionRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"BONUS_MULTIPLIER","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_allocPoint","type":"uint256"},{"internalType":"contract IERC20","name":"_lpToken","type":"address"},{"internalType":"bool","name":"_withUpdate","type":"bool"}],"name":"add","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentPoolId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_devaddr","type":"address"}],"name":"dev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devaddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_from","type":"uint256"},{"internalType":"uint256","name":"_to","type":"uint256"}],"name":"getMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"massUpdatePools","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"address","name":"_user","type":"address"}],"name":"pendingSapling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"name":"poolExistence","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"poolIds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"poolInfo","outputs":[{"internalType":"contract IERC20","name":"lpToken","type":"address"},{"internalType":"uint256","name":"allocPoint","type":"uint256"},{"internalType":"uint256","name":"lastRewardBlock","type":"uint256"},{"internalType":"uint256","name":"accSaplingPerShare","type":"uint256"},{"internalType":"bool","name":"exists","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sapling","outputs":[{"internalType":"contract IERC20Mintable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"saplingPerBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_allocPoint","type":"uint256"},{"internalType":"bool","name":"_withUpdate","type":"bool"}],"name":"set","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newDevFee","type":"uint256"}],"name":"setDevFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_startBlock","type":"uint256"}],"name":"setStartBlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAllocPoint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_saplingPerBlock","type":"uint256"}],"name":"updateEmissionRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"updatePool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"userInfo","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"rewardDebt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
9c4d535b0000000000000000000000000000000000000000000000000000000000000000010005e9fe13035e7f15aed6f63b523a2f8132ccb1b76b3b6839522c2654b5fb00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000080000000000000000000000000d1c5057cc2154b67d47db8402fd919a8e6c37f4d000000000000000000000000fbdb5a61ca278ba318a1131c832b1a24292ab0490000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007dbb8
Deployed Bytecode
0x000200000000000200110000000000020000006003100270000005800330019700010000003103550000000100200190000000370000c13d0000008005000039000000400050043f000000040030008c000010b40000413d000000000201043b000000e002200270000005880020009c000000930000a13d000005890020009c000000c70000a13d0000058a0020009c000000d60000213d000005900020009c000001890000213d000005930020009c0000041e0000613d000005940020009c000010b40000c13d000000440030008c000010b40000413d0000000002000416000000000002004b000010b40000c13d0000002402100370000000000202043b001100000002001d000005830020009c000010b40000213d0000000401100370000000000101043b000000000010043f0000000901000039000000200010043f15fd15e60000040f000000110200002915fd11ca0000040f000000000201041a0000000101100039000000000101041a000000400300043d000000200430003900000000001404350000000000230435000005800030009c00000580030080410000004001300210000005d0011001c7000015fe0001042e0000000002000416000000000002004b000010b40000c13d0000001f0230003900000581022001970000008002200039000000400020043f0000001f0430018f00000582053001980000008002500039000000480000613d0000008006000039000000000701034f000000007807043c0000000006860436000000000026004b000000440000c13d000000000004004b000000550000613d000000000151034f0000000304400210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000800030008c000010b40000413d000000800400043d000005830040009c000010b40000213d000000a00100043d001100000001001d000005830010009c000010b40000213d000000000100041a00000584011001970000000006000411000000000161019f000000e00200043d000f00000002001d000000c00200043d000e00000002001d000000000010041b0000000001000414000005800010009c0000058001008041000000c00110021000000585011001c70000800d020000390000000303000039001000000004001d0000058604000041000000000500001915fd15f30000040f00000010040000290000000100200190000010b40000613d0000000101000039000000000011041b0000000a010000390000000502000039000000000012041b000003e8020000390000000803000039000000000023041b000000000001041b0000000201000039000000000201041a0000058402200197000000000242019f000000000021041b0000000303000039000000000103041a000005840110019700000011011001af000000000013041b00000004010000390000000e02000029000000000021041b0000000b010000390000000f02000029000000000021041b0000002001000039000001000010044300000120000004430000058701000041000015fe0001042e0000059e0020009c000000b50000213d000005a80020009c000000e10000a13d000005a90020009c000001250000213d000005ac0020009c000001b90000613d000005ad0020009c000010b40000c13d000000240030008c000010b40000413d0000000002000416000000000002004b000010b40000c13d0000000401100370000000000101043b000000000200041a00000583022001970000000003000411000000000032004b0000047e0000c13d0000000b0010008c000006050000413d000005b401000041000000800010043f0000002001000039000000840010043f0000001d01000039000000a40010043f000005de01000041000000c40010043f000005dc01000041000015ff000104300000059f0020009c000001060000a13d000005a00020009c000001760000213d000005a30020009c000001be0000613d000005a40020009c000010b40000c13d000000240030008c000010b40000413d0000000002000416000000000002004b000010b40000c13d0000000401100370000000000101043b15fd11da0000040f0000000001000019000015fe0001042e000005950020009c000001110000a13d000005960020009c000001800000213d000005990020009c000003010000613d0000059a0020009c000010b40000c13d0000000001000416000000000001004b000010b40000c13d0000000101000039000000800010043f000005b901000041000015fe0001042e0000058b0020009c000001920000213d0000058e0020009c000004350000613d0000058f0020009c000010b40000c13d0000000001000416000000000001004b000010b40000c13d0000000801000039000003c40000013d000005ae0020009c000003bb0000613d000005af0020009c0000031b0000613d000005b00020009c000010b40000c13d000000240030008c000010b40000413d0000000002000416000000000002004b000010b40000c13d0000000401100370000000000101043b000000000010043f0000000701000039000000200010043f15fd15e60000040f0000000402100039000000000202041a0000000303100039000000000303041a0000000204100039000000000404041a0000000105100039000000000505041a000000000101041a0000058301100197000000800010043f000000a00050043f000000c00040043f000000e00030043f000000ff002001900000000001000039000000010100c039000001000010043f000005df01000041000015fe0001042e000005a50020009c000003c00000613d000005a60020009c0000033e0000613d000005a70020009c000010b40000c13d0000000001000416000000000001004b000010b40000c13d0000000b01000039000003c40000013d0000059b0020009c000003c80000613d0000059c0020009c000003b60000613d0000059d0020009c000010b40000c13d000000240030008c000010b40000413d0000000002000416000000000002004b000010b40000c13d0000000401100370000000000101043b0000000602000039000000000302041a000000000031004b000010b40000813d000000000020043f000005d30110009a000003c40000013d000005aa0020009c000001c70000613d000005ab0020009c000010b40000c13d000000440030008c000010b40000413d0000000002000416000000000002004b000010b40000c13d0000000402100370000000000202043b001100000002001d0000002401100370000000000101043b001000000001001d000005830010009c000010b40000213d0000001101000029000000000010043f0000000701000039000000200010043f0000000001000414000005800010009c0000058001008041000000c001100210000005ba011001c7000080100200003915fd15f80000040f0000000100200190000010b40000613d000000000101043b000f00000001001d0000001101000029000000000010043f0000000901000039000000200010043f0000000001000414000005800010009c0000058001008041000000c001100210000005ba011001c7000080100200003915fd15f80000040f0000000100200190000010b40000613d000000000101043b0000001002000029000000000020043f000000200010043f0000000001000414000005800010009c0000058001008041000000c001100210000005ba011001c7000080100200003915fd15f80000040f0000000100200190000010b40000613d000000000101043b001100000001001d0000000f020000290000000301200039000000000101041a001000000001001d000000000202041a000000400b00043d000005bb0100004100000000001b0435000000000100041000000583011001970000000403b00039000000000013043500000000010004140000058302200197000000040020008c0000067a0000c13d0000000003000031000000200030008c00000020040000390000000004034019000006a60000013d000005a10020009c000002790000613d000005a20020009c000010b40000c13d0000000001000416000000000001004b000010b40000c13d15fd13930000040f0000000001000019000015fe0001042e000005970020009c000003970000613d000005980020009c000010b40000c13d0000000001000416000000000001004b000010b40000c13d000000000100041a000001c30000013d000005910020009c0000044c0000613d000005920020009c000010b40000c13d0000000001000416000000000001004b000010b40000c13d0000000301000039000001c20000013d0000058c0020009c000004600000613d0000058d0020009c000010b40000c13d000000240030008c000010b40000413d0000000002000416000000000002004b000010b40000c13d0000000401100370000000000301043b000000000100041a00000583011001970000000002000411000000000021004b0000047e0000c13d001000000003001d0000000b01000039000000000101041a001100000001001d000005b10100004100000000001004430000000001000414000005800010009c0000058001008041000000c001100210000005b2011001c70000800b0200003915fd15f80000040f0000000100200190000011950000613d000000000101043b000000110010006c0000061a0000813d00000010010000290000000b02000039000000000012041b0000000001000019000015fe0001042e0000000001000416000000000001004b000010b40000c13d0000000a01000039000003c40000013d0000000001000416000000000001004b000010b40000c13d0000000201000039000000000101041a0000058301100197000000800010043f000005b901000041000015fe0001042e000000640030008c000010b40000413d0000000002000416000000000002004b000010b40000c13d0000000402100370000000000202043b000400000002001d0000002402100370000000000202043b000500000002001d000005830020009c000010b40000213d0000004401100370000000000201043b000000000002004b0000000001000039000000010100c039001100000002001d000000000012004b000010b40000c13d000000000100041a00000583011001970000000002000411000000000021004b0000047e0000c13d0000000501000029000000000010043f0000000c01000039000000200010043f0000000001000414000005800010009c0000058001008041000000c001100210000005ba011001c7000080100200003915fd15f80000040f0000000100200190000010b40000613d000000000101043b000000000101041a000000ff00100190000006d20000c13d000000110000006b000001f90000613d0000000601000039000000000101041a000d00000001001d000000000001004b000008430000c13d0000000b01000039000000000101041a001100000001001d000005b10100004100000000001004430000000001000414000005800010009c0000058001008041000000c001100210000005b2011001c70000800b0200003915fd15f80000040f0000000100200190000011950000613d000000000101043b000000110010006c000000110100a029001100000001001d0000000a01000039000000000201041a000000040020002a00000f1f0000413d0000000402200029000000000021041b00000005010000290000058301100197001000000001001d000000000010043f0000000c01000039000000200010043f0000000001000414000005800010009c0000058001008041000000c001100210000005ba011001c7000080100200003915fd15f80000040f0000000100200190000010b40000613d000000000101043b000000000201041a000005e40220019700000001022001bf000000000021041b000000400100043d000f00000001001d000005cb0010009c000006cc0000213d0000000f03000029000000a001300039000000400010043f00000080023000390000000101000039000e00000002001d000000000012043500000040023000390000001101000029000d00000002001d000000000012043500000020023000390000000401000029000c00000002001d0000000000120435000000100100002900000000001304350000006001300039001100000001001d00000000000104350000000801000039000000000101041a000000000010043f0000000701000039000000200010043f0000000001000414000005800010009c0000058001008041000000c001100210000005ba011001c7000080100200003915fd15f80000040f0000000100200190000010b40000613d0000000f0200002900000000020204330000058302200197000000000101043b000000000301041a0000058403300197000000000223019f000000000021041b0000000c0200002900000000020204330000000103100039000000000023041b0000000d0200002900000000020204330000000203100039000000000023041b000000110200002900000000020204330000000303100039000000000023041b0000000401100039000000000201041a000005e4022001970000000e030000290000000003030433000000000003004b000000010220c1bf000000000021041b0000000602000039000000000102041a000005bd0010009c000006cc0000213d0000000805000039000000000305041a0000000104100039000000000042041b000000000020043f000005d30110009a000000000031041b000000000105041a000000010110003a00000f1f0000613d0000000802000039000000000012041b0000000001000019000015fe0001042e000000240030008c000010b40000413d0000000002000416000000000002004b000010b40000c13d0000000401100370000000000301043b0000000101000039000000000201041a000000020020008c000004420000613d0000000202000039000000000021041b001100000003001d000000000030043f0000000701000039000000200010043f0000000001000414000005800010009c0000058001008041000000c001100210000005ba011001c7000080100200003915fd15f80000040f0000000100200190000010b40000613d000000000101043b001000000001001d0000001101000029000000000010043f0000000701000039000000200010043f0000000001000414000005800010009c0000058001008041000000c001100210000005ba011001c7000080100200003915fd15f80000040f0000000100200190000010b40000613d000000000101043b0000000401100039000000000101041a000000ff00100190000004ac0000613d0000001101000029000000000010043f0000000901000039000000200010043f0000000001000414000005800010009c0000058001008041000000c001100210000005ba011001c7000080100200003915fd15f80000040f0000000100200190000010b40000613d000000000101043b00000000020004110000058302200197000f00000002001d000000000020043f000000200010043f0000000001000414000005800010009c0000058001008041000000c001100210000005ba011001c7000080100200003915fd15f80000040f0000000100200190000010b40000613d000000000101043b000000000301041a000000000001041b0000000101100039000000000001041b0000001001000029000000000101041a000000400500043d0000002004500039000005c602000041000e00000004001d000000000024043500000024025000390000000f040000290000000000420435000000440200003900000000002504350000004402500039000f00000003001d0000000000320435001000000005001d000005d40050009c000006cc0000213d00000010020000290000008002200039000000400020043f000d00000002001d000005be0020009c000006cc0000213d00000583031001970000001004000029000000c001400039000000400010043f00000020010000390000000d020000290000000000120435000000a001400039000005cc020000410000000000210435000005c1010000410000000000100443000c00000003001d00000004003004430000000001000414000005800010009c0000058001008041000000c001100210000005c2011001c7000080020200003915fd15f80000040f0000000100200190000011950000613d000000000101043b000000000001004b00000a670000c13d000000400100043d0000004402100039000005d803000041000000000032043500000024021000390000001d03000039000006d80000013d0000000001000416000000000001004b000010b40000c13d000000000200041a00000583012001970000000005000411000000000051004b0000047e0000c13d001100000002001d0000000001000414000005800010009c0000058001008041000000c00110021000000585011001c70000800d0200003900000003030000390000058604000041000000000600001915fd15f30000040f0000000100200190000010b40000613d00000011010000290000058401100197000000000010041b0000000001000019000015fe0001042e000000240030008c000010b40000413d0000000002000416000000000002004b000010b40000c13d0000000401100370000000000301043b000000000100041a00000583011001970000000002000411000000000021004b0000047e0000c13d0000000601000039000000000101041a000d00000001001d000000000001004b000004b30000c13d00000080010000390000000402000039000000000032041b0000000000310435000005800010009c000005800100804100000040011002100000000002000414000005800020009c0000058002008041000000c002200210000000000112019f000005ce011001c70000800d020000390000000203000039000005e3040000410000000005000411000003b10000013d000000440030008c000010b40000413d0000000002000416000000000002004b000010b40000c13d0000002402100370000000000402043b0000000401100370000000000301043b0000000101000039000000000201041a000000020020008c000004420000613d001000000004001d0000000202000039000000000021041b001100000003001d000000000030043f0000000701000039000000200010043f0000000001000414000005800010009c0000058001008041000000c001100210000005ba011001c7000080100200003915fd15f80000040f0000000100200190000010b40000613d000000000101043b000f00000001001d0000001101000029000000000010043f0000000701000039000000200010043f0000000001000414000005800010009c0000058001008041000000c001100210000005ba011001c7000080100200003915fd15f80000040f0000000100200190000010b40000613d000000000101043b0000000401100039000000000101041a000000ff00100190000004ac0000613d0000001101000029000000000010043f0000000901000039000000200010043f0000000001000414000005800010009c0000058001008041000000c001100210000005ba011001c7000080100200003915fd15f80000040f0000000100200190000010b40000613d000000000101043b00000000020004110000058302200197000e00000002001d000000000020043f000000200010043f0000000001000414000005800010009c0000058001008041000000c001100210000005ba011001c7000080100200003915fd15f80000040f0000000100200190000010b40000613d000000000101043b000d00000001001d000000000101041a000000100010006c0000099a0000813d000000400100043d0000004402100039000005da03000041000000000032043500000024021000390000001203000039000006d80000013d000000240030008c000010b40000413d0000000002000416000000000002004b000010b40000c13d0000000401100370000000000601043b000005830060009c000010b40000213d000000000100041a00000583011001970000000005000411000000000051004b0000047e0000c13d0000000303000039000000000103041a0000058401100197000000000161019f000000000013041b0000000001000414000005800010009c0000058001008041000000c00110021000000585011001c70000800d02000039000005d20400004115fd15f30000040f0000000100200190000010b40000613d0000000001000019000015fe0001042e0000000001000416000000000001004b000010b40000c13d0000000501000039000003c40000013d0000000001000416000000000001004b000010b40000c13d0000000601000039000003c40000013d0000000001000416000000000001004b000010b40000c13d0000000401000039000000000101041a000000800010043f000005b901000041000015fe0001042e000000640030008c000010b40000413d0000000002000416000000000002004b000010b40000c13d0000002402100370000000000202043b000400000002001d0000000402100370000000000202043b000500000002001d0000004401100370000000000201043b000000000002004b0000000001000039000000010100c039001100000002001d000000000012004b000010b40000c13d000000000100041a00000583011001970000000002000411000000000021004b0000047e0000c13d0000000501000029000000000010043f0000000701000039000000200010043f0000000001000414000005800010009c0000058001008041000000c001100210000005ba011001c7000080100200003915fd15f80000040f0000000100200190000010b40000613d000000000101043b0000000401100039000000000101041a000000ff00100190000004ac0000613d000000110000006b000003f90000613d0000000601000039000000000101041a000d00000001001d000000000001004b000006e60000c13d0000000a01000039000000000101041a001100000001001d0000000501000029000000000010043f0000000701000039000000200010043f0000000001000414000005800010009c0000058001008041000000c001100210000005ba011001c7000080100200003915fd15f80000040f0000000100200190000010b40000613d000000000101043b000000400200043d000005be0020009c000006cc0000213d0000000101100039000000000101041a0000004003200039000000400030043f0000002003200039000005bf0400004100000000004304350000001e030000390000000000320435000000110110006b000009e10000813d000000400300043d001100000003001d000005b40100004100000000001304350000000401300039000010800000013d000000440030008c000010b40000413d0000000002000416000000000002004b000010b40000c13d0000002402100370000000000202043b001100000002001d0000000401100370000000000101043b001000000001001d15fd15850000040f00000000030100190000001101000029000000100200002915fd15d00000040f000000400200043d0000000000120435000005800020009c00000580020080410000004001200210000005d1011001c7000015fe0001042e000000440030008c000010b40000413d0000000002000416000000000002004b000010b40000c13d0000002402100370000000000402043b0000000401100370000000000301043b0000000101000039000000000201041a000000020020008c000004870000c13d000005b401000041000000800010043f0000002001000039000000840010043f0000001f01000039000000a40010043f000005db01000041000000c40010043f000005dc01000041000015ff00010430000000240030008c000010b40000413d0000000002000416000000000002004b000010b40000c13d0000000401100370000000000101043b000005830010009c000010b40000213d000000000010043f0000000c01000039000000200010043f15fd15e60000040f000000000101041a000000ff001001900000000001000039000000010100c039000000800010043f000005b901000041000015fe0001042e000000240030008c000010b40000413d0000000002000416000000000002004b000010b40000c13d0000000401100370000000000101043b001100000001001d000005830010009c000010b40000213d000000000100041a00000583011001970000000005000411000000000051004b0000047e0000c13d0000001106000029000000000006004b000006090000c13d000005b401000041000000800010043f0000002001000039000000840010043f0000002601000039000000a40010043f000005b601000041000000c40010043f000005b701000041000000e40010043f000005b801000041000015ff00010430000005b401000041000000800010043f0000002001000039000000840010043f000000a40010043f000005e001000041000000c40010043f000005dc01000041000015ff00010430001000000004001d0000000202000039000000000021041b001100000003001d000000000030043f0000000701000039000000200010043f0000000001000414000005800010009c0000058001008041000000c001100210000005ba011001c70000801002000039000f00000005001d15fd15f80000040f0000000100200190000010b40000613d000000000101043b000e00000001001d0000001101000029000000000010043f0000000701000039000000200010043f0000000001000414000005800010009c0000058001008041000000c001100210000005ba011001c7000080100200003915fd15f80000040f0000000100200190000010b40000613d000000000101043b0000000401100039000000000101041a000000ff00100190000006210000c13d000000400100043d0000004402100039000005e203000041000000000032043500000024021000390000000b03000039000006d80000013d000500000003001d0000000001000410000c05830010019b0000000002000019000004bf0000013d0000000e010000290000001002000029000000000021041b0000000f0200002900000001022000390000000d0020006c000006e30000813d0000000601000039000000000101041a000000000012004b000009940000813d000f00000002001d000005d30120009a000000000101041a000000000010043f0000000701000039000000200010043f0000000001000414000005800010009c0000058001008041000000c001100210000005ba011001c7000080100200003915fd15f80000040f0000000100200190000010b40000613d000000000201043b0000000401200039000000000101041a000000ff00100190000004ac0000613d001100000002001d0000000201200039000e00000001001d000000000101041a001000000001001d000005b10100004100000000001004430000000001000414000005800010009c0000058001008041000000c001100210000005b2011001c70000800b0200003915fd15f80000040f0000000100200190000011950000613d000000000101043b000000100010006c000004bb0000a13d001000000001001d0000001101000029000000000201041a000000400a00043d000005bb0100004100000000001a04350000000401a000390000000c03000029000000000031043500000000010004140000058302200197000000040020008c000004fc0000c13d0000000003000031000000200030008c00000020040000390000000004034019000005270000013d0000058000a0009c000005800300004100000000030a40190000004003300210000005800010009c0000058001008041000000c001100210000000000131019f000005bc011001c7000b0000000a001d15fd15f80000040f0000000b0a00002900000060031002700000058003300197000000200030008c00000020040000390000000004034019000000200640019000000000056a0019000005160000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000058004b000005120000c13d0000001f07400190000005230000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000000000003001f00010000000103550000000100200190000009d50000613d0000001f01400039000000600110018f0000000002a10019000000000012004b00000000010000390000000101004039000005bd0020009c000006cc0000213d0000000100100190000006cc0000c13d000000400020043f000000200030008c000010b40000413d00000000030a0433000000000003004b000004b80000613d00000011010000290000000101100039000000000101041a000000000001004b000004b80000613d000700000003001d000005be0020009c000006cc0000213d0000000e03000029000000000303041a0000004004200039000000400040043f0000002004200039000005bf0500004100000000005404350000001e040000390000000000420435000000100330006b000004180000413d000b00000000001d000005580000613d0000000402000039000000000402041a00000000023400a900000000033200d9000000000043004b00000f1f0000c13d000000000002004b000006000000613d000b0000001200ad0000000b022000f9000000000012004b00000f1f0000c13d000000400200043d000005be0020009c000006cc0000213d0000000a01000039000000000401041a0000004001200039000000400010043f0000002001200039000005c00300004100000000003104350000001a010000390000000000120435000000400500043d000a00000004001d000000000004004b000009f00000613d000005be0050009c000006cc0000213d0000000501000039000000000401041a0000000301000039000000000101041a000900000001001d0000000201000039000000000101041a0000004002500039000000400020043f000000200250003900000000003204350000001a020000390000000000250435000800000004001d000000000004004b0000107a0000613d0000058302100197000005c1010000410000000000100443000600000002001d00000004002004430000000001000414000005800010009c0000058001008041000000c001100210000005c2011001c7000080020200003915fd15f80000040f0000000100200190000011950000613d000000000101043b000000000001004b000010b40000613d0000000a020000290000000b022000f900000009010000290000058301100197000900000002001d00000008022000fa000000400400043d00000024034000390000000000230435000005c30200004100000000002404350000000402400039000000000012043500000000010004140000000602000029000000040020008c000005ad0000613d000005800040009c000005800300004100000000030440190000004003300210000005800010009c0000058001008041000000c001100210000000000131019f000005c4011001c7000800000004001d15fd15f30000040f00000008040000290000006003100270000005800030019d00010000000103550000000100200190000009f50000613d000005bd0040009c000006cc0000213d000000400040043f0000000201000039000000000101041a000005c10200004100000000002004430000058301100197000800000001001d00000004001004430000000001000414000005800010009c0000058001008041000000c001100210000005c2011001c7000080020200003915fd15f80000040f0000000100200190000011950000613d000000000101043b000000000001004b000010b40000613d000000400500043d000000240150003900000009020000290000000000210435000005c301000041000000000615043600000004015000390000000c02000029000000000021043500000000010004140000000802000029000000040020008c000005e30000613d000005800050009c000005800300004100000000030540190000004003300210000005800010009c0000058001008041000000c001100210000000000131019f000005c4011001c7000800000005001d000600000006001d15fd15f30000040f000000060600002900000008050000290000006003100270000005800030019d0001000000010355000000010020019000000a020000613d000005bd0050009c000006cc0000213d000000400050043f00000011010000290000000301100039000000000201041a0000000a040000290000000b0040006c0000000003000019000005f20000213d0000000904000029000005c5034000d100000000044300d9000005c50040009c00000f1f0000c13d000005be0050009c000006cc0000213d0000004004500039000000400040043f000005c00400004100000000004604350000001a04000039000000000045043500000007033000fa000000000023001a00000f1f0000413d0000000002230019000000000021041b000004b80000013d000b00000000001d000000400200043d000005be0020009c0000055b0000a13d000006cc0000013d0000000502000039000000000012041b0000000001000019000015fe0001042e0000000001000414000005800010009c0000058001008041000000c00110021000000585011001c70000800d020000390000000303000039000005860400004115fd15f30000040f0000000100200190000010b40000613d000000000100041a000005840110019700000011011001af000000000010041b0000000001000019000015fe0001042e000000400100043d0000004402100039000005b303000041000000000032043500000024021000390000001003000039000006d80000013d0000001101000029000000000010043f0000000901000039000000200010043f0000000001000414000005800010009c0000058001008041000000c001100210000005ba011001c7000080100200003915fd15f80000040f0000000100200190000010b40000613d000000000101043b00000000020004110000058302200197000d00000002001d000000000020043f000000200010043f0000000001000414000005800010009c0000058001008041000000c001100210000005ba011001c7000080100200003915fd15f80000040f0000000100200190000010b40000613d000000000101043b000c00000001001d0000001101000029000000000010043f0000000701000039000000200010043f0000000001000414000005800010009c0000058001008041000000c001100210000005ba011001c7000080100200003915fd15f80000040f0000000100200190000010b40000613d000000000101043b000b00000001001d0000000401100039000000000101041a000000ff00100190000004ac0000613d0000000b010000290000000201100039000900000001001d000000000101041a000a00000001001d000005b10100004100000000001004430000000001000414000005800010009c0000058001008041000000c001100210000005b2011001c70000800b0200003915fd15f80000040f0000000100200190000011950000613d000000000101043b000800000001001d0000000a0010006c00000ab40000a13d0000000b01000029000000000201041a000000400400043d000005bb01000041000000000014043500000000010004100000058303100197000a00000004001d0000000401400039000700000003001d000000000031043500000000010004140000058302200197000000040020008c00000a700000c13d0000000003000031000000200030008c0000002004000039000000000403401900000a9a0000013d0000058000b0009c000005800300004100000000030b40190000004003300210000005800010009c0000058001008041000000c001100210000000000131019f000005bc011001c7000e0000000b001d15fd15f80000040f0000000e0b00002900000060031002700000058003300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000006950000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000006910000c13d000000000006004b000006a20000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00010000000103550000000100200190000008370000613d0000001f01400039000000600210018f0000000001b20019000000000021004b00000000020000390000000102004039000005bd0010009c000006cc0000213d0000000100200190000006cc0000c13d000000400010043f000000200030008c000010b40000413d00000000010b0433000d00000001001d0000000f010000290000000201100039000000000101041a000e00000001001d000005b10100004100000000001004430000000001000414000005800010009c0000058001008041000000c001100210000005b2011001c70000800b0200003915fd15f80000040f0000000100200190000011950000613d000000000101043b0000000e0110006c00000a5a0000a13d0000000d0000006b00000a5a0000613d000000400200043d000005be0020009c00000a210000a13d000005e101000041000000000010043f0000004101000039000000040010043f000005bc01000041000015ff00010430000000400100043d0000004402100039000005dd030000410000000000320435000000240210003900000019030000390000000000320435000005b4020000410000000000210435000000040210003900000020030000390000000000320435000005800010009c00000580010080410000004001100210000005b5011001c7000015ff00010430000000400100043d00000005030000290000032d0000013d0000000001000410000c05830010019b0000000002000019000006f10000013d0000000e010000290000001002000029000000000021041b0000000f0200002900000001022000390000000d0020006c000003f90000813d0000000601000039000000000101041a000000000012004b000009940000813d000f00000002001d000005d30120009a000000000101041a000000000010043f0000000701000039000000200010043f0000000001000414000005800010009c0000058001008041000000c001100210000005ba011001c7000080100200003915fd15f80000040f0000000100200190000010b40000613d000000000201043b0000000401200039000000000101041a000000ff00100190000004ac0000613d001100000002001d0000000201200039000e00000001001d000000000101041a001000000001001d000005b10100004100000000001004430000000001000414000005800010009c0000058001008041000000c001100210000005b2011001c70000800b0200003915fd15f80000040f0000000100200190000011950000613d000000000101043b000000100010006c000006ed0000a13d001000000001001d0000001101000029000000000201041a000000400a00043d000005bb0100004100000000001a04350000000401a000390000000c03000029000000000031043500000000010004140000058302200197000000040020008c0000072e0000c13d0000000003000031000000200030008c00000020040000390000000004034019000007590000013d0000058000a0009c000005800300004100000000030a40190000004003300210000005800010009c0000058001008041000000c001100210000000000131019f000005bc011001c7000b0000000a001d15fd15f80000040f0000000b0a00002900000060031002700000058003300197000000200030008c00000020040000390000000004034019000000200640019000000000056a0019000007480000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000058004b000007440000c13d0000001f07400190000007550000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000000000003001f0001000000010355000000010020019000000b670000613d0000001f01400039000000600110018f0000000002a10019000000000012004b00000000010000390000000101004039000005bd0020009c000006cc0000213d0000000100100190000006cc0000c13d000000400020043f000000200030008c000010b40000413d00000000030a0433000000000003004b000006ea0000613d00000011010000290000000101100039000000000101041a000000000001004b000006ea0000613d000700000003001d000005be0020009c000006cc0000213d0000000e03000029000000000303041a0000004004200039000000400040043f0000002004200039000005bf0500004100000000005404350000001e040000390000000000420435000000100330006b000004180000413d000b00000000001d0000078a0000613d0000000402000039000000000402041a00000000023400a900000000033200d9000000000043004b00000f1f0000c13d000000000002004b000008320000613d000b0000001200ad0000000b022000f9000000000012004b00000f1f0000c13d000000400200043d000005be0020009c000006cc0000213d0000000a01000039000000000401041a0000004001200039000000400010043f0000002001200039000005c00300004100000000003104350000001a010000390000000000120435000000400500043d000a00000004001d000000000004004b000009f00000613d000005be0050009c000006cc0000213d0000000501000039000000000401041a0000000301000039000000000101041a000900000001001d0000000201000039000000000101041a0000004002500039000000400020043f000000200250003900000000003204350000001a020000390000000000250435000800000004001d000000000004004b0000107a0000613d0000058302100197000005c1010000410000000000100443000600000002001d00000004002004430000000001000414000005800010009c0000058001008041000000c001100210000005c2011001c7000080020200003915fd15f80000040f0000000100200190000011950000613d000000000101043b000000000001004b000010b40000613d0000000a020000290000000b022000f900000009010000290000058301100197000900000002001d00000008022000fa000000400400043d00000024034000390000000000230435000005c30200004100000000002404350000000402400039000000000012043500000000010004140000000602000029000000040020008c000007df0000613d000005800040009c000005800300004100000000030440190000004003300210000005800010009c0000058001008041000000c001100210000000000131019f000005c4011001c7000800000004001d15fd15f30000040f00000008040000290000006003100270000005800030019d0001000000010355000000010020019000000c7b0000613d000005bd0040009c000006cc0000213d000000400040043f0000000201000039000000000101041a000005c10200004100000000002004430000058301100197000800000001001d00000004001004430000000001000414000005800010009c0000058001008041000000c001100210000005c2011001c7000080020200003915fd15f80000040f0000000100200190000011950000613d000000000101043b000000000001004b000010b40000613d000000400500043d000000240150003900000009020000290000000000210435000005c301000041000000000615043600000004015000390000000c02000029000000000021043500000000010004140000000802000029000000040020008c000008150000613d000005800050009c000005800300004100000000030540190000004003300210000005800010009c0000058001008041000000c001100210000000000131019f000005c4011001c7000800000005001d000600000006001d15fd15f30000040f000000060600002900000008050000290000006003100270000005800030019d0001000000010355000000010020019000000c880000613d000005bd0050009c000006cc0000213d000000400050043f00000011010000290000000301100039000000000201041a0000000a040000290000000b0040006c0000000003000019000008240000213d0000000904000029000005c5034000d100000000044300d9000005c50040009c00000f1f0000c13d000005be0050009c000006cc0000213d0000004004500039000000400040043f000005c00400004100000000004604350000001a04000039000000000045043500000007033000fa000000000023001a00000f1f0000413d0000000002230019000000000021041b000006ea0000013d000b00000000001d000000400200043d000005be0020009c0000078d0000a13d000006cc0000013d0000001f0530018f0000058206300198000000400200043d000000000462001900000a0e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000083e0000c13d00000a0e0000013d0000000001000410000c05830010019b00000000020000190000084e0000013d0000000e010000290000001002000029000000000021041b0000000f0200002900000001022000390000000d0020006c000001f90000813d0000000601000039000000000101041a000000000012004b000009940000813d000f00000002001d000005d30120009a000000000101041a000000000010043f0000000701000039000000200010043f0000000001000414000005800010009c0000058001008041000000c001100210000005ba011001c7000080100200003915fd15f80000040f0000000100200190000010b40000613d000000000201043b0000000401200039000000000101041a000000ff00100190000004ac0000613d001100000002001d0000000201200039000e00000001001d000000000101041a001000000001001d000005b10100004100000000001004430000000001000414000005800010009c0000058001008041000000c001100210000005b2011001c70000800b0200003915fd15f80000040f0000000100200190000011950000613d000000000101043b000000100010006c0000084a0000a13d001000000001001d0000001101000029000000000201041a000000400a00043d000005bb0100004100000000001a04350000000401a000390000000c03000029000000000031043500000000010004140000058302200197000000040020008c0000088b0000c13d0000000003000031000000200030008c00000020040000390000000004034019000008b60000013d0000058000a0009c000005800300004100000000030a40190000004003300210000005800010009c0000058001008041000000c001100210000000000131019f000005bc011001c7000b0000000a001d15fd15f80000040f0000000b0a00002900000060031002700000058003300197000000200030008c00000020040000390000000004034019000000200640019000000000056a0019000008a50000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000058004b000008a10000c13d0000001f07400190000008b20000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000000000003001f0001000000010355000000010020019000000c6f0000613d0000001f01400039000000600110018f0000000002a10019000000000012004b00000000010000390000000101004039000005bd0020009c000006cc0000213d0000000100100190000006cc0000c13d000000400020043f000000200030008c000010b40000413d00000000030a0433000000000003004b000008470000613d00000011010000290000000101100039000000000101041a000000000001004b000008470000613d000700000003001d000005be0020009c000006cc0000213d0000000e03000029000000000303041a0000004004200039000000400040043f0000002004200039000005bf0500004100000000005404350000001e040000390000000000420435000000100330006b000004180000413d000b00000000001d000008e70000613d0000000402000039000000000402041a00000000023400a900000000033200d9000000000043004b00000f1f0000c13d000000000002004b0000098f0000613d000b0000001200ad0000000b022000f9000000000012004b00000f1f0000c13d000000400200043d000005be0020009c000006cc0000213d0000000a01000039000000000401041a0000004001200039000000400010043f0000002001200039000005c00300004100000000003104350000001a010000390000000000120435000000400500043d000a00000004001d000000000004004b000009f00000613d000005be0050009c000006cc0000213d0000000501000039000000000401041a0000000301000039000000000101041a000900000001001d0000000201000039000000000101041a0000004002500039000000400020043f000000200250003900000000003204350000001a020000390000000000250435000800000004001d000000000004004b0000107a0000613d0000058302100197000005c1010000410000000000100443000600000002001d00000004002004430000000001000414000005800010009c0000058001008041000000c001100210000005c2011001c7000080020200003915fd15f80000040f0000000100200190000011950000613d000000000101043b000000000001004b000010b40000613d0000000a020000290000000b022000f900000009010000290000058301100197000900000002001d00000008022000fa000000400400043d00000024034000390000000000230435000005c30200004100000000002404350000000402400039000000000012043500000000010004140000000602000029000000040020008c0000093c0000613d000005800040009c000005800300004100000000030440190000004003300210000005800010009c0000058001008041000000c001100210000000000131019f000005c4011001c7000800000004001d15fd15f30000040f00000008040000290000006003100270000005800030019d0001000000010355000000010020019000000cc10000613d000005bd0040009c000006cc0000213d000000400040043f0000000201000039000000000101041a000005c10200004100000000002004430000058301100197000800000001001d00000004001004430000000001000414000005800010009c0000058001008041000000c001100210000005c2011001c7000080020200003915fd15f80000040f0000000100200190000011950000613d000000000101043b000000000001004b000010b40000613d000000400500043d000000240150003900000009020000290000000000210435000005c301000041000000000615043600000004015000390000000c02000029000000000021043500000000010004140000000802000029000000040020008c000009720000613d000005800050009c000005800300004100000000030540190000004003300210000005800010009c0000058001008041000000c001100210000000000131019f000005c4011001c7000800000005001d000600000006001d15fd15f30000040f000000060600002900000008050000290000006003100270000005800030019d0001000000010355000000010020019000000cce0000613d000005bd0050009c000006cc0000213d000000400050043f00000011010000290000000301100039000000000201041a0000000a040000290000000b0040006c0000000003000019000009810000213d0000000904000029000005c5034000d100000000044300d9000005c50040009c00000f1f0000c13d000005be0050009c000006cc0000213d0000004004500039000000400040043f000005c00400004100000000004604350000001a04000039000000000045043500000007033000fa000000000023001a00000f1f0000413d0000000002230019000000000021041b000008470000013d000b00000000001d000000400200043d000005be0020009c000008ea0000a13d000006cc0000013d000005e101000041000000000010043f0000003201000039000000040010043f000005bc01000041000015ff000104300000001101000029000000000010043f0000000701000039000000200010043f0000000001000414000005800010009c0000058001008041000000c001100210000005ba011001c7000080100200003915fd15f80000040f0000000100200190000010b40000613d000000000101043b000c00000001001d0000000401100039000000000101041a000000ff00100190000004ac0000613d0000000c010000290000000201100039000a00000001001d000000000101041a000b00000001001d000005b10100004100000000001004430000000001000414000005800010009c0000058001008041000000c001100210000005b2011001c70000800b0200003915fd15f80000040f0000000100200190000011950000613d000000000101043b000900000001001d0000000b0010006c00000c100000a13d0000000c01000029000000000201041a000000400400043d000005bb01000041000000000014043500000000010004100000058303100197000b00000004001d0000000401400039000800000003001d000000000031043500000000010004140000058302200197000000040020008c00000bcc0000c13d0000000003000031000000200030008c0000002004000039000000000403401900000bf60000013d0000001f0530018f0000058206300198000000400200043d000000000462001900000a0e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000009dc0000c13d00000a0e0000013d000000040010002a00000f1f0000413d00000004011000290000000a02000039000000000012041b0000000501000029000000000010043f0000000701000039000000200010043f15fd15e60000040f00000001011000390000000402000029000000000021041b0000000001000019000015fe0001042e000005b40100004100000000001504350000000401500039001100000005001d000010800000013d00000580033001970000001f0530018f0000058206300198000000400200043d000000000462001900000a0e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000009fd0000c13d00000a0e0000013d00000580033001970000001f0530018f0000058206300198000000400200043d000000000462001900000a0e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000a0a0000c13d000000000005004b00000a1b0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000005800020009c00000580020080410000004002200210000000000112019f000015ff000104300000004003200039000000400030043f0000002003200039000005bf0400004100000000004304350000001e0300003900000000003204350000000402000039000000000302041a00000000021300a900000000011200d9000000000031004b00000f1f0000c13d000000000002004b000000000100001900000a380000613d0000000f010000290000000101100039000000000301041a00000000012300a900000000022100d9000000000032004b00000f1f0000c13d000000400200043d000005be0020009c000006cc0000213d0000000a03000039000000000403041a0000004003200039000000400030043f0000002003200039000005c00500004100000000005304350000001a030000390000000000320435000000000004004b000004180000613d000000000014004b000000000200001900000a4e0000213d00000000014100d9000005c5021000d100000000011200d9000005c50010009c00000f1f0000c13d000000400100043d000005be0010009c000006cc0000213d0000004004100039000000400040043f0000002004100039000000000054043500000000003104350000000d012000fa000000100010002a00000f1f0000413d001000100010002d0000001101000029000000000101041a000000100200002915fd15640000040f001000000001001d15fd15740000040f00000011010000290000000101100039000000000201041a0000001001000029000005c50110012a15fd15960000040f0000042e0000013d0000001001000029000000000201043300000000010004140000000c03000029000000040030008c00000b1a0000c13d0000000004000031000000000200001900000b2d0000013d0000000a03000029000005800030009c00000580030080410000004003300210000005800010009c0000058001008041000000c001100210000000000131019f000005bc011001c715fd15f80000040f00000060031002700000058003300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000a0570002900000a890000613d000000000801034f0000000a09000029000000008a08043c0000000009a90436000000000059004b00000a850000c13d000000000006004b00000a960000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0001000000010355000000010020019000000c630000613d0000001f01400039000000600110018f0000000a02100029000000000012004b00000000010000390000000101004039000005bd0020009c000006cc0000213d0000000100100190000006cc0000c13d000000400020043f000000200030008c000010b40000413d0000000a010000290000000001010433000a00000001001d000000000001004b00000ab10000613d0000000b010000290000000101100039000000000101041a000000000001004b00000cdb0000c13d00000009010000290000000802000029000000000021041b0000000c01000029000000000201041a000000000002004b00000ae40000c13d000000100000006b00000b8d0000c13d0000000c01000029000000000201041a000000000002004b000000000100001900000ac60000613d0000000e010000290000000301100039000000000301041a00000000012300a900000000022100d9000000000032004b00000f1f0000c13d000000400200043d000005be0020009c000006cc0000213d0000004003200039000000400030043f0000002003200039000005c00400004100000000004304350000001a030000390000000000320435000005c50110012a0000000c020000290000000102200039000000000012041b000000400100043d00000010020000290000000000210435000005800010009c000005800100804100000040011002100000000002000414000005800020009c0000058002008041000000c002200210000000000112019f000005ce011001c70000800d020000390000000303000039000005cf0400004100000b840000013d0000000e010000290000000301100039000000000301041a00000000012300a900000000022100d9000000000032004b00000f1f0000c13d000000400200043d000005be0020009c000006cc0000213d0000004003200039000000400030043f0000002003200039000005c00400004100000000004304350000001a030000390000000000320435000000400200043d000005be0020009c000006cc0000213d000005c50110012a0000000c030000290000000103300039000000000303041a0000004004200039000000400040043f0000002004200039000005bf0500004100000000005404350000001e040000390000000000420435000b000000310053000004180000413d00000ab80000613d0000000201000039000000000201041a000000400300043d000005bb01000041000000000013043500000000010004100000058301100197000a00000003001d0000000403300039000000000013043500000000010004140000058302200197000800000002001d000000040020008c00000e210000c13d0000000003000031000000200030008c0000002004000039000000000403401900000e4c0000013d0000000e03000029000005800030009c00000580030080410000004003300210000005800020009c00000580020080410000006002200210000000000232019f000005800010009c0000058001008041000000c001100210000000000112019f0000000c0200002915fd15f30000040f000000010220015f00010000000103550000006001100270000005800010019d0000058004100197000000000004004b00000b3d0000c13d000000600300003900000080010000390000000003030433000000010020019000000b730000613d000000000003004b000010d90000c13d000000400200043d001100000002001d000005b401000041000000000012043500000004012000390000000d02000029000010800000013d000005bd0040009c000006cc0000213d0000001f01400039000005e5011001970000003f01100039000005e501100197000000400300043d0000000001130019000000000031004b00000000060000390000000106004039000005bd0010009c000006cc0000213d0000000100600190000006cc0000c13d000000400010043f0000000001430436000005e5054001980000001f0640018f0000000004510019000000010700036700000b590000613d000000000807034f0000000009010019000000008a08043c0000000009a90436000000000049004b00000b550000c13d000000000006004b00000b310000613d000000000557034f0000000306600210000000000704043300000000076701cf000000000767022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000575019f000000000054043500000b310000013d0000001f0530018f0000058206300198000000400200043d000000000462001900000a0e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000b6e0000c13d00000a0e0000013d000000000003004b00000c950000c13d000000400100043d0000000f020000290000000000210435000005800010009c000005800100804100000040011002100000000002000414000005800020009c0000058002008041000000c002200210000000000112019f000005ce011001c70000800d020000390000000303000039000005d5040000410000000005000411000000110600002915fd15f30000040f0000000100200190000010b40000613d0000000101000039000000000011041b0000000001000019000015fe0001042e0000000e01000029000000000101041a000000400400043d00000064024000390000001003000029000000000032043500000000020004100000058302200197000000440340003900000000002304350000002003400039000005ca02000041000b00000003001d000000000023043500000024024000390000000d03000029000000000032043500000064020000390000000000240435000d00000004001d000005cb0040009c000006cc0000213d0000000d02000029000000a002200039000000400020043f000a00000002001d000005be0020009c000006cc0000213d00000583041001970000000d03000029000000e001300039000000400010043f00000020010000390000000a020000290000000000120435000000c001300039000005cc020000410000000000210435000005c1010000410000000000100443000900000004001d00000004004004430000000001000414000005800010009c0000058001008041000000c001100210000005c2011001c7000080020200003915fd15f80000040f0000000100200190000011950000613d000000000101043b000000000001004b000002fa0000613d0000000d01000029000000000201043300000000010004140000000903000029000000040030008c00000dd40000c13d0000000003000031000000000200001900000de70000013d0000000b03000029000005800030009c00000580030080410000004003300210000005800010009c0000058001008041000000c001100210000000000131019f000005bc011001c715fd15f80000040f00000060031002700000058003300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000b0570002900000be50000613d000000000801034f0000000b09000029000000008a08043c0000000009a90436000000000059004b00000be10000c13d000000000006004b00000bf20000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0001000000010355000000010020019000000cb50000613d0000001f01400039000000600110018f0000000b02100029000000000012004b00000000010000390000000101004039000005bd0020009c000006cc0000213d0000000100100190000006cc0000c13d000000400020043f000000200030008c000010b40000413d0000000b010000290000000001010433000b00000001001d000000000001004b00000c0d0000613d0000000c010000290000000101100039000000000101041a000000000001004b00000d150000c13d0000000a010000290000000902000029000000000021041b0000000f01000029000c00030010003d0000000d01000029000000000201041a000000000002004b000000000100001900000c1d0000613d0000000c01000029000000000301041a00000000012300a900000000022100d9000000000032004b00000f1f0000c13d000000400200043d000005be0020009c000006cc0000213d0000004003200039000000400030043f0000002003200039000005c00400004100000000004304350000001a030000390000000000320435000000400200043d000005be0020009c000006cc0000213d000005c50110012a0000000d030000290000000103300039000a00000003001d000000000303041a0000004004200039000000400040043f0000002004200039000005bf0500004100000000005404350000001e040000390000000000420435000b000000310053000004180000413d00000d010000c13d000000100000006b00000d3b0000c13d0000000d01000029000000000201041a000000000002004b000000000100001900000c460000613d0000000c01000029000000000301041a00000000012300a900000000022100d9000000000032004b00000f1f0000c13d000000400200043d000005be0020009c000006cc0000213d0000004003200039000000400030043f0000002003200039000005c00400004100000000004304350000001a030000390000000000320435000005c50110012a0000000a02000029000000000012041b000000400100043d00000010020000290000000000210435000005800010009c000005800100804100000040011002100000000002000414000005800020009c0000058002008041000000c002200210000000000112019f000005ce011001c70000800d020000390000000303000039000005d90400004100000b840000013d0000001f0530018f0000058206300198000000400200043d000000000462001900000a0e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000c6a0000c13d00000a0e0000013d0000001f0530018f0000058206300198000000400200043d000000000462001900000a0e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000c760000c13d00000a0e0000013d00000580033001970000001f0530018f0000058206300198000000400200043d000000000462001900000a0e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000c830000c13d00000a0e0000013d00000580033001970000001f0530018f0000058206300198000000400200043d000000000462001900000a0e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000c900000c13d00000a0e0000013d000005cd0030009c000010b40000213d000000200030008c000010b40000413d0000000001010433000000000001004b0000000002000039000000010200c039000000000021004b000010b40000c13d000000000001004b00000b750000c13d000000400100043d0000006402100039000005d60300004100000000003204350000004402100039000005d703000041000000000032043500000024021000390000002a030000390000000000320435000005b4020000410000000000210435000000040210003900000020030000390000000000320435000005800010009c00000580010080410000004001100210000005c9011001c7000015ff000104300000001f0530018f0000058206300198000000400200043d000000000462001900000a0e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000cbc0000c13d00000a0e0000013d00000580033001970000001f0530018f0000058206300198000000400200043d000000000462001900000a0e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000cc90000c13d00000a0e0000013d00000580033001970000001f0530018f0000058206300198000000400200043d000000000462001900000a0e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000cd60000c13d00000a0e0000013d000005be0020009c000006cc0000213d0000000903000029000000000303041a0000004004200039000000400040043f0000002004200039000005bf0500004100000000005404350000001e040000390000000000420435000000080330006b000004180000413d000600000000001d00000eaf0000c13d000000400200043d000005be0020009c000006cc0000213d0000000a01000039000000000401041a0000004001200039000000400010043f0000002001200039000005c00300004100000000003104350000001a010000390000000000120435000000400500043d000500000004001d000000000004004b00000f7f0000c13d000005b401000041000400000005001d0000000000150435000000040150003915fd15bb0000040f0000000402000029000010820000013d0000000201000039000000000201041a000000400300043d000005bb01000041000000000013043500000000010004100000058301100197000900000003001d0000000403300039000000000013043500000000010004140000058302200197000700000002001d000000040020008c00000d520000c13d0000000003000031000000200030008c0000002004000039000000000403401900000d7d0000013d000005be0020009c000006cc0000213d0000000a03000029000000000303041a0000004004200039000000400040043f0000002004200039000005bf0500004100000000005404350000001e040000390000000000420435000000090330006b000004180000413d000700000000001d00000f120000c13d000000400200043d000005be0020009c000006cc0000213d0000000a01000039000000000401041a0000004001200039000000400010043f0000002001200039000005c00300004100000000003104350000001a010000390000000000120435000000400500043d000600000004001d000000000004004b000010680000c13d000005b401000041000500000005001d0000000000150435000000040150003915fd15bb0000040f0000000502000029000010820000013d000000400200043d000005be0020009c000006cc0000213d0000000d01000029000000000101041a0000004003200039000000400030043f0000002003200039000005bf0400004100000000004304350000001e030000390000000000320435000000400300043d000b00000003001d000000100110006c00000ed60000813d000005b4010000410000000b030000290000000000130435000000040130003915fd15bb0000040f0000000b02000029000010820000013d0000000902000029000005800020009c00000580020080410000004002200210000005800010009c0000058001008041000000c001100210000000000121019f000005bc011001c7000000070200002915fd15f80000040f00000060031002700000058003300197000000200030008c000000200400003900000000040340190000001f0640018f0000002007400190000000090570002900000d6c0000613d000000000801034f0000000909000029000000008a08043c0000000009a90436000000000059004b00000d680000c13d000000000006004b00000d790000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0001000000010355000000010020019000000ea30000613d0000001f01400039000000600110018f0000000904100029000000000014004b00000000020000390000000102004039000800000004001d000005bd0040009c000006cc0000213d0000000100200190000006cc0000c13d0000000802000029000000400020043f000000200030008c000010b40000413d00000009020000290000000002020433000005c6040000410000000806000029000000000046043500000004046000390000000e05000029000000000054043500000024046000390000000b0020006c00000f3c0000813d0000000205000039000000000505041a000000000024043500000000040004140000058302500197000000040020008c00000f6f0000613d0000000801000029000005800010009c00000580010080410000004001100210000005800040009c0000058004008041000000c003400210000000000113019f000005c4011001c715fd15f30000040f00000060031002700000058003300197000000200030008c000000200400003900000000040340190000001f0640018f0000002007400190000000080570002900000db70000613d000000000801034f0000000809000029000000008a08043c0000000009a90436000000000059004b00000db30000c13d000000000006004b00000dc40000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0001000000010355000000010020019000000f6d0000c13d0000001f0530018f0000058206300198000000400200043d000000000462001900000a0e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000dcf0000c13d00000a0e0000013d0000000b03000029000005800030009c00000580030080410000004003300210000005800020009c00000580020080410000006002200210000000000232019f000005800010009c0000058001008041000000c001100210000000000112019f000000090200002915fd15f30000040f000000010220015f00010000000103550000006001100270000005800010019d0000058003100197000000000003004b00000df60000c13d00000060010000390000000001010433000000010020019000000ebd0000613d000000000001004b00000f250000c13d000000400200043d001100000002001d000005b401000041000000000012043500000004012000390000000a02000029000010800000013d000005bd0030009c000006cc0000213d0000001f01300039000005e5011001970000003f01100039000005e505100197000000400100043d0000000005510019000000000015004b00000000060000390000000106004039000005bd0050009c000006cc0000213d0000000100600190000006cc0000c13d000000400050043f0000000006310436000005e5043001980000001f0530018f000f00000006001d0000000003460019000000010600036700000e130000613d000000000706034f0000000f08000029000000007907043c0000000008980436000000000038004b00000e0f0000c13d000000000005004b00000dea0000613d000000000446034f0000000305500210000000000603043300000000065601cf000000000656022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000464019f000000000043043500000dea0000013d0000000a02000029000005800020009c00000580020080410000004002200210000005800010009c0000058001008041000000c001100210000000000121019f000005bc011001c7000000080200002915fd15f80000040f00000060031002700000058003300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000a0570002900000e3b0000613d000000000801034f0000000a09000029000000008a08043c0000000009a90436000000000059004b00000e370000c13d000000000006004b00000e480000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0001000000010355000000010020019000000eca0000613d0000001f01400039000000600110018f0000000a04100029000000000014004b00000000020000390000000102004039000900000004001d000005bd0040009c000006cc0000213d0000000100200190000006cc0000c13d0000000902000029000000400020043f000000200030008c000010b40000413d0000000a020000290000000002020433000005c6040000410000000906000029000000000046043500000004046000390000000d05000029000000000054043500000024046000390000000b0020006c0000101d0000813d0000000205000039000000000505041a000000000024043500000000040004140000058302500197000000040020008c000010500000613d0000000901000029000005800010009c00000580010080410000004001100210000005800040009c0000058004008041000000c003400210000000000113019f000005c4011001c715fd15f30000040f00000060031002700000058003300197000000200030008c000000200400003900000000040340190000001f0640018f0000002007400190000000090570002900000e860000613d000000000801034f0000000909000029000000008a08043c0000000009a90436000000000059004b00000e820000c13d000000000006004b00000e930000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000100000001035500000001002001900000104e0000c13d0000001f0530018f0000058206300198000000400200043d000000000462001900000a0e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000e9e0000c13d00000a0e0000013d0000001f0530018f0000058206300198000000400200043d000000000462001900000a0e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000eaa0000c13d00000a0e0000013d0000000402000039000000000402041a00000000023400a900000000033200d9000000000043004b00000f1f0000c13d000000000002004b000600000000001d00000cea0000613d00060000001200ad00000006022000f9000000000012004b00000cea0000613d00000f1f0000013d000000000001004b00000f2e0000c13d0000000c01000029000000000101041a000000100010002a00000f1f0000413d00000010021000290000000c01000029000000000021041b000000000002004b000000000100001900000abf0000c13d00000ac60000013d0000001f0530018f0000058206300198000000400200043d000000000462001900000a0e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000ed10000c13d00000a0e0000013d0000000d02000029000000000012041b0000000f01000029000000000101041a0000000b040000290000004402400039000000100300002900000000003204350000002003400039000005c602000041000f00000003001d000000000023043500000024024000390000000e03000029000000000032043500000044020000390000000000240435000005d40040009c000006cc0000213d0000000b020000290000008002200039000000400020043f000e00000002001d000005be0020009c000006cc0000213d00000583041001970000000b03000029000000c001300039000000400010043f00000020010000390000000e020000290000000000120435000000a001300039000005cc020000410000000000210435000005c1010000410000000000100443000900000004001d00000004004004430000000001000414000005800010009c0000058001008041000000c001100210000005c2011001c7000080020200003915fd15f80000040f0000000100200190000011950000613d000000000101043b000000000001004b000002fa0000613d0000000b01000029000000000201043300000000010004140000000903000029000000040030008c000010b60000c13d00000000040000310000000002000019000010c90000013d0000000402000039000000000402041a00000000023400a900000000033200d9000000000043004b00000f1f0000c13d000000000002004b000700000000001d00000d240000613d00070000001200ad00000007022000f9000000000012004b00000d240000613d000005e101000041000000000010043f0000001101000039000000040010043f000005bc01000041000015ff000104300000000f02000029000005800020009c00000580020080410000004002200210000005800010009c00000580010080410000006001100210000000000121019f000015ff00010430000005cd0010009c0000000f02000029000010b40000213d000000200010008c000010b40000413d0000000001020433000000000001004b0000000002000039000000010200c039000000000021004b000010b40000c13d000000000001004b00000ca10000613d00000ebf0000013d0000000b02000029000000000024043500000000020004140000000704000029000000040040008c00000f6f0000613d0000000801000029000005800010009c00000580010080410000004001100210000005800020009c0000058002008041000000c002200210000000000112019f000005c4011001c7000000070200002915fd15f30000040f00000060031002700000058003300197000000200030008c000000200400003900000000040340190000001f0640018f0000002007400190000000080570002900000f5c0000613d000000000801034f0000000809000029000000008a08043c0000000009a90436000000000059004b00000f580000c13d000000000006004b00000f690000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000100000001035500000001002001900000108b0000613d0000001f01400039000000600110018f0000000801100029000005bd0010009c000006cc0000213d000000400010043f000000200030008c000010b40000413d00000008020000290000000002020433000000000002004b0000000003000039000000010300c039000000000032004b000010b40000c13d000000000002004b00000c390000c13d0000105f0000013d000005be0050009c000006cc0000213d0000000501000039000000000601041a0000000301000039000000000101041a000200000001001d0000000201000039000000000101041a0000004002500039000000400020043f000000200250003900000000003204350000001a020000390000000000250435000300000006001d000000000006004b0000107a0000613d0000058302100197000005c1010000410000000000100443000400000002001d00000004002004430000000001000414000005800010009c0000058001008041000000c001100210000005c2011001c7000080020200003915fd15f80000040f0000000100200190000011950000613d000000000101043b000000000001004b000010b40000613d000000050200002900000006022000f900000002010000290000058301100197000200000002001d00000003022000fa000000400400043d00000024034000390000000000230435000005c3020000410000000000240435000300000004001d0000000402400039000000000012043500000000010004140000000402000029000000040020008c00000fc40000613d0000000302000029000005800020009c00000580020080410000004002200210000005800010009c0000058001008041000000c001100210000000000121019f000005c4011001c7000000040200002915fd15f30000040f0000006003100270000005800030019d00010000000103550000000100200190000011960000613d0000000301000029000005bd0010009c000006cc0000213d0000000301000029000000400010043f0000000201000039000000000101041a000005c10200004100000000002004430000058301100197000400000001001d00000004001004430000000001000414000005800010009c0000058001008041000000c001100210000005c2011001c7000080020200003915fd15f80000040f0000000100200190000011950000613d000000000101043b000000000001004b000010b40000613d000000400300043d000000240130003900000002020000290000000000210435000005c3010000410000000001130436000100000001001d000300000003001d00000004013000390000000702000029000000000021043500000000010004140000000402000029000000040020008c00000ffb0000613d0000000302000029000005800020009c00000580020080410000004002200210000005800010009c0000058001008041000000c001100210000000000121019f000005c4011001c7000000040200002915fd15f30000040f0000006003100270000005800030019d00010000000103550000000100200190000011b00000613d0000000301000029000005bd0010009c000006cc0000213d0000000301000029000000400010043f0000000b010000290000000301100039000000000201041a0000000504000029000000060040006c00000000030000190000100c0000213d0000000204000029000005c5034000d100000000044300d9000005c50040009c00000f1f0000c13d0000000304000029000005be0040009c000006cc0000213d00000003050000290000004004500039000000400040043f000005c004000041000000010600002900000000004604350000001a0400003900000000004504350000000a033000fa000000000023001a00000f1f0000413d0000000002230019000000000021041b00000ab10000013d0000000b02000029000000000024043500000000020004140000000804000029000000040040008c000010500000613d0000000901000029000005800010009c00000580010080410000004001100210000005800020009c0000058002008041000000c002200210000000000112019f000005c4011001c7000000080200002915fd15f30000040f00000060031002700000058003300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000009057000290000103d0000613d000000000801034f0000000909000029000000008a08043c0000000009a90436000000000059004b000010390000c13d000000000006004b0000104a0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00010000000103550000000100200190000010970000613d0000001f01400039000000600110018f0000000901100029000005bd0010009c000006cc0000213d000000400010043f000000200030008c000010b40000413d00000009020000290000000002020433000000000002004b0000000003000039000000010300c039000000000032004b000010b40000c13d000000000002004b00000ab80000c13d0000006402100039000005c70300004100000000003204350000004402100039000005c80300004100000000003204350000002402100039000000240300003900000caa0000013d000005be0050009c000006cc0000213d0000000501000039000000000601041a0000000301000039000000000101041a000300000001001d0000000201000039000000000101041a0000004002500039000000400020043f000000200250003900000000003204350000001a020000390000000000250435000400000006001d000000000006004b000010a30000c13d000000400200043d001100000002001d000005b40100004100000000001204350000000401200039000000000205001915fd15bb0000040f00000011020000290000000001210049000005800010009c00000580010080410000006001100210000005800020009c00000580020080410000004002200210000000000121019f000015ff000104300000001f0530018f0000058206300198000000400200043d000000000462001900000a0e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000010920000c13d00000a0e0000013d0000001f0530018f0000058206300198000000400200043d000000000462001900000a0e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000109e0000c13d00000a0e0000013d0000058302100197000005c1010000410000000000100443000500000002001d00000004002004430000000001000414000005800010009c0000058001008041000000c001100210000005c2011001c7000080020200003915fd15f80000040f0000000100200190000011950000613d000000000101043b000000000001004b0000111a0000c13d0000000001000019000015ff000104300000000f03000029000005800030009c00000580030080410000004003300210000005800020009c00000580020080410000006002200210000000000232019f000005800010009c0000058001008041000000c001100210000000000112019f000000090200002915fd15f30000040f000000010220015f00010000000103550000006001100270000005800010019d0000058004100197000000000004004b000010e10000c13d00000060030000390000008001000039000000000303043300000001002001900000110b0000613d000000000003004b000010d90000c13d000000400200043d001100000002001d000005b401000041000000000012043500000004012000390000000e02000029000010800000013d000005800010009c00000580010080410000004001100210000005800030009c00000580030080410000006002300210000000000112019f000015ff00010430000005bd0040009c000006cc0000213d0000001f01400039000005e5011001970000003f01100039000005e501100197000000400300043d0000000001130019000000000031004b00000000060000390000000106004039000005bd0010009c000006cc0000213d0000000100600190000006cc0000c13d000000400010043f0000000001430436000005e5054001980000001f0640018f00000000045100190000000107000367000010fd0000613d000000000807034f0000000009010019000000008a08043c0000000009a90436000000000049004b000010f90000c13d000000000006004b000010cd0000613d000000000557034f0000000306600210000000000704043300000000076701cf000000000767022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000575019f0000000000540435000010cd0000013d000000000003004b00000c3b0000613d000005cd0030009c000010b40000213d000000200030008c000010b40000413d0000000001010433000000000001004b0000000002000039000000010200c039000000000021004b000010b40000c13d000000000001004b00000c3b0000c13d00000ca10000013d000000060200002900000007022000f900000003010000290000058301100197000300000002001d00000004022000fa000000400400043d00000024034000390000000000230435000005c3020000410000000000240435000400000004001d0000000402400039000000000012043500000000010004140000000502000029000000040020008c0000113c0000613d0000000402000029000005800020009c00000580020080410000004002200210000005800010009c0000058001008041000000c001100210000000000121019f000005c4011001c7000000050200002915fd15f30000040f0000006003100270000005800030019d00010000000103550000000100200190000011a30000613d0000000401000029000005bd0010009c000006cc0000213d0000000401000029000000400010043f0000000201000039000000000101041a000005c10200004100000000002004430000058301100197000500000001001d00000004001004430000000001000414000005800010009c0000058001008041000000c001100210000005c2011001c7000080020200003915fd15f80000040f0000000100200190000011950000613d000000000101043b000000000001004b000010b40000613d000000400300043d000000240130003900000003020000290000000000210435000005c3010000410000000001130436000200000001001d000400000003001d00000004013000390000000802000029000000000021043500000000010004140000000502000029000000040020008c000011730000613d0000000402000029000005800020009c00000580020080410000004002200210000005800010009c0000058001008041000000c001100210000000000121019f000005c4011001c7000000050200002915fd15f30000040f0000006003100270000005800030019d00010000000103550000000100200190000011bd0000613d0000000401000029000005bd0010009c000006cc0000213d0000000401000029000000400010043f0000000c010000290000000301100039000000000201041a0000000604000029000000070040006c0000000003000019000011840000213d0000000304000029000005c5034000d100000000044300d9000005c50040009c00000f1f0000c13d0000000404000029000005be0040009c000006cc0000213d00000004050000290000004004500039000000400040043f000005c004000041000000020600002900000000004604350000001a0400003900000000004504350000000b033000fa000000000023001a00000f1f0000413d0000000002230019000000000021041b00000c0d0000013d000000000001042f00000580033001970000001f0530018f0000058206300198000000400200043d000000000462001900000a0e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000119e0000c13d00000a0e0000013d00000580033001970000001f0530018f0000058206300198000000400200043d000000000462001900000a0e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000011ab0000c13d00000a0e0000013d00000580033001970000001f0530018f0000058206300198000000400200043d000000000462001900000a0e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000011b80000c13d00000a0e0000013d00000580033001970000001f0530018f0000058206300198000000400200043d000000000462001900000a0e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000011c50000c13d00000a0e0000013d0000058302200197000000000020043f000000200010043f0000000001000414000005800010009c0000058001008041000000c001100210000005ba011001c7000080100200003915fd15f80000040f0000000100200190000011d80000613d000000000101043b000000000001042d0000000001000019000015ff00010430000a000000000002000000000010043f0000000701000039000000200010043f0000000001000414000005800010009c0000058001008041000000c001100210000005ba011001c7000080100200003915fd15f80000040f0000000100200190000013250000613d000000000201043b0000000401200039000000000101041a000000ff00100190000013280000613d000a00000002001d0000000201200039000800000001001d000000000101041a000900000001001d000005b10100004100000000001004430000000001000414000005800010009c0000058001008041000000c001100210000005b2011001c70000800b0200003915fd15f80000040f0000000100200190000013270000613d000000000101043b000000090010006c0000131a0000a13d000900000001001d0000000a01000029000000000201041a000000400b00043d000005bb0100004100000000001b0435000000000100041000000583031001970000000401b00039000700000003001d000000000031043500000000010004140000058302200197000000040020008c000012130000c13d0000000003000031000000200030008c000000200400003900000000040340190000123f0000013d0000058000b0009c000005800300004100000000030b40190000004003300210000005800010009c0000058001008041000000c001100210000000000131019f000005bc011001c700060000000b001d15fd15f80000040f000000060b00002900000060031002700000058003300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b00190000122e0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b0000122a0000c13d000000000006004b0000123b0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000100000001035500000001002001900000133f0000613d0000001f01400039000000600110018f0000000002b10019000000000012004b00000000010000390000000101004039000005bd0020009c0000131f0000213d00000001001001900000131f0000c13d000000400020043f000000200030008c000013250000413d00000000030b0433000000000003004b000013170000613d0000000a010000290000000101100039000000000101041a000000000001004b000013170000613d000200000003001d000005be0020009c0000131f0000213d0000000803000029000000000303041a0000004004200039000000400040043f0000002004200039000005bf0500004100000000005404350000001e040000390000000000420435000000090330006b0000134b0000413d000600000000001d000012700000613d0000000402000039000000000402041a00000000023400a900000000033200d9000000000043004b000013390000c13d000000000002004b0000131b0000613d00060000002100ad00000006022000f9000000000012004b000013390000c13d000000400200043d000005be0020009c0000131f0000213d0000000a01000039000000000401041a0000004001200039000000400010043f0000002001200039000005c00300004100000000003104350000001a010000390000000000120435000000400500043d000500000004001d000000000004004b000013510000613d000005be0050009c0000131f0000213d0000000501000039000000000401041a0000000301000039000000000101041a000400000001001d0000000201000039000000000101041a0000004002500039000000400020043f000000200250003900000000003204350000001a020000390000000000250435000300000004001d000000000004004b000013560000613d0000058302100197000005c1010000410000000000100443000100000002001d00000004002004430000000001000414000005800010009c0000058001008041000000c001100210000005c2011001c7000080020200003915fd15f80000040f0000000100200190000013270000613d000000000101043b000000000001004b000013250000613d000000050200002900000006022000f900000004010000290000058301100197000400000002001d00000003022000fa000000400400043d00000024034000390000000000230435000005c30200004100000000002404350000000402400039000000000012043500000000010004140000000102000029000000040020008c000012c50000613d000005800040009c000005800300004100000000030440190000004003300210000005800010009c0000058001008041000000c001100210000000000131019f000005c4011001c7000300000004001d15fd15f30000040f00000003040000290000006003100270000005800030019d00010000000103550000000100200190000013670000613d000005bd0040009c0000131f0000213d000000400040043f0000000201000039000000000101041a000005c10200004100000000002004430000058301100197000300000001001d00000004001004430000000001000414000005800010009c0000058001008041000000c001100210000005c2011001c7000080020200003915fd15f80000040f0000000100200190000013270000613d000000000101043b000000000001004b000013250000613d000000400500043d000000240150003900000004020000290000000000210435000005c301000041000000000615043600000004015000390000000702000029000000000021043500000000010004140000000302000029000000040020008c000012fb0000613d000005800050009c000005800300004100000000030540190000004003300210000005800010009c0000058001008041000000c001100210000000000131019f000005c4011001c7000700000005001d000300000006001d15fd15f30000040f000000030600002900000007050000290000006003100270000005800030019d00010000000103550000000100200190000013740000613d000005bd0050009c0000131f0000213d000000400050043f0000000a010000290000000301100039000000000201041a0000000504000029000000060040006c00000000030000190000130a0000213d0000000404000029000005c5034000d100000000044300d9000005c50040009c000013390000c13d000005be0050009c0000131f0000213d0000004004500039000000400040043f000005c00400004100000000004604350000001a04000039000000000045043500000002033000fa000000000023001a000013390000413d0000000002230019000000000021041b00000008010000290000000902000029000000000021041b000000000001042d000600000000001d000000400200043d000005be0020009c000012730000a13d000005e101000041000000000010043f0000004101000039000000040010043f000005bc01000041000015ff000104300000000001000019000015ff00010430000000000001042f000000400100043d0000004402100039000005e203000041000000000032043500000024021000390000000b030000390000000000320435000005b4020000410000000000210435000000040210003900000020030000390000000000320435000005800010009c00000580010080410000004001100210000005b5011001c7000015ff00010430000005e101000041000000000010043f0000001101000039000000040010043f000005bc01000041000015ff000104300000001f0530018f0000058206300198000000400200043d0000000004620019000013800000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000013460000c13d000013800000013d000000400300043d000a00000003001d000005b401000041000000000013043500000004013000390000135c0000013d000005b40100004100000000001504350000000401500039000a00000005001d0000135c0000013d000000400200043d000a00000002001d000005b40100004100000000001204350000000401200039000000000205001915fd15bb0000040f0000000a020000290000000001210049000005800010009c00000580010080410000006001100210000005800020009c00000580020080410000004002200210000000000121019f000015ff0001043000000580033001970000001f0530018f0000058206300198000000400200043d0000000004620019000013800000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000136f0000c13d000013800000013d00000580033001970000001f0530018f0000058206300198000000400200043d0000000004620019000013800000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000137c0000c13d000000000005004b0000138d0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000005800020009c00000580020080410000004002200210000000000112019f000015ff00010430000c0000000000020000000601000039000000000101041a000800000001001d000000000001004b000014ef0000613d0000000001000410000705830010019b0000000002000019000013a40000013d00000009010000290000000b02000029000000000021041b0000000a020000290000000102200039000000080020006c000014ef0000813d0000000601000039000000000101041a000000000012004b000014f30000813d000a00000002001d000005d30120009a000000000101041a000000000010043f0000000701000039000000200010043f0000000001000414000005800010009c0000058001008041000000c001100210000005ba011001c7000080100200003915fd15f80000040f0000000100200190000014f00000613d000000000201043b0000000401200039000000000101041a000000ff00100190000014f90000613d000c00000002001d0000000201200039000900000001001d000000000101041a000b00000001001d000005b10100004100000000001004430000000001000414000005800010009c0000058001008041000000c001100210000005b2011001c70000800b0200003915fd15f80000040f0000000100200190000014f20000613d000000000101043b0000000b0010006c000013a00000a13d000b00000001001d0000000c01000029000000000201041a000000400a00043d000005bb0100004100000000001a04350000000401a000390000000703000029000000000031043500000000010004140000058302200197000000040020008c000013e10000c13d0000000003000031000000200030008c000000200400003900000000040340190000140c0000013d0000058000a0009c000005800300004100000000030a40190000004003300210000005800010009c0000058001008041000000c001100210000000000131019f000005bc011001c700060000000a001d15fd15f80000040f000000060a00002900000060031002700000058003300197000000200030008c00000020040000390000000004034019000000200640019000000000056a0019000013fb0000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000058004b000013f70000c13d0000001f07400190000014080000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000000000003001f00010000000103550000000100200190000015100000613d0000001f01400039000000600110018f0000000002a10019000000000012004b00000000010000390000000101004039000005bd0020009c000014e90000213d0000000100100190000014e90000c13d000000400020043f000000200030008c000014f00000413d00000000030a0433000000000003004b0000139d0000613d0000000c010000290000000101100039000000000101041a000000000001004b0000139d0000613d000200000003001d000005be0020009c000014e90000213d0000000903000029000000000303041a0000004004200039000000400040043f0000002004200039000005bf0500004100000000005404350000001e0400003900000000004204350000000b0330006b0000151c0000413d000600000000001d0000143d0000613d0000000402000039000000000402041a00000000023400a900000000033200d9000000000043004b0000150a0000c13d000000000002004b000014e50000613d00060000001200ad00000006022000f9000000000012004b0000150a0000c13d000000400200043d000005be0020009c000014e90000213d0000000a01000039000000000401041a0000004001200039000000400010043f0000002001200039000005c00300004100000000003104350000001a010000390000000000120435000000400500043d000500000004001d000000000004004b000015220000613d000005be0050009c000014e90000213d0000000501000039000000000401041a0000000301000039000000000101041a000400000001001d0000000201000039000000000101041a0000004002500039000000400020043f000000200250003900000000003204350000001a020000390000000000250435000300000004001d000000000004004b000015270000613d0000058302100197000005c1010000410000000000100443000100000002001d00000004002004430000000001000414000005800010009c0000058001008041000000c001100210000005c2011001c7000080020200003915fd15f80000040f0000000100200190000014f20000613d000000000101043b000000000001004b000014f00000613d000000050200002900000006022000f900000004010000290000058301100197000400000002001d00000003022000fa000000400400043d00000024034000390000000000230435000005c30200004100000000002404350000000402400039000000000012043500000000010004140000000102000029000000040020008c000014920000613d000005800040009c000005800300004100000000030440190000004003300210000005800010009c0000058001008041000000c001100210000000000131019f000005c4011001c7000300000004001d15fd15f30000040f00000003040000290000006003100270000005800030019d00010000000103550000000100200190000015380000613d000005bd0040009c000014e90000213d000000400040043f0000000201000039000000000101041a000005c10200004100000000002004430000058301100197000300000001001d00000004001004430000000001000414000005800010009c0000058001008041000000c001100210000005c2011001c7000080020200003915fd15f80000040f0000000100200190000014f20000613d000000000101043b000000000001004b000014f00000613d000000400500043d000000240150003900000004020000290000000000210435000005c301000041000000000615043600000004015000390000000702000029000000000021043500000000010004140000000302000029000000040020008c000014c80000613d000005800050009c000005800300004100000000030540190000004003300210000005800010009c0000058001008041000000c001100210000000000131019f000005c4011001c7000300000005001d000100000006001d15fd15f30000040f000000010600002900000003050000290000006003100270000005800030019d00010000000103550000000100200190000015450000613d000005bd0050009c000014e90000213d000000400050043f0000000c010000290000000301100039000000000201041a0000000504000029000000060040006c0000000003000019000014d70000213d0000000404000029000005c5034000d100000000044300d9000005c50040009c0000150a0000c13d000005be0050009c000014e90000213d0000004004500039000000400040043f000005c00400004100000000004604350000001a04000039000000000045043500000002033000fa000000000023001a0000150a0000413d0000000002230019000000000021041b0000139d0000013d000600000000001d000000400200043d000005be0020009c000014400000a13d000005e101000041000000000010043f0000004101000039000000040010043f000005bc01000041000015ff00010430000000000001042d0000000001000019000015ff00010430000000000001042f000005e101000041000000000010043f0000003201000039000000040010043f000005bc01000041000015ff00010430000000400100043d0000004402100039000005e203000041000000000032043500000024021000390000000b030000390000000000320435000005b4020000410000000000210435000000040210003900000020030000390000000000320435000005800010009c00000580010080410000004001100210000005b5011001c7000015ff00010430000005e101000041000000000010043f0000001101000039000000040010043f000005bc01000041000015ff000104300000001f0530018f0000058206300198000000400200043d0000000004620019000015510000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000015170000c13d000015510000013d000000400300043d000c00000003001d000005b401000041000000000013043500000004013000390000152d0000013d000005b40100004100000000001504350000000401500039000c00000005001d0000152d0000013d000000400200043d000c00000002001d000005b40100004100000000001204350000000401200039000000000205001915fd15bb0000040f0000000c020000290000000001210049000005800010009c00000580010080410000006001100210000005800020009c00000580020080410000004002200210000000000121019f000015ff0001043000000580033001970000001f0530018f0000058206300198000000400200043d0000000004620019000015510000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000015400000c13d000015510000013d00000580033001970000001f0530018f0000058206300198000000400200043d0000000004620019000015510000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000154d0000c13d000000000005004b0000155e0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000005800020009c00000580020080410000004002200210000000000112019f000015ff00010430000000000001004b0000156c0000613d000000000301001900000000011200a900000000033100d9000000000023004b0000156e0000c13d000000000001042d0000000001000019000000000001042d000005e101000041000000000010043f0000001101000039000000040010043f000005bc01000041000015ff00010430000000400100043d000005e60010009c0000157f0000813d0000004002100039000000400020043f0000002002100039000005c00300004100000000003204350000001a020000390000000000210435000000000001042d000005e101000041000000000010043f0000004101000039000000040010043f000005bc01000041000015ff00010430000000400100043d000005e60010009c000015900000813d0000004002100039000000400020043f0000002002100039000005bf0300004100000000003204350000001e020000390000000000210435000000000001042d000005e101000041000000000010043f0000004101000039000000040010043f000005bc01000041000015ff0001043000010000000000020000000003020019000000400200043d000005e60020009c000015a50000813d0000004004200039000000400040043f0000002004200039000005bf0500004100000000005404350000001e040000390000000000420435000000000131004b000015ab0000413d000000000001042d000005e101000041000000000010043f0000004101000039000000040010043f000005bc01000041000015ff00010430000000400300043d000100000003001d000005b4010000410000000000130435000000040130003915fd15bb0000040f00000001020000290000000001210049000005800010009c00000580010080410000006001100210000005800020009c00000580020080410000004002200210000000000121019f000015ff0001043000000020030000390000000004310436000000003202043400000000002404350000004001100039000000000002004b000015ca0000613d000000000400001900000000054100190000000006430019000000000606043300000000006504350000002004400039000000000024004b000015c30000413d000000000321001900000000000304350000001f02200039000005e5022001970000000001210019000000000001042d0001000000000002000000000121004b000015d40000413d000000000001042d000000400200043d000100000002001d000005b40100004100000000001204350000000401200039000000000203001915fd15bb0000040f00000001020000290000000001210049000005800010009c00000580010080410000006001100210000005800020009c00000580020080410000004002200210000000000121019f000015ff00010430000000000001042f0000000001000414000005800010009c0000058001008041000000c001100210000005ba011001c7000080100200003915fd15f80000040f0000000100200190000015f10000613d000000000101043b000000000001042d0000000001000019000015ff00010430000015f6002104210000000102000039000000000001042d0000000002000019000000000001042d000015fb002104230000000102000039000000000001042d0000000002000019000000000001042d000015fd00000432000015fe0001042e000015ff0001043000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e000000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000064482f78000000000000000000000000000000000000000000000000000000008dbb1e3900000000000000000000000000000000000000000000000000000000e2bbb15700000000000000000000000000000000000000000000000000000000f2fde38a00000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000f35e4a6e00000000000000000000000000000000000000000000000000000000e2bbb15800000000000000000000000000000000000000000000000000000000ebc5163b00000000000000000000000000000000000000000000000000000000cbd258b400000000000000000000000000000000000000000000000000000000cbd258b500000000000000000000000000000000000000000000000000000000d49e77cd000000000000000000000000000000000000000000000000000000008dbb1e3a0000000000000000000000000000000000000000000000000000000093f1a40b00000000000000000000000000000000000000000000000000000000715018a5000000000000000000000000000000000000000000000000000000008d88a90d000000000000000000000000000000000000000000000000000000008d88a90e000000000000000000000000000000000000000000000000000000008da5cb5b00000000000000000000000000000000000000000000000000000000715018a6000000000000000000000000000000000000000000000000000000008aa285500000000000000000000000000000000000000000000000000000000064482f79000000000000000000000000000000000000000000000000000000006827e7640000000000000000000000000000000000000000000000000000000069883b4e000000000000000000000000000000000000000000000000000000002b550ba0000000000000000000000000000000000000000000000000000000004f6755ae000000000000000000000000000000000000000000000000000000005312ea8d000000000000000000000000000000000000000000000000000000005312ea8e00000000000000000000000000000000000000000000000000000000630b5ba1000000000000000000000000000000000000000000000000000000004f6755af0000000000000000000000000000000000000000000000000000000051eb05a6000000000000000000000000000000000000000000000000000000002b550ba100000000000000000000000000000000000000000000000000000000441a3e700000000000000000000000000000000000000000000000000000000048cd4cb10000000000000000000000000000000000000000000000000000000017caf6f0000000000000000000000000000000000000000000000000000000001eaaa044000000000000000000000000000000000000000000000000000000001eaaa04500000000000000000000000000000000000000000000000000000000226598f50000000000000000000000000000000000000000000000000000000017caf6f1000000000000000000000000000000000000000000000000000000001c75b6b200000000000000000000000000000000000000000000000000000000081e3eda000000000000000000000000000000000000000000000000000000000ba84cd2000000000000000000000000000000000000000000000000000000001526fe2742cbb15ccdc3cad6266b0e7a08c0454b23bf29dc2df74b6f3c209e9336465bd102000002000000000000000000000000000000040000000000000000000000004661726d2068617320737461727465640000000000000000000000000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000004f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000008000000000000000000000000000000000000000000000000000000020000000800000000000000000020000000000000000000000000000000000004000000000000000000000000070a08231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffbf536166654d6174683a207375627472616374696f6e206f766572666c6f770000536166654d6174683a206469766973696f6e206279207a65726f0000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000040c10f1900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004400000000000000000000000000000000000000000000000000000000000000000000d3c21bcecceda1000000a9059cbb00000000000000000000000000000000000000000000000000000000696c656400000000000000000000000000000000000000000000000000000000736166655361706c696e675472616e736665723a207472616e73666572206661000000000000000000000000000000000000008400000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff5f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65647fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff020000000000000000000000000000000000002000000000000000000000000090890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a1500000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000618c54559e94f1499a808aad71ee8729f8e74e8c48e979616328ce493a1a52e709addddcec1d7ba6ad726df49aeea3e93fb0c1037d551236841a60c0c883f2c1000000000000000000000000000000000000000000000000ffffffffffffff7fbb757047c2b5f3974fe26b7c10f732e7bce710b0952a71082702781e62ae05956f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000f279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b56877697468647261773a206e6f7420676f6f6400000000000000000000000000005265656e7472616e637947756172643a207265656e7472616e742063616c6c0000000000000000000000000000000000000000640000008000000000000000006e6f6e4475706c6963617465643a206475706c696361746564000000000000004d757374206b656570206665657320617420313025206f72206c65737300000000000000000000000000000000000000000000a00000008000000000000000004f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65724e487b7100000000000000000000000000000000000000000000000000000000496e76616c696420706964000000000000000000000000000000000000000000e2492e003bbe8afa53088b406f0c1cb5d9e280370fc72a74cf116ffd343c4053ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000000000000000000000000000000000ffffffffffffffc00000000000000000000000000000000000000000000000000000000000000000e8b4eeda16c0ffe5ff6f79af33c51702a4083ba9b071c703df5c1ba1e36a265f
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000d1c5057cc2154b67d47db8402fd919a8e6c37f4d000000000000000000000000fbdb5a61ca278ba318a1131c832b1a24292ab0490000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007dbb8
-----Decoded View---------------
Arg [0] : _sapling (address): 0xd1c5057CC2154B67D47db8402fD919A8e6c37F4d
Arg [1] : _devaddr (address): 0xfbdB5A61ca278BA318A1131C832b1A24292aB049
Arg [2] : _saplingPerBlock (uint256): 0
Arg [3] : _startBlock (uint256): 515000
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000d1c5057cc2154b67d47db8402fd919a8e6c37f4d
Arg [1] : 000000000000000000000000fbdb5a61ca278ba318a1131c832b1a24292ab049
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [3] : 000000000000000000000000000000000000000000000000000000000007dbb8
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.