Source Code
Overview
SOPH Balance
0 SOPH
More Info
ContractCreator
Multichain Info
N/A
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer Ownersh... | 88080 | 20 days ago | IN | 0 SOPH | 0.1892431 |
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 Name:
MasterMinter
Compiler Version
v0.6.12+commit.27d51765
ZkSolc Version
v1.3.19
Optimization Enabled:
Yes with 200 runs
Other Settings:
istanbul EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
/** * Copyright 2023 Circle Internet Financial, LTD. All rights reserved. * * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ pragma solidity 0.6.12; import { MintController } from "./MintController.sol"; /** * @title MasterMinter * @notice MasterMinter uses multiple controllers to manage minters for a * contract that implements the MinterManagerInterface. * @dev MasterMinter inherits all its functionality from MintController. */ contract MasterMinter is MintController { constructor(address _minterManager) public MintController(_minterManager) {} }
/** * Copyright 2023 Circle Internet Financial, LTD. All rights reserved. * * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ pragma solidity 0.6.12; import { Controller } from "./Controller.sol"; import { MinterManagementInterface } from "./MinterManagementInterface.sol"; import { SafeMath } from "@openzeppelin/contracts/math/SafeMath.sol"; // solhint-disable func-name-mixedcase /** * @title MintController * @dev The MintController contract manages minters for a contract that * implements the MinterManagerInterface. It lets the owner designate certain * addresses as controllers, and these controllers then manage the * minters by adding and removing minters, as well as modifying their minting * allowance. A controller may manage exactly one minter, but the same minter * address may be managed by multiple controllers. * MintController inherits from the Controller contract. It treats the * Controller workers as minters. */ contract MintController is Controller { using SafeMath for uint256; /** * @dev MintController calls the minterManager to execute/record minter * management tasks, as well as to query the status of a minter address. */ MinterManagementInterface internal minterManager; event MinterManagerSet( address indexed _oldMinterManager, address indexed _newMinterManager ); event MinterConfigured( address indexed _msgSender, address indexed _minter, uint256 _allowance ); event MinterRemoved(address indexed _msgSender, address indexed _minter); event MinterAllowanceIncremented( address indexed _msgSender, address indexed _minter, uint256 _increment, uint256 _newAllowance ); event MinterAllowanceDecremented( address indexed msgSender, address indexed minter, uint256 decrement, uint256 newAllowance ); /** * @notice Initializes the minterManager. * @param _minterManager The address of the minterManager contract. */ constructor(address _minterManager) public { minterManager = MinterManagementInterface(_minterManager); } /** * @notice gets the minterManager */ function getMinterManager() external view returns (MinterManagementInterface) { return minterManager; } // onlyOwner functions /** * @notice Sets the minterManager. * @param _newMinterManager The address of the new minterManager contract. */ function setMinterManager(address _newMinterManager) public onlyOwner { emit MinterManagerSet(address(minterManager), _newMinterManager); minterManager = MinterManagementInterface(_newMinterManager); } // onlyController functions /** * @notice Removes the controller's own minter. */ function removeMinter() public onlyController returns (bool) { address minter = controllers[msg.sender]; emit MinterRemoved(msg.sender, minter); return minterManager.removeMinter(minter); } /** * @notice Enables the minter and sets its allowance. * @param _newAllowance New allowance to be set for minter. */ function configureMinter(uint256 _newAllowance) public onlyController returns (bool) { address minter = controllers[msg.sender]; emit MinterConfigured(msg.sender, minter, _newAllowance); return internal_setMinterAllowance(minter, _newAllowance); } /** * @notice Increases the minter's allowance if and only if the minter is an * active minter. * @dev An minter is considered active if minterManager.isMinter(minter) * returns true. */ function incrementMinterAllowance(uint256 _allowanceIncrement) public onlyController returns (bool) { require( _allowanceIncrement > 0, "Allowance increment must be greater than 0" ); address minter = controllers[msg.sender]; require( minterManager.isMinter(minter), "Can only increment allowance for minters in minterManager" ); uint256 currentAllowance = minterManager.minterAllowance(minter); uint256 newAllowance = currentAllowance.add(_allowanceIncrement); emit MinterAllowanceIncremented( msg.sender, minter, _allowanceIncrement, newAllowance ); return internal_setMinterAllowance(minter, newAllowance); } /** * @notice decreases the minter allowance if and only if the minter is * currently active. The controller can safely send a signed * decrementMinterAllowance() transaction to a minter and not worry * about it being used to undo a removeMinter() transaction. */ function decrementMinterAllowance(uint256 _allowanceDecrement) public onlyController returns (bool) { require( _allowanceDecrement > 0, "Allowance decrement must be greater than 0" ); address minter = controllers[msg.sender]; require( minterManager.isMinter(minter), "Can only decrement allowance for minters in minterManager" ); uint256 currentAllowance = minterManager.minterAllowance(minter); uint256 actualAllowanceDecrement = ( currentAllowance > _allowanceDecrement ? _allowanceDecrement : currentAllowance ); uint256 newAllowance = currentAllowance.sub(actualAllowanceDecrement); emit MinterAllowanceDecremented( msg.sender, minter, actualAllowanceDecrement, newAllowance ); return internal_setMinterAllowance(minter, newAllowance); } // Internal functions /** * @notice Uses the MinterManagementInterface to enable the minter and * set its allowance. * @param _minter Minter to set new allowance of. * @param _newAllowance New allowance to be set for minter. */ function internal_setMinterAllowance(address _minter, uint256 _newAllowance) internal returns (bool) { return minterManager.configureMinter(_minter, _newAllowance); } }
/** * Copyright 2023 Circle Internet Financial, LTD. All rights reserved. * * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ pragma solidity 0.6.12; import { Ownable } from "../v1/Ownable.sol"; /** * @title Controller * @notice Generic implementation of the owner-controller-worker model. * One owner manages many controllers. Each controller manages one worker. * Workers may be reused across different controllers. */ contract Controller is Ownable { /** * @dev A controller manages a single worker address. * controllers[controller] = worker */ mapping(address => address) internal controllers; event ControllerConfigured( address indexed _controller, address indexed _worker ); event ControllerRemoved(address indexed _controller); /** * @notice Ensures that caller is the controller of a non-zero worker * address. */ modifier onlyController() { require( controllers[msg.sender] != address(0), "The value of controllers[msg.sender] must be non-zero" ); _; } /** * @notice Gets the worker at address _controller. */ function getWorker(address _controller) external view returns (address) { return controllers[_controller]; } // onlyOwner functions /** * @notice Configure a controller with the given worker. * @param _controller The controller to be configured with a worker. * @param _worker The worker to be set for the newly configured controller. * _worker must not be a non-zero address. To disable a worker, * use removeController instead. */ function configureController(address _controller, address _worker) public onlyOwner { require( _controller != address(0), "Controller must be a non-zero address" ); require(_worker != address(0), "Worker must be a non-zero address"); controllers[_controller] = _worker; emit ControllerConfigured(_controller, _worker); } /** * @notice disables a controller by setting its worker to address(0). * @param _controller The controller to disable. */ function removeController(address _controller) public onlyOwner { require( _controller != address(0), "Controller must be a non-zero address" ); require( controllers[_controller] != address(0), "Worker must be a non-zero address" ); controllers[_controller] = address(0); emit ControllerRemoved(_controller); } }
/** * Copyright 2023 Circle Internet Financial, LTD. All rights reserved. * * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ pragma solidity 0.6.12; /** * @dev A contract that implements the MinterManagementInterface has external * functions for adding and removing minters and modifying their allowances. * An example is the FiatTokenV1 contract. */ interface MinterManagementInterface { function isMinter(address _account) external view returns (bool); function minterAllowance(address _minter) external view returns (uint256); function configureMinter(address _minter, uint256 _minterAllowedAmount) external returns (bool); function removeMinter(address _minter) external returns (bool); }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; /** * @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, with an overflow flag. * * _Available since v3.4._ */ function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } /** * @dev Returns the substraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b > a) return (false, 0); return (true, a - b); } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, 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 (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b == 0) return (false, 0); return (true, a / b); } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b == 0) return (false, 0); return (true, a % b); } /** * @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) { require(b <= a, "SafeMath: subtraction overflow"); return a - b; } /** * @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) { 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, reverting 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) { require(b > 0, "SafeMath: division by zero"); return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting 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) { require(b > 0, "SafeMath: modulo by zero"); return a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * 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); return a - b; } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on * division by zero. The result is rounded towards zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryDiv}. * * 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); return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * 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; } }
/** * SPDX-License-Identifier: MIT * * Copyright (c) 2018 zOS Global Limited. * Copyright (c) 2018-2020 CENTRE SECZ * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ pragma solidity 0.6.12; /** * @notice The Ownable contract has an owner address, and provides basic * authorization control functions * @dev Forked from https://github.com/OpenZeppelin/openzeppelin-labs/blob/3887ab77b8adafba4a26ace002f3a684c1a3388b/upgradeability_ownership/contracts/ownership/Ownable.sol * Modifications: * 1. Consolidate OwnableStorage into this contract (7/13/18) * 2. Reformat, conform to Solidity 0.6 syntax, and add error messages (5/13/20) * 3. Make public functions external (5/27/20) */ contract Ownable { // Owner of the contract address private _owner; /** * @dev Event to show ownership has been transferred * @param previousOwner representing the address of the previous owner * @param newOwner representing the address of the new owner */ event OwnershipTransferred(address previousOwner, address newOwner); /** * @dev The constructor sets the original owner of the contract to the sender account. */ constructor() public { setOwner(msg.sender); } /** * @dev Tells the address of the owner * @return the address of the owner */ function owner() external view returns (address) { return _owner; } /** * @dev Sets a new owner address */ function setOwner(address newOwner) internal { _owner = newOwner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == _owner, "Ownable: caller is not the owner"); _; } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) external onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); setOwner(newOwner); } }
{ "viaIR": false, "codegen": "yul", "remappings": [ "forge-std/=lib/forge-std/src/", "@openzeppelin/=node_modules/@openzeppelin/", "@ensdomains/=node_modules/@ensdomains/", "@solidity-parser/=node_modules/prettier-plugin-solidity/node_modules/@solidity-parser/", "ds-test/=lib/forge-std/lib/ds-test/src/", "eth-gas-reporter/=node_modules/eth-gas-reporter/", "hardhat/=node_modules/hardhat/" ], "evmVersion": "istanbul", "outputSelection": { "*": { "*": [ "abi" ] } }, "optimizer": { "enabled": true, "mode": "3", "fallback_to_optimizing_for_size": false, "disable_system_request_memoization": true }, "metadata": {}, "libraries": { "contracts/util/SignatureChecker.sol": { "SignatureChecker": "0xB24D21E56720F618067339C22A7A8b44086a3910" } }, "detectMissingLibraries": false, "enableEraVMExtensions": false, "forceEVMLA": false }
[{"inputs":[{"internalType":"address","name":"_minterManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_controller","type":"address"},{"indexed":true,"internalType":"address","name":"_worker","type":"address"}],"name":"ControllerConfigured","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_controller","type":"address"}],"name":"ControllerRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"msgSender","type":"address"},{"indexed":true,"internalType":"address","name":"minter","type":"address"},{"indexed":false,"internalType":"uint256","name":"decrement","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newAllowance","type":"uint256"}],"name":"MinterAllowanceDecremented","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_msgSender","type":"address"},{"indexed":true,"internalType":"address","name":"_minter","type":"address"},{"indexed":false,"internalType":"uint256","name":"_increment","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_newAllowance","type":"uint256"}],"name":"MinterAllowanceIncremented","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_msgSender","type":"address"},{"indexed":true,"internalType":"address","name":"_minter","type":"address"},{"indexed":false,"internalType":"uint256","name":"_allowance","type":"uint256"}],"name":"MinterConfigured","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_oldMinterManager","type":"address"},{"indexed":true,"internalType":"address","name":"_newMinterManager","type":"address"}],"name":"MinterManagerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_msgSender","type":"address"},{"indexed":true,"internalType":"address","name":"_minter","type":"address"}],"name":"MinterRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address","name":"_controller","type":"address"},{"internalType":"address","name":"_worker","type":"address"}],"name":"configureController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newAllowance","type":"uint256"}],"name":"configureMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_allowanceDecrement","type":"uint256"}],"name":"decrementMinterAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getMinterManager","outputs":[{"internalType":"contract MinterManagementInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_controller","type":"address"}],"name":"getWorker","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_allowanceIncrement","type":"uint256"}],"name":"incrementMinterAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_controller","type":"address"}],"name":"removeController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newMinterManager","type":"address"}],"name":"setMinterManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
9c4d535b0000000000000000000000000000000000000000000000000000000000000000010001e955a554c5a49dce15227002bcedc73cc8bce9d30a02a921f53f1e071800000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000da09683d08861e700756ed82438f9a5c92d22c55
Deployed Bytecode
0x000100000000000200070000000000020000008003000039000000400030043f000000000400041600000000030100190000006003300270000001b00330019700000001022001900000001c0000c13d000000000204004b000005f40000c13d000000040230008c000005f40000413d000000000401043b000000e002400270000001b40440009c0000004f0000813d000001d10420009c000000f10000a13d000001d20420009c000001190000613d000001d30120009c0000013d0000613d000001d40120009c000005f40000c13d0000000201000039000001710000013d000000000204004b000005f40000c13d0000001f0230018f00000005043002720000002a0000613d00000000050000190000000506500210000000000761034f000000000707043b000000800660003900000000007604350000000105500039000000000645004b000000220000413d000000000502004b000000390000613d0000000504400210000000000141034f00000003022002100000008004400039000000000504043300000000052501cf000000000525022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000151019f00000000001404350000008001300039000000400010043f000000200130008c000005f40000413d0000000001000411000001b101100197000000000200041a000001b202200197000000000112019f000000800200043d000000000010041b000001b1012001970000000202000039000000000302041a000001b203300197000000000113019f000000000012041b000000200100003900000100001004430000012000000443000001b301000041000006bc0001042e000001b50420009c000000c10000213d000001b90420009c000001660000613d000001ba0420009c000001760000613d000001bb0220009c000005f40000c13d000000240230008a000000200300008a000000000232004b000005f40000813d0000000401100370000000000101043b000700000001001d0000000001000411000001b101100197000600000001001d00000000001004350000000101000039000000200010043f000001b0010000410000000002000414000001b00320009c0000000002018019000000c001200210000001bc011001c7000080100200003906bb06b60000040f0000000102200190000005f40000613d000000000101043b000000000101041a000001b101100198000001a50000613d000001b0030000410000000001000414000001b00210009c0000000001038019000000c001100210000001bc011001c7000080100200003906bb06b60000040f0000000102200190000005f40000613d000000000101043b000000000101041a000000400200043d00000007030000290000000000320435000000400300043d0000000002320049000001b00430009c000001b005000041000000000305801900000040033002100000002002200039000001b00420009c00000000020580190000006002200210000000000232019f0000000003000414000001b00430009c0000000003058019000000c003300210000000000232019f000001b106100197000001bd012001c70000800d020000390000000303000039000001cb040000410000000605000029000600000006001d06bb06b10000040f0000000101200190000005f40000613d0000000201000039000000000101041a000000400400043d000000240240003900000007030000290000000000320435000001cc020000410000000000240435000500000004001d000000040240003900000006030000290000000000320435000000400200043d000700000002001d000001c9020000410000000000200439000001b101100197000600000001001d0000000400100443000001b0010000410000000002000414000001b00320009c0000000002018019000000c001200210000001ca011001c7000080020200003906bb06b60000040f0000000102200190000005f60000613d000000000101043b000000000101004b000005f40000613d00000000010004140000000602000029000000040320008c000003be0000c13d0000000003000031000003f40000013d000001b60420009c000001910000613d000001b70420009c000001c00000613d000001b80220009c000005f40000c13d000000240230008a000000200300008a000000000232004b000005f40000813d000000000200041a0000000003000411000000000223013f0000000401100370000000000101043b000001b103100197000001b101200198000001d90000c13d000000000103004b000001870000613d000700000003001d00000000003004350000000101000039000000200010043f000001b0010000410000000002000414000001b00320009c0000000002018019000000c001200210000001bc011001c7000080100200003906bb06b60000040f0000000102200190000005f40000613d000000000101043b000000000101041a000001b101100198000002cd0000c13d000000400100043d0000006402100039000001bf0300004100000000003204350000004402100039000001c003000041000000000032043500000024021000390000002103000039000001ae0000013d000001d50420009c0000013f0000613d000001d60220009c000005f40000c13d000000240230008a000000200300008a000000000232004b000005f40000813d000000000200041a0000000003000411000000000223013f0000000401100370000000000101043b000001b106100197000001b101200198000001d90000c13d0000000201000039000600000001001d000000000201041a000001b0010000410000000003000414000001b00430009c0000000003018019000000c001300210000001e0011001c7000001b1052001970000800d020000390000000303000039000001e104000041000700000006001d06bb06b10000040f0000000101200190000005f40000613d0000000603000029000000000103041a000001b20110019700000007011001af000000000013041b0000000001000019000006bc0001042e000000240230008a000000200300008a000000000232004b000005f40000813d0000000401100370000000000101043b000700000001001d0000000001000411000001b101100197000600000001001d00000000001004350000000101000039000000200010043f000001b0010000410000000002000414000001b00320009c0000000002018019000000c001200210000001bc011001c7000080100200003906bb06b60000040f0000000102200190000005f40000613d000000000101043b000000000101041a000001b101100198000001a50000613d000000070100006b000002480000c13d000000400100043d0000006402100039000001dc0300004100000000003204350000004402100039000001dd03000041000001620000013d000000000100041a000001720000013d000000240230008a000000200300008a000000000232004b000005f40000813d0000000401100370000000000101043b000700000001001d0000000001000411000001b101100197000600000001001d00000000001004350000000101000039000000200010043f000001b0010000410000000002000414000001b00320009c0000000002018019000000c001200210000001bc011001c7000080100200003906bb06b60000040f0000000102200190000005f40000613d000000000101043b000000000101041a000001b101100198000001a50000613d000000070100006b000002780000c13d000000400100043d0000006402100039000001dc0300004100000000003204350000004402100039000001e503000041000000000032043500000024021000390000002a03000039000001ae0000013d000000240230008a000000200300008a000000000232004b000005f40000813d0000000401100370000000000101043b000001b10110019700000000001004350000000101000039000000200010043f06bb06a30000040f000000000101041a000001b101100197000000800010043f000001d001000041000006bc0001042e000000440230008a000000400300008a000000000232004b000005f40000813d000000000200041a0000000003000411000000000223013f0000002403100370000000000303043b000001b1033001970000000401100370000000000101043b000001b104100197000001b101200198000001d90000c13d000000000104004b000002250000c13d000001c101000041000000800010043f0000002001000039000000840010043f0000002501000039000000a40010043f000001ce01000041000000c40010043f000001cf01000041000002300000013d0000000001000411000001b101100197000700000001001d00000000001004350000000101000039000000200010043f000001b0010000410000000002000414000001b00320009c0000000002018019000000c001200210000001bc011001c7000080100200003906bb06b60000040f0000000102200190000005f40000613d000000000101043b000000000101041a000001b101100198000001e20000c13d000000400100043d0000006402100039000001e60300004100000000003204350000004402100039000001e7030000410000000000320435000000240210003900000035030000390000000000320435000001c1020000410000000000210435000000040210003900000020030000390000000000320435000000400200043d00000000012100490000008401100039000001b003000041000001b00410009c0000000001038019000001b00420009c000000000203801900000040022002100000006001100210000000000121019f000006bd00010430000000240230008a000000200300008a000000000232004b000005f40000813d0000000401100370000000000101043b000001b1031001970000000001000411000001b101100197000000000200041a000001b102200197000000000221004b000001d90000c13d000000000203004b000002330000c13d000001c101000041000000800010043f0000002001000039000000840010043f0000002601000039000000a40010043f000001c401000041000000c40010043f000001c501000041000002300000013d000001c101000041000000800010043f0000002001000039000000840010043f000000a40010043f000001de01000041000000c40010043f000001df01000041000006bd00010430000001b0030000410000000001000414000001b00210009c0000000001038019000000c001100210000001bc011001c7000080100200003906bb06b60000040f0000000102200190000005f40000613d000000000101043b000000000201041a000000400100043d0000000003000414000001b00430009c000001b0050000410000000003058019000001b00410009c00000000010580190000004001100210000000c003300210000000000113019f000001bd011001c7000001b1062001970000800d020000390000000303000039000001c7040000410000000705000029000700000006001d06bb06b10000040f0000000101200190000005f40000613d0000000201000039000000000101041a000000400300043d000001c8020000410000000000230435000500000003001d000000040230003900000007030000290000000000320435000000400200043d000700000002001d000001c9020000410000000000200439000001b101100197000600000001001d0000000400100443000001b0010000410000000002000414000001b00320009c0000000002018019000000c001200210000001ca011001c7000080020200003906bb06b60000040f0000000102200190000005f60000613d000000000101043b000000000101004b000005f40000613d00000000010004140000000602000029000000040320008c000002ef0000c13d0000000003000031000003250000013d000000000103004b000002a80000c13d000001c101000041000000800010043f0000002001000039000000840010043f0000002101000039000000a40010043f000001c001000041000000c40010043f000001bf01000041000000e40010043f000001c601000041000006bd00010430000000800010043f000700000003001d000000a00030043f000001b0010000410000000002000414000001b00320009c0000000002018019000000c001200210000001c2011001c70000800d020000390000000103000039000001c30400004106bb06b10000040f0000000101200190000005f40000613d000000000100041a000001b20110019700000007011001af000000000010041b0000000001000019000006bc0001042e000001b0030000410000000001000414000001b00210009c0000000001038019000000c001100210000001bc011001c7000080100200003906bb06b60000040f0000000102200190000005f40000613d0000000202000039000100000002001d000000000202041a000000000101043b000000000101041a000000400400043d000001d7030000410000000000340435000001b103100197000300000004001d0000000401400039000200000003001d0000000000310435000000400100043d000500000001001d000001c9010000410000000000100439000001b101200197000400000001001d00000004001004430000000001000414000001b00210009c000001b001008041000000c001100210000001ca011001c7000080020200003906bb06b60000040f0000000102200190000005f60000613d000000000101043b000000000101004b000005f40000613d00000000010004140000000402000029000000040320008c000003280000c13d00000000030000310000035e0000013d000001b0030000410000000001000414000001b00210009c0000000001038019000000c001100210000001bc011001c7000080100200003906bb06b60000040f0000000102200190000005f40000613d0000000202000039000100000002001d000000000202041a000000000101043b000000000101041a000000400400043d000001d7030000410000000000340435000001b103100197000300000004001d0000000401400039000200000003001d0000000000310435000000400100043d000500000001001d000001c9010000410000000000100439000001b101200197000400000001001d00000004001004430000000001000414000001b00210009c000001b001008041000000c001100210000001ca011001c7000080020200003906bb06b60000040f0000000102200190000005f60000613d000000000101043b000000000101004b000005f40000613d00000000010004140000000402000029000000040320008c000003730000c13d0000000003000031000003a90000013d000700000003001d00000000004004350000000101000039000000200010043f000001b0030000410000000001000414000001b00210009c0000000001038019000000c001100210000001bc011001c70000801002000039000600000004001d06bb06b60000040f0000000102200190000005f40000613d000000000101043b000000000201041a000001b2022001970000000706000029000000000262019f000000000021041b000000400100043d0000000002000414000001b00320009c000001b0040000410000000002048019000001b00310009c00000000010480190000004001100210000000c002200210000000000112019f000001bd011001c70000800d020000390000000303000039000001cd040000410000000605000029000002ea0000013d000001b0030000410000000001000414000001b00210009c0000000001038019000000c001100210000001bc011001c7000080100200003906bb06b60000040f0000000102200190000005f40000613d000000000101043b000000000201041a000001b202200197000000000021041b000000400100043d0000000002000414000001b00320009c000001b0040000410000000002048019000001b00310009c00000000010480190000004001100210000000c002200210000000000112019f000001bd011001c70000800d020000390000000203000039000001be04000041000000070500002906bb06b10000040f0000000101200190000005f40000613d0000000001000019000006bc0001042e000000070500002900000005035000690000002406300039000001b003000041000001b00450009c000000000403001900000000040540190000004004400210000001b00560009c00000000060380190000006005600210000000000545019f000001b00410009c0000000001038019000000c001100210000000000151019f06bb06b10000040f000000070900002900000000030100190000006003300270000001b003300197000000200430008c000000000503001900000020050080390000001f0450018f0000000505500272000003130000613d000000000600001900000005076002100000000008790019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000030b0000413d000000000604004b000003220000613d0000000505500210000000000651034f00000000055900190000000304400210000000000705043300000000074701cf000000000747022f000000000606043b0000010004400089000000000646022f00000000044601cf000000000474019f0000000000450435000000000003001f0000000102200190000004080000613d000000200130008c000005f40000413d000003f60000013d000000050500002900000003035000690000002406300039000001b003000041000001b00450009c000000000403001900000000040540190000004004400210000001b00560009c00000000060380190000006005600210000000000545019f000001b00410009c0000000001038019000000c001100210000000000151019f06bb06b60000040f000000050900002900000000030100190000006003300270000001b003300197000000200430008c000000000503001900000020050080390000001f0450018f00000005055002720000034c0000613d000000000600001900000005076002100000000008790019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000003440000413d000000000604004b0000035b0000613d0000000505500210000000000651034f00000005055000290000000304400210000000000705043300000000074701cf000000000747022f000000000606043b0000010004400089000000000646022f00000000044601cf000000000474019f0000000000450435000000000003001f0000000102200190000004230000613d000000200130008c000005f40000413d000000400100043d000500240010003d00000004021000390000000003010433000000000303004b000004740000c13d000001c1030000410000000000310435000000200300003900000000003204350000003902000039000000050300002900000000002304350000006402100039000001da0300004100000000003204350000004402100039000001db03000041000001b30000013d000000050500002900000003035000690000002406300039000001b003000041000001b00450009c000000000403001900000000040540190000004004400210000001b00560009c00000000060380190000006005600210000000000545019f000001b00410009c0000000001038019000000c001100210000000000151019f06bb06b60000040f000000050900002900000000030100190000006003300270000001b003300197000000200430008c000000000503001900000020050080390000001f0450018f0000000505500272000003970000613d000000000600001900000005076002100000000008790019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000038f0000413d000000000604004b000003a60000613d0000000505500210000000000651034f00000005055000290000000304400210000000000705043300000000074701cf000000000747022f000000000606043b0000010004400089000000000646022f00000000044601cf000000000474019f0000000000450435000000000003001f00000001022001900000043e0000613d000000200130008c000005f40000413d000000400100043d000500240010003d00000004021000390000000003010433000000000303004b000004940000c13d000001c1030000410000000000310435000000200300003900000000003204350000003902000039000000050300002900000000002304350000006402100039000001da0300004100000000003204350000004402100039000001e403000041000001b30000013d000000070500002900000005035000690000004406300039000001b003000041000001b00450009c000000000403001900000000040540190000004004400210000001b00560009c00000000060380190000006005600210000000000545019f000001b00410009c0000000001038019000000c001100210000000000151019f06bb06b10000040f000000070900002900000000030100190000006003300270000001b003300197000000200430008c000000000503001900000020050080390000001f0450018f0000000505500272000003e20000613d000000000600001900000005076002100000000008790019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000003da0000413d000000000604004b000003f10000613d0000000505500210000000000651034f00000007055000290000000304400210000000000705043300000000074701cf000000000747022f000000000606043b0000010004400089000000000646022f00000000044601cf000000000474019f0000000000450435000000000003001f0000000102200190000004590000613d0000001f0130008c000005f40000a13d000000400100043d0000000002010433000000000202004b0000000002000019000000010200c0390000000000210435000000400200043d00000000012100490000002001100039000001b003000041000001b00410009c0000000001038019000001b00420009c000000000203801900000040022002100000006001100210000000000121019f000006bc0001042e0000001f0430018f0000000502300272000004130000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000040c0000413d000000000504004b000004210000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000006bd000104300000001f0430018f00000005023002720000042e0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000004270000413d000000000504004b0000043c0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000006bd000104300000001f0430018f0000000502300272000004490000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000004420000413d000000000504004b000004570000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000006bd000104300000001f0430018f0000000502300272000004640000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000045d0000413d000000000504004b000004720000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000006bd000104300000000103000029000000000303041a000001d804000041000000000041043500000002010000290000000000120435000000400100043d000300000001001d000001c9010000410000000000100439000001b101300197000400000001001d0000000400100443000001b0010000410000000002000414000001b00320009c0000000002018019000000c001200210000001ca011001c7000080020200003906bb06b60000040f0000000102200190000005f60000613d000000000101043b000000000101004b000005f40000613d00000000010004140000000402000029000000040220008c000004b40000c13d0000000003000031000004ea0000013d0000000103000029000000000303041a000001d804000041000000000041043500000002010000290000000000120435000000400100043d000300000001001d000001c9010000410000000000100439000001b101300197000400000001001d0000000400100443000001b0010000410000000002000414000001b00320009c0000000002018019000000c001200210000001ca011001c7000080020200003906bb06b60000040f0000000102200190000005f60000613d000000000101043b000000000101004b000005f40000613d00000000010004140000000402000029000000040220008c000005330000c13d0000000003000031000005690000013d00000003050000290000000502500069000001b003000041000001b00450009c000000000403001900000000040540190000004004400210000001b00520009c00000000020380190000006002200210000000000242019f000001b00410009c0000000001038019000000c001100210000000000121019f000000040200002906bb06b60000040f000000030900002900000000030100190000006003300270000001b003300197000000200430008c000000000503001900000020050080390000001f0450018f0000000505500272000004d80000613d000000000600001900000005076002100000000008790019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000004d00000413d000000000604004b000004e70000613d0000000505500210000000000651034f00000003055000290000000304400210000000000705043300000000074701cf000000000747022f000000000606043b0000010004400089000000000646022f00000000044601cf000000000474019f0000000000450435000000000003001f0000000102200190000005820000613d0000001f0130008c000005f40000a13d000000400100043d0000000032010434000000070420006c0000000705000029000000000502401900000000005104350000000002520049000700000002001d0000000000230435000000400200043d0000000001210049000001b004000041000001b00320009c000000000204801900000040022002100000004001100039000001b00310009c00000000010480190000006001100210000000000121019f0000000002000414000001b00320009c0000000002048019000000c002200210000000000121019f000001bd011001c70000800d020000390000000303000039000001d9040000410000000605000029000000020600002906bb06b10000040f0000000101200190000005f40000613d0000000101000029000000000101041a000000400400043d000000240240003900000007030000290000000000320435000001cc020000410000000000240435000500000004001d000000040240003900000002030000290000000000320435000000400200043d000600000002001d000001c9020000410000000000200439000001b101100197000700000001001d00000004001004430000000001000414000001b00210009c000001b001008041000000c001100210000001ca011001c7000080020200003906bb06b60000040f0000000102200190000005f60000613d000000000101043b000000000101004b000005f40000613d00000000010004140000000702000029000000040220008c000005f70000c13d00000000030000310000062e0000013d00000003050000290000000502500069000001b003000041000001b00450009c000000000403001900000000040540190000004004400210000001b00520009c00000000020380190000006002200210000000000242019f000001b00410009c0000000001038019000000c001100210000000000121019f000000040200002906bb06b60000040f000000030900002900000000030100190000006003300270000001b003300197000000200430008c000000000503001900000020050080390000001f0450018f0000000505500272000005570000613d000000000600001900000005076002100000000008790019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000054f0000413d000000000604004b000005660000613d0000000505500210000000000651034f00000003055000290000000304400210000000000705043300000000074701cf000000000747022f000000000606043b0000010004400089000000000646022f00000000044601cf000000000474019f0000000000450435000000000003001f00000001022001900000059d0000613d000000200130008c000005f40000413d000000400100043d0000000023010434000500070030002d000000050330006b000000000300001900000001030040390000000103300190000005b80000613d0000004402100039000001e303000041000000000032043500000024021000390000001b030000390000000000320435000001c1020000410000000000210435000000040210003900000020030000390000000000320435000000400200043d00000000012100490000006401100039000001b70000013d0000001f0430018f00000005023002720000058d0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000005860000413d000000000504004b0000059b0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000006bd000104300000001f0430018f0000000502300272000005a80000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000005a10000413d000000000504004b000005b60000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000006bd000104300000000503000029000000000032043500000007020000290000000000210435000000400200043d0000000001210049000001b004000041000001b00320009c000000000204801900000040022002100000004001100039000001b00310009c00000000010480190000006001100210000000000121019f0000000002000414000001b00320009c0000000002048019000000c002200210000000000121019f000001bd011001c70000800d020000390000000303000039000001e2040000410000000605000029000000020600002906bb06b10000040f0000000101200190000005f40000613d0000000101000029000000000101041a000000400400043d000000240240003900000005030000290000000000320435000001cc020000410000000000240435000500000004001d000000040240003900000002030000290000000000320435000000400200043d000600000002001d000001c9020000410000000000200439000001b101100197000700000001001d00000004001004430000000001000414000001b00210009c000001b001008041000000c001100210000001ca011001c7000080020200003906bb06b60000040f0000000102200190000005f60000613d000000000101043b000000000101004b0000062f0000c13d0000000001000019000006bd00010430000000000001042f000000060500002900000005025000690000004402200039000001b003000041000001b00450009c000000000403001900000000040540190000004004400210000001b00520009c00000000020380190000006002200210000000000242019f000001b00410009c0000000001038019000000c001100210000000000121019f000000070200002906bb06b10000040f000000060900002900000000030100190000006003300270000001b003300197000000200430008c000000000503001900000020050080390000001f0450018f00000005055002720000061c0000613d000000000600001900000005076002100000000008790019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000006140000413d000000000604004b0000062b0000613d0000000505500210000000000651034f00000006055000290000000304400210000000000705043300000000074701cf000000000747022f000000000606043b0000010004400089000000000646022f00000000044601cf000000000474019f0000000000450435000000000003001f0000000102200190000006350000613d000003f40000013d00000000010004140000000702000029000000040220008c000006500000c13d0000000003000031000003f40000013d0000001f0430018f0000000502300272000006400000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000006390000413d000000000504004b0000064e0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000006bd00010430000000060500002900000005025000690000004402200039000001b003000041000001b00450009c000000000403001900000000040540190000004004400210000001b00520009c00000000020380190000006002200210000000000242019f000001b00410009c0000000001038019000000c001100210000000000121019f000000070200002906bb06b10000040f000000060900002900000000030100190000006003300270000001b003300197000000200430008c000000000503001900000020050080390000001f0450018f0000000505500272000006750000613d000000000600001900000005076002100000000008790019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000066d0000413d000000000604004b000006840000613d0000000505500210000000000651034f00000006055000290000000304400210000000000705043300000000074701cf000000000747022f000000000606043b0000010004400089000000000646022f00000000044601cf000000000474019f0000000000450435000000000003001f0000000102200190000003f40000c13d0000001f0430018f0000000502300272000006920000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000068b0000413d000000000504004b000006a00000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000006bd00010430000000000001042f000001b0010000410000000002000414000001b00320009c0000000002018019000000c001200210000001bc011001c7000080100200003906bb06b60000040f0000000102200190000006af0000613d000000000101043b000000000001042d0000000001000019000006bd00010430000006b4002104210000000102000039000000000001042d0000000002000019000000000001042d000006b9002104230000000102000039000000000001042d0000000002000019000000000001042d000006bb00000432000006bc0001042e000006bd000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000200000000000000000000000000000040000001000000000000000000c011b1c30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ea72156800000000000000000000000000000000000000000000000000000000ea72156900000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000f6a74ed700000000000000000000000000000000000000000000000000000000c011b1c300000000000000000000000000000000000000000000000000000000c4faf7df00000000000000000000000000000000000000000000000000000000cbf2b8bf0200000000000000000000000000000000000040000000000000000000000000020000000000000000000000000000000000000000000000000000000000000033d83959be2573f5453b12eb9d43b3499bc57d96bd2f067ba44803c859e811137300000000000000000000000000000000000000000000000000000000000000576f726b6572206d7573742062652061206e6f6e2d7a65726f2061646472657308c379a00000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000400000008000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e04f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000008000000000000000004b5ef9a786cf64a7d82ebcf2d5132667edc9faef4ac36260d9a9e52c526b62323092afd5000000000000000000000000000000000000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b8302000002000000000000000000000000000000240000000000000000000000005b0b60a4f757b33d9dcb8bd021b6aa371bb2e6f134086797aefcd8c0afab538c4e44d95600000000000000000000000000000000000000000000000000000000a56687ff5096e83f6e2c673cda0b677f56bbfcdf5fe0555d5830c407ede193cb436f6e74726f6c6c6572206d7573742062652061206e6f6e2d7a65726f20616464726573730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000800000000000000000000000000000000000000000000000000000000000000000000000007c6b8ef4000000000000000000000000000000000000000000000000000000007c6b8ef5000000000000000000000000000000000000000000000000000000008da5cb5b000000000000000000000000000000000000000000000000000000009398608b0000000000000000000000000000000000000000000000000000000033db2ad200000000000000000000000000000000000000000000000000000000542fef91aa271e1a000000000000000000000000000000000000000000000000000000008a6db9c3000000000000000000000000000000000000000000000000000000003cc75d3bf58b0100659088c03539964108d5d06342e1bd8085ee43ad8ff6f69a206d696e7465727320696e206d696e7465724d616e616765720000000000000043616e206f6e6c792064656372656d656e7420616c6c6f77616e636520666f72746572207468616e203000000000000000000000000000000000000000000000416c6c6f77616e63652064656372656d656e74206d75737420626520677265614f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572000000000000000000000000000000000000006400000080000000000000000002000000000000000000000000000000000000000000008000000000000000009992ea32e96992be98be5c833cd5b9fd77314819d2146b6f06ab9cfef957af123703d23abba1e61f32acc0682fc062ea5c710672c7d100af5ecd08485e983ad0536166654d6174683a206164646974696f6e206f766572666c6f77000000000043616e206f6e6c7920696e6372656d656e7420616c6c6f77616e636520666f72416c6c6f77616e636520696e6372656d656e74206d75737420626520677265616465725d206d757374206265206e6f6e2d7a65726f00000000000000000000005468652076616c7565206f6620636f6e74726f6c6c6572735b6d73672e73656e379f4e230156c3acb6814ea43ff9e6d549f2185288d21e1e2f458bcc7a310708
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000da09683d08861e700756ed82438f9a5c92d22c55
-----Decoded View---------------
Arg [0] : _minterManager (address): 0xdA09683D08861E700756ED82438f9A5c92d22c55
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000da09683d08861e700756ed82438f9a5c92d22c55
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.