From c534fc03aade175f1912c8976876d930ea2b3a35 Mon Sep 17 00:00:00 2001 From: Aleksandr Kuperman Date: Tue, 22 Oct 2024 13:00:25 +0100 Subject: [PATCH 01/25] feat: contribute contracts stack --- .../contribute/ContributeActivityChecker.sol | 73 +++++++ .../contribute/ContributeServiceManager.sol | 51 +++++ contracts/contribute/Contributors.sol | 191 ++++++++++++++++++ contracts/contribute/ContributorsProxy.sol | 70 +++++++ hardhat.config.js | 2 +- 5 files changed, 386 insertions(+), 1 deletion(-) create mode 100644 contracts/contribute/ContributeActivityChecker.sol create mode 100644 contracts/contribute/ContributeServiceManager.sol create mode 100644 contracts/contribute/Contributors.sol create mode 100644 contracts/contribute/ContributorsProxy.sol diff --git a/contracts/contribute/ContributeActivityChecker.sol b/contracts/contribute/ContributeActivityChecker.sol new file mode 100644 index 0000000..d408b6c --- /dev/null +++ b/contracts/contribute/ContributeActivityChecker.sol @@ -0,0 +1,73 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.28; + +interface IContributors { + function mapMutisigActivities(address multisig) external view returns (uint256); +} + +/// @dev Zero address. +error ZeroAddress(); + +/// @dev Zero value. +error ZeroValue(); + +/// @title ContributeActivityChecker - Smart contract for performing contributors service staking activity check +/// @author Aleksandr Kuperman - +/// @author Andrey Lebedev - +/// @author Tatiana Priemova - +/// @author David Vilela - +contract ContributeActivityChecker { + // Liveness ratio in the format of 1e18 + uint256 public immutable livenessRatio; + // Contributors proxy contract address + address public immutable contributorsProxy; + + /// @dev StakingNativeToken initialization. + /// @param _contributorsProxy Contributors proxy contract address. + /// @param _livenessRatio Liveness ratio in the format of 1e18. + constructor(address _contributorsProxy, uint256 _livenessRatio) { + // Check the zero address + if (_contributorsProxy == address(0)) { + revert ZeroAddress(); + } + + // Check for zero value + if (_livenessRatio == 0) { + revert ZeroValue(); + } + + contributorsProxy = _contributorsProxy; + livenessRatio = _livenessRatio; + } + + /// @dev Gets service multisig nonces. + /// @param multisig Service multisig address. + /// @return nonces Set of a single service multisig nonce. + function getMultisigNonces(address multisig) external view virtual returns (uint256[] memory nonces) { + nonces = new uint256[](1); + // The nonces are equal to the social off-chain activity corresponding multisig activity + nonces[0] = IContributors(contributorsProxy).mapMutisigActivities(multisig); + } + + /// @dev Checks if the service multisig liveness ratio passes the defined liveness threshold. + /// @notice The formula for calculating the ratio is the following: + /// currentNonce - service multisig nonce at time now (block.timestamp); + /// lastNonce - service multisig nonce at the previous checkpoint or staking time (tsStart); + /// ratio = (currentNonce - lastNonce) / (block.timestamp - tsStart). + /// @param curNonces Current service multisig set of a single nonce. + /// @param lastNonces Last service multisig set of a single nonce. + /// @param ts Time difference between current and last timestamps. + /// @return ratioPass True, if the liveness ratio passes the check. + function isRatioPass( + uint256[] memory curNonces, + uint256[] memory lastNonces, + uint256 ts + ) external view virtual returns (bool ratioPass) { + // If the checkpoint was called in the exact same block, the ratio is zero + // If the current nonce is not greater than the last nonce, the ratio is zero + if (ts > 0 && curNonces[0] > lastNonces[0]) { + uint256 ratio = ((curNonces[0] - lastNonces[0]) * 1e18) / ts; + ratioPass = (ratio >= livenessRatio); + } + } +} \ No newline at end of file diff --git a/contracts/contribute/ContributeServiceManager.sol b/contracts/contribute/ContributeServiceManager.sol new file mode 100644 index 0000000..153a85b --- /dev/null +++ b/contracts/contribute/ContributeServiceManager.sol @@ -0,0 +1,51 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.28; + +/// @dev Zero address. +error ZeroAddress(); + +/// @dev Zero value. +error ZeroValue(); + +/// @dev Only contribute is allowed to have access. +error OnlyContribute(address sender, address contribute); + +/// @title ContributeServiceManager - Smart contract for managing services for contributors +/// @author Aleksandr Kuperman - +/// @author Andrey Lebedev - +/// @author Tatiana Priemova - +/// @author David Vilela - +contract ContributeServiceManager { + // Contributors proxy contract address + address public immutable contributorsProxy; + + /// @dev StakingNativeToken initialization. + /// @param _contributorsProxy Contributors proxy contract address. + constructor(address _contributorsProxy) { + // Check the zero address + if (_contributorsProxy == address(0)) { + revert ZeroAddress(); + } + + contributorsProxy = _contributorsProxy; + } + + function register(uint256 id, address stakingInstance) external { +// if (mapSocialHashMultisigs[handleHash] != address(0)) +// revert(); +// +// createSerivce(); +// deploy(); +// +// stake(stakingInstance); +// mapUserImplemnetations[multisig] = stakingInstance; + } + + function stake(uint256 serviceId, address stakingInstance) public { + + } + + function unstake() external { + + } +} \ No newline at end of file diff --git a/contracts/contribute/Contributors.sol b/contracts/contribute/Contributors.sol new file mode 100644 index 0000000..c2f2237 --- /dev/null +++ b/contracts/contribute/Contributors.sol @@ -0,0 +1,191 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.28; + +/// @dev Only `owner` has a privilege, but the `sender` was provided. +/// @param sender Sender address. +/// @param owner Required sender address as an owner. +error OwnerOnly(address sender, address owner); + +/// @dev The contract is already initialized. +error AlreadyInitialized(); + +/// @dev Zero address. +error ZeroAddress(); + +/// @dev Only manager is allowed to have access. +error OnlyManager(address sender, address manager); + +/// @dev Wrong length of two arrays. +/// @param numValues1 Number of values in a first array. +/// @param numValues2 Number of values in a second array. +error WrongArrayLength(uint256 numValues1, uint256 numValues2); + +/// @dev Account is unauthorized. +/// @param account Account address. +error UnauthorizedAccount(address account); + +/// @title Contributors - Smart contract for managing contributors +/// @author Aleksandr Kuperman - +/// @author Andrey Lebedev - +/// @author Tatiana Priemova - +/// @author David Vilela - +contract ContributeActivityChecker { + event ImplementationUpdated(address indexed implementation); + event OwnerUpdated(address indexed owner); + event ManagerUpdated(address indexed manager); + event SetMultisigForId(uint256 indexed id, address indexed multisig); + event SetContributeAgentStatuses(address[] mechMarketplaces, bool[] statuses); + event MultisigActivityChanged(address indexed senderAgent, address[] multisigs, uint256[] activityChanges); + + // Version number + string public constant VERSION = "1.0.0"; + // Code position in storage is keccak256("CONTRIBUTORS_PROXY") = "0x8f33b4c48c4f3159dc130f2111086160da6c94439c147bd337ecee0aa81518c7" + bytes32 public constant CONTRIBUTORS_PROXY = 0x8f33b4c48c4f3159dc130f2111086160da6c94439c147bd337ecee0aa81518c7; + + // Contract owner + address public owner; + // Service manager contract address + address public manager; + + // Mapping of social id => service multisig address + mapping(uint256 => address) public mapSocialHashMultisigs; + // Mapping of service multisig address => activity + mapping(address => uint256) public mapMutisigActivities; + // Mapping of whitelisted contributor agents + mapping(address => bool) public mapContributeAgents; + + /// @dev Contributors initializer. + /// @param _manager Manager address. + function initialize(address _manager) external{ + // Check for already initialized + if (owner != address(0)) { + revert AlreadyInitialized(); + } + + // Check for zero address + if (_manager == address(0)) { + revert ZeroAddress(); + } + + owner = msg.sender; + manager = _manager; + } + + /// @dev Changes the contributors implementation contract address. + /// @param newImplementation New implementation contract address. + function changeImplementation(address newImplementation) external { + // Check for the ownership + if (msg.sender != owner) { + revert OwnerOnly(msg.sender, owner); + } + + // Check for zero address + if (newImplementation == address(0)) { + revert ZeroAddress(); + } + + // Store the contributors implementation address + assembly { + sstore(CONTRIBUTORS_PROXY, newImplementation) + } + + emit ImplementationUpdated(newImplementation); + } + + /// @dev Changes contract owner address. + /// @param newOwner Address of a new owner. + function changeOwner(address newOwner) external { + // Check for the ownership + if (msg.sender != owner) { + revert OwnerOnly(msg.sender, owner); + } + + // Check for the zero address + if (newOwner == address(0)) { + revert ZeroAddress(); + } + + owner = newOwner; + emit OwnerUpdated(newOwner); + } + + /// @dev Changes contract manager address. + /// @param newManager Address of a new manager. + function changeManager(address newManager) external { + // Check for the ownership + if (msg.sender != owner) { + revert OwnerOnly(msg.sender, owner); + } + + // Check for the zero address + if (newManager == address(0)) { + revert ZeroAddress(); + } + + manager = newManager; + emit ManagerUpdated(newManager); + } + + /// @dev Sets service multisig for the social id. + /// @param id Social id. + /// @param multisig Service multisig address. + function setMultisigForId(uint256 id, address multisig) external { + // Check for manager + if (msg.sender != manager) { + revert OnlyManager(msg.sender, manager); + } + + // Set (or remove) multisig for the corresponding social id + mapSocialHashMultisigs[id] = multisig; + + emit SetMultisigForId(id, multisig); + } + + /// @dev Sets contribute agent statues. + /// @param contributeAgents Contribute agent addresses. + /// @param statuses Corresponding whitelisting statues. + function setMechMarketplaceStatuses(address[] memory contributeAgents, bool[] memory statuses) external { + // Check for the ownership + if (msg.sender != owner) { + revert OwnerOnly(msg.sender, owner); + } + + // Check for array lengths + if (contributeAgents.length != statuses.length) { + revert WrongArrayLength(contributeAgents.length, statuses.length); + } + + // Traverse all the mech marketplaces and statuses + for (uint256 i = 0; i < contributeAgents.length; ++i) { + if (contributeAgents[i] == address(0)) { + revert ZeroAddress(); + } + + mapContributeAgents[contributeAgents[i]] = statuses[i]; + } + + emit SetContributeAgentStatuses(contributeAgents, statuses); + } + + /// @dev Increases multisig activity by the contribute agent. + /// @param multisigs Multisig addresses. + /// @param activityChanges Corresponding activity changes + function increaseActivity(address[] memory multisigs, uint256[] memory activityChanges) external { + // Check for whitelisted contribute agent + if (!mapContributeAgents[msg.sender]) { + revert UnauthorizedAccount(msg.sender); + } + + // Check for array lengths + if (multisigs.length != activityChanges.length) { + revert WrongArrayLength(multisigs.length, activityChanges.length); + } + + // Increase / decrease multisig activity + for (uint256 i = 0; i < multisigs.length; ++i) { + mapMutisigActivities[multisigs[i]] += activityChanges[i]; + } + + emit MultisigActivityChanged(msg.sender, multisigs, activityChanges); + } +} \ No newline at end of file diff --git a/contracts/contribute/ContributorsProxy.sol b/contracts/contribute/ContributorsProxy.sol new file mode 100644 index 0000000..921887b --- /dev/null +++ b/contracts/contribute/ContributorsProxy.sol @@ -0,0 +1,70 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.28; + +/// @dev Zero implementation address. +error ZeroImplementationAddress(); + +/// @dev Zero contributors data. +error ZeroContributorsData(); + +/// @dev Proxy initialization failed. +error InitializationFailed(); + +/* +* This is a Contributors proxy contract. +* Proxy implementation is created based on the Universal Upgradeable Proxy Standard (UUPS) EIP-1822. +* The implementation address must be located in a unique storage slot of the proxy contract. +* The upgrade logic must be located in the implementation contract. +* Special contributors implementation address slot is produced by hashing the "CONTRIBUTORS_PROXY" +* string in order to make the slot unique. +* The fallback() implementation for all the delegatecall-s is inspired by the Gnosis Safe set of contracts. +*/ + +/// @title ContributorsProxy - Smart contract for contributors proxy +/// @author Aleksandr Kuperman - +/// @author Andrey Lebedev - +/// @author Tatiana Priemova - +/// @author David Vilela - +contract ContributorsProxy { + // Code position in storage is keccak256("CONTRIBUTORS_PROXY") = "0x8f33b4c48c4f3159dc130f2111086160da6c94439c147bd337ecee0aa81518c7" + bytes32 public constant CONTRIBUTORS_PROXY = 0x8f33b4c48c4f3159dc130f2111086160da6c94439c147bd337ecee0aa81518c7; + + /// @dev ContributorsProxy constructor. + /// @param implementation Contributors implementation address. + /// @param contributorsData Contributors initialization data. + constructor(address implementation, bytes memory contributorsData) { + // Check for the zero address, since the delegatecall works even with the zero one + if (implementation == address(0)) { + revert ZeroImplementationAddress(); + } + + // Check for the zero data + if (contributorsData.length == 0) { + revert ZeroContributorsData(); + } + + // Store the contributors implementation address + assembly { + sstore(CONTRIBUTORS_PROXY, implementation) + } + // Initialize proxy tokenomics storage + (bool success, ) = implementation.delegatecall(contributorsData); + if (!success) { + revert InitializationFailed(); + } + } + + /// @dev Delegatecall to all the incoming data. + fallback() external { + assembly { + let implementation := sload(CONTRIBUTORS_PROXY) + calldatacopy(0, 0, calldatasize()) + let success := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0) + returndatacopy(0, 0, returndatasize()) + if eq(success, 0) { + revert(0, returndatasize()) + } + return(0, returndatasize()) + } + } +} \ No newline at end of file diff --git a/hardhat.config.js b/hardhat.config.js index 6a7fc67..c30cfbb 100644 --- a/hardhat.config.js +++ b/hardhat.config.js @@ -118,7 +118,7 @@ module.exports = { solidity: { compilers: [ { - version: "0.8.25", + version: "0.8.28", settings: { optimizer: { enabled: true, From f0620e7847752b39cb896604c45c23e65b5e0ce7 Mon Sep 17 00:00:00 2001 From: Aleksandr Kuperman Date: Tue, 22 Oct 2024 13:03:46 +0100 Subject: [PATCH 02/25] chore: name fix --- contracts/contribute/Contributors.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/contribute/Contributors.sol b/contracts/contribute/Contributors.sol index c2f2237..d535e14 100644 --- a/contracts/contribute/Contributors.sol +++ b/contracts/contribute/Contributors.sol @@ -29,7 +29,7 @@ error UnauthorizedAccount(address account); /// @author Andrey Lebedev - /// @author Tatiana Priemova - /// @author David Vilela - -contract ContributeActivityChecker { +contract Contributors { event ImplementationUpdated(address indexed implementation); event OwnerUpdated(address indexed owner); event ManagerUpdated(address indexed manager); From badceb8a971fb3cd92cdcaa2f6f5398bae85d4a7 Mon Sep 17 00:00:00 2001 From: Aleksandr Kuperman Date: Tue, 22 Oct 2024 13:09:39 +0100 Subject: [PATCH 03/25] chore: removing unnecessary event --- contracts/contribute/ContributeServiceManager.sol | 3 --- 1 file changed, 3 deletions(-) diff --git a/contracts/contribute/ContributeServiceManager.sol b/contracts/contribute/ContributeServiceManager.sol index 153a85b..b02b30c 100644 --- a/contracts/contribute/ContributeServiceManager.sol +++ b/contracts/contribute/ContributeServiceManager.sol @@ -7,9 +7,6 @@ error ZeroAddress(); /// @dev Zero value. error ZeroValue(); -/// @dev Only contribute is allowed to have access. -error OnlyContribute(address sender, address contribute); - /// @title ContributeServiceManager - Smart contract for managing services for contributors /// @author Aleksandr Kuperman - /// @author Andrey Lebedev - From aa0465094e298c08849d78b06381904a59c73bce Mon Sep 17 00:00:00 2001 From: Aleksandr Kuperman Date: Tue, 22 Oct 2024 16:25:37 +0100 Subject: [PATCH 04/25] feat: getting close to creating a service --- .../contribute/ContributeActivityChecker.sol | 1 + .../contribute/ContributeServiceManager.sol | 154 +++++++++++++++++- contracts/contribute/Contributors.sol | 27 ++- contracts/contribute/interfaces/IService.sol | 59 +++++++ 4 files changed, 224 insertions(+), 17 deletions(-) create mode 100644 contracts/contribute/interfaces/IService.sol diff --git a/contracts/contribute/ContributeActivityChecker.sol b/contracts/contribute/ContributeActivityChecker.sol index d408b6c..c4a69d9 100644 --- a/contracts/contribute/ContributeActivityChecker.sol +++ b/contracts/contribute/ContributeActivityChecker.sol @@ -1,6 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.28; +// Contributors interface interface IContributors { function mapMutisigActivities(address multisig) external view returns (uint256); } diff --git a/contracts/contribute/ContributeServiceManager.sol b/contracts/contribute/ContributeServiceManager.sol index b02b30c..fb55bf0 100644 --- a/contracts/contribute/ContributeServiceManager.sol +++ b/contracts/contribute/ContributeServiceManager.sol @@ -1,41 +1,177 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.28; +import {IService} from "./interfaces/IService.sol"; + +// Contributors interface +interface IContributors { + /// @dev Sets service info for the social id. + /// @param socialId Social id. + /// @param serviceId Service Id. + /// @param multisig Service multisig address. + function setServiceInfoForId(uint256 socialId, uint256 serviceId, address multisig) external; + + /// @dev Gets service info corresponding to a specified social Id. + /// @param socialId Social Id. + /// @return service Id Corresponding service Id. + /// @return multisig Corresponding service multisig. + function mapSocialIdServiceInfo(uint256 socialId) external view returns (uint256 serviceId, address multisig); +} + +// Staking interface +interface IStaking { + /// @dev Gets service staking token. + /// @return Service staking token address. + function stakingToken() external view returns (address); + + /// @dev Gets minimum service staking deposit value required for staking. + /// @return Minimum service staking deposit. + function minStakingDeposit() external view returns (uint256); + + /// @dev Gets number of required agent instances in the service. + /// @return Number of agent instances. + function numAgentInstances() external view returns (uint256); + + /// @dev Gets the service threshold. + /// @return Threshold. + function threshold() external view returns (uint256); +} + +// Token interface +interface IToken { + /// @dev Transfers the token amount that was previously approved up until the maximum allowance. + /// @param from Account address to transfer from. + /// @param to Account address to transfer to. + /// @param amount Amount to transfer to. + /// @return True if the function execution is successful. + function transferFrom(address from, address to, uint256 amount) external returns (bool); + + /// @dev Sets `amount` as the allowance of `spender` over the caller's tokens. + /// @param spender Account address that will be able to transfer tokens on behalf of the caller. + /// @param amount Token amount. + /// @return True if the function execution is successful. + function approve(address spender, uint256 amount) external returns (bool); +} + /// @dev Zero address. error ZeroAddress(); /// @dev Zero value. error ZeroValue(); +/// @dev Service is already created for the contributor. +/// @param serviceId Service Id. +/// @param multisig Multisig address. +error ServiceAlreadyCreated(uint256 serviceId, address multisig); + +/// @dev Wrong staking instance. +/// @param stakingInstance Staking instance address. +error WrongStakingInstance(address stakingInstance); + /// @title ContributeServiceManager - Smart contract for managing services for contributors /// @author Aleksandr Kuperman - /// @author Andrey Lebedev - /// @author Tatiana Priemova - /// @author David Vilela - contract ContributeServiceManager { + // Contribute agent Id + uint256 public constant AGENT_ID = 6; + // Contributor service config hash mock + bytes32 public constant CONFIG_HASH = 0x0000000000000000000000000000000000000000000000000000000000000006; // Contributors proxy contract address address public immutable contributorsProxy; + // Service manager contract address + address public immutable serviceManager; + // Service registry token utility address + address public immutable serviceRegistryTokenUtility; + // Safe multisig processing contract address + address public immutable safeMultisig; + // Safe fallback handler + address public immutable fallbackHandler; /// @dev StakingNativeToken initialization. /// @param _contributorsProxy Contributors proxy contract address. - constructor(address _contributorsProxy) { + constructor(address _contributorsProxy, address _serviceManager, address _safeMultisig, address _fallbackHandler) { // Check the zero address - if (_contributorsProxy == address(0)) { + if (_contributorsProxy == address(0) || _serviceManager == address(0) || _safeMultisig == address(0) || + _fallbackHandler == address(0)) { revert ZeroAddress(); } contributorsProxy = _contributorsProxy; + serviceManager = _serviceManager; + safeMultisig = _safeMultisig; + fallbackHandler = _fallbackHandler; + serviceRegistryTokenUtility = IService(serviceManager).serviceRegistryTokenUtility(); } - function register(uint256 id, address stakingInstance) external { -// if (mapSocialHashMultisigs[handleHash] != address(0)) -// revert(); -// -// createSerivce(); -// deploy(); + /// @dev Creates and deploys a service for the contributor, and stakes it with a specified staking contract. + /// @notice The service cannot be registered again if it is currently staked. + /// @param socialId Contributor social Id. + /// @param stakingInstance Contribute staking instance address. + function createAndStake(uint256 socialId, address stakingInstance) external payable { + // Check for existing service corresponding to the social Id + (uint256 serviceId, address multisig) = IContributors(contributorsProxy).mapSocialIdServiceInfo(socialId); + + if (serviceId > 0) { + revert ServiceAlreadyCreated(serviceId, multisig); + } + + // Get the token info from the staking contract + // If this call fails, it means the staking contract does not have a token and is not compatible + address token = IStaking(stakingInstance).stakingToken(); +// // This way allows not to revert when the staking contract does not have a token (native token based) +// bytes memory tokenData = abi.encodeCall(IStaking.stakingToken, ()); +// (success, returnData) = instance.staticcall(tokenData); // +// // Check the returnData is the call was successful +// if (success) { +// // The returned size must be 32 to fit one address +// if (returnData.length == 32) { +// token = abi.decode(returnData, (address)); +// if (token != olas) { +// return false; +// } +// } else { +// revert(); +// } +// } + + // Get other service info for staking + uint256 minStakingDeposit = IStaking(stakingInstance).minStakingDeposit(); + uint256 numAgentInstances = IStaking(stakingInstance).numAgentInstances(); + uint256 threshold = IStaking(stakingInstance).threshold(); + // Check for number of agent instances that must be equal to one, + // since msg.sender is the only service multisig owner + if (numAgentInstances != 1 || threshold != 1) { + revert WrongStakingInstance(stakingInstance); + } + + // Calculate the total bond required for the service deployment: + uint256 totalBond = (1 + numAgentInstances) * minStakingDeposit; + + // Transfer the total bond amount from the contributor + IToken(token).transferFrom(msg.sender, address(this), totalBond); + // Approve token for the serviceRegistryTokenUtility contract + IToken(token).approve(serviceRegistryTokenUtility, totalBond); + + // Create a service owned by this contract + serviceId = IService(serviceManager).create(address(this), token, CONFIG_HASH, [AGENT_ID], + IService.AgentParams(numAgentInstances, minStakingDeposit), threshold); + + // Activate registration (1 wei as a deposit wrapper) + IService(serviceManager).activateRegistration{value: 1}(serviceId); + + // Register msg.sender as an agent instance (numAgentInstances wei as a bond wrapper) + IService(serviceManager).registerAgents{value: numAgentInstances}(serviceId, [msg.sender], [AGENT_ID]); + + // Deploy the service + // TODO: fix the data + IService(serviceManager).deploy(serviceId, safeMultisig, "0x"); + + // Add the service into its social Id corresponding record + IContributors(contributorsProxy).setServiceInfoForId(socialId, serviceId, multisig); // stake(stakingInstance); -// mapUserImplemnetations[multisig] = stakingInstance; } function stake(uint256 serviceId, address stakingInstance) public { diff --git a/contracts/contribute/Contributors.sol b/contracts/contribute/Contributors.sol index d535e14..1159cbc 100644 --- a/contracts/contribute/Contributors.sol +++ b/contracts/contribute/Contributors.sol @@ -24,6 +24,14 @@ error WrongArrayLength(uint256 numValues1, uint256 numValues2); /// @param account Account address. error UnauthorizedAccount(address account); +// Struct for service info +struct ServiceInfo { + // Service Id + uint256 serviceId; + // Corresponding service multisig + address multisig; +} + /// @title Contributors - Smart contract for managing contributors /// @author Aleksandr Kuperman - /// @author Andrey Lebedev - @@ -33,7 +41,7 @@ contract Contributors { event ImplementationUpdated(address indexed implementation); event OwnerUpdated(address indexed owner); event ManagerUpdated(address indexed manager); - event SetMultisigForId(uint256 indexed id, address indexed multisig); + event SetServiceInfoForId(uint256 indexed socialId, uint256 indexed serviceId, address indexed multisig); event SetContributeAgentStatuses(address[] mechMarketplaces, bool[] statuses); event MultisigActivityChanged(address indexed senderAgent, address[] multisigs, uint256[] activityChanges); @@ -47,8 +55,8 @@ contract Contributors { // Service manager contract address address public manager; - // Mapping of social id => service multisig address - mapping(uint256 => address) public mapSocialHashMultisigs; + // Mapping of social id => service info + mapping(uint256 => ServiceInfo) public mapSocialIdServiceInfo; // Mapping of service multisig address => activity mapping(address => uint256) public mapMutisigActivities; // Mapping of whitelisted contributor agents @@ -126,19 +134,22 @@ contract Contributors { emit ManagerUpdated(newManager); } - /// @dev Sets service multisig for the social id. - /// @param id Social id. + /// @dev Sets service info for the social id. + /// @param socialId Social id. + /// @param serviceId Service Id. /// @param multisig Service multisig address. - function setMultisigForId(uint256 id, address multisig) external { + function setServiceInfoForId(uint256 socialId, uint256 serviceId, address multisig) external { // Check for manager if (msg.sender != manager) { revert OnlyManager(msg.sender, manager); } // Set (or remove) multisig for the corresponding social id - mapSocialHashMultisigs[id] = multisig; + ServiceInfo storage serviceInfo = mapSocialIdServiceInfo[socialId]; + serviceInfo.serviceId = serviceId; + serviceInfo.multisig = multisig; - emit SetMultisigForId(id, multisig); + emit SetServiceInfoForId(socialId, serviceId, multisig); } /// @dev Sets contribute agent statues. diff --git a/contracts/contribute/interfaces/IService.sol b/contracts/contribute/interfaces/IService.sol new file mode 100644 index 0000000..f6b4d5b --- /dev/null +++ b/contracts/contribute/interfaces/IService.sol @@ -0,0 +1,59 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.28; + +interface IService { + struct AgentParams { + // Number of agent instances + uint32 slots; + // Bond per agent instance + uint96 bond; + } + + /// @dev Creates a new service. + /// @param serviceOwner Individual that creates and controls a service. + /// @param token ERC20 token address for the security deposit, or ETH. + /// @param configHash IPFS hash pointing to the config metadata. + /// @param agentIds Canonical agent Ids. + /// @param agentParams Number of agent instances and required bond to register an instance in the service. + /// @param threshold Threshold for a multisig composed by agents. + /// @return serviceId Created service Id. + function create( + address serviceOwner, + address token, + bytes32 configHash, + uint32[] memory agentIds, + AgentParams[] memory agentParams, + uint32 threshold + ) external returns (uint256 serviceId); + + /// @dev Activates the service and its sensitive components. + /// @param serviceId Correspondent service Id. + /// @return success True, if function executed successfully. + function activateRegistration(uint256 serviceId) external payable returns (bool success); + + /// @dev Registers agent instances. + /// @param serviceId Service Id to be updated. + /// @param agentInstances Agent instance addresses. + /// @param agentIds Canonical Ids of the agent correspondent to the agent instance. + /// @return success True, if function executed successfully. + function registerAgents( + uint256 serviceId, + address[] memory agentInstances, + uint32[] memory agentIds + ) external payable returns (bool success); + + /// @dev Creates multisig instance controlled by the set of service agent instances and deploys the service. + /// @param serviceId Correspondent service Id. + /// @param multisigImplementation Multisig implementation address. + /// @param data Data payload for the multisig creation. + /// @return multisig Address of the created multisig. + function deploy( + uint256 serviceId, + address multisigImplementation, + bytes memory data + ) external returns (address multisig); + + /// @dev Gets the serviceRegistryTokenUtility address. + /// @return serviceRegistryTokenUtility address. + function serviceRegistryTokenUtility() external returns (address); +} From 6199f79cca83bef027fc09153adf01a16b718f96 Mon Sep 17 00:00:00 2001 From: Aleksandr Kuperman Date: Tue, 22 Oct 2024 18:08:58 +0100 Subject: [PATCH 05/25] refactor: first implementation --- .../contribute/ContributeServiceManager.sol | 197 +++++++++++++++--- contracts/contribute/Contributors.sol | 18 +- contracts/contribute/interfaces/IService.sol | 23 ++ 3 files changed, 211 insertions(+), 27 deletions(-) diff --git a/contracts/contribute/ContributeServiceManager.sol b/contracts/contribute/ContributeServiceManager.sol index fb55bf0..d899ac2 100644 --- a/contracts/contribute/ContributeServiceManager.sol +++ b/contracts/contribute/ContributeServiceManager.sol @@ -9,13 +9,24 @@ interface IContributors { /// @param socialId Social id. /// @param serviceId Service Id. /// @param multisig Service multisig address. - function setServiceInfoForId(uint256 socialId, uint256 serviceId, address multisig) external; + /// @param stakingInstance Staking instance address. + /// @param serviceOwner Service owner. + function setServiceInfoForId( + uint256 socialId, + uint256 serviceId, + address multisig, + address stakingInstance, + address serviceOwner + ) external; /// @dev Gets service info corresponding to a specified social Id. /// @param socialId Social Id. - /// @return service Id Corresponding service Id. + /// @return serviceId Corresponding service Id. /// @return multisig Corresponding service multisig. - function mapSocialIdServiceInfo(uint256 socialId) external view returns (uint256 serviceId, address multisig); + /// @return stakingInstance Staking instance address. + /// @return serviceOwner Service owner. + function mapSocialIdServiceInfo(uint256 socialId) external view + returns (uint256 serviceId, address multisig, address stakingInstance, address serviceOwner); } // Staking interface @@ -35,10 +46,30 @@ interface IStaking { /// @dev Gets the service threshold. /// @return Threshold. function threshold() external view returns (uint256); + + /// @dev Stakes the service. + /// @param serviceId Service Id. + function stake(uint256 serviceId) external; + + /// @dev Unstakes the service with collected reward, if available. + /// @param serviceId Service Id. + /// @return reward Staking reward. + function unstake(uint256 serviceId) external returns (uint256); + + /// @dev Claims rewards for the service without an additional checkpoint call. + /// @param serviceId Service Id. + /// @return Staking reward. + function claim(uint256 serviceId) external returns (uint256); } // Token interface interface IToken { + /// @dev Transfers the token amount. + /// @param to Address to transfer to. + /// @param amount The amount to transfer. + /// @return True if the function execution is successful. + function transfer(address to, uint256 amount) external returns (bool); + /// @dev Transfers the token amount that was previously approved up until the maximum allowance. /// @param from Account address to transfer from. /// @param to Account address to transfer to. @@ -59,21 +90,41 @@ error ZeroAddress(); /// @dev Zero value. error ZeroValue(); -/// @dev Service is already created for the contributor. +/// @dev Service is already created and staked for the contributor. +/// @param socialId Social Id. /// @param serviceId Service Id. /// @param multisig Multisig address. -error ServiceAlreadyCreated(uint256 serviceId, address multisig); +error ServiceAlreadyStaked(uint256 socialId, uint256 serviceId, address multisig); /// @dev Wrong staking instance. /// @param stakingInstance Staking instance address. error WrongStakingInstance(address stakingInstance); +/// @dev Service is not defined for the social Id. +/// @param socialId Social Id. +error ServiceNotDefined(uint256 socialId); + +/// @dev Wrong service owner. +/// @param serviceId Service Id. +/// @param sender Sender address. +/// @param serviceOwner Actual service owner. +error ServiceOwnerOnly(uint256 serviceId, address sender, address serviceOwner); + /// @title ContributeServiceManager - Smart contract for managing services for contributors /// @author Aleksandr Kuperman - /// @author Andrey Lebedev - /// @author Tatiana Priemova - /// @author David Vilela - contract ContributeServiceManager { + event CreatedAndStaked(uint256 indexed socialId, address indexed serviceOwner, uint256 serviceId, + address indexed multisig, address stakingInstance); + event Staked(uint256 indexed socialId, address indexed serviceOwner, uint256 serviceId, + address indexed multisig, address stakingInstance); + event Unstaked(uint256 indexed socialId, address indexed serviceOwner, uint256 serviceId, + address indexed multisig, address stakingInstance); + event Claimed(uint256 indexed socialId, address indexed serviceOwner, uint256 serviceId, + address indexed multisig, address stakingInstance); + // Contribute agent Id uint256 public constant AGENT_ID = 6; // Contributor service config hash mock @@ -82,6 +133,8 @@ contract ContributeServiceManager { address public immutable contributorsProxy; // Service manager contract address address public immutable serviceManager; + // Service registry address + address public immutable serviceRegistry; // Service registry token utility address address public immutable serviceRegistryTokenUtility; // Safe multisig processing contract address @@ -89,8 +142,11 @@ contract ContributeServiceManager { // Safe fallback handler address public immutable fallbackHandler; - /// @dev StakingNativeToken initialization. - /// @param _contributorsProxy Contributors proxy contract address. + /// @dev ContributeServiceManager constructor. + /// @param _contributorsProxy Contributors proxy address. + /// @param _serviceManager Service manager address. + /// @param _safeMultisig Safe multisig address. + /// @param _fallbackHandler Multisig fallback handler address. constructor(address _contributorsProxy, address _serviceManager, address _safeMultisig, address _fallbackHandler) { // Check the zero address if (_contributorsProxy == address(0) || _serviceManager == address(0) || _safeMultisig == address(0) || @@ -102,19 +158,52 @@ contract ContributeServiceManager { serviceManager = _serviceManager; safeMultisig = _safeMultisig; fallbackHandler = _fallbackHandler; + serviceRegistry = IService(serviceManager).serviceRegistry(); serviceRegistryTokenUtility = IService(serviceManager).serviceRegistryTokenUtility(); } + function _createAndDeploy( + address token, + uint256 minStakingDeposit, + uint256 numAgentInstances, + uint256 threshold + ) internal returns (uint256 serviceId, address multisig) { + // Set agent params + IService.AgentParams[] memory agentParams = new IService.AgentParams[](1); + agentParams[0] = IService.AgentParams(uint32(numAgentInstances), uint96(minStakingDeposit)); + + // Set agent Ids + uint32[] memory agentIds = new uint32[](1); + agentIds[0] = uint32(AGENT_ID); + + // Set agent instances as [msg.sender] + address[] memory instances = new address[](1); + instances[0] = msg.sender; + + // Create a service owned by this contract + serviceId = IService(serviceManager).create(address(this), token, CONFIG_HASH, agentIds, + agentParams, uint32(threshold)); + + // Activate registration (1 wei as a deposit wrapper) + IService(serviceManager).activateRegistration{value: 1}(serviceId); + + // Register msg.sender as an agent instance (numAgentInstances wei as a bond wrapper) + IService(serviceManager).registerAgents{value: numAgentInstances}(serviceId, instances, agentIds); + + // Deploy the service + // TODO: fix the data + multisig = IService(serviceManager).deploy(serviceId, safeMultisig, "0x"); + } + /// @dev Creates and deploys a service for the contributor, and stakes it with a specified staking contract. /// @notice The service cannot be registered again if it is currently staked. /// @param socialId Contributor social Id. /// @param stakingInstance Contribute staking instance address. function createAndStake(uint256 socialId, address stakingInstance) external payable { // Check for existing service corresponding to the social Id - (uint256 serviceId, address multisig) = IContributors(contributorsProxy).mapSocialIdServiceInfo(socialId); - + (uint256 serviceId, address multisig, , ) = IContributors(contributorsProxy).mapSocialIdServiceInfo(socialId); if (serviceId > 0) { - revert ServiceAlreadyCreated(serviceId, multisig); + revert ServiceAlreadyStaked(socialId, serviceId, multisig); } // Get the token info from the staking contract @@ -155,30 +244,88 @@ contract ContributeServiceManager { // Approve token for the serviceRegistryTokenUtility contract IToken(token).approve(serviceRegistryTokenUtility, totalBond); - // Create a service owned by this contract - serviceId = IService(serviceManager).create(address(this), token, CONFIG_HASH, [AGENT_ID], - IService.AgentParams(numAgentInstances, minStakingDeposit), threshold); + // Create and deploy service + (serviceId, multisig) = _createAndDeploy(token, minStakingDeposit, numAgentInstances, threshold); - // Activate registration (1 wei as a deposit wrapper) - IService(serviceManager).activateRegistration{value: 1}(serviceId); - - // Register msg.sender as an agent instance (numAgentInstances wei as a bond wrapper) - IService(serviceManager).registerAgents{value: numAgentInstances}(serviceId, [msg.sender], [AGENT_ID]); + // Stake the service + _stake(socialId, serviceId, multisig, stakingInstance); - // Deploy the service - // TODO: fix the data - IService(serviceManager).deploy(serviceId, safeMultisig, "0x"); + emit CreatedAndStaked(socialId, msg.sender, serviceId, multisig, stakingInstance); + } + function _stake(uint256 socialId, uint256 serviceId, address multisig, address stakingInstance) public { // Add the service into its social Id corresponding record - IContributors(contributorsProxy).setServiceInfoForId(socialId, serviceId, multisig); -// stake(stakingInstance); + IContributors(contributorsProxy).setServiceInfoForId(socialId, serviceId, multisig, stakingInstance, msg.sender); + + // Stake the service + IStaking(stakingInstance).stake(serviceId); + } + + /// @dev Stakes the already deployed service. + function stake(uint256 socialId, uint256 serviceId, address stakingInstance) public { + // Check for existing service corresponding to the social Id + (uint256 serviceIdCheck, address multisig, , ) = IContributors(contributorsProxy).mapSocialIdServiceInfo(socialId); + if (serviceIdCheck > 0) { + revert ServiceAlreadyStaked(socialId, serviceIdCheck, multisig); + } + + // Transfer the service NFT + IToken(serviceRegistry).transferFrom(msg.sender, address(this), serviceId); + + // Approve service NFT for the staking instance + IToken(serviceRegistry).approve(stakingInstance, serviceId); + + // Get the service multisig + (, multisig, , , , , ) = IService(serviceRegistry).mapServices(serviceId); + + // Stake the service + _stake(socialId, serviceId, multisig, stakingInstance); + + emit Staked(socialId, msg.sender, serviceId, multisig, stakingInstance); } - function stake(uint256 serviceId, address stakingInstance) public { + function unstake(uint256 socialId) external { + // Check for existing service corresponding to the social Id + (uint256 serviceId, address multisig, address stakingInstance, address serviceOwner) = + IContributors(contributorsProxy).mapSocialIdServiceInfo(socialId); + if (serviceId == 0) { + revert ServiceNotDefined(socialId); + } + + // Check for service owner + if (msg.sender != serviceOwner) { + revert ServiceOwnerOnly(serviceId, msg.sender, serviceOwner); + } + + // Unstake the service + IStaking(stakingInstance).unstake(serviceId); + // Transfer the service back to the original owner + IToken(serviceRegistry).transfer(serviceOwner, serviceId); + + // Zero the service info: the service is out of the contribute records, however multisig activity is still valid + // If the same service is staked back, the multisig activity continues being tracked + IContributors(contributorsProxy).setServiceInfoForId(socialId, 0, address(0), address(0), address(0)); + + emit Unstaked(socialId, msg.sender, serviceId, multisig, stakingInstance); } - function unstake() external { + function claim(uint256 socialId) external { + // Check for existing service corresponding to the social Id + (uint256 serviceId, address multisig, address stakingInstance, address serviceOwner) = + IContributors(contributorsProxy).mapSocialIdServiceInfo(socialId); + if (serviceId == 0) { + revert ServiceNotDefined(socialId); + } + + // Check for service owner + if (msg.sender != serviceOwner) { + revert ServiceOwnerOnly(serviceId, msg.sender, serviceOwner); + } + + // Claim staking rewards + IStaking(stakingInstance).claim(serviceId); + emit Claimed(socialId, msg.sender, serviceId, multisig, stakingInstance); } } \ No newline at end of file diff --git a/contracts/contribute/Contributors.sol b/contracts/contribute/Contributors.sol index 1159cbc..9a4d6ad 100644 --- a/contracts/contribute/Contributors.sol +++ b/contracts/contribute/Contributors.sol @@ -30,6 +30,10 @@ struct ServiceInfo { uint256 serviceId; // Corresponding service multisig address multisig; + // Staking instance address + address stakingInstance; + // Service owner address + address serviceOwner; } /// @title Contributors - Smart contract for managing contributors @@ -133,12 +137,20 @@ contract Contributors { manager = newManager; emit ManagerUpdated(newManager); } - + /// @dev Sets service info for the social id. /// @param socialId Social id. /// @param serviceId Service Id. /// @param multisig Service multisig address. - function setServiceInfoForId(uint256 socialId, uint256 serviceId, address multisig) external { + /// @param stakingInstance Staking instance address. + /// @param serviceOwner Service owner. + function setServiceInfoForId( + uint256 socialId, + uint256 serviceId, + address multisig, + address stakingInstance, + address serviceOwner + ) external { // Check for manager if (msg.sender != manager) { revert OnlyManager(msg.sender, manager); @@ -148,6 +160,8 @@ contract Contributors { ServiceInfo storage serviceInfo = mapSocialIdServiceInfo[socialId]; serviceInfo.serviceId = serviceId; serviceInfo.multisig = multisig; + serviceInfo.stakingInstance = stakingInstance; + serviceInfo.serviceOwner = serviceOwner; emit SetServiceInfoForId(socialId, serviceId, multisig); } diff --git a/contracts/contribute/interfaces/IService.sol b/contracts/contribute/interfaces/IService.sol index f6b4d5b..03dba4b 100644 --- a/contracts/contribute/interfaces/IService.sol +++ b/contracts/contribute/interfaces/IService.sol @@ -53,7 +53,30 @@ interface IService { bytes memory data ) external returns (address multisig); + /// @dev Gets the serviceRegistry address. + /// @return serviceRegistry address. + function serviceRegistry() external returns (address); + /// @dev Gets the serviceRegistryTokenUtility address. /// @return serviceRegistryTokenUtility address. function serviceRegistryTokenUtility() external returns (address); + + /// @dev Gets the service instance from the map of services. + /// @param serviceId Service Id. + /// @return securityDeposit Registration activation deposit. + /// @return multisig Service multisig address. + /// @return configHash IPFS hashes pointing to the config metadata. + /// @return threshold Agent instance signers threshold. + /// @return maxNumAgentInstances Total number of agent instances. + /// @return numAgentInstances Actual number of agent instances. + /// @return state Service state. + function mapServices(uint256 serviceId) external view returns ( + uint96 securityDeposit, + address multisig, + bytes32 configHash, + uint32 threshold, + uint32 maxNumAgentInstances, + uint32 numAgentInstances, + uint8 state + ); } From 8b52f29b91ee0deadb22591617f1865900e12acc Mon Sep 17 00:00:00 2001 From: Aleksandr Kuperman Date: Tue, 22 Oct 2024 18:12:09 +0100 Subject: [PATCH 06/25] chore: cleanup --- .../contribute/ContributeServiceManager.sol | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/contracts/contribute/ContributeServiceManager.sol b/contracts/contribute/ContributeServiceManager.sol index d899ac2..1fe6b3a 100644 --- a/contracts/contribute/ContributeServiceManager.sol +++ b/contracts/contribute/ContributeServiceManager.sol @@ -209,22 +209,6 @@ contract ContributeServiceManager { // Get the token info from the staking contract // If this call fails, it means the staking contract does not have a token and is not compatible address token = IStaking(stakingInstance).stakingToken(); -// // This way allows not to revert when the staking contract does not have a token (native token based) -// bytes memory tokenData = abi.encodeCall(IStaking.stakingToken, ()); -// (success, returnData) = instance.staticcall(tokenData); -// -// // Check the returnData is the call was successful -// if (success) { -// // The returned size must be 32 to fit one address -// if (returnData.length == 32) { -// token = abi.decode(returnData, (address)); -// if (token != olas) { -// return false; -// } -// } else { -// revert(); -// } -// } // Get other service info for staking uint256 minStakingDeposit = IStaking(stakingInstance).minStakingDeposit(); From b5b734ce3e2bc1c4d551ea14651f668dd658f336 Mon Sep 17 00:00:00 2001 From: Aleksandr Kuperman Date: Tue, 22 Oct 2024 19:22:29 +0100 Subject: [PATCH 07/25] refactor: polishing --- .../contribute/ContributeServiceManager.sol | 171 ++++++++---------- contracts/contribute/Contributors.sol | 5 +- .../contribute/interfaces/IContributors.sol | 28 +++ contracts/contribute/interfaces/IService.sol | 1 + contracts/contribute/interfaces/IStaking.sol | 35 ++++ contracts/contribute/interfaces/IToken.sol | 24 +++ 6 files changed, 162 insertions(+), 102 deletions(-) create mode 100644 contracts/contribute/interfaces/IContributors.sol create mode 100644 contracts/contribute/interfaces/IStaking.sol create mode 100644 contracts/contribute/interfaces/IToken.sol diff --git a/contracts/contribute/ContributeServiceManager.sol b/contracts/contribute/ContributeServiceManager.sol index 1fe6b3a..52be292 100644 --- a/contracts/contribute/ContributeServiceManager.sol +++ b/contracts/contribute/ContributeServiceManager.sol @@ -1,87 +1,16 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.28; +import {IContributors} from "./interfaces/IContributors.sol"; import {IService} from "./interfaces/IService.sol"; - -// Contributors interface -interface IContributors { - /// @dev Sets service info for the social id. - /// @param socialId Social id. - /// @param serviceId Service Id. - /// @param multisig Service multisig address. - /// @param stakingInstance Staking instance address. - /// @param serviceOwner Service owner. - function setServiceInfoForId( - uint256 socialId, - uint256 serviceId, - address multisig, - address stakingInstance, - address serviceOwner - ) external; - - /// @dev Gets service info corresponding to a specified social Id. - /// @param socialId Social Id. - /// @return serviceId Corresponding service Id. - /// @return multisig Corresponding service multisig. - /// @return stakingInstance Staking instance address. - /// @return serviceOwner Service owner. - function mapSocialIdServiceInfo(uint256 socialId) external view - returns (uint256 serviceId, address multisig, address stakingInstance, address serviceOwner); -} - -// Staking interface -interface IStaking { - /// @dev Gets service staking token. - /// @return Service staking token address. - function stakingToken() external view returns (address); - - /// @dev Gets minimum service staking deposit value required for staking. - /// @return Minimum service staking deposit. - function minStakingDeposit() external view returns (uint256); - - /// @dev Gets number of required agent instances in the service. - /// @return Number of agent instances. - function numAgentInstances() external view returns (uint256); - - /// @dev Gets the service threshold. - /// @return Threshold. - function threshold() external view returns (uint256); - - /// @dev Stakes the service. - /// @param serviceId Service Id. - function stake(uint256 serviceId) external; - - /// @dev Unstakes the service with collected reward, if available. - /// @param serviceId Service Id. - /// @return reward Staking reward. - function unstake(uint256 serviceId) external returns (uint256); - - /// @dev Claims rewards for the service without an additional checkpoint call. - /// @param serviceId Service Id. - /// @return Staking reward. - function claim(uint256 serviceId) external returns (uint256); -} - -// Token interface -interface IToken { - /// @dev Transfers the token amount. - /// @param to Address to transfer to. - /// @param amount The amount to transfer. - /// @return True if the function execution is successful. - function transfer(address to, uint256 amount) external returns (bool); - - /// @dev Transfers the token amount that was previously approved up until the maximum allowance. - /// @param from Account address to transfer from. - /// @param to Account address to transfer to. - /// @param amount Amount to transfer to. - /// @return True if the function execution is successful. - function transferFrom(address from, address to, uint256 amount) external returns (bool); - - /// @dev Sets `amount` as the allowance of `spender` over the caller's tokens. - /// @param spender Account address that will be able to transfer tokens on behalf of the caller. - /// @param amount Token amount. - /// @return True if the function execution is successful. - function approve(address spender, uint256 amount) external returns (bool); +import {IStaking} from "./interfaces/IStaking.sol"; +import {IToken} from "./interfaces/IToken.sol"; + +// Multisig interface +interface IMultisig { + /// @dev Returns array of owners. + /// @return Array of Safe owners. + function getOwners() external view returns (address[] memory); } /// @dev Zero address. @@ -100,6 +29,12 @@ error ServiceAlreadyStaked(uint256 socialId, uint256 serviceId, address multisig /// @param stakingInstance Staking instance address. error WrongStakingInstance(address stakingInstance); +/// @dev Wrong provided service setup. +/// @param socialId Social Id. +/// @param serviceId Service Id. +/// @param multisig Multisig address. +error WrongServiceSetup(uint256 socialId, uint256 serviceId, address multisig); + /// @dev Service is not defined for the social Id. /// @param socialId Social Id. error ServiceNotDefined(uint256 socialId); @@ -142,6 +77,9 @@ contract ContributeServiceManager { // Safe fallback handler address public immutable fallbackHandler; + // Nonce + uint256 internal nonce; + /// @dev ContributeServiceManager constructor. /// @param _contributorsProxy Contributors proxy address. /// @param _serviceManager Service manager address. @@ -162,6 +100,13 @@ contract ContributeServiceManager { serviceRegistryTokenUtility = IService(serviceManager).serviceRegistryTokenUtility(); } + /// @dev Creates and deploys a service for the contributor. + /// @param token Staking token address. + /// @param minStakingDeposit Min staking deposit value. + /// @param numAgentInstances Number of agent instances in the service. + /// @param threshold Threshold. + /// @return serviceId Minted service Id. + /// @return multisig Service multisig. function _createAndDeploy( address token, uint256 minStakingDeposit, @@ -190,9 +135,31 @@ contract ContributeServiceManager { // Register msg.sender as an agent instance (numAgentInstances wei as a bond wrapper) IService(serviceManager).registerAgents{value: numAgentInstances}(serviceId, instances, agentIds); + // Prepare Safe multisig data + uint256 localNonce = nonce; + bytes memory data = abi.encodePacked(address(0), fallbackHandler, address(0), address(0), uint256(0), + localNonce, "0x"); // Deploy the service - // TODO: fix the data - multisig = IService(serviceManager).deploy(serviceId, safeMultisig, "0x"); + multisig = IService(serviceManager).deploy(serviceId, safeMultisig, data); + + // Update the nonce + nonce = localNonce + 1; + } + + /// @dev Stakes the already deployed service. + /// @param socialId Social Id. + /// @param serviceId Service Id. + /// @param multisig Corresponding service multisig. + /// @param stakingInstance Staking instance. + function _stake(uint256 socialId, uint256 serviceId, address multisig, address stakingInstance) internal { + // Add the service into its social Id corresponding record + IContributors(contributorsProxy).setServiceInfoForId(socialId, serviceId, multisig, stakingInstance, msg.sender); + + // Approve service NFT for the staking instance + IToken(serviceRegistry).approve(stakingInstance, serviceId); + + // Stake the service + IStaking(stakingInstance).stake(serviceId); } /// @dev Creates and deploys a service for the contributor, and stakes it with a specified staking contract. @@ -237,37 +204,38 @@ contract ContributeServiceManager { emit CreatedAndStaked(socialId, msg.sender, serviceId, multisig, stakingInstance); } - function _stake(uint256 socialId, uint256 serviceId, address multisig, address stakingInstance) public { - // Add the service into its social Id corresponding record - IContributors(contributorsProxy).setServiceInfoForId(socialId, serviceId, multisig, stakingInstance, msg.sender); - - // Stake the service - IStaking(stakingInstance).stake(serviceId); - } - /// @dev Stakes the already deployed service. - function stake(uint256 socialId, uint256 serviceId, address stakingInstance) public { + /// @param socialId Social Id. + /// @param serviceId Service Id. + /// @param stakingInstance Staking instance. + function stake(uint256 socialId, uint256 serviceId, address stakingInstance) external { // Check for existing service corresponding to the social Id (uint256 serviceIdCheck, address multisig, , ) = IContributors(contributorsProxy).mapSocialIdServiceInfo(socialId); if (serviceIdCheck > 0) { revert ServiceAlreadyStaked(socialId, serviceIdCheck, multisig); } - // Transfer the service NFT - IToken(serviceRegistry).transferFrom(msg.sender, address(this), serviceId); - - // Approve service NFT for the staking instance - IToken(serviceRegistry).approve(stakingInstance, serviceId); - // Get the service multisig (, multisig, , , , , ) = IService(serviceRegistry).mapServices(serviceId); + // Check that the service multisig owner is msg.sender + uint256 numAgentInstances = IStaking(stakingInstance).numAgentInstances(); + address[] memory multisigOwners = IMultisig(multisig).getOwners(); + if (multisigOwners.length != numAgentInstances || multisigOwners[0] != msg.sender) { + revert WrongServiceSetup(socialId, serviceId, multisig); + } + + // Transfer the service NFT + IToken(serviceRegistry).transferFrom(msg.sender, address(this), serviceId); + // Stake the service _stake(socialId, serviceId, multisig, stakingInstance); emit Staked(socialId, msg.sender, serviceId, multisig, stakingInstance); } + /// @dev Unstakes service Id corresponding to the social Id and clears the contributor record. + /// @param socialId Social Id. function unstake(uint256 socialId) external { // Check for existing service corresponding to the social Id (uint256 serviceId, address multisig, address stakingInstance, address serviceOwner) = @@ -285,7 +253,7 @@ contract ContributeServiceManager { IStaking(stakingInstance).unstake(serviceId); // Transfer the service back to the original owner - IToken(serviceRegistry).transfer(serviceOwner, serviceId); + IToken(serviceRegistry).transfer(msg.sender, serviceId); // Zero the service info: the service is out of the contribute records, however multisig activity is still valid // If the same service is staked back, the multisig activity continues being tracked @@ -294,7 +262,10 @@ contract ContributeServiceManager { emit Unstaked(socialId, msg.sender, serviceId, multisig, stakingInstance); } - function claim(uint256 socialId) external { + /// @dev Claims rewards for the service. + /// @param socialId Social Id. + /// @return reward Staking reward. + function claim(uint256 socialId) external returns (uint256 reward) { // Check for existing service corresponding to the social Id (uint256 serviceId, address multisig, address stakingInstance, address serviceOwner) = IContributors(contributorsProxy).mapSocialIdServiceInfo(socialId); @@ -308,7 +279,7 @@ contract ContributeServiceManager { } // Claim staking rewards - IStaking(stakingInstance).claim(serviceId); + reward = IStaking(stakingInstance).claim(serviceId); emit Claimed(socialId, msg.sender, serviceId, multisig, stakingInstance); } diff --git a/contracts/contribute/Contributors.sol b/contracts/contribute/Contributors.sol index 9a4d6ad..0b23b05 100644 --- a/contracts/contribute/Contributors.sol +++ b/contracts/contribute/Contributors.sol @@ -45,7 +45,8 @@ contract Contributors { event ImplementationUpdated(address indexed implementation); event OwnerUpdated(address indexed owner); event ManagerUpdated(address indexed manager); - event SetServiceInfoForId(uint256 indexed socialId, uint256 indexed serviceId, address indexed multisig); + event SetServiceInfoForId(uint256 indexed socialId, uint256 indexed serviceId, address multisig, + address stakingInstance, address indexed serviceOwner); event SetContributeAgentStatuses(address[] mechMarketplaces, bool[] statuses); event MultisigActivityChanged(address indexed senderAgent, address[] multisigs, uint256[] activityChanges); @@ -163,7 +164,7 @@ contract Contributors { serviceInfo.stakingInstance = stakingInstance; serviceInfo.serviceOwner = serviceOwner; - emit SetServiceInfoForId(socialId, serviceId, multisig); + emit SetServiceInfoForId(socialId, serviceId, multisig, stakingInstance, serviceOwner); } /// @dev Sets contribute agent statues. diff --git a/contracts/contribute/interfaces/IContributors.sol b/contracts/contribute/interfaces/IContributors.sol new file mode 100644 index 0000000..8476185 --- /dev/null +++ b/contracts/contribute/interfaces/IContributors.sol @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.28; + +// Contributors interface +interface IContributors { + /// @dev Sets service info for the social id. + /// @param socialId Social id. + /// @param serviceId Service Id. + /// @param multisig Service multisig address. + /// @param stakingInstance Staking instance address. + /// @param serviceOwner Service owner. + function setServiceInfoForId( + uint256 socialId, + uint256 serviceId, + address multisig, + address stakingInstance, + address serviceOwner + ) external; + + /// @dev Gets service info corresponding to a specified social Id. + /// @param socialId Social Id. + /// @return serviceId Corresponding service Id. + /// @return multisig Corresponding service multisig. + /// @return stakingInstance Staking instance address. + /// @return serviceOwner Service owner. + function mapSocialIdServiceInfo(uint256 socialId) external view + returns (uint256 serviceId, address multisig, address stakingInstance, address serviceOwner); +} diff --git a/contracts/contribute/interfaces/IService.sol b/contracts/contribute/interfaces/IService.sol index 03dba4b..d42b652 100644 --- a/contracts/contribute/interfaces/IService.sol +++ b/contracts/contribute/interfaces/IService.sol @@ -1,6 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.28; +// Service registry related interface interface IService { struct AgentParams { // Number of agent instances diff --git a/contracts/contribute/interfaces/IStaking.sol b/contracts/contribute/interfaces/IStaking.sol new file mode 100644 index 0000000..5cdcbc2 --- /dev/null +++ b/contracts/contribute/interfaces/IStaking.sol @@ -0,0 +1,35 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.28; + +// Staking interface +interface IStaking { + /// @dev Gets service staking token. + /// @return Service staking token address. + function stakingToken() external view returns (address); + + /// @dev Gets minimum service staking deposit value required for staking. + /// @return Minimum service staking deposit. + function minStakingDeposit() external view returns (uint256); + + /// @dev Gets number of required agent instances in the service. + /// @return Number of agent instances. + function numAgentInstances() external view returns (uint256); + + /// @dev Gets the service threshold. + /// @return Threshold. + function threshold() external view returns (uint256); + + /// @dev Stakes the service. + /// @param serviceId Service Id. + function stake(uint256 serviceId) external; + + /// @dev Unstakes the service with collected reward, if available. + /// @param serviceId Service Id. + /// @return reward Staking reward. + function unstake(uint256 serviceId) external returns (uint256); + + /// @dev Claims rewards for the service without an additional checkpoint call. + /// @param serviceId Service Id. + /// @return Staking reward. + function claim(uint256 serviceId) external returns (uint256); +} diff --git a/contracts/contribute/interfaces/IToken.sol b/contracts/contribute/interfaces/IToken.sol new file mode 100644 index 0000000..cd0aaf1 --- /dev/null +++ b/contracts/contribute/interfaces/IToken.sol @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.28; + +// Token interface +interface IToken { + /// @dev Transfers the token amount. + /// @param to Address to transfer to. + /// @param amount The amount to transfer. + /// @return True if the function execution is successful. + function transfer(address to, uint256 amount) external returns (bool); + + /// @dev Transfers the token amount that was previously approved up until the maximum allowance. + /// @param from Account address to transfer from. + /// @param to Account address to transfer to. + /// @param amount Amount to transfer to. + /// @return True if the function execution is successful. + function transferFrom(address from, address to, uint256 amount) external returns (bool); + + /// @dev Sets `amount` as the allowance of `spender` over the caller's tokens. + /// @param spender Account address that will be able to transfer tokens on behalf of the caller. + /// @param amount Token amount. + /// @return True if the function execution is successful. + function approve(address spender, uint256 amount) external returns (bool); +} \ No newline at end of file From 0b244080f6a2bfc885a251146364bafc878f85e0 Mon Sep 17 00:00:00 2001 From: Aleksandr Kuperman Date: Tue, 22 Oct 2024 19:29:27 +0100 Subject: [PATCH 08/25] refactor: polishing --- contracts/contribute/ContributeServiceManager.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/contribute/ContributeServiceManager.sol b/contracts/contribute/ContributeServiceManager.sol index 52be292..144e049 100644 --- a/contracts/contribute/ContributeServiceManager.sol +++ b/contracts/contribute/ContributeServiceManager.sol @@ -86,7 +86,7 @@ contract ContributeServiceManager { /// @param _safeMultisig Safe multisig address. /// @param _fallbackHandler Multisig fallback handler address. constructor(address _contributorsProxy, address _serviceManager, address _safeMultisig, address _fallbackHandler) { - // Check the zero address + // Check for zero addresses if (_contributorsProxy == address(0) || _serviceManager == address(0) || _safeMultisig == address(0) || _fallbackHandler == address(0)) { revert ZeroAddress(); From a43e44fafad9987526af7ee36fa24399a20b5a6e Mon Sep 17 00:00:00 2001 From: Aleksandr Kuperman Date: Wed, 23 Oct 2024 11:33:26 +0100 Subject: [PATCH 09/25] refactor: staking verifier --- .../contribute/ContributeActivityChecker.sol | 2 +- ...rviceManager.sol => ContributeManager.sol} | 104 ++++++++++++------ contracts/contribute/Contributors.sol | 8 +- contracts/contribute/interfaces/IStaking.sol | 5 + 4 files changed, 84 insertions(+), 35 deletions(-) rename contracts/contribute/{ContributeServiceManager.sol => ContributeManager.sol} (78%) diff --git a/contracts/contribute/ContributeActivityChecker.sol b/contracts/contribute/ContributeActivityChecker.sol index c4a69d9..7c343a5 100644 --- a/contracts/contribute/ContributeActivityChecker.sol +++ b/contracts/contribute/ContributeActivityChecker.sol @@ -46,7 +46,7 @@ contract ContributeActivityChecker { /// @return nonces Set of a single service multisig nonce. function getMultisigNonces(address multisig) external view virtual returns (uint256[] memory nonces) { nonces = new uint256[](1); - // The nonces are equal to the social off-chain activity corresponding multisig activity + // The nonce is equal to the social off-chain activity corresponding to a multisig activity nonces[0] = IContributors(contributorsProxy).mapMutisigActivities(multisig); } diff --git a/contracts/contribute/ContributeServiceManager.sol b/contracts/contribute/ContributeManager.sol similarity index 78% rename from contracts/contribute/ContributeServiceManager.sol rename to contracts/contribute/ContributeManager.sol index 144e049..21a8b79 100644 --- a/contracts/contribute/ContributeServiceManager.sol +++ b/contracts/contribute/ContributeManager.sol @@ -45,12 +45,12 @@ error ServiceNotDefined(uint256 socialId); /// @param serviceOwner Actual service owner. error ServiceOwnerOnly(uint256 serviceId, address sender, address serviceOwner); -/// @title ContributeServiceManager - Smart contract for managing services for contributors +/// @title ContributeManager - Smart contract for managing services for contributors /// @author Aleksandr Kuperman - /// @author Andrey Lebedev - /// @author Tatiana Priemova - /// @author David Vilela - -contract ContributeServiceManager { +contract ContributeManager { event CreatedAndStaked(uint256 indexed socialId, address indexed serviceOwner, uint256 serviceId, address indexed multisig, address stakingInstance); event Staked(uint256 indexed socialId, address indexed serviceOwner, uint256 serviceId, @@ -60,18 +60,26 @@ contract ContributeServiceManager { event Claimed(uint256 indexed socialId, address indexed serviceOwner, uint256 serviceId, address indexed multisig, address stakingInstance); - // Contribute agent Id - uint256 public constant AGENT_ID = 6; - // Contributor service config hash mock - bytes32 public constant CONFIG_HASH = 0x0000000000000000000000000000000000000000000000000000000000000006; - // Contributors proxy contract address + // Number of agent instances + uint256 public constant NUM_AGENT_INSTANCES = 1; + // Threshold + uint256 public constant THRESHOLD = 1; + // Contributor agent Id + uint256 public immutable agentId; + // Contributor service config hash + bytes32 public immutable configHash; + // Contributors proxy address address public immutable contributorsProxy; - // Service manager contract address + // Service manager address address public immutable serviceManager; + // OLAS token address + address public immutable olas; // Service registry address address public immutable serviceRegistry; // Service registry token utility address address public immutable serviceRegistryTokenUtility; + // Staking factory address + address public immutable stakingFactory; // Safe multisig processing contract address address public immutable safeMultisig; // Safe fallback handler @@ -80,20 +88,43 @@ contract ContributeServiceManager { // Nonce uint256 internal nonce; - /// @dev ContributeServiceManager constructor. + /// @dev ContributeManager constructor. /// @param _contributorsProxy Contributors proxy address. /// @param _serviceManager Service manager address. + /// @param _olas OLAS token address. + /// @param _stakingFactory Staking factory address. /// @param _safeMultisig Safe multisig address. /// @param _fallbackHandler Multisig fallback handler address. - constructor(address _contributorsProxy, address _serviceManager, address _safeMultisig, address _fallbackHandler) { + /// @param _agentId Contributor agent Id. + /// @param _configHash Contributor service config hash. + constructor( + address _contributorsProxy, + address _serviceManager, + address _olas, + address _stakingFactory, + address _safeMultisig, + address _fallbackHandler, + uint256 _agentId, + bytes32 _configHash + ) { // Check for zero addresses - if (_contributorsProxy == address(0) || _serviceManager == address(0) || _safeMultisig == address(0) || - _fallbackHandler == address(0)) { + if (_contributorsProxy == address(0) || _serviceManager == address(0) || _olas == address(0) || + _stakingFactory == address(0) || _safeMultisig == address(0) || _fallbackHandler == address(0)) { revert ZeroAddress(); } + // Check for zero values + if (_agentId == 0 || _configHash == 0) { + revert ZeroValue(); + } + + agentId = _agentId; + configHash = _configHash; + contributorsProxy = _contributorsProxy; serviceManager = _serviceManager; + olas = _olas; + stakingFactory = _stakingFactory; safeMultisig = _safeMultisig; fallbackHandler = _fallbackHandler; serviceRegistry = IService(serviceManager).serviceRegistry(); @@ -103,42 +134,39 @@ contract ContributeServiceManager { /// @dev Creates and deploys a service for the contributor. /// @param token Staking token address. /// @param minStakingDeposit Min staking deposit value. - /// @param numAgentInstances Number of agent instances in the service. - /// @param threshold Threshold. /// @return serviceId Minted service Id. /// @return multisig Service multisig. function _createAndDeploy( address token, - uint256 minStakingDeposit, - uint256 numAgentInstances, - uint256 threshold + uint256 minStakingDeposit ) internal returns (uint256 serviceId, address multisig) { // Set agent params - IService.AgentParams[] memory agentParams = new IService.AgentParams[](1); - agentParams[0] = IService.AgentParams(uint32(numAgentInstances), uint96(minStakingDeposit)); + IService.AgentParams[] memory agentParams = new IService.AgentParams[](NUM_AGENT_INSTANCES); + agentParams[0] = IService.AgentParams(uint32(NUM_AGENT_INSTANCES), uint96(minStakingDeposit)); // Set agent Ids - uint32[] memory agentIds = new uint32[](1); - agentIds[0] = uint32(AGENT_ID); + uint32[] memory agentIds = new uint32[](NUM_AGENT_INSTANCES); + agentIds[0] = uint32(agentId); // Set agent instances as [msg.sender] - address[] memory instances = new address[](1); + address[] memory instances = new address[](NUM_AGENT_INSTANCES); instances[0] = msg.sender; // Create a service owned by this contract - serviceId = IService(serviceManager).create(address(this), token, CONFIG_HASH, agentIds, - agentParams, uint32(threshold)); + serviceId = IService(serviceManager).create(address(this), token, configHash, agentIds, + agentParams, uint32(THRESHOLD)); // Activate registration (1 wei as a deposit wrapper) IService(serviceManager).activateRegistration{value: 1}(serviceId); // Register msg.sender as an agent instance (numAgentInstances wei as a bond wrapper) - IService(serviceManager).registerAgents{value: numAgentInstances}(serviceId, instances, agentIds); + IService(serviceManager).registerAgents{value: NUM_AGENT_INSTANCES}(serviceId, instances, agentIds); // Prepare Safe multisig data uint256 localNonce = nonce; + uint256 randomNonce = uint256(keccak256(abi.encodePacked(block.timestamp, msg.sender, localNonce))); bytes memory data = abi.encodePacked(address(0), fallbackHandler, address(0), address(0), uint256(0), - localNonce, "0x"); + randomNonce, "0x"); // Deploy the service multisig = IService(serviceManager).deploy(serviceId, safeMultisig, data); @@ -167,15 +195,29 @@ contract ContributeServiceManager { /// @param socialId Contributor social Id. /// @param stakingInstance Contribute staking instance address. function createAndStake(uint256 socialId, address stakingInstance) external payable { + // Check for zero value + if (socialId == 0) { + revert ZeroValue(); + } + // Check for existing service corresponding to the social Id (uint256 serviceId, address multisig, , ) = IContributors(contributorsProxy).mapSocialIdServiceInfo(socialId); if (serviceId > 0) { revert ServiceAlreadyStaked(socialId, serviceId, multisig); } + // Check for staking instance validity + if(!IStaking(stakingFactory).verifyInstance(stakingInstance)) { + revert WrongStakingInstance(stakingInstance); + } + // Get the token info from the staking contract // If this call fails, it means the staking contract does not have a token and is not compatible address token = IStaking(stakingInstance).stakingToken(); + // Check the token address + if (token != olas) { + revert WrongStakingInstance(stakingInstance); + } // Get other service info for staking uint256 minStakingDeposit = IStaking(stakingInstance).minStakingDeposit(); @@ -183,20 +225,20 @@ contract ContributeServiceManager { uint256 threshold = IStaking(stakingInstance).threshold(); // Check for number of agent instances that must be equal to one, // since msg.sender is the only service multisig owner - if (numAgentInstances != 1 || threshold != 1) { + if (numAgentInstances != NUM_AGENT_INSTANCES || threshold != THRESHOLD) { revert WrongStakingInstance(stakingInstance); } // Calculate the total bond required for the service deployment: - uint256 totalBond = (1 + numAgentInstances) * minStakingDeposit; + uint256 totalBond = (1 + NUM_AGENT_INSTANCES) * minStakingDeposit; // Transfer the total bond amount from the contributor - IToken(token).transferFrom(msg.sender, address(this), totalBond); + IToken(olas).transferFrom(msg.sender, address(this), totalBond); // Approve token for the serviceRegistryTokenUtility contract - IToken(token).approve(serviceRegistryTokenUtility, totalBond); + IToken(olas).approve(serviceRegistryTokenUtility, totalBond); // Create and deploy service - (serviceId, multisig) = _createAndDeploy(token, minStakingDeposit, numAgentInstances, threshold); + (serviceId, multisig) = _createAndDeploy(olas, minStakingDeposit); // Stake the service _stake(socialId, serviceId, multisig, stakingInstance); diff --git a/contracts/contribute/Contributors.sol b/contracts/contribute/Contributors.sol index 0b23b05..02becea 100644 --- a/contracts/contribute/Contributors.sol +++ b/contracts/contribute/Contributors.sol @@ -47,7 +47,7 @@ contract Contributors { event ManagerUpdated(address indexed manager); event SetServiceInfoForId(uint256 indexed socialId, uint256 indexed serviceId, address multisig, address stakingInstance, address indexed serviceOwner); - event SetContributeAgentStatuses(address[] mechMarketplaces, bool[] statuses); + event SetContributeAgentStatuses(address[] contributeAgents, bool[] statuses); event MultisigActivityChanged(address indexed senderAgent, address[] multisigs, uint256[] activityChanges); // Version number @@ -170,7 +170,7 @@ contract Contributors { /// @dev Sets contribute agent statues. /// @param contributeAgents Contribute agent addresses. /// @param statuses Corresponding whitelisting statues. - function setMechMarketplaceStatuses(address[] memory contributeAgents, bool[] memory statuses) external { + function setContributeAgentStatuses(address[] memory contributeAgents, bool[] memory statuses) external { // Check for the ownership if (msg.sender != owner) { revert OwnerOnly(msg.sender, owner); @@ -181,7 +181,7 @@ contract Contributors { revert WrongArrayLength(contributeAgents.length, statuses.length); } - // Traverse all the mech marketplaces and statuses + // Traverse all contribute agents and statuses for (uint256 i = 0; i < contributeAgents.length; ++i) { if (contributeAgents[i] == address(0)) { revert ZeroAddress(); @@ -214,4 +214,6 @@ contract Contributors { emit MultisigActivityChanged(msg.sender, multisigs, activityChanges); } + + } \ No newline at end of file diff --git a/contracts/contribute/interfaces/IStaking.sol b/contracts/contribute/interfaces/IStaking.sol index 5cdcbc2..778412c 100644 --- a/contracts/contribute/interfaces/IStaking.sol +++ b/contracts/contribute/interfaces/IStaking.sol @@ -32,4 +32,9 @@ interface IStaking { /// @param serviceId Service Id. /// @return Staking reward. function claim(uint256 serviceId) external returns (uint256); + + /// @dev Verifies a service staking contract instance. + /// @param instance Service staking proxy instance. + /// @return True, if verification is successful. + function verifyInstance(address instance) external view returns (bool); } From edf4380650e76cb2cfa4630bce3918e275b674fa Mon Sep 17 00:00:00 2001 From: Aleksandr Kuperman Date: Wed, 23 Oct 2024 12:08:38 +0100 Subject: [PATCH 10/25] refactor: service owner dependency first --- contracts/contribute/ContributeManager.sol | 40 +++++++------------ contracts/contribute/Contributors.sol | 24 +++++------ .../contribute/interfaces/IContributors.sol | 14 +++---- 3 files changed, 33 insertions(+), 45 deletions(-) diff --git a/contracts/contribute/ContributeManager.sol b/contracts/contribute/ContributeManager.sol index 21a8b79..e7bcb92 100644 --- a/contracts/contribute/ContributeManager.sol +++ b/contracts/contribute/ContributeManager.sol @@ -181,7 +181,7 @@ contract ContributeManager { /// @param stakingInstance Staking instance. function _stake(uint256 socialId, uint256 serviceId, address multisig, address stakingInstance) internal { // Add the service into its social Id corresponding record - IContributors(contributorsProxy).setServiceInfoForId(socialId, serviceId, multisig, stakingInstance, msg.sender); + IContributors(contributorsProxy).setServiceInfoForId(msg.sender, socialId, serviceId, multisig, stakingInstance); // Approve service NFT for the staking instance IToken(serviceRegistry).approve(stakingInstance, serviceId); @@ -200,8 +200,8 @@ contract ContributeManager { revert ZeroValue(); } - // Check for existing service corresponding to the social Id - (uint256 serviceId, address multisig, , ) = IContributors(contributorsProxy).mapSocialIdServiceInfo(socialId); + // Check for existing service corresponding to the msg.sender + (, uint256 serviceId, address multisig, ) = IContributors(contributorsProxy).mapSocialIdServiceInfo(msg.sender); if (serviceId > 0) { revert ServiceAlreadyStaked(socialId, serviceId, multisig); } @@ -251,8 +251,8 @@ contract ContributeManager { /// @param serviceId Service Id. /// @param stakingInstance Staking instance. function stake(uint256 socialId, uint256 serviceId, address stakingInstance) external { - // Check for existing service corresponding to the social Id - (uint256 serviceIdCheck, address multisig, , ) = IContributors(contributorsProxy).mapSocialIdServiceInfo(socialId); + // Check for existing service corresponding to the msg.sender + (, uint256 serviceIdCheck, address multisig, ) = IContributors(contributorsProxy).mapSocialIdServiceInfo(msg.sender); if (serviceIdCheck > 0) { revert ServiceAlreadyStaked(socialId, serviceIdCheck, multisig); } @@ -276,21 +276,15 @@ contract ContributeManager { emit Staked(socialId, msg.sender, serviceId, multisig, stakingInstance); } - /// @dev Unstakes service Id corresponding to the social Id and clears the contributor record. - /// @param socialId Social Id. - function unstake(uint256 socialId) external { + /// @dev Unstakes service Id corresponding to the msg.sender and clears the contributor record. + function unstake() external { // Check for existing service corresponding to the social Id - (uint256 serviceId, address multisig, address stakingInstance, address serviceOwner) = - IContributors(contributorsProxy).mapSocialIdServiceInfo(socialId); + (uint256 socialId, uint256 serviceId, address multisig, address stakingInstance) = + IContributors(contributorsProxy).mapSocialIdServiceInfo(msg.sender); if (serviceId == 0) { revert ServiceNotDefined(socialId); } - // Check for service owner - if (msg.sender != serviceOwner) { - revert ServiceOwnerOnly(serviceId, msg.sender, serviceOwner); - } - // Unstake the service IStaking(stakingInstance).unstake(serviceId); @@ -299,27 +293,21 @@ contract ContributeManager { // Zero the service info: the service is out of the contribute records, however multisig activity is still valid // If the same service is staked back, the multisig activity continues being tracked - IContributors(contributorsProxy).setServiceInfoForId(socialId, 0, address(0), address(0), address(0)); + IContributors(contributorsProxy).setServiceInfoForId(msg.sender, 0, 0, address(0), address(0)); emit Unstaked(socialId, msg.sender, serviceId, multisig, stakingInstance); } - /// @dev Claims rewards for the service. - /// @param socialId Social Id. + /// @dev Claims rewards for the service corresponding to msg.sender. /// @return reward Staking reward. - function claim(uint256 socialId) external returns (uint256 reward) { + function claim() external returns (uint256 reward) { // Check for existing service corresponding to the social Id - (uint256 serviceId, address multisig, address stakingInstance, address serviceOwner) = - IContributors(contributorsProxy).mapSocialIdServiceInfo(socialId); + (uint256 socialId, uint256 serviceId, address multisig, address stakingInstance) = + IContributors(contributorsProxy).mapSocialIdServiceInfo(msg.sender); if (serviceId == 0) { revert ServiceNotDefined(socialId); } - // Check for service owner - if (msg.sender != serviceOwner) { - revert ServiceOwnerOnly(serviceId, msg.sender, serviceOwner); - } - // Claim staking rewards reward = IStaking(stakingInstance).claim(serviceId); diff --git a/contracts/contribute/Contributors.sol b/contracts/contribute/Contributors.sol index 02becea..75c94ee 100644 --- a/contracts/contribute/Contributors.sol +++ b/contracts/contribute/Contributors.sol @@ -26,14 +26,14 @@ error UnauthorizedAccount(address account); // Struct for service info struct ServiceInfo { + // Social Id + uint256 socialId; // Service Id uint256 serviceId; // Corresponding service multisig address multisig; // Staking instance address address stakingInstance; - // Service owner address - address serviceOwner; } /// @title Contributors - Smart contract for managing contributors @@ -45,8 +45,8 @@ contract Contributors { event ImplementationUpdated(address indexed implementation); event OwnerUpdated(address indexed owner); event ManagerUpdated(address indexed manager); - event SetServiceInfoForId(uint256 indexed socialId, uint256 indexed serviceId, address multisig, - address stakingInstance, address indexed serviceOwner); + event SetServiceInfoForId(address indexed serviceOwner, uint256 indexed socialId, uint256 indexed serviceId, + address multisig, address stakingInstance); event SetContributeAgentStatuses(address[] contributeAgents, bool[] statuses); event MultisigActivityChanged(address indexed senderAgent, address[] multisigs, uint256[] activityChanges); @@ -60,8 +60,8 @@ contract Contributors { // Service manager contract address address public manager; - // Mapping of social id => service info - mapping(uint256 => ServiceInfo) public mapSocialIdServiceInfo; + // Mapping of address => service info + mapping(address => ServiceInfo) public mapSocialIdServiceInfo; // Mapping of service multisig address => activity mapping(address => uint256) public mapMutisigActivities; // Mapping of whitelisted contributor agents @@ -140,17 +140,17 @@ contract Contributors { } /// @dev Sets service info for the social id. + /// @param serviceOwner Service owner. /// @param socialId Social id. /// @param serviceId Service Id. /// @param multisig Service multisig address. /// @param stakingInstance Staking instance address. - /// @param serviceOwner Service owner. function setServiceInfoForId( + address serviceOwner, uint256 socialId, uint256 serviceId, address multisig, - address stakingInstance, - address serviceOwner + address stakingInstance ) external { // Check for manager if (msg.sender != manager) { @@ -158,13 +158,13 @@ contract Contributors { } // Set (or remove) multisig for the corresponding social id - ServiceInfo storage serviceInfo = mapSocialIdServiceInfo[socialId]; + ServiceInfo storage serviceInfo = mapSocialIdServiceInfo[serviceOwner]; + serviceInfo.socialId = socialId; serviceInfo.serviceId = serviceId; serviceInfo.multisig = multisig; serviceInfo.stakingInstance = stakingInstance; - serviceInfo.serviceOwner = serviceOwner; - emit SetServiceInfoForId(socialId, serviceId, multisig, stakingInstance, serviceOwner); + emit SetServiceInfoForId(serviceOwner, socialId, serviceId, multisig, stakingInstance); } /// @dev Sets contribute agent statues. diff --git a/contracts/contribute/interfaces/IContributors.sol b/contracts/contribute/interfaces/IContributors.sol index 8476185..6287c35 100644 --- a/contracts/contribute/interfaces/IContributors.sol +++ b/contracts/contribute/interfaces/IContributors.sol @@ -4,25 +4,25 @@ pragma solidity ^0.8.28; // Contributors interface interface IContributors { /// @dev Sets service info for the social id. + /// @param serviceOwner Service owner. /// @param socialId Social id. /// @param serviceId Service Id. /// @param multisig Service multisig address. /// @param stakingInstance Staking instance address. - /// @param serviceOwner Service owner. function setServiceInfoForId( + address serviceOwner, uint256 socialId, uint256 serviceId, address multisig, - address stakingInstance, - address serviceOwner + address stakingInstance ) external; /// @dev Gets service info corresponding to a specified social Id. - /// @param socialId Social Id. + /// @param serviceOwner Service owner. + /// @return socialId Social Id. /// @return serviceId Corresponding service Id. /// @return multisig Corresponding service multisig. /// @return stakingInstance Staking instance address. - /// @return serviceOwner Service owner. - function mapSocialIdServiceInfo(uint256 socialId) external view - returns (uint256 serviceId, address multisig, address stakingInstance, address serviceOwner); + function mapSocialIdServiceInfo(address serviceOwner) external view + returns (uint256 socialId, uint256 serviceId, address multisig, address stakingInstance); } From 585003faeec5dff2fd96a326f07c3e809dc32898 Mon Sep 17 00:00:00 2001 From: Aleksandr Kuperman Date: Wed, 23 Oct 2024 12:09:01 +0100 Subject: [PATCH 11/25] chore: spacing --- contracts/contribute/Contributors.sol | 2 -- 1 file changed, 2 deletions(-) diff --git a/contracts/contribute/Contributors.sol b/contracts/contribute/Contributors.sol index 75c94ee..363a1e3 100644 --- a/contracts/contribute/Contributors.sol +++ b/contracts/contribute/Contributors.sol @@ -214,6 +214,4 @@ contract Contributors { emit MultisigActivityChanged(msg.sender, multisigs, activityChanges); } - - } \ No newline at end of file From 528f7c1bd4f251b91242bfecc99920931c30164a Mon Sep 17 00:00:00 2001 From: Aleksandr Kuperman Date: Wed, 23 Oct 2024 13:51:09 +0100 Subject: [PATCH 12/25] chore: adding deployment scripts --- contracts/contribute/Contributors.sol | 9 +- hardhat.config.js | 157 ++++++++++++++++-- scripts/deployment/deploy_07_contributors.js | 75 +++++++++ .../deploy_08_contributors_proxy.js | 80 +++++++++ .../deploy_09_contribute_manager.js | 84 ++++++++++ .../deploy_10_contribute_activity_checker.js | 77 +++++++++ ...oy_11_contributors_proxy_change_manager.js | 66 ++++++++ ...ploy_12_contributors_proxy_change_owner.js | 66 ++++++++ .../globals_base_mainnet_contribute.json | 1 + scripts/deployment/globals_base_sepolia.json | 2 +- .../verify_08_contributors_proxy.js | 11 ++ .../verify_09_contribute_manager.js | 23 +++ .../verify_10_contribute_activity_checker.js | 11 ++ 13 files changed, 639 insertions(+), 23 deletions(-) create mode 100644 scripts/deployment/deploy_07_contributors.js create mode 100644 scripts/deployment/deploy_08_contributors_proxy.js create mode 100644 scripts/deployment/deploy_09_contribute_manager.js create mode 100644 scripts/deployment/deploy_10_contribute_activity_checker.js create mode 100644 scripts/deployment/deploy_11_contributors_proxy_change_manager.js create mode 100644 scripts/deployment/deploy_12_contributors_proxy_change_owner.js create mode 100644 scripts/deployment/globals_base_mainnet_contribute.json create mode 100644 scripts/deployment/verify_08_contributors_proxy.js create mode 100644 scripts/deployment/verify_09_contribute_manager.js create mode 100644 scripts/deployment/verify_10_contribute_activity_checker.js diff --git a/contracts/contribute/Contributors.sol b/contracts/contribute/Contributors.sol index 363a1e3..6f43185 100644 --- a/contracts/contribute/Contributors.sol +++ b/contracts/contribute/Contributors.sol @@ -68,20 +68,13 @@ contract Contributors { mapping(address => bool) public mapContributeAgents; /// @dev Contributors initializer. - /// @param _manager Manager address. - function initialize(address _manager) external{ + function initialize() external{ // Check for already initialized if (owner != address(0)) { revert AlreadyInitialized(); } - // Check for zero address - if (_manager == address(0)) { - revert ZeroAddress(); - } - owner = msg.sender; - manager = _manager; } /// @dev Changes the contributors implementation contract address. diff --git a/hardhat.config.js b/hardhat.config.js index c30cfbb..db0e789 100644 --- a/hardhat.config.js +++ b/hardhat.config.js @@ -12,8 +12,8 @@ require("@nomicfoundation/hardhat-toolbox"); const ALCHEMY_API_KEY_MAINNET = process.env.ALCHEMY_API_KEY_MAINNET; const ALCHEMY_API_KEY_MATIC = process.env.ALCHEMY_API_KEY_MATIC; -const ALCHEMY_API_KEY_GOERLI = process.env.ALCHEMY_API_KEY_GOERLI; -const ALCHEMY_API_KEY_MUMBAI = process.env.ALCHEMY_API_KEY_MUMBAI; +const ALCHEMY_API_KEY_SEPOLIA = process.env.ALCHEMY_API_KEY_SEPOLIA; +const ALCHEMY_API_KEY_AMOY = process.env.ALCHEMY_API_KEY_AMOY; let TESTNET_MNEMONIC = process.env.TESTNET_MNEMONIC; const accounts = { @@ -32,8 +32,10 @@ if (!TESTNET_MNEMONIC) { const ETHERSCAN_API_KEY = process.env.ETHERSCAN_API_KEY; const POLYGONSCAN_API_KEY = process.env.POLYGONSCAN_API_KEY; const GNOSISSCAN_API_KEY = process.env.GNOSISSCAN_API_KEY; -const CHIADOSCAN_API_KEY = "10200"; +const ARBISCAN_API_KEY = process.env.ARBISCAN_API_KEY; const OPSCAN_API_KEY = process.env.OPSCAN_API_KEY; +const BASESCAN_API_KEY = process.env.BASESCAN_API_KEY; +const CELOSCAN_API_KEY = process.env.CELOSCAN_API_KEY; module.exports = { networks: { @@ -55,24 +57,70 @@ module.exports = { accounts: accounts, chainId: 100, }, - goerli: { - url: "https://eth-goerli.g.alchemy.com/v2/" + ALCHEMY_API_KEY_GOERLI, + arbitrumOne: { + url: "https://arb1.arbitrum.io/rpc", accounts: accounts, - chainId: 5, + chainId: 42161, }, - polygonMumbai: { - url: "https://polygon-mumbai.g.alchemy.com/v2/" + ALCHEMY_API_KEY_MUMBAI, + optimistic: { + url: "https://optimism.drpc.org", + accounts: accounts, + chainId: 10, + }, + base: { + url: "https://mainnet.base.org", + accounts: accounts, + chainId: 8453, + }, + celo: { + url: "https://forno.celo.org", accounts: accounts, + chainId: 42220, + }, + mode: { + url: "https://mainnet.mode.network", + accounts: accounts, + chainId: 34443, + }, + sepolia: { + url: "https://eth-sepolia.g.alchemy.com/v2/" + ALCHEMY_API_KEY_SEPOLIA, + accounts: accounts, + chainId: 11155111, + }, + polygonAmoy: { + url: "https://polygon-amoy.g.alchemy.com/v2/" + ALCHEMY_API_KEY_AMOY, + accounts: accounts, + chainId: 80002 }, chiado: { url: "https://rpc.chiadochain.net", accounts: accounts, chainId: 10200 }, - optimistic: { - url: "https://optimism.drpc.org", + arbitrumSepolia: { + url: "https://sepolia-rollup.arbitrum.io/rpc", accounts: accounts, - chainId: 10, + chainId: 421614, + }, + optimisticSepolia: { + url: "https://sepolia.optimism.io", + accounts: accounts, + chainId: 11155420, + }, + baseSepolia: { + url: "https://sepolia.base.org", + accounts: accounts, + chainId: 84532, + }, + celoAlfajores: { + url: "https://alfajores-forno.celo-testnet.org", + accounts: accounts, + chainId: 44787, + }, + modeSepolia: { + url: "https://sepolia.mode.network", + accounts: accounts, + chainId: 919, }, hardhat: { allowUnlimitedContractSize: true @@ -80,6 +128,14 @@ module.exports = { }, etherscan: { customChains: [ + { + network: "polygonAmoy", + chainId: 80002, + urls: { + apiURL: "https://api-amoy.polygonscan.com/api", + browserURL: "https://amoy.polygonscan.com/" + } + }, { network: "chiado", chainId: 10200, @@ -96,6 +152,14 @@ module.exports = { browserURL: "https://gnosisscan.io/" }, }, + { + network: "arbitrumSepolia", + chainId: 421614, + urls: { + apiURL: "https://api-sepolia.arbiscan.io/api", + browserURL: "https://sepolia.arbiscan.io" + }, + }, { network: "optimistic", chainId: 10, @@ -104,15 +168,80 @@ module.exports = { browserURL: "https://optimistic.etherscan.io" }, }, + { + network: "optimisticSepolia", + chainId: 11155420, + urls: { + apiURL: "https://api-sepolia-optimism.etherscan.io/api", + browserURL: "https://sepolia-optimistic.etherscan.io" + }, + }, + { + network: "base", + chainId: 8453, + urls: { + apiURL: "https://api.basescan.org/api", + browserURL: "https://basescan.org" + }, + }, + { + network: "baseSepolia", + chainId: 84532, + urls: { + apiURL: "https://base-sepolia.blockscout.com/api", + browserURL: "https://base-sepolia.blockscout.com/" + }, + }, + { + network: "celo", + chainId: 42220, + urls: { + apiURL: "https://api.celoscan.io/api", + browserURL: "https://explorer.celo.org/" + }, + }, + { + network: "celoAlfajores", + chainId: 44787, + urls: { + apiURL: "https://api-alfajores.celoscan.io/api", + browserURL: "https://alfajores-blockscout.celo-testnet.org/" + }, + }, + { + network: "mode", + chainId: 34443, + urls: { + apiURL: "https://explorer.mode.network/api", + browserURL: "https://explorer.mode.network" + }, + }, + { + network: "modeSepolia", + chainId: 919, + urls: { + apiURL: "https://sepolia.explorer.mode.network/api", + browserURL: "https://sepolia.explorer.mode.network" + }, + }, ], apiKey: { mainnet: ETHERSCAN_API_KEY, polygon: POLYGONSCAN_API_KEY, gnosis: GNOSISSCAN_API_KEY, - goerli: ETHERSCAN_API_KEY, - polygonMumbai: POLYGONSCAN_API_KEY, - chiado: CHIADOSCAN_API_KEY, + arbitrumOne: ARBISCAN_API_KEY, optimistic: OPSCAN_API_KEY, + base: BASESCAN_API_KEY, + celo: CELOSCAN_API_KEY, + sepolia: ETHERSCAN_API_KEY, + polygonAmoy: POLYGONSCAN_API_KEY, + chiado: GNOSISSCAN_API_KEY, + arbitrumSepolia: ARBISCAN_API_KEY, + optimisticSepolia: OPSCAN_API_KEY, + baseSepolia: OPSCAN_API_KEY, + celoAlfajores: CELOSCAN_API_KEY, + mode: OPSCAN_API_KEY, + modeSepolia: OPSCAN_API_KEY, } }, solidity: { diff --git a/scripts/deployment/deploy_07_contributors.js b/scripts/deployment/deploy_07_contributors.js new file mode 100644 index 0000000..aacade7 --- /dev/null +++ b/scripts/deployment/deploy_07_contributors.js @@ -0,0 +1,75 @@ +/*global process*/ + +const { ethers } = require("hardhat"); +const { LedgerSigner } = require("@anders-t/ethers-ledger"); + +async function main() { + const fs = require("fs"); + const globalsFile = "globals.json"; + const dataFromJSON = fs.readFileSync(globalsFile, "utf8"); + let parsedData = JSON.parse(dataFromJSON); + const useLedger = parsedData.useLedger; + const derivationPath = parsedData.derivationPath; + const providerName = parsedData.providerName; + const gasPriceInGwei = parsedData.gasPriceInGwei; + + let networkURL = parsedData.networkURL; + if (providerName === "polygon") { + if (!process.env.ALCHEMY_API_KEY_MATIC) { + console.log("set ALCHEMY_API_KEY_MATIC env variable"); + } + networkURL += process.env.ALCHEMY_API_KEY_MATIC; + } else if (providerName === "polygonAmoy") { + if (!process.env.ALCHEMY_API_KEY_AMOY) { + console.log("set ALCHEMY_API_KEY_AMOY env variable"); + return; + } + networkURL += process.env.ALCHEMY_API_KEY_AMOY; + } + + const provider = new ethers.providers.JsonRpcProvider(networkURL); + const signers = await ethers.getSigners(); + + let EOA; + if (useLedger) { + EOA = new LedgerSigner(provider, derivationPath); + } else { + EOA = signers[0]; + } + // EOA address + const deployer = await EOA.getAddress(); + console.log("EOA is:", deployer); + + // Transaction signing and execution + console.log("7. EOA to deploy Contributors"); + console.log("You are signing the following transaction: Contributors.connect(EOA).deploy()"); + const gasPrice = ethers.utils.parseUnits(gasPriceInGwei, "gwei"); + const Contributors = await ethers.getContractFactory("Contributors"); + const contributors = await Contributors.connect(EOA).deploy({ gasPrice }); + const result = await contributors.deployed(); + + // Transaction details + console.log("Contract deployment: Contributors"); + console.log("Contract address:", contributors.address); + console.log("Transaction:", result.deployTransaction.hash); + + // Wait for half a minute for the transaction completion + await new Promise(r => setTimeout(r, 30000)); + + // Writing updated parameters back to the JSON file + parsedData.contributorsAddress = contributors.address; + fs.writeFileSync(globalsFile, JSON.stringify(parsedData)); + + // Contract verification + if (parsedData.contractVerification) { + const execSync = require("child_process").execSync; + execSync("npx hardhat verify --network " + providerName + " " + contributors.address, { encoding: "utf-8" }); + } +} + +main() + .then(() => process.exit(0)) + .catch((error) => { + console.error(error); + process.exit(1); + }); diff --git a/scripts/deployment/deploy_08_contributors_proxy.js b/scripts/deployment/deploy_08_contributors_proxy.js new file mode 100644 index 0000000..f2b962f --- /dev/null +++ b/scripts/deployment/deploy_08_contributors_proxy.js @@ -0,0 +1,80 @@ +/*global process*/ + +const { ethers } = require("hardhat"); +const { LedgerSigner } = require("@anders-t/ethers-ledger"); + +async function main() { + const fs = require("fs"); + const globalsFile = "globals.json"; + const dataFromJSON = fs.readFileSync(globalsFile, "utf8"); + let parsedData = JSON.parse(dataFromJSON); + const useLedger = parsedData.useLedger; + const derivationPath = parsedData.derivationPath; + const providerName = parsedData.providerName; + const gasPriceInGwei = parsedData.gasPriceInGwei; + const contributorsAddress = parsedData.contributorsAddress; + + let networkURL = parsedData.networkURL; + if (providerName === "polygon") { + if (!process.env.ALCHEMY_API_KEY_MATIC) { + console.log("set ALCHEMY_API_KEY_MATIC env variable"); + } + networkURL += process.env.ALCHEMY_API_KEY_MATIC; + } else if (providerName === "polygonAmoy") { + if (!process.env.ALCHEMY_API_KEY_AMOY) { + console.log("set ALCHEMY_API_KEY_AMOY env variable"); + return; + } + networkURL += process.env.ALCHEMY_API_KEY_AMOY; + } + + const provider = new ethers.providers.JsonRpcProvider(networkURL); + const signers = await ethers.getSigners(); + + let EOA; + if (useLedger) { + EOA = new LedgerSigner(provider, derivationPath); + } else { + EOA = signers[0]; + } + // EOA address + const deployer = await EOA.getAddress(); + console.log("EOA is:", deployer); + + // Assemble the contributors proxy data + const contributors = await ethers.getContractAt("Contributors", contributorsAddress); + const proxyData = contributors.interface.encodeFunctionData("initialize", []); + + // Transaction signing and execution + console.log("8. EOA to deploy ContributorsProxy"); + console.log("You are signing the following transaction: ContributorsProxy.connect(EOA).deploy()"); + const gasPrice = ethers.utils.parseUnits(gasPriceInGwei, "gwei"); + const ContributorsProxy = await ethers.getContractFactory("ContributorsProxy"); + const contributorsProxy = await ContributorsProxy.connect(EOA).deploy(contributorsAddress, proxyData, { gasPrice }); + const result = await contributorsProxy.deployed(); + + // Transaction details + console.log("Contract deployment: ContributorsProxy"); + console.log("Contract address:", contributorsProxy.address); + console.log("Transaction:", result.deployTransaction.hash); + + // Wait for half a minute for the transaction completion + await new Promise(r => setTimeout(r, 30000)); + + // Writing updated parameters back to the JSON file + parsedData.contributorsProxyAddress = contributorsProxy.address; + fs.writeFileSync(globalsFile, JSON.stringify(parsedData)); + + // Contract verification + if (parsedData.contractVerification) { + const execSync = require("child_process").execSync; + execSync("npx hardhat verify --constructor-args scripts/deployment/verify_08_contributors_proxy.js --network " + providerName + " " + contributorsProxy.address, { encoding: "utf-8" }); + } +} + +main() + .then(() => process.exit(0)) + .catch((error) => { + console.error(error); + process.exit(1); + }); diff --git a/scripts/deployment/deploy_09_contribute_manager.js b/scripts/deployment/deploy_09_contribute_manager.js new file mode 100644 index 0000000..3c7a1c4 --- /dev/null +++ b/scripts/deployment/deploy_09_contribute_manager.js @@ -0,0 +1,84 @@ +/*global process*/ + +const { ethers } = require("hardhat"); +const { LedgerSigner } = require("@anders-t/ethers-ledger"); + +async function main() { + const fs = require("fs"); + const globalsFile = "globals.json"; + const dataFromJSON = fs.readFileSync(globalsFile, "utf8"); + let parsedData = JSON.parse(dataFromJSON); + const useLedger = parsedData.useLedger; + const derivationPath = parsedData.derivationPath; + const providerName = parsedData.providerName; + const gasPriceInGwei = parsedData.gasPriceInGwei; + const contributorsProxyAddress = parsedData.contributorsProxyAddress; + const serviceManagerTokenAddress = parsedData.serviceManagerTokenAddress; + const olasAddress = parsedData.olasAddress; + const stakingFactoryAddress = parsedData.stakingFactoryAddress; + const gnosisSafeMultisigImplementationAddress = parsedData.gnosisSafeMultisigImplementationAddress; + const fallbackHandlerAddress = parsedData.fallbackHandlerAddress; + const agentId = parsedData.agentId; + const configHash = parsedData.configHash; + + let networkURL = parsedData.networkURL; + if (providerName === "polygon") { + if (!process.env.ALCHEMY_API_KEY_MATIC) { + console.log("set ALCHEMY_API_KEY_MATIC env variable"); + } + networkURL += process.env.ALCHEMY_API_KEY_MATIC; + } else if (providerName === "polygonAmoy") { + if (!process.env.ALCHEMY_API_KEY_AMOY) { + console.log("set ALCHEMY_API_KEY_AMOY env variable"); + return; + } + networkURL += process.env.ALCHEMY_API_KEY_AMOY; + } + + const provider = new ethers.providers.JsonRpcProvider(networkURL); + const signers = await ethers.getSigners(); + + let EOA; + if (useLedger) { + EOA = new LedgerSigner(provider, derivationPath); + } else { + EOA = signers[0]; + } + // EOA address + const deployer = await EOA.getAddress(); + console.log("EOA is:", deployer); + + // Transaction signing and execution + console.log("9. EOA to deploy ContributeManager"); + const gasPrice = ethers.utils.parseUnits(gasPriceInGwei, "gwei"); + const ContributeManager = await ethers.getContractFactory("ContributeManager"); + console.log("You are signing the following transaction: ContributeManager.connect(EOA).deploy()"); + const contributeManager = await ContributeManager.connect(EOA).deploy(contributorsProxyAddress, + serviceManagerTokenAddress, olasAddress, stakingFactoryAddress, gnosisSafeMultisigImplementationAddress, + fallbackHandlerAddress, agentId, configHash, { gasPrice }); + const result = await contributeManager.deployed(); + + // Transaction details + console.log("Contract deployment: ContributeManager"); + console.log("Contract address:", contributeManager.address); + console.log("Transaction:", result.deployTransaction.hash); + // Wait half a minute for the transaction completion + await new Promise(r => setTimeout(r, 30000)); + + // Writing updated parameters back to the JSON file + parsedData.contributeManagerAddress = contributeManager.address; + fs.writeFileSync(globalsFile, JSON.stringify(parsedData)); + + // Contract verification + if (parsedData.contractVerification) { + const execSync = require("child_process").execSync; + execSync("npx hardhat verify --constructor-args scripts/deployment/verify_09_contribute_manager.js --network " + providerName + " " + contributeManager.address, { encoding: "utf-8" }); + } +} + +main() + .then(() => process.exit(0)) + .catch((error) => { + console.error(error); + process.exit(1); + }); diff --git a/scripts/deployment/deploy_10_contribute_activity_checker.js b/scripts/deployment/deploy_10_contribute_activity_checker.js new file mode 100644 index 0000000..d916823 --- /dev/null +++ b/scripts/deployment/deploy_10_contribute_activity_checker.js @@ -0,0 +1,77 @@ +/*global process*/ + +const { ethers } = require("hardhat"); +const { LedgerSigner } = require("@anders-t/ethers-ledger"); + +async function main() { + const fs = require("fs"); + const globalsFile = "globals.json"; + const dataFromJSON = fs.readFileSync(globalsFile, "utf8"); + let parsedData = JSON.parse(dataFromJSON); + const useLedger = parsedData.useLedger; + const derivationPath = parsedData.derivationPath; + const providerName = parsedData.providerName; + const gasPriceInGwei = parsedData.gasPriceInGwei; + const contributorsProxyAddress = parsedData.contributorsProxyAddress; + const livenessRatio = parsedData.livenessRatio; + + let networkURL = parsedData.networkURL; + if (providerName === "polygon") { + if (!process.env.ALCHEMY_API_KEY_MATIC) { + console.log("set ALCHEMY_API_KEY_MATIC env variable"); + } + networkURL += process.env.ALCHEMY_API_KEY_MATIC; + } else if (providerName === "polygonAmoy") { + if (!process.env.ALCHEMY_API_KEY_AMOY) { + console.log("set ALCHEMY_API_KEY_AMOY env variable"); + return; + } + networkURL += process.env.ALCHEMY_API_KEY_AMOY; + } + + const provider = new ethers.providers.JsonRpcProvider(networkURL); + const signers = await ethers.getSigners(); + + let EOA; + if (useLedger) { + EOA = new LedgerSigner(provider, derivationPath); + } else { + EOA = signers[0]; + } + // EOA address + const deployer = await EOA.getAddress(); + console.log("EOA is:", deployer); + + // Transaction signing and execution + console.log("10. EOA to deploy ContributeActivityChecker"); + const gasPrice = ethers.utils.parseUnits(gasPriceInGwei, "gwei"); + const ContributeActivityChecker = await ethers.getContractFactory("ContributeActivityChecker"); + console.log("You are signing the following transaction: ContributeActivityChecker.connect(EOA).deploy()"); + const contributeActivityChecker = await ContributeActivityChecker.connect(EOA).deploy(contributorsProxyAddress, livenessRatio, + { gasPrice }); + const result = await contributeActivityChecker.deployed(); + + // Transaction details + console.log("Contract deployment: ContributeActivityChecker"); + console.log("Contract address:", contributeActivityChecker.address); + console.log("Transaction:", result.deployTransaction.hash); + // Wait half a minute for the transaction completion + await new Promise(r => setTimeout(r, 30000)); + + // Writing updated parameters back to the JSON file + parsedData.contributeActivityCheckerAddress = contributeActivityChecker.address; + fs.writeFileSync(globalsFile, JSON.stringify(parsedData)); + + // Contract verification + if (parsedData.contractVerification) { + const execSync = require("child_process").execSync; + execSync("npx hardhat verify --constructor-args scripts/deployment/verify_10_contribute_activity_checker.js --network " + providerName + " " + contributeActivityChecker.address, { encoding: "utf-8" }); + } +} + +main() + .then(() => process.exit(0)) + .catch((error) => { + console.error(error); + process.exit(1); + }); diff --git a/scripts/deployment/deploy_11_contributors_proxy_change_manager.js b/scripts/deployment/deploy_11_contributors_proxy_change_manager.js new file mode 100644 index 0000000..4f1ec34 --- /dev/null +++ b/scripts/deployment/deploy_11_contributors_proxy_change_manager.js @@ -0,0 +1,66 @@ +/*global process*/ + +const { ethers } = require("hardhat"); +const { LedgerSigner } = require("@anders-t/ethers-ledger"); + +async function main() { + const fs = require("fs"); + const globalsFile = "globals.json"; + const dataFromJSON = fs.readFileSync(globalsFile, "utf8"); + let parsedData = JSON.parse(dataFromJSON); + const useLedger = parsedData.useLedger; + const derivationPath = parsedData.derivationPath; + const providerName = parsedData.providerName; + const gasPriceInGwei = parsedData.gasPriceInGwei; + const contributorsProxyAddress = parsedData.contributorsProxyAddress; + const contributeManagerAddress = parsedData.contributeManagerAddress; + + let networkURL = parsedData.networkURL; + if (providerName === "polygon") { + if (!process.env.ALCHEMY_API_KEY_MATIC) { + console.log("set ALCHEMY_API_KEY_MATIC env variable"); + } + networkURL += process.env.ALCHEMY_API_KEY_MATIC; + } else if (providerName === "polygonAmoy") { + if (!process.env.ALCHEMY_API_KEY_AMOY) { + console.log("set ALCHEMY_API_KEY_AMOY env variable"); + return; + } + networkURL += process.env.ALCHEMY_API_KEY_AMOY; + } + + const provider = new ethers.providers.JsonRpcProvider(networkURL); + const signers = await ethers.getSigners(); + + let EOA; + if (useLedger) { + EOA = new LedgerSigner(provider, derivationPath); + } else { + EOA = signers[0]; + } + // EOA address + const deployer = await EOA.getAddress(); + console.log("EOA is:", deployer); + + // Get the contributors proxy contract + const contributorsProxy = await ethers.getContractAt("Contributors", contributorsProxyAddress); + + const gasPrice = ethers.utils.parseUnits(gasPriceInGwei, "gwei"); + + // Transaction signing and execution + console.log("11. EOA to change manager in ContributorsProxy"); + console.log("You are signing the following transaction: ContributorsProxy.connect(EOA).changeManager()"); + const result = await contributorsProxy.changeManager(contributeManagerAddress, { gasPrice }); + + // Transaction details + console.log("Contract deployment: ContributorsProxy"); + console.log("Contract address:", contributorsProxy.address); + console.log("Transaction:", result.hash); +} + +main() + .then(() => process.exit(0)) + .catch((error) => { + console.error(error); + process.exit(1); + }); diff --git a/scripts/deployment/deploy_12_contributors_proxy_change_owner.js b/scripts/deployment/deploy_12_contributors_proxy_change_owner.js new file mode 100644 index 0000000..2160c10 --- /dev/null +++ b/scripts/deployment/deploy_12_contributors_proxy_change_owner.js @@ -0,0 +1,66 @@ +/*global process*/ + +const { ethers } = require("hardhat"); +const { LedgerSigner } = require("@anders-t/ethers-ledger"); + +async function main() { + const fs = require("fs"); + const globalsFile = "globals.json"; + const dataFromJSON = fs.readFileSync(globalsFile, "utf8"); + let parsedData = JSON.parse(dataFromJSON); + const useLedger = parsedData.useLedger; + const derivationPath = parsedData.derivationPath; + const providerName = parsedData.providerName; + const gasPriceInGwei = parsedData.gasPriceInGwei; + const contributorsProxyAddress = parsedData.contributorsProxyAddress; + const bridgeMediatorAddress = parsedData.bridgeMediatorAddress; + + let networkURL = parsedData.networkURL; + if (providerName === "polygon") { + if (!process.env.ALCHEMY_API_KEY_MATIC) { + console.log("set ALCHEMY_API_KEY_MATIC env variable"); + } + networkURL += process.env.ALCHEMY_API_KEY_MATIC; + } else if (providerName === "polygonAmoy") { + if (!process.env.ALCHEMY_API_KEY_AMOY) { + console.log("set ALCHEMY_API_KEY_AMOY env variable"); + return; + } + networkURL += process.env.ALCHEMY_API_KEY_AMOY; + } + + const provider = new ethers.providers.JsonRpcProvider(networkURL); + const signers = await ethers.getSigners(); + + let EOA; + if (useLedger) { + EOA = new LedgerSigner(provider, derivationPath); + } else { + EOA = signers[0]; + } + // EOA address + const deployer = await EOA.getAddress(); + console.log("EOA is:", deployer); + + // Get the contributors proxy contract + const contributorsProxy = await ethers.getContractAt("Contributors", contributorsProxyAddress); + + const gasPrice = ethers.utils.parseUnits(gasPriceInGwei, "gwei"); + + // Transaction signing and execution + console.log("12. EOA to change owner in ContributorsProxy"); + console.log("You are signing the following transaction: ContributorsProxy.connect(EOA).changeOwner()"); + const result = await contributorsProxy.changeOwner(bridgeMediatorAddress, { gasPrice }); + + // Transaction details + console.log("Contract deployment: ContributorsProxy"); + console.log("Contract address:", contributorsProxy.address); + console.log("Transaction:", result.hash); +} + +main() + .then(() => process.exit(0)) + .catch((error) => { + console.error(error); + process.exit(1); + }); diff --git a/scripts/deployment/globals_base_mainnet_contribute.json b/scripts/deployment/globals_base_mainnet_contribute.json new file mode 100644 index 0000000..961fdf1 --- /dev/null +++ b/scripts/deployment/globals_base_mainnet_contribute.json @@ -0,0 +1 @@ +{"contractVerification":true,"useLedger":true,"derivationPath":"m/44'/60'/2'/0/0","providerName":"base","networkURL":"https://mainnet.base.org","gasPriceInGwei":"2","bridgeMediatorAddress":"0xE49CB081e8d96920C38aA7AB90cb0294ab4Bc8EA","gnosisSafeAddress":"0x69f4D1788e39c87893C980c06EdF4b7f686e2938","gnosisSafeProxyFactoryAddress":"0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC","fallbackHandlerAddress":"0x017062a1dE2FE6b99BE3d9d37841FeD19F573804","olasAddress":"0x54330d28ca3357F294334BDC454a032e7f353416","multisigProxyHash130":"0xb89c1b3bdf2cf8827818646bce9a8f6e372885f8c55e5c07acbd307cb133b000","serviceRegistryAddress":"0x3C1fF68f5aa342D296d4DEe4Bb1cACCA912D95fE","serviceRegistryTokenUtilityAddress":"0x34C895f302D0b5cf52ec0Edd3945321EB0f83dd5","serviceManagerTokenAddress":"0x63e66d7ad413C01A7b49C7FF4e3Bb765C4E4bd1b","gnosisSafeMultisigImplementationAddress":"0xBb7e1D6Cb6F243D6bdE81CE92a9f2aFF7Fbe7eac","stakingTokenAddress":"0xEB5638eefE289691EcE01943f768EDBF96258a80","stakingNativeTokenAddress":"","stakingFactoryAddress":"0x1cEe30D08943EB58EFF84DD1AB44a6ee6FEff63a","agentId":"6","configHash":"0xb89c1b3bdf2cf8827818646bce9a8f6e372885f8c55e5c07acbd307cb133b000","livenessRatio":"700000000000000","contributeActivityCheckerAddress":"","stakingParams":{"metadataHash":"","maxNumServices":"100","rewardsPerSecond":"1000000000000000","minStakingDeposit":"50000000000000000000","minNumStakingPeriods":"3","maxNumInactivityPeriods":"3","livenessPeriod":"86400","timeForEmissions":"2592000","numAgentInstances":"1","agentIds":["14"],"threshold":"0","configHash":"0x0000000000000000000000000000000000000000000000000000000000000000","proxyHash":"0xb89c1b3bdf2cf8827818646bce9a8f6e372885f8c55e5c07acbd307cb133b000","serviceRegistry":"0x3C1fF68f5aa342D296d4DEe4Bb1cACCA912D95fE","activityChecker":""}} \ No newline at end of file diff --git a/scripts/deployment/globals_base_sepolia.json b/scripts/deployment/globals_base_sepolia.json index 579ceb5..b422fff 100644 --- a/scripts/deployment/globals_base_sepolia.json +++ b/scripts/deployment/globals_base_sepolia.json @@ -1 +1 @@ -{"contractVerification":true,"useLedger":false,"derivationPath":"m/44'/60'/2'/0/0","providerName":"baseSepolia","networkURL":"https://sepolia.base.org","gasPriceInGwei":"2","gnosisSafeAddress":"0x69f4D1788e39c87893C980c06EdF4b7f686e2938","gnosisSafeProxyFactoryAddress":"0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC","olasAddress":"","multisigProxyHash130":"0xb89c1b3bdf2cf8827818646bce9a8f6e372885f8c55e5c07acbd307cb133b000","serviceRegistryAddress":"0x31D3202d8744B16A120117A053459DDFAE93c855","serviceRegistryTokenUtilityAddress":"0xeB49bE5DF00F74bd240DE4535DDe6Bc89CEfb994","mechActivityCheckerAddress":""} \ No newline at end of file +{"contractVerification":true,"useLedger":false,"derivationPath":"m/44'/60'/2'/0/0","providerName":"baseSepolia","networkURL":"https://sepolia.base.org","gasPriceInGwei":"5","gnosisSafeAddress":"0x69f4D1788e39c87893C980c06EdF4b7f686e2938","gnosisSafeProxyFactoryAddress":"0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC","bridgeMediatorAddress":"0xeDd71796B90eaCc56B074C39BAC90ED2Ca6D93Ee","olasAddress":"0x54330d28ca3357F294334BDC454a032e7f353416","multisigProxyHash130":"0xb89c1b3bdf2cf8827818646bce9a8f6e372885f8c55e5c07acbd307cb133b000","serviceRegistryAddress":"0x31D3202d8744B16A120117A053459DDFAE93c855","serviceRegistryTokenUtilityAddress":"0xeB49bE5DF00F74bd240DE4535DDe6Bc89CEfb994","serviceManagerTokenAddress":"0x5BA58970c2Ae16Cf6218783018100aF2dCcFc915","gnosisSafeMultisigImplementationAddress":"0x19936159B528C66750992C3cBcEd2e71cF4E4824","gnosisSafeSameAddressMultisigImplementationAddress":"0x10100e74b7F706222F8A7C0be9FC7Ae1717Ad8B2","fallbackHandlerAddress":"0x017062a1dE2FE6b99BE3d9d37841FeD19F573804","stakingFactoryAddress":"0x1cEe30D08943EB58EFF84DD1AB44a6ee6FEff63a","agentId":"6","configHash":"0xb89c1b3bdf2cf8827818646bce9a8f6e372885f8c55e5c07acbd307cb133b000","livenessRatio":"700000000000000","contributorsAddress":"0x0A99582559fd1a13F1910687Dd102cF4C50a6EEE","contributorsProxyAddress":"0x118173028162C1b7c6Bf8488bd5dA2abd7c30F9D","contributeManagerAddress":"0x131b5551c81e9B3E89E9ACE30A5B3D45144E3e42","contributeActivityCheckerAddress":"0xE16adc7777B7C2a0d35033bd3504C028AB28EE8b"} \ No newline at end of file diff --git a/scripts/deployment/verify_08_contributors_proxy.js b/scripts/deployment/verify_08_contributors_proxy.js new file mode 100644 index 0000000..ead937b --- /dev/null +++ b/scripts/deployment/verify_08_contributors_proxy.js @@ -0,0 +1,11 @@ +const fs = require("fs"); +const globalsFile = "globals.json"; +const dataFromJSON = fs.readFileSync(globalsFile, "utf8"); +const parsedData = JSON.parse(dataFromJSON); +const contributorsAddress = parsedData.contributorsAddress; +const proxyData = "0x8129fc1c"; // initialize() + +module.exports = [ + contributorsAddress, + proxyData +]; \ No newline at end of file diff --git a/scripts/deployment/verify_09_contribute_manager.js b/scripts/deployment/verify_09_contribute_manager.js new file mode 100644 index 0000000..3b45fd1 --- /dev/null +++ b/scripts/deployment/verify_09_contribute_manager.js @@ -0,0 +1,23 @@ +const fs = require("fs"); +const globalsFile = "globals.json"; +const dataFromJSON = fs.readFileSync(globalsFile, "utf8"); +const parsedData = JSON.parse(dataFromJSON); +const contributorsProxyAddress = parsedData.contributorsProxyAddress; +const serviceManagerTokenAddress = parsedData.serviceManagerTokenAddress; +const olasAddress = parsedData.olasAddress; +const stakingFactoryAddress = parsedData.stakingFactoryAddress; +const gnosisSafeMultisigImplementationAddress = parsedData.gnosisSafeMultisigImplementationAddress; +const fallbackHandlerAddress = parsedData.fallbackHandlerAddress; +const agentId = parsedData.agentId; +const configHash = parsedData.configHash; + +module.exports = [ + contributorsProxyAddress, + serviceManagerTokenAddress, + olasAddress, + stakingFactoryAddress, + gnosisSafeMultisigImplementationAddress, + fallbackHandlerAddress, + agentId, + configHash +]; \ No newline at end of file diff --git a/scripts/deployment/verify_10_contribute_activity_checker.js b/scripts/deployment/verify_10_contribute_activity_checker.js new file mode 100644 index 0000000..b2c59e9 --- /dev/null +++ b/scripts/deployment/verify_10_contribute_activity_checker.js @@ -0,0 +1,11 @@ +const fs = require("fs"); +const globalsFile = "globals.json"; +const dataFromJSON = fs.readFileSync(globalsFile, "utf8"); +const parsedData = JSON.parse(dataFromJSON); +const contributorsProxyAddress = parsedData.contributorsProxyAddress; +const livenessRatio = parsedData.livenessRatio; + +module.exports = [ + contributorsProxyAddress, + livenessRatio +]; \ No newline at end of file From aaa20398cf143c8e5bd81228c388f79bb062f42c Mon Sep 17 00:00:00 2001 From: AL Date: Wed, 23 Oct 2024 14:25:33 +0100 Subject: [PATCH 13/25] doc: v.1.4.0-internal-audit --- audits/README.md | 4 + .../analysis/._slither_call-graph.txt | Bin 0 -> 224 bytes .../analysis/._slither_constructor-calls.txt | Bin 0 -> 224 bytes .../analysis/._slither_contract-summary.txt | Bin 0 -> 224 bytes .../analysis/._slither_data-dependency.txt | Bin 0 -> 224 bytes audits/internal/analysis/._slither_full.txt | Bin 0 -> 224 bytes .../analysis/._slither_function-summary.txt | Bin 0 -> 224 bytes .../analysis/._slither_human-summary.txt | Bin 0 -> 224 bytes .../analysis/._slither_inheritance-graph.txt | Bin 0 -> 224 bytes .../analysis/._slither_inheritance.txt | Bin 0 -> 224 bytes .../internal/analysis/._slither_modifiers.txt | Bin 0 -> 224 bytes .../internal/analysis/._slither_require.txt | Bin 0 -> 224 bytes .../analysis/._slither_variable-order.txt | Bin 0 -> 224 bytes .../analysis/._slither_vars-and-auth.txt | Bin 0 -> 224 bytes audits/internal1/README.md | 37 + .../ContributeActivityChecker-flatten.sol | 76 + .../contracts/ContributeManager-flatten.sol | 480 ++++++ .../contracts/Contributors-flatten.sol | 219 +++ .../contracts/ContributorsProxy-flatten.sol | 76 + audits/internal1/analysis/contracts/script.sh | 21 + ...l.ContributeActivityChecker.call-graph.png | Bin 0 -> 33692 bytes ...r-flatten.sol.IContributors.call-graph.png | Bin 0 -> 9797 bytes ...r-flatten.sol.all_contracts.call-graph.png | Bin 0 -> 41994 bytes ...yChecker-flatten.sol.inheritance-graph.png | Bin 0 -> 25110 bytes ...atten.sol.ContributeManager.call-graph.png | Bin 0 -> 140165 bytes ...r-flatten.sol.IContributors.call-graph.png | Bin 0 -> 12411 bytes ...nager-flatten.sol.IMultisig.call-graph.png | Bin 0 -> 7319 bytes ...anager-flatten.sol.IService.call-graph.png | Bin 0 -> 25914 bytes ...anager-flatten.sol.IStaking.call-graph.png | Bin 0 -> 27094 bytes ...eManager-flatten.sol.IToken.call-graph.png | Bin 0 -> 9304 bytes ...r-flatten.sol.all_contracts.call-graph.png | Bin 0 -> 324647 bytes ...eManager-flatten.sol.inheritance-graph.png | Bin 0 -> 135609 bytes ...rs-flatten.sol.Contributors.call-graph.png | Bin 0 -> 107144 bytes ...s-flatten.sol.all_contracts.call-graph.png | Bin 0 -> 100457 bytes ...ributors-flatten.sol.inheritance-graph.png | Bin 0 -> 50799 bytes ...atten.sol.ContributorsProxy.call-graph.png | Bin 0 -> 118016 bytes ...y-flatten.sol.all_contracts.call-graph.png | Bin 0 -> 116269 bytes ...orsProxy-flatten.sol.inheritance-graph.png | Bin 0 -> 10945 bytes .../internal1/analysis/slither_call-graph.txt | 27 + .../analysis/slither_constructor-calls.txt | 117 ++ .../analysis/slither_contract-summary.txt | 84 ++ .../analysis/slither_data-dependency.txt | 1287 +++++++++++++++++ audits/internal1/analysis/slither_full.txt | 33 + .../analysis/slither_function-summary.txt | 228 +++ .../analysis/slither_human-summary.txt | 84 ++ .../analysis/slither_inheritance-graph.txt | 17 + .../analysis/slither_inheritance.txt | 73 + .../internal1/analysis/slither_modifiers.txt | 113 ++ audits/internal1/analysis/slither_require.txt | 113 ++ .../analysis/slither_variable-order.txt | 79 + .../analysis/slither_vars-and-auth.txt | 117 ++ 51 files changed, 3285 insertions(+) create mode 100644 audits/internal/analysis/._slither_call-graph.txt create mode 100644 audits/internal/analysis/._slither_constructor-calls.txt create mode 100644 audits/internal/analysis/._slither_contract-summary.txt create mode 100644 audits/internal/analysis/._slither_data-dependency.txt create mode 100644 audits/internal/analysis/._slither_full.txt create mode 100644 audits/internal/analysis/._slither_function-summary.txt create mode 100644 audits/internal/analysis/._slither_human-summary.txt create mode 100644 audits/internal/analysis/._slither_inheritance-graph.txt create mode 100644 audits/internal/analysis/._slither_inheritance.txt create mode 100644 audits/internal/analysis/._slither_modifiers.txt create mode 100644 audits/internal/analysis/._slither_require.txt create mode 100644 audits/internal/analysis/._slither_variable-order.txt create mode 100644 audits/internal/analysis/._slither_vars-and-auth.txt create mode 100644 audits/internal1/README.md create mode 100644 audits/internal1/analysis/contracts/ContributeActivityChecker-flatten.sol create mode 100644 audits/internal1/analysis/contracts/ContributeManager-flatten.sol create mode 100644 audits/internal1/analysis/contracts/Contributors-flatten.sol create mode 100644 audits/internal1/analysis/contracts/ContributorsProxy-flatten.sol create mode 100644 audits/internal1/analysis/contracts/script.sh create mode 100644 audits/internal1/analysis/slither_ContributeActivityChecker-flatten.sol.ContributeActivityChecker.call-graph.png create mode 100644 audits/internal1/analysis/slither_ContributeActivityChecker-flatten.sol.IContributors.call-graph.png create mode 100644 audits/internal1/analysis/slither_ContributeActivityChecker-flatten.sol.all_contracts.call-graph.png create mode 100644 audits/internal1/analysis/slither_ContributeActivityChecker-flatten.sol.inheritance-graph.png create mode 100644 audits/internal1/analysis/slither_ContributeManager-flatten.sol.ContributeManager.call-graph.png create mode 100644 audits/internal1/analysis/slither_ContributeManager-flatten.sol.IContributors.call-graph.png create mode 100644 audits/internal1/analysis/slither_ContributeManager-flatten.sol.IMultisig.call-graph.png create mode 100644 audits/internal1/analysis/slither_ContributeManager-flatten.sol.IService.call-graph.png create mode 100644 audits/internal1/analysis/slither_ContributeManager-flatten.sol.IStaking.call-graph.png create mode 100644 audits/internal1/analysis/slither_ContributeManager-flatten.sol.IToken.call-graph.png create mode 100644 audits/internal1/analysis/slither_ContributeManager-flatten.sol.all_contracts.call-graph.png create mode 100644 audits/internal1/analysis/slither_ContributeManager-flatten.sol.inheritance-graph.png create mode 100644 audits/internal1/analysis/slither_Contributors-flatten.sol.Contributors.call-graph.png create mode 100644 audits/internal1/analysis/slither_Contributors-flatten.sol.all_contracts.call-graph.png create mode 100644 audits/internal1/analysis/slither_Contributors-flatten.sol.inheritance-graph.png create mode 100644 audits/internal1/analysis/slither_ContributorsProxy-flatten.sol.ContributorsProxy.call-graph.png create mode 100644 audits/internal1/analysis/slither_ContributorsProxy-flatten.sol.all_contracts.call-graph.png create mode 100644 audits/internal1/analysis/slither_ContributorsProxy-flatten.sol.inheritance-graph.png create mode 100644 audits/internal1/analysis/slither_call-graph.txt create mode 100644 audits/internal1/analysis/slither_constructor-calls.txt create mode 100644 audits/internal1/analysis/slither_contract-summary.txt create mode 100644 audits/internal1/analysis/slither_data-dependency.txt create mode 100644 audits/internal1/analysis/slither_full.txt create mode 100644 audits/internal1/analysis/slither_function-summary.txt create mode 100644 audits/internal1/analysis/slither_human-summary.txt create mode 100644 audits/internal1/analysis/slither_inheritance-graph.txt create mode 100644 audits/internal1/analysis/slither_inheritance.txt create mode 100644 audits/internal1/analysis/slither_modifiers.txt create mode 100644 audits/internal1/analysis/slither_require.txt create mode 100644 audits/internal1/analysis/slither_variable-order.txt create mode 100644 audits/internal1/analysis/slither_vars-and-auth.txt diff --git a/audits/README.md b/audits/README.md index cb7a606..bbe8c83 100644 --- a/audits/README.md +++ b/audits/README.md @@ -5,3 +5,7 @@ This section contains audit-related materials. An internal audit with a focus on Service Staking Mech Usage contracts is located in this folder: [internal audit](https://github.com/valory-xyz/autonolas-staking-programmes/blob/main/audits/internal). +### Internal audit +An internal audit with a focus on social contribute +contracts is located in this folder: [internal audit 1](https://github.com/valory-xyz/autonolas-staking-programmes/blob/main/audits/internal1). + diff --git a/audits/internal/analysis/._slither_call-graph.txt b/audits/internal/analysis/._slither_call-graph.txt new file mode 100644 index 0000000000000000000000000000000000000000..5f50aa59a68f8e78a9c60e68c0c57207f041e880 GIT binary patch literal 224 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}@j4&|@gD#&5x_AdBnYbP0g&DT#5zzu zjABHH>m}#s>LnHw$Vqox1Ojhs@R)|o50+1L3ClDI}@j4&|@gD#&5x_AdBnYbP0g&DT#5zzu zjABHH>m}#s>LnHw$Vqox1Ojhs@R)|o50+1L3ClDI}@j4&|@gD#&5x_AdBnYbP0g&DT#5zzu zjABHH>m}#s>LnHw$Vqox1Ojhs@R)|o50+1L3ClDI}@j4&|@gD#&5x_AdBnYbP0g&DT#5zzu zjABHH>m}#s>LnHw$Vqox1Ojhs@R)|o50+1L3ClDI}@j4&|@gD#&5x_AdBnYbP0g&DT#5zzu zjABHH>m}#s>LnHwm>%5# literal 0 HcmV?d00001 diff --git a/audits/internal/analysis/._slither_function-summary.txt b/audits/internal/analysis/._slither_function-summary.txt new file mode 100644 index 0000000000000000000000000000000000000000..5f50aa59a68f8e78a9c60e68c0c57207f041e880 GIT binary patch literal 224 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}@j4&|@gD#&5x_AdBnYbP0g&DT#5zzu zjABHH>m}#s>LnHw$Vqox1Ojhs@R)|o50+1L3ClDI}@j4&|@gD#&5x_AdBnYbP0g&DT#5zzu zjABHH>m}#s>LnHw$Vqox1Ojhs@R)|o50+1L3ClDI}@j4&|@gD#&5x_AdBnYbP0g&DT#5zzu zjABHH>m}#s>LnHw$Vqox1Ojhs@R)|o50+1L3ClDI}@j4&|@gD#&5x_AdBnYbP0g&DT#5zzu zjABHH>m}#s>LnHw$Vqox1Ojhs@R)|o50+1L3ClDI}@j4&|@gD#&5x_AdBnYbP0g&DT#5zzu zjABHH>m}#s>LnHw$Vqox1Ojhs@R)|o50+1L3ClDI}@j4&|@gD#&5x_AdBnYbP0g&DT#5zzu zjABHH>m}#s>LnHw$Vqox1Ojhs@R)|o50+1L3ClDI}@j4&|@gD#&5x_AdBnYbP0g&DT#5zzu zjABHH>m}#s>LnHw$Vqox1Ojhs@R)|o50+1L3ClDI}@j4&|@gD#&5x_AdBnYbP0g&DT#5zzu zjABHH>m}#s>LnHw +`https://github.com/valory-xyz/autonolas-staking-programmes`
+commit: `v1.4.0-pre-internal-audit` or `585003faeec5dff2fd96a326f07c3e809dc32898`
+ +## Objectives +The audit focused on contracts in this repo.
+ + +### Flatten version +Flatten version of contracts. [contracts](https://github.com/valory-xyz/autonolas-staking-programmes/blob/main/audits/internal1/analysis/contracts) + +### ERC20/ERC721 checks +N/A + +### Security issues. Updated 23-10-2024 +#### Problems found instrumentally +Several checks are obtained automatically. They are commented.
+All automatic warnings are listed in the following file, concerns of which we address in more detail below:
+[slither-full](https://github.com/valory-xyz/autonolas-staking-programmes/blob/main/audits/internal1/analysis/slither_full.txt) + +### Issue +1. Fixing reentrancy unstake() +``` +more CEI, + IToken(serviceRegistry).transfer(msg.sender, serviceId); = reentrancy via msg.sender as contract. + // Zero the service info: the service is out of the contribute records, however multisig activity is still valid + // If the same service is staked back, the multisig activity continues being tracked + IContributors(contributorsProxy).setServiceInfoForId(msg.sender, 0, 0, address(0), address(0)); + +``` +2. cyclic initialize(address _manager) +``` +Remove params in proxy init() / or setup manage as msg.sender. +``` + + diff --git a/audits/internal1/analysis/contracts/ContributeActivityChecker-flatten.sol b/audits/internal1/analysis/contracts/ContributeActivityChecker-flatten.sol new file mode 100644 index 0000000..c273ddd --- /dev/null +++ b/audits/internal1/analysis/contracts/ContributeActivityChecker-flatten.sol @@ -0,0 +1,76 @@ +// Sources flattened with hardhat v2.22.4 https://hardhat.org + +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.25; + +// Contributors interface +interface IContributors { + function mapMutisigActivities(address multisig) external view returns (uint256); +} + +/// @dev Zero address. +error ZeroAddress(); + +/// @dev Zero value. +error ZeroValue(); + +/// @title ContributeActivityChecker - Smart contract for performing contributors service staking activity check +/// @author Aleksandr Kuperman - +/// @author Andrey Lebedev - +/// @author Tatiana Priemova - +/// @author David Vilela - +contract ContributeActivityChecker { + // Liveness ratio in the format of 1e18 + uint256 public immutable livenessRatio; + // Contributors proxy contract address + address public immutable contributorsProxy; + + /// @dev StakingNativeToken initialization. + /// @param _contributorsProxy Contributors proxy contract address. + /// @param _livenessRatio Liveness ratio in the format of 1e18. + constructor(address _contributorsProxy, uint256 _livenessRatio) { + // Check the zero address + if (_contributorsProxy == address(0)) { + revert ZeroAddress(); + } + + // Check for zero value + if (_livenessRatio == 0) { + revert ZeroValue(); + } + + contributorsProxy = _contributorsProxy; + livenessRatio = _livenessRatio; + } + + /// @dev Gets service multisig nonces. + /// @param multisig Service multisig address. + /// @return nonces Set of a single service multisig nonce. + function getMultisigNonces(address multisig) external view virtual returns (uint256[] memory nonces) { + nonces = new uint256[](1); + // The nonce is equal to the social off-chain activity corresponding to a multisig activity + nonces[0] = IContributors(contributorsProxy).mapMutisigActivities(multisig); + } + + /// @dev Checks if the service multisig liveness ratio passes the defined liveness threshold. + /// @notice The formula for calculating the ratio is the following: + /// currentNonce - service multisig nonce at time now (block.timestamp); + /// lastNonce - service multisig nonce at the previous checkpoint or staking time (tsStart); + /// ratio = (currentNonce - lastNonce) / (block.timestamp - tsStart). + /// @param curNonces Current service multisig set of a single nonce. + /// @param lastNonces Last service multisig set of a single nonce. + /// @param ts Time difference between current and last timestamps. + /// @return ratioPass True, if the liveness ratio passes the check. + function isRatioPass( + uint256[] memory curNonces, + uint256[] memory lastNonces, + uint256 ts + ) external view virtual returns (bool ratioPass) { + // If the checkpoint was called in the exact same block, the ratio is zero + // If the current nonce is not greater than the last nonce, the ratio is zero + if (ts > 0 && curNonces[0] > lastNonces[0]) { + uint256 ratio = ((curNonces[0] - lastNonces[0]) * 1e18) / ts; + ratioPass = (ratio >= livenessRatio); + } + } +} diff --git a/audits/internal1/analysis/contracts/ContributeManager-flatten.sol b/audits/internal1/analysis/contracts/ContributeManager-flatten.sol new file mode 100644 index 0000000..8247621 --- /dev/null +++ b/audits/internal1/analysis/contracts/ContributeManager-flatten.sol @@ -0,0 +1,480 @@ +// Sources flattened with hardhat v2.22.4 https://hardhat.org +pragma solidity ^0.8.25; + +// SPDX-License-Identifier: MIT +// Contributors interface +interface IContributors { + /// @dev Sets service info for the social id. + /// @param serviceOwner Service owner. + /// @param socialId Social id. + /// @param serviceId Service Id. + /// @param multisig Service multisig address. + /// @param stakingInstance Staking instance address. + function setServiceInfoForId( + address serviceOwner, + uint256 socialId, + uint256 serviceId, + address multisig, + address stakingInstance + ) external; + + /// @dev Gets service info corresponding to a specified social Id. + /// @param serviceOwner Service owner. + /// @return socialId Social Id. + /// @return serviceId Corresponding service Id. + /// @return multisig Corresponding service multisig. + /// @return stakingInstance Staking instance address. + function mapSocialIdServiceInfo(address serviceOwner) external view + returns (uint256 socialId, uint256 serviceId, address multisig, address stakingInstance); +} + + +// Service registry related interface +interface IService { + struct AgentParams { + // Number of agent instances + uint32 slots; + // Bond per agent instance + uint96 bond; + } + + /// @dev Creates a new service. + /// @param serviceOwner Individual that creates and controls a service. + /// @param token ERC20 token address for the security deposit, or ETH. + /// @param configHash IPFS hash pointing to the config metadata. + /// @param agentIds Canonical agent Ids. + /// @param agentParams Number of agent instances and required bond to register an instance in the service. + /// @param threshold Threshold for a multisig composed by agents. + /// @return serviceId Created service Id. + function create( + address serviceOwner, + address token, + bytes32 configHash, + uint32[] memory agentIds, + AgentParams[] memory agentParams, + uint32 threshold + ) external returns (uint256 serviceId); + + /// @dev Activates the service and its sensitive components. + /// @param serviceId Correspondent service Id. + /// @return success True, if function executed successfully. + function activateRegistration(uint256 serviceId) external payable returns (bool success); + + /// @dev Registers agent instances. + /// @param serviceId Service Id to be updated. + /// @param agentInstances Agent instance addresses. + /// @param agentIds Canonical Ids of the agent correspondent to the agent instance. + /// @return success True, if function executed successfully. + function registerAgents( + uint256 serviceId, + address[] memory agentInstances, + uint32[] memory agentIds + ) external payable returns (bool success); + + /// @dev Creates multisig instance controlled by the set of service agent instances and deploys the service. + /// @param serviceId Correspondent service Id. + /// @param multisigImplementation Multisig implementation address. + /// @param data Data payload for the multisig creation. + /// @return multisig Address of the created multisig. + function deploy( + uint256 serviceId, + address multisigImplementation, + bytes memory data + ) external returns (address multisig); + + /// @dev Gets the serviceRegistry address. + /// @return serviceRegistry address. + function serviceRegistry() external returns (address); + + /// @dev Gets the serviceRegistryTokenUtility address. + /// @return serviceRegistryTokenUtility address. + function serviceRegistryTokenUtility() external returns (address); + + /// @dev Gets the service instance from the map of services. + /// @param serviceId Service Id. + /// @return securityDeposit Registration activation deposit. + /// @return multisig Service multisig address. + /// @return configHash IPFS hashes pointing to the config metadata. + /// @return threshold Agent instance signers threshold. + /// @return maxNumAgentInstances Total number of agent instances. + /// @return numAgentInstances Actual number of agent instances. + /// @return state Service state. + function mapServices(uint256 serviceId) external view returns ( + uint96 securityDeposit, + address multisig, + bytes32 configHash, + uint32 threshold, + uint32 maxNumAgentInstances, + uint32 numAgentInstances, + uint8 state + ); +} + +// Staking interface +interface IStaking { + /// @dev Gets service staking token. + /// @return Service staking token address. + function stakingToken() external view returns (address); + + /// @dev Gets minimum service staking deposit value required for staking. + /// @return Minimum service staking deposit. + function minStakingDeposit() external view returns (uint256); + + /// @dev Gets number of required agent instances in the service. + /// @return Number of agent instances. + function numAgentInstances() external view returns (uint256); + + /// @dev Gets the service threshold. + /// @return Threshold. + function threshold() external view returns (uint256); + + /// @dev Stakes the service. + /// @param serviceId Service Id. + function stake(uint256 serviceId) external; + + /// @dev Unstakes the service with collected reward, if available. + /// @param serviceId Service Id. + /// @return reward Staking reward. + function unstake(uint256 serviceId) external returns (uint256); + + /// @dev Claims rewards for the service without an additional checkpoint call. + /// @param serviceId Service Id. + /// @return Staking reward. + function claim(uint256 serviceId) external returns (uint256); + + /// @dev Verifies a service staking contract instance. + /// @param instance Service staking proxy instance. + /// @return True, if verification is successful. + function verifyInstance(address instance) external view returns (bool); +} + +// Token interface +interface IToken { + /// @dev Transfers the token amount. + /// @param to Address to transfer to. + /// @param amount The amount to transfer. + /// @return True if the function execution is successful. + function transfer(address to, uint256 amount) external returns (bool); + + /// @dev Transfers the token amount that was previously approved up until the maximum allowance. + /// @param from Account address to transfer from. + /// @param to Account address to transfer to. + /// @param amount Amount to transfer to. + /// @return True if the function execution is successful. + function transferFrom(address from, address to, uint256 amount) external returns (bool); + + /// @dev Sets `amount` as the allowance of `spender` over the caller's tokens. + /// @param spender Account address that will be able to transfer tokens on behalf of the caller. + /// @param amount Token amount. + /// @return True if the function execution is successful. + function approve(address spender, uint256 amount) external returns (bool); +} + +// Multisig interface +interface IMultisig { + /// @dev Returns array of owners. + /// @return Array of Safe owners. + function getOwners() external view returns (address[] memory); +} + +/// @dev Zero address. +error ZeroAddress(); + +/// @dev Zero value. +error ZeroValue(); + +/// @dev Service is already created and staked for the contributor. +/// @param socialId Social Id. +/// @param serviceId Service Id. +/// @param multisig Multisig address. +error ServiceAlreadyStaked(uint256 socialId, uint256 serviceId, address multisig); + +/// @dev Wrong staking instance. +/// @param stakingInstance Staking instance address. +error WrongStakingInstance(address stakingInstance); + +/// @dev Wrong provided service setup. +/// @param socialId Social Id. +/// @param serviceId Service Id. +/// @param multisig Multisig address. +error WrongServiceSetup(uint256 socialId, uint256 serviceId, address multisig); + +/// @dev Service is not defined for the social Id. +/// @param socialId Social Id. +error ServiceNotDefined(uint256 socialId); + +/// @dev Wrong service owner. +/// @param serviceId Service Id. +/// @param sender Sender address. +/// @param serviceOwner Actual service owner. +error ServiceOwnerOnly(uint256 serviceId, address sender, address serviceOwner); + +/// @title ContributeManager - Smart contract for managing services for contributors +/// @author Aleksandr Kuperman - +/// @author Andrey Lebedev - +/// @author Tatiana Priemova - +/// @author David Vilela - +contract ContributeManager { + event CreatedAndStaked(uint256 indexed socialId, address indexed serviceOwner, uint256 serviceId, + address indexed multisig, address stakingInstance); + event Staked(uint256 indexed socialId, address indexed serviceOwner, uint256 serviceId, + address indexed multisig, address stakingInstance); + event Unstaked(uint256 indexed socialId, address indexed serviceOwner, uint256 serviceId, + address indexed multisig, address stakingInstance); + event Claimed(uint256 indexed socialId, address indexed serviceOwner, uint256 serviceId, + address indexed multisig, address stakingInstance); + + // Number of agent instances + uint256 public constant NUM_AGENT_INSTANCES = 1; + // Threshold + uint256 public constant THRESHOLD = 1; + // Contributor agent Id + uint256 public immutable agentId; + // Contributor service config hash + bytes32 public immutable configHash; + // Contributors proxy address + address public immutable contributorsProxy; + // Service manager address + address public immutable serviceManager; + // OLAS token address + address public immutable olas; + // Service registry address + address public immutable serviceRegistry; + // Service registry token utility address + address public immutable serviceRegistryTokenUtility; + // Staking factory address + address public immutable stakingFactory; + // Safe multisig processing contract address + address public immutable safeMultisig; + // Safe fallback handler + address public immutable fallbackHandler; + + // Nonce + uint256 internal nonce; + + /// @dev ContributeManager constructor. + /// @param _contributorsProxy Contributors proxy address. + /// @param _serviceManager Service manager address. + /// @param _olas OLAS token address. + /// @param _stakingFactory Staking factory address. + /// @param _safeMultisig Safe multisig address. + /// @param _fallbackHandler Multisig fallback handler address. + /// @param _agentId Contributor agent Id. + /// @param _configHash Contributor service config hash. + constructor( + address _contributorsProxy, + address _serviceManager, + address _olas, + address _stakingFactory, + address _safeMultisig, + address _fallbackHandler, + uint256 _agentId, + bytes32 _configHash + ) { + // Check for zero addresses + if (_contributorsProxy == address(0) || _serviceManager == address(0) || _olas == address(0) || + _stakingFactory == address(0) || _safeMultisig == address(0) || _fallbackHandler == address(0)) { + revert ZeroAddress(); + } + + // Check for zero values + if (_agentId == 0 || _configHash == 0) { + revert ZeroValue(); + } + + agentId = _agentId; + configHash = _configHash; + + contributorsProxy = _contributorsProxy; + serviceManager = _serviceManager; + olas = _olas; + stakingFactory = _stakingFactory; + safeMultisig = _safeMultisig; + fallbackHandler = _fallbackHandler; + serviceRegistry = IService(serviceManager).serviceRegistry(); + serviceRegistryTokenUtility = IService(serviceManager).serviceRegistryTokenUtility(); + } + + /// @dev Creates and deploys a service for the contributor. + /// @param token Staking token address. + /// @param minStakingDeposit Min staking deposit value. + /// @return serviceId Minted service Id. + /// @return multisig Service multisig. + function _createAndDeploy( + address token, + uint256 minStakingDeposit + ) internal returns (uint256 serviceId, address multisig) { + // Set agent params + IService.AgentParams[] memory agentParams = new IService.AgentParams[](NUM_AGENT_INSTANCES); + agentParams[0] = IService.AgentParams(uint32(NUM_AGENT_INSTANCES), uint96(minStakingDeposit)); + + // Set agent Ids + uint32[] memory agentIds = new uint32[](NUM_AGENT_INSTANCES); + agentIds[0] = uint32(agentId); + + // Set agent instances as [msg.sender] + address[] memory instances = new address[](NUM_AGENT_INSTANCES); + instances[0] = msg.sender; + + // Create a service owned by this contract + serviceId = IService(serviceManager).create(address(this), token, configHash, agentIds, + agentParams, uint32(THRESHOLD)); + + // Activate registration (1 wei as a deposit wrapper) + IService(serviceManager).activateRegistration{value: 1}(serviceId); + + // Register msg.sender as an agent instance (numAgentInstances wei as a bond wrapper) + IService(serviceManager).registerAgents{value: NUM_AGENT_INSTANCES}(serviceId, instances, agentIds); + + // Prepare Safe multisig data + uint256 localNonce = nonce; + uint256 randomNonce = uint256(keccak256(abi.encodePacked(block.timestamp, msg.sender, localNonce))); + bytes memory data = abi.encodePacked(address(0), fallbackHandler, address(0), address(0), uint256(0), + randomNonce, "0x"); + // Deploy the service + multisig = IService(serviceManager).deploy(serviceId, safeMultisig, data); + + // Update the nonce + nonce = localNonce + 1; + } + + /// @dev Stakes the already deployed service. + /// @param socialId Social Id. + /// @param serviceId Service Id. + /// @param multisig Corresponding service multisig. + /// @param stakingInstance Staking instance. + function _stake(uint256 socialId, uint256 serviceId, address multisig, address stakingInstance) internal { + // Add the service into its social Id corresponding record + IContributors(contributorsProxy).setServiceInfoForId(msg.sender, socialId, serviceId, multisig, stakingInstance); + + // Approve service NFT for the staking instance + IToken(serviceRegistry).approve(stakingInstance, serviceId); + + // Stake the service + IStaking(stakingInstance).stake(serviceId); + } + + /// @dev Creates and deploys a service for the contributor, and stakes it with a specified staking contract. + /// @notice The service cannot be registered again if it is currently staked. + /// @param socialId Contributor social Id. + /// @param stakingInstance Contribute staking instance address. + function createAndStake(uint256 socialId, address stakingInstance) external payable { + // Check for zero value + if (socialId == 0) { + revert ZeroValue(); + } + + // Check for existing service corresponding to the msg.sender + (, uint256 serviceId, address multisig, ) = IContributors(contributorsProxy).mapSocialIdServiceInfo(msg.sender); + if (serviceId > 0) { + revert ServiceAlreadyStaked(socialId, serviceId, multisig); + } + + // Check for staking instance validity + if(!IStaking(stakingFactory).verifyInstance(stakingInstance)) { + revert WrongStakingInstance(stakingInstance); + } + + // Get the token info from the staking contract + // If this call fails, it means the staking contract does not have a token and is not compatible + address token = IStaking(stakingInstance).stakingToken(); + // Check the token address + if (token != olas) { + revert WrongStakingInstance(stakingInstance); + } + + // Get other service info for staking + uint256 minStakingDeposit = IStaking(stakingInstance).minStakingDeposit(); + uint256 numAgentInstances = IStaking(stakingInstance).numAgentInstances(); + uint256 threshold = IStaking(stakingInstance).threshold(); + // Check for number of agent instances that must be equal to one, + // since msg.sender is the only service multisig owner + if (numAgentInstances != NUM_AGENT_INSTANCES || threshold != THRESHOLD) { + revert WrongStakingInstance(stakingInstance); + } + + // Calculate the total bond required for the service deployment: + uint256 totalBond = (1 + NUM_AGENT_INSTANCES) * minStakingDeposit; + + // Transfer the total bond amount from the contributor + IToken(olas).transferFrom(msg.sender, address(this), totalBond); + // Approve token for the serviceRegistryTokenUtility contract + IToken(olas).approve(serviceRegistryTokenUtility, totalBond); + + // Create and deploy service + (serviceId, multisig) = _createAndDeploy(olas, minStakingDeposit); + + // Stake the service + _stake(socialId, serviceId, multisig, stakingInstance); + + emit CreatedAndStaked(socialId, msg.sender, serviceId, multisig, stakingInstance); + } + + /// @dev Stakes the already deployed service. + /// @param socialId Social Id. + /// @param serviceId Service Id. + /// @param stakingInstance Staking instance. + function stake(uint256 socialId, uint256 serviceId, address stakingInstance) external { + // Check for existing service corresponding to the msg.sender + (, uint256 serviceIdCheck, address multisig, ) = IContributors(contributorsProxy).mapSocialIdServiceInfo(msg.sender); + if (serviceIdCheck > 0) { + revert ServiceAlreadyStaked(socialId, serviceIdCheck, multisig); + } + + // Get the service multisig + (, multisig, , , , , ) = IService(serviceRegistry).mapServices(serviceId); + + // Check that the service multisig owner is msg.sender + uint256 numAgentInstances = IStaking(stakingInstance).numAgentInstances(); + address[] memory multisigOwners = IMultisig(multisig).getOwners(); + if (multisigOwners.length != numAgentInstances || multisigOwners[0] != msg.sender) { + revert WrongServiceSetup(socialId, serviceId, multisig); + } + + // Transfer the service NFT + IToken(serviceRegistry).transferFrom(msg.sender, address(this), serviceId); + + // Stake the service + _stake(socialId, serviceId, multisig, stakingInstance); + + emit Staked(socialId, msg.sender, serviceId, multisig, stakingInstance); + } + + /// @dev Unstakes service Id corresponding to the msg.sender and clears the contributor record. + function unstake() external { + // Check for existing service corresponding to the social Id + (uint256 socialId, uint256 serviceId, address multisig, address stakingInstance) = + IContributors(contributorsProxy).mapSocialIdServiceInfo(msg.sender); + if (serviceId == 0) { + revert ServiceNotDefined(socialId); + } + + // Unstake the service + IStaking(stakingInstance).unstake(serviceId); + + // Transfer the service back to the original owner + IToken(serviceRegistry).transfer(msg.sender, serviceId); + + // Zero the service info: the service is out of the contribute records, however multisig activity is still valid + // If the same service is staked back, the multisig activity continues being tracked + IContributors(contributorsProxy).setServiceInfoForId(msg.sender, 0, 0, address(0), address(0)); + + emit Unstaked(socialId, msg.sender, serviceId, multisig, stakingInstance); + } + + /// @dev Claims rewards for the service corresponding to msg.sender. + /// @return reward Staking reward. + function claim() external returns (uint256 reward) { + // Check for existing service corresponding to the social Id + (uint256 socialId, uint256 serviceId, address multisig, address stakingInstance) = + IContributors(contributorsProxy).mapSocialIdServiceInfo(msg.sender); + if (serviceId == 0) { + revert ServiceNotDefined(socialId); + } + + // Claim staking rewards + reward = IStaking(stakingInstance).claim(serviceId); + + emit Claimed(socialId, msg.sender, serviceId, multisig, stakingInstance); + } +} diff --git a/audits/internal1/analysis/contracts/Contributors-flatten.sol b/audits/internal1/analysis/contracts/Contributors-flatten.sol new file mode 100644 index 0000000..5f9c7c5 --- /dev/null +++ b/audits/internal1/analysis/contracts/Contributors-flatten.sol @@ -0,0 +1,219 @@ +// Sources flattened with hardhat v2.22.4 https://hardhat.org + +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.25; + +/// @dev Only `owner` has a privilege, but the `sender` was provided. +/// @param sender Sender address. +/// @param owner Required sender address as an owner. +error OwnerOnly(address sender, address owner); + +/// @dev The contract is already initialized. +error AlreadyInitialized(); + +/// @dev Zero address. +error ZeroAddress(); + +/// @dev Only manager is allowed to have access. +error OnlyManager(address sender, address manager); + +/// @dev Wrong length of two arrays. +/// @param numValues1 Number of values in a first array. +/// @param numValues2 Number of values in a second array. +error WrongArrayLength(uint256 numValues1, uint256 numValues2); + +/// @dev Account is unauthorized. +/// @param account Account address. +error UnauthorizedAccount(address account); + +// Struct for service info +struct ServiceInfo { + // Social Id + uint256 socialId; + // Service Id + uint256 serviceId; + // Corresponding service multisig + address multisig; + // Staking instance address + address stakingInstance; +} + +/// @title Contributors - Smart contract for managing contributors +/// @author Aleksandr Kuperman - +/// @author Andrey Lebedev - +/// @author Tatiana Priemova - +/// @author David Vilela - +contract Contributors { + event ImplementationUpdated(address indexed implementation); + event OwnerUpdated(address indexed owner); + event ManagerUpdated(address indexed manager); + event SetServiceInfoForId(address indexed serviceOwner, uint256 indexed socialId, uint256 indexed serviceId, + address multisig, address stakingInstance); + event SetContributeAgentStatuses(address[] contributeAgents, bool[] statuses); + event MultisigActivityChanged(address indexed senderAgent, address[] multisigs, uint256[] activityChanges); + + // Version number + string public constant VERSION = "1.0.0"; + // Code position in storage is keccak256("CONTRIBUTORS_PROXY") = "0x8f33b4c48c4f3159dc130f2111086160da6c94439c147bd337ecee0aa81518c7" + bytes32 public constant CONTRIBUTORS_PROXY = 0x8f33b4c48c4f3159dc130f2111086160da6c94439c147bd337ecee0aa81518c7; + + // Contract owner + address public owner; + // Service manager contract address + address public manager; + + // Mapping of address => service info + mapping(address => ServiceInfo) public mapSocialIdServiceInfo; + // Mapping of service multisig address => activity + mapping(address => uint256) public mapMutisigActivities; + // Mapping of whitelisted contributor agents + mapping(address => bool) public mapContributeAgents; + + /// @dev Contributors initializer. + /// @param _manager Manager address. + function initialize(address _manager) external{ + // Check for already initialized + if (owner != address(0)) { + revert AlreadyInitialized(); + } + + // Check for zero address + if (_manager == address(0)) { + revert ZeroAddress(); + } + + owner = msg.sender; + manager = _manager; + } + + /// @dev Changes the contributors implementation contract address. + /// @param newImplementation New implementation contract address. + function changeImplementation(address newImplementation) external { + // Check for the ownership + if (msg.sender != owner) { + revert OwnerOnly(msg.sender, owner); + } + + // Check for zero address + if (newImplementation == address(0)) { + revert ZeroAddress(); + } + + // Store the contributors implementation address + assembly { + sstore(CONTRIBUTORS_PROXY, newImplementation) + } + + emit ImplementationUpdated(newImplementation); + } + + /// @dev Changes contract owner address. + /// @param newOwner Address of a new owner. + function changeOwner(address newOwner) external { + // Check for the ownership + if (msg.sender != owner) { + revert OwnerOnly(msg.sender, owner); + } + + // Check for the zero address + if (newOwner == address(0)) { + revert ZeroAddress(); + } + + owner = newOwner; + emit OwnerUpdated(newOwner); + } + + /// @dev Changes contract manager address. + /// @param newManager Address of a new manager. + function changeManager(address newManager) external { + // Check for the ownership + if (msg.sender != owner) { + revert OwnerOnly(msg.sender, owner); + } + + // Check for the zero address + if (newManager == address(0)) { + revert ZeroAddress(); + } + + manager = newManager; + emit ManagerUpdated(newManager); + } + + /// @dev Sets service info for the social id. + /// @param serviceOwner Service owner. + /// @param socialId Social id. + /// @param serviceId Service Id. + /// @param multisig Service multisig address. + /// @param stakingInstance Staking instance address. + function setServiceInfoForId( + address serviceOwner, + uint256 socialId, + uint256 serviceId, + address multisig, + address stakingInstance + ) external { + // Check for manager + if (msg.sender != manager) { + revert OnlyManager(msg.sender, manager); + } + + // Set (or remove) multisig for the corresponding social id + ServiceInfo storage serviceInfo = mapSocialIdServiceInfo[serviceOwner]; + serviceInfo.socialId = socialId; + serviceInfo.serviceId = serviceId; + serviceInfo.multisig = multisig; + serviceInfo.stakingInstance = stakingInstance; + + emit SetServiceInfoForId(serviceOwner, socialId, serviceId, multisig, stakingInstance); + } + + /// @dev Sets contribute agent statues. + /// @param contributeAgents Contribute agent addresses. + /// @param statuses Corresponding whitelisting statues. + function setContributeAgentStatuses(address[] memory contributeAgents, bool[] memory statuses) external { + // Check for the ownership + if (msg.sender != owner) { + revert OwnerOnly(msg.sender, owner); + } + + // Check for array lengths + if (contributeAgents.length != statuses.length) { + revert WrongArrayLength(contributeAgents.length, statuses.length); + } + + // Traverse all contribute agents and statuses + for (uint256 i = 0; i < contributeAgents.length; ++i) { + if (contributeAgents[i] == address(0)) { + revert ZeroAddress(); + } + + mapContributeAgents[contributeAgents[i]] = statuses[i]; + } + + emit SetContributeAgentStatuses(contributeAgents, statuses); + } + + /// @dev Increases multisig activity by the contribute agent. + /// @param multisigs Multisig addresses. + /// @param activityChanges Corresponding activity changes + function increaseActivity(address[] memory multisigs, uint256[] memory activityChanges) external { + // Check for whitelisted contribute agent + if (!mapContributeAgents[msg.sender]) { + revert UnauthorizedAccount(msg.sender); + } + + // Check for array lengths + if (multisigs.length != activityChanges.length) { + revert WrongArrayLength(multisigs.length, activityChanges.length); + } + + // Increase / decrease multisig activity + for (uint256 i = 0; i < multisigs.length; ++i) { + mapMutisigActivities[multisigs[i]] += activityChanges[i]; + } + + emit MultisigActivityChanged(msg.sender, multisigs, activityChanges); + } +} diff --git a/audits/internal1/analysis/contracts/ContributorsProxy-flatten.sol b/audits/internal1/analysis/contracts/ContributorsProxy-flatten.sol new file mode 100644 index 0000000..e58ea2b --- /dev/null +++ b/audits/internal1/analysis/contracts/ContributorsProxy-flatten.sol @@ -0,0 +1,76 @@ +// Sources flattened with hardhat v2.22.4 https://hardhat.org + +// SPDX-License-Identifier: MIT + +// File contracts/contribute/ContributorsProxy.sol + +// Original license: SPDX_License_Identifier: MIT +pragma solidity ^0.8.25; + +/// @dev Zero implementation address. +error ZeroImplementationAddress(); + +/// @dev Zero contributors data. +error ZeroContributorsData(); + +/// @dev Proxy initialization failed. +error InitializationFailed(); + +/* +* This is a Contributors proxy contract. +* Proxy implementation is created based on the Universal Upgradeable Proxy Standard (UUPS) EIP-1822. +* The implementation address must be located in a unique storage slot of the proxy contract. +* The upgrade logic must be located in the implementation contract. +* Special contributors implementation address slot is produced by hashing the "CONTRIBUTORS_PROXY" +* string in order to make the slot unique. +* The fallback() implementation for all the delegatecall-s is inspired by the Gnosis Safe set of contracts. +*/ + +/// @title ContributorsProxy - Smart contract for contributors proxy +/// @author Aleksandr Kuperman - +/// @author Andrey Lebedev - +/// @author Tatiana Priemova - +/// @author David Vilela - +contract ContributorsProxy { + // Code position in storage is keccak256("CONTRIBUTORS_PROXY") = "0x8f33b4c48c4f3159dc130f2111086160da6c94439c147bd337ecee0aa81518c7" + bytes32 public constant CONTRIBUTORS_PROXY = 0x8f33b4c48c4f3159dc130f2111086160da6c94439c147bd337ecee0aa81518c7; + + /// @dev ContributorsProxy constructor. + /// @param implementation Contributors implementation address. + /// @param contributorsData Contributors initialization data. + constructor(address implementation, bytes memory contributorsData) { + // Check for the zero address, since the delegatecall works even with the zero one + if (implementation == address(0)) { + revert ZeroImplementationAddress(); + } + + // Check for the zero data + if (contributorsData.length == 0) { + revert ZeroContributorsData(); + } + + // Store the contributors implementation address + assembly { + sstore(CONTRIBUTORS_PROXY, implementation) + } + // Initialize proxy tokenomics storage + (bool success, ) = implementation.delegatecall(contributorsData); + if (!success) { + revert InitializationFailed(); + } + } + + /// @dev Delegatecall to all the incoming data. + fallback() external { + assembly { + let implementation := sload(CONTRIBUTORS_PROXY) + calldatacopy(0, 0, calldatasize()) + let success := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0) + returndatacopy(0, 0, returndatasize()) + if eq(success, 0) { + revert(0, returndatasize()) + } + return(0, returndatasize()) + } + } +} diff --git a/audits/internal1/analysis/contracts/script.sh b/audits/internal1/analysis/contracts/script.sh new file mode 100644 index 0000000..c4d1607 --- /dev/null +++ b/audits/internal1/analysis/contracts/script.sh @@ -0,0 +1,21 @@ +#!/bin/bash + + slither_options=("call-graph" "constructor-calls" "contract-summary" "data-dependency" "function-summary" + "human-summary" "inheritance" "inheritance-graph" "modifiers" "require" "variable-order" "vars-and-auth") + echo -e "\nRunning slither routines ..." + for so in "${slither_options[@]}"; do + echo -e "\t$so" + slither . --print ${so} &> "slither_$so.txt" + done + echo -e "\tfull report" + slither . &> "slither_full.txt" + + # moving generated .dot files to the audit folder + count=`ls -1 *.dot 2>/dev/null | wc -l` + echo -e "\tgenerated $count .dot files" + for _filename in *.dot; do + filename="${_filename%.*}" + cat $_filename | dot -Tpng > slither_$filename.png + done + rm *.dot + diff --git a/audits/internal1/analysis/slither_ContributeActivityChecker-flatten.sol.ContributeActivityChecker.call-graph.png b/audits/internal1/analysis/slither_ContributeActivityChecker-flatten.sol.ContributeActivityChecker.call-graph.png new file mode 100644 index 0000000000000000000000000000000000000000..5c5c7ec53be3df63181063a2a8a3a46ded1aea6f GIT binary patch literal 33692 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 Iw8Q5A0fb>>3jhEB literal 0 HcmV?d00001 diff --git a/audits/internal1/analysis/slither_ContributeActivityChecker-flatten.sol.IContributors.call-graph.png b/audits/internal1/analysis/slither_ContributeActivityChecker-flatten.sol.IContributors.call-graph.png new file mode 100644 index 0000000000000000000000000000000000000000..2a97ae9bed53e0697783df81c2c54e9dc362568b GIT binary patch literal 9797 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%0D9!^+Uz{5Dg@(qvXPT16cM~{=Vh-8E-{S__ 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 M&sg`KHsh;508%NiJOBUy literal 0 HcmV?d00001 diff --git a/audits/internal1/analysis/slither_ContributeManager-flatten.sol.ContributeManager.call-graph.png b/audits/internal1/analysis/slither_ContributeManager-flatten.sol.ContributeManager.call-graph.png new file mode 100644 index 0000000000000000000000000000000000000000..c8a42e60c7a86b076408793ef6a9cf248075fb1d GIT binary patch literal 140165 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 t!@sVE47WDs48kIl*w5I{|{K(8~6YK literal 0 HcmV?d00001 diff --git a/audits/internal1/analysis/slither_ContributeManager-flatten.sol.IService.call-graph.png b/audits/internal1/analysis/slither_ContributeManager-flatten.sol.IService.call-graph.png new file mode 100644 index 0000000000000000000000000000000000000000..ce6fd9b7d8aee9df801fdfbd8f8e738c3c0903d6 GIT binary patch literal 25914 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

^WOQ@8;vAImgb=AFh~A*vI#F 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 EPmMh1&j0`b literal 0 HcmV?d00001 diff --git a/audits/internal1/analysis/slither_ContributeManager-flatten.sol.IStaking.call-graph.png b/audits/internal1/analysis/slither_ContributeManager-flatten.sol.IStaking.call-graph.png new file mode 100644 index 0000000000000000000000000000000000000000..27bc2327151168327e1e0f3176102cbe527a98c5 GIT binary patch literal 27094 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

O7VvXDIDXoe0-OQ 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 LV($Zk;}`!6+Zkh@ literal 0 HcmV?d00001 diff --git a/audits/internal1/analysis/slither_ContributeManager-flatten.sol.IToken.call-graph.png b/audits/internal1/analysis/slither_ContributeManager-flatten.sol.IToken.call-graph.png new file mode 100644 index 0000000000000000000000000000000000000000..b1ca9b1133a7ca327246f3f96e94efd5caa52b18 GIT binary patch literal 9304 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 literal 0 HcmV?d00001 diff --git a/audits/internal1/analysis/slither_ContributeManager-flatten.sol.all_contracts.call-graph.png b/audits/internal1/analysis/slither_ContributeManager-flatten.sol.all_contracts.call-graph.png new file mode 100644 index 0000000000000000000000000000000000000000..385d99517eaf8685281f5ee84afe5bac27f99cf6 GIT binary patch literal 324647 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

eUmFMJQb8ffxP`E6@;$ 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Ƙ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

pM!Z_l18b6zbw_n>e7W|rQ`1NtJ8 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 literal 0 HcmV?d00001 diff --git a/audits/internal1/analysis/slither_ContributeManager-flatten.sol.inheritance-graph.png b/audits/internal1/analysis/slither_ContributeManager-flatten.sol.inheritance-graph.png new file mode 100644 index 0000000000000000000000000000000000000000..a50f08835fb43e98187bb4db74e2027583abbaac GIT binary patch literal 135609 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

{NX21zjmd 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 U)P3e~UcAR%7q8vb%AmBr0QBxLF#rGn literal 0 HcmV?d00001 diff --git a/audits/internal1/analysis/slither_Contributors-flatten.sol.Contributors.call-graph.png b/audits/internal1/analysis/slither_Contributors-flatten.sol.Contributors.call-graph.png new file mode 100644 index 0000000000000000000000000000000000000000..fdca0c99104da63a0ed6b557ba6a6fe0fa032482 GIT binary patch literal 107144 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

y zsyq%h=y(#qAR*oBRQ;QkjcpVcT+2hXZeN5;yAk&6lQQ<-FVSzs+0(bxRJL9TDe3C*$8$+#c{A|25f3<06o+S-zI0G<75Nb-ReH2uusR9m6tgG`hGe@gf% zHC#!HJ0>4z9zT_mo*vA5EN|o!3L*p-5EHN`c8V>*0i-!z8hLBJXU6@>aY;2?_~D5g zUFrl`Pp3TQVw|tHQ6M%lI72Y_Y^Y!N>lO7)oXy4kx)a+8*74E(-wN$d?;P%`T-|Qw zGp`4q*9dx0$!$s9wW2sh3?==Jq#1_XDS+`~9RmZAz)}<~%y_^aCxC7kSGQE5m=%uO zrza?nb<%E%o1B>;^P)-fEeO4o$B*fEC9#4xMPpYrx`xnTdmZyB;rue19&Rs&y zQ`xvl zzth4(7$Ssc%va*pg${s0zDHBPQWFa>@mv6h=5_0cF#mIaPP;+zh)N8I6DdsH^x(oR zD%+ukaq#hZo@l`N3pCyKzg(F_f;~nAa>AYA35Q+|MpNVj>mr}t$Bfe&*o{NU=qkK8 z@G4XkRGc_b*!QGK1Sy#TCq`FL`p>#9VH082yFb)VLFy9tZqbQF^i!-QvAAP$4)Ga} zU*#BL5c2VZ21&?`CG>!@pqeAO(pQ0xh4`HNBk*ge65HqtjN593(3nH|>(<4$9l=v8 zLP`1J+yp-+Hd}jH1Qzzo+TAt^39nKZ%QS^bnUa9u(A}#+ZuTL*VB(C%^^txc1=vWx zKbuoK^0TaSi*ykgtcN7L&U?o~!_bg0o5x9PCTNyeT7)e<>?BxYqX4+TB8I9T&-FvP zvPAbR*%|M9dr22M>|xfJECj}y*W0tJ55EQ7djYr<3=#0lPp~U~os+s)IAU1C-4|%V zCvCnMoCM|?GY6k^*KQGA22^1yM*|~V)g0auHvXmW{n^d;?Ah}ghzsm6%4zacWVBen zBes$j1Y_W?dMB_}`M3iE^lZ?7N!q*?bd1fx8J-4x0HITp+&HYOuOI#=MKV`mpOQUI z?m{7Lftc5W%lIf1IFO0U8#W^14afa)sj!eRVM!2I+Ymy?Uc>;T*}H>?fblJK1;#Tu zV*O}NtsH89YL4W-GHs_>i$Ww6y)V84!RCw!Q?TePozg<5}?d?RhV)x}Wc`p3IF1acrTUgRrQcosp@;o%f{6m9%pcV;L+x=rXM%%L$D+ zCs@VqBKpz6w2|-9wk5s!=k^M~Q_fIYm>1N>N>Kg4hZ>@OTpLvC|FCYwPZ^mrrGXga zLJHDiOi%-*zh#l#E~0i=3#B(GB?2=cbAz=*Cv;j?78`|~lk+;dV1zL!fp~rX&Ev3e z*w@l2kXC9GJ;6x(mgqOLVhfhivZB@YaoNF7$n`V2pwI{tn%5J7+yu?f^La1k9$hgD ze6t2(+M)j)MuF!iw~+*|hTDW-RcyfRi(!zSbAt779{s02eX1eRgPcdCBUH@+{f-P2 z#4oK!N6DQh5|WbI;CbN`vfn}wQD7?{K9ayJB_;F(vBD2QkQN9xyk&I$);hrwi8{)P z?X(j1JccxEBHTpzTn)1)Zal9O?1pz8>7^?T_1r*J>_Rv(*W8H(|i}1Ysvk-Beo~A(TK}_;^Qvp|00kRioK=9(QpL0nr7LP#hBLTGo%#R*f){ z+F|e67=?HX&;EUnSH_6RP?)3R;(~BkeUo>6i+;)nhHl@Z8Ynm3B(eWl-@MK2BjL5f zRREBlTVilZ@s6wPl|<1z53p1o-UQG?&~R4*Sz@ODE-}X-5tMOr6bpO=o}Zqk&msQZ zd%qd5D4_t(mN~-Hpjl@Rh9!YZvQ$o7{)t0Cx|Uj755SFRiB=*Ygv0_>0|KRN+$WGz zVACV90=OJcF@&BS=Uqu)+TmgN&UlTeZDGGwHNpCLe=cDFU-sunp`)3^d8#3|T_99z zYK8t^C85>8GW5h@l*zI9{JJ>(3xaKnC=d zP4A(eY(#YSnjqa#D;0A8@Sz(4FE6<|s)XH9%4m>VN8i{9x5rwY9D0Z}Q7hZK2KOO$}5+|K@T_;p(a_JnQx6oO7gGdF~ zl04o<1mD~SE9dj=?WrZ878fvqz@>zwn{=b5Y~oyFqp%(d7jZ8`X2Y%XjKKP!udg?y zZ6SZTU<8p0FPYde(c?pi2&c=t1SrBFb%vv%FmVa;@{(Rg6ybomA%WB)HX0r03(DsT zp#+O*0lNi&0W`bIgI5R9992rP6J8Mx^Yjr@hXP|#0Y#np1lv8i6AR}0fL+q2wx9)w zWdb+V`IEant=ROrp#}julpEy$$&gl9=on<%#KcsGufxQ}kN%0oEJ51-c!`3X1RO#2tP_+$BK3;= zlSt1YFOWO6V9Tl#e0hD?y{x0BCltqvmY)6r=2r8hk>I)?H)$gGkPXveAK2qSvUAIa zkykN$HzBg2F5V3ojO8ZsAO{E4qoW3@YUIpbif%hgrZG3R*(=r9D}AZ5$Io4Bvnzsq z;fM!c(giRvE+A&m{g8r7m(X%yYK`{@5*Z!jD<54;NRuOa`;pegpchNV?VC=$b$Se~ z0TivNd7IrR${~Z{PqvZN%Gm;A1QAR8Z(h&R!e-7j*lTEcW<(MPzyfgx5g8f+tQ0z_ zhlOzi%B~JGF#?kT{tl}2D`k!U1pa4A#Tup`(8f0WbW=$WSjw|YvpqF**vfEv(P`kM6F?Ey>UQ% zRHej}HQ@k#kTwI7JoU!N~9%C%X8 zh_NU9I8Gf8e|l##^J91>4v2FhiSe@r>l+2GVPy0}B)}LY($$Up4;d3fD&YMfjVoxI zS^4EAe+M5?@V%@I&ghw$pL<`bVkf7}>Gi4VVq zjv(Qfy?|_LOaW9{;2$uiJc}de=ky>1f5EA}iZ3qxG97a-TUP5ALPkd+gK$s0D89a{ z5jQsr3lD|qsCP~l+7|ULdxb+K#l{6|0#u0TJL}q7^9i1gKW>(LzQK(1cqZ$A?MQe8 zQi5QkqH7PzHpNe<_Vk1fA1$pPAdPR|on{-KP6^AofXqj+J?$S{hY9U~VM%ZhiV}vP z04YBw*!k`Hn|lD{9^kU3L10gO7m{fIQy`FRj=y66;x^)7KKcIIO~qJ{RoFrVh&SXW zR+rSD)v$cj3Gx7(Dr~z9O%xmg;cRj59Qx`Y!$l1bTY|T&&>8cDOA^g!OeLm~*ym<} z8<0n_S0Rz(efb9)7+IdjSAt6i-)c#33yvtS5AwCtUK}>KBS2|P%*+JsNgFQ0)Iqc7 zyx0VK;XESh>H_}<1QIgm)-CNa6>~aVmQ3xtn3p_Em>M%&LN6I9GA7w!uLOZt8*QcF z5eck(dOQrFhlJpV4{1sG$H2O7oz0h;aPK1x1s$JJO=2RtYRLP9V8;!oA+i-q)M$dy zcXLyM$`^*d^kH1ac>U(mq!bm!d!*Tl+yd{61Z@Q`02EC=bcZZ#M=ij< zZe0*&5`iCB_=y%O9G3FA2*El+D z?ccI79R$bfWgLFVu~WWYdGRXh^hEb#dF(Km`0z?wl_4jA@Y5C&3JSLv!n^k< zqMF3E`?|cnTvZq~BcPcTKEttSBM2A-$MW8`i3tg|d$_E-df0i+*${{9x2AiEDMADS zCzbQ^Z=vGycjt19)G8hymkffKFTh6?vGvOBy_>At8?ma54v%Y<2P|i!Fjjn)%Uv6~ zms$uHKY#1*JxH>%Ut6iS*A$%m^jJYPdlaKqfRuwf?8o|dLP`Ms#dpz+M4BF$jP1v% zXFG;{xvDC;2^Ob86S!B%nj*^rxDxL*`dPp>;+^5oibqs*i6e?%5AYd2j7 zJ_^SWlQ~0C!s>uaLXykI?CA>MJlyn+fl&mQBJ$G`2obpSm3WSTkB~R&$gSin{e!;* zq`4U3U1f=RZT{MkH#@qJEWF$i%mxl5g@*IwisF)1_e9 z$hpYp9XTg@9?vb?&26S-D_}^Oi(;tKWEk?2zjMZBb0GU3BO9fJr`$~VnmhPeEANA# zANlT>_x$inq31iQg$DGFtXkBY9D~clry?_=v8<{^=-6^a!qb&OD92Fc5w5X*|BPz% zzBpziwGR0Mdl(0Q@1r;J-?IX~hqnXqm zE7%wrhZeYam@N989v$5}8!2+HEBmqtMX=uqXUZ$4^81Rek*)wg|MV$#RY)0VF7>_W zTSLu7nL~w91y5+`miv6)txtPYg(6`PEgaUAQQw2ZuWB}`I$2T)zbgpu$Ac}oh~pkW z27i=e|G^1}RS5?guAM^l4=WvI<6)O(PZ5L0H9 zRb?K1e_YpXZ@(P>R*_iKSaevGJqjA)g%X$dvv7ey_wH^^%bO}Im)+h_8x@sTbzo6J z#GK_9@_uqThXt;B_e0t8mRo2*%T&01 zeO;px2`}ce!K7^%B# ziNu=GB)(}SmYGVyMrzYH$FUQs)HH+ zOASFgs*TPfE*k9UiRy&0ya)Z>P43=uuI?d?ySED##wmKezx;I0$>7k%iI0>9X;?No zoKqTNwO+^a?HtXXrM@MLOC6f_(>HzXp!D(X2K7@B3;J@a?lm|UroH3Ko1}~;Th*ES zZVqs0kqpRO-FHn{NXd?lt>)IdS5msW$TC0G`JVrB#gxn(kG=O3wQY40N9E4*o}zUi z+D1Qm%T zK!?n}I(1S+qR4mP+JAmuJMXe%%#W&>BR2Li+%+mbJ|oC_m}XeML|>~%!$)^3)EaD2 zG3R#9)sl+nPU>5>lvk!DUdvPVb-(msYFizxnRay;Yht7;5G(bGCOSFb0@0E&Z-mey zWHW-W>Y+syt@OU-6=!7LH*@tY{}mYfbLQM)Q|;)?hzq0YDP;N7DA1ZJD#&cG>&mP3 z%@TsF;%4Rkmtoy)j_sYi^DhGC{~UYCC*+bx2GY?D=edQPUK6by3;IsPB8Nf~RR#Z{ z5geJ}<78qrMtSz6e$_Q;Ljy}L_iMR3E~hNaRr$4jTAp=UUaKvuibD+o_3M>?cgs=D za2wO|!|H-5g=>rJJC_gL?DCiGo#;yeLv{sSj&iLj%Fa=|jPg;)3T@y?Ig8>n&Lw0^L_qLtdZPhbvKg)Nxo~R9VCMM;F!W5cxhODE5_YT2*4zs8%(9 zg-!SVk$Iq`e?sQ#1+KkXd-e}B*U~p@JATN0_2Xl`Zf$$&oYyO(K)dk!R+k!z7II~& z{Vy1cUb~i`jaeKngB9W;D3li*CTlJifkfWMRV(l1f}^@CQ3s0%9j#ax%Ot{gja6)c z35MXS3$0W-8#Y4>^Lp!C^?jfX#|L>(Ox52?^P_51Gb-}E4?9#eYJY~-DnUxiU&Bi* zR@ozh&=LvpTo6G)7cF_6d3kyY}Kg2rRiJm zy6R~5MnmXYoSxZ0*(vVhhD&Whp}A_`);5fr{nt=oq$Z8 zLhBT{nxr6L5<^O&+Szg#mjD46Xq;sZ5pDrXB*FUC`pk2a@{utHN28;kWQGyS=oAY7 zpv_;K%J!4;y|#TU$NOZAX=xe1GNa63(dh9*4hJl~wJ=c#s*C z?dY0&t|nz{buX`PAxHN*nc0%86}-&*mG>O+-|7z!A~!uZ898U^okcs&H@2u(d&j&| z|NYRsS-Cfq1EQ@);{@?XLI9we!;Bu4X=8=oT8Daw$Voo5W@sNfjn5SYJ>u5tJ(rh| zpF6EAH#FV<$VPM`W^)p7(926 z3XlJ`Y=3p$Wsr~Rv?s&Lz3Dm2GIz)HdC{ZUkg)sK=Vv7io^9p3sn+|b$=PM=qXTrx zZ@4e)o>n@0Zd6K&ow?n9u9fdV{Z~sww&--#>g2rgfl-z-UGAp*JmOkWu`ySmy5n6VH!{NX4_Wv&HR3%1=YXE%QS6#EqgS5!JGocCrK! zHKn*(rm=Qs)xFBxi;iAeALr5Z%Ptfd-9^=DS(pWnDm3StH%Wt=o@W^p4U(X^4B|z` z9XfOfSI@r-v#2{;z+6+AGGVIZJF>j3(4_)!RphzWA72}@y;qj|(nZnUCH2F9H2N>UwMvV%b9L23L3{sxkfon`&C!vA z^zHS)xk^xeA0eZ&U=a>NIn!HTczf2IF&z1p$rSFhtix?S|lOCv|U zZ?4t*Y0xDFSFL-gk8+n}j9Oi8(4uH>vS)+z{>Sbv8SbY%{Ap9C-gZCC&GHuvGT(Qz z|6(Nnp*$sqLrU9X|${ewpZ-q6~#u-xw6 z$JN{JjT-au;>(VUZr;f|zDYp=YrYm6y1P{*esRqCGseVlj9gTF(HIF-IP7~7GyqvI z0&AwU?w5y^HN2_WXnw7#Cv*`=MNsV3FzHHB3yE6~U%Mu4<*1;@d9(qovj;$zgn(x|?+KM94b@+kczhb=G%$?K?EW;^|n~yGXCog%%c^N77 zGwva9slUG>FcU&ZuFJyG#%g7|*L3RLEJZ2LC!;JYf3ug~=qI_C3x~!;^gSARt>m%8 zj&mzrd@pN+-58sdFyzvnM)U1Z`F6A)#fyg8uikmp6 z$y>Kx=WJq7{bTfAiQtUS_Ug4Pd4lqbraCQ61%nc!X2^w8l&eTOZkMGD4@YAp{Ed&%7Z0FZ5e)s0!H z=^>BFtj-g;}zb07CrxVGn}V`QMZBBE*E_d)567G=fT zWQ|{(l@qf)rPMM0_{uqX=Swmky^0KbGG|eM)0iWn+lN{HBy5R)-Ov+8BH!j*9`-2e>$%_cpmaSEbYpz1C5@}9ka{nb<1+6M~($c z;%#DTT^F@Yu38;e_2W%Y$?p5(dlyzHR)29$^jVfM{O7e(>(N^HUR(J(v-IBVHEY5W zn4O=SICiJepf9#=6 zw8DosKABc}qfb98vHol`{AJ3=ioE@g9B&0(8l4%`@kdYP;AykJ8JertbM-9fsjQT9J!`_Y**C20N8rfl+gV!Pw*m)wrkX?GNr{g`FiaO^E|ec!&vWTv6L9o8eD zMCvQI{xb}TWH_oh@ogRARMY|Ta}Cn95BI8y#^NoV7TYaub?w)FwcF)xu)d)1q^i-C zy(DBXTYD28!#dUg3=s{qa%u?)~bTMdrI+nRRKYX*#6!}EkmLzO*TliqN@E< zd)mBerIw_$=bHQY$e51G?&@B5_n5n@AJ?!P?zu_*{ZAd$^1f%k|2?GOqW`-{#W%10 zZ4H>mB0b!DT;V)8>p7jp7^+Ho3IUL!{%Y229DnOtkm~a?Ct$apa>Sjq=H)A!Y;^2= zyZRP=X_mvV$|^1^fH#P6>a9x^lPdg6e$1>`ADX*=0skuhKqWvib6UAS?RMC;dIA3T zBU7v1R@z-~Qr#)5zY}QZC4JO*?Pl6z;uT?*44)x6jEV^z|8F z`tRA_yVj?dw%NJ3z?O0zWVO0O;-__`-p*;S7sK2j_ZFifn0Ti44&Dc<4c2=(1WsIN zebP=77Z(=@^?2siOLugxRv?ouR`K22lw~nFpqxfbE7d7on={BkTPb!EWsU;A{NXJ(}Nz(#rTBrKjT}^4&s&w$@507o$D{8Il5m}vL(`C^~ zcxPu}rru`OsF{xZ-g-;f(M(YmUKv`vbrOR|(~gf2o=GUf=FNW=PH5e#RRdm+aIBz^ z5bLts?EbSm9RvO%l*Hva3=`x0C~}a<+Md3A+33USZMGA-?&FwgLK#w=pv&zc`ejVy zcm+)x1lerage!FEuVUBEgrHcbdu1Kz4j+28|2;Tm5&Gjc1yhhOQ+7GXNvYHm@a^*7 zaDnTCiAiFv`h!p3w~JJ{M-S0E$PlK`lE`6jRhT@up?`5&!AmS-OHsovBG=38vb@~8 z#V)?N8t#cGP@2%eg&L z%{Fb^h^JJ;z-f8*WvySG?}e!eJ?03#t88O}TcktiZ6cY4#=HQr?{9B~Ok`ESOf{vym@WPDe2$zuH*#)ln& zwi5hr21w-&&tK*^gGp;<^adQbtCAfOXw_D@=NOKv64l<&r> z4hXK~%<>;U8r<&i6E#3v`^U-2SOP`W=^NGsmltRH;*l%9{uKq5wVrkI`Ed`u(6pm< z5bssS+e$D=7a26b0K)SBk#r&(BbS>c{Xi<}S3+Mlm0KJ{}&=&We|6o5x20mLH{!>XmLS5Kr&_L^`yam6@V3YvCQ2tM57 z#n=IhYLUn@A}_X;cuUBbrGT^?5!r|#^Ttodsvu^bS(vr2Q5@PKoFha?8&uWG$YU_3 z0D_5=>CmEL9N})F6^r0btY1zan#00s=IKlU6o2J@3nn+p3^ z)4cawIO6wpees-9Uc_wF4pgY3v*Kk@cq%9$ry%2tWK}$;h~iucGDUKw@>Op7<|=Nl zTj$z}M8;c&i;24CfB~}#HCwEUhe#7EPz21P!UZ}2Xh-QFDqMg^lz!qV3zX_H^4;WR zH|Fu1WcEO~P|9BZWy%lPmGKU5ev#1oAqRs6g(G`73(cV)>7Oq=k@*X#5(NcRePhOq z5iQn&zKQ?bdcTv@p+5M%Lo3+%@tp>mYfCQu5RrF$EP{4w0<_MWaeE$ria`;%=EH+} zay`*d0wg!#l2O*VS|H5CM<>|Tv#CSehD0aLW+mHe$UMr5>J+sM z>m1Y7DznuOkX6!BC5mMX$BZPuXp!cssL~1YUU-+Nq1qr`K6GldVre3RIZ@TfRKWxU z7(7MTR#0Qz3$~4#muiN%sg9z~XPjB4 zdYIlE$F~&7NnA-zc%ZqU@t50-WsV3s7`PFCUY`tC^bjya3IA7ZQU2xa+Dw-p&o=5t zEZvLtpEULGA9vE2AXF|hFe>AgIKlA z_<Px3Jsya(WwDb&8QS2K%Y$IQjqJxJj>$Jp0 zAoTU75k2{qyad^+Ec+rheqXLT|7Npw5ev?knWiwO78TV&>@vYd6hmI@md!t+t!1Ff z_Iui+cV+Bk&ARz^l{oMdB;{(__`Jw>5PMj|+G=~zBZI1sLo+IRI`j>TfJN+2Dfjyy zvHIRd(@sAVUiAU9C*H);&h(xgz9{{!L=+ZStQ_g`^ZLXRQ3G*x6cmssx2T?rxQjkD zH@8j8Uj*yc-Zyww9d`II?@RUv;}4^e>^!sE zz52ax)w$sFz2@nBh;u)2zL{CHMpy0CbN07iaANzzVY@OrZy9;tc~9q=Ep zoCB-&B$s8EM2+fE)*Cx!=e`)o9iX=EjqQMg^rBR(WA*zK@Xe;>L~3)T3d>(!7*A2M?B#_vm*?F$wZ7oh^`+0YqbSlj#&a2G?)3B9GWqiuz~c3t z-B6ZmJhA1HNk~sv3Xu@Xd&a~~f6L|91?KECfF!10I1m^(l^?eB?ae;G8fRB$-i!M7 ze2VX{I|jDNA2>n{Pq2E6+2KR@m$rZ0nE?Zl5%XteV;Z|_R}(zt917F+AqH;mdyQzr z-D%946AchT(~3Z6{h4P?7V()9LMg9PF|{)uICibP7y!Iibg&_aEQufYGE+!LJK;dwVZoKn-uAwzYxyH-~U_h722qao{xMAas8T3m+rw zopfXQ%huES#l?PM*pu}OEFu_(EzLonZf@F*=$Pf3`ujg*E>c!!$+iG?@l4y7Xg+tY z)#}y0?B!(yGcG;7a`zU;4YS#~lER!07^w{#rEpZMs|^bZ_F&jbF`n;n>e%wvS2|*F zntXiZ{CsUA52ZpHM8;OVQDN0ovZ16AHppTgneo_7_2B;2Onsed$%YJdo+XB3 z2D0o_+{dp*ipWlLTo2gBpD47u=G|C69*yxb&Z)e6 zJiv_;)r=I)ntw^ZwyR!)##VNA6DiQv|M#!iu>IQBMQw~^y#n{&Df5@1p&>JFM;IEx zU7+*wSC<~qZdW2*u4Er0yi69Ki8s!%q~Xo_^hpMSIl<`ot(Git$J>(DYrwMSZZgqg zYg->92Ega(1wS2HQEM5cTZRW*Yi#Y(GS^t9yS%t5Yq9)6#HTWMd@FnLP`2tG3KOKktT4 z^XAPtqb)cVn3XPldSaW=?pjw+lO^>nFblk`mQC*d$z2*;$~NC%xiA{$ipO>uh!ms!q@{^Q(2RyU$fTHF@cf4{4~yk z&Q^4TdW+)}H~uJ^%3@EGgDvAX&earKM{NG}Y?IqEe^j)o2!jDMzTdmGF#-ii$Crjz zn$W8YHxQHs_dj{dr7UN7_G}-Q@Wsu4=Ccw1T6Re&md;Z_){e0qF1oTD(U`M!=FdiU++HfuAcJu5S!0y14|19{#v zr%zXS7dT`n+oSI|6{m311eZD7cVP^BP!`4R6gTX2x6ytp&~SvX#I~BP>1;Hz%pYRp zq5qNT63$*YBFdclm77`x6o<1!7b|Iu)1TjS*~EKWvu4e7?f%^3RyYyy;ibUuGw(V` zVt*b{yMfEk%@Q!Qyu3K)yxHlU5}Xg3Q0;-ZC3sI39PQ>!4BQP_1Nq{b zooVHCTlVcrn3!WP(*FAZteVxU?slQNK93Y6GgM;rrKjtQfK}m$&<;tGO}MO zI;awAsgtuW9`xy+bZ%E0qeFccCP9G&u%3yVR^yWTo;sT4IrGBZ_Y%EPIZndBg9i#J zOk2W2g;*90A>)ztH4KYHIDTnI26VnqrhP^AtKPu~)vu--?;a;Ax9rp@g}5q39@XMm z6nKz(8^3+l9DaFDml=xZ{V6R|xin0$YH$G%Bv8@H9P#R?(#C`!Rw3*`*@075_>CKE zPmuAv0}Ki1bhPwnS%y^aD$B!Zbb9QubXQebpZ~lEzcoG5sUHcvJHD(`3;e(zhb;cS zJntYJ|5F|v%QCR?&Bgpc`{gmD(<3*PGeHys7$j9m?h8O;Igyzv<5SJxM#YJkZA0k#v?keBkQhB*~& z&O8-NzM<+A<=~`Pu~2& zGH@)>n{}XzA8f5h!@i5X1tNB3A0Uw=mi5F$^+&C{m}ycUKfAtcCc;ge8D|gkQ9X4m zVopnro(%Xw*sY^W>)N9Qi%{O&{AUV(1L7CWH6sfjHoiyvkbsN0h{?>J3~*zK(k5_P zB9^Y_c?ah|s(zY?DEITL%k2quGlqGp8ns<`e@h^R4|mH54v4hMwj`3V>^l{T?x2r0 zV(sAWKigitdsNlPZwxSzEX%dCv!nWy6)t?xL;6%Vq_Lq6Y><%oJ^I&)Og6Jt;S{4F zUY$oBNAOPF@DQAa4Kv+`4?oH%F;qqAj~|J#v160E$P0~N@@->z;UgrG)L{qpJ)D=5 zX#c%D|1hcl*~K~ics1yJsFIkzLc;!l2ZvF52?5rC#d`cAgC3G+@c)&WdkVD*a@|ng z^8I_cWJGLh5=Pa|FBw9rWmnCKjo<&1^_BVg<}1(Vj7gLWtaH$lP}xdd-7YHg-+%p> znP)XJ=3NY=H)20g?S?9heT_d1UrsX`afC#EaDkI!_XZ_ zX#N%Denx(F2&<|7I%Btug?YfR^*SPIi;dmEBU=0G=X#c;$o?r_h8<@Lyt#xwbS-z1 z=foGA(YQsM+1#oMn$&<%u7)^(8z;6f@-qN0iGBQd51~gw#(o44&{F1r>8tO4S0e+y zyMwRY=cQcx3Dh*<$i1h1oX0=r?tJJ~{?$dBRSMib;e|OyP%#bkHhx=5ne&8vgPf8j z9kl^b_q1Jyt^Y5MWPH$vusHtTb7l?LkqBrf3vZaVVRLj4_}lXnV;bN_9>CU@o~FlV z4ZEOfq&-2)jnkpQVrYVAR4i9tmI?s~-7GvIqd|&h)2Jub(!|o5B@!kimw|EnA35@z z4e$Ioj`>OSmjhO3binF6xSO)3+c{Y(y_yO$mTFyAv!WKypLFV&GyTw3+C$=|?XeHI z6Hg!w5D8{ooc$Np&cs|viBz4OwqXvRN0Zzca5~G%FMv=P?FxgHCcm~Fx$$~wg~}0C zsYn1Tz*?HKtW=>I=}64Y?-SEJsnQn=4n(B@xC955qwIAfg`PXq#GV;^e z5xsTK9%Z_Q9wSC9khH6$HF)sh*j*~uTx++`IFG@+hB}( zO!JX_g|4;%AX?@u0j75lUW+}sJo#=jqZ`teSmU_Ns+L~?H62?UdF+?{1i%<_a%iO( zhn;tQ>9%Ph)*NcuuHGHZ6g4|dp8TzUUA44CZ~%Y(B}xEb6wHSkDXUGtzs2QGOXRT& znga>SA#DE1Ohak^d6P25$w$ok_>l^wNylLhC+Lri6Wb6&JkvNiNQkieA0{OVU6ve* z4!y3Z?mu`io<@U7u^uq}91!9cuE!w^J>j4Eq3FsMX0n#BB`qPxyTj1^e5|YMJ|%U% zB|fo~*i^=-aR*ao*XtCjs!vVBxRI9H}}!XP>fWtsj=S#A)u$F+-O(70N&9{R7#KtKHFbgj;K)q$V&G;Hdrv zcFjR_>WX7^3+HVVMq-W4b`J_0VW{Bh%|b0k%Hp=r(0=UtoLSM#ZTf7|>cTq?i+DK{ z!(;1Sd0!aHQMJ_vsMv7jeT1i(ARfdxzWu+;2maM=zzJ$dQU zu(jk_zC*K4BP#AanNKUEyRWVtRv_E3ve=iXF(cCPA1qsXb{@dZmNdf_WGQzO>OaKc zgK6hs?YwuAsdF$T(%t%Q{#>$>k>B5>xkQ%#@Sv`O$JP}G-ID?~x$osJmA$i1Wrk}q zfExyiYy-*prouO)x8QqQ@c~7}BnCf=7Yn28J#(21l&{K&dPF=as;c^&mp2igTUsv? zw2E_-(L?*xkrQoki4F)LmRx?A!$PDdvZyAc*+opotf*=&}xIB2H1 zlI9P}GLRv`%ps6vcMM@jS`HB7^9v(yK5r3UyVqz^`ugJ95Dxx zd&mI<)B?KBxVv%vn_H`Wj~+c*YS%|uc~8qHYeVBYwrM2D)X#Ios%H;IcY3Z2LT zK(1&1X@gab-WAi{Zm#@v7-8rxIj5AxbY>a@m$#6!$QdpU2wvMnyO49GzoW^`(Tc+eGv^udGh+;CH zL<(NI`g6wJ;Vk01zWk-A=nvCGtiz!pBqi&^hX-sVmzjAU{Dg}yzXFUrzrEI)RY3vl zFlUcMuWbfuOUwzRumT~^`@5-T@0Ra8Vub8ChZGxdF9a6~)lHkKx)wW;!p$a0H`RJg zPQqW+zkW$w`uzERXv!^M9bF^;f^37we2#Olz&Fw#Q`@nn;TaIeS(AVm8aH0E#B46L zJyj2);T`P4rVeKVZm*7(G-J-)X^U8?{FT18j2?@`L)b2RbLmvkHC_RAG@a#va;6>fuP^LxZ zXH(Y^YEC_t*r1n~%mOY@i+U6ZXTayE|8Y`Jrgt#`3Gy>+qnV^jT+7%}^^Z)8u=e_- zLkGYlYV%z|L7howpFrW+cnpH8$Tmu2f?j`?Q!q{|pak*QpWgB7^C|uM11TKpXSpSF zKzw3ps{3`a8DoRn>G)*vcl#;tNc-_M)mlmS$*Zu`4+xQdK7bvjUxJF4QO4Q{Bpw-Q zz%sNWgZ_aZQx+7FcxXJajgd!4S9k8R_7cM1fEBO2c-3W;OxLUvn;#jx`ig^Y-O(`q zL=3@XHpVJZ*K%A>c!zG;{oWg^?~Z$9j5a6GkQIbo}~Bj%vX#5 zEWgK&B~t={nh7sW^80=Sa#Ld2*je6*eV5(xU;TU zQVoE@2d3r)D>e?=sro5_DsCE;FlD?rT5xpOPhLRZiz&%W40PcLlJ?oE^#+=?bV1UEYCFpEpR@$<8n+SV;tE#dm}IXm_l$$2t}BqToB$iN{zXhM+bb=K>+6 zscgW4KNJ=DP$W_eowR*&teDn%&~A1DP!MXmOR%91R1e& zVj&KWj-@AS`;dYF9Jg3)J9~AHuWwIA^&rU*^O%ylO3TV(-@cuHw!^{w)I|-#sI1%% z%#t)Go=g1E>&gqw6-4XNSf!KnAWNYooQmEp;*3a5#cPlOVKx9h0aPs=*Xp2~YVCb0 z8-dT(LdhN(uKgT#!+*ygpWfMz%OTKWsQk+{8F=C zDSHP&8-`^9Wf^#^IDgSHsMCcK#>(Ro+bkJdmit5&-i@j**&!z{JAk7h9u5RsWSNub z_1IU-k?!yCdAfXq;BHEqI=A#->GdBtxVH-10WSCFBLGd8$QRa8O%KnX-j5t}RZ zVJp}N?t{_;JQ5%yEj_(WgyFh1Yn;#I07`*vqyfDV{%v>*Lbi}YtQIZW1{wv>6qlJ9 zM1iBWA%kmQi2(-~$tQ}7S(oRvp`aA+qdSgYlw>DP1>3&&j3^dUT;Q4^OFkZ#?gBDS zfuypGJ<7ajiGw78Nd3K;HU? zPVj0IKyzh!h>BWZ8?F|Bw>O+ajGgAVc;>LyIyjsm9RMC$(8DN}#&M**j&}b=Atzq8 z=;r5Lo)G$aCdDm%_~&;K2Jq^ld^9W8)3Y#hr#4G0?p+Ic@O)#=d7ZNz+XfEA`))gVR$w|YW#WNgUmIKig_h}nu}i+{rf{{rS#a=bCv5ICPre{&o^w3hp+ zttnM7B@T*o_BKyJo}#6t#Z5jtsoohZsiYF2K5fNFEW8Op&YF_q>gYS$e`k+(bN32t zPscl!jpLwBtDab;TAHt-gG z7zu#JM5Hfg9HNxQDrxpG4Sg-Z7mj7AY&20g2gN{39m{P7Rjyxxf8t@H6Q$NT1a3eV za?czJUj22@IQU~PMYCStiryb3rPNfHnFc)Q=5}r`M<$M-?$v0YEF{N&Uua*DDYjMu z{HgG{S&Xph(u%!+CP0Vc0>i@Q1R4e|*v@7eMhLiqUM}0+a_^BN#?&ujRE7NXf^a5A zYvs&PP>9VW39B?lxt|`yj)m*5^|S^DeR{fS=ly;Y!ma??)a{tFx8G7zX$Ka2=1(!V z?hDmG;k$?fL<--H%?lXMEuLDpkl#l|+Uw=c8XpJk!>u@grxC#C%0GZ6Q5{9O4w;FkszF@oe9 zt_gX-mOQDYa$Xa=4;ww4c?a`8Ko_}7pnlI`-(~GK&2(W}g&(BkIy6$kk=y4cXVI1^ z5Ti@c)O{!@n8Iy@I&Kc%nXs%2b;BprD*C%7#e)pG-7=|SI4{Ez>Q~e{`(GSOQMm_Po?h_0!%u z2D%y0yTmSRE%!EUrB(9YDbtL_8Go=gzu{!#gm`bNGntr@w8Dx9E;hG6)nV;vfoUz? zLt4Tlb8-{#C2BiprT_DNAVMTX-0)n#VYkLP%a?ujB zrSMorFcAB80*P_r1wY0a=igkph&aUnlwesqRXV3|L#e9%9%d2I-F>^S3TmH$3+FlHp#_d6N%?754MiQK_t)%eS^PrqDFxR9l^ zv(C@>WFBH}Wv<2hhkl5GIPuFQMmut2!zd zg0vx7g(yYOtTHkKGC*29-WA4aow?@!zqp@ox`?~VB39f1nq8QE`GTYg?H8Pw;f{qU zz4p@FVC>=Lo(O7=i=Q84m3C}hctT6BoPz`@m(LGhd599JDW%s9d*iB8FGf>JN1|b2l(Zleo`|=wb zjW|g=D4G)hIsmr;|Ge?zY6*b?Mtjg_PVQvQkEQ6G%lIrU@i=E-`0{MTs-3CVPFJ1X zCYKffmY&O|ormg@G{N}sERErh5)WuUi6To9?xy~{_0QW099~K#Sdmk&3*fTorJK=k z{Z3SD{T)#<7hJ}M=#MfLTabyImkscE0wd+S8_DA4%a{9*)xpDVJanNnoY9i3-sJWi z=VnSuqR}NJ5yag>LqnrNnreFXkhXogunO>WcBBmosN9smDg5gPf3vV=xhMkH@z`Jy zqTwba){(J;>CJ_}M`A^<Qcn|^!k=|U}w=FoW*R2ygN%Ie;&g#QNF^L#gmI#r<# zYPv-UFyC`|ttnoj)Lc1~AGusrg?}&ny$7^bf{>`Vz!aDf>&nfbW0HJN9(c^}O+h6T zTA~4*sRh_7c<7ad!-+1-qJD8XH&fM{1P=S#IGuw|W zwbdX3)MGR9or%1;frc(esNhiqOF@MuLP#PKy7-R==QPz!QtTxpTd&@L+Zj<+`RL=Kjcfao9|EdSKKGpg?Z7C5)-~^7{Xq;s^ zL80GTwd3=be*f-rCb4m&M*TNel-M0Rw=$AHjS>owCXgQ_>K~~Dgn_2O%t8bpnmN8Z zcUpr)NbEhyCq@ZmG{T2x_w2r_E0g0>iK-RIb1Oh>9;K%C1hF2oqj4{xo09yPQK9gb zab9wbv^JbNQW2t0R%RYKK5~>4zNYboq>DP(0C-H(`W&i*g{@sg<&nP7DW zYNNq906qno90E6zm9=g5#ds*xE52^pvc?fW$X0UlgbB~jPHj&M_yEn)`FS@kJTEm~ z$Pa-H=stMxkCVQns2o}bp+x-lAMAsOITtWQW`9MFynJ~Qgt@Te%hIp*;7l z1kIV6PlM~s`;2CiJime>3bKDNT@a8R4U4p?2X+3g_@bYxg5ORgl zdYR><#vwzYSSyn`j!&QdF5D@Wexggk8Hkpd@#2^|T}mQfq4Vv4oz4z&7nA&YNfzM! zFyM;+3m^C0k2H8Lp6kWY#$=jWl-lXc6;W1F-`Atv2a_WC)=|ye%0_jlf$;-SR*tu5 zo3Nt60FtJ||H!_M=KrGw81B?JaM=3A^-?xYME9z{HY@9Ylt zmoY<>pWo|~IVnH8mw;MCAb^3k`ZkL2Ka9RH#qgN3WPWQ^M+(?29~Zuhzh+OMHh9PHK(EJEda5)p=t$xrcNETEQk0K*&31-~>&M z3=kgBc*9JOb$x-dNrhs6&&7?nm24C|;~AP8gtBd>LEn9vf@~P_!Io|a9`^uKViQhl zGJ(dR0UOO({W|92OM-7?*Vi*>RY7V+W(3m16cW@?M|3TmES)9ck==Q7tm>JBjIQ?P zF+Iu;e%GNH`e+1h(=5rhN*+}%m6!gs7>Q||-C111Q+{>t@Az|IS;2$_KcKL*Jwq4t}DOV2<3{@d&j5qY$(QT zXi;I-<+}oyn*xJ%s%%T%{^Y1R56x#rMuy6QhG%D-7eO}{uJN zx)O>Z4E_&AwK6h}MyZ#oX-Pl~&Zqr|+{Dv{-1qnQ_ggHlt^&dzk&hKqT-3EMLM=zp z)lj70sy^C#T%(>+nm8)~2!AU~Z-v0YI9P0x=}iS(TeafN7=l4=XEkP`X;N=+QmwH4oF=qVP9YLUi zC`b-THP7hf`SZQtEwTXmP7{0xnKJDKGcXYy(X?sPygCk7qeP%=GOqfUZgez?1F#En zgQ3HsOFXe|-NtS?%w6p9F+=Nbo~7{kNR&^{zUUoqfldi>IY0dx&Io-I#$Oduh&RdI zki8)QNGKoLp)ZH`8TBmgCMos;{n7J~xo2G{KB@s}R5ll1G&|jxf~@zaS>&hQq=+Yt1-PH3I`zVg0D| zn!p{U&}=Wwym$BcS}-=$AN+ucY1H;v;LPh4*W{ynr^MmJWD+wuj5bpgsGiV z|GfN*rFtl!g_%Ojmhoec6X6(fM@f14Z0&{dbN&~JKx@$gSupZmIpB7{S0|mcF)ac%Lx#5wH68LxO1A4O(_7x2pYU(K1D`>or@a86s0wH?0$@ct zyH@uHFF!VHy{AYH@nKq9RsIhNF%gVl3Oc;jhGPLR!MP+pGi>vH+sp$+>B!NcV1xZ| zz|lF3PL&$!38E>soc3hV#*iB%`{i_MLbDw{tS$ziYn-Nv`L{X#kaU$NsKJ|c9Oj3T zL@n}B0=4ydXrsnEqMe&Xl0lL5XubP)fj^{)J2Y2|E8>VWGt8`?TU3w>!3!FPU;AdV&Q-quf=#au-kf@=Eeba9& z|64|x4jecT^Qf~a1uJdWrVlQ(o4r1bGwsRXySlnMZO`hce-Knj`$%OhZk^O@=40C*QFFc4^PA!2ntWv79!%UL zub<}C1S6HetHX{SO2oT#No{-XB6K{5o23k*){OyDWcLYaS8%t+jrW5mB6_FY^lICG zJJcRl;6gopetA(HAdlbioW@t+OI9LJ0zQNXP4@5KKoouV8wD?hzIFKgwBC;BHJL6W zH+~aZRq0GiBafshp|6E3hCY-;hh`@jCW~{zYwKJQ#Sg@wXDnp|V!IQQ4`>DZ&r>Wt zS9eN$&$I1;YY)lln3-a`#_5bbc@t%{L+SMl0X=UOw;)ms=K982x^+kF7%^KUVzXzzYS8)gv!&-2Mh>Ea?J?U^ zTZM@i|A8yiEH{@nqQ&7ek9@YaujRdDpkSE6ZnR=hJ2FL&E9%;xy8yIA+8#XPV2L@` zazEEnO?U1CEYs;K+19)Z7&!>9AgNArVtNs%2=3U?>dtv_4(%SNZ{VSBMdvBg5VU++ zZV(JU^a9+Jf$#Yr9YM}$Zz{Q6dvr@yp*W!#et>k8&o5F&;War~ro?NF;f}g|Fx@$s z4K(9k%%^nW@!~p}IVWQf1tQEjQXXwT#x!+8q1#yz{RE&z7%9RI^XnW&WG4b+Q`-C? zl>f+xglJ@v7#@hRD-nr7_~oq6f=4`OdEYR|rCftY&rN{2l~Ej>shSmce`Ht}y^EmG zXuH~A;J|o_76RSWXdCW#L~uxm5GuK;L8bu4A{8KzMwKSCAHT&8k7gt4byj1?K?hUv z0KrJj)yAZso3@XDqS^iFAibg2&!#PG_Mu26l+dlkfVCRXJtTQDe2z6gPXb1$9b%3M zN*X$}A0rJ}3;>wH;Yeoz7qARSv4(ON@p0gO_xtif5>i|PNdaiV&!kP&tvQS=0vR_* zjh~VJ66VZg#6y7U8FS}8WT^JhsquR{OJH4j8iJXU{ewmj zh1w~ejT*OYG0B*9IbTt`(M*_~v9h9Si-;Hs%=76&YyAyhZHPK6He1RdAYK~D$A-?# zvhlrg`%xDaYnn4D3PUaKvh%JB(hHa@LHjdYek>%r)_Ap2)=aueJtX4mRn&Bu10zqL z?nXwLp&bBVwn_SA(goh?{H8YM?Vkf`5F02(W22+Dk$kO(esq1j1s=x#$dUbr58FlE ze7$r4bs{Wo0$TkU7xIGL07#J=M$?^mWp<{U%y6xB!N_5_`wPb66rk^Vg7iWA*rP1E z9m`$rukrEpJVgt$AYz@nkQPu}1cKXZvg#96&j5T#D*X0& z4ELbTumb4n7Lhig{R+ZT`8ac_>& zZZEI6moNX`=H^=r!N?rYJEx=9u3ac}k)N;6 zXsze2>YGbxB8oe@iq@50DevALL#Ili*T#gdIy(q??`}`eY~N8eRwzQopWQVp)FM!D z5x^B9c|6~vQ@%f=8c2_c!^}?)KK`YtUp*eYpox=u+0tpq0aNNpU@bMJNx3xtmJfOb ziOuA&2$!lsG$lIarIdO-_%nLH-wXCwHyAnM6!ideC1?~je2($l#625|mYVnwyq6He z=Zhvu$I}9((uRP1{^+B70UnK{s7bd+YMM@(qutF%?uNcK5gcPni$1&~zXtMq`t~il zmmPvO3n3_s(dNyY#iy5P%7aF|rlbOo38szSWuV%aB7QoU&mwq%-}KY}yXZUjG+sk< zTsjl-laL$?MHSp&)Q&;@`;R&OENp$jY(URhNlk-Hz{!Q2Rp6V*i-yu$d2XUORPbeQ zZ?61mJ!%dcE9oIo4*qMm*F@2*1?^rS)su*E)FNh&gp4OZ{jDe0tqDDr^zlF_;%|aU zhEhprdrw1hsI@fV?Yz&PS$t?RN_G+M&@{2imrmry+9xOYx3BgjV)1_cNfIMVT&D2{ zV+<39SVXDTP;1zt@_wPE{tS^sfkF1(tnrbiMNSX$&Uv?)O-Zo;0^;un1z37*Fy+jQ8T(^oEA9x7d6yH?(*xjywx2oE9W_=GGfwEk zcdSMG`x7;{Q1l{{%(}khF-;6?2_^(+qb70OnGNIEY68T_-jKMskK267LfwgE(g?2c z^iVyud0$gar1(#)^kftXK+IFO3uDz}IXPDFfpj(_g;8f%j0a(^Eo%c5$0P6+GU2Pt z&dGgXA zcRO?hJ#B)Q#@LM;f4Ur)QFGq-pbpfA0T~0*Zz%<8ud@hzv%y}Namku^Wcp>|tbu_{ zzw`e5jPCSwg7PF!G=CQu_a2bcz17GCuebEGteoWlc()Yq`UElwL zFjpy9RQ!y3YP_SfKIKnR(tjsY`}N(!_!w|uSEn=^BUB`t9Wc}RJpU?ie_7p9AS>Wi+Rv0EyLDMBfq8= zoXF+`tw9ZuIQ-gPY|o?5J8 zkyjLWB;b*W)}v!T3I>J-pe)O+72m&J|yO;pU2h(F*9|&YCHXeQVLpu=%ynw06NWcJJ!6QBk}l&dgXAG^n>@ z?R)0Z2CZ(tD>lpDh+_b}eY*b^&i5FdgGMYePA=HEX_KtOVQfQ|;oZjD#H*8K@C>n; zz*%OyiCR@d|IKY4+k{_g{n){!_{OtCu_i?$stT{g4Ej{OZsWC-;}J57tuRakk+HYb$Q zlKeMyxdC6U*?2gYr=d2gAKp}0u$Bc^(x~( z9=})Y`K9gRO6`m}n~wK6bl~RRU5mdp(#?M{(PVPVFQJzTR<{f>bctCYYxr>MY0+)M zgUn3J#Eh=5dTRV!Id$j$b(eMzi5R!Ceaixu?94fr_ISElmoH=t2F^#eJ!ft%^N#Mm zWGsGMm=AtVi^ZTk(L%Ka-n5uiO`knmy0Zm$H@0CdH2WmSV`7D!%lh0JK0X~L@YiT- z>(f@fG2d!kt&#g+<*T0w7CXc1n`~Wm73rd;0`3@N(q7F`4Y=8?Re`oiV*cauP{0ut zuEm4bujlL?4uB{Q;8&bVsW z&<;Ket#Xh+_lD(n6Pp{YHo5w4IQft3+QK0T=}GkL=*S^*^bTB zhQ~G7HMGMtSEvJ8de-?pO)L8N@ytH$iR0MSGad|DFND$S1We|3BN^jJD%oE^D&pYe zw4%F9Sn5xmVT%>lW_P-_B)|8dRTnxZ`bD_+`sZcOTXFi6b$94`gGrROSUf7-Kebvn zJC$&e_2tW7geYd>mF;!Q`M%1$jS+oq{H?qX?%3fJ$VR;_z(g5{d9o7;{AW-i!q zi66Gc^lH_?_XaRk2x@kK77*#Pii-MbEAxu@rB;3onX;k~QB-p8zpD$kC+z^wg5}kx zF~Y;%YI_O`1-g80$zR5Fza9}`KG6>G#>POmvnMWhTRLY-tH+Mv&5Bp_Xc}&28r11z z#}ViI`OlcY>%%t{mpf;${Bp@}boNp;g46o!Q^PS@Gwtw5E{^igT@e*Oe;Vl=T>kFX zn>*V&n%+%C0t0r&Qpk1+aJ%7y0@a&a+ z*?2(xUSK>S?G^hM;b)^mPO9WyS~7WU%iZJFJTN^zLIZ71Oj>+Gf3CB48~rr@9yc}8 zHu_MfG*-Y8JS=_ax695kH_y+~Ax57F4jvztqjz*V9%Yybhfx~JYG|zk>>Oj;xRPV% zvHDco8azE_PTf#N&}FK2=-?%r$#(9H$;|9b{nEMCT0H(X>WfX|(e|CJy(_1X^wIY<`88rvVS_fQ z^_ul~srTMu)4?__?tcCqErMq>z2{=Rd+5pz<=?)wu73#dRi@i`yUg`)7i7 z_@!1=K|Ae@Zl{^Xd~9%_k%^<8d2IGk^Jx3<1+-~K&*tUsSV^3nIrG4??W=SXc06(? z#rRi;oq5{(|0C+Xm(3ALew?|69Y#keVGG z{`@)Zen01H8?DywqBGog@*%HNAH32T_X&%sl$VVAoG>+8b-=A+4Xd@3d3D~K%X>GC zh`vTvj=g7UViIn)$WFgM{L!m7k%vo{Z7`@R&BQsty_d`JkIr5frN|f9`?aOzb?l}K zLyXw(t<>Ju)<&zfgDFMUCtXxAz3zk9Tld{-vyDzQoH-L#mQG)L@eFLF-@Ms|qs&mE z15P+S#f$Z%V+Cux1h;OH{0SkiCC~Deo$;IerfJg+K3t_6S5p~(R@QC2TK@XEceG5B zUs+|(84x;NcOmS$f1O4ChnpoQpG&2gs~5b3z=`cf0JpWsVQ|z?qSiis$;#zdewFi# z_?=z`#3H8S({KsBpuGRs|8W6gj%~w>c>v!!SWd)XK{$3t@@^0W0%=92KU=@tQ@y_e zbMhZb?X^qA_^(O#M4aL?1?6#B0Uuv1uznYm$GeNvjWF{py~NLWcNKPEmSV>t!&*UX z092ANKp?UJL<>+)1LyCdq+rzK1@+9BP7ai&5W$ zElq!z`mB%Z6&4h9b$1I5>e|Y!JrUt;w0pCf)KbKTE0^r-z8g>Pbt|$LPt-a4$_0@- zz%3x49=G{U0V^XTr=>Iab3sg94s?_mfsI3F7JlBpCL4-XBuo}-GRiBG!=i83usKQ< z6kTeU^njTl3+7L^utx`eh?-hjaO3laG!xX{No}*bTOV#Z_PpE@npAr3?$jFA`yp}0 zM^=r{ZnL=ESu6i}N;*`fbV^=6T5jffd#)ni5Y`t5;fTP;9*+=y+W_T-Iti3>w)dixvBWZznIHeEyV#JD&82?xcdyK9UxwwSltXuTc3u=UzACDyc+ z!Xifv6C<-xtoWQay(2F<1PCTj_`iq7Kn=ohiu-r!63(RA_rk$Nrc)!;>j*y663Hv6zWAI z^FC$5ggtbJfQF3#GUG{#dBT+bhVFw2{7R$Rz*v)+{Gm8WWxm4F_eDgfp-a zf-@Y^^BQB{Je6uwJ%jNYL?LTkHL%P#EuhTN68Yt@kx|09*-A3j(0ciAPBMNXZ+qTg zr0a^)TC=m>K~c^~$vq?9tnRme^wj6eJSub4d$8q!pO;oeYDMp( zqBjwsWxB4`nBEfP$C9Ta9#JN3;N+CaPBE9P(OS$e`o0@QrQC8z&jy-u*E=m~5=~q4 zEFP9QN|wK+`=iTi?qikCFT@|6HLwF-$d@zxie^bpXSP!5eq5Hm15NFnIzi{fduMHw zgUhLdUdKh(8EvvSZW*xVu#Bo!0UN3D?k^{uv8*v}ZT32@2P@uzUJ+{@pxESCfid5O z>8EB7y&Iecg(#nan}I!tQd%2EctC7G2NR`r#R^&xz;IMq#S^jE=!&C6JP_fKh~?tm zvp8I&)%ou~j(f=mUL8f)6U5S0o%QB5M2i4U$*;E}4ht^}3pbPfeLHtH>&%(WZg%5p zKZYrnxAvCME+N(j8&h9OUFp+NKC{`^Vzcqrb#6@t-bc4RA%2)APd@WW{o2}kvSCxp z!NbG5Wo6f6`vm#BHE|I_dk!56V(-{$@TXzcOnN^c2c;^GdWnijeaCaY&R^->>Q^NA z>Kg8D2>xzB+c>kvFE`!N)!lhJYIv_2;T~zON)ybyoj~Lm9G^@I=puByzZ-`%4c|dU-;u|pLlD2cMHzY-5&8;I&7v~6P~0e zrbV8dh{#=PR3R%9lNM|x5N=0qp7&ykV(+1lVmmf=k8wsv%Me0nq@)`{LnPyN+uxT) zMuy2M$IMJ5?H@1`Zsu;+yD_+F1vQmyrP6rIR*%j6{H&nsD4*W$YjHYjMcwC&5zc#J z;(^}x3s-%L_{mZZQkwD{Zdt5u(28a~Vq)?(M5nY;MQh>q+%;sUL$dvfe5eClryaFi z-=Q(dxl!}|`v!0bxPEhEwyffaHRcXkgSu>g1_!0`4qdyJ{qy+gY`d-QtwH%`%6TsE z^71-B>5Gxi8fcjJlL3xtKA~d^#r(t{LKMfCW&=OC>7_ZarS<5%LbrMNXG&5MdNcOF zlQ?iOuV3pJn>S(*4)zRwxB^f-u)ie7R3|hZ%^ou zTVOyy|C8^#`9w%zD4he}yhR3s$lZ|hEp)7#WYLt=fua@=cmm9)@K-M~D zoz3U&e8pn23|(iG&gX6iNzJp1FQiwz)Hnv&r zbQ|n%C>e~mQMfq2Q(~=B)D}IqVko}8^k^}uja2L3oa247SoLO^g!BTd8TxVO6KfxC zy$WohuIsj+_mgJh3Zs!rX+4bT!zbJ2M|yhVgh&G-`=(WTlU(@qD&GAeK+&-$k&Vb9eyGlPGM=_wwYt(*qX-A$)GM zzMGlUdE`=`*e0=K2iI~g*kT(VQ7PnM&vjxhbgJPz*mG#_?W*2(Fu^suzf;!OiK%B9S8PfEmdZFEQwL|{*rkS3qCzao|!(NycPpEP@|=&xPyQpqWe<`yhY z()g}ID*+CdwiU5=d)4`06NkLdDzdyOot~25Irs?i79C)IlihMjc=EwwHM; zLB;q4YlV^`7lm^60NuKv==E&1aYRRK?O-dPfjIajU7KuLp-bQ_7S0%8TlO@ovz+t!5Cybqy;5^HH;!O zzxu-05yuqgj7XU`v#nUI8NQ&^3KlHo+=mnFh%hPSActe1HA=`ZFx7z> z+uT9svM@A9g*61KFSQw8{0Ma(Xb8L&{>H*;nd6u{Id%e@aWqCnb@!Y@n;It<)$r7* zH%C;OAThrj=Qk&Jw%^7Dg{Ak)AP|>L^BibMC9Nanv~u zwtL;&-Wycx8+nr0GJqWlrL%BYMrr~Zo9z1rP>+IU6@~zaeT0jP1L2b;Q+4D&2?;Va zaKvN|W&;G`MOg*Va32_wE%oh zA$(2L0hE*t={z!4%ou9E;5f|B!*g*U)Jc)g0zl~>(W@Ik5=VI`D2yK00vcPgC9bodLWgd`M#D2b|ppE?(HVc&%Eontt7->{Ejl<6g(Z0+5*>{lviw zf;3qKn`;2xI@|BYrAdOtJVT8TSQi^AH-w7Az0Qw>DsWab&)MOy9umu3jeQcD8NQ0$ zFEBOvm*Oaeg@t#!%(?Vxf61t{df}eX3G}=SMz0ikaJn{O0FH2oV*#QZ|H>Vp#F>*% z6zQ~yr-aaWFBmXHXah=Z-<92V@8>p?w&2(p`) z8&(>1fij^8dL8+~kh;g_N02M`94 z1XQNlFgHg3K!Yc+58V@*#NnH3$Z>F7kKGb5N?LRBII2VR9ONY7Mge~Sbr0`^eH9OE zLeNaq8okUAMj1-}?CRAf@?^e1$7vDWTNkShr3_{IS-*5TNeIfS*QO z=A5Dxdja0cJv;@Fan_auB2nIn00XUOt-t(B40^Fy2Q;LN!%IN`kc&Xv09m92C7Jh| z!yuFq+yJR%#T|vAZ`tpysJBbE*)H^5K^=8#<%He(PZs~~+0AUmb%`k{mCH-ibm01+ z&9b3+Km$gc!oWVfkDyHaMP}^9a1BC08R~{JQ7L|$Sbm~{#(vE8U{RD6+?XWVFkfa# zF=5b`dQlzELAd6CcmpcKDhdSL#A1ycvx&YMl-qq7-iUdMKud|2AuK7bRwhEgMGR_T zwn`!saCeuZngZyu7;5-?%GtO&hMxnBBh@;NB?A>dj=dqrG-izkL+Ko4Z-yXVC#DyuL$X4E}`{_28deggJ4DJr(qZ5LR) zFvJ2{I+n;%D40=!MQX7BIv$g^o>->SC)^9)vV5OBrAT8VJT47jrW>xBs6bH=vxG%nh zV6YA$F-e{&;D(dI9!<^CTUiy@iGt1<5x@^=gK1qRL=UnG3UJ`z0S{sWZ6Bf!S{;VV zmq%&rME*U?ocMwQQ)ABOHD%cBL;=94h_LB>o*jfx4o=Q3x^Ee8UgGH z0;5n9s?e18f0f`IV1_!TtSzwy?54-M9#+X zYFJxu#dB~31(BR`;*$m14FPq#PR06T2!9TLkz3tE1?iCkT><(c<=lvW`6F-(GIkdV zFTz9zjf?1?$lpL>UPHkMnbcIoS^#zeTMPK5&v{3h*t?+`NyjQg>_=b$ZOjXcp1^T- z0Qu4aV#u3MWLT?iV=7z%R(lZiP~Fh0XyKTE%N+!oI20Z>)j{;y-guI*w%SOX*&!8Y z6)r`M0^*`3#La9FgZKGgM#!%Q4Va`QFp;~#6eT(!l*}o`%dW8FV<%Ql5QX_H{SiW) z4k3v57_sZc=j;CU%Lk$XvQjW)>!E!p2?^h|%Kcv~Wk5tG4h9JR#EqGds>nhq3^6f< zCEFk2FJeYw5z-{^;lglR8FZLwI7cu)S*N}9m^ve;2na@_}$8BtM35@PyxseLWG#RdJ(7}5XQ|RYU8~viDYBQpj-p8q_vxFm`ZLX#RDjJ^58xB@bOmLBm_(KKdzcp$FqTTs-R%S;@YYN%@KMoh7Y1;M4+MdPvNpelcv2uqH zX#j1b<)cfDsPA_0QN<`0TQeV49@IfsL=5rm3#U)u0kpjLKd~qASPw+Aq`Vy5}-orkP8{*$Djg2DZi$HwnF+1FU?AYVN@b;Zx zLHt`53*98yM+D<3DahPOEI4`cWPu#$C(8t@G@ViAS#{&qG%#AAu!2lZ=pLH3{?IbLqzTXTBG!Z)56lH=Ikxk(scBMCu}GJW`&?hhp|5ax!C?BW;n}l?sI#L9 zFkA_Ra#SBsA?+>b_`#n(o`v6glboD=U52_Bo37m97@q|@YfNXiQ2PG1Gf`PZFYXaLL(ihWod8WZHcR@Mv^6RZP0CiOv`qEsDBWO#BT{64xhH?vQxGJ z)o)2jHd!3G?768r-XyYHP@y$q-{KthR$Lslnhsz7bE_$IGAFL6D2mu=J>Tsl1}q{N zqGhmG?;)KTeEj_RJC&Fj6gtsRrl4Q{vt(dow6SpE&s*|A(FCoB?G|EE41}adK_Eu&Ylbh zw}<*DFv$nT`XfoWc4Hgblfv+tbk3Xy61>CAGhy58@(x`Z>(+5sJl2=~AG%lao2p<} zl3&8_-eIwZ`eF(O9U-TZbFRzi6Ne7i#A@M0l6#Q*!+F!l&%$;g3t>8uj{2Cjvoebt z_s`0}?dN$@>e)l6!$pI2E}%onLV(6Hu=J1P$-zO=7dT1c9z<-+0<{-jGoqBf(a}Rt z!YR8$wTUsD<&#MVx}AjlbwDiS3zRp5a7g<0^QQsYdh)lPBfGAlrENf*rn*O=kDYRx zKn4|Iwu0P3_T6RdR=eTq%1Jquf5p6S@5cY*0-P_dQ|=%p43JQMMTWRIZ2?|=ds2;m zK2>>DV1qAGPds{>h0c|wvu+9%@#w?90NweW>bWFw-pUI9h;=oVyPm^7xe$)7SEv6R zcT@NxipHW4=D%0VSQH+b?%4WFZyyY_reLW-3~XF_2Bmy>qM~k29C$&+-}s87rmm5k z!GhrBtjloG-kyjA;dybNZn5K>Uhr1Wg~n*wAH#^ftG{K$(l=)>_`Voii`pU!dz4(k z#{CaRg#rniK(cB6BND+eZArVnPCq^==>bs^z55*>jwE)U0#7gYWC#|Ccufh7_@QM7 zDY8#&l?KEGjq`fRCqm$1P7?!Py~6{OK$j<`r#Evc{c;EnuaysZ^5pzzyzyq;s~R@d z^S8gQ!0JQo(Wm|?#EcNl*cdE9RYG+g05P%Uu4e|N3c>S%KB1vpAFHcl@W>jW3DyIi zK%UX5qMN&EVsML2ExqH*Ug6ujf0s51D)61-_n0$3XkZ}budTW3*#oSyAADvV6^nRl zcUYOulRBb+KPO0$MU$e0#fvfasUmRXO`7%8*CwX{J*E(43W9SshfjJhid}t0YUOwq zEawk%TR^~d5&A}mj3rlTpgv4Mt1MK`X=t&BsqnQW6{~6{7IwNH!;fpiB4!TtqKxIz{1amFd@Z;;Q(?MAV^5R z-pGt%=pqDLFn->Kdase;fhuwzO5N7?{(PIH4msMqHGgJrSeLHe(f zlLL?)4?)kDfYxZ0hRD7LF&No5LaRt;ccmKADOh*y#T63AWa?kQNlnc~z!A=i-m~tn zb%QsRC*=!*F2wcmkR&nnwxZ2z8!dlm9?TBg>GN&ys=e#$%d{>F`KkUYQ0YAq5sE%o z#}I>1nOQswvpIH(D?GQSJ$|;e9Yl$PXYzfNv9swQgQJrZU?A~T8pTU9;U(^1tcxGp z1eDk3;-yP*fZI-GS_S9_jxvPsnDmOfhlPjha{7D2gUWt1o|zj3(iBuSUx5EXZXJZW zkf{F1*}HV{V*2$-*}>uAmpCC2usk_{7muRk0vy${+^NoLNBHg-zfoXL@P1gd@F5C{ zktg?{%cJUfWXrkNz|NW<@c0W9kQ|g#P(4s`?8h3K3(K!n%=eLlIs4$r{XB0O<#-rOTD(&RaI zO#*I@h3>5Zfr(B(W3Q8wjOtvMmnb%%`E0V6y12pCU?pAKQ#zDA0}*qT20q>9$Nue2 z4a$7yQ!eU-vb~a?0W?(F;RsLIZyg=B%`=Fi4NyYp?09O3Wk`k4`V=S?Y)=2iRV!t! zhyFLzTo05S>PcO;rrGx_&YPwkc#5;hyG0ld#{)mG<7p#aUt&ha*Pov`fr!2$>mAo) zZ4KoD65|vWU1Os+EO2E5{h9CP#g$YZzMt5mmRJ(>VygRaXw@$=t#d^k^dIUy%3-L0 zm&SuU3C+SyA;2$XgM$g8!U0iE5=^mKt?JT-XIN5ipJhI&$bfh&c6YQMb4W3D+do8kbc(* z1I)FQ&ymWx>iSuy;A`wlPaecR7F(2UvKR&}Aa>l))Da+VEausUXjMk|TUv0ni9DAio@3iyfq_h-|3wHTSXDh(uS6x_BSNKlu-?b0hdkZ0Gzq1Upr2S+y=5ZsV_GEpGEo9-Kfa>TaZbNJG=0HEW z$YpeyA_(53(tzCbiN&c+HiMf3cQp^|l0%t;1?ogn1lq|p$?I-O1bgWc^K%FF)w42TTA0#cC?BjX z983NCzCLbMN0Sai@VQ&NF^~q;+z&qDaiFHa#6|-NjqI}k65<>aUdBUPfM39fhU|t7 z_^SXc7pz*MxQFWks_QyMkh1oHB!p!icY(PK-drYI z2FMRSR(jxgm}2cFYq{JM&VL{a>`*m~!B99ZDT$dB<3$j8!4iiT4@?v<`Bo0pQ@u}& z&Jc)^_yu+&SZU#d7A^dd=(zG}I{^Dl4KrxON~-n?xO)l?BY?Tw&M7F(14821X!9Cwxf=B);BGl!2rSD*@1kjOlxaY#Dwr?{cie65A4nsv;~H~dW|Z;WjMXc0VlEp;Q=~?)lGDP zc3l>X)@jlmm6zS2fa!3b{XtM1_*>lD8s)Nzyh%gD##=dLg?91E(kS615CFDwWmy4` z(m2^Xucqdq(O#M^ptU>Ybun|cjetSUwz@I1*Pkq$FcJQMsyqlN7C9t}*Z=a7cebDZ z1}&Pt)lIDMeI{Bg1RZs<)&Y19p0Ue^x_arLZdvE{b_2C<>DO0SzDp~EiUJ?Za)Kh_ z1`u!(=Y93hKpK69RwPGMWQW1mB-_NW1)v-eUnr!8E`!I*2LfeH;b4X!jCwkp+wI0? zXE)}2Z)#da0gy@5vUu_YiUVdqumSY;G^R2R_ky+r>yVZ2tMbImD%w$Q@5qWx?S0-> zr@lNM1nt=cJG%-L&E6yN+{T`;xTO#fX`$okh!gBQBAuT+eoXv{;M#W=w!oxWLp{f% z8uepIFs8{Xb6@*Ja;ha|6NGG-~>7qKT(<= zvGz)&noO>IL`hSQtpEYQy2;;wi2iL0~Jw7d7Ttn>W2+A1QS#koo+YJA37i=sgd(ZJ5yWuGZL}Tt&glAgGG~Li_tX%(Z zxO#~58L7m!zQ3ND<_-dK=?vauYmyr1i(w{bqHv&)!wn8BhZ0QMg=d7(*6rcUfbS{>?$ z^dNv%0jM1#>s=7f&r*5*Ty`2|aT+x={JSN^#!+4=!qqSsqFXDHqUF9*!eEQ@iw-!x$SO47Vi6@=xEmQa} z=|qp{s>@BO>Mp!awc)mv|I@AHF;oT?H@>9`>t-dghqWs{++Nefr2SR|6}>gt1pw2z zyTI7kAkZY+wn4?fcM)KAc;>*O+j|e!Bks$NalRE`_qeDng>JcN=-{sLQb&P_Cyjq= zb3b8XqTF}xP2Qn&BWegi;E|(6)E&fX2OcZHvF$bLiV-HTfQARn ziRTzlBbJ){XL6$l3`dHZ?#)Wgu2d~CchpN6FI;{d)SBCIg$c=l29XV5CLWNv*`|i* z{=Ky)*hzl5t_|t~9XegM_P&}`bp4xs{(R2Cci=~|N zpSS|-@O=BQV?kRR?J@XV+D8+QS@>s@G;p=uE|-Jj3z`513Yz<)y^3hqkL16;)(Zs-2 z_v@es^6eBN=#Xvh6BRjUebQo%j$WQvu55F~EOKIIrs?8apa}q7$QvQsZ84R`Mi{sr zebNyQ9-O-SUol5}LSfrf~blKu;&}*jJ{V1sasW?B+9>7t{@@?Hz7qrkk5vNavWcm6?`=U%ap{ zcqo@Aoyc)P_jelBU01Q(BRu-DV#zc^9I6l`G7)46^ZafU!NdmL-)|5z8roafsU&=J z0MpZWB=K3R>@P?2Z9nE+{>v9-9@rt<&#T{B#kbqS-_B?H4Fu#QS}s&XNTO}lvU^ZLeN1C9`alW`CPByHe-wC z=u5sjy|St27fZ~6X>XxXP6Xd|RISPWeZDJ8@C{er7xi+~NB!DbZV&8iY+fLDeZ@7g z^GG4^2bh|#)6yD#4e*N3al5cM4eVODSrVVs7%`OdO8@h7ClROV!&(bTiB8<(v$fgD zv(xWc?JbmQvFS^=aPgRf4HfP%tTeQlZT;78{>Q%})3V^8_|ZZaS??bN2V`u+#*OV$ zro^-w_XYJ$*6$m(0o(r`u-MhmHqQTRaV0PMHkHSZZvP6)Q)%4WN0_eu2J$a8ul%de zg8Q5Xr)G;rCR_%VBkWsB?Uxa{3`PgwxcXIj_Yv{+1pLHFF3o{u69AOKSYO#07-)%O zoi}3%>o5N1$IhJ7mwTL%V$^2OhdeD_8o8`A(uR;(SpgZ|U@6;) zRT}uB4K2Cv-aUsL;M!wXn@;7Gxhi!AN+DV#rRbBrN|=#VS5)jBP^$gW`PfD};WEgC zg8=fHckcs{)<^Tg9}k}{_X{Tlph$ql!sDOye9wR+!*i1hwn-0x{-V{o-Lnt2OnCc=!zV>;zHeQC9qQsOlqpP{Y;3KUG64of_DUM3 zY3NKzT_;!e>w%&~rId6x|DjXQ9aKx4NrOTl64XHuKjP*Dzy=LxrR2W8F{N1~MH)eO zl?EsSLc(zbR|Ax@(tAVr)rk?XV zK_==O8PTW6-kHiucW(du-NvuBQJK#@rS++#HFLjo=+dn1$+-d0hH#r7EGzg3-()U8 z1@x?llPT#-bWYa)rT-Ccb|>4Rr2`DW4p*NwMCZlftzL0kGs1}f;47~Bhx;R<_6%_XtZ183K}t}Pex$`=(h*W=8I#?sT06huNIGif z_~lJIEM`z@>;*oD>#x`5SuN^K`bq$E<;xM5jLVi^12=V5pB*0;N<8+)V!hBiF%6o- z5OSp1Vaph%Tq%wPSd{Gwr*G=Dj-s{$maXO6VM|15K)=&DP=sDzl)@XbvuTH&Z<$4q z>OPA1OJ*M-3#{AgotkM!c)lL#p1n>JslNtWK`eLi!2QObATTU1!ehPJwHC2DK$Jo! zu{z8(IiA0rKYA{2E}YW<9fD{&`o%x86)Rp>ue`#ZdI>F;&g zTl_9vG)f+ed3($+{qgu!N^MXCo6WU~u`c_MdfUASxr>)CV@P1tsNom;;KdM&w)Q`_ zx(1WIdU}}Rk`ahfyWN)myH>Dk8O-_)D>}*r?qnWGiL=qH=Z6(`$$qf}k1zy7Fg$XI z3lb`=|0To_^e7PW#{r)Y7y&^+86 z^=q6Xv*E&5&i~7G)i?7mew2IuE=Y~}_t9T%R+L6gP02!fyJlTaa0b6ZS${FO&};XbmX&9Ius1q?$F^B)=guHX0|*%UN@}C(`U`)M$4=Ja)L+CP zNnUvw&PBl9?R3PxU0Leq1rQ($aAj44_4(a4xj#$`D@_Z_z6?B%uWR+4;BIeh)PllU ziDs#ZtOG&Zj$3Cb^{v|?=KTMz&G+bqG#~u{yWGl-YE#v3&w+1C$qLAB71DlCX!|Wt z%41X9`}g6%E$seO873YhQ$d)B$tzbKE+dKRUs+5h7Z?F?oR(0lx_65v29n5toijIq3LgCESF)0`%#tU{k3Ml%euvbwx0)#=UPQ;Q_|z^v+zeyJ12i@K#hh? zm0Q^4O0NgqUu$l?B?Z$;TlveovR(Y;I5l5#3;JD%F_5zaeBaR81lJVEfTw0=N~@~q zp%CwNT$s8@`2h6MdsJn-eBA{bn=+KH6bdoj1YF~|vNSt8lvml-Dgf(S8VYJ1_rKv! zpVCt>()X#e#@pl_1$CK*P(H=7El}AjEzR@>srO(T%kboTj8KhXfsMJ{SglNb7wVkK z6>Ke?nJ>i0P+6L4Bvcf1PTtF%m^x5ml9TmEXZ1*P{R1BroOSrCmNqsT4ww=d=BSin`qsE?3jj5*nSG&Fhf;{>9~ zmlHFa^6^PNebODEBDYc~kV#BFdsTeo;>G_^zk_{!85>FS&Ht_hQF-#B&84OV z1Twc<5;cO4K@VW7x3Md$5sVeU2SSJbv$i=C4 z%u)25f2vPZi;Rtrmw+b_Nc#VGLn%X(%AibCqP4h1&+kI+8e!e}F%YNbTg(6LNA{?w zSOfc0ED6xi)xBTmSiV}Wy|ZnWbsZySWb*F=0X{|!Nm+XuO66Y0nCx#6)gGSm6u@{b zFj4knK-4P3_ML5f&EJ-oOQ;QtYR3|f2?}@r>|1<_3Qc9IL5s+sE?s(~Uq`?#?6&Vt zOo-BiU`xMF+SHM@kcI-jDvhbr3{M1hCA)s@%{r z@c!2z5|B>|E_dAksPdFsP!qh3NCiDv;m6f=xUhtb17(?Jf@=IvbYLO)7`Ck$YcP^( zbnAfG9Svo9Y1ETxM7l}6$JxX}-F?aKZ=v~)%Ku?Q<}q_%A`y}rflCod(dY?2{gjTu zDLBF{!zzJ(F9ta%4>;Hz49p3j3FAmYW(b~2(X)5A_h$eA`hc9H zU;F*lf=&1r-{il0oNb*v**?6hnXc?pF>~8o&K_^ti%OOpfu9YW|HlRJhtC`+_@*st zaA-p&4Zj*iNWRYveuGs?xdk(r*61a%+S^SV3sz*Mn}GUcM1V-ajMXC*tJze{GM(T8 zO2B`(b7r*e9=`oza3?x@7hrZm!8&PZ$iN8Y?PzYZ!-AG{OLDV57g_F>nyP9ctV{I% zV)LIR&%=L@*zurRG|zNmmgh5P=Bv(skl$=45zbr2<@93NtY*|&S6$J}b5pj+gH9i^ zJPbit3j0{YBg>%JL4)n`>zQ@KmoMg-lgu0W_J~a>q+tKsUT&<(B?tiIf`ZD*n+R_b zd;nxmU-HifVHn@Oyp(=yvEw*jYgL1X6a(T+tSXuRX zVPy>y1vxPNpxbmq2N=#JBj6s6u%V4Z>i#sG;x=IT?^ zVAXjcrEVrjs^{{gfY2U#3bqdi0>WPX@ z0E%d1t0xL?GUbqLtN*qvKl@W^KmC(xw{H_z z+jy!ief*YTR5wb~cN&(O8$QX`*tMpv1rSaXK&K%1c+lZh?+cnnoieyxM??FLg(G5k z=?r$EazHNA0&v`*s{y8?G!)zc>EB8Kaev}E?}|o=tb(mjWP2}`mHM^YzyEAC05(b` zkdAbZr3LeihZQ=epF*OPWSY-O##?~XS?B_{pDp5pA!3Gpn|;e*Xoc)20lrQ?I@+Pw zi7D)t3jjYt1=COn^95UShA5=mHBH(G;9pyV%iyA*2 z-S$m%RPw4p$>|lU7xm~)wWnIv{lBRO^d9JnLzonpC~8GV;UiSVVs${n$=snGfvTKJ8Lcrka`zecSx= zt1RWjPT9OUo}2RYd&=?L>>p?9{yKk;Qner2{o}invq^Ho=^x3eC+vRY*%W?%eLzmZ z;+yGOTAfvEXHB@deW?Apo_#8pJ9*BS34V|oTZ)kJeP&MglgDRvUbTLbs#K>h4`eSr1`&2&=!A&!KK~*C1;rbwe_NA^Yq;BmW z2)q^{EUeJs;MHO)pZMkt+0mhmVhJR0(U{rpFZ%^Hgw%)Xt@8i8 zc`K@_dK#PU?wi+d`km(ib3aDPZuEooOL%1uLA@!nxL|J|ilecXi76!YX1|08{}4D+ zAP9=ZG;a~Uf(3IlfzA6(xFu5_CPcX&L=pPx?OR@x{E85M zkZB*Ar&<&QvGrv?7${6{wMBsDf*o^x7`?|(E- zxLGSzvOI;;xZ64T@blQaGEuxjExrPE5f3-_LukKm0L~YMq5`4h{9H%kr9*qQi-4ms zQEmXuc=h6i7S^9_^_+j|`5(Ubqp&c=zq4j4Rj1CL-3jjSM&B|a!23BaD*RArhNOB- z6Dx8t)TK8yM$3$Y=IgE(iBS45RpXnP!^PKEz8*LLE9{xRPiL1iRHnZfity+9RikX6 zy;T6JpW0|ptoLbj`?hV5fJEt9TE1Ky>0C~R>88gikISzu_{Ob4;e1D7 z&uo>1%}`m<3ORFa^l>>ng{x4ZjSH8&-6nK(^l`=eRm_k-XW9DM_}U} zgxurgVTh0OM1r(Lzvb9<*t zo^Cgh|I;~=({3MvQo!|Kpu39WXYHQA{GZKyZ?|t;`@_i=p9s0r5IU?rh{X(-sn7#i z!kDw?s?vFIC-6VSmzk>58)WU2`D!|5Srl!!J3d}-U+0Aa$3dN-XdMBof~Au2#UECs z+|#ydo^f>{spJQ3aDNxVT(teznw zLrQ1BC$*JDr+h%#q7o9il3e$p$@&PUS3itTALr!AM_2J~Zbsw3LwMKlGHKOtpMP@* zq|Rbv6C!F0rSyNq24l%2**5Be4kNE`8 zg{>p$K+bt*Z8q1}pMY$>FVw_77(HKMBE*JIkmP<;TJ3!UKfcd!PC_-+tc~q&gF3 zp3!ma&*=qZry6p*&y)MM*jSRwG2iq`)#mGj zl;)%Aq14uhhd5uUP$XoKV2JV9d7R$~Osqbki_EGTq7T{c$|iOtNmv*HiiyHe_d`(M z?6k@}X)7NNMUNKN(JH4De?j#kJxnDz;3hc!7S4>*n={96a;?622qV<)$@g&hRvsQe z!^)}*k)Qe8vSOq`J`lWD1qB@g)_PNp`$lJ7)HkhLY7d%TDL20FSZYbdx9CIf^%O)N zY%kJ3{K#&BO6@l)UU&lUVZR#7M}+H0R-1rg9yw$2>^Jv*=4NC|^w1f=^vg!ydOrty zxpQE7oUd2Ayv4Ja_;iBb0IiX7s2rIh>J}~*pKkO1x&lQ1n9>Urot+-2CuLm>`}SJ2Y#jo zQ{XlFA_u1%OJ=x?pS#iHzm<6_&x1%l=aP7|X%A?04&=MnT1WP*3l{%@u0r z(}jhFi>f~0tsKOF1MO+WScG(llt+F?sPEmoYdU@<-g%g)IFsJ<+`n@3n_{(Q>hl-b z{lc*~0+SOHgR#`&{tx@7Ncom+9+zPZKnh#CpJXy8N5@F$h! zxn9Ew4}uL57;%mh{bRMdYraA1fbJ@RV*dmz$b1JyOM zQd0k-yeNR&W#D#dqEsux@n?K*St62dvYl5+ry1aR;234T@KZgwLEX9-vIL}5ahO&B zK9Wfp@Uh(Emw`d?{KV5@Nnl}*LPN!{!euaxaZ8-p97uU~VGpE?p!7m%^6T+R6t2L5 zLx-LM^m6&=*=*bI{C)*23YX(z!wA_MeY-hGc!w)+x^Qm0H>tEz zjOXN4jJneQ%k_cmqu5xXd4O~M{#&CSZqW^8pa64z61~`mF=z*0R<9DuBXFe;z`UN6 z2YZ70{Vq)9sC=tS*V59O0G9z-GY*_9V~jZNTww-3^Z~Gy11C;|;{6t{ZPi{C*ZNiA zd9qdGe7nxsv(bwS&BbKt7OJlakiY2UoK>8DJs=1P-r^PrxA{F6#~nwwbhSf79_IL4 z95)K=Jsx5qpHS7LA0p=$~y;hogHs2U>62#4wkLGkAh_ntboYo{hy}p`8lhh`}|e@Fbu%Yct}C z&_}~YFp`NDiy*xA_~SMRv}+B=5plDmYv+Gmia3ly_K^Bg7S<-6!M71b7T|Xs6v8SO<21I< zhv8ET%`dSYhUnw{%1`aCaQX-UHij37vtgT^a*UHKFEVg)I{TU*T3G* zmhChQ5~C$h^mDtO^`RJWZrC^pgQBO!^WnuLXG17OUbMl`y*%v@p~nmRoW9#CdQzR< z|Cqq^$rMm@xvl&sg`#nmix)01%$S3jeW@?KihteHPg^K2VSGTuLUz7~g`c0goukk9 z_PJu9k$&Le%RyByUcS^`MscYR^;=@VURA^=8LR6psHp#4FI>A5sb{tm%W+GXjkWmh zrE~ck#T}KKYWg}V6XuzH7|xR327~IS7-hJWs@t4c?=4QwH2~d9ChKX)qWgS|miv*_ zp5l`pm{-+aCVO%7`$J7$qB8fG|8(}Cz5U+^iG6QUQ#Vp35Fk#&#e)Pth>?ZKK|;Z} z+jDs_YqKs4Tsp2c>VN(DQ_Zf}N&YpS5|#pegaFUWU0i5HU}aoDE92wU0`T?v@r);W z1y+pZZCeDzLJpwvCH0NROlEX|+oudOJf%lxmnWWH!7kf-t+rhF8o+j*fODw{^0-t& z&V4aq#`PA-{^1ginh@d@EH4aAU~!%elLC^*N6<94qAs%6Nq%z*j)T*)$jOw4==kRU z7!_|*2T!RVsz#w{SHH*4zWGK=#;VB6gpd;hwK+L4EkLO>-4vGxy1cFifXaL)(p4|LdC$>Z3`6tbB2m}6KM0Jqo?mjS^J3mE?^1TTTtj8E&}1`6JU{wp=mlQyT8?4iHqTiC*-90QlIn1 zw(!$`M0JmQxwVt}bC&GIT%`f|Q$HfbV{$4gxlG6m1O(sz5LHQkJwNNYavf~owKL|y z0#Wa)f(Aw;HXa-pE-F&H0nDclaCr!(70`n`C1X;fn|~u8xIU2L;LvLz0|H75cDZYN zmis}DM|9x?k^);m3vgnD!Pb=gU%aMHpXJC5ihx}AD|Y=Z4*wO3CTXPbIxDw*>K(SxyEfk#4?f(ZZ`hl^k(v}tK*mkINjFuGw) zoyPXW&+o!M7)X_)F7^RMqzl#bJ}?EbiIu?I9S&tIdDsQxh@!U4au*_DYIRqaAQ1!; zEj50)vc!wN+xb1ASienq$B64v0t#X}_8${NAk@Y!zIw1qYw~5APJh-qGb<=;0nCjc(-jXDg-|Av#+J z2li->h5rbALTK~EGzOm>CGLHj)Iu&aK_%!&4X5D90_1Rz4Pc!EaH?SIuY_EVNogdOwTy~ z$`%6qK~&X^Yo!GNdK%mHkBKhbAZNC@q3vFs+4_L6zE5Ugg0-ft8CG9NQ}om{tn9mR zFFQB47nl)vrIo0i;iq&5g3?&HcYTPi;v%;Dh`)7jcKgT036os@0h`0_;2N8P4ma1< zT;yY7pT7ovB_(Pq!i*V!JpU1y@v3|P`F=Q;-h~WOArho=2h(Ue>R9C~_%RWy3Xm%w z0Gknk0T7v@5P%=W9L6Xl{`kdfgQtn^=RU!W0cGxmh!g470n@u4G;JR+&A#LA7ZQh$ ziMUV}rRp{Yjx0!toRo(lAulS%&}5e4oIGkwSA&MlR+$oF(}+S+k13=`1C=RHDZ<9~9oO@|zqP(^t!MrI|JM5UYPBk{?|t9b zbzaALoX2^b_BF_bjw%I5E!6jp%-6UBP5JUIDLIeMs2UEWmn>96TM%nfB z$T||%l_J3$d~7oKUW=JZvH=E4Q(_{d(D(iEgd9eiDhq==k%{yAloe zWa86TJ9wh*dk?MQ#3mBMTSp&RQK@arsw#QnR6+lC>GiH_8;){82T}a?Aek%-)pj;( zPw7dcd>AByRn#N7%FLiu*i$?NAdzqsQhK+$u|*+a#S*3JF2ERvPoO1gkx<7#(^}Iv z>JG6csp#Us)W2!)XVcrrvuTq>bW{r&OoSYYdqp?QH2O*(^q*7Ne)ih6MhT<%IG<-A zB8WF%LSiC$A_)onWZmGQph8Po6Wp1Ip26x*M|h^5A26!uE-d_=r%78Oa;5PMybJ{s zmq}{5%Ib6<6cuUx*4fz^3(k*SyO8+ku3EJ@C}{l-RWT@qf_tOMAp=$Y6Qi-Sy`v|N zz(qmCfv>_*9S0%YH(E8-LdgQf>#W;6=#$?eokK61#|fNq(Q!%l4Bi}kzc+9b%;8Cs zkp~1aCy=UY>*_|6n+>@TDO#cp>}j+|YZ0$k-ZaS;@Ihs`{i;2G)Z7 zzdd$cM$;YHf8>U9e#9DQ=I8V8FO>l-?WA{Lu<`1kYpP6{msneP#x*!Gk3zUiI6N4} zN7j6*Mibppczg6g=GY&ZFMV?2BQOHmcLZN*IANe}kQh{feBhc}B!e|pts0%m@4Ak~ zF!jyC;9^iA_`j#`ADP`x zmdIxAq4ne_f|e)9z_tK&^@TD~am4y+2tD_@|8J16>TP^{a0>tEVl$;)CQ?JLx?axNU zLtT@0)D*no>#D;1{Kz0nPLD{jY}3zUzDO@_}-OcXzykyClvm2b_yyOFJMcj zhqo)ge*Rn>zSab+80ozsWiK*%3R>5Q9{+k0m?8g>!?|&-oKHt7V-xPiB)T_8aRzuI zdPDED1>!k0Ag7T3heZdcF3)12wJVVfW1gA^2Kg7s)$59h+QKP z3f$#2MH=0ap%J58Qu8O4VC0){d&yP6A%uv8z=AIZh)aT7s;{w;WVCYxXc|(2c#|-U z+bJz8%R_-HC!Bd252RZKg7H}VLjD>KoAaStUjRZEQf^=w!mb;wPCQ5SeL=d!INtS+ zZytJuyS8Is5fjfCx}2s1toafKs2)+=-kf zJ&VMj(>{kEo&i9Lb#cSWNi@T<-?h|t(^i)%^ktnnbB5xq$wskQzTC?J&8f&Z@AdVI z!~3&^EqbR3c0Bd_hp?D(D%C;^%w84K23UPq)+6mkuq(z5c?gXRp@iY0o+?{B3)>^Ty;22O^6I|r_8qv|Fm>CI)! z=LBrLRzuI$P*?YU-zWtk)T{w;Hjn1`B%*}_oFfPP+%&pVnfEYfN_h}S#QhM6!X zpnP8I+1uHnPiXTMYAP&Sot&27+s|IUoR?fvFbsbV*;Jvsz_hZ4r^Jb=9Fa&ON}#ld z5C1nh!VG4Tfxs8bz2TgS^VB(?C6HS(fn`@%U2o^CM>oIrh7EBb?Z7+9L48t#To4J+ z^SPIN*h*9g3Ly;7bHVKD7^u7`}05YfkqXPXD6UI)l?zcsDqj$EC9BmcbKHp;4nVHnG4Sjp_0HzWIr+g z!MZq~&4H7Pg-%OLM)SbAtG?LVDsUPn4soTI^DA-0M*kFWpUk8Nqg&{R$`olL#{ND) zF`?>4vC7Mt{~ko)BzgeLl1$b?>m_a>p0Q7=5W07vcDrzI&}|Y(eqQNY*;)r`Tf^|U z;C6OLy%4Un%d3O`6I)3{LM!)%R8Ct%vkr>94YPg2|ULu=t5 zS4}uD*kpM-+HGK}%G=6z^+0xD1S)d%BAcyB*hMJgJcQ#FaMqD?m*e7Y?Z6}{y9mIq*!3oaRLV6yITOxfL_Bgx!|yM7vj^y=(ybSY-|9 zi$F81xzdP5&~^@`Kj(NdZ&@XTxteSkBx6(JDmb(~-Q6jue&Ko45}tvaP{<2$vz{1z z-itzouVb18j_M1t-;Qr&^_~TMA#TCwfF`>hdo40}jH=r)fBt-^=i}kL04Jy{tTVt| z;&A&_Rzp$%5OI^bD;k3MezxvWK&-U}-|t!S9GOO0y_vbWU!7w9T=t!UP?4Z_%1Rls z@N31^Tvom^-l@1CKmWynzf`ofMGz;}tFr+YK}0?Q%lmzgLI4m^;cRkhsyTY-0gQ`* zH%K~)^@WA{nX8hz_EPr*wbet0KByPY*Z8ABLP`#9*NNDB{gEF{k z!cYeIumN#Hj0~|&|2A$$5JGUJm>_17AcW95y?om-)9V9wK{{eje1huCskgZ6n(2t` zw}AU)pFLQof}t+*V#~N=6+$}J!lA3pL*vCF#8?Ui{KD0%vH(85iRRva{6Rn{S?*+t zV1WYD1e=&l$R(j2ooksII!?GAq%VhVs{&oD_{-)f`epQ*drBR#nXI_(hEBK#hG8Vt z?-Ky^lZn53!jB@D?l;xRD?Qo;GTXKmOT%T^Xh)UwV6iCfjrcsx{N% zDFXs#_-e>srQIVK^xjY9LuAxhvnCus5Qk_@Zwi)XO{CB))2#Xnmt)Aj%s`KV!4BKkqRUi^b7UJr9r|_LLW&oi}$Yb>&+@RM8=Iljd9G`@Qgi*n>0z4U@ z{KQ5C91jR(K+jz+Keb60j@&vo!gX9j*KowAELLJ$V?~guSxE=CL zr3*JMR$_iRJs@B-CdJwk49g7A!35DD-2lVI;1X_XY_WLcTGY({8$EQV*^3b;f=s&(FnixH#A;m?3mD9gc8Ctu1y|{bA3YYkgz=26M;Ukmz8FK;#cv zysBGJ&_tYe)LdXix8b)bTHxvIN%yi7k#Rl`aye->>Y3k_2etkVJ4xAf3)tPea*o*x zt`tswHbPIGH2!03ZojVFyd)!4?Jj61<{_!yeBul4Qm4hyv#mFCa_aj>+1FO2r!}=^ zkMqe$wH`-(s>|CQFaSZ@+QudVhU~}bbS?@i_W*)-c0M(@whQCjeJg+rFAtclP2rTf zI5-fCjgjBT8(B(+66?4wzKj8`z+ph0cGkj?uq$Wn^PtcB%6G`Fwi z5g$)TpZ;^U zYKe=jO15io@Ftig!+e}_rIF-lSjf;UFp7w)Gmb!L5SnLkl5ak-Aa3OwL>{Cpi>k_5 zESdL3#`1#|2W;^?VPKs(66}54C5+KE5*}yP`Sxwzh{Y|=g4sUa*^vtuE_f7tnOuwh|pJ$FU-h?u~nn}c@L1Gg~EpYk*7zy=+S z;LuU2rZc+q<9UBj&lAnkzP**`(b*T{>aza9K-G7~jYZC`e9p=1Q8D&{)|6Z|96O0z z93a#8D0^A2sJF?#Xfl}2z{SRU5{sL*iEHAeoHbBnl0sPw46soov(#d6r zAYGlXcTuQP%UDcCL}TnE%9n%&A(|jM2r+V~G`_sNLluH)KN4x+w?KmX<;x9J)g^o2 z@JRn_kHPj~t)X9?-Q5L-^)wci=$3uj?>`+;z$_S?nl=9D75{b2Lh;a%Bi7v#EDQ^| zA~jmogEzxT$+!>aISUPcVl)fj4p9B+->~(mwJ`)iarBb`MI*#z?1tcbEk}Vd} zO2Sw2nxUYfe%{&dUPr}k241Dw4fg*WbL+TQ^}w*}&S$+Vi*ZI9Jxm)8QgZmPXVeGh zu|S6Jv(ZzJyBuwI?p#dJE}GZJ8!<_KKy2SL3}OI2Mhez-=OxX&2>6CXc zarAoCBv5TvSn<;QE4tS->^l@V)a+T}V|ktaFvL+YzJnIi<8OZac-e)|u;Y$`Sd|Qg z(9@H|GIolLZSckC=Zx}vb# z$AWV#w6CqL1^+CE_bzrSJTuB|@C>W?#w1qSGV&&1{18}CDnxrq?D(>=e(s`9zexio zlWC@*^ea_tj8_h>+HEr_!mYMHPHf7SOwCzYpJQwl^)iPE$N2B5q?vZg+lM zt!D|5Tf>_@qRtcSQ!LJhgq^5J5#x6WiJNtDvIPnmhSPz zzb<&Ame;S(fDIvEK|y@_dO}e9R9<#A8L=SkJJ92;`54Y_AP=O_XEQSL3&U?$L5_^&93Ox1SW@Tk zRsclgBxTX6=_Y&K+`g|J?0NO7_m^{QO;*SqKwC8ag(Mg`Yf9Bu`F7<-ParYZ#hC2} z50;=8i2$9cU~~*j*RDYY6(^jW{TgQPxin4L(yTnRmuP?WKgr>h2R~=T7zEAFh+HAT zJgwuZQ<0EOH>|iOti&fiB=g*RCnZ-Hhr;@N&?Uv)BVCW&0fNdE zcAz}{`r_AnvaN60O%Gw6U@ek$0-=xIvpWIdW1Zu3_3U23>}5|I_x~#9T9dAvE6Mz= z#kQ7e8fT($1HfySb6amwf15~QO!rAjRv*%65 zCxQY4efb8|WI}Y2W;*rebkI5yEI=RKwlB~-Nz=Omh8Dv^1aT~@T+X+A4RRSmN}A=e zp?;)Is4dbm-mha;Lx2pLmd3~9U$K)S8*vlhR0|j|FS6d37i67Kk3OT9$pG%-P-{Z(+JF5Lf$*fb(FSawZ zs#7p)R?HZ|{zNxQcAdu1+`i;3TrItFMV*NpPUuLOgQ0oy`6S!t*itzX_fqVwZzb7E z-{Nl=^HLb{tmtMjb>>`B?mg78f%((;lz7}^SYc67r)bYivlw8DlTu!&M93Tl^#z8= z$60DU$zuO$){sDxeKA7!EASXT-)BBOO^o}&9)bMnatN8XFwt6xOLBvw)97L?-{o%iYR}%!EG=z25VSgsTp}luW^Ah+Um0T4 zN2h($KsZC~n2hdv_AN=S=GsD^jkzV72;j{V5T{1f_dThu4*%q3I}H|(55*l9p|LQF z#?!-du`@xFtx`eKBkY=<1M#Y<^?jQ$7`8m>8s`)o)X*jna&BTau?*Un@=Rt}Yh0+J zeTRITTYGPzdikQowCj6Z+L@<06Uk-I4+A_FGkiR8Yles6B zS5dcMKp99a=s(wL+#~mn5a|glXVi%H;CJxy=mrw|On1 zizz;Q{FJgZu-hV-*lDpF&^MB)<+#*T&?Nw(HY zuuJ%7`^Ni(*_XD;hvk;@gnL9Ja8B|I?2UZ6a(_#`Y(i-87WuXT`GV9a+pJX-#s(*2 z!JO2nF~+z_g26Md8%k>9Z`Y|c5zihR$aS>7741wBYkjBpN>GF|F?jx+ zS(l=X%DY@Hk-&Y|4v+OKv#etp_qTN&!A5QKUz)5Rt=1tp&>e@98HD^~t*x3W26D8E zGTZqp)KvEz+dg!d`TgZ^oG?VTHS9z+j>kh2UFWc{std(M_UGkBmEua2y+@$ox+c*64cgcZ9}iaWRN zhTW%Xi@{#@JJWUc%%48vb?0fLb|LR0DvNj54dl-*&6`_yWuSk{*r5p8p0QC2+zq|@ zfjPsDiQOY9mCv_~XPYzWiVphnY^FlCDY$X<`57{f!lvSxX>^+(^6k4fKj42f9zLjI9`nAP}+?4HA@g#;x3>qL=fw25kUc(oYEJV9CYd{}Q~YwcIZ)kZtK-K`nA zOL9jgf2ny%SV$Mne3NG+OB~zruO-Fu1q#mxroBd-#h%x$7ZHh>FR?FI`e|52RO`8c zSqArvzT~`Msg*4g7spfO^Az0krIWWx*Da0MA?WPO^(}ozcna%uj}KS;?AZB*r_B0x z^zC)_RN~SQd{r;ct}0Ei;(DuSu42b?w?GiP^X6BnnV=g#K4{pfl;oY{4{6N<9#E};dw>N!QzZb#p3ZDM(8-1ca18uSuc*RPXSA{=6B3Q%z2c&1k7sMaGHU%P#~ zPKY(i(*E#EuPvab)+c_?yN*D11xI^_K(h4(Q%l z*VVjM=T&gxdy5c@j@QG}j$)1GIJ)hdYxKR?K)U%-&TP78`s!CBHRazb|BQ1jYh` zwC&?8P3kaO%9`dxeKg}O;*>11u`yFhy`jlSJZ>}`HXB2rLW z+xAQ6=cwWj+Wm$0c$C4Z+UpYgSYBmwU)V0)p(q|FM|q1m6--e?&gjKa&o&C5+mKgj zob}y2scdb+(9%gQDoP<&cnrcUK0K2iQJ*Kh;s(2)d#ZVY_pZR1_f*jnD|99tArKx-is9(Vz^UZn8aPub_0`#Qs_|TQmA|dU z2AN}9p+7;6b+zScQe`7f9=EuxRE-&_#dcn#V1(>NQNY7iuoi1lILrE zx9;aFLn6iar3{brQ3MeQ=@d{pRJyUiKv7U>0YN&X8&njO?hX~{ zQYq;(ZkOx(-u>-;{+u7@*Y;hni#Zo_&gZ%BE5;btxaU2&3umb}(ru(rDAZDtrxhp^ zs$2MZV*OhDo&1XL68^PTPx|a>$};(1SV6Qeh4ME=>hwuP`{0pIJNq41mX?>BZ#>rC z@K}O+^{I7(m6Q$VF5chxbA^iL8Lj3u&C+H%TFuWgj>dl;%2jPn-KeK~hH2w^Nxr{% znBHzVC%J#a;Nufz3rpYm()v%h%lY`;?(fO%6J+tVGU)1OvZ@xD=@_5Sr1j8Uk1P2f zf2Q8nNmM=hA5W5pjc1Sl@4tRRVLyLfH}upv`r*Te`*-iw{QA+8XyYyX^Db4fT=ff)klnQZ+?o5F*X1q$ zb(0jEclEMjiL(>^!=cLy(b}%FSI$UClvP&BoIH7wj>qJwp1wYhL508i!%yw)8seTb z1tT+iJi^P$&M7G?Yk!D|>p!Qz?w@y)v&-QZ`tLWUNS;66@PMN*M$~1_s3}2BsW9qV zPl@B)V06ay-ZJ$^V?Sqq{TlfE_Er_ms()T}VwL!RCQ7u^aAKCCnp$kTMc(MmU_GMY@EAJt$Esx&z2xtXD9_>`{dh}ZtOcH zx@(soYnI>Br;&#*MjbkKtVVsNN@$!vKPo*vz3kWa?b~@QI{0U2XFt`~Uu2Z>b zO6aZ*;;U{esRY8A(zOF%%tP;+vq=VtM@TP5<=0UyQ|cW$QRp<5a~4I! z$Is7CPfw2hARTN0=W#Uu6$6S_nR*W8MjJOOOw#bvu%u#kNEcGOL$n=-;1M` zZWl`*(VLEN{kin!@1b`2^~Lj?l$5-+b-J^Q3yMJ z(oLbfX*~14WOUwm;rzF+Utd;>Eic?mcABg`iv?vo$jnR%j;pIH>(Qf1^76F;$s(=` z*-VG|`G2MM#Iefvn6Mr?6mz{GV6`6e9Z7`U%-TrAGlW#4n9w0CfD@UeSs z>_wJ>sU{7-f`YUiyLOq*jCIlsPmguRPfl7-VZHb7-`_O%`0*B`j6gmw7uUtJ-unu^ zwIol^^r7^;e}7s^!IxQv+oa(TxoF;?(O{Q97n^;ZiD05Xe`23~1S&Z`QI4q1nqH*3h76-kN#_VMK?FZ2Xn&!-UEp^6T?0 zQd};)5RM&f&oV9XqP=co)A;VrCVFkBVrsraA|hJJMN7H&A3U)6{`q8O09UE*^y8rt z?d{#|i!htZGSR| z*IdETF&7E^ZFDrTDnw{F#ICEh$6G9ktbTcUxueU~tFOO){mO0L#$EYBMB~Pd8$;bi zMdT72<5f)2YkVRTHL}W3$cvU2lbJqY$7DsOo-%#HGq3!#eVC@kIyF!+vNDSfwlBd2V%)r{A(TCd7WcR7%j%fRTLPTf}El(n$9I90}$JaCWYg&Zy; zsc6Y@&Fa+yo(!&Xii%H*r~4{{qDdJ-i07-P8-)jO8Jgf7H`35F-P_J`IjwaPJEy}v z&9>N8wG`}=?z-rRKpUEFw^XT*l4;DbGW<|dGBldi-Gu7qAhrA_nJMg52D?4JjQq1& z%>XocGCt|ng9stKVv6V?*#j zhIV_T)OH6aC!vHi4%vgB%FCsbl9GHPOCIhiZ*IC-rDs!=q0JM5ZTW?~!vX#AjL)AxkBf}_ z7ChA-U)tJCUui3VJ_OX!!g`US8LYPX*f8~UsS%po#!Z{zokLwTT3gu_8NN?VDfN^* zJh+&gSdni#F**4(D5zcOm!iAXZjW&EfE_z`0#JSYB5cHZ6$ z{?UeeD=0h<{~+P3C!=LUm4T{%PE6pIqrZOD>+S80MVrR9lvP*T*}D!k9DernX-rty z2^QHGic(VdZ0cj<-h0nQ#jW0|qodjUM*%`}fDu(b1?AyF&z(G)!wJG^SCXv^$_25gQh1VLiHh?DOI9hdepCkejNV#^#B6{ zgJ-`%bn&Kxg8{v%tpT5ogjSjdP4TB)FboY|`MFI=P0hIR%%)A7lvGuXw3Y)yI4h5f za&S}+`5Ql<0SLy;T$Go8qBI@U{xmK$UA{XzFRvV>w{BVRV}O*qf#*d_OUs7Ybj_^KpL+)IyB=u1m`*NF^(3t_61MB zeF?nG{4}7~Gc+{RrXzGb#kfAoq$@usoo7-^{*l$5ApCQwYIjN zla*Dmwat9QAeQ9iMTPg(DD8elb@$rgip&iYZo{DD5rck82N*@T4JO$K-^`4Lx#aX0(F6fga7=5rt2z9-Ic-@bk9 zva+%{d3hQk-zzTIO-C$i8HEh$F%IjPH9gv76UZ%eJ#a+mt3SPMoVuY{YFq0DP6SI? zMTNC$sGpzR+aPN&iH+;mUzOY5P-`{?Dxv_$c;nL8XFszef%hgzDn*V zA>oK;$L#ATw@HBU)E=WKUc`39$H`YRRJ z-yY!_={D@<%uh}I8N6o>ECjGj4#g%TDeh-8=ph=hGVLYid#l&3W##8r1@b|{UPPC? zdGqGpG6hNzvvP~wO|H-&v7iuBq#C`CdZj)vnlIkxwT})*$$4)6Jm=#=?*e-j(F~D4 zx;A$+l6QrOq~>gKb{~l^Yinor09O2T;Kr!D*|D-Myl3T zH){JE0ajL4YjDTjzP=X|M$Ak>4;(CxRj;~p=gzK?zYUrMMt$8Xk9QoIX-_wf05Vkl zw8?#`E%6_I9GN%;rW^$B|CcBNEW#Fq`Ves|A ztRPpd(7}VfH>J4ydxnNgo)xTEv7*UpBKPfx^R6vhE;WV%|Copbx@`($FE1-oFfoY( z)rn#}`{)oGTlvt(z>pC0gYLmvvNl#$@y8tw2n%=2wRU!Db#-+q)7QCPw%WC8S3Fe; zNAyU@xca>Fr-Rd1?x{_;=x_vGxjpMTe_a5D=F_K7G&Zwo<%Z;U#dBI~GtWHO3524o zs_L(vWswNA1+*i*Ozp%CX?b;ZlMJ^2Z;;HgPoGlSK99D)8L5t7=6YM}x?%l#Igp&< z+_Yrc%G{FHdq1Yz6Nl!;PjT5R*%UAfWClscO^24j|1wHr?Y$P(J?Hf>%Drqo|yZ)H3GqqX#bgRmk`w!E%xI2vlg?Wezf*@M)uBJo&v zfqf;setqnYr)NA^oJn(1$N@&i#tc)HGpA4US6oH9e)@ldR|?B0M28s}#liJ1s;dVA zZ9feONvxV8A9;&VzH_>~gN zD=U>QTzJ%YqvTspPtW7MdR^ZvP_|Bqi=$0NDJQCf?D+3llWlS#m|wS3PRMaGhHN`N zg>9Dc=+VmXiF-joLCB*9uoJ6oyQ>PH?Ag8B$R?qn32pX}m{?KS>cBX`?UyfKR;B+D zsUuXhdd(U&z7Lh9yyk7HeA|oPy_4L1vcT%+H>nW*Yo}N)1j{KaKcDIleH#%L_D0aN zEm>$@*yQ-IptiQQ^3C|!j*-(tXkRGMo@#F@0*W9m^!E1~+HA~z%CxcJC^ACX@btWz z4sd^BRaxJ83c6ytk6R_vf%%!g(0Ieb!pa^g8k{Y2cXzkic4kD#IIv%OBDfWeYUrzb z2v7^qj*Oa`njn~7U44CZ(1>o;2|Hd;4ya`f=NgXhnov#GF`dcl?T_4WG&-XF26?C-lQHM!HLZ$mrLKd9H!rbsg529YJe18HuBV(Iy3-Me>Ks3_afwphG3LXv(1 zBlR1OqJ@`uXbcwFmSq__J>H!RLFL?BhBm|2t-2XbZ7hn2vZ%5ZTtoLqM$G6%om;~5 z1*``iKWkBtm*20VqGB`DAf=USEuUr4*$^$uK)w6e33MeJ+h2_(i0ta418zP7Av-OT#gGx zSx>wi8fW0hDReSmxN>WfId727_9JMCkTMid64W!zVv%nd=IzR0V$8a$eOzU@h3vnF zxz6_P8ZPl&tUSc^B}_g-V&jGl^6|=vfBp5>Wsyv?R)x23-x4uYX(`M$SkR{IT$O_*XAqoC~euU4FY(hu_63 zuyOA|ZG<3d1(Z4)EDS)3^xRaSfUvM8y^yUUDpn%X6NpIhYH0=+mYA~DN%4C6RPoB$ z5kQ(@8@wgJoPT4Nl9G_>gPlhY&6rB5sRg8_rn0xt*p9StdNS2Ox9(Lam4 z7x+;h#tK=jE&EzTrg?i*sOy|md!~6k*zLEWp|~WiyccQdrp-xhT;WYD5IxRGO1?G_ zyXWoQT<9`yJy5e>N&(l!bLkCbYP?(L*1FA*Yzl@(CuXU$8`44D%Gn>>~Qk0)B z3^=Bk1G!5PxXH(rUa1Jdzmb|+$=*Ku)TvVm#x<2T2)VBk+pBb!yaN~;1HAik^-CWK zR4{FU===TqcUC`KWK(O<`fOo>@vmP`B{_xOK-L>#$9-?_EQ!4$^KS17I|d=MhwPK5 z?pNuYkUeq2J=c2hCGLk6J=U>H&NAui5MGc{CFJ1XK-2&Cyv_8oC9|EKUHpsfTef_D zt(YNt=+NC-$J(%G&!4mM@io&`c4>}yN5{Duj*s+|EvdhA)f#R}?1gd>DSO}aj>DtZ zMHe`S_oI4{EhLq+IWI3y=lgP#W+@M+Nn3A|WrZp0yy@Zj{tDrms}O)Sn%jkJM`}>Z zu#1uR?{DNWt~-tUPff}gP0llNyH*I+Krd`x^F_UN#MzX2)W5mhWo}ZwIY}$Azxmzy zBUADY4mn78lf|Qz`c~sz12=KaB^~zSEPw&XqM01S`oJP&)nl`p-0y*I}k1i zgRD?B0o=}=JEx$h_tMALH?gXz@8igHy>d`BqAniNJ&W5$?#qBDG>qK=7rhx!kIz2Z zn<61L_5Hit{PgG!TH4r;A0=%D>&`%M9%_i)zF~z;uZXs6&(p_`!=T>*ES~cL zkR)&d!cx0B5DGgAG0R!+wyOY>ucD&VBl`9U*`7yvB|FV?AX=^TiEGG*H^Diiz8qCg ze{I0F9{3AlHqZS`P@C;yv^7_;$AlIFy3?c`x_srzVN~dUcuDh*o>F>)c1~{&a6t7a=2n5yV?qlZ+Si6&QXf;2Vt!i?C=Yba65rtO>t0^>NB}@$r)<;iNku zjLCM|j&;O>GC?cLFm1j7sZSAYtFgezj_96WzI+Lm9gYQpfo>=Z3A?GQz$wFST>C?5 z=`bWgle)-zf_7sG2nM6iZ*CC58xPN4mpuxs)Cl>^EaL_VGk{eTQr}90ivY%Z+lnft zUqgL2^rT_o2Xts$y3)PV7Nrl<4j}SF2M(MnaGbhsw9XWBl{9h7EeOJN=h^Env%P-m z879w=WsOlXdmzHIAp+6%zO^JU7avOp*@aF%aUPOy^q}7y?giCirk8}ZQo9BL5C7|lJwu`3n71@Wgm1w zt-p40i;V&l2+~!Vo_zauc{s{{QKkWvDGuQ_)Rqws{U(wWYKX(u>eqZCBbgQ_>t$&^ zF#w^MbY!QH|Bm&GH>`f4d`cFPKY075$)~ESCg5f05|LPZBZMqbD2Wb=rQm0}i&Z}B zGCzIrWaNw3m>AO5Y4!=n08gk(sVTZc#WF)H8@)eRdq z2wwgCMqmR2lq}S2p3cIHPPpR4JgDGg#+rajBD8Oi<)stVT7 zl!PGv)i9#xR=KIvqMMNcwdXf)#E7I1aC&2&o#oU}qcjG&X+ENo+-Gb6P*6lLF*sL; z)|Rl$VYRb_B%}EyqN%T?rh6Zz-S{*#G?}CD*C`$6A9tWkGfL5M>fL6(5FF$0zuRV@ z=Iy7gyi`~xqOljwj|sU-@d(?t+g0@G(0?J$drw`vNd})1esCC@CwORagy_ zWQ^R3OGprorcSl&E^H8zX9UOmi-BRhhUU4ye+=LlFp`G(C2C2P;F*=Ffya=(sIrJZIO6gPg?1#B`dBvBnB! zy43S5;=M^<-1lda_u1K|;74+Lx+2^KZLf82xy}u;phA|@X&qr=darBp9UE8Qx~3*M zglWX^Rg6hPItlES*SbUPSseEi{KBwW$is_fW(iHnI?37D`~;{RIwT1Y)`WRAaTrXY zWXJ?^U$f25_E`K`&e4|dkj87#5ksyGBU_&a3@E7g@SX=PP{2AtR1V&2T>R|CizGm* z_=%)N$$A6NQIrpUuNI3(yq#zt7VlSOGeJjH7SLz!t44v#5M<{A$78kp!@+H^;aG>q z4<0=575k8ph&v<`Pfg8W(qIalW?1*{e|v6jJ+vgOZ9}34Uwpj-e&Y9Am64E;a2|<$ zHKw1m72p*Da7e78ijen3Gf==#w=v67$0wCT9=a_I4O3IiI;O~FL2wH+Zsf!B{&8#qP(XC-Ug}nH!lJom`wClDhsttkG3l*DClK0mmm;I_E;(co`lewB(kxx zlA$B!s|TQa#OoBf=3)d79?ZRV_qCVk1&9Wxx$niB0YS)>V#;Cv8W#XOwPZ4{o)sJ zq%_||8=x1s{(iq2lYoHQ{LFYWMQ()WI!UgC!F*5ZJyC!tf(J#z_6re-!9L?!kA!Cr z2aprOuMt_~CR4TdI>yRJwewX;hl9a@5hD-Cea033oOG}$Ajbwqw%lOz2@3ihPPiiE z3#4mB=)%PK(&;)sidojn3CkS{3JM92@(9C0CBtBZaj>~|y0W&dvJ|(*wUOIhFcBje zY+jZ`CZEtT27nE?R?ut+-U5qkz^=fGB8ywTv^HHDs}+e_WrU7R$SNr&b#)3DWDVyI zC#4zC476t@!#8!}I&+Qtw{PE6rE~};K$4=Iv4hbA`3e%z>APjhq?;T z@(woTflj;b#+h!nWYm6Y22stdj_VJY&-=eQaV&-hxQ1ZO!iAsG#MT3IgA%UJxhMpb|TF^MP zoqwD;s+FsVR#A_Xx9lt`P!D!N*`Pc0Z`tVgDk(x<8uykxo5LhJ!**0X1mFgsvVoef zBTTp0!x#pcit`ly8v<5u&>Sam_r@SjKPM*}z=?QlM^qouaz&kFF#y{cN~;#F2W*Ig z25|^;fUGXZcy!t5n3zK-j{HKW!z3`FgStV&6K=gm&@gDbFX6Ew#w5Z7(!{Mn!l>eV zUgQKru4HFtCm?xldNh8Yh@)ymX1zT132_BY%>>{L)4m9NkP#>*)O&!3O?Kh6}x5pkDbJ}_s#93 zR+o_QAYH0^c}WGiLdq+bffu}GQD{re<-C`Qk4=8@WEg@4p=Pi?daB`~>|mGEI7)$E znt1WSb0B~4uSR=|&PmG4%d2N!4R@RzxTcgT18t>Y{l9yzqVdoT+-eSXgeipJVRZMx z!b0GmT7OP`az)U38V8nEXc9ezM233K^;g7R^YY~ZLZ&Z9ov-zx@~)8hMpV3Xz;>D>?UzvBx>a;0~OU{ zB^v=65XKT1xYwb$b^o0t3n?%L^E6{{XJX;dvg>>W6O#sV$;#H~1fi1|mp^SQSe$Mr z2>!r<1Kf6Fnw7xxX^8qgftomY{X2z;$lGV{LY)a|v4xz`*blQb3{q!s19%%JS+99?$=}U}n zXlJHX!2*s;v;6=XwrARzVEZyz{l`|*AOESO2t(APYN@9g+!j)ZX{@G3j?`Q_G1q*s zTXhag{}s(~FuNIHn66&vob&vM+Dou@((SkmDr%k{zBr_{?#IoWD~T`gw|@_DIz(`+ zrQ5s)X-%*LRMBjX;UX25L>;VDFQA%C1$8e-pdcwT3Id3=JU_8lh?tOo$h#A`T1swyl#d8tu$evCRMB(dD-6f{E48Czj9#_>$E6 z+n?Z?GxR=eJgWNo1PR|<+tIlB@gf~0$bR`9udNn-U2~akHFTV)H(R>4a>} zLPFO3fXkT<|0c%92vh$(1&@bay*0FV0NCEGZ9UT=VtAgB@G9UTbY9meBv$ z+>M#7;FAEh&L>`Y?6cG;0NlIN9Fv?_C`ug+@L%Q?#7etnDNN*K$KkivAQ< zy*WOp0$8*y^~!_7xgj<-pl{^vJxfx6x0#rR5Z9@_%q@m z-2i8sA_quK%P%Mhq3^pQEh$+8D`WI4X}=+K6A;peWM`y&nMvExoLHGXM3lexX+&$r zq#J9OFqS`Yq0_$Sp-paw6pY3rt!Wu1jjXudL69x05KBG^J2U3^#0H1jD6(eVy5U|w zohC$cFnyB%RdEejkp34=7f=HUP9ZMYhjct~Cz%IVsyxu$J-0MJK85x?gsoJ;)aQlk zoH43=LDgO%ETQA)8|x;~DNO-*9N{TTvTs`7poO;z;yZX}D3 zHa`ruTt!oR7>jo$t#$8nc$Rf)dHs;J+69jAx)rzeL5@f|6g6>lJb$8U#|QP!MV$d5 zwS4=ODM7NHYf1t)l4-gr6otY~jmhQs7gsl#}TwFzJP&`OfjD zzP>#p-`R~IF_0xA125ovli8oWxj#zwkgOr>sMv#gZX$F!0XXBydOa4@I+P>DJlj!X zwME|}8K2wxTw}5?$a3hnWBkYcicqm`!Dx((>RP{Orh2HZRq(Xn2cevLvug7IZ0B;Y zZa`_D1Z!f$@D>-4W>EbLYy}ML>&VskUYMrHf|E5S?JU%7DF;6Ha6kz%GIT^yu>p2# zo;B^dQvO^()9LB+=Ym3!bQiZbhpN0R47K~LNis9STQm;Eg;+*73MPH9o;*i5nJ|*{yCe%AN#tw@R!LV+# zxpqqe}fbj>w4`>Wr$Go7ZDKB_&Y}Xi6M+o8lJ}=i2z{Lcb=M#TM}1d zWou7LF=maE#1D-PZ@9T;ljLdvY4La`JJc#7oj_l-X*bUrL=C%UD@ma^k;6L_$^}~( z_vwK8hIg3jf4ILx0-gFHpcpMSfeU+*q+mTo-r0*hM^^1gV4w-qqut1#61YuuQ8)NiQ!IP@3Bxxc`z}GiWW-D*zhdbQjd=7zzya6{p~sl zC|qC0$1RU&X4l}PhPAEgb2v-)V12oO2B@UKibcGDAZS5R0U2zxAp`&T$mqQrn6?D- zriVbV5$Wj-A1f-j3zwIi7@3(%1g9~=45qip&>Z+RjBDJwb7$Y}n56UO&u?VB5^W5> zHk+E3_7D)Xc{fV=7udRf&Cb$dx_KNkyDuX(an=~~_npu7ySgDX-I?$MpFV zAD^!yue~7h^ng5Z2@4B*0l2gtf{or*vfn20si%kTKQBUc=?VATcN`XIQ?jW!IXNXi zd&?i9IMJe|^Fd7-7&$il3Ryr0@WQupy_ z!Vuni6>RwLwo2-ti9p*XE-G=<0~?E-oO1wO?yc7ytGt}^F=;njPA`!?wfnsijOS9E(Luji6 z;X$g$6raE;LhGPb#D2J&ys-P4!K}viQahQaH!{MRhiX(N<`ccITyr7f@#1t=Q6s@E z09k|RFyxdMk#7iiEB8ZS-Su%5sp@i_H;3*tK!6!?H3^AM+9!sGCJlGn^WWTQP@Z*8 z)X^uugCbjl$VrE*n}{ytfC-o3qw7{yA=`-R2_=jP^ICv+X_Sq`i8N-dP0+ETcj-9G z6KtpLGNnX@25=R@Oh-EEQ^lo>?@*jjdm4i5cC3=Y|7(-Q)l2i z7ja-RcnOJQih@4`q>@;2HFM56zmccgZMgt~>|~RMrIe58+yEn5U~|h-Qb~7G_|jrQ zem=Klm#}%u>ywxpL7~6|6@U_bZ217t#Drg-U4ig51MnO4lL=S3!z^LvWU5Ghs z!~gMknW;c3TYb%=qBizbrs6K~;ypv_H*TzBSpIc(v^DK4=;jkpM#2*?7BE7czVKie zn1bY#>+*cJDg20nFsk%bhb9xn=O{Bp$<(O-S2^5>;pAWx(GGF^Ap_ofA}~Whjc?>9 z3L$DLLEq|mwu$x0Z-2xiP(|iP(sIXghplniM`@N09?t?uKA_5Vz^kSL?>ye(;21g7 z1ga5(oEzBe_DejG`SuaeHMH+rq^(0IF~-|wWLhffKy@d_2c+kCq~ckD3<;;0YSH&@ zG%$*Z(y+)mgIY-BZXR-)L@PJFX}SOmw_xFCx%%r%H}Gz%5%amf%isl>rXO^t7JuaQ zzqp8V3+RZ%JZtE=iqb6nM*{%<77RfG~_B zFMjdyrVq!rH%=tGElNWR+LhR|83Pl{!$>Yd;xsv&>tTpa;H(5^b22P_LWHRakq(a=4Q09h5u2Mb+{yAkA)};o=AU935_R^`U>!(jG?Gk`t`Zw|omB?^tcyfELT+G;Ky;F1Y`1-Yxqg0gH%~Q1lED> zzhn3A80cjrxBK&#(Cd;TbiYMXgA7QqgmNE4Fp@@|hP*-&k^c>-g2a9m9$ z;P@Fb;wCKtsHVBB&@_;1h?A(9OtDBRzrEwV!3-SAeOg05)Rff7K~~Mzh5Dq7W?$>U z7@P(B{BSqtDIoh)S1}Z2(>>6HGnz_EO4Nx-z*ed|OL5{#n2XjsRISDNnctcN#1=N@ z`A1BCI0aW%6k$DRGcaV9mfN5Bzn8c0o1Rv(&ns{kbJ+x2SPa`?;-t{4D@B}C`*D|LX-18p{@kGfU9<*YCLk`r08(Q-O*x@O_d&pEmOPpM%z5Ado1IGBAX) zRx|Fh66hW8Epa_KpHFvXsgX65%T&j>ht`peTDw#Vo$3oXM?KQV1dwyrC^MfF1@|EhBa9{hvBd7 z+gFK*h@3uqcA_10?`7(;tk_~hVo!~Req=5clXmvi{h$apKp^+P$Z@mpSy0e}XKX58 z(FTgajM_Mc7(9o<9hsS#TXJpKcI(?ig;H8l*3fv+nP=Any=(CM@*Ux|ZC;BTZ1U%v z7W)QqlOM<1>&KZ2-hTM72Dqq{Fbc!&fDQX^Tf1*PwSNEYE%-|?6PZK)|8P1n zCg#%g^z;aN(XMR80{z9gsq;+RQh?=B=H?ukcRpyv@Z>G!^@Cj;Kj$GKav`GozI}TS zTi1un$7%Ci=6P{^ML#Mk>ImejgIaj7la8)Uw@@WXQx~9*in8j>UV8dgRLOF}#gtW4 znl0SSC%nD9E>l!hRd?sv|2P0&6uD#lwQJX6`0RxPh(UwH!)YTUBeo96!8($oQCgkP@!Y-16;T|V8IujGtj4ML}s`!M2 zzm9BeU^KxgB_}bc&e!k!_ zRgQMpi*a)C@!>L@*9<5u6cvJ#D{M9&>_|#3E zYvYEcI|^Nbzz~kDTjy!(a&K%}%4yi8A#-!5Qeazf7Wd&$-tmGhQ!4e`>wJOl(opkL z0Owwplt`SMaQyyxMOtdA9!9cTxEc1_M0>|*y6Nlb`9FK6ls6Y|u2mOhz9l!L?%RAn zih`=1-hueU#4AusFH>5;@Ki5fW|F>e!Qgm+7cuuxQRX3ab+Cs3MH%SozJ=cZuBfZ3 ziV^ozQCXRIHaVWJEUBEgD674{s)YOYP!JUp_PyfG8+Y>Zo4wb-DGV-MdV@oyjH>(E z!lvaiXiV!%buvtLEYs2In_((Pbs}#(1RgzoN(&(psUobb_sLA6y)-q}mo$~rpL!NI})*qri@A3x8`_KPil!o;Lx zx6`l1^%N%v+Vdm3jeKo&T)IcRr!>^W#aB&CO_?|Eo6f|6+3%qb3+wjuw1m8>4-tKl z8R}-^GXAJ;=e^U2#@G?;^LT9VF52NP)kkopnfT}A2(;(fB}>ekT8a2?Id!*WN&4;I zzq22ISzicxTZG2{xV5Dveb1KBWSrn>fpe|hd2v4&@7>$52{y{s zuExK4^fz;?+{=H}{fvafaWHvTg`kiSdUCF!tgx-Gnp$xggvVq;)NM(4)f;Wc!Gq66 zF>9+RF22RX#}_Xn>+m@!FJ>MdkaTG`h`bAHgv`s6K3xumvi)pS`uP!EN}JZV!GQxS zRi-mbbHc-K;A9)rKQ2@u9@cv3WeMA;UYfUQ6{v*t7J)0QbthH{*7gVY@8dE*xl^r$ z8&tQcsmTl=`DX7AX!u-KR#wVdT1Qp)iPScp;g%6y4s4R`wHBJAGP&p(5fPzgZ*QN+ z4Uqc53kKCkIdY>M`d;|riWhMF%3Wy(DWRoIL#>N9YwlCE>0f!-GCfPH*9BKkGl3&2 z`Z6*y^v~7&z-+2<^5&rG9K7-sEiL|p&%GA5mf5wq+u~&lh9K$xBjGl!UGXMKyC5!g z5sZk6vI%r5=1Av;wOezkM`AekKas=+I^-3ewwsSEm=Zl6rNxjN&z&J)X{;b>-sQA^ zC^^cQh8ND&3QVGEmKgQD3ckPFRDrXj-7i#lYC}Zz+UN4{oglVTD($(EGVOm`3%&X@ zQw^3HYqpt+3Tf0^?x&RLtqg zG+y7xM{9)h`P6+QBNao#!)v6L2cts`Ci<&)F^!J>n=bt~Pm2EfysD(7c+V=@J$uqx z(+nr(8=9NB_Uzfii?4|w#TSwJs|d{VF~pLvKe;oCGxrt5^t*eC`QGVw*oe7a>TNOm z;>P{1zWv)vB)@5;JN&ixIZITvwCJr+w6V=zDOI;l-WFWj7TKxN%{OnlsB8-#JW3>! zs#|zU%9DV=z)Vw}J5B#2Oy{L7=Az3Y8`jQZh~WR?#XeN;kg{c4!y{)Ut@k)_sP5 z8Rp2iN+)~;1LViOL=k{Q@x9${tm7V}@bBg3cFe4-8!5*y`L=Zva+%{MDt$z%9W&rq zFZ35X$_bqClvu8Qwip}zLZQ_{Pwyt=x>M|aJ>Z1u&tjvE?IyKt@cvvBcbr^^HM6s^ zxq}&C)8N!PoE5(7<@Fvzk2U2z=wbf6=5*-8tINeD1D%)9A<6`Q=SzQOkSB0JrZnTB zL+dLmD`Dm9&)U$q)Rk+q3E;aJBQ>RIx3Qdl3I!EkrL`+W|JB1TBg?#>-+X2DCI@Ow zChSpfbuV9T=n=mC9W(YX&^vCvV%V``jiI4o{$!o>&E9a++=0^U+}xEEj645nQz9b$ zS&bnRM=Ab+fqLNWtnE;Msp0U6jEaJlD^g?7_RIk9>xjbJXuhBrj+*-}SQdJ>O@`;a ztaOOa+92=7BV+X%4$ikg@z-FBJvkv@GxQf+93Nbrv>Q*`&54)~CkF-Xp)}65cjiV) zwb!VODjE_&uQImc(&^&V3G8mT;?7!k$9V$Jrj1(#ID4$+R~mbNxMG@4)FwflEISV6(} zc5q?xa2rUC_Il1<93!Jp6qS{~Lc3B;H+s^R&LcomAR-ZG3K)M@U!M_%=haeToSa*+ z1EX!ZOYTFu&5J&M+KwA+ZEg7-Cl7&1ra;C#|3a7+8r$G^H;S(J4PN7!#ven;QyQ%} zOH*VC5;y!qNDK!yq6~)EHL19;cQ+?2|EV$Fuq`ZLAE>hL~ z?%m5`;bn~I!wL)c!49>C@)^b@2sUD`A?mW1mp}W|(C`-`SZl1gz4QXpw%7#=GcziR z+@Zfj*zBHEs^vEa$_i}97sjW$8EI&@uEl_)8bv=vX=_z(9)M@CvZ z?8T|66(&YOQBAm|_nUTQ*L|)s`K~>`4=J}JJrcq|+xAz}D{Mf#!;Y-~Yb}DNYHyPoH z3a+bmcBRluEV+4kzhWHs78VWeT#BKd-pVJEw>>=8e!QG|VP^Zw5s_M@Rv@bt!c>w2 zvc~b{<#l!2sHv%A5);j5W-!6p*B=g}&*9zh&s`dX*tU5{NY_|hj7LT~NRVVq4+32X z-!jhId@JEkk!8^Z+7?8?|ivvZedY^cE1Hq5L>aaB%h9u9~mObAsM3~gHlfM z#$DB-^GASC6@P+zn&&+jUX)T+-ig>>lUM90C$|NLfi=|Z^*o4C_=#4Fix;!AbQD3k zt7&dNi|!s8%#f!c#?x5)?TE$Cr0ZLv&<+Cw1KUP5l$2iaK73TxwafgHq07C@?Y{Fb zb((`*jAZH>`tlo<)ZJ}=a|J|gJj^Yb8aCm4U_$!%_ML3k#oS8{>l69r@0uGUXd4;Y zW5;k>Le6P#L&({-x(~y3HbLF(qgEO&vz;zskX_cIyg;j3Bh}s5xC7$F&B(-~CY#%v zb(6f8Q8sMVAA#TC5LFK#jEAS^x+2msZzd)l#ZdG%XqIN4Ej9FGchnB@wOpFnS69Gk z&42YX1u-L>r%zF$d0=Z^vSP2ZvF6ojUWE zif!-AZhQOYD2P}70Rb5rg@s~~olPKX6bdm-w`yx^KLV)G{uGgn1Bjnd7)o&?Ys&R8 ze3LwP?j7cqYs$r&xf4SJYtm`5GBXdbv(o@Z*^g#4fByXWjm~TE|IsCtyVHDvf^?89 z$o#df`RBV$929$dK82+7ZF}RZ+NP@}(+e7zEb&Eh1W!2cL$!HJjMZfk92qDe5HtPx zEMHu5NKj2#$;->zl5Tu4G}LhJKKmRe>e{bio#p#zjm|Lcnv{c;-@#NyuQm0`_lb#B ze=p3Ypq9hr>fAfyBTp=GQ2O&(Q1@T2+qhWQ5v1OjxpQgWr}1AF{#X z^SE!1HBZ?xz#tw71+lO_#Xwz&Fks-qE*p-ow<;QQadV7~%6jBsm9#`>M6I zS#$T^f%MUy4V`OI+x0L)z{LJN1m-Wp!{y87pL`DTJN#sFUz$-XL|WsZ{@f8U01lI5 z|Dul5r7+gLBj&o=Lfrlch?*fzyg*P<`0O(kEXky&tE+p2hvyj&H}`9JPp9F*KTa`2 zG%vV9|E?%4^@Mdft=o0}p^}nP3XYRZ!}rDs&NvO08WSl5L7sWrJylm%(Ffk%h8`Xs zM;IAzah9||-`h>;8yl;_WbGZS5~=`E<)1$33fYZaE-5KFf-fGxM_LOlowLlHfSDo)%=%v=4Jeiaqv@gMrtG~UWoGb%G(M#Fa|E@B}qEiC}m z4L79^TC5MvgwvN%cJuI=gu4b7O-rev!4wT6h=s_btlp@QS2I2`rw})+PT4=0GAG{tuY{emk z)s_9QOk6^rHv97K4pchzntbb%VANI6)cjHM$d_5FqC=UQnO%mnb_9C2F0#-J)AoeS z%;()jSykTjArnptVtH*WI7h6es`?sk(G*N4Qrg`1P zL~|qZm#r-?U>hx2H>Anv&(VaDQ&~5L=C&d4%}{?U>g&_AbY5o7MRqzc4p!Teyid#mabX(+6 zYoW%F@ldGidJsZKr#C}a#m$eBuTGcu&zDG1G`)Iy!bjQS}d@S71$%7IA|O4G;2f zhf@hA69rRl>5mcPqQK*S_v8Z7F^;Qfm05vmM1vDlI)I zq^w)teCFj3qoUm#9X-TxY-!BK)7KZrBn&O+{Bd+47;yXro7?usrj@4uy#CK~M$q;h zICSWu_z(m>FsBhqa@rbyc8oX3OCDX8IePP$HRD>|{d}ez_Z!(DHy1@}?YG5Oy>x+m zmWFzK>OFW5g^nJF#}l`#ux}-AHtNujg#F&P)%f4eB;f7g%l^I)y8?$2$jVZ$PgzCE?Smy@#{HATb|MBqI}O?vT~)Nv@)o$ku|*)U|1dm+TM?+7&U-Me&o>~MfW z&d})O!4v0eHWe4>zF^on86-o8!P9?H@TdHK`QlK0Y9WcbFMQT~?8J$HFy+yEaZ0!V zb)Ee=W5eeGqyqcIs|`CUH>^Ax`}1UN_0h+3e;1v+MwZ?OY7HZ)3;rO$X?`LU$9n;J zH-7Q=_gAvNR@U6TYuD3P1EEb*HpwzkuKdJdTG@s0(r*c+7Sm^xmOXf&l~28zC6NSw z9shfiugkX&3&b}=6#RSaoln#V_x}0kfI!&^2?;YAK4^gt49p-QETS}DTut2n2Sw38 zm;JQmP5py!*%vyVuX6xVl8m!0!*%6?8NGLH*<&Wm+*E^qMwZb>odc-t4MZOu&@W3rfk6T>-pC7z)6zzG(s}a=StEhO4Up&5g{^L>n=DXFebG7>?t^GDlaw~+|2;XM!d?!~z+k1sFQLlQDQ zB0Bvcuuw+3agwD+Vt>8+wcPjYb9$Kk{YQ_gbYzfq^z_0*Fo%kd#y&Nc60}x@ptWW^ ze&}c>pzZ0n0{pr%+ed(a;;IMWWVrOG^^(M5HMrfawQzjqPAFYfB9%RqAHUcEZfNI=~&+9{8oCWm>C5C+DV zP$A5}xLj5U!KWS?A=_oZ)bVz9s{9Hss;h&*kd9rtBv67}W~?G;&1^FDP0Yvj-DRG{ z$kCYk8(q9`Al|uu|I-y)R3(z&GjRjzjR|!g(A!K)%SS6Vbm_YXg?bTF*GnvDEgxiv>`|{-m{t(IQs;4va^nHV>l*H4gPb)cg zjUO&POj=c<9jd6?ni(Zo3aX!12S>DaIwe(OgS>4bENJ(kwxJqFyjnAovspo^wZxk@ zZ$@tVHW)lZ2OR=9=eNn%{oADk`TI{Dkc(mq3HCTuP0h12S{qAb-M=pju}2er3wd2V zhy5#GEL%LGc1->)Et(~GI~_f}cNfRYOEe<)wp_e8f_VC6vd@VY1j)G|zR6zoOT*fT zlqnTtB~b7`6?S1+ zX?j@hGwV!Oy#wcRr3cfBCSAT97#1cwc*qdlWw+($FI<=dph4TEnYoDnP1VpcipL32 zZRX(6UpS?&F1suXgR|LtkCfW)ZTzwb3AZ4Ek|18=n=6-u;2}DSTQu71&4Cr7p8J-X>IgCa+bQl4goQog7%$jIF-iuEKeJ?_ z$<(Pb;!jPGS1xXDImCt}N)ZhA-laPRd>NEHUj|RNF~~R@%bqt&j%Hx-`sQAoDouda zT|0M5VCZGjBXUd(c(ouB#TiHLQuqCP^;+{si>+SL0XF`6-V%;&gka?l8LZ7?x~fL| z>NQ85OS3QONfiv=W+MD0UkGFfUIvA6ps0!VGxItyu&LnQKac7ikBRE?juo zW>}z%Qft6PpI$v~9PfQKdrfugaRN&Mb?hVCT>Rw8OYy-0on?3=@YGc)CAR)SL1w9s z)dOS(gXTOe}$^k*&E@ZVT=gyxOJ^|5^r{!bL zFmWsi&+G@H0nVMoxN@kwmK!*?aZrir4 zT|vym`DrdoGDn36NDUb|cS zT^e|KKBX#oG$<)4X{^m$i(b^#-sAS^1|nyEA%wMe^85Q2j9+s~K$@K6xejHt2`gvy zsToFiewyh!j=_Tn@S1zkqkD+y1s${iHa%pid7fTeA@^)UwXz5*kS({sV%%-c`K zIVd8X?p_f8Pp_=gfbsDM!pOl4{FK8>=TetX&y21%z6?Q5+MZkKvGC-Ut?!O|_KB*R zOITpiObT_58Wlht(^z(3Glp6ZnLtnG+O2+eRf*E`L+bNb^G|3TZjkL%fsS6}v^)P^ zNt}sb)q#rt#txI88T|g9#=X|4M7Q%IaHP}__e|6kvbprWZ+xtL2DW#1DNB34Y1LMb zwVj&h&YNe?EC<822EB{R6%n;dc`7mWb}?>MGy8+kppsH-uI1 z_N||)t*Mzq)#-w1O+Y|^9d~^Gg=NweaeL&4sH>}2(s<<3N(Q4&`%s$F5l|pq+v=2} zeQ;RVP2h&k-MVcomVTd%6N| zErGy+oas#Bs`2SO^4uBDe{Vx~sTRcBI}aZ00Q5fgwhL4hLAk`Ev$UGOwXJO*GPgWG z3T?aKfG|s7US052?lxCF;koOn!d2mQ(1DB*3hi`P872K!ZlgF7L2&i*@IB)32y=Ct z9wE1)YLKN7^#%#1UA$5dl_HM z!^8pP>csdZnvLf`?;W~09L@!-^Z268ntzKcOP&8ZD5+`M`(lqDZv{Iw>&%>ZGkV3d zXU`t{7=MVLj>e_bh`QOZsn_?U)YKq?Qm631jV3b9kpBH3Ed><>6}-gRIUI$}5{Lm@ zCt@e-1<2TS*w(toP}>_w{spY0udi63Nb1YiJ$ymP4P;O?A!L$yDz%q40jZG`Ka9*cSS!gpiYaP5Wlk z>C}Poz#obF3vaw(Kx2QN$9YbtIN;D|+v4K-GZqre^Z1gn(dT3NsB^a0diLEV#Xp-U zOx8n8+h!@|Ql8gS67;2hrE|;5wu?Cw*MF8gHKW=6pw|jE^^*y5hpS}=t9ON z+M33wk$Y6u%tOF&h+3dixSvZvpQcE2^^qJi3_d~`#9>J21ps>vNU(h8&Rgidq;?Ng zJMo>6aCn?=9}ML3=&CHOtwRATmogI!HNGJ;L;mC$tm@#d+cWbqfw$Iu@O(ciba6s{ z`!+Z9$%~ND1Y8$9av+l+( zjt8Gkky2X&e6Omew#8R{zR(PQ&-6ViH*yg=Kye6OeJ_6VX1OQ=7(E>eHkd?h zb#8HHAHGWvKZs0WzOT<1FF%o&Kpuynq9X$apuX+`+?}p{a1wW3JUq0&YDPxNsGR2~ zFKvgLjYa%6`K>|meoZtGH%V~vDk>4ohKMTKONfU&bTZ}-&I7dt2lcJIZ}9vEF;TMU zUC4=bKx_g?7a#X3IE@$Z_NFfty9G*OD&JM+UqE%krGZ^{bn-V$-+1ZwPrNtVE?QJJ zT}8RwI?K8(XRr5ex(hrj;wZHWZbGfVLq!2D8U~S|a6#X?Z;O1)0cPk#F~tOrJ{@*J zY3UB0{uq!7W^@LL-6rq*eme*NhhnWQ@Vv3Lb#J&k6rlm&s(l9!UY&K`d%XD!5Q`UF z5^EmfK(Vf&q0png?L2M=5@EHmWBZ^WPXnspQBIvUO_%W=kp-|DlaiLs zhUi%7HdO7^F4*=TesbE4u~)D5=A)y}Ff})q64X1eK<=$uW+gX^50Gq8dR8I)5gfDS zf(6nPd}G)UAtfhwi?)IZnSlozr%JuRA*_;qp{a^1q%&ef-i_^DI``=lF77&U-~Z(E ze<0a80)1eFx^ZO#sYS(ypP%Zi3{c{3Gsa|&{_x>1z%HJqu2mtoNc>x7icL;CDVuTcJx<$Wvyc?;f{p|Ln>3)m5n@2@V92rblkwS^bgYMsHg(VZ z{jJx7BSzqL9gtd8GGH^o(QzOHsDY3a8;?rYv>^%5^`yDI?f|$cPA)#T5`y0uzN-71 z2hkyjEEV`;y7t*h%(+D4Qwa+XWwaHHTr{F2mnwW4{Gy|y6GF_*6M-g7I8rpX{>*?@ zQhz~OXQRnWVjcih#DbEEMT00WVa}pPKR<LiiIt6G`FFQ zQ?b6?PO)W3->+XkPN?dbF};xv(Ts0aFMV?9lD^=52*Z>3 zY6cyX*qkwVev(~Q!gveG>*ywL+_+K6F%zT+`Bw*5gw;=zS|Qa{o?{?$CNa?rMJ$DT zAdzOmj2Uv2Is1(^jS!lj)6Q)tNNEfk)x>WC406W7sU(njQyK11WMYgUuex39f~ zj)6f?X6Cr(f#OII8|izWxZY{6%`qb8T7vndgF&94v@ZO%pieB-tN9T4TY$8N^Nih4PL5i{v>XT;4 zL0py--AeBGsYl+CNA@P}4*B=?{rlUXk2sIwz=`wt=zMVGo;?9H7;>3S4IOE!>KG|m z!jPJdzCIPGd3y>_NEU76RXrs9gffXvZ5v9J#5a#s1Xgrg)%3puv-4T8XG(au)rZQ< zm~J0Cb7pdX+1ayahs~?D^m$}6xP3zN$Ui5A%L*c;Hey6~QH(n~Yooh>CJf=OiuW^e zq$1I4gSwTL>WK`_(YTeP`t@r=Trr1)&DkbKOED_4}( ze|k2zrp?Jyr#^2{A!sQYZPaH7=m%3v68NaJp+-l6bW3DuW((W#>oM6o$<(xM%iG%R zyIvJM=GJi{Md`)YnXO(un5tJ`Ok>c}igs1ZV!mJcZfaT8x|+iNI(a&7ugs%#lYqEt z(oY9m>eoF4%p)se3jp@9xVUzV@l-wRN2rOop~&xOIJT*7LhsR@GDK{F>|u)6VxGG8 z_jZ%xHTkyI!z1GOhow4yoDCm&1c(I+^iTbp`2`brUDH zYY`%NWRWPrZ2QZC^*{aRpX_JP`tYM%TwE%BFVlSxbpi7lYY8=%-sSXjJSNlp`qisS zIs^0R(A+k%o0m%gA^fU|4Tbbh^C$vpeL?e-ZW0fM>;LV#i zi$aVHM9Y^;>RRI95cfW2w@(5m2O3p8FVR=qqz9n zD~I9OZ1yv7DQ{FDpmmJQ9jAyV`3e9{7rMkS=v@|Ie?6+qDiG9(L>LA*cK|`zqf6Mj zI96p~iN7@T!SVkJqdvpS^Oe`kdvDns{p-rPb25N3nk^5{m*RHNfl4kVe%-*e>peYB z-l;n=rOk%AM5-Fh7&Ie58YJZ2-=!=Cp_Xx2_br26`K z5K_bJ=g(VqrTyyN8TCyc<|OAl@MlUvLITjgIp#Y|myRfBKa|PgTG<6u3EX$7=WLmtkEw5FC!-VjwdC_ zgIw)2S8r;D!SLQ08aR|M$+J7HI82WicBZ&`3E5Ajq6Yf^6n0Ue`A_7ya z&vM+~pC3O5<6J1Nm(Vj=XZk2}4o)W~2AQjy(7^rM%P&;BcnG}Ol`k1P@)fQA&O6J% z$G0-Ek*_!(InVi+DH|txc%<+r3yTi$Zs@35qspUpJfPAB!+8Zz%$WCmzmGnD{=DdN z1Rz<-VH6NNB}Ov#FVx{<3tJ5{;a|%Yg$ejZIWp-^ojM78gRuDgRCUZ2Z!wzjQ}++x zLJzj=80FH01q+mbz%ngxjT}Vm%Zw3~cS|bxdsItma`F~bG?|7$6u;C6OV+NHL&h<3 z)Tnx2gdVXW^G)Ub*VH8f(bMv2M!v#Kzj5?%H2d~|O^Vot5sF^G-;G21pAFbiw4&?*${l_f_LW4<>yGXE?I&O>^y|Km?#Vh*bIRk1=#l?xk$hA{s zqiO!8HxM>hFg~)7J)xY359a4xQBgOKKF6_=K(GT&lBu@%b31Pu@u59z+zTflCSbeM z1Y_e?z9qiSCSD?9H8jkzlDu^BqCZk>ybmhhzLnx8(N*N$xg-5oGZYXXuNB=-svsHB zq`A66*KXa6`|g6bZo4#Dk(LBOR-kEL(swH!;lf3WT8%mE^??h?f%mzosx2S->%hll zzu&$bkQl#ci^Yb9^i!ua&|>EKdNQ^wzN&eh!^)Lss^*ylCy^K}=ghg${-2au`-)6o z6%P*&iPHA-2DP6LKR)Y`**F0^;85^6vKh76%z5+L^RnBvZ*Py1`A=Hjx>a6L(LDRH zzu@5@3tVXs#33N^5phlUkU%JS>ifZtpK05n;QqypM@^1r0oRsRT-v^<7+dFF;8;zK zJ$j5^v1ZNr_c4(^pf4SGvv6{iw{qat=2~UGao&2P!fyp)$vLSh_3n@KbEAl9KOfff|9{$NLqt8_Mm;b|n z3RQsSk=nOa*v@|f7RO<)vgi4OX+@StyxWbrYM(W@q@d^o<1!FtS(X-5lp47o-|C(Y$L&w({X=mId=X^a-rfVH+3YRx(t~ZM#$(8 ziAC5{QQW<2*Pkv=LItPUvEy%)l=L7F3N0@6jAKrLss`1}p+k35+vNASc4hKPZf8@q zkhV41j9A(5CN>_^Cz!vFan#;r-ssb*&gH8FqY8*B>ss}-wlwS!@WANp=#FYO z_MyjPVz&Cedh@0)g&oY7W>p8yBis*+qR0#HYTmxR-F}^Gd^5Qk1*iaf+}BAJ4gpei z*w)6m^_ca~2t-ZS`|b*Ex#xN`8&tHRRbcs*tpm30YCatk)0%Imxy2)2YY;|&69#wp zKXhaX1{@c14kAJ2R{uCA#|SrFT}|WM&TCRGT~akNQWjGxR6Ur)Zi8ftMHM9%BiErr z4){Q0FFipXz^kQe8`co0I&$e*4%1ne9;>Ax=HOH_KgVYA7xbO}KtGZ%kawyx5u zrgDIVYb)h^V`XX{utk}s^FvYo08AZ^y}KEBheq~I zra|M+pG%SOadWEMjC zfUK&gM!$+Dg@rk(smN)0^-YS}J?w6Uz29+jY1F5uJd399t6ygszAknle5}0prZb6W zCr5@-??hZ&y_Pw5s^MraVwCt4+;(rjU`h(q{BUrwRrBiJIyyR5uHEk@jxOag_(~e% zy6nYZ%tb~*P`aQxI=F8NRv1|=xjx4}!YB}^?xm1^GX)jCShgmZo`V>ZdC*{e)k(@N zvWw3++JERCdd4{pGRSt6NkVfBeqAA-afkq_#@8y&7mZ3H=~zXcMXcsNuN4`Q?m6$# zF43}r*nn>cUB-!7gQiZMsslDT^`O2q>j_Qi3uv~Q%_Vo-U8W~k1A$_qYf4z08BWU8^1as2)XwBeEC#Sf&Ra6t@#YJhVoqN}4*>2Fe+(BXvl z_ci?Dpx>W+q?xw>J%azuywZPt)qh%mxpUjm@V4)4!80;BHh=IWY8I8YG2Yc4v@a>G zCh(Xv%lLKO8#O2UGLhj*E7{z45n4@w&(b}M;UrEAB+Hwj``voXK<)PE>C@Y%>{qSo zNXmyas6T2XKK+4J5vF~2by{3o*>~UFACq&+Ph6tZ^!a)ehc2JdC1Z(q*~P_k9rXMg z9@1HERv&s|ck}U-l(`NUHm&IL;z}*;jgv+WYJ6l0sZ25gE zR{Dp+cGK6Rb?fTFA6VN3yU8ypTXXsH<-er))~Kj%U+1;o1p!)AR5X4-WWBK`H%W6# zpLaidaEUc*cn0-V1FcmR3=(+6fhfDwG&I^1EbKzF3ko{poi=ZS*MZwKyd<`YUI z1oKYX(!iE7zfaFQ0e7%0k?DX+|LtkT%hDdIwX0o!{`&PJi~Ij+Dx%Kvz?djpq zt8UUKiA49BHOcGjL-nOy20&4E-B=aWjNP`>@p^%LDlQ%J^$obz)QT3g?H zUe~rUGwNwsxUcKD*>x^0d5XE%DEv4U1eD04f_5Nzpz(saD9Gl z47X5lFCcuCq&R`LMU_CzH^fL6<)DzGfD3tND!q?;pB*6I zSL(l7-87mg?vu5%V?*V~6V`O=giS(5R7jhwT;m?v`(xMm1vNPJ=~`(Vtl6{az0uO- zG@G3gsTQVG^(~vIG4pR~g)+@1b-Cb?o_$%7+N^9))`^y?Sv8Cjq9FbVjCH-s)g47sHa zDbJ-qyFDSc3&pzkrtE3m_ug41jySlY@9{+&Ova?1Uz3%LknG>O&BsmNKxs?ILf7@{ zRl4>tm42a3X~%{ zy1HAKUPqPjmy(jei@+AegYmsJsqbJkEJBAm?EOCur}BZz8pZ@jEq7FL-xJcIvDihnJB(-gQw#qlc~7aj^wKJ0wcux1;Xi zt9;+Tdq-p3mLQv2Abz{QgOfdb_H4Wk2;NQQL-yCBpf!!P`C6VXU>wDgZ9Tf{yaF>R zP&Yg!6twlrR=^{nLlj)q$7k0%QV; zTQ@zpd$-M_=1C*z1_*qNdPU}kDGmRTFk}yh!za$#xw!nY!P1urFPLK&*bH5m=;%a9 z0Wbl9Tc1{F4MZgD#y?bK^q_uxie}puTlnY*>BnE~{yzlzPP2~dgFLh!#m256HR~w_ zcWg+ai>HqTlrA-5i0`p_ACq+IPWM=XGxes8r26S!(TDaIC?VG7X*P7R=g`?9=$&!$ zQgU)DKkZakh?3F0pIW7k3p&(vs+0XW8%vqg%!cQNWlsQj4<76pC9(5?OQdmeyMNrf z2a}ZB@bsc>kEyoVN121-L(DWX2WNfVTZxH~%-Ie=#CTSzJ*_Y$^|PV$tlNr~%U$Z# z6}IQwc#V#qQa;g*_7)NJ=QVyOBhO!v-nhm?f6$>rW6HZ5=!QM^yx?jU8H!WF3#@Rmd7xUwoY}MeLHm4KYZ_#?z&wfK2yRR@@=oQ4 z520`s@ohIFY5m-i+fK^;NsFb~;>9ZH7HFxOOuHp4ZadyV!Lm&HruDdvjhQ}@W=#A> zzgofeje?5pSKK@%J}$u|yJ)7f+?8*Uu~(N$_PCurv(uXwKTnqjy!d!suKb7p=!fL} z@hFkX%X^FPlbrm*7aI*UT1>!h$Y^=d+R%N2MkRQQ5Qstkp%>g@aV)q&Q|;NaXGtk3 z+qkN5^k6g8nzu3+(>4Nw`oaHjKq>+CSjhv~>HgGAW7)AvtA$ltrP6#B3P5SZN9$~( zH0h)KSO^~{|4yZP5JzNzzq6~2*AF$UU#J}{Z@H%B%BLIo)g2u2tJ`>_cQ9XBcKvK@ z!l(R{D_ObHrRA=brOvNE735d9VzK7eh~kPQ6J<*K{rmUV85>%=bTZho_t$|#re!1c z2OV-R+n08E{;2VIQFbQ0kzj7n{mp4@it^~KcEgD&<@w2gCkl63R(!gi8>{)aB_cBj zooyQh^P%#EZzl&>E_00?C>^iewyWvtRokLsy4qMSnRj#R(k*jMCl*NYK*2+Mt7_Yl|wLD}L`RJK;*+ zL)W}VYbuiOoHRVcEYH9$AHyOyhqXG8-tiRi2;S?c)uMA+1_t|(ux$~#e-gPR7!5@U z2*}jKBXs_nU}3=-8Jn(2gt#)2a{Z$nTH2o2R=g6$ zN}>ATarOz){T{Y}R1K&^Ad(dy1))I3wlLN(eXj8J>@bja(70o76k z)}dN6S9w@1(Ia0|YuX_RapYk&LZ$dv_Yi=ESa_jVfcbwXb;$EwXVz!b>vo?(*?1Q*7d z$+6JV1gx5B`|#-X;iR)xnJpQt;Zz|AaKo4z&87TYy!g3RV9GYfhde}K?8Tc?A38Jw zDNaQ7QQtm*tPTn%T*uk0Z~eL0(02Uqho?Lu)`tChuhmX7G+~7621)%lebge6pTye+s1k?B$?5 z?P(r~sX-5w4Wq;Hg1CS(9;38u#5T!TKY{0n8wqa1!7J9jnCo;$!hD^MXVi#r-{Bv; z9j;z2O^&T^{A3aN_`Q?Yy#*yv-MgLMWc|cNt<5#t85C%&x96bt0(yP@Db-o$@yO=6 zslAe5nXldXYGNIMf|pJt&E-XF#NqZ_&aghSXU;VC^t`Na8W*bpLx(2LRK5D~rHbss zX~Vtc&TV>d>fC(riGUu9Hfo#j^Ki43q_yI=6v#mXmiQNo zpO1U(og{B^NlM!Pk61GJa$-`_PO8TK<-3j?na&R@+%ZZ^D+Ktc~Q%B&A)>lVIo}&r4$XaqV z5c0sN#TsSOuICvF7WA%APjj}$G}Yyb0b<(rGd2r@gcFZ&L}IRaKLSfFt8-cOD76)Y9yBd`n}7d`x0!Va(_Arvz5#Jm4KaAenEJNVtgBMm>Am`&mn!8!s@i?< zpat*+fiyp^{xU8&PZk}>WB!lbIihUA#j@~zu2&5rHEJLky$%HrZdV?aH?clMMcS$N z$Ybu!;O)l&?}4`|$L|A4iHef8G_p%s$>bbW6Zh2~ZB*%Ei3>BN{TPRtHlUMKLE9?D zaNWUfKfkQRS!2|uZ|5$QiY|?gnIqkXIX2WzsPol_3<-l+to)uFE!a8G zO`eA7B7txp9KK3u{t&LbMk*x~vT>+Loc29giAo=7RClq4fP$8z@dmY7rc?Vz;R86h zB-O~BJI5oZBD=mJ1OUF=CNKOPmG*od34x?nnjN`$K`!kmyZUu(Uf^`3zl9O#$%yM;5keE4xnLDxWM|=Xr%X2e&7ffzqFNQ$N zAW6kk2h4tv_8A+qcNe z^C?sMF|i38M^AU>_HCHeNcsT&Nl%Z@z`A*;c)^?yLf4$nMa z+OHfl*)Oahs8!hJn92mk`*x=90w?j664aA%XgV09=eY_TjUfl*sdhSw^ugH>-T&s1 z`udq8euVa0SjO)v=KO^|I5{QdHHx{lQFms(%;zA8E6H|_*62d6Vh1L!W%OmOK&$xv zEC-SfLPjMN^8Dfwpxqj(s>f`R>W# z-2hrZAylJ%NSWfa9=_O%$RuV@U=Qyd93H~ZiQS47C4I-u_}|hcZ7k2i;&!fLBXpN4 zllQcc5Q>j#+$G#=3bzrqAf-hk#cdGc!j~_%Uc5MrKR}00Hjq;@)KzNgViMdkNKBROzSOn}yZ?)X>$&3X+{;>`(WS_~-iO(ez&!vgolW6rgG<#?Qst zGlM%#i!XL-ZrXs7aSC(_C0YL7UAtQOQMpf_K3&{I_;OwV3*Y-we{$y~7=*PN+8asZ z1Wv!Oo+>Dqd4JzP!~MW<7u{Z4h`AeR@dGIIB8s+1krChi`*(1;eT+AVisS3oo1hG}g%h=gDawce zl`0W$(b|%FQl==(v&1A6waIN}3bMrirzEWT=b{E+3xhF7c(t-ZzHoQ7hl0e)j6U9V z#tcP2pk|=epTn&*7G7)|LOmuy#k8XI?TTZJ_Mywp-O){pmotVrXAGn_I4FM-YggE&c#|sX0FGgV%})BMQwWqOaati4dGe%@*du9hUjz9eKu?NMS*fJvh!bJXt%3|dd! z`24vFk&jm@L^e<>wG9(HZopn`{uQ_WA{4RmXaMwtynwWh9k~|XCwsyDT}noPNXQLT;zx?Etx9A zKaLCgHH-HqJtf6n%=be{3j3Wg7+gE;>*qY4W`X{2uAvCWlwEg7A$thh zweuS%ayw{UADlCU=c0(DrsM^rWJ~x23@wVHIc3VbB+*NtCKscKKxHD@V@~xp@K(wH z)-Ue*8?POqV$pmNe$qq*MWFD}Lr=9eD5yOH3CMh&bld~U(QW^;hr z3GkyBcxJS;_gL@!0DEw`_1Gam!C6#Ca1SlAE{E-+&0Mn>bsnQ}YPd&G5gr6@?Jpr3 zuNo;;)Am;E&v5U&GR+3r4(jR3@83T|M=zm>n0`t~@vF|vM8SgP)>}4(Dk$pO8X6j& z{n23B@v&11!#&B|EM|BPFqA6>qr^(341L#V-klKE3&$$VX_unJ6bgnvDP~oww(V7O zZWrR8!(%ruymBNes$J8ws5=08f0OB+-zzhHe!pc6Onz}lJn2V9P#O$wS0fA)mB&4( z@P9Ja59LZNN9!zTMc8|EZsHcByCU11wt1tnTf+Pn6J0l{&3~{(N?6MmX`5YI2bPUI z6cRHRIkr@X4zn^&Og~NlLVq93+OIHbY%yWRNC(8-T@Rz9hvmAP1b0^>Y!M`bzrni( zQmzmn4_Yf@jiMYqy*=2}sK2RA=#bBCbu1@J=(6MFM>ou!MTjiTr13x_`~Yznd)!B& z9DNP>NP+hf*&;fzsLER?23=iTEHjqXw-?u|3_0ZuCQou<<^N%_lEYyk@#@H?kGrC> zw#iE{az3I%un3QYYY@Z4!FyVhasnsC8lQSRsA7@`il~k*^t^ub=uw64!2Y-R*yr~R zaQ1WU`L_~Dj=Ah#MqOO=gVLMF=`lG%5r|hj`U&^DnDLqoAyw~A* zMETuDmLgsX?@wsGKr<`9JNM1A3)XchVI3()<<-T5`BW=cYEB+H5V9hC9(XV z0xWRU7cD<=0a5sXR-@H!3`d&rZ=s9mChC2jb_TtRW6HwU^*zG^(@)KTS{7pw_wR?{ zqu5zqJ_|{VA^-rqqtjJ&*KR~;?}j@XS6Qxs`k;Z*ZWuC2&Rntfv`eDJ6=R3OBZ7mq zfu{5dK5#_GT&=-_=Y&VS*S7PZ4s&3}h=G|DB;Ci` z>~?ejCgv3+0}lzi9Ad~0+r$-U4}pgmhR&mYS(LKweB1Gc*NH78Fx_FpSn4#%#PQ`p zVF4_Jc|=UHH;>Uk^4Dx(430E;@S@8w0Wt!FLz!B`BFm#ceg3ygaDoG|oF1S!ufM)C z!YYdua`2qEGVO6O%gr*QSDE9}p8{qKm4oQS|HPlJY5@{HkB4aXr772==Cx8G?&%JYhY?B|7 zKs7^lCeeYi979V4N6N^Zn6`^AjwyNHYxB`bvDr6nw1u}uf=&w0!iz^lQcf2f59gn- zz7#yqeL&~?cqs1R&Z2g11;LT^@L}RyjVm2I7+MlaL^=Ru5libTv)w;Ev#Gsc7>BF| zGB@h{#}XOF<9`-2u#16~F&d&8RFc=;Q?6@f#(b-Ob>~ZJz>WX30FgMbUOF>f z-o%FAkYXuv-#($$A|nAuKVrW0GM@j_C$6TY6j^mB-+!*m2IB3vue5`nV zgo=V1clyrex9;b3$1h#J+-j&gYUr4$S^9zD)22?{GuhJD{ZRd;uwM_yrJs*w*_Xzs zQ3r%E0dbYO61i)`*uw1qKAlxmWyDv;(@8s($~Qw&Z1dL7ht2mi z`gBS`0>?Kc#+QRBkioV^3Tq?UebO2|YXl>kr)|R1TH6nVLf8eX$=6UvU3D6$PAdrT zoU$~EXa8dI-yryMBXG$GrEh4P`VSd0ZGqCGXV02<7|X$?^O)y~+eDUAo=sdvG6aVz zFaah9dT3ii;BTYOphFZ<;~3k+k^Io~Fkvr8M zd%xi-6U~6}^9C3IL|=vX*7ZBMQ1{uBCzlH> zu3~BtHo%Hb{#t?hOnZYp>9FXDPmjl*Ia=Ix-MY^k)c{FXvm@3(O!0u=uy;s^nJngI zjvFRjt|+;7jqKtni%vfI^mdYxjHGaY7UTV3_vqnYVeYH5<)1JW>o!Zg{oJOyEYv9EpC&R>fGS_%9ug7`5Uh zfU+Zb)heTaKIA=PhPk;aMIh7BFnU5Q#vb*)yac9HQ?_Ty6{L%zmYlVnRYC1K-|SZW zZ*Rd$FtG$y{8Ktq->unpl}x8EW!=1b|NcVa&w#qNaUZn+M`e0-ae&fx)76mKFc4Pb z)G)03dL#W4i6rZjhR~Z+spesPVfz&Oi;jf!sKwg_A7XmTUPlq(G2=J$q&Mix_z;t| zB2pPDLy`$6P2{J67QG1bA;1d-E9bTEHg5ox*}~}vSOo~eGIhtU5T}U z&D&=cf4)cPm7Z1WQ1;H8Gl!yin_fZ2#}l7V+CEk>Iwc>oPEY%ppu0ZY?P+T(7dC13 z+W66u1soo&={pQOL(&!OSDfaA>-Q|d8B2&n`ArB~3|K}M_J3`mHqbtGV8@Ojla7z! zuLIr}IqJ{*aLN9|#^R)e^pp`z>4fR8?}ix|WS-RRwQAM-_~r-A16`iZQ7yc!D4D+d zWR4pXsk42?q3z(;uHEtc`IBy4yE0>z3qmZa9a;<`H1R9XuT>kC@thOmSs$ zUD_{rBT$)8`I3S-d*=JJ3(V130je4BvmKZPDR;f4O#PRzE8EVFgeBlF1_6h0bOb5S zfP9hmG!~!e{RQe{*2VW~bX5GtFpkyq0E9+W;54)Zd+sZKqg(wwTdSC&no>MIo@9Lb zbTCu1kf8<)##H>!-%{JrL1|^nRjr})oKqjQ{hK)%Nk5V5 z<9hSYRh;=zILJbAvUAlLf!J>0h<2#>(KdOLHRMeq^UkA37Y`k{^y&~!=8yEWwEbKm ztw60%NP>btg#RW4*{^c}6l zt2sPg)cIX0MAiHDjj@@ge{I(3ljm7lH76rrIWISt;CL61PD$TUo@H~^@zZ9lO3)r# zdov~As&i3FKxWUgXU<$%YSy`*fA)CdHGL%EAMF2;Q%e5B5w?ktZ#^!>qax+3qIiKp z5GiT%G;v<>i+c9dZ1(UHl;g!t@3+kjO(ks~FL}>O(DpXz?#A)OOLY_z8V^Gcm6nzc z_>?)z@}ot>+Cj1pZxzcvE|RTRRBAIa?^l^cWumjoi6ysBIIG@Nw51f$g6XnIyP>#I z_ZdJ(qI;6AX97mYp%rPNpX%>-yUxezPf`VLP6j$4e?)Ej5}Lxsuuu>(Nf|}qF-5=bFoM7*WhUUQqaUs_J?6t95yHQ8*t=L4^+`0eY_Gs7aRASyA{L^H!4 z4b#8j$g~8sqgOpzX!u4(n05Por)c%4GtBYR58bzCS6_Kb+m>y)?rM-N2 zfxe4Q%)0(pi(^X8Nvqzgchsxbg<)y4qdtX@cD&eW5X$1j686fSn3|(={Q-@%s5^L* z2_@Ige_STjxcMsur5U}&1lB?^50{0dIe(+KvNBv#4l+R2xp`i@5aW1=D&|Jmlo>Nt z(D)$TyNDwW9vBBky7q;TQ6DqL`dbC*+#>X7Rmh*xX5}T`+o0@SqDIWmN8)^vg*E(v z2JFnab0;obXgHhQu4o0yGe{(F&j_k#@*5@w3E2s@UWsffX@5 zeb)4z^6TPagAeA#b?*b!E~hUxka<<}b>nLv=&rUQqM}uumfOjuBuCNDVA!x+1Rvz> z-d$Ge_l!FfLaL_~BJK@LoJcy3f+Ncz7xTNOG9s#kjJ2=7eh z3lqPm=r%6+e(f4jhjAxyyifoz%yG7))d|WKnz(^w*jX?XbV={z+YcY6ilf%P(;V$K zty?eK;x~O63=`9SQHvk()iHrRlSPUXqe@ zn%QtP44^aRu7XK$xanVp(-^4Np#KC(#Gtr%={>{xQvBcudTiwP@IYDLR*6!#Rn zzn{KaQ(N0=z$B$qdI|@Y@EWbPdcK!L#CEcptZDXF2$x0j7 zVb7k!Z*TnmaT@z}57u{+c3mTm&ezFPrr3k1T1ebLTu#eLXQVXFXUv}ld?5U#B*Yp^ zQx|+{Btc!WO}pWB$W?TOA2GCD)m4-27iW6Noav<~&gGpu+u=@9+ zrfJWt)|V%pDI=Li*_q{*Rkj4p4-H8!QjTmI_HXyZwWJ_=UHEhXZ-1a#m+0w1JQ!+v zQjM16)X->i+B2#Mk&Gak53y|b1^T+HM|&mq=-O5E>eKNO7^==HG*MBb4iwXJ9MLYl zdrzfl=L(ek7^+^Hj<4HR@xGB;d2fbJFgxvtrwIgK7-dm1PCOf86UkUlspk5SSg;AO&L?=LCH{6{V@Bo1W@Kr# z=!$VS0P`w*F@clu)-=>OLX@Vvb``w(N^2kxph*k1KSQ@v#n+Az zH@rCRQElEW~O1m6WYWJfV;x#ih7-;nWKRBIq)}B z(vbvWqJU;y%;QekIoWz&KtNm3H|*F!-zErJvT7Qo6jRVM(+BqG){V_~=IkWAptRQD z**t6O^3(5=fJ>lnQz1xI%LFBd25o#ns&a^&O zi*H)BREG{rNv2oX_Y7*ka3=ErtW{Sa2HBJUh20j_<{VMOlG6AWP6e0<>Bhf6;5&XE z{yF;Z8eHKI;x=EvL4gC3TUM4~dn$q|WPzFh4Bxh8Dv%E51ul{KulcFSRZOlO3qny1 z)XR`r<;Rbesm)}hfVLmDrpT$XV|I`7B%|gW$`hss?&kh z1NbC?;vMpG#10n-5fMLGbo3+lfj<{2H*pS{Lz zl%e#zG)STN5K|-9r)K`1X4oxt0$$vrY=#3kjDjd$Tyx_5n7XVs80ST?V){;Ih8=XR z04&+j7YUYuspeEu(|~~AJdcMWI1wlp+JdAgd^z3gC;pn}E-XA089AFLUZ0KxrS~gQ z^egYrwu5YromrXdwE(Mt@dE!UNmQX3i9?$5hc4M{zCuUMbe;H~nc_v@!3D3(AW9U2 zalo5utpt*P{|zJWSL^e736HWjZ}L#A+>ebITe`YqYrHOY9zHzvFPF>)C@q^aw0^Ci zBs8c@vlyYn*uvrP!f=C|_y!#?Slb8c-3}`0D&G2k*oVFHU*Uj*#1c1}QUQ@syVj1M zB01i9Pkp%?S{0g5TA)aN4C*BSWg^G$4x!MCV5EwSnc=E=Y^u&$GiCzrvpUfNF98E{A`My(NA<+o+n7ZB2Ti zJn%}iKxTclnyZna_SHQ0@%ehsUjPw2uEzkBXt#Y_e&!jE#1yNoBj-Metgj$Bx<6?vd6h=H_QC2cq-n**UV?QGjY<-7Qt2Kc*)?xv3Z8P5n{e)wK+3bH>N!_}z8|NHebQ5u#gX>H zR&N741KyH^gmR7IgmhylGC^kr1rvhD5A_&gYB#a{k}*%{e?+bpF*VWTX9vU6}8Rez*Sd6CrpS{po5X4idxImB8h^ z|4Lw5c#Q~|g(wIC@6W(~tl-xdE=;1P<=_bEL{OiN=3~EuSA;GfsiHLGFE2=kGIIUL z-gpZN5g&uHBDa9>lWQnk3Nn3t5e1^*JmywILB*>oea)kjk7>tC5wsG-mXJtarlE>0 zc@Kqx=UI@@jQsvB&8|As2AuA}Y_!&1ETxukD8Sg%j0WN3%wx(+;bs+6#*L;OQzjUd#=1M1Y{87LbU=Ni3Wy1$4?ewJ9?sJ&<}X+ z1W@n}LxXxis>GOlBH@ zcsKend!#Gptgp;^vp2XGGQWHhy6~K&)U)SaDRk&;;x6^K`noZESb}wTwkNs&60UUI z-PS!5t(RYQ7A(+f5$haRQg7l@dcoE#iEAUyKF^u$akl&9ejHW}czc@y%dmsJ1YzJH z-i$lhFazq37EWlDVMv6oL8`!5_;JANU8Ft&$-TE{&}?C7N{5GJPm^|y($m>(@H2p0 z-dWtHVAsg1_ut-AIAV%?1V_9h@rK7XLul> zQ(9I0>rPLd#2H?e<=3jPW`b0~8S1c0D}bv63!J5l0yJSQ}P-(ytmQDJ@8k!ohpKuannV&N93@x zJ9f^!Ec{<7iHO|PVLkEzB4+{dxu9w0*u2&o`v4x?4I~xbKUy@HjsgM zd?wTW@qGawu6Ij-Qw z^#jpiBW&pF%@&vTla#CytnUP=_ypq@!YPlmgtoHT{kIAdlU7VaTO24->e0gtG6ar; z90@jNxz?nb{K9&Xc^Rw!Bv>7kG;E%po3XXnW}E(BMQ~JncN3|v5I&a-5Ut{9JwQXl z4ACk+M%0gg&v14$x&b(uL)fvfsOo-~8Dp}!gGm=J&d#_rBJtx^S-N0hZ^(%gED1-d9_A#@P~CRt?#d1IIIm~J5?s% zZQLNp6c7$^qOsCE(d)cpH>fgE(w(!(=niK>@p5-u%a0k-%Q~u+%KinHqvup~nUFU* znhcoLa`cfB9w3aP3b}0CwzpOPAHLoMoa=QB|NTixny9oyWoTTQTbig0siavNQKZ?> zB#lByk&xz+M1uxVBpOUbRx3)AG$<+!q&byzK99Bb|D5YO=Q{h^Ywf+)4nN=T`#!_{ z+|PXA+9n?p_Sm^TeqCtf0RdBjm%?f3NTeQB5pQkB!_2Dnt{A${VdkLrEWk6G&v8n`PkR7EQp zj*)Oi5H^y{PoA$+w|S3l@EsI)nOg=@4G z#7_n|j1s3_=y)qn5ImTePrSZ4@XS_$F-V~eFj5z%rgo}JyN6n0=Gdiw|0xexg0N;` zTbjtK68Y>RKr;6&ETZC0b%|CJ_8a5%%_Ed1R{y#(>9OOnF-TJwJT?M^_b*v`_dg9DkOfKsB|=VQF@tz5UZMyG z3&TSIRelDtIA$$^W5g7_X{ z9exnOOu?jR;N(ApYb<|FY&}Y70u*J!3Ffo!=(aeWa$a=L8GDIy+nI#PI$yC-4CSvX zppFk{+=@<^=cq$1um69t!e`@V<++d>7yDAx@0!(qxqKUW?@O^^S@SFuxj%OJp;sax zxSQgo4{wxZ7=JML|K~eJ)qn08wDL|CYKn^xpN&;XblnpChXJ&1Y6eLoh_E5TJHk_k z#KgYDQy9_Dnd8RLG%nh8j1(gHx0L8olc!z+E*270G}9%XNxz>33{$Q;_NL04QL#F0 zWmP`5mmor^(NToq%IN?Q5}}~R&jm*jvLX^%Eon7d+S*b6?K$%_8&L}tp%?N{r4lAf ze;{z4VR8XJ#W}GaCgl;{LY+y@5S%-y`Q(Mdfs<@cC4(9%%7Ff8=6&Q2C$9gs z2Cb`5_$jm-FK><1oy+~;ESOaC$GHNB80RnA#ZCd_ zya^Cdy?%Of>lj+hMb2ADN9pt-2H^5YD&!uKkuS98o1@6<8Y!R3LGeK!3eXyOhgcM{DfR z7dgNN9PjhZ&?1cC%ev0paM zG<*b0YV+4Tu@q_VUGrhhHwxXA2+#VGmOlYJrd%t~C2Nwf$d6BMeiAlX%a+3?Pre(q zX5DBH71)=Zh#Ms9{tuU{krr{pokw=Afg11hkwGAdodL7FS%hg{{3Txkv|V=*Blpsly2P=nk+z~6QCbodFBIWSAuAMj z>c1?xw-sb*Iwh89mVj5E1yXewY73skOY+|wwogDYiZ{_SSXfw)%btqe z6)OcS@ATWIuqvNZ@i`S!Q3}|N6hK^G^y&OK3dCONb4OWO9YkFOS|P44*YS)w&ozFr z_);T~6;2a8hg{|>=s-<@#muGJA|Dxlaoh#0Kv(I*myRVW{=b>%$Hs2WRMR(Z_-|G0 zW|qD4Ee}2hVF%XM$g;5~k3j?RM|LqOM+V}?n~_kV#ysYlvsn|yh$t3XzrssvH%I*X zW>dOrXS(MZHvivj^E>_14Ibak(o;|b$#4zkg@WmKD!&cW{BkUBVu^EK+DE~ApqGPX z`4lj=l=_qAC6FZ;SzQ{6d~N&H&oy3rnEIy4vilAz6M=o#IEAr%!o!6JDDKV3L2V}i zvhY~I|6$3XFD74a?2zX6m;Snjbap=dh$YA_UwLX}2|sENO6G(Gm(N~xN1z`AZ0VUN zpO^w0V)gsXhSTww+4p)}ry1jD?Js?53+4R8{UIHpD>EU4o2%!n)kBX-)BFRgH`1%` z5W!0f5s?-?v>XLs*)f(q8?kHJxI2sY)$RJz8(i#ML zp8A*3ZZ%!u1WM4|A@3Ohl*(a9U7KzESBN(vT=SY*ql)YHR| zY5av5D}ILZ%Kw9*Wcfh$HV9RUHD4?8XpnM;e0vl#_$#%|bKrL>u;WiE`O~Y`u9Ys4 zS>=wBTgm?B1P}`nDnkY*K=!|#&z?E6z0uAa8Y;rBmgzPw$Q@Dhzr5@xIUmX`0MLK=?c+d5HDsPNr#9~lSHPFoat+PRS^pXghYrQGNZ?o;;L*9 z(!WxCT?J>TTxPNb?je(ewxD{e2@CD2T#lN7~jA_~Ny4*R& zs<-}a_D+teK$7M#bMr;Jx=HagW!d3;M__P)`$&ee{|efJ1c2=Yd(Oap^DMnXgZ_UQ z?He&aDeg3LmuX9txY0*%ClY;_Yh7m;#m_|(d?(dPJ>fI5@dIxiBGmn#PiXz4usKVh z1bvtOd;QbmEHvc%!)3RDd`w~RcF6jh2L*EMH(KjT^*YotJAjd6{%2UAi3B|ZvVAq} zX{1g>(KAdTQc0=Fz%>x=7t7hmO;4XA)b0J%gq#~j=~FpP5>;aX{E5V@AZEt_F3yb zGyusWDfT6?%Y+YvT{b|)`GuM=qpID2stZ*^Ma~|!Z(1+2xg_S71frLKD>bHH-wp2m z_p)Eg)ql(@y00;P|Uf z&vUz9{n?qMQe(-iTW~|C~OKZ#TlfYuLuB_oQYGrB7<-;!PeFvL44E# z4&83OVQ`b^37hEf;D#%}y!~wAuFwH1)m-{<0DZH#xP^We>WWA1dOZ0awf3p@&Gw8z zsqwZ-fSzK;rBmm~<+eC$fb`dU|Lyo`h7w?aPAAqA>ykE-l-Vtns$T3asF?l8Ncsi_ z8`R7)NlMCRpdjUAz8}CKu#Ug=JKsl7Iut zvjTaUq_4Vg8&+uy1!y~(!RH6_ZHJ)bD&R61Xz_E!u4n{Lm>02$`c{KFOwJ-hd_ssX zt=}Q|@+Gr|_mbf=4{y22@vw8rTv`MlG+1NHr1PI;SYO{^XJTR>`n;u|UXB&&6I(DM zR!@Tj&Hr;d=)OjqgT$23!w$Ssh@#?CMgPhLcjoR^V-_92iWZhJO+b(X5&ngu%g&Er zcH-u>aifPC{27b1;}AB4KxX_<6&!dsq6FZB8(Gs0>5uHQ>8YF2e0WTP95S}G4=8Ud zei3wmZY_^>>%}%+x2HEdb?vIEIDdC6b)F*>H@eDebIzy~^fEN8CyP4C12NrgiJV3> zb<+H8V@UDAPpZrtIndc|0DzS`93u-5o<_aWYx-ImObi|xsBTeggZw#my>8DERYwg*XFeS-cr&$_8w=x?7LN zN?>5f6iTciQtT-Ms-d!U=JK!(Zn2bKBy|C&r6=&qYH-bUOy+W0IcMQGXJFK-4ch2MPft9Lsbc1-9hMqbD`E%*@7 zKX%HAM1(8<**BoMOxiC0`f9gVxx-^z7sM$m97$+0T^U(Z04cF3We?!B$zT%x=DyRJ zEP3caAk*%)Civ=XS@;BJl-+!Ck?0Kq7?%Mb=AtklI{Pyo_;CMUmrgU!6}_>tGSRvc zD4K&S%hxgQ(j%7$wSlh{6m_UA}AXxA2PNHZr#IzY$eW5lojns$IUed5Fr5|5h2O2ly=88iOi~0gdi$0yiHJ+yHgEI{vwoW*4 z_eZl!h(IsTrv89%umu@hxfmi6z@7inPJ1Cj=POtgmZ6I*9WbUYIHvG_l?@YHEC5+2 zXb92FhdFjF=5|?`nMxEW2-W{d8ua5@t%C(1xE<^qImM7bsS#oy?$@E%d@pMH;C9-- zmK7SeQfoj>shHyz~?{(5wKp>od&Z@BMI#e zHc0zX6D6`IATJidtyi~?HkX`CA6IAEOUuq7F~6{0Qo-X*HgT4)aXGV_In<2eWtRm1 zwf2C?(glk>7ccfaKas8N0GKyf=%5s<5-U_Q(cex$tA857$CZH{4@EyBFAN!KSO(# zE4_htI@I?nRT3rX5A;K?dw2@LBw0Pcw~ zjw3A_=*7k$(|e$vI3}T#`ezC;nYTG4XE`*-b!+KB$B;GMmkZ!b-y*@KD|b z1RyW(9sM=gUE-&8AUS&8STr2n@q)phnt%>$5VniwEd9p^$Wly+MP8nsNRt9p;Bb}$ zVRapPIA z(GqAzJogI3EY3g7(+0~NI&%mhn_apf@=2V}WSJOdlVlI#H?)uARZApp>8Yrwh>57& zLa#uJ&)unbOn=w>CAA}~41n$ic-2S*=CSb~(N*dXAM;2B$rRf^d-EnSHgWPtYuG53 zQid}CpbVCv!t7mKl8F`A4c%Ym0L~%iqLMY>P4mxkX|CQwVUQo8NZ?#v{FHB^eflT9 zxxFdK+*fMMt0Y?Eka?VKDK+4u-K5hd=;&2cR*D%0m^3Jn)WZjd8{`lt_n8;9ILh)QzqA{d!t6eX0jm^l%o-#n2`t3h7qDE-)GCm=c?0E( z$k8I1a|JZC&hM7yxPbySf_lKH!(qsM76DSc0&n-2prrb`g4wG$BQvLJNdqif zpU@FLKu^fb&Q_+77E@oO!F(CVD12Z$%3^$j#;rY4hxdSD_5MoB@p@Dt_|Du}IWY1b zp^Y4&*05niF&cse^`qJ5ux7nbjn`fGUWsQFN`z-t(TsWEk7mK@g?SVD)TR0k@KNmA zKtR`^#PONX)slmddL^HZ^i5a`dDdfKn$tFowp`en)wBp?-fG~%21~MpL`1r&*n>A zI6OH}G`6x;l8FtrlmJxw$XipGJr6%-YxoGs)^5#Mj>7|F&xobh5Q!2wN!;SR0#8ik zP|K4gl1T7p>>{*^+bgF%S7IP2_q&Pi(6$n5GzTT?8!Gf2?lMXdUV-#ZAk5+s+?yS4 zNo-wP8DO93a_^)}Q4iW0;v^vESkF)sBoL=u&R*OPZIUeFwp33-I{eY>=yt*_ds}RbV~%64iq4)7OY}?W8_(T&>t3`erQmTd0L=| zIKwX}Q!^7)>2dq58t6682r}1#T}M8B)5qXfF{&t1=(7UaOiYqlCP)n!;~`XIar}OF zE-Fe_6W`+Yf5TBA1*%Bw02!0i&7{Jt>}BkA>>19l|79%R1aO)79mH&ew=U{k7;i}_ z&eny;!z=Ho#-%gLA&72fpaWaA1&TJDz*p>(h*25Jv^9upNn^3n%Apx$_d8rJo`Mh- z@j-#VkgWA*pVo=VnuIT;Z3Xp`Y0kqQSA;?`GxgDBTsjm(L4SEHvnpMz>#I5kq&Q5^6H zrP!kumGyf{J0FNzbT$#6`LG{2X{9O5PYDx6DZhTb8 z0A;{lBDMf6cnc#b*5_@=MF+qD%b+t?V?5qx$x}0e)?9*?zIXwM`!-Y74%k4@LP?Je zdq)j?0DwjOo5epb^|1v*kgb3lq6hS&+3)B$TSI=W_B1d!`b8UDXh<0@fW6F_;F-0c z1;4k_%HN~S$%6K9lZI1aG(1FrP}Pr=IyZjir630O07`mr4;gV$&RIYpNja1Pt-tBD zx~#Ct`f!%G72?CkpA};R<_aS1N(CU%L2fA3d+g*iijt&3hAOXTOtY8(!bu?~JNYy~ zN>m@1EY|B(K~kBGE{)TK;doG47XcI$@8OWT3!64NQB0>-6I8$rV)(CU`9gSLHavrli= z^$(%mHOj(V6D);0_nHKp#%@zb@u`IWlf(2XKxV~1-us8C{2PvrPWZQ)TkcmSq3G19 zyISjXiCid9#brvp=h4CXa0`~5?RDf_feG+iZXiCxYJ5XsS4-wNeHkwHiBlc%y|%fLnAnOM)X3zsFIru`g1eSs24+ z3sgnFv|F^#kWvX$_5)LX(L680>skhOUV(Srz%}(L>rPBLl?AeSx@w7W4`O`mT=$a8 zA<|1DHD``oK#JWpY`q*E9esebX0vD_!GW7XTam~lOy=j2?*_NQeU4)PDMQ~3tbm9d zfs=3!V6r19gFH|G`Y-KT=sP^Yl2;&9_RzG@DbpHS{Zx5O)X>OcfL+DEWsKkPlP4{y zo5-AU9%&EFq9+_=bp9w_7w`z_lcSf12@GRpGP~vblOe=*<;|A$Xwso@EFFGGdTQ|E zFYS6tKmMGq{@95Vx6dyogj7F|7%%8w$j?g`FCv!o;J~x+){c$LO>3(=0Cz#E-^jL| z;6EI**#1;CVdI7o%0MHp@Yfb9o-%nYC|gN_1aGuDI+^23HgdN&BpK2CYG2itPYL_t z@-VlSymyh;`Y*{!jl(GMN3#>7t+8sMUeM{jBmy&0r|gYR!0qD9`=?Su0Pj3(WEajO zK}7H}iKBq%3BYjzfzYptgAtXI#5p8PRO{Ch9*xY*+OMtX;}uxqD!CY{yDUdC)U+r| zL4l@>ST z&nKB^@ux2B>pNGCR_tR&`JUao58@=ke4$cZb74%fUUjm|vZ7QY!(XAU|y&Ig^UaOPp5x z$p>QklLLlUkL6Z{8LSwl2~APFr|^mRvEzp2uOSx2g_2SevRt3S?JwPsDJlp^`#{lmVl#6uo7Z>caT1Vy1Cvw@%TSW8L` z)my>Re|GFBesRK+2a%``=0kEVgUT_2eNi@rS<5?JHG$BrUbyw&G?zK{U~X>iFoSS} z;FPGbC1~(xPZ`nE#%9Z4h&}hKoufMNEcrm9oLSjQbD`R3)gJ(cOMiZKBYKymmLG`m z7j?|YDZChT{k95Pd--yE=#y%~gJUjFdu5Rp0{$#ng>oGZQYK>Bq7X|B!!Af`UV_8C zE=~E=FzLh|5#K6NiAbb5q``e-k~Ho#ZbdW_3WZeZ;HmImvtdL?(JZqv82G0T#8ec? zz4?m2v@FL7kR-4;mCOf*o3jb&w6r6wt<~sR{kT;$jaihsy6MhWglWw~Y(qwpSt zy(q7*ZPr&mYbcu=lnPh*ye8{1+v&%y__s*%jK1Xd6&&XvSf1P2k(kO8LT|<*2E=TE zG@<_=qCj?oRV8L{T;zHZ;2SmaJ$-udF6{|j_@iIIJg{YI#=#63nwycKF#YwpC3Qvd z)^Lpxhi#tG8cF7&VGQ51rxAiU)ay1D>=T8JtK|C%(oPgw{G3iGF^Z1^0109d3Rg&+1H>BzXBb(Axnf8Yd&6= z;+atZLKObeqm=xv9e^P(0bYtSY8GdB|38{J9Hp9O;?<^}uL2B;3-!oZjB9BtzGykT z{j*y)KOjfGP$DKZ@zPK?KGWh$Us_A~#<#hhuk7z(Mv+xbSQI`2L{ulvqHQY+s{s~Q zX^$<6E&2SkF1_4+AaZDc>AphXoWW}YZ|~nd`(#j_`iJdgHQ5p%mGWDpk&pwCHF46( z^B~J#H8qY9ZR&1fSZk5$l+g?rYGf$#FnHj#LTIM4?euR~)yxFoLCcUc7eng%uP1z3 zRdu>bUGDK#`=03hk2)LW{aiJOZe-ijp=WrmrFCK9g-Zm^O2 z-@_W{`Fq$iMX6>A@&T%m*bo1&rX9Oag~~*b5$Xl>WRw(5w2f5dI`BukjL4?Z=$QKE7+SX1f8lLWz}U8zB8;T zEnDuAmh%r8*TkXpHy1Sq!POn56ka_g@lv!q#wbZFQM+ozRj6wFlRI)2DQ6 zr@#Jc$zyhzpjuDCwGm2!%$p%>zR^$H>Z@j^`r6*sP*XZy!ny%o+2AudFubJeXHP;x zi%9Q=g@q}SXEep?4GPM$9aCreGKW)`8HDSZnu?0Rqo41X#(~^TgK(D9v-K(TX6jSc zSyDpS8t%w1CzY_@d*QC>g-eewu5QV+@nw($H{1!$7~)nL(4c^f(43EycWtEKBhynI zu&fI#ba4vrH@%hY@knqKvLZ9f4W2yHkH_lj^R)1hqhfC!;T^F2M+x$bJP9qtlHG0g z@e#zk;y`6JV>-MEqXe-M8|+OT|+HB81faHB=9@J&eKq0|OgMUQ_VA8bUxVTC_9= zc!t^=d61Cyp?g3Bpw*-l&wrbZl!qTL!)4vn=n1O8SAwe`FtfjXOb7qLLCmYbG&Im& zMf<3qTp%ILE$Thq6xC(2eQJtVCOj=$q$fb!-uhCd`xy_beK&K5oTE5cnF= zA{fANy7~Om_Xc`El$PMNQxzWzNB2U!`$VJxN6w=COkPM%sBS1fi_@p9kf9Eanu_WY z>%T#rukz5vSm=MqOp|@;h0O%p5LyCMS@k<==*YfZ@RB-9`)=IY^2TG>T2rMl(nWY+F0VwhZWEa0vr`-1C+-@WP6Z&}bbqA1v zfEwJaOP8abo8H`-3qkVZ^E{Rx7JHT&Y5J%auE?9yS6(Emuu`=PS6(z%ftu*ovL$?x z@68Q&04~bEd+tIhp%r@tzLo}=;QvNXK2iPUz#qM5_<@MxNP#Csc#7S|p2A>&M@)0+ zH|4v%*Q%T2awT+uq&3pfAvAAMFWk!zBoV)Oab!b5Ky*SxeHto283+Wo?nQAqvlls> zl?3@NbtORIRTizEM*Xho0+iF-*Nh>1VTI*C6t{vb@?>QoEN)c%Yw(vllOBD&!{p8A zCKuh`!-kY2L6CM3|73x@S(`mN{q&8$|1O*smw+QH@E&|i(Z2_N#Hx5#|5_EvFu7>v z`@l1Ic{Cqf6~))4%>8anvTes;_~$G!=@92lupZ{dBB|l{aLsz9Yeae6YO*waz>Hf` zS>L}sK&qG-@l$** z`(2p<;)Tk-8pS2vdhVZA86T&CuABAb;x`Y{A?OgaKxLM+E43bH|D-L3wUFOqFXTpD zM>sjgQKO{-F$Hlcg1IYcOA->c4h`A26H1wMu)t~~=u5t><4q+_`=?SZ>l-w3R+bJ; zE@eoUO(idKz>248DalPKQP|9P*-_xSn9B?;2J*+enBl!ROQ>#IrkIXwSvZ-E97jl} zQfCOnEi+3ttuvT`_VaAm*U0D!U7hYf2Zq>%-fCg7H@Gg&G&X?@C!=ckA@P~iHtGG+ zW>4e(F@a`WKwWIEr|t+mWB(x+Xf)1mq?{HdA(l`})Yg0&Pdw4m(h|cAK=i`z>(+$p=>vhUuN@ul{+PgAQq|Bjh*Le3gMO>@rkgg9G8 zZTs`Jlx)&y(mRws&x_a;6qH4CtAalq$K}8f9g4TRpHlukE@#fPpzO*8*X-A#rxq{^ z&bvJ5T+{b(V5Q?-vuT@p;Y74RpTg9V_Kp%PY}c-a{88EGq+Q7b$HLa)(bE;c`l1Q0 zsB!S&J->ezs4LmQ-%M}8?cJ-Tcky+xmT@vsA*O*C2r@=?O)hZlCH)O_uDxFt)0@~+^&D+? z$iP1-5X5)g_ZPdwsts)2ywAE3EvUgGsFGQX_7=}tL@ zNIMWsp1E2Ia zqK{!cC_rHJL4&?WKXC>Mn3m?T@C20Cp86CtphQB0m{Iwu*w4~H1QTLy7RD6dM(e|b zANk(iYy(NXU=V(+T?{WNnL!m&<7v10r||~_qem4WF0w<1|MULPyx2mcjuZFP^8Pyr zO0xMcTW5@vP%#oRh`4r8)A`AipyI)#=HYdP!YN7_C$?6oG|uPW9in*3{!|WC)BmV5 z+D29})!A8DhazLxWVSGlVs0z;P8lVQ{}RMX*SjY1K+KzIER6a9rZOsuy|uYB;ghPE z>Y@!u)a}$WeWY@I03(5|Gc97+?Liw0Km_6YWj%g;sU07PcTzrS&aaK5ci%Oouhhbc8!BC!7Z7v00dpqdR zR%a@oRb?Rq4o*3-uWhirJZzzFh`e30mT?-PScs?metx8H z8l?|x!pW>~7@O}w(hNFwv<#it!lJl% zbgxVPJh|7tWi2bJ1+9QvcR2D87st}2m7mtRd1gF?8Skhmq>BNKK4=rSx9zl+s`aH7 zkY}>qpLv=a6y9C-RKgdao3B&{gX{Jd z!k4V(bK~(o}1}7+zgN!xzwNlcmACK3ou)$ZwG*1#oHc z4lQG2yklW%EiIR=IwVGf1oPG?Ko1Oxh9#FE+U&5+_l(+^&~B)}Z;iX9VPPD@eCmg9 z`KgA}nWDm}FR|A6b%ReX1RAO`bfT1bF?qlYih4l4<&<90D z88_d1e{tu2pr?Fu6(&VHauoZ`^q9UU=Rd3|U}E^(*f!K6&Q=OOu@s8tVk8@EFw-;R zJ<->^zZNx~yXg!x!qi^z{+p#8y^P|9XMF_|;zb_sRwU~u&4RLo%Xhy6F()E#6}{az zdTRF@hrNcnZ$6TLtGL{YP}Qy5iO#c5cWX_Z9nxrAtxJ*RF`f}aDcv_F@3B-9w3m^e z%dOVMY?uI5u63+4R)A83;nzPGotd#DmoQS7FtfJx^E zk8!2l+KU^14|QGlg2|KIX7uyy?(~H3XF*AEVoQt!oHqUEXXHP09p~e{^~J36fy zS(B|U_)_d^xO%jWI#utqL+@1P_^`Iq^1gNP4|^#^Bw*s+yY2r_txx$U){!*xik2-S zM%J$Lw4Zw7?*DwNAw02U4Rux@M;()QI&IpBA2I5vvZtA{ASC{BjHhm5+~t{*yw2wg z{(D-#-}bk+BXlHWCyHg6{;>GCG_v6KyWrQ_G53b{+Ouz;OU>_v-!#5g<;}dFzv2c$ zBpa!g%jj5d%*-s|&X!X5vj|6JzG%$E}_7 zca)Sku_R#OD-oL+z3?^T3pZ}K+v9y98~jZ;J1?-aG&*7JtjrvWK9PMo-LLwA1RftY8Zoj&|jt{JT1 znGVuIWY#s--Kl=0pQlRnZ1ut(2_uYkVrNI_p7br~Yz|Lt& zdr;@6cWIYJNG~4bRe@ABPd41mk7mA?s?vZMcrQEuk7Bm~L>mYZJV~Pk9Tu$Iq~p>h zVUBg}>LAmwW8M0EoH)cav*Yb)hn$uh-EFoo=xVA@+rkG|d{!reAT9+-fRTRMchD;yDGHrUbn{xkm8O2Rcj?F4=RZ(*_e{I^# z>$@W9FrvJvzsy@Srw*_9pd&71pM zx90cS{_nDiCl;UX|o?^D7a^Q1=sk8|Ihj*s7HYxv@2KM&1y3Arc9kGdHmh^2xE{E9!L6>12TP)2Ty?)llFG}CNMtMH+ z+HMh)vmkW5>9Hc;({YIvM+T4i9o^~IC2$+DW5D^&+|A7`=F_v{^1mtz76h+v_jbUi z-wqE}kJD2>n3kq3Tr=y#8+?7ugM-|V&VNsivCvZo(%<;=cXX|`en)5?zkl3MM?#ps zPAxKb5-I)N`P=)Q3m6{)^aU|7l*W%IBe(%SEw~`Grgn=}N3w+(Lw|HzGD7Tk|1(XMW@v=gTm2AT&CqZy=~FTZ>5-m*{X)ILi*JpAo@F1|Z_ zs7|*-j(btxbZItf*UOjpUm3R^kaFyBr=s+RCMsvop$b0RZO&IY=OEfl60y-~%y2t{ zJ^2g#I!z%h(iz)4Ow&2YwL2{NFWkl;e92WEnj307Oy{4Cn@unEX!9umO#X@evd;S| zI43=NUUBprZxFu8PBYxQv~WjJfv!jCO0A;5b!z6AuD9rHS809Uy-iI-hnqFlBMSQ# z?}#lxAv5dbzqM%T`{QHZr7S^9AqULxEm}-a<Q_?2fsy@^!j$Ym{sU$>DtL4QLS?fv?_!U#%z(6(h=IJ?N2SA>G>=k$ zhjnUyI-6(3E%;@~!2B}4V>-LsoOkT>>HE`f-fCOyR{!1}=iHgKsgd5zyl*yZQPZe} zL#1lvxYP0D539|DrcB9|-Yg~<%-MlpmEn4u3R#~-fl zW@B`3isOj}iFwBI$zUo2x5jv7s01#w2vsj^m*AYlXW9Cg4>F-^t4C_f<*8Qtan00* zRF$MR53tBgHZS^>re-{2Lvp+7vKAFJ1v%ZT%e0D}o7J4FXQ~uv+Ph#@*;6HOl# z746=)q)-3;NBZ~IkDX2<%Z!r)DG1stdl>;efO&>o zZf7!&atMCen=#k!+?{eW`I_z2Ow*$u3RYBH%+3#NvDx2cS7Lu1laZr3wxDanDngCk zl&XP;WbYl>$=+z=*a|zIW=@U@J&kO>u$gxLZHPnrB)dlXv1O$NORvxAivs`Bvcifr zphYV$AZ9qaaQ5=jw5=0w%w4eHS`RB{SJ!`%cMKUkn22+Kj+4T~G+}we^znI7<@4O! zD@&U=n9P#QKpi+b)8uhI@&n->Or)VvMYuN%(WPB+p zy4X+gZVjmKfc}rSeRu7DSw2|*hWkQcDZbnmG5zPpFWId7<4behVSf3BaE_|V~zLeR-)8SMZdCb-`>45pef$MeTe~o7T4Bf z)@DnC_{CR#j5-;W{nB1HscRFvY3D&3-99e9qy6qtsvnD4vg!6{X=JeNR^5{PQV8+R<>OEY; zm$4j0XndCz|FB}{`VS)~HOM~M?zDqdM)6D6e>NpwfBW_=yQ(3mSnlm+y`cNI1~>QX zym23NvSyG*?M3V5tt0Nvym%m_--q(%(|dXlJtBs8J=x<%@jn%5Rvk-w);uf@U2!)t zJ>EaaeAAOez+aat#ZP+Wnx_y~O#A7P+>#kMqvM{C#8Ryl+|d zz<0uh!f`+6+~4nZt5QeD>Qb@tjh6WX9r_@29q!UGRFG@(8-GY!#d7b{o>QWx;;szD|!8 zoIZF(#krfIp)ei-lz8t=YbLKN@^bCIA!^H$X@$l&6At=yDof};YNd{2m&ZCTr{72H znO5(%pW3LRYSo{4zaIhyxGb49`uCIX-Va@0tlGJI4u*FQFrIVVYLCyX=m*4b>hk3S zZ(Uw6Hjj<!diZ}*qcwk$BZ6*cRr6Ip_I=Duv_<8QsYMYa6p_{q7( z!J+7))^AVe;TCCAzRykX);;rY276?C98Ln+y4$~hKk`5d{FR$UCXBF}pZz1ub>_Y( zy}a}rIcL8&XkW4TQe0%~?~M}^mi9TP-q=)Q=7npanhQU*T*Ii6`_dR(nnn_G-?_5% zR)f=$hvmxT-Rp%W~pCo-QaG|1B(`gEBf!8J$LTmi378?Jt?}lV$%IM(-Bsm zDBt3nZ;y&9_%&x27c2h#unVSaD_zlS0N@nSO$*wFws&aprxC8}cD!nst{d~V%k`&|H9{&4GCwXDbw8sx*L8hFj}6y<>^u28&r|E(WZPJm%YH9x&o=H> zdX|R-e<|nt-p5A<<$WD~RWEk3EH!qU^x^b?$rZPzjoh#4{yyR&uWLlsAER^bBR`Qaz+Hf?YdNP5`(WXQowc1oi!&K@<*^+i|1J9@DzINDtCc(070u`4RG zVjOPXeN?9SdEx$wwm03oB|JoB;m%aO*x;KpeaGAn=yWS_eWPyA9hLW`wRpArWyiUn zRw^7DTfa&RomFkF`r5eKL@6^u~2MmYED3c=LScg__Ox z9=+Xj1hV?~toje=-=76_WjSoGUa1njI4@av3Ioy7$ojF*fEGbq?&48aKPPr=MVEW~ zya^RllpJA%+lPLuylT9 zmd3eb8l%_Uo}2+)O6TH$hr{=MNlt2c8%v<`v&VQwIuyN&12*Je(i|a(%Tz0v-vq6z zXjVR197RK`aGL!c5-ZCL_I*vejk)*a&kdU0w!MqFe0gS!m46S%-1xI4CqM|%q_Qe2 za;0b04CI$#4K5q@IXi85iHX}u%JMe)Zeu$~JY#J9Xla;cdgA(lc1E$NIA@;k)$QKA zQD0G>ePr)B>B0c@!s4QFDIt{uC(WE0zx3oh=jfWp4Sm!9=i@H4)r8oG^)ce$#stn8=K&354*%U@Z)d1*SXWw^h`__3P7 z?^_Q0e*b%JCx^RnHJYER^P(dp~)GFGXxlNk{K4 ziuESGrlWEekDt(QkpAPw-YI4d4LZ0MZY|lmU{SKIui3$~6D;pnGW%ZUw`BYF;Z|?A zU4LP}&o|04J3W4geu4Map00;G)E*D1=@F(g`oO%(Cbi3Hq-M3Bd;d`2peaLN8IXFP zH!&W%E#43=#maY&Zgu^P+fZ5jAFW$2Yg`QSiRD2fc2*vZYs~ae;?%V6FFTuDo!zHX zR9Lg&hi#UQ>dJ9^q!#P??IuwByTv}<&CqHsQyYf<()kS<_(O<2EidEqg>lAh58FJ@ z`(S{7P#C9qQd~f1$J_ciWy7 zU$QB~wR^OB_D6U^;sPjopwC0rEw}LD2R=$$5!~(T&Dy*c9|8HNn*H-*L`4_V2N5ql zM!7is(wfqC8}wI+XU&&?d*>hrx!{k@miA7Y0s{kcL?HX~g;DLT;%t|dS-2kUFy(XR zdPgguRSsx&H8*GS z_evEQJ~$Q=@iI7kT>mvc=0z%N`gtgWys(h|$aC#j2llTQCCu0?Yx!=mMdw_KzkN#C zuBjHV=0}cy*t_^6M@Ezt-P<1=UlwK6v2ftM520Q)Z#ivAUpl_-oAi6V_Jsq?z2a<- zf0*Imwy~iD?b(9ldKOj}X8(%G>6uono;GE^Q|`r_;)XSEXD99s8Z#=TL%5a4xm+EW zqr6dzwX5=&annmRznjBWL(HKbG?X6?dQOmzumI1Nd#U?Qd@aiJ%L$Ehur#g*4#M@) z2Mx>Y)S<($4ocJD6bMuLdCb=pyxF}cyEx1Q(n{I8(A-=}43h23Q_3Hdgv1AP?K&lG zo06@2-F?v*6E^>yCoePmc7EKX$~M;d2L6M)JA5}D8?vk4Ih$3JoNrbfCH+Ot9~GQf zJCQ|Lkj%_4A!r@sbXr6Vjz&ko-qh-6Au5A^YjkJ_IZeuyZzeaYvgbf#1WmfG0on-h zNu1ult*vBv6G5??OOtiNtvVX#1{EFBuW@Kzlsf&V{Xf4){hDQ=eRM+C2{UFC9~^)B zSA^-4IV?n;?U7ac5+>kjwi{%(cCuTo z^}~vzUyG6$hUa|Gc=F_ci*DlAFn;s*Q`XXy?R|d7d%az%E#um3M9K)?RzxG>CDZTNN;59BaMa5=D{)SJ98=xVQX&Scac#igtb-ZBCE_ z-kqR?0=b2AHyq+U(=!qD0F_?qyo_306dsr;-9Pv$8yu^kgsrz|iYxPQE4D4=4LPS% zJ+b&ND$nnZaxAaRW{BG5)Tqu8ue*Ofzp|?R%E*%TbOL6$u^P25bQ~UYa{QZDudJLO zurG2VDQUaid8@T!LT^kifBt+ycaH_wcAmBJ_l_*ii?k!w$U+rh-810n^J~5sqPiaN zef1yuK}HnW=RqXyzul{yUa$M z^F89?PLP>xUGJMSfpcl~J>e}G|CwhKkLAlncp|l3_v!Tp*|qf#@=|@>7QBL*?7HTr zgxTRD`+`}|^{WhE?kxC*%*N7`3)UBQ1(|;~Gu%-M*ls^p|3bd|Cle=E7aiW5d)R1` z)w{R($|%M;@5f0q|5=ZAMMa5#shquvYm}bXRv0CDr(L*k+ic8$ti=Ns%;GTXw9-lZ zs+4{yV|-Un50BW&3ZM$*xcK;&YTx1V1@h&5^5vEOQuHMxOz5Cdg8ZP%9}8xQ7eZzI zdJ5{_XWJHnHZ6go;Qnz}^2is<27Ox>J>goV_8S-?&x4L91$UL%9q;|N;|sgWc5y{z z#G*%UnNLbVOb5ZVbxMRq8!$_Ke?Faz-?@(pf`i~pTz)PB(&JYlE7%4|N0=@1o^XB zx|IfcwTHB7ESlrM7J2`*);LxDQ!xl^>*&mBthsPjdAZ?(;#%FcJ7hscAGNL% zHPkH=qBr>jJej-kOYJk0mN{)4*EoGGU;R>};KA8%#&7pecd0z{H8JAijT26NlZnH| zo)y=g9Gq_^GA8`W=U06&kkzT(ySuJlyPEm*EpU%Kac31R`-kTPGbeYWX^Sp^qQ?8vnep%{<8r{E`#fEuuod_QLt| z(`@cNcrg9Uf|2{3ik2vKd3e=7)3Ns$WylSnK8&mzO7D@E7yhvw;#v_N)6U!XH1>F< zm;CH0!L>e&BDz0TWq%ecW-T?;pIXang8Y!Obcb*D`- z-XO@F93RsG^seLP_Dv&(NGgV0H@dZLlKbNsXO>L67&fiKd-|b zQT3pPalE`U^QHz5J{$7Hk{5q#VxOrYnhk(_*c=4FfJS>kSB?yU>A{Q%nycSG^|dV= zDa9chgakzSjE1jouzpKMW#g+brKpKYwwZ=n03Brxq@blRPeyHZvN37VUF(9W zydSM5&QNN#=uX*>%Y{{Yc<6w|Pqtq)e#{OAb^0r;BG?D&^t*3*%q$Qz*<(sg^jnp9 zq&md0X<38T1Nasy!!)k^nzTC6f=@PQ>HxTdEX~AeiM9aWaejn{%EsygfB$5&W7yzU zw|lQ&Fz~Bh?L*Ay4mLc(SNmn&?EkSecB6Mmy7#QU2YRWiJ}oUZxZMTiB@>uZ5B3dD zvI5Q(u`5O+Zh>vf`s5c<{H~46y{N%!)S{e_(JXawh?h70O`5ta|@c2@9M`a8adP)bIx7Ud5`=$`56uK^13wV!#|M1aJK05-R|O~ z6spLMF$rWmDLRoJW6#&g**T`Xo4o#waoC(c&v5OiZb#K#T3V(;Nu?M(E8#(JcOihnrNZqa-*di`eCsKC29&hV zNT%Bcnpea~!6tbhhu+r4KdP&(YHWFF)A}B24aZS7+=PXg*YkL3`qj;ssZ61b5rBi| ztQ^8|;JvLc%`l-z+-?wMnb_0ejQ9Sd-aPzX{l8R!tH^S0=&Wl;bL59}+h z;IxF1_dnZyXh+k|p1Bt7R2aC*=`_aF)J(ChzpPoimMiAx*1hgNDGEv|y0rJc%(G#Z zRab7$n^y{H=IOFjwq$mVY9aP3cB;SXK>-nl8T+%MKtzqcp`hHEg+;BQ>jvU)w2`-e zui@O@Tek3VI6P0GoepHrh^CZvg#dFu6(?rEFm3CL^gxdzGgp0nr6IgGM5&(=skZt5 zh87hKAfSbp7zK1F28yWnPbn$wtJS0>3Oo%-alG~CvuiGLmDR4eK&ughDybv~EOFLqj^n|k;@(mn& zf8J!U_-*N@@2~E}Ma&s#@gb}8xxb=~zEzdvLI_ibd59Q`4E$+#wmHDwlt>h;fnx}ji3>xngokd_b?@J6C84|)|%S$+LKR(CBo^FM*9BT-> zJu0#slPpmYQUBwQK;c**ddl94C4aCFGC0B#M347&%BC3%$7SVD782OI;B_l{?rKa# z-`uNrQoC<_m>8jS(hO`HU>{uK2;9FJF&6)g`G0!FZuSStV>K#myJ@TRnYUn0 zV?RXz-d^*zqT=K%-!E1`NW5>!fpJ%wHw*ORQc7Huomo{?+3rCU_)Cwz^47ErJG9sw z78w~r<{nietM1HHRojO)WPK~HemG$;oA$M2_S;DQ+>jp?^(0^wUOyp#d_1@Z9CgV_=i-4P`+sif_oIjY{ zS5Uu^r5JM5ndDSTkz=V0=;flYKJ|=`kFHbz`9yT}89b|z_zK@VoIJL38%xw};5_q8 zB&gzq#Ei2EEjMk}s2;P$C+Kw2T*(l5LbwKBiF3#VX;CuRaQ5ukj*U&Z{5+W+{aenu zXtH-;@Bl89PsO`e{Dvc;rGM$(qwegaJ-eDR8z1YsgczFZN8`$dpold>S=xIg>+&Bf zCtYHnnFgnmbJNmD+p8x27cN{#DJsGzo1dOzN-_J4^1xsA{vx&m6 zeGAXt*;_`xDVl+@>Isf@8yl`)Go?pj>Te$T^@)qZLrWd#uosStxNo=d)-Yc5ett3_$MomZVtq4`E1=4;h) z+dmUQbP_=aE*>l{su2Wzq zuxcfn)VM&#PVBT8z_gUD*J?P`OW6MdbKcwoueXtojt4Ifr~GenN^iZg4PixiTyXm# z$>(6m<8BH|!34tnYfE?)f8(b||=yHDkl zOLir*7wjil8j~eYO-tNB5*>jsLVcg&l*Qxu@zR&vqHZHu&R`qsHs4aVWe>uuRacN! z4H*nJ-kq;++^(bA_<_uz|{d9C?(YwA6 z7~kQo=~{N8wvyJ$p)9F>`k(J^8`VH&Bx=Tmr1d#?Or8z_0Nn;Nxdz$^7vUH& z=`+-18*A&JM^#j=*D4z;4pRR7{VSg}*;feM9%A)j(cR;kgN%&}p&qF%n zG2D10eW!MZJYMH6c3nrnk?#}I=C6$ir;Jo=Dkz`CM#%z{5mZ=`tA7U>m}$K{})&P0nhcjzk%a#+C?Rj%#y6A z$fgiN_6#kdBCE0$Dp7VuWrR>xB`Y#pc4U^FLbjx=%-?nQ`JVsp_xPX38J%z zrUls*sG@UtI_}24@=3NaREyLS?q5hA@(^b16bykwUK1)FE1+X#Kdx5eiD4NksnKXF zWxPE{IhKEhSzY+93Kz@+T%#eS;55?WN70TEv$e#!U@laI3mpc7k9C}5+D}O8lddx4 z^I)j00~#~1O&whDY1nBa3-cX0a%S8aE#%WY9SFofV9J7Qk*M(uf>cYo!9Hp^Y^_{+ z)!C$~shNyzq9&xomy?BeXjzi=O&{C1>AhuebVbd6)x{-cW#P?Ab3U)h4_tXil#BC_ z9Z<%eD|RZ5$*_mu<0xazH38i?0;Ug|%@l;mIH({iUOy6#@5jg2w+YKIys*pK8rshVLejT&;JzJh*r14R%nOqF4LzJ-0Sl1*94tNt`sn2Jwy6)51sa)Y0E)!8{2s7E*k zhxta^`1$#VK-|P;xD?%;4+)4T&6pA!^^~pGX^FGscmA>_I@35hT1(d{P({yN?f1_Z zq35GQhPY0M;0+h!J&s{wyZQ#K(A2S;rCs!uF_h*i4zCIJSPA~NwumSu7P?L*%CDUd zOwP*7OGe@R^i4iQnyJZIxp%EJJ3EYe)v9V}L5#C`h}@?!v$9e}VqSd%`K`;c9qJDw zUtX}Nt+nz6q3bG~1fhs!_0&^uWYKbyUgJ3^so?QBu|3z(fdc-Ur5TnIs0LeL5{ux1 z22BeVG9s_vJx8reoTX`Z3M*#Q%VT*I*ZvMt?i8Yis(uiQiLS7UgH*#sVPdr6=ISaE zGnZ}~{f7r6OiU-L08~&Kpa9^+8~eSXE2qp%u+G%~%2AACJg|kuz|4FcfeI!SL%5#n)b zjN7<*GdHCrL1EoIbX|Fw6==m#oVm6I-vdTD@(I}NRisw_YCJVYj$}$Ji$=O_~glE7{3^;D2Aj; zAA1^j_+0g_^u`t@9lcqt{|@|np}ue$YYQcZxkOsRcRsZ@0trtEQ5LdB(E={Zi*D3%SYAG%tQfS{8^qaW#O4@B z2Eb1J-@eHKCOTies}2%j3fGUEwf6p<-1N7RJNXIOs|tJe?3wCMhSMics$r`<0lQg2 zC?%?32neA7HME89_n%=u9~$wR=wf(|#A{&$xae1I68#~f?>4!t5GqlEkU~VUnJaoa_p>cVCr&710calrFWtkB zPf-mu!dXNaI$Yvb3++uhqQP73zx?X$`~^+xV_1oL4BsRY&uZ81B?dvj`7{NiXm38~ z7YC*xYuQ=<>{j|49n}22R||wom7>Zs0G*fhO%BDneAOxRP`v_hk1wuhmG%*X^>xd!|-OrjY)J$_Pix=SPeT zfI1Ij&zB3MC;Tx9yNpA&4)JJZ-Qj<9_v4QyvNw&)(j35=?9aVmNlb}1-%+5xc>^ek zsBTJf<9`QlU@=#yy$*|M8#ip&jZZueWMP`~1EP0TYwJTiz9AT3G>jT;?~@$qkUc-P zL2YfLOd*rGNdLl@HjhiHc|}5`c!wMh`Sqv=^o@*C9oeE))_y-)i4h~|i%HjufiE$* zL0;^GkDMxsDhCafmx2FH<3V5d8)xuG7s#HJym?{9m6P^#^OO zY^0xrp4W)HRNu|Jnb<8RZ7-XYV?(|K&04a0k5M@m&-8l|hgd-Z4`e^gOoVkIf zh_X0V(#X;dN<&Bf5WGCpdHsMw{IgcWGA02WAYx5Ri~!J&JMnMves@p?_xTnIpFQvy zAQB(w27h4}a_FRh_br^w@`ygNBoAv#4xqFWUdu9=q8&V6!+?c_KFrpe3S=NE?&;si*4kRqfv92mRf2`C%FkkJ0)F^C!t< z5`c+3k>Z9h!2fBV$r1Djs@A~phV|n>MI!(;pb8k-qYGTu@XGo`Y|UG3nhQPW&&|ZP zyPW@aS%R3+0mUO5zr?oynb;TUH;M+)!4;9K5o1HZFyF8MO(<@})6(YUhI6%lzKxjK zw0;e{ejw?*DLKBt?I&^4`p{w#y(}OuWT-|K<$*0og(pFsj3|;3Af3o0);sU8S)0eO(d%@ z1tW5v5cs4}@F{hjknD-3_uD@{xwIk5N=m90mKkT1ek>x3y#0Pz8xIy6z|~id#P>XB z$M0B2A*-f2=gZH-_0ggqu7B*%bzY5z1cH)lvAs+%^62MU1|@!U>sLd6BlO9ihI1J%nvKAd z-r+#Popry}EbPo8B3fH={!9()5z+`!@zr=LrwpKQ%z(lb0eC0P$~FFuUM%q^mUeJL zBS`For5Y)>vCW0#|#o5X`P#pWg? zRKg0jboAmxlL&&??TdPej0=bq2>>pqrqYCWy=&`6wZoSkpqYxX*58K4J#gKc`meuK%6{=v4qop*Me zP2u#^yKj^rbeOmIVhdZ04ue6QyhhI!+p-%$f8CtSw_aIH32J*Hgg1e~yq{m_HBX!Y z5*ePqcyZ3!I)IoHAS4L?K!dZ90*JekRvUYA>}G{ z&A9GFuYpiNhzjsOEg~!?qZf2+@&qdeYA3-M>70VP4^n-rYEiUexKL^08*z>4ocrVT z2Nyn#6(tPSw~ZIU-2&!?K?MEAqmPt!$oc`w<)?&lMo+Z>tLD5r!bu%QC_YxUt9s^H&nf%kXB9bfCHrA9jCjOY0Vj^tJ zMOzHFBP$TaY+z{bfB_L76+~&6OPwCIh0KCE)NqL!C~#B!zsb{LpMCyzRuGRk46}&h zII)Md+o>^sST1YXTp=QMP~?1PTSPpgxs7vp{UFJ26?g~#jxpYyl+`RO>D~cR$ix~c zgpzA5#a~~T(PBP7?k6_QcZ_8+o_jDnV%$YU>{v@zq?UP)o|1CiY43y=qgH--MSQ@E z3ID?N+O<6Z+wdh6ZkLOl^@sWyLSe+w^DDSEbRm`4@0O!CefYU^@(}R2*CKkgUj=24BU+y*XVP>4 z)r?p?8|A(|G+gCXE8D;FcpmBiF@g&ah^M2FPM&Aa323LDetr2SX~TeHV6LEw5s$D_ z)wR>Q$Zg^7omu90TC)24Ewc0SxH%I+m_WF63_i%Qh(IXSVAv4_II#wKW> z1*_G5cZA#_}nyytqjjjio4{v!5)ln^0uA-zj2hj?I6 zc*^`B8~@7>=+LO;aCdDC-y|!7dx>uAHZICAKr9p6QG$RJI9w#X20?L}-22t&(}fGQ``P_IVtY)j^db;ZJS$x%4@`c9OHV~zJht8IsNxj%>IrDa zwc>?TgJy>=zCHz$it5i=_yP!)gc2te3`iIps8UFKY?$^aao%vIU0bZecEs2$i!p%S z@f{*-6&7ZQ&ex0l`;n0YKO6ZZBXG}D&Aj^TK9YWi8jvY-19l9B>@^!u5&^Cbnw>zuba_B>}mdwOTf zm!$>^8r&EA^cMqW_k1Vgv!!(Una@7K`vgUwd3q1TQbe3a^ua1kME1hFc!C)ypq9he z@=h6}l+!|)=?G2+*!{@}^r7fToyI%vu$-|y`!pnEtT`u(a(I|KcR+n-}T)u%8308sjCbo!%(x_OK ziCY(%3F}va=5JdT5=LshUjhfBR89Fn?M0JfiC?W-xrJRu1vN|fwbTA>d>W&*ZC^;i zE_T+|Qp!g4h!Gp6ca}ixNIMVmsEMsLei%3=_*<&a#w}Or&E_A-hLk_G9FU}l@bEqP zfyw7jKLq0~U_#)2%?JiEr6e7;0S8S)>kM%f2#IA(y zklx3cBHa3-ZcZ!wk7~_~G&9Q{UB|B}-)AFEhqQEg9LjY%EZFTVjzv{L*qLdg>_L>! zO_-oOMrE7YJa#6Q%lj_vd+1BFSY?!RE(yA7+UH)5p6Dh(Y+ zs>e{uIgxIIa0#SQHM>E+{a>sokOL?YNyoR_3_T7b!S^<^{GIKeY{ z8obZpMNP|L=+RNj0W^Hbzkt>Y7=4&fOSGqR>0Iw7YB?m>`;sYsqpowmcH@)0 zUte2$m!6B>tV*b6A3o<@^n^gdo|ZnVJ(T1xyPI?4`t^??hom&phFX6E<%Mz1v60tC zvcILY(Njfmx$&OV)bV&$*r3?Rl%Gawil$5n`Dm^TBw=%Ue4Pm zzP;d>QVnn4Mg5&IRyMzumGnKL~SWc*s@8OM?55~5tyxB1>xs(p``q|rN#0UoB6x{ zE+C?77#J2otdhFA$#8dvK@EX@N!|ggF3f=-3y2NXCHs}eB9fgh{3`*{MQlnt4m!4l zUC$(2x#8fEAxm1liUohC8PYjPpT%;0(iS>>aq0EQjO9kl`|%x(xnngm9DWfjFGZa? z+fH#92WEBDVF8)okC4r_d=-nKP7|Kqs}A3cb2Af?HJ?^Q9_l~d;Bo2Da&!Onu-Iqa&j7F#`@k6H~Qt+UH|s$>5%Y+9+Vv5k4}-UbcfDxkn=U`UUMd`_fWVZxMz zf3_Ga*?4GC9O8`*3Y%{bLYm~j#Do??wC=Rhv13gDL!KIz)K#lKiPpoN;Qp8Dj>YEK`zNS(f`b|M0^KrTPaaCa*2cW?*n{In(KolMlYk#sjGQ8 z;soUkh5t9vLXYnbr2%u#VWh+$%^_YBP29!UbWSa6Ak8kjmx} z&h_RMEq!Y_6EV8nMk$E;MGH&tr|`$EVr_l!zniw-Bv<8_AwU!AU7}RH$BOqoDP~Gf zyVhc)Y^aVInX!=(I08&qfj=IrHxQ*$9*;&P48^-T_YyjZ4V1t0^EFk?k)9%_HRDPR zPFp4pIdrrT6qJ!?C=5gHW(a@g8m<8Ks>bTGPEna9Go!N1Aifz+3cOSl6cw?arCYSF z1j<{hZ(y>nfqhjnvc&8}*NHb#&0sN`)A?-s5t-26o_e9y`niEJ%mGg$*#7@-)!?9L zNt*$EmZ}1ZCf?nJ3r&rmSbk2nDlQ$16dc06SVjDABGdS&ou(8MH$t*d;IDA6h#2#P|IP`YnA={ zUlvOpBT4L-(o(KaXC1Qn@vo*Cw9thi?*$$At1rGsOlP!S{f!?8+bHr>%gvH=nVzGy z?7zFi?JaW5+`+Pj%UeY8?5Ml?J7;m?<1mDnY?vzW*i(4@4yoRP;=p9+y*-e`(Fj2C zhB@~K$SAOGRvvLc`Am6>R?qcAGHE=jb| z$*{|M<{D;dMsViEV3!IFr{D4p2q{uh)6>Hi4l89CG!}yG3*V;AczlF!nJkDON?Wn+ zYtPEeq);&Ot$x(p;*@LMs)-B5M=Dn+|5&&70OfWNBw`f3Xn*MRN9lZyCnDsiO3AmL zzHoMBeh1|nZVkvJVG%Mx!-Gl%p9NbZO7AOmGwm?_S7`?9Ulgayl91O>mkg%d_y=Hk|y3MSbIJpI(BZl3yw=F+Gq z?{NpAT@AVMt!t5-%0RPHhlMFFXdB#30MIl!Nk~htq9E7`NPa=VPLV^fv#1F$zXw2+ zxBCIN~K0Ht<#RP301k<5Z6u%SPK$-3vN%30|rbOz>!2P z3EB~K&B8}+h%7=~RPlGLYB+ZS7&=JL9K`nsDCah4M@MXwFi1N=r|;%^u`YVek@yg_ z;-bd;;R6BkF99Vmx_;s)T}Q{pMvGx6Ux@~)!S8+xXfeq>LwZ*PO=BwqL(7;8eCmn1 ztr@^CvLuCTBd<6IxizZP)&zrGI}m`OCqi`o5)+Rm$N7e@>HUqOt&E-?H^!tW7!(cE zYRSc%yw6y`4@0=R(a_%r1@o z_=Au!g{MK|uX=G-@8%nbaUlmIRzb#Mzr!*hFUk#IDArF(K!gKYycW1FabQFRX3?)R zMKTWV?l~0IAUEARIf1zig(ADMn4=h%Jk_jirx6jJVt+oK_Po{q8nANw&MOdmE1v1F zHnBE`6#$-Dq?j!;+W9XXLQ3j;aa%B?Ax}-^`0@9EllfJbw;qCSItWI6D5HrSV(s67 zhUBw`d0V#dPKb;8WoJbcnjiYz@Z}J1#>w^tDoe4fQa;%&ma=QDXp}OpAWT6Vs~q_2 zyTLzuD~lY5Z$W#}r=$Ag$5p!yHxmCgGNO9Occ7G~S9NZ{bUr+pk2F?Jo=ejwh#4@> z3`$`F4*~@yT6Hg8{g;Aft~KY%p7_Ec^dGwO@@e}l+6oxN$yo=`*x1-?Wn}b)gGmy| zviodvxzrOl(tpa#L8z73Az&~>SZWXyFCzln@Y@3a@msy@iXz$$;7Yy#cTZdWEwfa( zSdq8(Mo>cb-w|IY=3ARjMsG2^gQ|?k)GPSX=tz9kV+8Jq0Uj+n;?KvI=F1os1t}QW zn73yWD4RqGOgWhapINovAD2xRuD2S=%PKe`Y})0V1IjNbl!lfs64F6~B2+Cz-9{4@ zUthj9+0&m^c&~ML_^*^%njcYR(=YJqI3-Oph-P37KgKmDej9*J_G)6$!sN%O_S2uBc~Jc~fhfk7Jz@Ow zy&S$+2}@1Ny_lG1_eVib3I{ z6Z9p8ws0I-4N10YS4}`E1Qi5r%aj0gRVYY?!vr?eo^d4b^!aG~bJE{e^uo2KRNX>E?fpG7o{JO3zGg-22 zbP!G(_xL72#e_EGGkx@6`xb0?)%5DO1-vqP^mr5D`+?|2l%Nqnv%hqJguw=OQXtYX z5f5&=Oy<_! z`#{&lW zCW2Yg_V)Y3xWs3y|9_X*;YZDVBn_QW+IIhc&?^M2M_XUEUXu1zRLl1&j9bx}DtyJZ zLKPjarMu(&M7&t*=77=G*}}L7c10{nI7q;mz({W{JpJ%i%Ps&HQ2k@r{{}XM1c3qH zR?6-76Df^+-hX&2AhM5#SB4t*keM!^f_b1asgO+BxM`CWpdO5el&}pN`d1UA4B%+n zz&;?cY|pe94-Z`<7&vze2G`o!wgK+#XBTECU0ECnPdvNlr z26B>ds(|xPNkzX2#+g))fv%?YfxXL#Wx4`k8MoiJF}}nUS{pODq-<^;o^YhQqpeDc zU^gmLc%`IFM&_`Tw}Ij@S-xWm)Om!FM5L;4LQ|s<9GCy>Ghrv-dojpvRd_wvB&ZV5 z_`!o?WaRrFUsHG7YQ7yz;}i_ubyQUD)=E0P>_a8UKu0GJKs3By^ZAeat_mVh;1gn< z1vdBhkxvovm2+{Rspa6Ard!BLrvoYr)nmvK3A3fADsU!ZoVAT2<@)RKsht`@m~omw z+*49Q;vQ&4Pm_~Jo^%5Q!?(K!Ii7re>^qM>IjwM~oVH%ld5j4WDHMnY8vs50kSZ@j z6UJUvct0(LPS#+2#&=Cz`WU~Bj)0b{ZT2 zAjAHjKe0Nk$-u&*26zFyU?s>O?!v?ylpKAPEp_*a_YBoz=;0eDFMd4mMj$J;M&?k> zd^m9+LaEo7+NG$7T)CSv1r+x9a3yFfV9_4MFPr-IZk79BtP8>9u>$i_S5j&E#aK>) zO2n%N89JfDH5IywH9>V0%WN9V z5b$X%$9A@qE$wQuArLK3(b8EMa@-URPwXe~rdfk2yZQ$4q5?k1h*Pge*1Bjc zAP_3tN*LnUvS8S`Qx#d`31-&w=+dg7M}@^IH8je)KYj$I99-hdkmY3D!>53qenL9x z9~n6gu1qcp>)70r`ud8XarTdn?)&qcWmCu9$(Z>PtHSsff&W*SH*n~D%$mSuB7_An z9D_AG)U>pCKyM>(A?niM=PzyUW_k`e=*O<(;ViuT{Z`rLM~AN&UM&VvgbHLmMet0q z(NCBAS$Z7}QBtiLqoNcWn)`JpSi&~@nFM1(1l}95utU2QT<8pix|e5L-DAM50j^f{ z`SX1epufg(3psi1iz^y~2p7O95tEh6owaExkw8=2Ai{5QVB?4rhqUd&`XlSVBMU+0A7^J4x# zM`}JL@HzC*oI`z)*BwO417#GH{9 zB3Kx9q@m!)z;O4I^$<>!LU zI1=DvB_ldDz%Z8U$Hm&n1V=a9#WQ-kx|T>3EiX=rqjKR~w{9H~4zTUWRptL?n9JJu zXIBC!#k%yH)bG>`-@9uGWo<%NCyQkJ;?sU1u+PJrtQt=r!&ghZ>eU@JR^ib1BRtMj zV2y+xrS?D|RG>^u)TnEhny&7)5>)hLPDDuUc6OTJABX_4K90VC@8u>h6J6b-#Qg&! zH8NZw6j#*6dy~~mJ7q4Vtz^iVh&r?hJw#P^cP!?@giVD*I0Q`Xcy|&86E%-Q zf`gM$PE{@0ebD-#87*9&$hpjgK05scaLJmM@Yq z&$0HbsN^G9<=VyhIbL3)JH!{PK%3fndOmh<5ylm(Jz_f#yF2F0zW8nibq{7lYK|b7 z&|-40x@+q_v|@OnNSFum&F2h9rYoUex z92a_=Qe-*%@+Tn0C<2EjLY_rI63cxa&0zzk;Uvfs+CI=S+pAa1)V!w^&g)!YUsOUn znTkyiVNV;J>D6)v$RPgX+d zCu~AORTD5y)aR!0P7nl3iqmEHt+d|paa4UyP43d5x{!O6bD^%u{iNW1q=f9;+$R{p z>h&ZtiGuqH&c7uX%%Dgg04C5tSlF0UbKjJc1NxW?hfd_N=4Yo+(NAIOp@;5*pw(}d zrw??XLo$Gqw84IC#~frddj52$`e9ANMj!FK=`(4~}c z-JSqI8q&xhj60ZJ5UL+}M^C>#FK-a6Eq%5wXJW*>cBTa4c>oKPG2|tKL>!dQAiCLg zJqB!lAJ;h*VH%+F2b%-l3F{b!FADcOJ5sxHX|4IpyYw(j<`GY@PR}DOE}jB9rG~xz zAVj_&qd`^+Q+0|8d~bS?IfYNw*2eh|YATdm$_R^y(%dCga9LEr-Z{9la#;9$g4Ozx zs&}TTYHCqhm(p^%IswYT_4e1V%j8sJ+6oL>w{UZk=2|)g3=Q(SDDJ8)s=%IydGsfX z9;WvV2S`w0lXf0DNfR4}(KSJbcRC{xApoCuKKhvvC*&zQqXvRNh0mC51Iv;8ZlvX= zzrnWz{eTkPyK`rq;ORob&Wixh(^2Gd00-qhuCO0wLTJ)3EA$k8y(R*IHwm~w19B9e zcPKP+HDG^?i=Wo&!$6iQX)=w}4y%i55+Ak~*bpLQ1x)ZzsSaVUO4nU{(`ob(3Rs8Y z!ypNya8fQXLsHuVcI&8MlV{7euT`LDI?iz>hN-zNFrjP9z@UM5P)ce@T7^nb=);G~ zc)w3}9=dQZC+85=WAxEYgjNcgL_@yoKc{eLa{xFGfw$8!tR2oX`t4qKp~t|x-DO(H zaA7~g#$kAlCSgwogbI)vUd#psmth9ogykNRM=07bL?90F@Oo2PvbFJtJ4IFpV3ZezL6z8w{ zsi0CuY3SNVTT@+~fblKiiKJn@6wa7Vp*h7@T#CU>S>5Gk~X~D#!GMKnBimm9;0#-i zLuR3ROtx4scNqdD?kSq=&eV)M@3xw&c(`hut2IC5>nIx;e}Y{sF7Zh6wmqU1Agft{ zXfcI3Kxr0G&|K=w!+QfmwE+{tVN4pqFixnAV}E0~JdyfC}%9;^!!xOBa4hW0{8s2?h`w zi3Hk^)htyqKWK4q;4hb61(R*Q3}&gyh>xT5@;dGZ~_1ml&=%9CJ%2I1z;&9i`c;lxp?s6E3iZs1W@}s zrt!pt7p{0{thvm$0$^&&e|=nDk$CaJHk0Mi5f5fGy$Yx!5|fg!Tl|uIA!`-(V+Eba z1rSUXUw|AOvrwxUL!+_=%rmCe% zP$1ZBK5%Igt~X%IM@@`% z@mq;gU-9&plkhb8oNq}qP0|44W1%1u#@WOQ0hkiuYlCdFne5b0_Upnt4eKSQz*XRp zC`(L40dlEFi)_IE;*D~RTz{iS^$n6BaY|sz4#)&{OICx0s$wP&Qb$nkyYH7XFV?dc z|E}4WZkSbX8ZOVw$*?gL4C((wM2K%B_9Cg{>y=TQ&@nObPG>>!C0&LH5|}daqZ}dY z;<~zF{SMGf+e(KP8>UVE$f)2^KgQY%Fy?ti<9#@hAT&{tjeJmKgoTAE6sWD}3K3}_ z$SQujh1i-3?A3x`}{dexjK?gD=39K054Owj zMsr_F`XOzAGq4JivG?e%8q)N5V8*$P5Q^`L8jn5t9~Xdb4~_FXY7|!45s zfq`lXYq(#*!cFJw*#n}=hq0zchGRXw>Dc(BBb#;4&%R+t{=hE(2XrySZ7py2dhd78 z+j$R=HVdpY;(mz2nMul#_p8^62fVPq@P_r2;qre6z(&koV5JOUi8}~CX86oR^yUAv z-Tc);m>lY=4?_M(nO`y+ zXT?UGgMy;z1JW|l;`=}2k)@SaE`#+Nr)O6x&$d+*32v|{uHJX%t$?b^2ObOSl)YBM z%@$IzRxvA?%?WREqlO!9YbG1t$i2zEI?(p*`=awZKNi`zEiAvCeH3@i!*-MTy@!M5 z1HtEwsWlu7ByHGsw_0^;S;5CfRoX|hw2>pxrCr`#;dpUcthKll5GcqwGBV&Je z$+Z)t3;^Ra zWZR{MC;oaOqDnli7^V0!G{x}(O{g1Omd5S9n(?_wCA0MV;hTRy2n62t_gDG(qli=Op4F5a3Z`yu#@G-l^jOF% z(OiP1i3zr?@geIyXAYe%c5OV9vblG07`PU3Q(6M8;0p$xB1ev7z`;<#Yq5`Gx~OMK zv#zeL-P4b9ChYTP144EoI5zn?DXDZ)&Z9I&$)yn^Fw>c+GPI#bz3Vq`%gg4jwe5dNl-FWznmN$k?xK(VLSZ^cqtP; zb~RTl1LVc}dVWkHZAM2%-s3_!@+vpi)p=URVIUB?nQiSDWnUCLaKQTVWo>L+g7fwe z(k;lXhhYY+45@`MG3O$vpMk8Kj^{XAY9Vap@>k@}@GfxTpi^A9+Zh?8rL^M(73Ff~ z(`Ku~uD{;W?{Rc;Li|=s(?5>j3mL#)WgA|W%tV8pnZ49Bdmqpfe$KSH``w>Ef3^o5 z``pxIwuK&=4k92YANV*yq1^beFG@Wf%dEd3L1%LIY)|gKHu;~ah4f2HOY@bo%L(8M ztD|KuXd2G#PFqH)()iMA$y!uQ?83r%>b61b^gBYoqqBSxNNh_(!#z~)$!C{FPR!TY zdnWZP&*TH?t)Ee=i>@m?HSps{T0+9P4<>U+Swo!Els3|86iJ@Lw=wvvUp0i8OIB8mKx~};{ytAiYcADQ>(m7pn}PQxfO|-&!pFJ8 zA;Q-(;k9zj13UP@)%Ekv_HHtFu6^S?9!*$SPoFkG*@aW$2sMh>BOWIB`*_`4DQW2~b-@t_KFrO%Mx}SL&j+vQ_=U({$53lUS5h}{M#*vY9-#d3~A2oD$+g9d73LOvjgr{dIv;$>Y zc^qPbISzcPs=5nMhG?w}qcnG)`;|~~SX6ZHuvLPJo?bX+4`~=(zRJrRLHNf2L05$N z{8uWGHfa zS?rt#9bp>uX={vS;IZP4mT>w{{K_c|!gNobWZASr$%{Dtbc}kDboCzS@bOjXLZ^VR z1aZN%usa@i2AmMF;dVu-SVJ6^aYw5#$A$U%+`__iEQh6+lyo!tMo$02Yl{WIGAwLh zaBvzZ;xuH7HXeZ})T`p+=SaP{lcdfkU+z*zdwUuxUYj?Ihxf*6j-m_sj69oxTIuKt z!qFMcbTnH$FmS$q{3+=n2nu6gGW`Ip#S?-^yqBOD6MPw!gc`xTNl3*8EUq?i{!z58 zq`h>4b7TqVFUA3lyldSyLqiQ1Sfg+3muv3s`0)IyAj#@O;`5@5mP78VS8OAvFH$J= z72SSUA+FEpH8nk*R#bEnmp?3yn+6of5mZ`nr=Oxt)DXVNC@3gMu-v%Q_UdDquV3@} zy{4jMIxMq2>o)q14R{kHqkCMi9(eZRMIHSfJowCygX|I2`}@PhJrPFRFBiRfb^jI} zUR8IKUpgmF{14RNu2?BAa$kpHfA8HpfxI^2>$}BWalC0?LD^8sv8*} z@6HS_Dq>`Z(e+@?NfVQnt}bocP9L57VSrQmrM2}lP6Mwe|2o=KdSgU_$Ok?*I!O%X77*W!5mCOL*tU2oguCszA;2<{L?^B54K_H z0;TkD3=Gpu5k)4$%?k<)w7h(|;f!?c^aqA(XjAx^gWNMXkp5=C$mu+Eb8TKe+KTTh z9bLiYW_k2cQzCYkSL#8s1N9SnVeXipq@sHWm{?8ul_+rFz&`d6Yg1FXq@*NfXfB=F z2MOLFdQ8n3f{q=|x_J#ap~c^BQ*ks8BtCk3dowdLHzCr`FDyWZ_sRF~=cZ?8JE?aK zTV2%@VKz`u@CJ-$yLh>`Yy+5~BcROSS*}*SPr2c-H%k4Ijg5L=Umt|G8)0FC>BHEo zD|mId6N>HT!*f9ufpl~Nza{pLcs}ZmsE{57#vMDHFm)qWCEvd13y3SznCn=fZotEH z$D$IcDM~;Kccza3ufgVx4W-BuH(-A;=BWSzyLDY$@)0<;1Arkvi5oS8L|~nF_IE(`b=CNtC1Zg!PsLb!gax>iLDq)tC{O;idS+*5t=-)_j)=+1o<-l|e=G^x9eM~cf(#ft zpTHmR3QX!$Z`s8pCDULu2h;2J)t|^8wrsI>bu}XAh=nC5L>8=f{8ihgPxvQ|c|aPFnS+BE)_B0u5?12r)B!Syjj4FQ25^+we{5kOlf1ow1}CV{j0W| zz1YK@OiaIOx1(!3h3kBC4M(G8MAm0^f=H97NU{WAuxTu4SzW(=DvU?~VQkd7dKmwX zARVM}^9CE%oLa$HJ-lWEI{t8|@q<#Dgb=jUv$7N~Sc_7je|CJ$@u#|l*Jd*`dc{^a zE(jPK8Ya)oIHM?kmX!2?(GPXl#PDr9N)a5})lsA%-Wu53zjSwZC&denD?*^E)?h?^ zyzB(uB0O>XO9Nc^*0y^i?TSiBz@m=>pXi<V=%o(@j)Ox{h4&qb?SymlP{$K|RLnCS;2>qM(z9={ls$%Kp)_&xG ztZYxkR&uyfQyVajGr+S2*2*U9+2sI#zRYh_lshdbbzqqlC*zjr=eOao+wU@V6bNFP z!maVxnyCK+&mbG2#FLLL{Tb`V(ZPD;OL%u@A=luGM5BhtGK^%4TSbD@k_@u{Gt`hU zO+d*z$(7@CG(q6as&C&;qJqR5yy!AnT6zQt$kp=%j$2E6`!L@KS;*|Zw>#FJ+AGgBC*YsJE1$Z3f4^FmikxrIlpj66l+$(GUv68 z6Lq>z#spMw=q+%StJ#qWY7bE_l=b!|;zm4QUiPeSg(O8Pe*J(Mb}2d|2T}XR zF@gBQ^>MrJH8m4#5n3L!&XWKF^XqTp0uWyz!z=vPFaHWQWO3xormibb`NmQ+GV-$Mlrr1W9^0(~ z4-gR|9=2^`$vd%9m+!ONE>s0g37%Jb=9;PoOe+y%#Tc$fesKK7Cm@hp6d1F{Rc}sy z-Fl{hKNijz9IULl*5A1cBylTaH9H3Zuh|Y=w(?i*lK4=z>$%sewr5DHJ7UWW!{ z^V`g?U++3JP*Y!@|EJ-?>6fLYUz>f<@ZGfdp@6fjioQ3eeD~?orx8y+zkPcHy(0-u z2+g$8L-~1mC}eO{4s_a6wHbgNk18UkoccoL+}E#XP{XOXOL+=azbB`zoK!nD=>=QR zQ14?5X#Ye3e1J~MeQ_>}WQ{paBrnXv(6{_%@JGUVh71l2w$_;XfM5Hrb_Tb(O|r+7 zmB-B$67DUP*jiivaa>EzTyK%9B=1^D;+z*&{RBTDDlDA+J#S$N8H8tpzB_Xpfc>{0 zxTF^*UOs&IGQ?#tP;z4{hBxqlSO^7x%1u;!p42lV7jtQN?bSOF|roC<5wcwqVugyJOSm^`GEp*T93B8N% z)(Hv^cxP>$NU@HGWfjA!`+eOw|3nQVr7kWOdpwsuo7;Zki0s<|pby;K++u-!-7oQW zaGHmo=@Ke->-I6wM z|6ddQ=VgiKmnFsu-hfcLX@#1SZR_rCf_!lEY)W!6^@K~kvR%MQ*!Z3TS0;xo+4M zxCG6uYKtcNO>_1!k?*=D;sO>oS)l}?4cycw!d ziIi-XmMTC9;yMxd@{AS%-KJ+`7>Y2zif!!^I~o`0Is zH~IS5v116ZLwxu6_wP4^rsnwV@i!1ESHHT2oi|%C8=I6IYh-u25wjK5N`uZU>Mh-~1sOlAz$=ORlbM zp0X&JkvB+AK9Z7{_`dnayX&@Sv#hQ6v8bIpiQL4@#%AE<^#(BrpqPd1HSQ}OFsF1F zmxXE@QU-b;17qVfFb_Hl8UpuqP5fmwdlQ3F0f9Wohu*KucS0Fo1Z+4JInTvE3=cOi zx{k2cVf4N>KU&k}d8=KJ+14?C%xY=Za9(&{OXChNF4J4HV`Dbo;-li@?dfIqgjV@- zhJmU9%n)mB?W;o|cZolw;Shqdh$&-sHJiQ(^?_sj_jUR2H?_1xpqtJ`ZA(vwKOnlL z0OotD%U4%lk37Zy>y+s>X>Y8#yK*-!`JCsbdv~_&+~zRRn;-L7(|8B~&1UcFegzk=o8!ZXkrds~38!*$)>FP=8Z`x_Eo`vhfc0VL(Qy2kyah(ajyCUtjo-dS#>E*T zzM$eGpBxn(FkCchCm)5PD;5WcPm+kj)$aog3U@wB^ChFH1!K+evfW8w@R$O!@^3g3R1_$y#eMLKX4 zBMA9HAtC#aq$|Nk-p3r&(LaQO4|m9QTT=I`J9pZ5e`Q54rB^16V;*q0ck*@jV|jNe zmkG}d^&MJz&oz~`iq(;HXZ}c`fZwECd$HXnPfAEA0pD%C1MnDeh5%GGYn=}|Zt*{s z)roEEym0|`{ju*W>JRVVN6%HmsDPllq&31$w#e zg&mBHHops06?=}$%iq+PM+VDV!v)M0Q6z6u3O*{P8@g!fN=)&nirz*)e3$~PBBtTo zau-(Y%F1p!4=^e1AZdI^GBA^KUn5I~OLEfBg8p zIL+Hpw*>wa4KO;+h3ARyn=!5AqEuiT#rIbBgF5Elca#@n9 zKzee4{x#U3INbfJ)IC30d6y1Eb=LA>b>-ic_=16zmX6;}^QhMfVL{63I?vqV{N!)N ztzvZq_7B?-F*~6*Jr~$@!-9w#Zfn@veo}j2!cOs)MCL5M#rDK|Sy@6w-zK!G#H;7!iyC%p-)`ISqs`_LjPw{^^Z6EV zT#Ju-Chqg`XQ(>&xUJX2u@{A=!1LXX9Jugq=|7C;w%~E$*+0fq&LPIKozDYqpbx1v zk9pl3sJx^qk^x3+(bo%Rs(LDBb}_ElyKD&F{^5HjfF`78yUIxUklj%<2fTO2L}f)6 z9f`%whSnPT#kZ9}p4vHsF%Yr8I4^DS#j2}kx7S6E{LDS6om)KhDT)ivg zz=Bpo8|w(}ift>a%eti(QVvnxJ&j|NFFT9!HCQded^MEw)R$K@vXr621lGa1@H*gyA~+C1BF%Gh{#*weg}=T6^`M5fj2{9}rLYRx;+H+7x9GdM5+ znA_&+FfOL)`|HW-O+KpIM8hv8zb#YGQ2ov29bGLNF2`T3XKLo`ekEL7{r4lTh1s1y z>uLTlXG+)J4*wW$YQz1UtNs0kL+AEZhaWUO;x&-NQ_a0oCA)evl2UYW} z3q7-U@7g~FQ#(AO+ji40_gemu>=H1%93ZE`^9K1WrpxHmDI1q`Zm~6&8w#rX5kyds zPk*qvH%bzy%WWZX6P;glNJ8pf2@ z^@n)Psx$C@gCuEOJU;|kbyXH#xyL7bzuzyZ+f71z^Htf=C_oMoEof4W=!7o zIdHsI(k>@n_4k;jmv*JgPtm%PFHu5naDGP*4QuVGi`?8IYbv-IY0N76l7FROD9<-5ghMY>suvrqB}MNf#2CYzUvE9Hzy(Tr&({ z)toxDI-^R#0aB$A9zgi!Lodxg?M{}%(t%Bemb`WLfv+-1Qceiy6xPfv* zCbleJnm4y=fp;yHaIW#}>J`;Cb=OE$npq2hH9UU{0$P76?Ml68D!yi~@f=UHuxepj zwJ8tpPA6$;jjJ1u>t0^7ccO4*rv8tM{h(Wb_u{(;Zh?Pu7UfT9x3W;){_GGK{#v#^ z%F*SR z2^xl}KjTtg=FIOr=G;qpyKHK02weYkq|>DIy*7TXpI)@;vs?3R47-N=kbSdivw-#>f^)yT4YnOF#yX;Q!g}*Il!1_Ds&6QvI&%{7c8jr+v;H zy}i~x#Yl`_>htdFf#1LR9sia#C->PCU{7lAx1HAS#YIGbYs+jlcpQIoE0eG68Ow&- zXR5Z_Ti(}|xcSNu*wUT1G5*4@@&Lhun^pd&AKI^(bfM~7*!3B6bF4N@-uY_op7(2u zn3}F_`P*MV&9}km;l6z1_Ba22?@Z1sUTc2c<@1iURu_M8+n!0*U|^b{c{%a?TRXuk zy-F)~9K1W@dF1(<@1j;(rn5eMz_NDbu5GuMp?#LgSZ7Z;hTm2KF%5 z@Ba5lvUt9wPteBd`I`F}H<-^jByc%VcSUl`?ZBkncf^a|)y&%yW`6$2*|~S#{F!kw zCP=MvhA?|zV2~*)>a8UD6IuR{`IHUnLDkYV_y6u~G z??BA^re{)jEE&IVtKQ2utNujFMcc_gTY%LlaD*`b=Zpm(cU9XK*T0L~edo4g^0xqu z6!T=JhQA88U*COKX}e-^i%86e2l4yAo%c__^!L!#$xWSe&x8U`?E5qGxbr_J@$d^W z+v;npEhHqAvS%K%J$r=HtTi$*>c}9O%vV{5lQ%|y4d#ktYuFEkm zj|>h@HgD&C6z^Yh-11$_{F(A4$L-RBML)~byNfWe_rIL+O=*UuV*PdQ%+Gw1lg#tV z&v!Z+Rxguo{#6{;1niTn*tf6lwo>QWu0wY#Zra}8_1S%Psf%IZ-k+AQHEw82Ff!=_ zPidI9*Wk@o7JdeX4dpwUU6a@t7$)d0^JZpXxKR(R)@KGYFual4F46j$n;~Jn;dRY* zfeatsoN-gVblG=>X}xo#DicOfWmp_}v z{p~;qn-|?49izkfj{7hAtLD6_Ofz>@{JDJ4xeG^*EriMAlD=F9CpAq^ z{rRW+J$lcGkMX75P95^+H!H6F2OrJJOH15D(5Ks}U;bQf`vaeUzSQ*7Cr|FG>p1Tf z6%~E=;e)5#;rpJRo24Hycn=I19Xxa>^7ZSIW@9=@Il1izcYBxh|EdfrQ}E#`V=^Xg z#9BpF^?s=jb#YS@_1aS5+BQ2oI|flFnj1H6%rEqZr&w$pPukO!JSl?x4^2$EKlch6cIH6O}{;PmfE5}{LaW>-3 z8}fvN1b)X^)6E8Navw45!DIUC!p^G;{mmcD!zY|aTQg3cKE0=OX1r^Ewdj(mVXVQ< z`hwy&im#k@=EW5mCzw`8yiL~r&fx~h^HKrqR;V!MT z?6l9-j+Qp*xSEY{)95E&?LLkB-xu)W1q&y2uv+?s^j&^R(vT*P_-?h+SL-Di92 zWUEPv?ngH=;y2RMOWerT@1&*m?#Q)^j*X2C$giT&U-Jw;CntB1qtZ9EyguNV`WCkd zS^>+~+QT~e4gtc#!dpl!&CNBGV$0$&F)`^bD-My>w5JV}w6sFsJqid2cvsQU5sJ@B zNKEvNl@B?bo^m-=LSN|4ojY`QR)2pxp)qCLKDS3v_zXSYt=IT&->X7}wvs}H>=dXz z7*;dsuB}3?NbjLFtoE>eO9?KoyOD1@RsYo zgHkL{2KI`%t~&kr`IC%fQ1!}t>z>2nkxJJpgL&SirL89&JaVLO+;uItafX^x(@VGb z!KcQ?eOTubjdbf4|M@jQ zVyQ9d>XXpWjxmO-b${+tJw;pU(xrW*k6*rQB_kty_wJqBvuArcou=e{X-}7R_v!iC z>?gLJ#*bgWVwJDGc=2K=@0PAEv&-V(kse3v5sz?rIl1niKMy&XJ7s@JEgNobZr&nB zO+_{EO2!J0J9aYv_3I7Ao|H{*Db3Bzlf>St9c2)-j(6Ug8O8cby^TRGT$B-)CAo$0 znfE5dg%!QO@ol1%TBm!i%eDN=vm=w=FPyOXp+uwKK|}1*eJw35x_JIYb6qY=J8W!h z1e0(@o`SdAXn3}5+t$+`6~&U|%>BsN*US2Ad)8h`BI?@R~^&8O2ZJywxv%q&wML%JB=; z_2!?)J=5!R;^y+jh?(K0=*Y-3RCB0ptbBab7hW8{>*29cQ%j4>W!YYL0e|lie(~sD zm!(m@9!JNn>XzvnzlYLNR##WO9zD9H-o;@o99t%K;o$BK8#j{eq;}Z5cW+U3Q?iyx z=6GY-_4tL#>S|AK@2$7G3j8Mf%Jm!GTtuzf-`m&cK{F!~>dVzgN7VDAQ(RnU^z>L( zr{l!PNUJO3uB^w8Z||=TC+aErwr!Kd0}N2t{`BL^v&q>u^KHYcef!sTYWJksjcYH@ z_xZD(I8lz(;JzegSP?{2{|qgGqg3S6<6S!QE@SNiKYsi;AR@wuB{({iduTj=j)|O{ zd}3+5u+Q9eDWrypp5Et3nEg7^H4~G!Pm04t9B;3!I=_yM?L~#DoK5-`w4J9=(*5)2 zbDCMV$ucrBl#T|_&3QiX@EB~^uRp>STOK{^%OyQHI5>?RUl(!a{^!QV7ZsJ2U+U_f z#mc>u&~aVi;o;`?YGmi&h$&qDd4k(|K>v}Tx4qe-x^EDpU* z;ntpsUQN85dXLyDN#9nx)|On0Y+Y6t41Z5ev6`5e;DIr#tE+3I>Jio0U`hI!`Ys;o z{_%0el)}}VcoAmiyVAZiXZG#eciq_dJoZN%8d7+a02>=ygkiYz3r$VUb4LSIQnd32 zW}0;34qbTRwP?EhF#1JVz4BC>HAQ`!R;DTK!s6o7&``#g!NE_Xqgnmv`5uX`&g;KP zNiqM{Q%o})tKl&7#Qoe9=hExf2hrVZKUdEEY21lRCXp`f#euc|b*m=Y_y47?|F4(w z{p3@*-({X`x3}bQc}2zce21ALla%}izkmPcHP>IBpOgqsDOkMeS^h!&f>p$*)zYll z{r(c-8jZBuwM`XX@$Zs!uc=WYi5nOk_S$kZfE-J@xH(mSa;|WVQCC;jth20eZN=Pa zWu}SbhFY0%Y&F_n^j=aDheDWe%P*(kn}VAIIknd9@)nixXOgN86RC}s@uz6BH9T4J ziU2u@jsxl62C%|CvE9NPhS*7Nk}P-Q;*N+e{MZu|9Nb&J-?an}ytP3r;%aJ(ij%bT zCMxoc?d|QYuP$6@OGhhvrYM?VvjD8ZWj#Iv?Z&G4kJzsG2qGwyd^<=xhYdyl=-DJ)AetsjZTk!$}3cK9Y#BRu2S64?SK71v2 z8#Sk!7q*a3f%8)49eVVUk9CS-9j4529G&ImGX3+jD%E#0Pp6zVsQCDTg9zgkJUK2mn>hW`omqN zuU|ii;>P^!OU(y!9Z4yvL8oxN3s$#Rm+$!5I`>CdjGZ}ihTrnXmgVJTcY(`!_FO~5 z!!t~ED9pNshMQR=R8*e6^D_*)BRwwgOg84Wl~wV*joTvBjv`s~Kq6KY-XRo02WRZnR&A}+IM&mM=tm_W88M?BFq27uA)3te3;Z{Myl zp$J}T&$Uxbmv{ap9=e3pbl!DkSSR7#yT@bg*=MVTr?!(tV4d;$oewPs`iZd7OsZ_@ zE%jl?wZ4A+%Er#_{liiK9m0RCtFSA!-F0O~{e4D8%*Ji|YJg%AVq+gDgp10Ljg4{Z z7H#ljP*G9&+}Rlh6dBUSL6nJM5=XuN`A`P~tAU!xqGSHVi$tN^D`Y$J5vUL^iM#jE zZtsEjj#h@78%6=I%X4goyL)=bWMpI#we#t;wYBG0m&Tt21~%Ok!)n`^fri-U$JhDM zs#?TTQFLL$%HquZn3zK-g?9mH84C&u1gr1L9WDke<_;5I16t}H9o-=$B&3`tY86pM zz{krUZZTqs^mKQ-4c5i2x3{l0x?1+SDmvRDliN^PS-H8uSqLk3^VO?YD}s5pr5RS2 zHM~`ytmNxTXPa{Q_<_>WHUj(7hPf;nE9WL8uhY8!!U<(S4!S*@<$8;QBw@UE7Nt4Wn-euc#f^J z++kErhH{lZYpruzf61*B`ekQjk=z=4bpqQPQapmiTt!jwm^Jmfa%_%e-s*Uhx=L@J zclXVkqe*v861B>TCa>9a@Dq)h?1c;9E`A2v-o=GEkONlHjS`!@Ch~00j~@p$j);lv z-|fADiHV7BvU0Br1qH>#^z?>_iO#BH>d7C!ecPreJn62mU{d#;A@NGuCU0+VIy1AE z>utu)KGK3_gRbrzG5_J{?T#VaSUPKh|zLWN;3FAvAPM5Z~ z^eulflfIBmJDf`^&wiI={Yb9Z)!?+U(tM4xXV(|3tvaGW0sahz3QbI`B>GUFD8s_B zm>bhNc<^9%k;k^6le+8Pr=?wG1Zm?c6KrBtH{C}?MIyZl4drRwvwL^?Z1h-RPL4)> z(}NxK2cDdJXZiE%rKxPopX4`9On6!yXGgY*PlcVyFfUx$$IHtrQNY19jk{tbVMhc1 zH~ivC2p?nOHrh$*ew$Jtfu8O@7d0eg81D3Y>q8%()aze%_gLnLW*4rlF4@nv7)v%a?!HQ&iNtrW73+YisU;)kTv;okAwnIEB5XeCp}EV}*eIUcSDPK>oeGy-F%7 z_fU;{(yB#^QH>`D?ESLKGqihlk=fe|Pf3AD=qoDguxg9B>fMNe*;bS@hN(k5*#C>&wW}c6Juw z&`9?h85#LpRCG_;pGh8w{Pp9914u z%T;7$AJ&-n+0PiRE-y?^Rg3ww9#MG3mZ*O9>IL)snSFO09iOQkJw#1SO-@M}ciONj z-I(IFNKlJvFyt{t$Q%%kzn>TN!w;){zrHtQpI25l3EjD)Pm} z;gqW#ibSzB34fvOe2{suuugsL2s`^$Fgv5~f9o-qP=_4_e~SF2x{OSg{F~16--#{6 zy7_;C;2;4>zlR)f?%;0xnI37WYaWDNW@W|Yyl9OQYj@6-5E{yibaiWcCjFmYe0zzR zi>tQTm?&8OuQ;!oUb=KCN~h3;kZEMaMmtCwjJ!lLNAu zc}~;r-Mf)R;@Y){Grju{`RwB;LJdf@9o5i}BWj9>N{(sjc}b-NHT>B$T;AGBhaz}- zU{)yC-0bVOZ@cK|9s&|<0(lyIZf48Z+1YtcL7@zr`SJ7T*GH^ziBy>fFH`pz9iykG z*DQ4DFj}#$|MT0t=AGMPRJ?758*N&7b6NNA-(T@cV9&8jiQ*7#Dk^eDQmFBS8+CI= zUdlIed2JE08!L%dj)r7pFk+pP2hrdFYVOk9IG^oNyya%r$P4>I*xA{O?nB$!z{A6% z(PrM6=MCc0+|u%?wssdYGc%px_K;zjm5HjAr8$e=KhEoBFUnoC8YUCR4#4W-y7T*b zR#w)>@85T$OO|==cZsjNG5KOKGcB#|a^t+dp5DFXWhds$tSp)fft((Itl&8)|L$I1 zTku?sOiw_A`f#h`yTf>Vf&Q1TUnT7A`LTEt6BE1p`#tv@QQ#K3q}3Nvb>7yN*PuFV z2by_g((BifDHctQjd~q9HZ&)%k$@~17#Mcq$vQ91MuMV_^Jg%heLy0i-YyxGR}!z~ zQoMIbiRAb1%jZB5SxIVIT1goq$B+9egbGRlS6a_c=n`8LqSrvXKXej5Mxje7qj9mZ zyGgBC7OWllj)5qTg8=R9N_39p-*FRv4aYFHVux*p^-lBfT#R=9Rq=9z8@`Us zP+U@}fw;IEn{CxA0iuc|Cdx(Uit6Dk+JB9;gWq(c|VR82Arp#Exg> z=j9opQbma_&W)!iOAgUB1xd0*0{h?8`h#<1IQE8U{XUhG4EPl}*->1)o}_g7ve7%U z2k!3O`1Vn@Snu@>4Lx52j+u?+rl(V(Oq1NgT~}#|`z!O`??2l1!K5VS_3Mv#(bGc* zQA4*g@b3g|qUOwgd!p__%y(PApSj}&>q&AiPf4*hR#xu7s-~WaG@opX-9!lH!8lz<>{l*u|_#mYo zx>;w}4wyf`JXH;dwPVAkO-0b(K7IOxQqnj;+$xxeuCZ~;Kiz8E1&Dh23Pwh3jVU_* zQa<~bj~v+yvMT9r)|N?TKR<2fsHUcN;NZaxfH&tZT)>mKUuOAIZW916;ALcTGKJ*p znbSb$B)7M3kGXkz+_+lK^6bksef|5;p42W~dbpSkHpwRA+-nm#o^@#VRsu5M!Gai2 zq0Ag$k(89|1{0xPY~WEy%FAPrJXmoIi*q)sPcLnwWi|sPlkm<0vB{D>^V4;TA%5mY zMjs)%_4M}Mi@6Y3^ySNWw#!1j?{5M~MMXsc%yvw( z)~y4xOTF=J-}C3sBXV-+uno^jNJ!*PU4b@&UEroDwvyhmw2|yuU99}X>}(m}jm1Rw zndcz2V;#8!Q|P?Y&uH3_bJ5=KnZG}!!}P#itT4N! zq-13Ufuw#ZF24U-gR#R&H4MRg!)c%&%R`QgWpbpU= zKZ-NEe7d*Mq1>b`rIIl^=aCRA>wVn7;Flxe2eUO5z!?&>Tq(jo{R} zfu{hxzM<=gEpVntm=|{DxW{60y^qZRaMm=dA_}@wN*nu5q%$W z508c@{(JB5ftIwm+TYh0k3rle{3+NHp3@&3=Wg}zr@nhPFflLl1seY2pdh0^W=|c_ zPlSaTB;DV=JEDx?RjCPu3g&LPL4dof&GloNJpzC_SkP4M|YH1${Cy zc(CgXCkp=PY)1p$oXw1R`}?=0`-2C)FAc*!Jw0?m(59`!eqJBatNri${-_%6^=eMZ-DBzNk z&DmB*r2XhN^6~NM$JPC;4B}c3=dHQWweYX|tBvug1m3!a)sDRlN#`tNJTBw!2c5v7 z;**p2l^zR_h3Z*URYmdW(IWuOPY^?R^iZdt1O<7a%oW4b0!ao7Jt?|8an|obp!|N( zoI6tnZ=KhRgB%qV7e^|w9SHo!W%=XW>zEkb@2}5G=s-oI>h%F{gVzYltf;-6K|w)* zD1_3|4-~BGxvSgTHHptHE8B$6C5Rk~jVJsK7H)1TP`leUHl^pt8FPmcd}jAM2RAsXb8o#WWYf#qfy<2GLL7~ z`6M5oXMVm&tU~BR_y`$yoJfyB0kOD@^Vcplr6%x*t^%0+4eh)rcZ&3dJUS*ML=R!) zL3DI<4XW}wacEUooQYRIP^{my-A$9z^Zxzy5@*k*nszWI5=l_I$bdzAARF=k^)u|SD>3C(l{^LF;3U>ZBuWn9fT!Si2xDCIjr>Pj%fIXN3 z3k$^YJ}<|pK+{~n9l_n(4h+aR$LRDZ*#^3K$+T_jmKIVz5A z6cmjbrtnyAmWa%?Tm8YN9+`L{xRINZ2+?+yhaHkOfW$MYAwZV#Y1tP-2lFqJk9d;x)cGXy;5kRaH^B z1~~6f>F49Kjc9yR{ne~uVmcE?I*5fWoN^1 z+9M?;#qq1A(IVr>T;?s+z?IhEOeWPur8QBx5MKFct;5fVYSGZppmCyY=#=QpPY3j3 z4V~~*9=qk-?CeO_wbdxmX+Lw*AD^FSw9N=m-1~0;c6#R!8gPel;Bj84Cd!vCZGw}E zsy&bwCJ|XPe@pN8?Rmd(z>{Oe(05PbMw{E(w#_*vX=d*xDP6o6quTZB*DpF}&_jU4 zb?~&1lh~I8yEnzg7jT!{Lt?sU7G;w}O4iPQGc`}<)#-1fr?(DE`SVXpKU-DRIs=^) zeM7^zjC|NJB)7H?=6ty;v%YVWvOgGxB#o+TrOyO?zi3iOiTzDt>P%~Y&e^A0D4d_1 ztdL%itZyj}HIyZc(?JM}uASeUAjHo$U&m4?#%G`8``VpJW9&wTSKpi;u_qOvd!6ly|?7O zY^#34~!Yk<|c&e+ZGm|z;Ou;c)7T1S72U!;BrIY<_1)1n46N5xMqAxO4H(VJ55an zhnb-p&+TR!>g&7Pv#sdN3YULx1Ahnet{W1IDx(RE{J%~FtE;c4f^7^; z(ft0#Hbfyn7yVFGA*4ih2$;8L?E+}^^7j7JQ|zgH<%;*Wz!QCnu8Yqa(-ep+1GW6B z4)=$W5|x;^9T}EVq%Yh$+<3BQRB-e*4L7P(dT; zvdq76!-mJ2oYa1kSnBCc3zkE5ag@Xb{xZx3o#x+3zXCut%DtLtYRp>=oa5cfXVxky zwle)Jeg(;yeVNfNIm>WLc*)<{f!H0Q_;g&f`W6irfC@~ z!2tnME-o(DZ`_a~EDXh4!+&59Xb+nwyu*T)uFW12XH;Y5A^|co9i8yn2><>l8(R(k z*fitSzCN9m;F$DuZu0Hhsd}l8UyiWL%e3H`>*CUKjXQPf6q}%6aG2BY^Z158y1T`3 zkytcdxHaE}6wDyD{1_Wk0AH>N-Ve4S#UbLy$^1P}_xN98tyuxzlZ;Blmx%QT0H`1L zJqm(Y1cbBkxb7=WC`%6@2D2PI`1)+sZ?WW4r%(3`5BtCvWj=cJYx5w|UY^D<Po)B~T_Tb)GOS?C(5MheI}S^a zsDCh|=!8Vdf`8(3K^cjh+|Qps%M{|iwSWopnl`&ZWTFw;i=wEeX==*?HK%8Wt*_kw z5580ke*{Io2M*;xU7UZas_Bcxaa*8KpcN804V3g3sdajx6?JucjE#+>?84qRmX?-I z(#j)8lQ6aahD*i9O`BLiHkyqGICy#Y0ppb^+$Z>#)^;KRMf}r0B^dvYmF<7WzXYWm z90WnqH!CVCUcP+!BWMA-{70ejy!+q3tLVoWDgj@>t#a^O8ATDc+g9%H;UVQ&E+%^^ zNy7sImwwzQfQFF4#!>^&X0I(kwPgx1b%fK2wekQU{QLLsN*WpuiD(kcAYSmHTDZBd zgztPO5{-xm5Ed%7D#cP;2dv5iETL;9@df{$d~r4UO>{|*OLscYY30EmId|@yxV3e9 z4Wd_f;dsa)|A5z04qek?cI3)-nv);BT5J>lm6Z8{5dRn*_51PT`uyUe-bDAOAQ8vR zR8@pN8+TX_pAPYVX3~`0lj6E^>;VPi8)YNj!-3yY(dQsZT^sx!6Z$F=F^W7|EJc*U z)3!&of}xNQ!L+@{E=3d+bP{WpW_VLp^T^@dyLT%gX9?dYgQmZ~e={f>5z6Gd)jsfg zWV?^oJF9*LUpgLgMAV4o7Q&^!2|1Zm0QEl#ej@$A_tIZbF5aPt*gHC&J^U;Z-bxU+ z@ov$jk<)7G>OQ>zvWJLej7|$Z8g!PRlyqD(Gc(8rmY~N$vRZfH!UaMJM6!fg?P$Qx zrs31U~kmV!9o90RrRR7qhknym6nx>|l zj?<(^nLS;dq3g{yv43Jqqx+rvY-oK%t4-$%xew3Zq;IG^f`vquy+b#0IZ@4~PhL{^rd$((Q;S$dKZ*vMw84z;lHYtsHLk ztAaT}O%`%6-Du^Eh}ADS<*qb?N)}Q&Vs3uTK&{Wv4)-1bDT-=jdG}Aky()DG7WCeq z$!5n%Mi3(U13Gby~)_eJ||w$Gt= zq(3tJ2kDXeHr*0lIU4>q?OBNiOwg}2yaguyUrGKv4JxTEXfTLjtS3P+II3X_Ikcpt z#H&^2j|b4v!AN)jZ0R0YmWmjVj}eyU=)}3JRCTgh(Hsv#WCJg}!=~ zE=n5)DHs+Fwxv;eZdTT{?vHm7k`TroClk+7C*Xm`l!+W;w08NYPh_skefurI?AZcj zNgqFSx%enYOZPOW>qyzy@DwckqDPP**KV@UUyOx?MZ%;jr-FC@f5^;-1Q*vgh+lHx z<@0`UMcAqa{9pc$lvQZO93W|K({z_Y1u+dbWViHa74ia{&q@eTX9D z*u|lzr3OeY!acaAt4jtvAKIkKMn%^pFULetIGOK=H%!D#Hc>KdcXV{@amhjKcpYKq zTMxCNw?~gdEJ2z4SX8tQmPpjh=;&z1Bjp$sNS8+K<42yHyWLZ?k@OL}25HIFRnmc+ z6vdE=3OP~@8@IN7&qin}*N|8vxnZTOJCQfBF3frM3Xv-NcA{_t$!VrR9copr;3lp9 zGvO9I1~+cR*n|xI@hH4s4CaVkZ4(o5n68;8z@dJv-7RdUNr=j*OY~c|Z+C~h0?OyH z#u^)IqN$G(iD0#<#ddVqpnoAd_W=qiMui|s0b!Iwk$U{>+4=z4jVwh_Zb-sTzq2`D zJeiuBf*9QgORfEl74FkJIx=$2z~Dhnj^NHGjn(d3_mD`nwY5mL6S+){iax+naArxk z9-tD3(iKB^cL2-GBhjj)sp$(T;Q%TzcpThaBDdg%0=7J?vsQ#uSWT>e(YGw?9^}!x zb#+^wCoci^Ss|%W%RlYiIjF>{=ByZa+q?I|4{o#R(C<;F$n>F935R)vR3w7J`smiHuC z$lNHhU&j~xNGVu;6RUOh%?cD}>bafy+xLa|PlB{L#siigpZ zvw{>3_RmLHxBHzY?v|Z`GlfQvR<$0c(_yGf?x(K;_)5V+A%2m_#q^eVFH#ox^?ffz zT8t!aJ*d^S($c;Pzvhgst!-|fO=NZZzvo8(&K?6FfcpCU#S3YCc{uMf za1BqP46EL{mAvz<3tKdjE7AUZo%Z)hHHg)CWP0y80)rJ!;$CWM)r%MRu1pkD*1uIh zu}<8Ra)0B%+3)=^0 zEG?-*4+U4PL4zGQ;kvMmEW)nKSsiXPkTs+(m~+9bgd3~&!HF)^EB^IscW|-K-@f_4 zP|428QBhN)`uXF>&Rw-2cpkmySME$z@_Bnnj-p7jvPAXv>OFk)=rAQEC1IwFjL4w? zMFsD6J; zYb+T=jU&-)>tK~$z{2LJGA?vkiAPKaK@{%R2E{dY<4wEhDJM?OQ%R2Bw~ z#NP%^$hiDZa zBY#O?*66Zlk6zj{bOTBh7`(HySgloIB0fZ1qP0~I^E71&DHo<@W(Z_Y!6fVj^g~z$ zrdPX_qB8f3R^ zn-7J*>+?j7402@m{;;c{C)WS!7%8D)9bnPSvsX5{TIk~JGYpYuGj=e^4HTM5()~lH z!?%b#wijt>X^HtKL|z4PeHkgKyI$6-buo)&VzT=3tFKo@Vk z%f9YU_s=ORn)BWQ{+yVY7$~X8iTzKh31QcrKYzYV!IMbf!jul-;^O)Q>46l{@~szJ zVIH$G6J_+~)&@7VzJtACWGEGmKj?J~)Yxl?Ra{2K9-fY0C(hf{Y1l))X7 zTiYSNM%g15^e?%cESHrWX}SL_q_YJCri90NegNMgX?6z*nbR$ll%5iia9heD@I8S% z1U$XfnL{&6$?F6sXBnZ`4GwNab>J5eAi5l0NoAD}(y_>6;2XTty$7U@@Q?f<44Dq@$yoexyo&>iQN^H)b--ZQF_M&3u!E zi|a``x0oex1W{2jv%to~696;ze1h6{@H23WwoG}i9Yp$vYTrKTIEBzC+^`_jL72|p zy>_v3FUrfyA0nk&^hxJ9&T*n6)yeF4mOOm;Fcm%hv9D*ZcA+O72Cq}@LNPpqT!f{a zUEEnu3S}v&jamgxFY!hs;l3fa!`%zjIspnEQKpf&qV8Q;S^0vfAmTz$7oJOx(JXFwNC}vHnIqal7ozK(1D~$pR21C(}^R-cCt&mDeNi^KqTD?K%2KO{IexMAmYiw3Wof_ zs24u+XDjcDI@3E8)Zf|9e_Q-H<*r&R*R7<|@^YUSHYNNR%E6Vq%Od}`=tko3(2LSo ziO2&aHEr$An~972^KY70=r)*YbI;b?(iOJ+1Xa=ES`kZ|4F%E}&)l%%9Q;@2Y2 zdOm!(1!^8vLR7B;Bc&TSu6t%|sR7=*fS}-0#6Pq!{@3Zc<_vLq&kH_vQ#wnE>A|*| zshFxFx^$1o%0(-ZTw8+js`r< z&2@ZhK`ieVFCNOL&FXlKJ3(}1J9g|o20?&@t+f>a@}2m&?%033+2=R{4l(heaAn7r zFJJIhWsHpz$^;?13C@@Sf7RMyOCe!Kune@7+C_wv=(-y8>l^L#iP1Y4))|~>nVHhi zY8#Wae87h2#a8E8F;&oJu%vRjo?)QQ&af&FB5LF1nQwK&Lqn3^1aC3`9*HX`JSqb! zHkWO?JRKSWw_~|_ZJ82`(RJ(i%=FaMSww#gDuS3xhUuCvqbfm<52=Jge0i?!(Egn; z%aF}R>irDdCeK+$1o>c&>(@p}eg5+0u58S@UAidWBqq_w_I;;bZihEb{JS6`MhnP% zNlgN%0`Z^K(qi;FH*AQcH^;5Hj3({-5|JM#0F{q6s$ihLwcivCbJN7m08^o;k-E-Mo3TU!1S&!cS_%oMX{&ea1?2ZH9>$vue1g^T5Zu z>(w+gWHD?KiD?ID*-@U+!JTO>!N0~@xPM?leTeLTo1NDH9z8Qqd!O*CH5xlDG_x%| zh)Fmst)2f?$?#Bq&&|aF+`UOih(xBKR%i7$^*ZtKf~Dk6i<`N&qb#K7uU;kc$PhBF z`UfX*Ow9b35Sz$9VHD#a%kB&iLq9Jsd{=hp?npdg-tB2x+G!v}e+aIJN+{@g6Xl)v z?E0TEB_yfixb(|vFsaCX;DFl?%WNZG;(LN?5MQ0R0OY8R8#j8Bi^8q+GgEkZDyB5s zB$$=7h#|xsqMLJO%|0)De_>};z8uVB0%6V%H0#gI$t%Dh)NQYKBfT(*#I@jWMrC2z`w`|qlGM($VA3o5-w7lX`0aACc%Nlx&+imCdz+U z1Uy{-nML6AT3B}K=is0>JQo0VTSTaR{sF7~Q#lt@=8})&f!mYunlM)X2~uZFzWnF2 z0{+{O)&D&4;J@|@h7wRGfO2Ut#f@hK?g#N`qFiism+RV67bHk|{Wv2c-irA=x^QsG z%(vAL1h>pidS0+RO~G=KTKdbW*Q1Q-7mp-;8qla)Vs`0&#g2D7e&Y=lYENIX=c zzzhxD%&{G%OG3`?;O?zxlXOB-sP7wRM%w~0ecQ<1mW!+ySp>$sZRc!yOSTdT6m;V^ z@$nJx0+i8?22rF2Cte}{Y>YJJsC;&1oB7d`Cm&xwbtP?OrH9fr!e4APD_W)AIG1r( zSEzO4cq0bvh>avV-@P8KE(*}Aj+ni47)pryTwnhjTT*J+mr>{i$!H~Sb#XXq9uSa@ z?-qjyMxh9@42%?oCm1YXb(pMX$xeY<*!97u!s5|6{)!%0Rs^!d6jc(%=m(EQF7Ikn zUR^UYKV)!?weU6s2(j$)yK7{tn9`4i#!8H^!_+0*EPR#hXK7}%yUswFi&3E!+M7Sx zlD1jWoftL4yGCkET3efG(+;}pBlW(qNXG*2+W&fK_zn{}`f*d2hd*~Ey;u!dPeOd7 zd^n|$0wOyC3-b#Lx~RlP$jagn0K=r=S3-6ak_Q)^Fh?HM45_de(48L6m(npx;kv0q1ltOFu*4qF% zZm%rb=*QI_#y%vG;C|dUAI9`4_dKs)(LWQS-_65`T}i)gjZaKY-bG9%S*MVK1=^Oe z>KfwyML0X+A#rdaEQXbf zoxjK`@1dSJzn=Qk-WvhV&wehh^q5x_pDeyjagxO$U+08&eqOcB*plGfm8@Wa{)wsT z_{7Ber7zvjy!!pQt|9%BWz|msJKu03HP|fm3JlnVss3n?2O=_uv1!NyhhHr>+%PZz z=2(YK{{Ys9My9DZWMq`$EnJxMa6_yRRz2W?JH6{$^(C+-D27GArzeq!BSOJZ1)FxC zUWLxZb4yYYV5M&L1-$5NeW+$nBgSS zL9ks3pIBvVvA&`YuN30%T?k{a1TZ?R#2W(;O1L!mJU~E#d=&Fn@isyY{V(eE zwJLbxcrge{B00e{5)6b-O$)^hM$<-EZxam`@_*9xgiKTBON%+&`^2-&xaoo18z#XD zt2FIb>3Cg9;l(Pw_7wEy6u=VXBy1X`(5bd-yKhZ6B_d!7(JcztM-}-5NCCA-if$z_ zin(Zdp}=xx+-!Krz{qHfQz+Ch|KPg1a0GhbGcbctK^xg<9ne7p5)_mA!uT!jq1?OE zmoYLh7-57o9g%T7hVKsp1znVsc9I<+oF?QMFrHQm-{5m|a}Wr#F)ULAm?ber*F-mr z;~^qAu4WF5q~J{%VYZ3sj=enu^F8p&R51QX+#hBMw~~;Gdas>5>_{UWDuavTULJy> z41(e#;2{k$D}|@Pp|iot&f1z79wF*BELvh@?WJ7oOoYE+T&v5Qu89*F<2kbd1p?V9 z=s4fxF+xI&qE118E5x`8H&Qh>J907_cl5*IJWNVQ#Y)O1Mr2+Pb{Xz|FvPronU$3l zW!2z*SpeM$1MSxg>Uz~ysTPa%wqr~4^8-#3DVh3eL#f(LJaMsT(U!O)4AqBzTbdp` zyXUZ61j?Q&4*LLnsfEnHg_OTEmMdswgLntZFM%wGv1MYw8EdURSxX3l)ZPH$A zXs%5?1`dG!v92YqLSH010HHa_gs@_^kbr{~)z*YvXTrrqJ?UL2rWhK{DQ=vi%`j`b z)PE`=?6aQLP<_G%HzL3a6);1aABY|jkuif2R)!4*)NyJ;r2Np@p}@evI*92;Bh9cu zef|6fu}){0be!E_EHwzmqFcTU2{9=_EW8#cbHwa@JA5x$C1DE*$K4Ef@FryYu=Bp9 zHj$Ks%OXk^0k=bND*2e*OdKWTTB-omNN_k}{OQp|yD2$rDJfL|>)AW_7pVo12k;YPOD{PZ52;Snjl?(^7 z@I}|lqKgBpksLTTDCk2lCf~M_Kv>Qa&m{PDRXC>;1s_9oqzk#nJ&c17`|j!UcA8Pf z`2oCUt?powNJWs)%7B91G83E=c6EPzyg1yQ2ZJeO)NC zqys~pO*xk8VjpoJ)8V6mgjbMq%J^K@;%opXWOJPF;f4wYM40hH2nRJ}BBymKPSC9nEbdYNJ#Fbwlx#O>PjKrN9a zhwY~eg(;g7LJo-tq1QC#*qD%Vx)vik3tzr``Lz7zcE!5oNrCnWtDydOE>@S7mC4|S z=C{?*U^^oGcoHK<5EZBpfN9Qmb3!7aOZ}Bg#|bV?3!U6765`@+(uEn` znAUa3m$DghLE39bq<{u+mpE+!%B>O_Ej*~*h{rhi$neCdYz>h0K#Bn4Fav(4CC7Fs ztB+xBgG4%VB(D68xt2bp&`8WHp?7F}vk_5?Se3$xjmrQy(j_v^Sm3vj{{~Y*4ijjV zv~%^IcfG~%GefP{OzL`7R_qpwG_) z(n-{DkU7Xmke`R~tdKz=j<`YOYyva&dWhFxdSGY%DtZJN3HZ55;}`HD5w^dU&G%ez zE;!{T1gK){VZwO*`0-He;^^AJYq>X$CDU=-`` zp#%&GdFT{0bRAXdvWO}3Vg8x5+cC_?udckMg%-{nof*DfiM*|*$RIo!ah9bf)A`-gq_+@dD5rHo>;ojVF za8N-W(+EZVc}U0w!d2V5R|>IW4azUb^aP={p{V%~qobDDuaY&hB_t`sB{z#BQAEYa zD332fh#szMD|{R}1+V1fUqqf_M5h8hin=nH(VVJ4ghca%89_hnMu=VM&zz6HZT@3gRYU{ zNKwi(yqGKi$DW!=JaM!irC&maNIG`+tak@1iGKQYH&U>>GqZoy)k{i3ErS!OK+J$) z4}JaeB~m_w_X$wi%t*^KRF^xe+l5_GNtYRZ2|VZZl$1nNlbIyAW@_Rr`~*h@9z3Xo ztQ#>QaQ)UT;+qmqu|}G~4rrXlB?g9ub+~~9T=O*sa^d?Dz{KyqA_op1A!gYizXN%3 zhY=$vub&-J{Ek*fjLpM~lfZk#jK$}srob1+uS8AF$mo@cIWMMHZHp8|sOI~fV&Pr2 z&=S)ZK^9-V6UKBLIIJ`RDEO$)EiEshTwQ>On$*;O1yiejA0Xm|w#5{DDlk|=j3V*$ zcyQs)o4?S>AnH6u`sb3N0_+fnel@u+y}65KR#7hyH$npN0F>FD3{F&o7&sqWCJ`Xr z)hmW5r5o=+y(M+9Gd8C{Ar=NYD zi9r4yR#<|~l+&$SoE`wN5VcT+m4Q>)MMcAq_H{RVDdK3G^an@Fck%S22)s}`j)w6a zw`qiB@ndlCyll)L_W)Apyn?2PsByG$z@uD)p>?n^8yuC zY-SYROrkf&hlXT{nCi=LwZ(_>w6$x6PkPqcknn_Es}%i`tFZ)HdQGan%yvdWDx?tQ zLlx4n=eB{|`qJ}JU@aLBSqC$Q6+Y-$FyRj?F2l6c7KHgtTi$Pkhhg?ybf(^4D0mdd z5r~-K7I9J_>}&<39(Zj8D=Gd2GSGNYx^-3K>P9A(dA3*U6i+hnK0;UCuz9mSG6Q~> zj2b;KUKYFy7bfU4)~PtS6@DQR5o^{%hc-ffFnRugT-Xdm;X!{&4_E?m%#9m3tUeA) z^EZ`Sr3)n-SYMtku6{Tt5TaD@hX0e3DgSe|DKQTEx?GqrEmj|7@B1K+f;L0$>e_cU zcDb&JU_P<7o}KqI&SE<7>^MzjO!Ifi0y4yn<}V~iLB5;eJY=6}r~ zBZAT$6R2H;rg?#r7Q}d5Pdd#{NG}OZ5d(r%^caqi_IG_noT4T%hKoUuDtb?Z z!;ilm7IxB1=3D$7KR#Ra^7Lj1_Kw%vJ~sDx`N(@iRXK@)o$0X-dPF%ed`BG4FbU;D z7Y6~tsVKi{p6`L24{j(bp>A&s4)%bvc^pyDqv@46<3Mu5i4!S@D-u^Rx=cyJhl}0D zFCMOnwU7%sNk*hwi9>skrjJJc7gS;%h{n>9NeahRT6|*_)otLMl8xp z4R+vr51^SRee16b@k9i*8(E2BcmT*FZbp<0Var||8(0Dqz;*reW0@d}4uK{QFN~*n z;893d$i8~;EBOKf1b~Mdu;@r@9K!qU7JspbiZa1+4mx#%oKUcYrz%dL1g=9CVBZOC zUxX%Q$I`f_Ol~2|#%0=kGVk}-W5ltV!Gesl8>XhGOHiTS*-z>ra*&@;r<-{Gb}IWB z6_wou^S#^Pwqh((&d@hC)go<4>@p;2kk9pK@a9+zr7%dCk+{X$AbkYs52=i+$jEkD zI7Ny8cn}Qqr#<~kIks*Dtz$b{bdZ=Uc1KazI*@o8o|{y#c4|jbqUWt!$ALpIMO}-B9uyK%j0`n` zFvZnkYs8GSUo)HnOq@sHyo{4LF%ZyW7XyPYYzSs)XMOvB=qUMbseOszd{P9ar=Lz$ zR#laui4a~lOj$xP!1<2+F3VXv(;%_>g;Wq3c%+^&k@T^%lL`7wgZ)H&@+*_sz*nz) z;RoQS+D2C~w<;}%x?8pU?CH}97@ucjR6b!g6T=}mT4v9S6B_B~2BH_$lOSnRwO&m( zVm2-yvsg;b!TVqZh{1U@>qvw^Nn+X;kzv*ZciMe)s5W{tPFV0k+KF5MwOsaVTa6 ziT8yUsw@JYNIE#=R4x53sq)sC=_^N$kg(%%vPaUAlxbd&mHLVpwV#NX%B){xy-mLI z9xJUR#YAT7(bm1B+c=C%<`k2@|K2x*MfW;-A$1QOoh;A|Ce`H-;w7SBNZI{0cE>yh zWvc$o#bZRGCyzC9Nz)J)&wZT%Hu~{D zihC2Vp7*ui|C@1H#wbG>GY=sugfe87p-4)GveIa(NRyT^DVc|o2qjITLP@4FCTT8; zA}L8|5b3-=t+m(Q`#F0*=RD`y|Lec5y{~IosD9t?XSnb8bknGFWkSWz0egh#nM+>) z)oxBEsX`?+MPnqIh}T#|{>F@b-G$wvG(SF0zoBkpc)mZ23$*4W@&M7|uC}(G%RQ)| z0-m5y=7==~bO&9n#+J|hc&Tt%pV@?FOohW!OtPu+vVx$X%0Jn@XMjg6>T^C^eDIGaK5u? z%<6e|JsK6qWV|h;Xpi34OEmiaal4N93jR{dp=R~g*e^0th1yDQou|*?GOxpB7t^gS zVE}^uw2V@-bNcf6Gls`+-}d;lPV!NlSXESQW@PQ?;IIG%Pjqfxv{lfC$tTgh%bX?+ z*^8*akA#f$1E2NUq>@-nka7RFJg?PFCUIsdl!I4@O3KX4jF&zjDrD>Jdr3)__kbHc zq+gl`96uRSbCq&L!_-dRR}v_JLOFs3C5epL{zHz{$@%Km^pIT$IxIBF3N{Gi`$jM z*EB>HtAIS}3;Q`59G6aWKeV=~b3Id6TbsT#D&uHV=}}5bmZ3WBZKKavE;l`4<;4|0 z+}(w6pvfeWa8_=zH<=I8_>6?a96w|9KImkb(|~-LC+4_#=mdWsPT#^Giqd@hoz2rq zvj331@T{?MDC@T5LqhS0t-;?^t6f8d{h6C?I%QISNvwB3Q1b=;+S=Tc1EqtSRasY; zW!)Te@7vIr6mDBj=^6a4)ytzkcFB8g7Kt9w@VL_^Z5cGO{|JrpVqxH!2c&Lc_vTfVn>8M$d5{Jap((m<=wz)9433 z{tnxJZT;&eZo5ZFUG5eX^pe)Uf8IZJ%SBsp)d_LI#;WbTxMU0;1KuVj5a}zO&W{*` zfd4|4W9j#Mmh>``1Q?ngvcjeGN`+7fp*+MzV}6fQr~9qD17jhNhJIZE3y!J4>)7ZJ z6h7)>dqpSZdt1`)V%?j8$N`~^7Z=3`;IyxGoGILDn!wL(@RhAHB21#WG-&wnwF_M9 zx)%PBPa7z`e)}Fo&2Y;ezeBP6dR1Lt=wfv4Ue>v?7i#H0+`UH2sbnb*&dS)eY`dZn zJQv{>Z8Y1Ndi%1c9<3fF3Kfy=Ng0kOs;$zL_3KC8tScQVx#t+Br_I!zj?4va3ndh=$Hzr}^o?~?Wd zR9rDOUaj9S&4NG9)ncAV(^~rBY|M-EALAhYg%b;mV9g6cK1k2=^94~s1B9P5!(p6l zvQ5Z3P110*k`fbJCCJ$?^!7!19GkN0?ygltPX5xm^<9|Tg^L#>%0~4iGr`%?$a;la zl*>BzFH7e7ORqkBXfvs1gYu?%r5dg{#3L%#1y`DMwRF9g)Xn3#IDbmdUTd-UfWLox zrH=cwl1>fa4v&Ioq(qUhlf9y3k~{S(^rxjDJ-{FZTBC<2SY8NJ5GpnxdM1 z!q!yC!A(p8rss(WPC(u+)G!KN<^xy3b6VaDJb(T*E9#)_vC9=S6F>s3DO-)+jinQl zk-!@vN1Bn*Q_*XJ!-Am&pm3H|eX0x&&MsKiK^72YeesiSer34y+etgRohu$8;7QN0WIfyZeDKZ3pEyBH|KBJEj>eHGzW=<9i*ZHY&aKF>5Vmd zD?aL0zoeA50NRdT+e>yKMD#CGJ#{};75*sc3uz7-wOS3|+P4Lcfyp^<-`+3XG+3pk z2toNT5=&(vilg&^fx6)7^<0L+5h`Mkxx9ubE6cxJ^WPyMvZ*ezv+`#*7 zY4j`_6(f#}8W_9JpTkoRbbK6eX%8&{9&2uHtD<#vdeCwQ7PUbWCY(Iw^l==vn}MJ|LRte=KE15?Gipg6 zVk)C8(sqI2M_cC{gcLqk_4u&6NKySekYT48Ia}Kf%bgD?9em;gh})>@#aD765>dn@ z$ou0`720;;*Yf%3MHL9$vMKsRp$M(gc5QE=0f!r8AzVD?t za6$(eH}LHDU{7)#I!vPL5wsB|5<5H#VdZ4Gorj|l3Pw?D3jO)#}AWKVv&#mJ@) zlaqzT8GkZ;l}}h*=N03|jT27|I)B%^$c1X>vggj6*&BN8OVw(w&r=VAQoC8vivoP4BqX^xEXB3uS`j$d`i?p+A^nw_6;i=ZzvGjhA z&w(@DBkw2TRvx+XmRn$>4cEz}GOGj(DT9RwyDJ=)TMB*+J);aU%n6F1xR&EE?4AHx9H1=A`PirQ&>8_0^{Co3P}YEef0d@ zy7)phh@e#w%pExI?Vd~6C8b+LyZnyPq^n(MQub!=jSU0)^%D_O+gr5V79DMW_Ukz2 zJ9IcuqIG1j+P{M^+K&2oRzsgUW+x_;E;LBj2#MwB6pD2e1-JO|C@R-}>Wb)6a85#{ z!jCQ7Laa8Cge(lgoOf1XeeLtHZVIy#nbi@uzhPH==DAl#X$lYqb)ApK5wi$}j{KQn z;MUOjR9n*L_K@yZx-7Hn_jxOD#T^|&_@wC1heq7k#_1olux_=tzUlIzr5Z8$4n=K+ zwOD8Xm@mQ^cL`RU6ReQwD9^6XBYJB=?c#=SSqVSS%Z~?167d6wv6C9mnckw%68ic} ztC}93{oD4d?In_cgS$%hc&yI&L6WyZ{UIzybliP>3Ttx+GCw-M^bd@M=bZE zD>bF75^;Kcjwu#@GWT?;xlr8zo+EM+&}k?-4>RlPU23qDzW%Amjv)~5HGM~Kr3b4o zJ68FhI<=3=s0c0L4pNMgM#1(|qh*GyFvbHp(lUJzg-KJ|)fRD`M<$(Wmt1{FC(}XH ztzfrec#LtZ-DI{|bwxozx`o;}r90dfsaMv_2a^N23q658U<$%{V7^5aQ#whmMEmn_ z)N_NX?U_FEH(X@m!OE_t^TW-STEi?lWzwS1vKtq|gf& zZn2m@q3|Z4uN9S6$&2fwMapkj#CPP#BZ;SGVassPGdScfvhN)$G&A<}SW%8P2fjM- z+^j>Agy2KNZFlnv!|jtZ{=hBC)7XKKY?W)ezh_DAX0A8G_A`conj8-*Ehn1(qJ2Y| zqETsAi8L~I@&g>UY_Uk*ez?A+gn^?g>9#auVq6X(q99JCCrt-e?i#C}*mIrkzQ;+I z2~$}Wcd?7{-_VzZWk1qu3>Ri?2uq=3k|Z(d=IL9+4AZ#^p$=v6OE_08Pa}n0k`TKf zt7!q1K&;L-)S@Ik0f1=@f?87a@bS>0BY=dDW+e&g2#pe1k}Glw73b98i!fAR1CicYyX&bFt?D11?7YWaogCi>_qwW;n#i{go&KFL-Crc0 z;IB5UDReH>&S5`UL!no)8)Zb!!T=(v{@OWU_cWhBkdiZ`OC06N1ZCX+I}-7%_)pP^ zhm8=OjIbYE6aq@=1sZ%VRh@XZCX-NmJu^QxYDv{#b&B8FQc2j={O9fyL8q?A#p%(k z`nja5Ripf}>~S|E<4Dg54!xt;m!8ss)vM3xgVh!MB^Bwb{)bdVzjBb;sS6vtbt3Qk zW?w5_VC`{TzeI7#vHvR_i0vvmA$%Iiz5}Dwl5RX+J<2jKChXh`PS$}giDp-RC>V!w zj9UH3BUM#ek4yFppAAznu_NYTTPZR8Dq_o0&+dL&DcWDOKw(QlfhEsSCJ1*n{ZCV= ztA^bm7G8M9ZdwMqVYTI}Mu8#-7q#%O;=AwbJnaNHDc)kv~UbE7Q0KJUK+2k`8=?HWJR8_0(+9Zd198=6&W zW61-frjwCy{3}EbA3ofi7o*=xw79F2Lq!LoHtRx^S}qZH|@XhAR4rzg91h+g)K{VI9VB_eqmT|9!UkUx`aD zE%=eK#`)E2mlHHqh)p5J(}J)Vb#5 z52)){d9HB%)|`hOIQ?YZA8?0@`^&9=X+?sQ=0socQqy0?^1MhhPz(Fos`Fq(@Lj)_^CJK2ouHlQ5&C!rDl2`wdHMs@9#QZ zq%-?upMTVUwCJ(q$%Y=xSptfHmN72s^nfd&kUlsdY2nrY!}_hm)7xuPAkQDV-1u;& zbAR2b)Z*LScYJYEA;dR$xH>^vHPY!Xi?vwMB5Z3~jXX34;Z64v6D^dDV(kVKgaLE< zJ5Uz?Nl*dY)#jYRpXSWXTB46)X6EeKO+I}Z`jXV?g$_P3bylf>r9LmD3?oc6^wKCtS!lEiISZ|>8>{^xN_NG4QX8EN0s%wVCSJLz;b|10pu<2BB zus`i^($DVze0C~5g~TnjGSAyNICsWh-Q1r>HK~#UVY0BE(>h%DJN5MfMkc&?u<_Tj%axA@|SVP zV9vzoGgT@nK|-L@40`IC!LS-Je2Ft+Dg;ar0&tOvNE$5Nd6vVaKpMivFvjUzf+F@q z#E@|gcak(VzH#pmq8t2xghxbS!I;qbS{B6CHgm(7x+tO&T4pxXQ`-21(%o{dKPqQD zv{mCw(+yr^hX<01PL9SjcH>)*3)i2dqzuGvKI(+$fO#hktX!k37G`CmEQuX6dUW3t za~T0LS>ro(wi2!zzxF$3=4?d`D!>D;pvMdV6lo=}3a6`Xd8gOL79X0K8`-DYp%Wc# z%f_b$NDK#ng9``i4Ya)(A8_!%zy+BP_xQ}kUes)lBAQc z$hNVr4}WkL8s?Rjlnk;APd|9@Ak4Hkp9p)5jzd6PjLVX=(4|*?k@^o9;E~^8?`5pV zK_qjUfF+%G8v6=TE9J#d-!KD z3T&kNmAPa7LV|ay`02mGQ;3509@&z`y!NZr&YPxXjrt60w#~oMXQ-|CH~I`hmF)8O z^t>s5rdUydy`nyUS>!_lQ?f<;o@Py6d<>-%%YgiVpYE3(Kc`Uju1QaP=Wa&z7=mad3hYlHX2hr6hT-yYMO+4saTC~C6RIHDQ zu03ZlRH$rGRsCLcd^@L{nM4J@qvae#$HVW%S7jPa`7Y9m>d-lMrm+^mdmNLe>HmZk z1mhd0zdP}Wew7(twlJV-$Iqrsn?`^Bf$F70$Bs=Xs$hZWJv#Hj3iG*LAEz`|eAZdrwvj%$yV6r66mzke?{MC3t20TiFtf78h% zAJb@l;Ma^!{2eS6>RU|f6a#TUs1!CZv8xN=_?|SplS$CX$dHGiqO$0yQY3bR)360? zQ2_Mqk=%9^vEEH4@%VZx1yH9@0|$T-H<=`wJfydMT;X*7h`>sPr*ry6nl^p9Wfa!8 zh5-@)M5~L1k*g=U$)9vdDZiK`EXTyxME({E6=0*>6HdQ1@$VzoYrxoMOU|$&@8~*Liq7>&&Nbdi z66^RGq7td0en>q{Hu;3N_&Ilu-8toVsyU(~CY#o?4kb6Pr>7^uL=4NaV`D-zi&X9Q zi7$C#?k);X^QtrXSr~X_q&^X305!$PE%#ZB%+wDxI1~Aim9>zn=EKm&J+8^%$BVt% zb^KoEOR>nsR^q8e7kg^!&n-ZM7EvpRWI`f5mC7$V6O6qbk6ma_3*+qGH{nRgNB~7P zyt=k6z1nX4oV!4Nz;8wj+3J!$Z6j&TMCFTe`ZeOw9lF7CCM=!3?KNv9GC*OAz1AnZ z<&(-tDHCf>>ObZE-Dx^AHvL6-ooCv!ar!C!WzRrK7>pZA zd6poo_%!Q;#!WLV`0zg_q1EZBlZU?Wde-^6PVebPXq}*V`tEp(7+PrWM3615n4nhg z47|;5pgWyJZ5*{Rv+8id&GLg9^Gu&aIu7Sr{LO3rHLIUdR$1+C-L1Jq2%GO%Vq)Qw zy(!2=))oIS=j5nrg*bPtG`x)?Px$!!Dv55*+}p$Bd5(8%1H$95n~3Jx@NzLPWSmF= z1Rza1F!d*Br{qw3>X{Ebr8pV;tWZhk9sp#Zx4cKp-3YI@B4ii;k3hV|a24(ZNn`?W zSDppHQn=dvf^BtGRha$UzcxtFDPVL%7ZP>FbZY*-Ok;GK1CG$0Z@Jk-ls;k1Zggp3 z0}C4OpIS#Y{^2f8Ar%dIahpeQXz`qXN50lw^cPb3X8Vh+eYw&Z2_jEF4{+TAKBp22 zMbPmW?%egAZKhdO{Up0v4D3c9Fw8hs4hI9V3AZs6il~~Ej8VXsAwRK8>3nq(h<`_; zW}dvKZs4ZA>7LehdtmRH(OnY>3XvF@kXyd9LL49mLFl}7?_k{XtMKN3w z(FK0p4(#Kd$f=M3gB<+&>UGe06tlND0mYa+q!{d#mJKyq8+OC^1i-UQNgyY&IW;a* z3Z5IjqqFU5sx$LWn)bm7Od&O#f10VuR4vcrmZO{CvJn6wue5RCERc#SM!Ylr+~~Ua zvOcXNLs5WwG*OqMqWTHqk)+>p5bu(!jyLMwG12ifu@zH8;_2G%I09XKg~&O?5hL`{ z*u@y}WIj=L#B{zF-{c@kskqcuSZ%@A$5@B$6k{aDH0uBHD1BuB-LKbiWIf}4J$q#I z#fcAfv>mU``7qW??S96)jU38%kQ3z`WKRvEe>Uy8Hvh&fDA%(9$p_&wK-w49e0*t< z=pio{S=sT#71R82#c9pT@71`1yVsqXeoR(&@d!;OxBOX~ir+AuI}lCQz8Rmp>=1`3 zRo5QaM)9v^BgI$>@o(E-n~+V#zjb2>TH{~(Zw82zUa!6Lw_Jdv8k9BUE2hubXY=+9#Rip)G=Xyw2b^EjD< zDMO2b#?)NiHZ}=!W8m~BBv_^5N)XCXRCKhCiIl`%V!S9n&lLXOp-Y#6_pX|!HqqXJ zj$3NqTEt#kyuG+@Jf|F{!pYhS)5eI`a(q#8c=jSEsC*d-W(}_G$Wws!HX_UxL*&Sr z?XY;2;NYVp6Y?Mq>_SMDJD>To=u}oR=Cu~(kdS}h;vFzh%zzQKB4~5V6M&!BxQ8b3 zQUK8QAVIm!AK@Mm5Uh}^Q2Bw}_8vTVmX!;pDVQU1c@SN0@vORWR&d7ooX);3bzg5Y zsc|nXTM>A(hAB3=BViefOGHM( zfRc6HnfC3@z|$sQ%k#PrxOQR5@Y3&UBs%R>2M>^L5$j?XUQ|)x&B{qN6>E_6cA}Cq z6-7ue;sTN5h7Sad#r_!sSRa0h5Q|K z*bX--kFE8GJ0K_8Lq{g$C)^dl8g~sT~C5c1XKIx)qdRclP*OSO> zLl!)eVN#^)xIZFAj^*WPw!+%S$H#$i)79l~59zME9G zW$EJwgZ4ApPCQ$Yb%u@+BqZoUB|bBRa`VlM)8{AFuuh+5quvma(cJU*i2Lq4q)X#L zuHxeo+3H74$XA$uS+OTT$0~6>Y95Sa4U4g?9b{qV&PEPHz~`W3d<;@f61htkA}I=l zcAr-rzk#Y%$Ss6B;96YV-cl6F(dGp=CsKFq#>BhVkZ3!wpW*YhBXfxPZ%hGs@Zc7; zMF%;#W=2MNjy3Pf%7(sQ{s__S-MlVYmL#MRsdb9)L4R(8?Fkl1Oh@Bd5U)r$cmXh0l2{sWUqtArP@UZ%oJug+ z!Xya9{-(HC9J_ckMnGkvPVa*vWBT(=cD%(*rK63Xeffo5ETIGYitkg))<9?qFV$jw z{ZdbcT=kX$Tscp_hIi@MF(6|rx{jT1Ipxl9Z3$^OW|TvY)gNZT5RtHnQqO~I9MMQY zek@ue#1dHwL-AD!B2dt>cnHp?Bjq zg%4y?`NfRziZ!r{1OtcKU&oIuydlVmI~6TMo@Tc*2>pIQvWj z->}59Al~U}(lvHWr2bqqO7SuAH@^pm+oX?KCoN#S2K|Dt95qgTX~HWL^no}XDSP$a zMV^~)^9`!z4ElT_7~q6av{5V_y$*NVbA>f5m^+_2c{8sU(3+~&p%lHE^cli+_Nno_ ziuuxChKEHjDrc<}RDCdzM2Hwt_x2U0hQNb1``j&?e9=MZZHk+z6kfS@+wO+%e_VsQN zZ&)2H7yB8h+xe})Hp0q)@f|h8^Feu&7A0&UW~MJcbdyQc;b-;zft$`!w;kn--4TPE zf^qg-qxQuch_nLTWxJcXA`mVFA*k+29%{u_B9{Jr_X=os%XAaHa&Gp1QaWd9i*-#G-Yr%p6-?Ss ztANR&Rk_G1WU2swQ<{6qqemT|?i3t=RVdlvsaWR1N4FO%q@Cc!>lG#r9^6W_KQLJx zI(H5nos^y36|qs8c^uDEv;M0d;7wb$mPXd-F%4VGUpg5a{_UsMryA+*ty?3zPnl<; zWEFdCa5qa!1*IVe6^Iq{DSq_aP*x$ZAo=o8BjdD<wh(~7}9&-?aA#Pzy9+5Zo!kfk#|qXM%I+Y7JGl2P~)QI|J}8uw8&OL8E`{p`)xN$ z#w+E>T*33UiQBfYa6hxc&2QfK?sXqAh0n;*uRtR1k*=g*^RA+zJu=!wOO}XqZ5@R; z6=K>XiIe&aK!{F~^}`o=g<~^rVeN|P{qqfeu+T1|5pu1t* z+W8Z!*c7iCv zuPX7e=_w6wZ2hunf5X<4Q`@&s_4Q<8c`JztjbaX2+5poSZKEDRbq0oG(0oagh~iJw zBwK*o1am%)Z)@qoqKjrVarW(OBG-boZ{s5Q$vkl};ZqC%Ld&oZDCusY0U+5e1nQoU zSEh7=k{fu`jZb%4*HToU(GT&RFi=S;_PbrS$rlR1rV{W~(9(J^la>;}m@`Y?rXC#OUqIIp>WPn*|lsA;fo)HRJ6f?kWkDL7P$pbmEGha_U>%pLUjsKw)= zMN3@D)M=%`#EYN+CNnfzxXE&Jb33mtm;n6TToU0>j`25Vxs>`&H462Gc?vdn{&@Y} zC)kl9@Z{ao&qj{jH~ah@a#5Q>Jl?2GQmh36kHmB+hF$P%bbQ*&%D#-(u#P<8=hyaC z@ozVZ(H+h{^u1eN*P6wG)Q4DmMHxdJ94_1j)?+jprXW zP$616>KX*4y*@CbCwY(k#pGJ7NJCfW+u3Y6>8W5e1~goRZhfk$xsMWr5zxP~G#T&P zoDN_T=fhC5)gO`HWRoyX_0%-l&?}+7e4SUdg>^fd=(W73yG(TUKxOgc4jm}+`PQAkcxQGI)T@2N9`43{)8LN{TJQg9cu9r8majkec51dKMjqTNNYm+Mn@Wus;M)v z+NQFGG1Z%;F)2rBrlM0fEZFuF!k%Jw3Ja$;G?Jd1i< ztF8St?-`$|D1Idcu=TTH0vHr{FbyGRujqH{-=x2_dr@V9wpSTV7B9Z0I;9D_vl991Y9sh-s8w0^>}b)!fMe4Ll$ z%1FV*+v~-MV9}@Gdgqq5(49wFqatPi3+#Z#VO_4a;R9lj0bzH!uLO6p(TJ%W{4Ta; zP(J!z>F0Nk-g5+M46t-!`0bd((fjnKmK{BHYOSNv%Z^1uJru^@U1QTW`HXUAxv+Ty z&WeUdx`oC=Ojs7JCH#%e_->p;W%iszH@|&swB*KstzOCCbEhT8jD!t(+Pd+FOD%Ro-r0Jel+65}JvELs(% zJ+vQD-l9c|0OSHfiVI`0CbELvg!Oh0gk{3waRy(;W?WsXw2j>f=86w|+!Xsd4tDhbiSBuNmA9{ztzCS7h&vvVO@aH~{tM z!J|jbHf&Au-|DC7;ut?}{;3H|r3dUJ-wE@P?$mzF^$$@M;+4668jJZ3)57%k&I>w3 zz558UDPut|=ZlX!$|hI!It*YU-_1_LPjHC&jENpRe7Js8a!SgW`T?<(ow|2lR*}86 zF3rDGS)J5sy(^KD`|XtrqHH&A9A!lVWU8Leu{Jl49&y#)dipy3isOugwH9n07YR9le;{#}`ZK=gq5acPaaQ5A(4-X?SI=nwr{11ckHa z&ON-lr{hfS_CzshHGwL4sB4!S!NcCBf!mnXSUl>!Hsho{Q7L*K$}*eOAgJr?orAu3 zu8jzD+H146{)7Rm-AQec^+oNq-@bKxaifhwr%u~7R-tcFQrfFvS>g}q-!(bJ@4JWY`uo=wzkgYw^Z)P*1Ws)<5-=3J z9kBeWb?e$wpz)Gj` zd%pu~kbXN7cfm=mt@*>Q5KAokjGJa21H`fly|1(w)@Ocbv(vl|IC2#wPykC;oXs@|=0#$y( z8Dz@m{7Ud{j!qq+L z2TqK@V7hzamFrA=mTn<1m)qbqeLDk-nW7@fH5my!rwHPAnx*9s6pk_y zs=36e?I-Sdcgm?9JX|gDk21IHI*-!O$Srh*_>8FiNTn`4c=}X55r(1(lZ8k=)lba? z)j|JsM+juN)_uJuV!IiT;?JAA(6?lNBE5QlIQv(xUP*rQ*2KJg{J6C=cV~Y|T;Swx z-$q3!BN-&PP84H^MYWDPQq6dF0cu;Yw$@Z+d%tIvRe4nKyd*b<6HQx7X!$e#i_@sZ zL*#`9PPzpr`Xp)7#*LPl8mNS1U%uC%XG=9domB>TNJp|Vrk*oFT6=1isxSsZ%0!|{ zLmF8Gc+XT1F@;l9!dvUhRtUC>wrd|Ka_r*kD9go=ZR)HJvU~lXJ$u%|Ljgq#@U0|C@#{CaJMrda$M+o%zTBWDpbB~&zW&y^#)(oXFRI_3B)Rg1y( zjpyHQj7{Y$%Sddj#V6yDb8ed#be9841wVaucGTLX#1L(}b!(C^jsSINe9suMWny7LiV){eSy*z3=}CG+N&2f zttwj5qxwnXA^P&$|K}&-|Mih-M|dHy0d!Pg3Rj41r%p}%=C#Bz$=xU~&}-iP$h9xV zme^^C5EarnT5O-JqR)UZG_7J7I}O!cMlJy+CUJQ##6Di3IRa1=DEJzS@$TKGD0LFC z5gDn*q*5Eo%F8#8U*4W8SEgx;l@wjTPdh9U=xkM^Q;6*+djdGz9+6hun@9~&~5jF_x+3j4X21#zX1a><5Fl=#yNaCjfrVCO)qga zvpHdnCRDR+?`32x#-OztQqyE)*Eg)O^{j9mapPw=XLj-=DhxD&HS@EM#~`)M)T`+kw8Ql0%$l_)(IxP&gVy6t*f`VqC&w<79)Lp2*^q9b z9g^WA?@O20NjiA=@HzK)Z{E01KYIYTYyNlsD$N*OV_S+c{6s2t> z8A+1%y;4&vRRxwih4AU9sC4U-RN#r5y{0$C*ecLptbR%+m7Q=66uuDkP41m_==T}P zfQJoAmH|rb;YA24kS1-}^3A5lc$%SGTSo*bzAY|R8aniGs0)PN#gLE#bSE)3sKH2) zZOyNZ)LJ&ak2;+$zJiNXx9%#m{MI?6h-*9z$wexJ0ZF?yJ)Bs$!~)Df*-HZe2kaq~ zYbVy6f`7WY^n3p~M|(4tT%ay|cG9A^G1m=(NCD2O1v zX7r-;zi9zFaOCj=-$3G3?$=YC;8!BEZ%h?H5kk~y&^kT0ypa_=V&wgvQ`z_%-aKH; zQf64Zo+xK6)iuMNTefQ5dMX(lPC)=m+UaHvX8)nec2{EH5oW5b%(%E%#HW6BoS1H@ zM$KPYa@M;L{^35ybME-W=|nAd2kGa3=s)$XZ8vRFw;Aoq%U)h#fU4+xu;2FW+jFYp zR>g;&xnA}{4t2A`tKVC`0#8!-!YO8RScNKIXPA1JHBq(>pk5v1<#z(u-Ca3yC8wX@ zlxQ18c7Dh^AqEnzQIHGeQhy@pWG63Jus<=tx;pcTU);-R=VMq^i;{SYq{Ja9PHp9={nYe}gXUtt23a*CcUJhvAY9 zj!)yO#&t-sHWYe$840ZR(lr-6Em!-u_nWsHMH81(kE_3JRkjb}N3=g|AAQfjfDoW4 z+X194Ts4ifmIW=_^noXVAz zl|oyAAVUBWERyb8t}oI9KWYdRgvZA)v5`)nl4`dwqEDyH&dM1uuWk6yXSEwF=6!4% z>?@X~*jF5xq8MYLU~{{%^gAV16Sw!TPt$4}K8cS^V6bSw^jSSvjV67ZXLxve%1Iq@ zmLah^0ywc0alW)4#(0mX=V4ydp4%(;ixgjp%*GfKPb8=^y#a)da=blENjWB_4RY=D zQ&CB^_NPWDeDkIss@sF4qt3>xgnVlzqe%pI0P-7Rp0KsSwX&wBi_~Ni*kC_U<)h31 zokD`(Ds@--6aYSV(r@Wyuu<;egU?2Q#j!4I&`XUVfx&MN08Pz--4xzjNrVnQ$-Kw` zx!AVm%a_r6dyU^TSDJ|>QOOlp6WmfB;4KF#jrTup%ja{Z@r#;7FTHA|U)p5<@KZ12rzg2{A1w?ZmHxDJMl=8Bk6E(cEq6jevkD0=Gy_ zUC0e5Z$p4ha`iaSz5%2u`8nBoBm+8KCrnQ!d!e^t#)dvUED z`S+KuRY3CTOAoNA$W_8T&O}mj?&8Hqg$`H4t@OO-*xIg}Er$99xX(X6a|sAWescgs0(2?>zj) zUux1VgdIM~H8ji$?0KxXIRCK8m9>3@u~DYC7+|ehk+d;_XeaR|7ewatsmKX^oR~PR z@+I0a%86%|(H_@u59CaABlJy(WrXydTkXV07vJ%lhfAkJL!Vf0#RJp%i-7K>-h@u( zFJr>2P|Aw)7}{>Cj!s)dPR%67JBX$XtqTX#lRAZ7r=de_qHOe{R)5r4ymV=+?YE_t zEnAKqKi=17O!#6`pUcbt=z`5^miak5lutP60oeaT0q8_R-O|whWp7JMe+34o5T2|(%+<5rX9%1CXrrKP7DBj-a+M!M zXGp29CB^p#m$0^8?-3s@-jup}{1jg?5H~^+| zZL@>8C7Ql6i#&Sl*lt>GqweqMX(Tr`qmK#DeoIMMDN|$qse_ldQI3BX3C4VUqSGed zl=yK}CX$5UPWN8xUws=9r=D1e?Va3I@E~ zrRMPxnc-XkIv)$ti%h&;7=`@#%%6K&ecXJq?&J8@?b~;u)4Ng)@NHIO1l7MxdO(b6 ze|jlhefG{s`(g*;j8$F`JWF#@6oGwd){s>4%V!&%{M6%25bH z(I!nimzM6dBw|IvaJmbE*96*A6=PLm@il3mI5!?m^tFGd29mzFeUw_2#n)Yb9vQJM zceLxFvD$G;PVGNc&w8@9Wo!OV#j}zBuj-wbAuBq7sv-5goj}ugo&w#ScIsckyz~Bq zp^M?(Ww4H*%~$a=)$3eBsr; zO@{G0Sy`sDU9sU@8~ql}cQB}vfZrY4rtpOO4IB0({b&2Fh=?;oE?rt6B87NrouUnu zQBjT}&tqDo_4{>!kqKXDhz*^u1xDK2JZil7!)#p|l-=EzIs@Ev{?ej168DQ^YW{dw z+6s8Ul^!X6VM>Mj@#Dw!Uq);m<3tTgNhOfDtDA?gt+hArXi<7U!Zqy=-1&fga7(&VyU0kes%>N=b1Nc_kz)t%+;#jW>$tBGDd2a^$O9zazynwB5f>hFeCnM0 zmon??N30r;3v*4T{bRw_mXfH4_Y9zJ2UgrKh znx2_y!mAU-yNIO;Ta~P4Zr#SJ!dHNuDq{0`3q2CXkNuX;CyVhGOa=MDoP_qUg~i5?n7y{I z%w#NQG315!znz{3oE!qE8-M(k(0!8>-Z_jOC^BcNank5ix(AP1#3`l5yE8+zB(UMW z#3zfnKj?HwwjrRwi_2nYuG(7zR#5c#|2$IWQ$BjopqVF6o?QLx^yH17UQK3`9HDvR z==J6xe+&;HUrtXrfCd8&fop+Qinxfr9C<3y-w;U-K^oIh_5gy7*3t<^IOg0Wq2$f$ z-M!TJQa$Y5y?e%?ye#7c@(c8=c`ERazp)aKIPzK9Xk zdubB@L>@x&-UDM$Rq#q&CR~=S+O}150b=aJNybauNDBY7JgkN!PImY=<-B2Z3&^z2 zkO$wmTAt+MADjuNvv>M^^Y=HeT)Fa=uPcu_Cg-M0oJBoa+`plHmU$;lr%{UOv`zO` ztne_gMF!^K5V1VInHweDeA)KD{Ib92M8`oUXs$;gSG^J`a@c@Z;2z{Ef!kzy)0pbr zgSs3n_2V(iCPZh;$u6a*mG;9D0)YUK+seLweCYSZ#%)fn9dEXwNM>!g! zMAvh!sj7#mlQ=mQ=IhH zg`?cthWtrHa{0T~wW2yp;s;6PC*3u0i?3(Ti3-Hd-0Rg)J3}zzcH`7XkM2ZgVinZ@ z|0_wz$vmz>*0C)uB2x&N+CcX;fwI%%TBWYz%b@3+aBUet zeySzej5u_2j}e4@BZLWj{5n&_adA=}kMH>KpV7>w=Jk&1Ts(1hLRh;05Ms|ti~s%f6)t={4-f)$sc>wV+D|T;aoZK zS*%#kc5yG{6V0r|F~>-?Daddj%eitmM`?bg7tXy*j1kmyE=p2LGqB5ihfK?DdBlC1 z(cf9qS4Ll|qCmbavPZ8taFiuh4>@viR#9g8Xpj=;@8wsCoK1ow@2%v%Z(kDn@U)dH z0A4|AP>cb```BDvv}4KQ#eGl}au#=xz2aRt?0n^i!0BgyUmn3^^qo0(msceR^`{IF zDl6u;^a2ca;48~2D&~bYxqAJ3rnxGPu$?#%5nc@o-|gNTU7o7z9B+95u=3Bo!_}=U zE%%=~)s7=Un84H0(iZiGhRn+2%ol^dJ+j42MRFAS4jS|eg;v{-OCqvNkvc*0C2NGd z2jT(68Dzo{CDdWcF?%XS(uVOM<;Bj+o(|19~_;$|2*g|hzF?k=#4v>=<1%$`1D z#&n?`r0bLcCSnA-SzXS|IrKZPJE z6^M*$fv9xGm)uffE(eZlR zq706N=LBe3hUJC>WeSK+K(_UJ1=0mMIMTF!;bJBrE$f_XSWXQ?6gzb7>dx0($%z1Y zFqx}agyRV>tT-lLjL!9G+yF+ZMHT_$laN9;b1VGvXlTStraUcm=Gz7iys@sHw1)-S zYj2ti#HaA5vIGo?k)+1ODgNs$oyt1h63EoMcLV=T-OpX=;esJ{%-D$7aZUD9lcYq& zU%O^N4k#l_G)0dfq&r-*km%~s{>)_vu7_6pjp$zic+ro3zTL7H_XEa();Sm=X*QWc}1q9g+r6>2Q?jkGXK`4vC_+`WNhXOPmg?f6(f}=I^aDM>F zD_7skv82zHs#;_{PpXRmsFalcsrw-MbcTR?F$L&)rXEzgmVrs7x!ZdinX8u8+#GTL zvXMX~xA;TC;QJmhV4KYUK>myG{(<}_6;9mKY{I8oP0^ch|tnMmkWWK~{ zXpC|{B~hMF&-_04aNJy+%f#U1jrVHT2k{2UdF6gB#Ba;|2kC%f8*Kl-Q)2b)-CLp~ zfCsuSHUX0D?gaPAvhND=2gi6+zMFvDfI#mT`R`Tp{!5Ee5`M=d?GcB(Fp&u9DysiG zf-73K%(LNpLc?7SbCIG!5zso}`^$<2#>Ox6->c7JUyBb9E$CxHV0#By2GvEInkm;% z95s<{HvDvg-U;-(LMC9W)1~aF%NQ2q**^EtHn}qyur(oeJ2Gy-y1*- z(A0>giRwc=do7i02U(8Omw``8^u<*gINyICfoo@Qd0lg?DmB)d$zP1V`bW2t_;sWQ zdf@*^!?LGLQ#$m&w<^Xe)zot>r4lajEAK#1{w35;7l3_RENTEe!1-G=Zu0GWc6+y; zs6VFo_||pX`y#f8^uE8L_lcT6YfY#5a_?(Pe$XHE5|3q6Yp|Tejpi<%kooE9=>{hiWn~X6 zp85X=DPUz;hBQ)og93A1<_+x9{TOoro-f3Z6mr|UE?2BN= zBJ&2@XSlSQ;@rc5>a4b|&Vz_pOi@0CN%qhx3#0r;uG%Jzly{%5qpZI9Lw2gU;v9rZ zB-W5;HPrl6i11PiNo4^!s|Y4x|yZ#`09YrtB>)InXnIxOwiF+YF%nx-WRgN++|Y}&351LT)rg1wO+2k z#l=NAss6{0{eFI7?p_GRHdy3x@%+MtLjFQjjyiyuxQsju;M_!L4Fd7r1d|+?!F7J6 z_{zW0t*Mk{{iT)|>1(UU$obRL>VeHaJ)7Eou*uQPpfK`6o1=yHSTagR3~u6#*@;$E z2KYifk?wB~K>2Hm@Fh`Wmd}p(zNqfMwm3PZ&Yro2V=2x4xhr}<;m@w<^H?ylFaeiy z;dxZ>y^yS7j#zxp#>OUjd6pgm0TFWmAF+!L;{DI7+!jqFR>+g;cc8^8-i;ak;17}n zJc*uAO+fs6FhwD|m;}LNQ}g+A6G^;Po3y`4-<}mNk>hPeU+}N&nG#zXKHq3mxDog~ z>#wlqOyE1=^t_dP?5d&*kkH7kZAd@XjdJ-Ad0&!f^pYUy=N2jcUD?rqvLo#2{R_(b zivD#!l%};>l(fg2auL}{#O^fG_qas*C%k0g80?Eae16I$WgKh|7d zUKMM#`3Z7#JX(49@R+gFU9O`b5#pzRRN^g=CXp9S?@Vv8HqsdFhFim_m+9uJ&)(Zz zxNu<-hef=tm4&8q>az`tf)^dvupc7CYgE^!)a4yyg?AVefJLPyItib$F~-)J>FK>E zPV9m9jba~lYS871O+`FdxVaH8my7xqNBjrfwYGwO`aKH`Qrh?dc_N?^#NmwlQo~*n)6H)K z-~$FQ&y36~_3<@-G#kG0@{)vm$pf|B@qB+cw{1=zueYSKjJf8o_2YGW$&EqV$A5PA z98oZ4`MdGlGig$oz9|#<0)z6)ei~CpElopc6BQkuNM*_# zp}kla&)`z$BhQ>OM~piyEf2~ns|0)O2Jn1`G7@LQLScu278kn1fO0HcB9mG8D8#%I zx{^=+4L@3vTy(pj;pb-1!2mA$TBw+{rB_hFzybHB2SKHVD031^>6ByXU{X$265SQ} z_`Px^5d&y?S_|_!EdhhiwM;3*m3u}E7Y9bek1qnzRW$a;9M@<3cttU{7klIe%2UC& zcwF({bjn5u1<;N3`4O^;&j&{sm#C)QqDIM_dS{l8(|4mEtyQ8ha-s9t{a26E>e zX3fn0?YHwwzmsw>Yv#=TFw6@>GC=nPV}mC%twiHb5+Tr)EqH_{>j6iMndh;v8B{pf zH*{8Cmv0^8^7+lf%Lt^>HbbnB zEkAo*5q9uji;YMi#AFV`fPm!g-?uuKYUNbw zH!-%V6YKgK@75`33b;$2+5#=tD&L!)^U}KmEC}@%i5N<*ukSRc&OLQ3h(lr6%E(#i zZP08^UAC+{J5PW+BG!TVR3c|2B;san{(I4nZ1|(qx$yT^XBC;9<$j%CPUkQQT+(Xd z=Ldbo2w_w2iMuGB1$ZQ)0iA+o@}u0h_;&VEf(rFNgo|~B>IFX#9~z#}__W?g%0~Xj znw`M>6&(nRxjI_te3fEbpOE+E1es1*=JbYV0$0@Si2F>ZfkJYnz4?5EL&{$k1@RaD dZX;-D-}$<7^Rd6^`bhjUYuY^R@F^>|{VyYkh{h|~96_N)K{2X8#=!54S^XzY zD3q$YU$fE(T3qzrVOhQVvMwFFe%6v;NPW`Ysd<*2Ysym5T&cmdH1tu13^lr}|NiJs z_Rq37^52ib&!yYsF6aLbkLO?n?6!V$Q5A0FL(|PSPzBQ`jO{aT>HfN|C#Uo>&5^1t@QoVH{gQ)`@@CC1>@0w zKL|f}A3gPd@$_yiPr?VxF}$92IekW<>+^l_0)ezWnt_UD4fm?Yuas;)ArlVkZoQrA zPnDW?^YtSV_;lR3he1B_d%H-k>|ZDrdFn0bQlqy<;bF49e={s$QNryOQR-N5x0)u(@>EqY^$F z!XL1(4BDvg?{Ab$l^#3S5aZ3+Tke1Kud7JUxWIktpDPOe;6Yb>Us}QRNovXdwt~~v z#Pm>!b8n7e=)%Casq_k*`p4%uKHl@%Cg}5{f7)Rj-UU11(2LtYW;bpTg?Z%&2!mZ zN~{wfC8T=dC6lD`H%C2KOf>c5)vLXN@0+Ua?@n>$T2O?(ay`d+pKqmCKP?Vc>vhua z3|3KZEr>h&`;WlaPS5Mch4c>m}-_K6Z zpwONE=bA8FEXNY#BlvyiAPgEgt=8vySU393GY72t;<4S_R{qoWz$MripytY^GsB$-d}68QJC#a zk!Bs-TpnXE8?SjTDan*G;IP^#v`sDhRl|SH`#KBlV|N@OSi`!yId$VWtx{8^n3?*m7nDnIrXca>QX!A+;b~Z$0Wn~L2rhQ|) z*eExKoSg&cl#6@2R^F0FJoCl6diMq{E^ZRX!Az?5k53PUsvazVzvM^y*bPf|dS7PQ zF-o)s0zQB=F)2yEb>BbDK{LDSkcQc^P0E0oz#ZoNl4vfs3t zFn_&QpFzJfnH?65f{Lmht~VsqxR{mC>{rXvco}M~&7~1OU-Kqb@~JR$;X&A#e#JN zG2NGI41bvOV5>PkHkR}fnPAP6D~caUbq5M8(FF}TAN0f1^LG}$ahW>)j?83^Bd>mc zkAaaM43X40<2>^E%H(|RP!m&^f}d)ITbx9^a1X4zc{QPRtaft*>uho+J=7(CuLoP> zewhdRJMo2u?6AYNKcXHpSj}}egfQuQ&g^?1YJZ-y^V9B}Ot$yvU3OCM! zx%4dKA5kQ~7+MTruk!_vIMkaQyl~tyFmb9M|p= zfAxH3GpEp?anV{QpD)C+R^yP$kmH78%vf)>e&F7EUm9Ou>bHdur6RkDxIm@4_C$#; zoqmz8pQq+yI&HsScsd@e9Z?IVB1AjVk-0vQPQ>>;F&C%n$#Y5*_bS}aiDbwK!l$F7 zqgG>xKkTe=oPH+TDvLG8E#CJv8zm6<=FJ?}7Y4{H_}x z9?+R0KLs#izuO6AkA%3mujyD-oMB&1VnRZV?`;8k=lxy(ZQ)2x4!+iyr`}Ad`jR6q zv*Lz^^OSwpU!J`F@|0gJBpJkO8NZ{xo}LtI)zgk*&L(-NZe7Le+3edtV-gb+Yf!9Rf-%hf%sq{Pu*$Bm3Vw>Dze#mugf{*Yco{;)q3T9 zdO$sb2m5<|q{`c^fxe{9+ij5{zZ45BbcyWeGEhE69_&ta<)wc8`jsroIdcD3y!n_X zOX{)>aSl{G|CftOwiEu(rKPopOJ7Vwu&CQNM{um}?<}%RKQQdgD%=>fZ%lPmjLe1f zdk>w3ul2J~D1lYC>NO5Ki!-mw`OTBhH7Yju8JC0`JFSLpRS@s{>@1dW&G+RtFO5_% zm`^tNR~bRt2y^ZIf}sghPL2mw1P?5iLK7uV*j(W zc{hxUx3oAnhg}Py7;SZ=Ir*b5{%t---f1mKnTcpMhIsD|R2V~m3Sqm;-p&oXTdS*+ zp~jQ1E(zB_+L_O1ccI1CS7?i{UkGLya$xWy7ik(g*xwKgVWf!Mo73*9H1i`xEo1CG z!wTe;=1BQ#TfkT5qi@MSL)-3BvN!ZAb|-eS`I3~hx*B=Feio0q270tP^sRXLTq9U1 z$FN*u$60yXt%<-)i|JPMjsumQY@t5mu#WpMJz#D85w=DxlYZkVv7<$5{$$8p;c64A z>OiE`WN~dp=7` zOE;`*zJMk*;=`@#8d-+I(E53Etjj=qxxTaUv*i{bqQ>QF;>gS^DOh$$<}a0>ZG*gXSTK(i zm}&}N?JC)4I!S0D>bFe$ZSHHB!%FR8|1cUT&}>f-V?EeiMNdb46%g|khz#=1;+(1Z zidjKl@<<1Iz%0$szXE9$3l85k!kM8)1r$R&gB$oemOp=xKsr429fw60h!TAU8N;>W zBr~ujZOx$_X3EQEH5UZi#0nL+IVr6;L^e}Pb7{CtHpf6V!fqziR6i^)!6LElqa{=;3wWtzKMLHM9 z2^{IB-rV~O+v}wI2GIWftH63_DzI7leW14I{!NoGy4C*0SX7GgpdhZs(K%9}I7H9S zH=oiPulYcui1*iPmEtA+iz;E1PU`>q*)rXqZ*DbcJJoMH6|OtbtE~PTpXpHSPyVh$ z=p|+=Ysn+S{6skO|GA9e1L@Y*6MtOn-`~zg{=cA3f4|EA9n<>%_S3m%{|pBiE`-gY z560!>Fax1%1g7RoYChGZn7H_*7qVJHPOhLXr?s{9V_;xBU^!igQ#OmA=}vfMc>05d zw$RB93!R~jiBseGk=6&$=od!%F%EiTqreAH5c~Bjy}!Rd^u}jNQYp-v_z-{Y8?mGa z0RZ+G+qo?eps_q!nZ)i?xtGGq$^O*bVy^pMiag6fYt;Ecqe3TcK?N(_J}Ifwna0>!vbV;5@es^zbs zs6Gg0v($q^%>dU{l?HI+88mmheCG!iKYiZ4dj~z2wa9)$*qex>HAy-RlHwNnF_P2q zE5Nq+FJJV+o6aVOS9)C0uJyewo38Q@s&YVYZ!fiSF*_3z6W>00vc=ZQ1hAZXXf=MM z9(Xi$aCv^aB`yQ!I5%&cy+SMK+Yrgc1qB)LTSG%bKU?3=WlmJZif}2@MAN z`y*81xp@5%mNeFVgP~$agd9l|lamFZPytQAukgA4=;GPek0`0A{7C0}vjuk6=lw|0 zg1}zkPw554!0x5UW%ECIQfa5m^4E%Ik^X`Ef4oFX%;!g@*&53SId3hls2ENm@mT|H z01%FwLMXIHW^BZNYkX%MnUz*I2kE(w5bDKfzz zAGm%-%(GI@pEI7u=m$-sHAOxbT_vmrS{&fNl$4YxeyX?=Nhv5ObT6LIRx^?DZEtUn zO--d;oouX!GAJQ09}2r#wX*`6R5SeDRY0PefOCU69qrT=5mkrA8%b!@O#=Pb5fkgG z&x>OxwRYxnm8Z3j=U4z{Z!WZ5MR<~0A@44V0(jL-ot9{7xvYd`+aKo%@(g;uR%us` zR(hZ&3yAWhXLBf&YG$u|HI?BR8B=AMdj_e|(Kq28BQiH;o(^m)E-nr(8ZC$~DMW}6 zP;y`YNIz_KMj6xHbIk)Pl^j%jelCUQdh6%m%&z3Qaa~DHAlc0* zdspUDd+^O!s{K4p&!>@QLaL?#lOfP`3L(b%T5UvbM-uSov*D*oS7aOIX|q|*v|p9# zHW6V`C~@PifGnxnfU+4;+LTtZZ>QwA)={|D zDew8h70^CEguQR9*ohxNRApdE!#g5 zCF1>i*{l}|JIA1#Gcss5HGmdK4_Pc2!Oq(DS*RXnYhy$5nN4fjWYUF3Q^@CkcEW zx?)b4NA4)B4_GU6RVQ0RF%D+X7DnX|*iL*-P7a?7?8yn~U8k1lCrJdk&^?77HADRM zU)}A3SVVmeKTms^Qt2E;v?)R7mIg{pjnth zeVa;%@v4KWff7D|*59)qY99kEsbukI;qVa19sgbsB|l8m2c|JfA&CL1p|?Y}@zDOQ z9fRx+DP2hOvtdU*u}bwb1W?PaWZ2idOLHr3ix*L*_`c+~?giB%4s6G85}t zUn%zX|6)c41b?W*>0&)H#~4BRSp}{=4&t^xk@M~{imu=X)<#g}{ZK?jI`~9&~&lJX|ZgtIhEsszW*M(N8O)w^+V zxXXv4y87esIZcS99>d%Lv+)m4C(kNxKEk;_jIpuleyCpnZ45g}>~I%piipq7fq=xi zzd2?;mr?y0-V%-C&FiITVIhAJdxUswe1DCB9;h9n=^#m>#)Os;k(8z|RuF1+{l?_8 z_51-8LEpU%vE-TNwgDlkm{|1nYpWAxasU)D6bPV02Xok4!HcwQI#%pJCZzuAf&C77 zj}+*Q*p!@JN)EeU&j1vC?U0g3OFRvo8I2=;&2&&fZxVprlGCY_ck^7^ApcLKs*K(K zM>uowtgE{G=^msl`>!95ZFiTeSHE8pL4P>$%a^+0GFNjDnKVHnYeeY`FcAXD;T6C^ zM92{>4Z5ekvN`6hy}P+gK||B1&AA$k*83X0#xtaFf?WG0uHH}##ui9q0sfh@3qoTJ zKrjZhH9+&W%C8io+Mi|dHuU}LvsWfFs)_13Hv0WQ$72Ch)=+kmI4lih1CaH3AYkPS zctUg`i4TF0V6ZO)AJgfpVW|E0H3TzAC@T-yD1d^|2KeIFTn__U1q56GHCEjy!*#`k zB?*Dril=b9^a~9%eLm5VWZ6vo64)FDw0+QP&~BpbgFhqWwFq*=7-u)YP1FF<%OMbo zeuUom7bca{c^#VLIsNw=QlpfgpG@h{z&>ZwnGSgKldqz~~8|$2hg=sue4ULlVNQX_}rT=)_sP zacGJ)&CdI)g)4PbJ%AS()V{xYkIzKuxU+6Jy~1pZI0%e!e35!`DET0{4FubIq}PES zkQi5gs}|)v01Bk8baZqi?K&;==X>tKLWV+LkA>DZ-H{}12az$pgWCrXU?lj6fho!* zpaL53++e`(V@`64iUYBR=tm$5`1`T~pgTgKA7b{|uC&^S-XA%K-Db9vrm);oK;Yo- zLSXmrLh$1VK12=VQLQn^@%=C~KrfjCGZ`#mPIl$p(JQMx%}!D^wOU3HeECq$%pguD zU?d>~7j6DC%6$^O#lVu?34{*f1Qh5{8rIX5upg``ANWI#g_)F}M(Pngi1-1thM7z- z!`PjXE~%q)TJ}Kj1)+@MjiSW~7}@Dew=&DabjkK$Z(|iOrZ!;nU`AbW;N{`yxv*#` zB=P8!`nyX29U`>SDQ_GOwNG<4C07^}SyW#QG8>uEO2WLR^(EEO?m{F^OMDhYLJ*R! zkzgiN4DWU$^ws4Y=%q+uXYMm-%VXJq1zhgPH6F@>JbW#kt@<~h3laE3j=S!Ujr-}I z?aKJ>BuhyxAo!5nK|3m>z45-k`T@N)RP8!v`wa@UpsGVZxdF1FF_F{e2=LJ3&EH+AHy^O3XzauQt=nk2HRmcq))3E;NvQ>t zB3yeGZa9P?AR#d#B}X7IhffYTnR?!^`{CdW5oA(bU{Bj?vw?6m%&=N~utL&ju2R#{ z8IN>eEU6+;28;4pF!-yu%m~1?Py|filK6b#10^345dBoj-J~}b2IOs+W+Q&<8K3h1 z6-%;1NASJbSDvLpf}os2JW2Te$ScSZ{-rBas6r!+b9cL|qzU0B5zu8>R~s12TlvW2 zl9Q9;>h*IVT#ypBRdTR#fS6VO@XNC+iwFCQh`hu5dtwjm!>r}Wl?f#K0uVD_>yVB= z>=2#2@x{fQFmSONv>Ed(+~1zH1yPqCS}{sCpt?G9T~M7QF@@J=yP9oJbiZ#5Wm&vc zp#$+efcOWW@5;)`uh}j-BrT&M6@m_+7V?8I#?r%e>3@oYwF{rbV8#O%dC-K0G=(r? zMU@$eyI3&3h9)^{K*X#}SGe@ZsCa7<1q>e`Pc$5J*y$S*hPNhPkkvsCBP2A;v0ZIs zF-Nng2SZ!JAXxlp)m%QH!t=<7m^EL>pVER7x&>lxn1nFv?Zc^l-!PyDdT1}G{9R)) zQc$v=&#p=@1D;OKmosQLTa})0h(l|JKjRafDBaF<*jhQn?{`L!W)6b{?ebTrk+LTT zEfYwC7C@$^rU#2*sBSIKR_$w({btVG=6^2)28K$^SK4EYAmlDU6;QBfd4iBa@rr-i zI3R>((3JCWC^ZEbq0sNnX>-*B&WePKntIRBbU3F05hF29Kt2vI&lHf5CLkdZt~hLW zSo%#KgPiUjK)-en@3N z-E9Cg;REsOFe4GEhxKv>Chjol4g9q@e6a`5zb3HYJ#ht%Aiker0!3B4f_4GC9Z1jTW% zZhR21=(uR#W7TKaCFXB1jj%A1Ujvowbom7Y4z=l_%_iCAxDl9?9?6He%Y<=a>KNsSGt#3270mdI3YV)8 ze9nhu&V-3$j)g3$XXp=l3@ z`3MTZT-L_*b>!LKu9c9a*gxD2E|wEWih)5-Byd)SlD&E3)piMy)5ID@&|T}0N{#jy z#?Czu8>>4*2gOhHLm=YOYypG;c2MMJZ#yg@l8BHTvbu=gi3Qr&A+4;KqMnvF`mRcS z``2`475F&>+C|00KA^eK(EfVvD(o`gG4p23U~3^5bx?bA?b{UZ3@mB^ofHQ6>UNGe z0=g_6q8w%rwNvn#K%j&oU@V{j^D0(ILFUk0?O4-#9nZcmf zo?rm&3AF>{Vn8Iln!sET8kI8QLNs#3N!6AL_GpFuA{*hCVHEBZ=LD)A)mmQ=qjhud z)riXL9kompAQv_;hlg&(g2iS zzQE!yZq55=?oh+!vY}iWxF}zj$o)IXEoqtGeFl89Yq z>J!9b=pn)W1HP5$I2VYJAd1Qs)^%os?CJ;517Qrx0KOqhS*^^DuC6Im6cGW33C;un zZb8^S)T|Uh9SUYKRze-a09qt6iL}UV>7y1sq|ke|D%8PxyDCg9kzjp(Wl@-l~&6TwT~+dDz;%*4u^_ z(4UZ;kZo}-DeGQWCjm6OEwE^WpaFCKa@BPd){d_3=bdKdhw1?Qt^!g-WNcQ`3*ltg z76f1c5_Tdl{&9snrD%MXJDQWx7 z2U}c7eyZ}k9*9PkAfl-w4ID4UQe6xzF3QT0@T>luecc-+|Ce5@uW|JXah_ZKMn8KM zsx7%T(4vu|LMFYH8IH#IH3;daInL|P7Up>ON$c1GSZti)+{oV@KFL)Bv!P(%k&|F_ z5`cU&hry?IpJ8s}r-!a)2<3srDz5&oX;BXMpUDu*0kroTliu^<)$qk}x9djF0A|Y< zkmi`6X(Ex$@QZ#(m8}Kql5b^`MKDS?gEBY{4NMT|QfD7KjBkZ~*YHeg>R?jov{kSC z8A>5SS@N-NP)rfHI<&e$Pzr*C4C8r8gx6tydtW=;QVK5k8(yNJdKcIm1jFv%L*))> zT?ka{uW}tQ0I-l2hHTv&nDFVq$8wYP!4HzfL-k3310hs&@ z026E&o83-O@tgtm$mJRpy`YR?Rj6LmhKVenFBon#{Ue9W>SL5DK{f z1O{k7kyzL0NlO4DWZEo`O0H9Z<_)7`bELAsFxz;J0Z1hLZdDg_G(V^V%xI(q%?ubW zLX2dqbRZR?c8w4(7$T5Z@|4i>`9jITew9z&Uye+q5I}LouQon)b$h9BtlAraZwX1s zj&3V37ce?;>HPRqwMA_AGpcGGrVGqFyAI-p`sVvm**)2F?Bv zHbb@pP_VjW3CF5D>p@kMfL;ohe<+K9mC28@F-6nTIe-h94fV~2aL>GkcsC4BS*yT7 zRv>_M`O}|6JNpQz>;P{g@G=PxHld=9NFA8X8lY_zKAaqqNp4cw5#uamp^^PcT1&pz zNDRZlED;AX(psoX=AE+IaS*{smywb;^rv&)s<&OPyu$VMvv)6DB!y+-13dJfuMI(D*=`F3fL=@3*pJk+>%tGpemR`fudOlf5Il@bNlAcY?EeiKYSLTSXahQ(3?(PbGbgiMTFhMe8vOL*Co@ zvI9l7mD=Tyr&4n;H0E!91(1F;o^vfx4cNB_Fy_d2t5eN%U}R3J1g4bG4aqjj(9E7$ zm%*i10_8#b9^W!tgnsANN`GHognj6$rNM%EJS&q^Yd^PdqpllDWY+)oc6~z_tQAbZ8GCnl{jxQ`SwBc6KiPC%U*@ zeb*vP{_#4`mVpyGM6*6%B1w5q&!gdQMejYM)H>P0XlDQ?{aI%I}4P7qDB!QFU`%|fTji!c<53e&nR$ioPNq2h3eYpoX} zB6r8hk!!QdM)6>o_~1jC>&f`!WNI{BL+l7(ftGh>!IZXTweG@}y!5P$JQ}tk{~{8< zW(~bSc16H{YxGJ<-r%H+BG?X_USClPY6^c4uiuq=s92PrCLf34KqJgJJMDI%ukJ3n zb2UKg2|~mK0DBXtEdglY4g0;0-|_YHh8|!&B-S9Ri=ZDA=`K6Rq%kxUK)47{oO)5C zn1qDihg(mzz(Q;b$=wPv)EaZwXBEe}?8fX-hLOLtNhv!r1)GuAwoopSdvgNm=?IB| zVlfU?3*3oe12T2lRGi=bFd`WZr%>>l@;Ln=_ zo0}ZkpC9Th=w!<03Vk4A9+8sN8djvO-YvqS1q1ea>fT4sRfGOmbadTl&UZ?btmN5!pc)pFd>` z3`?;aatgKXTCgjr%$wG7k ziH2xsCK%3^-IJYMTg2wHyEzAV8A?MfS^}vQxs;BAkQi{yA;S=vP)OF`WF8DT(99eW zIo-aTdAm?;i44y5-pTDHhA8XBLB0^qOQ^;J8wGBV%r`{DVW&~*as(;V^qO@a{j2s9 z_P$D|De<+=i841AdCunNvMN_IIW8m%dnU~S*bxTc1aaSYe+Y^8K+QP8MKvqe)!V;g zE;K1SpgsFkw`nl*-dud>OXRh?#_3?=1RVjq{r}0;QZ4>J5q&Hu+Og1jY3MgVF+kUD zHQ$T!Q@=kA-Wneg{8N7QxVz#C2nhI*f+Fi_2)#qm2u!_5Pje@-(}4-?$6H?aqwg{5 z2tj(LEoWd$ZR{q`-zT=-@2q6&^an}|V@KyA&k~JVU($n1H`;x{2Vq`&J5U2&3*i)) zuz>tw2196aK0Fu`bebb03k-ML2Z5R#co*&91jeLpoZKHA?3<<`Avy1R-uM&+G;=q@yqRT=e%EmdtyXz)14$wUzF>1ci5{*vD(0#EzG{s$As1eCjso=P;$5jm&Q) zT$_&Wi%m@nJsgJ3thOZ)VEqj*{>Bg)JP>Y6hw&*sK0ey=T2s!<#*Qg;shE@$>;vG3 z9ti4vZ%z_t4mEtP)U4Lq*9USr)}}-8J^3mPdc5o$@fr1(N(alD!=phrawZIz&w5wK z7_3Gk^$`ODpr>kCp+`qOf_b7f@H4XLL9Z^BlC;7n0NUtkB@NtQ}#&i8!ig8EaNt{ z8ef0v2i0nPRQYPaEWd6aAV{_v5Y8XxBS`k4R>P-OV`VbUDLI=KUVGXCKSKt~)z$S$ zU}&S(z5DlNer;)F%8r|{YVNg z>m~ut73}NydW8!MMi|@@5^d?7kK@}$Ko~5&rXBXeg3S{gE+d~qjmp1BCM|g=?;ai6 zYO-FbBBUr%O3U~BGW$F~tyy%Ixif9ZrUwN7pwyV|bC{TzRR-54Wb(~!gD*z29}a-X zWNKkU-T%}!y#xm#@L{knE4yZPr%XjOv*gs%i>iDRsRD6*luM@bwjiwzFWZ>FBxnrS zHW^q`&m+^-_vSQ$9s@k55@L`-)N|eg@w*6zO)9_=`3{bP=rsf|$UYa>cV}2^QOS@Q zUbDOKmgl^8wJM|6F8wmNdagi`Jxk>HOH2WdtURgy22|U$O^9U#4scZho3ZH+RjDpY z+~xFIGmY;z{0Shm3IvO{5O%~!$pYjhiPZG5g4A2G!ui!wH2$3t8OiYye2n;&Fo`Zz zzx%Jf_q>LA{^GwLxzO_Qf_L?YXQXxbESJyVzLL|e)yjNgTqT`EdNsv&iJ@djxzh&r z^TV^)WYgFDN(?0a{3Q6EQjCoz6;pMN3t!EK-Q_r#=lCc99xba)44`K zki3~4lOaJVs*!b+JK=}uLs~T(YP>cA>G(E^J%(Vcb$~2zY=qdIz^vwH+T3{{j+YVe z>CQ8~btn>J%jcPpz+CM&foc6+ z?IwaCK{5h>gqv`#1lzsh#o;lL@0CWmQ?Kt3f?l%;=P%AVfZRZ7Z`;_|sAFv0JloaL z@fzH4rSn!(YjhiH*YpOeR@Sc50d*#jN|w2&wQ9{44)g|d&|y_5%%YV~Jts_@J{SvZ z;JA!TOe4Mmw6)iz=4@CAK0G@PU8@2d3?H4)ApA#5%L}NapYrqbM=cXIKcEIHtW=0KaQRD=&O^auvg23fbM@t0z6z%PWWW5W4;KcMK}Gah6wgdTc- zKC5jBhMlK5BSo%pDpl8v(8hr?o*AI8~}yH~%1xu0os&#B*}0=q+r@Xz{lGbH*d z_cNYwZ(?$O#3V1-R#;Lh30EsK|5M4Saz9oAoS$oU7{u=6cz%sq zAL=I{p;dDG&bs-BF#FY(8ZcAUi=CrlPEksu+ln}cgM)|FHM?fptexCLv;wYt?-yLkcZWBkUCJJ2i92cLN~ZNWyEER{6Li0AR-nz9qed)`}u zWD+eC-3B?)6-UsYSpCsEm@Gwwh3UG|t#Ws~u^D0xTUun+ET129Eq}l$NbqxEuMb?F zAX!w`tZKHLzaeXABjs$6aQp}1c>lY&7YZo~D%su{-u&?F&e$6x*D@Ciwv=Dq)nokD z)OZ!c!#94}IV%15($CSJ!A~upRF$ZF%(V>T+kh89R9uk9%h|Nf*Ml=oF~JK zZ+i<|0k2HuJQ^9a^z^)~r~O84TnHn<%fj)OKDeXG#S`Q8CA$f3ssWYQ9rZpP$HXxyxG%|G! zTbJx8_KdiepL5=P%o8IP1_TlK;5ifMZz^#1@aOz|B@i%In8=DzbsQ}(S6~4 zEDg?O=Dn8?mXT*2i*3{8x%uIOw*;TffJSuJ?8veWznA*mtHV~`p0axh$GdjT(&!hp zt3IcJ}%S7`@{s^+}30km{87`7*^?4RMAylzz2$UPx(W zveLbw3KzbD{edA^@OEy!4SVV<^~A>&;)x%%Hp8x_weMf?nc2_|@JBtfyE^V*7pB6;(ss<=~ht2ZOY(EGW{%OG$cVVx6$Fot(wNb0yo)gdG1aqj6Z8GFyX3v@R zX0^4%=QPW9MIoxzH;090ZFOF+_RL!~{U(qKw31*#RaK51oRDx51^>N1oY6i-YdX8eq2F95gpxIq0!SkP4T zk~_#_M?ouitf)u`r%S!`Q}Z!lkZIRPlJ?sRVA8TYXZ64f)Dv`)n7_LY>{o8+M5^&V z93r|6Gm3(jj=w-N{|?IMYY?SJAkj*p9J~UDLxoj(gg%7@i822e(f%`!i<5jHDZ$o>u5l-8>$B!NXSKTQjvzmYxV+16GlNbom zH8CJm*GA%kS4UXuIoXapBWr=`3_PAX9h1ap4O7{4|x&VN+u@qK(h3JEuM> z&mtL1bzbCgk;qrDXM==^4VY$git9jj$+6;DCvJ_ia<*4>bSl=Aj6zdJwu~pDg%}^D z?Oj%8ruTKg&z%Pn%M!@yV=yi$2lD6&!-uc&UDFmeFgMG9DbYOzfq!>&{{QOe5>28c z)X0qE)W9Pg|t-7(CJECcXHOIaIRT=hbsc|6GG`;rQdXaQhD4&2z=+ ziDqClsxf_P=VTY#h!KDBu5$ed>v#Ufsa4%|V#<$VMahC>F$U&P4R~YjEfzf^^Q)OK z`!Ty_a-YD~k_l>8Ur2{uW9XG7Q^KYRv%6QZ?uItLsZ_JAepgoZ5V%tze)J$Ok4*%0 zcK>1FaN(0hO5QTm0W3|>u+=hT2KTR=dHs$kp4U&RG@Q*x80YS#cFU(!ABFcK^bLvS zR%!7H;s4x5m4gVu-?VhE`o8O3fyew zaJYgH8t3)giG`lblcGdhtJ&qEdE8w_feb4&KH z!OU9@Uel$tgY7ijW{)GU{?(hFQ~aBWcwS&V{zQsW@Qch{$qb()HC5XRS>BBE-^5=y zR6fdo_d4scJa1xps#<+eLYaKr8w`A!$0x2NJ`UG-e4_f}nWDBcCcge>3fj)7z?WPq zTxQIVI9Y9Hk}kTPA*EU)x_ma3GG{<wv^N~IVMTPvmL576R$7=G7VBfl5ys#B)N1~{5Awy6jPky%0JYT=!Ghb zed$OGJFiTc+KS-`6CoG!2f-}=Cxmz z-T2yLpv0AOBUf!itXAV%UbiEVzlzYfaveKmxK>Tof2K5(znTWGGy#`Q%0Qkj z$604yqH_Ilieql~KIikzNt+KFbZhHW#;YsL3JZ*8_ahw)0v_+Rzi?hDCSMGlakQq+ zb!2sUUSyc)y58OwMBo)a*x6o9xyBq1``#B}XD?>#Ix!d8L?dVtbKhu1@v6N%YiF`2- zpcO$@5>Cp;V{F;$Ya`+(f7SLy5a3Z5C(UpdjtDaNVsNfG#o+4kF@AWfo~PqsN3yt~ z7AftH@y?F43s+2{oy27{h`K99Evhr_jiWHm;H7GQQ>=^Cil)iF8}eee#>axBxbD%R z%>44Us@&ulBh*L}5E;~=;>qM15f%eI@ovGtsA~`2Q4TE1kBA5&gWjyu;IX->mcnYkhAl_qj2+2xP02dS+Wz9v zOR0no4H@A?O|pw48JG0n^HU8IPk-n)J}wUd$E z>LPBZdxp_D@-X?i+!?Dx)rxD<`UIF=t^0bUNAMARQZUB`NXmvZ6&SfYy?~LG4pyh{ z&r2X4!o>ZS6Zi|z2&5biuFG`zR%)(0;~1vv5$I*&FKq&8{VO}7 zPd}u3BRpW7Q0-?JGV)64Jzh#_qT1fmZ$lcgKwMpV3}}PMg>YtW)Ps!qj5L~E%6(1u zwE_-qXFN`c#A4fwD2=5}WC2;i?GLSI9FaU~luPB^p=vAl!uk@) z9pk(xCm#BIqZ+2CIFpy7BFt_i6w=jOa;K6+@7L_)E8H5lyQwFZv38Ai>;9ef6SmI& zkM*8B!*eP0p^j`mdBZs}U_;ZEIN~qZ7PiCu!lNA@Z1=h-7-hOBq-{GU85L zg&3{M-8YE$f~?x}>b@ILOJrz0)Gxu|dr?~1k*Ok$JQ&&5P=kVro)?&J$H3>EuudsS z?N>VtJfa$u)Gx;w9KnJMz)Z)`u<`6|g|8Z?;b_p8qB?*SA-=Vw&;~yfG=o$79o$6W zmS63ssHlgm0dUOeG8mYzcQq6JS-l`_qWSN+`21$i3GaZ;&X`bqy1T@WlYJ!XSb`ga zC)+atLd+$gCE zvSBAmxcAXLD`7)|RYQb`%v}?kNpMewL-|vBRf7Htwn7m_;tor}J@$50NA-s|9Y@b> z$XgDGEmq7pDigkpA1vvx6evp5Ke3UxVQ(2O(RFLhTxE$&=($;5M8Xxbnur9}Xsenj zw&?vg1tgJ?Z*1S<-|S+@Pt`fGj~)2ewvS!dB%gWhun>)ddpr8=L#n*y#f?D173rot zwJ@`{z4S_kDa`^rjBB1!E>(a}VV;VE6hgO3wKC9)+(3_(Uj24Cnjf@!B$A*am}AiM z5(zMfH-S2oRHS#p33hQ5ta#tyK2s*Zfkt2;pS(`lavnMk+@Ap-nRzRui&t<#-{+8+ zS(O8g5N3m3;9I;yA`EgoCPqUT>m{(XR>F-<-ocPv1t#Y~aK@}`V*z$l{dTzU7|2ZD z!Ef#X8#)GxcNr8~cMylKfD}#SeG*|yIE3@@{D7YOafW~P@^DWnEB~pIA?Mr6>}OOc zEbsag7{uYUT{?2+5s(G8a4DjCRVEiJlTOjLgsvlZ=mbSM8fC=X84@0+W<5%B3&GqZ zZRZs|DXIH<3|kxD(nX3@^(9tcOvcTV6N&l{6IIQ){n-f8+V8S*XSLt8O!1o)NK}n^ zLTJF!`srI#`F4Ah%;VQS1Z}4h<;37<;dk58dQKDPnVz+?E^qO*Q>AsC1!)i_P3_ELNj!v?r#L{p zW%a%odAdW@g@7aC@8>Q539EE0E0i#l+H^YHvk?B;pN6bpdCBUfu zfKkE1s|t9o2>cD?|?XA@z>^=U8aFV=f@jK%R zYs4uITub4IzywRVs2BbhRqbK3Z(<2>#$R0HX}`9`{;WX&hX+s9Sxw38XXL33iO7u$ zE&F`!-)z`%N`}&UIQpGdrh20iTz5cGcHmTgSTgedRxfx&Y*puZcqD3NPUt`spxb`s zO$5mQ7#i{hPvJFmA0Xfg$DIb_d_jdFM8lNLG2(+$B}3k*Zz9*_J+QOrrOEXGR)m{w zMUH^EzZ!fYrZ7Djg*lp9wzS8737X1qZPkh_!OpA02m%eTTVQT6-|^)O^k8VW6j7p} znbHozeVhKXjYQbk*g;JCcsT4!r7u5cXIqw^-~pboxw5m@oo^nmm1)0W1hIS7lNUKk z`Ag?f=7Z@}4UQ}LP3~y@n+#qMi~C1qkQlVVl=7@(=TT{pxx?b1mr&giBDE*;s^z@U ziJRPKYR;AW9TOSfzTxir?mQ(c4?j+*@8iUA3<=g6ej?(UbC)I0`E^-l)f^F@@e#6B zrehK${3)v!bl8b8MX%nM(+fIPgRgh>f{?J;QoBu7M_Kd454JSQ4&%HEH+<#e*cUHg z-#&lpMzG*be9xN~-`?=&r`S`=xLQ7P7Z&kl*(dQ^kE6~*6Dl7`H&entb=-$P?)+Px zkE>#=1|?Tb_wT$MP^7&=jd!-+C|A6Xo#-6sn+mjnW;oMpcB;&wBNlA_tB)_l&a7^I zG=Io?-~Y`UUajO~jPQcs=RERz!1JTM{Z*R?7a^htlb{rn)yLLqtEgZg7YSrAr@=r0 zE*MWsfh$;|WY*EuOnlg`ebI4Qel(%sl<{{R!A8-FH1-DG-ly z-$59ND@!Dmcm{*RR?c!$J5g1Q^)WUTF8wne(l=}=Mjj@eYKCI79@&+qQ8M2YZkF;7 z;7zGl_Kqr~$@J+kmQR>b7!LdO)|)@Li7zn9&Vug=2OMAsxNJi(VsaHe;T!l76nOXs zqhUDJKIi6UY>6-K$z_8seI;f4fka1cog z5m1PtvU5&L$I#(zena(+(T$ze^7!#dxIY7j=o3cK2du_ z(#!-`)HWfKAmX-rYz@Rjl$2SwKf#;ZCp8mY_jn)S)caM$w;z#Mv59-M!`~RwKg?xI z!D48JY^qC(|^Udt^_T z51GBePr${zlRL33_l2YVzFGtiPshz-^*iJQAo<-S^1g-VK>|epz5$JBaf52$1^1_9 zb8YvEsN)!H;lkYp%y|m5_rrx@24z#E6vtbjKpWIJ`Er=sqw*+d`|VoLk~4c6nn!tf zKE~r8!3WO(+@Rwk9IZA5gWC}}5Bms~QYuy9E!tP)<{pe>`OyxpiX|w~W8l{+10w$d zSkW<~-0SELWy@$NOC_E9{N+ge7c@yjw>Daaa}Z@?%fr`)HZeiO_W&cDqdYD}Lq^?gSA@kTie^P-B12<_MB9zK0~5@u@daIkiAPf0Jg z@1EnfMOIEubapl_n2MjmmCDJ<{rK_21q66TX66-pfYfKOaB!mI<4sE1i))p3@a&x7Fs|=VSN=|?)AMT)oFDEa5&#;#f#B)_R^b*8sP6qa$q|M|n z|Fcxs5=;700O|t=s|o+{fR7BRr^JqMo)-L2u{pj}tQO_;9~DZ4_15i^W3^@CqhyX4 z{O8ZO6yCU;*@NX?apVTq^JX1JN|yR-SeO%Te3t2vkb4D1N^~&Yb=ei=3amd7(;}0e z%EM@O^AlexU35;ZCGTyJ`J_dJk%Icfy-K!YmU01}c z$L&Z@y45iWq-sK$nf*l2MBc@p?^c&BnW}E)ciyr^d!MG*Ova-xaxmVR)Ao`3mov6i?Qh-+OY3Z@mZR<4X5bzy5Tt z>F@-)TuFt~587fP$`$8jNyp8CdDNk+<1`AmhI5M^A+MlxAgm&Q!B$mORS!&4v}?M$ z#iAl$3nU0R6#+@+66c>f2YtGA%N!7+@HheqK&05@P|HfY7u={ zT)f^sYIJneKSY)>==Z$#@#C9O>ovBu&7AD|3 ze`cVtVQp=#e*%AOTJ4SIWDiw2;8y0gOa>%3626_C9s|t;aKQbMSt` z)HOBJrxMge(}UTJ#Ra!}Rd8+5h|%-W55rsWmay`5OcegBFPMP(N|8F@Gw@u?T%z2FqvgEL17MTrbk5xd z60Ug`W$ntDn+)1p`pzCr`to*oYx{WH)kLc)U@7PRYs$hLt5J*)V3TQ#!JRgfiNejk zmh{3td{VJrV71X|#y6Mxy;TW#oDR4cAR9v~$j0EOe#4$Ti7pp&MKQ)e z?$`HuJo)NfgU84;5KA?l;5!2o(qW;7S%qSpt)sr{hrR<)DWxRPaO0@0G5A4AXl^zn zoytqvBLAtwu3bg!$h?t7GD}+J+tGY(NlgS>7aQ_&lOZ&Z6Oa}60%oca3I^!Z5lzdK zPy`=)v~nt=eU7l55PRCrB}vQ3p4-_ApHhRibHa*}+Acw^#G|2+)8YMtLl9@&`RQVA ztuERK8g3jhjZ~&;F)_hjQ4r+`1;Q8-r-dkVx8kbVnrt(cii(Oa!^7J9_VEV<1`??Y zYAa11d5ep|cjU&3-n;sTMWVmPzd8z^6c3xceMhLWc$=%+EqgaJQyCohjgJ@k~oief*1K0KH>;T&Y}8u~i92-%6>wjcQ9ihD zWn<9!_?!A9u3X*UiqtW$Je`urh%;)}R{3VuzTTvV+Irq{eu8;_4!yPp3_ zhs#!L*Nbak`INM4_u2nw0W8Bm(+5eX)~KM!uMsgP2*yn zgJK7E!)vLF>M08D4PWM1U}1AYj8jwMoN?*EL&uoqP$kUSOBpO zEor=Lqsyb3p{eSjsdYXll@mvXhXsB?v7&fJ>OiP20uO{tQD7GAz=^+maER6S+q*CW zDcZvKr%9p+7jk)fhz7Ly#=_7g0WaL16k@w5m(r90)Pf3%_)<2CRFx16K1jgq)TL-nBYo0wp-E1YIsBI+V&T_GnQ3 z(!N}xrGKQ&@F=!Notl;{?0%QeLneA6uprLu!O7tN;{7v*9Vy~VI?elT&-jjKA@S9p`*}p!=<$(u#$00&KeTZ!mK0-r%^OG5*nxFQ#jv576ozzsw{k3A0*{ zj24iVmu1jLPl5~5!^qmc^6$jkWX06l<7=t}SERN$ii5Y*lAc|#y5BV#{l+BZ#A09_nU#UbESTaI=<|1l{ zJ?3=37)zTe$hQtmz%$7tKvLwlVVONl3fVEqk~_NHixrkL{DN?Kx6K}LO<-fC{h#(}VI_n2cIu;6<^R!lbTl-Mc1B7R*+DKAINMLR9fO>C?&wQE9FafJxTFvhq<#hzN! zNX<*Dnw{Eq)$(@D(Axj9JVD!kx%AHEvGFfyh*%pcM*hlEtoD1dc>%%xCh-(8WJ?fg z^_@g52bX#YnG;1gQ%o&|Qq{AZ@_a|W#3y|^+r2e*@{r!rQi3#AQKb9!NC;EuBES!?CskJ6|z5klj`|>yRv#C0&y)h|AOC!=r!ETgN3@A`Yk>o{1(0k zsKVny%I-JaN-6A!rq0E}s*t;0z~bFfkiSPe*hz6YT+ddsma98KG+f1Jx*y#**Wu zjIOtQs24~x7I}W5$Lb(}9l-_@5Sr}y>QwlC97C)IFnR8S-?l9o_Hm5^1OiK6W!lNp zvoe0{?4z1DbtV1tpP;Vcf4cwlvxDKUznTRP@pc?{hI1WDso%2N!D>!*`CPH##M;FE z;ysk-LH=$}+r|E*rLXrJWpPjy}lhrn$je}$t2yu9P1e) zQM8|{_p67pqK@j0(5zY6-RhTWHR@-asg}1V|K~9f`u7+JI`#LPaka0l$*$Xx-!J8k z^YnpNR@RSCd|$tVxhKs%rdn?P;!|fg%!PM)J*zewZr$!#P+T&5VEqpxI)^yc()t}A zyjoLBo*b}h-zdwJEH^8av9M2FGzPLlm;H}N^|QF9i-j{5`Hm)UHoWB)P2uJ`$H@^h z<=$@=!*J^RPDzD>&S|sirl(8ZH^G^1Er%F-@U!xS#fRUA0r*>`bKczbj!)B?m&~p#L?h2S zc=XsY!sQTJ03OiW*VkoHJQQw7n|Tx=?w4zU#f4U(`1*|BDha>muZx9@v5Sqhyr5J0 zq8B+$Di$Gskwr}o;P{q~j>CoN_wREcW7R=V8+ZP@&d$4$vZ!&h%O)SK%Ui$qGpYY9 zQBSs2q6pYFdHk4+vJNtcNqc&0h>`S|eisv(G2p|IhB+*nT2 z>h4i_fpJVmXCh*!?K*A2T2?a>i**mo&ZaP(im12_MZQ}Ng8>vQ`hoacHv>*51Qa8}*7xrEr3$hR;L@=v?uai~JR*x^|g4ZCEJx!@HH@)OG`t)iEqO=dC%|+>}YyZ`WV*atSoVk39R?4*@eaO#y$^=$M5%lU+W%yNr!e9*Vg=t zLW0uaw4=UifFaimvlOgO@<>AFpphG@iGoB}SXg{koC zqAJZK&1QJMYI`w)g=H=}L-aKtA>V%EvbQn>+KWBmT)6ue-EYJgZa|PHdrOd4#DGVq zP)PsC2dG_V(cQ^(-4G;uf^O!!;$y2y%gQeLf~@%HB+(YzbCc?vrut2vBY?Y#E3PN3 z&S}luagzfFgm8K;`s(P^URKwmC?gs6L<8nfl&c8ZAqoAC`nJa57i&6K9f@jxmhRhc znVud#+OFm2wZK)EdYUD}kl9kJ@>a0WD);;wCEv5TGjz=z?s!mDcvncXDP8*W#mqS7 zM|Mb7a^A`F$#Ts`pX9YBu0>ysc9!Y?AHL~7q7dgAE}CFWM4r<-?rD<8L}3FV!M>?q z!VW&lO4w?{ZzHR^^)&_0O^$p?Ey>?&MP2Xykc~$W!d3~z$AK>>DR6F-I_F>g_@_Dw>yfXfoslbLW z2E$(rn%1P&IdTbDY*1`nN;*G9F>s?Q#7ehJhkzF4#*0r(jRdIq^|y0Nqz zul(P<`_IpfG0RS+X>u`0*U%28Y5G?V5<~J!W%@bgr!IfRz@w}iB*aRS*;JU8Vb;KQ zTb{PqSmSo^tbXceoE7i3Ki?^7`at$l*D+~{5~D~{r03zm8#it|l(6sKDip@3VrL46 zr4W8NnRtKjH-6C+ON(S|fLhi+UfwIQF^PZ07vD0^Cp3&CcSnZqme-N8^#-mfvM-Gg zPA-$_ILc4`6ePJ2yNA!kQG6aBad&S(%Q4HZ7rS+IXcO6&STn`%C{mF^(o#_#-kXMk zR^yUS=XZI4Dy;qLZSK#Wb)Qt0NT(Fw8yUbf04=r_l5dRFCVdsS%oM`f{8ckSDD&Tc zGS;0wQAm0WcZ9LIs6hfb6nzQlirH(;$D2f|C@*M-SNAeTy4g<62MiYvI<9a zDx3~RRs9?32|y~8Co(KtKjwnaIkMM}{;xgBOhLQehxUznAp5n*oPc11P++Ym4LK0{ z?+b+b5KSy{RlgM|y<`L!+T10OUJ+&mcLcb07Q+zYP%lqSRrzl=ig>~Hzk-!J`qVVr z?AE*bI(f^&C|-}Po(*#FS#3F=mebj331H+IKp*EEA{lOql4SpcGCl=lns@@FhkxHc zQDQ2z;}19`XT?*nQ)FSB?RWVsB&Px@prgiPd@cx16RI=)KUc2`l14Nlzi!+LwU$_YKgv$z!dLvmF>EHty4n16QYf%DVll!!nMzx|(Tc zJdBQyZajc&P-oHR<=6~qI091LK})Bms)}I5@_BV-@%fa723<_e$T}Em2Zj+1R(v;9 zma^QocPwK%VLC()-Zrp-zB@Ra=)d>uc4_q z4=|f9(KIVYKJRX)n(eM1c3iVS%{N(BA8vY5W0f!mBZ?QSzn1US=_VXbt#XAae(M{a z`1%X2PaN!xhCQ^}a{0uZ3oKZcEkk~WsgEWKib!Q-5)89)YSwE}sjJbrMwm~W>04jN z#`bj%AO6c{()V0^@2b@P_H71I0EhsHg7D#y*B%(BGdRtkFdNj^a_sL1TJ^{NX~>_M zkO3&W8!*NVB5=l(rf9j7Uw4&&xrKZ<+$B%q2<{;1I;4>1B@tqWbq##y=8MMK&GPw9#MUT z&t`BF(>zWS z_lJd9?nYPY<79I(Tro_eGhR7lj1oPl!5QSG}EWVSZsJgnk{Ocga zuMIrqD!7v!iL2qS_XZUGy|hVtKv0nyET)n0V6%=C10y4_GAW_-qTo_rg|53==TB=g zlj?~qo=B!B9`$_tdT}dsp{BuJyfBP=M;j6$EJ&RegvH*$NB^%oeHOhh2}a)*na;tA zkj)gO?Z1Fi42sf*^U?=7VUA=rc6c9%#{EH^>_E+I(n18>aIBA!< zsNBjQH{C(*qP)TSIg{^~8ORb)x)<3v?;&EpamlUOyjCKk0KGB9YSF1pI&(nq6WZnL zSCdl0q~b52YK_!RFaMgLyBgZd3%3gjxCq?~;U(r`#{BvfK$6si+ECV|sFG0tLd*lL zx4oFN*GNnlE%TXeu^39+4>?&q<}Edh&E5{hczk<|0Y9)~sQ+Z_x@AgV9d>IO{Tuu6Fip+ll@iKtaGD>rH( zofZb^{|&8i!|RS2+g;DiZ6gAU@qq*J zxFiOt8X_?wz5?(m7j;D>ot08@e!K)@OWLOZf_Wp~y7&N&4n;NRM7SKVv_$ddd^jn+ z!+)dP7Ku`Sf8k%t>a22uG=xl_T|^^s8Y*wl#U3tP2~CHhY)S93Aha_@KRbB$r^_n= z1R+15CK?KO8f6Upp4k3pYCAGO%w67!at}xEK+7*O=WQGv@X;YGn*Z1J{QLB(-y!0z zX%K0Ye+P%u@3ysF_3G=x&+3CI$!j{xk`{qtxZM` zEG6BcIxM(qyPTr2d!xgqrnys3G`Ym2J5h6P5t738oIUMCYR!kom&Mn`v`bO>zT z*4355FMWrDzg@NRg;scm3KZ}cg9&YqA^bv(hYR=it>l4oL0CrOnt{-R>LV#q|E)Y; z`2N>;(boQX_lR#9;avXOWiPa-#8TT@ThDe>;mw2N(Qo-zIrKa^0I%HZ7!Qle4xg7A;|5qH?W!Jj<*SuYHvlDO>#r{*R* zGY;fbfg*e{=pfI)wVQd^<1H#V-rn99*ba|=|E{Z)vhi}Vs>j}L=cos#FtAKiDk+;K zj{5H;FbS^qfz3`>(jsO8gQL+L;kHNdBZsG$CPycR_wAH3v$VSg#+rQ+UhF;pK>E&MVv zq5~EUw8TZt90yp>fq0-A1#12~`K;F}%`GtE!TjC{@mp7eZ|7PA`y%Ox>7H1tx)a#N93F2c6V3TPff{G zDjkl}4bsaAicD2a?c(j6oL$VkuHaZOk?{5=!331RjL)q1dj0BEI4}{>UZkgoRsSH@ z^I?w)hMwkBuuvVP&g~R~Fa^ba6wwffp)mr&UfBq3(pT>c6id-(`RUl1HS(eP4^cKI zDiLsMS3_>^lT|t0>a3`p^_pgO*2r+sy?5Yjt*Ll4YRQGEmvwJXUypt7`c~NJUW`~? z)>XqSp~?A6rnN7wR9*%5e*W3bS2s=9LC+1zheXn|Pd@0Wm$+^S;Wa2FqK}(;c2I%7 zE8*7y&sYq2I@G$W?LzSc4?F>G1n5T{0l`Rgs^uzpsg4tsQzF7X?Iv$**#FD!uSzZn z0Tmg%9$(`YyYuELO@!BK+j8chAd}ln#R4)rjdQl^0ME*tY8)VU^56PjS67bu_mPp; zY`kVMEGyZfGjLxw3O?R`Y#0aYt|-DkA+b)J$b=0N!OE8}nkP;abB{|lvwjkSBu@mD zJ`$cvOH~n`(h#%$EdnC5g2ds1C;mSE<7uR+^KyT&#F{5X@GC_8R=OP&C^}*f1wkqY z6urj6nB&34`Q51+)>91ue?Q&TYq*YtRS5ls$rI!xKt@5_ENKjCZf-75)9M`N%C~>j`H5ofm-!g0FLhfq*VUP9G9ySJs)cFXgT7gs6Py06)rUVot^3U6p`NGmH7g061|(OUf-rI3z7 z<^4aEZURp&a#38!_FsYb97SPy)6$#5Q&uOPbRj*EP?qPt%Ol8QAH6ZfOrvS1r_^2+yo5~vb7?ql_*4?dS{gG|O!G-({y`%tlv@v8d1i1p zIAm6Bs9AEe_`$w|m`XLIer5F9oPmPM$jtmAY){{s!K7;Tk5T4z-s(?^n`R0b01pRHfBlHJ+0-N3+Khlj(>b9P`J zfudl-Y~hR}M)x{6IromR%G1!$jL*!(R8?))*3n5f&$<3_U(Op>R~=xN=TQ7Qnz@!8hX= zSmv%k(Fxu@pS6`on>A95xoarWSQDdG5Dv=DE)&13WpVq7Qhxf0vuT;~G3P!F4A4et zZ|ZG4*09re0}*3RO$nVlwEX8WG8d-6!abm}I(nVUqt28YPKsaT?i5tz*DWr7ZmvAq ztjeIwYUJI%u5N#pnvszakngnr2a~m|PN^^U(}swLHeM=h+0Lc5k*lrl?Z=O@hT49~ z9=3TMnK;Z!tEC4A-R;H4vLiK2igwwuG&30pf6{>!)8>bVT_~ZJ zxw>9n50o)ldG}L}=+$vFk*hP)(`o4G>1Uy?Ih&fA2uT-lM9_vG?>f2XmMJqH$lVLy zf0KWSoPk~c7B`|14#bl0<|Fa&>(|Hjlxy1Qq2$(U@P1y!hOFVD{u){QcwCrb#mo*j z9ZgrYg_)04-zxq{3(GN&#K1Y>$o?x6#eDA=%q~dfk-n%;M@JVs+PaLEmJ2s_eB2{4 zGExk;6vUc`r|0ABlQkdRd9`Kf5iJpJtttZcUb}DgI2_YyGVk4E!~MeSnb?Gc9j2z- z*g=&*+JzuJkBy7F!a1rZ%&sW^%ANO)$_E5(9EiG64{Teo?#if!CLGm&uU|nSV*_8m ze$CG;H_iTbyj&{zh2FiXxt$yj<isbKV5(`7?I?`t=3( z_^9JIYU>Xwuy>6$;|8;9ZZX4KiTEg2V6ow(%h!_|6nM$ks;j=De|F{Ds;^A~Plw>o zYJdG%1A@5rr&>A2dhdTQBiiD=SKwCW@!A#fhn|G&=~F(M&&yJO_I}^f!AXrqp{+08 zQ+6!7V(@nCD8pn>$d->^HZ$4(EW%LU+Nl|x3Q?s?9#zM^1-@;mFL>#jRuPwxnW^(& zVSP4GI{QeaGFO6ivBI};bB13ZpU-%`l{%!%HXZQU`12~4K)LLpRW1jV@!#R;%=G4- z9=l?aI{aP&R0D?K4Fsg5BUxFtLv30=gjtB+K2J?g@7TF>XR5K5xPfu5d3?+6tBOao zt<@zZ9vo6iF|oBxgvmK83Su!*T2avo!2|}(Vst1;b6dUpih9o8~!OqN2?U6bXsaBe>)^znU0h zn3|oDu?%3#A=7X9^5s-Lz11=@EEtIzd-^o*v6!eRaYaS%Izb1nbBf-o*K7Y_x&*Kc zBEvU5TstNJ;}6pZM=IhQ78h#l6!eYn|{?K=}v5q0v-G1dfs^X+^YEcQ4(-ZlI z)(s3{O6^b`kskQ6xs&0ne$#%BjKaq2^g61np58x83eV6r3!)75VZUR5Q)1WsRc;E)1w)~<#{jp=mW`F(ajACUeM%F_3%>I4{UVi=o4C|W3yar=4 zGdeVV@$>VO=DN7JI5gC8V5Fq{iSJf)3=C(+kEIA``i;Q(rr*3thgFZ#8#dHI{Ngz` zc?cNyiOVBxsif*RZ}`k}-njqKXL`<4RL>H%4D+toJhlq3Azk(^{WH|xzYN4fNonaR zt!P=36c9#-8_R#v7Xl@vG6Q{!vPr1j7;*I4Ev&PIQL zf!{H4gSw(iAMI(hn`&CxK0Yh2^6)r7JGw!&mE&B+%;U&3=?a@;{EF-8jy*0ZdD7Bi zWOZUjRMBrkWL0OhHAgfuoLZHr(Ol@~YlV>Z`UOe+HhRbK&-=s^6;&BtsTGk_`5?Zs zcIADA4~^ZXj4NI}U3tcC;{hFZmclKqoskR7dIuG*_}$R9Xn8k$Z0<}=F`c`+yJ7L% zR+eSQy=@wle(#b^?z(>9>%y-CEBjl!a@iWbG`&|TitE=MO4D24bzCfBQ~PL($M28P zg4#}j-y5$iHqX#zs@;6P|4ww~LV(`T)xf;h0jbGjCpEf$UcNo!d3AI$Fy__|o0xZ% zZ+~u!a+K$ACP&wOx|bs}tZ-y_pg!TJeZz2I_w$o^2j*;ay0@;%9ouqVyhz8osC{br zCyRrMEk?AP&yHx&ZmV4R#XmJHdNs$VfELXNLB;?ZXT^@s_bSYfoniPfI;u;P(%k9I z#dYpDQ8Z+1!WbZ^V{O<F7kfd$)&a1sgm24hsu`n%dfWig;Ikby}L( zjfY6Y1Zkl+a;zqF5D3|Pep zdKHjjo}-;xuwnYtp8fk*V#g~8n+=t3dwOiy_#Uzg^42g!gojK1mZU0LAiO!dxNv8o zSm6A~GOI6K^*RUI4-9pjBAb;ze*EZh{CGrSVxmA$@7S1}Qtaf!L|95nion^v&z~8# zZ{J>!ekCtY&dS=lzTt>=ZPq#Ay;ox!wmXR!UE5;d`|$qp6)V2p+Y?@>yU;9HPY(US zF{ebec>^G2HuaTH2b#4v#B45cP*!G@@_y^_cE6*oQ{wWQCexZijLT0vY1I_sO1#bR z1TM!nO#RHFoSK^2ym#e_@M1a;QobQ4x|(Y-JUcp!c_FHb#l3w~W7{9Qu`>f_R6|uP z-N*iH?fSFX{-mO?NY}#e-_Tmsr@~?M&+PlcxiQEn>g3k+!lHb+&qG5_{IXw$h8W>L z?wH-BIe844NMlP&8PWJl7cRsmjR(e^K3#{FN_nECyRw-Po+CCfaaHTg_2^Z!Ot;8z z#PjF55tjL|O+#8vPVdN(b%@W)z~{O*9#Xi{{i}eSya4ooRpaJqXlRW8{23h+!$>Y0 zC!Kh!5!1%af(eMl+_Y?9fEb0_QEKfS96ZF|Pao9nx#P}zWF!FD_7U3oX>P_Tqmz;O zqV~gIze4<3_LZ~lXYxDZat8C>xFjB#p*899!RcHI^s`&5)EZ_dUqhps}hy zz6@}s5xwWgu^5n_BJjXt)^v36i;9YlPfV=*;j_LkQ0xPPSTKLoRkzetUykmUN)mX! z*7d-~74fs>qer9Wa?Nx6x_&;2So7P6rRP9j(fCQOnyqfOteR}E9#-@ORu!L+zcd>7 zBRIrqMx^O@VWimWkJaY1(CdkaCQ^QetkTOXUN|sqb7u5t+nw|Ct*>9N);K)B z;6-KHXeQ0uU%JN+aE%?d0ocUF_?$C%nMdbWV~d&T&wYL3_jg@eI79i-^|eze@>N@< z8R(4H)vOfd(NMYM7xQ%es#iPS7i79!-q<>G;&pfTw!>;%%Rjwq{W-40FFBm_uQWLXsX^kb7H~Ac}(tRzplO50)3g9n$hN0t}RtF8ZGvLHd@NMyl2GS zB1$5UE7m-S9N5)`1w=FY%2_1ZB0wNgO$t)lq`fnz92e-HFh$t^`23~3Fmq5@HEZmf zMT5y@$Fb=nW79=$A{EJ9^T)ex@pH;r>FMK`G`^SFaC@owgllgle zN85zo47kcWN(io6!b+LZNOJuBRp4prHMPWhNf}Nsq2a!`G13tMUp_9bu>5@aO4h_kD2dItsPV8Uu=@=4<(85H~0U zH(2kO3v7iVU#Cdm-hKPJw%GlcnSl=!kXXHXUO14sSmo6wE-v;MP}K!{0>;R)Ygemu z(`@-e&v~(|i@uWwTLjhczM9i-H2#Pp6y$VyZ z5_Q&@3{$KWb*3HaW6BlE!wJV+zB=FKHE#CYf_$uDq7_|w$}Fe6+b@@#h`p5=U0Wd} z)g{}g^h3wulADfe*Wi1lfFkS9xojK|E9mat&5jsjynlZjf(u4O$A?AK%z!B1+q7v@ zYCCMa3^{uMU2JmIQQc@Nnv?z)r7 z9UF`+Lr~V zE7#h&Z$Tbfc6RT9t;2r4nRb(l+HXXBt`@$rz3d-y{b#5UW6n%*VyCUsjwhat8V43m zeiovyRU2Vr{xG|lC*k3u>RPptUe~f!&SmUhD;A5lIkg2^y9ELh8L@V)>>6YmaTYHz zVVWlqQNTuNz?wHB=1qOCOl6~D>sW&P1%i(E$ zbLTQ6S#|faGkk9=ibnpi7jY>I=6l;yG~Zb?w*KBoS7#@jIb#r;#5aECz6UjxsZ~`~ zCEKO$MMNE~tqEnQ>1C+#ap(%;_{;J;f6;YR&L}+Eyukie;j;fVYu4eh&g8-(^9Ac< zFU7>nQg`oB7fI#PhW;-B#$#cDfwr^-6)RrPUo{SCdC#!+=Zw{u>U^NPSOkS9L2n5X z9cXY?%s{$>?1W=&*Y)G5;N5xS61hY(6t#@rxg&l1AP<)cny8GidDCgz0W-5mbl%0X z=fe__<9u}5w%*{}xpRg>PAE>deR*>k5iyhD3y+8($u@q(aq`nMCT3=?V>7|cMO-X!n7i4uH48Y6;bhh>-pk3+fqNje zn^&)1WqIbcKI?h$f|URXH(1Lo+y%b0v9UoS0%s9{G3Wx^Vqdns+UhYtxd_S>2e6DH z-6ckwzUd(teVaTz@R=BnOTucyE3lUs?G3&q6n_ErC~|bHL%62YYz`0^V;K_iM?=Kb z?O0c|YL1x|hN-I%e%6S7J$eCK)YG3e<&#d)QtV zT5RZ_deSkvF7hm$_(6BE>at~B(^YP>d&atI0=s;#A%XAr)%Obt1DV*d6*}7QDqWmg z#i=HKxo$&(eJAYTJWf>y7K!X}?Ezk{0f50b(gTZJN4{5F=hGI~Q%yUoySyt+ughbX zUfv#=i(7@&G1hHHs8tFMbF2)$r1m7QxQ9uv^pjU6#wnbim^9f09$jzT-+LXdCOJ7- zVE9Wc%;UAvK42D(89BG@iG^Y^QQBdlp`pPuI#C`jdO<-!y+cE5KWqkwPQhsuQ!;D6w4+_E8nVAYOEdwgMDowlQI@A)0wX@2GyG`_|vzFMk>8DBIsF zxw*rE=W!q=N}0Q6xZ5n&M($!7F&2MkjPb+sceR-!@|*eIHW5=uY3eU60?Cc%c*79C z;5Ho>G&4&1ndj8uR3dCN>B#gB)T)p*wF6BLjni;-$YwyMaxQ=3GVX3K8~Y zpQSn5OvW=kghL9)j+EW|NON&vo0FQ~?vNICMte@d-aiaA+}a#^zf^2(ZNa^5+7;uz zG;pvjUqLXTBxp`S*0%CAaP5T)7t+8oVMRG;XMWqQ{*wm_&Y6rw>w$7uP&x}4be?rp zun51L4b{Yi3tM<2u_d%0!niy4?(qs;WTdCJN3oMo^jMU23d_$WR8vp90+W_h5B zYiq(N6x~CI)?jUNJ-7|+a&)#zRw_wK-fSr_H!xsBRs@r-HVFa)TZbSKJ4BDAOOlJ_ zzN3Pu5Fx;l-?Fw{i%IZc3^k*G^gxog;-5t7Z4&vNA%Kw6(SM ztE}sD^7B)cGP?2d@A@=0Y+%#U z(sIZ$PG5b;qpC_XrNHouaTjj>b;FLKBAl?XE)CfaCzQg~D1L~LeF*>%a0?E`nXOFb zOnuzCwEVi#`=ohwREtKs{Ywf9U(5O#e6e#y?@4Gi60kB-m%+XL=eHrYfUU%95k~jm zK{8hkA2ICd)1BWF&+xE`-Aw0J)ngKofDf@Ru&7I|5i=?hk-FCX_N%vpSn8;old#XQ zM?=x26!CjGB9Gew%Bt)v^}@=Lc{rR+X|>n36Ds}u{W}K$fUkamh`@{2ulHEp2bWn~ zT-+U4T2jLH<-|zr=vY23WK>j?vd=JYHFS-ueXubdDZX z{?&!TLrgk96l)x{atKJj=(e#$rs+G03qs7*ljUeMb~WIHpcfz>YcG%XwrgB9mw&x( zYwMFg_>cVAv8e=A*6Ht7pJFpPOe!AX1T9p&9w(_Mw3#|)$9N6j2iiD=oz=lXP`Iml zEaA4;_+pVzX4B4-+hYTS?z`Cy#XN}LSi=6tlb>wh!Ro9Ko$8EpyYdIo*iY&MTHFZC}+GoW8V}(5$ zPggP=32b^$HRPJt)n&uVcYhaahj7fm<1n;flaGc+*kX$9*47*71Qbwo7E)5aB>Rg5*pAF!7cO2@xkm7MbQUfc6Zi*L zSJ%{ava)B`kE1?c$J})f>!Hc7+a5I)0U`?yMl&c#otvARQ%ER&cGgc)O3F)Zhav+8 zzZYzVrE7q5j);zCplE7pQb?~E=8MNhurY^4xID7#e-4?Pvm$BRLF~q+N)t;*l|{EHRM#<*=9&e_pxo^U3SAY_4tVs{5lMf>R`|G!HGqzX>Hi8 zXDcWGbwitn^!oKWhK3woUS1wwTE$VTt7~YG*tSjN%9Sf*oO^>$$tL!f2{kL{H@7d` zOsC^x-@@sV)~5kV8~PzCAOZMbQu_S20KTLYVMd7nbsgiJH%zRo5vV&jJ4#&>}|rb-Er<~fN0-8W(Gb%b!9@}!xH-K+$Qy5g?1rUfv9iW zR^NPwoZ77Rb070o?y|paTF5?pyPBtYbz3e{o8JC@37?g#iQ__3AI@I?+@4%>R`dyS zaIQ9}S$u$UQFwSb=ZY0l9L@ZKf~qbxw~rl^4`a%#wo4R>_PVF|u9^$yW}b~r-k5fq zl+TKHW8bDY1}#n~Pm6xjVlsKizTx4?1k|V~^AvsY4+S%tyK2OC$y{VvTwLrw>8`dE zb-tL7$YK2Mn^TPm;B|!a_xib^1?n^gJl?PQ`61FU>$so6*zoWv1VI7`QP==7L%pIN z>C3rGm!h#SyL;G{CP6`mMeODC=QU^sj4l*is=NLF|Kmk^VV^cPi~jiiJbeWjT&Ru# zJv!EGXrx#M(wyApzZ{s!{{74ex)Fe6B_$=G%9j1*%&G9N?JiqTe7Pl?66^d@A*Bf% zP9ydh!9-6@PI>{rp{k2~T|!EV0ZAmVl@@*m*R|p0(-X*2d9JrPQ^5l&3bNyYia1d? zA@u^7qL~f2Id=9eCxX8x%TjreQ?E!$LgF6+wC>(zA#v&6Jt|V?yE!?4$7#mWbyE?D zP9XECFrH=0mfgg=iiVhw4*92B6m5WUDbi;SehVC&t&+iu`?NXY_; z;9~+sY7A9@zM+W8%X7Ls612Cshf(sh1fpWWjOCX7Mw--tHqt$gY3Fv&&aW{|)}{_X zti!{?!a|B-i2c9?_GnGBDEHe0p1k+-XDOdJs^g`42Q8>P@QzJvY-EcZ-2o*Hq;&9h z9UL7uk!%}XO2|;v?~6$YE<=&zFZfPFXm>3`8x)wWC?Kr5x;i`TuO`S~KAw|{Jq*7V z2`_;iH8t8n7@9`f)jd4q2}K{W7=$d>20b^t1Pz>E6 z+yxpgN-zhCoEx7b-aKTSABX=+1thYlaO~f|pCW&gjw&H>KH4U)5mH@`&o5VcmI94H z!xfHj7l=&jf;u7c{C!z#Jlv85&`mdkRgaglk9t5#*dSewDDE0sh>(h)WKE!n78sZfjq5LWh}ynp{*IcQe?g8mvTviCiB z=#V{@Pl5}*R7%b8B*y_IS>@xO*bKE z<>cpcVsU*vR`!|T5euL2<1G}Y$_`K z$`&VKo+#gwOcM2Ylx<@Z{R0B@XV)!>!ks0MM!`2Vv;_a$OkilwueZgdiH_L4X|gV@ zyzpEIiSk#)^!4>U`sQ4x4id#R_IT(aCbkc9b0x4M z(^mHVCO}-}Kw~0+Dhn!6%*@O?|M{nye0cc5y88NmtYu)`-I_>wh*elv#Ny(d(u#np zfI>m`O5`aJz)=y`A-4}Bj^v6$ls!gFNh?rj0SbV}X=Q=9 z@y)8LmYv~o&UGjneCsabC%4w?6BFb_XD?iceEHJg-hpBccxFh>h=(-TyO&Sas)XDn zavi`bkqiUym4<>7d0FG6Dom5iP@3?CeYXVSL{?)&<#~M=B^iz-qUPI+L8^dFwP;Ae z{>kNbn46*AqOEuuXO6gx-@k*dDSIwkYjlI)ez4#U4h|mJGHH)l!xoi6Dj69WH)WII z-_fSoh%R`K$xr_TVF2+g)={HuyPQ-7udDH68fqsVeM1WKq zvs_0u*%4z{o+3(N-pk6Jx{3@ys~Kq2L{BnlJO(ZxF#uCAT3ab_!;mJzYC4;;fN@r= zi2j=g5^f|aN(;ITL?Ll;ah$N;08ktFqk9^YMu|iXy`1FG6SXm!0aDY{w0ro~omIqI zBw~g%6T_?_~59oRQ@HYq4J%2;-co zg*Zi~Utk0QBl@Crt*nH}vUdk;mx2uEQmJ}|XEq?w+}xb9|D+^2CNL1RtdO9CMaIM; zu(=A?oGE+P8VNyu85tQ8^FDmA5?1qNgME^^tymu!Lk&|v@YlytYP(F-rf8|{!`Al3 ziGfDqNHF1G06W%|zz)6BxafRs(-i{(5TTz=_0Sg2&o3<{1H%bl5(Fei%60@4>gb3> z^Fs7@oO9C>#t~Em2qbd+rR_Q}6Fd!hf;fLmHvXC&nPfpj0XJlrs*!;A_-SxZeCt+z zC=-FCEHG^bFMjsw)l(R(Aa8v+)>!~KEcpj2Dk@K(JtK%4K9`$^=iH4OXMX(fzIp3b zb$7S*Fh-ojJ`Dq3PHI>1z0%Usnm9c0kZtYlbQC~3_}+ix#<^?PPUF~M+|@2CbR4z) zSqEU{?tZ^yo7%}=iX`_My)2J;!WZl#s601dZQRHXWeXXEvvmG1#yVS} z+Nq6XWpZ-zY*JDL1}|zMTEWKp15P09fl|3pYK9{3Ezp^yL*Lg|3ICK+RP+oP3r3cg z!MtzECdRsp1Mwn8kii3gl^zg#knsaKIXodOZap-bvdPe8S+K2x8cUOuDUigkTp5Q# zNMuY*VV)2H9$eGAGTVC54pYBXTgRLvwflUjE8d1$5$!o%Uf$kM&ytXk5uAkR9f5ITWt?0RS1n*?iwk2RtJTzm zuzhu!$D%yYJ_IeOH5iVsk*xQ)}n1Cq;v|LvPobB{w-bsLdU9jQ1l%BO5~73x3`wkC&)PHFuvLJJ=TJ06#zUL}*dHQ-0q*j| zJ3%a=P=5dZEss&CWyfs_4>$E!hDI)816lu#!0%jRf&TuOk7!-q^ZIoJS*h*^%{4?f zk!Y|Wd=?gUlhsKIn>T}FJ^6ZUo@|uFT4+TIfo(WC5qJNPp$5g3(;F$FU~bSQn09Hi z1@=~NAZr{a7BhCl!%K(kI+|7xMQm(^*}i=Pwts%{FJeYF0q$7PSC5g}F}UX0yH;P7 zN9Vw~0*n`uJ=CEPxtE*=Xm^SnHkkXmEf>s#^yKQSzt9r4aumPK( zPuVUE@AEiuBDr+KGGc2D8=)v*;K1%%Uifzqi`Xi+k_^Or_)rnpC7Im{_(5~W4tgw6 zj>OvKewZcE?F0BLC@7HiZ8vY;d;+d-SOJco$u@=_peHjejY5nKz8(0G3CSZwj1257 z+kvf{3_D;8E?1fk!{iujgC^)T{`@|U;G>oErlzH3Id=MD-1RvDRg5u}^Lb2_EWqa` zOBslsndA#Vu4Kab?9bw=1kl#mF93Kl#34n6!{^LOT5FVn(*od1GV#PjJufc>LNBda zl?bH4k-zCV6HO#p*-fS_&-e#p7uCDUlWJtEBpK!lcSh7VAA{%J%CWMTiHQj)XezB| zJ6s)9Ext67=olb(kPu}!aqP}2hy_oZnjW!=3BUA;23O>Op+sO)gGuXf!+9_RBumLF zpJXw-p&o}fuf8}tK>9!#uZow}qiAq0C552CfhS?KC0>IpaIghfF$qH=Ga}(el1mLF zGCT(`w~e?1Pw+~@s@_aM+u(6)L{5ANgV~Xp)Rz^HoNqq_93OxXPDa;~;qT?;>I9Et zjh8%uG7l0qaIwcB3qYSQQti=j7EEQpe(MP6hY)kB9SSHEKt4_p5jTE)=@01EjJC}E zyv2YxtPIaj*lg5*W=zT>%LLMRg*}$%N^deJ68ZlC6}Sz)qW)YrNkjq3fYokhWvvGL zMK%+nCU;8~q4L9~l%}UGEsd2Y=j(j(p;s|AH9d=?z%HaDCL^Q&uN9prZ+`ItNI;fk zZQnnrpnnWiV|p^U1o!iNQWBwfZr+rX=4Hv=1?s~K!$dGtmzA6|{8Z&^KP#l_bSM+x zyE}L7(g_Gq{oH&VO?a{}DMc12X35-MxDrtgQFSJy@~$7tS0<`YG6B%sLLiQfWx&Pg z1y=I4k3i$I4hBt-n05B7*o`TDB#-# zFlYb(5w?2&UCd#`Ha2G|iPA7c#&S%oC9Xz1`Nc%;v6Jy`OtH>Xgb30(fusXj;K|zv zXeb9#LUVG~gPwlT`{S-u1K0wIMG*Q{Bpyq(*_RL-P;xRv5+1YT_TRdSm+PGoMkllmvbBF5 zB-YQrlagk2Qrf10dqmF%bZ^||aY8I6bP3x>1PlI?mb&NAmBk!E=vKVDxw$jZV(NGt3BvqMWQI0K|VkxK_y z2yacPNy>1<*3&+eZ)qblZ5%Yn=!8wMZvK*O82EN3`3gcw@ksYCcBHZLR z5r%5=cLeqC?L_dtwmn3Yak(fJkqo|!8D!Jf*I5Ik|B0->1=e0ICZzF^5+Btr!WtfhdHTEGbzlpCvKW!Pp_bI;kSZ*l=Te|wCG-)n zkYuB&sU9T>?1M#(V0|?EealBIAOcBz%``?$hV*Wc^)dLTWL+>B%T7k{|IOI&DuSUY zEA1leBL<8@Xd?0U>&Sc!vUXI}+nM??l_pZLjSL}Zh{sD}&#BsM)3M+P5b!}$DLr)r zIj@$LH5`5wD^(64(AS!-LkJ&$M+SU;_&DHK2QW@Bu^S}qOjwW9L)mX!jKoW1Rj6P| zu3hU`8_iCZLxGUEC3`N`+3bO3u5!Q+X^f-WZa?$A8_aASb_v9d1r4c?0q{nHS4-XR)ZqqxT67;pJcwpl)-_bGdaGYinu<8|VB1x_yH72roiR4#~%!+XmGL zI!OA%P%2vD3P^~Tx`ul6HTXNi5CjKT3Mkz%mX?QL=s$E4anR?_3n&5dIqHHWGQ6f7 zcI}$*r%#`H;WUu~6HoYWZb=s4Nl0kJW}JC*kaqy`oG8cgO5{5_y1EPmxQK1rW{s;K z8+&IJs0$K0U<`yDCDsVn3PcSm;gWT0FYrX~@UV=}GsT);tYRqZG-6x>#v&(z9O(UD zTzv;P*L~Z*6qOYbLT1twDJ#irqM~V!CRw3~kS(ijMWrZ3q|i|IUZq7!8Chk9NZI+H zm+t#`-sArs_j^3gbKl*5e&6rsbB*&nuk#`+Z`)-xN96$YL|k#RCX7mr^i8%0bzJN#%-r)&k(DCok4Vp?JiBVR-}b+`O|FOW4U@_JSEKG66& zKuPF)RNvX^INY^|>TYNsu5NOdM>e5VDg;r0$fMK7M(6+)NR$b1S!fvpS@VmoTc`i` zv_(?{!Z8QhLvWsBPwfim_0>?{0VQi|5qR<91^ws}W~rn|jCjFtetSY9hR+L6ou-C8@X_1Oge9Hn2o(IfV*@ zHCsM4S4ghO2nbrBnFTJei-u&cJ#h1+7)|RSOv!qu7kp#z-jSezNgZUC36Bms?}#Qv zSY=K+#hgymSU=*X$Kr6hY~scc&u0@5Dv*YLo{R&@LYhiXvaTnH5OoQFWG#7w?Ta^W zhLJ-(5;-_Xv~v09$peD&B`X@2Q2YcmHDpHyza)17W-OP$~=%4ROhXozq{nXGl&b%0hh9JVHPxt1gers*D;M;NB z9X>VJC&Fgxjgq^lPH5{JXtY82{`^|36TM|-hHfeRL;X?e(vd?nrECYoGU{RgOf|Z7 z-XvYfOc||<#MGKbzW?ZpaB@O$)KK?dk?;a%)1*O(*Zucu!XMG$5eSZPIouQQEmTFq zf(U_&(h#ahEiDCIes2W#xqr(RqGk;Z1?a57y$Nv4PTb8fF3i7Sy0i!zeFXu1ODHKV zrsajc+A{U*R?mDX)ePC67!Kv&{!y@o*J%!42DZch^?iA zaUM3v*a1UB`?}=Q(-V=ShG+m|E0%;a6iaLkH^)1pCEM8ZHmUBR0w5SR#;`%)4irWX<0b+@<^#Ot`##`FoA2&T8P#uC_H}h#1RYxzA4c^gm5FH zC^;;mQWfY5nt=2(1Ez$rL;Hrki;K|5lL^k~=;$^eLe)uPHzNPgjylMHEOF>YvA{eO zcYm9S09SQ-jdcc?SSQ6R(b1YgA2Im2_2kJ1O+0AzV3<;bA(pmXF!(`L_Y56%YyL!k zN$e)~AE>B_q(OQVqx86q!YM zt3w;YyVf+60IVZNFdenGXCWoWIe_QsAa-=b|LuX#S0DfWeoT48hAXpH;x}3LKM?g( zf!AgXRkZf?g=vTIilI+JCkbpc3I|od3a)m86V21YGY(*1zJ%k0W)@LqI^3>Jz?so? zMOg=4E7YXr*8UX#=x9D9U7Q|F9cqJ4sr^>7T>c`1h7mkR;=KMSk(omqa1eOH6ryO8 zMKoscj*AodD-CSv>$6orGxR0IYqDKr6rUST8x{*+GjWcOj;f{A!2?J$LH~1}Ct@EW z#mn?LoGewV)~wM61p|`1?8q8;*uz~Xw8ZVd=yHAeztJUka;Si7J#pC zX?9+NlHqDzTCD)~lXyL}88g+9adJ{pA^8VmQx2YFF|^5eGz7;|asa_enV~ufN_}7A za1IoVFQOX@92&SK7t#wwuk~%Hw1JPjeEE{#B2b>PH_}0A;emL!J7`!SxcO+@zBn3* zbVB}!fM96rD_tdOkVfB}$(L~1-u}hm>-37i6n^pe!I#)j3my%@qZmEb9({dA^e_)l zjTWG@2AWyKEUKmTTn%%%L?TdPLGJi5JPcrxnK}WibBU6ejW`n~1NIQ@VvvO|y&ELl zzs*b_Fc$)z{{rMbM9Oio??CWWo%k+C^%Jm{cLHss=Af&wi^zaBntZoqw}7G94Qetz=ESSngTNN{E|Q1b|UpU>2F7LpnHD5FW2 zOubqzhuIF~4oh5FDmbtT@B*H*d4FRTXmT*gfR6^aRp+TS#yv<&E9f5CfWM2?&42$c z1Hex@BCowfv4@~-zQ;&TbD0R1noXkCEyIuf(S0wj4ZGzQKN~^qC-4@Ul*f-Br^D|4 z`tlGjno6)O~OoPrpUS45TpRykGHU6fr<-aZhG5{M8=!%iM5)c%Dl6 zwmWpbxVGypi)e?;0H6UW8GuH&J;G~J z0>8|RF6SDM7E^c>Q`)9Fzal~;5Xa$TnpwoLxO2RyI(#5so#DU2jNqPBSyffi8Rr#_ zPUOZWcV1MRkfoCJLfHMg>}u0oe!Tg{WoVwS9(i<-kQRJ%a7l zqtR9^O?^~-b*Ap@SpPN)$iU#sRcS3)&gzFo@^4&Pj?hn^3K2Bn#yIAfGLk?=M7S{? zIpM}s(SWxCnb>~N)Kr)v18OTp4^Qx_uE3q4qn*WozMljYaOg2j8{pPhzFKPO(yxg& zj!?Nlfduda*x7_1r)h!bRAQ7=VSV-~0os*ZA#o2bn#G?}*GSFhE;`IWw>K z8Mu17sD#<5hQI*~Mw2@ao>xLxxV35Kymco;V+wvL&RgwH=*|9hWF~`%K#nCEU~T^M zR-n{C#|3pbN4bvHdNz;-rJSG88GUaq5NUXBUjZkw5Nw8HM&c^RpLAINeEP$GS^!uL zDGOabk5PVNumDY=Y#YR8ZwX0BCPc4MVBg^&B(|eCs9y68odffHWqrthurbvU!J-6Y zCfTV2uYnYZ;S$INQl?YChKA?+vS-?4&=DU@JiI} zHK1jnbcW+bs0(WE{E@tY8GkRzLRttH&~0;1j0{xJ8c0+J#6BV7*cVL66U?v&ZnQyL zKp%zi%a4wA#@&I41CJNvE;)gscbjAYnu`$f57;kYw8`l3T1x^6!t}r*bkglX^Yrn- zAz#{+M(gfAKMDy7&<27>&^$d#K#WBM*gQ0Pu95sz(hxu9(oy*sM>?tCEB_MJ-dpaR z2T%p_Jdn0>Q*lhW8FHZHs)YIFn5;wZogno~%BVG}~F~Xjs7L;v}EGZREM+8H{wIiYU->{W)x(AnxWEB)x+lOt(aPBXonX|0AivrIRi|M@Q>#NuG}G4zq*Ar*le+CJD9Wxiv8|2t}4lrGG&d4BC@20Xp;1iXfujDFUz504K0OHa) zSQj`$;J}$sU47QSz%t5Ha{$Y2W2yM_GiAKAE(5jkj%1;S)$iQ&vT{0cuZii$yKjju zn3RN>TR0dC0PPltucI$^dHO(TB!NSWSjUjh@qX9#?dm{G{(#!Bz(N*soFw820r^T2ehLb;6LOG z==L#OMzd`HtM8ybzKx**=A9V>;@#71i7H6Edc^k8sdke11x1aB5z|vNOt}7+&=SL=^gpUnHv7xfGtZE!ODmSK0uyO3s^jdk9qKyhe}5gL)>}a;!Y>k&fK@Xulz8Mk`S{^%XueU z$qLbB&#Z3(M+NFff8KW}23oqiPjoLsk?0}_APhLS{-+jf`@0kwIU5dWY)h2)8hUK< zoOFdW^&+4M~(?x2Za71U% z_|G7KPjixD#x;J5UxyAl;;3EdU#TZ0f|4*p)Kzy=m*%C;am zFtiYPiybg0e`I49@)C(Hp@rv0nvVS#qy-}A2pPN~L$m}G^eMxJ59(=|Y%GBM*-0`05YPT3L!ztG{S;pr@uVP*LOB)nYy};lh*C_ zK|Jb1sKsGHJ{Qqb3{5{6VZuG(BO;4QG7MeqRJasWDUQqhqg>Fw1uFtI_wMDP2mzfA z{q&>;jK)+TTC-`)ms_`vq-8w3yo?M`)MNbU80U`V8Z0oy%UU6g2hZi=7Uwy>g5cy< zP}c`i>gBWLN!De34|*04O2m z!f-6(zso}x6Lar;6J(muW=|os8a3i4AqJO{k_r`4(l_+pWY?&OEdqvrkCzS{2V07K zNo9k|5f7RX!}Xy{Hj-tDKv;m7xt6nLrSIG)Po8jbbNgbL;0n_S9m`87KhB=b=26T9 z8i0OUJ$bLVii)v7?{ygqMg^g}(sv#*XfWpg8Mk?G@DXF+0+IZ-M}Sa&Qz>)l1mtCf zI3c059T^FOG-xvBg$y&VXgOdxK?S=~bQ6J^fgDgMEm@%Qg8@1|nNwf4?No@sbIyV= zma1IfrENH4+7ZH=8~~$O;Z!`>C>n3{5q01XSbemCV4P_wfc0MK^$H5Ilfl>k(?XDc zhAb;|P|6YbSNP@)2N1Ij^CaQFP===g=-09}j!LDVu4y_(1RBq1j8HX1!Ow!QxcC{i zg9=l?yVS{gdoz$@EeR<>>tlz~nkE!vM&&s6gzX|N6Y)@aQH(V2gnak*+H`l|Bs2{} zEKX2AczFWDMj+p|X+g-=R`WFU_oj1aL&fWkSsRH8TNZ8!8ki z)Vy)J#KA_AG8NI3;=t+e2bpa-xm@A_wv!(@fsByGy^Y;Oxu)z9ZXp|Oq4HQi05C5sWB(Yd+o2?}^ z9an;H1wr*gqjY5D9P8Gx_(`3Wc+WT~5b5>7X(Y|P%=)0mPu5n7;jJSvN)<>llwc;=`U4Xn8W%ovRM&gi}8`%yBfzmLQ zj8Ku&o1{>3^cDX>l;zpMz<<~ucL0yS=>v|ob zoISzyo1i2NkpN1<6;iuXZBCQJY-~@R4e0%>x~UgPs3YnZ+6Rep5l8wwvCgDm{a?n; zW|DD*L2lRh3ZSvKH3JEpT`DQribqM?gRmtChA%QWaR8&BvUyvhD;eK=7^-99r3rlk zy^mXPJ?3MzOBuzZ->WdMLUbHe<@|~cqJ%i$UpCA>q~*;1)g=ZyENOQx>0r=kVLBsB z9q+2{(7)npyiU^7fM^70vlidqkqmaZ7l~&d;aRk(m8#R1S5{RQczMw#bHW4@Vzjli zj>2KKy)nz_-^Q2($pFPb9PJcL#+ap5OW}E7`9YB9NJ5UM6=heW8wPEKb5%A_NW}7^oXU#WfQtc-C%b)uDj7@lvYS1AvO}RN z>oMv8F>edDq!Wyi5VIA@?|pUeFM$7%ycVEI-eQa=5b#5Jgvi=8r5teL`TL%7(3=x< zGdMU%av~^yIq^hs=`eeCAts!2&pm4_bp{SK2xD?8si<9~%ksR-bW7bdn(Wka8SUa9eAijC?kTJiL&G6GP#3-j!>b$ zkt6`KC}iD6D~OT%GANQ{-vr5Wvi|9On~x8Q5V>0i1}Fr#KB^GbgsldB~@G97oZ4fw}KKl9t~YA5=z5>VP-cv*207eDujoG z2L~x1+Oy{pkFqOBxZ#0j5pt@)z*L;-xz$Zz%Hw170I{N!qA>w{AQ}PEqa(%OM9jhU zLryJU@=tJ3lF>`ZEdCB0rn`^W!6grW0=gp>q!|&ZNEBoQ-4eb9V66f@-@l(^6Hyf+=@G^<7APnv{4Gk9pfJy$`fW4`Xhajz;_~n%A*2-r zAaefBojdfRoJ*$Q*6s=_iG~e{e#f8zc?Hbeq`F(MBLw!a)!O>Lx|#*D5b6R3Le(Dn z%m?j{iO|Xnk{D?nj@qAc<#9X?-`r!zj_p+FP9&Xh&+o4}=clj*o8}`njWqgFaf=zO z9SJovbz=g^r|*qf+yJpfz=LWE z6s20I?x9#$>c%T*`Um?DNVnwDyT7!eq8;}G@bwlH#LzR!0Hd9W^VhVTLzJO=n!$!} z*HBav3K_t**b?OdYMDcpR#bdgAcF!&2*}IZ6u_}$C0-BW9y*Vm3RiFe&f~LhB`3dV zv7%mrfGr@Ef*u})-m}=;M8&Pie0WA~h!PN#St$CX8yV(WP1_L3v0u=aCJmtX0N_p0 zpEeJIka&cNq%LLBSpWtbe67$-eNXzMM@0x_SpUF?V!4K%N%n1cKG2vIr9oT=`@CPg zlm=60Ns9LzMbm{A8G;K7P94|(>U|Jzz$6c&-j989dZvmbY(OsWJBQzS-JY5VNRz+oH%i5$p$cy+3{a(@wbznmA{bWoC8|G3Vyq8c) zA{?>_tMJpx0W!I=ES+aMH@GsMXbS{DO9=V+l};@sm9J&7-+T&QTzjJNPsME?Ji^61 zVZ{y^DbA*OW2Ph3t6M_(i?Yt)Oo>5f5R5f>CWDG_wL&U!40J~Pq;aCybH5MKi6nj% zZ5lIXk*Ehq#URtllb;_mQB>Tq!w0Mv4M0i7c`Q6PKK$r!RHVQOT#o1%(uJR&J-6-B zR^cM6h)w05yj(6ekle!Ee!&kc&EqC57P?C~4_MQ=+at9cITun_D%+8)y4`?(;WgjV zPrfT!JZm zqgP-|TE?Py4p?!g8`$)yT!wfL60%V~;?c8bXc6RopiMcWpMnb-4T74(3;PjhyBqcN+nS2&zL{cNVruuB4n zLi;wTrv)TLI}kx*CJIC+d-kIQ&ySQs-k2YMMzJ zD1x3h7()5CP!yAug1GzQjA2DcHRZejNtD$uP`&;AKY4aC?Q#{0$ba21JCkB4QAIdGW`OAHNSm{^xM& zlut^E4SibBYDvJVAX602jXxd!jY)cR0x3=+g#52kmx{ww($VG@7JB!{rVN58r~G1b_1w zb>U6_KwUjJ{ik`l1nRv(2p`43fX$%zZeO{WHNiP&pg+}Q5z;|K0)PLvq+9^?K+ZtE zAeuyKxw)#@qoKZoZk@Ka7yKEgL13CF!E-~@;KLz|vJ>ZO5{I9cL-V;23xw69tktlP z`2z~S4ecT`!;IJ$JSgnQ-UqLtx2_DX{0H!oZC1t*V?qbYFMpEeh;E@luxree=kuXl zniwd2b{_DEi!5PbpBozPz`WEtBRkS)i&pIvK|!Q;Mk=BG^|`<6Z620alR+eABgGKy zK!D-ur0=!~?lLsVb=^~6sEm+-A4?=NQ09_+C_vb0xC~Mr$SX;6d{x9hF_5KO^k{|>=Q-=K~`sM37C_{o~v|2u+JDhONqg* zP5!ig;;1hRy2`VF{pje$Vh^qw)P7_LEex*CB&c}J6wY>8sy%eRq?eG zwpMfr(Q)AIYire>gEa^B9Mpo~xX)}|L6ID-It?jXD`-zmbYO&If|-Bg^AK(3ZE$8( z8sH{STZURrR9>E!#1=>>pZe3DpoT%9_H|jWrFDSZFTgF(KrGc#tyuVgZ$-z=FCt=B zPJTJcRGN?kCehULaUqvU3~Cq(2t=9zRT+FC6<65MU^G4nO|UOj%oqhhMvlVz=eo@^n8@dIe@A0dJq}~ zqUBm`oXLq1qv1sn_ISyJfq)U^-TY@%0{0WY1A!Nqg+X2BqLC6DWXFzKZ({k+?5dU%qU;Rej_rfYT&6#}g;K{1D; zL#irtFBEQZbin15V-jRmg1*~LLp}7Y?cXr-EiIi|Qg#if9m$c2Po%xsC>-5tHN@JolXfZejG;M59#I67aZ00#8NpnWf7h0l#qNa&+(V`C>R|hYO zX%f^2#LOK3;N~Yw@%R*ONXSTtk^~(REyJQD1&mp= zQuifvk@Y!t&>$kzA|imjZ~btp}-f-kUEdYum zD-7!vftx$)^jhF?TZ(=Y1 zKpOW{xgR|%>FCI#3T-g)wxsEw0bkA>LiFDc-4l&IL8{Mykyo#cljB7FfsdpqK!~pB zC!?q%MZuXS7rtdWR~e+F?g_p-g|bJ`9<3F%J+w2+*w~}Y#t_lcbL!UtN>BuMfx3qt zjE3&XLmdA~B+g^)GlY375T-Q~n0mpiQw70jAVw*U5YU0)TYG@hUwkM*S;wFm1cq;J zYa0eNYWMy8Ex?rMLjY*e7Y6>n1vdjteE^^log0c==*QY8HzDoT5;6V2G*1AXHnYeX zCnwE4d$?xX0YJToi2A@dYaxcz)dBF+#xF>^NkHkHk+H$!+&Q9&6*q1)%FNJm-b5HN z8dvhGcy{tLd2g#=Wj2BTXq!LvjQ*#9L7DGBs}b>T8YjI0j!?ovIHOO(eV_>~A0}3s zpa&((FXRqb9en>#(0)=0~NF8(|U_+iO?-y3i1aU=r5X?qkYuQ!+2byz(ld3*LB-W3a zj{O_Itl(h*1OSp8@}SYV$Y^gFH{m+e5R?U=nG+rl6sRycm4CWG9@GI4acYDRZXvm; zer|7u-v)mXe%jPD#rzDuI7v=ZU=1HKcG#Xg`2#ZdHblv1yV1kgEx|M=zk;0*cm%_+ zD$wV|Y8zXr)rO%A5ktX4qp~!1jsr}>1cILsH8BcBhMgeT7!dHNT*1dzNZ~1Kpm8Do zi?j$t+2a(E7YTkLhMDzskz}8&>73jF7(yZ?x==JEF|wA1#t>hPmc;!ns1fdo^n~S*FV6#5 z2FQRW=S{|f-{*Vax{fV|s{!OBCI?6* zkWa&*t)k-VR)JNFeA8S;KD%kq?YO3Apa$lmrhUAaBM%~5`zT}gw)tKLIm@rceaE*{(JJM z(gJ&DVYdSE*24SyQht20if}nq6_g|gEeml+G{uRcg*+1gc4Kyz8)UmY|MLUMdqEE^ zINevz1QT{v$}=7N@H8O!Z^bBmAy_;a=dRtPP(Aqg@b;A5#~JXS^9jT;yoD8kOAMgV zLFzc3QNKS!r0|>JbIPIkrddpe0Megd$8QTnux+^eJ=*WhRQ>}*2BblBFVYcVB&@7t z`2Bu>$CRJUM?9-;)^Ah4$z? z$WJhDqzFePJr@FZ-pLiH5bQ!pu>i~?6H1*FODBkJ@r0=X2a2PKA47=^7uE`OD6x$G zhPqm{s_2l2K1D#$kxrT=9oLJ@C`r`G%|_Bk{eJQCr3M<%-viCf_m8gx_Xo^|!5b+K zZ=8G@5YEstdjk{2C(jPsg1>wb;EN%jS-6=QdkC~i4N8LrNMW-W^3MJugTPEjY23m6 zm^;Pmh|kRY^tEk45gs&N!$!0~&-6|%;X3pZQJ6-SDenS;#F4de2`A^;;bAH$h>NF( zm*h@$C>3Essvi6({cJK488U@frfLm#wL&e_`bn0{k1)l>dM?q-|5#QA5Fs|v%rb$NyEwK2c(4|SOlNJ|oi2&{lf+CN{ z*y_zj4d8bT;5Nfo7$n|;m*@9lYX%ZGp-_4kyapvtk1=$&qW}th5nvYMzduY3K~M%T z?T-_|A)<<{r{_`ASpnD~29L;zc)Y`&k7QS5|3w8-*sC{OA3c8TgNYJMP*J-Nj0wc^ zCq@)VJ(*x=8(r#5K-ikaSRF3>##xM6OGjA=TnZ%uhEQ@~?5+9!TRST&-?_rB3}_vJ zr<7x0m7WSJS`!u_p$*nN(2}gKMP?PR+K6F9{36UPLm594qD_lYeA~3{#}D+PY!4+e ze9#(H^pf|+n-zG{n)j&om&-YiChcOrfG5P?!t^56~4PzGiXb zqVOP5ZUB^pNkKdcl-Ek`h&{v(qB}Z5sM+chK#nmamhytVW)3i6@YMvI<8<|ve#Bu| zi>|~KYLVCBvNS!2UyE8;LQ9fe(7W%)tR;L2jo~dKFE5Wm^5jp~D?9ulc@$DQHHU+P z<7Vv+#Hw%%j+7yl5g!ldx`p@jZWaSd+P!DbEC#q;M;6ZmJw<{sq|t`2iEGg_pt_}D zfFIcO{>YBTmF?yy%8&lWY=wmd_Hg?98`ZfG?UtJIUq7{GjjdC$8BBs`o(r~$%D3?w zJ_TTxtaj^Rye=Rn0pOjer~CZy&A41*p)hU((W$Mg`+CuU2{0lOZ6FMv(Z@**TAcy_ zjKs)bsdRa7^TViy$`6=nZloVvS3xaI?r_b{qkJ`FN+6SmQWcYtFq z#5RT8N6!%PxjNNt41!>YSDZDf=u7F5E|@0esLY0*FUpPs3UG;kt5K+3Q4XT60J8uo zr%reSerNJSd!n{8I7tq!uUIlrVDj@ao>uzf#~QG&0wvcl9|yR{ladOa&2t-DSjCp2 z6nX>&Ihqn@4Z4W;Fc?!X^;-}eDk)5a;0A(~EuhtbfgX3k3a?Vo4Fq4XJ_Ul(RZq1x zYDC- z{f$1-d&}N{CISr_MjP*BWgXh#T-WWKbpQT8;SeE2v+Sc%N-zac5Azm+9-9oB?`#53 zf<>Wqsa7AXH+=v8z24YkWc%gN4gD?7X1ywy%y+h5)BisQ7Y zC;P&$b!!TTe^oZt*{pSo*|@_qtUKsg{{aB#?91YGOe7kzg&7|X>_b=+TC&6_BP(xY zMLD=$f@TT#$5F68P<;bRam@vr{NQ-hb3b2-i)%{6aqY6yb3=m)?Y+r^E^kIv^;8p& z_5XQ2de%b{U$W1zQr!8l&;l8u6z#dTz=w#IqoGCLgSq z&Tv0jg}_0$30PepoAECw=WQ-ESG=fr_0{T>clV%z!7u*Aan8j4MGXRRav$uw=NX)n zaGM}vj!j_wJhZaQB4mXtdY2nau_?8?$rlc9dXm%~DcAr0YR{R=wN#nw&$eO_5M1GTeEY4ET3em0^G^6qbk$p zmyf*g9&?j&a`9=)U75P5O>s{mRz@jKA+UGG+V4ZEP%p< zRP5vrnCAN6>RZmK{f@#H-|ni4tLohRb%SZ*cy!<5Y3l)@XM-P%Izm^-j|I5ff zo1-IUUlrg!Zo^SOI$^fmz0Q}vS+nYG$xxb@mmOsAuZ^nWaxyb9axL(HRV=>u9(*uJ zkc|*b#&LKg$oM56Kkly&TF5|xEkYR{nx@tDBDRV(S;@oCQGOXB4}!Wo+x83VxI}u#)U3H+%j1+qK?_nDP3K{#o_crB2#UDEAmzKbT|i%lts^ z*;n&l)=3+O{0?=WKcsr;Mwa0^0~gDovxk+OrevJ@a_Tcefwa5*pJosPJ*@ya$)SV^ zDl)L`h_kdd4%p-Jl`A!l97%BYT03CI-fuRY3Zqy=Ab=|x?viOLB>t|q@A7ogxnYy zH7Tji#Es_{UJ`SBlZuZ6u1=q1YHIi65$-*Xr=X6g!iEit{n#$Nby+{GF0)V6sz<2t z%lYu%Z14@OY>%6 zSDZ69X=(L|z431|zW>2Gp;+AUt!OHHoAHYA>G(~~V7$L6TH`yAicV_iJ* zHTAS;frM{=@dv#C;}dPgqoxle#6l13{4=on&zi5Sg-c7#T~^gPNz=YWjeP6wJ11;^FX^z4K@aM z)kCjAuNn(QmrF};*}gq^*b}`V=C%_Yv;Vp=Y#WGSU2vJ(O4riv?n9+TN>19!woMY1 z1HGk=ZLy_$=jE=5KMvvo>=*V{!KB1{{hy;YHX-PsE#KWzCvER|fXx!SFH*OviqvjeKXPpuK$^|UN=v}SMIXXDnytoDYK zJl4@rlbxS-8?k2Vngr@BY5p=c5q|Nl!3!IXP|a1|(>c3VV5%F<(U(-4XE%TX!DulQ zb3D$j+!|2bi3XXU#C8X_{CwJhvL*BLQwd?ntIg`NtG*$94 z|8aL!X+XVzHP&rZbO*7Y#PT6WhOzi1vUaQfq=i;2 zEFJK1T@@RWFW%V_G%wR5eE=PvRgD< z-^Ep*li9de#PrL+`i#%+TZ5im_?f73V|Rl7;u{9v1htfKy#X5`M%OqE4z8N|u2q{w zUxlCrG9O3j2^=3JND`x! zir=*zrnXmad*qfie%iS;$o-f>uSRKSsoUpTw~zQJ3Vx1`m%bEScUv6auXXP|QI+7- zskMbgRuB=O;Er%lP*0HU*enM9C1D4f8+oheF7%2S^1PMxtGq+iu3u>BK<~Af=XN1j zo8+v=xd0gl{orgws+x1qrb(%&s9@auwG!0qdPh|TBsLdRb&l1)48JHc0+=SNWP>CF zc?Dq#0*UJR{R8V_oB#3JoF%CA_7hjfM;_<(ifMUcVh2ubN_}Yi!7-!m! zVXi%ANFI#72u;;$%*X+3r?F{>v)EJR#CK!G_#x%DFW1&aB3UlH8}#7SMweD?k_9-=L7eCt`6PPmpd*ZX1`w@cEYKs$1X~#yRCN=AF{@vx+q&m1l=k zs>D#yzV=|o_A;H0)A_f<<)p96#6I|E?Pa-)iHFJQ+ud$QXX>FjZ-XvqD@=6Agx zKv>c}es)8NVEll%=hmOJS-BX)8*kpcd05_6nzh^5>sy_%V;*mvRl8L~J;U8itZVHy zl>09mn${faEd83F8Ns7HyDfXAh#*geX{N(03<+RjFS0o1*V#>&M7nEp#GOSG@;$cl zGasxooOfYw_sT`<1U7>VWcyO^QDgq!dxnuLG~+}70&pWcZCV@+^9T&A>Q~-!9K4EJ z7up-TH*nQWAKl5rN2Vyop|oKxtjOh?>iw(lF9v?7QqbaRk4Cjh0RkpW5CGv%%tj$W zN%->Rr`gL;K6W?12H*>U2@ZMyq;QC7^D!FIy@t=0^H6wKUFGa2aOSxC$i7`Q-4(N_ z(qTtlC=_!}rG)dEWM^e%)EDZSI*5;#4XLK8gzoZ;T~zV1BJQizp`k3>cJX~~d&C^3 zPTyRnnOH0qR+0HtjJwTHa^OkT#L&?A{OZloBcJJ+!;S$p1R176q6$n!KW@r;=jqac z2cssDZ$AWUw*$n5E`{O|ui^zy--FK5;{$ENYPkVHNjaQTjAO2baGs-g|5~}UZ5%o; zsK$2+dInjQ1&COl+>)Djz0hKe`7w*XhQKcF5&MqfJzvi)aBJ4cFH}?Aye!Tua%5j< z?{^(0HnRwAnJAJ#VMys?&Fd~11HrhfEZP_CoyE;AN{ovPmDvn=hD`QW6{Jp%98isu z%8%fW;hDM{F0H~{P|$Y9aQIMZ#myTx?$%2{$U$8v(zqzY*42M_H*D3@(_^k!I0O4o zzl^a1APx|wMhPRXQay*Ycj}vB5EZaZ#sZld>L+XzumbS-&^qMXfMA`N;Xk>lX=uY= zkGrFZf^-|)x7g;*1^XDTJ$WLBMFd1V5BE0-qKw!AqX~59l)6X^e2?M9jI+U0D)+yHGE_L@r*5{(D-~+=9DcLHLE)&EqXUc z<~f(&q)J1qi`dZ5r>?7dN=xfx%3R;8j$P+8=rjQX+pX05EGdOMV|}!=iH4qD_^=At z+U)16SFDhA4a1r~fUCG8q`Gu_4mb(L;+=iwahNK_eY-1rKc&f`Zwptu2YMuBub{v# zvnrAJ(}_rOXk2k)@P6&OiuradOho6p$M+QBiNfAkJ#t?W)aUZ{p&o zCC8127`z<4R`&;g8+o_HZIij;RtdA&E}MdE_PWcK-jm=L7>+rJZS1Vu=`>;lO8L1^<6op< zQbjlrqHTtBgB*`+YX^r$uooA0BZpv&qu{) zmh%iwEcG0qQ1|VdWM8qkFp%pSr~WxRnoQs~4wyB;@+mY-zMbfZYL-48ygSRmt+3p9 zR^Y)Ppg@h*(d)V7D{n^F30qqDxmHTuDZ3LNUwm>fI$4_wn`mnWLQsGZN#1m|Y%B|K zevK0cBWDwT{4U8jMR`v%4;`I#AwSf()_wZea)*D|36pP(wOUC}ac7)$Id4CX-)+D) z?>dV;(7!0g#2gzjDHjv*2U_1%&~TEoCQLnOJOP(ceqJ>XcYtM!nJLe*{&S^_jBe>g zS5CiL#C^=t@%h2RHT`Z{(>wn(j#_;W;c__#u9cZ7zwM8XXWX*2lZ!f|o@um%X*QN> z-ViC(U_+7W>wgu@iazIkSVi+}Df3ibESJ$`y81rfxowY<^3fN=49J%G@O42OUZ&MU zHaC_#^Db~=dRJ#vu|59HUT}C|s6eB=Z@Gk7D45m*1QwXX`U`a#3R!)ISWJol%4GLp zF5_36@asDOGM-5ZO%K)}*0xO1+&u=cA*h6km3iX}40Z1G{|Lf`=t9Un5<2mkcmcO( zC*n=6SZ1@6&JR>n+b;>Dp?Xd|YpiI1a+j*4Y>cLN~`OW>aplES_I4)MRm> zLx_@Xd*NpBotz_4L;iOu8A92MX?rw3dtd`jrasUfen|9<=QPbP-1Fzmen5XKy9`X{ z*n|%@U&Ah@+KTArdoP<6Jgf5AxJ<%un0+1Bw=;x3)2QkNQfOkb=Jo7KK8C9jyf-g+ z2J*XePZ1Jw!go!(=!U`lui}C=JlqOzEq~CdbSay)IwIO$e3|?L?)EU4?AJK87wQ?P z-$Hl;7J9L`Qk%2u%8r<_<_9VdcAHKw?I`*-OQ}uFN3hhls97rj@+M4%z!P736A|z9 z+(C+8Uj<-P-&GxK4km6EtX;cy`1@z>P42%hTfZ*V$S~RiyBBg>gT4&M8#e0O1mD9j zVW)cd&=@cNG$7(zUekX_fW*wk?~RB(XYSme9@=%7xZVD%0v@Z>Gy)5U11~+YzZO5w z4;l5ev^bR2A8t21JXVqY(sFh7I;V`vA@_`D){(kl(=R&%u?8E0@{Y6V zmAT^r5s}w64!{D!S4N;^sN+$2XA^ZxfGH4GYqB}3?T?v@nb_k&l3JfOcYxL383DzX zaklddQP=m_0|y`(I+1AkD4v2R;=6a%etb8LU1k6H2xyy`8XwcTWd(r|W+YIaQ$PvR zq4kPBKJU`ZHbX&o`^>ck{Hn`tN*6pcRZhqG3(X^*dz# z$Hcw2VVdgna>z7wbq{jxnFv<@iMfmwH+IkQLd_qK(PY3dHO2Oi1QU{X?{VUePyF+- zOjG#F;mI3JnOaMv%#Mrk9ti48^kD+oz}ElSyK1BFH5LPI|AKN0pZJyo!koLDpK#?2 z2mAjiUohsfYm)s6vX4#$#4x% zP%8!#Mk9-}nb`_)hH$WKTH^w`deBy7C@nMIzyIS(wcT?TR-O4J|8YP6HU0>F6v3xY z2Y}GVuE?kJ^d9b~REh=#)$xr6iR_}%Pf_!P`PvU4{L}CP)cyeeu_+8a&8j7<7A#)W zNgdad^YKIO7VSTLcX0?t699 z49ZBT>THJGgZ)_rG%H2H#HTXXgzlBn-b zTl~3{FfPz8>>tk$_k5@__ozkl{Xyw~Uo>Y%pvN7F_CUpfj?T`V8%`yTGqs&Dcwn-y z(*#u|eZ#uCXcy($9hep(5gN&^)~wNG5m>!^IfFx1Y7N%BvSjx*PTqE3m&Np*JE^_(cf^E(BU0_xGkwLD~OcS`4y)R)`Kt zfTjQ-@u6{b+T*tV#6omAtDCeUX;uZ)Bn`hn7lnNsr2wJMW87a{UjEtpinsh~u8}a9 zqJ=O>g6uv_+V9LknIj+`=3I#_z3jNsctt7uDzCemf*GClOIw}Bz>mIxt z%|o_#kj0(& zDa0kcTz>Q0H*dD6tDoPiVEDe(oeXNUR$0hk;X+|IKMemN69;`0?$1;9d^>NF` zuzS4h^U24b*T4UmnRr}hPAz{aKht;b_`R3b70U2*ZxeL&^csy>C6UC|$MGZAEN#M) zzrXQkV@YGDN~cn%hu%V1);Nw09Wlm!Hxxw0BPGD~@GN}Z-P%$3=EH|8b(`53@PL^H zw|%%>|6t#*&8MLNK>v<$=~Y1s$0sI!eiABi_Jwu;Z)|?ACeovy=9QHFQ>g;S;KHSXVqO&Uyaq9+bAlLPp%& z+@bukjLViSlTlCzgbUM;SZj{d;NbZqaaYBPPy?o0RdCQ21ZHMt+CxN+mKf3CP#pY* zUmuHP+hFEKmbus&?*pjN5^fj>_Pu<92fcS!L2ct_EDg*l+yQ21@b{GXo2snaBydA7 z?nr>VDyMH3sC1YO2fH3%lXFPMF74Q&hAAW*&eP0Hb}G^6%!=i@u#r;;>w9wzSZBAC zpGnC}v-g4vD@#ZVTr~U!_Dl?1?#TeyvfzQNCgTUW_o~v?(}pmX+-?UuB5>15V`d-F zM!aSnyQZqXNDlQAi=)P|v<9yO`}h|xPF}NcciGU*HKMzh=qF!3^URz-@xY1W$Gesyk3TUo1JF5im}`qO3S|e(ROz+v{LpLEV7D*l+`WP4JsA-E z?(#P0U(<0~cJg5X9}iE`{MCyE1Td-@uNj_r?n{8vkmlSh<8X{?w32@_!moFXns99L-;~VZ*-BeliDv)|7Up%gA`+D`Io|2M%6ci);<_IHJFua*VI^ zj2Km9d54ePPZa`6slr??6WY~yy}f7kJ(u3*@%QzbHdxiyA>uF{*1Zz22K7e&F04U&L|!Qv zq~!5qL>g4I-%z;cTNar@gR{Vwf-i<|km!{iT-X8#3wNYuE6lK{yh$sA1O1)!^z`>` zFYr9A+f8o1cCnwn-svo(IqO6H!-m&8qpH3^994Y7^Mlj-&#m9TziRi=4BhyU>BZZ( zd~;0pwfWq9y=r&fX-CJ_NpZQQ<^>yvajw<(?~i(SPX|II_$>gyGe3Hi8O6+Pvu^A| zMWg_a9%3v1ek)Gk?dIh1YhdYn>(VsM%tX)uT2H-|wJLX*sASubYE~dUZ}xrptmKpw zgNAooBn9wqt~&Xq?hjcAsf#AdEnOH~&up@C58j6yzn~zixEF4PwdGbk3%~q)Ra{4l zWhdLE%l|gVUqu&mMFAI#iKq&y-?U zE(0rG+;=yBuXxe@t7?*aljq>x*CNMDdkvsS9ckh%;y#TehiOCH1dT5HgmLQp8d7*@Vdp+ zoA28vdBf(!2|^zfm6VFWZG(6#9>7t8iOJDwu7GOBpn2%Iio?mM6i`U9)0)T^yMe>s zus?cqnM&3Do321=U~4i9S6MHdLmUcQN;p&uqoBsy_9?t&&DV=Z!`gPa&+9&K%Fnwh z0o?-7>j4kHn(GKV{fs!&(hPRrX>TQ2PCy5SnK?mfzQGCrGOgGjDu8Q%69Qg>^R(IO z)vJj%4}V`K7_D~ndIStDy*yWDPK zalqnqM9fw=ghOwO+kNf2{mBBSOzUF}D7IUlEDWCWSFT1zMR)aA+|^G`56Rqd_ua>j zQBoIVn-X(#h42`xx1zblGyHlgtKO~+X93|1xQ}oBncW#BnJf7!&aDqvd>z{E`SC0O zbgj?%0Y|Y|_>=|s24upd!3Tgw%@lf|`l3IFTWAq8YHk)*+qFO+#gK!N;$nx)s*ppLJKrnnDjTXfiFpjom%*$a}6j`)^m;5#T{N|8#7rqAhKm2P<)edWR zO&~dM-FuD&%|m}x-1rrSP2?Dgf*nlB!j5ztY?rIi-~0PHpx4=!pdTApBx7$}_Ug*j!lxeYGRdcACk8?=9lxd4GQWDDPdCy{FP49`TCnhH1f!?imN4oJ*ytrdqB}OY;BYtL4RFreZ{61e>*ze-9`y+OI zkx#vLN!q#gGUu;!c6RRPk4(~HN7G?(^ytTK_{7w|-B7}|g{&PnPmjGN0UBhR${@W%2M^Ma z37#76U%#k)<&JbVIamBjTd_XIAqf+YFg*b-4ceGNfjMr|4Emq2Ob><1d{Ek#27I!X zATjz>-m=!%h3PODw9R6Gd5brO=Ame5vd~zt;JS>?G?WkT)vwAxrGU!2_{|TLT?l8q z%l_aa07ST|e-gcmBGO>+BDQ%VMPZ*ID35vDxr4RDb+Fa`IiKI0eXK0N%;wxyH&rV` zv8RNdA3@MZG@vI#<2I*OQ^?E$ZE>9o1^WtLpcVzI;G=kB$MQGm;J)Tqm6Fvsj^iS~ zFZP=-5I?JNR9Hz-u@L7Gf6}^H4Bv+?5=3iXb1e9e-g*xM2XtD%(_M7A7qP-B zsC~Bg-j#i#JCc;47|0Y^xlW5HQ+0kr6^mwCvS6A*pO4BXsy(&$>Uq|9E`w z?|nZ$_gy;Y{eHck<9c4t>+(d&zdiI-|29Ny{5L;QjktT~0Ww_2F`i*|32QZ^pn_Qa zTJmmr0I+ck5odh8n4q;$Ps~#yLaADM^Qom_ZLO`-oRt=4Cg9yBhb^OS z3B9;Npyfx=89xC+- zKnMQX^NPqJ-%Y?U^3vtYv={Icq-0QWMKj|)r-JJX*ctWS%riGC;l&sjxMX@L&>>SW zSrIilMYl+UR2tahVd^~{tqgF&3{JyBDa0waC>DPP_=*BjM(B3Xdo<101TaSU2v zG@}Dyb}_kcL#vq!2n1@mrOTG7@(T4M(y;Z8Gf3(Km=AdrYb9Hr1{djDuC{FED$F6&)z;~El^x)DI*uu%?g<`yW?`a9z*eOb(gA?T>Ohu}D z(2ZEN{5rJW+Z5^GH7Rr3#JkE+HC*uj17LJ6x8{eQT^X zlY$1)^2um`4)X(N$lD|R-_LaI|pj?UJ7RFK$2v>%N{SI?lJ zeJQtJOuQr)jWmy#NgnmI7D;0h_&(L`IR=pU1G@U=ASF3 z>rC`O9SUr8${aCVYNcR}<@U>O?K=3`&r~2L4A`pop>+m)rzB85sY;=60qvYsBGaXI zpVcGY1+ETiro&va&ja5c1w=AWd^F)Oe50C#&>>{>D7q|JkL(_5fv>tBXzmK1=mv?< zdqF`Rw;IN0RZxW(z4>s9zUR!`KFL z{F5hSL*3DTR&cJeDjh45{lz9Sa7Kg;h>1-2+haq`7duB+m_IxsaQ1Nmt^9GG`zP#Bq4O7d_M&41qVY2Lh)xFuE$Trk`^Ns zx#6$B{>KFX@BtZa`dXwggDM%H_~OdX5coeU6w>AZW$`Hy?}4I6;He|gkrfpY5z&GC z9APcd7}aXl6MPhRX)+siy1)|BlStTfqtQ7vV{IF6;>L!uBVeTXTtv8h z0V*X(MvpTx=6^cvZ8}v3i*l&+s5F9|pj}(Va?HNM5gVRg6JDclc1gli8T}@=pY!xN z1pNnph+1?cIX?aZN>4C0ye7E+Ywi2im2hn?rV0ZI0}3qxIQLl2!qq2MG!P!Z`ucp! zxd7?Tc*@ZP$~VnU>6VW=yeQBsGCm)86gxL!ukT#YFlSBl1pj7@CaQtW&tb#oi85gF z%wNBL$)-<9@M5FW2Tf^@^)x-wN21O+UvTQvjdPaC${N*a9U9mSk)H!wm{@=lfAhVq zZIurf>gp@!r=cv9i;a#}<&C8UOjQFYJYVv{o{ipt&a$ys029SEJln}%eePT`$NYo! zdkjh@LQb5SJo_H=yabAf{O5qEi8dfhlL8L;q3e zCfWoi-uZfYbi471P9>x07ZrafqZeWtcgaKAfWBiof;@nv1*$V`nd<1a9t*so4tv=% z{qQp2ZBw31lg6+KJN^cI3vMEKm6oE4lSgCd)pPN}g$Wpi(8dO$*OC~3P8Z|C(ci#* zNiBah4%_h!`*2lp5wIeqbTZp@bUAukkU;L+5=F@bgDop%FZ`X_qh6b->m|xxfJ*^@ zpI=5shQ16$$S*?6>w3q7wvE()U%8?J1u#-BM5+e>vBoI#YTJ5!Nmz0^uoww&JUob(#f1D1nJ(3zkg*)@$*BfMY$zj__yq zaSnF<_}Hp3g0v!lR+=*LY5&vNhkkQvh9D7xZaKzrHWtN#LqcX@GhY~OG|MGR>GW;JUwzVre6n;85)pY!oB#_g^~voEtyO;Tv@`ua7`$@ z;qGIkg5*E9eb3gi4}8u7$6F))`1Fe~A)4Y2j+V#IpQo^VZ-!~n_F&d-TJJ{FNbi;P z38_) z0+^H2f;YZ4asnSo0tSHA&w_Cd51I*5dLg}gunod~DQkw6%kvaKpq;>FTqaV7g+8L> zw;v5P5bcHL0PMCG)I20TLR4)S%C^`Edz&)s<*$n)72>-7ZTYqDul%4DioSN1dA&D^ za6ADqtgDkC69S2c;I9DIC>v!9>d9S4trvRF;X|>G1>mh=E=@0|fOTg6`)3n@GzSg@ ze{s2tS|jraAFNnWYZ%00MxpKmQLi1D{IoYzkH!yB48i zCkzYW5wlTK%qRbEzckYw{4)Nwb(gupbbJZz^6=Q$%P?i7e&A$K`VElP$qEk1=9WxV8^p{J}hLQFLZZYvC zRa8{afC%ikvP6u~8=MJZ5mK*0{#fwLL$O0bZ)AVSzpQg2kWRX(jtf6PmlshOp^Wjr z)*gU232T#H4$A*i4h~*u(~4_0;~7u#1rmjs#8*f_ky12%CuMnz7$M%u@Bqd|(Wk3x z?VtW%znWE3y@9=vau7*WLDS{*>9ogZMzJagy*p{sX{JaVS3zLW(5^E_*SiiCG(J=z ztQSa67%Y-nUeISD`YzOuit~A_)XiuEFN~6x1f9Lqdu>nql$}MvvrufNlkupAnaD{(N*hGg9=$ zJW*}YY*60(=+VhQQns2dz~7as)RwQrRepbN4PGn$iqVNrPNw}Y(F1jdR~oIm17uf^ z_rrdsE)N5hD@7gTcg*FF0J}%$Nn-@GPXEwtk<)^w2l&wh6~g)lQdK?>w7uK%th z@B^wOZ&fj}h{a0y1>7C?VxE^ZRaK(Pm#Z;bo+Di|Jnr6Ih$Dj1VG=6+rdSLkMlI;E zlm@>4{@)A_xs%51U{=kz_%y5APYw#v*hcm}nK6iN`7(qTmLj7N4us%CQXp1VGofgc zkt3KOb^zhSRqMYbKVk$194aFZOkuIAwx+W}9@r}o93STCFfv&}`}GG#(WLH6tQ6A3 zB-;ak%5=X~A7X7D)L-%d|u@ijd}ZK;9#zi?ba`S%A8)A*zv) zDzv2*u(xPztKAk^Fmrfz4y5iv-~eLyuxMP6%yBV(>f>(<0L~$6-DI zCg@zYCVI9Bpm{)ij~Wo%X70P1Q}I0sb0a-Ncu%9OE|h#yipQ)7xe*djf`lUeSkf+p zK*hZC-M}isF|*H%=X%987p=sc#f#T}@FHbYfToYdkM@2o^b`wS3qu09p)URd`HVNX zU>mJ#){xE`{9K*~%*#GDbsAtVDzPyUL-jZdZ=3`f4nQ`@JtbEWuN(uoz>ttDg#I4g z1jto+-JMw}i3tgpexZz*3RHtuqhGvG;x)5e|3M63&h|@xucY_FfWPIU_5qw`{BGQ7 zf-khJL1KS6 z907T5yc=?o9sAwPgCwo_KxRIPoglq@ZC8}<|C`agif!B$$i{sdz zb6_efiUmFgaTgnq3s_IkFa+bIGEWx}CWAudFRF=Kh(Dto2pR^!e=U0ci||N5SC|s` zsR1#_J@D1rap=(f$NOB+azU@>0$^S<2pB>kW)akNHhfue@b=A{U*OqP2th_~Op4L& z{WWt$1zjk4%{2W63byl5AFwL@fcYJjFR5A`4wMj38X%D?-5-E13K`P?yZiI!4}{e( z5z+_2NYw70&JiNGOPkXPw!l+>BKpeoD~J$r$;sY87%-3V1l$wB1a2U(X*iip-v~LD z>>R8vYl=^zX`vYe%ZYyj`$+r&)JckY{=K2>S8M;bYTRuO;&gKzx2l)p(7OZ3H=AL)iz;I1E6Ssaod2+US)E!Pg~ClqFJ93v{5T z3dwGn@ESYbIeR;(-)M)d@}zD)-CyhU8&I zUc~53F_AV4sWZn&f&@+H&-a36voJ=9q*#Q`bp!0+Ag0XKK3t1#WC7|pvQUP^JfRg; zH8o-zHt^Cp#N(bLARrxn{>GtoMVKe)(CZ<=VREm)C4QnPu(_485_X^(2!k9;@NW94h7)aKt06fVbNu|BPWs=xS2&M7jiP5Y9 zD8V8VbKP0IfXmFVNJHTrj#)FnUZj_Vum-J`zXYo`T+dVHQqPe5gdoBObsX&1Tm%YD zT@$JX#A&UQd|M*{M^N8^mwAdb6a^)@AY-u}kMS`y{P;7?1a|1*kdnnb{g{G3ebj>D zf_jh;9TfZ_C3d+^d@vZ*EuenGI?Dl6C^TP0vP7l(AN_;m3V>Cag}kQ+Q6GckL{~~# zc_Qj{y5Z<$6b%d(AVTdxipPQ!__FeG;>R+2R1z*VU_^GQ{x!KkPsmV2;5#0NOS`n6 z{V%9{6QST-I%I9pBcy)p+=K#H!+!jk572+i@5 zzXxe(K@Sq51x6<;bFM*A23xjMOcp?Cm9#m0^FuTS+A< zU@K)!J|UqsueVM*m@bYA0o}PY4mcSw5P1VYwOL5v24l!0k!!`-=4(>A2+}YcFonRV zVP0kwwlYbylXNo=_ zB)*QHcU!8`bgCR?R&|hIBBu~IGkk@N+6zeguE;#-x(kA$)L0<$VR8t=E}}N!mxCyV zYlI;c)U*KfT3rqa5yYDNxu9A9>QC=BHB6*PehJB~NtY9f8UP=FA$93FO=htl0>GSJ z<5{_Y(|N{(MxoUwDg*{Q#m&rm%vfhYlt=}16~JLzy5A4@jV&JV0AsBJdBf%OjIE&m zXv0`C61{nlzdtu1@p3eBkPh&}(7-uKD8^}{q@*~*stAPO)tLtukw@#yOzaO`Vfybc z|1>`2ScILR^5(vgK6hHDm{lveWy`ZJH2&x2&6%TwG5}_)SSG&<|GmqHGaja3EjJ3K zoMEcjl)Lxt-N2vu5#ipkr$GyNm05_BI=V*-(CLoSx`elPKcp=8+S{ksu;uig4rG_@ z#{+3a+IfhwIUqZG+rotl1HlekYm$E-JxN*H33R`<9knoY9oAOBL{}3E2=d_l2BNG4 znq3aY14s;hnAeZ=@sG}9CKg=y;tnqc3p}P}w|4Cm3)BTAR83udpS5*jU5vwBAV|A3 zHKUcW6oy*SGw=2HWgLyk9vE*~!Uwk>s`!-{4xr|36PuJIXIqNnZV83%Z(qME;~XEgvC+oQ zONX=b2xL%K0{cG6=ki+Df4c?kmJ>!}0KYWPB4Ge~w zq6&UUbX1fIn!hOIG3+e7do2l8WoBjtJSNmY6h!0OW->mqz_`H8_~aAsWuD8Acj=^8 zUxu*QC8T=%}`%kqlH7Tf+F(*0vLfQaF7LEP%b|TvM7^v@vg1(Z=>u zvgi4d3qmZ6IJ0Y{cc@uguSTC=jsU5M)Q%chJP;3Y!;g&f!>31}D+}3bgOmGmRUv*1 z%^6={&@08nE+R6#mW($#C9k|aebxF;RaL6)uwHok{J94dR}&n}-GJNCXM$S5GGA3? zJUSAJ+@-C}k8)qS``LW|5SvX^%`s>auy7WMTX`cQV#(d$;Ihr7+f`tDVHV=3jv2Hj z;Jx`Z7YR^DR-dZYV7cK%zJc&yp47tje5s8a10ma|ifn^JWPvw056n&nYh@rkN}%V` zJt8SH4E6n(Hx{urT~5yJP|uj}7E_IZXF3%9Cn}N|0@iPQj_1q<42At(!qj~l{4)6TG5)U7glh)4{lt|@G54kRG%*EYsXXxxsR*TdiGy# z{uFYGQ-7%=<-{q@09SHBXasX$g=42e8Q|6BcQtpwA|Tc_f7qL(;0;lq508x8K(hbo z4oXuvU}Qts&bp#vowsT|2e4#Tn@q<&h%Bu~-`gG-LsBa!y~i z(TwTSTg$d}C0P$mHTzU?YrF@OfT&bP(}V8VC*x|i5c>bX7WY9Cep^v-gVe*C^03cx z+QH!=bl(PjfRWv3dH+si!+ zdAH4L?aVH_Io4-_!c`pPxDmvN0hU6e2&74XLvofTqNB}$Sh?wMH8ND}^FX>A>a>faecQadGX&1GQk zEegg-Wq``!0cV`#yL+ZK(`ol`iN0l*36i$K?S*-V6u`ub#vQu30~{ zI%h^Ypejg*b%Kn`;G>#1D?dC~=+ku$caGWc>@EzVTcL6piNt7i^5ilvWhL-S=3)8l zcM~|>sUN%Mntgwge%Gj35*+`TUKgRNssk${QAR&j^7eu8QhYmMb1*v-_1Flckm)Q$ zpgsyh2@MZB%tJ4yC(OoNKN`d@xB`jDjdniK11~UhC)ex`!TMM8y)s7wKv!XO7j%Jmi%D(V;VH?L}PJRtmExVj}BBZo{0;9s3&l|SCwdIbv% z+6-Vp*C;%q-l=|PcNrLO0O|mw*b1bsrJ39EUh0;ppE}$pj$vFh@X<{hHs@XZcaXNpd5e_O3gP8>e?9@sM~4jdSry^c zAMb9yjI;s<#J$>!78^TVs!bacxknoW(PGH}$@=&}_7490xwB`>=yNy=eL_x#mx(9> zB2sSUh@Cz2u1aj%$R4ex6NaBp;2GS5j@;XqFE65GQ_E1}L&9GvDS4aha-3n@P|RkB zApTBgfXaq3w?NXtC*EYMsV?KyR6Uf|^leiJF(Hf`-d*DM*K(u7w7PKfuR zF9vEiKOJ-SrnK^U%<}?HSPmFm2pQ#Y*jB+ki~)Oela$m72IWBPUZx`h7zW(B|35B( zGvvWnNlH2@emgMK#a5r|dkJI)vCLJj7X_Nr$QA|#0PL6xc7zH3oOlW66|O|P!I4F6 z(FWK?+)KHfFDO{V3{e@A(M9gbS+8N!U`1~a0+ESCz*k6FLTmNf5odDRKBX;kFxp$rT3}n0V#FYG9 zxbKraP!P4j`!g1>b`rm?Syh{MuHA|kk+TIQc^QCzDkbKeda8R=WJbm< z#PU_xZef&Rw7E6^jqV&#p%1RhwE)RRVLDrBosuU$Jr6{H%Eqxlsie8i>sPJ}N8=iV z+HRqsU?m(@)R4PA*H|x9c_`K% z^JnG#>3cuf0~k!*Qj@BXA%&YP3M4F`=~R{C;KJy#65#;YfL0`H0EH(Nl3KwVE+8+j zNm%Q8AyYoZI6}&-W-NbvtlNld+2Xy%##&(7uVD1UBFE}u^f$0SM=Ha{RKYc#>;X1R zD?I6<@qKtc*Eba0!19(G{uY!D(`jigwqDbB~ff7pCw z%Tnp}@!G)r<>0xAAkpf{BhUMhj7Dk5fhwgOoz70w;gO#<>1DH@6x*Fpm$un^xjDuk zMdM!R|7+cs4#cCBgKHbQ#AOLuXb$XQ=@+Cb7J=y^d;|mbzdmHPf%o)`P8Zpie@h$T zx5dTbNK*kohv+-P4R@KJFs{HB_*o!!MUe1gWL@|w)~3dM*$(xs7s4!i!`d(~FogLU z2$W^0In^@0I|3Ffg9zeo%CVT)Dsk9hB#k6(a0E^mzdHF-Mj8~Yu!bE>O?Zh+F0BdN`clNYL3@lr&&Kn;a#m&;7f(8jfIg$Sj z_p#UfqR;p^4iVQHe8O)3K{StCx~LWa*cg2LQGM5 z-pHyYY=m? z2UK=TOaJz7c>tpt#TmQ}wA``X20XneRP1vYBj`)Fk7uxO8NplW}XmWjXyx$xg`oiw2%xCU1oY}8O1mD?xNW!$XlHfTq zT%RBc*&1i4YO4v#zAq^e$9ILJ-tE>@ecM;VK4a$L-x~s8 zrvA|!x{CfO07oGYCWK}o%Jfly2vp)6y{)f*zz6^*2}SJR1OW}essyc`%Mxo8SIXb} zG4GR8;;Y^@wTo*_O23SBEIi~cXD(V3CRsS9G9~+vHhy(9>g>Hp_c$+cGv`$r21rBe~S!*&VU4sB4VD zm}b^?RH}7P?V{?A_X~)lS7pM&Qq)ff_lk4*&xr zDuOZnXhBk?+w0_l3+?WCd3mYOy&}K~6D(R9#|XE8MY}5G(t*#eg2_|no}L#vrDoamMlDUL1pFkOPY_E+9i;FkXaY>@`3g@{g!6Xy--{ zB9IEHg-k@j1SInz6aZ=fM+#Vd(4&8W1$T0O2jFuB+x}$5Nk_$MTIIOK8JB!4Mq-D^ z6p_ejyDbV=Q856913||$-IoSx{Dkk=1cv zk*V>dkDuR5;_6@Yz`@#jKf?FRq2&rLJLSXcBFWY{B-uq zg=yq?3b1t&*$@y0R3Ag6Har4ylLKWCxbuv=n%;nfc|fNI%dX2Q1XQ_~cADx>g@640 z(T%$P<~D`Uu0+@tBV8GcWY-*c%pjvZOh^yAbZrI2VIX8J*gxbfP2eGorojy5?3dhp zRzTz2TdfeuCbBk1hYf@Bn{KQ2i3gEk4h@jN)<)_oI;XzYtGUGg)aTcBLE;+A<`VOa zxU-?o?W@S$!5uXP=HsmO-y!E}O77u6^U1au+-_40y*PU%D_!e`951=9A3dyv9hv7C zQ1HUOfQASAVl-dC2Ws?TC+d3QC4l9YyZ_@Xq2k9noyAAa#z;YM9jL(clxKZ2QHPJ_ zod<^j4q#+X4eR9D-pg*G@%wE?g6S6QtcCiKTrddIcMPSC zE=nyrHfiF-4KUw>oM>WgitCCIeUG02KLO&3Cm+hbh<5kc*hq(f{Q0x)_sSB|IiN%{^lbrV^YV+w$sE-!F@oDLIL50)%$@Mw66#WpMkVG4Xc zwl)t&>!9+GCNVp$=$hcPFW!$|DHh?E*gor>3Zel~bud#0vJ_eRzW%Z4B;rz#bu;vx zF&#P(cIOkDsE)KR07?t_vSWQqR7^~Hdd}8uJvOCze%;#}4r*ET&v z1c3ie59(_1<1-ni}SB*AEFV?nKX^- zuqd{!_Lx(9d~W7Y^oItE)l+wm$6y43TTMQ2j4!?`LK&x2Za&_;rOn9Vw42H6Q+W$h zCaR>QR0)GkOuj83-!zk-9uSN<7>MEn5A7aC^jJ>5k7!M?CPVI$g7#+GpFhJxjThQeZ!`yem;U_>N$5mms@LEA|!oy9ktW&OZix3$0OwQypR&xl0RREc` zc{E&Ey(OFfIa829^9t0$>bQw0aVgMZ_f39%)}u#UI@^0E6B(79MO_acHfZfS+iBBS z8~Vd5=W9sLq6OA-oBal!ITkJ$cq6TCFb<;XAj*R!K>HUzhOGgRs92MC0Iv(jIgR7w zfwy7f#uvb>X^x41sHn#_4!y0EU}gQ~Z=X7)2>5*r*^CBtils%{dfq7hoMfDoXjGbO zye4|5cATv1G(>s3`N;(@_PDcHw}+&V0nVbGATBSlzRsd&vcqf$eoy_ohr#wZ@a*hH z5x3u_w1|SW0?htllr`Db?B{sX7+29ov`GGSUDHu~gar>2*=e@WuOl~e5c_*y&RYKk z=ShloP;p2Hb`OWSjjY0!Q7_OCpLO!Z!_!N44=$j)gbnpx6y$^F4k9fRUlY-pHVTRC z<9hhG?WU?XFSm7nd%DvI_|W;|PBeNYDVEcjczv(L0HF}Lj-BtJ1fg6>~{5hXY+Lj4O)b) zSnIp44MhFXKIbH&&Bmvg<+1|s{I|rotO{~x1h@yKK|-8mj^5gqkvXe{^g4yKA9_{}7#O#xKg45zo3=We-Nz ztXn4z9$;E(Y6M2u)C?iN8sg*vP#S?9vP|9%gYgv!<2_yeEn)8Y>>-!jai!Kvd!HQjRVWAfSOLcM{Dm?D-TqE>z;*2d0?N#j1&AfpBsaFC0 z%hj-injc_q>F(oW@@r#L;Ac4-*x_E-SYgcb02VBS)iTPEc(%x2Z!IZxbqecgun6iN zJoLGw8&lOqTdnji57`bqvu+RC!c4?(ATSm6whYGwa8lBN)QccO;LrDmY?lSH`(%%? z{#XSEt3(J#$c?l{+2i&mJbDxj;ORzc>P8$!Ea>as>HIp<;mn!MKfe0Tdr(GwMb3Q- zlwaS0;}3qOD&9bizR#* zeEJ!G5lMLGsp6;UVc0=zs|n#~JR@E?&*&3jm!N$O8p0KbMb`hg>R}!YRjL{FM z;);*6?foZDhNk%~ZnZMDTr|t_2H!nQI)z8M5uW(nTI}YF7%ahCwaU&?5p36Cvrngj z2rLF-Der*d1G%;Wj7|?cCo*uauv5CLL zZbgxnDhr9^$7UB2bkR^(zwCxe8o!#L6l`(I0Hq1LUAdSmm+;T!O-+lbp^=s3@k7ZQ~7KkDgdgaPe;PGITx9$uy^nF(@B4Zy{S&(9w z;m3&6VlB-n@7=UzOEj)|Q(j%&fr*O1Hw|Q^VEGNdsW>pim>-Vrxc(?9eaL`X4Mf)obFMV`RD@tqYX^fZBMGRnZ5 z@EXF_rWT{Px>`R;OI(bV$rPLrj%j(u?%I}-%12{UuZ(kOHZ`8=)L^&g@Tc){F0P4w zVj3wEcdeiJ#!q0W-xQ;&M{g`ND?7!l-u(!%NLv-sc|7Qm%?&Lx&CU1XQdQM_Qje(c zUYmKbLRE3qBrYu_=WPWFe?C6B>apPi*XBtr9A~+dg(9KZL)%aM*alpqN6tV;=Q>7x z)%!`CJv%3-0vS`!M=@SA%be$CvZX1_NCds;91;bRU`xypD z6T&h1Eq>r+XSalh=epx}u&sC*=p$~(hTXWK%vdQZ8eTu}?sr_mjl5Wggvg}USscMg zm;5%guHQ@69(e4*NDr|Ow`f!@?_f80N}Rlzz^NWH@k?$qJ$D1JI7Ort9 zN_NI{pkXsC!aQ{K-Mqw(*|BRvk^A8i8iScYVulEc44T$d8>;KMah1-1Y_rek00$uP;HIfo0kF0w^rD3BAs2Pkz}f@u(m_N`YzfeygvZ z1c9K=ovB4thNY;5-$IzX{`f}CqEqfaL^_KeFOJgcD&{;MJK)Z9kt6UC4gD?*v6cbB z%@AL^TT^ox+rZ_W%bFgM{htAXv9TEJqN2z~WV_0A;rt}2EV1^Nn zZI*5%@E zp`jszfoyRW9o78&G-A$k2 zUCm$s$2!g2#GpM@hRh#%XV3iPf_yXg78s{am^AeZ086VxS_j4w-3!Fmsd9OT&kQ+u zk99xE0)Y{g8VNKZqQfM-LOVr2qf?GqDe@XpGvCKDpFHXK2~5B>cJLJ0+HAGD`FR_- z-dK616(2z8JU1g^o%ik-46TXx%Zyy#Zwne4rd3`THokk{-X0&zU>IfD+>%ZC7bzlV z3O=-Q&nOtW7@k>Fh1!wLoT$ii&=1acn%C<>wNy~%}@uN|x*dxNs zJq}@Uu{dvmb4YQ{NqbIXWNaK_MZ!~Wu1~IlKu=!2oakZ2nW^^fYi5!hY=d86@-T;w zFDg?8>Qq>@@Ii`5OybrL_mkYg*O&27c2IXunEt-f#I($~+-B)^pSxC1X7_>>3|tuO z{+JqP!b$*RWmtyn5sG(| zi2Qsy^Lparu@V2V^z5~@%WmJk4KBdg1^7WnMMNmAb%3r@6WMpsOMz-cMpd~1`qj~m zokbQpvXM3i+~1Yg4ivd*4)OY`l0W^DxxS~+?qpO4-MTdeg$p>raY_E&FMFr^@3y)~ z3u3ER?`D1<2RaP#YDHP$_D!y?YwmNj2Sd_#y0eaNzGVt_KWeePYz~N}^x%Q^?b|(k zFS6kE-nzlGu4-}4z3?Nd4sdui&ArUlEeH33t&*Gymsua4Ckn^p^h93Zn1ZZ zk@$hN-_8sO#Xthwoei?&n>=TJh&bXazH#4Hp{yj|*_hwmd!O>6sSp2Decr z^hsZ!V=F7glzJ)yymtK@|7Xv(6CR3~gSCKyQzm)KJv+0GV3+`5+^o?8jK3K676$B*pp#p`A%j@BGflwU8;Pz8&i3j+@-^GrPy%wtSzSumVGmuhwEW zkSxZLKfillie8oY@5Y-uFO{4g=d@iB5$#%=)^K<1YL_~`zxO-gWVz=XyQ=w{yKE(+ zmyW!uJEhZ_P;YZZrs%W%3(EC!177odXXJrc)-}RS{`BCef0KXTEP;GK(jhz2oO$TU z)2r!y@5uWjNiQ)>?Qdu>{s;ijkm zb94P@{|_N)k@ppcozteO9$c(@tE2JbhYzd=`}FT??%B3gc;DnY$0rK!MC!ytPeO4(^PRPQ4MwXknh@OwuR;`%x4czF7%XGfCe77UMpJ zWd*$0+B%e)v7Pkrm~Ov32u)ZF^8=)=XJC*u>JCPkhf6L` z|J3%1Y_WoKU_Nk(Y!?8?^VDU?CN~Y}3hP18wmnYWpWF1j!CB`GJjFC2Gjk*{B@2r< z!*^1fHoXLu>oFJ+88;h4d{o6~R)Ie8sq3gDSXtA>UPfJ)_roA&)%gdVEPvgBUr841 z^6E1YSn$QD#<9h=F~5H8IpCQq*VrVvBk$s7sL9yBut?($@%EP@9e3!RFst& z45YfQQ5xykJ&4aRmsYK19UrmU1wfX7`^jU+F2kfn_BF>xu9Svi zr4<2QP%LmdX3Q>MY^+g-v(MLLqJnX1je6Hv;W_tBe21(XZ{D63PdD?NhJye0Poyf9PfgBka=2n!WGD1m$2zlXj?ukvtS#0K>mf(Mnh}7}qlE6<$q;ka5-G(T(+&|H7;|79YYCOqc@%^P@8%r6yK;E4R?~FHfUm zXcq>X$yNKuFvlb<2@JsElen4T>#un|X?*Jzl-a5y$c)+4*^noQj?&7g(*hg1=xFdS zjMjd)=5t+pd*b7+W9&pZ9EZ#y>{`N2qY#r>6flq|Q5Bm57SW^IeJ&UO@9oylbGsR4 zdCtD~Zazv|FjT7yiv(?-U7(@@U6C}pP)eVh>C%51OO>cCa7r)FPWXD%?_GRbu-Nmz zCAf+De~A-!zD$i{nb=cWyl?-0Z+Pm`f*a=5d4?T88kK;uT`mpS6vx)7c{osoTL{py zv$`d@b}lb0^Nv8agr*@NlQ<_DCVe4GW~2{nu&_BjxIGskK7*A`uQO(;0$|g4>PZv= zChvW}zTgPf8h71c3s2=1S~(Qpa`x;O;LLmCxEvzlPU11siW7#2IH0qj2^OK04CztB zP>}J~984pGj3$3g-QDZ{*rJw&Q~irxyN#xJx#F63s-=OZF zO?%*wVUH!X;)mj8(befs|L4*nN6wrILa_yPkqoWZkvISg18ouY`kzmO7` ztDjFCon@ITyXw|Jtt$$v(bX8BgSl)9xEm|>`bKhit}cU}FMu%6X9a?okd&OSY69o3 zj*e6?w`nW~8dsbB7i&DI-$MoCN&KHO3Qy#PA(CRxW>5EL^tDR@H8A}vJ2uT&xY5oa zF1Mt_%^X>nZ~lBJU0%`VG=Kp#l|h2;O`-F;j8;0kI_Z9sHOMGng^li#qa7N68CnM-_4g8oA4V%#>pMUGz943IEtyCZv^YtV2&@cDEqfvz znQ(rd4f|VQh7kfXtpHUS)}j&V1=eW4ZK0Ono~lsCW7b>dFSrrmQ=0I$MgO2t)dM>r z#f**n6i1oGzyZJf_z_bxdy|KY%wY`RXuJ!~+^!^twnb@*`d|0bNbZ zNQVBR`E!p6H1Q`;{#-^lw2NlI##@Q;Kfe~c%;Q0~R)t!=uPjdQSY)`@~3jySVC zEc27*vA@KD&QG48+3rgkASdD9z`N}_>o#W8M9uEcI53laI5UqGiRRA*o*X~1qG3MR z`3W)#db@>DqSA+c43aj|CEv}i6%JC|2^Qm8)g9`?cWb&%pyZ|ziu7v1%EGzcNV@bcG^lsGmt4Y`s7i;;Qu!= zMfH^axeosZx`8@Z6Pw@0#AMGNB`{lP=mV_ZAjT?*_I@WrO153*4^TSM01i0g0A{(n?8Fy*w0ZouzjoU?6t@34* zVXK$LNqORo$(_SQMU0#4bMjYzk{S8D^!j$?zwl!W#Ghyw1Iz>Goo_-o_Hy4>W5rYv z3!U{jm%(o2Ww3G_taCfCm8SuQZfhWyTy`mx3Qhxd1Gq(7A*gQNfxV9H!<)z#t{4c` zSJ<6seCwItIJ&3bO*ZIZRF86C<0;MrGX<# z0)R&4SkRTt%fgstE~6>8YZf>RSTN(e2FXB_RaJ)@F(B8#eM^VBOh)a)b>J3S;%xwi z(nS5Gw|B2HMY###Aj~K>b@)&?Y#+WIQGBMV`b;n8RC5_4J?`VXf%DooznM+Q7iM0e z(4nj89w|AxuS#4_!vrn=at04cYhOwuKKw*Q_u=;@@Cmqr7q)WgQcvt`?qFDe+uqgP zjLpRrc=RBPM*();2k&HNWBvnpYN!&&5_Lg#$FXDIzkPc=<{YjNnQ!V23DdVAi3692 z2ba~LeLGMT%mr>>XwN~DQ3Yn;>H(|Ooca@YhLf>G1R_~un*(?s(O48xU7NO=6*CZh z9s8Ktz*D-C!?vH>G<(sOxcXsY&0}(hRp<(w)7I|#TzjlP_6-fi0!Seom~EVL^?HKD zCw=`BI;@$-J&kC3%g{1?)-GiNKjfMaP8twC^Lh|uIiB50-eQf}gp0Ba+Gijw_9JQr zeC9s2& zPhLy-s$8EPv(zOnt~4ROMSqS_^ap8w3G*0L7E=Y>5>S}nT#^6qp%>UNauv0;u}~)N zkMA`-7Vv*(Nf`Lu3=7jiuMqZ@#kyxxpQEOlAlTB``Yf5s!CiYyG|Gc{%kvyRU`nSd zwkOs+=3huwsIOfd=$Q5WUO2u5m_jPR+lVMEv1(P@EoVeKLs-#U{{R&wcU9IgAS#G1w1I{BtG4m(s7!}!?Oa* zNkj_=zf;$S87hM=BoZ}J1+bXpzO?Fp5H60*O|V8lDu_3#U43snWvTPl2}{cJW<=5s z8I&TOktUqGraj`uy_ea-5{5drHu1|aoWSbW1gJSxpo3#O+++1&kA4mVi*nul_quN; z`rJoNxW%$!*`h5LymUE`us=N%K?tZy?!=vqe&q~>7%j0##}@1-Yax(YIJtqKX#8$4 zy!6)X+ZDt>#T=B2i>nyN3f#4wxIW&en2?HeMIk8sj&<-8tx=`*-d^a}{Vx22>)d*m zOj_2XK#Y%0*BqT@D&HAYuuFW$3EAg-cc;#Y*;r=H!dmp4qVuw;zqw}pqm@LNnAWf5y zqVo3IqTHqh7es!}K#KcAw9SX(4Q?IEKJ7(|8z8=HIrT*m`zo<^&2P%lOYX*}nrWh5 zm4P(yE6Go?O{ugHMM)c|AIm{G+axI&1IB$0IAK$!O`A1}zY{TfJtEAvpiLA0*+6%0$ZNaIGMY9=% z4nQk(`(5zZE_LWNMI{(I9&2CLe$FT&krRS=on3&%26p$*-H;G=_nEZ(>yg;OJ)FWV z_>kK@Lt)^SGwkDqU2(_2tW`Hl4ITp>dT8WZAX0S@cxQAb0lyAD|7M>vJ*y?>Q)t$A zbYbCO_Rs1nLR;{6B8Z2(2hZtxyRL(5t+25DiqK=WwmR;AdZ%eY?-i_4nf|p$?Xyhk zZgswEPm1cv$?Z~AcMH*2_Lr&u>sJ)m-lg`#ec!p=7bNtpcHX<+-Ii_B@N6f-&l*~= zz_-U@a=&3cP7@7L-ACDt&PgTHB9bLz5?eBIOWmEmb;Qf*y)LS*`o$79iuSV;QY$bq z&RBx`@DPuwlEyh54l9-|)78+J?yD*WVg^5|cUz9zldGd_CXNP{FntdxA2?RDE!Xcv z>qX(#Cv)YYU*Pr5VaQ-^7hC)D>8>I`*Bv?r{p!(q%yYK1#)kN|93*nu zErhI!;nJ=l2)n&)Yz)J^hE`=EHB;78Ah_^KQ z@Y20|i=2T}fH+eQ2!O@muTldATMkTo8th?wR+c?n%-MGPWoDLn-QXa8n|~V{67`i(~B@Xnkkk_2^x-q*9o4i&$;Ez zExZe~5DF2ckmAk&bR+Gh6GwcXBIC2&|qwNbRv=htr{I>d0!8);8GYHF%P+yB@wv#^gefCBd4 ze~V0t?eTQ5oRN3S@Vj4aU}?HD*_bL>U|zNb=s)F7NaR?k`r{~tQt^bXdDnH8>nat> z)C95nP!NEaL5!nC4;XVnV4=+x+z9%8V4&VX|Grh6r_#O6QnM9NFCgS`{T%FN3DN%p zPARX+e3peuH40U*KamPCwj@^C_}Eav*8J2XD6+d63&PNQ?f@Wul*!ZrG7?41LDobU z?{faS>*a@^3h(Ex3G3^3QuyHpPI4Qdlt_r#OjLv{Kb9;Om!mk}BBle`n}bG1l^8T` z4ZRdlZfw7N-7pbsC>fxR%`@yliT5|M2WqHdVp#3BY^`R|U7iO*RmPJd#yXf)imFM3@4_c9< zbyO@g=;`W)TW(yqwg~?Xe330{z4yP!G}=}drjMs^`v2(%%Ox8N3g8q-zb74d9__!N z#Kp28ctI#xDnVf1BL72Z;X(w%xLV1jOWTbV4hA)+rS(DLE0?qIftKP*6>N7=+YTsG z3>}m+Lc8q8v106d2rd&BuYjCSD;gZ$l4B=M1fd~h);(78ys=6h4!00nae)w{8hW38 z9Q(bHIoWYcV$GUppk@IY%OVkuDiKQK!J&xSv{AUS{LBk`Exc}$p1@*oJd`ObzqT&R zv2ss2oVN=so)tizs5t&dY$TlXm3+Q+kxk1W6M5n!65W74&H zl`?3##!pXOpmomEPEIQrp!Do;hp0e223nP0XJ99#0^BIC`bA+_1CVhY*^)JYJ1|sk z!pa2ytt^wtCano&g;QW8Eo!{bjc~IC{?ZtcM}GTu^xC_Z8|0J>PHLcuN+NPk8GcxX zxRMUuJ8eQ@N@zjdPrmuCAzmb}ooYeU!#a7+X%(Z6L`HtYfMqn%Q$jt;0po z{@+C~P>5NJ;hR0A_nkQdwQt|QzrqNBo+s^U+YfdgOsW$d#tI4DCg800zkX))b!o_pGyT8BZ z&->5c@jM+J-{U^M8Q1l>-tX5qU+3#Q2flL0zTAoeg~TsB6=77i`q?(?5URqfNTZL> z1Urs@TT7t5mgmK<{}HtD@L=dL9{75?1HMIn`5EX(ySuwD16v9I1e&5c?)P&)I>vfD z|J}lBCV{r*wO?Oc%*O&aDK-%ZNXXI*Z4ko#Qzqb~s}S7`%p0UY6z2v(8PM4NRRcj2 zpDFBJJ|%#80;r75b^;fnNqN28TtCn0dGO{2<5t(%RWlc($WRo)2%iJvh}MxpMlo|2fjPry?N1tO`wuwkQZnb-c0sI`@$E1DxN>{Xo* z)E?yIsDeJqQ@L*U02HGKQ4(Q=>L^NT4D9wkuZB~N_FW({VDx3DZ~sa--9r{WQP%(AC}V=56Jc}QaQ+s+PuYAQLN?+MIXIeqMPm|LKF#oV0f;i?2(tRBRn~PIt^BWK@c>Q z8%nl?BgERVu7YU74MhwfxkNwRlm^f3Sh9%N1;~TsI`)&k3OwyA;r91SrEfg_A`6S` znD^gIwSgwvyJc6HF!cC&C@s%Lp)Cp0s{0IeipaaOdZf78A0{^{lywMN>6b8YAbg+00zk;8;rY7z=nea1fJTya)y*Ncr5yFd+;rK^t$* zyw<$q>5c!x1<+^euq!w7IkN|}jFS0N|I2I|2A<3Bl|jIJj4PpW0 z!POyFGGx&LMk6v3FG}INW`?*hhXoi1V2_X?HA7E}-GX8wpo|Qp8Hz%nZ0lj9JEDV3 z_Srxsfk6mSSO&l8E6_Z+!fFy~rvmM`$@jL_Y%F$L3Gt`lm3_O9~@~?9fYtnjK_4%dxDde1Iq#f**{W zOLj5h>`lQ$D7*U8f47>QRN?^l|gO}DzFxR`=BMojraLKuOE z(ttReo107IIn6Wl8gh!KA|avLiw5Js$&+iqI|djA*}}iOq-dD_UKb+krtOP|47h=q zf?_Ozq{4t=6^HsJK5W=R;NB1~LKNswehrL{<{_4J5T%R@e}YAPE*u4T7{01%-ae(P zl!xIQ5Nsj@>Am#lVvu6;jYS{*DBpAm$XS7Nq?B#na})Vj1-6fvkC4@3#9Ih>Qjn0N zS|CoCVEqhEn|S)5Mv$F4Fr+y6`NIHkoC8)0RrH3;Ys}hkegdJ;6T=4*G|=P{g=WGi z#Lo^w)_$RG!TUmx=o3Q}n(Q;7U?39mgeQVlNEq>u40{Sekv@$42+b3t@-T!tVio~h9$Z5%V&_Iobz)^T zFRsbH9D?Tu3n+4w$c7uBGid1%Jw|X|&2gd~E?;iUypJDyj0cL88%0DI@GRv~Lqm*Y z2Vk^)fUowh(d_ceioF(;Z>Qi47JSw7>guPEI?COe`)1 zad>WcI(;9XEq3@=cD%wS4ziA_ICoiBm(ewCz-^nhZoS6Igo7`=3Jg@?5BcOBq27E9 zyFk1ntmrBOoFO9G5ZsP432RylL;G?dykL7o5D9Il4q>wlj7bB7k_f0Q`oVM!Q;sYv zp>0HOb4nM5gd-4oe4@;XU+|5@&ttFwGZ5zVP*SPaiDCLkG*&%FPl z{N!JW$^jaD(H6zMD+h}d5|AmDtJeh&F@mtk z4>9%-whg5So+nP94g%rR40=xYp?d>k%=sz*XTZgPw)KHcOJEiRlR&(5j@1|$?zlR2 zX&*KlAgjI`H*wFN6*y1{Q9x~b(IKiDxWfI1h%|3rV+Q4Yr?Io3S_6K6W_ima2)x5h zl9Fsl&V(a?a)6|GfWpXl!dPj?6KEM`a>1#m`XN`~au7jqlFCVPG&W{KM8M+gMtms- zr8qk2H4~S_qmB?EgL9~g;Z#}yL6Y(DF_Mj5U-Cb+jy$)Jhue0PPD0=p^6(XAUG7mR9{sAr>? z`}(?<-0cPpj7Nx-0Fb1C_V4&r9IHtx_*YsOXXqT3jLGc&f(|@>43Sd6bvFft z4r4}B@~K0o8EzOd5)c>m;uj{$0=D zgBDmg5m}XbH%U7y8l$LzbVwM$#7`TE&>bB9y=a@=d*rQLml19(MxcNVg>>vj2zu0t7SWE6 zwL5|MaX>?36Ucv%Vun#Hk*Fst)v!QY!NBlFtyDU!9`bGdKuC#c613WJX$b8Q;4X2B z(nHq?*?m;B2Z{Xv95U(@jbNsT#%ZH4*87R03$frp^v8xjLIA6jlvMUta+=$*RzZaM zVf2M5HxZ7-CMZG!#TO@;LxGu%?IWORYy>2(vg7PwgDbPmZ^AQllSCQg7l)L2LcM)gmwRfBMH5WW&_)ZZ}9U`IXK z3-?x3{6xyZYi9;u*;ZA+P6+bpU>1-98Ad?v*Z`OW*j5Uq_l9rNd(q_87#pM1$4(iA zf~C1U-l)<23vbAKOWkO&uTi!+3U=EF?WkUr|IMwE7ogJLIOuxhj3}U|qnwS4L(np?afIp#1r%(8kYcZ$F`^B=|-G z#U_*t))UP+Byn?GD6+th)Vy1QuZ)r#-Dv?X4B?6cuJi@O@C|aAqR1LgEWh6Uj?76c zDez7m01!cLiwJ4sRvjSOy{rrd->(6O27h%#nSKjpAM!HFp+4ZeFnIQbW(lEiBg2B3 zSfphiNNg1FC1zpCkWJ~Do5g9G_u45GY^D=(Kv?B}R%1LoArMgfF*0%vdmw-J-Myx? zk@Bqck39$WQHnhC6A8W_ZQp&YA)I-w=Z7uwAB!R{jx7(M32cRsEvXgpi$G-W1I)ag ztn4fqxdnihN2*n9UqEt_c#PrnbS_}is_!Z;I+5uIqYd)Q#1a{97=S{}&Yhz}je_c; z1X`T|ZtyZA^@;R;fU~M%Q4pqD3CbLi*@u*Zj+i>E-k4cf$o>T;DSf*j^_`xR69RJ- zl#fBP_|dr0L~@~4ttbKwvKcf^?<@Hz0&HWzE6@ym#!0M*Fh3(E;K+W`SAP8?5Y=GM z$&vjW?mdL1h0iE5GSU~-7Buq7!D(sXL1wBz<3Ms>Zb89pTeO{vy?2?fAFhdE3><79i{9+4KTdPU>(APqTL-1k1 zGY(MNB>@LvgA`F1cEc+-9BM;E^W~0+=5Pb2hmHz}v>=29LkXUgF!T+FPn>4=Y)Gm-~2pN#b znxj1P#|3}nJ#R@geDKCvGTp8EFi|JH7px&1fp#0_UuHr<&I?G4m~sQgIfq3C-aSqh zMMrK|Nr!!dybxKhBHarnvISXe$Z{)LS=C`vQDm3|)rlMAbC#7oQ%A_znD&GbBmn3G z@t&fkquT*St!8MobQl})Rl#{PYZw4W<1r-F(Sw7i9+oa(0V^~w*K^PS;3NGUo(2Ik zkdi~zZa-s+y9OJ$`b_s#4O?(w(BPL~EPf405-M%N!v+~-H(vY)FX^@9BZF&3U*r}M zal|*=clgx86VGrBH_ikJ63xxrkZN$MWP$3uJq%`lv3z5FJc;zGlfj$NL3n+qhl3yPqW(@B8A%t%5BUDR! zA%_Kpvr?S724PDXBGLg3KU8Us*qTDMI+H7YT)CAAIjA*iFKSfm+C!{7fZW!b{M$w& zw{=J~Ku|&9El!CTDi>l*g+7_syg=d+NCb0sRZou~BK_Ttw&xlIv(zak=TADh8|AlOsGR`Z7 zI7fhMxj_IlEUJ_LTHFR7?D((2_1_>MXWz}$&ViTsL2n>lWBQ&u_p66i(3qkaL{3n_05CB_lB9q48>3W!o_Rix zw}9*{q@-jrx70q*Wm{Ce;6*I0^NQjgKE#fvjHevQF%2?M=NMaz&Q|;aSux^~(`&pi zI6N#SCyOC1vx$jGYisMJx#O2306q7ElU{<(i!}74^a9?Yhf$FIfLG$UQ`8+gTrv*8GNb2DIwcaZ3GjnC27HKbL6~8pla{_%!%rYp{@4qd!I;})YnK+Dhw2dD z1l?6)N(DKv>bH3&PTVh7CPRx#CSsm$Xcz{0xV!i6Re2r9qd9Z{HWo~H!MKx5gUI6p zYq;4U7`f0$9xeJed?hz#WGs~{o}b+I?Bq6bBhQ>+fRYz}Oy30Pu4dl%R>c%;J9-Z{ znH8ufx!te`Ar5^R8Gb;!g2&%16Gy(!4`f(?-Ophwe)XC)Pc3g{-bO+tD>_()L4yq$ zo1BvajgA*B+K-@d^?M!b5Ya3C!kpwrBE@1Ys5 zQ6h|xTffc%|0~6DqM-o&35<^yBt|e36YTf~(g)&BmfaqaJrIa3re5STWJNAxEdH=! zbc=r%+PZZm29EH7A;mUCjASHa%cRAgVRsEP6Wo7wv^FT-30&A&=)nUzlrM%R*n1@6 zO~A4UVt}zsgZb=sOm_YeNgDkAy{a%REsfE^UV{b>m}chr7>Pjem^3>u4xa0j`kWRiPyf(m{x{iz` zBqha8YS!xNGSKsb^e&M?AI@{itttlJwLZBvWh3f{lsLuzg=Iz2bNpMAsyI4k7%oIX z01Q6_jqbtRZmheaL?}h=E*pI$h~eB3jFWVD z0|WG!`DuoJkq%?FEcp4*CR`PtG0F;402iMR-z&VyyF;}>ctkwMuIsh|<88P;;pAYq z2@YpW)+*%4<40i3a(w)gv{xju&c6kwQO&Z|rAx)&2!NEn@uCON5BJyEtY{VSX)EJ( zV+n@fiMYkYhKQ_G{l9~h%BfwTu7D58L^?j8RV3(RTVEQBDxc#Nc>c}+ZVd?`Pojp! zS`pVx%zE>j-xMLc2kqFk4ihB6dn1#?crzu%w%|8->Nc~;N=OHp*8l_T@k!qlKe>dS zfq8v*Wu)z5do$zcC(%rNJz9g>wECSu{C|GlRojaM0g54AH#nd*eLt5i@t!bBa`VKH zl+3IM!#v6+w~T3J6nt;j0G-2{7av(f2cUz{VrDi)qU_&N5YmuX;s0mD9p2#8m|3p9 zy$XZh$_;Or+yU^w(>@|{RL2!-$d-EZOX`R<1%5y9I4Q-L$n~KS$7BnsfccIOhQ1ru zT;DCe2QEmMcwfh_!E{P!|9&I)FPJ7cq}>@B92AvH9~~SFp`l~Ar04Wv`{p%=6aNP0 zzzxipqLVI)csJ{znAx~_YbIJEv{!D&@rbToN23HnHSoEWp{WD{IdKAzvOnMkRm@dt$Ef-8%A|AVI{%9rqj`kU3avWXeQP z4pM4@;P&uc_*Xs@9+5bV04s&iCt)0;=IFQs1t*r~U3$GkRmE?4tzC(onAEUbqa%cv?Y9LW3aC6X`16rt;4q!ZizJ8OT6co}okmV@RiLS= z{aaPQqw5-ouVno4Q2Hnh+7Tjbm&e+WW>g?DwKgs;Zs0qy66e>>h$j0tXa&mI;mWc&mx6Ibc$W)|IL$ih`=tmdicm-|`IIpE0 z9qR$i?VGq}cG(x(^ytV~MpP`ab1;}FE|j^Fa4>w0jXlH_G30-O=@-Lb|a#Q&z~{Cbs~^SIHxdoOPVa{7<)`3kB}&i>k;$N%jHu3$^V0YV*l z3FxgGoNY~jUbaVFymV6XaOLJ`{1_mF=fi(z z$q#8er0pv?dxMA6K;3r#wxa(3Z~>~vj!4C>^u`DpxET{&B@TiU)6uT3t{`1d(pY=w z8`eQ0wd)^WLCtvEgOBq}?I(bsq^CPC8q(@^i!}%k| zV&bOQAMHE*h{|<#O?1ueE0x>^SW3k1FOgFvew1rit8cTzCkjYvFlWWCRS8@G)!>HB zwPvu&7@vnDhWbeVPm$V-3s-R1-WlwU-`4~v374Pm{U(uJyEw`G7ELFyO9L576_&;5 zYsdth^sp$3(Kwl6spSE8^iV(Wz>WA8&=hlF=m2^0Yh+dk7zBUr%R4@GfUEEWxtcl^ zi|eiD9bYYQ>Qowch$QjJJ3NkjSclo(efdqHXaDCYjdyC3hzO%|2%SH&Oc1Yb$1GGp zQ6c!VMo-iDdi*4h5R>wiOczk<2FV8@G!r}lTszk84Glb`aYQ3S3W;w?xKhAi5v(y= zBly?YU8Pf}8kSqSKeQoY|hP%{b zzO≦ufDg)u)&~v|Q{4S8~n%*@v_HDuULyy15njch1bXwxq#U!Fd*&BZ9q9#cNHr zkxg!EJDan$h5LKWmoIs>r(WJ2X=n|;c^eB;Pr;_+xzy3tHZ&}9)x)Eyp&?;>+>ZOI zph|UhHDUixn=DV8%-1e2YIPO)nBbEpn&n+D#CztOb6R;B+dDfOfhk%O)q6t8bituU zwU?BTP!^=SR3fXs!g#@h`}a>E9iZnLE0rwz z^TmFrmY>%)?odBvRThab<`SlmesIif7QC@a=cin%C;kF|u~;u7CzlK-azv{e75!G0 zmX5P+=SCHWuTm(*D%-h3QRZ9hle)P&MuhwbMHK)#DuDGexzv0x)6&K^9f4xo2X+wODXU1x&)>orcZi-fIj~- z!sqq!T*Pu6yU&~&wM=O-V18jCexyi+(sy*`pGwXxcMkI$oa-&2^O|nbwbQUtx;2d! z->yY#IX$Qz!62}Y65=~Hr?6+wP@sLGslN?POo~z_E8-(xoLZ%G!OP3&rA`%n?Ogf32!Z|eKz%k3p`IL`m}tR=7;#Vh+HH2%JbV%sbnP7-o75Nz^7E5^mOOd${(UNf0?(Nr zA>1z-hLn|~1YcN|DukdrFZh$@;QnMS3mxTAgn331+(ParvM{o=dm*+zh>vHtdB1gk z*Rx&x($*@Os2hjJ#$0~8Vb;kw75nXc?8AqRn0Go;XML7)#=8rXfBtmD@MZ|c4EbIQ z*`$)E&e$(!6Utq9(~g|<^v6V_qCv|0Cku%o#3@T>D;MCkDU42s-Mk0grb2w?Lh?bT z`Ta+#4U^>EK=4+6x;i)c1a|VzaAb7L07Gym9nS7RUO8oNFEwqY90Y?NFcgGGZVT?e z%B9Cn0H;?#)AvOfO*Bb(QdubzVY?2tmwpPPi> zE8G9UZ#x(Bt&+ecGogKdJiF=VAiB!a$|;a2lL+2cAXj!~W^S*l(kGO&r!(}#9ZZC8 zImAPq;_WsX3Ptn~;zr<#3vb($1vkgnZjb%K;7>QUV@BS?IIlGws4qei<2*kilH`d! z+@b0WEc4`hi~d<&$FBk1m9G)rQ=9$1hPBdLWB!n?P(3%7i=f}t&v`v?`^>gkM`$h_ zHaCq&bn_6rw;&JDt+fzJO}U5FJOt-CZ*ZN4!%;i)#JlqqXg-WY3*W!*E(~65x#JUC zx`N*g&lac8%}cn*$0CQS2s55I%s;Znc3!~@rtnwQcCLf{LFtNWB6l3Afk_>e7ET?3 z+R$R?cv+(KT1#+RhBl9~&mLA|F~=@+^yQrE+Z1=4kyh_{TE(`~F}*q2b8F>Sozd0J z!UkW8{m`sjSV;Vq<$#_KRr;*5@Fle+aH` zx5j&l(l8z{oSo>2-dx`Am{Ux&W%8jqf~DLv3@MURQ^$RMocI}J589-yUy#SX9y*b% z%*;#f?s~w#ns8h?RiydF%)GjitP3W`aIn#@(?2q?duNrCfFUx4mcm%|G1rx^;gv;L z_4i8&sS9QC&eVuIur*bGpYwG5=<}0MWA1og;k^L0&JAIrbn>o5h16ACQj$TIy0dSo z`nU@tl}Z&?RR<_^VJg{#dgSkm$34Z4gccCOTm5I!3TOCa&T8m1%Fn_8^a(VPlCWF_ zb&hOgzZ4994A5l#Ge5{-U}B<+5A*fWB`n`W)ed%@qsna6p032`&ZZ{hTy3+Rdei2G zobaN9n?0d9^i}bZv_cB~PwQ~#tpjz=+j#|Mm;FMSF9-wm54{0jU`^YDLgZFwaHVu3_uC`%4-I&~d4Bs{vGA-xVf5F+g zA-w2pkIRJ%ALD8-UbxUn#Y^;a3#4+*e8u=>ItKS3_N08u2Ut7z?%B%4oXTCnUQ>19Z9%ZLdd7zOvGmeQ9jEsTL?q+qIRpy288U0q z@V~}V6jBW?2_v^h`)U^xgl9oW@>32uv8ar#%<2IAlsy9NQb$jOR$sF>2f4+hgc5G8L5K_PQLw$A|LN?e|4e z*x)lCIY|yNicd^Y`6uleJZ-Tt2N{Y7adA!fCcqJ>Q;p&@@DriqeY?`a)XxrW0?cEQ z(OBUE*%o-A@=)EQoq@ohdF8=+vUNEyw>jF}vSlqL! z)ee`{fYoS@ye!l(D2F&c?Qk0L1w1!yW#)Cgj06PW0F z6DvnabHD!1Ou#Bz$^BxTb*14r^Z1Zx{SLYI*x`OQ)zv-5&MJCqtAPO{h&KLy#Hr+@?fF6Ih}1 zQl~w8{bxMr`k_pgv$65UNwM|(k?{O(;SvjW3$XOWGlm61mirF*e<;&}eYbIBrzRh~~ z?zN|48tx-vbh4hf*qut71^o=Y&K-Kv{2RCKmsmO5)8DsA%rreEMRROyY()=cAw4f| z$p6c0-!8k3J)JdOt_oH=w+TdOFbL@>V=sE;itM=(3Gv=iZHw}wh^q9VfokfDrne@u z5{nK8Ah~wXUZzT~Rx(US!SY+c_=f6}$5`zO4+|s9nROuE8A^A3{v77f2^$JS-abV6 z_3Rny-iVWdRf4qG3ObV5@BlpozGmSEBijq~U&lM^>%aMn)S`~UYlz-H*DzQP$J#}p3<1sPnDUm=q?#O`71Ef86n6nv7O_)?(@ZjEEuX45Re zpFzK=++3TK^32@K^hiJXONVpgG8U?gs(~;vmTFNcItBJQ4kfte(Thqe_7$Ku^a5^4 zd;m#cw7Ps*2P8<+^q@xFvOneQJEwsgh=MMNF05>9`9EtBZ)l6-@1O%ln7M@9f|eZ_ z!`Uo=z$Acauwb)WUjB!wFjT%y6Tkxuxx^(#Bu=OPPH*WaLD_AKv&hH)eDutI5?!QX zlB?LJI5-`AIb-jFfG#sRBUzi*PnOmb!!KI>q7^KyB?H>7lx99st>B@<^Bk1 zmYX}a#DhY71S_8?&0eLYxtRrLD;~VfqWi}81(@0eiU-BHAs-dx@jkrgsMg4oR@~kJ zT6PI8?b`*iHgDq z>6gwPO53b^=fV@er96p;3Y_Ksmn95yZg1>D{72cD`}+h;>2ZB&2eVOX;{TklD0Ysl zw3vzjf-^tpvviUAE4oPM=+V$6AUb+I)N!|IkD^%*L}G;>f;&#`jA=yu@V6~nMoX58 zzTMty#9;od(!wrkxyfSr(fFK=z8ts_EPfblI`Y$Sa+wvkOt%6<*jqD${~(mUS;I z)mafc-ZeXn4*dR8%yzS{iyy;q+H&5$(C1hne{<(63XN1#*F<42<`ogaN#BN&g4Pev z3O?m_#7B~^e3a$Nr088}%yo?c;_;{VhF>D>kr}7 zzxG6elB4L2r-dKQg<^HZP0bZ;y)pZnYlOIF`!=56xlV4QZObm%IvcuL+1`g=E@b89 zAy*Cx#D2NZm8B(b;gG1_bi32zQ<2?F8C`-ueOdgjm8|^UfIDw_jV94vRgmjwJ(O3O znxxFo(N@K7nPHTHTS=f&Fl2K!){DHiS+i;qHI3!@^X2sav`Z#sTN|LN8LW2bsh@~$ z_Zm>8vEh+Zc*-pr#9k1;p~ImOc2+$4gFcz&UC8+as;PhgHx8T@`~eAk!ZN?8Y^h{A zk1NVJ*8yszstUncVq;lszM~&~jDjAEG&w`aO>E-nHrCdsP+f!SZRq=qo{f!_^<`lp zmEyCj*WrzDYLcRVk8XO#u#N1 zE3Qq#^pig;aS_F}j;E#4 z9_(lPo;3vo224>SzdE(NrKIaNj|UAFMBlr2x6;C}PH#?e{qOY0JJ&a~ru^ufXZ-2j zIn9Z73iF-p@SL+IW!x%%Sf1M)|IDq}W*8&!*gS*tCQIz5w?P|c6yK_E%1;0A{hLka z*Lks-9d{~om%=0h#krW#g`lO|W^nFDXt_BapDr3W7NM;7*G%ZnpBvTA(sqsAxMd@_ z0H+Z8u1@y)VLU^t;$CS{A9Mv#vtZ+GB!KDJ*@B-nq$jyPMy!zL3>g9uO|0M*z(+iU2InXe_n#-5Gt7Ft*GUf#1()5AP?qNech*Q@#GHB@k=M$}=_F=*eyll|?4awK@Mno9qkq@^YQ=Y*Y>S(D_bambd6_%`DJcokYdL#rQ3jE(YnceH_n7LJA z(%W`+b;w%#Ksu>KrjMSA6Wju0T#wJ0>2M!vYHxo9oIB@7t*Ruco7+9+tkHD<9rRO? z^C|u;;L$lZw78_6n^oC7^WAArN?KY$Tw9q*M{DcKKp}Nak?3;;83r^Z#rD<=n zk1QK3*Dx=?F034Il01-a_@f;~ki~t2EjD$vHLG3O(!Gn6R`)Y*IV<>eVxr?px!|Fx z+D)>3oC2FyY0b>_uq+H}{fe11S1kBASsUtVB&i+~_;Y7MZ2# zFhP+wcarLkjl9LWgd5Dp_sSmH@V9ZiFv4{^>_h7O%sVDqeaj{D|!4&ABIiy66PAKKF#itFt{+eY)7+1IVA zHNc(DU(O+ehS}NV#Ka1ErS`844bI{fB7O-UK0ZYcw7%?(Zy5^eoZhM)n@x)kol0z? z-gqZZ2c$$;_n-1s7@l=ZSssm0|I=?ULtV@eFRJAqm(uv+u`76bF{t9^(~r5YO~!n_ zNHu2u+*Z^xUNpY=$8%(MK|Q89CnrO9A;z_1s#G_1skDc;OtAKi=1!Z})$Bi4DTR#4 zQ!1`!4S-^!Z)D`MKBfJ|DsSEgMcc}tGZDMp0E;q>=g!6oNOqC4OCd_p-y_uKscVWD z>XzNgsB1lJ7o1%R=y^keOgd)T-$r<}StNGy%J~LlWMvU-34nhdr4Zmmctpf@RBn?y zi)`We){gs+=tH78*RqY;-^QCvK?~Uuot15x zn0C12{g~re!#q{d=Ur9W&$r%j`iK+ zK-vq-LlYCaK0ZYq^2LgRyu9*vWe!l%*Zb6z&TBOb{rA1y9Sz_qm#97=x;hb{*X_GXWPqBk&FtLMFx+-q6n{n=Jeo}^Y@eT zbc?8yf5rl81${#2XG?3h^Q_42so1~WCnbXG-34|=nj+iQv1Q#( z%1pA3*brcbeCNTN#M#gb6bmxF!Yd{#ZJ1lBL+R9^0{tAuOtXcO;734F+WCmc9lvm{ zgBltx6W#mK_q;-{+B5f2ZmOVYp7{rJ+}CcQ%U1+5B<_MB8TL+QGKPV<4w;>G8?NXP5IzlAL;^ zj^wE@ndD`6F)&k0LY(MU7i6&fbf|x?dATihjC-+{hccSk`;f(%BK2T;Bt^>pjyzyB z)b^?OKXSXYl}=*)y=7un)Le`;*`u2-`L?i|ER&YSD0h2CeCaH8#jA;nIrqD`yBAu7 zPfqRmbvCuBs!c+tzUJamPsKd_fU3lphyIg8c=hxSGs|9vbdfX92% zF%!KrcA}r0Y%S-mmZoZq{*20wXm)MWi&m0s2GL~YMH_p2H$fB!?3yL=z5#0=#k19F z82Gd>v!@6?thAu*r!GAV3D;7$-M5*3A*8mTSMP>oZ}@Qan5;&6Pr2_xj7RIl{d&9K z@UC7j^Jscs>iMS!=(XnuPcJ{@TYJFL=k4T$us)8@2Za0P7iJdAGNqX*lXv3+o|d-1 zo-n1dj`*}*`8+S`?X$_stYEp2>U}8BG@nQ4l^};eXtIU4l&3^KPgLXe16S_ll_$}Q zm}xt^X?s2HlBMzH9`F~TdSCCcpIX?Z{o7?GC#$GnTI+R@d2Pl7CtJ%3hd1DPK>71H zf%RfywD-oj`gwBS=VTl2Nco=HdGJ$Td6tM(pH*Y2+A=@?+Kq1;zK5JSw}I{CKIiXY zFjj2rfR{tfaTizDR~VC^s>{43ul<_cAeFnVs8&`m!&jukw{bo<>b+F;b>`n}J+e`+ z*R|P(y}r$Q^6Btvs-jn3?@(d-1F?~}e{7Qkr7s9sXbYVO_ige@qvvYhfQ#oiwa2U* zy<}a-L%s#I_#K#z6YI-K7?3?H9cA+@r^DsKmJzusTj9QV-NlXtqavQQch|2?x3+cG zQ5Xqf)emQPxNU1^mp>o#=g$>QEiFbx_K@Fg866*Y^krpx!$2wQZD*^6PVDN`&Jb z^~OD88hJZq-vd@3A8pw+a3z#aFzi9? z%!0oH{o?+Kia*Z9QHpGon+bsD2u1{>kY;Glz5-r_~;5MG@bBm;2 z4?Ci^P!)7pr`|Gk^W!R=2iXEmLR~L8^(2pdwFjW!<$2Fv6EM$HX1`~qv7_w5a{;;o zuEugvTo-hAa%dmUIHA*FY?s*B#T;exxVmT0WV)*?P4Cup=Nn4*H%R7(={u}d)X-T| zoO5cj$2fJJ=R(ZN)`<^g$6Lg->Av(GzUPpk+qn6N{Jtuwr8mw(0qtO|x9w??`aE6H zT&m8zbVYKX9gpJdz3qmn7Jg}MBc-8*TwHe*B7)2E7p>n-?osfRoKDjiTl^6*eVXsZ zN=p4qkSFE~cAa0^FIsz~*s_{zkFpM}wv~O;kafMsuHF6qm$P~XgC?iuXpUz8(bkcc zpzy1Eo3u_ahIDi#&B*SH-XK%6_L0=KoXDC{xvd^jUd}zL1D@Rb$(ovmA)wzq)3!A-rtcqAtD81o$7ih*=HEs&`kdaGo!w(s zCxtRG)3s5_Z9v7PBxsD6v~VXDoR5f!nv%iFBJ9MqBbnaf^&HyNzf zx3tN(tgKy%Wozch;SoCh_?r2Il@Se|Cf%v&Z%Y_$}&PJB#$e=$bTOW>?f?YZNQN-n1c zR0pe#%GAG9-b+3unIoIgIem7^9;`GZp!hgiX#wip5%gS`WVc{j6kzvA^c;1af?(?v zh?8NsqK4|p%HCcVYE)?O#i~{*99y|@1?4~f^saCh_~WCo-3g!3fBYF`p$Yttf2L3# zQdV%#{?}JH&~hlR{I4%4W>TgI{nr;zL@EClUc?FN>z-aRM;3@4Zj&+j}`VF+j4j_F8j|ImVcC=ar1q9kN4Ihlq%X$i(m7mLnoM zaSom@A0UCp4MIFW{6nI1|ITe90{SneJSl*P=p2#w?OO^@B4!31o+yr$vnN zRR2+tqU`5)N}mrZC?u;b#uWG_2xQo%)?T&3_|inF`^^fF?@P0jF`aiwzmqO-q0>Z~ zM)t%>jEcbPld1Yg15ZCYEWWxk!e6I$ZHhp{Aklo4X-H-nBW6Wt2Q&Ver z#YA=$`TatR!KEMZeg+?(?Q@vUC|qif-evcuVEXDwsTDG4j}z$Z>}1lk$YWH^z34QP zbH|IEMh$1zs~?=8!kB1@t6)-5tyjs_6W4N@#ayh*epn^PNFmQi!REHRy*;Ij{YuJG z_I3|3$>?G&t>y5&J%2{T`R4Z|x*MzytyKh5Tb5lf#JM`{&f<2NTsBw4RaI3>?B}D- zi+GLZ)Sj(}LtsTsQ`6HMDxVT_Jt64ig!J|Gb#!%Ed`b;7)HTKV^V1)E76DU(AX;Yk2Z4Q8lLSVRV$+Ub6j`4a^Ig&F`IS8r)eh? z6mTX*Ihq9Y(>VT!y+Yxwo_w_+UopC0IJV_k;Gg#rnT7cOiN^<~T&~;e7wdMn=CMOt zO_6+Dba#9uvb4(E5+%cJraG?F(z-cEIZmZ)n%DT!gbT;Y5b#4z^J6RR($clQH0=rZ zgAdd2vO}+XBIT( z>eo}H6J`r>O$Qkw-jdVseu#^^fKC^^kFajrt*MNwg-M_8r-c~UT+P%hzAA?a2>qF+yy zM(%aBju#nq(8bf&b#9BjIrT1-&CsAB zkmGd5%49o3l^0okUbA3n)5PP}I8ld%kNerIM!)1+4D!Z{`KVPg5n}<)ao(l{NH(971`uqseL>LKV*n2Cl0}V zvL{EkNnmZ@jMbO(p{x&uA~5Tes~IS{{6deD_)l@t=8$e!Ta6B85vi}HyQ zbugn;1BN}>4*_f7o|2K#7{Oz`1j~?tA7D4!#z!`%Bt?apW){;E7HJ9Zo)Ygjm>VeG zX!Uc=SHfy@miL-H;q_id4tBR*`Xy^5Hh5)F4F|W&Ani$^!Aj?hV8F#Z!)C4N9DtSdRhMv1bN`DN45sm{ zo8oLAraxu}fXH7sHe1OFKF0qdt;)p<1cLO$zul8F?`dA7U|h^(hCy)a7$Oo(aA8UWK?N+KqU{cN1%lKA`-Nk2xa+oS@uFi%>2{?5XuFdqa!S>cL z?*}B9pe3x=I(Ap2_^CruT82en5Qiv=giNkC(~|>R)6^%2Cw<;|cXtgtp^n>BawTlx z3?W}!VPR(!Z!p zX8CHLhQnB3@waEBR%3z6OUJf`B z@e@@VXfv-kWrS&J{iN^jr@ zTW$>E6$_p$dXW6_JARNofZe#QLS~F`-JCov;An%MlWbi(aVV`(9|FYGoXvTCVc^M# z4;&zr-@%I4ZYCt$vVuoh(^k=O<;OcZU+xPK{9l3Wh0^))TVZw)afq;P;wj$UoNmuh zFLWNE#(fzJ){cVt*8`Y?0~IfQz1FR|RdcqGV$kUC$nO6YI7EN^|B|6^LcTEp$RgVKLEY)sW=+%;iB86g#=ughziK;aW3{2@G%l$>?sNNHyW;;o|MmL^)aU;H%l|hsBlBP62m&?0c0*v2DXFPn0S$9? zs$VN8DrOXDikOSHrN}3V^+U9`1O3Ri#0j1}dGgA&YyJEI55g7X#uKTpGJa~GIl;rf|Bi{&nP=Qm}@mQ(?~ zV9*>D38Ab9@*$MVQVVhBV(W=aJPr2y+;Yb-3%qN1Wm69epgu%2j2 zbLqt3f3(sGIIT(m$B@5#qQEF4KLQRhZt1qA4y^tiz@k0~gHRr81N33&$KCA>)uKnk z^lm#{<$`=LWT07s0*)(R$oXd8BA@_rB>_N}JDpjYsGOx`++Q$DPec9ZJbIq|o^W^R za!{Y39_T=9HRc<)-vG(l5W&Mn>%4F)Q93#b zt8hVD6=nQaJr5cQ_W=u*%!N+He>IIB|$oP*hm&Y6H0cN!c^A5}7`aq%aE(IVT(AhTe%}1cK zh28!Yow=r6?2{mN5_S=Jhb)k@&+o#YrOCefJFQhF)qsXt)+XS!9Y%b(ZkYGwZ)QQp%o2Q)1#=y} zH87D|Mb4*(*gC94JMhyPAVl~*E|AA1RaJW_Qi>JRlqNe;+SO+JEwMXdYvoTCzazy7 zFKv2rnr-Rhep)?{dx!#Qx!^nBP;)V}88qCrwYByCpj+#UfB5|8gyLM*W)PDHh17jW zO0PZ@NIB%OP^8@;&8pE$M@4WAJ)yfF%q$7&e6>f{Zw9Omp6@T|tUxYzzu26Gfn8x5 zw88GpH%K-Biri&N0Agz})sd3sc?lFu=?0|m5ZFo=#gSQ3;j%Rjc9AnV|3c;AGu*7O zK?d}!|4b7Rl`?WMgP4EO#Gd>)m{OF8H}ZGYDuKu@Po-szqkIO2%sU{bY?c)p255;c zPPWG1L1WxJSFTm=*hwgLTAO3i*y&0rDdC;R5?ozWMmkdDrwKa{VIP18i7yp5yD)Ff zqgkgo3GfiXnVxBi=CR9DqH{VjYKmz4Q~$~r`H3ZLAwL7EfBSZyQa}D ztGzl;L&Mw49G0i5PEJ=0IWIRVC@Uwy{yfe7=mELV_5#u%i0G)73}8+i@`MGV|4%0S zb&_!Y)DpiD$eF|?Z0~`zv@|yTukXu%6(DgK1q22;LMTp=lai*KH3NRaWOtUf%S|l+ z1+|iy<~N9IVRxsoORy!n2y2*bt$Oev+JVQ-z$_xq02F>O7)tu{N9op!EQTilq87;(7_eT3?YmM%xx~B=HBroVukVy0ia0w&< zsl)bS?eb`V^f++Q2FPe_U_PC(?U4Ps1Z(rrpkGAZ4l0@T=IVpq+4T?Ba=d~dCCXtu zv;k~2*y)X+n5{Zw?~Fl2OM=CwR?20m*7Q z`L_@U0{A<$F6?WA_S)!>C~YQ1Sl#nFLK}6k39Q$=aPS6X zhX@!Q&rEieoSa-+o4&<$l!a*Q2j20`712QkK-P$q0KUT+&Yps|=pX_w?AGA?QYmhS zxmk$djP`K^>@6O`_HuiUZf&Dr#s6W%e;tLy%l^|hK(r6Z0>lMG$ayXzs|qAr8#qBs zN~G#qfPpoBw9$`8YQ{hZe1*UW28Cz<#>8ns=O-kGPqnmNvfufS(FX`#2kv3yJh=4$LbV3e^8Y3H_w_eLhwT3cm+C!_SP{@1#@cK7{ zu0l)Pz~fq)(CfNlnZ@H_1AupvooULMMc-dT*cB$!|M8C8GlG84_=9p-v#}s`i#os| z6b0jG?;UYluR;uCq{gQnoj%Z&iiG+P`|x1*flIx%v^kwM5vZ(H2b(M$=_8cdtYBwM zAiEu^1wA0^ton?T&`w7*Yj;_Qz=pPg6z}ARe3Q=9g!=wOo4Em=U~N~2T{!QtJ3^bX z$QYXe>!o^jP2(LhB!oAivIL zrsw*LGgfzz717br0fYZDx@^UxH-G6R_EablAcg0+HWvw>$tSeC=(h~GI`Kki`yndj zpwZ=^WCB5etQ%k6sbpuUEi{5(6WXoil#y^>y&hFqzy@GNYe6p=_C9)hlmS?mB^Kqc}_^1j_*@-QC%mKpr+!5Y$TYFV;cE43GEay}GlBuSXU<(2)Wgadvrd zzcwbKqZdbNClIr^wV&p_aeE@n+@Eo@#QnxdBGY2v2yIw50%Y?tFb6hzn_YvT8d7MZ z>gGbV-?Dl<&vc;PB@69%~^AH7T;$LoXUi8*(0I-ihfl)5J!CX3%3%&txA^Z5g!Vf{I zvB0?;Agdzx9QkSBZK&Hg{~2PB+MoFMzX;y?29)8#P!=x++l$SlBN?yyH<~q*la;RGa53Y=4T#%KBlfWB$>-*1&=dcs6rk0 zKfM4bA77koOQ<)X_UOce7m211{QijjXP=xyl_a&2i~pLVxO-~9U5%JAWNO6U@oNH) z)O6UxOwpobGBEF-FBm_!6V!mfWflVi*r!#`BBaa4+ z+aBlIfPG6fkSQ6?2|7gHS7>*gABqq7{x>jKs8sJx!&a-GOp1>3rQu5i{cxJs#t0Ho zN#A;XFiSI}r5#j90x3T^P;4#5zxWw6N~Yk&x&K-e#JQoO;E2?}i-MdwpI>ge9XZ3D z?Ya$)Sb9adX?Nzdi*uJ^f6W=J*Z6g);`lr%=$3{}jTYn8(2Tq|>v&mQPD?8as@3QZ;*d=uA*}SiygiS!1o)Jw=AggwqZMfPpq?!v;5@_6 zkGBC(DJUq6BBJ^H;BlpX0~b@{x#p#?x#EeaPAz*+;qwp~LweSl?TX5pfrynu3hX!2 z{WJHKU3Y&|1hWxDQT+rrFB3Mi2z?hufEDnen0TTvL!KPdDrVcrhkYTMcRLmtm z;s&hhnSNpyGA1$#hwg#regodd54>L7ACeMdwa#_ml=Z-@|5G@ZhkX03Xd>Fp6*=D$ z(9Lk1K}sS`DZ>g3-LAEqRN(5&@FoD*{+N-x%s$TXbq;nvrVQYJ#gH|v0lAS|6K)=X z6g8qJs07x?DVDo>eHUU14gB%<&ld?acO7a@8;$}WZ&J4`4}`kr1fV_2t=82imCgLA zz<%*ZMF?eW7h6!`p#a{7LuC#;00_(A0(V#z3S!vT42#bjMmZRuC`NDuFM#3`;%M}t zrXt8%2TD-1YkTC+%Jd)l4WijT)La%CDC8lKaztyeQ>kf7FlGU?9l=pRRip#}ykf`! z*1)SWFoWQJBl?R7HNH3w1HqaX$C;+73 z#-YCPMR02-0LJ>Etc)ML{bn+*fwz$AEf>lVOG6<5yM_mdBCJIu6jw9tg&G9}8)pq& z{BVh3wKbc4-4#J6uPKc-yX`I;P>&#{2KmnlO5PR)*TYO(Vr~_~c_3TOX10$5x6x#8 z)un2Pq8!YQRnj6-6q97{2Um> zDCi~0B&kSFN7u$hX~K#$63nlwzf+w4*Q^$h{1$)@sMlbZkACwwVv(~50`23)I@CMS zr3*X22r6SaeRe-fll@TF8beWy>=>b)NoiAjE9BhH3LMxiP_{E@Otl0#F|q`;@1L>p z`PFfGNctBM7Xir5zqQQ!BgTW%2+P5-w$5G{jTdkYH#tk41`Y@!&dV?gvx4hLzCi9a z1mMP*>9W_tx-LVG$>VqE9ez;FRsLyl~J#Mbed`XX9ssK5!H zO9VJ$sQR3thUrUo$nZmzDG<}m+Z)S;Jt2QWtflRbZQb)8+FkNs%FPW*y-@iKz;ZCg zWg4<7qe}LJ_|3ciAh=P%E`C#`*h(L{j;$E@)46J$$MIXeeW>;2nsTPuaLY!K@JyZc%dOh~WAI;5<29PD?cv%?#qf z%$jnSPjs2ggI{aV7#4`25S$@1J0|KSwMa1akRCuDm;;ERpEdXOg<)!e!tqq6OgCU8 zACS8219rYF#AZ2E2FxL|Tg6lOp@*v%mtHj9fkmV2$z$k~=yp0xRS5MhM06`{4E`h

E?v4rMv|Yoq18R`6Xw?z`{j_W4aFw&f?Z@@Z!AwFfr5Y+ z0@&N~EPg(|3>KRKzzh%Ib34Yg8+l={TfqC6q(9hU&iG>;*vh>n+^y%+^7We)N&y6N z4kwU{?T~KI*!4W*0cD&A-ee-kMQQ=;IHD&&mXVM(n74+`v@zg_eQy-^m}x~9RDLF# zEdKXTBG# z7Dm`HOkPBOi;Hu&>qCy`sw7iUCbS-bd8;-H>;POYvq#Y&8S~Bi?J`!|+S-tyC7WxH zsNQZQ`2_taQGPSn(a3X`x^4S^>ij}rhO_|91eJq*z& zu*^EOropQ;+?^n7NAt{=Er$tc0iWqUK&S=^{702K)H zHdkoxf}~~g@s5w@IgSo3ghyG^)}3o*HLDqQ}k?S(2;ND)y`W&na^6lrT|^3&}A9y!`}pG6Xu3)#ku8bz$oO5}nP zzlP&vLYg@jaBF13exdVgfHt4EX_+Ngk>`xMSQ3F5Qft)iqttk-Zc%&*Z3>hCqY2v+ zz(EmDRqmg2Cno=bEE3eW2PzdNTi z(6IJvE-~pJsI|1F<}guk#7_l+Gh&nHvj|&V5c$VNk4MxP-LnDSPO}@yL^&_jp)RzI zaV~7A-E5yebO~-$v$*Ee)fhtqz)v{06NH0hG}|PO|u=u zzCRMIB3_5t1CKI^;GPK z#b(j4sjQTvO*NaQQ~W~;ZayxVzu33gSM7S__d5j&eTgiL-3YqWFOTK8r z+{T&-Ou3GCpKRz>IQ3uVWvM@V@?`DXDGuc z(4!_)XGVSQ$VGz+Of=BuMEm)njjqCqKuect^|VZR<>xX0Gd}t-IVK z2izzDoj2+dUiPtc*3I*^g)E4QG8<5ODCljPfTY|AX}wHo3jql-GEj#x)c(Q|hN038 z>P#5%6GFWN$!?M>U{D%HJQicdZZCCi7QxB30YS1Yn1@`6T6vMa9);c{DcEh~prE#= zvAd>F7=adTYtvA6V>y3YtkOIR%2hmp`=F~pxF=r?J(Xf4vGuC3T~1+gy&41+VZ!;B=Lpg z7zOLi{yyRh;k@%)D;on|1spb7gB|8%JHzjMjF(^d{KFD@PW_|cIpY;6Z8J*TEjnAu zOK!UB;XSp|m@lZ??ioxa9aknx?^QVO2GO3b-BXd0e%c>1wRf9?(l4VV29xp@%R#B0 zL6u%O{wb4#axk-`#ZJVuzl)v1H{ZZrB(jFWg|lm@C$6rBLWr}gVyao*y03e?H@Us% zS$9nzwfcj;o=;7Q6wU?jYqW4=OlD?Hu5~s0Mu9MxUwvd@jVFy(vYl8cv3@kj^SE=N zgHSsZxu3_XYl7JAL+jo6QjT~h-@(Z8nL$i{MEp>jRvwAO8OxRg3))b z1`2bAXHbXjqa@0TxK^ye%pECJq`_P?Xu&gU!#ixl`!KI}0dn~7M$VMM; zz4x+OXT2P^B{0*Qw;xIFs+Nc`o84`Pnf}5fh<49`p?1=RS&f>FjSZ}&Yj5u*Jc43d z@xaL9xf6#z!s8iox)X;wecT9ZZnVhoUaVLvx1815K6GrjsMn05TIX1?26?E2*jf9I zNgG}tot&4#vF-|2J>d!5^=`a^M>9@u4d(8pqK?kaOMXIOi619zJ`F!=;E{TzZ&64M zck&m+%)z8#iFLL?;k#=iR?S&8)(u>^nZj+W>*0;8;f+gu0SE5=buNqNw2xSb1pR4> zWD+)|t0zyFar5zA%c6U^oM2U479*o^OvWg$S1&uZPS1bhpwdG-fUnHD);!93nGa zbxTlvarEZ0sZs{7s7k}M){!7SZrN=ulMkwobn?tso@T+{G#WGe*`1E~Xx-0i*5T2j zZB;X&FzQLCqlvMN8Md0sYPEkHukW*3{$AfFbGES5jD!8qB{O@~`1#xfM$;2#iwEkd z_WhU&ZnP(hdin30QJN0X`D4Fs<|=XLOQ{af3!8L^-MX+KK^7rPt(ErC#Kc1ibN>Ak zW=w2yi4aCsKFv#xG}dc8h3sT!i~#1CUfMYU7v1o{0~_sJiDq4wZ3K*x774=Lni(#c zC9NmcJWlHmGFRiS5HR%D$=>1c0Z)XcZG zcAxG)TM1_LYd`qi`gclfkwx=_(e%sO5pL&o*2JWw$D?14t*or1e_b8|FKB&~LFg59 zksQi$Xf#zC<1xlNujWNpYuXQb!Zi|=26^YHd@fM==r}u{$x)H;t*xm!>Q{TryL#%G z+!^xyo12^8*0zq3zc_Z7fCeKb*H; zYomN*@rfGw_o6KAxwWlAvpd9<1Eza6kFvWQz`APD4kRAwYt^P}f3bJ6DwcX*{-g&Z z{-bD$!l6!+lQ1(&{EB~3zJ4@;Ib_Lp>M-l6!#{rfxOwLe+Wl~EFkpj6UOv9o*48~~ zomXiKRTv*}pMlr7*Xaqv%gVG^BFf_u?h+d?abGt|{q`x!V% z?KI3FHs9t{m(3}4_fwm<&v0-#%^A#>_d2PVH}3sA+*Ymi@?RKPBT5;!a_!C^_K)JT zZ^Ufa){5ci8igyV_PyLwe|&GR8SQOT^WynsvwVHhVmFNc3hrT=0G6uxtgM6YX{P3Ug6K9Mm$bw${M;y$~CJoRh}8NNg8 z@r7)XWXnfMoEFD@HafhlO5&<1!-dLcAol zMMA~ZX4VyxC;LP*zB|q`g82t^2(b_Kdrp%dB^u}7dUyW7<){)jiuv$RbC8&H9FV6y zdL`MdR5-rogAY{{r|Dm*M?xYjH-tSFC^ieFZ|A>Dxy3(K)TvuvE?L?!Z+?An?nz32 zy4_t9-bf27ik_=?Sp)Ai^7!r5;#q5FCj;ObS!_7%#DBI3S_z150fH3vGff0Lnr%aU z>7~$SypY->qZ;Um5Gh-Zoc~OXTNguJ-bPQzMe?b9&kDRQET1)J4V73QV{v=6ySuCC zG^du~1${a)Y8R_7Gz)@bfy#$IyO}q2sPX7>ds6Yx~ zn#Ju4$KLq)(S=HUoqYH1T?sA@^wNPBRj1CJ`TXr$%wdKT%R4(eWF8*LITG|9fWPpl zaP^YkppM#^V0?YGP2O8Zzgl7#zF)si-^gN2X=&+jOM83!LLpm*+otLL?~X|^M=rE$ z(?ZL8NLZL~hLT9EOy$Z7yMNt9l%*IcWSN8CNhQgqD6q1zc{mIDO->rWzjsOD>PdJ! z;Vr6=rue>IAN^Rb-|O(Tq2X|9r-^#(tM8j14)Fe!eSt>&N0!iJ)@*Wj>`FJ5A~$oF zDqz#;CM{zkwh8mrw%a=CN`4OGhxlNF`tEwcuJ8CstXsD*->nDgk5%&?-H+?cf1fR~ zvk|@<6)X4`b%>L++-x>^h!c5=kYNXwe8;7G<5>xHdE!`CY98;7gKFAxQo_s~vO4pV z?&WWHj{bsG^l$6;>+WxVA+HgQ`rT}aG+T<&9l1}tYWtcS3ezLad3kx^EQ!6VFVIr@ zNH9^50+(bJ5b){kRV|iEkW*FA4a66avvS>hl)#jb(@Z*x#DD#`WEEab5Go&j(c3h zefE|4?R76I)-;?L`?nK5g7~L2)S?M;A3HiuBqk3=d!1= z9_r}q1?!Xs&T;`$;OFC07jr1S^`*?^=Ri_pu~=<#XoU@K*UGXNpAXeiWDce# zIZhu?=N0Q&rzaPsE+Hw|IC=D=5j!W@!&evky7y*%yi+6Uvb9)HxuLzZaAMU z){xrO^v2Qmnkjjm8((%9U3S<|XNZ)l$6fC=E68{&65i<5)FfqN2kpXaa2hDfdspwx z>wTk^LE>Hg4E}b?N36qyBc#y)=tDz8L*)b3nD}^N`hXN>qdU0PS5#t&^9vtjC$7}r z!tuPQkUz>XAVymdFPP|Mi&2vv#O@Y%KA`2$yF=KLAX7K%7(UP{)-eX_K~nizHP+=kTuNi#S%T{bmIW&Kw#Kv9oQFvpZl%Ao$H zd%i)W@Ue{NW8|V8&1pFCjHddP;g_Vnew$RvSM_8GgnY$swt3c!I|MhplN6blLZNbW z;h;;(#GA4#iC?&j{+-@KeBjluC{{Zvx)}FG>y79h>?!XWS)KGFOYQr2C#y`{mA#ko zKE!>OgpDEFFj9~nCh<6YH?My-Br-D4M^x0K*#vWybfmPTM20zdOz?J9i(JaZHNzXB zdUUL^MwaYU@0uqb0zJKfk=@%;bSq@nWr{j*uaC!?l7EG)f5peWtc4E)D`GFp;EwJI z=`Vu+Lol-O31VbNl$JUEK6WgF;<4|=ri9PMx9I~Q*9ZDs>ukCC*tM0B{ZWMrM&yj4 z=+OsxF@kt*W-3W<-HaZw8Id!=o#vkxHQ9YTq8ZFYt94{a{(61>?^h3;ot>Mku74hR ztdQ2pvjyVpS?!4G0$^C)a20>h->?q=RKd=thAzn~&QtQypBRKT>UbuiZr9I3xf>mypNuVa0zqD-t~q^cW@3fZJApJuCemQof&VQG}(tQu`i`_=q+FDViSeKQLB zay>POHOM!8)A}X{Ok$U(jj6r9waGDYevxrIThOzUJn_b)(W}DX)(*3*>A9dh-&+Ed za?PC-#|?VSv~RjZK6NC&JZGFdoi_1!YUj1s`TT#!a{l9gAu{J*tq0^zc%}`r0f7Pv zcsaN}_d4$L=fAE7zK)Ql56FGwY-dLiDnSx>Zy!JfMvV*}fo^#U?}6u#(#WdrhaG$B zs$<4_3Y3-pW!%gRBZR%#Q7sTxx9lOaCCI(=?1Q(12(lWKOHrU4FC6GIR%ioARX5D( zzy9sT%a=yXE+I>DH5anudU-d$ecyP=%F~)`kuqYi^_}O_QnFH7NJPZ#3-8`m!N~r8 z_5ARhF?$!+QLgaDA9HhJ($dWlIlMOZ_Vq-!B-^LuUkR08cwJnIOk_E79&xR!q zL+MIQZh=CU4NeB>EkD#z^bzW@3($Ie5M1XSH7p}hB^XN!;NYH)kB?u6s}ud83I1`0 z_TNl5GnA^J`{NZN4wa}u54uYQY@cqE=A7B{d^RL1DwFi`iQ(ru+)k_Mhk3JA7<(#Q z_#i5;b8}zzI9Q$C>E}6pi#a%r^rG1bt>h?%>XF5g${XJTP5n&H#WqhscxI6@AO35v z?ec{;&y1K}KKcY%--cI{Qi>a=3v&+D)+XHyqcHla1A`V^z^rHN_-5=%of|9)tH!MU zqxrrVOSXTrD;>5f1}!#jb0Cju<(6mTr^hQ#xu@ohT`Hw+gla4}nk3!2FrzI~<@|Yv zDn>BdusC^`JLB1*@QkG0C}rZ@4ku!hWZx2P3>z&+hb);|$BR9ad}J5m@CmJJ3i0}z z^8zuuTbaGQQ)_grg~XgYYs@l)LDGiV9!c87{^a9ac$Ga3WCfkH>PoM7`HqG39}KHt z!-z%ZraUyN9M~%M;gxIOA3Mos*ZyL8Zx%_$!Oe5kVv!}2*a?ThkT6-1gOt4G9kY~q zS)N1T#zv8<3?T=7|kd|@=A;v0jttKAgK%V50IqFt)Hb9BW_8MK0TLj%z z(3@EYqggE6JFn;+8TVr4bnxf)z=Eqt)^=7b6(y+~wr4A$#vQ*p;PVJwcN_Tz)2 zA0Nmt)2Yp?c^)rtWDL9)D|5L+fc~uIhrGPw;75Ql0hUCJ@G+Sm5U-0*#u=@7BSE%W zxu%gE$51PTNF|M}1vyHms%2aVsQZGy5&C9^@g7-sTUOGXG})M(hi!+G`jlxq?zs9P ze4nQy;SSk|2?L`nS);0vN}OX>vZBg`th}S<0#o)^S=Y9t34@0^+^~DCr%9+hd73D{ z_FVq*xI#wE#YKcK_RS{M%fLA7e%$5vvOBw-`{|}U+B$T-T(vj12%AKr7>Zlk_hZ~5 zH%mzHMV*%y-f=Qu3hwT>CAtbF6AC{Q6!C-#N8iL<+)3QNDSPitg4~Y9Q5;93R|p@A5E2Jt!# zI=i?*@5V=AP4*8Zh~Cyu^^)&OiPVo+~e3pV^%63D*z$=_{*(F z??sTl@=}Ofd~d|sX`~(38e8%7qPZEESU?nxA3q)v5^|G~B8@b^^~GQ^*_)@zR3opl zZ$hLHTXe)wA9JRInpmt(c&`=7(L>M^!7fPHXdZ!P=vrvaT2yw!D?jNj9jdMg$bX=# zt6PL{Juu68ABo2v+Rc_13-C2Ae+vi*nC`TNg+)eI2V=MOw;OTWWS@pvQP2BvAmD=l z?vZRC1S_@Sk-}V(uFnGB^v;KKpo1IQA$! zfluCc725lh2znn6GwD6LWKMsfLHn>trCVt|{;BxYV>MaiCU*(W^-hkCPom1dcF3H; zm%O10N+6j_e#*Pa%80iVAsdmKA4z%mfRyaMLX~UKJ+er-sx%6!pyVMZd19B2N=Dn_ z66wV!8MDuCOigpFKxn)C@HmEl=sk5^1k18B-Ts2P zfR{z}5WbW;L|r}Bt8Z$a_Q&*%4tLQQ!3bH}>}0~6vY+hcBQclCIKdf7fv(A_)5bgU z%`ZL^)bRuN1(enAK8aIN-f=xT@o>sfM`&teSjRL^>1vP6VAi@&>YVa6;n>y~f%soG z#@;@Euc!pp` z(EJvlIaV$u2I3qT%H_a&;OoF0p5(qP&|r>N%lI1CZB_gR1Ts+70xIgzMgwquA^uOZ z>gK3CDD2li>XT^vV`k=g|7_4OTiiGG6PVXJDzeE_i%<0Sq*WY|$cK5mL9WAmJ+4u5UA3Fat-d=+u^xlbgW zIKKSd^xH(SkG_9Ch??rx=j^fGb8{Bkb zjG$`LF0{cq_VPydT;B6M1H6O?AvZ0Ozf-G#{EXVFU~zs>=sF68vpsO3!(I*ewu7Eh zdluBl=5fhL_Zo%w%i9+qDck{wXy4SQqocEZ3b}OO;NT$OH~1t6JcVuBr*dU3f5uYw zt=u*w2Fe9)B|L(a&0Mc{1AydiQoC(EWaYL=_O{9VnSq#N;f>%{?n`QincWBO2{@Pg zb2Qr7fo>axk@(fha~VwB561~t{f%F{Ly0y)sU`ruV6y4;4%3GhobQnJ7*kkX{^ZnA zNrTtQq*CI*StswgIaU6U<2h^%rj%OZ2Xkv#o8_5DT08B1Ke%Fv@wNMRu8V57$Dd_z z-yC`KpZGswsFC3=itpLe;a2GF8}@vIw?gA?Wt`)T@yYCDHwiL>j{PicQ$`)H%+mBp zHQlanXiyfhn|4=INTXOvt;U$hW~v=Xr5NP#LE1uIPbb@z|J&&hw;G#Rk%pn=@(H%^GSQ3jub-_8i(uX-J-yU(p{Q+lq ztZ~>jV@Iv1k&oI-q;d1ZJ{MbXhJ%eNOdp^c#Cr2_MM4xq;f1Ea2q^}zOX2nWcTSMi z-zIiRYQNH4uE899*ocCx?XyE-?Z`Wy+MY`9pnl+4-xs-SYHP>1DZD%P9en-vmJ6K( zm;}+y;DWf{Ja?{&SoBNGlZN@Vs)^-AOZx!TIwIkRHZ~_vbN)hxr3-0QRTZj{EJUr9 z?MK3r`iQ^H_WEPg*YFwfbvg>~VYn)?8ZOgv9e^HuTe1?aFjUT6Ur7@3L6HsDC2$EY zhc-WevbyO`Zb3RUj2uPZ=JC@UEE{85|3q1lJ@fHx_<8s2K-k+6eD>sU-CzxL>W-pK z2y&MwOG5}cHCa~Y2EARjR)?RFGQVBs_v?u;!BD{&($mu)eRW$e+xFt$?yy_v(3Lby{#33+dXk%p#xVX63KBc*>u9~BA`$lLw^=FR1cb3HbB&DRf z_H7>kJ_(yea{uGO_*UJ+e^ z5O=FJvgi#an3YB}=bfQ&bXIBLtS=Yvlf6$j7o3Xmh^vr^*m~)B3v*T`ovwiLe9ZTG zxf$udB2xQbJIT)ur76C8Yjo_>mATH>SklKwlsgWmo{#u$DT>YD=K336QuKY7d4B8{ z?*Q^q{_I!$=BK1Qbc|~;=lQhTv6q*lQkrQ%-ib)rY0P3JEGSM@x-0E;N8y=fjKYO7 z`1X%;V5Q1jj!|K}5Gh3$To0`8TyQ;;QMuB-cX7(r$L@|mAX*hafQYo=9h(5ZUvDw4 zee!v=&eQs_R3{DRrl}FMi%dmv3rg&I(Uv8HwiEG|tk76%P7oHnsygEn8 zp~Cw2t1k;dIXTyhfnIi+rx{a0?%j5E(|i&`#rOm72nC1rEgf%lA4tMVX~U?Atpcp$ zZ|EAx*VPv?;X<{tS#!%O^`Rw-m9@33b<-I97+mVH4&RCN9GVbl;ZnK7P{CMevadMq zwrc3+1#LeW_Z;?%4=(9SB9Sh<%XC8 z{QWUID|+szd#jN~mHnOk>+Gc0%s5_}a=p9zVOVg2l+}!L-MK=)^vKw zilv#E^fE8HXAbV0tXD7=H#^QIH^+8SCv%X-)x`8#GX@pe9lA-fMwHdHkNps%hL8U3 z+v<@OY^s<0`@9HomaE*(#*O&YG3>?q8 zEFnoB@WmkS%a|2ysGf_RcXVy-IkpcvKvpQuiGqq-m0TiQId3j$OvA@21 z@fk>{B+;G+j1(gLXR}BJ=BK8F&mFzVeZ~tne~0^w*tw%`>w#4|IynumZRuA%irYvx zAd0;jQ1{JHXzR4=W_$E^!tOlbZT;9nSa%so;gI7sxQvM&QQO?7^yX(F_oAU;@PD!OCg4==-5c;GnWv4+gd~+YL?Oc_rzDLenG!;# zC@IQ3l_5>044tA7GK5sdR8s9^h=i0BLQz!eyMJ`v|My+jcdmVTy(RnE&$E7O-RoZW zS_?9mLCE@7|ESrkeX2MGa15H`epU2owD)r2!Arr%%ft5gAJ=$kxpcToq0DDxvyv{oq%ezF z_{MiyyQq5k75lkwZl*=mcSYq2Jo{FaZSyE%Uh`@F$~VJ}eW6+#`A+gU+J+y9y`PEN zJc>@RgFm)3@7$Ta0wK9<=2nSvfpi&jBmdjm$oD^e{n$0+WphoFW;^& zm-i}pS+7;@x<#>T_wgmWk8=nb`?>j~cej;vhZS32%Khf6!2a>&+bZXxm?0$YI23A9 z7F^sYdHPz1Ghb`_SnUrihAf-&{z2UK+5vCWcI)tU>`05_x`gIs4U6_ES@s6H6=w}^ z>vAq_U$TQli$XbSPWmG!7@mcKU{b4d(jzDG&9e_lo31*AMeJO)OQ=FYR6jaPzeHK1 zxPa;tJoXN05XRV4eI}GKrs4(;)1ya^s!yFW88neziRUkw z;9{;7Tdg3#{^-GeTFZe#M%G;@Ul7gay!8{Ke(>M{LdyjDa|GAE_Fm*!IlwHg6X3mr zrR~se;3rbKkv#T}sslA@0OmbfhO)ZTHy6-0ErkrHjY+X*}`KrDq;4 zTeEw;kj=2>n8gOmZCk4n4-`sTx*z{P9>aC;KY_)eV`+sCt1>=D6x^}-Xkd?&0V=q5(ASoUt-AMf^#PDY(@nnc z`#J4$p(qYBd#p7pUP8@MWS=Vh&v`HYDPz?$IH@4NGcj5ai5zo@6(@+?Xp<|4AIQ9P z^7Y;BxnD(?mz9Z^J>q#!&uXK^?Z9hw!gxQL6?YO z@YoUzFbu~OK*GT3gL1aMzjOPOr%&Ia+7a;MW9}p|143L7un9LxG(aGgb%_z$9PRa= zm_6Y>=i7M(&jr;Ep}x7#MgZ4>&}T?OK|ek!Y9N@8rY;v@I+tdExt8lpMiXFf%hd$qyjI`!sY+ zVVQMM4u6?*9g2v2==TEk-uUjFEME*^-bd57z6V`59XK!@I1sFg=qCz|3`&|utS+0$ z9a!-$XVJlJBT^MB&u_v-_-CZwehU<;nKt4khQJS&7v&thUU}Rc87+RLiQEZ9?|c#! zkzvmNKW|*f_m`Zb-`E~^fo6~-znf~T;uex5Z^37*aWgTh{?Hn#-qQ^O`+FVC+BV;+1<0iTtu?F`G+Si5X zp9&EriJ99==D;6^m(EpfUq7;C>(-V&!PdMpBcd5g%hwb>{XRAIkeNy=yM;mJkx@~q za1Q{&oIE`HJv_{~!MT-K6)2^*j!er4bLJo+3DMV&|M}wwFDEm-vlBU4ZDe_wbU`!4 zupI>(3^ZIkZ}m`8&KojVU&<+re0htgUWow;K0v7ZF*XL^(*0NL?Z{16LrKPk%3A=2 zx*X`o2@ZYb@c>rm1959VCI~%1TjeQxmC6p~V@ASaVhu#MK_)*0px+3(J0HxL8LS?; z*&z02f>|6R!!&JsA3K%^V+I2oncx}#>nD}(fV;NjSOg#oJPncmfh`+WF!SC_$0>qP zcreA~avi#Dml?6QyjMd_xY4#dY00l?sge#Pq(}0@~)Ox8bK zj(h`VGQa+L`A>?O+$)2ttO0xukus-E!?mtUZ_9DsRFKbX08jhirTnGaucq9J?pzwo zanoMUVE5U-Y4Wy+Pq36B#~M<*@ZIO?0GVQy%>@bji!BF`{m-V{=!sU@RI-)29U|oq zP~RbfuCJ?j<$+q|t+0*YQ;@J5aT#w+)J)?#awq8Nev()%{5Q4guN@zvx;b2zkEJe_ z$eG!xD8J8aB6D~P|E0Y(t70t#H%-Z}Vz+3|*-rhoB6er{WfNnD{O&8RcUl^Q#T1uW zM+5EntMfQ6U%a|b(8!ry4H}M1NT8+3pPN!_T{t{GzL9o#CFUV4%mwiBQbzv9%N_N8!Q;n) zlR9P5y|d#u#bH?t&5-$xE>Nyk;1sIL!lx`n8zr>7DJUs7U{FXn@_z?ti4kPO>g=rs zE$>Z&a3Sd)8uHbKN1$aVi5rwUP?Uv$G$0U|P#E5rf`=)k%YR+AVTPX#0H98QDxC>5 zAp4B@W?#?*0K< z21kaBDIs$~jRe2Z3p>JZG?McGk0>07wktrLvu*KO{Z z#=CLuC%yeHPlm6Vf^ie96x;yV+>WL>~M{b{ZG7oM`1TX$4>4?@; z|9c(^WwyD>#LCj-v#ix+*taxV30#lPp^`t_(P+gq7sDvDEuciS?xalKRz)3ZgiKD? zcExq{?>36DTVERT)Awu8t@%RMo{7AEeWiAsi;CviZPaqke=e!&(eT@Vs^Q$V#A#E|$Q^iR%8R>>e41|az&JoV}i%o-L33;-l za#wXYR~(N#66&GLmoIAsv$zvVK`_n%_5pv`fFTH|`h}AO?@7uU;;fMtYEFozhy0*AP+%!~GLtwpZm_?<7=67u}l}YQ!s4#dLq~qwsXP-YE7-`_s zzRR+(=j(C!{kwQ4a(x(v)P%k%pQ+((n3=K${s;ViBRR7z%J*%!kzne(xO}j_@6jy_ zwFu`*fo4mMGK+AzMf&mrXFsfPQyGAnqe3$t#&<{`3TvPoQ&~Q|fOS09nVFf{ySZ&* zPRau^Ks9#j)~&rjJW#L>e4WKN?|%jAD&zSblxh6u_3iB=BQ%MOykz&6$8J`7%DRnB zmHWAQC+9um_YZKB-+AX{H%XpGh8ul-?95)iib>VkwswWvC{6crUN8T&e~#_emoH;} ztcO9Ao7=oRyQoF%tbF`k$K%tL3h~XKzUKY3Wt|RK6(8c}^5w0Te0-W)Z?)EuR5Lj! ztswpbrGT#@9$;lvf%o_~L!5UbUwnZs+Oc*FIgyr_Ud za89D3fN8X&k*c8Xw%8o@ZRrpDH*|lZ73CH(YnWL`(7ei5-Rb4V$Bz2^`Ezxxeo#PG z@GBD!al$u`Wd68A)6JwSySv=m<(f6aMH0VfQBz;fT+m4U;Kh?un7=z85~P02Ezvsp zdmh~A=$r;_Z8P| zCZcDvs-S##>MWYp85zlkSf$}}?;R0Mld_m| zE$=aOrInF$1=#JlrlFS?AmkI-B+Sb6uI$-|v^C@3e`X)-7QMSyCZ~1dOG>PHWQgUW zOSGVDJ^5_~t3NGn@-0y=xmS66#V4w9&|5>swB5_zS^N>lvxZoHS*$+IhjV8_(c8)! z%u-6~Qx;{5Ei!k!ydOO{<`~`m6XY0qw^Ja|5$H)?td@fOl>;(I>q5ElR#-PI8l|^~ z`cBj%T?%M?Re5M(NZl@9&xS%rOOqNZMhVSpTtpIj{$d*%?IrhuH>X!;GdmAAyQw@l zF*w_?WHH;=_C=bz9bXS?3pX0<+`9DN(!}g-N%4A8xxLvi3&FSpTzU*RiQNUMi&-=| zSUt*4I6CGWF#2~kl+we+Gxc*0`r`bVkGyn~U5JTH9GBN0H8)R)kAF;Ap8O~rP|~BP zVhgtn4U=OJ5hC{UXWPM}v@)MV-zfFFp(!IsT~E(;Ez)?%<{jaAV`z++Gx4+natKuQ zkmQQM?9$LpF7`j zpaw8RE9gfV=QKaVNmz`3#&w9?P|tW|5{2t|y4^;}a$l|q<z$_dmwUp|yR_8S}wndx@ct-vZ`E89{5@{$MnZ!>m+#gq%Y4fCV7t4Xb zmOUG;zlrlu7nF{Ht+ZsLc-&|4w)-|K8?&G!+-|1KFAJt+vHJ^HO?Ni%3w6gc1iTl$ zM|TCa4lNKQV9A4FVX$z!jp z_?=6S4J_6CU-Ec}l~anSEpo2WyiOuPg^up}&P{Jvh3+nj6&rnfEim7|>31X7Prz!o za_i2-Lwb@48^2v!9r$U*4g;|B-`dv4HR~qI3NZ%!z%A)DX0z@~W5%{R0sNC%<&9-iZ#*z|HPEXm?=epPC z+3uJTI>o6r8*<8)_h&n6GR#+ij|V+P@9jMUtfJk%!|?eC2}Ei} zq#zFEi~HQ!gB&TiJpN4qD79-VK3xyhFAP=gmD!O-^?8e9nvp zElM+$ec`8vGHJxVybLFDC+K3oQN8&@+q-2iexlxg263I&6#vb8#HWJkT7S^3#0X7Hw#WSswI9HSL04k#vTnaBC(=H?}_|z3Xx_RXuaul=>{(2^_-=z6cX;r*msRg*SnP)wyA>_t?d20IN^VcpX-4IS*h!y zw4$hzbj=a*LKe7zwj-uz>U>;a~o&7W<7QuGJ z-@lN4M-GSMjQOu`^gn{zqnuls_UCkdHF?RL=4f&9&y(+$o_*NA-$%xJM}(mP^S-=6 zXmj3TObp>kYV1n8nefK2bdy~IH6VKJhM#VL``a?ePtMlZX(C?3#zuD%g4U(!?7c7?9p zHqXp(P6mjhgyHWHfoxDOlP5%<0yKbc@HIp~%d>mFOs-mh#tCcdM~Oxy%H{l?)0a9< zS9*>3RynzJ$xya2Nd)Rh64^0IS@B|mqJe;NWs=eRuWQ-HK79`%3kW+%n331wEBZ9de#wriZ)m|?lkU^{l5ZNPq9)#QE&eFNE!-MT(M;bgdp+S3W zxME8is=h>!<8{~(IZ+t+UGQ!_V>efatEHGdSLcG{2d)$$c69Q*EC2O&x5J@~(*~iR zq&nJ#oMRWFT&chz_XfAe1y#V%Q5~k z8k5nOF)Nn|8!~*-b&m0wT%i)LpwVd)))2)ri1Dq^r0*TMxS5H9nqdGqF^pzo6EO>b z@If54GdSql)e@o8-@XwkP}lvF8x|DB(O91)CCqtqa=lc}^o`y5kE9H#W_g+MG#N;^ z@$%20ik>kMp$T&`zXuRN$q?dr4jd70Eza9LcO%EoMn_k~A}pK9EgSJR9?s4iSYogV z0Rmc5!qPgIs!>#vAK8OJ|LAAk@jW*FUijtE(qNsf%0xg#*VCqLIk}!DC9dJ zZ5?!LK9Y0K@_xo6C+mT&c!#_y=Zw3bqL2xLJg)w6)0rU>A@i2v>2^0z%aAF;xzZq; zgP6_%pbvCLd^|UT1Cc0NDLfv$FRV-}wKoi^&2Anv*tjvOKn$%EUoQ3LNyM|N2{!vu zegD^^Q6{*cF$=f!@{6sP@!7v4!^_3`$!#%Sc~8;U&@7X-xP3!l$msME_Do4?q2;He zJ7oFlW@ZA~KH_kKMyMWZIvTrf!5eG0v^NvKHUw6xhn>qqvoCtS7J=HybM-?{%S0vf zn3-ckvLDhgT`Kt>5gk?J%_z>GCQs-g5JQkdQEa)gc?bAEA>Z{xN1I0Q3R;-}r@%7n zV1#|Uxlfip5G4*E)25sv^?v@$8794{Y@S11CU1V-bLCmYdiz>{PCN!Ma+2OP(!%)* z`Y@7{qirIJjE}0sRJ=)2>_QshKDRw)$l|1!B(jW1fy=NpD1U2LpUG_+*Vo9JfQ;o- zuczJMQGJ@&qj&G#rQ6rzW0M{?!8qhvQfT3XwxE5*Unz^BG!r93c*8(-2~q5xr`g1s*H~ z-=L8iweMH2s=CbE)RCpsIhPi`$c4Aso0PYLzkJ-S_tHAgvVv`_#dOzm(_=uvP+Ou# z71A)E5Bvh1`)kj&h^#hBLI_JRIk+)E+7}=F+9q)~wqHM&E@aU7)=DYwC9T@?27?Mozz6&xn9M&uFEii zTqoN?pJ>}~{1#+a^C-#W&CAVKw=0Tmj}beHstvfvBX{-*wgV(<0^tLv%#@#X*KL?A{3_WtZ!1HC8KRSOapP4W`9OK0O0?a(Wfk7sxeAo4z zgfu5$o;VX?mPEhmBZnnXxGPzx1N^^y+*%1%rjD5mUiv1-EMfYWV;EpKfr0(pn8?Zs zu{>`1n~BJ^{h#lQKOmhtKi(^f+*j^ypcpcqvQdg604ZU^Z>@R89@E6(z@Yn^2lO)& z4mKD!PxLFC%ngW_IgvNoR}uV1iUwd$128`Lor;=TC|djgB#<<5{SBMNN5^eRJ3YjU zb%0Vc-?z}>G(l|ODBx96Qc~?*55WWu+w3J#8PawB{U=dGXgSCW+~80G`bT!VKi3Gc z@cNRtreo`O*_pD8I;NY-!oReAsp|O{un!}BKB#uAn z1=q6b1rN4*Q~2)#rF;HuI|!R}D%}IK#8=S$BC_%wus`@_3>Q|DMTbd_l|sb{CHm&v zR_ElVl{pv9@AN8pd22&z;-UF!e+nz_6q>;6nO?bTQVZ2JDpABhTUX7;srl}nO}*bF z6IkX8>nsD_R^}rgP#qEu-h}Hp9L?BbvcFt-$A;d#PFFPZqpM^x;L`&~R}JOh1}b%% zE>$hy$J9X)b@^+MM6VVLnVy;g%UJAC+YfH0$cK8!fjGKU%r6rCGyZ38!!Ha4-k5Cx zMG|2ECrT26ILCv=kE7SE^T%=}v4yDl(o`?AnLuw0)}Qa!C9P%9IwA=jz&5SQ$p>OS zD1XWbuoq5mUhcNJ%H{#+lK7SfYaHLpdN0brhU@o zM%a&^JMPS7w zML#7YsI#aB1_17hF@yJ5X#&zsfMh60az`04%LVFOuAVSTepDut`QQ8k`tJI9K~$>I zYm3KDYHC)7;ftKrL|{VNnW(9tk3y~FrWMMmqIyxo^vBS1yyXFDg7?6K^{x8EZcJ0L zzmh}EZ+~o?ALH7alAeApf(1SbJOE1P{);E+u72i~H`+eZd0Y6iO9%EqQ0EHLx6s5R<-}(49-c@?=eilYXEHEPn3Rdmjr=chYcq789=rU674t47oz za~+AaQrK zz+kJ)6H~5}FO=OY;-UBv=FFcVLW{uN3WBQh9w-E1S(cBysyuvs`6dHuJojARd7~$4 zK3(F$i~_J69?C?*z{z|-j8XLvN-@K|6>_1h?InRvE{_ZMxxK>p&Gcu5NyJk3S6;Gx ztfo5Vt<^QK;x7?#C~%&J=%&FbgHPIiT>$9;38P!l1gVaBARVo6Wg?p3Y6TV&D9o6dn?F8;j2X`! zWd*!IjUXnW$OeZ<{%>Gl$3zD1{~=wVKQJyRIsl;ID=-H7uenj~?0B3%{l!r)t(6F8 zlOJVS7iyl644SL478>`hdRGH+Li6DDG)wnUB>X3T;skB0vbpJ?l5K@~aKt>%m>`b< z)$*xg98HnXe?mE^B7AO)8}ARb4=OSEhB2hJnrpR9!Bu9Fif*|K^G^Tm&&^6}-$t0n z9lO{P5g#AFYi8=ds@M?Z0Z7RGot&MoDXCa6vE68yN*GzhEatN=gGkkw)@3}cW@J&# z8;Q=E@uX1Y;@|GWWECXYS z|8iQx=L{SPQ}6$n=*7ywpPn$;n0W@Zm$&r+Y1YHBV2PXgu{>z3yxKa%~q zeN^o~EdZtVy{`i{V)$BwG530Y7rnnorhAjHyvfuJ%&%i5W8Wt+4BZh|ibf-l5ZLj- zF@f=OOUQ_jfysc59|vxVEI^eqK7iR34Xk7~GJ*7q7A>lr9ZH-0(Rp8z?DHBu@^jua z&YQ}5V;cxb{jtfO(fqPb42H=`Cz(>ftnhpr@3UJ=gaY$r0!wq+PGyK8)}33>@pNuU zNJ!WZ$=Xe?5-X=Jqmw5$EL6RsP|BM6_6?$*%nTbyFb^@J$g|){{v&ivp1L6ZZ(oU* zc9EXkHL;KL?N8uZBB7}31}F30w|$Fys$3^E;TTvXaBt+;(pH12g~%M77BWI|C;q3O z!xJ@97d_wE8$RF8aSGR<4G%{27Pv5IEXZg8lX17f{GF=+Q3*;Fj3YuThe(ji%)*}< zIKR%5PJlotUBou!yuLX6tBe{}r?R3Jdg}(~(pEMVzxh^s=ustNF$@M1HcEA67J?RC zuy)=T$xRuAy76pljRcA6ZC4n|_<@6OYW4(Ynv{&2!E33dA|ilxDlk0d56@tIDCafo zYjrMFc;mT5<)I2IF=J(8` z>r2-+_@=U%R#t*LnLhhxwD(xR&gr`wCXRj!THfQ7=5#jEiSeuxpHy5ySSTOJ#=Mz; z<1OWPgRFacZcKMt-wjkAF1Ib(U07bOcr`&^ppkZ6Sh`l$pk7~)@78$AqsLCS%rB(; z`dxfD^&iH?T;hChiayNhxum45$>euTU-RK-(8-Zc7ItzaQ2++b9J(}JknVgeMvAXCIbG&Hiw*xI-gkWvalNtPYk#b%lJ4Rwze7{IiktV!QpV|&>0NkmR`1O5h^a2 z^Es*(<0%Yg-X<*VqL8vJ?fCKar%u{LtrlQMKGN9KH*DTYQyQ~`nTtSqTG%GPH3`O_B$mGGFNGCqm(K83z%@8p(vg2!GT5Tu4QdDFl zd)+L?3kb(iMMYy16M5tBR6c@uB|LF(V88*sVGG9^aZ%BFn8#G$+>!=P`px3O`(u&4-cT!0v zRK@%Vf`nqPFZ+|fZ<(|E7YLJA)PXy3Vsf&i>)W?)g3fH|I{T%l)SxwZexhfXr>Cdu zw|ssyg88F3Kth+t-@jiT&Wc9>COhuX^_`EoyMUy>UaDHu{*E%6(ot?*XuMI|KJbIv zVXevY6^j@d?GGJNe361{@p$2?E;tZ6G#weq41WnVn`B*GU0WzKN)7l-tB%alXqLOI ztfCRRwv4JpdkTZ>%`lGwj|Y)0QmZ<9m0DMI_Gdoc-luYNR~Q-^@`{Q+cCT7(PZ=ox ziN4yu)~>4+6zHA>k%q1u-$Fz=yoH%DDK zJbiI#snO1z=Xg!gYG2~v0^b#YuDNb zuWM>*XgVa|RPQ1#4r128yOM!-gRNZ$$cXq#FR&QhlTR3olGASA{;n~$|Ia>|oV|U| zpYvh_?(^>MSPVpun;sf+E-Nb|<(+_g2%o$rsDH;67psIvMJ-cM;B;_sNays3hyL}l zpp(vyiOF)k51Ys#dG}7e@c!qQL4QWIIgL?@ApfNT56H^oXgAIGP2K6F6dd*QV@*iF@hvL7bt|-}Nclui(7=ZeEI1~1 zc6KvAe=d`fq67yA*H&A^uGruillBDG1 zn4wRLj)|dmi0q`%{Jui%=okb8daISp zViJG)G}7x~v3B(x_F;&)O-GYFJw0)lGbUA!9zE({aTSIGC)AHR?dzjz8}w%Vf%EbB z!_J)HdfnU0KzaJ~>FstYcGw+iGy~mRuh6q@-QvTPV%(pNa3oWKy5yvGTJ7E2(9w8&N;gmm7*);9jdi|v>#n)C0!OqePPW|4ss9v*Iw;mM|^ruvSK zGJJe|0BXiJQ=^B|#Fj3N+MREV`NX_Gp1*kESfYE3QHh6#2me9}wj(VqZ77UBA7fWn zd4&B4_dR%wIVomb0@WSJ2G{Hl7Svhwoww?E2C zN~o=^t@XM(8#iu@)33kI5OMF`J(*0d)(SLrL5G)h`?e62{ldb+wY9aUc%wbufSus| z%$AmBTeQ*6F0&Ytmy=E3ef<2w^Yd5Z?hXtLFp#IvTQi35ux|C>Pq_`53lM(z$UK7Q zYX{|n8dU@(1`Io_j7^$vs2K(f)6*M^+mB0``SF9@AY`b&_IgO@j?S3q;i2cQ>aMP? zmrBYjD!{lg&IDR`T3GPHKj2nT`S?Qn`|Yy_4|{v7xHzwXCA;{o%iz`5Id&aP`SgVg z7Y=rY*xK3}ZXA4+5ubZADm=UvHvVrZ&bF$CrY5^|7^cd~D=Tj_HeL)-gu{UY5r|I+ zBhpGr+@SdkpJyR&=(@^JZC$@G*#Org*m~kmvrhK8sx910G9Qa~e|Z0XF*pV-ZSA_Y zHvZZTj6a_&9AjCJp6>4Y*4DA=k+s5{rL0JIN7{z)Uzr%R#WT5ul?p@>krxJ*@*I?_>S6c8}u-@fSr$UXJ%FoA(#`jr{1 zX_&w|G}Jj*84A+YdPU-L?$Bhm;qS9yq!@B9ucY(K{Hd zHP_LneT{@3!Q@KSTUyqcGiL-lU2&%clTVswaPGv+lgE!YHLf96S#_hR=$Xv92@L#3 zj1siox;3GA6wYhwRvzg672+Mh@2HwIHaBm)bb4yjPwgaaYSIjnSj@qF-qjV2h~jY2 z*2~?U|3Ok^bv3$!rB|(D$JvaIjpa*4tz*_~csIHz+^O3GuG%-i$e|3)PWe9KSACFQ zG!^55$x}gnTyP+KM+5uani^-$wdzHGwe+nA=KZP|(ZC>xu3+}R$42{2XtI)bZ4-bmS4VQDve4IQY3Z*zFQcPl<2oeLadrDjMn*=hyfDa3B~g(l zo_X_Tj_#hGY`Uw$1?xgVyx?>VS=1=rK0XGp-(PccRAJ%hQ>Q2n2PH?HKFdFG*O!q| z1J!R>X@BgPHnc|A2^leAt*opJ___dXFt=x!p5Em!^JvcNYSo&`lP98F@Qq-w|A%30SjgG-#veRNqTzv^VhFA&zOWkS42z$n`tYB)Mq~c z&q$x>_&zU<%wnP_A8zXybvx=RN35`aA3MLT44@Q{D4NAp}k<{>T8YmT{=OO9o;^NxAOt|sr z3VZnQVeNx6Vo4V+JQ!~uuF!;(?(JL0xN%-m4gi>gWsy}A^+#DynnuePfsl7RWOBp| zbKCZ*WXY6U4VU$Dvdn%7(#;n8k3Ay0Z&P5%5iMQVrMp z4z1VH!g+xLY2xcwBYS%(JoJcQ)1lx0)OeZEWKl&>1?sp0PmI%(m!EI6WeXR^)#I?m zp$C9s7sa32z}h+xj!#J2xl;h~*I17u)g5jMRDSsJ{^YQ;D{imWeFO3jkyRvN3^ep< ze~qnqTK;|QlHb364J#}h+wwc+?;OOSGbC^J+XvMW{H+qF_!=I0_d|z__wG&Om4gYn zPp(_KbSVNmN9o&CuWqo8%jD%vSS}$(n`ulE*xVP)?ULde0;0$oa;eW0@`4hy&&28-gKm1hK zd3ZklDZ>TV_x0HcPko$6O`$mJ1NR2rQMObcBVPC<3Qhuof-FJJ@xkeFbr4|)Jj;e25|R4C{j+2zZnwY5d?{J&}n zq(!^lLXM%Xp^;rxC4#B$u5NC8hSI=eS>Rblm=T`CBO=%ob#%m$pmcrv@`Z2K14it6 zPfS?&l4?OQ9t%7bpp~n;yAdklh}DXpgD`!WBUvt``8JTVw7mSow|CqlQKjg$8Jb)@ zq-Qu(vKs3b4YjhPqF7{>Ez6x2LR+1T<<_q$$M{TA)go^|~?TVY|LD{LR{qb|y2ZEYP+`SI=Bk%8HYii(Nv-#0FxDyq2n>BPju zgPl=B#oV}9cMz%GlW&a$goLgjJ`&`xdbJTQfr6Fyi>=CBsi-*!D%)~a*~DW(lmq@y z26Rdv!esHKDN|&M$&&tn)gfV+x*%9oiXeac_F5fX-3a?NU#lU0D*ik)#7u15?5Vh| z3wP?*si| zfvan$EQ}66l&}}^bmeYbbH5MHfx;SclmcCA7V3$eTZ7M3g>9gK6x$QN#XR`gBkA~| zr@z{;Tq=VEnMj}l0*F_hl9+`&At8oBhu2ubaZt3k=Ust zTXpz2Hpb=U%hGZJwJpdG9`c#M|zT_$IAmb8ZPfoWcvaIs-u$)niDi)HOA& zpO~#b7HR$U)M~gJCMG5+EiGY02UadFV+)JKVo&Z%_LrEb^w*?CY-nicU}+r|dKu-n zGtR7YQjwK)vd*=GWkD_UwErL2@S-( zq=ip8TXiZr`rdiKUL+{}AXns9t~B`PA2uv4P|?%lhPh!$iEx~dvWbn2_}jN{i(Tn5 zxVUKK$UzvLN{$MG6Te&y2~qp@NsvVxp^L{xM|pX9rNZ~JFfr9OH?tsnsIOJ}N|Her zpUeaJcS1@w`ktOjzK0L{ph$~zr!SMF4@E<^g_N$Y1onG)Lq2}z^&V7Tp`l;lv6Xu= zO*~plTfo~*>aA1qB5KixlIz*g3uyS>&BGa>aT!P$j%pT@WpvZcY*3IsD{DR>9ejl_Lc=_D$>o>EYCFvO% zMZ)F*<-84m;S<3N6H@3pq~w}&%o%5mJg34!;{^~AK3!eCZlJ|*@7}#kixqVwE^nNb_Ok3W(N4Bt4Z{w@#D*5DyOp zjBleZSrP$Cs|&FF1T#*J-(93z#$6|jj202%baAiWmoqUj1LZ5};!f(K+bk`k7Lwz)*zJ-B9x*6L7r~lB zfg6ZEeH!n?glNGlF0Nn}C?Ft!#QM(&_r5D$%}#3BSy>b^$pO`RCQv@0C$4Uf!FnLV z3CScy?~|kUGT{(b&mk-hU^&VI400nC8u)6C#wf6Jy>6bK z%oOx5%F4-EPwjcz=a^aqw5J%#R#XmY11tYp^C7r#GtUj$c@vv{YOyVl()7al5l@HD zK^l%UR>`&onGt(jRvoYa|M#wXe{w`4DSnm{)mX_A_9@b6AXa>Lf+O(9^l#3THs?3;x*HKY_cx;X?)i8seSNTB+;6w6phtgZ0ujU~fz$ceq9 zBg02Tp`Km{$`2nuu1B5C5=&HMG&KdWjiw2`XvN+Gh9xb_Qu&d@;mrGB@Fc0G*#%86 zfxg(@#bsX94LY?MOH_+b%=*%djbrvHQR#{;_9}=WPXabfy|}s=6dof*3!jT2V#i(_ ziUu+>argp6L^4bQsVmMNa&x=Y<)R`?p#YUyReDS3RIUWWpjcjt%H-^>;XUN273kVD#wm|Cg{MDcX8pj3gFyg>p3=9q~ z+OS~*K&B&L1}NSTcwR!$jf|}JNJ|4EGj&;zCHftAz={dF;#1^*6%~S5aYhV|SP7QJ zqcaI}x$Eod7*thN4QsQsJ+N{vLj2)In)+4{bZ_yA4Tn7dLb1jsJf#y^9aT&$t|?9k zHnJZ~JNP^U1XHg{BpI#J@cOW45+@EFDr~xS^CmYcQj~j_HMRqUsi_g4Rj)RWJ_P{a z=hKH?Zlr?P>!rAEaQCiV$w@p?x0jgvG5*&8jqeuUYo;}D6=@cpmO=wn)!6*a)V8;OLB`U_EAmAey zflLz7h(E#GPF}qKYcaI25r_gdN*kS>Qan4j0#qj93 zIDWZnb}-wYF}PD_F)oHcxW7}sEOzb;M>Ysvcz;vu62rLDrv>ip%+YoT2(V&ReCbvW z&Z+*J*-v7pYAFiwm_8j{TdR*M3J}+xvXpNukb(MDz)Rx4!#%gzrO>C;h&9AoY199o zA@~cJ_#ZomEq z7+1sybIOUJLQyIe(ok05U*tD+O-;t{Vq;t@P*oscvZ<+wARbU97$(lUbZNr!%@+{W zQZsja$ollj4SR`MfI#)PZ|8$YVFw;OvWMo!u}VRq5jz{=A@+#g$4>1HMR35;Se&lq z!-(Gq#DOQZx;Sv!4GuGIpCmmUqiZa7><9zxWmE0P2Ir63Eh{G{&CHC`asPfC8xHX1 zC7YMaq_%qF`bS1Mu-LR@D@dkj zR%F~HeE}r-G%~Ucg*k*>Ao)5voeE@vpU`)5lEo52R%G-go8@Fuzak+=mK290Z&T^b zfXWX^9dKzFVU(1f{$zYS+LPptpw2LX3>?x@@J7!+`XNGu*%n2a=aR3sMa|%Xo7^SD z#ruKykxn9Ku5D@I0PQm|H6@TrvKbv6Oh#SyLSzA;%pJyR^FKce6CBWJt2(*GEPpe3{Z76@wc!)2~XDv3Qc038B%oB$H4O;9pG()5?qCHDu^JDv&}Rq>0YWo4Nb z%9izN2o9(SI9|kLt=lDFnqcAv^M#{j8#XKje8obRP?QvKEr|<99)-xdXV12dqW=r+ zN^;~*R#jC!eEQVH!9g0?D=9BIIXUTH-zlT2nzShYLmuK9S+Y*LII!P01j~-4_UKBU z`cDh6e7W)Ht>|IFBNP1wM19(qBL=V}huoKpkicj+9-KG0kNI)Oqg@P^mX;)jeFeze zW@W{S#(?PpuoliNn`vugv**>DHko5VzZ)0O4>!Ph5I9fNcr^)ju0tv}Z$)qH>XuKyzXI|7*f3+k(@MX~!b@8-=1s5>vv6~HFo$9Qoq z$SARsj}>tN)GKwClZ3G&8mPnJ1OGjlXhAcuv=kB-7bj=({Ax=_EWI_|ym|1FoJ@`v zk=3Ads^vG#8!xUM3a5r(Jdm_evaW$=!xKF#+TqinN$Xi#Hy=)`>BYdKng`w8qDXWM zr3T&!f@OLB+yZVCGEAe!HKgn+lQSDl*vi|yc+^C{q^!(C2Dn+;1x1jdgT}@V)1TT+ zw{G3IX%jn0rzWNI;9~dS3fbA&FZ$| zSC<7|w6*<(1u!JUusC8CQoutb!V|NgZ(N#<*}*X}Fy5<2?^p9KzEWeC24~7pEM`Rp7egvMoc=5`O z8_>FKo6*w)*vBWf`m+8QZav>-q>xZvBxPnMU`gRlOUnjS^Ko37KDFnUVDmf-PG<@DYPj}YV@UCa6C3L=t{f`)9Ug((%%c8%j)uj~5t7SeT?8LBo&E6XZ*B!q;bK!1MIz%j~6y8%WQ?!pi}3>1p^)b{S~ zalk*Uo#zlGP|E<$gs7m|RUKP``N?!;y&uEN5Gm0`F^b;N?|mmX0OvI-B}IFN0v^Dd zzwGSfV2DWW1dc*2v_DwBzbJp^9ZkhLx%+zClUJ9PctLhmT(Wd+uk_`STIL z5b*RKz12(5plM`gcDn05or?&+b-p}YhUy)8GR6KQyGu6X&X8dg>OBCPlbEggcJ6y$ z6e?npfy2_jW|}t)eb}BO=7GpUyd&gFw@ORt&!1DksF8Rz*Mps)T?hE6y%&&j0vhh8 zZnE08Ed+;;a%zDqkI=^;rTBmUm7Nzv5m4M?3>gCEy|?P)-t7UTOvDvq0FVLZ@^p3z zVa-xAIE;8SjLoMpbES#(si~qsx@^zxZ#T_8wq9Lb0Gx@;z(+ht;$Hou`NX5-mfp4PoP_ed=J(ET8}8CI0RE@Xe>cd3?}Ay zaWhVlB@wuga|3Vf}1dz`MmFR?ojVDg%km3YE*_xUcN@Ji7QgnCI3bwVCBu#pw zqo>2enNZM-9OUnPKvH60A86>;liy=yC5$#7JqUeebanTQei>#~#REZ?&ICr(I)bht zeh?xuMPPLGDAH7W1Wju^=uFEi9((&X6tWJ79vCxPBOAc;5ab6f36f+PpaD#F;eq3g zE-o$}3GPEES+e2ht7jAnC=r0^Ig{yekPAGzQ@oT~^Ge5q5!koM)3^L_F zYTH$IkpJ?rArbI&Q?W%@i|aCh2^kzc*k?`V*4*>qqTMbfNd*Qnkts4nsDvB{i3u63 zZgoFc7c)_SI2x6bqlYVqY#(ro$Ycr%I2VKn&CnMyP!Jjk#qpPobwHfi_wF%HmFqos z4-XpdB>BZ?H_3vs4G@+De@&0BQ(R)2Qfg|@n!+=mL*1MV|HBk1BY%I5?K^f%&W)d3 zN+jxt;*ClP(VpAzd;eBJPy!)O6R6a@W@CRAV=IN@Q18y zYzB~95Rf!4k%H)gi&$Ce0id9WhzK&pigYX^rfRKQ=lK5d`APs;xG-)0^;Ejf8VuY4 zWy2maf8>#sA$KeRL@KbU;sYrh9Um_Up9CDwh=M!r4uz zywVq2AlX>%+fK~VnOpn`bb|}N4lR1HbEGz>r>6Y=y?PZ@vJ{D}F`hf%ED4ez>m1Od zK?vkD%|rEozPQ3Br3BAn5aq=60nd=$waF_>=S)Y>qOfmIk*1HTvGCr5tp=b+?V9dA z^jec94bn3PhN*vWkR-D;e}4b$x_f+W&E327-rl)0eH$=oLpa)rl$>Gtw2d2=p&unR z9%FkW++TPd7VjU?(~ja<`ryy6XMg(9bcQik0pDJ^lwj3+{=KIi9fANaxWTE55$olV zmZHU*sCjW?5D@marfU4HZKGVJa3qCBn>xBKgB#XFvfBSi3Fv)&Jg2_b6S8UuS~LQ$ z$+#{q#8i|sh?Jt9)$*nd8?+;kEXky@+H(vF0CXYGEyyTe&3!eH*Or2t^g+M0p2t*BjXI= zWKgOz0cj4%$^yQ2dZe?VwH3lZ5)clSTZ4anH#GDXvulh{7=8Wvbult4#3a1H`rKM0 z2MDK_hb$Eg4XH65{VX0E8~Ys2my-C%$<*B31nKF1D>H2ZlPzNClNd-qOaNcR$=(WiHHp%)|s1GgQT<0X*x zFS(;r&4!}JB&Kqbf&m%wWM~-LwH&rxhq~7*|8hz_fHR@;(ba!+lB^u>cKDVg`372b>`h1Dz_Vy){lapYZEOl>gx>}F%L8l>Mkd>9~|FGeY zHu#x3k@070rxJ%Bq`da}jM)GrIY&2YJu47OmscqANOHIyJTM_8_R2~t*P-J>pc06> z3=MbB!QVq_v&{EBKB#&hDL)GdEnB}{Oj}!<3^;;hi9lF94OF1#c`}#*KSV5(czY27 zVsKwdoLfZ+Ug6Q1pcH+GcI^O3mj(O;Eg5K`^pccuwr(WZa2DVp1WBctR7yBG-}NE7 zA-?Uc^?3J3H84HelgO$5mWU8HNj3{ap|H1tbF1#O0KDYi;7M0dJDU2ewKW2T3y|9o zqaYWLT>7h@1=&Xfa#QU!Jj58Bk(EKm3M>qW7=<5(TL6Aq@E0&%Hax`tOW%Pg9-;gL z^dCO*@-H;OoC08?fVt^T+=fWd4&Z8X_F~>jEts@uAfcr&9B?v(N}QM(Ojx#R)h0wJ zxj_7jNo=zaAVf1(dA8L0fzqb0&o(5$_mL)nSFc`mmAdedNQcn1aPEL)Lozqu#z{fuoq$aGYKW4?{+N1ZrN(2N3#-j4l>a%0*d>1XtLDXLKFyys{_>uxCW zQ>YCoGwZURql$=R4d=Hlb?2%B`txmtba4lbNyTeQnP-@20Fz)ug)>k7)+PnzD;pDX z^7A>ev$MO39Tp+{QP6(?>_yyH&K^e<;lzsFxmyrE{B*3wjXwN^F_z8?sBVA zXRhtrw-cc#$&TPL5xS7)!FmK+Aw*uN16Bz0*6GW^d2IfF==$@pp7ZzpACDAmNK`~B zWM8tBt&p;lvJR4J#ugIU+bC(XX35qj+gQ?Iq*U55ma=8CltNisWGSWZ?aI7<@6SKK z<9Hvh<9*CD^?W`a_xrV+=XsqMcpW^&*6XRv4Udk^6XmPybKsOJHVs_d4yt)wfv1jZ z(id%MfMVxwCtSQ_Y0x%+daBFGP+Sdu9&9^KV_n-e3|{6pYtkb4Jqq*)dw z4n#;C@oZ_6(I20kpVUszY()m2ej9+byqSdKGiJ>yrjX8-vWi~5mKBX^Vx4W&xwF-W z`vIk-0mMp0A_85k&)S1ANM-f-ynQed1gTEY5osk(A~@9~lD!4* z;Cn2(7j6wa0A*W9SxMUN+_h^bgf^sN`Yb=e1iFZ(X+Y@BCUlW~Q)*ig9e5YI?b{1t zD~Euz;s{E@&r6q;pmda*<(gb=Z1MBEvq&N2vM{X$DBgGNlFnPm3gS2`*jKXW4{^v3 zwx>LwCaK?kmYP9(UEPs%R|MoZuey!mia$HfNeR?3mU+u?{RU?lL0{-^;^X5N&=#$K zclx9t)WIcFGz@A9S#cXaFML@+A4g%P`jjsr_T$p}2;zrOR0DXt_?&iL71UXdF)1gB_+x5(f zaLq2fJ)hrnB>-wipkiuc>JBTSG1WF8xi2(Yr!HNT1e=;N#eZI(l4Wbj%w0j=1nqF} zs8Eura^5ZNq2aQXoFxdwC|b(g-b<0I3hV6>o8-S|Pb=D~+VX89GMG62UGs+Jl>^+L zWzXU@0r3T${$G8P^2EdXB3i4#tMu_^U+ zWzsBOx^kshst^ghQq_FN$7t5e>S>D2?tDtA_d;ixVdR5qSzDx&Zf>b?M`LM%Bcq}k zji`HTV{31(fjfGWmh(RjRzNlsL<4(j`kzZmu5py5Spu0v&*_)xObYE+X5*jfbz zGzH}aR8H%;3?ho*6#+-pKiDbh-`ak|JvNxYXX4V*G_lGQ-O zm9|1V$6l*c1x64!SDrNjGyf;Y2?1J!0DvdTuHap1)WL?4E2%{k3T2o^lP@I#G`LRy z5=gDuYZ#75!jX=tu?Qv@{3QT4C3;ABwmZ%5RR&F$6yFelf4h%)Bsd)DUy3z^8)QgY z1PRoi65jWLix!assE`dj>8VrA06!otyLIb!otX-R`El-V?P!2T{nFha(QfGCtG1JN z#b8xNt!SAj_feSaK6FTyF;fF(WLT|r2c2fFr(tP;G{Bsuh6dQ9ay-W)$i7`5DhPE< z<#iZAsJPiR!T`aj6L00HS)VY!tzuL4C}$Rg;Y|wupqTD6OJjeb9ZYAk+AqX zrIR0B>2;@iNJSWNQYdN!p$ZFY8aKNF%g^PL`LHK{{SjO~Z~GWo`XQyt@Y`7%Qq4cEN00gjm(jp>ss zi}{bK=N12trCBy7c>DIFrnxXeyj>6Ou2I5r@GUt7h}wC&XXOC z|4(T>b*ciB6>;2{J|!Le?0O3H}jZ%JihSB>UbD{)|g zk}S8X&SPeuzy73)C`2VD4nwCby)D&Ga7h7cMTsQg`xGocSFkKv?w1TL zWKUp>=Yh=#^I{iZ3qS)+ef=FoI%zkk5RLXucs;}Wgq8d1gQGhEs0uC%B`paJxTzzd zo{k`^d@4dK;gNV2QVk8*)@nj$iM&z0=l&g1uuf=&HQgz^bbmQmqEg=7f^gp}C_+`{v}OLaY)revy@ygRw{M z47qA$q1Mny{X0mn+WYT|Gt@P6x6g!j{?8eip5KR;AUa}M>^?hb;~=IAGr?~I7H)>W zr8bj`T1fC0Ya^na`L}1j_224$cBB)QDHbWxIA~wKeJef_o4kdgOUtHfhIT;t5%>Ge zRB`&e|txV~Fc?V7%38NVO(XeqF1) z)l-I|_xGObFP`RrX0Rt(^wZYTbjYK|Ok)Zngo?zeay8p%izlU;ij?$gp9>bTUYiGG(@(eCSA*u>SSFS-Zl*2D^OG%r#rY z9I7BmCr=iC$#cl25Ee@3CCNwdVuTR?D{Wv+)jQESALEH_P5HKvpvmuT(^!Qux^h{> z#U%^Vo^Zpf33f=0zeIrq`$&S}sUikP>uvJ$D- z<~BWNHuztQ3mpWaosshCY9@KFO{;zUWy;C!!n@hy2Q0*Xe_8-m1htG! z`q~aWRMxH-V0mJ6onhoR#tf-0iSk1N2hMdQhf2--T6vn~u;kcDcBd#$sGjQO*$n)p#Mt5M!hWZ+xlt$%WG9+I;m_xLJ z^BOYKpAtUcO>d#SdY1s#(5$6O7?)lQ*@!@wv0h(#O0x7l$4>@Qxk{-+cBWp2p~^Tk z$faD!7wM--@DPefB-VoMP>ij7_pm$l8(Et5vJ|OF`;*Jq+7|C$dP;(}i@% zvHo9cI(>Q*kR}S4qD=)q^y%Swf=^UJ1Cn>crq@zSWJ^&E5-zt-$PjSE%s$&!jB2=; zlq2}cw=cW)x%seja?YI52#D)D5dqa;<&vEdBs>N3m%)dp*ES6J$yUgQqbmhZ9q~yl zwVCks11b8U_voTyy6lE(>HXtrL3yEX3)LTRrnWO?tg+8twRSDWQl~C3zqDPJ_DQd( z;L&0IcY*O`iCX!4hx&HxVsL;l^mslf764t;jG$>1p%JxBXpaO$;EndZ{@}sqgq>rp z%x3oF1J}S-&~O(f`Hqr>R@EwCfeOxr2+r%w8s888h;>dpVm1 z+M1c@t@~zTlKK1d-!CqW)|_N}w$VjfO*MlS2wj?)N;D+ z!*B05ym8e1blW56W%wqGk|XyF$qIjGfzAjUO}%1E?Zql2kvCJCYf2+3#YEO)EwV|MUtb*O1W9{&6GIQDOT`gW7zUcm=l z`Zn#Bn&tIPz^8MqAUL3}gj!pZvW@4Xpc8>OJH) zCQcd6+}}M^;p1A2*{QEVw0M^6sVBM@R{U)R*D#_QXCsz^59OD7M~n7=5OO0-mOktz zKPjv)CsJB`rV?gvY{4lMolmDu$5J=h95&S;%v#Nuv2X9^q_rR0DYwvPnnO*LGR*#` zBS5NPHLD>=2D~JNU~^w~(Y_UnsRXfxEHC2ks!z}74mCzRgiG5PN`67e+7DhC znd^OCJ_I{czD#Q-&Ww&+Pod;LyMu4*=J!URj$O7H_1S|x^G(64kt zTlPF*%>eiH_^+uFaft#x0Ld9ySw@D2jew^`bcdSbCCv>lZp9vH28aGZO@*GIS&J6g z$a-)Y_YuEV&Xb&my%UZ{jqYsJ{}iewVV1ssed?NPRZp5*686ZcC0z1VeQRVh>1eR;u(<{PUD=lw3ncd1*8 zV?R5pwQRLJ74e%u!|*#I13)d1wX@?+P{7+^CW=g4_&2A7)SrqpL_|XzT9L95q)|fs zC)DJ9-`VWRft@*>v|r%$WAdSE9jS1ECj^fwFHF7vs?Kn<|H`fljEpue3)u3V2nF$! zCQ7f|#RwdO!3diuDLG#EX>?@vc&ip4h?#=ziY{~F#EDX^gT9oc&0abk<+btTLw>(q zT<8dkk9U`;`#7sAKc_~P(c8|%HTEOk18|EZg^#=P{o~%yNxZAZZeTuzi@IALAg&Po&CTKR%jWa>;A{ zUq#}PmvV1Umx&@ckRlknxMfuZmGhOFZG}H=pc0{+>6$7?`;K2f{JY&^TR^@tHIR5d z6I}|t>&;=KOjZ_-l!=DBM~2V_4sZ|P1WrKv=td2rtfVr{&Q2cjr%!$EEYTgj(jeTc zX36OVW(1#HE=`at%{Yg-Uw1qB9jAOa?saXUa>5Q+v5YAxkJY1D#7 zmPQ+2!C(p-iey1ZYK|7j%Qn`}I@MIYr88*w7F9l&T1Xh9!6^of>Pyy-QR)q6v-QfA zD{?iAHafv~y(EAIY~OB8g5!;&ws^3>DVa_vxDVgaxhq#4)^{v*5vP9TkFU%BpOEOM zq7@e0IeOce*80!>`a=zNTNoO-1VJ8c=GwZb9M!u+Q(Re7<+%Go)PH- z_s)@{7G~zEf5IlBIl{lu+XxHi&Z4eJsjUp2zN?%g2XN>|B@MLDwM}Otl>zLKdI!Fn z=H*5*Oh9dLfwoH^H} z*=T7afCP=8RzXHv%~m|~nQ*-E%9Demx{W(!ACtpvxt`L9KcH#eV>W7e{kHra%U_V` zE>QMV-=@w8bi&LxnF1VXbkOGqantBeM3byHqOM9yf=EbP-z5)Dh|`@lW3K8Q7+J~H zG6dcfy`*?5Qo%9AiWD<)UD*rWA*(t=+ncO18p_N;zBJpN?8f(-k*%848ll{*tSk^q)R!?8l>PENWdq%G(hmI(GE>Zb&m%X7;;L ze;>phqI{Jw30uPrGx4fj&m4dP1&A-rPQ!^*1RoIR5Okvrb0#SL0eQh(7Z)U(`>VIz z5;c086Mt5B;Nq5MK~yyx(~get)<*=EW>(5I?=jj<5D!e)mZJox-unWdG#j3J?%V}igCTLDxx|J|Z~i*pR*7Fj9JM7;$r z3L|eoItSK6fVvGsy8{PwIE*5g((E+m!YM|WaH=79mt6nKZW|I|?P z#jUS!f?I}kaVGxj_FFLWOp-Tnq{a6_MLFC@hptKELgSP1WNDcV!4_mZx%!Qs2<4Hg zjN(J~TXeU*Ts~&4{G0C#2*?k>#zaa?lE1(zESi()2*R)ol>oILFjaY3yH={|iIjaJ zQ{vnZPZhwqWE7Vxx3~K=xhX^{+cT$8%20$zWeihQe8;RHgQ<@NDD31tmDatC+X`@l84ERq(kF4priWokGB=^%^t7&uV;L~8vg#e!@Lv8a9Fu?6xV(D(+L8KZ zHl|{D3}yexe9O+k+8sz~{f_|ih(?5p3>TX3xU?`M*%T!D^piq5iJbHH!$xnzB>ADy z|Fsc}%W*XET~T$;3K5eLItfz#iqd|8r6vb}#!=Z6L*MxvJJw0~Nk-J&{u(rBE_zt0 z_2?6hSa`PMyUBYRClR8mbG%pG&=>2AHAG3q^Z5=3bkpe%tDW(Ha6lVH4B(CR@=6}) z>h|f`RjS)T4YjX7k~RaXZ~?c-$tVH=gSfLwRP)lU@Gh9gJ>tv2U{#auXmJoeWA_zA zt?XW!(+I)0U|UW2X}Ne0m&%})pl!$>#QT6X-`+BDFQG4>oxEUq>r6iUV$#M?kjQu& z9fpDrevI5KW#(WgMba>JLJ%W&Mwp9QJqd=nzEq7A*vOc<`!4}K(;((@FD|l?@mFq) zeS*7*e61=4N)f=2|6f-(=Uf)=LNs!uI4((Qj-lkM{XKg2l#ypC`#FlDzXhD|-Qvq@ z*^DV$)M!>uE;Rx8N9;C6;^6m}O~E{%rWN5y#zG$(PdU;Io9NNo##`C=kW_`s6ZoN5 z@7@)xiFU-P1RwDM?u)CM*`0aRtac_Wl zC6=G=7R8_s+2+3jREtGGh#A1^>J24`kD#c8sQ(i5pJ&dPxR=Usf%A)N8(=0)q%^kLd6ZP6ILX+ZACO0sAXq{O90Y}b&qwD&>kf6?ewWr?jwd@ZRVSfrS z!8d#Iq)9ok4k?e-cLtoAAyG%*QPJ`vM3{Wo)bZBd?sD+;w~!FnAl^dWA%zWPf3c8mbudH|Oi$W{U$8-h(pfZt`p(o?RAfSl%j6NmKR+ecg>`u<{s86k|`T5qCQ}IhZXd{vmDb{QF4q6rcj8& zrj5~F9peuVPPQ;}MNDI~)LD+^oICW@VvxvzDdNjXQzEKifwLRBO@jF+W~HS$ET@u| zy(0q8pRzsHkKRj~QigjPj%jIJ^vp8|{Q^#%>c(Km_|QklW2EXPdrdkrShL~!o{|9E zr+ar5&IN)DD=Iwdd>jmD&ZOszvzcIZZptrVzmO*V`}Y^gaZ#Cf{V=mPk;Xr;WbMaN zltk4za@1vgI!UDhh_G$9p+?d5-Fx@mib|5n=T93xuvx&Z@cQPN0YL#b`U&ug21CjU zWb)z_x4Oz|=WcGJ6M{l2tETWvQab>pA+inotPd3#&Mzuw{7|-flgCCAL22?FSFG3p zHsP2NpovKdU}#5F@c&&xAB0pKPbWwf5gzAXaos6vq-1)V+3bdb!=hAinTB-Ep17mGcDCf@iu zg)(|bxf!6}69E9lpzy^E1d@z&%~rH${;}WM53}7rJ^MGuQ3?@>UxFZu_>%Hap5V)u zn-@iRYSS2I255E~JY;u(I;wwFxp`;+e1K<*NFO6%CN(-}n_H4Lsp-)v1#zcda*jJG z7$80&M5hY;ORCfxJb@Q`kZzdGq0QLoQ|czoHUQXz3AUP=ZKn|2WK5Qda{)3U(Ubuw zs&~-VH1Eu9BJ@gKjn0@Mk(PLUA&6h_EZ&Vt@%|EnssaS2nZ66Tf-=SV7R#uSoN?)V zxR}no;)Xt6&TZ8$dxpV9`Y#~{DS*13sk)kWuj>Sc7T_WcIns%~xEw)q!;Av#hDG%& zEn1_SIgXV3@=!-DUD`twv1l6^I1o7#kR#~ZuQq+trgZ$*YB)9y67>deq)H^ zEJJ`C_Ba+13H?X2`kw^67r3hg-RCE%3q=(Q6qC+uSkCc@I=7Dw(_uGcD{9k*pUHLZ z#0-~&7%D5 zrevG$4wz#_ut9tJX~R6ylT;|Rz`BwM3+jKas{#yYV-%BpM~1}-{|XeQnsnDYc&*O7 zgVLv0`Z6`fSfhG-bi4IZ-CSIF$I|(MKi_FrM8v(Vp;lEHAc$E_J9_wt_LI1l4&vR9 z!gNf;YPypZm1C;{y5o;0zU;`FD7_+4jY(@HypQ|a`P|6M5o(guII4Z25&!m11BRHegY6iHsz?c0-37MQg7Ha%v#K z*?JPd7c6F1#V87BJN#>4A27E z9fiUWHGYnCkB0`Saie=xaw)5JA>eC>UqL~_Q_;1`hF@yB(}jiHP_p;J(y8R0IU+yt zs(ITL2ufI35z!5G?3nG#wK_;OX1b2ITEnG66WD6hxo|~S5ozcdrRGX4}q0;DduHQLC+}=Fn{|aBe zHm@9q8Oh9q?eW$s#KjggYNNNw7)^^(fj5c&B3A=rl$L)saQmBk5iLN@8g8|bbhfkR zZ%~5FoPA|Q2jWfh<8~YJ+>q2U^ppt*BiknA^BDEtO9e0YnkiHk7Re1?C_r4oM6w~{bbt!CjXOl(Mgb=1%v}a_5-p>+ON|dTMnH6F zF*wvgt5K)V=s5dc#_zO)L{V%6Wn5fj$xdE3` zlqROIkirYc0M}n9;10QOC0LlCuqrAl=*Y5S#)tM>^KSa2gZ;OL{z>VFc&4x535;S% zo%=F7{c@tM;u*HHokvajkn*4pafTF##glTrSP-YgEX=ItU;<>bY7JU{R17Jc)L($nyr zl|%Li=vx6v$VzEhn#HN5)XjjM_MxdlxN+uYY$#g#)vH%uaxF+!I@ZM~dhB>SZ3v^= z{-bet^8)Jq|D|yP^cgE?EK*#g_u7nsH_U_}!Js1_SUrgFWkQL{sOgmjF&w7z40A%& zUFT7^0Ol7>-MTxu2SMl3($iml`m}>u?m9VXWNs@>+qq0LcW%?AwL{hc1T!P z=0)iSlDO(q2a4|9&3iF_sUZk0g$qa%o$LKgN9LRxL*kRq1)`ab=c72v&-beSgY0~@ zO(#k`Pnk8kJ>XuU=tojg>dkk~0*jz15iA0znF=4spopF}8=HK`g$p06+QNffHfNHf z#qmM{Ox{XXH%S#QnC+4!-G{oD8nkKOo=N~DyrX3Xx96M-@t_nC{GxWQs@z1_6F&M% zDi*LN$I4eXh3%r3k1q`mnDbov67ma*_(lpMtPcxo#zkc2*OAC63iha(XQa!AW0+LZ z{DakZ@tvNc-MdP7SxgSsp{%lHZw?2oG$2zMC>It6EHK}4Joal zI((b9$l_oMB?ppr#CbVSZRaU$mOLOqpFmB^Vf3o2aeRCKc-RPU3zSh`EMk+B^}$`X zVDKhm=sG$FW`wEj$Jb<+0V$u`nPo z;8gEDI>wVGPIOt>Q9*cCUI5@E>cw0b*S~x7S*om@2|jy7%p&qUo(wgaBpcgfV+IYD ztSKdrm@kuUu^x0}%00|1D@7N-wa^X&o^(+f-WxeqDx>|ol2r%yEB#+87oRFq;Nr0sxyo;B|3ZTtHrPJ~}W zj^hmEE3h88nZmQ~HD4p@YnxKxuK##BZ{_DVlVxH^bO3k}Eh-Fn>-Lw32>ELy@{Kz& zLfArsA$gK<#=o81t*mPBDuG$UIO9TUF>gTFCE+0yt;bkB{K~y`=FN)ULX1k#*>dmR zmf)%-?;e-JW!Jj}mOAcnt@1$n1KTX@5>py&;TYECRR9Wd+D8M&p)hwt5Er6rlBU2@ z$UXLk^9`(%33@NbjZ}=HsqpQ|h%8Kng~%1)mL{%6m4(gMo^rsUfK$~ZD;WWkhlmXNJIhh!)?J>X zQFym~_>}@LJv@#Ftc>AQbpuZV0bb=hcftf!?v{cSQPQzY-zyU)o;6jY=m982elINL z0|m^{r^wY*D5TrU5)nC$di)=_Br!@Bcq#leo6S_cGH?u>a8r@)33AbXh^FR}A8KF#>C4lh(nCT_aBczn-A7 zIy?7Db8aqEN2&I8El|gZ%@*Krzo}3TcBoUhTFqtrn%9tyWroNK<>`=E6?~{XWZ%61 zoOAy4m&|#RGfdWfn%97#?mPsfhnkSNVr`(s@8AMr#v!0$b#*Ed2)f2?NlBie4i}@N zWnP)wFR@)9v($`?7$tAfPVVX1y?ZLDLaeWgF$%CtsbpF|G)VmiGa0-PPNnGEC}yNh zL5!eBHxzvW;Z`a@MFog}o@jN7l@+2* z6-dy>Ahzf@Vt*aL4ny4+$AyXF71>8Ik9BKk=(OM@hS)TBx0j?44&Mt0`S&-iEr9M3AV_O^?8-K|3f1>O^# z5~D}~c#NqLKdZV5e<1AKnMe04BYhm8AqZ z^^tZ%yc(d79z~iDGBHUNWhz(s7>BCl?onazs8=hVx~9-X6rMgAZb@4q4IU*Ks=>D9 zW^kZO+k#KYEH;t2dF0DaX_C?aRg^W_`N7M{qoZ}zHC?7F|0M({<=OM8QCgaV-U((O zZ5`asJnP95T}W6;c88wU);4>XB3bYdvgzxx9ePwgw!w~#ETg+lr-hMjkcuNwd%(?qpFA-bHtev{pG5u(g#6-z zi^5ZB<*=BE{T9zN>frtJb3`r#!^{w7cS>_Fu)j{kz^Fs+TP;C#J&dZNu@w0rJ|IQ? z9MhTzWJ{Rw2byXWEft$NCr>Cco`2OFEqrH1Rczv%wE!ee(ijJL?hrep=r=>KOaVt~ zcjru_b;f;Lv>)6O^PM+VeKwX7(frW~4*K4nwU_MHX`m{&#u~aEG;JT$zV7RtihXG3 z-pfFg{BSVed`v3E|LDzm$sX0=o-KLOqB9mz_?+%Tjrwr#$N zuZ9rsTzjTh%|D6vEw&pX>=EP(Z7MfC7s@oG-5}LtW45PpBesK;7krsVfMynE6AHmeQN4 zjs2`_A~|RhnE|U^+|8C3-u3g5zswM&ZBJ_g`yJ8Kfi$WBQEcpLptw$Z96ZK*QC-e4 z8Opc#I~FEDgw0|w!flU=Yb~%BGG`NBw>#RpFI$B2ypWM$g*vhgGV|?U%^L}Ck%bEJ z`Gnm($}qP7sOt~cWmpmg?D4vr@kHf&bc^i zJ1~OjNQ|ne-RMc;M zdEv~UT>5)u@TUfD3315<#;JiXFRp&HnFDqb;l8dy2OpFj+< zXaeBqT<)x-$_!sG&#VH0P{Hb>1`1Nu^L*IR)+ySwgbFT|bVW(}Fy?bx1);Y=PVLl) zLsk!m6BN1tRu(MP<_^jxpyPRQkNT-HGOAl=Br zrC-c{gi9O;y8@ScApiP#3LZ`B+|Dbm1&^P0lv<1Wm4Xkd7U7q#X!F30NjG=?xLuBWdH8G&qV1aj`%_G6+u1YWbA^Ko+QcW@M)~2LxH;N5`mvzpPRtrio-=znGorv!BJ830UAmR`8{mV6RiC0bvBV8+0BKng zy;<*0M20TB6Ns^`(rTBk)=6srOK5>ZoA+ZybYMM&+TuT!ktobKi zUj8*GPOw!fv&Q0c*uDE^Y8&zi41hvps;Ap<1*TiX+)IHwu_kZpI`~!df|S4hvU6QE z;ciyeoAB}Ls6}Y`2Ccu1y$Ieu3iO;!0Ynsh=+LK^-$MyMbpA850Rw!GAD0Hu(aGt4 z;d)O}rSLEe!4zDK_m|q6vo2eYAD*(Eys^2a`36R}Ad0b6lYc{RuCUJd-hqAl#%Cin zny7fF=vs3Hpe!g-*Yb@CFOGG8Rq}IF+=UD1S~i64*cTDJ#@zUB_VxO^xz~?=KIM_^ zwqcXu-RDJT&VS1(5$|Titz46sbz^_CCmqCOo@It*+hXTebwNy}DCgad?r605idl4r zy$?Q3q$6Vt{#{7akdFtB41e>6!@A}4=_MB<@@D_&URI!>@ziQmV$uUI^N)W&-~`jK zuFHIOWbL%M93dIe7RW{+CuZw#La*r3fF|4u%0O=G->U`vZS$hz!xc7{pAOkDqSfLj z*$+Q?t4_Z2QH5MJ`Na^O#q(46r|Vi@dTR0U>$D$3Dov-pm=g4}OL@xhW9PrQ{7IW6 zYF18+%j3_qlWY~p{ISu-sDCfFKD-Fv$JC4%OO*aG|l{MHNxuEbB4U+pApMv&z@cCagQSsqHo>~-eF&Us|~3wKq6%r zM1XZ=bzPrEipnCl)2JC%_4{e;woy#*0C!RBayQXi%iz$v_y5Gs$S8UE>{)wSvz4n> z?OD;MPoL8J$JO8%8Yy_!7IzeyLg6|+R0aAzHz$K!=Si2&Ra%6sT`_gm`KgJq(Pvu3 zJYRHw-^INy@17hs{pe6a8+T&s?U>O9ntd6_eB_e#G?+!xL~n*Gap zvFU&T7n^!{R}c0bZe!GOfU^6QLHR?p3O`+S%r7$>XzKNB_KukD?w3#AiRzh`+kX4& zIX;Ocn;Ru$ySraLoL}9sdhkvI*Rn5{UlQ{N%BTve)I(p|Qx*Wdi#2pve8Q1y9e;Ch z=zFg1o-2zge^i?O=H-xRzdv@w(n-^Pgib!#vr9y9jkh4t0dcL(-aw}<=(r0c%n(^@nA?^G;u>ry&8-%uew`kdNy{u z)AzAeP{j<-tCd-g{Yn$}?{g@_g&>_;o5)19i0)@!*3j2OdQi~OpA352elk#FG90bI z&{9_)cE2WbV7+=Zs3I`2d^h@L%JZHU_V0DR*q?lV>-5{iuX*3{6IN~X`DC)f^HAb` ztB4;*ox7|{aT$C0?Yn!=cK)!R)#GH(l004e>M@?NQ7(OS6=u(w^RD*V`;E&zs~>E7 zZ5Y)9+eE-WtQ4y=t9y zXDpdCE%bSU@}IADjuib&(r)~$=gf~Wm)WBro^Ny_rW+l5{G{moAd)MpF|ntn4Gg0p zK&12JLs-C#a;uU=MnyPvOka-V>S8MsQ1oj75gtIJ5c0xy}65Yb!?lAx-y8_Egjz!mcoIh#3sdK(z?uwiD z?j&g2+-$n}OP8pQ8Fj4-LK6#ahED#?BWiMi&-bKfXUdLwF3&k)6!LB2&$3=Wd%sd~ zsvd-ANe2-yVV1;t8q*(1fH1hzw}3G;J{(vYXQbUF_=r6V7aq=Py?iC#7KSV4htax| zGtZRu=+P~|?S>s^hA1Z0EY|Vgbp^A#EqCnQbDw?Qw7Mp4W+=_0@#zP?g(3Q;>wB)p}YZt8SUuO!I?A%A}ib7n1X9}ptZM7 z<-L-&xYJKGM2T)$V)4H0yd+ui0H&@Y~Na<19t%ABJAWH3>zRDT8C` zT`Llb+HD&$Av)WJUjrvlPUaLqk*~hz?jKBdmOehGN1|@mTCerz%67$tg)8%%7LTld zHpITp(B9dl(#2u-k5(VwCS?^7B*fRdP3P8TjPei?ap}?kvPMXSx#uuiuiq~1(x01x zyj*%L5uQSM!oI@-z-tQ5j)_OTAcNH z>sp5;JJ$r>+w#4~r{E*aKlcSG{*DA@EBvKcPXnmk&o{7l`GeQE09xbR5LO!s3^(g@Z|vKA-BPb$<)to5z3pbbm|$@tvdnAs4YSudGpgp--oAC~ z&rvD1FH%~YnG{4_U7Z=IZ${%HY&=9b?vC3XyzAP)P~4wmVPCUU+3~eDdTT?)KU5hc#W|Fjt3smTmfaV?I!Ok1>lW)tC}^o9yeW$O}Lg)|lhj z{mQ3TuQKjD1kgTszWV$YkB?V}k2vvstq1rgf~RF`ld}Xqh9&dc04H@`o;Pl)`9K*(I{b{Y(tDS9b%XfMP9?xzJYf;&J zTWP?Jb$>n%ztMfDGJbOSabS*Rhen=vvAnweEM$L=!Ruphn$ey!*Rh2#CxtCnowG* z=*-%`>^D_B2pwE{+ZfQ)nel zN?vLG)$jH03>Z@g4tzNy?@ns!%kwvXM%NifcMTrgG*GDpX+mSIPiXyF>hT^M=l=Fv z_coVXCZ-4GExmibcXWzDO_OMI&5t{Vn{>@L*kBaf-TEzy?1EXKJ! zm}2VEHSTrjfsD9>nlabw_moz?y66#&qpdzfwUMVX^R49ePDv-`oLgb%<}_sYjW!XQ z8@y*$d7nFbR-C*&cU+E5a<2;+7TGE{33uIbnXg`7iHMeTSO}o1`Tbc_@;%-ESh&!LfmlJN&~T8Jpoit6K{bFncA&KnU4fL650Ow-5z8ck zj4YF3pfpCKM*epP;l|e5v_&uRB>gj1Aeo#PzR7t)nB1DtAZM8`X@gJQC@#Dx$RPMt0^a zt!A&YgZ`f3b@pqFmHpN1ZE^42T>^uHeVLSwN?+XSW88FmHD9ZU@h^7nDd}u|*UrLr zW_ZM29ov=>6RUre{Q$?N$;I?hVjX3}xiEW_s2Cps3LXi-w!D%ZDF-K6UEvE4@Y zGz~pN2qLq~leV|-y?k8P9c}db27C_tUeixIyj|P2z|l}@lX_Gx#EuCOdKwx2*5=Zl z6FT2JcB91g=ITzBCTbsD=G&`Rg|1WrJ zY&8s_rt#CU#J&oht_-P(2@Z%b9zaQFVx5*OQ6ZCn3ygPOE)+H@t#+;7Uc7vHdB3p} zs(R;J{+yTdVzABGd%FwZdXCRaSbvtxNi4^+EU{hx{X60%PUGvV5{wxv( zg_20d7@vOd=m%>R;L_Lr^Gj=Qhk3p?KdTjO{4MWu=9i=K3m<&(_;@5cy<3y6G`VHJ z-JaZ9OXnNyUM|JAFdq!clmeB7svcNUKW|Fj!jlQ66O^iS-nc9^G>d$xtYx+3{GG*{ z-?X{=@Icw)E1S=sPg!EW`exO+m$^G)~Vnj!fQ)v3#pGp{XMkLAAV8Gk8-_65 zMVcmVqh_`8(Qgr*-otp;O*K1OyKx1Z*8@A z8J@XiOP4Je*V%!VDaK`RoJ*94onLM8SLezO?xEd7U(k=-cS2*GCY&#!IJ0&EFJ$DS>%cS1BQG)b0O!voYJ-ZAG~0gc_Xt z;Cv=y8dh=JcM{_<>(E5%HW;H6(Y!ExB4)`bPJ~H4G3j9C?7sO?V|Rv?8*2|Qt?7}X z+;z| z@_}JeaT8m+_V4Kd^$2(D499Npx=H$zDf^xJ=7sFZh6qEQt3}oQ>S}<#Zb`A-YB~c= z6@+#gSsN~^?Kl1V^b|(3cz?&Yo4!_S`z4MU3N#9rY{PW*wAJdY;^ye-9Zpm|9T;o0 z$Vgi$9Cd+AXaely%7?qCPYhcUB5XB{O0VcKJKLL#uzNMbD%`r)Ds6{M&yQP zs@?v?%DQ#qq`dpXD$IKJo!KpAOzS+q$}L$%#wjaWAD-08_Nhz+Qim|2Xw zesDE4Y83M`Ta$vmXz$l5QQ3W9UxeDL%qz1OyvsFwGw=EPjd7Gui|7h$J)q*0BMfs7 zv>q~!xcD}ik>wIz?hR2cw8&2F%cZl$w z6e-6Cxfs<)xqQk9-9P#O)BU?v?R7f0bjp++m)Zg<97qoH{k`-GJcaze}}TbQJcw_R2ZZc*~tfN4Cs~cI^`}v2%E= zy`N3;c>lGA7S+$}tFziwTH0SfIypGw&1iB0`xM&o-GR_#9t}JKy98RbG`#7Fa@J__ zgybiaRt}9QHRGC>Lr|imtGheF{t{z&Iy!=-6oc1)J z21k7}s~=Nxz{A=dZF9b_QGyw9*y=yKGc(s0h+>pEi*D$o7@Hd(oNHy$bI9t|pA(Ib zpn)2g;B0Jj;^Fj4>(2?=|G3!1L((R>WUnyUJ+rgYu(cn$_0HECwoHal%dd1^dJ5#6 z6GhA&g^AzZy?01oXP!iU-LjE7@n~kgdmEjHFXF;aT@KjtdyQ&qZTPeiBODGb=xy;W z|L7Qs>m@#R9&a)S1+q?LV7G@T4W{fjzCX&r)~I5(^H!xb0NOco&rWJROiL-?Rpv4Y zg-ZU>7tW3I(X#yyl3Cq?#hK3%}>$|+>iFOx3*sM@txwxl7fWzo55yF3QD%L zj(!u`cX;coE!-StIi^b7^%=X%Mth&mwAJqJdyRc>1*-&&Kjvg~`s;ajtDTKargqo1 zTT<}qWB7NyTO<$n`)BvH|%15quUq1vgUX1X*KKsRnY-_i3_4OCsmFDeAs50ti zJylb0>Aj+$1Dux{`Lw zUB^G(KXb`GyrARHg@5&oH27of%MB^>OD^=F&;NAZ;%Iby_8%dw_#fTk$i&3CA)ya<9(-t%rkhv2@;ll{uaa2zYFm<*nl6UlaWE%Zy|;1r*DJ zn?JFob?L;AN!`5ts#Vhd_HruN=h$Zo8vqASnTJ4}Nmh86Ad7^;*ock=r#q$?HCyuK z(GK@jtBQtL-S#PkW}o(9epr2{;fJ?0dsF@S`Kwh|zb{iw^Fwm1{Bb-9gNeZ@(TTr@ z?8cs&?@O;$jO0ihE;&|WzMAzNDMEnJIwn+c=+XSqQRfq2A!@gst*s#^b<07&tZNOlsdk%$ zFSFXV92(BlTV|Wre%Cd(TBe5XYI`i2cYY)+cIFwHv5ZFhe=ULvEb~cj{F#x7jJr!Y zTE0`pFd56h(dUbI)em9&3KoEg!~K!7r?za@I^3pils3!}6+L^Aj%~YfsNCNBi(}o4 zcWoD5!Wh3>kgMu=-Enz3C9NA@{xVBH?&3vX_JYPwI8R;l{W)iuSI7%_dGl+?_~^2F zFdIf+X4Za~JbUVs$1Pely{mEUotlE*vnsLR!vqmsDiuyfg#(nhLU{tWwd>lRS=e$;)ObI?*X7H4IQ%L5}L4W6w`*N{yhC#D?jae0H{ z2?!U=a(au8l9-6X#eZ^XX>ya8`8s%N#k$U0t zkIq{?hyNSkm}P3&F(!FrR5=7ufwQ->^RZD^8EAc6e1z6B>Fb#))3&p8Ll>EJSlDd| zo3Gf4)Xg*u7Y{B$6xM#6Fq!EZH!h&tz&-)b+HY0K8t9@cpcqAg{ za6d*sNSqKEwjom&&wA&ow)!m`x%xZc{F3=kL$^$gVuUhy?{+(INie7GK^oy0$pJMI zleR#7i_Q!uE*YaU;314M4jsSTVs)c{W`KLqx-SVnGUiQ0k_9Da9;GqPM(`HBBO_5r z3}vR8yESpSMS56g*^oeP&{1BtcyY^=E0-<>d>s5T(O^o!qep)js1BZLXzZ!kWmJ`o z!;$eVo$l)_axy&eQWnWsWqe%X?-({Qazt7pCVPCeRyu1m-xP&AM5wAw9As+R?#Qg! z-zzPvW=6aV?tt!Ke*3XFrjij5m*?6bUEz-f82FZrOY4WW!@H5JDT^go>PFHdHkc~q3)_%i8j@9LVG zRf-{+5#8%5XVo7Zy82DX<|m=ZDrSHE`sHnLak}DW_0@q)E(ez_aERbpDQjGM;nCSp zNm;pag7@tJqv7e??V{CBpVB_Oi%Z)HN;0bD{;5~0v?IH8CVF*fs-CXion)G%{8(*# z%5W_^Gy^;PPwsZ?Zr^)%3*IEFXX&yoZ6rStQKz2t=(%N*XH?1DCu`TOTa;_yZ{k!_ z`SM=<{5f-$<~X>b!Dg)aFiN`3T$Yx_>=DAtgHn6ciX1$#LkjY;{C+X$;PSoE0bUgq$nqr}toWjt0B2 z5PrtFdNP@SB5_~-GXJ*PO?HnQHGJx99~*B6PtT;yiz6?LjQE+1QNKm3Vq`UE+#{$zm{V48K*NPkCNe@EppV9xBN%DI2vC`k96 zn%>{ovm_-wAK7}g!xM<@%Qh)dedXtEEgeUlRa4PX_455`0U2gHJj}6Xi&C>~nnr01 z7YhPP`$aIY{gMLLpne;UY}A4Uk=^#A8~pKObkx+93zXBVLJ_4&k|nfK7If>;qtys1 zla&N1g_3s9A?L(afKgWlS7c0@#fUOzRFt^DUlwWtVzZzi;54usV?Xfp${hyqMG+Hi z{crs(;R; zC^-Ip&k@1u>0v!6Nd8+$4>_W7D~r>M*;N$zPN;Hz4d?uO3Kqx6N`z2E&kfhi-k12w z(*}0z3%Xlpbh`^JnJkS7%k&M=^HA`2&AOpV(O0fTq#vK-Uwp3XqivMyfV&4Uz1=gd39D zTSkSYV1Q<9D(Gu~Ix`FH~19xmg@Fnw#KVs`g z5PH|6EtKtG$H=eZkuF=~sHDa(&%cn1r90ERx-uY*W1H{c6$vU-2}aVdn{L0Vz`g<` zX55CN&fj@z)FPtECXR4vcyOOghP(iEjWqxG=8du-t_cZ2bvxuKu3D9b4bxSR1-c6- zQLS$V_vLAcreo>lIqkEN`n0|>sGSCsJ=?yPme-?>cl!4o1=SS&uWW9D(xq}{{^m(u z$KxbdaV-?@Eat{>L|@?OC`%Gr{m z-@I8ki5!mzItyj?%FH&iWQuM0-C=1&ob-@hR0tshc}l1L{1dg)LES~@-7*LJ!4#Ri z-TAq3Nl^i>2`_oq9767WU$&M>iez#Y*M+28XVrJVPKJg zCGMDlj}%Armg4Ths3gRAR*IIQ0@;5QIE^R+5kZN20Rce42bT&Nn}$}*;6b&devG?( zd-m8fkD{ZZQVjq=zCAhFxAhaAFpt#MV4QdEvCnO3L^nU#nf(18Dk0XOX?#_Q9+hS> zY8+8-hjrt&@{H6Co9U?i^iN(HcfqE7yr1Wmu(;%SH^|e7Jhr@=l#jowW48aF*F?nl z1?@(7)i!&hI$+NQg_kWOA1#&f&>mlSjDqS-IButYfyX!!vrhuW#wMo!!rFT@RUcq_ z>g?GMn$1`tLj&90^g9m4vVXMuv=adlTnm&zt>)gVvgY+}zEQ}1l8vIYx$f@nObkx> z|ET&7aIX9I?VkoJ3aO;XC{z?FN+cm8B}$4St5AqUDWhd&6e?2oNW&;ALfKk~kXckV z4WkI}dFg)M_jv#R=Xj3ex$nl$_xJr=pX)lWbKLbtGYnx0u%j$55Xt4(q+KYDPD8^d zbe4S~q@Cm>4OhjPr`G*G^FB@k>V6pxQMS2r+bf=#UBM2}s6-jX9X$%uO{~mz3eUHF zZN5RuyP~FMA2%1b$Vkq!XFfYFFOPa9$yT!!O-79OC0N;KeX!0D+i)21pZG0%xV9R< zsDSMYcwRA^?+S32U4Cd5jJKA|U#Ug9!iks*(FMFXh5cq$MH1!KI&1&+Ihwp7-^YImVGm;-MD zMXaC6^H?6%jAok4)e~z>fW!SBZ=1qTcv&>!>MF#^w!RJ1^8wo&9^KNF;?y zjGB&GyLd{iOMmF+&z$?I0^_V~MUu*8@D@1Fx~S*ci@BFXsf#nc3TYd@)b`LDsj0sC z>d}zpXlu$iAQp@Sf}qZjEgA*}aIcFX2O*;tsI`vbD4-h+Zrs1q6gLYgpP)q`buX0` zTr@c7lu<#1Nd3e1^qAvh&eXp6kEa&6H zD~4%rKB!4E?Uj@^9#%|~lq{0;v#Q3VsT{JGV@<6woBqLB`iV6@Q-JN(mj0M4rC8XW zHD-Dh+gq+yLFxA#oLIFMJ3*zc0viH+H6?$@S%#*eQ>RiJ0=VB>8ddq3_#wVz-c3yl z0Zm*ctiWIJ{h(9YArg#O&MdX_h_jxBH&VB)@IGyHV0BmsZ9Y8~d|-;{g9?SL5@Bm0 zb)rt($kJme2bv2^5m0+TjqHuX4V@Ob_kiL}C6j}jdu2wF-<+5a)+JZFQR&z+&o5k9 ztBn-Oyog^H?D>>J)HuFCm~!d&5so>4tU_LYz5e=Zvs#HHzCFJ$8#irQ>diH`-Lufy z)n3^oQsBj-L0R)GOD;t-H{9P_DysHYqbo(FqC6fZ;Ynp+R}aSh)gJ_q{lYaf5k=DatU;HW_?iX|*yl!i2|+6p0iB zURf#2v0g$wGl&B-Z86lMbp*N5f-CiZK)7e=T+X7V`p$W%tZ6%x5b$hcsHneut9f0e6$N3}RgT>z&}i!h)YPt-yDQW{4-2Mx@Px zj=l)$7tiG6b-?O6ixK95e!-O`ZcB?K z*@P*R48?riskIjl=;;k}Jo_*hn+1*!R&^j(!&!J9P_E0x6VeISfZt$c(r^pXbme2m z5;kX*BU{xkjbqkpbleA7!%eh2el1DhXuOGQ??M@#NwG})b$sosGMm%M<{d6<7fIv; zgF*OFT?LB>ejV%Q7QGFXy1b;!%##~06qY+WeH$Rt06Yx%>*Y;-BOi>1?N45>>o_|o zrH)F3ju^0<3g^q#E3?!3PAcCIvo;O#BpQ4o2)L1-D`|B!Q(d1b56VcAInK4Qn3dIR7 zEyh&^aqwc%3B1EY_X&4rFo1I*ZASV&%N1@O9#%|%K7*c29(WNUU^ZY|yl@-7%+0Gy z@X5FP!SGrAZaTWewLj<(v+?7-nalO9v-4WaLwx0T#c-#f3A=cJI}I8Y2BvyM(X+G*iCjvJ$}f+SOe+Bs zA3Btn&=3LfRjl*y;hu=iEs}i0qulkBTV<{uPKu@`8-*L3DCt1bq)V;vSkrUKx+($h z`2&ddfGle*-U0eBhflxVl-=&T7S=Q(89shKHLa}y*p1LRrU(IC%8*yUQ;&JEu>1nr zAOI}b9f)MP>cmCGvu7)2!JL@J!EQ&!J0JOT)9z6$XrUdFqrVrh?SK^ zc1=*@a7?HxrMqqP_u9aAdcM#O4UIXZR{%ZNH*hgGw}&?}#jFL?!NJ~?uw-4Ie?o!? z*&C8s`VX*Q!42g^KUqcx5t1P!uii0>3+0RlK!?Ohr*jTwDuXB_HNz z7}Ka=i~oBW0{kc=42O>SlA}d&m`|@V`IDeg-g5feCz$M( zB9+JPedRb}HLg+S61iPMeYygic_ef{l{*)+ceTgo);IV!rhROnYj~?QiJSiH&f3D z5*SNJ>^`Z6nnG_lSV?dw4^lGR0O}%YqHg#bNxv)D(p{Tp#EM|51&D>lL`(z|+*yH? zg$li$S@M)dR|=h$AF%LtdzkRF1WkLPa+ZcD&4pL=>J9F*AP;D!J= zQpn#5ay|Y8EcpP*;XiQ+xM|QI{{x#g0j~h_*B{^j8vE_IVVgh~!M~IF?G6{zYT#W2 zcs;~VTEGE#c{+#Q} zR&@A!K)`(Bo}v+R|NDal2NjvUEC3@(2)9od!O+~Y+7 zWK@iKP7+-n*=eJ@HIqw0Q)P>qPd6cC|MZI?dQine1^*DAn5+`(*?j?1s@%30A+A~0CJ%p1@S)+<_ta$-$93Z z6oyLh!ns>}41Yr?8y-KP2JkXHvvaa^ldb@}0TMxeH;@V+5kFDZV?F>gj%n*sItNHQ z!dm*U`@}G9zL4CoGUFVZv=H^O&>&M7J3{3cST&NVn{4x`nK+{s8(i0_T%nMqY3(eG zlqfOvdgIDiQG7E{e5zt#fJ&k) z-rsE1y1#WEVI)KNVoAeGgE%h#M`gHFic3h=fIZ$N;5=sdvD-7@VHFx^cf!`TlpuW= zHwnV|jz*n(&aFPZ$+-clEMc5#i8Y@g7a-j;WobcL_6fElC2-h)fwfr1xuO|paM`5y zpOPP_iUq`i)I4bIfadbVVHn}y#LWyFK!0E&m%jjIz>OI3_bsjzzoobp_hOHZ_mF@1 z8yYrMrJI2M$#NU;Z6TJ9?3qYETa`brCK?+z*dLf8?oLTxe+k9{w#Fbx?T&pG^fVb$ z1y2FJOR>W$w5C``5n70?KpL`f$O8jE5KqQeO)&Pijdcm*(Xn9Yr;A1+tN9X58Z_UA zmq{*(PfngsuIrOP7}{a*K`k!*8W?G&u?|TJc(dFBV4R-5zj^VMoY~b&T#>?vxypq# z7x1UgrS<>d-p>uorjI($u?Dme%%)d>c;Y|S8I9Y;asgPPj7-B4^+;kGGC^?$I7);F zP)=Zd{t{L`sAXoyEFN%_WH}k~ng#9U z&EubMCEs*W`VksfvhW6LiwXnONWPDf;oS?DZZn6k>8+O5);kUyxb@Qd^nXqZET}7Z z(Ye6|Xivnxv6Bytf^;8U+aR~2pP++;cAGXMbK85ej)Oc-hJ=9D)lX*pz+U1K><~!w zjj53G*MKzrOE9#(?rf$v>l)tU?0=m?zS8-%aKXk}40sDcO2tw)&@d2eVjb*t6$O?W zJd)y*Q5Pn-!@#8}(G#OjoJ^p}%6P=JLNeV@;I2qUQ!x3XyhxH=V*-ko8N5VEJ0x6h zb)Rx=hJ}-ExY-6AG!qbNuq!EnJX7s!+@;o@0*pY^*1%>3P%0}cE5|r5R*Z0wBd`X0 zV$}Fhw`#)z3w%E)RZ1!(sKZ8FPGr38U4+6lvfQMAA*_s&pa0aP8x-8%n~fVinHWG+ z=COXzD!+lcO)G@8ho zJa=x({xvtVTUuM!@hjT5tLU69!K}31d@si_duQh|5It5tU;FQzc`n_I&xm7{=ezLM zbT;4&9B>F&sf%ae9win&EO{|v02AQKLU1AF6yY5FxW~>OYXsM3>Uv;`LY4G*@R>Df})| zoV-X7EfSv&kd}+E>4Tbrj832!37Lx8;zQ@pWeao)D2xI^z3?KVQ71cBvJyqwg&%&Dq}|K8 zC?FIj_4Z%kO&mzKAVK6jB|J~r!U20pw26C~xllG`+%F_v9;^FgbpW{Qj^ z>Gs9&Q3%Gq^=U6Q*T`>>bm05PHSq$JRAMQ>B)K_GL<^ibKRt|L#ZFDY-LU1kiod@D z1w-xR$ww8lYh`3*$uWl#SRtAAq8LtCDqQyR@~Tac^3x!81it#^cKLrq(DP)DjdFlouhW-R~UwGgw9k;>wf4cT03Cc$MI7z0=^lbm2m?poJ|IZSYzm zD+&vj=}oZfkPcn%Hj9gf=3$zlRWMm#VqP*j`+0V=`_#nF{xS#bNhM3)SY9jZzlQAq zj*;&KzQ*NBaK47b3JR!em;utsprt5o z=)tcpH{U>~dtL3V=Rki*K#<{s--k7Q2_+1|IFR(BmbSJsVKVW!TqztF|B&qY@F6$D zIc#;tAvWnp9Gq^*?xE^{3vb$9*QHm245hK$21AkQzZU%4Hxwfw>_h0C2Zq4Ffu=y2 zwl-s}LT5A}2x?Nlu;hP7L=L}ZCvG%i*L}8|=ttk8!`h5HlokX?Wi%D53!6 z@NUKC4&+?Jq!KUFf9bBm`CHrIGh&c#$%$|32IRagXsPHopyZ;{9)bsWcQIX9!ee9zBfhSoVR-E~c5hs2nh?IiW+?(rTFRh4tPHLYlb63sX8}g=D{ev; zY9k`8j-orJmycKH!J|hZjfZ0&{>q-@%>(CcA>$5o93GP?1!r2~`RyKsI<&MH1A|1$ zm8&CO=)J&$D$F-*kd;luY+D6;%`^vQ!2jxsVcPR@;r67*!a}s#MQK~k!iopm3O1zj88~-zjg4rGMq<*!9w)0m_S}& zSLD=RQK(ckZN903&>8E+@8XT`SWHId7D@ADx`RHs7|Qu2@zqsVD-pE>{aQ74vVO^d z!5#Mg%SNQxO%%J=m*zy8KlqWI2QsfZ4viz`A02QP@ukh!jzgCY2U?fTd(K^0Ni?t6 zrfH&RXZhKsh9g;a>e8>l^?njlS}zBA*yQd70N1d>(%BJjWDT103XHUV6*&l&?MCQ= zWJMYW9y76AkGTE$YHH{JGchz^A{kb1&YhaDWW7D;E_LhmD4zR!sHL!Rf%#?&^5sK< zgM~A!m@P95;J7jgVUg2DB)*N|3CGJMv6ONxIG1#~#&3~ZBKsfMpNXNJK=ak@FWV~c z_`upQ31w9j6J+<*!0Ffu%MorqzTMb;aJWl@zjX)xRV^;PkB5-`a2Z#mHvDBi9h}^C zRBX)1FaD9V9`jbCR~A`}3f=D6Ix3t|-P(k4ymg3!yvs!b$oCbhb12=R_cw#AA9@2*M_70T3A!PRM z1;z$Q@IAWJ)f+d4;8N&D22b}7#hDV`h6VmG^?olNZ9W_e)L-122~ z(}7=u*a87;(8g!`lG-}D7wJ{Ia9JiCjCg$LX=xX8BlfD@D4!yDUQg1~;}DFF702?7 ztSqn?Yqa4RKZo%cc*x$)XSEI%_g}@LSK{YW7uKsAW=T5PT{(FEqs49ZgC5^^jMg;S zN$nRu^dzowPjlOuX4j{z3;dP=IV}LrUpe>PI z%{_OX&uwPN0n#f`1%{tE~BNNzE^;+fk!WzVXzxwzI33~ zY0C$CdV(68-30ZkP}$HJ`l4E{lkI$aa-sRZZxj+)T%jtGsecG&%%38 zVk|)DU=Zg3HdJE@77UXhswoJ%ysoLA;)P0{lGn0>y?rzs?o75!#bZyn9kQHgOkyDY z$TLNOVCm8o?bU_9kSC*H>QvQj?JawaYq(#ZHoM%hlI`>6Im(--CJP&WR)$`9@;TxD zeQ!dC=ww6Kr+T+I4WZ(4XTL{Pm$WY8=H3eiYQsZ1x)!f7cJgH+FL7sL&umim! z%L6wtOQ|YWHhh{cKJ1_Wj?XiDt+?;kR!=Iknp#?Mw~btUD3LngCK`+?D44p@9!vLR zhhhyl2IIull9Jcy62vKLzO~Ub+il~O*Urk>7Zl6>*u2tvc%T}cWxUKa>JNbanA_Ow zcApw=^LN{pm{zPj-_f>l`)6l^9Os!R+#gX+k3NW>^{ z7r~KA7*N~oI&iSiw@0z?pY@>3cBrE`fP^RQ=D*3N+IB51p}G&$u>J_bz#$xdJ*FgIIX@6dR?sWywdRvP$#f@ z)25pk+dNy=1uqfMQdf_9TtitcDK1vG*_pCYMkWZB(Jl66 ze3#|4_w8Fa8&3_xJc~`u)t@I23zUwt&OeS_C+p@chcACXSJ;dCQIO(Zf5f>OSg-oy z1IzmCtgHl2oai-4Dlc`IM2zuuEsTYQXZM>o$anFmsJSu=2R0amoa8f2D-6T19Qr~MW&6;>a1 zUT_8N5&DQ(3K(%?s=`5hP?#91*||#ouz`Ulh74h>nc+?ok8^zwKwx&V?1oZJ*GUYC z3mJ`wO2UJ(&Pd0^F=OW*k5j3`clY239TeHtCJ_=Y??AT89DHUR=W^X1zAfue8aU@l-AzpIb>;RDZs+Q;xhTC z)9Y{ZOr?h(bWzevN=t(vpP?=Rb7mJV?I>K~8aC1vej4TFA-zvuqB~LeUp3(QRoQUi z$&KxaH99c7#*lED?imKezy1g_*@I%F8;;xtt1s>CJ8+srHl6D;_511)-els5`LfD& zv_%aa8>RMC^nE&excgZ{Zn@hr?FQ`)S0>^jc+BLJw_*Mtf;nw9dVaKsXtjYcSfQ`n z4ZsrYHpbrvWOpPUWGoG~JVV*?6O=v%Sk9hG2l z>H;Xv!_djSY}qcfu(LdHOVed-o6{}g0{`nSd>YvYB`Rez%#=K;8eD5H2B0LgEF3vL zUFF^tAjDF3^X4gLuOw;-Cu45{#zl)4OG^<)WKz_Chg)7(cZ+cycj()DTW|B9?~{U2 zZRCA;Dwe0%J(+O@<3u_F)zfN@i97FExHRk6RPjRX>!2g*%sz40+705y0F*`-wpzA0 z0jNC8ZEg2pOs)4wu@et9ourxrPM)7jNlGgQv;;H=o-hE{Sa-Vym&WFHnJz~;7hGXh zNJ#$D-@hCEP`=I_PCtvd#RAVcgmu<0RW7?LRac5keeBycabFHA@Me_|y4}pf=A`Nfa z_fonuuIT>4em@AuGd?cPJ6MXvV3ba9+FoblxiF3y!cn`9-8;S4XbZ)XJamByD|~-3 zlST>@j3KO!b(NJbn~z8?IVN7)32Y35_D*c!m&gymAy{P9_OpTqJyM+u9_QwUV@tQ2 z(FLF1+%LUsIJh5jBt%8M5CF6jqt}<--d#W`(pEabuss}KvlYrj&^*EUOG?M`M_3{_ z&e?0FvHbyhVfFX-k961-ak>spj${>}_HeTlzZL=O@due|8D}RmuIUa{olY=TGP< zhrmM90r1Hb1@l&y?)cj){rjygEu)s%W?y7fp?%lJ%NO*~R6KM?-s|C5!Nd8d|7@dO zo)xxqXx7xgup03;+PZ4hRqT$?iyk|8h1qkSS=d&4H2iTMZQZ*PpFIl$9H9Xq$`Np` zhK-;Q36aD$cYXS_ol*YrV;CJ;ysIL7TO7=5{m+L9iEkHEn8~;P>ysvqk>gvYaHd%P zyKxgj-AmiY0~cWzi^Rk#(Z~xsoSW^vvZLwa z>-n3D;XntgJsg?IpcIMO&_d`RIkSi;lDJp+NC%iV+B)yv9$BIK6oirCg8qRZ!gj44nM1BCd zk28Y|VsXbz`?g_4asjOt`MZ;IJNP!78CRvYfpki+m4`P)A^wzp>9>U_OU(|iC1^*D zJ_IN}S}R3$n_JaV2YLo}2_g>xw&)u`+H)Fg^#@0j{t1e#DtM>fjX$v}r_6dRR8||E z`??4a0ww=q1t)CHBK?!+v}-;vXGdpevm#ISCGxgtZUltDxAnVj@kU)ZxZ)Hr1qOqX zoO~WHZ8~EJLVBy)xD9rwN0CiKi!A!-F!FOg6~u}H?SUwXuAWbfG{NzUH|>PFc>Iwc9~dFqG2Sn$Z3s#e8h%QlJZO^wx=tt5bbklfPBBO{ zN+&=2#*3vF5I`oRbxQ+y*!gC$=h8i!_r!=U7k&B1dA0gI_tLIl|CLz1mVzPT14QmG z9u#fmz$_ww6F{C{C?9xw*#InP?~6B;8L*+Slg+Uqfs8=~4&s2xk2IJyWZEo4x4HAn zo#lZiSV@hiPtRZ99>IXTJNr5edHOVc@i?)kz=@y@pR7ym9uI?UJQru<4qSF8ovEDT1rY>VSU)Y;j9 zBf)w9+cq_^0&gu@rJG_lCcJr}w){n`K{WdLbeIZ(>ktVYlPBe0;xQ@&-CjYf5L&^R zp)~PeWFp}Lrl%jX`O58ydy5+hd`$2I*}}A#!?fzmo&fce;J@%)35(xCc<$lWCyQ8Q zg^BV10v6>vwLZ9le1(uRxtKI9+mya1fS-#Nl_EXSAb&#AE81^CVd0`rIhdWW9s{Rj zW5ZP8y!GClwd=3ba@M}!>C@AZnV7{#bEfc|r(dK`pBONFpe$JwuJ&_d;l_ECxW%BK zv%0qpU#1!5y5dE{p(9iMZR34U`O5&$G7+EtN0st|mskOUNkr*#n4%yTaMm$Isf=*P zCV1wlJ$qkrFGVI29bbC;$a!S|xR*%*48$a8!2)7DE!)w9mta8gn#d_C*?Y?#D*@(C z+%;rX&w#$E?&uWYTGeG^`T>?8o7ZkGbe)L2?o32540X)d z8B=O7>PZOz4j;7tOl_AZpMi+(^7q&d*n%h@I`q-wB+nby8MhCtH|~>t#yxhvU`cLd zepgBXgR;G;tl}yG`I_K;e86Fs*8IQoT($C=>&xKbN$@)^Hu#z#jwZTS&!oIufj0iynQ01qQBZ}xs%_r>1*Rn_Sv7K)pqyAF$ zok+oA_SnUxx;((;Xw;c~cIQwkRt!CKjmN`5a#s1*pGL0NE{-hFtPX5$bBQTn9X*G( z7@I^U9=QTjfzBD(wlf(}$vhuzJrB~A3Re82jzbTL!hi*-ZQk&KldaE}R$_gaYMi3T zmZ9jB)_EqiW9G!_@Uh+{3yRBb_PF+IAKJ)0;X5(m%2cyXnf?Hv>a>(WL`_?&@gR1> z&;ZkB&hzWvvC8jw*+^MIF>MEP9Fu-;ZF6d}VR%kHn;GZ67-$+u_kEn_-(ky2w(1mh zLDd0q8AO?fTHjJ7+3r!-xG|B5fBu|~egtes+ng7l%Cy&ct`6y(c>C~IVDIZhKJ~WN z_;jW%d(eMvp4zE4x%8p7%zKdHD5A_8yEJGzB;nmkE8t3;FmLZ+%ILv(L~*dIBCnJT z%VZVp^rfIgbeh@tcU}_)3H*Uu>&7NOR+=kT90c6*>dh`C-?N7qpi94m-PS3z*tE^Y z>|Y3w6v|3DBw7LC6OD?i# z1%dgrO0qGCiNyay%TA>ZF2ibHa+E6$4sXqN`|`5|e|^YnXXrbhe=nSeC2J9S(CLmu zW#gmzX3#-^gr_+V8pV3|^Z91Km@K_MKmF|n?$b5D@5%H#qvfGs&Z}A?MZohmnAT$& zDna)RVf+I5p(To#|LV_jA3Q)$)7#-qKuRC zV`HN(toT#vA3l1t5`kFQ+{9uXW{n9OEtLU64KS<|_QD=ujEqU9sMqUq{ZQ!DLHu{b znV`)F)(j8s-xmO%i+(qO#W?oeFbH-8HhP1SwYNB^$kzip(qdR*nVHvEce@2|1!#M< zW(7yVVKht`$E36itG{S4u*YzFS%MS|JfLN;cjT(UV_4+K=JaPaxlEi#44qAL_6;zG zlYl6Ihe7{~QH3V5>EUCPO~;zuvN~XRK~`83p>Uq&M&xiLfhlb4WIs8qI0bKoISh$| zsZniC%huABOB)k{6d%6cJHZiCv=Ihoj-XB$$bj-u>rjI*>5{U-Zof2Ix5TQ)|USs0D^PHXjA=Q3sB|j z$Md72JkW(flNSty3Fh7~G)!H-Ym)`AVtfLCaPw%%-+3|BdIP<&x=GL!1p;Eli34+l z#z0UB`?KseG=7#VzK(qs2gBjiDFNg?_ev?-jBkHkHCcO(wob@7*b6vrg1QK%C?tHm zM=!S;P(8j+D||t-JowLky2#(@$U)r6m&dCS&B*w+<1;Lu;PpCv)mMeyCIDP+Q zLG6k8s^KOZYqL~T?DB>eOBg*r_}A#jk=+>k2>#^tFa6YTvF^-F1*0i`&lo@69=B_0 zhnez(0lso4kZTp&CSe7`JBu$ zW+;24YczN7xF$w+r19a$_Q7Xf-(|>_?tW_J_zjl#1+IbxyNTs~vI&lY9Mx50i)LBGR8x}TeS{$R>4biw;nREksY=4KuLjYB|?IRKTVwbCaw zZQ@Z71F#eH`r14O*|IM5ShHDJ_U+tRnrd9RpX2X(^Z~wsfr(%{=sx@~1V-q>$ra~2 z`4)f37@iv3J4@xk&>As5l^0x#HkDq=Q{C<0FQJ;}v+8S}td!4cyT)awYXkXGKZNt8Ca9cIB zwFA*mC#TDxfznV@^Fq6qm@Z?kdTaS9wP&`6#@L<=9pYAy^&hl)o1Zv}RTVm6FxKO1 zo$xAjVTCFP9?V=;)+lU%lD;;S<_A0)QL5wFyY%#lMVkWr@1MvOx^}nc`|}VR*|Mi9 zj})z%`q}Ct9s8Y_d$n_%wnEW$B==tQ{IPvy4Uy+SJ)Wn!bLV?(XX&$mvZO+Wo9@PS zWA1#_CuXw(idM(JfSu?{?cg z0zgsT4}++aOP2Y9x#E2GIpiM;89prODhsyGXJ%&RhTi&Q69O@rq7aSvyuD zKK-C>tz_)b&C7M#8Ut@kPxfWg06hFzcMbDNVSHQ3K*aYd6GQB{nFLUQt*xzt8m7=G z3Nb)(5=jcE91Gs|{y@5h`bw^9BxQxvc|O=1=MUFN z0S2f>>oxk80pP~AtE`L(lnkzM zIKJJucu^^LrIquKt2{PO#%-ut9oPM5(YP|?zI4=J@um<2UYsMQ=@@zWSJwY;`A zgrTmLdX`)D^}2`bH%mKVh^b|oi?M|%3Y;#Ver!H48h;qrj1hB|2SAclnW7>hTnr%E zC$kFVW%lVj8BO1~87Wni(8IwCSYIlCVZ>o;( zJHw$fZ7usiKe7ZyzY)PqP7}te8_s?|I`-OlGA6y_;j+HUscRy?PunvULby}zX!~kp z=KHaPWVeFkG5zi1J|*``7W;~CzuzVQMEsA9)m#qrcU)EZjOdv5xrYKu@*h*YnE8nl zyOzn??zi5GVQmQL%GwP7h#2)1%5l$q=DcqZvFeL{B=zvYfc~MAH{{Q$s&3o5F!r6y zO4LzC`ZBE~OWFt-q#nJf8_@EREU2__VsH2I*2U$&he@gi?*8sAFYtB0k5alU*JnIx zQT(GGoj~gV4OPKBp%1+~Mfq&%xzDeAoNVrIWl_<8PyXDKnr%^FB*5WkZWAg?VDQli ztH8;cwpg}*~FRI zWqc2!k?KLqEbQVmB{sMt4|zt^Ce@qc{|ZU2TsPGbEDJ(h_-RhV6}S4#^0Y_gK{E%$ z>LqqXD&5+4Ev7T!hr;8JqmDpb*_Us=P7Pmt=2HYM_p}u#(mtrOElKK0Bg-MP?G|qz z>lJU7iAnDF6?b@0^h-ChWqIWjlsD6Z?m<-MjzssTDb_?l*%JhgC#r+S5$}DRvsuqn z?IO!nthS3V`MNyRh$rJE64)XtHruhA*lP?1))8m15wK`Y*@_O0l|i)6VyBriXHs?< zbkPtsn&%GsFW>T{r~?_DtSENs|Wvl+M!XM*7|9Dhrnf2SXh;1BQ% zmomWqYK!goP+Kbi)fGVHhP?B#7>6vzCQ;3p80bd}WnjF(AcHUx&8JO)BEb|@)D|mS zVL+087aF#P(}@7*Ei@}C_31qK9z0k=AhzFq(cxaFP7Zpq|ViR8B3!gkc``=^&s zzFd0WNEybsGk$;|xLqx=zR=Y_I%WJic>08%fM9&~TiEgM2mp7?Nr|x-Ok(f%1w&!i z1*cP|x=!UnFPA7&506q{e8CNiIXI9;$bumo8jPr2OI;p_o--e`3iti4*7(T|wzGh@ zE&`9$H5~`|$;1Fia=T&O!<67NQ<-9gJ6FruRoA;ZYh%gu5?I`2P{u!Dn9;NnhOxEt zK=Vt$vkyW#9!mFBZYqkr=4uF+upv=Vvt>3qjs*`B3t&?r2#?-XX}fPV#3YKz1wOj} zHbFWK!FM0~wzQ?_Uz9#xKu(dIHpX-qzOE{t^AsGl}!- zFG19UOBFJYgb+v^Dt}?RrI6!UE8fYgEO!SvIj?1E^6xM0=hzxDLc(`dPuB_;t{Tno zrf`HHqQjEwo0)8wwWrnr3&{JzvET)D zkrym;Cu=1}jyFnQ_foM|@mfJ>DRv|CfEALcnJNN|XoW%Ts5lCWwD|WpQm(O;U2aA=H#0pE9UVtnY0J0pR9SjdlSrqLF+i`Op7(0tv}5h!U)KlPQ!>S*Z>P)|Ic#ubcw@rNRav88X{Pti#9>?f z@W5ki+X90>*>gQo?5|!?W_~30#FqDjG% zwQr9-*y?JcmAv88h1{{?b9W=V`E9bsUwICTu4qhF4A>gyx=mq<7%0MJ@JY*X@jraz9qws&&f$YVtMK#SLQ=w;;-(6Cy4!y7;tr2Tb4Y~v2Gran@xbW-d5{u{fx zGG<&s=S!j-xMsaK+`VQtjyZ57V(5dmwHXW-Z`OH>#a{p~TK&td-F0i>ix*^Z15Zaa z+_AY+h_Ycid(h`FFB==%QCr*j3JMA^J(#mVl;0KRxSTKC*>xZh_bP*(yArO<+Fe_&R|ow0zp?A0eV67+ z9T$hgR(m^@N)>L{fT{Nzv+EE13n6GFf$sx>7@nwMnt^-0I@pF8J8V>CJ5JToe zmHVpQ4jF~SpFWg)4oyaAXlN9|kQeaFTRJ28<%v^M&b9T7{-@(MTM);F%T&tk@7eea zDTgoW6mtr|s*^=f_r3lFbuj#iqU^0Ago5$3=4Iro>qlBnS{g#p-xmFryDag@BENlg zcFl|Os*mZ{hbD|SVLZkLnj*vd_S&`UyEZtMNmS z8WYkyNfgBRbV`zDTe?9ddumLsud*rD+C3lDwX3_ElyhA_(RPftMaRa%yS&!OXK6^w ziorKVPTYp&cUJU0mVc5hVfCx2r5dh?7^D~sBey>mCb>fYyFbxnlP*dMO;&scZp0Z_ zQzZR*-J_!2XXTu^Q?HW6BckNdgB;^UCf9OauU#|tacR^fb=Y%I72qnc&w493FdNoy z6ku;TQpC4tTyOf`+<`3>db4_y{KGmtyu9rdqLIahc6sqnUds2VJO9u(3<-N(Ka1LG z7v7pzK~08F%;#VSuxiW$igG*IPvK=6-#5>xGd{mj$GwL?IOz^vZvkv5f!aQL-$)Mr zqjXj ze|632&28`gEPYp*+SWI}&bZSuW-?u3V6TYE6-3i0ujDd;q(t+?@u9A264C%e!$_DD zWn<6s0@Hf#SeJHqAC|gP^MRcL(O>)ZH{@BQL_2-@sct~q!Y>s}uN#kFkFSjBdS-P& zdsmFrs3X{1_>iB!evMC;A)prBHk}=!-&Pjv+vl<&QmwVQK&Z3s)z$#^E|y$?>JOv3`F4zM)MVPrK?ONne|nsi^|9>#`Nq3hWg_5M$ISsM+}$>=>Sq@Fn&zA z=iZxULpX%nc?NaIMA9cKTcI1QXjg;JDKfg+3JR_${Q|CzR|&m0R3MD>@jc4QGeNkU ziD+f&Iwht+P_BZ20S-u+<231#xt(D2SE$g4Th#v@2BRbJkZd|2YHYL-6+%wlf)_>afLd8yGfT$sE5vHs%7x?JW3ko(0oL z&h_9EY*!K6Iknffug6q*MLa5!eu~k}26(Al!HyaWOQ&!xol?7IzE`%$Io4YC*9L5G zY$W9}iilUjI0}w;;g*V?Uh@`XUh_Y17v0P1dYzw}2w2DjB@*Mo3^xE0KC{wd2>bdD z7Q^Qj=QcfqWp`$c|MI$jO%YoCV)!$70dzG1KZcKgJ)~TUf4|e4#fGI(SX0-WR|A2H zXTLMRsO4&syCz}&cEQLo{zJF^Iys+g&gMig#Y>VcBe0yI&|AM|%}$dx5uXM-(0x8* zBH3?kh{X~c^eJVwERspWPa10mPWnHHSm1qQ)iJ%V)9txP3ai-2bcOi>r4gmPNm71=(Lh9zA3!WwBeiseS%P;K{ZRs_u=Z zZQ6(`A?C#3^Irk)8$)I7_`wj*JyQHk_J%BrxJ{%|-T#~Uhw@#=A&yI`EqufHUb4ja z6IMVk@POuGk%FzwF2TwxJS9R8UH7UC7;^$LltM9TOfDBnl#^d?(e(C*cy9{M=AWYz z6)e5l+o(YEj7v|gg0}_U^fI8^pTB+c#83C4wl;lqmcSO+G6>>4?d_R>ZB;n{YslZl zq^0*oBLwJaNdyKt1yI zM&2ZG8gXN+hAsw5FsT0g7mFX<4p@%_P(EfvxMQG2KH~KgtxYxFBtp*M@wf+#i{sR! zYh%utwZnsLk#sCf+Au0SNlS~ye$eUcBUnOlF{XtLxZ@nhM{NF+A-zZc+SK0`cJiK$ zJCtp#3`iJuJx+mUWTD48V{m#3(}(~tV>{W0f_00(o{vbvkcF@^5XP0FyrKF$3PXfy-5%eI9SY{&o zXh<`+N7Hyz(A1EZgJV0e<9h?67{A{GWJ%`!Xps@E@Z%i*Xm}Ji*-pW5`FdKK{WQix z>o2%4#9)!`^8FLjkvx~1$Y0k478Q%PG^@#&KRik7oidq)+|!8Wlo z({K5fAVyWe)P$W-P)mJ9j=O%Rz|LE3hpW$B%kRlOPt0$yc>Tf3prrwjo94Csn3DW4 zy<1hssO~>}xOuJ3gSjJ}cRDM5yh*b_&_6^%mysrOA2J548@uuOMb4i;KbM_7o@D|5 zP&T{j*cL0tst?-$51F4lsfEQKzSekKvw4SpUCs+ryS1ud!m=56*beY-5kDg+=yVox zu*RsLi9zneKbvWu=- zHGLXCe9%iiaWHsH6TY&fQ8QXy<`x1q@g3On;>Hb>IoS|3?7F~;qs$mh0WDi`JY%qS zt~Q<;(j z6h)!ofQtR9u)U!=foI$eUR&SI<6dnSezD_b(Sc+B`=*|`BTdZ)_%<&eQZl17JU}cQGlcH2ua8Dx2GqBkcJ*kB=p^ z951LC>&RBlTfKH|EZ7o(py6VR`LzDq1W0W}T)leb%3fgVDd|b#|7~z`<+=jZxAu*L zo?`jJgNZ2S@mU!-g${7U%Q&afBDiaQcI@FS@#(qGHzK@rH2qs^4H|F^In58v*x(aI z4Ea^K!e~ED+6Qcdl2BLb&5z2d9T*ol!FJ#8S%xof+0NRGBR5p{oH=XsYPvaG(Hl5i z27K7QuTnh-;vAxp!2D|=gICIQ7VWXWb(9-Sr3kxZFa$ZP!Ph`Whc}Ez&s#WLi+N_> z!Ti`L?+zUK?z>M-68$<*VT1>)dhOcA#x=j(R8*i2+z8&p1{oO<7z8ywvA9+|1?;IC z3P?e$Snz_2qUwON5sSLdIu16Clcl3vJ0wBGIK2V$pYGn?VDQ*?-;>KYQl+gj1Pc}j z_>H`RFT;tb3#>8$90zEDW1z^(0gQ>~%i3Q6H47NyFP$7DAW%{cL#J#b6ywwcFS^w? z^GS&xESQ{vccLaP6ui+@0|t8+hqwRN?R)(@}u>u?obg)qTsjxOO0h;+)qLC#OENU}sL;E>=oT-%x%!LPcTpb<4-D z05@Yp!=^ncELN3SPk(jyWpN0<&VyEO=dW*Xg@NkOv*Q%rSq1RZ3g!ugX-#{s^shmo zy?{ast^*iJS?b2dk$7qvql0aOA4W>*ebAw@^T~yPC|&nefZ67XYkASOQ1z8PbrG4v z60d@e@GjF_nOm8Q51rdj$TilZ(*lY1(;#>6lT^P^t!qN z1FeOMDprQOzca4-;>L-!_$G54zRsm^A7(b5DwC6fI~)HVb$;^tVOD_K39AVeHT!V& zm2_Xyvb11wIK>h7!~B$aswImQwj3}XwZRr)2;4q0o_c$COEAQg=O6dO^(6@6C7Z_d zr259bxfXvy2L|-52HmZ`^d>2UtSTj_*gx9Xh>_+(s;WJfShOvB|80aH$zI0TATC|{ zv3r~Ro)|Oita`Qg4XMTDOC7R9(b)mRt9a5*tFMf)?sl8*Pc-|% z&;Fgi zmw|yjjPlmj2so=WbvJLdsw$sxMMVV=Q`8cpvloHGzYUXCGu_0qGY?Ef0lcLKc`g|b zRIAm|vsaXt->(-rZ6%BpSAiSqD!4fH;EIh<3rz^wL{V(%qhh;zU&S+}VDb*+4Ag1C z)@6K~{#iJ24#z(Hy(75a%@EBbi5pj8i$lK!o_mq~B4VQ=z;8)|--9s(ijA77zm-#X zcz0iYG2uBA{q*K79?u(b>wgbKoWf#}Pt4Yr);NgP@zC@Hjxk2`x=ooOf z+G8bfUEw(sn=+OOqY8rz>qS&&;q_)YI?%G_Mh8GgVkFQ{X~6c#g6B}R%CevMXjma} z5~WF>g&kgkAs7o>&M=a}xP+`|NYfBUfGFkQ2_2|t-v?*2AvDjVsq|41a%uMw?ZThi zJzS#ClaTl<4=tGnTipOFzo_5}`8_+f0VIu0#{2C6jK~GfNS0MmSOoZ3qBJ5fQR-&7 zL+3j_D#7rCPkPQO82ijpQ?YMqa&QU^fZ;J7DgMBRTTb0wy<)j&MWEbAtwTCqKeBBs zww(IJ*bReusHKRbg{xsZsA0Xsm%Q0xtv4&i=BKuWV59NZ(xEw;4gDTzQWpAtgt^YN zR1m&_Yl1-$2qOOUjP2ku#K9ZpW<{a;f^oG!N5|JG-mz}O5~CZ&8(%(uR>HD_^nOM* zM9L-k5Bl;%^ixJQhT$gRVv0SE+WH3$ya!(gQq&z1-*Pb(R0G7&z5^hK_PPwHiDuI* zL_8UcSM8lfT3JKiHp}e3Xp?o}l>AzPlm46J=#lM7b2o-rnGck6#CfCQS9M)bnUz7` z=niFN_|EMnF2eP5i+K$__Pzl*ucECjl6qe-{T=bJ&lQ`5sDMQ{y;YtVG1R*jqk}|- z_bApCcw#6i`y~Q)($jZvc23M{b=mbHrd$Q<6f#8s6ig%&(3N+9JGka%Qg(KzkxTcg z4I4KSb&K?(TaPTd3%eZIF0uTo{kYm7^c@4yx4g8}6AKwjIEU@m)s3-En}xrLKn zKF^)22F0@L=hxTIxfa%lex7lKO<19^C)XkxWIS~6S{R$>pL22HV(`kJm7Exynq0qV z@!|&t@+8nOC~(V5Eo{SpHzHHs#^`=&ZY|U zSfY$v&8%PaAbT+tgy!bEc3Iil zeJQ`8yT}yFMup2|8s(VL-D;&odfCw%uf`UKoExSEnHXTY!OV<>AXD#}8kHM7;konY zCxCXZcdf`$tfzUwLo`=7Wnp;TyU@Phe)Z+kkL){4Wnl`?Apg->625wE&u0EC3A!i2 zMaI4zd=rph-;*E;hu?abEzBfjcIWZhg(Km#wOFy+e=D~J80q(*d?In#&mTVo8KfB{ zdtI~_Nsc<>YFnW1gjgSe9{i+XJX~uu^XOEAbVL5@K#|5#a4ku)>(3)~3AOb9RQKi4 zShs7qugVb0kPt;_QW*=$kWy)oAtf@?BqWk4W5zP15{V>J8Io6KGKWfqB=cM-Lu8)M z_4Ivbt+Uoy>pTCQbj-PZ+*UKrq;7wqR?v91ULJ=vQ_jN5tt zAg^&mqs`Z!PgPHx5CGNVb$0d(^v=mTPwb#jRf8AzSK0#5E+g$qTU_X>Dt`h5&JLzm z_hVV=jE+u{ne}4>rO1l3D~uNTPIQ&&eD*WP@Gv9@-^v1+5%~=fYO#u=~ z0I@=JWM^Cr%4%pkN>&+o$s+FyzHtc@J#cKC+LMWG8c@KtA-Lm z$`GDJrExkwdDj&l!W@G!Ip4eO^aSFUO!BaVzOKt?ITu9Ql}LKM)-IPBA*ZXZet;}g zkt+v?#1zmi*|Ws><8-DeR80@^1&T_18um{_okg}2Nml++U%z$Nu3e-m{OZd36SE>y z%>B`coTQMe6e?<{iq!K%Rl4qSC%G=X&E2>z;Byj40&B>dK|)@302y~2bF~_97c_+p z9zkfd78@r=|8k6;JbBWO$-)bC;37)z#F)pHYR`5+1^ftE$Oh-;0ir*NDv&%?d!ZVs zk$i`lECx2754w-)3cF=WDU8#50wfaBS6#8Rd=C8N?; zQ5+B-5Ei}M2LOr^oWg7J|m(1O)Gh z2nb*%iXvAab|!}Qhc(egJoeXGIG4Tb~z0vduOPTyMfuW9_8sC{T? zXh=baPedzG=&&50*6B{^({|FT5BP1Vk6%Aq*<;PWb@OIVvg1Qk0Z0>tf)zL&0*O2c zn3dQBBNg19lAW+{X=?!#Z0wXj!0!A~TN{m7e;S2CQh5vzejfRo z66Eb6oV*>|w{}I#+o#d1r)~i8DgeDZE;Uu{d_};ibGK@qLJax{{p$74AkG^6gdbNWb)`=AaZ*J zs;^|d6H#-8I|$)|Sl}h=g#fU@2cNd{P71jt@N4PL?b|hn$aJ4VXa#C4n+_Z%%5;SE z1eN9DiV8aAP@xjQbi~_XY7`OvArW(eluaNJBE#?y(~G});g)SO4h{|pI&W03n3@)s zc+!vJ1M0*uf?Ldpf~91CP-57L`lmb1@-xB$P=3+@Wn?)9=X6Bv1JcL=5X&Vz1_Ik- zd4e7@NKJpiHBbkYhM)yPh7a@dNr&;-H@b647}$t^LOI?AG)nw&`MJ!$y}X6WF6qd5?!X@iqth)Ni}3R0c&VGc8p|;r z*yR22eFr4^i;5Hopp8e^HJF2zz62XZtnh-xzyrI5MA#O-DJ){(6nbaITCSJB$pLt> z0&HzD5UDi%>o!4H7gjzM07-~+FLsAe;g!H72v2zcdKW${{6y4J)Bl61;A`Av=p(NJPYc&PRS->SLTWG|H2TW4ANf;m0dTvA2p$8DvTYT&e|~uz&630r_nyk3@ZB_ z7C>l&>&^~Btb-IBL>uk^$SVOG0E5>`;JnahPBa@`0Zw!p6iWWCXl7?u;?;;@M6Bsw zE>`dvQn#bnmX1wGV8C9rI4RJu@spqkhmFYyN7(3PaQ8(Vw+g{`kZ2{3w$*V33eX%RSrTgMm2J+WA&7TH3R3-BX6*3Zgu0v8PpT8 zY#>{n$G+EepTg1|2!)c+0{CVt_Q=i%^H9i`p3FcI76S1rBQb%d5Du(l_cj(am#t3eE)PB}|UWqsbVG zR#a4Q%iqknm(RRvl{Y@@q$8n^G1N7|z6)96B1()<#(Jt*N9QoPZxqA?Q3dntKj&eUD_9g$r~$blDzTcC|v8$K}R z&V=YP2M8{e0Ov@k0=Q@dVu5y+#pC9w9T?CPDgaR`Mb0b%O~M;!jFsWNTC>|^PXE`h z5>*uOcLM^N@-2u>XvdC&5ct5w@GA8JPc_GBN(A*i4Fw;NqPXH{^3Y|Fbk;`E65U7q zF{Q`Hkz@ax568t@(GxISX&;QRi~%X?!ikF*@PPsV67(~uwU?&fJ8aIx>bFVYZFzYY zM)%kct3}Apa8Kb;}QX?ba$Z*^Oig*@cpGHU;pd>)j$N~L15laTgQP?Kgo-E&AgDnW zsG*c%f)zXb*b`A<3@Da~_#wF%RVs zS%_I$nF-`fhU2)B-&1{~&&42!!P*AA?Zm z5x*&I?58OO@uis6aw`cFpE__aZewAW1|O5duf!LG$bg`bpp#)oID9yuZ?T@3<}hla z=^ty2{WBwMNs=Uia3uM<<{s`24>^!{?$TXbx6 z>lm29%7zUF;z~hOKcOhFoR0YbvNYrpJ#kdbzINZnnU_K;g(5in>_adU(2~#)dHeAl zlApFgYpE0K|0Q^}0Ou*r+kE8=UO~YJ?H?+moj)5H83crA$!IqM-@>k73qPaH4Skwzl_u z|IXlD+)~jLR4DPY>E$=Bjm{4-6zc{Hom@5i1~rY14EVOjntfOn5(y|53uwhp>_$mf zdLkCM%pq8~V8$vA?m5Y87y;CAU*5!moj^!L8~`;0fnMFvkOiz}X8!$p+Sax>A5Wf` za4Yq&aW$<;RdwttrEM*6;zHrfEosI<1O;%Ii0-czM_Jig`8Dk9D_r!8TsMGIv5c+c z<40yB*;`00*wOS3$#rpd#tKBNSuLp(g||aU6uWE3R8^G_2=FW34+|4~DQ5z;+wqII z31T{ql$X`r*G=`lXJNK*?7)SNzt-3EYs zfu-ns=gvwH!o5ib#_1;y4MLNq@M{fx<=d_@Un2Uk3Bdu0#Klec#bh3JZDLwJY8_R^i~^X@&UXHp-1Kw}D;N-@tw(G!e3J zjnh*}@*iwD5ctm3$A~jiz^o?)Mk&f>U*K4BGv9*=xm*l1HckI+d*z5^db@jN&j%&Q zHULwAFOAUmW0tKsw{YVr&|&btx8_R3=266M(r*aKlUSdiaMeblTMKmwWB|R7zqnfY z=uYK$xqs6!{$6*v_NPzg? zwidbZ6AP35E;8htAO(~F=BQj(5@&rflD8rv^0g^s3$s{YtpFSPIYVF&L zz(&T&cf>nHp+zdSUlq#eWgFM(>i z7-`4&+?NhNz z#~UR;%+vIL$%gS?H+o2%)+2b`mTh_7q~ykJq!?LP5YiTU;9^uUxK|@^V!`zt2*X*u ze+MU+RD<&J8}N>>Xika=>?WgyW1>Jko|UoFZwcPW=RqIX8ETMD9vwlFG-o+E(x?hH zp`ZhMjZ}wFoFe98&;GFtMSYK>rIp!;7sGQ1hYeB*=uJc$n}KtqYk}6a9yP7I2r}|6 zG1G5j^$=o!GnIpqWc9mU9zrIaP{^vlXW#X=58-~UB?!lE6th%p529H=U}(rs+Cb8U zl9PztgL;7zv~0!zrpetQk_eqxf$ZwbX(MmXajchEQb0Ok`1Ie*9Ty+JG8OG;*8)_> zC=`Txj_Y^vI3tsjq;$qPknTf=R5mVydG9}7Ds<$NMW(`Eg#zdX;C&Q6Rii2V1=N0+ zntM&@bq;iO3qr`Cgrs@YCd|B2%xHv55K~s6GSKv|92dtMw1U(G5uA~}{+$8wdlb|R zV+bE|OPJnEDnHFgE$O7j+F;)h1;p$Yp@XV9|6C;zhtc0k3s-b!{32 ziVkyUCN2l!&@;=7t3c{JY`*TAR!(F2^zkEMg;R>beZ`T*DR?*%38t#vy(4s__{Fh} zR&WG*iA{=PtW1#xpPX{cByo1E1}nt^&cH8W^Zxw??@p1liH4P$l~sYS@!Ee8mPg<2 zMt}JHxdI`C1UjNwkygo92C$sCmuLe))sgf08H#2KPzFDdq5(>~3{xz^l*CqOXP@zj zXW%iGm4ayMjSB&ZXmLm*)Mh=rO{hHGURbFnR}|aPusHtxK&S2=kSH-`a#58f}ukaHIl5fqUyy?nXh^7RKU zSm2DsPP2fBh^qD{a)0r9u}o5eI%VtG+Xy+sd$?AXi9H|)!RF0}wAYOzA?4T&A++=0 zaXdlyATAHuM*B)_oEqqpqwxk;sB4*p3g@yaU<@Q?J@iw^#v2JuD#$`7{ z{`|Rae54;I5fu+=7*(n!8qsnD%&ljWE^sJALe{dQFc6Nc#`QJ$chFN~U~J_6{a0&H zAvTWp*%2hb6Z{hJsSWx0ieg#|YQ}9Xz7NLA+Rr_<+s90;$_$g;&P{QCUD*gPl%AA>0PmC4}tU z+SUdH;L{ogQhq!JtWCsvefL#iY8;DopyIOnV0}Hk<{y>P*LKJ^q#9O|0vm#?v1lO) zR{*`a*H-0FT#6I*-QqeYjyn3H4}YnX$%uy?vKf^Qg0r3ykAvK+Ux>k_0L#2`GOiZJ z4cXXY<7SiSAJeCY_2Sgk)YQr^|II;db*Egn;bUyH0|^*mj^fb2gooT(Ap#NYGC)$` z$nV_0W+)Dc1ngNwh21-MG9t~C&c|fAyhrs?2HH!#z#isUMNIc##VJ_(f}>hI4Z2k1 zHvZG|!xk&2`qNR4zFn|u(z>HJL)vys0D!9`>KyiAL$IpAx3UK13aLmD9vCE0V(v!p zzt8;1VE~Ab6_q)x;HykxGbUuta?;< zlJnpmzG0yI``e!6e-5W1ASjTM+<}bi-R%Kt3&DPH->4~6Dl58s_KpT*9!5sHGeRu@ zSV`{A&i-w4-XYJEiPetSy4-WeML&d5A%=}LsIO?2(`^KrgW1`?rG95mPgzLgI;AR8 z*|fd5A;%7b2vH2{8hi<4=h+rlV=1Cuz+4Wgh^VCidLzCDC{BO{f|tZaF}iZ)4%!E@ zYPGnyNOBx-c4UGpQ*vVQ>k(QO+jIRVJ&nPr#eER zdNWF5(sqNhj`YofwH_ka1j;0l%tCvZ+fi-GL00{s3P>zdFkp@aSb@O~Y$OQs2`q^j z2!*D9qL_%mo7*7&|6Rtx3OjKX)AWy%B7Fo(>cfD^$e{8KM9*9-cOOwpeDz8R<1CWK z5S&K$%gXBZM`2xtL}A1aPr6m?*YDz7SXo=&0*8e(n%(K7ak{z2`tu)jydbF+Mgm_&5l&@~OK?YVv$kThoO zoxm`pF}TNZW8>iPLS1J9+8-=H)iZCKEhl%~r?SV44=VxW3L#G14-WQ3Rk8`&c$jRK zrqAN$ULSU^5Z;0?~o*7mVw+DQ;fT!)CuF?%0U!3aI$zxdOWTpCN zAIJuBI?vzM)UZPF9M!Hnf-)4|y{jV&peW}s%1&A$V{XY9C=3e>2lr~KtJe%m6Jv|wXI|Kj_d&o$Is9c>m;U`vGg}r9f zKkNXFMS(kv{F-1cV}Oh~!x1{@S8Orprr8Rv1#wCBi}W*GUwwrSjYA~ob|E-ipY4aV z7cmruSQY8_iACbReJg1hF~TSR9TS|jQEbSh9nS#&{?l-jXn(7=LU7fNsdA0Mfk)__w_U%%r%5WOcdwv1S$DJCcziXmj|^Ozuz zg&7PKNL81zv%SJp3IUT?^x(#Vu}5SN@j|htMG6_z(d61A`e_O$X~0_bEm59?{EiW3 zrDO*W*0j&f($2uKRG!ERVk3(g7owC9rg3O7;7B37&mq6#nJ$1AcMY1O6Z*~>`Q(Y$ z`nZCEf_rW^tgPID-7;3+CcTIc?l2K;6ctqy6wy{!-}qe!>qzQn&TNr$T81*)9_-nS zcN<%l+Fx81F9pnwNJ?Br$W;gLMI5wLgSPOWoC1nKYe)nGq`2vyGL8X@AE5VAv5+DX zwskqFt}|FbTg!%eD+&f0QY3Ti;NZGRDpm^KCacs6SGGBL9 z+Jg{Zg81INb}L7g^gA6vVQA!v;-~mfC8O3y~8T7T%*cG~P5o;0AYW z1Vh2kYw?1Wl~~Z4(EEr;Nb=qPptDB-u%RU;7_=N#rNS`uCBrWSdouiDBiJtrR+ugL zlEEOUN>ft2kxB?&M$9b%S~|B)97HRt4u5tWBQ%!8q==;WbLSq9{OTWzjaNb4OOJs% z?jtD>VVc4Io4;+ce+jb@%{ZEWZu~?X6d@6-Nx(RA#QSY>@>P73N7^ft0s!Ek<$+84 zO7IT47O+dX7VUUzGV%m2M+kRLe_vnau1AUD=q)yI zvRA!($4VEggXb?RTaNB8R6E2Hv@kf9|EPbxPRSp}rJ>pv&&g3oFniN#gF&Lo1{Jqp^^gy2aU>`_GADFgOVPV{H{e9heNP&P^jHNB zj5Q+mzew`UsGC{D1qm0e8~kh1=z%=o1*wd9H3Oz3=pkvm+v{f&*ewU8txXu>ZT0)L zob`_%N)b|$B2(PE#<8R}|J3a?&RY2>#_F4np3~3}_`VZF1svR+9K2vdh6sw8U${W_ z_;FvAIYObs=?kcGTnj0^_ktf!*E|ZWQli3M(!y zPC6b;2>%^cL_7RIw1M?%s@bVbpQVQO$hTRxkyqEd37Jdnxc|EMz32M()=%E5h9@2` zlDbkW)n-f4d3HdHCU5Y0l_k@P{@3{ernf{|IP@=QJv+YU?aBudvAmVnFEoW8uVtq{ zH8w6BF!g=pmqyIR@`v$DEIF(yb+0d+o@yOypOW)+)iYX(<>#_DL5|0$`NS4>+LBWk zsD?j%`fYkT2bR&2^78srt2b$BwchMm+1bgtxlJ3+Dx}dK!_{BGK`D0G7W_WPolRCF z@nLe6_Eiv%OmE)IGph47l}N&I;xcV%ZvHiU6GyckM32cyJIuC1Mr9B03%Glib46&A z^L4D#d>I<>M@M0XuHPuO2Td(L+D9|V^s9rg6A~B@kh3rT)2>v5f+Q#nYhaE9YEBK{ z+BP2!sZ=?qNukWB)DjE?Ct#4$4~}9Gp^+jH?cfRgmD~5U4p2!74D}S%JTb2krbPWDvfA5C=K;2~cVBJymv4b&b2c0I{_AbT_iWMK5~eJ!*9H z!CKQZ_>-o6^8T^68z$!_&7D*vcrNNQQ7D4>H)K+r_ow1dZtlJx*Y{maKR2bfKT1m` zl6>nqTaiaL4Qi9Msqe#aA2*ae_4j7H9+^?Zc3@hPv8CMF)bto+qM{7f7_kbgsMu+9>tDT^f}DhX&ixZpLq2C=^ShC9{P4juQ(O{z z*|=|5Sy);^wD6-hn?b&v3OZGL*_Sx)c@0vMlDYbW^JN}8&>J_EENi5<_*eBVTq_R-TvZt0|h+)U#SzlCrV`c26K6r?E5Sx~yu;d09gdQPF$_T|@)c zxK7_U2&75r>8ByQOUzW~@PRtK>z{}r=>2`I)>OK9w_y1E)*o>L3D{NP=17R({b zhjvrOZSf8IlLYi9XFKM5_u7J|cHQm$Tm>eJi!d{?u5BsGv-v@mpQ^)ie> z|1KpJV7Se*Ze6XY+l=zU;#3iu3$5HD35&8+TQwCG*fxBm)oaVMtrAXP{v03Q5@C5R zQk+}0@!PlOkT8VsSbpyY&W`2MCsE(Fma;GL-KAw}RKA$U&mdKO1scbC#&qFa$%vvZD=npwcWi9z#EUvwmkT9E2c0Z&)iL$i z*|=Wsfx!KDq3-9HV(|FtmoL8<5CtJrw9ejdP7?=a>>awkoZRndyW3pCa92Fk6=lh3 z$C#yN4_#|CeyG@s@gOWWW}nj);E0s|1-BWgb=KiaoWE(q*kVE%a7Bui&{D`<(<5E;*E9PaP3p zEAJWgs42xP3aVb5Uc41O)>Aht6e*O|SQM8;5Zw{{o?`|5rSx<5DkjwzcR%(RU|*7) zbQT9#I4o0E8a$M@g(q+)Uy!d4$tqsJ{weV^x`DMG5EKoNWG*g#NaK&I zyRwRfC4VZ=1(q4l0W@(0D%E#%q@q~;3Dnr0KG0h>A}Xo@7NIc;^Ia@RfHy&corvg| zSL#?8wr4r1{Sji0MEZIGw9r$~-2}7R2LDgdX>cWRl?TNmQn~UCM%^M$#54AaYK%7b z*k!&$4IS=9d8nDD^TVzZ5Np3;kjAf&Q3pK~&O#3kVN)ZTW&iX6Oy;9S^z(@E3tXX; zqZ@t_46%!TDv|2A0B@)0PoGpkAMPhf40Qiwh-IoGXvMYX2h|2KwXU1Bwq_L)5%HPa z<0ZdWTs+!BD*uPgL!G@V`2g{Z%TlDR>`n)z)s%E9$$S~IvCw9*XtW^_7tF3Q`&G`i z)l!210evjqzbtsM;CP|2m0g;7K2yPX42vJN9>tzRy$?}siS*ceXds)pOg3G9Ww40- zx*d;Co_K($4`pAL-1Y=~ny2>AmTVtcT5NF-q!qHXo&>O!AjD7;% zE{TZEt%gz~nN;^E;MMu7ng2AT%^^bRuxj+v(-CPwZ1svT2;vSE7LwP9XFX$Un;BD^ zfF9zEu5L1J5;(KTNW}PF;~SSztbD&UG=xT;4qBN$xlOed- zDr#!xH*Yo%iA9~<7IJKhguHwTj5u+KQEjf3pur;#06D|&q@ktN5LyXRO3X@D`>Pi( z9s#|ETv_C~2k+yyZQJ(n*p}8x(9S)c$DyIMZ@+r&n!W6EJ_T1jsLt!!X-y zxxhnq^<2JI^Xky7L!%h&9CSE^$e4e2c5hz`9=N{#hoZkW<<4CF_;?1YHN<|#yBO+S zv9tTO(CoHePa6193P@2K@SRb8XkpJVw9Jl^TDkb!`Vg1219H&APnVEE@$YTMvecRC zrmiSYkFEp&CBy4`qOKtUv`W5mYh3-c_+WZr;c%}fKE%W`AL@k%)8wOYJzkk3Y_(M@ zp=6j__a}(jM_zozZ|0e(Yg6giP73aKJd&; zfbz=@=kiU+asTW9C9!s%`%tYT|=dV2C~*bs8V$r;ML^k{B~G%C?vM!<`k zJJ$ccBn>`Zh-hs&)`tKKeMOG3?WtIWFkx+5>?9$e@NjbziRcL&a-@OZ z#a=%`s=j=Au!uZ9pyoCkObUz0eKtx()8(S$by16Fz`qlmdSqY8e#dJO{*u42z8OKb zv~BI}2jU+YKL z-P7?X=RbD{!_Ea4ZWc5}Tg-%U&XdssU9Nsw4*>2f!XFqb6H`;kMMY6lUHj2r#Xu8p z)#}y1Kw-+W8wv+;E{W7X*b2e|pQf8z5pl))TQP~~)qwA&s#Z;NNCD)SS?gOvKgJvz z^84v8BX?~m%Pf6slIAfYr2Fooe}PF_SWK;H37hkVi8T}_V@JnxfP0awENhe8yyPFL zzGyot>mi@?pw&cE)}ybG>M6-CeeBQ78_*ECdhekPLFr^2gnmm>LE*On|DD5MTUrLB zUQNuY%vT~Iz4RjvF{a-^vh!&6X^7HHK z>SB@CCMGA@+g%PI+x4R@s3+V0z?n{BLpGO=o<0+w1x7dIt&)!m6y+P3t0EQugx$g~ zs5Tz8i_$eTgqC3#<{7|?;;{As80r`_RqBx_z*WFc9h!~cbDcIOi3t8Hw}G0T8W!cx z5j|&g>Tfe(S8|wBBka>9rl-m;>Hr$l{Q2`5@d) z0qGF(-Me@KF~a#k%gcu_i3JbTrhb(@_@6YkuvVZ}c(A+>4-OjF^gvLy z)GHJ)4dw&BE1L_pI^9*#wGw4J;1Gp=KwaQ|;}?dDDgt*7m#&>D<=j7a#9WuM!QyMC zVX(vIiW~nl1jdiB?7ruDE zL zynN7uf3mBgZ}8?mq3QFuY*l@uTwmuV@=R#>U2Eu>!mSl_^!06Tt@(MQnO1$p@|}L( zeO|P^e;>5ws+pOFvT{|ZRS6b;E96_(pv*?7!ajNuiCm;eG0HnE&}Go@_3QUi225FS zUQbi|3zC!l)n{B_+pL0M+SAj63S~H!Us_sRylc4jNbD&t2}jgCh*+jrPe)Dh49Tf# zzHR+#a-tWpk~07jQaw1-SUE`HhvDLE`&8kJYc2!2bJsU5V6;F6E5xmgIFk{*4URVt7)iaOy@Dy&FAOGs{r=rRnqtI)UME~}z3QR+ zXLiOTqzB%;YX%h)MD-iSo+P%<&gMb2E(R4O7yAqf#{mG8Xy@b_c%Jcd&9N`Q#~|&r zy0KX6F79PnIXT+nHoAh*Zrbu&QGQ@I6eYFrvTWL}ENC*qIU8@CD*g;>Ii}4S zGv85IG)~nTd(-y)QSv*)5b) zh_3f!$JWVMKq3%!QNh~Q(m0@TH4s&8x@?;)&VCuX*^CcHPs|vr?j+*1wGAoi0TQj6 zk6dp-ZhCn57ep>Fd0V9~Eoq^?v1$lIJtA`8by1Na#^+SxK!nU-lfp1)13^^8YLSOx zkE*VqEXmb-wK0zTLzBffZ;23|)`!)7hZ@9aab6PfS)pf?xjCM|v?oL7(FE7=Y$qZ7 zV11)H@RIf2?2*7A#?acAzAyEL(@;5>4SIqxwA)X_EUuzVxqHtvai?K};pDc>$1UGb z#ml9#LM&4sW3kTud`O`F1HH~DT8hrGXIru_?Z?B|+Sa=iMou5h;|w>ymA`1?dhb;r zA!?CGh#`7OB2-_7aob%_0V%7wv!$k{(^Bc& zX)DxQB`Q{&*V_3l4zyePrlT$umaU%i?l)>Yg8@~^T)C(Wzzxp9?{5_i*VEzGqTO`$ z?_e}*ER%ou>|jg-O8_GsXY*=ySM`U&?F>H0(rlVbE(A+3iH1i-*{|A;uwpr?zCX%7 zb!<89khPdZUE|!Rb{nLyXyfp2XWCj@KRT@v+-xp2#ZeJ^2s{ZSn&jrd4v2-Ku;gn&ZSVVd2>0XwCO!-47!d+&GOZSp5!)*^zMYUvU^}( z*wE0n+JyYzTdyQ<&u;Q8U#1wiz&z7n?do6zv8j=Uk7@1;*8qoRRIq0~`^Yj)wNVS} zT;}Rz(RUkT0ejW7w7tkTSy|sCpR}l~$-lL18n`@;{r6?puV$aj&n4;GVcnao@l@rZ zToeCSC}kN-&9azc81}2J5g6W!(px0s^OC7Q2T(-R$-M?0$Yg*7ZSCxU{L~3sO)ZaK zaKFMS@NipHwK<@H#4|}oHXxd=+ZudaMO8IV#T4#A2RnI|!%X3#>uoe>?ZdlD5MZt8=dhKRo?(X#&zuKe5yV z-ohhd0*H$9EZ)H^>bcaY`S06jyI9NhEo1^P7tBuoUB_UqRpEPHteIyI;R9Wn~?Y$koM*k|*ZY zy}o%+D#BK>ib^@Cup(C5=-KGN!*3Q>ZgIQ5Gu3|fOyR}(`BLN8g@vzx7n6I9N&KRR&>@4lT2ixXsfh-CN7mD6`0+$qg1XVtv zpgwrIhm-5+}_-k&ye>>T>+17X@T#VD-n=WjYw~*4PfC4Z1n%Act z3%S?{wJ^;wmE&U>dNk@(=Fvy1-~}>r7IViwyRzZP8JnXD0a8)b`GE#y%jo+0`m&ur zAKRiK7L_p*tMF)?KYfwjX$WI$KsVPb0sl(M$-P7t*vh`rJ~amq4^vRfHBm5i)tbUs z&U&C8a~6&}hd<2g4~ZiEqV%X2yw;ZYqk@m=U8dW$0Y{kK-;lIb;C>Cz2U}y&9V?6P ze)*X(U`}ZB=N4KtBF%>c^qrgz}>)F|XRuP7prEohP zUfqB;CkDDoORf{VcI|f$3jjN}+vI^24V%6>2f5*=o7HFqSJ8M0VqTFI-=EWVcf0FB zoBZeBsRCL2iW=w6{d`~~ob%Swf@@Abab#JGNH+@)Z$f-2O*`G68!|(5W=<(8&-@k) z8dXip6)##m%j(VQH0hvTl6D$Y^Pvphjdz}tjrXA~p9#83zf$*2CWh!9~as-uV&iy;JBeM`-8&p>2sTea@^m2ZYk$vZ_3>t z@hMOJpls^3>|@o79q0kf)pu}STIX!Re=cM7`u$RTO*0kY>x7Pd;uL9KoP%(q+R zlN(aXcvxzGlf#9cdxq4hJ|?@*e=7NTW9MUn1I@o^jWN#UpB#DazLZOKT3oehjYVjd zc(tg-?AVrF7iOcXDwN$SIhLv$JB)i?1*R`f|MI1m&P!|hahJGNwOTjh4^aN=*S zIk$-pQBKD5#vCQAj0$n3OY)X~XbhV$yJaX&XMKZlB^gfKKbAwgvc&N$X1xcwqxGFQ zb&L7*!Y+)(FEoF@&?hR}7m}CL(wph}&WL&!h2_v<8)%+ifjgjrU#~ick@|G_9wW;m!*00tX zs_7MVO{p>SSbS2EsxUioJYrzlW}Dl|i2?tTo9b2~92QCyZA?;EPIymE#Ffs*EAXf9 z3srdZXCP>C?sKoUaa7f>MKl%78*x1+uGnK3ECaGgf%7 zhV7a>N&zYFAi@B|T$p+McQ6XaeA-aN<>;xAp|pkOU-m!RjoyB~cGmMl-`J78$1;M_ z)6+#P#2m2VV1fyQJ(GaiQ@KP`f|1hJiXaQ1F}!$a?clEQo?!*x+R_XbpQWK?^5e(F zZ1K#iJiWfrGZ8+(b#e_}{rK_2V^LGKh?Z+-Xlcbp-qWSSyQU>s-QJAOol24FZa6R> z?pJ>$u2kpb$l~>p-(vK(7A--g9=kmYv|aTpes9j0tJCPp8EUvVKO5MwXK1Owj$eMd zebVXu%S)$|I-OeDohCGZvP_>T5aW7KIK)3mFt7y2?Z zdc&mJXQ!0sE9nCbv#0o5GPQP$eLxi|wdT(u^MwOuye~={xzCTiH;H~|Oz)!ISWSR2 zU{BC*!kG&U3NpWOg~PLItGEz8Ja+MmJWQO|3~ zxPN?r-M+acEm*^o(KB_-{91hBXRrE?e)rF|_f)-cTGn%B8Ga(PbGgObf;m1*N{SjIw^!zt^A zB*L)q?b9^>@kqOKk0T;%m?$r~O=wt39*)VbbQ$q(3s}8hD&EUykR$7RN59av!I-k5 z13T<`##I~Riq(2EZ#B~mn@ap*T#y~Iys%e}rnTdxx`~QXmeDS5j*CGHy!s_=>waIV zJ*#dNqw(@x7i{edAKExI#>9w~e}3PhGHDmlEb{Yi8Gp*1X>^r-vn9HabFj;k0 z0IsR1SjVgTvNP)ag$$&13#oz6>2|7FHq^jFt|f(Esd*Zew`AGQLNvSEo^h!0lOnZk z#XKF?mr#=zjwh(a>&_+=M40=U*fEA=%sg3II&bsbBsz3*-_>k;b1GukaEFtE?wD;f)O{VLy zDB68PZ$I)2Q(~wROjJgVOEkIs8MpJ?$lq5Pi@DfrNQh^R{k3WuAs^u z%Z6zf>Z$_<4mt3ynQlr>WTH5i_j=NRv#H`t?(?SlPdk?qR_r)z;W9K~lvq5yhYDKak znZqm@2iBLcel(d{MYCQA71xP)4Gg}|3f#By-v!4h3D62}lzkY|zWVO>)?h#SRv%%B zm9jyz=q?OGo2M=}d@0#j4!{&3Wx_wDnHkjGj~?~KU^P*`OFf$Zk*glLB_UqknN1ER z4ZdfY(wv@34Nv!(6}|YjKWHg;K}I>vC@=L;V;IN!juVNID}INx-l0;;HCk1E>!#7Z zDWtZ)rWU3~N~sj_mV0blxOv;qb9C=G!@&0RCEYoD?Ir$>rO*xM*08etbD|T_c9g27?Zigm6)-^n{`|*ui&XctYcE5CmvuYom znZGG-ael~TN@Bs>TsF1QTzTI${G{BG!?OI^H6~CUX*rf2A75VoRaZwR$CrU}u``vX zQ6!-T==-cp(YGwF)Zk&cXDRFb0?W(41zKDdT~=e4?z6`Y#3z@zdv?JCS>@c_{FQN&cT1F6!d>CB@yLCq z1{fE%332TBR-7I@RPmXrXija~uDyjNLYem3vT1J}-r%ViBNmDv3-9R#ok)cSCJ~Q|X}ojmcw=NGvu6DQV@rw|ilU{YFVR z0T-`Lex0mBOK!vGl#*PHG#l%*$W7T15z~Dt`C2BD60!|5HjD}xl~O%9yqr~+8v5kwf5RB)-PsiETwkdx8v{4ZYh2f$+Ov$X-(O1KJCC=nS4>3_fdot~Q<#dQ>c~)xiWr#2LjA6(vz?vVdDeW_w~jLwLhYY)K2S&JR0r*PG&?LC z?uHjMCX8E}`CZ!Ua=Kixuk2esN0qK1XS?>xRH2u2c`cHe6ssDx0}Pb^_*d~JD%Xr# zd3M3F|M(&bg`SSa>p#C>{jwFT|M@Mf7+C*LPjY~==|6vlFXjKjL#R7uM|Bby6S&c2 zw>iy!KGBi+!OIHy$qH^4020__yG;{vLt|s3zRQ3AJ)_H*%@W#!-9q2*o$jpv`9oUy zcYau){m(CPPv!r=@X`D~@qYgQc!&e>aYc{j{QvW%Q4CX;=nYK*9y5C=Hyq*gCJOZ@ID_O z8~(mO`@$do!L?RZx{aLw{gd5Vn1CS62>Q01o=^H_hPUaJf!Pjw1$k@~g|;KE+{B*V zZHgYA`}jW3>@RRdZjwuI9C}bu>@VK_`Qd_#y^=Nsm&^|m?MoEfdQ~^DueVaO|N6t1 zmF7M7q>6xfP;8-H_@lJIo@Bz~n&vlY>(`Vq7q1dO6}oRcgAn8H;fS*EU40Z{b2-e4 z+H@mge}CWqXshle`_-X_C_^qrUdxX2AQtv?N#B}P;%>_}Z5Fi@SrUbcd|dOWcb09m zA3l5#BxuX(vHXnl0!{qXY%%5k=Ix!*=L0=GJtuqXX|G;6Iy&y01XLS-skD&M)cjag zRrTe|m!$d%EUH`PYFf(b>aLE_w0Hdc#I?z;$M<)2buBEkmz0#e9(K`JZu_ZHlk)5t zAsHE&!%5_&8_Ubf92^|{{QNKI#jaCDVy!HNRj&v+`hJDPCu(z_hMvlLKa4`4fONCi83k6}Cqr=AZ;$ztE}@o{i)aFS3lmKbsA#Ki66$vcrP6W-iR!&ahZeK(xDHFBx6pf6H>ubd<5|_Fo@;2e(hU}Z=MC|88 zR^099eGFLBM91TsXR~LMn^}t=hK3lMnOsGI^Qzg)g`Z>5Z1Ty?dw-jaq&#i2iRLu50)=_$zA8=9hsXm z)6~>7GMeu1cX;=V5?)%K(=~S6_b9EMoK(o4R8;UF%*@QeGXqgqSOWqA#Jx6pRy_zp z4eMQKyne!-+>B`nIH^fYOoY=*O*L*0{7uRziNC6o97@l?5O2G^*h!MwXUk~YOwPoV zm6%v}f2qrD?rkw#T~ze&`={Z_$%CG#EAaW6_4AF%QV0Lz?IjY@iR|LHZ{OD1k9!A85^sFiJ=pDU;m0y%bjPsrFZYgw1BNAd@Jol(7^_!q|Tk|qi_Ks z5z*s-0L#51Gclp#aQV`B>DAHNFr9Q(R($;E zqSf9(yy=Q#BHw`R1F!zLYg)d&&uO%DOiZF*U^+Tv*=|SlKP92d{s+QN%i7vH)X(N> zg0Qf#a#4BtFp3328!x=?1w+_n(uf2MMqXH3?Y#td-jX* z{G)7aY^lrH9(PfE+cKoVO%HZ}&SXE&Gxpo12gkv%;ggT-`juBf#bt;@3=R&4sqWvrc{Awz_fc0kk(~x*w1W^|adB}}#nybQzk!((B3By`L57BAbe_LlCpUmq|$gS=!Xp4<9}RSX?}O z!5~pmT1rMQYU$$g+^v0Dvos2gAg9H@&QA6=XB!;-zi(_jfBqcyhLe-CctOOt1PjTw zBk&E2SgOgXsi`rY!$#f@4ldzNet5JwGbzHRUoN*tk%EV&h6vdMSeb2b|8;T#Ywc9h z5^OX)|^Bm_s;~i zjamF{3MrS*ypTNMXUEvKj5EymUGwvd0lpMTFJE@Vz_$vBRPOA>WoCX@x?l6=O#~^! zTc^nq&-D+R^R0ASDrmIT*1a%Z5iiIn0s;aw8og~9?5?6+$<=oL=hvkhiXEGGqNyk; zDAY0~n+Vih9~FrtyO^(pyi80SPT{*?EbZ}6KZM5n_wQi?Axi*p|HAC*#oEZiii*I! zwc*^{>-)x069N1KGJ*REZ=W!|EtuP+sN=JPm1%c^GU6pm8* z@u}>2r6jUQ<3kAr=-zUEMuEP!yVqf+D+F-NeLXEmo%C8W~719}K?S4wKx4WCG z5*il9&CLy``Rv)V@bGsb7x0RBY;A4TQU%cl2FZOZG_gwu{QLe6=ond(AJAF*NxJ9aMdVr@63&vp=gd8~PtmNcEUcI6z z7YPaqnxH(3S-CID6_jVl&q9D%b}}?fDJ|uU+H1BpmVs=`;qnXMvu}l2Dc)Y|9~e?f8r>J#JieX%`So*SV*^kz z#(QZXfwi{%tyz0ut3m`RK!QQp9!q|_oAqb4af@bYzkOw9@`pd?84y|WC-L#xT3T@! z%viZe!+hIgP6HX)dul3^Xf?Hok&%(9DT9&Ipk{q-?Gw1av~N*q>D1&T7V=MtFRo3qQY>SQ*KvTf{yG$l zU6bE9BjJ!2;~Vh^0)FX1rYNY_?ZJG0;3 zU&2<{TV#VM&Ned4N`prXgwJbhYeOQ!t|jxBX?gs?jq&|+*7Wx6DQvEet}c|Hp9}5q zT(aCuM+~-^0GYn#RKy5)np3Ln@xf}jqqbJCL_=O4TPL{bD?}QJOjov-r)S=y8YuHjfyZ+7L;=$0kVwiN z-^Ok_ZIVBQN05}1jQaqtOQ(}RM>O(RqCRmp{DCweiDCpmo4RNT40w>r}7 z_aDsGyMk;;6LC*U=TozBm`^#||8~VvYyW*uPd=0vy@CGt8%?HezP@4@;Kdy5>~{9{ zx|5dblgGzC`3gjghMm}}q)(h>su*9G@)#N$>x7#$xV_d7wpzv(e0rLIRq2(Nn|n2t zRgAFCJ~eG%U_dWJzw|B^67cvj4ebSiVyK_O;^MS7AHNI0Nflv%N`jB1NO)HeXM~1g zhcY`P%K`wj`W@t|%rv-b5)ori2mAZ@p~w5*bRUZ+B_)0BBD?#BS6KLNM>s@+;5<$V zAGx=;H-gl*%kAaAxIQiLqp!a|vfzTi4JPr2kx_go^ry+m@F!0?ChzI%>$9>JN_cNg z$l#^0%F1G*r-!0sLr0fJeapN*1y4<2r_SawRowXKs2pZ-(bAan zGg-Oe@TYPU5EX3!zK?CB{13}YN(j;755FQv@KkPOf4_3PGAb|9Ot(o^02k3RH_yai zy1qy@u1&wO*FRW*hs}-YCtFee+vx_4Z|b*0CeZf49pYxO552 zUsgQsm4JP3Z?DeH?F@Yk3e+?lg}t?P*UHXAFR#AmGzwh1bF2)# z5UnM_IF%UjkCYEDiY%kQH7 z_rKk~*2ES`piDx_cqB^UH=o79I zH+TGhzqPahcIaCJ)&L*^ukQAEp{5-h-o=ZuLMb?5Ir#(e&XGqy7h)NuXsKvT>YOOg zIK^-;SedEy_VfV#8JM4!W@TMJ_&!C#xICD|eFHrPm5K+Q&>axj({r1Mh{)gHA8H8_ z91+n68WyV3LO{KhF}1pBci~RDxYsij`qr&mIa;vwG6BaUV^l&n-@SXMp`iga%A(2= z>m_6+Q1VX@OF&-Uy?bpp++BtBDTCFD+{xLwq4wHvS7rO3)Wk%bgn}CoM_|`1Zf>e` z-V8kvhE;z0^r^mFCD`E|JYrltl{Mkn^@$7hhvDLXWKG2OW-&m$w5@v*78Lx?1K zldaU%hatCtFjbV6mgeSy(0}VZ#gp zDJk10XQT|`pQoo8Bz@wNo>6)1f7Nz+cTiSVmY<&w5RPtL{{iwCSp;tUOf3B5R%dPs zy}&(UG^VP@@6H`qAJhN@F@5{cak(d|zP=tXlSw)t1rmPjwW>jdX>kYn>({S=lAFA_ zr>>~j3uPG?iL0wC@F9{TVNozbl3u^IgY*Mq#>3N-Ny^XG)m6%-_jz0#`9L*`dTQ;% zZ(~63*Voq*P{pOCMAUJwD~vnSD{2f<_!bB!dN47SrIS8Id<0@ae_HD5g!KD{hhzFy z!1lNn_3G8DkPs|=rIL%t{qsMMQDF5DARR+P&zEGY3@P7d5Z zcd-#4$xOZ3M$?K3XUm}mMb5~9+}vD?z>{}yGgVch`LxcGYhX+5K6+hVu1e1|kbS4a#3-?j|`tf=o_M>d*mk2H5HUerc^; zi8B(-%E}6uM@AN#e9NK>gBKDKvbgY!)Gj#ygy1KgXvBpNxS|Tc(xLPbk%hXgY&`1c`8}2$x0a%QQiW&u(U+bU^JY~^H zW68M%^d=Z}`#V6128M>uYXmVh2()Qy0A?8yFY}NC+N7lh2MdC`~`V(-z-7>A*AP7&Or8 zQ4njM9v;0hbO!qRI0&zRfb&9|)PWLKd`b#F61;kyZ$W$lCo9R!JDihEZ;{qfL*qqZ zVWA<{+K!L7xHy1LM0h6_0!1TSsN)iNfr;1nczJz}w{v1*NVukiTs~Jdd;h$C!Itcz z7eqJIOE8p%R(3$Kv1p_p@2;w1PznkP#bLO(xby8nSsbtU?Fi8r=TBuz9!)efG=d8m z85tzR#6@0sONNNsLA$^sn6#E`~(q)4F zfV%@<{1nsRzVL!h#O+{X@(Qbli_t7E7gpatQ@vllNJ>jfb8ry;3F1egY`;T+XmE3N zZ029Epimz$?XO%TP?ELbMuA!Ofhuvl-OSYzZ+jECkB6 zGN!Dw6qqAJKte*&MuA*ccQ+RD>*!~)sy!G7*W)8k-N~AK&i_au!Go*dAFFJ|L`Or6 zg`LaXy^6!7=fc5T9$L9WdYY#cdl6d>2rL$IQSK@Y4Gsy*&;tAYW%2 zDow?sqM~SNX)y$PG+>@U)inYwe|F+I&}wdO-qzMu;~69viA}{JOqp_5)*BAX@sxTp)XGJsu0#XQ(-Yi3|oG#XTzPkc@)vAK7T#YD+mOMgbl!zAv96lEHbH3Giww_z%vlS3KE2~R%bSCEJq_-YSPD}t#a<~`yZW(S> z`1&;vJM|P^t3PKaI@~T*BJT>irlyja@qubW4uToFHP;ND#%P{WcPnIqfq_Amkn>%z zmF?_Sf!0Be12SmsMMmPog5kF`SHc}Hr%D~+4OPdI6NZCZ{iWI4-PM(Q?7@Qv*YI<* zvk|mqMll{4Bl7^bLRbi3M$RKQ7Z+kgSyeS}1BF5{hqwA4VIvyD)R+vk5{~)B#0702d@vc~T()Cr*t%E@ zS%Qw2>jtvr!Vm-sD+3*)(PCZJ;#fsy-fDhA0oz`%;8BT=RQ%u6LyAF)%N{f_@?d?J8>M_N|-$1O4R)7h)I+zSZ)C_tu zes{K^eNjRK*`(uNVBB9N;#-II&NFhYVJvA z+3rSi@$to@(2ey3AkTg8-leLW1bl=Ia*VD8my}5+u(rPbsn}o+X`Q~8*8x0s+{FT6 zVL?H?j!U)swDk04d3gf&hOV-G?C*!(96k}zY_$#ETesTkYHeLzKzO=I;+gkv^oU;V z7j)>!_9?xfXFtIII#b7q1T#m%lPt6c$-qlg6d<7wnhbw^Qp*Zn^$$}o&?(y{N=kTW zOLH415O>^oCr~i7vB--5r?Rs|i}{GfL_U8`5p{b6m!{+O6y*2G@$ru@O;-j0dVj$^ zAx|VkMZtEufN*ef0@Is-h$f9t5bB10R*gw&xSF4?B}b1nACg^G_Iw6x4p|EerupG5 zpbTUAXf2-0Q3V?Rl6`;OYIz-wPw@ZrPZ-d^*A72M<9coxb2 z|3dbStMIer{9D<_hF4Ze`f(`P3m1P5r$(tLS#ou4Q{0rQIW`v6XWB@QON7*>kkhN0rY5_m=Mht6c&y@ zyng+<)<-ysyni)993=OqOF!xrXJR9u3&X;~@JQ*w`sf6TcyJJOw$leTvVf3K;=mD) z7*#~K<5b053ZD%$GARV2atc9a7+8;IGNj|chv)Ee`b2RsgcpE#6$=~N@%q^@CqF*mFSm(bqQ_!GjOf-^z{B&Ux#wg z29O5qKaa9PexV3R??2ffsG(8uboSo8dwhz@cpnE|`f_m}!eR_~8w5f02?|MQ2s)cwizuwwQjfIufQ#8Hp z@h_D*qF95g3BbFSJ(?b$?#Gw-LSq5x0Ll`N;^EOyP*{P7rYBWGT^`-Nq-%qD`j1si zoS$LbIZIgkgO#T)>cw3xEs{Rc9|s2H5bd zj|Krjw7KR$(3@W`m}D3O)A{Y*KcnPyAUWEc#S6MIqG=C70-#>po=<#2d%#N94O|OC z!1C#3G%oQ~SqzGcfs&ry6jWo@8kp@6%CK&gQlD>&i&Zcx00P+F-hL*=?utAHg@BG_ z8=+z`a-FJRP}`nTV-xnrj7WyF%m4k1F2sf*FfSWomh;v-DB2QdMFBLHCL~H-Z7nDQ zU>FRSE`eHW1X*F+4aOJPm0zKnfw)D2p{E2rx<3a~7QEC}H>?cQx)!*7G;gMXy?y}! z*JVRDxH&g3&v6$*@bm1fjPI`PQdf9PO&ueMR}hIsFe~BC-Vgr)>Hv=I-v)7d!*E2` z8>KsA1Cx_P@%hUR}sW6Z(`C7UJD-g_1!;#U=Xi zD|yz(!n*7D*V))22Up$ZTg14zho`2z7dt|rXQw+PLHpwwh-Ecsx)>&tw4}u65O{Zz z7T*_5x9NKk^==u2=BNjsFa|ao=5oODfvFHch${u!ZgC*f8x2`6M}gQf*4Os}s`X%{ zS188{!zSq;cPdFq7!FB$Ir<%R0cxtNN5{vZzehwu!hP$O!RHA;6zCT4n7w`3x1zmg z0q4)BS*V_N2!*VRc>iFPTtrC7ti|U6aP^n$x`$hH(M}@5jE~--@;kp@SxeQSoT+!E zqoV3v*-6d+dYzEN&dv_hJ@9MLq5?|`PSwhVCiYqJ05KE7rSVE)EB2o9L^%C--dSYQ= z!SZ0}p?2teH#C$(N@@;9R>0ndrmS{06DU^~mloJN`1UL~^rM9!rDniK1o@hCGX|(f zQ3w6IdyqN-(hGBQQh?_&GUq^YL0}IJ4#K8}mGTqI*?oq zgR7s8R?7{mL%WwcO4Wy0C&Lu!RxH~?gR?@XYD_Xj#w(2;%B^@|@2UVESc*;c^$$)DoQ+*0aUIWopbrFDSe_bZ5LnsRTtFPQXytU& zbvkr`fIw9OQHaPYD@Q`h0`3ZS{zzG`E~GECz`P(&c6N54OlEKT?JVDctD>Wc$}Zpu z0Yj$0d|7^+>((uc7N2S`BcI>Iiqv8wCL=S@)&2FovOV=Z4&V;NB@AS#N?*3bH@%Q= zUh*m>1*Vq%cDNz_a@ixo!|TAvfgYU)$tda#>o;~Z1{x~hb7nhsT}g(?7E?uz;C%G1 zpC6RAQiIB_BPJ}wy85b{zn|ZjxtNP$5gDh+Sq4@=lvN+e`S*#OupDiD{lv`7HunW- zDXCWYs^p|39U&0)<@x!wwgVXGFM@*sLj&O5%!6m#(Sc0zKJD6h#9J|B;&`P9u)M`Zr!RZC}6p9!v?N_l$)UT zPNCC$FW^rs72eKbU40C68muMIt59_Jj*h^J+=62F+;~c@*Sd&B>|{uan~jY;`W;M_ z!Q7ghn1ea*1wQQrtIM96#gydQMXKiRc(}M- zW-!TBYxYb(r_Za77v?L!J6Z9%;Ps(!yLs-bS+{W<{FX^!j)V!0`dY8D;Mp-;%Qo(9 zr#oSbd;k3s-XGZi95R+Ptq|BK~zj%T6ByC<}bn+P+h2>Oo3?FxCz(EkR%%RoW^ literal 0 HcmV?d00001 diff --git a/audits/internal1/analysis/slither_call-graph.txt b/audits/internal1/analysis/slither_call-graph.txt new file mode 100644 index 0000000..22dd994 --- /dev/null +++ b/audits/internal1/analysis/slither_call-graph.txt @@ -0,0 +1,27 @@ +'solc --version' running +'solc ./ContributeManager-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./ContributorsProxy-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./Contributors-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./ContributeActivityChecker-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +INFO:Printers:Call Graph: ./ContributeManager-flatten.sol.all_contracts.call-graph.dot +Call Graph: ./ContributeManager-flatten.sol.IContributors.call-graph.dot +Call Graph: ./ContributeManager-flatten.sol.IService.call-graph.dot +Call Graph: ./ContributeManager-flatten.sol.IStaking.call-graph.dot +Call Graph: ./ContributeManager-flatten.sol.IToken.call-graph.dot +Call Graph: ./ContributeManager-flatten.sol.IMultisig.call-graph.dot +Call Graph: ./ContributeManager-flatten.sol.ContributeManager.call-graph.dot + +INFO:Printers:Call Graph: ./ContributorsProxy-flatten.sol.all_contracts.call-graph.dot +Call Graph: ./ContributorsProxy-flatten.sol.ContributorsProxy.call-graph.dot + +INFO:Printers:Call Graph: ./Contributors-flatten.sol.all_contracts.call-graph.dot +Call Graph: ./Contributors-flatten.sol.Contributors.call-graph.dot + +INFO:Printers:Call Graph: ./ContributeActivityChecker-flatten.sol.all_contracts.call-graph.dot +Call Graph: ./ContributeActivityChecker-flatten.sol.IContributors.call-graph.dot +Call Graph: ./ContributeActivityChecker-flatten.sol.ContributeActivityChecker.call-graph.dot + +INFO:Slither:. analyzed (10 contracts) diff --git a/audits/internal1/analysis/slither_constructor-calls.txt b/audits/internal1/analysis/slither_constructor-calls.txt new file mode 100644 index 0000000..f63c67f --- /dev/null +++ b/audits/internal1/analysis/slither_constructor-calls.txt @@ -0,0 +1,117 @@ +'solc --version' running +'solc ./ContributeManager-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./ContributorsProxy-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./Contributors-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./ContributeActivityChecker-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +INFO:Printers: +################################# +####### ContributeManager ####### +################################# + +## Constructor Call Sequence + - ContributeManager + +## Constructor Definitions + +### ContributeManager + + constructor( + address _contributorsProxy, + address _serviceManager, + address _olas, + address _stakingFactory, + address _safeMultisig, + address _fallbackHandler, + uint256 _agentId, + bytes32 _configHash + ) { + // Check for zero addresses + if (_contributorsProxy == address(0) || _serviceManager == address(0) || _olas == address(0) || + _stakingFactory == address(0) || _safeMultisig == address(0) || _fallbackHandler == address(0)) { + revert ZeroAddress(); + } + + // Check for zero values + if (_agentId == 0 || _configHash == 0) { + revert ZeroValue(); + } + + agentId = _agentId; + configHash = _configHash; + + contributorsProxy = _contributorsProxy; + serviceManager = _serviceManager; + olas = _olas; + stakingFactory = _stakingFactory; + safeMultisig = _safeMultisig; + fallbackHandler = _fallbackHandler; + serviceRegistry = IService(serviceManager).serviceRegistry(); + serviceRegistryTokenUtility = IService(serviceManager).serviceRegistryTokenUtility(); + } + +INFO:Printers: +################################# +####### ContributorsProxy ####### +################################# + +## Constructor Call Sequence + - ContributorsProxy + +## Constructor Definitions + +### ContributorsProxy + + constructor(address implementation, bytes memory contributorsData) { + // Check for the zero address, since the delegatecall works even with the zero one + if (implementation == address(0)) { + revert ZeroImplementationAddress(); + } + + // Check for the zero data + if (contributorsData.length == 0) { + revert ZeroContributorsData(); + } + + // Store the contributors implementation address + assembly { + sstore(CONTRIBUTORS_PROXY, implementation) + } + // Initialize proxy tokenomics storage + (bool success, ) = implementation.delegatecall(contributorsData); + if (!success) { + revert InitializationFailed(); + } + } + +INFO:Printers: +INFO:Printers: +######################################### +####### ContributeActivityChecker ####### +######################################### + +## Constructor Call Sequence + - ContributeActivityChecker + +## Constructor Definitions + +### ContributeActivityChecker + + constructor(address _contributorsProxy, uint256 _livenessRatio) { + // Check the zero address + if (_contributorsProxy == address(0)) { + revert ZeroAddress(); + } + + // Check for zero value + if (_livenessRatio == 0) { + revert ZeroValue(); + } + + contributorsProxy = _contributorsProxy; + livenessRatio = _livenessRatio; + } + +INFO:Slither:. analyzed (10 contracts) diff --git a/audits/internal1/analysis/slither_contract-summary.txt b/audits/internal1/analysis/slither_contract-summary.txt new file mode 100644 index 0000000..79175e8 --- /dev/null +++ b/audits/internal1/analysis/slither_contract-summary.txt @@ -0,0 +1,84 @@ +'solc --version' running +'solc ./ContributeManager-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./ContributorsProxy-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./Contributors-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./ContributeActivityChecker-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +INFO:Printers: ++ Contract IContributors (Most derived contract) + - From IContributors + - mapSocialIdServiceInfo(address) (external) + - setServiceInfoForId(address,uint256,uint256,address,address) (external) + ++ Contract IService (Most derived contract) + - From IService + - activateRegistration(uint256) (external) + - create(address,address,bytes32,uint32[],IService.AgentParams[],uint32) (external) + - deploy(uint256,address,bytes) (external) + - mapServices(uint256) (external) + - registerAgents(uint256,address[],uint32[]) (external) + - serviceRegistry() (external) + - serviceRegistryTokenUtility() (external) + ++ Contract IStaking (Most derived contract) + - From IStaking + - claim(uint256) (external) + - minStakingDeposit() (external) + - numAgentInstances() (external) + - stake(uint256) (external) + - stakingToken() (external) + - threshold() (external) + - unstake(uint256) (external) + - verifyInstance(address) (external) + ++ Contract IToken (Most derived contract) + - From IToken + - approve(address,uint256) (external) + - transfer(address,uint256) (external) + - transferFrom(address,address,uint256) (external) + ++ Contract IMultisig (Most derived contract) + - From IMultisig + - getOwners() (external) + ++ Contract ContributeManager (Most derived contract) + - From ContributeManager + - _createAndDeploy(address,uint256) (internal) + - _stake(uint256,uint256,address,address) (internal) + - claim() (external) + - constructor(address,address,address,address,address,address,uint256,bytes32) (public) + - createAndStake(uint256,address) (external) + - stake(uint256,uint256,address) (external) + - unstake() (external) + +INFO:Printers: ++ Contract ContributorsProxy (Upgradeable Proxy) (Most derived contract) + - From ContributorsProxy + - constructor(address,bytes) (public) + - fallback() (external) + +INFO:Printers: ++ Contract Contributors (Most derived contract) + - From Contributors + - changeImplementation(address) (external) + - changeManager(address) (external) + - changeOwner(address) (external) + - increaseActivity(address[],uint256[]) (external) + - initialize(address) (external) + - setContributeAgentStatuses(address[],bool[]) (external) + - setServiceInfoForId(address,uint256,uint256,address,address) (external) + +INFO:Printers: ++ Contract IContributors (Most derived contract) + - From IContributors + - mapMutisigActivities(address) (external) + ++ Contract ContributeActivityChecker (Most derived contract) + - From ContributeActivityChecker + - constructor(address,uint256) (public) + - getMultisigNonces(address) (external) + - isRatioPass(uint256[],uint256[],uint256) (external) + +INFO:Slither:. analyzed (10 contracts) diff --git a/audits/internal1/analysis/slither_data-dependency.txt b/audits/internal1/analysis/slither_data-dependency.txt new file mode 100644 index 0000000..9c2cc40 --- /dev/null +++ b/audits/internal1/analysis/slither_data-dependency.txt @@ -0,0 +1,1287 @@ +'solc --version' running +'solc ./ContributeManager-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./ContributorsProxy-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./Contributors-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./ContributeActivityChecker-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +INFO:Printers: +Contract IContributors ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ ++----------+--------------+ + +Function setServiceInfoForId(address,uint256,uint256,address,address) ++-----------------+--------------+ +| Variable | Dependencies | ++-----------------+--------------+ +| serviceOwner | [] | +| socialId | [] | +| serviceId | [] | +| multisig | [] | +| stakingInstance | [] | ++-----------------+--------------+ +Function mapSocialIdServiceInfo(address) ++-----------------+--------------+ +| Variable | Dependencies | ++-----------------+--------------+ +| serviceOwner | [] | +| socialId | [] | +| serviceId | [] | +| multisig | [] | +| stakingInstance | [] | ++-----------------+--------------+ +INFO:Printers: +Contract IContributors ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ ++----------+--------------+ + +Function setServiceInfoForId(address,uint256,uint256,address,address) ++-----------------+--------------+ +| Variable | Dependencies | ++-----------------+--------------+ +| serviceOwner | [] | +| socialId | [] | +| serviceId | [] | +| multisig | [] | +| stakingInstance | [] | ++-----------------+--------------+ +Function mapSocialIdServiceInfo(address) ++-----------------+--------------+ +| Variable | Dependencies | ++-----------------+--------------+ +| serviceOwner | [] | +| socialId | [] | +| serviceId | [] | +| multisig | [] | +| stakingInstance | [] | ++-----------------+--------------+ +Contract IService ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ ++----------+--------------+ + +Function create(address,address,bytes32,uint32[],IService.AgentParams[],uint32) ++--------------+--------------+ +| Variable | Dependencies | ++--------------+--------------+ +| serviceOwner | [] | +| token | [] | +| configHash | [] | +| agentIds | [] | +| agentParams | [] | +| threshold | [] | +| serviceId | [] | ++--------------+--------------+ +Function activateRegistration(uint256) ++-----------+--------------+ +| Variable | Dependencies | ++-----------+--------------+ +| serviceId | [] | +| success | [] | ++-----------+--------------+ +Function registerAgents(uint256,address[],uint32[]) ++----------------+--------------+ +| Variable | Dependencies | ++----------------+--------------+ +| serviceId | [] | +| agentInstances | [] | +| agentIds | [] | +| success | [] | ++----------------+--------------+ +Function deploy(uint256,address,bytes) ++------------------------+--------------+ +| Variable | Dependencies | ++------------------------+--------------+ +| serviceId | [] | +| multisigImplementation | [] | +| data | [] | +| multisig | [] | ++------------------------+--------------+ +Function serviceRegistry() ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| | [] | ++----------+--------------+ +Function serviceRegistryTokenUtility() ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| | [] | ++----------+--------------+ +Function mapServices(uint256) ++----------------------+--------------+ +| Variable | Dependencies | ++----------------------+--------------+ +| serviceId | [] | +| securityDeposit | [] | +| multisig | [] | +| configHash | [] | +| threshold | [] | +| maxNumAgentInstances | [] | +| numAgentInstances | [] | +| state | [] | ++----------------------+--------------+ +INFO:Printers: +Contract IContributors ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ ++----------+--------------+ + +Function setServiceInfoForId(address,uint256,uint256,address,address) ++-----------------+--------------+ +| Variable | Dependencies | ++-----------------+--------------+ +| serviceOwner | [] | +| socialId | [] | +| serviceId | [] | +| multisig | [] | +| stakingInstance | [] | ++-----------------+--------------+ +Function mapSocialIdServiceInfo(address) ++-----------------+--------------+ +| Variable | Dependencies | ++-----------------+--------------+ +| serviceOwner | [] | +| socialId | [] | +| serviceId | [] | +| multisig | [] | +| stakingInstance | [] | ++-----------------+--------------+ +Contract IService ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ ++----------+--------------+ + +Function create(address,address,bytes32,uint32[],IService.AgentParams[],uint32) ++--------------+--------------+ +| Variable | Dependencies | ++--------------+--------------+ +| serviceOwner | [] | +| token | [] | +| configHash | [] | +| agentIds | [] | +| agentParams | [] | +| threshold | [] | +| serviceId | [] | ++--------------+--------------+ +Function activateRegistration(uint256) ++-----------+--------------+ +| Variable | Dependencies | ++-----------+--------------+ +| serviceId | [] | +| success | [] | ++-----------+--------------+ +Function registerAgents(uint256,address[],uint32[]) ++----------------+--------------+ +| Variable | Dependencies | ++----------------+--------------+ +| serviceId | [] | +| agentInstances | [] | +| agentIds | [] | +| success | [] | ++----------------+--------------+ +Function deploy(uint256,address,bytes) ++------------------------+--------------+ +| Variable | Dependencies | ++------------------------+--------------+ +| serviceId | [] | +| multisigImplementation | [] | +| data | [] | +| multisig | [] | ++------------------------+--------------+ +Function serviceRegistry() ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| | [] | ++----------+--------------+ +Function serviceRegistryTokenUtility() ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| | [] | ++----------+--------------+ +Function mapServices(uint256) ++----------------------+--------------+ +| Variable | Dependencies | ++----------------------+--------------+ +| serviceId | [] | +| securityDeposit | [] | +| multisig | [] | +| configHash | [] | +| threshold | [] | +| maxNumAgentInstances | [] | +| numAgentInstances | [] | +| state | [] | ++----------------------+--------------+ +Contract IStaking ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ ++----------+--------------+ + +Function stakingToken() ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| | [] | ++----------+--------------+ +Function minStakingDeposit() ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| | [] | ++----------+--------------+ +Function numAgentInstances() ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| | [] | ++----------+--------------+ +Function threshold() ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| | [] | ++----------+--------------+ +Function stake(uint256) ++-----------+--------------+ +| Variable | Dependencies | ++-----------+--------------+ +| serviceId | [] | ++-----------+--------------+ +Function unstake(uint256) ++-----------+--------------+ +| Variable | Dependencies | ++-----------+--------------+ +| serviceId | [] | +| | [] | ++-----------+--------------+ +Function claim(uint256) ++-----------+--------------+ +| Variable | Dependencies | ++-----------+--------------+ +| serviceId | [] | +| | [] | ++-----------+--------------+ +Function verifyInstance(address) ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| instance | [] | +| | [] | ++----------+--------------+ +INFO:Printers: +Contract IContributors ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ ++----------+--------------+ + +Function setServiceInfoForId(address,uint256,uint256,address,address) ++-----------------+--------------+ +| Variable | Dependencies | ++-----------------+--------------+ +| serviceOwner | [] | +| socialId | [] | +| serviceId | [] | +| multisig | [] | +| stakingInstance | [] | ++-----------------+--------------+ +Function mapSocialIdServiceInfo(address) ++-----------------+--------------+ +| Variable | Dependencies | ++-----------------+--------------+ +| serviceOwner | [] | +| socialId | [] | +| serviceId | [] | +| multisig | [] | +| stakingInstance | [] | ++-----------------+--------------+ +Contract IService ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ ++----------+--------------+ + +Function create(address,address,bytes32,uint32[],IService.AgentParams[],uint32) ++--------------+--------------+ +| Variable | Dependencies | ++--------------+--------------+ +| serviceOwner | [] | +| token | [] | +| configHash | [] | +| agentIds | [] | +| agentParams | [] | +| threshold | [] | +| serviceId | [] | ++--------------+--------------+ +Function activateRegistration(uint256) ++-----------+--------------+ +| Variable | Dependencies | ++-----------+--------------+ +| serviceId | [] | +| success | [] | ++-----------+--------------+ +Function registerAgents(uint256,address[],uint32[]) ++----------------+--------------+ +| Variable | Dependencies | ++----------------+--------------+ +| serviceId | [] | +| agentInstances | [] | +| agentIds | [] | +| success | [] | ++----------------+--------------+ +Function deploy(uint256,address,bytes) ++------------------------+--------------+ +| Variable | Dependencies | ++------------------------+--------------+ +| serviceId | [] | +| multisigImplementation | [] | +| data | [] | +| multisig | [] | ++------------------------+--------------+ +Function serviceRegistry() ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| | [] | ++----------+--------------+ +Function serviceRegistryTokenUtility() ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| | [] | ++----------+--------------+ +Function mapServices(uint256) ++----------------------+--------------+ +| Variable | Dependencies | ++----------------------+--------------+ +| serviceId | [] | +| securityDeposit | [] | +| multisig | [] | +| configHash | [] | +| threshold | [] | +| maxNumAgentInstances | [] | +| numAgentInstances | [] | +| state | [] | ++----------------------+--------------+ +Contract IStaking ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ ++----------+--------------+ + +Function stakingToken() ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| | [] | ++----------+--------------+ +Function minStakingDeposit() ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| | [] | ++----------+--------------+ +Function numAgentInstances() ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| | [] | ++----------+--------------+ +Function threshold() ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| | [] | ++----------+--------------+ +Function stake(uint256) ++-----------+--------------+ +| Variable | Dependencies | ++-----------+--------------+ +| serviceId | [] | ++-----------+--------------+ +Function unstake(uint256) ++-----------+--------------+ +| Variable | Dependencies | ++-----------+--------------+ +| serviceId | [] | +| | [] | ++-----------+--------------+ +Function claim(uint256) ++-----------+--------------+ +| Variable | Dependencies | ++-----------+--------------+ +| serviceId | [] | +| | [] | ++-----------+--------------+ +Function verifyInstance(address) ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| instance | [] | +| | [] | ++----------+--------------+ +Contract IToken ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ ++----------+--------------+ + +Function transfer(address,uint256) ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| to | [] | +| amount | [] | +| | [] | ++----------+--------------+ +Function transferFrom(address,address,uint256) ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| from | [] | +| to | [] | +| amount | [] | +| | [] | ++----------+--------------+ +Function approve(address,uint256) ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| spender | [] | +| amount | [] | +| | [] | ++----------+--------------+ +INFO:Printers: +Contract IContributors ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ ++----------+--------------+ + +Function setServiceInfoForId(address,uint256,uint256,address,address) ++-----------------+--------------+ +| Variable | Dependencies | ++-----------------+--------------+ +| serviceOwner | [] | +| socialId | [] | +| serviceId | [] | +| multisig | [] | +| stakingInstance | [] | ++-----------------+--------------+ +Function mapSocialIdServiceInfo(address) ++-----------------+--------------+ +| Variable | Dependencies | ++-----------------+--------------+ +| serviceOwner | [] | +| socialId | [] | +| serviceId | [] | +| multisig | [] | +| stakingInstance | [] | ++-----------------+--------------+ +Contract IService ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ ++----------+--------------+ + +Function create(address,address,bytes32,uint32[],IService.AgentParams[],uint32) ++--------------+--------------+ +| Variable | Dependencies | ++--------------+--------------+ +| serviceOwner | [] | +| token | [] | +| configHash | [] | +| agentIds | [] | +| agentParams | [] | +| threshold | [] | +| serviceId | [] | ++--------------+--------------+ +Function activateRegistration(uint256) ++-----------+--------------+ +| Variable | Dependencies | ++-----------+--------------+ +| serviceId | [] | +| success | [] | ++-----------+--------------+ +Function registerAgents(uint256,address[],uint32[]) ++----------------+--------------+ +| Variable | Dependencies | ++----------------+--------------+ +| serviceId | [] | +| agentInstances | [] | +| agentIds | [] | +| success | [] | ++----------------+--------------+ +Function deploy(uint256,address,bytes) ++------------------------+--------------+ +| Variable | Dependencies | ++------------------------+--------------+ +| serviceId | [] | +| multisigImplementation | [] | +| data | [] | +| multisig | [] | ++------------------------+--------------+ +Function serviceRegistry() ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| | [] | ++----------+--------------+ +Function serviceRegistryTokenUtility() ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| | [] | ++----------+--------------+ +Function mapServices(uint256) ++----------------------+--------------+ +| Variable | Dependencies | ++----------------------+--------------+ +| serviceId | [] | +| securityDeposit | [] | +| multisig | [] | +| configHash | [] | +| threshold | [] | +| maxNumAgentInstances | [] | +| numAgentInstances | [] | +| state | [] | ++----------------------+--------------+ +Contract IStaking ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ ++----------+--------------+ + +Function stakingToken() ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| | [] | ++----------+--------------+ +Function minStakingDeposit() ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| | [] | ++----------+--------------+ +Function numAgentInstances() ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| | [] | ++----------+--------------+ +Function threshold() ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| | [] | ++----------+--------------+ +Function stake(uint256) ++-----------+--------------+ +| Variable | Dependencies | ++-----------+--------------+ +| serviceId | [] | ++-----------+--------------+ +Function unstake(uint256) ++-----------+--------------+ +| Variable | Dependencies | ++-----------+--------------+ +| serviceId | [] | +| | [] | ++-----------+--------------+ +Function claim(uint256) ++-----------+--------------+ +| Variable | Dependencies | ++-----------+--------------+ +| serviceId | [] | +| | [] | ++-----------+--------------+ +Function verifyInstance(address) ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| instance | [] | +| | [] | ++----------+--------------+ +Contract IToken ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ ++----------+--------------+ + +Function transfer(address,uint256) ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| to | [] | +| amount | [] | +| | [] | ++----------+--------------+ +Function transferFrom(address,address,uint256) ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| from | [] | +| to | [] | +| amount | [] | +| | [] | ++----------+--------------+ +Function approve(address,uint256) ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| spender | [] | +| amount | [] | +| | [] | ++----------+--------------+ +Contract IMultisig ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ ++----------+--------------+ + +Function getOwners() ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| | [] | ++----------+--------------+ +INFO:Printers: +Contract IContributors ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ ++----------+--------------+ + +Function setServiceInfoForId(address,uint256,uint256,address,address) ++-----------------+--------------+ +| Variable | Dependencies | ++-----------------+--------------+ +| serviceOwner | [] | +| socialId | [] | +| serviceId | [] | +| multisig | [] | +| stakingInstance | [] | ++-----------------+--------------+ +Function mapSocialIdServiceInfo(address) ++-----------------+--------------+ +| Variable | Dependencies | ++-----------------+--------------+ +| serviceOwner | [] | +| socialId | [] | +| serviceId | [] | +| multisig | [] | +| stakingInstance | [] | ++-----------------+--------------+ +Contract IService ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ ++----------+--------------+ + +Function create(address,address,bytes32,uint32[],IService.AgentParams[],uint32) ++--------------+--------------+ +| Variable | Dependencies | ++--------------+--------------+ +| serviceOwner | [] | +| token | [] | +| configHash | [] | +| agentIds | [] | +| agentParams | [] | +| threshold | [] | +| serviceId | [] | ++--------------+--------------+ +Function activateRegistration(uint256) ++-----------+--------------+ +| Variable | Dependencies | ++-----------+--------------+ +| serviceId | [] | +| success | [] | ++-----------+--------------+ +Function registerAgents(uint256,address[],uint32[]) ++----------------+--------------+ +| Variable | Dependencies | ++----------------+--------------+ +| serviceId | [] | +| agentInstances | [] | +| agentIds | [] | +| success | [] | ++----------------+--------------+ +Function deploy(uint256,address,bytes) ++------------------------+--------------+ +| Variable | Dependencies | ++------------------------+--------------+ +| serviceId | [] | +| multisigImplementation | [] | +| data | [] | +| multisig | [] | ++------------------------+--------------+ +Function serviceRegistry() ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| | [] | ++----------+--------------+ +Function serviceRegistryTokenUtility() ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| | [] | ++----------+--------------+ +Function mapServices(uint256) ++----------------------+--------------+ +| Variable | Dependencies | ++----------------------+--------------+ +| serviceId | [] | +| securityDeposit | [] | +| multisig | [] | +| configHash | [] | +| threshold | [] | +| maxNumAgentInstances | [] | +| numAgentInstances | [] | +| state | [] | ++----------------------+--------------+ +Contract IStaking ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ ++----------+--------------+ + +Function stakingToken() ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| | [] | ++----------+--------------+ +Function minStakingDeposit() ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| | [] | ++----------+--------------+ +Function numAgentInstances() ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| | [] | ++----------+--------------+ +Function threshold() ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| | [] | ++----------+--------------+ +Function stake(uint256) ++-----------+--------------+ +| Variable | Dependencies | ++-----------+--------------+ +| serviceId | [] | ++-----------+--------------+ +Function unstake(uint256) ++-----------+--------------+ +| Variable | Dependencies | ++-----------+--------------+ +| serviceId | [] | +| | [] | ++-----------+--------------+ +Function claim(uint256) ++-----------+--------------+ +| Variable | Dependencies | ++-----------+--------------+ +| serviceId | [] | +| | [] | ++-----------+--------------+ +Function verifyInstance(address) ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| instance | [] | +| | [] | ++----------+--------------+ +Contract IToken ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ ++----------+--------------+ + +Function transfer(address,uint256) ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| to | [] | +| amount | [] | +| | [] | ++----------+--------------+ +Function transferFrom(address,address,uint256) ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| from | [] | +| to | [] | +| amount | [] | +| | [] | ++----------+--------------+ +Function approve(address,uint256) ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| spender | [] | +| amount | [] | +| | [] | ++----------+--------------+ +Contract IMultisig ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ ++----------+--------------+ + +Function getOwners() ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| | [] | ++----------+--------------+ +Contract ContributeManager ++-----------------------------+----------------------------------------------------------------------+ +| Variable | Dependencies | ++-----------------------------+----------------------------------------------------------------------+ +| NUM_AGENT_INSTANCES | ['NUM_AGENT_INSTANCES'] | +| THRESHOLD | ['THRESHOLD'] | +| agentId | ['_agentId', 'agentId'] | +| configHash | ['_configHash', 'configHash'] | +| contributorsProxy | ['_contributorsProxy', 'contributorsProxy'] | +| serviceManager | ['_serviceManager', 'serviceManager'] | +| olas | ['_olas', 'olas'] | +| serviceRegistry | ['_serviceManager', 'serviceManager', 'serviceRegistry'] | +| serviceRegistryTokenUtility | ['_serviceManager', 'serviceManager', 'serviceRegistryTokenUtility'] | +| stakingFactory | ['_stakingFactory', 'stakingFactory'] | +| safeMultisig | ['_safeMultisig', 'safeMultisig'] | +| fallbackHandler | ['_fallbackHandler', 'fallbackHandler'] | +| nonce | ['localNonce', 'nonce'] | ++-----------------------------+----------------------------------------------------------------------+ + +Function constructor(address,address,address,address,address,address,uint256,bytes32) ++-----------------------------------------------+---------------------------------------+ +| Variable | Dependencies | ++-----------------------------------------------+---------------------------------------+ +| _contributorsProxy | [] | +| _serviceManager | [] | +| _olas | [] | +| _stakingFactory | [] | +| _safeMultisig | [] | +| _fallbackHandler | [] | +| _agentId | [] | +| _configHash | [] | +| ContributeManager.NUM_AGENT_INSTANCES | [] | +| ContributeManager.THRESHOLD | [] | +| ContributeManager.agentId | ['_agentId'] | +| ContributeManager.configHash | ['_configHash'] | +| ContributeManager.contributorsProxy | ['_contributorsProxy'] | +| ContributeManager.serviceManager | ['_serviceManager', 'serviceManager'] | +| ContributeManager.olas | ['_olas'] | +| ContributeManager.serviceRegistry | ['_serviceManager', 'serviceManager'] | +| ContributeManager.serviceRegistryTokenUtility | ['_serviceManager', 'serviceManager'] | +| ContributeManager.stakingFactory | ['_stakingFactory'] | +| ContributeManager.safeMultisig | ['_safeMultisig'] | +| ContributeManager.fallbackHandler | ['_fallbackHandler'] | +| ContributeManager.nonce | [] | ++-----------------------------------------------+---------------------------------------+ +Function _createAndDeploy(address,uint256) ++-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Variable | Dependencies | ++-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| token | ['olas'] | +| minStakingDeposit | ['minStakingDeposit'] | +| serviceId | ['NUM_AGENT_INSTANCES', 'THRESHOLD', 'agentId', 'agentIds', 'agentParams', 'configHash', 'minStakingDeposit', 'olas', 'serviceManager', 'this', 'token'] | +| multisig | ['NUM_AGENT_INSTANCES', 'THRESHOLD', 'agentId', 'agentIds', 'agentParams', 'block.timestamp', 'configHash', 'data', 'fallbackHandler', 'localNonce', 'minStakingDeposit', 'msg.sender', 'nonce', 'olas', 'randomNonce', 'safeMultisig', 'serviceId', 'serviceManager', 'this', 'token'] | +| agentParams | ['NUM_AGENT_INSTANCES', 'agentParams', 'minStakingDeposit'] | +| agentIds | ['NUM_AGENT_INSTANCES', 'agentId', 'agentIds'] | +| instances | ['NUM_AGENT_INSTANCES', 'instances', 'msg.sender'] | +| localNonce | ['nonce'] | +| randomNonce | ['block.timestamp', 'localNonce', 'msg.sender', 'nonce'] | +| data | ['block.timestamp', 'fallbackHandler', 'localNonce', 'msg.sender', 'nonce', 'randomNonce'] | +| ContributeManager.NUM_AGENT_INSTANCES | ['NUM_AGENT_INSTANCES'] | +| ContributeManager.THRESHOLD | ['THRESHOLD'] | +| ContributeManager.agentId | ['agentId'] | +| ContributeManager.configHash | ['configHash'] | +| ContributeManager.contributorsProxy | [] | +| ContributeManager.serviceManager | ['serviceManager'] | +| ContributeManager.olas | [] | +| ContributeManager.serviceRegistry | [] | +| ContributeManager.serviceRegistryTokenUtility | [] | +| ContributeManager.stakingFactory | [] | +| ContributeManager.safeMultisig | ['safeMultisig'] | +| ContributeManager.fallbackHandler | ['fallbackHandler'] | +| ContributeManager.nonce | ['localNonce', 'nonce'] | ++-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +Function _stake(uint256,uint256,address,address) ++-----------------------------------------------+-----------------------+ +| Variable | Dependencies | ++-----------------------------------------------+-----------------------+ +| socialId | ['socialId'] | +| serviceId | ['serviceId'] | +| multisig | ['multisig'] | +| stakingInstance | ['stakingInstance'] | +| ContributeManager.NUM_AGENT_INSTANCES | [] | +| ContributeManager.THRESHOLD | [] | +| ContributeManager.agentId | [] | +| ContributeManager.configHash | [] | +| ContributeManager.contributorsProxy | ['contributorsProxy'] | +| ContributeManager.serviceManager | [] | +| ContributeManager.olas | [] | +| ContributeManager.serviceRegistry | ['serviceRegistry'] | +| ContributeManager.serviceRegistryTokenUtility | [] | +| ContributeManager.stakingFactory | [] | +| ContributeManager.safeMultisig | [] | +| ContributeManager.fallbackHandler | [] | +| ContributeManager.nonce | [] | ++-----------------------------------------------+-----------------------+ +Function createAndStake(uint256,address) ++-----------------------------------------------+-----------------------------------------------------------------+ +| Variable | Dependencies | ++-----------------------------------------------+-----------------------------------------------------------------+ +| socialId | [] | +| stakingInstance | [] | +| serviceId | ['TUPLE_0', 'TUPLE_1', 'contributorsProxy', 'msg.sender'] | +| multisig | ['TUPLE_0', 'TUPLE_1', 'contributorsProxy', 'msg.sender'] | +| token | ['stakingInstance'] | +| minStakingDeposit | ['stakingInstance'] | +| numAgentInstances | ['stakingInstance'] | +| threshold | ['stakingInstance'] | +| totalBond | ['NUM_AGENT_INSTANCES', 'minStakingDeposit', 'stakingInstance'] | +| ContributeManager.NUM_AGENT_INSTANCES | ['NUM_AGENT_INSTANCES'] | +| ContributeManager.THRESHOLD | ['THRESHOLD'] | +| ContributeManager.agentId | [] | +| ContributeManager.configHash | [] | +| ContributeManager.contributorsProxy | ['contributorsProxy'] | +| ContributeManager.serviceManager | [] | +| ContributeManager.olas | ['olas'] | +| ContributeManager.serviceRegistry | [] | +| ContributeManager.serviceRegistryTokenUtility | ['serviceRegistryTokenUtility'] | +| ContributeManager.stakingFactory | ['stakingFactory'] | +| ContributeManager.safeMultisig | [] | +| ContributeManager.fallbackHandler | [] | +| ContributeManager.nonce | [] | ++-----------------------------------------------+-----------------------------------------------------------------+ +Function stake(uint256,uint256,address) ++-----------------------------------------------+-------------------------------------------------------------------------------------------+ +| Variable | Dependencies | ++-----------------------------------------------+-------------------------------------------------------------------------------------------+ +| socialId | [] | +| serviceId | [] | +| stakingInstance | [] | +| serviceIdCheck | ['TUPLE_2', 'contributorsProxy', 'msg.sender'] | +| multisig | ['TUPLE_2', 'TUPLE_3', 'contributorsProxy', 'msg.sender', 'serviceId', 'serviceRegistry'] | +| numAgentInstances | ['stakingInstance'] | +| multisigOwners | ['TUPLE_3', 'multisig', 'multisigOwners', 'serviceId', 'serviceRegistry'] | +| ContributeManager.NUM_AGENT_INSTANCES | [] | +| ContributeManager.THRESHOLD | [] | +| ContributeManager.agentId | [] | +| ContributeManager.configHash | [] | +| ContributeManager.contributorsProxy | ['contributorsProxy'] | +| ContributeManager.serviceManager | [] | +| ContributeManager.olas | [] | +| ContributeManager.serviceRegistry | ['serviceRegistry'] | +| ContributeManager.serviceRegistryTokenUtility | [] | +| ContributeManager.stakingFactory | [] | +| ContributeManager.safeMultisig | [] | +| ContributeManager.fallbackHandler | [] | +| ContributeManager.nonce | [] | ++-----------------------------------------------+-------------------------------------------------------------------------------------------+ +Function unstake() ++-----------------------------------------------+------------------------------------------------+ +| Variable | Dependencies | ++-----------------------------------------------+------------------------------------------------+ +| socialId | ['TUPLE_4', 'contributorsProxy', 'msg.sender'] | +| serviceId | ['TUPLE_4', 'contributorsProxy', 'msg.sender'] | +| multisig | ['TUPLE_4', 'contributorsProxy', 'msg.sender'] | +| stakingInstance | ['TUPLE_4', 'contributorsProxy', 'msg.sender'] | +| ContributeManager.NUM_AGENT_INSTANCES | [] | +| ContributeManager.THRESHOLD | [] | +| ContributeManager.agentId | [] | +| ContributeManager.configHash | [] | +| ContributeManager.contributorsProxy | ['contributorsProxy'] | +| ContributeManager.serviceManager | [] | +| ContributeManager.olas | [] | +| ContributeManager.serviceRegistry | ['serviceRegistry'] | +| ContributeManager.serviceRegistryTokenUtility | [] | +| ContributeManager.stakingFactory | [] | +| ContributeManager.safeMultisig | [] | +| ContributeManager.fallbackHandler | [] | +| ContributeManager.nonce | [] | ++-----------------------------------------------+------------------------------------------------+ +Function claim() ++-----------------------------------------------+--------------------------------------------------------------------------------+ +| Variable | Dependencies | ++-----------------------------------------------+--------------------------------------------------------------------------------+ +| reward | ['TUPLE_5', 'contributorsProxy', 'msg.sender', 'serviceId', 'stakingInstance'] | +| socialId | ['TUPLE_5', 'contributorsProxy', 'msg.sender'] | +| serviceId | ['TUPLE_5', 'contributorsProxy', 'msg.sender'] | +| multisig | ['TUPLE_5', 'contributorsProxy', 'msg.sender'] | +| stakingInstance | ['TUPLE_5', 'contributorsProxy', 'msg.sender'] | +| ContributeManager.NUM_AGENT_INSTANCES | [] | +| ContributeManager.THRESHOLD | [] | +| ContributeManager.agentId | [] | +| ContributeManager.configHash | [] | +| ContributeManager.contributorsProxy | ['contributorsProxy'] | +| ContributeManager.serviceManager | [] | +| ContributeManager.olas | [] | +| ContributeManager.serviceRegistry | [] | +| ContributeManager.serviceRegistryTokenUtility | [] | +| ContributeManager.stakingFactory | [] | +| ContributeManager.safeMultisig | [] | +| ContributeManager.fallbackHandler | [] | +| ContributeManager.nonce | [] | ++-----------------------------------------------+--------------------------------------------------------------------------------+ +Function slitherConstructorConstantVariables() ++-----------------------------------------------+--------------+ +| Variable | Dependencies | ++-----------------------------------------------+--------------+ +| ContributeManager.NUM_AGENT_INSTANCES | [] | +| ContributeManager.THRESHOLD | [] | +| ContributeManager.agentId | [] | +| ContributeManager.configHash | [] | +| ContributeManager.contributorsProxy | [] | +| ContributeManager.serviceManager | [] | +| ContributeManager.olas | [] | +| ContributeManager.serviceRegistry | [] | +| ContributeManager.serviceRegistryTokenUtility | [] | +| ContributeManager.stakingFactory | [] | +| ContributeManager.safeMultisig | [] | +| ContributeManager.fallbackHandler | [] | +| ContributeManager.nonce | [] | ++-----------------------------------------------+--------------+ +INFO:Printers: +Contract ContributorsProxy ++--------------------+------------------------+ +| Variable | Dependencies | ++--------------------+------------------------+ +| CONTRIBUTORS_PROXY | ['CONTRIBUTORS_PROXY'] | ++--------------------+------------------------+ + +Function constructor(address,bytes) ++--------------------------------------+---------------------------------------------------+ +| Variable | Dependencies | ++--------------------------------------+---------------------------------------------------+ +| implementation | [] | +| contributorsData | ['contributorsData'] | +| success | ['TUPLE_0', 'contributorsData', 'implementation'] | +| ContributorsProxy.CONTRIBUTORS_PROXY | ['CONTRIBUTORS_PROXY'] | ++--------------------------------------+---------------------------------------------------+ +Function fallback() ++--------------------------------------+------------------------+ +| Variable | Dependencies | ++--------------------------------------+------------------------+ +| ContributorsProxy.CONTRIBUTORS_PROXY | ['CONTRIBUTORS_PROXY'] | ++--------------------------------------+------------------------+ +Function slitherConstructorConstantVariables() ++--------------------------------------+--------------+ +| Variable | Dependencies | ++--------------------------------------+--------------+ +| ContributorsProxy.CONTRIBUTORS_PROXY | [] | ++--------------------------------------+--------------+ +INFO:Printers: +Contract Contributors ++------------------------+---------------------------------------------------------------------------------------------------+ +| Variable | Dependencies | ++------------------------+---------------------------------------------------------------------------------------------------+ +| VERSION | [] | +| CONTRIBUTORS_PROXY | ['CONTRIBUTORS_PROXY'] | +| owner | ['msg.sender', 'newOwner', 'owner'] | +| manager | ['_manager', 'manager', 'newManager'] | +| mapSocialIdServiceInfo | ['mapSocialIdServiceInfo', 'multisig', 'serviceId', 'serviceInfo', 'socialId', 'stakingInstance'] | +| mapMutisigActivities | ['activityChanges', 'mapMutisigActivities'] | +| mapContributeAgents | ['mapContributeAgents', 'statuses'] | ++------------------------+---------------------------------------------------------------------------------------------------+ + +Function initialize(address) ++-------------------------------------+-------------------------+ +| Variable | Dependencies | ++-------------------------------------+-------------------------+ +| _manager | [] | +| Contributors.VERSION | [] | +| Contributors.CONTRIBUTORS_PROXY | [] | +| Contributors.owner | ['msg.sender', 'owner'] | +| Contributors.manager | ['_manager'] | +| Contributors.mapSocialIdServiceInfo | [] | +| Contributors.mapMutisigActivities | [] | +| Contributors.mapContributeAgents | [] | ++-------------------------------------+-------------------------+ +Function changeImplementation(address) ++-------------------------------------+------------------------+ +| Variable | Dependencies | ++-------------------------------------+------------------------+ +| newImplementation | [] | +| Contributors.VERSION | [] | +| Contributors.CONTRIBUTORS_PROXY | ['CONTRIBUTORS_PROXY'] | +| Contributors.owner | ['owner'] | +| Contributors.manager | [] | +| Contributors.mapSocialIdServiceInfo | [] | +| Contributors.mapMutisigActivities | [] | +| Contributors.mapContributeAgents | [] | ++-------------------------------------+------------------------+ +Function changeOwner(address) ++-------------------------------------+-----------------------+ +| Variable | Dependencies | ++-------------------------------------+-----------------------+ +| newOwner | [] | +| Contributors.VERSION | [] | +| Contributors.CONTRIBUTORS_PROXY | [] | +| Contributors.owner | ['newOwner', 'owner'] | +| Contributors.manager | [] | +| Contributors.mapSocialIdServiceInfo | [] | +| Contributors.mapMutisigActivities | [] | +| Contributors.mapContributeAgents | [] | ++-------------------------------------+-----------------------+ +Function changeManager(address) ++-------------------------------------+----------------+ +| Variable | Dependencies | ++-------------------------------------+----------------+ +| newManager | [] | +| Contributors.VERSION | [] | +| Contributors.CONTRIBUTORS_PROXY | [] | +| Contributors.owner | ['owner'] | +| Contributors.manager | ['newManager'] | +| Contributors.mapSocialIdServiceInfo | [] | +| Contributors.mapMutisigActivities | [] | +| Contributors.mapContributeAgents | [] | ++-------------------------------------+----------------+ +Function setServiceInfoForId(address,uint256,uint256,address,address) ++-------------------------------------+---------------------------------------------------------------------------------------------------+ +| Variable | Dependencies | ++-------------------------------------+---------------------------------------------------------------------------------------------------+ +| serviceOwner | [] | +| socialId | [] | +| serviceId | [] | +| multisig | [] | +| stakingInstance | [] | +| serviceInfo | ['multisig', 'serviceId', 'serviceInfo', 'socialId', 'stakingInstance'] | +| Contributors.VERSION | [] | +| Contributors.CONTRIBUTORS_PROXY | [] | +| Contributors.owner | [] | +| Contributors.manager | ['manager'] | +| Contributors.mapSocialIdServiceInfo | ['mapSocialIdServiceInfo', 'multisig', 'serviceId', 'serviceInfo', 'socialId', 'stakingInstance'] | +| Contributors.mapMutisigActivities | [] | +| Contributors.mapContributeAgents | [] | ++-------------------------------------+---------------------------------------------------------------------------------------------------+ +Function setContributeAgentStatuses(address[],bool[]) ++-------------------------------------+-------------------------------------+ +| Variable | Dependencies | ++-------------------------------------+-------------------------------------+ +| contributeAgents | ['contributeAgents'] | +| statuses | ['statuses'] | +| i | ['i'] | +| Contributors.VERSION | [] | +| Contributors.CONTRIBUTORS_PROXY | [] | +| Contributors.owner | ['owner'] | +| Contributors.manager | [] | +| Contributors.mapSocialIdServiceInfo | [] | +| Contributors.mapMutisigActivities | [] | +| Contributors.mapContributeAgents | ['mapContributeAgents', 'statuses'] | ++-------------------------------------+-------------------------------------+ +Function increaseActivity(address[],uint256[]) ++-------------------------------------+---------------------------------------------+ +| Variable | Dependencies | ++-------------------------------------+---------------------------------------------+ +| multisigs | ['multisigs'] | +| activityChanges | ['activityChanges'] | +| i | ['i'] | +| Contributors.VERSION | [] | +| Contributors.CONTRIBUTORS_PROXY | [] | +| Contributors.owner | [] | +| Contributors.manager | [] | +| Contributors.mapSocialIdServiceInfo | [] | +| Contributors.mapMutisigActivities | ['activityChanges', 'mapMutisigActivities'] | +| Contributors.mapContributeAgents | ['mapContributeAgents'] | ++-------------------------------------+---------------------------------------------+ +Function slitherConstructorConstantVariables() ++-------------------------------------+--------------+ +| Variable | Dependencies | ++-------------------------------------+--------------+ +| Contributors.VERSION | [] | +| Contributors.CONTRIBUTORS_PROXY | [] | +| Contributors.owner | [] | +| Contributors.manager | [] | +| Contributors.mapSocialIdServiceInfo | [] | +| Contributors.mapMutisigActivities | [] | +| Contributors.mapContributeAgents | [] | ++-------------------------------------+--------------+ +INFO:Printers: +Contract IContributors ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ ++----------+--------------+ + +Function mapMutisigActivities(address) ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| multisig | [] | +| | [] | ++----------+--------------+ +INFO:Printers: +Contract IContributors ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ ++----------+--------------+ + +Function mapMutisigActivities(address) ++----------+--------------+ +| Variable | Dependencies | ++----------+--------------+ +| multisig | [] | +| | [] | ++----------+--------------+ +Contract ContributeActivityChecker ++-------------------+---------------------------------------------+ +| Variable | Dependencies | ++-------------------+---------------------------------------------+ +| livenessRatio | ['_livenessRatio', 'livenessRatio'] | +| contributorsProxy | ['_contributorsProxy', 'contributorsProxy'] | ++-------------------+---------------------------------------------+ + +Function constructor(address,uint256) ++---------------------------------------------+------------------------+ +| Variable | Dependencies | ++---------------------------------------------+------------------------+ +| _contributorsProxy | [] | +| _livenessRatio | [] | +| ContributeActivityChecker.livenessRatio | ['_livenessRatio'] | +| ContributeActivityChecker.contributorsProxy | ['_contributorsProxy'] | ++---------------------------------------------+------------------------+ +Function getMultisigNonces(address) ++---------------------------------------------+---------------------------------------------+ +| Variable | Dependencies | ++---------------------------------------------+---------------------------------------------+ +| multisig | [] | +| nonces | ['contributorsProxy', 'multisig', 'nonces'] | +| ContributeActivityChecker.livenessRatio | [] | +| ContributeActivityChecker.contributorsProxy | ['contributorsProxy'] | ++---------------------------------------------+---------------------------------------------+ +Function isRatioPass(uint256[],uint256[],uint256) ++---------------------------------------------+-------------------------------------------------------------+ +| Variable | Dependencies | ++---------------------------------------------+-------------------------------------------------------------+ +| curNonces | ['curNonces'] | +| lastNonces | ['lastNonces'] | +| ts | [] | +| ratioPass | ['curNonces', 'lastNonces', 'livenessRatio', 'ratio', 'ts'] | +| ratio | ['curNonces', 'lastNonces', 'ts'] | +| ContributeActivityChecker.livenessRatio | ['livenessRatio'] | +| ContributeActivityChecker.contributorsProxy | [] | ++---------------------------------------------+-------------------------------------------------------------+ +INFO:Slither:. analyzed (10 contracts) diff --git a/audits/internal1/analysis/slither_full.txt b/audits/internal1/analysis/slither_full.txt new file mode 100644 index 0000000..e7432ba --- /dev/null +++ b/audits/internal1/analysis/slither_full.txt @@ -0,0 +1,33 @@ + + +Reentrancy in ContributeManager.createAndStake(uint256,address) (ContributeManager-flatten.sol#361-411): + External calls: + - IToken(olas).transferFrom(msg.sender,address(this),totalBond) (ContributeManager-flatten.sol#400) + - IToken(olas).approve(serviceRegistryTokenUtility,totalBond) (ContributeManager-flatten.sol#402) + - (serviceId,multisig) = _createAndDeploy(olas,minStakingDeposit) (ContributeManager-flatten.sol#405) + - serviceId = IService(serviceManager).create(address(this),token,configHash,agentIds,agentParams,uint32(THRESHOLD)) (ContributeManager-flatten.sol#320-321) + - IService(serviceManager).activateRegistration{value: 1}(serviceId) (ContributeManager-flatten.sol#324) + - IService(serviceManager).registerAgents{value: NUM_AGENT_INSTANCES}(serviceId,instances,agentIds) (ContributeManager-flatten.sol#327) + - multisig = IService(serviceManager).deploy(serviceId,safeMultisig,data) (ContributeManager-flatten.sol#335) + - _stake(socialId,serviceId,multisig,stakingInstance) (ContributeManager-flatten.sol#408) + - IContributors(contributorsProxy).setServiceInfoForId(msg.sender,socialId,serviceId,multisig,stakingInstance) (ContributeManager-flatten.sol#348) + - IToken(serviceRegistry).approve(stakingInstance,serviceId) (ContributeManager-flatten.sol#351) + - IStaking(stakingInstance).stake(serviceId) (ContributeManager-flatten.sol#354) + External calls sending eth: + - (serviceId,multisig) = _createAndDeploy(olas,minStakingDeposit) (ContributeManager-flatten.sol#405) + - IService(serviceManager).activateRegistration{value: 1}(serviceId) (ContributeManager-flatten.sol#324) + - IService(serviceManager).registerAgents{value: NUM_AGENT_INSTANCES}(serviceId,instances,agentIds) (ContributeManager-flatten.sol#327) + Event emitted after the call(s): + - CreatedAndStaked(socialId,msg.sender,serviceId,multisig,stakingInstance) (ContributeManager-flatten.sol#410) + +Reentrancy in ContributeManager.unstake() (ContributeManager-flatten.sol#444-463): + External calls: + - IStaking(stakingInstance).unstake(serviceId) (ContributeManager-flatten.sol#453) + - IToken(serviceRegistry).transfer(msg.sender,serviceId) (ContributeManager-flatten.sol#456) + - IContributors(contributorsProxy).setServiceInfoForId(msg.sender,0,0,address(0),address(0)) (ContributeManager-flatten.sol#460) + Event emitted after the call(s): + - Unstaked(socialId,msg.sender,serviceId,multisig,stakingInstance) (ContributeManager-flatten.sol#462) +Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3 + + + diff --git a/audits/internal1/analysis/slither_function-summary.txt b/audits/internal1/analysis/slither_function-summary.txt new file mode 100644 index 0000000..b8c2d3e --- /dev/null +++ b/audits/internal1/analysis/slither_function-summary.txt @@ -0,0 +1,228 @@ +'solc --version' running +'solc ./ContributeManager-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./ContributorsProxy-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./Contributors-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./ContributeActivityChecker-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +INFO:Printers: +Contract IContributors +Contract vars: [] +Inheritance:: [] + ++--------------------------------------------------------------+------------+-----------+------+-------+----------------+----------------+-----------------------+ +| Function | Visibility | Modifiers | Read | Write | Internal Calls | External Calls | Cyclomatic Complexity | ++--------------------------------------------------------------+------------+-----------+------+-------+----------------+----------------+-----------------------+ +| setServiceInfoForId(address,uint256,uint256,address,address) | external | [] | [] | [] | [] | [] | 2 | +| mapSocialIdServiceInfo(address) | external | [] | [] | [] | [] | [] | 2 | ++--------------------------------------------------------------+------------+-----------+------+-------+----------------+----------------+-----------------------+ + ++-----------+------------+------+-------+----------------+----------------+-----------------------+ +| Modifiers | Visibility | Read | Write | Internal Calls | External Calls | Cyclomatic Complexity | ++-----------+------------+------+-------+----------------+----------------+-----------------------+ ++-----------+------------+------+-------+----------------+----------------+-----------------------+ + +INFO:Printers: +Contract IService +Contract vars: [] +Inheritance:: [] + ++------------------------------------------------------------------------+------------+-----------+------+-------+----------------+----------------+-----------------------+ +| Function | Visibility | Modifiers | Read | Write | Internal Calls | External Calls | Cyclomatic Complexity | ++------------------------------------------------------------------------+------------+-----------+------+-------+----------------+----------------+-----------------------+ +| create(address,address,bytes32,uint32[],IService.AgentParams[],uint32) | external | [] | [] | [] | [] | [] | 2 | +| activateRegistration(uint256) | external | [] | [] | [] | [] | [] | 2 | +| registerAgents(uint256,address[],uint32[]) | external | [] | [] | [] | [] | [] | 2 | +| deploy(uint256,address,bytes) | external | [] | [] | [] | [] | [] | 2 | +| serviceRegistry() | external | [] | [] | [] | [] | [] | 2 | +| serviceRegistryTokenUtility() | external | [] | [] | [] | [] | [] | 2 | +| mapServices(uint256) | external | [] | [] | [] | [] | [] | 2 | ++------------------------------------------------------------------------+------------+-----------+------+-------+----------------+----------------+-----------------------+ + ++-----------+------------+------+-------+----------------+----------------+-----------------------+ +| Modifiers | Visibility | Read | Write | Internal Calls | External Calls | Cyclomatic Complexity | ++-----------+------------+------+-------+----------------+----------------+-----------------------+ ++-----------+------------+------+-------+----------------+----------------+-----------------------+ + +INFO:Printers: +Contract IStaking +Contract vars: [] +Inheritance:: [] + ++-------------------------+------------+-----------+------+-------+----------------+----------------+-----------------------+ +| Function | Visibility | Modifiers | Read | Write | Internal Calls | External Calls | Cyclomatic Complexity | ++-------------------------+------------+-----------+------+-------+----------------+----------------+-----------------------+ +| stakingToken() | external | [] | [] | [] | [] | [] | 2 | +| minStakingDeposit() | external | [] | [] | [] | [] | [] | 2 | +| numAgentInstances() | external | [] | [] | [] | [] | [] | 2 | +| threshold() | external | [] | [] | [] | [] | [] | 2 | +| stake(uint256) | external | [] | [] | [] | [] | [] | 2 | +| unstake(uint256) | external | [] | [] | [] | [] | [] | 2 | +| claim(uint256) | external | [] | [] | [] | [] | [] | 2 | +| verifyInstance(address) | external | [] | [] | [] | [] | [] | 2 | ++-------------------------+------------+-----------+------+-------+----------------+----------------+-----------------------+ + ++-----------+------------+------+-------+----------------+----------------+-----------------------+ +| Modifiers | Visibility | Read | Write | Internal Calls | External Calls | Cyclomatic Complexity | ++-----------+------------+------+-------+----------------+----------------+-----------------------+ ++-----------+------------+------+-------+----------------+----------------+-----------------------+ + +INFO:Printers: +Contract IToken +Contract vars: [] +Inheritance:: [] + ++---------------------------------------+------------+-----------+------+-------+----------------+----------------+-----------------------+ +| Function | Visibility | Modifiers | Read | Write | Internal Calls | External Calls | Cyclomatic Complexity | ++---------------------------------------+------------+-----------+------+-------+----------------+----------------+-----------------------+ +| transfer(address,uint256) | external | [] | [] | [] | [] | [] | 2 | +| transferFrom(address,address,uint256) | external | [] | [] | [] | [] | [] | 2 | +| approve(address,uint256) | external | [] | [] | [] | [] | [] | 2 | ++---------------------------------------+------------+-----------+------+-------+----------------+----------------+-----------------------+ + ++-----------+------------+------+-------+----------------+----------------+-----------------------+ +| Modifiers | Visibility | Read | Write | Internal Calls | External Calls | Cyclomatic Complexity | ++-----------+------------+------+-------+----------------+----------------+-----------------------+ ++-----------+------------+------+-------+----------------+----------------+-----------------------+ + +INFO:Printers: +Contract IMultisig +Contract vars: [] +Inheritance:: [] + ++-------------+------------+-----------+------+-------+----------------+----------------+-----------------------+ +| Function | Visibility | Modifiers | Read | Write | Internal Calls | External Calls | Cyclomatic Complexity | ++-------------+------------+-----------+------+-------+----------------+----------------+-----------------------+ +| getOwners() | external | [] | [] | [] | [] | [] | 2 | ++-------------+------------+-----------+------+-------+----------------+----------------+-----------------------+ + ++-----------+------------+------+-------+----------------+----------------+-----------------------+ +| Modifiers | Visibility | Read | Write | Internal Calls | External Calls | Cyclomatic Complexity | ++-----------+------------+------+-------+----------------+----------------+-----------------------+ ++-----------+------------+------+-------+----------------+----------------+-----------------------+ + +INFO:Printers: +Contract ContributeManager +Contract vars: ['NUM_AGENT_INSTANCES', 'THRESHOLD', 'agentId', 'configHash', 'contributorsProxy', 'serviceManager', 'olas', 'serviceRegistry', 'serviceRegistryTokenUtility', 'stakingFactory', 'safeMultisig', 'fallbackHandler', 'nonce'] +Inheritance:: [] + ++------------------------------------------------------------------------------+------------+-----------+-----------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+ +| Function | Visibility | Modifiers | Read | Write | Internal Calls | External Calls | Cyclomatic Complexity | ++------------------------------------------------------------------------------+------------+-----------+-----------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+ +| constructor(address,address,address,address,address,address,uint256,bytes32) | public | [] | ['serviceManager'] | ['agentId', 'configHash'] | ['revert ZeroAddress()', 'revert ZeroValue()'] | ['IService(serviceManager).serviceRegistry()', 'IService(serviceManager).serviceRegistryTokenUtility()'] | 3 | +| | | | | ['contributorsProxy', 'fallbackHandler'] | | | | +| | | | | ['olas', 'safeMultisig'] | | | | +| | | | | ['serviceManager', 'serviceRegistry'] | | | | +| | | | | ['serviceRegistryTokenUtility', 'stakingFactory'] | | | | +| _createAndDeploy(address,uint256) | internal | [] | ['NUM_AGENT_INSTANCES', 'THRESHOLD'] | ['nonce'] | ['abi.encodePacked()', 'keccak256(bytes)'] | ['IService(serviceManager).activateRegistration{value: 1}(serviceId)', 'IService(serviceManager).create(address(this),token,configHash,agentIds,agentParams,uint32(THRESHOLD))'] | 1 | +| | | | ['agentId', 'block.timestamp'] | | | ['IService(serviceManager).deploy(serviceId,safeMultisig,data)', 'IService(serviceManager).registerAgents{value: NUM_AGENT_INSTANCES}(serviceId,instances,agentIds)'] | | +| | | | ['configHash', 'fallbackHandler'] | | | ['IService.AgentParams(uint32(NUM_AGENT_INSTANCES),uint96(minStakingDeposit))', 'abi.encodePacked(address(0),fallbackHandler,address(0),address(0),uint256(0),randomNonce,0x)'] | | +| | | | ['msg.sender', 'nonce'] | | | ['abi.encodePacked(block.timestamp,msg.sender,localNonce)', 'new IService.AgentParams[](NUM_AGENT_INSTANCES)'] | | +| | | | ['safeMultisig', 'serviceManager'] | | | ['new address[](NUM_AGENT_INSTANCES)', 'new uint32[](NUM_AGENT_INSTANCES)'] | | +| | | | ['this'] | | | | | +| _stake(uint256,uint256,address,address) | internal | [] | ['contributorsProxy', 'msg.sender'] | [] | [] | ['IContributors(contributorsProxy).setServiceInfoForId(msg.sender,socialId,serviceId,multisig,stakingInstance)', 'IStaking(stakingInstance).stake(serviceId)'] | 1 | +| | | | ['serviceRegistry'] | | | ['IToken(serviceRegistry).approve(stakingInstance,serviceId)'] | | +| createAndStake(uint256,address) | external | [] | ['NUM_AGENT_INSTANCES', 'THRESHOLD'] | [] | ['_createAndDeploy', '_stake'] | ['IContributors(contributorsProxy).mapSocialIdServiceInfo(msg.sender)', 'IStaking(stakingFactory).verifyInstance(stakingInstance)'] | 6 | +| | | | ['contributorsProxy', 'msg.sender'] | | ['revert ServiceAlreadyStaked(uint256,uint256,address)', 'revert WrongStakingInstance(address)'] | ['IStaking(stakingInstance).minStakingDeposit()', 'IStaking(stakingInstance).numAgentInstances()'] | | +| | | | ['olas', 'serviceRegistryTokenUtility'] | | ['revert ZeroValue()'] | ['IStaking(stakingInstance).stakingToken()', 'IStaking(stakingInstance).threshold()'] | | +| | | | ['stakingFactory', 'this'] | | | ['IToken(olas).approve(serviceRegistryTokenUtility,totalBond)', 'IToken(olas).transferFrom(msg.sender,address(this),totalBond)'] | | +| stake(uint256,uint256,address) | external | [] | ['contributorsProxy', 'msg.sender'] | [] | ['_stake', 'revert ServiceAlreadyStaked(uint256,uint256,address)'] | ['IContributors(contributorsProxy).mapSocialIdServiceInfo(msg.sender)', 'IMultisig(multisig).getOwners()'] | 3 | +| | | | ['serviceRegistry', 'this'] | | ['revert WrongServiceSetup(uint256,uint256,address)'] | ['IService(serviceRegistry).mapServices(serviceId)', 'IStaking(stakingInstance).numAgentInstances()'] | | +| | | | | | | ['IToken(serviceRegistry).transferFrom(msg.sender,address(this),serviceId)'] | | +| unstake() | external | [] | ['contributorsProxy', 'msg.sender'] | [] | ['revert ServiceNotDefined(uint256)'] | ['IContributors(contributorsProxy).mapSocialIdServiceInfo(msg.sender)', 'IContributors(contributorsProxy).setServiceInfoForId(msg.sender,0,0,address(0),address(0))'] | 2 | +| | | | ['serviceRegistry'] | | | ['IStaking(stakingInstance).unstake(serviceId)', 'IToken(serviceRegistry).transfer(msg.sender,serviceId)'] | | +| claim() | external | [] | ['contributorsProxy', 'msg.sender'] | [] | ['revert ServiceNotDefined(uint256)'] | ['IContributors(contributorsProxy).mapSocialIdServiceInfo(msg.sender)', 'IStaking(stakingInstance).claim(serviceId)'] | 2 | +| slitherConstructorConstantVariables() | internal | [] | [] | ['NUM_AGENT_INSTANCES', 'THRESHOLD'] | [] | [] | 1 | ++------------------------------------------------------------------------------+------------+-----------+-----------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+ + ++-----------+------------+------+-------+----------------+----------------+-----------------------+ +| Modifiers | Visibility | Read | Write | Internal Calls | External Calls | Cyclomatic Complexity | ++-----------+------------+------+-------+----------------+----------------+-----------------------+ ++-----------+------------+------+-------+----------------+----------------+-----------------------+ + +INFO:Printers: +Contract ContributorsProxy +Contract vars: ['CONTRIBUTORS_PROXY'] +Inheritance:: [] + ++---------------------------------------+------------+-----------+------------------------+------------------------+----------------------------------------------------------------------------+---------------------------------------------------+-----------------------+ +| Function | Visibility | Modifiers | Read | Write | Internal Calls | External Calls | Cyclomatic Complexity | ++---------------------------------------+------------+-----------+------------------------+------------------------+----------------------------------------------------------------------------+---------------------------------------------------+-----------------------+ +| constructor(address,bytes) | public | [] | ['CONTRIBUTORS_PROXY'] | [] | ['revert InitializationFailed()', 'revert ZeroContributorsData()'] | ['implementation.delegatecall(contributorsData)'] | 4 | +| | | | | | ['revert ZeroImplementationAddress()', 'sstore(uint256,uint256)'] | | | +| fallback() | external | [] | ['CONTRIBUTORS_PROXY'] | [] | ['calldatacopy(uint256,uint256,uint256)', 'calldatasize()'] | [] | 2 | +| | | | | | ['delegatecall(uint256,uint256,uint256,uint256,uint256,uint256)', 'gas()'] | | | +| | | | | | ['return(uint256,uint256)', 'returndatacopy(uint256,uint256,uint256)'] | | | +| | | | | | ['returndatasize()', 'revert(uint256,uint256)'] | | | +| | | | | | ['sload(uint256)'] | | | +| slitherConstructorConstantVariables() | internal | [] | [] | ['CONTRIBUTORS_PROXY'] | [] | [] | 1 | ++---------------------------------------+------------+-----------+------------------------+------------------------+----------------------------------------------------------------------------+---------------------------------------------------+-----------------------+ + ++-----------+------------+------+-------+----------------+----------------+-----------------------+ +| Modifiers | Visibility | Read | Write | Internal Calls | External Calls | Cyclomatic Complexity | ++-----------+------------+------+-------+----------------+----------------+-----------------------+ ++-----------+------------+------+-------+----------------+----------------+-----------------------+ + +INFO:Printers: +Contract Contributors +Contract vars: ['VERSION', 'CONTRIBUTORS_PROXY', 'owner', 'manager', 'mapSocialIdServiceInfo', 'mapMutisigActivities', 'mapContributeAgents'] +Inheritance:: [] + ++--------------------------------------------------------------+------------+-----------+-------------------------------------------------+-----------------------------------+-------------------------------------------------------------------------------------+----------------+-----------------------+ +| Function | Visibility | Modifiers | Read | Write | Internal Calls | External Calls | Cyclomatic Complexity | ++--------------------------------------------------------------+------------+-----------+-------------------------------------------------+-----------------------------------+-------------------------------------------------------------------------------------+----------------+-----------------------+ +| initialize(address) | external | [] | ['msg.sender', 'owner'] | ['manager', 'owner'] | ['revert AlreadyInitialized()', 'revert ZeroAddress()'] | [] | 3 | +| changeImplementation(address) | external | [] | ['CONTRIBUTORS_PROXY', 'msg.sender'] | [] | ['revert OwnerOnly(address,address)', 'revert ZeroAddress()'] | [] | 3 | +| | | | ['owner'] | | ['sstore(uint256,uint256)'] | | | +| changeOwner(address) | external | [] | ['msg.sender', 'owner'] | ['owner'] | ['revert OwnerOnly(address,address)', 'revert ZeroAddress()'] | [] | 3 | +| changeManager(address) | external | [] | ['msg.sender', 'owner'] | ['manager'] | ['revert OwnerOnly(address,address)', 'revert ZeroAddress()'] | [] | 3 | +| setServiceInfoForId(address,uint256,uint256,address,address) | external | [] | ['manager', 'mapSocialIdServiceInfo'] | ['mapSocialIdServiceInfo'] | ['revert OnlyManager(address,address)'] | [] | 2 | +| | | | ['msg.sender'] | | | | | +| setContributeAgentStatuses(address[],bool[]) | external | [] | ['msg.sender', 'owner'] | ['mapContributeAgents'] | ['revert OwnerOnly(address,address)', 'revert WrongArrayLength(uint256,uint256)'] | [] | 5 | +| | | | | | ['revert ZeroAddress()'] | | | +| increaseActivity(address[],uint256[]) | external | [] | ['mapContributeAgents', 'mapMutisigActivities'] | ['mapMutisigActivities'] | ['revert UnauthorizedAccount(address)', 'revert WrongArrayLength(uint256,uint256)'] | [] | 4 | +| | | | ['msg.sender'] | | | | | +| slitherConstructorConstantVariables() | internal | [] | [] | ['CONTRIBUTORS_PROXY', 'VERSION'] | [] | [] | 1 | ++--------------------------------------------------------------+------------+-----------+-------------------------------------------------+-----------------------------------+-------------------------------------------------------------------------------------+----------------+-----------------------+ + ++-----------+------------+------+-------+----------------+----------------+-----------------------+ +| Modifiers | Visibility | Read | Write | Internal Calls | External Calls | Cyclomatic Complexity | ++-----------+------------+------+-------+----------------+----------------+-----------------------+ ++-----------+------------+------+-------+----------------+----------------+-----------------------+ + +INFO:Printers: +Contract IContributors +Contract vars: [] +Inheritance:: [] + ++-------------------------------+------------+-----------+------+-------+----------------+----------------+-----------------------+ +| Function | Visibility | Modifiers | Read | Write | Internal Calls | External Calls | Cyclomatic Complexity | ++-------------------------------+------------+-----------+------+-------+----------------+----------------+-----------------------+ +| mapMutisigActivities(address) | external | [] | [] | [] | [] | [] | 2 | ++-------------------------------+------------+-----------+------+-------+----------------+----------------+-----------------------+ + ++-----------+------------+------+-------+----------------+----------------+-----------------------+ +| Modifiers | Visibility | Read | Write | Internal Calls | External Calls | Cyclomatic Complexity | ++-----------+------------+------+-------+----------------+----------------+-----------------------+ ++-----------+------------+------+-------+----------------+----------------+-----------------------+ + +INFO:Printers: +Contract ContributeActivityChecker +Contract vars: ['livenessRatio', 'contributorsProxy'] +Inheritance:: [] + ++------------------------------------------+------------+-----------+-----------------------+----------------------------------------+------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+ +| Function | Visibility | Modifiers | Read | Write | Internal Calls | External Calls | Cyclomatic Complexity | ++------------------------------------------+------------+-----------+-----------------------+----------------------------------------+------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+ +| constructor(address,uint256) | public | [] | [] | ['contributorsProxy', 'livenessRatio'] | ['revert ZeroAddress()', 'revert ZeroValue()'] | [] | 3 | +| getMultisigNonces(address) | external | [] | ['contributorsProxy'] | [] | [] | ['IContributors(contributorsProxy).mapMutisigActivities(multisig)', 'new uint256[](1)'] | 1 | +| isRatioPass(uint256[],uint256[],uint256) | external | [] | ['livenessRatio'] | [] | [] | [] | 2 | ++------------------------------------------+------------+-----------+-----------------------+----------------------------------------+------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+ + ++-----------+------------+------+-------+----------------+----------------+-----------------------+ +| Modifiers | Visibility | Read | Write | Internal Calls | External Calls | Cyclomatic Complexity | ++-----------+------------+------+-------+----------------+----------------+-----------------------+ ++-----------+------------+------+-------+----------------+----------------+-----------------------+ + +INFO:Slither:. analyzed (10 contracts) diff --git a/audits/internal1/analysis/slither_human-summary.txt b/audits/internal1/analysis/slither_human-summary.txt new file mode 100644 index 0000000..3fcd87a --- /dev/null +++ b/audits/internal1/analysis/slither_human-summary.txt @@ -0,0 +1,84 @@ +'solc --version' running +'solc ./ContributeManager-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./ContributorsProxy-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./Contributors-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./ContributeActivityChecker-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +INFO:Printers: +Compiled with solc +Total number of contracts in source files: 6 +Source lines of code (SLOC) in source files: 213 +Number of assembly lines: 0 +Number of optimization issues: 3 +Number of informational issues: 2 +Number of low issues: 4 +Number of medium issues: 9 +Number of high issues: 5 + ++-------------------+-------------+------+------------+--------------+--------------------+ +| Name | # functions | ERCS | ERC20 info | Complex code | Features | ++-------------------+-------------+------+------------+--------------+--------------------+ +| IContributors | 2 | | | No | | +| IService | 7 | | | No | Receive ETH | +| IStaking | 8 | | | No | | +| IToken | 3 | | | No | | +| IMultisig | 1 | | | No | | +| ContributeManager | 8 | | | No | Receive ETH | +| | | | | | Send ETH | +| | | | | | Tokens interaction | ++-------------------+-------------+------+------------+--------------+--------------------+ +INFO:Printers: +Compiled with solc +Total number of contracts in source files: 1 +Source lines of code (SLOC) in source files: 34 +Number of assembly lines: 0 +Number of optimization issues: 0 +Number of informational issues: 5 +Number of low issues: 0 +Number of medium issues: 1 +Number of high issues: 2 + ++-------------------+-------------+------+------------+--------------+--------------+ +| Name | # functions | ERCS | ERC20 info | Complex code | Features | ++-------------------+-------------+------+------------+--------------+--------------+ +| ContributorsProxy | 3 | | | No | Delegatecall | +| | | | | | Assembly | +| | | | | | Proxy | ++-------------------+-------------+------+------------+--------------+--------------+ +INFO:Printers: +Compiled with solc +Total number of contracts in source files: 1 +Source lines of code (SLOC) in source files: 115 +Number of assembly lines: 0 +Number of optimization issues: 0 +Number of informational issues: 4 +Number of low issues: 0 +Number of medium issues: 0 +Number of high issues: 2 + ++--------------+-------------+------+------------+--------------+----------+ +| Name | # functions | ERCS | ERC20 info | Complex code | Features | ++--------------+-------------+------+------------+--------------+----------+ +| Contributors | 8 | | | No | Assembly | ++--------------+-------------+------+------------+--------------+----------+ +INFO:Printers: +Compiled with solc +Total number of contracts in source files: 2 +Source lines of code (SLOC) in source files: 34 +Number of assembly lines: 0 +Number of optimization issues: 0 +Number of informational issues: 2 +Number of low issues: 0 +Number of medium issues: 0 +Number of high issues: 0 + + ++---------------------------+-------------+------+------------+--------------+----------+ +| Name | # functions | ERCS | ERC20 info | Complex code | Features | ++---------------------------+-------------+------+------------+--------------+----------+ +| IContributors | 1 | | | No | | +| ContributeActivityChecker | 3 | | | No | | ++---------------------------+-------------+------+------------+--------------+----------+ +INFO:Slither:. analyzed (10 contracts) diff --git a/audits/internal1/analysis/slither_inheritance-graph.txt b/audits/internal1/analysis/slither_inheritance-graph.txt new file mode 100644 index 0000000..f263597 --- /dev/null +++ b/audits/internal1/analysis/slither_inheritance-graph.txt @@ -0,0 +1,17 @@ +'solc --version' running +'solc ./ContributeManager-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./ContributorsProxy-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./Contributors-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./ContributeActivityChecker-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +INFO:Printers:Inheritance Graph: ./ContributeManager-flatten.sol.inheritance-graph.dot + +INFO:Printers:Inheritance Graph: ./ContributorsProxy-flatten.sol.inheritance-graph.dot + +INFO:Printers:Inheritance Graph: ./Contributors-flatten.sol.inheritance-graph.dot + +INFO:Printers:Inheritance Graph: ./ContributeActivityChecker-flatten.sol.inheritance-graph.dot + +INFO:Slither:. analyzed (10 contracts) diff --git a/audits/internal1/analysis/slither_inheritance.txt b/audits/internal1/analysis/slither_inheritance.txt new file mode 100644 index 0000000..a01445b --- /dev/null +++ b/audits/internal1/analysis/slither_inheritance.txt @@ -0,0 +1,73 @@ +'solc --version' running +'solc ./ContributeManager-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./ContributorsProxy-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./Contributors-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./ContributeActivityChecker-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +INFO:Printers:Inheritance +Child_Contract -> Immediate_Base_Contracts [Not_Immediate_Base_Contracts] ++ IContributors + ++ IService + ++ IStaking + ++ IToken + ++ IMultisig + ++ ContributeManager + + +Base_Contract -> Immediate_Child_Contracts + [Not_Immediate_Child_Contracts] + ++ IContributors + ++ IService + ++ IStaking + ++ IToken + ++ IMultisig + ++ ContributeManager + +INFO:Printers:Inheritance +Child_Contract -> Immediate_Base_Contracts [Not_Immediate_Base_Contracts] ++ ContributorsProxy + + +Base_Contract -> Immediate_Child_Contracts + [Not_Immediate_Child_Contracts] + ++ ContributorsProxy + +INFO:Printers:Inheritance +Child_Contract -> Immediate_Base_Contracts [Not_Immediate_Base_Contracts] ++ Contributors + + +Base_Contract -> Immediate_Child_Contracts + [Not_Immediate_Child_Contracts] + ++ Contributors + +INFO:Printers:Inheritance +Child_Contract -> Immediate_Base_Contracts [Not_Immediate_Base_Contracts] ++ IContributors + ++ ContributeActivityChecker + + +Base_Contract -> Immediate_Child_Contracts + [Not_Immediate_Child_Contracts] + ++ IContributors + ++ ContributeActivityChecker + +INFO:Slither:. analyzed (10 contracts) diff --git a/audits/internal1/analysis/slither_modifiers.txt b/audits/internal1/analysis/slither_modifiers.txt new file mode 100644 index 0000000..bd686ca --- /dev/null +++ b/audits/internal1/analysis/slither_modifiers.txt @@ -0,0 +1,113 @@ +'solc --version' running +'solc ./ContributeManager-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./ContributorsProxy-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./Contributors-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./ContributeActivityChecker-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +INFO:Printers: +Contract IContributors ++------------------------+-----------+ +| Function | Modifiers | ++------------------------+-----------+ +| setServiceInfoForId | [] | +| mapSocialIdServiceInfo | [] | ++------------------------+-----------+ +INFO:Printers: +Contract IService ++-----------------------------+-----------+ +| Function | Modifiers | ++-----------------------------+-----------+ +| create | [] | +| activateRegistration | [] | +| registerAgents | [] | +| deploy | [] | +| serviceRegistry | [] | +| serviceRegistryTokenUtility | [] | +| mapServices | [] | ++-----------------------------+-----------+ +INFO:Printers: +Contract IStaking ++-------------------+-----------+ +| Function | Modifiers | ++-------------------+-----------+ +| stakingToken | [] | +| minStakingDeposit | [] | +| numAgentInstances | [] | +| threshold | [] | +| stake | [] | +| unstake | [] | +| claim | [] | +| verifyInstance | [] | ++-------------------+-----------+ +INFO:Printers: +Contract IToken ++--------------+-----------+ +| Function | Modifiers | ++--------------+-----------+ +| transfer | [] | +| transferFrom | [] | +| approve | [] | ++--------------+-----------+ +INFO:Printers: +Contract IMultisig ++-----------+-----------+ +| Function | Modifiers | ++-----------+-----------+ +| getOwners | [] | ++-----------+-----------+ +INFO:Printers: +Contract ContributeManager ++-------------------------------------+-----------+ +| Function | Modifiers | ++-------------------------------------+-----------+ +| constructor | [] | +| _createAndDeploy | [] | +| _stake | [] | +| createAndStake | [] | +| stake | [] | +| unstake | [] | +| claim | [] | +| slitherConstructorConstantVariables | [] | ++-------------------------------------+-----------+ +INFO:Printers: +Contract ContributorsProxy ++-------------------------------------+-----------+ +| Function | Modifiers | ++-------------------------------------+-----------+ +| constructor | [] | +| fallback | [] | +| slitherConstructorConstantVariables | [] | ++-------------------------------------+-----------+ +INFO:Printers: +Contract Contributors ++-------------------------------------+-----------+ +| Function | Modifiers | ++-------------------------------------+-----------+ +| initialize | [] | +| changeImplementation | [] | +| changeOwner | [] | +| changeManager | [] | +| setServiceInfoForId | [] | +| setContributeAgentStatuses | [] | +| increaseActivity | [] | +| slitherConstructorConstantVariables | [] | ++-------------------------------------+-----------+ +INFO:Printers: +Contract IContributors ++----------------------+-----------+ +| Function | Modifiers | ++----------------------+-----------+ +| mapMutisigActivities | [] | ++----------------------+-----------+ +INFO:Printers: +Contract ContributeActivityChecker ++-------------------+-----------+ +| Function | Modifiers | ++-------------------+-----------+ +| constructor | [] | +| getMultisigNonces | [] | +| isRatioPass | [] | ++-------------------+-----------+ +INFO:Slither:. analyzed (10 contracts) diff --git a/audits/internal1/analysis/slither_require.txt b/audits/internal1/analysis/slither_require.txt new file mode 100644 index 0000000..a8d135a --- /dev/null +++ b/audits/internal1/analysis/slither_require.txt @@ -0,0 +1,113 @@ +'solc --version' running +'solc ./ContributeManager-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./ContributorsProxy-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./Contributors-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./ContributeActivityChecker-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +INFO:Printers: +Contract IContributors ++------------------------+-------------------+ +| Function | require or assert | ++------------------------+-------------------+ +| setServiceInfoForId | | +| mapSocialIdServiceInfo | | ++------------------------+-------------------+ +INFO:Printers: +Contract IService ++-----------------------------+-------------------+ +| Function | require or assert | ++-----------------------------+-------------------+ +| create | | +| activateRegistration | | +| registerAgents | | +| deploy | | +| serviceRegistry | | +| serviceRegistryTokenUtility | | +| mapServices | | ++-----------------------------+-------------------+ +INFO:Printers: +Contract IStaking ++-------------------+-------------------+ +| Function | require or assert | ++-------------------+-------------------+ +| stakingToken | | +| minStakingDeposit | | +| numAgentInstances | | +| threshold | | +| stake | | +| unstake | | +| claim | | +| verifyInstance | | ++-------------------+-------------------+ +INFO:Printers: +Contract IToken ++--------------+-------------------+ +| Function | require or assert | ++--------------+-------------------+ +| transfer | | +| transferFrom | | +| approve | | ++--------------+-------------------+ +INFO:Printers: +Contract IMultisig ++-----------+-------------------+ +| Function | require or assert | ++-----------+-------------------+ +| getOwners | | ++-----------+-------------------+ +INFO:Printers: +Contract ContributeManager ++-------------------------------------+-------------------+ +| Function | require or assert | ++-------------------------------------+-------------------+ +| constructor | | +| _createAndDeploy | | +| _stake | | +| createAndStake | | +| stake | | +| unstake | | +| claim | | +| slitherConstructorConstantVariables | | ++-------------------------------------+-------------------+ +INFO:Printers: +Contract ContributorsProxy ++-------------------------------------+-------------------+ +| Function | require or assert | ++-------------------------------------+-------------------+ +| constructor | | +| fallback | | +| slitherConstructorConstantVariables | | ++-------------------------------------+-------------------+ +INFO:Printers: +Contract Contributors ++-------------------------------------+-------------------+ +| Function | require or assert | ++-------------------------------------+-------------------+ +| initialize | | +| changeImplementation | | +| changeOwner | | +| changeManager | | +| setServiceInfoForId | | +| setContributeAgentStatuses | | +| increaseActivity | | +| slitherConstructorConstantVariables | | ++-------------------------------------+-------------------+ +INFO:Printers: +Contract IContributors ++----------------------+-------------------+ +| Function | require or assert | ++----------------------+-------------------+ +| mapMutisigActivities | | ++----------------------+-------------------+ +INFO:Printers: +Contract ContributeActivityChecker ++-------------------+-------------------+ +| Function | require or assert | ++-------------------+-------------------+ +| constructor | | +| getMultisigNonces | | +| isRatioPass | | ++-------------------+-------------------+ +INFO:Slither:. analyzed (10 contracts) diff --git a/audits/internal1/analysis/slither_variable-order.txt b/audits/internal1/analysis/slither_variable-order.txt new file mode 100644 index 0000000..da2c732 --- /dev/null +++ b/audits/internal1/analysis/slither_variable-order.txt @@ -0,0 +1,79 @@ +'solc --version' running +'solc ./ContributeManager-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./ContributorsProxy-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./Contributors-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./ContributeActivityChecker-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +INFO:Printers: +IContributors: ++------+------+------+--------+ +| Name | Type | Slot | Offset | ++------+------+------+--------+ ++------+------+------+--------+ + +IService: ++------+------+------+--------+ +| Name | Type | Slot | Offset | ++------+------+------+--------+ ++------+------+------+--------+ + +IStaking: ++------+------+------+--------+ +| Name | Type | Slot | Offset | ++------+------+------+--------+ ++------+------+------+--------+ + +IToken: ++------+------+------+--------+ +| Name | Type | Slot | Offset | ++------+------+------+--------+ ++------+------+------+--------+ + +IMultisig: ++------+------+------+--------+ +| Name | Type | Slot | Offset | ++------+------+------+--------+ ++------+------+------+--------+ + +ContributeManager: ++-------------------------+---------+------+--------+ +| Name | Type | Slot | Offset | ++-------------------------+---------+------+--------+ +| ContributeManager.nonce | uint256 | 0 | 0 | ++-------------------------+---------+------+--------+ + +INFO:Printers: +ContributorsProxy: ++------+------+------+--------+ +| Name | Type | Slot | Offset | ++------+------+------+--------+ ++------+------+------+--------+ + +INFO:Printers: +Contributors: ++-------------------------------------+---------------------------------+------+--------+ +| Name | Type | Slot | Offset | ++-------------------------------------+---------------------------------+------+--------+ +| Contributors.owner | address | 0 | 0 | +| Contributors.manager | address | 1 | 0 | +| Contributors.mapSocialIdServiceInfo | mapping(address => ServiceInfo) | 2 | 0 | +| Contributors.mapMutisigActivities | mapping(address => uint256) | 3 | 0 | +| Contributors.mapContributeAgents | mapping(address => bool) | 4 | 0 | ++-------------------------------------+---------------------------------+------+--------+ + +INFO:Printers: +IContributors: ++------+------+------+--------+ +| Name | Type | Slot | Offset | ++------+------+------+--------+ ++------+------+------+--------+ + +ContributeActivityChecker: ++------+------+------+--------+ +| Name | Type | Slot | Offset | ++------+------+------+--------+ ++------+------+------+--------+ + +INFO:Slither:. analyzed (10 contracts) diff --git a/audits/internal1/analysis/slither_vars-and-auth.txt b/audits/internal1/analysis/slither_vars-and-auth.txt new file mode 100644 index 0000000..1ffe245 --- /dev/null +++ b/audits/internal1/analysis/slither_vars-and-auth.txt @@ -0,0 +1,117 @@ +'solc --version' running +'solc ./ContributeManager-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./ContributorsProxy-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./Contributors-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +'solc --version' running +'solc ./ContributeActivityChecker-flatten.sol --combined-json abi,ast,bin,bin-runtime,srcmap,srcmap-runtime,userdoc,devdoc,hashes --allow-paths .,/home/andrey/valory/autonolas-staking-programmes/audits/internal1/analysis/contracts' running +INFO:Printers: +Contract IContributors ++------------------------+-------------------------+--------------------------+ +| Function | State variables written | Conditions on msg.sender | ++------------------------+-------------------------+--------------------------+ +| setServiceInfoForId | [] | [] | +| mapSocialIdServiceInfo | [] | [] | ++------------------------+-------------------------+--------------------------+ + +Contract IService ++-----------------------------+-------------------------+--------------------------+ +| Function | State variables written | Conditions on msg.sender | ++-----------------------------+-------------------------+--------------------------+ +| create | [] | [] | +| activateRegistration | [] | [] | +| registerAgents | [] | [] | +| deploy | [] | [] | +| serviceRegistry | [] | [] | +| serviceRegistryTokenUtility | [] | [] | +| mapServices | [] | [] | ++-----------------------------+-------------------------+--------------------------+ + +Contract IStaking ++-------------------+-------------------------+--------------------------+ +| Function | State variables written | Conditions on msg.sender | ++-------------------+-------------------------+--------------------------+ +| stakingToken | [] | [] | +| minStakingDeposit | [] | [] | +| numAgentInstances | [] | [] | +| threshold | [] | [] | +| stake | [] | [] | +| unstake | [] | [] | +| claim | [] | [] | +| verifyInstance | [] | [] | ++-------------------+-------------------------+--------------------------+ + +Contract IToken ++--------------+-------------------------+--------------------------+ +| Function | State variables written | Conditions on msg.sender | ++--------------+-------------------------+--------------------------+ +| transfer | [] | [] | +| transferFrom | [] | [] | +| approve | [] | [] | ++--------------+-------------------------+--------------------------+ + +Contract IMultisig ++-----------+-------------------------+--------------------------+ +| Function | State variables written | Conditions on msg.sender | ++-----------+-------------------------+--------------------------+ +| getOwners | [] | [] | ++-----------+-------------------------+--------------------------+ + +Contract ContributeManager ++-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+ +| Function | State variables written | Conditions on msg.sender | ++-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+ +| constructor | ['agentId', 'configHash', 'contributorsProxy', 'fallbackHandler', 'olas', 'safeMultisig', 'serviceManager', 'serviceRegistry', 'serviceRegistryTokenUtility', 'stakingFactory'] | [] | +| _createAndDeploy | ['nonce'] | [] | +| _stake | [] | [] | +| createAndStake | ['nonce'] | [] | +| stake | [] | ['multisigOwners.length != numAgentInstances || multisigOwners[0] != msg.sender'] | +| unstake | [] | [] | +| claim | [] | [] | +| slitherConstructorConstantVariables | ['NUM_AGENT_INSTANCES', 'THRESHOLD'] | [] | ++-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+ + +INFO:Printers: +Contract ContributorsProxy ++-------------------------------------+-------------------------+--------------------------+ +| Function | State variables written | Conditions on msg.sender | ++-------------------------------------+-------------------------+--------------------------+ +| constructor | [] | [] | +| fallback | [] | [] | +| slitherConstructorConstantVariables | ['CONTRIBUTORS_PROXY'] | [] | ++-------------------------------------+-------------------------+--------------------------+ + +INFO:Printers: +Contract Contributors ++-------------------------------------+-----------------------------------+---------------------------------------+ +| Function | State variables written | Conditions on msg.sender | ++-------------------------------------+-----------------------------------+---------------------------------------+ +| initialize | ['manager', 'owner'] | [] | +| changeImplementation | [] | ['msg.sender != owner'] | +| changeOwner | ['owner'] | ['msg.sender != owner'] | +| changeManager | ['manager'] | ['msg.sender != owner'] | +| setServiceInfoForId | ['mapSocialIdServiceInfo'] | ['msg.sender != manager'] | +| setContributeAgentStatuses | ['mapContributeAgents'] | ['msg.sender != owner'] | +| increaseActivity | ['mapMutisigActivities'] | ['! mapContributeAgents[msg.sender]'] | +| slitherConstructorConstantVariables | ['CONTRIBUTORS_PROXY', 'VERSION'] | [] | ++-------------------------------------+-----------------------------------+---------------------------------------+ + +INFO:Printers: +Contract IContributors ++----------------------+-------------------------+--------------------------+ +| Function | State variables written | Conditions on msg.sender | ++----------------------+-------------------------+--------------------------+ +| mapMutisigActivities | [] | [] | ++----------------------+-------------------------+--------------------------+ + +Contract ContributeActivityChecker ++-------------------+----------------------------------------+--------------------------+ +| Function | State variables written | Conditions on msg.sender | ++-------------------+----------------------------------------+--------------------------+ +| constructor | ['contributorsProxy', 'livenessRatio'] | [] | +| getMultisigNonces | [] | [] | +| isRatioPass | [] | [] | ++-------------------+----------------------------------------+--------------------------+ + +INFO:Slither:. analyzed (10 contracts) From 63eedea68c5b5334bddcd47873a0e70d7ef9a1f5 Mon Sep 17 00:00:00 2001 From: AL Date: Wed, 23 Oct 2024 14:26:09 +0100 Subject: [PATCH 14/25] doc: v.1.4.0-internal-audit --- audits/internal/analysis/._slither_call-graph.txt | Bin 224 -> 0 bytes .../analysis/._slither_constructor-calls.txt | Bin 224 -> 0 bytes .../analysis/._slither_contract-summary.txt | Bin 224 -> 0 bytes .../analysis/._slither_data-dependency.txt | Bin 224 -> 0 bytes audits/internal/analysis/._slither_full.txt | Bin 224 -> 0 bytes .../analysis/._slither_function-summary.txt | Bin 224 -> 0 bytes .../internal/analysis/._slither_human-summary.txt | Bin 224 -> 0 bytes .../analysis/._slither_inheritance-graph.txt | Bin 224 -> 0 bytes .../internal/analysis/._slither_inheritance.txt | Bin 224 -> 0 bytes audits/internal/analysis/._slither_modifiers.txt | Bin 224 -> 0 bytes audits/internal/analysis/._slither_require.txt | Bin 224 -> 0 bytes .../analysis/._slither_variable-order.txt | Bin 224 -> 0 bytes .../internal/analysis/._slither_vars-and-auth.txt | Bin 224 -> 0 bytes 13 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 audits/internal/analysis/._slither_call-graph.txt delete mode 100644 audits/internal/analysis/._slither_constructor-calls.txt delete mode 100644 audits/internal/analysis/._slither_contract-summary.txt delete mode 100644 audits/internal/analysis/._slither_data-dependency.txt delete mode 100644 audits/internal/analysis/._slither_full.txt delete mode 100644 audits/internal/analysis/._slither_function-summary.txt delete mode 100644 audits/internal/analysis/._slither_human-summary.txt delete mode 100644 audits/internal/analysis/._slither_inheritance-graph.txt delete mode 100644 audits/internal/analysis/._slither_inheritance.txt delete mode 100644 audits/internal/analysis/._slither_modifiers.txt delete mode 100644 audits/internal/analysis/._slither_require.txt delete mode 100644 audits/internal/analysis/._slither_variable-order.txt delete mode 100644 audits/internal/analysis/._slither_vars-and-auth.txt diff --git a/audits/internal/analysis/._slither_call-graph.txt b/audits/internal/analysis/._slither_call-graph.txt deleted file mode 100644 index 5f50aa59a68f8e78a9c60e68c0c57207f041e880..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 224 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}@j4&|@gD#&5x_AdBnYbP0g&DT#5zzu zjABHH>m}#s>LnHw$Vqox1Ojhs@R)|o50+1L3ClDI}@j4&|@gD#&5x_AdBnYbP0g&DT#5zzu zjABHH>m}#s>LnHw$Vqox1Ojhs@R)|o50+1L3ClDI}@j4&|@gD#&5x_AdBnYbP0g&DT#5zzu zjABHH>m}#s>LnHw$Vqox1Ojhs@R)|o50+1L3ClDI}@j4&|@gD#&5x_AdBnYbP0g&DT#5zzu zjABHH>m}#s>LnHw$Vqox1Ojhs@R)|o50+1L3ClDI}@j4&|@gD#&5x_AdBnYbP0g&DT#5zzu zjABHH>m}#s>LnHwm>%5# diff --git a/audits/internal/analysis/._slither_function-summary.txt b/audits/internal/analysis/._slither_function-summary.txt deleted file mode 100644 index 5f50aa59a68f8e78a9c60e68c0c57207f041e880..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 224 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}@j4&|@gD#&5x_AdBnYbP0g&DT#5zzu zjABHH>m}#s>LnHw$Vqox1Ojhs@R)|o50+1L3ClDI}@j4&|@gD#&5x_AdBnYbP0g&DT#5zzu zjABHH>m}#s>LnHw$Vqox1Ojhs@R)|o50+1L3ClDI}@j4&|@gD#&5x_AdBnYbP0g&DT#5zzu zjABHH>m}#s>LnHw$Vqox1Ojhs@R)|o50+1L3ClDI}@j4&|@gD#&5x_AdBnYbP0g&DT#5zzu zjABHH>m}#s>LnHw$Vqox1Ojhs@R)|o50+1L3ClDI}@j4&|@gD#&5x_AdBnYbP0g&DT#5zzu zjABHH>m}#s>LnHw$Vqox1Ojhs@R)|o50+1L3ClDI}@j4&|@gD#&5x_AdBnYbP0g&DT#5zzu zjABHH>m}#s>LnHw$Vqox1Ojhs@R)|o50+1L3ClDI}@j4&|@gD#&5x_AdBnYbP0g&DT#5zzu zjABHH>m}#s>LnHw$Vqox1Ojhs@R)|o50+1L3ClDI}@j4&|@gD#&5x_AdBnYbP0g&DT#5zzu zjABHH>m}#s>LnHw Date: Wed, 23 Oct 2024 17:02:26 +0100 Subject: [PATCH 15/25] refactor: NFT fix --- contracts/contribute/ContributeManager.sol | 6 +- contracts/contribute/interfaces/IToken.sol | 3 +- contracts/test/ABICreator.sol | 11 +- package.json | 2 +- .../deploy_10_contribute_activity_checker.js | 4 +- test/StakingContribute.js | 175 +++++++++++++++++ yarn.lock | 184 ++++++++---------- 7 files changed, 273 insertions(+), 112 deletions(-) create mode 100644 test/StakingContribute.js diff --git a/contracts/contribute/ContributeManager.sol b/contracts/contribute/ContributeManager.sol index e7bcb92..35b248a 100644 --- a/contracts/contribute/ContributeManager.sol +++ b/contracts/contribute/ContributeManager.sol @@ -1,6 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.28; +import {ERC721TokenReceiver} from "../../lib/autonolas-registries/lib/solmate/src/tokens/ERC721.sol"; import {IContributors} from "./interfaces/IContributors.sol"; import {IService} from "./interfaces/IService.sol"; import {IStaking} from "./interfaces/IStaking.sol"; @@ -50,7 +51,7 @@ error ServiceOwnerOnly(uint256 serviceId, address sender, address serviceOwner); /// @author Andrey Lebedev - /// @author Tatiana Priemova - /// @author David Vilela - -contract ContributeManager { +contract ContributeManager is ERC721TokenReceiver { event CreatedAndStaked(uint256 indexed socialId, address indexed serviceOwner, uint256 serviceId, address indexed multisig, address stakingInstance); event Staked(uint256 indexed socialId, address indexed serviceOwner, uint256 serviceId, @@ -225,7 +226,8 @@ contract ContributeManager { uint256 threshold = IStaking(stakingInstance).threshold(); // Check for number of agent instances that must be equal to one, // since msg.sender is the only service multisig owner - if (numAgentInstances != NUM_AGENT_INSTANCES || threshold != THRESHOLD) { + if ((numAgentInstances > 0 && numAgentInstances != NUM_AGENT_INSTANCES) || + (threshold > 0 && threshold != THRESHOLD)) { revert WrongStakingInstance(stakingInstance); } diff --git a/contracts/contribute/interfaces/IToken.sol b/contracts/contribute/interfaces/IToken.sol index cd0aaf1..31b0032 100644 --- a/contracts/contribute/interfaces/IToken.sol +++ b/contracts/contribute/interfaces/IToken.sol @@ -19,6 +19,5 @@ interface IToken { /// @dev Sets `amount` as the allowance of `spender` over the caller's tokens. /// @param spender Account address that will be able to transfer tokens on behalf of the caller. /// @param amount Token amount. - /// @return True if the function execution is successful. - function approve(address spender, uint256 amount) external returns (bool); + function approve(address spender, uint256 amount) external; } \ No newline at end of file diff --git a/contracts/test/ABICreator.sol b/contracts/test/ABICreator.sol index f08ba9d..9efe4b7 100644 --- a/contracts/test/ABICreator.sol +++ b/contracts/test/ABICreator.sol @@ -4,14 +4,15 @@ pragma solidity ^0.8.25; // Getting ABIs for the Gnosis Safe master copy and proxy contracts import "@gnosis.pm/safe-contracts/contracts/GnosisSafe.sol"; import "@gnosis.pm/safe-contracts/contracts/proxies/GnosisSafeProxyFactory.sol"; +import "@gnosis.pm/safe-contracts/contracts/handler/DefaultCallbackHandler.sol"; import "@gnosis.pm/safe-contracts/contracts/libraries/MultiSendCallOnly.sol"; // Getting ABIs for registry contracts -import "../../lib/autonolas-registries/contracts/ComponentRegistry.sol"; -import "../../lib/autonolas-registries/contracts/AgentRegistry.sol"; -import "../../lib/autonolas-registries/contracts/ServiceRegistry.sol"; -import "../../lib/autonolas-registries/contracts/ServiceRegistryTokenUtility.sol"; -import "../../lib/autonolas-registries/contracts/multisigs/GnosisSafeMultisig.sol"; +import {OperatorWhitelist} from "../../lib/autonolas-registries/contracts/utils/OperatorWhitelist.sol"; +import {ServiceRegistryL2} from "../../lib/autonolas-registries/contracts/ServiceRegistryL2.sol"; +import {ServiceRegistryTokenUtility} from "../../lib/autonolas-registries/contracts/ServiceRegistryTokenUtility.sol"; +import {ServiceManagerToken} from "../../lib/autonolas-registries/contracts/ServiceManagerToken.sol"; +import {GnosisSafeMultisig} from "../../lib/autonolas-registries/contracts/multisigs/GnosisSafeMultisig.sol"; import {StakingFactory} from "../../lib/autonolas-registries/contracts/staking/StakingFactory.sol"; import {StakingToken} from "../../lib/autonolas-registries/contracts/staking/StakingToken.sol"; import {StakingNativeToken} from "../../lib/autonolas-registries/contracts/staking/StakingNativeToken.sol"; diff --git a/package.json b/package.json index 7129f8c..87da197 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "chai": "^4.3.10", "eslint": "^8.52.0", "ethers": "^5.7.2", - "hardhat": "^2.22.4", + "hardhat": "^2.22.14", "hardhat-contract-sizer": "^2.10.0", "hardhat-deploy": "^0.11.43", "hardhat-deploy-ethers": "^0.3.0-beta.13", diff --git a/scripts/deployment/deploy_10_contribute_activity_checker.js b/scripts/deployment/deploy_10_contribute_activity_checker.js index d916823..701bfb9 100644 --- a/scripts/deployment/deploy_10_contribute_activity_checker.js +++ b/scripts/deployment/deploy_10_contribute_activity_checker.js @@ -47,8 +47,8 @@ async function main() { const gasPrice = ethers.utils.parseUnits(gasPriceInGwei, "gwei"); const ContributeActivityChecker = await ethers.getContractFactory("ContributeActivityChecker"); console.log("You are signing the following transaction: ContributeActivityChecker.connect(EOA).deploy()"); - const contributeActivityChecker = await ContributeActivityChecker.connect(EOA).deploy(contributorsProxyAddress, livenessRatio, - { gasPrice }); + const contributeActivityChecker = await ContributeActivityChecker.connect(EOA).deploy(contributorsProxyAddress, + livenessRatio, { gasPrice }); const result = await contributeActivityChecker.deployed(); // Transaction details diff --git a/test/StakingContribute.js b/test/StakingContribute.js new file mode 100644 index 0000000..1ab88cb --- /dev/null +++ b/test/StakingContribute.js @@ -0,0 +1,175 @@ +/*global describe, context, beforeEach, it*/ +const { expect } = require("chai"); +const { ethers } = require("hardhat"); +const helpers = require("@nomicfoundation/hardhat-network-helpers"); +const safeContracts = require("@gnosis.pm/safe-contracts"); + +describe("Staking", function () { + let componentRegistry; + let agentRegistry; + let serviceRegistry; + let serviceRegistryTokenUtility; + let operatorWhitelist; + let serviceManager; + let token; + let gnosisSafe; + let gnosisSafeProxyFactory; + let fallbackHandler; + let gnosisSafeMultisig; + let stakingFactory; + let contributors; + let contributorsProxy; + let contributeManager; + let contributeActivityChecker; + let stakingTokenImplementation; + let stakingToken; + let signers; + let deployer; + let agentInstances; + let bytecodeHash; + const AddressZero = ethers.constants.AddressZero; + const HashZero = ethers.constants.HashZero; + const defaultHash = "0x" + "5".repeat(64); + const regDeposit = 1000; + const regBond = 1000; + const serviceId = 1; + const agentId = 1; + let socialId = 1; + const agentIds = [1]; + const agentParams = [[1, regBond]]; + const threshold = 1; + const livenessPeriod = 10; // Ten seconds + const initSupply = "5" + "0".repeat(26); + const payload = "0x"; + const livenessRatio = "1" + "0".repeat(16); // 0.01 transaction per second (TPS) + let serviceParams = { + metadataHash: defaultHash, + maxNumServices: 3, + rewardsPerSecond: "1" + "0".repeat(15), + minStakingDeposit: 10, + minNumStakingPeriods: 3, + maxNumInactivityPeriods: 3, + livenessPeriod: livenessPeriod, // Ten seconds + timeForEmissions: 100, + numAgentInstances: 1, + agentIds: [], + threshold: 1, + configHash: HashZero, + proxyHash: HashZero, + serviceRegistry: AddressZero, + activityChecker: AddressZero + }; + const maxInactivity = serviceParams.maxNumInactivityPeriods * livenessPeriod + 1; + + beforeEach(async function () { + signers = await ethers.getSigners(); + deployer = signers[0]; + + const ServiceRegistry = await ethers.getContractFactory("ServiceRegistryL2"); + serviceRegistry = await ServiceRegistry.deploy("Service Registry L2", "SERVICE", "https://localhost/service/"); + await serviceRegistry.deployed(); + serviceParams.serviceRegistry = serviceRegistry.address; + + const ServiceRegistryTokenUtility = await ethers.getContractFactory("ServiceRegistryTokenUtility"); + serviceRegistryTokenUtility = await ServiceRegistryTokenUtility.deploy(serviceRegistry.address); + await serviceRegistry.deployed(); + + const OperatorWhitelist = await ethers.getContractFactory("OperatorWhitelist"); + operatorWhitelist = await OperatorWhitelist.deploy(serviceRegistry.address); + await operatorWhitelist.deployed(); + + const ServiceManagerToken = await ethers.getContractFactory("ServiceManagerToken"); + serviceManager = await ServiceManagerToken.deploy(serviceRegistry.address, serviceRegistryTokenUtility.address, + operatorWhitelist.address); + await serviceManager.deployed(); + + const Token = await ethers.getContractFactory("ERC20Token"); + token = await Token.deploy(); + await token.deployed(); + + const GnosisSafe = await ethers.getContractFactory("GnosisSafe"); + gnosisSafe = await GnosisSafe.deploy(); + await gnosisSafe.deployed(); + + const GnosisSafeProxyFactory = await ethers.getContractFactory("GnosisSafeProxyFactory"); + gnosisSafeProxyFactory = await GnosisSafeProxyFactory.deploy(); + await gnosisSafeProxyFactory.deployed(); + + const FallbackHandler = await ethers.getContractFactory("DefaultCallbackHandler"); + fallbackHandler = await FallbackHandler.deploy(); + await fallbackHandler.deployed(); + + const GnosisSafeMultisig = await ethers.getContractFactory("GnosisSafeMultisig"); + gnosisSafeMultisig = await GnosisSafeMultisig.deploy(gnosisSafe.address, gnosisSafeProxyFactory.address); + await gnosisSafeMultisig.deployed(); + + const GnosisSafeProxy = await ethers.getContractFactory("GnosisSafeProxy"); + const gnosisSafeProxy = await GnosisSafeProxy.deploy(gnosisSafe.address); + await gnosisSafeProxy.deployed(); + const bytecode = await ethers.provider.getCode(gnosisSafeProxy.address); + bytecodeHash = ethers.utils.keccak256(bytecode); + serviceParams.proxyHash = bytecodeHash; + + const StakingFactory = await ethers.getContractFactory("StakingFactory"); + stakingFactory = await StakingFactory.deploy(AddressZero); + await stakingFactory.deployed(); + + const Contributors = await ethers.getContractFactory("Contributors"); + contributors = await Contributors.deploy(); + await contributors.deployed(); + + const ContributorsProxy = await ethers.getContractFactory("ContributorsProxy"); + const proxyData = contributors.interface.encodeFunctionData("initialize", []); + contributorsProxy = await ContributorsProxy.deploy(contributors.address, proxyData); + await contributorsProxy.deployed(); + contributors = await ethers.getContractAt("Contributors", contributorsProxy.address); + + const ContributeManager = await ethers.getContractFactory("ContributeManager"); + contributeManager = await ContributeManager.deploy(contributorsProxy.address, serviceManager.address, + token.address, stakingFactory.address, gnosisSafeMultisig.address, fallbackHandler.address, + agentId, defaultHash); + + const ContributeActivityChecker = await ethers.getContractFactory("ContributeActivityChecker"); + contributeActivityChecker = await ContributeActivityChecker.deploy(contributorsProxy.address, livenessRatio); + await contributeActivityChecker.deployed(); + serviceParams.activityChecker = contributeActivityChecker.address; + + const StakingToken = await ethers.getContractFactory("StakingToken"); + stakingTokenImplementation = await StakingToken.deploy(); + const initPayload = stakingTokenImplementation.interface.encodeFunctionData("initialize", + [serviceParams, serviceRegistryTokenUtility.address, token.address]); + const tx = await stakingFactory.createStakingInstance(stakingTokenImplementation.address, initPayload); + const res = await tx.wait(); + // Get staking contract instance address from the event + const stakingTokenAddress = "0x" + res.logs[0].topics[2].slice(26); + stakingToken = await ethers.getContractAt("StakingToken", stakingTokenAddress); + + // Set service manager + await serviceRegistry.changeManager(serviceManager.address); + await serviceRegistryTokenUtility.changeManager(serviceManager.address); + + // Mint tokens to the service owner and the operator + await token.mint(deployer.address, initSupply); + + // Whitelist gnosis multisig implementations + await serviceRegistry.changeMultisigPermission(gnosisSafeMultisig.address, true); + + // Set the manager of contributorsProxy + contributors.changeManager(contributeManager.address); + + // Fund the staking contract + await token.approve(stakingTokenAddress, ethers.utils.parseEther("1")); + await stakingToken.deposit(ethers.utils.parseEther("1")); + }); + + context("Initialization", function () { + }); + + context("Contribute manager", function () { + it.only("Mint and stake", async function () { + await token.approve(contributeManager.address, serviceParams.minStakingDeposit * 2); + + await contributeManager.createAndStake(socialId, stakingToken.address, {value: 2}); + }); + }); +}); diff --git a/yarn.lock b/yarn.lock index 8967b49..493d428 100644 --- a/yarn.lock +++ b/yarn.lock @@ -675,53 +675,53 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@nomicfoundation/edr-darwin-arm64@0.3.8": - version "0.3.8" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.3.8.tgz#09de1f03c0336670fce959f376f0fe9137545836" - integrity sha512-eB0leCexS8sQEmfyD72cdvLj9djkBzQGP4wSQw6SNf2I4Sw4Cnzb3d45caG2FqFFjbvfqL0t+badUUIceqQuMw== - -"@nomicfoundation/edr-darwin-x64@0.3.8": - version "0.3.8" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.3.8.tgz#c3ca237c74ed3b6fb800fd7f1de7174f4ad24f72" - integrity sha512-JksVCS1N5ClwVF14EvO25HCQ+Laljh/KRfHERMVAC9ZwPbTuAd/9BtKvToCBi29uCHWqsXMI4lxCApYQv2nznw== - -"@nomicfoundation/edr-linux-arm64-gnu@0.3.8": - version "0.3.8" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.3.8.tgz#08bd367789e745f4e78a8a87368fc470eea8a7de" - integrity sha512-raCE+fOeNXhVBLUo87cgsHSGvYYRB6arih4eG6B9KGACWK5Veebtm9xtKeiD8YCsdUlUfat6F7ibpeNm91fpsA== - -"@nomicfoundation/edr-linux-arm64-musl@0.3.8": - version "0.3.8" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.3.8.tgz#9cab5cbec0052cb5812c6c66c463d28a756cd916" - integrity sha512-PwiDp4wBZWMCIy29eKkv8moTKRrpiSDlrc+GQMSZLhOAm8T33JKKXPwD/2EbplbhCygJDGXZdtEKl9x9PaH66A== - -"@nomicfoundation/edr-linux-x64-gnu@0.3.8": - version "0.3.8" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.3.8.tgz#d4a11b6ebcd1b29d7431d185c6df3e65a2cd4bde" - integrity sha512-6AcvA/XKoipGap5jJmQ9Y6yT7Uf39D9lu2hBcDCXnXbMcXaDGw4mn1/L4R63D+9VGZyu1PqlcJixCUZlGGIWlg== - -"@nomicfoundation/edr-linux-x64-musl@0.3.8": - version "0.3.8" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.3.8.tgz#b8eef960d06380a365866ddd1e97ecb7fbf6bd70" - integrity sha512-cxb0sEmZjlwhYWO28sPsV64VDx31ekskhC1IsDXU1p9ntjHSJRmW4KEIqJ2O3QwJap/kLKfMS6TckvY10gjc6w== - -"@nomicfoundation/edr-win32-x64-msvc@0.3.8": - version "0.3.8" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.3.8.tgz#ac7061aeb07cc847c429513080b76bb05297a869" - integrity sha512-yVuVPqRRNLZk7TbBMkKw7lzCvI8XO8fNTPTYxymGadjr9rEGRuNTU1yBXjfJ59I1jJU/X2TSkRk1OFX0P5tpZQ== - -"@nomicfoundation/edr@^0.3.7": - version "0.3.8" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr/-/edr-0.3.8.tgz#28fe7ae4f462ae74a16cd1a714ff7b1cd9c22b4c" - integrity sha512-u2UJ5QpznSHVkZRh6ePWoeVb6kmPrrqh08gCnZ9FHlJV9CITqlrTQHJkacd+INH31jx88pTAJnxePE4XAiH5qg== - dependencies: - "@nomicfoundation/edr-darwin-arm64" "0.3.8" - "@nomicfoundation/edr-darwin-x64" "0.3.8" - "@nomicfoundation/edr-linux-arm64-gnu" "0.3.8" - "@nomicfoundation/edr-linux-arm64-musl" "0.3.8" - "@nomicfoundation/edr-linux-x64-gnu" "0.3.8" - "@nomicfoundation/edr-linux-x64-musl" "0.3.8" - "@nomicfoundation/edr-win32-x64-msvc" "0.3.8" +"@nomicfoundation/edr-darwin-arm64@0.6.4": + version "0.6.4" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.6.4.tgz#6eaa64a6ea5201e4c92b121f2b7fd197b26e450a" + integrity sha512-QNQErISLgssV9+qia8sIjRANqtbW8snSDvjspixT/kSQ5ZSGxxctTg7x72wPSrcu8+EBEveIe5uqENIp5GH8HQ== + +"@nomicfoundation/edr-darwin-x64@0.6.4": + version "0.6.4" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.6.4.tgz#d15ca89e9deef7d0a710cf90e79f3cc270a5a999" + integrity sha512-cjVmREiwByyc9+oGfvAh49IAw+oVJHF9WWYRD+Tm/ZlSpnEVWxrGNBak2bd/JSYjn+mZE7gmWS4SMRi4nKaLUg== + +"@nomicfoundation/edr-linux-arm64-gnu@0.6.4": + version "0.6.4" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.6.4.tgz#e73c41ca015dfddb5f4cb6cd3d9b2cbe5cc28989" + integrity sha512-96o9kRIVD6W5VkgKvUOGpWyUGInVQ5BRlME2Fa36YoNsRQMaKtmYJEU0ACosYES6ZTpYC8U5sjMulvPtVoEfOA== + +"@nomicfoundation/edr-linux-arm64-musl@0.6.4": + version "0.6.4" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.6.4.tgz#90906f733e4ad26657baeb22d28855d934ab7541" + integrity sha512-+JVEW9e5plHrUfQlSgkEj/UONrIU6rADTEk+Yp9pbe+mzNkJdfJYhs5JYiLQRP4OjxH4QOrXI97bKU6FcEbt5Q== + +"@nomicfoundation/edr-linux-x64-gnu@0.6.4": + version "0.6.4" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.6.4.tgz#11b8bd73df145a192e5a08199e5e81995fcde502" + integrity sha512-nzYWW+fO3EZItOeP4CrdMgDXfaGBIBkKg0Y/7ySpUxLqzut40O4Mb0/+quqLAFkacUSWMlFp8nsmypJfOH5zoA== + +"@nomicfoundation/edr-linux-x64-musl@0.6.4": + version "0.6.4" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.6.4.tgz#a34b9a2c9e34853207824dc81622668a069ca642" + integrity sha512-QFRoE9qSQ2boRrVeQ1HdzU+XN7NUgwZ1SIy5DQt4d7jCP+5qTNsq8LBNcqhRBOATgO63nsweNUhxX/Suj5r1Sw== + +"@nomicfoundation/edr-win32-x64-msvc@0.6.4": + version "0.6.4" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.6.4.tgz#ca035c6f66ae9f88fa3ef123a1f3a2099cce7a5a" + integrity sha512-2yopjelNkkCvIjUgBGhrn153IBPLwnsDeNiq6oA0WkeM8tGmQi4td+PGi9jAriUDAkc59Yoi2q9hYA6efiY7Zw== + +"@nomicfoundation/edr@^0.6.4": + version "0.6.4" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr/-/edr-0.6.4.tgz#1cd336c46a60f5af774e6cf0f1943f49f63dded6" + integrity sha512-YgrSuT3yo5ZQkbvBGqQ7hG+RDvz3YygSkddg4tb1Z0Y6pLXFzwrcEwWaJCFAVeeZxdxGfCgGMUYgRVneK+WXkw== + dependencies: + "@nomicfoundation/edr-darwin-arm64" "0.6.4" + "@nomicfoundation/edr-darwin-x64" "0.6.4" + "@nomicfoundation/edr-linux-arm64-gnu" "0.6.4" + "@nomicfoundation/edr-linux-arm64-musl" "0.6.4" + "@nomicfoundation/edr-linux-x64-gnu" "0.6.4" + "@nomicfoundation/edr-linux-x64-musl" "0.6.4" + "@nomicfoundation/edr-win32-x64-msvc" "0.6.4" "@nomicfoundation/ethereumjs-common@4.0.4": version "4.0.4" @@ -1574,7 +1574,7 @@ check-error@^1.0.2, check-error@^1.0.3: dependencies: get-func-name "^2.0.2" -chokidar@3.5.3, chokidar@^3.4.0, chokidar@^3.5.2: +chokidar@3.5.3, chokidar@^3.5.2: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -1589,6 +1589,13 @@ chokidar@3.5.3, chokidar@^3.4.0, chokidar@^3.5.2: optionalDependencies: fsevents "~2.3.2" +chokidar@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.1.tgz#4a6dff66798fb0f72a94f616abbd7e1a19f31d41" + integrity sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA== + dependencies: + readdirp "^4.0.1" + chownr@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" @@ -1686,16 +1693,16 @@ command-exists@^1.2.8: resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69" integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== -commander@3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" - integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== - commander@^10.0.0: version "10.0.1" resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== +commander@^8.1.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + commander@^9.3.0: version "9.5.0" resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" @@ -2392,17 +2399,6 @@ fs-constants@^1.0.0: resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== -fs-extra@^0.30.0: - version "0.30.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" - integrity sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^2.1.0" - klaw "^1.0.0" - path-is-absolute "^1.0.0" - rimraf "^2.2.8" - fs-extra@^10.0.0, fs-extra@^10.1.0: version "10.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" @@ -2602,7 +2598,7 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0: +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -2686,14 +2682,14 @@ hardhat-tracer@^2.6.0: debug "^4.3.4" ethers "^5.6.1" -hardhat@^2.22.4: - version "2.22.4" - resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.22.4.tgz#766227b6cefca5dbf4fd15ab5b5a68138fa13baf" - integrity sha512-09qcXJFBHQUaraJkYNr7XlmwjOj27xBB0SL2rYS024hTj9tPMbp26AFjlf5quBMO9SR4AJFg+4qWahcYcvXBuQ== +hardhat@^2.22.14: + version "2.22.14" + resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.22.14.tgz#389bb3789a52adc0b1a3b4bfc9b891239d5a2b42" + integrity sha512-sD8vHtS9l5QQVHzyPPe3auwZDJyZ0fG3Z9YENVa4oOqVEefCuHcPzdU736rei3zUKTqkX0zPIHkSMHpu02Fq1A== dependencies: "@ethersproject/abi" "^5.1.2" "@metamask/eth-sig-util" "^4.0.0" - "@nomicfoundation/edr" "^0.3.7" + "@nomicfoundation/edr" "^0.6.4" "@nomicfoundation/ethereumjs-common" "4.0.4" "@nomicfoundation/ethereumjs-tx" "5.0.4" "@nomicfoundation/ethereumjs-util" "9.0.4" @@ -2706,7 +2702,7 @@ hardhat@^2.22.4: ansi-escapes "^4.3.0" boxen "^5.1.2" chalk "^2.4.2" - chokidar "^3.4.0" + chokidar "^4.0.0" ci-info "^2.0.0" debug "^4.1.1" enquirer "^2.3.0" @@ -2719,6 +2715,7 @@ hardhat@^2.22.4: glob "7.2.0" immutable "^4.0.0-rc.12" io-ts "1.10.4" + json-stream-stringify "^3.1.4" keccak "^3.0.2" lodash "^4.17.11" mnemonist "^0.38.0" @@ -2727,7 +2724,7 @@ hardhat@^2.22.4: raw-body "^2.4.1" resolve "1.17.0" semver "^6.3.0" - solc "0.7.3" + solc "0.8.26" source-map-support "^0.5.13" stacktrace-parser "^0.1.10" tsort "0.0.1" @@ -3054,12 +3051,10 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== -jsonfile@^2.1.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" - integrity sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw== - optionalDependencies: - graceful-fs "^4.1.6" +json-stream-stringify@^3.1.4: + version "3.1.6" + resolved "https://registry.yarnpkg.com/json-stream-stringify/-/json-stream-stringify-3.1.6.tgz#ebe32193876fb99d4ec9f612389a8d8e2b5d54d4" + integrity sha512-x7fpwxOkbhFCaJDJ8vb1fBY3DdSa4AlITaz+HHILQJzdPMnHEFjxPwVUi1ALIbcIxDE0PNe/0i7frnY8QnBQog== jsonfile@^4.0.0: version "4.0.0" @@ -3103,13 +3098,6 @@ kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -klaw@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" - integrity sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw== - optionalDependencies: - graceful-fs "^4.1.9" - levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -3793,6 +3781,11 @@ readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: string_decoder "^1.1.1" util-deprecate "^1.0.1" +readdirp@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.0.2.tgz#388fccb8b75665da3abffe2d8f8ed59fe74c230a" + integrity sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA== + readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -3843,7 +3836,7 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== -require-from-string@^2.0.0, require-from-string@^2.0.2: +require-from-string@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== @@ -3884,13 +3877,6 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rimraf@^2.2.8: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -4102,18 +4088,16 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" -solc@0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/solc/-/solc-0.7.3.tgz#04646961bd867a744f63d2b4e3c0701ffdc7d78a" - integrity sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA== +solc@0.8.26: + version "0.8.26" + resolved "https://registry.yarnpkg.com/solc/-/solc-0.8.26.tgz#afc78078953f6ab3e727c338a2fefcd80dd5b01a" + integrity sha512-yiPQNVf5rBFHwN6SIf3TUUvVAFKcQqmSUFeq+fb6pNRCo0ZCgpYOZDi3BVoezCPIAcKrVYd/qXlBLUP9wVrZ9g== dependencies: command-exists "^1.2.8" - commander "3.0.2" + commander "^8.1.0" follow-redirects "^1.12.1" - fs-extra "^0.30.0" js-sha3 "0.8.0" memorystream "^0.3.1" - require-from-string "^2.0.0" semver "^5.5.0" tmp "0.0.33" From 3918217e31fd5de59aba3cd93183b25f3fb37a60 Mon Sep 17 00:00:00 2001 From: Aleksandr Kuperman Date: Wed, 23 Oct 2024 17:26:08 +0100 Subject: [PATCH 16/25] chore: set initial contribute agent statuses --- ...ors_proxy_set_contribute_agent_statuses.js | 66 +++++++++++++++++++ ...loy_13_contributors_proxy_change_owner.js} | 2 +- .../globals_base_mainnet_contribute.json | 2 +- 3 files changed, 68 insertions(+), 2 deletions(-) create mode 100644 scripts/deployment/deploy_12_contributors_proxy_set_contribute_agent_statuses.js rename scripts/deployment/{deploy_12_contributors_proxy_change_owner.js => deploy_13_contributors_proxy_change_owner.js} (97%) diff --git a/scripts/deployment/deploy_12_contributors_proxy_set_contribute_agent_statuses.js b/scripts/deployment/deploy_12_contributors_proxy_set_contribute_agent_statuses.js new file mode 100644 index 0000000..336b285 --- /dev/null +++ b/scripts/deployment/deploy_12_contributors_proxy_set_contribute_agent_statuses.js @@ -0,0 +1,66 @@ +/*global process*/ + +const { ethers } = require("hardhat"); +const { LedgerSigner } = require("@anders-t/ethers-ledger"); + +async function main() { + const fs = require("fs"); + const globalsFile = "globals.json"; + const dataFromJSON = fs.readFileSync(globalsFile, "utf8"); + let parsedData = JSON.parse(dataFromJSON); + const useLedger = parsedData.useLedger; + const derivationPath = parsedData.derivationPath; + const providerName = parsedData.providerName; + const gasPriceInGwei = parsedData.gasPriceInGwei; + const contributorsProxyAddress = parsedData.contributorsProxyAddress; + const contributeAgentAddress = parsedData.contributeAgentAddress; + + let networkURL = parsedData.networkURL; + if (providerName === "polygon") { + if (!process.env.ALCHEMY_API_KEY_MATIC) { + console.log("set ALCHEMY_API_KEY_MATIC env variable"); + } + networkURL += process.env.ALCHEMY_API_KEY_MATIC; + } else if (providerName === "polygonAmoy") { + if (!process.env.ALCHEMY_API_KEY_AMOY) { + console.log("set ALCHEMY_API_KEY_AMOY env variable"); + return; + } + networkURL += process.env.ALCHEMY_API_KEY_AMOY; + } + + const provider = new ethers.providers.JsonRpcProvider(networkURL); + const signers = await ethers.getSigners(); + + let EOA; + if (useLedger) { + EOA = new LedgerSigner(provider, derivationPath); + } else { + EOA = signers[0]; + } + // EOA address + const deployer = await EOA.getAddress(); + console.log("EOA is:", deployer); + + // Get the contributors proxy contract + const contributorsProxy = await ethers.getContractAt("Contributors", contributorsProxyAddress); + + const gasPrice = ethers.utils.parseUnits(gasPriceInGwei, "gwei"); + + // Transaction signing and execution + console.log("12. EOA to set contribute agent statuses in ContributorsProxy"); + console.log("You are signing the following transaction: ContributorsProxy.connect(EOA).setContributeAgentStatuses()"); + const result = await contributorsProxy.setContributeAgentStatuses([contributeAgentAddress], [true], { gasPrice }); + + // Transaction details + console.log("Contract deployment: ContributorsProxy"); + console.log("Contract address:", contributorsProxy.address); + console.log("Transaction:", result.hash); +} + +main() + .then(() => process.exit(0)) + .catch((error) => { + console.error(error); + process.exit(1); + }); diff --git a/scripts/deployment/deploy_12_contributors_proxy_change_owner.js b/scripts/deployment/deploy_13_contributors_proxy_change_owner.js similarity index 97% rename from scripts/deployment/deploy_12_contributors_proxy_change_owner.js rename to scripts/deployment/deploy_13_contributors_proxy_change_owner.js index 2160c10..72cbdfa 100644 --- a/scripts/deployment/deploy_12_contributors_proxy_change_owner.js +++ b/scripts/deployment/deploy_13_contributors_proxy_change_owner.js @@ -48,7 +48,7 @@ async function main() { const gasPrice = ethers.utils.parseUnits(gasPriceInGwei, "gwei"); // Transaction signing and execution - console.log("12. EOA to change owner in ContributorsProxy"); + console.log("13. EOA to change owner in ContributorsProxy"); console.log("You are signing the following transaction: ContributorsProxy.connect(EOA).changeOwner()"); const result = await contributorsProxy.changeOwner(bridgeMediatorAddress, { gasPrice }); diff --git a/scripts/deployment/globals_base_mainnet_contribute.json b/scripts/deployment/globals_base_mainnet_contribute.json index 961fdf1..b8bd963 100644 --- a/scripts/deployment/globals_base_mainnet_contribute.json +++ b/scripts/deployment/globals_base_mainnet_contribute.json @@ -1 +1 @@ -{"contractVerification":true,"useLedger":true,"derivationPath":"m/44'/60'/2'/0/0","providerName":"base","networkURL":"https://mainnet.base.org","gasPriceInGwei":"2","bridgeMediatorAddress":"0xE49CB081e8d96920C38aA7AB90cb0294ab4Bc8EA","gnosisSafeAddress":"0x69f4D1788e39c87893C980c06EdF4b7f686e2938","gnosisSafeProxyFactoryAddress":"0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC","fallbackHandlerAddress":"0x017062a1dE2FE6b99BE3d9d37841FeD19F573804","olasAddress":"0x54330d28ca3357F294334BDC454a032e7f353416","multisigProxyHash130":"0xb89c1b3bdf2cf8827818646bce9a8f6e372885f8c55e5c07acbd307cb133b000","serviceRegistryAddress":"0x3C1fF68f5aa342D296d4DEe4Bb1cACCA912D95fE","serviceRegistryTokenUtilityAddress":"0x34C895f302D0b5cf52ec0Edd3945321EB0f83dd5","serviceManagerTokenAddress":"0x63e66d7ad413C01A7b49C7FF4e3Bb765C4E4bd1b","gnosisSafeMultisigImplementationAddress":"0xBb7e1D6Cb6F243D6bdE81CE92a9f2aFF7Fbe7eac","stakingTokenAddress":"0xEB5638eefE289691EcE01943f768EDBF96258a80","stakingNativeTokenAddress":"","stakingFactoryAddress":"0x1cEe30D08943EB58EFF84DD1AB44a6ee6FEff63a","agentId":"6","configHash":"0xb89c1b3bdf2cf8827818646bce9a8f6e372885f8c55e5c07acbd307cb133b000","livenessRatio":"700000000000000","contributeActivityCheckerAddress":"","stakingParams":{"metadataHash":"","maxNumServices":"100","rewardsPerSecond":"1000000000000000","minStakingDeposit":"50000000000000000000","minNumStakingPeriods":"3","maxNumInactivityPeriods":"3","livenessPeriod":"86400","timeForEmissions":"2592000","numAgentInstances":"1","agentIds":["14"],"threshold":"0","configHash":"0x0000000000000000000000000000000000000000000000000000000000000000","proxyHash":"0xb89c1b3bdf2cf8827818646bce9a8f6e372885f8c55e5c07acbd307cb133b000","serviceRegistry":"0x3C1fF68f5aa342D296d4DEe4Bb1cACCA912D95fE","activityChecker":""}} \ No newline at end of file +{"contractVerification":true,"useLedger":true,"derivationPath":"m/44'/60'/2'/0/0","providerName":"base","networkURL":"https://mainnet.base.org","gasPriceInGwei":"2","bridgeMediatorAddress":"0xE49CB081e8d96920C38aA7AB90cb0294ab4Bc8EA","gnosisSafeAddress":"0x69f4D1788e39c87893C980c06EdF4b7f686e2938","gnosisSafeProxyFactoryAddress":"0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC","fallbackHandlerAddress":"0x017062a1dE2FE6b99BE3d9d37841FeD19F573804","olasAddress":"0x54330d28ca3357F294334BDC454a032e7f353416","multisigProxyHash130":"0xb89c1b3bdf2cf8827818646bce9a8f6e372885f8c55e5c07acbd307cb133b000","serviceRegistryAddress":"0x3C1fF68f5aa342D296d4DEe4Bb1cACCA912D95fE","serviceRegistryTokenUtilityAddress":"0x34C895f302D0b5cf52ec0Edd3945321EB0f83dd5","serviceManagerTokenAddress":"0x63e66d7ad413C01A7b49C7FF4e3Bb765C4E4bd1b","gnosisSafeMultisigImplementationAddress":"0xBb7e1D6Cb6F243D6bdE81CE92a9f2aFF7Fbe7eac","stakingTokenAddress":"0xEB5638eefE289691EcE01943f768EDBF96258a80","stakingNativeTokenAddress":"","stakingFactoryAddress":"0x1cEe30D08943EB58EFF84DD1AB44a6ee6FEff63a","agentId":"6","configHash":"0xb89c1b3bdf2cf8827818646bce9a8f6e372885f8c55e5c07acbd307cb133b000","livenessRatio":"700000000000000","contributeActivityCheckerAddress":"","stakingParams":{"metadataHash":"","maxNumServices":"100","rewardsPerSecond":"1000000000000000","minStakingDeposit":"50000000000000000000","minNumStakingPeriods":"3","maxNumInactivityPeriods":"3","livenessPeriod":"86400","timeForEmissions":"2592000","numAgentInstances":"1","agentIds":["14"],"threshold":"0","configHash":"0x0000000000000000000000000000000000000000000000000000000000000000","proxyHash":"0xb89c1b3bdf2cf8827818646bce9a8f6e372885f8c55e5c07acbd307cb133b000","serviceRegistry":"0x3C1fF68f5aa342D296d4DEe4Bb1cACCA912D95fE","activityChecker":""},"contributeAgentAddress":""} \ No newline at end of file From e5eb2debe8c5cd3de4138e22bb34a15868606440 Mon Sep 17 00:00:00 2001 From: Aleksandr Kuperman Date: Wed, 23 Oct 2024 18:11:07 +0100 Subject: [PATCH 17/25] addressing audit remarks and adding graphics --- README.md | 20 +++++++++ audits/internal1/README.md | 3 ++ contracts/contribute/ContributeManager.sol | 47 +++++++++++++++++++--- contracts/contribute/Contributors.sol | 1 + contracts/contribute/interfaces/IToken.sol | 13 +++++- 5 files changed, 77 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index a4b18ba..b26356f 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,26 @@ The audit is provided as development matures. The latest audit report can be fou - Create staking proxy instance on [Launch](https://launch.olas.network/); - Vote for staking contracts on [Govern](https://govern.olas.network/). +## Contribute Architecture +```mermaid +flowchart LR + Deployer -- deploy --> Contributors + Deployer -- deploy --> ContributorsProxy + Deployer -- deploy --> ContributeManager + Deployer -- deploy --> ContributeActivityChecker + Deployer -- changeManager --> ContributorsProxy --> Contributors + Deployer -- setContributeAgentStatuses --> ContributorsProxy + Deployer -- changeOwner --> ContributorsProxy + User -- createAndStake --> ContributeManager -- setServiceInfoForId --> ContributorsProxy + User -- stake --> ContributeManager + User -- unstake --> ContributeManager + User -- claim --> ContributeManager + User -- checkpoint --> StakingInstance -- getNonces --> ContributeActivityChecker -- mapMutisigActivities --> ContributorsProxy + ContributeManager -- mint --> StakingRegistryL2 + ContributeManager -- stake --> StakingInstance + ContributeManager -- unstake --> StakingInstance + Agent -- increaseActivity --> ContributorsProxy +``` ## Acknowledgements The staking programmes contracts were inspired and based on the following sources: diff --git a/audits/internal1/README.md b/audits/internal1/README.md index c4b81ab..4f0a7ff 100644 --- a/audits/internal1/README.md +++ b/audits/internal1/README.md @@ -29,9 +29,12 @@ more CEI, IContributors(contributorsProxy).setServiceInfoForId(msg.sender, 0, 0, address(0), address(0)); ``` +[x] Fixed + 2. cyclic initialize(address _manager) ``` Remove params in proxy init() / or setup manage as msg.sender. ``` +[x] Fixed diff --git a/contracts/contribute/ContributeManager.sol b/contracts/contribute/ContributeManager.sol index 35b248a..01df8b8 100644 --- a/contracts/contribute/ContributeManager.sol +++ b/contracts/contribute/ContributeManager.sol @@ -5,7 +5,7 @@ import {ERC721TokenReceiver} from "../../lib/autonolas-registries/lib/solmate/sr import {IContributors} from "./interfaces/IContributors.sol"; import {IService} from "./interfaces/IService.sol"; import {IStaking} from "./interfaces/IStaking.sol"; -import {IToken} from "./interfaces/IToken.sol"; +import {IToken, INFToken} from "./interfaces/IToken.sol"; // Multisig interface interface IMultisig { @@ -20,6 +20,9 @@ error ZeroAddress(); /// @dev Zero value. error ZeroValue(); +/// @dev Caught reentrancy violation. +error ReentrancyGuard(); + /// @dev Service is already created and staked for the contributor. /// @param socialId Social Id. /// @param serviceId Service Id. @@ -87,7 +90,9 @@ contract ContributeManager is ERC721TokenReceiver { address public immutable fallbackHandler; // Nonce - uint256 internal nonce; + uint256 internal _nonce; + // Reentrancy lock + uint256 internal _locked = 1; /// @dev ContributeManager constructor. /// @param _contributorsProxy Contributors proxy address. @@ -164,7 +169,7 @@ contract ContributeManager is ERC721TokenReceiver { IService(serviceManager).registerAgents{value: NUM_AGENT_INSTANCES}(serviceId, instances, agentIds); // Prepare Safe multisig data - uint256 localNonce = nonce; + uint256 localNonce = _nonce; uint256 randomNonce = uint256(keccak256(abi.encodePacked(block.timestamp, msg.sender, localNonce))); bytes memory data = abi.encodePacked(address(0), fallbackHandler, address(0), address(0), uint256(0), randomNonce, "0x"); @@ -172,7 +177,7 @@ contract ContributeManager is ERC721TokenReceiver { multisig = IService(serviceManager).deploy(serviceId, safeMultisig, data); // Update the nonce - nonce = localNonce + 1; + _nonce = localNonce + 1; } /// @dev Stakes the already deployed service. @@ -185,7 +190,7 @@ contract ContributeManager is ERC721TokenReceiver { IContributors(contributorsProxy).setServiceInfoForId(msg.sender, socialId, serviceId, multisig, stakingInstance); // Approve service NFT for the staking instance - IToken(serviceRegistry).approve(stakingInstance, serviceId); + INFToken(serviceRegistry).approve(stakingInstance, serviceId); // Stake the service IStaking(stakingInstance).stake(serviceId); @@ -196,6 +201,12 @@ contract ContributeManager is ERC721TokenReceiver { /// @param socialId Contributor social Id. /// @param stakingInstance Contribute staking instance address. function createAndStake(uint256 socialId, address stakingInstance) external payable { + // Reentrancy guard + if (_locked > 1) { + revert ReentrancyGuard(); + } + _locked = 2; + // Check for zero value if (socialId == 0) { revert ZeroValue(); @@ -246,6 +257,8 @@ contract ContributeManager is ERC721TokenReceiver { _stake(socialId, serviceId, multisig, stakingInstance); emit CreatedAndStaked(socialId, msg.sender, serviceId, multisig, stakingInstance); + + _locked = 1; } /// @dev Stakes the already deployed service. @@ -253,6 +266,12 @@ contract ContributeManager is ERC721TokenReceiver { /// @param serviceId Service Id. /// @param stakingInstance Staking instance. function stake(uint256 socialId, uint256 serviceId, address stakingInstance) external { + // Reentrancy guard + if (_locked > 1) { + revert ReentrancyGuard(); + } + _locked = 2; + // Check for existing service corresponding to the msg.sender (, uint256 serviceIdCheck, address multisig, ) = IContributors(contributorsProxy).mapSocialIdServiceInfo(msg.sender); if (serviceIdCheck > 0) { @@ -276,10 +295,18 @@ contract ContributeManager is ERC721TokenReceiver { _stake(socialId, serviceId, multisig, stakingInstance); emit Staked(socialId, msg.sender, serviceId, multisig, stakingInstance); + + _locked = 1; } /// @dev Unstakes service Id corresponding to the msg.sender and clears the contributor record. function unstake() external { + // Reentrancy guard + if (_locked > 1) { + revert ReentrancyGuard(); + } + _locked = 2; + // Check for existing service corresponding to the social Id (uint256 socialId, uint256 serviceId, address multisig, address stakingInstance) = IContributors(contributorsProxy).mapSocialIdServiceInfo(msg.sender); @@ -298,11 +325,19 @@ contract ContributeManager is ERC721TokenReceiver { IContributors(contributorsProxy).setServiceInfoForId(msg.sender, 0, 0, address(0), address(0)); emit Unstaked(socialId, msg.sender, serviceId, multisig, stakingInstance); + + _locked = 1; } /// @dev Claims rewards for the service corresponding to msg.sender. /// @return reward Staking reward. function claim() external returns (uint256 reward) { + // Reentrancy guard + if (_locked > 1) { + revert ReentrancyGuard(); + } + _locked = 2; + // Check for existing service corresponding to the social Id (uint256 socialId, uint256 serviceId, address multisig, address stakingInstance) = IContributors(contributorsProxy).mapSocialIdServiceInfo(msg.sender); @@ -314,5 +349,7 @@ contract ContributeManager is ERC721TokenReceiver { reward = IStaking(stakingInstance).claim(serviceId); emit Claimed(socialId, msg.sender, serviceId, multisig, stakingInstance); + + _locked = 1; } } \ No newline at end of file diff --git a/contracts/contribute/Contributors.sol b/contracts/contribute/Contributors.sol index 6f43185..ef8a8ca 100644 --- a/contracts/contribute/Contributors.sol +++ b/contracts/contribute/Contributors.sol @@ -176,6 +176,7 @@ contract Contributors { // Traverse all contribute agents and statuses for (uint256 i = 0; i < contributeAgents.length; ++i) { + // Check for zero addresses if (contributeAgents[i] == address(0)) { revert ZeroAddress(); } diff --git a/contracts/contribute/interfaces/IToken.sol b/contracts/contribute/interfaces/IToken.sol index 31b0032..0eb651e 100644 --- a/contracts/contribute/interfaces/IToken.sol +++ b/contracts/contribute/interfaces/IToken.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.28; -// Token interface +// ERC20 token interface interface IToken { /// @dev Transfers the token amount. /// @param to Address to transfer to. @@ -19,5 +19,14 @@ interface IToken { /// @dev Sets `amount` as the allowance of `spender` over the caller's tokens. /// @param spender Account address that will be able to transfer tokens on behalf of the caller. /// @param amount Token amount. - function approve(address spender, uint256 amount) external; + /// @return True if the function execution is successful. + function approve(address spender, uint256 amount) external returns (bool); +} + +// ERC721 token interface +interface INFToken { + /// @dev Sets token `id` as the allowance of `spender` over the caller's tokens. + /// @param spender Account address that will be able to transfer the token on behalf of the caller. + /// @param id Token id. + function approve(address spender, uint256 id) external; } \ No newline at end of file From 4dca0fd29ee5b2b8aad0769ca68a421e532ae92d Mon Sep 17 00:00:00 2001 From: Aleksandr Kuperman Date: Wed, 23 Oct 2024 18:22:58 +0100 Subject: [PATCH 18/25] chore: adding optimus deployment script for mode --- .../globals_mode_mainnet_optimus_alpha.json | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 scripts/deployment/globals_mode_mainnet_optimus_alpha.json diff --git a/scripts/deployment/globals_mode_mainnet_optimus_alpha.json b/scripts/deployment/globals_mode_mainnet_optimus_alpha.json new file mode 100644 index 0000000..809ed91 --- /dev/null +++ b/scripts/deployment/globals_mode_mainnet_optimus_alpha.json @@ -0,0 +1,38 @@ +{ + "contractVerification":true, + "useLedger":true, + "derivationPath":"m/44'/60'/2'/0/0", + "providerName":"mode", + "networkURL":"https://mainnet.mode.network", + "gasPriceInGwei":"1", + "gnosisSafeAddress":"0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", + "gnosisSafeProxyFactoryAddress":"0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", + "serviceRegistryAddress":"0x3C1fF68f5aa342D296d4DEe4Bb1cACCA912D95fE", + "serviceRegistryTokenUtilityAddress":"0x34C895f302D0b5cf52ec0Edd3945321EB0f83dd5", + "olasAddress":"0xcfD1D50ce23C46D3Cf6407487B2F8934e96DC8f9", + "multisigProxyHash130":"0xb89c1b3bdf2cf8827818646bce9a8f6e372885f8c55e5c07acbd307cb133b000", + "stakingNativeTokenAddress":"0x88DE734655184a09B70700aE4F72364d1ad23728", + "stakingTokenAddress":"0xE49CB081e8d96920C38aA7AB90cb0294ab4Bc8EA", + "livenessRatio":"46296296296296", + "stakingActivityCheckerAddress":"", + "stakingFactoryAddress":"0x75D529FAe220bC8db714F0202193726b46881B76", + "stakingParams": + { + "metadataHash":"", + "maxNumServices":"10", + "rewardsPerSecond":"1649305555557", + "minStakingDeposit":"20000000000000000000", + "minNumStakingPeriods":"3", + "maxNumInactivityPeriods":"2", + "livenessPeriod":"86400", + "timeForEmissions":"2592000", + "numAgentInstances":"1", + "agentIds":[], + "threshold":"0", + "configHash":"0x0000000000000000000000000000000000000000000000000000000000000000", + "proxyHash":"0xb89c1b3bdf2cf8827818646bce9a8f6e372885f8c55e5c07acbd307cb133b000", + "serviceRegistry":"0x3C1fF68f5aa342D296d4DEe4Bb1cACCA912D95fE", + "activityChecker":"" + }, + "stakingTokenInstanceAddress":"" +} \ No newline at end of file From 80d45c210226e4c64f8a33078f14c3c4f9376cc8 Mon Sep 17 00:00:00 2001 From: Aleksandr Kuperman Date: Wed, 23 Oct 2024 18:47:46 +0100 Subject: [PATCH 19/25] test: add more tests --- contracts/contribute/ContributeManager.sol | 12 ++-- contracts/contribute/Contributors.sol | 6 +- .../contribute/interfaces/IContributors.sol | 4 +- contracts/contribute/interfaces/IToken.sol | 12 ++++ test/StakingContribute.js | 64 ++++++++++++++++++- 5 files changed, 85 insertions(+), 13 deletions(-) diff --git a/contracts/contribute/ContributeManager.sol b/contracts/contribute/ContributeManager.sol index 01df8b8..dbb074c 100644 --- a/contracts/contribute/ContributeManager.sol +++ b/contracts/contribute/ContributeManager.sol @@ -213,7 +213,7 @@ contract ContributeManager is ERC721TokenReceiver { } // Check for existing service corresponding to the msg.sender - (, uint256 serviceId, address multisig, ) = IContributors(contributorsProxy).mapSocialIdServiceInfo(msg.sender); + (, uint256 serviceId, address multisig, ) = IContributors(contributorsProxy).mapAccountServiceInfo(msg.sender); if (serviceId > 0) { revert ServiceAlreadyStaked(socialId, serviceId, multisig); } @@ -273,7 +273,7 @@ contract ContributeManager is ERC721TokenReceiver { _locked = 2; // Check for existing service corresponding to the msg.sender - (, uint256 serviceIdCheck, address multisig, ) = IContributors(contributorsProxy).mapSocialIdServiceInfo(msg.sender); + (, uint256 serviceIdCheck, address multisig, ) = IContributors(contributorsProxy).mapAccountServiceInfo(msg.sender); if (serviceIdCheck > 0) { revert ServiceAlreadyStaked(socialId, serviceIdCheck, multisig); } @@ -289,7 +289,7 @@ contract ContributeManager is ERC721TokenReceiver { } // Transfer the service NFT - IToken(serviceRegistry).transferFrom(msg.sender, address(this), serviceId); + INFToken(serviceRegistry).safeTransferFrom(msg.sender, address(this), serviceId); // Stake the service _stake(socialId, serviceId, multisig, stakingInstance); @@ -309,7 +309,7 @@ contract ContributeManager is ERC721TokenReceiver { // Check for existing service corresponding to the social Id (uint256 socialId, uint256 serviceId, address multisig, address stakingInstance) = - IContributors(contributorsProxy).mapSocialIdServiceInfo(msg.sender); + IContributors(contributorsProxy).mapAccountServiceInfo(msg.sender); if (serviceId == 0) { revert ServiceNotDefined(socialId); } @@ -318,7 +318,7 @@ contract ContributeManager is ERC721TokenReceiver { IStaking(stakingInstance).unstake(serviceId); // Transfer the service back to the original owner - IToken(serviceRegistry).transfer(msg.sender, serviceId); + INFToken(serviceRegistry).transferFrom(address(this), msg.sender, serviceId); // Zero the service info: the service is out of the contribute records, however multisig activity is still valid // If the same service is staked back, the multisig activity continues being tracked @@ -340,7 +340,7 @@ contract ContributeManager is ERC721TokenReceiver { // Check for existing service corresponding to the social Id (uint256 socialId, uint256 serviceId, address multisig, address stakingInstance) = - IContributors(contributorsProxy).mapSocialIdServiceInfo(msg.sender); + IContributors(contributorsProxy).mapAccountServiceInfo(msg.sender); if (serviceId == 0) { revert ServiceNotDefined(socialId); } diff --git a/contracts/contribute/Contributors.sol b/contracts/contribute/Contributors.sol index ef8a8ca..8509b1b 100644 --- a/contracts/contribute/Contributors.sol +++ b/contracts/contribute/Contributors.sol @@ -60,8 +60,8 @@ contract Contributors { // Service manager contract address address public manager; - // Mapping of address => service info - mapping(address => ServiceInfo) public mapSocialIdServiceInfo; + // Mapping of account address => service info + mapping(address => ServiceInfo) public mapAccountServiceInfo; // Mapping of service multisig address => activity mapping(address => uint256) public mapMutisigActivities; // Mapping of whitelisted contributor agents @@ -151,7 +151,7 @@ contract Contributors { } // Set (or remove) multisig for the corresponding social id - ServiceInfo storage serviceInfo = mapSocialIdServiceInfo[serviceOwner]; + ServiceInfo storage serviceInfo = mapAccountServiceInfo[serviceOwner]; serviceInfo.socialId = socialId; serviceInfo.serviceId = serviceId; serviceInfo.multisig = multisig; diff --git a/contracts/contribute/interfaces/IContributors.sol b/contracts/contribute/interfaces/IContributors.sol index 6287c35..ac0e5c6 100644 --- a/contracts/contribute/interfaces/IContributors.sol +++ b/contracts/contribute/interfaces/IContributors.sol @@ -17,12 +17,12 @@ interface IContributors { address stakingInstance ) external; - /// @dev Gets service info corresponding to a specified social Id. + /// @dev Gets service info corresponding to a specified service owner. /// @param serviceOwner Service owner. /// @return socialId Social Id. /// @return serviceId Corresponding service Id. /// @return multisig Corresponding service multisig. /// @return stakingInstance Staking instance address. - function mapSocialIdServiceInfo(address serviceOwner) external view + function mapAccountServiceInfo(address serviceOwner) external view returns (uint256 socialId, uint256 serviceId, address multisig, address stakingInstance); } diff --git a/contracts/contribute/interfaces/IToken.sol b/contracts/contribute/interfaces/IToken.sol index 0eb651e..b17a335 100644 --- a/contracts/contribute/interfaces/IToken.sol +++ b/contracts/contribute/interfaces/IToken.sol @@ -29,4 +29,16 @@ interface INFToken { /// @param spender Account address that will be able to transfer the token on behalf of the caller. /// @param id Token id. function approve(address spender, uint256 id) external; + + /// @dev Transfers a specified token Id. + /// @param from Account address to transfer from. + /// @param to Account address to transfer to. + /// @param id Token id. + function transferFrom(address from, address to, uint256 id) external; + + /// @dev Transfers a specified token Id with a callback. + /// @param from Account address to transfer from. + /// @param to Account address to transfer to. + /// @param id Token id. + function safeTransferFrom(address from, address to, uint256 id) external; } \ No newline at end of file diff --git a/test/StakingContribute.js b/test/StakingContribute.js index 1ab88cb..1df76ee 100644 --- a/test/StakingContribute.js +++ b/test/StakingContribute.js @@ -155,7 +155,10 @@ describe("Staking", function () { await serviceRegistry.changeMultisigPermission(gnosisSafeMultisig.address, true); // Set the manager of contributorsProxy - contributors.changeManager(contributeManager.address); + await contributors.changeManager(contributeManager.address); + + // Set deployer address to be the agent + await contributors.setContributeAgentStatuses([deployer.address], [true]); // Fund the staking contract await token.approve(stakingTokenAddress, ethers.utils.parseEther("1")); @@ -166,10 +169,67 @@ describe("Staking", function () { }); context("Contribute manager", function () { - it.only("Mint and stake", async function () { + it("Mint and stake", async function () { + // Approve OLAS for contributeManager + await token.approve(contributeManager.address, serviceParams.minStakingDeposit * 2); + + // Mint and stake the service + await contributeManager.createAndStake(socialId, stakingToken.address, {value: 2}); + }); + + it("Mint, stake, unstake and stake again", async function () { + // Take a snapshot of the current state of the blockchain + const snapshot = await helpers.takeSnapshot(); + + // Approve OLAS for contributeManager + await token.approve(contributeManager.address, serviceParams.minStakingDeposit * 2); + + // Mint and stake the service + await contributeManager.createAndStake(socialId, stakingToken.address, {value: 2}); + + // Increase the time while the service does not reach the required amount of transactions per second (TPS) + await helpers.time.increase(maxInactivity); + + // Unstake the service + await contributeManager.unstake(); + + // Approve the service for the contributeManager + await serviceRegistry.approve(contributeManager.address, serviceId); + + // Stake the service again + await contributeManager.stake(socialId, serviceId, stakingToken.address); + + // Restore a previous state of blockchain + snapshot.restore(); + }); + + it("Mint, stake, perform activity, claim", async function () { + // Take a snapshot of the current state of the blockchain + const snapshot = await helpers.takeSnapshot(); + + // Approve OLAS for contributeManager await token.approve(contributeManager.address, serviceParams.minStakingDeposit * 2); + // Mint and stake the service await contributeManager.createAndStake(socialId, stakingToken.address, {value: 2}); + + // Get the user data + const serviceInfo = await contributors.mapAccountServiceInfo(deployer.address); + + // Perform the service activity + await contributors.increaseActivity([serviceInfo.multisig], [10]); + + // Increase the time until the next staking epoch + await helpers.time.increase(livenessPeriod); + + // Call the checkpoint + await stakingToken.checkpoint(); + + // Claim rewards + await contributeManager.claim(); + + // Restore a previous state of blockchain + snapshot.restore(); }); }); }); From 4783cd91c120a5e1abc56022916b51efb72ab65b Mon Sep 17 00:00:00 2001 From: Aleksandr Kuperman Date: Wed, 23 Oct 2024 18:52:58 +0100 Subject: [PATCH 20/25] chore: missing ABIs --- contracts/test/ABICreator.sol | 3 +++ 1 file changed, 3 insertions(+) diff --git a/contracts/test/ABICreator.sol b/contracts/test/ABICreator.sol index 9efe4b7..c168be1 100644 --- a/contracts/test/ABICreator.sol +++ b/contracts/test/ABICreator.sol @@ -8,6 +8,9 @@ import "@gnosis.pm/safe-contracts/contracts/handler/DefaultCallbackHandler.sol"; import "@gnosis.pm/safe-contracts/contracts/libraries/MultiSendCallOnly.sol"; // Getting ABIs for registry contracts +import {ComponentRegistry} from "../../lib/autonolas-registries/contracts/ComponentRegistry.sol"; +import {AgentRegistry} from "../../lib/autonolas-registries/contracts/AgentRegistry.sol"; +import {ServiceRegistry} from "../../lib/autonolas-registries/contracts/ServiceRegistry.sol"; import {OperatorWhitelist} from "../../lib/autonolas-registries/contracts/utils/OperatorWhitelist.sol"; import {ServiceRegistryL2} from "../../lib/autonolas-registries/contracts/ServiceRegistryL2.sol"; import {ServiceRegistryTokenUtility} from "../../lib/autonolas-registries/contracts/ServiceRegistryTokenUtility.sol"; From b9b5919f7bf2e0d4853b9b015c51e51ae5ef1296 Mon Sep 17 00:00:00 2001 From: Aleksandr Kuperman Date: Wed, 23 Oct 2024 18:57:11 +0100 Subject: [PATCH 21/25] chore: adding ABIs --- abis/0.8.28/ContributeActivityChecker.json | 111 +++++ abis/0.8.28/ContributeManager.json | 535 +++++++++++++++++++++ abis/0.8.28/Contributors.json | 439 +++++++++++++++++ abis/0.8.28/ContributorsProxy.json | 59 +++ abis/0.8.28/MechActivityChecker.json | 111 +++++ abis/0.8.28/RequesterActivityChecker.json | 111 +++++ abis/0.8.28/SingleMechActivityChecker.json | 111 +++++ abis/0.8.28/StakingActivityChecker.json | 88 ++++ 8 files changed, 1565 insertions(+) create mode 100644 abis/0.8.28/ContributeActivityChecker.json create mode 100644 abis/0.8.28/ContributeManager.json create mode 100644 abis/0.8.28/Contributors.json create mode 100644 abis/0.8.28/ContributorsProxy.json create mode 100644 abis/0.8.28/MechActivityChecker.json create mode 100644 abis/0.8.28/RequesterActivityChecker.json create mode 100644 abis/0.8.28/SingleMechActivityChecker.json create mode 100644 abis/0.8.28/StakingActivityChecker.json diff --git a/abis/0.8.28/ContributeActivityChecker.json b/abis/0.8.28/ContributeActivityChecker.json new file mode 100644 index 0000000..759492c --- /dev/null +++ b/abis/0.8.28/ContributeActivityChecker.json @@ -0,0 +1,111 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ContributeActivityChecker", + "sourceName": "contracts/contribute/ContributeActivityChecker.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_contributorsProxy", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_livenessRatio", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "ZeroAddress", + "type": "error" + }, + { + "inputs": [], + "name": "ZeroValue", + "type": "error" + }, + { + "inputs": [], + "name": "contributorsProxy", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "multisig", + "type": "address" + } + ], + "name": "getMultisigNonces", + "outputs": [ + { + "internalType": "uint256[]", + "name": "nonces", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "curNonces", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "lastNonces", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "ts", + "type": "uint256" + } + ], + "name": "isRatioPass", + "outputs": [ + { + "internalType": "bool", + "name": "ratioPass", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "livenessRatio", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x60c060405234801561000f575f5ffd5b506040516106a53803806106a583398101604081905261002e9161008b565b6001600160a01b0382166100555760405163d92e233d60e01b815260040160405180910390fd5b805f0361007557604051637c946ed760e01b815260040160405180910390fd5b6001600160a01b0390911660a0526080526100c2565b5f5f6040838503121561009c575f5ffd5b82516001600160a01b03811681146100b2575f5ffd5b6020939093015192949293505050565b60805160a0516105b66100ef5f395f818160b0015261024f01525f8181607b01526101bb01526105b65ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c8063184023a51461004e578063592cf3fb14610076578063cf449c8c146100ab578063d564c4bf146100f7575b5f5ffd5b61006161005c3660046103c4565b610117565b60405190151581526020015b60405180910390f35b61009d7f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200161006d565b6100d27f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161006d565b61010a610105366004610432565b6101e7565b60405161006d9190610465565b5f5f821180156101585750825f81518110610134576101346104a7565b6020026020010151845f8151811061014e5761014e6104a7565b6020026020010151115b156101e0575f82845f81518110610171576101716104a7565b6020026020010151865f8151811061018b5761018b6104a7565b602002602001015161019d9190610501565b6101af90670de0b6b3a764000061051a565b6101b99190610531565b7f000000000000000000000000000000000000000000000000000000000000000011159150505b9392505050565b60408051600180825281830190925260609160208083019080368337019050506040517f4990408f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301529192507f000000000000000000000000000000000000000000000000000000000000000090911690634990408f90602401602060405180830381865afa158015610296573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ba9190610569565b815f815181106102cc576102cc6104a7565b602002602001018181525050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112610319575f5ffd5b813567ffffffffffffffff811115610333576103336102dd565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811067ffffffffffffffff8211171561037e5761037e6102dd565b60405291825260208185018101929081018684111561039b575f5ffd5b6020860192505b838310156103ba5782358152602092830192016103a2565b5095945050505050565b5f5f5f606084860312156103d6575f5ffd5b833567ffffffffffffffff8111156103ec575f5ffd5b6103f88682870161030a565b935050602084013567ffffffffffffffff811115610414575f5ffd5b6104208682870161030a565b93969395505050506040919091013590565b5f60208284031215610442575f5ffd5b813573ffffffffffffffffffffffffffffffffffffffff811681146101e0575f5ffd5b602080825282518282018190525f918401906040840190835b8181101561049c57835183526020938401939092019160010161047e565b509095945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610514576105146104d4565b92915050565b8082028115828204841417610514576105146104d4565b5f82610564577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b5f60208284031215610579575f5ffd5b505191905056fea2646970667358221220c7556e84f3cf30fb114d0400ba7bbbdec815e69ed36086ee40e0e334d4a7720064736f6c634300081c0033", + "deployedBytecode": "0x608060405234801561000f575f5ffd5b506004361061004a575f3560e01c8063184023a51461004e578063592cf3fb14610076578063cf449c8c146100ab578063d564c4bf146100f7575b5f5ffd5b61006161005c3660046103c4565b610117565b60405190151581526020015b60405180910390f35b61009d7f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200161006d565b6100d27f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161006d565b61010a610105366004610432565b6101e7565b60405161006d9190610465565b5f5f821180156101585750825f81518110610134576101346104a7565b6020026020010151845f8151811061014e5761014e6104a7565b6020026020010151115b156101e0575f82845f81518110610171576101716104a7565b6020026020010151865f8151811061018b5761018b6104a7565b602002602001015161019d9190610501565b6101af90670de0b6b3a764000061051a565b6101b99190610531565b7f000000000000000000000000000000000000000000000000000000000000000011159150505b9392505050565b60408051600180825281830190925260609160208083019080368337019050506040517f4990408f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301529192507f000000000000000000000000000000000000000000000000000000000000000090911690634990408f90602401602060405180830381865afa158015610296573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ba9190610569565b815f815181106102cc576102cc6104a7565b602002602001018181525050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112610319575f5ffd5b813567ffffffffffffffff811115610333576103336102dd565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811067ffffffffffffffff8211171561037e5761037e6102dd565b60405291825260208185018101929081018684111561039b575f5ffd5b6020860192505b838310156103ba5782358152602092830192016103a2565b5095945050505050565b5f5f5f606084860312156103d6575f5ffd5b833567ffffffffffffffff8111156103ec575f5ffd5b6103f88682870161030a565b935050602084013567ffffffffffffffff811115610414575f5ffd5b6104208682870161030a565b93969395505050506040919091013590565b5f60208284031215610442575f5ffd5b813573ffffffffffffffffffffffffffffffffffffffff811681146101e0575f5ffd5b602080825282518282018190525f918401906040840190835b8181101561049c57835183526020938401939092019160010161047e565b509095945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610514576105146104d4565b92915050565b8082028115828204841417610514576105146104d4565b5f82610564577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b5f60208284031215610579575f5ffd5b505191905056fea2646970667358221220c7556e84f3cf30fb114d0400ba7bbbdec815e69ed36086ee40e0e334d4a7720064736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/abis/0.8.28/ContributeManager.json b/abis/0.8.28/ContributeManager.json new file mode 100644 index 0000000..383293d --- /dev/null +++ b/abis/0.8.28/ContributeManager.json @@ -0,0 +1,535 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ContributeManager", + "sourceName": "contracts/contribute/ContributeManager.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_contributorsProxy", + "type": "address" + }, + { + "internalType": "address", + "name": "_serviceManager", + "type": "address" + }, + { + "internalType": "address", + "name": "_olas", + "type": "address" + }, + { + "internalType": "address", + "name": "_stakingFactory", + "type": "address" + }, + { + "internalType": "address", + "name": "_safeMultisig", + "type": "address" + }, + { + "internalType": "address", + "name": "_fallbackHandler", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_agentId", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "_configHash", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "ReentrancyGuard", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "socialId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "serviceId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "multisig", + "type": "address" + } + ], + "name": "ServiceAlreadyStaked", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "socialId", + "type": "uint256" + } + ], + "name": "ServiceNotDefined", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "socialId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "serviceId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "multisig", + "type": "address" + } + ], + "name": "WrongServiceSetup", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "stakingInstance", + "type": "address" + } + ], + "name": "WrongStakingInstance", + "type": "error" + }, + { + "inputs": [], + "name": "ZeroAddress", + "type": "error" + }, + { + "inputs": [], + "name": "ZeroValue", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "socialId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "serviceOwner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "serviceId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "multisig", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "stakingInstance", + "type": "address" + } + ], + "name": "Claimed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "socialId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "serviceOwner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "serviceId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "multisig", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "stakingInstance", + "type": "address" + } + ], + "name": "CreatedAndStaked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "socialId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "serviceOwner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "serviceId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "multisig", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "stakingInstance", + "type": "address" + } + ], + "name": "Staked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "socialId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "serviceOwner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "serviceId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "multisig", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "stakingInstance", + "type": "address" + } + ], + "name": "Unstaked", + "type": "event" + }, + { + "inputs": [], + "name": "NUM_AGENT_INSTANCES", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "THRESHOLD", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "agentId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "claim", + "outputs": [ + { + "internalType": "uint256", + "name": "reward", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "configHash", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "contributorsProxy", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "socialId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "stakingInstance", + "type": "address" + } + ], + "name": "createAndStake", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "fallbackHandler", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "olas", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "safeMultisig", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "serviceManager", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "serviceRegistry", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "serviceRegistryTokenUtility", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "socialId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "serviceId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "stakingInstance", + "type": "address" + } + ], + "name": "stake", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "stakingFactory", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "unstake", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x6101c060405260018055348015610014575f5ffd5b506040516128413803806128418339810160408190526100339161022c565b6001600160a01b038816158061005057506001600160a01b038716155b8061006257506001600160a01b038616155b8061007457506001600160a01b038516155b8061008657506001600160a01b038416155b8061009857506001600160a01b038316155b156100b65760405163d92e233d60e01b815260040160405180910390fd5b8115806100c1575080155b156100df57604051637c946ed760e01b815260040160405180910390fd5b608082905260a08190526001600160a01b0380891660c05287811660e08190528782166101005286821661016052858216610180529084166101a052604080516365e7929560e11b8152905163cbcf252a9160048082019260209290919082900301815f875af1158015610155573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017991906102af565b6001600160a01b0316610120816001600160a01b03168152505060e0516001600160a01b031663287140516040518163ffffffff1660e01b81526004016020604051808303815f875af11580156101d2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101f691906102af565b6001600160a01b031661014052506102cf9650505050505050565b80516001600160a01b0381168114610227575f5ffd5b919050565b5f5f5f5f5f5f5f5f610100898b031215610244575f5ffd5b61024d89610211565b975061025b60208a01610211565b965061026960408a01610211565b955061027760608a01610211565b945061028560808a01610211565b935061029360a08a01610211565b60c08a015160e0909a0151989b979a5095989497939692505050565b5f602082840312156102bf575f5ffd5b6102c882610211565b9392505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a05161245b6103e65f395f81816104050152611a8e01525f818161036c0152611bb901525f81816102220152610bb401525f81816101ef015261104f01525f81816103060152818161062f0152818161130e015281816115a30152611d4401525f818161011d01528181610cdd01528181610f920152818161107e01526110ee01525f818161026b015281816117f4015281816118dd015281816119890152611b8a01525f81816103390152818161049e015281816106e20152818161082801528181610aa1015281816111fc0152611ca301525f818161039f015261182701525f81816103d2015261172c015261245b5ff3fe608060405260043610610108575f3560e01c80637628a37d116100a1578063d67f743d11610071578063e1f1176d11610057578063e1f1176d1461038e578063e84f43b7146103c1578063eed2f252146103f4575f5ffd5b8063d67f743d146102e1578063df1f77431461035b575f5ffd5b80637628a37d146102c2578063785ffb37146102e1578063cbcf252a146102f5578063cf449c8c14610328575f5ffd5b80632def6620116100dc5780632def6620146102445780633998fdd31461025a5780634e71d92d1461028d5780636000cadf146102af575f5ffd5b806231d1151461010c578063150b7a021461016957806328714051146101de5780632913476814610211575b5f5ffd5b348015610117575f5ffd5b5061013f7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b348015610174575f5ffd5b506101ad610183366004611e42565b7f150b7a020000000000000000000000000000000000000000000000000000000095945050505050565b6040517fffffffff000000000000000000000000000000000000000000000000000000009091168152602001610160565b3480156101e9575f5ffd5b5061013f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561021c575f5ffd5b5061013f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561024f575f5ffd5b50610258610427565b005b348015610265575f5ffd5b5061013f7f000000000000000000000000000000000000000000000000000000000000000081565b348015610298575f5ffd5b506102a16107b0565b604051908152602001610160565b6102586102bd366004611edb565b6109df565b3480156102cd575f5ffd5b506102586102dc366004611f09565b611189565b3480156102ec575f5ffd5b506102a1600181565b348015610300575f5ffd5b5061013f7f000000000000000000000000000000000000000000000000000000000000000081565b348015610333575f5ffd5b5061013f7f000000000000000000000000000000000000000000000000000000000000000081565b348015610366575f5ffd5b5061013f7f000000000000000000000000000000000000000000000000000000000000000081565b348015610399575f5ffd5b506102a17f000000000000000000000000000000000000000000000000000000000000000081565b3480156103cc575f5ffd5b506102a17f000000000000000000000000000000000000000000000000000000000000000081565b3480156103ff575f5ffd5b5061013f7f000000000000000000000000000000000000000000000000000000000000000081565b600180541115610463576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026001556040517f8b494a390000000000000000000000000000000000000000000000000000000081523360048201525f908190819081907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690638b494a3990602401608060405180830381865afa1580156104f8573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061051c9190611f4f565b9350935093509350825f03610565576040517fe2e8d5b5000000000000000000000000000000000000000000000000000000008152600481018590526024015b60405180910390fd5b6040517f2e17de780000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff821690632e17de78906024016020604051808303815f875af11580156105cf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105f39190611f98565b506040517f23b872dd000000000000000000000000000000000000000000000000000000008152306004820152336024820152604481018490527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906323b872dd906064015f604051808303815f87803b158015610685575f5ffd5b505af1158015610697573d5f5f3e3d5ffd5b50506040517f5078690b0000000000000000000000000000000000000000000000000000000081523360048201525f60248201819052604482018190526064820181905260848201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169250635078690b915060a4015f604051808303815f87803b15801561073a575f5ffd5b505af115801561074c573d5f5f3e3d5ffd5b50506040805186815273ffffffffffffffffffffffffffffffffffffffff85811660208301528616935033925087917f102557fcd0cecdd74a9640a69bd331464531d49cf1584a864e6a8bf139b37e00910160405180910390a45050600180555050565b5f6001805411156107ed576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026001556040517f8b494a390000000000000000000000000000000000000000000000000000000081523360048201525f908190819081907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690638b494a3990602401608060405180830381865afa158015610882573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a69190611f4f565b9350935093509350825f036108ea576040517fe2e8d5b50000000000000000000000000000000000000000000000000000000081526004810185905260240161055c565b6040517f379607f50000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff82169063379607f5906024016020604051808303815f875af1158015610954573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109789190611f98565b6040805185815273ffffffffffffffffffffffffffffffffffffffff848116602083015292975091841691339187917fe14b5e030aa5b458c65a405e8cf88687ddc2dc52b7253577ec01edad49236bd7910160405180910390a45050600180555090919050565b600180541115610a1b576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026001555f829003610a5a576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f8b494a390000000000000000000000000000000000000000000000000000000081523360048201525f90819073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690638b494a3990602401608060405180830381865afa158015610ae6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b0a9190611f4f565b509093509150508115610b6f576040517f78612641000000000000000000000000000000000000000000000000000000008152600481018590526024810183905273ffffffffffffffffffffffffffffffffffffffff8216604482015260640161055c565b6040517f479e372e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063479e372e90602401602060405180830381865afa158015610bf9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c1d9190611faf565b610c6b576040517f080ae8fe00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260240161055c565b5f8373ffffffffffffffffffffffffffffffffffffffff166372f702f36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cb5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cd99190611fd5565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d78576040517f080ae8fe00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260240161055c565b5f8473ffffffffffffffffffffffffffffffffffffffff1663e77cdcc96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dc2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610de69190611f98565b90505f8573ffffffffffffffffffffffffffffffffffffffff16635829c5ec6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e32573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e569190611f98565b90505f8673ffffffffffffffffffffffffffffffffffffffff166342cde4e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ea2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec69190611f98565b90505f82118015610ed8575060018214155b80610eee57505f81118015610eee575060018114155b15610f3d576040517f080ae8fe00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8816600482015260240161055c565b5f83610f4a60018061201d565b610f549190612036565b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906323b872dd906064016020604051808303815f875af1158015610fed573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110119190611faf565b506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303815f875af11580156110c4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110e89190611faf565b506111137f00000000000000000000000000000000000000000000000000000000000000008561167e565b90975095506111248988888b611c42565b6040805188815273ffffffffffffffffffffffffffffffffffffffff8a8116602083015288169133918c917ff1c69b12e526d2d4145f47d216fa261c6f468d177601c9081a0bcd86a4fa744f910160405180910390a450506001805550505050505050565b6001805411156111c5576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026001556040517f8b494a390000000000000000000000000000000000000000000000000000000081523360048201525f9081907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690638b494a3990602401608060405180830381865afa158015611256573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061127a9190611f4f565b5090935091505081156112df576040517f78612641000000000000000000000000000000000000000000000000000000008152600481018690526024810183905273ffffffffffffffffffffffffffffffffffffffff8216604482015260640161055c565b6040517f4236aff8000000000000000000000000000000000000000000000000000000008152600481018590527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690634236aff89060240160e060405180830381865afa158015611368573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061138c9190612060565b5050604080517f5829c5ec00000000000000000000000000000000000000000000000000000000815290519496505f955073ffffffffffffffffffffffffffffffffffffffff891694635829c5ec9450600480830194506020935090918290030181865afa158015611400573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114249190611f98565b90505f8273ffffffffffffffffffffffffffffffffffffffff1663a0e67e2b6040518163ffffffff1660e01b81526004015f60405180830381865afa15801561146f573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526114b49190810190612126565b905081815114158061150b57503373ffffffffffffffffffffffffffffffffffffffff16815f815181106114ea576114ea61220f565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15611568576040517f9e5b6c93000000000000000000000000000000000000000000000000000000008152600481018890526024810187905273ffffffffffffffffffffffffffffffffffffffff8416604482015260640161055c565b6040517f42842e0e000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018790527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906342842e0e906064015f604051808303815f87803b1580156115f9575f5ffd5b505af115801561160b573d5f5f3e3d5ffd5b5050505061161b87878588611c42565b6040805187815273ffffffffffffffffffffffffffffffffffffffff878116602083015285169133918a917f2214e1dc25e1fb063be46520c4b1e3bba2c25de96b7de8bdd2b1e35f871200e5910160405180910390a45050600180555050505050565b6040805160018082528183019092525f9182918291816020015b604080518082019091525f80825260208201528152602001906001900390816116985790505090506040518060400160405280600163ffffffff168152602001856bffffffffffffffffffffffff16815250815f815181106116fc576116fc61220f565b60209081029190910101526040805160018082528183019092525f918160200160208202803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000815f8151811061175d5761175d61220f565b63ffffffff92909216602092830291909101909101526040805160018082528183019092525f9181602001602082028036833701905050905033815f815181106117a9576117a961220f565b73ffffffffffffffffffffffffffffffffffffffff92831660209182029290920101526040517fe42cdd7c0000000000000000000000000000000000000000000000000000000081527f00000000000000000000000000000000000000000000000000000000000000009091169063e42cdd7c906118569030908b907f00000000000000000000000000000000000000000000000000000000000000009088908a9060019060040161227c565b6020604051808303815f875af1158015611872573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118969190611f98565b6040517f4d5a58270000000000000000000000000000000000000000000000000000000081526004810182905290955073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690634d5a58279060019060240160206040518083038185885af1158015611926573d5f5f3e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061194b9190611faf565b506040517fd03ca40a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063d03ca40a906001906119c590899086908890600401612343565b60206040518083038185885af11580156119e1573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611a069190611faf565b505f8054604080514260208201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003360601b169181019190915260548101829052909190607401604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00181529082905280516020918201205f9183018290527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016603484015260488301829052605c830182905260708301829052609083018190527f307800000000000000000000000000000000000000000000000000000000000060b084015292509060b201604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f0d0d57a8000000000000000000000000000000000000000000000000000000008252915073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690630d0d57a890611be3908b907f00000000000000000000000000000000000000000000000000000000000000009086906004016123ae565b6020604051808303815f875af1158015611bff573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c239190611fd5565b9650611c3083600161201d565b5f819055505050505050509250929050565b6040517f5078690b000000000000000000000000000000000000000000000000000000008152336004820152602481018590526044810184905273ffffffffffffffffffffffffffffffffffffffff838116606483015282811660848301527f00000000000000000000000000000000000000000000000000000000000000001690635078690b9060a4015f604051808303815f87803b158015611ce4575f5ffd5b505af1158015611cf6573d5f5f3e3d5ffd5b50506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018790527f000000000000000000000000000000000000000000000000000000000000000016925063095ea7b391506044015f604051808303815f87803b158015611d87575f5ffd5b505af1158015611d99573d5f5f3e3d5ffd5b50506040517fa694fc3a0000000000000000000000000000000000000000000000000000000081526004810186905273ffffffffffffffffffffffffffffffffffffffff8416925063a694fc3a91506024015f604051808303815f87803b158015611e02575f5ffd5b505af1158015611e14573d5f5f3e3d5ffd5b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff81168114611e3f575f5ffd5b50565b5f5f5f5f5f60808688031215611e56575f5ffd5b8535611e6181611e1e565b94506020860135611e7181611e1e565b935060408601359250606086013567ffffffffffffffff811115611e93575f5ffd5b8601601f81018813611ea3575f5ffd5b803567ffffffffffffffff811115611eb9575f5ffd5b886020828401011115611eca575f5ffd5b959894975092955050506020019190565b5f5f60408385031215611eec575f5ffd5b823591506020830135611efe81611e1e565b809150509250929050565b5f5f5f60608486031215611f1b575f5ffd5b83359250602084013591506040840135611f3481611e1e565b809150509250925092565b8051611f4a81611e1e565b919050565b5f5f5f5f60808587031215611f62575f5ffd5b8451602086015160408701519195509350611f7c81611e1e565b6060860151909250611f8d81611e1e565b939692955090935050565b5f60208284031215611fa8575f5ffd5b5051919050565b5f60208284031215611fbf575f5ffd5b81518015158114611fce575f5ffd5b9392505050565b5f60208284031215611fe5575f5ffd5b8151611fce81611e1e565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561203057612030611ff0565b92915050565b808202811582820484141761203057612030611ff0565b805163ffffffff81168114611f4a575f5ffd5b5f5f5f5f5f5f5f60e0888a031215612076575f5ffd5b87516bffffffffffffffffffffffff81168114612091575f5ffd5b60208901519097506120a281611e1e565b604089015190965094506120b86060890161204d565b93506120c66080890161204d565b92506120d460a0890161204d565b915060c088015160ff811681146120e9575f5ffd5b8091505092959891949750929550565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215612136575f5ffd5b815167ffffffffffffffff81111561214c575f5ffd5b8201601f8101841361215c575f5ffd5b805167ffffffffffffffff811115612176576121766120f9565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811067ffffffffffffffff821117156121c1576121c16120f9565b6040529182526020818401810192908101878411156121de575f5ffd5b6020850194505b83851015612204576121f685611f3f565b8152602094850194016121e5565b509695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151808452602084019350602083015f5b8281101561227257815163ffffffff1686526020958601959091019060010161224e565b5093949350505050565b73ffffffffffffffffffffffffffffffffffffffff8716815273ffffffffffffffffffffffffffffffffffffffff8616602082015284604082015260c060608201525f6122cc60c083018661223c565b8281036080840152845180825260208087019201905f5b81811015612321578351805163ffffffff1684526020908101516bffffffffffffffffffffffff1681850152909301926040909201916001016122e3565b505063ffffffff851660a085015291506123389050565b979650505050505050565b5f60608201858352606060208401528085518083526080850191506020870192505f5b8181101561239a57835173ffffffffffffffffffffffffffffffffffffffff16835260209384019390920191600101612366565b50508381036040850152612338818661223c565b83815273ffffffffffffffffffffffffffffffffffffffff83166020820152606060408201525f82518060608401528060208501608085015e5f6080828501015260807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505094935050505056fea26469706673582212207ff48b8af930ebb6ad0d321727d12caf7894c47586ab97ef7759af2803601a7664736f6c634300081c0033", + "deployedBytecode": "0x608060405260043610610108575f3560e01c80637628a37d116100a1578063d67f743d11610071578063e1f1176d11610057578063e1f1176d1461038e578063e84f43b7146103c1578063eed2f252146103f4575f5ffd5b8063d67f743d146102e1578063df1f77431461035b575f5ffd5b80637628a37d146102c2578063785ffb37146102e1578063cbcf252a146102f5578063cf449c8c14610328575f5ffd5b80632def6620116100dc5780632def6620146102445780633998fdd31461025a5780634e71d92d1461028d5780636000cadf146102af575f5ffd5b806231d1151461010c578063150b7a021461016957806328714051146101de5780632913476814610211575b5f5ffd5b348015610117575f5ffd5b5061013f7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b348015610174575f5ffd5b506101ad610183366004611e42565b7f150b7a020000000000000000000000000000000000000000000000000000000095945050505050565b6040517fffffffff000000000000000000000000000000000000000000000000000000009091168152602001610160565b3480156101e9575f5ffd5b5061013f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561021c575f5ffd5b5061013f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561024f575f5ffd5b50610258610427565b005b348015610265575f5ffd5b5061013f7f000000000000000000000000000000000000000000000000000000000000000081565b348015610298575f5ffd5b506102a16107b0565b604051908152602001610160565b6102586102bd366004611edb565b6109df565b3480156102cd575f5ffd5b506102586102dc366004611f09565b611189565b3480156102ec575f5ffd5b506102a1600181565b348015610300575f5ffd5b5061013f7f000000000000000000000000000000000000000000000000000000000000000081565b348015610333575f5ffd5b5061013f7f000000000000000000000000000000000000000000000000000000000000000081565b348015610366575f5ffd5b5061013f7f000000000000000000000000000000000000000000000000000000000000000081565b348015610399575f5ffd5b506102a17f000000000000000000000000000000000000000000000000000000000000000081565b3480156103cc575f5ffd5b506102a17f000000000000000000000000000000000000000000000000000000000000000081565b3480156103ff575f5ffd5b5061013f7f000000000000000000000000000000000000000000000000000000000000000081565b600180541115610463576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026001556040517f8b494a390000000000000000000000000000000000000000000000000000000081523360048201525f908190819081907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690638b494a3990602401608060405180830381865afa1580156104f8573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061051c9190611f4f565b9350935093509350825f03610565576040517fe2e8d5b5000000000000000000000000000000000000000000000000000000008152600481018590526024015b60405180910390fd5b6040517f2e17de780000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff821690632e17de78906024016020604051808303815f875af11580156105cf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105f39190611f98565b506040517f23b872dd000000000000000000000000000000000000000000000000000000008152306004820152336024820152604481018490527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906323b872dd906064015f604051808303815f87803b158015610685575f5ffd5b505af1158015610697573d5f5f3e3d5ffd5b50506040517f5078690b0000000000000000000000000000000000000000000000000000000081523360048201525f60248201819052604482018190526064820181905260848201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169250635078690b915060a4015f604051808303815f87803b15801561073a575f5ffd5b505af115801561074c573d5f5f3e3d5ffd5b50506040805186815273ffffffffffffffffffffffffffffffffffffffff85811660208301528616935033925087917f102557fcd0cecdd74a9640a69bd331464531d49cf1584a864e6a8bf139b37e00910160405180910390a45050600180555050565b5f6001805411156107ed576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026001556040517f8b494a390000000000000000000000000000000000000000000000000000000081523360048201525f908190819081907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690638b494a3990602401608060405180830381865afa158015610882573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a69190611f4f565b9350935093509350825f036108ea576040517fe2e8d5b50000000000000000000000000000000000000000000000000000000081526004810185905260240161055c565b6040517f379607f50000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff82169063379607f5906024016020604051808303815f875af1158015610954573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109789190611f98565b6040805185815273ffffffffffffffffffffffffffffffffffffffff848116602083015292975091841691339187917fe14b5e030aa5b458c65a405e8cf88687ddc2dc52b7253577ec01edad49236bd7910160405180910390a45050600180555090919050565b600180541115610a1b576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026001555f829003610a5a576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f8b494a390000000000000000000000000000000000000000000000000000000081523360048201525f90819073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690638b494a3990602401608060405180830381865afa158015610ae6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b0a9190611f4f565b509093509150508115610b6f576040517f78612641000000000000000000000000000000000000000000000000000000008152600481018590526024810183905273ffffffffffffffffffffffffffffffffffffffff8216604482015260640161055c565b6040517f479e372e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063479e372e90602401602060405180830381865afa158015610bf9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c1d9190611faf565b610c6b576040517f080ae8fe00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260240161055c565b5f8373ffffffffffffffffffffffffffffffffffffffff166372f702f36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cb5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cd99190611fd5565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d78576040517f080ae8fe00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260240161055c565b5f8473ffffffffffffffffffffffffffffffffffffffff1663e77cdcc96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dc2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610de69190611f98565b90505f8573ffffffffffffffffffffffffffffffffffffffff16635829c5ec6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e32573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e569190611f98565b90505f8673ffffffffffffffffffffffffffffffffffffffff166342cde4e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ea2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec69190611f98565b90505f82118015610ed8575060018214155b80610eee57505f81118015610eee575060018114155b15610f3d576040517f080ae8fe00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8816600482015260240161055c565b5f83610f4a60018061201d565b610f549190612036565b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906323b872dd906064016020604051808303815f875af1158015610fed573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110119190611faf565b506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303815f875af11580156110c4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110e89190611faf565b506111137f00000000000000000000000000000000000000000000000000000000000000008561167e565b90975095506111248988888b611c42565b6040805188815273ffffffffffffffffffffffffffffffffffffffff8a8116602083015288169133918c917ff1c69b12e526d2d4145f47d216fa261c6f468d177601c9081a0bcd86a4fa744f910160405180910390a450506001805550505050505050565b6001805411156111c5576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026001556040517f8b494a390000000000000000000000000000000000000000000000000000000081523360048201525f9081907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690638b494a3990602401608060405180830381865afa158015611256573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061127a9190611f4f565b5090935091505081156112df576040517f78612641000000000000000000000000000000000000000000000000000000008152600481018690526024810183905273ffffffffffffffffffffffffffffffffffffffff8216604482015260640161055c565b6040517f4236aff8000000000000000000000000000000000000000000000000000000008152600481018590527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690634236aff89060240160e060405180830381865afa158015611368573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061138c9190612060565b5050604080517f5829c5ec00000000000000000000000000000000000000000000000000000000815290519496505f955073ffffffffffffffffffffffffffffffffffffffff891694635829c5ec9450600480830194506020935090918290030181865afa158015611400573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114249190611f98565b90505f8273ffffffffffffffffffffffffffffffffffffffff1663a0e67e2b6040518163ffffffff1660e01b81526004015f60405180830381865afa15801561146f573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526114b49190810190612126565b905081815114158061150b57503373ffffffffffffffffffffffffffffffffffffffff16815f815181106114ea576114ea61220f565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15611568576040517f9e5b6c93000000000000000000000000000000000000000000000000000000008152600481018890526024810187905273ffffffffffffffffffffffffffffffffffffffff8416604482015260640161055c565b6040517f42842e0e000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018790527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906342842e0e906064015f604051808303815f87803b1580156115f9575f5ffd5b505af115801561160b573d5f5f3e3d5ffd5b5050505061161b87878588611c42565b6040805187815273ffffffffffffffffffffffffffffffffffffffff878116602083015285169133918a917f2214e1dc25e1fb063be46520c4b1e3bba2c25de96b7de8bdd2b1e35f871200e5910160405180910390a45050600180555050505050565b6040805160018082528183019092525f9182918291816020015b604080518082019091525f80825260208201528152602001906001900390816116985790505090506040518060400160405280600163ffffffff168152602001856bffffffffffffffffffffffff16815250815f815181106116fc576116fc61220f565b60209081029190910101526040805160018082528183019092525f918160200160208202803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000815f8151811061175d5761175d61220f565b63ffffffff92909216602092830291909101909101526040805160018082528183019092525f9181602001602082028036833701905050905033815f815181106117a9576117a961220f565b73ffffffffffffffffffffffffffffffffffffffff92831660209182029290920101526040517fe42cdd7c0000000000000000000000000000000000000000000000000000000081527f00000000000000000000000000000000000000000000000000000000000000009091169063e42cdd7c906118569030908b907f00000000000000000000000000000000000000000000000000000000000000009088908a9060019060040161227c565b6020604051808303815f875af1158015611872573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118969190611f98565b6040517f4d5a58270000000000000000000000000000000000000000000000000000000081526004810182905290955073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690634d5a58279060019060240160206040518083038185885af1158015611926573d5f5f3e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061194b9190611faf565b506040517fd03ca40a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063d03ca40a906001906119c590899086908890600401612343565b60206040518083038185885af11580156119e1573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611a069190611faf565b505f8054604080514260208201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003360601b169181019190915260548101829052909190607401604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00181529082905280516020918201205f9183018290527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016603484015260488301829052605c830182905260708301829052609083018190527f307800000000000000000000000000000000000000000000000000000000000060b084015292509060b201604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f0d0d57a8000000000000000000000000000000000000000000000000000000008252915073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690630d0d57a890611be3908b907f00000000000000000000000000000000000000000000000000000000000000009086906004016123ae565b6020604051808303815f875af1158015611bff573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c239190611fd5565b9650611c3083600161201d565b5f819055505050505050509250929050565b6040517f5078690b000000000000000000000000000000000000000000000000000000008152336004820152602481018590526044810184905273ffffffffffffffffffffffffffffffffffffffff838116606483015282811660848301527f00000000000000000000000000000000000000000000000000000000000000001690635078690b9060a4015f604051808303815f87803b158015611ce4575f5ffd5b505af1158015611cf6573d5f5f3e3d5ffd5b50506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018790527f000000000000000000000000000000000000000000000000000000000000000016925063095ea7b391506044015f604051808303815f87803b158015611d87575f5ffd5b505af1158015611d99573d5f5f3e3d5ffd5b50506040517fa694fc3a0000000000000000000000000000000000000000000000000000000081526004810186905273ffffffffffffffffffffffffffffffffffffffff8416925063a694fc3a91506024015f604051808303815f87803b158015611e02575f5ffd5b505af1158015611e14573d5f5f3e3d5ffd5b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff81168114611e3f575f5ffd5b50565b5f5f5f5f5f60808688031215611e56575f5ffd5b8535611e6181611e1e565b94506020860135611e7181611e1e565b935060408601359250606086013567ffffffffffffffff811115611e93575f5ffd5b8601601f81018813611ea3575f5ffd5b803567ffffffffffffffff811115611eb9575f5ffd5b886020828401011115611eca575f5ffd5b959894975092955050506020019190565b5f5f60408385031215611eec575f5ffd5b823591506020830135611efe81611e1e565b809150509250929050565b5f5f5f60608486031215611f1b575f5ffd5b83359250602084013591506040840135611f3481611e1e565b809150509250925092565b8051611f4a81611e1e565b919050565b5f5f5f5f60808587031215611f62575f5ffd5b8451602086015160408701519195509350611f7c81611e1e565b6060860151909250611f8d81611e1e565b939692955090935050565b5f60208284031215611fa8575f5ffd5b5051919050565b5f60208284031215611fbf575f5ffd5b81518015158114611fce575f5ffd5b9392505050565b5f60208284031215611fe5575f5ffd5b8151611fce81611e1e565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561203057612030611ff0565b92915050565b808202811582820484141761203057612030611ff0565b805163ffffffff81168114611f4a575f5ffd5b5f5f5f5f5f5f5f60e0888a031215612076575f5ffd5b87516bffffffffffffffffffffffff81168114612091575f5ffd5b60208901519097506120a281611e1e565b604089015190965094506120b86060890161204d565b93506120c66080890161204d565b92506120d460a0890161204d565b915060c088015160ff811681146120e9575f5ffd5b8091505092959891949750929550565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215612136575f5ffd5b815167ffffffffffffffff81111561214c575f5ffd5b8201601f8101841361215c575f5ffd5b805167ffffffffffffffff811115612176576121766120f9565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811067ffffffffffffffff821117156121c1576121c16120f9565b6040529182526020818401810192908101878411156121de575f5ffd5b6020850194505b83851015612204576121f685611f3f565b8152602094850194016121e5565b509695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151808452602084019350602083015f5b8281101561227257815163ffffffff1686526020958601959091019060010161224e565b5093949350505050565b73ffffffffffffffffffffffffffffffffffffffff8716815273ffffffffffffffffffffffffffffffffffffffff8616602082015284604082015260c060608201525f6122cc60c083018661223c565b8281036080840152845180825260208087019201905f5b81811015612321578351805163ffffffff1684526020908101516bffffffffffffffffffffffff1681850152909301926040909201916001016122e3565b505063ffffffff851660a085015291506123389050565b979650505050505050565b5f60608201858352606060208401528085518083526080850191506020870192505f5b8181101561239a57835173ffffffffffffffffffffffffffffffffffffffff16835260209384019390920191600101612366565b50508381036040850152612338818661223c565b83815273ffffffffffffffffffffffffffffffffffffffff83166020820152606060408201525f82518060608401528060208501608085015e5f6080828501015260807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505094935050505056fea26469706673582212207ff48b8af930ebb6ad0d321727d12caf7894c47586ab97ef7759af2803601a7664736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/abis/0.8.28/Contributors.json b/abis/0.8.28/Contributors.json new file mode 100644 index 0000000..d226556 --- /dev/null +++ b/abis/0.8.28/Contributors.json @@ -0,0 +1,439 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Contributors", + "sourceName": "contracts/contribute/Contributors.sol", + "abi": [ + { + "inputs": [], + "name": "AlreadyInitialized", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "manager", + "type": "address" + } + ], + "name": "OnlyManager", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnerOnly", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "UnauthorizedAccount", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "numValues1", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "numValues2", + "type": "uint256" + } + ], + "name": "WrongArrayLength", + "type": "error" + }, + { + "inputs": [], + "name": "ZeroAddress", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "ImplementationUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "manager", + "type": "address" + } + ], + "name": "ManagerUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "senderAgent", + "type": "address" + }, + { + "indexed": false, + "internalType": "address[]", + "name": "multisigs", + "type": "address[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "activityChanges", + "type": "uint256[]" + } + ], + "name": "MultisigActivityChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnerUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address[]", + "name": "contributeAgents", + "type": "address[]" + }, + { + "indexed": false, + "internalType": "bool[]", + "name": "statuses", + "type": "bool[]" + } + ], + "name": "SetContributeAgentStatuses", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "serviceOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "socialId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "serviceId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "multisig", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "stakingInstance", + "type": "address" + } + ], + "name": "SetServiceInfoForId", + "type": "event" + }, + { + "inputs": [], + "name": "CONTRIBUTORS_PROXY", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "VERSION", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newImplementation", + "type": "address" + } + ], + "name": "changeImplementation", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newManager", + "type": "address" + } + ], + "name": "changeManager", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "changeOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "multisigs", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "activityChanges", + "type": "uint256[]" + } + ], + "name": "increaseActivity", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "manager", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "mapAccountServiceInfo", + "outputs": [ + { + "internalType": "uint256", + "name": "socialId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "serviceId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "multisig", + "type": "address" + }, + { + "internalType": "address", + "name": "stakingInstance", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "mapContributeAgents", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "mapMutisigActivities", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "contributeAgents", + "type": "address[]" + }, + { + "internalType": "bool[]", + "name": "statuses", + "type": "bool[]" + } + ], + "name": "setContributeAgentStatuses", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "serviceOwner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "socialId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "serviceId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "multisig", + "type": "address" + }, + { + "internalType": "address", + "name": "stakingInstance", + "type": "address" + } + ], + "name": "setServiceInfoForId", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x6080604052348015600e575f5ffd5b506110f08061001c5f395ff3fe608060405234801561000f575f5ffd5b50600436106100e5575f3560e01c80638129fc1c11610088578063a3fbbaae11610063578063a3fbbaae146102a6578063a6f9dae1146102b9578063d7831072146102cc578063ffa1ad74146102df575f5ffd5b80638129fc1c146101f45780638b494a39146101fc5780638da5cb5b14610287575f5ffd5b8063481c6a75116100c3578063481c6a751461014b5780634990408f146101905780635078690b146101af5780636859d1d8146101c2575f5ffd5b806317a68dd8146100e95780633db25aab146100fe57806341c952a414610138575b5f5ffd5b6100fc6100f7366004610c08565b610328565b005b6101257f8f33b4c48c4f3159dc130f2111086160da6c94439c147bd337ecee0aa81518c781565b6040519081526020015b60405180910390f35b6100fc610146366004610d38565b610452565b60015461016b9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161012f565b61012561019e366004610c08565b60036020525f908152604090205481565b6100fc6101bd366004610df6565b6105cf565b6101e46101d0366004610c08565b60046020525f908152604090205460ff1681565b604051901515815260200161012f565b6100fc6106fd565b61024b61020a366004610c08565b600260208190525f9182526040909120805460018201549282015460039092015490929173ffffffffffffffffffffffffffffffffffffffff908116911684565b60408051948552602085019390935273ffffffffffffffffffffffffffffffffffffffff9182169284019290925216606082015260800161012f565b5f5461016b9073ffffffffffffffffffffffffffffffffffffffff1681565b6100fc6102b4366004610c08565b610777565b6100fc6102c7366004610c08565b6108a3565b6100fc6102da366004610e49565b6109cd565b61031b6040518060400160405280600581526020017f312e302e3000000000000000000000000000000000000000000000000000000081525081565b60405161012f9190610f06565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461039e575f546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff90911660248201526044015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81166103eb576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f8f33b4c48c4f3159dc130f2111086160da6c94439c147bd337ecee0aa81518c781905560405173ffffffffffffffffffffffffffffffffffffffff8216907f310ba5f1d2ed074b51e2eccd052a47ae9ab7c6b800d1fca3db3999d6a592ca03905f90a250565b335f9081526004602052604090205460ff1661049c576040517f32b2baa3000000000000000000000000000000000000000000000000000000008152336004820152602401610395565b80518251146104e457815181516040517f8151c11000000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610395565b5f5b825181101561057a5781818151811061050157610501610f59565b602002602001015160035f85848151811061051e5761051e610f59565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461056d9190610f86565b90915550506001016104e6565b503373ffffffffffffffffffffffffffffffffffffffff167fa979bfa637f10d403f5b074e0ee52626618f5969e71d33fa0f5daf0caa22065683836040516105c3929190611014565b60405180910390a25050565b60015473ffffffffffffffffffffffffffffffffffffffff163314610642576001546040517f59c8c6cc00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9091166024820152604401610395565b73ffffffffffffffffffffffffffffffffffffffff8581165f818152600260208181526040928390208981556001810189905591820180548887167fffffffffffffffffffffffff000000000000000000000000000000000000000091821681179092556003840180549789169790911687179055835190815290810194909452928692889290917f2c50df9a1dea57a91edc18dc7b7d135675e66bca942cb9ab6009bc7647f09c64910160405180910390a4505050505050565b5f5473ffffffffffffffffffffffffffffffffffffffff161561074c576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146107e8575f546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9091166024820152604401610395565b73ffffffffffffffffffffffffffffffffffffffff8116610835576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f2c1c11af44aa5608f1dca38c00275c30ea091e02417d36e70e9a1538689c433d905f90a250565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610914575f546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9091166024820152604401610395565b73ffffffffffffffffffffffffffffffffffffffff8116610961576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117825560405190917f4ffd725fc4a22075e9ec71c59edf9c38cdeb588a91b24fc5b61388c5be41282b91a250565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610a3e575f546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9091166024820152604401610395565b8051825114610a8657815181516040517f8151c11000000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610395565b5f5b8251811015610ba2575f73ffffffffffffffffffffffffffffffffffffffff16838281518110610aba57610aba610f59565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1603610b0f576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818181518110610b2157610b21610f59565b602002602001015160045f858481518110610b3e57610b3e610f59565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff1682528101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101610a88565b507ff8883c5b3d29b436411eaabf250a87533e54aedaa97bf4968077574532fad3cd8282604051610bd492919061106c565b60405180910390a15050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610c03575f5ffd5b919050565b5f60208284031215610c18575f5ffd5b610c2182610be0565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610c9c57610c9c610c28565b604052919050565b5f67ffffffffffffffff821115610cbd57610cbd610c28565b5060051b60200190565b5f82601f830112610cd6575f5ffd5b8135610ce9610ce482610ca4565b610c55565b8082825260208201915060208360051b860101925085831115610d0a575f5ffd5b602085015b83811015610d2e57610d2081610be0565b835260209283019201610d0f565b5095945050505050565b5f5f60408385031215610d49575f5ffd5b823567ffffffffffffffff811115610d5f575f5ffd5b610d6b85828601610cc7565b925050602083013567ffffffffffffffff811115610d87575f5ffd5b8301601f81018513610d97575f5ffd5b8035610da5610ce482610ca4565b8082825260208201915060208360051b850101925087831115610dc6575f5ffd5b6020840193505b82841015610de8578335825260209384019390910190610dcd565b809450505050509250929050565b5f5f5f5f5f60a08688031215610e0a575f5ffd5b610e1386610be0565b94506020860135935060408601359250610e2f60608701610be0565b9150610e3d60808701610be0565b90509295509295909350565b5f5f60408385031215610e5a575f5ffd5b823567ffffffffffffffff811115610e70575f5ffd5b610e7c85828601610cc7565b925050602083013567ffffffffffffffff811115610e98575f5ffd5b8301601f81018513610ea8575f5ffd5b8035610eb6610ce482610ca4565b8082825260208201915060208360051b850101925087831115610ed7575f5ffd5b6020840193505b82841015610de85783358015158114610ef5575f5ffd5b825260209384019390910190610ede565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b80820180821115610fbe577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b92915050565b5f8151808452602084019350602083015f5b8281101561100a57815173ffffffffffffffffffffffffffffffffffffffff16865260209586019590910190600101610fd6565b5093949350505050565b604081525f6110266040830185610fc4565b82810360208401528084518083526020830191506020860192505f5b81811015611060578351835260209384019390920191600101611042565b50909695505050505050565b604081525f61107e6040830185610fc4565b82810360208401528084518083526020830191506020860192505f5b81811015611060578351151583526020938401939092019160010161109a56fea2646970667358221220a6bfff76c5ba6d51d6238eb8a3f8213209d48b27f144415147c96c325006fcc064736f6c634300081c0033", + "deployedBytecode": "0x608060405234801561000f575f5ffd5b50600436106100e5575f3560e01c80638129fc1c11610088578063a3fbbaae11610063578063a3fbbaae146102a6578063a6f9dae1146102b9578063d7831072146102cc578063ffa1ad74146102df575f5ffd5b80638129fc1c146101f45780638b494a39146101fc5780638da5cb5b14610287575f5ffd5b8063481c6a75116100c3578063481c6a751461014b5780634990408f146101905780635078690b146101af5780636859d1d8146101c2575f5ffd5b806317a68dd8146100e95780633db25aab146100fe57806341c952a414610138575b5f5ffd5b6100fc6100f7366004610c08565b610328565b005b6101257f8f33b4c48c4f3159dc130f2111086160da6c94439c147bd337ecee0aa81518c781565b6040519081526020015b60405180910390f35b6100fc610146366004610d38565b610452565b60015461016b9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161012f565b61012561019e366004610c08565b60036020525f908152604090205481565b6100fc6101bd366004610df6565b6105cf565b6101e46101d0366004610c08565b60046020525f908152604090205460ff1681565b604051901515815260200161012f565b6100fc6106fd565b61024b61020a366004610c08565b600260208190525f9182526040909120805460018201549282015460039092015490929173ffffffffffffffffffffffffffffffffffffffff908116911684565b60408051948552602085019390935273ffffffffffffffffffffffffffffffffffffffff9182169284019290925216606082015260800161012f565b5f5461016b9073ffffffffffffffffffffffffffffffffffffffff1681565b6100fc6102b4366004610c08565b610777565b6100fc6102c7366004610c08565b6108a3565b6100fc6102da366004610e49565b6109cd565b61031b6040518060400160405280600581526020017f312e302e3000000000000000000000000000000000000000000000000000000081525081565b60405161012f9190610f06565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461039e575f546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff90911660248201526044015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81166103eb576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f8f33b4c48c4f3159dc130f2111086160da6c94439c147bd337ecee0aa81518c781905560405173ffffffffffffffffffffffffffffffffffffffff8216907f310ba5f1d2ed074b51e2eccd052a47ae9ab7c6b800d1fca3db3999d6a592ca03905f90a250565b335f9081526004602052604090205460ff1661049c576040517f32b2baa3000000000000000000000000000000000000000000000000000000008152336004820152602401610395565b80518251146104e457815181516040517f8151c11000000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610395565b5f5b825181101561057a5781818151811061050157610501610f59565b602002602001015160035f85848151811061051e5761051e610f59565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461056d9190610f86565b90915550506001016104e6565b503373ffffffffffffffffffffffffffffffffffffffff167fa979bfa637f10d403f5b074e0ee52626618f5969e71d33fa0f5daf0caa22065683836040516105c3929190611014565b60405180910390a25050565b60015473ffffffffffffffffffffffffffffffffffffffff163314610642576001546040517f59c8c6cc00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9091166024820152604401610395565b73ffffffffffffffffffffffffffffffffffffffff8581165f818152600260208181526040928390208981556001810189905591820180548887167fffffffffffffffffffffffff000000000000000000000000000000000000000091821681179092556003840180549789169790911687179055835190815290810194909452928692889290917f2c50df9a1dea57a91edc18dc7b7d135675e66bca942cb9ab6009bc7647f09c64910160405180910390a4505050505050565b5f5473ffffffffffffffffffffffffffffffffffffffff161561074c576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146107e8575f546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9091166024820152604401610395565b73ffffffffffffffffffffffffffffffffffffffff8116610835576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f2c1c11af44aa5608f1dca38c00275c30ea091e02417d36e70e9a1538689c433d905f90a250565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610914575f546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9091166024820152604401610395565b73ffffffffffffffffffffffffffffffffffffffff8116610961576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117825560405190917f4ffd725fc4a22075e9ec71c59edf9c38cdeb588a91b24fc5b61388c5be41282b91a250565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610a3e575f546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9091166024820152604401610395565b8051825114610a8657815181516040517f8151c11000000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610395565b5f5b8251811015610ba2575f73ffffffffffffffffffffffffffffffffffffffff16838281518110610aba57610aba610f59565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1603610b0f576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818181518110610b2157610b21610f59565b602002602001015160045f858481518110610b3e57610b3e610f59565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff1682528101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101610a88565b507ff8883c5b3d29b436411eaabf250a87533e54aedaa97bf4968077574532fad3cd8282604051610bd492919061106c565b60405180910390a15050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610c03575f5ffd5b919050565b5f60208284031215610c18575f5ffd5b610c2182610be0565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610c9c57610c9c610c28565b604052919050565b5f67ffffffffffffffff821115610cbd57610cbd610c28565b5060051b60200190565b5f82601f830112610cd6575f5ffd5b8135610ce9610ce482610ca4565b610c55565b8082825260208201915060208360051b860101925085831115610d0a575f5ffd5b602085015b83811015610d2e57610d2081610be0565b835260209283019201610d0f565b5095945050505050565b5f5f60408385031215610d49575f5ffd5b823567ffffffffffffffff811115610d5f575f5ffd5b610d6b85828601610cc7565b925050602083013567ffffffffffffffff811115610d87575f5ffd5b8301601f81018513610d97575f5ffd5b8035610da5610ce482610ca4565b8082825260208201915060208360051b850101925087831115610dc6575f5ffd5b6020840193505b82841015610de8578335825260209384019390910190610dcd565b809450505050509250929050565b5f5f5f5f5f60a08688031215610e0a575f5ffd5b610e1386610be0565b94506020860135935060408601359250610e2f60608701610be0565b9150610e3d60808701610be0565b90509295509295909350565b5f5f60408385031215610e5a575f5ffd5b823567ffffffffffffffff811115610e70575f5ffd5b610e7c85828601610cc7565b925050602083013567ffffffffffffffff811115610e98575f5ffd5b8301601f81018513610ea8575f5ffd5b8035610eb6610ce482610ca4565b8082825260208201915060208360051b850101925087831115610ed7575f5ffd5b6020840193505b82841015610de85783358015158114610ef5575f5ffd5b825260209384019390910190610ede565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b80820180821115610fbe577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b92915050565b5f8151808452602084019350602083015f5b8281101561100a57815173ffffffffffffffffffffffffffffffffffffffff16865260209586019590910190600101610fd6565b5093949350505050565b604081525f6110266040830185610fc4565b82810360208401528084518083526020830191506020860192505f5b81811015611060578351835260209384019390920191600101611042565b50909695505050505050565b604081525f61107e6040830185610fc4565b82810360208401528084518083526020830191506020860192505f5b81811015611060578351151583526020938401939092019160010161109a56fea2646970667358221220a6bfff76c5ba6d51d6238eb8a3f8213209d48b27f144415147c96c325006fcc064736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/abis/0.8.28/ContributorsProxy.json b/abis/0.8.28/ContributorsProxy.json new file mode 100644 index 0000000..04517e8 --- /dev/null +++ b/abis/0.8.28/ContributorsProxy.json @@ -0,0 +1,59 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ContributorsProxy", + "sourceName": "contracts/contribute/ContributorsProxy.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "implementation", + "type": "address" + }, + { + "internalType": "bytes", + "name": "contributorsData", + "type": "bytes" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "InitializationFailed", + "type": "error" + }, + { + "inputs": [], + "name": "ZeroContributorsData", + "type": "error" + }, + { + "inputs": [], + "name": "ZeroImplementationAddress", + "type": "error" + }, + { + "stateMutability": "nonpayable", + "type": "fallback" + }, + { + "inputs": [], + "name": "CONTRIBUTORS_PROXY", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x608060405234801561000f575f5ffd5b506040516102f23803806102f283398101604081905261002e9161012d565b6001600160a01b0382166100555760405163d02c623d60e01b815260040160405180910390fd5b80515f0361007657604051636ac8756160e01b815260040160405180910390fd5b817f8f33b4c48c4f3159dc130f2111086160da6c94439c147bd337ecee0aa81518c7555f826001600160a01b0316826040516100b291906101fc565b5f60405180830381855af49150503d805f81146100ea576040519150601f19603f3d011682016040523d82523d5f602084013e6100ef565b606091505b505090508061011157604051630337323560e31b815260040160405180910390fd5b505050610212565b634e487b7160e01b5f52604160045260245ffd5b5f5f6040838503121561013e575f5ffd5b82516001600160a01b0381168114610154575f5ffd5b60208401519092506001600160401b0381111561016f575f5ffd5b8301601f8101851361017f575f5ffd5b80516001600160401b0381111561019857610198610119565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101c6576101c6610119565b6040528181528282016020018710156101dd575f5ffd5b8160208401602083015e5f602083830101528093505050509250929050565b5f82518060208501845e5f920191825250919050565b60d48061021e5f395ff3fe6080604052348015600e575f5ffd5b50600436106026575f3560e01c80633db25aab146066575b7f8f33b4c48c4f3159dc130f2111086160da6c94439c147bd337ecee0aa81518c754365f5f375f5f365f845af490503d5f5f3e806061573d5ffd5b503d5ff35b608c7f8f33b4c48c4f3159dc130f2111086160da6c94439c147bd337ecee0aa81518c781565b60405190815260200160405180910390f3fea26469706673582212209210556d97be336c48db73e448de839c62e80e98479698d4d5db3532e918887c64736f6c634300081c0033", + "deployedBytecode": "0x6080604052348015600e575f5ffd5b50600436106026575f3560e01c80633db25aab146066575b7f8f33b4c48c4f3159dc130f2111086160da6c94439c147bd337ecee0aa81518c754365f5f375f5f365f845af490503d5f5f3e806061573d5ffd5b503d5ff35b608c7f8f33b4c48c4f3159dc130f2111086160da6c94439c147bd337ecee0aa81518c781565b60405190815260200160405180910390f3fea26469706673582212209210556d97be336c48db73e448de839c62e80e98479698d4d5db3532e918887c64736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/abis/0.8.28/MechActivityChecker.json b/abis/0.8.28/MechActivityChecker.json new file mode 100644 index 0000000..8ddd781 --- /dev/null +++ b/abis/0.8.28/MechActivityChecker.json @@ -0,0 +1,111 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "MechActivityChecker", + "sourceName": "contracts/mech_usage/MechActivityChecker.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_mechMarketplace", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_livenessRatio", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "ZeroAddress", + "type": "error" + }, + { + "inputs": [], + "name": "ZeroValue", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "multisig", + "type": "address" + } + ], + "name": "getMultisigNonces", + "outputs": [ + { + "internalType": "uint256[]", + "name": "nonces", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "curNonces", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "lastNonces", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "ts", + "type": "uint256" + } + ], + "name": "isRatioPass", + "outputs": [ + { + "internalType": "bool", + "name": "ratioPass", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "livenessRatio", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "mechMarketplace", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x60c060405234801561000f575f5ffd5b506040516107ba3803806107ba83398101604081905261002e9161008b565b80805f0361004f57604051637c946ed760e01b815260040160405180910390fd5b6080526001600160a01b0382166100795760405163d92e233d60e01b815260040160405180910390fd5b506001600160a01b031660a0526100c2565b5f5f6040838503121561009c575f5ffd5b82516001600160a01b03811681146100b2575f5ffd5b6020939093015192949293505050565b60805160a0516106cb6100ef5f395f818160b0015261036501525f8181607b015261024701526106cb5ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c8063184023a51461004e578063592cf3fb146100765780639c5e9590146100ab578063d564c4bf146100f7575b5f5ffd5b61006161005c3660046104d9565b610117565b60405190151581526020015b60405180910390f35b61009d7f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200161006d565b6100d27f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161006d565b61010a610105366004610547565b610276565b60405161006d919061057a565b5f5f821180156101585750825f81518110610134576101346105bc565b6020026020010151845f8151811061014e5761014e6105bc565b6020026020010151115b8015610197575082600181518110610172576101726105bc565b60200260200101518460018151811061018d5761018d6105bc565b6020026020010151115b1561026f575f835f815181106101af576101af6105bc565b6020026020010151855f815181106101c9576101c96105bc565b60200260200101516101db9190610616565b90505f846001815181106101f1576101f16105bc565b60200260200101518660018151811061020c5761020c6105bc565b602002602001015161021e9190610616565b905081811161026c575f8461023b83670de0b6b3a764000061062f565b6102459190610646565b7f000000000000000000000000000000000000000000000000000000000000000011159350505b50505b9392505050565b60408051600280825260608083018452926020830190803683370190505090508173ffffffffffffffffffffffffffffffffffffffff1663affed0e06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102df573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610303919061067e565b815f81518110610315576103156105bc565b60209081029190910101526040517f60b24e0a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301527f000000000000000000000000000000000000000000000000000000000000000016906360b24e0a90602401602060405180830381865afa1580156103aa573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ce919061067e565b816001815181106103e1576103e16105bc565b602002602001018181525050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f83011261042e575f5ffd5b813567ffffffffffffffff811115610448576104486103f2565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811067ffffffffffffffff82111715610493576104936103f2565b6040529182526020818501810192908101868411156104b0575f5ffd5b6020860192505b838310156104cf5782358152602092830192016104b7565b5095945050505050565b5f5f5f606084860312156104eb575f5ffd5b833567ffffffffffffffff811115610501575f5ffd5b61050d8682870161041f565b935050602084013567ffffffffffffffff811115610529575f5ffd5b6105358682870161041f565b93969395505050506040919091013590565b5f60208284031215610557575f5ffd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461026f575f5ffd5b602080825282518282018190525f918401906040840190835b818110156105b1578351835260209384019390920191600101610593565b509095945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610629576106296105e9565b92915050565b8082028115828204841417610629576106296105e9565b5f82610679577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b5f6020828403121561068e575f5ffd5b505191905056fea2646970667358221220a4b65f235444a057943da15aae7b669c6fe74ff70742fde48fd78f9c7850e87064736f6c634300081c0033", + "deployedBytecode": "0x608060405234801561000f575f5ffd5b506004361061004a575f3560e01c8063184023a51461004e578063592cf3fb146100765780639c5e9590146100ab578063d564c4bf146100f7575b5f5ffd5b61006161005c3660046104d9565b610117565b60405190151581526020015b60405180910390f35b61009d7f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200161006d565b6100d27f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161006d565b61010a610105366004610547565b610276565b60405161006d919061057a565b5f5f821180156101585750825f81518110610134576101346105bc565b6020026020010151845f8151811061014e5761014e6105bc565b6020026020010151115b8015610197575082600181518110610172576101726105bc565b60200260200101518460018151811061018d5761018d6105bc565b6020026020010151115b1561026f575f835f815181106101af576101af6105bc565b6020026020010151855f815181106101c9576101c96105bc565b60200260200101516101db9190610616565b90505f846001815181106101f1576101f16105bc565b60200260200101518660018151811061020c5761020c6105bc565b602002602001015161021e9190610616565b905081811161026c575f8461023b83670de0b6b3a764000061062f565b6102459190610646565b7f000000000000000000000000000000000000000000000000000000000000000011159350505b50505b9392505050565b60408051600280825260608083018452926020830190803683370190505090508173ffffffffffffffffffffffffffffffffffffffff1663affed0e06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102df573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610303919061067e565b815f81518110610315576103156105bc565b60209081029190910101526040517f60b24e0a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301527f000000000000000000000000000000000000000000000000000000000000000016906360b24e0a90602401602060405180830381865afa1580156103aa573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ce919061067e565b816001815181106103e1576103e16105bc565b602002602001018181525050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f83011261042e575f5ffd5b813567ffffffffffffffff811115610448576104486103f2565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811067ffffffffffffffff82111715610493576104936103f2565b6040529182526020818501810192908101868411156104b0575f5ffd5b6020860192505b838310156104cf5782358152602092830192016104b7565b5095945050505050565b5f5f5f606084860312156104eb575f5ffd5b833567ffffffffffffffff811115610501575f5ffd5b61050d8682870161041f565b935050602084013567ffffffffffffffff811115610529575f5ffd5b6105358682870161041f565b93969395505050506040919091013590565b5f60208284031215610557575f5ffd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461026f575f5ffd5b602080825282518282018190525f918401906040840190835b818110156105b1578351835260209384019390920191600101610593565b509095945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610629576106296105e9565b92915050565b8082028115828204841417610629576106296105e9565b5f82610679577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b5f6020828403121561068e575f5ffd5b505191905056fea2646970667358221220a4b65f235444a057943da15aae7b669c6fe74ff70742fde48fd78f9c7850e87064736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/abis/0.8.28/RequesterActivityChecker.json b/abis/0.8.28/RequesterActivityChecker.json new file mode 100644 index 0000000..ec9eba1 --- /dev/null +++ b/abis/0.8.28/RequesterActivityChecker.json @@ -0,0 +1,111 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "RequesterActivityChecker", + "sourceName": "contracts/mech_usage/RequesterActivityChecker.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_mechMarketplace", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_livenessRatio", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "ZeroAddress", + "type": "error" + }, + { + "inputs": [], + "name": "ZeroValue", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "multisig", + "type": "address" + } + ], + "name": "getMultisigNonces", + "outputs": [ + { + "internalType": "uint256[]", + "name": "nonces", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "curNonces", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "lastNonces", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "ts", + "type": "uint256" + } + ], + "name": "isRatioPass", + "outputs": [ + { + "internalType": "bool", + "name": "ratioPass", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "livenessRatio", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "mechMarketplace", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x60c060405234801561000f575f5ffd5b506040516107ba3803806107ba83398101604081905261002e9161008b565b80805f0361004f57604051637c946ed760e01b815260040160405180910390fd5b6080526001600160a01b0382166100795760405163d92e233d60e01b815260040160405180910390fd5b506001600160a01b031660a0526100c2565b5f5f6040838503121561009c575f5ffd5b82516001600160a01b03811681146100b2575f5ffd5b6020939093015192949293505050565b60805160a0516106cb6100ef5f395f818160b0015261036501525f8181607b015261024701526106cb5ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c8063184023a51461004e578063592cf3fb146100765780639c5e9590146100ab578063d564c4bf146100f7575b5f5ffd5b61006161005c3660046104d9565b610117565b60405190151581526020015b60405180910390f35b61009d7f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200161006d565b6100d27f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161006d565b61010a610105366004610547565b610276565b60405161006d919061057a565b5f5f821180156101585750825f81518110610134576101346105bc565b6020026020010151845f8151811061014e5761014e6105bc565b6020026020010151115b8015610197575082600181518110610172576101726105bc565b60200260200101518460018151811061018d5761018d6105bc565b6020026020010151115b1561026f575f835f815181106101af576101af6105bc565b6020026020010151855f815181106101c9576101c96105bc565b60200260200101516101db9190610616565b90505f846001815181106101f1576101f16105bc565b60200260200101518660018151811061020c5761020c6105bc565b602002602001015161021e9190610616565b905081811161026c575f8461023b83670de0b6b3a764000061062f565b6102459190610646565b7f000000000000000000000000000000000000000000000000000000000000000011159350505b50505b9392505050565b60408051600280825260608083018452926020830190803683370190505090508173ffffffffffffffffffffffffffffffffffffffff1663affed0e06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102df573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610303919061067e565b815f81518110610315576103156105bc565b60209081029190910101526040517f7af7347300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301527f00000000000000000000000000000000000000000000000000000000000000001690637af7347390602401602060405180830381865afa1580156103aa573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ce919061067e565b816001815181106103e1576103e16105bc565b602002602001018181525050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f83011261042e575f5ffd5b813567ffffffffffffffff811115610448576104486103f2565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811067ffffffffffffffff82111715610493576104936103f2565b6040529182526020818501810192908101868411156104b0575f5ffd5b6020860192505b838310156104cf5782358152602092830192016104b7565b5095945050505050565b5f5f5f606084860312156104eb575f5ffd5b833567ffffffffffffffff811115610501575f5ffd5b61050d8682870161041f565b935050602084013567ffffffffffffffff811115610529575f5ffd5b6105358682870161041f565b93969395505050506040919091013590565b5f60208284031215610557575f5ffd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461026f575f5ffd5b602080825282518282018190525f918401906040840190835b818110156105b1578351835260209384019390920191600101610593565b509095945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610629576106296105e9565b92915050565b8082028115828204841417610629576106296105e9565b5f82610679577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b5f6020828403121561068e575f5ffd5b505191905056fea264697066735822122074b29301db1025d7ed7f3ebeef7aaee8fcbbd74948b97fab996b5770677d17d464736f6c634300081c0033", + "deployedBytecode": "0x608060405234801561000f575f5ffd5b506004361061004a575f3560e01c8063184023a51461004e578063592cf3fb146100765780639c5e9590146100ab578063d564c4bf146100f7575b5f5ffd5b61006161005c3660046104d9565b610117565b60405190151581526020015b60405180910390f35b61009d7f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200161006d565b6100d27f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161006d565b61010a610105366004610547565b610276565b60405161006d919061057a565b5f5f821180156101585750825f81518110610134576101346105bc565b6020026020010151845f8151811061014e5761014e6105bc565b6020026020010151115b8015610197575082600181518110610172576101726105bc565b60200260200101518460018151811061018d5761018d6105bc565b6020026020010151115b1561026f575f835f815181106101af576101af6105bc565b6020026020010151855f815181106101c9576101c96105bc565b60200260200101516101db9190610616565b90505f846001815181106101f1576101f16105bc565b60200260200101518660018151811061020c5761020c6105bc565b602002602001015161021e9190610616565b905081811161026c575f8461023b83670de0b6b3a764000061062f565b6102459190610646565b7f000000000000000000000000000000000000000000000000000000000000000011159350505b50505b9392505050565b60408051600280825260608083018452926020830190803683370190505090508173ffffffffffffffffffffffffffffffffffffffff1663affed0e06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102df573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610303919061067e565b815f81518110610315576103156105bc565b60209081029190910101526040517f7af7347300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301527f00000000000000000000000000000000000000000000000000000000000000001690637af7347390602401602060405180830381865afa1580156103aa573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ce919061067e565b816001815181106103e1576103e16105bc565b602002602001018181525050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f83011261042e575f5ffd5b813567ffffffffffffffff811115610448576104486103f2565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811067ffffffffffffffff82111715610493576104936103f2565b6040529182526020818501810192908101868411156104b0575f5ffd5b6020860192505b838310156104cf5782358152602092830192016104b7565b5095945050505050565b5f5f5f606084860312156104eb575f5ffd5b833567ffffffffffffffff811115610501575f5ffd5b61050d8682870161041f565b935050602084013567ffffffffffffffff811115610529575f5ffd5b6105358682870161041f565b93969395505050506040919091013590565b5f60208284031215610557575f5ffd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461026f575f5ffd5b602080825282518282018190525f918401906040840190835b818110156105b1578351835260209384019390920191600101610593565b509095945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610629576106296105e9565b92915050565b8082028115828204841417610629576106296105e9565b5f82610679577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b5f6020828403121561068e575f5ffd5b505191905056fea264697066735822122074b29301db1025d7ed7f3ebeef7aaee8fcbbd74948b97fab996b5770677d17d464736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/abis/0.8.28/SingleMechActivityChecker.json b/abis/0.8.28/SingleMechActivityChecker.json new file mode 100644 index 0000000..9bdfaad --- /dev/null +++ b/abis/0.8.28/SingleMechActivityChecker.json @@ -0,0 +1,111 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "SingleMechActivityChecker", + "sourceName": "contracts/mech_usage/SingleMechActivityChecker.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_agentMech", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_livenessRatio", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "ZeroMechAgentAddress", + "type": "error" + }, + { + "inputs": [], + "name": "ZeroValue", + "type": "error" + }, + { + "inputs": [], + "name": "agentMech", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "multisig", + "type": "address" + } + ], + "name": "getMultisigNonces", + "outputs": [ + { + "internalType": "uint256[]", + "name": "nonces", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "curNonces", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "lastNonces", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "ts", + "type": "uint256" + } + ], + "name": "isRatioPass", + "outputs": [ + { + "internalType": "bool", + "name": "ratioPass", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "livenessRatio", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x60c060405234801561000f575f5ffd5b506040516107b93803806107b983398101604081905261002e9161008a565b80805f0361004f57604051637c946ed760e01b815260040160405180910390fd5b6080526001600160a01b0382166100785760405162ca95f960e81b815260040160405180910390fd5b506001600160a01b031660a0526100c1565b5f5f6040838503121561009b575f5ffd5b82516001600160a01b03811681146100b1575f5ffd5b6020939093015192949293505050565b60805160a0516106cb6100ee5f395f818160b0015261036501525f8181607b015261024701526106cb5ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c8063184023a51461004e578063592cf3fb1461007657806375af4b6d146100ab578063d564c4bf146100f7575b5f5ffd5b61006161005c3660046104d9565b610117565b60405190151581526020015b60405180910390f35b61009d7f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200161006d565b6100d27f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161006d565b61010a610105366004610547565b610276565b60405161006d919061057a565b5f5f821180156101585750825f81518110610134576101346105bc565b6020026020010151845f8151811061014e5761014e6105bc565b6020026020010151115b8015610197575082600181518110610172576101726105bc565b60200260200101518460018151811061018d5761018d6105bc565b6020026020010151115b1561026f575f835f815181106101af576101af6105bc565b6020026020010151855f815181106101c9576101c96105bc565b60200260200101516101db9190610616565b90505f846001815181106101f1576101f16105bc565b60200260200101518660018151811061020c5761020c6105bc565b602002602001015161021e9190610616565b905081811161026c575f8461023b83670de0b6b3a764000061062f565b6102459190610646565b7f000000000000000000000000000000000000000000000000000000000000000011159350505b50505b9392505050565b60408051600280825260608083018452926020830190803683370190505090508173ffffffffffffffffffffffffffffffffffffffff1663affed0e06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102df573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610303919061067e565b815f81518110610315576103156105bc565b60209081029190910101526040517f7af7347300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301527f00000000000000000000000000000000000000000000000000000000000000001690637af7347390602401602060405180830381865afa1580156103aa573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ce919061067e565b816001815181106103e1576103e16105bc565b602002602001018181525050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f83011261042e575f5ffd5b813567ffffffffffffffff811115610448576104486103f2565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811067ffffffffffffffff82111715610493576104936103f2565b6040529182526020818501810192908101868411156104b0575f5ffd5b6020860192505b838310156104cf5782358152602092830192016104b7565b5095945050505050565b5f5f5f606084860312156104eb575f5ffd5b833567ffffffffffffffff811115610501575f5ffd5b61050d8682870161041f565b935050602084013567ffffffffffffffff811115610529575f5ffd5b6105358682870161041f565b93969395505050506040919091013590565b5f60208284031215610557575f5ffd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461026f575f5ffd5b602080825282518282018190525f918401906040840190835b818110156105b1578351835260209384019390920191600101610593565b509095945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610629576106296105e9565b92915050565b8082028115828204841417610629576106296105e9565b5f82610679577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b5f6020828403121561068e575f5ffd5b505191905056fea2646970667358221220057345ac6a25ac32cc0d95415a11dc9a912df7d48c3601a7bcae867c41b12d5e64736f6c634300081c0033", + "deployedBytecode": "0x608060405234801561000f575f5ffd5b506004361061004a575f3560e01c8063184023a51461004e578063592cf3fb1461007657806375af4b6d146100ab578063d564c4bf146100f7575b5f5ffd5b61006161005c3660046104d9565b610117565b60405190151581526020015b60405180910390f35b61009d7f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200161006d565b6100d27f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161006d565b61010a610105366004610547565b610276565b60405161006d919061057a565b5f5f821180156101585750825f81518110610134576101346105bc565b6020026020010151845f8151811061014e5761014e6105bc565b6020026020010151115b8015610197575082600181518110610172576101726105bc565b60200260200101518460018151811061018d5761018d6105bc565b6020026020010151115b1561026f575f835f815181106101af576101af6105bc565b6020026020010151855f815181106101c9576101c96105bc565b60200260200101516101db9190610616565b90505f846001815181106101f1576101f16105bc565b60200260200101518660018151811061020c5761020c6105bc565b602002602001015161021e9190610616565b905081811161026c575f8461023b83670de0b6b3a764000061062f565b6102459190610646565b7f000000000000000000000000000000000000000000000000000000000000000011159350505b50505b9392505050565b60408051600280825260608083018452926020830190803683370190505090508173ffffffffffffffffffffffffffffffffffffffff1663affed0e06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102df573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610303919061067e565b815f81518110610315576103156105bc565b60209081029190910101526040517f7af7347300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301527f00000000000000000000000000000000000000000000000000000000000000001690637af7347390602401602060405180830381865afa1580156103aa573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ce919061067e565b816001815181106103e1576103e16105bc565b602002602001018181525050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f83011261042e575f5ffd5b813567ffffffffffffffff811115610448576104486103f2565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811067ffffffffffffffff82111715610493576104936103f2565b6040529182526020818501810192908101868411156104b0575f5ffd5b6020860192505b838310156104cf5782358152602092830192016104b7565b5095945050505050565b5f5f5f606084860312156104eb575f5ffd5b833567ffffffffffffffff811115610501575f5ffd5b61050d8682870161041f565b935050602084013567ffffffffffffffff811115610529575f5ffd5b6105358682870161041f565b93969395505050506040919091013590565b5f60208284031215610557575f5ffd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461026f575f5ffd5b602080825282518282018190525f918401906040840190835b818110156105b1578351835260209384019390920191600101610593565b509095945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610629576106296105e9565b92915050565b8082028115828204841417610629576106296105e9565b5f82610679577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b5f6020828403121561068e575f5ffd5b505191905056fea2646970667358221220057345ac6a25ac32cc0d95415a11dc9a912df7d48c3601a7bcae867c41b12d5e64736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/abis/0.8.28/StakingActivityChecker.json b/abis/0.8.28/StakingActivityChecker.json new file mode 100644 index 0000000..39dacd0 --- /dev/null +++ b/abis/0.8.28/StakingActivityChecker.json @@ -0,0 +1,88 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "StakingActivityChecker", + "sourceName": "lib/autonolas-registries/contracts/staking/StakingActivityChecker.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "_livenessRatio", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "ZeroValue", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "multisig", + "type": "address" + } + ], + "name": "getMultisigNonces", + "outputs": [ + { + "internalType": "uint256[]", + "name": "nonces", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "curNonces", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "lastNonces", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "ts", + "type": "uint256" + } + ], + "name": "isRatioPass", + "outputs": [ + { + "internalType": "bool", + "name": "ratioPass", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "livenessRatio", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x60a0604052348015600e575f5ffd5b506040516105a03803806105a0833981016040819052602b916051565b805f03604a57604051637c946ed760e01b815260040160405180910390fd5b6080526067565b5f602082840312156060575f5ffd5b5051919050565b60805161051b6100855f395f818160700152610164015261051b5ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c8063184023a514610043578063592cf3fb1461006b578063d564c4bf146100a0575b5f5ffd5b610056610051366004610329565b6100c0565b60405190151581526020015b60405180910390f35b6100927f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610062565b6100b36100ae366004610397565b610190565b60405161006291906103ca565b5f5f821180156101015750825f815181106100dd576100dd61040c565b6020026020010151845f815181106100f7576100f761040c565b6020026020010151115b15610189575f82845f8151811061011a5761011a61040c565b6020026020010151865f815181106101345761013461040c565b60200260200101516101469190610466565b61015890670de0b6b3a764000061047f565b6101629190610496565b7f000000000000000000000000000000000000000000000000000000000000000011159150505b9392505050565b604080516001808252818301909252606091602080830190803683370190505090508173ffffffffffffffffffffffffffffffffffffffff1663affed0e06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101fb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061021f91906104ce565b815f815181106102315761023161040c565b602002602001018181525050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f83011261027e575f5ffd5b813567ffffffffffffffff81111561029857610298610242565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811067ffffffffffffffff821117156102e3576102e3610242565b604052918252602081850181019290810186841115610300575f5ffd5b6020860192505b8383101561031f578235815260209283019201610307565b5095945050505050565b5f5f5f6060848603121561033b575f5ffd5b833567ffffffffffffffff811115610351575f5ffd5b61035d8682870161026f565b935050602084013567ffffffffffffffff811115610379575f5ffd5b6103858682870161026f565b93969395505050506040919091013590565b5f602082840312156103a7575f5ffd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610189575f5ffd5b602080825282518282018190525f918401906040840190835b818110156104015783518352602093840193909201916001016103e3565b509095945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8181038181111561047957610479610439565b92915050565b808202811582820484141761047957610479610439565b5f826104c9577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b5f602082840312156104de575f5ffd5b505191905056fea2646970667358221220a30295460a6ce48d2af339d2fd61f69438d5566faa21d93a1ee467371cf0658f64736f6c634300081c0033", + "deployedBytecode": "0x608060405234801561000f575f5ffd5b506004361061003f575f3560e01c8063184023a514610043578063592cf3fb1461006b578063d564c4bf146100a0575b5f5ffd5b610056610051366004610329565b6100c0565b60405190151581526020015b60405180910390f35b6100927f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610062565b6100b36100ae366004610397565b610190565b60405161006291906103ca565b5f5f821180156101015750825f815181106100dd576100dd61040c565b6020026020010151845f815181106100f7576100f761040c565b6020026020010151115b15610189575f82845f8151811061011a5761011a61040c565b6020026020010151865f815181106101345761013461040c565b60200260200101516101469190610466565b61015890670de0b6b3a764000061047f565b6101629190610496565b7f000000000000000000000000000000000000000000000000000000000000000011159150505b9392505050565b604080516001808252818301909252606091602080830190803683370190505090508173ffffffffffffffffffffffffffffffffffffffff1663affed0e06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101fb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061021f91906104ce565b815f815181106102315761023161040c565b602002602001018181525050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f83011261027e575f5ffd5b813567ffffffffffffffff81111561029857610298610242565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811067ffffffffffffffff821117156102e3576102e3610242565b604052918252602081850181019290810186841115610300575f5ffd5b6020860192505b8383101561031f578235815260209283019201610307565b5095945050505050565b5f5f5f6060848603121561033b575f5ffd5b833567ffffffffffffffff811115610351575f5ffd5b61035d8682870161026f565b935050602084013567ffffffffffffffff811115610379575f5ffd5b6103858682870161026f565b93969395505050506040919091013590565b5f602082840312156103a7575f5ffd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610189575f5ffd5b602080825282518282018190525f918401906040840190835b818110156104015783518352602093840193909201916001016103e3565b509095945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8181038181111561047957610479610439565b92915050565b808202811582820484141761047957610479610439565b5f826104c9577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b5f602082840312156104de575f5ffd5b505191905056fea2646970667358221220a30295460a6ce48d2af339d2fd61f69438d5566faa21d93a1ee467371cf0658f64736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} From 4c0c33d005cf64434bd21b15b7bbfd192a71fd37 Mon Sep 17 00:00:00 2001 From: Aleksandr Kuperman Date: Wed, 23 Oct 2024 20:02:26 +0100 Subject: [PATCH 22/25] chore: testnet re-deployment --- scripts/deployment/globals_base_sepolia.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/deployment/globals_base_sepolia.json b/scripts/deployment/globals_base_sepolia.json index b422fff..f7e7ac4 100644 --- a/scripts/deployment/globals_base_sepolia.json +++ b/scripts/deployment/globals_base_sepolia.json @@ -1 +1 @@ -{"contractVerification":true,"useLedger":false,"derivationPath":"m/44'/60'/2'/0/0","providerName":"baseSepolia","networkURL":"https://sepolia.base.org","gasPriceInGwei":"5","gnosisSafeAddress":"0x69f4D1788e39c87893C980c06EdF4b7f686e2938","gnosisSafeProxyFactoryAddress":"0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC","bridgeMediatorAddress":"0xeDd71796B90eaCc56B074C39BAC90ED2Ca6D93Ee","olasAddress":"0x54330d28ca3357F294334BDC454a032e7f353416","multisigProxyHash130":"0xb89c1b3bdf2cf8827818646bce9a8f6e372885f8c55e5c07acbd307cb133b000","serviceRegistryAddress":"0x31D3202d8744B16A120117A053459DDFAE93c855","serviceRegistryTokenUtilityAddress":"0xeB49bE5DF00F74bd240DE4535DDe6Bc89CEfb994","serviceManagerTokenAddress":"0x5BA58970c2Ae16Cf6218783018100aF2dCcFc915","gnosisSafeMultisigImplementationAddress":"0x19936159B528C66750992C3cBcEd2e71cF4E4824","gnosisSafeSameAddressMultisigImplementationAddress":"0x10100e74b7F706222F8A7C0be9FC7Ae1717Ad8B2","fallbackHandlerAddress":"0x017062a1dE2FE6b99BE3d9d37841FeD19F573804","stakingFactoryAddress":"0x1cEe30D08943EB58EFF84DD1AB44a6ee6FEff63a","agentId":"6","configHash":"0xb89c1b3bdf2cf8827818646bce9a8f6e372885f8c55e5c07acbd307cb133b000","livenessRatio":"700000000000000","contributorsAddress":"0x0A99582559fd1a13F1910687Dd102cF4C50a6EEE","contributorsProxyAddress":"0x118173028162C1b7c6Bf8488bd5dA2abd7c30F9D","contributeManagerAddress":"0x131b5551c81e9B3E89E9ACE30A5B3D45144E3e42","contributeActivityCheckerAddress":"0xE16adc7777B7C2a0d35033bd3504C028AB28EE8b"} \ No newline at end of file +{"contractVerification":true,"useLedger":false,"derivationPath":"m/44'/60'/2'/0/0","providerName":"baseSepolia","networkURL":"https://sepolia.base.org","gasPriceInGwei":"5","gnosisSafeAddress":"0x69f4D1788e39c87893C980c06EdF4b7f686e2938","gnosisSafeProxyFactoryAddress":"0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC","bridgeMediatorAddress":"0xeDd71796B90eaCc56B074C39BAC90ED2Ca6D93Ee","olasAddress":"0x54330d28ca3357F294334BDC454a032e7f353416","multisigProxyHash130":"0xb89c1b3bdf2cf8827818646bce9a8f6e372885f8c55e5c07acbd307cb133b000","serviceRegistryAddress":"0x31D3202d8744B16A120117A053459DDFAE93c855","serviceRegistryTokenUtilityAddress":"0xeB49bE5DF00F74bd240DE4535DDe6Bc89CEfb994","serviceManagerTokenAddress":"0x5BA58970c2Ae16Cf6218783018100aF2dCcFc915","gnosisSafeMultisigImplementationAddress":"0x19936159B528C66750992C3cBcEd2e71cF4E4824","gnosisSafeSameAddressMultisigImplementationAddress":"0x10100e74b7F706222F8A7C0be9FC7Ae1717Ad8B2","fallbackHandlerAddress":"0x017062a1dE2FE6b99BE3d9d37841FeD19F573804","stakingFactoryAddress":"0x1cEe30D08943EB58EFF84DD1AB44a6ee6FEff63a","agentId":"6","configHash":"0xb89c1b3bdf2cf8827818646bce9a8f6e372885f8c55e5c07acbd307cb133b000","livenessRatio":"700000000000000","contributorsAddress":"0xadBBC3FE82836366Bb178Fd210d4dd915e9B3415","contributeActivityCheckerAddress":"0x4cEB52802ef86edF8796632546d89e55c87a0901","contributorsProxyAddress":"0xd6AA4Ec948d84f6Db8EEf25104CeE0Ecd280C74e","contributeManagerAddress":"0x95dA0F8C3eC5D40209f0EF1ED5E61deD28307d8d"} \ No newline at end of file From b57872f276e658eada6580046509fd0985b945ac Mon Sep 17 00:00:00 2001 From: Aleksandr Kuperman Date: Thu, 24 Oct 2024 10:41:56 +0100 Subject: [PATCH 23/25] doc: update contribute flowchart --- README.md | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index b26356f..e4b6f83 100644 --- a/README.md +++ b/README.md @@ -73,23 +73,32 @@ The audit is provided as development matures. The latest audit report can be fou ## Contribute Architecture ```mermaid +--- +title: Contribute Architecture +--- flowchart LR - Deployer -- deploy --> Contributors - Deployer -- deploy --> ContributorsProxy - Deployer -- deploy --> ContributeManager - Deployer -- deploy --> ContributeActivityChecker - Deployer -- changeManager --> ContributorsProxy --> Contributors - Deployer -- setContributeAgentStatuses --> ContributorsProxy - Deployer -- changeOwner --> ContributorsProxy - User -- createAndStake --> ContributeManager -- setServiceInfoForId --> ContributorsProxy + DAO -- changeManager --> ContributorsProxy + DAO -- setContributeAgentStatuses --> ContributorsProxy + DAO -- changeOwner --> ContributorsProxy + User -- createAndStake --> ContributeManager User -- stake --> ContributeManager User -- unstake --> ContributeManager User -- claim --> ContributeManager - User -- checkpoint --> StakingInstance -- getNonces --> ContributeActivityChecker -- mapMutisigActivities --> ContributorsProxy + User -- checkpoint --> StakingInstance -- getNonces --> ContributeActivityChecker ContributeManager -- mint --> StakingRegistryL2 ContributeManager -- stake --> StakingInstance ContributeManager -- unstake --> StakingInstance - Agent -- increaseActivity --> ContributorsProxy + ContributeManager -- claim --> StakingInstance + subgraph Service registry contracts + StakingInstance + StakingRegistryL2 + end + subgraph Contribute contracts + ContributeService -- increaseActivity --> ContributorsProxy + ContributorsProxy -- delegatecall --> Contributors + ContributeManager -- setServiceInfoForId --> ContributorsProxy + ContributeActivityChecker -- mapMutisigActivities --> ContributorsProxy + end ``` ## Acknowledgements From 7bd49bb6c5d9020fccc52e235f814c73184d8195 Mon Sep 17 00:00:00 2001 From: Aleksandr Kuperman Date: Thu, 24 Oct 2024 10:47:23 +0100 Subject: [PATCH 24/25] doc: update contribute flowchart --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e4b6f83..ae2ce74 100644 --- a/README.md +++ b/README.md @@ -85,7 +85,9 @@ flowchart LR User -- unstake --> ContributeManager User -- claim --> ContributeManager User -- checkpoint --> StakingInstance -- getNonces --> ContributeActivityChecker - ContributeManager -- mint --> StakingRegistryL2 + User -- approve --> OLAS + ContributeManager -- create --> StakingRegistryL2 + StakingRegistryL2 -- mint --> ERC721 ContributeManager -- stake --> StakingInstance ContributeManager -- unstake --> StakingInstance ContributeManager -- claim --> StakingInstance From 011463cde668e18197297c5653b2b7f1b4f461c0 Mon Sep 17 00:00:00 2001 From: Aleksandr Kuperman Date: Thu, 24 Oct 2024 13:21:54 +0100 Subject: [PATCH 25/25] test: next to full coverage --- README.md | 4 +- abis/0.8.28/Contributors.json | 14 +- contracts/contribute/Contributors.sol | 30 +-- test/StakingContribute.js | 324 +++++++++++++++++++++++++- 4 files changed, 341 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index ae2ce74..2081465 100644 --- a/README.md +++ b/README.md @@ -78,13 +78,13 @@ title: Contribute Architecture --- flowchart LR DAO -- changeManager --> ContributorsProxy - DAO -- setContributeAgentStatuses --> ContributorsProxy + DAO -- setContributeServiceStatuses --> ContributorsProxy DAO -- changeOwner --> ContributorsProxy User -- createAndStake --> ContributeManager User -- stake --> ContributeManager User -- unstake --> ContributeManager User -- claim --> ContributeManager - User -- checkpoint --> StakingInstance -- getNonces --> ContributeActivityChecker + ContributeService -- checkpoint --> StakingInstance -- getNonces --> ContributeActivityChecker User -- approve --> OLAS ContributeManager -- create --> StakingRegistryL2 StakingRegistryL2 -- mint --> ERC721 diff --git a/abis/0.8.28/Contributors.json b/abis/0.8.28/Contributors.json index d226556..3230ddf 100644 --- a/abis/0.8.28/Contributors.json +++ b/abis/0.8.28/Contributors.json @@ -21,7 +21,7 @@ "type": "address" } ], - "name": "OnlyManager", + "name": "ManagerOnly", "type": "error" }, { @@ -142,7 +142,7 @@ { "indexed": false, "internalType": "address[]", - "name": "contributeAgents", + "name": "contributeServices", "type": "address[]" }, { @@ -152,7 +152,7 @@ "type": "bool[]" } ], - "name": "SetContributeAgentStatuses", + "name": "SetContributeServiceStatuses", "type": "event" }, { @@ -384,7 +384,7 @@ "inputs": [ { "internalType": "address[]", - "name": "contributeAgents", + "name": "contributeServices", "type": "address[]" }, { @@ -393,7 +393,7 @@ "type": "bool[]" } ], - "name": "setContributeAgentStatuses", + "name": "setContributeServiceStatuses", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -432,8 +432,8 @@ "type": "function" } ], - "bytecode": "0x6080604052348015600e575f5ffd5b506110f08061001c5f395ff3fe608060405234801561000f575f5ffd5b50600436106100e5575f3560e01c80638129fc1c11610088578063a3fbbaae11610063578063a3fbbaae146102a6578063a6f9dae1146102b9578063d7831072146102cc578063ffa1ad74146102df575f5ffd5b80638129fc1c146101f45780638b494a39146101fc5780638da5cb5b14610287575f5ffd5b8063481c6a75116100c3578063481c6a751461014b5780634990408f146101905780635078690b146101af5780636859d1d8146101c2575f5ffd5b806317a68dd8146100e95780633db25aab146100fe57806341c952a414610138575b5f5ffd5b6100fc6100f7366004610c08565b610328565b005b6101257f8f33b4c48c4f3159dc130f2111086160da6c94439c147bd337ecee0aa81518c781565b6040519081526020015b60405180910390f35b6100fc610146366004610d38565b610452565b60015461016b9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161012f565b61012561019e366004610c08565b60036020525f908152604090205481565b6100fc6101bd366004610df6565b6105cf565b6101e46101d0366004610c08565b60046020525f908152604090205460ff1681565b604051901515815260200161012f565b6100fc6106fd565b61024b61020a366004610c08565b600260208190525f9182526040909120805460018201549282015460039092015490929173ffffffffffffffffffffffffffffffffffffffff908116911684565b60408051948552602085019390935273ffffffffffffffffffffffffffffffffffffffff9182169284019290925216606082015260800161012f565b5f5461016b9073ffffffffffffffffffffffffffffffffffffffff1681565b6100fc6102b4366004610c08565b610777565b6100fc6102c7366004610c08565b6108a3565b6100fc6102da366004610e49565b6109cd565b61031b6040518060400160405280600581526020017f312e302e3000000000000000000000000000000000000000000000000000000081525081565b60405161012f9190610f06565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461039e575f546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff90911660248201526044015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81166103eb576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f8f33b4c48c4f3159dc130f2111086160da6c94439c147bd337ecee0aa81518c781905560405173ffffffffffffffffffffffffffffffffffffffff8216907f310ba5f1d2ed074b51e2eccd052a47ae9ab7c6b800d1fca3db3999d6a592ca03905f90a250565b335f9081526004602052604090205460ff1661049c576040517f32b2baa3000000000000000000000000000000000000000000000000000000008152336004820152602401610395565b80518251146104e457815181516040517f8151c11000000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610395565b5f5b825181101561057a5781818151811061050157610501610f59565b602002602001015160035f85848151811061051e5761051e610f59565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461056d9190610f86565b90915550506001016104e6565b503373ffffffffffffffffffffffffffffffffffffffff167fa979bfa637f10d403f5b074e0ee52626618f5969e71d33fa0f5daf0caa22065683836040516105c3929190611014565b60405180910390a25050565b60015473ffffffffffffffffffffffffffffffffffffffff163314610642576001546040517f59c8c6cc00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9091166024820152604401610395565b73ffffffffffffffffffffffffffffffffffffffff8581165f818152600260208181526040928390208981556001810189905591820180548887167fffffffffffffffffffffffff000000000000000000000000000000000000000091821681179092556003840180549789169790911687179055835190815290810194909452928692889290917f2c50df9a1dea57a91edc18dc7b7d135675e66bca942cb9ab6009bc7647f09c64910160405180910390a4505050505050565b5f5473ffffffffffffffffffffffffffffffffffffffff161561074c576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146107e8575f546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9091166024820152604401610395565b73ffffffffffffffffffffffffffffffffffffffff8116610835576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f2c1c11af44aa5608f1dca38c00275c30ea091e02417d36e70e9a1538689c433d905f90a250565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610914575f546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9091166024820152604401610395565b73ffffffffffffffffffffffffffffffffffffffff8116610961576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117825560405190917f4ffd725fc4a22075e9ec71c59edf9c38cdeb588a91b24fc5b61388c5be41282b91a250565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610a3e575f546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9091166024820152604401610395565b8051825114610a8657815181516040517f8151c11000000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610395565b5f5b8251811015610ba2575f73ffffffffffffffffffffffffffffffffffffffff16838281518110610aba57610aba610f59565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1603610b0f576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818181518110610b2157610b21610f59565b602002602001015160045f858481518110610b3e57610b3e610f59565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff1682528101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101610a88565b507ff8883c5b3d29b436411eaabf250a87533e54aedaa97bf4968077574532fad3cd8282604051610bd492919061106c565b60405180910390a15050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610c03575f5ffd5b919050565b5f60208284031215610c18575f5ffd5b610c2182610be0565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610c9c57610c9c610c28565b604052919050565b5f67ffffffffffffffff821115610cbd57610cbd610c28565b5060051b60200190565b5f82601f830112610cd6575f5ffd5b8135610ce9610ce482610ca4565b610c55565b8082825260208201915060208360051b860101925085831115610d0a575f5ffd5b602085015b83811015610d2e57610d2081610be0565b835260209283019201610d0f565b5095945050505050565b5f5f60408385031215610d49575f5ffd5b823567ffffffffffffffff811115610d5f575f5ffd5b610d6b85828601610cc7565b925050602083013567ffffffffffffffff811115610d87575f5ffd5b8301601f81018513610d97575f5ffd5b8035610da5610ce482610ca4565b8082825260208201915060208360051b850101925087831115610dc6575f5ffd5b6020840193505b82841015610de8578335825260209384019390910190610dcd565b809450505050509250929050565b5f5f5f5f5f60a08688031215610e0a575f5ffd5b610e1386610be0565b94506020860135935060408601359250610e2f60608701610be0565b9150610e3d60808701610be0565b90509295509295909350565b5f5f60408385031215610e5a575f5ffd5b823567ffffffffffffffff811115610e70575f5ffd5b610e7c85828601610cc7565b925050602083013567ffffffffffffffff811115610e98575f5ffd5b8301601f81018513610ea8575f5ffd5b8035610eb6610ce482610ca4565b8082825260208201915060208360051b850101925087831115610ed7575f5ffd5b6020840193505b82841015610de85783358015158114610ef5575f5ffd5b825260209384019390910190610ede565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b80820180821115610fbe577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b92915050565b5f8151808452602084019350602083015f5b8281101561100a57815173ffffffffffffffffffffffffffffffffffffffff16865260209586019590910190600101610fd6565b5093949350505050565b604081525f6110266040830185610fc4565b82810360208401528084518083526020830191506020860192505f5b81811015611060578351835260209384019390920191600101611042565b50909695505050505050565b604081525f61107e6040830185610fc4565b82810360208401528084518083526020830191506020860192505f5b81811015611060578351151583526020938401939092019160010161109a56fea2646970667358221220a6bfff76c5ba6d51d6238eb8a3f8213209d48b27f144415147c96c325006fcc064736f6c634300081c0033", - "deployedBytecode": "0x608060405234801561000f575f5ffd5b50600436106100e5575f3560e01c80638129fc1c11610088578063a3fbbaae11610063578063a3fbbaae146102a6578063a6f9dae1146102b9578063d7831072146102cc578063ffa1ad74146102df575f5ffd5b80638129fc1c146101f45780638b494a39146101fc5780638da5cb5b14610287575f5ffd5b8063481c6a75116100c3578063481c6a751461014b5780634990408f146101905780635078690b146101af5780636859d1d8146101c2575f5ffd5b806317a68dd8146100e95780633db25aab146100fe57806341c952a414610138575b5f5ffd5b6100fc6100f7366004610c08565b610328565b005b6101257f8f33b4c48c4f3159dc130f2111086160da6c94439c147bd337ecee0aa81518c781565b6040519081526020015b60405180910390f35b6100fc610146366004610d38565b610452565b60015461016b9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161012f565b61012561019e366004610c08565b60036020525f908152604090205481565b6100fc6101bd366004610df6565b6105cf565b6101e46101d0366004610c08565b60046020525f908152604090205460ff1681565b604051901515815260200161012f565b6100fc6106fd565b61024b61020a366004610c08565b600260208190525f9182526040909120805460018201549282015460039092015490929173ffffffffffffffffffffffffffffffffffffffff908116911684565b60408051948552602085019390935273ffffffffffffffffffffffffffffffffffffffff9182169284019290925216606082015260800161012f565b5f5461016b9073ffffffffffffffffffffffffffffffffffffffff1681565b6100fc6102b4366004610c08565b610777565b6100fc6102c7366004610c08565b6108a3565b6100fc6102da366004610e49565b6109cd565b61031b6040518060400160405280600581526020017f312e302e3000000000000000000000000000000000000000000000000000000081525081565b60405161012f9190610f06565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461039e575f546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff90911660248201526044015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81166103eb576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f8f33b4c48c4f3159dc130f2111086160da6c94439c147bd337ecee0aa81518c781905560405173ffffffffffffffffffffffffffffffffffffffff8216907f310ba5f1d2ed074b51e2eccd052a47ae9ab7c6b800d1fca3db3999d6a592ca03905f90a250565b335f9081526004602052604090205460ff1661049c576040517f32b2baa3000000000000000000000000000000000000000000000000000000008152336004820152602401610395565b80518251146104e457815181516040517f8151c11000000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610395565b5f5b825181101561057a5781818151811061050157610501610f59565b602002602001015160035f85848151811061051e5761051e610f59565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461056d9190610f86565b90915550506001016104e6565b503373ffffffffffffffffffffffffffffffffffffffff167fa979bfa637f10d403f5b074e0ee52626618f5969e71d33fa0f5daf0caa22065683836040516105c3929190611014565b60405180910390a25050565b60015473ffffffffffffffffffffffffffffffffffffffff163314610642576001546040517f59c8c6cc00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9091166024820152604401610395565b73ffffffffffffffffffffffffffffffffffffffff8581165f818152600260208181526040928390208981556001810189905591820180548887167fffffffffffffffffffffffff000000000000000000000000000000000000000091821681179092556003840180549789169790911687179055835190815290810194909452928692889290917f2c50df9a1dea57a91edc18dc7b7d135675e66bca942cb9ab6009bc7647f09c64910160405180910390a4505050505050565b5f5473ffffffffffffffffffffffffffffffffffffffff161561074c576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146107e8575f546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9091166024820152604401610395565b73ffffffffffffffffffffffffffffffffffffffff8116610835576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f2c1c11af44aa5608f1dca38c00275c30ea091e02417d36e70e9a1538689c433d905f90a250565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610914575f546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9091166024820152604401610395565b73ffffffffffffffffffffffffffffffffffffffff8116610961576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117825560405190917f4ffd725fc4a22075e9ec71c59edf9c38cdeb588a91b24fc5b61388c5be41282b91a250565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610a3e575f546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9091166024820152604401610395565b8051825114610a8657815181516040517f8151c11000000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610395565b5f5b8251811015610ba2575f73ffffffffffffffffffffffffffffffffffffffff16838281518110610aba57610aba610f59565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1603610b0f576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818181518110610b2157610b21610f59565b602002602001015160045f858481518110610b3e57610b3e610f59565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff1682528101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101610a88565b507ff8883c5b3d29b436411eaabf250a87533e54aedaa97bf4968077574532fad3cd8282604051610bd492919061106c565b60405180910390a15050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610c03575f5ffd5b919050565b5f60208284031215610c18575f5ffd5b610c2182610be0565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610c9c57610c9c610c28565b604052919050565b5f67ffffffffffffffff821115610cbd57610cbd610c28565b5060051b60200190565b5f82601f830112610cd6575f5ffd5b8135610ce9610ce482610ca4565b610c55565b8082825260208201915060208360051b860101925085831115610d0a575f5ffd5b602085015b83811015610d2e57610d2081610be0565b835260209283019201610d0f565b5095945050505050565b5f5f60408385031215610d49575f5ffd5b823567ffffffffffffffff811115610d5f575f5ffd5b610d6b85828601610cc7565b925050602083013567ffffffffffffffff811115610d87575f5ffd5b8301601f81018513610d97575f5ffd5b8035610da5610ce482610ca4565b8082825260208201915060208360051b850101925087831115610dc6575f5ffd5b6020840193505b82841015610de8578335825260209384019390910190610dcd565b809450505050509250929050565b5f5f5f5f5f60a08688031215610e0a575f5ffd5b610e1386610be0565b94506020860135935060408601359250610e2f60608701610be0565b9150610e3d60808701610be0565b90509295509295909350565b5f5f60408385031215610e5a575f5ffd5b823567ffffffffffffffff811115610e70575f5ffd5b610e7c85828601610cc7565b925050602083013567ffffffffffffffff811115610e98575f5ffd5b8301601f81018513610ea8575f5ffd5b8035610eb6610ce482610ca4565b8082825260208201915060208360051b850101925087831115610ed7575f5ffd5b6020840193505b82841015610de85783358015158114610ef5575f5ffd5b825260209384019390910190610ede565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b80820180821115610fbe577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b92915050565b5f8151808452602084019350602083015f5b8281101561100a57815173ffffffffffffffffffffffffffffffffffffffff16865260209586019590910190600101610fd6565b5093949350505050565b604081525f6110266040830185610fc4565b82810360208401528084518083526020830191506020860192505f5b81811015611060578351835260209384019390920191600101611042565b50909695505050505050565b604081525f61107e6040830185610fc4565b82810360208401528084518083526020830191506020860192505f5b81811015611060578351151583526020938401939092019160010161109a56fea2646970667358221220a6bfff76c5ba6d51d6238eb8a3f8213209d48b27f144415147c96c325006fcc064736f6c634300081c0033", + "bytecode": "0x6080604052348015600e575f5ffd5b506111088061001c5f395ff3fe608060405234801561000f575f5ffd5b50600436106100e5575f3560e01c80636859d1d8116100885780638da5cb5b116100635780638da5cb5b1461029a578063a3fbbaae146102b9578063a6f9dae1146102cc578063ffa1ad74146102df575f5ffd5b80636859d1d8146101d55780638129fc1c146102075780638b494a391461020f575f5ffd5b806341c952a4116100c357806341c952a41461014b578063481c6a751461015e5780634990408f146101a35780635078690b146101c2575f5ffd5b80630223b1dc146100e957806317a68dd8146100fe5780633db25aab14610111575b5f5ffd5b6100fc6100f7366004610d30565b610328565b005b6100fc61010c366004610dfb565b61054c565b6101387f8f33b4c48c4f3159dc130f2111086160da6c94439c147bd337ecee0aa81518c781565b6040519081526020015b60405180910390f35b6100fc610159366004610e1b565b610671565b60015461017e9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610142565b6101386101b1366004610dfb565b60036020525f908152604090205481565b6100fc6101d0366004610ecb565b6107fa565b6101f76101e3366004610dfb565b60046020525f908152604090205460ff1681565b6040519015158152602001610142565b6100fc610928565b61025e61021d366004610dfb565b600260208190525f9182526040909120805460018201549282015460039092015490929173ffffffffffffffffffffffffffffffffffffffff908116911684565b60408051948552602085019390935273ffffffffffffffffffffffffffffffffffffffff91821692840192909252166060820152608001610142565b5f5461017e9073ffffffffffffffffffffffffffffffffffffffff1681565b6100fc6102c7366004610dfb565b6109a2565b6100fc6102da366004610dfb565b610ace565b61031b6040518060400160405280600581526020017f312e302e3000000000000000000000000000000000000000000000000000000081525081565b6040516101429190610f1e565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461039e575f546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff90911660248201526044015b60405180910390fd5b815115806103ae57508051825114155b156103f257815181516040517f8151c11000000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610395565b5f5b825181101561050e575f73ffffffffffffffffffffffffffffffffffffffff1683828151811061042657610426610f71565b602002602001015173ffffffffffffffffffffffffffffffffffffffff160361047b576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81818151811061048d5761048d610f71565b602002602001015160045f8584815181106104aa576104aa610f71565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff1682528101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790556001016103f4565b507fafc178bdde9ecf8a42dd2be4f8ac43dd8f06ab6909716d130d9e8d1d9688d1078282604051610540929190610fee565b60405180910390a15050565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146105bd575f546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9091166024820152604401610395565b73ffffffffffffffffffffffffffffffffffffffff811661060a576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f8f33b4c48c4f3159dc130f2111086160da6c94439c147bd337ecee0aa81518c781905560405173ffffffffffffffffffffffffffffffffffffffff8216907f310ba5f1d2ed074b51e2eccd052a47ae9ab7c6b800d1fca3db3999d6a592ca03905f90a250565b335f9081526004602052604090205460ff166106bb576040517f32b2baa3000000000000000000000000000000000000000000000000000000008152336004820152602401610395565b815115806106cb57508051825114155b1561070f57815181516040517f8151c11000000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610395565b5f5b82518110156107a55781818151811061072c5761072c610f71565b602002602001015160035f85848151811061074957610749610f71565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546107989190611048565b9091555050600101610711565b503373ffffffffffffffffffffffffffffffffffffffff167fa979bfa637f10d403f5b074e0ee52626618f5969e71d33fa0f5daf0caa22065683836040516107ee929190611086565b60405180910390a25050565b60015473ffffffffffffffffffffffffffffffffffffffff16331461086d576001546040517f625a43fe00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9091166024820152604401610395565b73ffffffffffffffffffffffffffffffffffffffff8581165f818152600260208181526040928390208981556001810189905591820180548887167fffffffffffffffffffffffff000000000000000000000000000000000000000091821681179092556003840180549789169790911687179055835190815290810194909452928692889290917f2c50df9a1dea57a91edc18dc7b7d135675e66bca942cb9ab6009bc7647f09c64910160405180910390a4505050505050565b5f5473ffffffffffffffffffffffffffffffffffffffff1615610977576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610a13575f546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9091166024820152604401610395565b73ffffffffffffffffffffffffffffffffffffffff8116610a60576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f2c1c11af44aa5608f1dca38c00275c30ea091e02417d36e70e9a1538689c433d905f90a250565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610b3f575f546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9091166024820152604401610395565b73ffffffffffffffffffffffffffffffffffffffff8116610b8c576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117825560405190917f4ffd725fc4a22075e9ec71c59edf9c38cdeb588a91b24fc5b61388c5be41282b91a250565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610c6c57610c6c610bf8565b604052919050565b5f67ffffffffffffffff821115610c8d57610c8d610bf8565b5060051b60200190565b803573ffffffffffffffffffffffffffffffffffffffff81168114610cba575f5ffd5b919050565b5f82601f830112610cce575f5ffd5b8135610ce1610cdc82610c74565b610c25565b8082825260208201915060208360051b860101925085831115610d02575f5ffd5b602085015b83811015610d2657610d1881610c97565b835260209283019201610d07565b5095945050505050565b5f5f60408385031215610d41575f5ffd5b823567ffffffffffffffff811115610d57575f5ffd5b610d6385828601610cbf565b925050602083013567ffffffffffffffff811115610d7f575f5ffd5b8301601f81018513610d8f575f5ffd5b8035610d9d610cdc82610c74565b8082825260208201915060208360051b850101925087831115610dbe575f5ffd5b6020840193505b82841015610ded5783358015158114610ddc575f5ffd5b825260209384019390910190610dc5565b809450505050509250929050565b5f60208284031215610e0b575f5ffd5b610e1482610c97565b9392505050565b5f5f60408385031215610e2c575f5ffd5b823567ffffffffffffffff811115610e42575f5ffd5b610e4e85828601610cbf565b925050602083013567ffffffffffffffff811115610e6a575f5ffd5b8301601f81018513610e7a575f5ffd5b8035610e88610cdc82610c74565b8082825260208201915060208360051b850101925087831115610ea9575f5ffd5b6020840193505b82841015610ded578335825260209384019390910190610eb0565b5f5f5f5f5f60a08688031215610edf575f5ffd5b610ee886610c97565b94506020860135935060408601359250610f0460608701610c97565b9150610f1260808701610c97565b90509295509295909350565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151808452602084019350602083015f5b82811015610fe457815173ffffffffffffffffffffffffffffffffffffffff16865260209586019590910190600101610fb0565b5093949350505050565b604081525f6110006040830185610f9e565b82810360208401528084518083526020830191506020860192505f5b8181101561103c578351151583526020938401939092019160010161101c565b50909695505050505050565b80820180821115611080577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b92915050565b604081525f6110986040830185610f9e565b82810360208401528084518083526020830191506020860192505f5b8181101561103c5783518352602093840193909201916001016110b456fea2646970667358221220aa4b096d4c82cdef343b82e1bb0e47ef78e32e9a2e77460363bc4172cbf4f92764736f6c634300081c0033", + "deployedBytecode": "0x608060405234801561000f575f5ffd5b50600436106100e5575f3560e01c80636859d1d8116100885780638da5cb5b116100635780638da5cb5b1461029a578063a3fbbaae146102b9578063a6f9dae1146102cc578063ffa1ad74146102df575f5ffd5b80636859d1d8146101d55780638129fc1c146102075780638b494a391461020f575f5ffd5b806341c952a4116100c357806341c952a41461014b578063481c6a751461015e5780634990408f146101a35780635078690b146101c2575f5ffd5b80630223b1dc146100e957806317a68dd8146100fe5780633db25aab14610111575b5f5ffd5b6100fc6100f7366004610d30565b610328565b005b6100fc61010c366004610dfb565b61054c565b6101387f8f33b4c48c4f3159dc130f2111086160da6c94439c147bd337ecee0aa81518c781565b6040519081526020015b60405180910390f35b6100fc610159366004610e1b565b610671565b60015461017e9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610142565b6101386101b1366004610dfb565b60036020525f908152604090205481565b6100fc6101d0366004610ecb565b6107fa565b6101f76101e3366004610dfb565b60046020525f908152604090205460ff1681565b6040519015158152602001610142565b6100fc610928565b61025e61021d366004610dfb565b600260208190525f9182526040909120805460018201549282015460039092015490929173ffffffffffffffffffffffffffffffffffffffff908116911684565b60408051948552602085019390935273ffffffffffffffffffffffffffffffffffffffff91821692840192909252166060820152608001610142565b5f5461017e9073ffffffffffffffffffffffffffffffffffffffff1681565b6100fc6102c7366004610dfb565b6109a2565b6100fc6102da366004610dfb565b610ace565b61031b6040518060400160405280600581526020017f312e302e3000000000000000000000000000000000000000000000000000000081525081565b6040516101429190610f1e565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461039e575f546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff90911660248201526044015b60405180910390fd5b815115806103ae57508051825114155b156103f257815181516040517f8151c11000000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610395565b5f5b825181101561050e575f73ffffffffffffffffffffffffffffffffffffffff1683828151811061042657610426610f71565b602002602001015173ffffffffffffffffffffffffffffffffffffffff160361047b576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81818151811061048d5761048d610f71565b602002602001015160045f8584815181106104aa576104aa610f71565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff1682528101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790556001016103f4565b507fafc178bdde9ecf8a42dd2be4f8ac43dd8f06ab6909716d130d9e8d1d9688d1078282604051610540929190610fee565b60405180910390a15050565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146105bd575f546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9091166024820152604401610395565b73ffffffffffffffffffffffffffffffffffffffff811661060a576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f8f33b4c48c4f3159dc130f2111086160da6c94439c147bd337ecee0aa81518c781905560405173ffffffffffffffffffffffffffffffffffffffff8216907f310ba5f1d2ed074b51e2eccd052a47ae9ab7c6b800d1fca3db3999d6a592ca03905f90a250565b335f9081526004602052604090205460ff166106bb576040517f32b2baa3000000000000000000000000000000000000000000000000000000008152336004820152602401610395565b815115806106cb57508051825114155b1561070f57815181516040517f8151c11000000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610395565b5f5b82518110156107a55781818151811061072c5761072c610f71565b602002602001015160035f85848151811061074957610749610f71565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546107989190611048565b9091555050600101610711565b503373ffffffffffffffffffffffffffffffffffffffff167fa979bfa637f10d403f5b074e0ee52626618f5969e71d33fa0f5daf0caa22065683836040516107ee929190611086565b60405180910390a25050565b60015473ffffffffffffffffffffffffffffffffffffffff16331461086d576001546040517f625a43fe00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9091166024820152604401610395565b73ffffffffffffffffffffffffffffffffffffffff8581165f818152600260208181526040928390208981556001810189905591820180548887167fffffffffffffffffffffffff000000000000000000000000000000000000000091821681179092556003840180549789169790911687179055835190815290810194909452928692889290917f2c50df9a1dea57a91edc18dc7b7d135675e66bca942cb9ab6009bc7647f09c64910160405180910390a4505050505050565b5f5473ffffffffffffffffffffffffffffffffffffffff1615610977576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610a13575f546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9091166024820152604401610395565b73ffffffffffffffffffffffffffffffffffffffff8116610a60576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f2c1c11af44aa5608f1dca38c00275c30ea091e02417d36e70e9a1538689c433d905f90a250565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610b3f575f546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9091166024820152604401610395565b73ffffffffffffffffffffffffffffffffffffffff8116610b8c576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117825560405190917f4ffd725fc4a22075e9ec71c59edf9c38cdeb588a91b24fc5b61388c5be41282b91a250565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610c6c57610c6c610bf8565b604052919050565b5f67ffffffffffffffff821115610c8d57610c8d610bf8565b5060051b60200190565b803573ffffffffffffffffffffffffffffffffffffffff81168114610cba575f5ffd5b919050565b5f82601f830112610cce575f5ffd5b8135610ce1610cdc82610c74565b610c25565b8082825260208201915060208360051b860101925085831115610d02575f5ffd5b602085015b83811015610d2657610d1881610c97565b835260209283019201610d07565b5095945050505050565b5f5f60408385031215610d41575f5ffd5b823567ffffffffffffffff811115610d57575f5ffd5b610d6385828601610cbf565b925050602083013567ffffffffffffffff811115610d7f575f5ffd5b8301601f81018513610d8f575f5ffd5b8035610d9d610cdc82610c74565b8082825260208201915060208360051b850101925087831115610dbe575f5ffd5b6020840193505b82841015610ded5783358015158114610ddc575f5ffd5b825260209384019390910190610dc5565b809450505050509250929050565b5f60208284031215610e0b575f5ffd5b610e1482610c97565b9392505050565b5f5f60408385031215610e2c575f5ffd5b823567ffffffffffffffff811115610e42575f5ffd5b610e4e85828601610cbf565b925050602083013567ffffffffffffffff811115610e6a575f5ffd5b8301601f81018513610e7a575f5ffd5b8035610e88610cdc82610c74565b8082825260208201915060208360051b850101925087831115610ea9575f5ffd5b6020840193505b82841015610ded578335825260209384019390910190610eb0565b5f5f5f5f5f60a08688031215610edf575f5ffd5b610ee886610c97565b94506020860135935060408601359250610f0460608701610c97565b9150610f1260808701610c97565b90509295509295909350565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151808452602084019350602083015f5b82811015610fe457815173ffffffffffffffffffffffffffffffffffffffff16865260209586019590910190600101610fb0565b5093949350505050565b604081525f6110006040830185610f9e565b82810360208401528084518083526020830191506020860192505f5b8181101561103c578351151583526020938401939092019160010161101c565b50909695505050505050565b80820180821115611080577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b92915050565b604081525f6110986040830185610f9e565b82810360208401528084518083526020830191506020860192505f5b8181101561103c5783518352602093840193909201916001016110b456fea2646970667358221220aa4b096d4c82cdef343b82e1bb0e47ef78e32e9a2e77460363bc4172cbf4f92764736f6c634300081c0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/contracts/contribute/Contributors.sol b/contracts/contribute/Contributors.sol index 8509b1b..1215291 100644 --- a/contracts/contribute/Contributors.sol +++ b/contracts/contribute/Contributors.sol @@ -13,7 +13,7 @@ error AlreadyInitialized(); error ZeroAddress(); /// @dev Only manager is allowed to have access. -error OnlyManager(address sender, address manager); +error ManagerOnly(address sender, address manager); /// @dev Wrong length of two arrays. /// @param numValues1 Number of values in a first array. @@ -47,7 +47,7 @@ contract Contributors { event ManagerUpdated(address indexed manager); event SetServiceInfoForId(address indexed serviceOwner, uint256 indexed socialId, uint256 indexed serviceId, address multisig, address stakingInstance); - event SetContributeAgentStatuses(address[] contributeAgents, bool[] statuses); + event SetContributeServiceStatuses(address[] contributeServices, bool[] statuses); event MultisigActivityChanged(address indexed senderAgent, address[] multisigs, uint256[] activityChanges); // Version number @@ -147,7 +147,7 @@ contract Contributors { ) external { // Check for manager if (msg.sender != manager) { - revert OnlyManager(msg.sender, manager); + revert ManagerOnly(msg.sender, manager); } // Set (or remove) multisig for the corresponding social id @@ -160,34 +160,34 @@ contract Contributors { emit SetServiceInfoForId(serviceOwner, socialId, serviceId, multisig, stakingInstance); } - /// @dev Sets contribute agent statues. - /// @param contributeAgents Contribute agent addresses. + /// @dev Sets contribute service multisig statues. + /// @param contributeServices Contribute service multisig addresses. /// @param statuses Corresponding whitelisting statues. - function setContributeAgentStatuses(address[] memory contributeAgents, bool[] memory statuses) external { + function setContributeServiceStatuses(address[] memory contributeServices, bool[] memory statuses) external { // Check for the ownership if (msg.sender != owner) { revert OwnerOnly(msg.sender, owner); } // Check for array lengths - if (contributeAgents.length != statuses.length) { - revert WrongArrayLength(contributeAgents.length, statuses.length); + if (contributeServices.length == 0 || contributeServices.length != statuses.length) { + revert WrongArrayLength(contributeServices.length, statuses.length); } - // Traverse all contribute agents and statuses - for (uint256 i = 0; i < contributeAgents.length; ++i) { + // Traverse all contribute service multisigs and statuses + for (uint256 i = 0; i < contributeServices.length; ++i) { // Check for zero addresses - if (contributeAgents[i] == address(0)) { + if (contributeServices[i] == address(0)) { revert ZeroAddress(); } - mapContributeAgents[contributeAgents[i]] = statuses[i]; + mapContributeAgents[contributeServices[i]] = statuses[i]; } - emit SetContributeAgentStatuses(contributeAgents, statuses); + emit SetContributeServiceStatuses(contributeServices, statuses); } - /// @dev Increases multisig activity by the contribute agent. + /// @dev Increases multisig activity by the contribute service. /// @param multisigs Multisig addresses. /// @param activityChanges Corresponding activity changes function increaseActivity(address[] memory multisigs, uint256[] memory activityChanges) external { @@ -197,7 +197,7 @@ contract Contributors { } // Check for array lengths - if (multisigs.length != activityChanges.length) { + if (multisigs.length == 0 || multisigs.length != activityChanges.length) { revert WrongArrayLength(multisigs.length, activityChanges.length); } diff --git a/test/StakingContribute.js b/test/StakingContribute.js index 1df76ee..9b6e699 100644 --- a/test/StakingContribute.js +++ b/test/StakingContribute.js @@ -4,7 +4,7 @@ const { ethers } = require("hardhat"); const helpers = require("@nomicfoundation/hardhat-network-helpers"); const safeContracts = require("@gnosis.pm/safe-contracts"); -describe("Staking", function () { +describe.only("Staking Contribute", function () { let componentRegistry; let agentRegistry; let serviceRegistry; @@ -25,6 +25,7 @@ describe("Staking", function () { let stakingToken; let signers; let deployer; + let operator; let agentInstances; let bytecodeHash; const AddressZero = ethers.constants.AddressZero; @@ -46,7 +47,7 @@ describe("Staking", function () { metadataHash: defaultHash, maxNumServices: 3, rewardsPerSecond: "1" + "0".repeat(15), - minStakingDeposit: 10, + minStakingDeposit: regDeposit, minNumStakingPeriods: 3, maxNumInactivityPeriods: 3, livenessPeriod: livenessPeriod, // Ten seconds @@ -64,6 +65,8 @@ describe("Staking", function () { beforeEach(async function () { signers = await ethers.getSigners(); deployer = signers[0]; + operator = signers[1]; + agentInstances = [signers[2], signers[3], signers[4]]; const ServiceRegistry = await ethers.getContractFactory("ServiceRegistryL2"); serviceRegistry = await ServiceRegistry.deploy("Service Registry L2", "SERVICE", "https://localhost/service/"); @@ -150,6 +153,7 @@ describe("Staking", function () { // Mint tokens to the service owner and the operator await token.mint(deployer.address, initSupply); + await token.mint(operator.address, initSupply); // Whitelist gnosis multisig implementations await serviceRegistry.changeMultisigPermission(gnosisSafeMultisig.address, true); @@ -158,7 +162,7 @@ describe("Staking", function () { await contributors.changeManager(contributeManager.address); // Set deployer address to be the agent - await contributors.setContributeAgentStatuses([deployer.address], [true]); + await contributors.setContributeServiceStatuses([deployer.address], [true]); // Fund the staking contract await token.approve(stakingTokenAddress, ethers.utils.parseEther("1")); @@ -166,14 +170,157 @@ describe("Staking", function () { }); context("Initialization", function () { + it("Ownership violations", async function () { + // Trying to change owner from a non-owner account address + await expect( + contributors.connect(operator).changeOwner(operator.address) + ).to.be.revertedWithCustomError(serviceRegistry, "OwnerOnly"); + + // Trying to change owner for the zero address + await expect( + contributors.connect(deployer).changeOwner(AddressZero) + ).to.be.revertedWithCustomError(serviceRegistry, "ZeroAddress"); + + // Changing the owner + await contributors.connect(deployer).changeOwner(operator.address); + + // Trying to change owner from the previous owner address + await expect( + contributors.connect(deployer).changeOwner(deployer.address) + ).to.be.revertedWithCustomError(serviceRegistry, "OwnerOnly"); + + // Change the owner back + await contributors.connect(operator).changeOwner(deployer.address); + + // Trying to change manager from a non-owner account address + await expect( + contributors.connect(operator).changeManager(operator.address) + ).to.be.revertedWithCustomError(serviceRegistry, "OwnerOnly"); + + // Trying to change manager for the zero address + await expect( + contributors.connect(deployer).changeManager(AddressZero) + ).to.be.revertedWithCustomError(serviceRegistry, "ZeroAddress"); + + // Try to increase the service activity not by the whitelisted service multisig + await expect( + contributors.connect(operator).increaseActivity([deployer.address], [10]) + ).to.be.revertedWithCustomError(contributors, "UnauthorizedAccount"); + // Wrong array lengths + await expect( + contributors.increaseActivity([], [10]) + ).to.be.revertedWithCustomError(contributors, "WrongArrayLength"); + await expect( + contributors.increaseActivity([deployer.address], []) + ).to.be.revertedWithCustomError(contributors, "WrongArrayLength"); + + // Try to set contribute service multisig statuses not by the owner + await expect( + contributors.connect(operator).setContributeServiceStatuses([deployer.address], [true]) + ).to.be.revertedWithCustomError(contributors, "OwnerOnly"); + // Wrong array lengths + await expect( + contributors.setContributeServiceStatuses([], [true]) + ).to.be.revertedWithCustomError(contributors, "WrongArrayLength"); + await expect( + contributors.setContributeServiceStatuses([deployer.address], []) + ).to.be.revertedWithCustomError(contributors, "WrongArrayLength"); + // Zero addresses + await expect( + contributors.setContributeServiceStatuses([AddressZero], [true]) + ).to.be.revertedWithCustomError(contributors, "ZeroAddress"); + + // Try to set service info not by the manager + await expect( + contributors.setServiceInfoForId(deployer.address, 1, 1, deployer.address, deployer.address) + ).to.be.revertedWithCustomError(contributors, "ManagerOnly"); + + // Try to re-initialize the proxy + await expect( + contributors.initialize() + ).to.be.revertedWithCustomError(contributors, "AlreadyInitialized"); + + // Try to change implementation not by the owner + await expect( + contributors.connect(operator).changeImplementation(deployer.address) + ).to.be.revertedWithCustomError(contributors, "OwnerOnly"); + // Try to change implementation to the zero address + await expect( + contributors.changeImplementation(AddressZero) + ).to.be.revertedWithCustomError(contributors, "ZeroAddress"); + + // Change implementation + await contributors.changeImplementation(deployer.address); + + // Proxy creation failure + const ContributorsProxy = await ethers.getContractFactory("ContributorsProxy"); + await expect( + ContributorsProxy.deploy(AddressZero, payload) + ).to.be.revertedWithCustomError(contributorsProxy, "ZeroImplementationAddress"); + await expect( + ContributorsProxy.deploy(deployer.address, payload) + ).to.be.revertedWithCustomError(contributorsProxy, "ZeroContributorsData"); + }); + + it("Failing to initialize with wrong parameters", async function () { + const ContributeManager = await ethers.getContractFactory("ContributeManager"); + await expect( + ContributeManager.deploy(AddressZero, serviceManager.address, + token.address, stakingFactory.address, gnosisSafeMultisig.address, fallbackHandler.address, + agentId, defaultHash) + ).to.be.revertedWithCustomError(contributeManager, "ZeroAddress"); + await expect( + ContributeManager.deploy(contributorsProxy.address, AddressZero, + token.address, stakingFactory.address, gnosisSafeMultisig.address, fallbackHandler.address, + agentId, defaultHash) + ).to.be.revertedWithCustomError(contributeManager, "ZeroAddress"); + await expect( + ContributeManager.deploy(contributorsProxy.address, serviceManager.address, + AddressZero, stakingFactory.address, gnosisSafeMultisig.address, fallbackHandler.address, + agentId, defaultHash) + ).to.be.revertedWithCustomError(contributeManager, "ZeroAddress"); + await expect( + ContributeManager.deploy(contributorsProxy.address, serviceManager.address, + token.address, AddressZero, gnosisSafeMultisig.address, fallbackHandler.address, + agentId, defaultHash) + ).to.be.revertedWithCustomError(contributeManager, "ZeroAddress"); + await expect( + ContributeManager.deploy(contributorsProxy.address, serviceManager.address, + token.address, stakingFactory.address, AddressZero, fallbackHandler.address, + agentId, defaultHash) + ).to.be.revertedWithCustomError(contributeManager, "ZeroAddress"); + await expect( + ContributeManager.deploy(contributorsProxy.address, serviceManager.address, + token.address, stakingFactory.address, gnosisSafeMultisig.address, AddressZero, + agentId, defaultHash) + ).to.be.revertedWithCustomError(contributeManager, "ZeroAddress"); + await expect( + ContributeManager.deploy(contributorsProxy.address, serviceManager.address, + token.address, stakingFactory.address, gnosisSafeMultisig.address, fallbackHandler.address, + 0, defaultHash) + ).to.be.revertedWithCustomError(contributeManager, "ZeroValue"); + await expect( + ContributeManager.deploy(contributorsProxy.address, serviceManager.address, + token.address, stakingFactory.address, gnosisSafeMultisig.address, fallbackHandler.address, + agentId, HashZero) + ).to.be.revertedWithCustomError(contributeManager, "ZeroValue"); + + const ContributeActivityChecker = await ethers.getContractFactory("ContributeActivityChecker"); + await expect( + ContributeActivityChecker.deploy(AddressZero, livenessRatio) + ).to.be.revertedWithCustomError(ContributeActivityChecker, "ZeroAddress"); + await expect( + ContributeActivityChecker.deploy(contributorsProxy.address, 0) + ).to.be.revertedWithCustomError(ContributeActivityChecker, "ZeroValue"); + }); }); context("Contribute manager", function () { - it("Mint and stake", async function () { + it("Create and stake", async function () { // Approve OLAS for contributeManager await token.approve(contributeManager.address, serviceParams.minStakingDeposit * 2); - // Mint and stake the service + // Create and stake the service await contributeManager.createAndStake(socialId, stakingToken.address, {value: 2}); }); @@ -184,7 +331,7 @@ describe("Staking", function () { // Approve OLAS for contributeManager await token.approve(contributeManager.address, serviceParams.minStakingDeposit * 2); - // Mint and stake the service + // Create and stake the service await contributeManager.createAndStake(socialId, stakingToken.address, {value: 2}); // Increase the time while the service does not reach the required amount of transactions per second (TPS) @@ -210,7 +357,7 @@ describe("Staking", function () { // Approve OLAS for contributeManager await token.approve(contributeManager.address, serviceParams.minStakingDeposit * 2); - // Mint and stake the service + // Create and stake the service await contributeManager.createAndStake(socialId, stakingToken.address, {value: 2}); // Get the user data @@ -225,11 +372,174 @@ describe("Staking", function () { // Call the checkpoint await stakingToken.checkpoint(); + const balanceBefore = ethers.BigNumber.from(await token.balanceOf(serviceInfo.multisig)); + // Claim rewards await contributeManager.claim(); + const balanceAfter = ethers.BigNumber.from(await token.balanceOf(serviceInfo.multisig)); + // The balance before and after the claim must be different + expect(balanceAfter).to.gt(balanceBefore); + // Restore a previous state of blockchain snapshot.restore(); }); + + it("Should fail when executing with incorrect values and states", async function () { + // Take a snapshot of the current state of the blockchain + const snapshot = await helpers.takeSnapshot(); + + // Approve OLAS for contributeManager + await token.approve(contributeManager.address, serviceParams.minStakingDeposit * 2); + + // Try to create a new service with zero social Id + await expect( + contributeManager.createAndStake(0, stakingToken.address, {value: 2}) + ).to.be.revertedWithCustomError(contributeManager, "ZeroValue"); + + // Try to create and stake a new service with wrong staking instance + await expect( + contributeManager.createAndStake(socialId, deployer.address, {value: 2}) + ).to.be.revertedWithCustomError(contributeManager, "WrongStakingInstance"); + + // Create and stake the service + await contributeManager.createAndStake(socialId, stakingToken.address, {value: 2}); + + // Try to create the service again + await expect( + contributeManager.createAndStake(socialId, stakingToken.address, {value: 2}) + ).to.be.revertedWithCustomError(contributeManager, "ServiceAlreadyStaked"); + + // Try to stake the service again + await expect( + contributeManager.stake(socialId, serviceId, stakingToken.address) + ).to.be.revertedWithCustomError(contributeManager, "ServiceAlreadyStaked"); + + // Increase the time while the service does not reach the required amount of transactions per second (TPS) + await helpers.time.increase(maxInactivity); + + // Unstake the service + await contributeManager.unstake(); + + // Try to unstake again + await expect( + contributeManager.unstake() + ).to.be.revertedWithCustomError(contributeManager, "ServiceNotDefined"); + + // Try to claim the unstaked service + await expect( + contributeManager.claim() + ).to.be.revertedWithCustomError(contributeManager, "ServiceNotDefined"); + + // Approve more OLAS for contributeManager + await token.approve(serviceRegistryTokenUtility.address, serviceParams.minStakingDeposit * 3); + await token.connect(operator).approve(serviceRegistryTokenUtility.address, serviceParams.minStakingDeposit * 3); + + // Create wrong service setup + await serviceManager.create(deployer.address, token.address, defaultHash, agentIds, agentParams, threshold); + await serviceManager.activateRegistration(serviceId + 1, {value: 1}); + await serviceManager.connect(operator).registerAgents(serviceId + 1, [agentInstances[0].address], agentIds, {value: 1}); + await serviceManager.deploy(serviceId + 1, gnosisSafeMultisig.address, payload); + + // Approve service for the contribute manager + await serviceRegistry.approve(contributeManager.address, serviceId + 1); + + // Try to stake with wrong parameters + await expect( + contributeManager.stake(socialId, serviceId + 1, stakingToken.address) + ).to.be.revertedWithCustomError(contributeManager, "WrongServiceSetup"); + + // Create another wrong service setup + await serviceManager.create(deployer.address, token.address, defaultHash, agentIds, [[2, regBond]], 2); + await serviceManager.activateRegistration(serviceId + 2, {value: 1}); + await serviceManager.connect(operator).registerAgents(serviceId + 2, [agentInstances[1].address, agentInstances[2].address], + [agentId, agentId], {value: 2}); + await serviceManager.deploy(serviceId + 2, gnosisSafeMultisig.address, payload); + + // Approve service for the contribute manager + await serviceRegistry.approve(contributeManager.address, serviceId + 2); + + // Try to stake with wrong parameters + await expect( + contributeManager.stake(socialId, serviceId + 2, stakingToken.address) + ).to.be.revertedWithCustomError(contributeManager, "WrongServiceSetup"); + + // Approve the service for the contributeManager + await serviceRegistry.approve(contributeManager.address, serviceId); + + // Stake the service again + await contributeManager.stake(socialId, serviceId, stakingToken.address); + + // Restore a previous state of blockchain + snapshot.restore(); + }); + + it("Should fail when staking with a wrong instance", async function () { + // Approve OLAS for contributeManager + await token.approve(contributeManager.address, serviceParams.minStakingDeposit * 2); + + // Deploy a staking contract with max number of services equal to one + const testServiceParams = JSON.parse(JSON.stringify(serviceParams)); + testServiceParams.numAgentInstances = 2; + + let initPayload = stakingTokenImplementation.interface.encodeFunctionData("initialize", + [testServiceParams, serviceRegistryTokenUtility.address, token.address]); + let tx = await stakingFactory.createStakingInstance(stakingTokenImplementation.address, initPayload); + let res = await tx.wait(); + // Get staking contract instance address from the event + let stakingTokenAddress = "0x" + res.logs[0].topics[2].slice(26); + + // Fund the staking contract + let testStakingToken = await ethers.getContractAt("StakingToken", stakingTokenAddress); + await token.approve(stakingTokenAddress, ethers.utils.parseEther("1")); + await testStakingToken.deposit(ethers.utils.parseEther("1")); + + // Try to create and stake a new service with wrong num agent instances + await expect( + contributeManager.createAndStake(socialId, stakingTokenAddress, {value: 2}) + ).to.be.revertedWithCustomError(contributeManager, "WrongStakingInstance"); + + // Reset number of agent isntances and update threshold + testServiceParams.numAgentInstances = 1; + testServiceParams.threshold = 2; + + initPayload = stakingTokenImplementation.interface.encodeFunctionData("initialize", + [testServiceParams, serviceRegistryTokenUtility.address, token.address]); + tx = await stakingFactory.createStakingInstance(stakingTokenImplementation.address, initPayload); + res = await tx.wait(); + // Get staking contract instance address from the event + stakingTokenAddress = "0x" + res.logs[0].topics[2].slice(26); + + // Fund the staking contract + testStakingToken = await ethers.getContractAt("StakingToken", stakingTokenAddress); + await token.approve(stakingTokenAddress, ethers.utils.parseEther("1")); + await testStakingToken.deposit(ethers.utils.parseEther("1")); + + // Try to create and stake a new service with wrong threshold + await expect( + contributeManager.createAndStake(socialId, stakingTokenAddress, {value: 2}) + ).to.be.revertedWithCustomError(contributeManager, "WrongStakingInstance"); + + // Reset threshold + testServiceParams.threshold = 1; + + // Update the token address + initPayload = stakingTokenImplementation.interface.encodeFunctionData("initialize", + [testServiceParams, serviceRegistryTokenUtility.address, deployer.address]); + tx = await stakingFactory.createStakingInstance(stakingTokenImplementation.address, initPayload); + res = await tx.wait(); + // Get staking contract instance address from the event + stakingTokenAddress = "0x" + res.logs[0].topics[2].slice(26); + + // Fund the staking contract + testStakingToken = await ethers.getContractAt("StakingToken", stakingTokenAddress); + await token.approve(stakingTokenAddress, ethers.utils.parseEther("1")); + await testStakingToken.deposit(ethers.utils.parseEther("1")); + + // Try to create and stake a new service with wrong token + await expect( + contributeManager.createAndStake(socialId, stakingTokenAddress, {value: 2}) + ).to.be.revertedWithCustomError(contributeManager, "WrongStakingInstance"); + }); }); });