More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 488,034 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Fulfill | 59506477 | 1 hr ago | IN | 0 ETH | 0.00002194 | ||||
Fulfill | 59505608 | 1 hr ago | IN | 0 ETH | 0.00003274 | ||||
Fulfill | 59500205 | 4 hrs ago | IN | 0 ETH | 0.00003245 | ||||
Fulfill | 59491866 | 10 hrs ago | IN | 0 ETH | 0.0000161 | ||||
Fulfill | 59491776 | 10 hrs ago | IN | 0 ETH | 0.00001816 | ||||
Fulfill | 59491490 | 10 hrs ago | IN | 0 ETH | 0.00001808 | ||||
Fulfill | 59491472 | 10 hrs ago | IN | 0 ETH | 0.00003624 | ||||
Fulfill | 59487729 | 12 hrs ago | IN | 0 ETH | 0.00001812 | ||||
Fulfill | 59487636 | 12 hrs ago | IN | 0 ETH | 0.00003789 | ||||
Fulfill | 59487221 | 13 hrs ago | IN | 0 ETH | 0.00001704 | ||||
Fulfill | 59486797 | 13 hrs ago | IN | 0 ETH | 0.00002237 | ||||
Fulfill | 59486388 | 13 hrs ago | IN | 0 ETH | 0.00003272 | ||||
Fulfill | 59481816 | 16 hrs ago | IN | 0 ETH | 0.00002868 | ||||
Fulfill | 59481714 | 16 hrs ago | IN | 0 ETH | 0.00003134 | ||||
Fulfill | 59480968 | 16 hrs ago | IN | 0 ETH | 0.0000289 | ||||
Fulfill | 59480655 | 17 hrs ago | IN | 0 ETH | 0.00003154 | ||||
Fulfill | 59473226 | 22 hrs ago | IN | 0 ETH | 0.00001862 | ||||
Fulfill | 59473180 | 22 hrs ago | IN | 0 ETH | 0.00003492 | ||||
Fulfill | 59470697 | 23 hrs ago | IN | 0 ETH | 0.00003844 | ||||
Fulfill | 59470180 | 23 hrs ago | IN | 0 ETH | 0.00001754 | ||||
Fulfill | 59469897 | 23 hrs ago | IN | 0 ETH | 0.00002587 | ||||
Fulfill | 59469804 | 23 hrs ago | IN | 0 ETH | 0.00003557 | ||||
Fulfill | 59469150 | 24 hrs ago | IN | 0 ETH | 0.00003114 | ||||
Fulfill | 59466284 | 25 hrs ago | IN | 0 ETH | 0.00003961 | ||||
Fulfill | 59464813 | 26 hrs ago | IN | 0 ETH | 0.0000361 |
Latest 1 internal transaction
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
13737726 | 588 days ago | Contract Creation | 0 ETH |
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
HSPriceAggregatorV1
Compiler Version
v0.8.10+commit.fc410830
ZkSolc Version
v1.3.8
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.10; import "../interfaces/CallbacksInterfaceV6_2.sol"; import "../interfaces/ChainlinkFeedInterfaceV5.sol"; import "../interfaces/StorageInterfaceV5.sol"; contract HSPriceAggregatorV1 { // Contracts (constant) StorageInterfaceV5 public immutable storageT; // Contracts (adjustable) PairsStorageInterfaceV6 public pairsStorage; // Params (constant) uint256 constant PRECISION = 1e10; uint256 constant MAX_ORACLE_NODES = 20; uint256 constant MIN_ANSWERS = 1; uint256 public minAnswers; uint256 public fixedPrice = 1e10; uint256 public expiredTime = 5 minutes; address public admin; mapping(bytes32 => uint256) public requestStatus; mapping(address => mapping(bytes32 => bool)) public requestFullfilled; bytes[] private requestPending; // Params (adjustable) // Custom data types enum OrderType { MARKET_OPEN, MARKET_CLOSE, LIMIT_OPEN, LIMIT_CLOSE } struct Order { uint256 pairIndex; OrderType orderType; uint256 linkFeePerNode; bool initiated; } struct PendingSl { address trader; uint256 pairIndex; uint256 index; uint256 openPrice; bool buy; uint256 newSl; } // State address[] public nodes; mapping(uint256 => Order) public orders; mapping(bytes32 => uint256) public orderIdByRequest; mapping(uint256 => uint256[]) public ordersAnswers; mapping(uint256 => PendingSl) public pendingSlOrders; // Events event PairsStorageUpdated(address value); event LinkPriceFeedUpdated(address value); event MinAnswersUpdated(uint256 value); event NodeAdded(uint256 index, address value); event NodeReplaced(uint256 index, address oldNode, address newNode); event NodeRemoved(uint256 index, address oldNode); event PriceRequested( uint256 indexed orderId, bytes32 indexed requestId, uint256 indexed pairIndex, OrderType orderType, uint256 nodesCount, uint256 linkFeePerNode ); event PriceReceived( bytes32 request, uint256 indexed orderId, address indexed node, uint256 indexed pairIndex, uint256 price, uint256 referencePrice, uint256 linkFee ); constructor( StorageInterfaceV5 _storageT, PairsStorageInterfaceV6 _pairsStorage, uint256 _minAnswers, address[] memory _nodes ) { require( address(_storageT) != address(0) && address(_pairsStorage) != address(0) && _minAnswers >= MIN_ANSWERS, "WRONG_PARAMS" ); storageT = _storageT; pairsStorage = _pairsStorage; minAnswers = _minAnswers; nodes = _nodes; admin = msg.sender; } // Modifiers modifier onlyAdmin() { require(msg.sender == admin, "ADMIN_ONLY"); _; } modifier onlyGov() { require(msg.sender == storageT.gov(), "GOV_ONLY"); _; } modifier onlyTrading() { require(msg.sender == storageT.trading(), "TRADING_ONLY"); _; } modifier onlyCallbacks() { require(msg.sender == storageT.callbacks(), "CALLBACKS_ONLY"); _; } modifier inWhitelist() { bool exists = false; for (uint256 i = 0; i < nodes.length; i++) { if (nodes[i] == msg.sender) { exists = true; break; } } require(exists, "NOT_WHITELIST"); _; } modifier recordFulfillment(bytes32 requestId) { require(requestStatus[requestId] != 0, "REQUEST_NOT_EXIST"); require(requestStatus[requestId] != 1, "REQUEST_FINISHED"); require(block.timestamp < requestStatus[requestId], "REQUEST_EXPIRED"); _; } // Manage contracts function updatePairsStorage(PairsStorageInterfaceV6 value) external onlyAdmin { require(address(value) != address(0), "VALUE_0"); pairsStorage = value; emit PairsStorageUpdated(address(value)); } // Update fixed price function updateFixedPrice(uint256 _fixedPrice) external onlyAdmin { fixedPrice = _fixedPrice; } // Manage params function updateMinAnswers(uint256 value) external onlyAdmin { require(value >= MIN_ANSWERS, "MIN_ANSWERS"); minAnswers = value; emit MinAnswersUpdated(value); } // Manage nodes function addNode(address a) external onlyAdmin { require(a != address(0), "VALUE_0"); require(nodes.length < MAX_ORACLE_NODES, "MAX_ORACLE_NODES"); for (uint256 i = 0; i < nodes.length; i++) { require(nodes[i] != a, "ALREADY_LISTED"); } nodes.push(a); emit NodeAdded(nodes.length - 1, a); } function replaceNode(uint256 index, address a) external onlyAdmin { require(index < nodes.length, "WRONG_INDEX"); require(a != address(0), "VALUE_0"); emit NodeReplaced(index, nodes[index], a); nodes[index] = a; } function removeNode(uint256 index) external onlyAdmin { require(index < nodes.length, "WRONG_INDEX"); emit NodeRemoved(index, nodes[index]); nodes[index] = nodes[nodes.length - 1]; nodes.pop(); } function clearNode() external onlyAdmin { delete nodes; } function updateExpiredTime(uint256 _expiredTime) external onlyAdmin { expiredTime = _expiredTime; } function tokenPriceUsdc() public view returns (uint256 price) { return fixedPrice; } // On-demand price request to oracles network function getPrice(uint256 pairIndex, OrderType orderType, uint256) external onlyTrading returns (uint256) { (, , bytes32 job, uint256 orderId) = pairsStorage.pairJob(pairIndex); if (nodes.length == 0) { emit PriceRequested(orderId, job, pairIndex, orderType, nodes.length, 0); return orderId; } orders[orderId] = Order(pairIndex, orderType, 0, true); bytes32 requestId = keccak256(abi.encode(orderId, pairIndex, block.timestamp)); orderIdByRequest[requestId] = orderId; requestStatus[requestId] = block.timestamp + expiredTime; //requestPending.push(abi.encode(requestId, pairIndex)); emit PriceRequested(orderId, requestId, pairIndex, orderType, nodes.length, 0); return orderId; } function emptyNodeFulFill(uint256 pairIndex, uint256 orderId, OrderType orderType) external onlyTrading { if (nodes.length != 0) { return; } PairsStorageInterfaceV6.Feed memory f = pairsStorage.pairFeed(pairIndex); uint256 feedPrice; (, int256 feedPrice1, , , ) = ChainlinkFeedInterfaceV5(f.feed1).latestRoundData(); if (f.feedCalculation == PairsStorageInterfaceV6.FeedCalculation.DEFAULT) { feedPrice = uint256((feedPrice1 * int256(PRECISION)) / 1e8); } else if (f.feedCalculation == PairsStorageInterfaceV6.FeedCalculation.INVERT) { feedPrice = uint256((int256(PRECISION) * 1e8) / feedPrice1); } else { (, int256 feedPrice2, , , ) = ChainlinkFeedInterfaceV5(f.feed2).latestRoundData(); feedPrice = uint256((feedPrice1 * int256(PRECISION)) / feedPrice2); } CallbacksInterfaceV6_2.AggregatorAnswer memory a; a.orderId = orderId; a.price = feedPrice; a.spreadP = pairsStorage.pairSpreadP(pairIndex); CallbacksInterfaceV6_2 c = CallbacksInterfaceV6_2(storageT.callbacks()); if (orderType == OrderType.MARKET_OPEN) { c.openTradeMarketCallback(a); } else if (orderType == OrderType.MARKET_CLOSE) { c.closeTradeMarketCallback(a); } else if (orderType == OrderType.LIMIT_OPEN) { c.executeNftOpenOrderCallback(a); } else { c.executeNftCloseOrderCallback(a); } emit PriceReceived(bytes32(block.timestamp), orderId, msg.sender, pairIndex, feedPrice, feedPrice, 0); } // Fulfill on-demand price requests function fulfill(bytes32 requestId, uint256 price) external inWhitelist recordFulfillment(requestId) { uint256 orderId = orderIdByRequest[requestId]; Order memory r = orders[orderId]; if (!r.initiated) { return; } if (requestFullfilled[msg.sender][requestId]) { return; } requestFullfilled[msg.sender][requestId] = true; //removePendingRequest(requestId, r.pairIndex); uint256[] storage answers = ordersAnswers[orderId]; uint256 feedPrice; PairsStorageInterfaceV6.Feed memory f = pairsStorage.pairFeed(r.pairIndex); (, int256 feedPrice1, , , ) = ChainlinkFeedInterfaceV5(f.feed1).latestRoundData(); if (f.feedCalculation == PairsStorageInterfaceV6.FeedCalculation.DEFAULT) { feedPrice = uint256((feedPrice1 * int256(PRECISION)) / 1e8); } else if (f.feedCalculation == PairsStorageInterfaceV6.FeedCalculation.INVERT) { feedPrice = uint256((int256(PRECISION) * 1e8) / feedPrice1); } else if (f.feedCalculation == PairsStorageInterfaceV6.FeedCalculation.UNDEFINED) { //todo only testnet UNDEFINED feedPrice = price; } else { (, int256 feedPrice2, , , ) = ChainlinkFeedInterfaceV5(f.feed2).latestRoundData(); feedPrice = uint256((feedPrice1 * int256(PRECISION)) / feedPrice2); } if ( price == 0 || ((price >= feedPrice ? price - feedPrice : feedPrice - price) * PRECISION * 100) / feedPrice <= f.maxDeviationP ) { answers.push(price); if (answers.length == minAnswers) { requestStatus[requestId] = 1; CallbacksInterfaceV6_2.AggregatorAnswer memory a; a.orderId = orderId; a.price = median(answers); a.spreadP = pairsStorage.pairSpreadP(r.pairIndex); CallbacksInterfaceV6_2 c = CallbacksInterfaceV6_2(storageT.callbacks()); if (r.orderType == OrderType.MARKET_OPEN) { c.openTradeMarketCallback(a); } else if (r.orderType == OrderType.MARKET_CLOSE) { c.closeTradeMarketCallback(a); } else if (r.orderType == OrderType.LIMIT_OPEN) { c.executeNftOpenOrderCallback(a); } else { c.executeNftCloseOrderCallback(a); } delete orderIdByRequest[requestId]; delete orders[orderId]; delete ordersAnswers[orderId]; } emit PriceReceived(requestId, orderId, msg.sender, r.pairIndex, price, feedPrice, r.linkFeePerNode); } } // Calculate LINK fee for each request function linkFee(uint256, uint256) public view returns (uint256) { return 0; } function getPendingRequests() external view inWhitelist returns (bytes[] memory) { return requestPending; } function removePendingRequest(bytes32 requestId, uint256 pairIndex) private { uint256 pendingCounts = requestPending.length; bytes memory encoded = abi.encode(requestId, pairIndex); if (pendingCounts > 0) { for (uint256 i = 0; i < pendingCounts; i++) { if (keccak256(requestPending[i]) == keccak256(encoded)) { requestPending[i] = requestPending[pendingCounts - 1]; break; } } } } // Median function function swap(uint256[] memory array, uint256 i, uint256 j) private pure { (array[i], array[j]) = (array[j], array[i]); } function sort(uint256[] memory array, uint256 begin, uint256 end) private pure { if (begin >= end) { return; } uint256 j = begin; uint256 pivot = array[j]; for (uint256 i = begin + 1; i < end; ++i) { if (array[i] < pivot) { swap(array, i, ++j); } } swap(array, begin, j); sort(array, begin, j); sort(array, j + 1, end); } function median(uint256[] memory array) private pure returns (uint256) { sort(array, 0, array.length); return array.length % 2 == 0 ? (array[array.length / 2 - 1] + array[array.length / 2]) / 2 : array[array.length / 2]; } // Storage v5 compatibility function openFeeP(uint256 pairIndex) external view returns (uint256) { return pairsStorage.pairOpenFeeP(pairIndex); } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.10; import "./NftRewardsInterfaceV6.sol"; import "./PairsStorageInterfaceV6.sol"; interface AggregatorInterfaceV6 { enum OrderType { MARKET_OPEN, MARKET_CLOSE, LIMIT_OPEN, LIMIT_CLOSE, UPDATE_SL } function pairsStorage() external view returns (PairsStorageInterfaceV6); function nftRewards() external view returns (NftRewardsInterfaceV6); function getPrice(uint256, OrderType, uint256) external returns (uint256); function tokenPriceUsdc() external view returns (uint256); function linkFee(uint256, uint256) external view returns (uint256); function tokenUsdcReservesLp() external view returns (uint256, uint256); function pendingSlOrders(uint256) external view returns (PendingSl memory); function storePendingSlOrder(uint256 orderId, PendingSl calldata p) external; function unregisterPendingSlOrder(uint256 orderId) external; function emptyNodeFulFill(uint256, uint256, OrderType) external; struct PendingSl { address trader; uint256 pairIndex; uint256 index; uint256 openPrice; bool buy; uint256 newSl; } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.10; interface CallbacksInterfaceV6_2 { struct AggregatorAnswer { uint orderId; uint price; uint spreadP; } function openTradeMarketCallback(AggregatorAnswer memory) external; function closeTradeMarketCallback(AggregatorAnswer memory) external; function executeNftOpenOrderCallback(AggregatorAnswer memory) external; function executeNftCloseOrderCallback(AggregatorAnswer memory) external; function updateSlCallback(AggregatorAnswer memory) external; }
// SPDX-License-Identifier: MIT pragma solidity 0.8.10; interface ChainlinkFeedInterfaceV5 { function latestRoundData() external view returns (uint80, int, uint, uint, uint80); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.10; interface IHSAgency { enum Level { LEVEL0, LEVEL1, LEVEL2, LEVEL3 } struct DirectReferrer { address referrer; Level level; } function rootReferrer(address) external view returns (address); function rootStatus(address) external view returns (bool); function getDirectReferrer(address) external view returns (DirectReferrer memory); function getDistributionP(address) external view returns (uint256 feeP1, uint256 feeP2); function calulateFee(uint256 _vaultOpenFeeP, address _user) external view returns (uint256); function distributeReward(uint256 _fullFee, address _user) external returns (uint256); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.10; interface NftInterfaceV5 { function balanceOf(address) external view returns (uint); function ownerOf(uint) external view returns (address); function transferFrom(address, address, uint) external; function tokenOfOwnerByIndex(address, uint) external view returns (uint); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.10; import "./StorageInterfaceV5.sol"; interface NftRewardsInterfaceV6 { struct TriggeredLimitId { address trader; uint pairIndex; uint index; StorageInterfaceV5.LimitOrder order; } enum OpenLimitOrderType { LEGACY, REVERSAL, MOMENTUM } function storeFirstToTrigger(TriggeredLimitId calldata, address) external; function storeTriggerSameBlock(TriggeredLimitId calldata, address) external; function unregisterTrigger(TriggeredLimitId calldata) external; function distributeNftReward(TriggeredLimitId calldata, uint) external; function openLimitOrderTypes(address, uint, uint) external view returns (OpenLimitOrderType); function setOpenLimitOrderType(address, uint, uint, OpenLimitOrderType) external; function triggered(TriggeredLimitId calldata) external view returns (bool); function timedOut(TriggeredLimitId calldata) external view returns (bool); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.10; interface PairsStorageInterfaceV6 { enum FeedCalculation { DEFAULT, INVERT, COMBINE, UNDEFINED } // FEED 1, 1 / (FEED 1), (FEED 1)/(FEED 2) struct Feed { address feed1; address feed2; FeedCalculation feedCalculation; uint256 maxDeviationP; } // PRECISION (%) function incrementCurrentOrderId() external returns (uint256); function updateGroupCollateral(uint256, uint256, bool, bool) external; function pairJob(uint256) external returns (string memory, string memory, bytes32, uint256); function pairFeed(uint256) external view returns (Feed memory); function pairSpreadP(uint256) external view returns (uint256); function pairMinLeverage(uint256) external view returns (uint256); function pairMaxLeverage(uint256) external view returns (uint256); function groupMaxCollateral(uint256) external view returns (uint256); function groupCollateral(uint256, bool) external view returns (uint256); function guaranteedSlEnabled(uint256) external view returns (bool); function pairOpenFeeP(uint256) external view returns (uint256); function pairCloseFeeP(uint256) external view returns (uint256); function pairOracleFeeP(uint256) external view returns (uint256); function pairNftLimitOrderFeeP(uint256) external view returns (uint256); function pairReferralFeeP(uint256) external view returns (uint256); function pairMinLevPosUsdc(uint256) external view returns (uint256); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.10; import "./UniswapRouterInterfaceV5.sol"; import "./TokenInterfaceV5.sol"; import "./NftInterfaceV5.sol"; import "./VaultInterfaceV5.sol"; import "./PairsStorageInterfaceV6.sol"; import "./AggregatorInterfaceV6.sol"; import "../interfaces/IHSAgency.sol"; interface StorageInterfaceV5 { enum LimitOrder { TP, SL, LIQ, OPEN } struct Trader { uint256 leverageUnlocked; address referral; uint256 referralRewardsTotal; // 1e18 } struct Trade { address trader; uint256 pairIndex; uint256 index; uint256 initialPosToken; // 1e18 uint256 positionSizeUsdc; // 1e18 uint256 openPrice; // PRECISION bool buy; uint256 leverage; uint256 tp; // PRECISION uint256 sl; // PRECISION } struct TradeInfo { uint256 tokenId; uint256 tokenPriceUsdc; // PRECISION uint256 openInterestUsdc; // 1e18 uint256 tpLastUpdated; uint256 slLastUpdated; bool beingMarketClosed; } struct OrderInfo { uint256 pairIndex; uint256 positionSize; bool buy; uint256 leverage; uint256 tp; uint256 sl; uint256 minPrice; uint256 maxPrice; } struct OpenLimitOrder { OrderInfo orderInfo; address trader; uint256 index; uint256 spreadReductionP; uint256 block; } struct PendingMarketOrder { Trade trade; uint256 block; uint256 wantedPrice; // PRECISION uint256 slippageP; // PRECISION (%) uint256 spreadReductionP; uint256 tokenId; // index in supportedTokens } struct PendingNftOrder { address nftHolder; uint256 nftId; address trader; uint256 pairIndex; uint256 index; LimitOrder orderType; } function PRECISION() external pure returns (uint256); function gov() external view returns (address); function dev() external view returns (address); function usdc() external view returns (TokenInterfaceV5); function token() external view returns (TokenInterfaceV5); function linkErc677() external view returns (TokenInterfaceV5); function tokenUsdcRouter() external view returns (UniswapRouterInterfaceV5); function priceAggregator() external view returns (AggregatorInterfaceV6); function vault() external view returns (VaultInterfaceV5); function trading() external view returns (address); function callbacks() external view returns (address); function handleTokens(address, uint256, bool) external; function transferUsdc(address, address, uint256) external; function transferLinkToAggregator(address, uint256, uint256) external; function unregisterTrade(address, uint256, uint256) external; function unregisterPendingMarketOrder(uint256, bool) external; function unregisterOpenLimitOrder(address, uint256, uint256) external; function hasOpenLimitOrder(address, uint256, uint256) external view returns (bool); function storePendingMarketOrder(PendingMarketOrder memory, uint256, bool) external; function openTrades(address, uint256, uint256) external view returns (Trade memory); function openTradesInfo(address, uint256, uint256) external view returns (TradeInfo memory); function updateSl(address, uint256, uint256, uint256) external; function updateTp(address, uint256, uint256, uint256) external; function getOpenLimitOrder(address, uint256, uint256) external view returns (OpenLimitOrder memory); function spreadReductionsP(uint256) external view returns (uint256); function storeOpenLimitOrder(OpenLimitOrder memory) external; function reqID_pendingMarketOrder(uint256) external view returns (PendingMarketOrder memory); function storePendingNftOrder(PendingNftOrder memory, uint256) external; function updateOpenLimitOrder(OpenLimitOrder calldata) external; function firstEmptyTradeIndex(address, uint256) external view returns (uint256); function firstEmptyOpenLimitIndex(address, uint256) external view returns (uint256); function increaseNftRewards(uint256, uint256) external; function nftSuccessTimelock() external view returns (uint256); function currentPercentProfit(uint256, uint256, bool, uint256) external view returns (int256); function reqID_pendingNftOrder(uint256) external view returns (PendingNftOrder memory); function setNftLastSuccess(uint256) external; function updateTrade(Trade memory) external; function nftLastSuccess(uint256) external view returns (uint256); function unregisterPendingNftOrder(uint256) external; function handleGoldGovFees(uint256, uint256, uint256, address, bool) external returns (uint256); function chargeGovFees(uint256, bool) external; function distributeLpRewards(uint256) external; function getReferral(address) external view returns (address); function increaseReferralRewards(address, uint256) external; function storeTrade(Trade memory, TradeInfo memory) external; function setLeverageUnlocked(address, uint256) external; function getLeverageUnlocked(address) external view returns (uint256); function openLimitOrdersCount(address, uint256) external view returns (uint256); function maxOpenLimitOrdersPerPair() external view returns (uint256); function openTradesCount(address, uint256) external view returns (uint256); function pendingMarketOpenCount(address, uint256) external view returns (uint256); function pendingMarketCloseCount(address, uint256) external view returns (uint256); function maxTradesPerPair() external view returns (uint256); function tradesPerBlock(uint256) external view returns (uint256); function pendingOrderIdsCount(address) external view returns (uint256); function maxPendingMarketOrders() external view returns (uint256); function openInterestUsdc(uint256, uint256) external view returns (uint256); function getPendingOrderIds(address) external view returns (uint256[] memory); function traders(address) external view returns (Trader memory); function nfts(uint256) external view returns (NftInterfaceV5); function hsAgency() external view returns (IHSAgency); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.10; interface TokenInterfaceV5 { function burn(address, uint256) external; function mint(address, uint256) external; function transfer(address, uint256) external returns (bool); function transferFrom(address, address, uint256) external returns (bool); function balanceOf(address) external view returns (uint256); function hasRole(bytes32, address) external view returns (bool); function approve(address, uint256) external returns (bool); function allowance(address, address) external view returns (uint256); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.10; interface UniswapRouterInterfaceV5 { function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.10; interface VaultInterfaceV5 { function sendUsdcToTrader(address, uint) external; function receiveUsdcFromTrader(address, uint, uint) external; function currentBalanceUsdc() external view returns (uint); function distributeRewardUsdc(uint) external; function distributeReward(uint assets) external; function sendAssets(uint assets, address receiver) external; function receiveAssets(uint assets, address user) external; }
{ "compilerPath": "", "experimental": {}, "optimizer": { "enabled": true, "mode": "z" } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"contract StorageInterfaceV5","name":"_storageT","type":"address"},{"internalType":"contract PairsStorageInterfaceV6","name":"_pairsStorage","type":"address"},{"internalType":"uint256","name":"_minAnswers","type":"uint256"},{"internalType":"address[]","name":"_nodes","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"value","type":"address"}],"name":"LinkPriceFeedUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"MinAnswersUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"address","name":"value","type":"address"}],"name":"NodeAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"address","name":"oldNode","type":"address"}],"name":"NodeRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"address","name":"oldNode","type":"address"},{"indexed":false,"internalType":"address","name":"newNode","type":"address"}],"name":"NodeReplaced","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"value","type":"address"}],"name":"PairsStorageUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"request","type":"bytes32"},{"indexed":true,"internalType":"uint256","name":"orderId","type":"uint256"},{"indexed":true,"internalType":"address","name":"node","type":"address"},{"indexed":true,"internalType":"uint256","name":"pairIndex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"referencePrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"linkFee","type":"uint256"}],"name":"PriceReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"orderId","type":"uint256"},{"indexed":true,"internalType":"bytes32","name":"requestId","type":"bytes32"},{"indexed":true,"internalType":"uint256","name":"pairIndex","type":"uint256"},{"indexed":false,"internalType":"enum HSPriceAggregatorV1.OrderType","name":"orderType","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"nodesCount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"linkFeePerNode","type":"uint256"}],"name":"PriceRequested","type":"event"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"addNode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearNode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"pairIndex","type":"uint256"},{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"enum HSPriceAggregatorV1.OrderType","name":"orderType","type":"uint8"}],"name":"emptyNodeFulFill","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"expiredTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fixedPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"price","type":"uint256"}],"name":"fulfill","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getPendingRequests","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"pairIndex","type":"uint256"},{"internalType":"enum HSPriceAggregatorV1.OrderType","name":"orderType","type":"uint8"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"linkFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minAnswers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"nodes","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"pairIndex","type":"uint256"}],"name":"openFeeP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"orderIdByRequest","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"orders","outputs":[{"internalType":"uint256","name":"pairIndex","type":"uint256"},{"internalType":"enum HSPriceAggregatorV1.OrderType","name":"orderType","type":"uint8"},{"internalType":"uint256","name":"linkFeePerNode","type":"uint256"},{"internalType":"bool","name":"initiated","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"ordersAnswers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairsStorage","outputs":[{"internalType":"contract PairsStorageInterfaceV6","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"pendingSlOrders","outputs":[{"internalType":"address","name":"trader","type":"address"},{"internalType":"uint256","name":"pairIndex","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"openPrice","type":"uint256"},{"internalType":"bool","name":"buy","type":"bool"},{"internalType":"uint256","name":"newSl","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"removeNode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"address","name":"a","type":"address"}],"name":"replaceNode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"requestFullfilled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"requestStatus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"storageT","outputs":[{"internalType":"contract StorageInterfaceV5","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenPriceUsdc","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_expiredTime","type":"uint256"}],"name":"updateExpiredTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fixedPrice","type":"uint256"}],"name":"updateFixedPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"updateMinAnswers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract PairsStorageInterfaceV6","name":"value","type":"address"}],"name":"updatePairsStorage","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
9c4d535b0000000000000000000000000000000000000000000000000000000000000000010004af438b45061e9e207cfbd4f9eb2aca8ff9f69d6557f5994f3ff353db8f000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001200000000000000000000000007b4872e2096ec9410b6b8c8b7d039589e6ee8022000000000000000000000000d3281cf19a7e49e76d9031faa4259f42ee13fd81000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000004000000000000000000000000e5601264e9e00b7509fdf565102e042bedff254c000000000000000000000000b8e96e6ee3cd36e417ca671f6be3112b9cf451c3000000000000000000000000bbfb41267755323136c5773afd923d543f047f1d000000000000000000000000eb9891f7dac08d1a82a0b95b0d324b4616d8a113
Deployed Bytecode
0x0004000000000002000700000000000200000000030100190000006003300270000004520430019700030000004103550002000000010355000004520030019d000100000000001f00000001012001900000005e0000c13d0000008001000039000000400010043f0000000001000031000000040110008c000002100000413d0000000201000367000000000101043b000000e001100270000004590210009c000000c20000613d0000045a0210009c000000cc0000613d0000045b0210009c000000b60000613d0000045c0210009c000000d80000613d0000045d0210009c000000e40000613d0000045e0210009c000000fe0000613d0000045f0210009c000001080000613d000004600210009c000001120000613d000004610210009c0000011c0000613d000004620210009c000001260000613d000004630210009c000001300000613d000004640210009c0000013f0000613d000004650210009c0000014b0000613d000004660210009c000001570000613d000004670210009c000001630000613d000004680210009c0000016d0000613d000004690210009c000001830000613d0000046a0210009c0000018d0000613d0000046b0210009c000000b60000613d0000046c0210009c000001990000613d0000046d0210009c000001a30000613d0000046e0210009c000001af0000613d0000046f0210009c000001bb0000613d000004700210009c000001cd0000613d000004710210009c000001d70000613d000004720210009c000001e40000613d000004730210009c000001f00000613d000004740110009c000002100000c13d0000000001000416000000000110004c000002100000c13d0000000001000031114203480000040f0000047501000041000000000010043900000000010004120000000400100443000000240000044300008005010000390000004402000039114202af0000040f0000045401100197000000800010043f000000800100003900000020020000390000000003000019114202c10000040f000000a001000039000000400010043f0000000001000416000000000110004c000002100000c13d0000000001000031000700000001001d114202d40000040f00000007080000290000001f0280018f00000002030003670000000504800272000000740000613d000000000500001900000005065002100000000007610019000000000663034f000000000606043b00000000006704350000000105500039000000000645004b0000006c0000413d000000000520004c000000830000613d0000000504400210000000000343034f00000000044100190000000302200210000000000504043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f00000000002404350000045302000041000000800380008c000000000300001900000000030240190000045304800197000000000540004c000000000200a019000004530440009c000000000203c019000000000220004c000002100000c13d0000000006010433000004540260009c000002100000213d00000020021000390000000007020433000004540270009c000002100000213d0000004002100039000000000902043300000060021000390000000002020433000004550320009c000002100000213d000000000a81001900000000081200190000001f0180003900000453020000410000000003a1004b0000000003000019000000000302801900000453011001970000045304a00197000000000541004b0000000002008019000000000141013f000004530110009c00000000010300190000000001026019000000000110004c000002100000c13d0000000002080433000004560120009c000001fa0000413d000004580100004100000000001004350000004101000039000000040010043f00000024020000390000000001000019114202cb0000040f0000000001000416000000000110004c000002100000c13d0000000001000031114203480000040f0000000201000039000000000201041a000000400100043d000000000021043500000020020000390000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d00000000010000311142035b0000040f114206320000040f000000400100043d00000000020000190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d00000000010000311142035b0000040f114203830000040f0000045402100197000000400100043d000000000021043500000020020000390000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d0000000001000031114203480000040f000000000100041a0000045402100197000000400100043d000000000021043500000020020000390000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d00000000010000311142035b0000040f114203950000040f000000000701001900000000080200190000000009030019000000000a040019000000000b050019000000000c060019000000400100043d000700000001001d00000000020700190000000003080019000000000409001900000000050a001900000000060b001900000000070c0019114203aa0000040f0000000703000029000000000231004900000000010300190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d0000000001000031114203bb0000040f114204d70000040f000000400100043d00000000020000190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d0000000001000031114203d10000040f11420c0c0000040f000000400100043d00000000020000190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d0000000001000031114203480000040f1142068f0000040f000000400100043d00000000020000190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d00000000010000311142035b0000040f114205130000040f000000400100043d00000000020000190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d00000000010000311142035b0000040f114206a50000040f000000400100043d00000000020000190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d0000000001000031114203480000040f11420ff90000040f0000000002010019000000400100043d000700000001001d114203e70000040f0000000703000029000000000231004900000000010300190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d0000000001000031114203480000040f0000000301000039000000000201041a000000400100043d000000000021043500000020020000390000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d0000000001000031114203d10000040f1142040d0000040f000000400300043d0000000000130435000000200200003900000000010300190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d00000000010000311142035b0000040f114204250000040f000000400300043d0000000000130435000000200200003900000000010300190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d0000000001000031114203bb0000040f114205530000040f000000400100043d00000000020000190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d00000000010000311142035b0000040f1142042d0000040f0000000005010019000000000602001900000000070300190000000008040019000000400100043d000700000001001d00000000020500190000000003060019000000000407001900000000050800191142043e0000040f0000000703000029000000000231004900000000010300190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d0000000001000031114203d10000040f000000400100043d000000000001043500000020020000390000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d0000000001000031114203480000040f0000000101000039000000000201041a000000400100043d000000000021043500000020020000390000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d0000000001000031114204520000040f1142089d0000040f000000400100043d00000000020000190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d00000000010000311142035b0000040f1142046c0000040f000000400300043d0000000000130435000000200200003900000000010300190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d00000000010000311142035b0000040f114210e00000040f000000400300043d0000000000130435000000200200003900000000010300190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d0000000001000031114204740000040f000700000002001d1142048c0000040f00000007020000291142038f0000040f000000000101041a000000ff011001900000000002000019000000010200c039000000400100043d000000000021043500000020020000390000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d00000000010000311142035b0000040f114205210000040f000000400100043d00000000020000190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d0000000001000031114203480000040f0000000401000039000000000101041a0000045402100197000000400100043d000000000021043500000020020000390000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d0000000001000031114204940000040f114206c40000040f000000400300043d0000000000130435000000200200003900000000010300190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d0000000001000031114204ae0000040f114205cd0000040f000000400100043d00000000020000190000000003000019114202c10000040f00000005012002100000002001100039000300000001001d000700000006001d000600000007001d000500000009001d000400000008001d00020000000a001d000100000002001d114202d40000040f0000000409000029000000050300002900000006020000290000000706000029000000000401001900000001010000290000000000140435000000030100002900000000019100190000000205000029000000000551004b000002130000a13d00000000010000190000000002000019114202cb0000040f00000000070400190000002009900039000000000519004b0000021d0000813d0000000008090433000004540580009c000002100000213d00000020077000390000000000870435000002140000013d0000000001060019114202e90000040f000000800100043d000001400000044300000160001004430000002001000039000001000010044300000001010000390000012000100443000001000100003900000080020000390000045703000041114202c10000040f0002000000000002000200000006001d000100000005001d0000045205000041000004520630009c00000000030580190000004003300210000004520640009c00000000040580190000006004400210000000000334019f000004520410009c0000000001058019000000c001100210000000000113019f114211380000040f00000001090000290000000003010019000000600330027000000452033001970000000205000029000000000453004b00000000050340190000001f0450018f00000005055002720000024d0000613d000000000600001900000005076002100000000008790019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000002450000413d000000010220018f000000000640004c0000025d0000613d0000000505500210000000000651034f00000000055900190000000304400210000000000705043300000000074701cf000000000747022f000000000606043b0000010004400089000000000646022f00000000044601cf000000000474019f0000000000450435000100000003001f00030000000103550000000001020019000000000001042d0002000000000002000200000006001d000100000005001d0000045205000041000004520630009c00000000030580190000004003300210000004520640009c00000000040580190000006004400210000000000334019f000004520410009c0000000001058019000000c001100210000000000113019f1142113d0000040f00000001090000290000000003010019000000600330027000000452033001970000000205000029000000000453004b00000000050340190000001f0450018f0000000505500272000002840000613d000000000600001900000005076002100000000008790019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000027c0000413d000000010220018f000000000640004c000002940000613d0000000505500210000000000651034f00000000055900190000000304400210000000000705043300000000074701cf000000000747022f000000000606043b0000010004400089000000000646022f00000000044601cf000000000474019f0000000000450435000100000003001f00030000000103550000000001020019000000000001042d0000045203000041000004520410009c00000000010380190000004001100210000004520420009c00000000020380190000006002200210000000000112019f0000000002000414000004520420009c0000000002038019000000c002200210000000000112019f00000476011001c700008010020000391142113d0000040f0000000102200190000002ac0000613d000000000101043b000000000001042d00000000010000190000000002000019114202cb0000040f000000000301001900000452010000410000000004000414000004520540009c0000000001044019000000c00110021000000060022002100000000001120019000004770110004100000000020300191142113d0000040f0000000102200190000002be0000613d000000000101043b000000000001042d00000000010000190000000002000019114202cb0000040f0000045204000041000004520510009c000000000104801900000040011002100000000001310019000004520320009c000000000204801900000060022002100000000001210019000011430001042e0000045203000041000004520420009c0000000002038019000004520410009c000000000103801900000040011002100000006002200210000000000112019f00001144000104300000001f01100039000000200200008a000000000221016f000000400100043d0000000002210019000000000312004b00000000030000190000000103004039000004550420009c000002e20000213d0000000103300190000002e20000c13d000000400020043f000000000001042d000004580100004100000000001004350000004101000039000000040010043f00000024020000390000000001000019114202cb0000040f000400000000000200000478060000410000000205000039000000000065041b0000012c060000390000000305000039000000000065041b00000454022001970000045405100198000003330000613d000000000520004c000003330000613d000000000530004c000003330000613d000000800010043f000000000100041a0000047b01100197000000000121019f000000000010041b0000000101000039000000000031041b00000000020404330000047c0120009c000003410000813d000300000004001d0000000804000039000000000304041a000000000024041b000000000132004b000400000002001d000003180000813d000000000040043500000020020000390000000001000019000200000004001d000100000003001d114202980000040f00000002040000290000000402000029000000000221001900000001030000290000000001310019000000000312004b000003180000813d000000000002041b0000000102200039000003130000013d000000000040043500000020020000390000000001000019114202980000040f000000040600002900000000020000190000000305000029000000000362004b0000032b0000813d000000000301041a0000047b03300197000000200550003900000000040504330000045404400197000000000343019f000000000031041b000000010220003900000001011000390000031f0000013d000000000100041100000454011001970000000402000039000000000302041a0000047b03300197000000000113019f000000000012041b000000000001042d000000400100043d00000044021000390000047903000041000000000032043500000024021000390000000c0300003900000000003204350000047a0200004100000000002104350000000402100039000000200300003900000000003204350000006402000039114202cb0000040f000004580100004100000000001004350000004101000039000000040010043f00000024020000390000000001000019114202cb0000040f000000040110008a000000010200008a0000045303000041000000000221004b000000000200001900000000020320190000045301100197000004530410009c00000000030080190000045301100167000004530110009c00000000010200190000000001036019000000000110004c000003580000613d000000000001042d00000000010000190000000002000019114202cb0000040f000000040110008a00000453020000410000001f0310008c000000000300001900000000030220190000045301100197000000000410004c0000000002008019000004530110009c00000000010300190000000001026019000000000110004c0000036c0000613d00000004010000390000000201100367000000000101043b000000000001042d00000000010000190000000002000019114202cb0000040f0001000000000002000000000301041a000100000002001d000000000223004b0000037c0000a13d000000000010043500000020020000390000000001000019114202980000040f000000010200002900000000012100190000000002000019000000000001042d000004580100004100000000001004350000003201000039000000040010043f00000024020000390000000001000019114202cb0000040f0000000802000039000000000302041a000000000313004b0000038c0000a13d00000000002004350000047d01100041000000000101041a0000045401100197000000000001042d00000000010000190000000002000019114202cb0000040f0000000000200435000000200010043f00000040020000390000000001000019114202980000040f000000000001042d00000000001004350000000c01000039000000200010043f00000040020000390000000001000019114202980000040f000000000201041a00000454072001970000000102100039000000000202041a0000000203100039000000000303041a0000000304100039000000000404041a0000000505100039000000000605041a0000000401100039000000000101041a000000ff0510018f0000000001070019000000000001042d000000a0081000390000000000780435000000000660004c0000000006000019000000010600c0390000008007100039000000000067043500000060061000390000000000560435000000400510003900000000004504350000002004100039000000000034043500000454022001970000000000210435000000c001100039000000000001042d000000040110008a00000453020000410000001f0310008c000000000300001900000000030220190000045301100197000000000410004c0000000002008019000004530110009c00000000010300190000000001026019000000000110004c000003ce0000613d00000004010000390000000201100367000000000101043b000004540210009c000003ce0000213d000000000001042d00000000010000190000000002000019114202cb0000040f000000040110008a00000453020000410000003f0310008c000000000300001900000000030220190000045301100197000000000410004c0000000002008019000004530110009c00000000010300190000000001026019000000000110004c000003e40000613d00000002020003670000000401200370000000000101043b0000002402200370000000000202043b000000000001042d00000000010000190000000002000019114202cb0000040f0000002003000039000000000431043600000000030204330000000000340435000000400400008a00000000041400490000004005100039000000050130021000000000011500190000000006000019000000000736004b0000040c0000813d0000000007140019000000000575043600000020022000390000000008020433000000000708043300000000017104360000000009000019000000000a79004b000004020000813d000000000a1900190000002009900039000000000b890019000000000b0b04330000000000ba0435000003fa0000013d000000000879004b000004060000a13d000000000817001900000000000804350000001f07700039000000200800008a000000000787016f00000000017100190000000106600039000003f10000013d000000000001042d0001000000000002000100000002001d00000000001004350000000b01000039000000200010043f00000040020000390000000001000019114202980000040f0000000102000029000000000301041a000000000323004b000004220000a13d1142036f0000040f0000000303200210000000ff0230008c0000000002000019000004200000213d000000000101041a000000000231022f0000000001020019000000000001042d00000000010000190000000002000019114202cb0000040f00000000001004350000000501000039000000200010043f00000040020000390000000001000019114202980000040f000000000101041a000000000001042d00000000001004350000000901000039000000200010043f00000040020000390000000001000019114202980000040f0000000202100039000000000302041a0000000102100039000000000202041a000000ff0220018f000000000501041a0000000301100039000000000101041a000000ff0410018f0000000001050019000000000001042d0000000002210436000000040630008c0000044b0000813d000000000550004c0000000005000019000000010500c039000000600610003900000000005604350000004005100039000000000045043500000000003204350000008001100039000000000001042d000004580100004100000000001004350000002101000039000000040010043f00000024020000390000000001000019114202cb0000040f000000040110008a00000453020000410000005f0310008c000000000300001900000000030220190000045301100197000000000410004c0000000002008019000004530110009c00000000010300190000000001026019000000000110004c000004690000613d00000002020003670000004401200370000000000301043b000000030130008c000004690000213d0000000401200370000000000101043b0000002402200370000000000202043b000000000001042d00000000010000190000000002000019114202cb0000040f00000000001004350000000a01000039000000200010043f00000040020000390000000001000019114202980000040f000000000101041a000000000001042d000000040110008a00000453020000410000003f0310008c000000000300001900000000030220190000045301100197000000000410004c0000000002008019000004530110009c00000000010300190000000001026019000000000110004c000004890000613d00000002020003670000000401200370000000000101043b000004540310009c000004890000213d0000002402200370000000000202043b000000000001042d00000000010000190000000002000019114202cb0000040f000004540110019700000000001004350000000601000039000000200010043f00000040020000390000000001000019114202980000040f000000000001042d000000040110008a00000453020000410000005f0310008c000000000300001900000000030220190000045301100197000000000410004c0000000002008019000004530110009c00000000010300190000000001026019000000000110004c000004ab0000613d00000002030003670000002401300370000000000201043b000000030120008c000004ab0000213d0000000401300370000000000101043b0000004403300370000000000303043b000000000001042d00000000010000190000000002000019114202cb0000040f000000040110008a00000453020000410000003f0310008c000000000300001900000000030220190000045301100197000000000410004c0000000002008019000004530110009c00000000010300190000000001026019000000000110004c000004c30000613d00000002010003670000002402100370000000000202043b000004540320009c000004c30000213d0000000401100370000000000101043b000000000001042d00000000010000190000000002000019114202cb0000040f000000000110004c000004c90000613d000000000001042d000000400100043d00000044021000390000047e03000041000000000032043500000024021000390000000a0300003900000000003204350000047a0200004100000000002104350000000402100039000000200300003900000000003204350000006402000039114202cb0000040f0001000000000002000100000001001d0000000401000039000000000101041a00000454011001970000000002000411000000000112004b00000000010000190000000101006039114204c60000040f00000001010000290000045401100198000100000001001d0000000001000019000000010100c039114205020000040f000000000100041a0000047b011001970000000102000029000000000121019f000000000010041b000000400100043d000000000021043500000452020000410000000003000414000004520430009c0000000003028019000004520410009c00000000010280190000004001100210000000c002300210000000000112019f0000047f011001c70000800d0200003900000001030000390000048004000041114211380000040f0000000101200190000004ff0000613d000000000001042d00000000010000190000000002000019114202cb0000040f000000000110004c000005050000613d000000000001042d000000400100043d0000004402100039000004810300004100000000003204350000002402100039000000070300003900000000003204350000047a0200004100000000002104350000000402100039000000200300003900000000003204350000006402000039114202cb0000040f0001000000000002000100000001001d0000000401000039000000000101041a00000454011001970000000002000411000000000112004b00000000010000190000000101006039114204c60000040f00000002010000390000000102000029000000000021041b000000000001042d0001000000000002000100000001001d0000000401000039000000000101041a00000454011001970000000002000411000000000112004b00000000010000190000000101006039114204c60000040f0000000102000029000000000120004c000005420000613d0000000103000039000000000023041b000000400100043d000000000021043500000452020000410000000004000414000004520540009c0000000004028019000004520510009c00000000010280190000004001100210000000c002400210000000000112019f0000047f011001c70000800d020000390000048204000041114211380000040f0000000101200190000005500000613d000000000001042d000000400100043d00000044021000390000048303000041000000000032043500000024021000390000000b0300003900000000003204350000047a0200004100000000002104350000000402100039000000200300003900000000003204350000006402000039114202cb0000040f00000000010000190000000002000019114202cb0000040f0001000000000002000100000001001d0000000401000039000000000101041a00000454011001970000000002000411000000000112004b00000000010000190000000101006039114204c60000040f00000001010000290000045401100198000100000001001d0000000001000019000000010100c039114205020000040f0000000801000039000000000201041a000000130320008c000005ae0000213d00000000030000190000000106000029000000000401041a000000000523004b000005840000813d000000000434004b000005a70000a13d000000000010043500000001043000390000047d03300041000000000303041a0000045403300197000000000363004b0000000003040019000005690000c13d000000400100043d00000044021000390000048603000041000000000032043500000024021000390000000e0300003900000000003204350000047a0200004100000000002104350000000402100039000000200300003900000000003204350000006402000039114202cb0000040f000004560240009c000005bc0000813d0000000102400039000000000021041b00000000001004350000047d02400041000000000302041a0000047b03300197000000000363019f000000000032041b000000000101041a000000000210004c000005c30000613d000000400200043d00000020032000390000000000630435000000010110008a000000000012043500000452010000410000000003000414000004520430009c0000000003018019000004520420009c00000000010240190000004001100210000000c002300210000000000112019f00000484011001c70000800d0200003900000001030000390000048504000041114211380000040f0000000101200190000005ca0000613d000000000001042d000004580100004100000000001004350000003201000039000000040010043f00000024020000390000000001000019114202cb0000040f000000400100043d0000004402100039000004870300004100000000003204350000002402100039000000100300003900000000003204350000047a0200004100000000002104350000000402100039000000200300003900000000003204350000006402000039114202cb0000040f000004580100004100000000001004350000004101000039000000040010043f00000024020000390000000001000019114202cb0000040f000004580100004100000000001004350000001101000039000000040010043f00000024020000390000000001000019114202cb0000040f00000000010000190000000002000019114202cb0000040f0004000000000002000200000002001d000400000001001d0000000401000039000000000101041a00000454011001970000000002000411000000000112004b00000000010000190000000101006039114204c60000040f0000000801000039000300000001001d000000000201041a000100000002001d0000000401000029000000000112004b00000000010000190000000101002039114206210000040f00000002010000290000045401100198000200000001001d0000000001000019000000010100c039114205020000040f000000020500002900000004010000290000000102000029000000000112004b000006170000a13d0000000301000029000000000010043500000004040000290000047d01400041000100000001001d000000000101041a000000400200043d00000040032000390000000000530435000004540110019700000020032000390000000000130435000000000042043500000452010000410000000003000414000004520430009c0000000003018019000004520420009c00000000010240190000004001100210000000c002300210000000000112019f00000488011001c70000800d0200003900000001030000390000048904000041114211380000040f00000001012001900000061e0000613d0000000301000029000000000101041a0000000402000029000000000121004b0000000202000029000006170000a13d000000030100002900000000001004350000000103000029000000000103041a0000047b01100197000000000121019f000000000013041b000000000001042d000004580100004100000000001004350000003201000039000000040010043f00000024020000390000000001000019114202cb0000040f00000000010000190000000002000019114202cb0000040f000000000110004c000006240000613d000000000001042d000000400100043d00000044021000390000048a03000041000000000032043500000024021000390000000b0300003900000000003204350000047a0200004100000000002104350000000402100039000000200300003900000000003204350000006402000039114202cb0000040f0004000000000002000400000001001d0000000401000039000000000101041a00000454011001970000000002000411000000000112004b00000000010000190000000101006039114204c60000040f0000000801000039000300000001001d000000000201041a000200000002001d0000000401000029000000000112004b00000000010000190000000101002039114206210000040f000000030200002900000004010000290000000203000029000000000113004b0000067e0000a13d000000000020043500000004040000290000047d01400041000100000001001d000000000101041a0000045401100197000000400200043d00000020032000390000000000130435000000000042043500000452010000410000000003000414000004520430009c0000000003018019000004520420009c00000000010240190000004001100210000000c002300210000000000112019f00000484011001c70000800d0200003900000001030000390000048b04000041114211380000040f0000000101200190000006850000613d00000003040000290000000000400435000000000104041a0000000402000029000000000121004b0000067e0000a13d0000000103000029000000000103041a0000047b0110019700000002020000290000048c02200041000000000202041a0000045402200197000000000121019f000000000013041b000000000104041a000000000210004c000006880000613d00000000004004350000048c02100041000000000302041a0000047b03300197000000000032041b000000010110008a000000000014041b000000000001042d000004580100004100000000001004350000003201000039000000040010043f00000024020000390000000001000019114202cb0000040f00000000010000190000000002000019114202cb0000040f000004580100004100000000001004350000003101000039000000040010043f00000024020000390000000001000019114202cb0000040f0000000401000039000000000101041a00000454011001970000000002000411000000000112004b00000000010000190000000101006039114204c60000040f0000000801000039000000000201041a000000000001041b000000000320004c000006a40000613d00000000001004350000047d010000410000047d02200041000000000321004b000006a40000813d000000000001041b00000001011000390000069f0000013d000000000001042d0001000000000002000100000001001d0000000401000039000000000101041a00000454011001970000000002000411000000000112004b00000000010000190000000101006039114204c60000040f00000003010000390000000102000029000000000021041b000000000001042d000000000110004c000006b60000613d000000000001042d000000400100043d00000044021000390000048d03000041000000000032043500000024021000390000000c0300003900000000003204350000047a0200004100000000002104350000000402100039000000200300003900000000003204350000006402000039114202cb0000040f0008000000000002000500000002001d000700000001001d000000400200043d0000048e01000041000800000002001d00000000001204350000000001000414000600000001001d0000047501000041000000000010043900000000010004120000000400100443000000240000044300008005010000390000004402000039114202af0000040f0000045402100197000000040120008c000006e00000613d00000004040000390000002006000039000000060100002900000008030000290000000005030019114202610000040f000000000110004c0000082b0000613d0000001f040000390000000101400031000000200500008a000000000251016f00000008060000290000000001620019000000000221004b00000000020000190000000102004039000004550310009c0000081d0000213d00000001022001900000081d0000c13d000300000005001d000400000004001d000000400010043f000004530100004100000001020000310000001f0320008c000000000300001900000000030120190000045302200197000000000420004c0000000001008019000004530220009c000000000103c019000000000110004c0000081a0000613d0000000001060433000004540210009c0000081a0000213d0000000002000411000000000112004b00000000010000190000000101006039114206b30000040f000000000200041a000000400700043d0000048f010000410000000001170436000800000001001d00000004037000390000000001000414000000070400002900000000004304350000045402200197000000040320008c000600000007001d000007190000613d00000024040000390000000003070019000000000507001900000000060000191142022a0000040f0000000607000029000000000110004c0000082b0000613d000000030100036700000001030000310000001f0230018f0000000503300272000007270000613d000000000400001900000005054002100000000006570019000000000551034f000000000505043b00000000005604350000000104400039000000000534004b0000071f0000413d000000000420004c000007360000613d0000000503300210000000000131034f00000000033700190000000302200210000000000403043300000000042401cf000000000424022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000141019f0000000000130435000000040100002900000001011000310000000302000029000000000221016f0000000001720019000000000221004b00000000020000190000000102004039000004550310009c0000081d0000213d00000001022001900000081d0000c13d000000400010043f00000453020000410000000101000031000000800310008c000000000300001900000000030240190000045304100197000000000540004c000000000200a019000004530440009c000000000203c019000000000220004c0000081a0000c13d0000000004070433000004550340009c0000081a0000213d00000000027100190000000001740019000400000002001d114208520000040f000000060300002900000008010000290000000001010433000004550210009c0000081a0000213d00000000013100190000000402000029114208520000040f0000000603000029000000600130003900000000040104330000000802000039000000000102041a000000000110004c000800000004001d000007f80000613d000300000002001d000000400300043d000004900130009c0000081d0000213d0000008001300039000000400010043f000000070100002900000000051304360000000502000029000000040120008c000008240000813d0000000004030019000600000004001d00000060034000390000000101000039000200000003001d000000000013043500000000002504350000004001400039000100000001001d0000000000010435000000080100002900000000001004350000000901000039000000200010043f00000040020000390000000001000019000400000005001d114202980000040f00000006020000290000000002020433000000000021041b00000004020000290000000002020433000000030320008c000008240000213d0000000103100039000000000403041a000001000500008a000000000454016f000000000224019f000000000023041b000000010200002900000000020204330000000203100039000000000023041b0000000301100039000000000201041a000000000252016f00000002030000290000000003030433000000000330004c0000000003000019000000010300c039000000000232019f000000000021041b0000049101000041000000400200043d000600000002001d00000000001004390000800b010000390000000402000039114202af0000040f00000006040000290000004002400039000000070300002900000000003204350000006002400039000000000012043500000020014000390000000803000029000000000031043500000060020000390000000000240435000004900240009c0000081d0000213d0000008002400039000000400020043f0000000002040433114202980000040f000600000001001d00000000001004350000000a01000039000000200010043f0000004002000039000400000002001d0000000001000019114202980000040f0000000802000029000000000021041b000000060100002900000000001004350000000501000039000000200010043f00000000010000190000000402000029114202980000040f00000491020000410000000000200439000400000001001d0000800b010000390000000402000039114202af0000040f0000000302000039000000000202041a000000010300008a000000000332013f000000000331004b0000084b0000213d00000000011200190000000402000029000000000012041b0000000301000029000000000301041a000000400100043d000400000001001d00000005020000291142088d0000040f000000040400002900000000014100490000045202000041000004520340009c000000000302001900000000030440190000004003300210000004520410009c00000000010280190000006001100210000000000131019f0000000003000414000004520430009c0000000002034019000000c002200210000000000121019f00000476011001c70000800d0200003900000004030000390000049204000041000000080500002900000006060000290000000707000029114211380000040f00000001012001900000081a0000613d0000000801000029000000000001042d00000040013000390000000001010433000600000001001d000000400100043d000400000001001d000000050200002900000000030000191142088d0000040f000000040400002900000000014100490000045202000041000004520340009c000000000302001900000000030440190000004003300210000004520410009c00000000010280190000006001100210000000000131019f0000000003000414000004520430009c0000000002034019000000c002200210000000000121019f00000476011001c70000800d0200003900000004030000390000049204000041000000080500002900000006060000290000000707000029114211380000040f0000000101200190000007f60000c13d00000000010000190000000002000019114202cb0000040f000004580100004100000000001004350000004101000039000000040010043f00000024020000390000000001000019114202cb0000040f000004580100004100000000001004350000002101000039000000040010043f00000024020000390000000001000019114202cb0000040f0000000302000367000000400100043d00000001040000310000001f0340018f00000005044002720000083a0000613d000000000500001900000005065002100000000007610019000000000662034f000000000606043b00000000006704350000000105500039000000000645004b000008320000413d000000000530004c000008490000613d0000000504400210000000000242034f00000000044100190000000303300210000000000504043300000000053501cf000000000535022f000000000202043b0000010003300089000000000232022f00000000023201cf000000000252019f00000000002404350000000102000031114202cb0000040f000004580100004100000000001004350000001101000039000000040010043f00000024020000390000000001000019114202cb0000040f0000001f031000390000045304000041000000000523004b0000000005000019000000000504401900000453062001970000045303300197000000000763004b000000000400a019000000000363013f000004530330009c00000000030500190000000003046019000000000330004c0000088a0000613d0000000043010434000004560130009c000008830000813d0000003f01300039000000200500008a000000000551016f000000400100043d0000000005510019000000000615004b00000000060000190000000106004039000004550750009c000008830000213d0000000106600190000008830000c13d000000400050043f00000000053104360000000006340019000000000226004b0000088a0000213d0000000002000019000000000632004b0000087e0000813d00000000065200190000000007240019000000000707043300000000007604350000002002200039000008760000013d000000000232004b000008820000a13d00000000023500190000000000020435000000000001042d000004580100004100000000001004350000004101000039000000040010043f00000024020000390000000001000019114202cb0000040f00000000010000190000000002000019114202cb0000040f000000040420008c000008960000813d000000200410003900000000003404350000000000210435000000400210003900000000000204350000006001100039000000000001042d000004580100004100000000001004350000002101000039000000040010043f00000024020000390000000001000019114202cb0000040f000d000000000002000900000003001d000800000002001d000a00000001001d000000400200043d0000048e01000041000b00000002001d00000000001204350000000001000414000d00000001001d000004750100004100000000001004390000000001000412000700000001001d0000000400100443000000240000044300008005010000390000004402000039114202af0000040f0000045402100197000000040120008c000008bb0000613d000000040400003900000020060000390000000d010000290000000b030000290000000005030019114202610000040f000000000110004c00000b240000613d0000001f01000039000c00000001001d0000000101100031000000200200008a000d00000002001d000000000221016f0000000b050000290000000001520019000000000221004b00000000020000190000000102004039000004550310009c00000b1d0000213d000000010220019000000b1d0000c13d000000400010043f000004530100004100000001020000310000001f0320008c000000000300001900000000030120190000045302200197000000000420004c0000000001008019000004530220009c000000000103c019000000000110004c00000b1a0000613d0000000001050433000004540210009c00000b1a0000213d0000000002000411000600000002001d000000000112004b00000000010000190000000101006039114206b30000040f0000000801000039000000000101041a000000000110004c00000b190000c13d000000000200041a000000400500043d00000493010000410000000000150435000000040350003900000000010004140000000a0400002900000000004304350000045402200197000500000002001d000000040220008c000008fa0000613d0000002404000039000000800600003900000005020000290000000003050019000b00000005001d0000000b05000029114202610000040f0000000b05000029000000000110004c00000b240000613d0000000c0100002900000001011000310000000d02000029000000000221016f0000000001520019000000000221004b00000000020000190000000102004039000004550310009c00000b1d0000213d000000010220019000000b1d0000c13d000000400010043f0000000102500031000000000105001911420b520000040f000b00000001001d0000000012010434000300000001001d000000400500043d0000049401000041000000000015043500000000010004140000045402200197000000040320008c0000091d0000613d0000000404000039000000a0060000390000000003050019000400000005001d0000000405000029114202610000040f0000000405000029000000000110004c00000b240000613d0000000c0100002900000001011000310000000d02000029000000000221016f0000000001520019000000000221004b00000000020000190000000102004039000004550310009c00000b1d0000213d000000010220019000000b1d0000c13d000000400010043f0000000102500031000000000105001911420b820000040f0000000b0100002900000040011000390000000001010433000000040310008c00000b440000813d000000000310004c000009490000613d000000010110008c0000095c0000c13d000000000120004c00000b4b0000613d000004532120012c00000453030000410000000004230049000000000204c019000004955430012b000000000114013f0000000003530049000000000305601900000000322300d9000000ff011002120000000003210049000000000113019f0000000001026019000000000320004c0000000001026019000b00000001001d000009850000013d000000000102001911420ba00000040f0000045302000041000004964320012b0000000005420049000000000405c019000004535110012c000000000131013f0000000002520049000000000205601900000000324200d9000000ff011002120000000003210049000000000113019f0000000001026019000000000320004c0000000001026019000b00000001001d000009850000013d000b00000002001d00000003010000290000000002010433000000400500043d0000049401000041000000000015043500000000010004140000045402200197000000040320008c0000096f0000613d0000000404000039000000a0060000390000000003050019000400000005001d0000000405000029114202610000040f0000000405000029000000000110004c00000b240000613d0000000c0100002900000001011000310000000d02000029000000000221016f0000000001520019000000000221004b00000000020000190000000102004039000004550310009c00000b1d0000213d000000010220019000000b1d0000c13d000000400010043f0000000102500031000000000105001911420b820000040f000400000002001d0000000b0100002911420ba00000040f000000040200002911420bc40000040f000b00000001001d11420be90000040f00000000020100190000000801000029000400000002001d00000000011204360000000b02000029000b00000002001d000300000001001d0000000000210435000000400500043d00000497010000410000000000150435000000040250003900000000010004140000000a0300002900000000003204350000000502000029000000040220008c000009a20000613d0000002404000039000000200600003900000005020000290000000003050019000500000005001d0000000505000029114202610000040f0000000505000029000000000110004c00000b240000613d0000000c0100002900000001011000310000000d02000029000000000221016f0000000001520019000000000221004b00000000020000190000000102004039000004550310009c00000b1d0000213d000000010220019000000b1d0000c13d000000400010043f00000453010000410000000102000031000000200320008c000000000300001900000000030140190000045302200197000000000420004c000000000100a019000004530220009c000000000103c019000000000110004c00000b1a0000c13d000000000105043300000004020000290000004002200039000200000002001d00000000001204350000049801000041000000400200043d000500000002001d00000000001204350000000001000414000100000001001d0000047501000041000000000010043900000007010000290000000400100443000000240000044300008005010000390000004402000039114202af0000040f0000045402100197000000040120008c000009d90000613d00000004040000390000002006000039000000010100002900000005030000290000000005030019114202610000040f000000000110004c00000b240000613d0000000c0100002900000001011000310000000d02000029000000000221016f00000005050000290000000001520019000000000221004b00000000020000190000000102004039000004550310009c00000b1d0000213d000000010220019000000b1d0000c13d000000400010043f00000453010000410000000102000031000000200320008c000000000300001900000000030140190000045302200197000000000420004c000000000100a019000004530220009c000000000103c019000000000110004c00000b1a0000c13d0000000003050433000004540130009c00000b1a0000213d0000000901000029000000030110008c00000b440000213d0000000902000029000000000120004c000700000003001d00000a3e0000613d000000010120008c00000a7d0000c13d00000499010000410000000000100439000000040030044300008002010000390000002402000039114202af0000040f0000000705000029000000000110004c00000b1a0000613d000000400300043d0000049c0100004100000000001304350000000001000414000000040200002900000000020204330000000404300039000000000024043500000003020000290000000002020433000000240430003900000000002404350000000202000029000000000202043300000044043000390000000000240435000000040250008c00000a230000613d000000640400003900000000020500190000000005030019000900000003001d00000000060000191142022a0000040f0000000903000029000000000110004c00000b240000613d0000000c0100002900000001011000310000000d02000029000000000121016f0000000003310019000000000113004b00000000010000190000000101004039000004550230009c00000b1d0000213d000000010110019000000b1d0000c13d000000400030043f00000453010000410000000102000031000d00000003001d000000000320004c000000000300001900000000030140190000045302200197000000000420004c000000000100a019000004530220009c000000000103c019000000000110004c00000af70000613d00000b1a0000013d00000499010000410000000000100439000000040030044300008002010000390000002402000039114202af0000040f0000000705000029000000000110004c00000b1a0000613d000000400300043d0000049d0100004100000000001304350000000001000414000000040200002900000000020204330000000404300039000000000024043500000003020000290000000002020433000000240430003900000000002404350000000202000029000000000202043300000044043000390000000000240435000000040250008c00000a620000613d000000640400003900000000020500190000000005030019000900000003001d00000000060000191142022a0000040f0000000903000029000000000110004c00000b240000613d0000000c0100002900000001011000310000000d02000029000000000121016f0000000003310019000000000113004b00000000010000190000000101004039000004550230009c00000b1d0000213d000000010110019000000b1d0000c13d000000400030043f00000453010000410000000102000031000d00000003001d000000000320004c000000000300001900000000030140190000045302200197000000000420004c000000000100a019000004530220009c000000000103c019000000000110004c00000af70000613d00000b1a0000013d00000499010000410000000000100439000000040030044300008002010000390000002402000039114202af0000040f0000000902000029000000020220008c00000abf0000c13d000000000110004c000000070500002900000b1a0000613d000000400300043d0000049b0100004100000000001304350000000001000414000000040200002900000000020204330000000404300039000000000024043500000003020000290000000002020433000000240430003900000000002404350000000202000029000000000202043300000044043000390000000000240435000000040250008c00000aa40000613d000000640400003900000000020500190000000005030019000900000003001d00000000060000191142022a0000040f0000000903000029000000000110004c00000b240000613d0000000c0100002900000001011000310000000d02000029000000000121016f0000000003310019000000000113004b00000000010000190000000101004039000004550230009c00000b1d0000213d000000010110019000000b1d0000c13d000000400030043f00000453010000410000000102000031000d00000003001d000000000320004c000000000300001900000000030140190000045302200197000000000420004c000000000100a019000004530220009c000000000103c019000000000110004c00000af70000613d00000b1a0000013d000000000110004c000000070500002900000b1a0000613d000000400300043d0000049a0100004100000000001304350000000001000414000000040200002900000000020204330000000404300039000000000024043500000003020000290000000002020433000000240430003900000000002404350000000202000029000000000202043300000044043000390000000000240435000000040250008c00000add0000613d000000640400003900000000020500190000000005030019000900000003001d00000000060000191142022a0000040f0000000903000029000000000110004c00000b240000613d0000000c0100002900000001011000310000000d02000029000000000121016f0000000003310019000000000113004b00000000010000190000000101004039000004550230009c00000b1d0000213d000000010110019000000b1d0000c13d000000400030043f00000453010000410000000102000031000d00000003001d000000000320004c000000000300001900000000030140190000045302200197000000000420004c000000000100a019000004530220009c000000000103c019000000000110004c00000b1a0000c13d000004910100004100000000001004390000800b010000390000000402000039000c00000002001d114202af0000040f0000000d0400002900000040024000390000000b0300002900000000003204350000002002400039000000000032043500000000001404350000006001400039000000000001043500000452010000410000000002000414000004520320009c0000000002018019000004520340009c00000000010440190000004001100210000000c002200210000000000112019f0000049e011001c70000800d020000390000049f040000410000000c03000029000000080500002900000006060000290000000a07000029114211380000040f000000010120019000000b1a0000613d000000000001042d00000000010000190000000002000019114202cb0000040f000004580100004100000000001004350000004101000039000000040010043f00000024020000390000000001000019114202cb0000040f0000000302000367000000400100043d00000001040000310000001f0340018f000000050440027200000b330000613d000000000500001900000005065002100000000007610019000000000662034f000000000606043b00000000006704350000000105500039000000000645004b00000b2b0000413d000000000530004c00000b420000613d0000000504400210000000000242034f00000000044100190000000303300210000000000504043300000000053501cf000000000535022f000000000202043b0000010003300089000000000232022f00000000023201cf000000000252019f00000000002404350000000102000031114202cb0000040f000004580100004100000000001004350000002101000039000000040010043f00000024020000390000000001000019114202cb0000040f000004580100004100000000001004350000001201000039000000040010043f00000024020000390000000001000019114202cb0000040f000000000212004900000453030000410000007f0420008c000000000400001900000000040320190000045302200197000000000520004c0000000003008019000004530220009c00000000020400190000000002036019000000000220004c00000b780000613d000000400200043d000004a00320009c00000b7b0000813d0000008003200039000000400030043f0000000034010434000004540540009c00000b780000213d00000000044204360000000003030433000004540530009c00000b780000213d000000000034043500000040031000390000000003030433000000030430008c00000b780000213d0000004004200039000000000034043500000060011000390000000001010433000000600320003900000000001304350000000001020019000000000001042d00000000010000190000000002000019114202cb0000040f000004580100004100000000001004350000004101000039000000040010043f00000024020000390000000001000019114202cb0000040f000000000212004900000453030000410000009f0420008c000000000400001900000000040320190000045302200197000000000520004c0000000003008019000004530220009c00000000020400190000000002036019000000000220004c00000b9d0000613d0000000026010434000004a10360009c00000b9d0000213d00000080031000390000000005030433000004a10350009c00000b9d0000213d000000000202043300000040031000390000000003030433000000600110003900000000040104330000000001060019000000000001042d00000000010000190000000002000019114202cb0000040f0000045302000041000004a20310009c000000000300001900000000030240190000045304100197000000000540004c000000000200a019000004530440009c000000000203c019000000000220004c00000bbd0000613d0000045302000041000004a30310009c000000000300001900000000030240190000045304100197000004530540009c000000000200a0190000045304400167000004530440009c000000000203c019000000000220004c0000000002000019000000010200c039000000ff03100270000000000223017000000bbd0000c13d00000478211000d1000000000001042d000004580100004100000000001004350000001101000039000000040010043f00000024020000390000000001000019114202cb0000040f000000000320004c00000bdb0000613d000004530310009c00000bcb0000c13d000000010300008a000000000332004b00000be20000613d000004533220012c00000453040000410000000005340049000000000305c019000004535110012c000000000121013f0000000002540049000000000205601900000000323200d9000000ff011002120000000003210049000000000113019f0000000001026019000000000320004c0000000001026019000000000001042d000004580100004100000000001004350000001201000039000000040010043f00000024020000390000000001000019114202cb0000040f000004580100004100000000001004350000001101000039000000040010043f00000024020000390000000001000019114202cb0000040f000000400100043d000004a40210009c00000bf40000813d0000006002100039000000400020043f00000040021000390000000000020435000000200210003900000000000204350000000000010435000000000001042d000004580100004100000000001004350000004101000039000000040010043f00000024020000390000000001000019114202cb0000040f000000000110004c00000bfe0000613d000000000001042d000000400100043d0000004402100039000004a503000041000000000032043500000024021000390000000d0300003900000000003204350000047a0200004100000000002104350000000402100039000000200300003900000000003204350000006402000039114202cb0000040f0014000000000002001000000002001d001400000001001d0000000802000039000000000302041a000000010400003900000000060004110000000005000019000000000135004b000000000100001900000c200000813d000000000020043500000001015000390000047d05500041000000000505041a0000045405500197000000000565004b0000000005010019000000000104001900000c140000c13d001100000006001d11420bfb0000040f000000140100002900000000001004350000000501000039001300000001001d000000200010043f00000040020000390000000001000019114202980000040f000000000101041a000000000110004c00000f970000613d000000140100002900000000001004350000001301000029000000200010043f00000040020000390000000001000019114202980000040f000000000101041a000000010110008c00000fa50000613d000004910100004100000000001004390000800b010000390000000402000039114202af0000040f000000140200002900000000002004350000001302000029000000200020043f001200000001001d00000040020000390000000001000019114202980000040f000000000101041a0000001202000029000000000112004b00000fb30000813d000000140100002900000000001004350000000a01000039000c00000001001d000000200010043f0000004002000039001200000002001d0000000001000019114202980000040f000000000101041a000f00000001001d00000000001004350000000901000039000b00000001001d000000200010043f00000000010000190000001202000029114202980000040f000000400400043d000004a00240009c00000f890000813d0000008002400039000000400020043f000000000201041a00000000052404360000000102100039000000000202041a000000ff0220018f000000040320008c00000f900000813d000a00000005001d00000000002504350000000202100039000000000202041a0000004003400039000d00000003001d0000000000230435001200000004001d00000060024000390000000301100039000000000101041a000000ff011001900000000001000019000000010100c039000000000012043500000f880000613d00000011010000290000045401100197000900000001001d00000000001004350000000601000039000800000001001d000000200010043f0000004002000039000e00000002001d0000000001000019114202980000040f00000014020000290000000000200435000000200010043f00000000010000190000000e02000029114202980000040f000000000101041a000000ff0110019000000f880000c13d000000090100002900000000001004350000000801000029000000200010043f0000004002000039000e00000002001d0000000001000019114202980000040f00000014020000290000000000200435000000200010043f00000000010000190000000e02000029114202980000040f000001000200008a000000000301041a000000000223016f00000001022001bf000000000021041b0000000f0100002900000000001004350000000b01000039000500000001001d000000200010043f00000000010000190000000e02000029114202980000040f00000012020000290000000002020433000e00000001001d0000049301000041000000000300041a000000400500043d00000000001504350000000404500039000000000100041400000000002404350000045402300197000000040320008c00000cbb0000613d000000240400003900000080060000390000000003050019000900000005001d0000000905000029114202610000040f0000000905000029000000000110004c00000fc40000613d0000001f01000039000800000001001d0000000101100031000000200200008a000900000002001d000000000221016f0000000001520019000000000221004b00000000020000190000000102004039000004550310009c00000f890000213d000000010220019000000f890000c13d000000400010043f0000000102500031000000000105001911420b520000040f000700000001001d0000000012010434000400000001001d000000400500043d0000049401000041000000000015043500000000010004140000045402200197000000040320008c00000ce00000613d0000000404000039000000a0060000390000000003050019000600000005001d0000000605000029114202610000040f0000000605000029000000000110004c00000fc40000613d000000080100002900000001011000310000000902000029000000000221016f0000000001520019000000000221004b00000000020000190000000102004039000004550310009c00000f890000213d000000010220019000000f890000c13d000000400010043f0000000102500031000000000105001911420b820000040f000000070100002900000040011000390000000001010433000000030310008c00000f900000213d000000000310004c00000d0b0000613d000000010310008c00000d1d0000c13d000000000120004c00000feb0000613d000004532120012c00000453030000410000000004230049000000000204c019000004955430012b000000000114013f0000000003530049000000000305601900000000322300d9000000ff011002120000000003210049000000000113019f0000000001026019000000000320004c000000000102601900000d480000013d000000000102001911420ba00000040f0000045302000041000004964320012b0000000005420049000000000405c019000004535110012c000000000131013f0000000002520049000000000205601900000000324200d9000000ff011002120000000003210049000000000113019f0000000001026019000000000320004c000000000102601900000d480000013d000000030110008c000000100100002900000d480000613d000600000002001d00000004010000290000000002010433000000400500043d0000049401000041000000000015043500000000010004140000045402200197000000040320008c00000d330000613d0000000404000039000000a0060000390000000003050019000400000005001d0000000405000029114202610000040f0000000405000029000000000110004c00000fc40000613d000000080100002900000001011000310000000902000029000000000221016f0000000001520019000000000221004b00000000020000190000000102004039000004550310009c00000f890000213d000000010220019000000f890000c13d000000400010043f0000000102500031000000000105001911420b820000040f000400000002001d000000060100002911420ba00000040f000000040200002911420bc40000040f000600000001001d0000001001000029000000000110004c0000000e0300002900000d5f0000613d0000001003000029000000060400002900000000014300490000000002340049000000000334004b0000000001022019000004a70210009c00000fe40000813d000000000240004c0000000e0300002900000feb0000613d000004a8211000d100000000214100d9000000070200002900000060022000390000000002020433000000000121004b00000f880000213d000000000203041a000004550120009c00000f890000213d00000001032000390000000e01000029000000000031041b1142036f0000040f0000000302200210000000010500008a00000000032501cf000000ff0420008c0000000003002019000000100400002900000000022401cf0000000002002019000000000232016f000000000353013f000000000401041a000000000334016f000000000223019f0000000e03000029000000000021041b0000000106000039000000000106041a000000000203041a000000000112004b000000140400002900000f680000c13d000200000005001d00000000004004350000001301000029000000200010043f00000040020000390000000001000019001300000006001d114202980000040f0000001302000029000000000021041b11420be90000040f00000000020100190000000f01000029000400000002001d0000000001120436000700000001001d0000000e02000029000000000102041a000300000001001d000000400300043d001300000003001d0000000001130436000100000001001d000000000020043500000020020000390000000001000019114202980000040f0000000306000029000000130500002900000000020500190000000003000019000000000463004b00000da20000813d0000002002200039000000000401041a00000000004204350000000103300039000000010110003900000d9a0000013d00000000015200490000003f011000390000000902000029000000000221016f0000000001520019000000000221004b00000000020000190000000102004039000004550310009c00000f890000213d000000010220019000000f890000c13d000000400010043f000000000305043300000000010500190000000002000019114210770000040f0000001304000029000000000204043300000001032002700000000101200190000000050130021000000dcb0000c13d000000020420008c00000fe40000413d000000010330008a000000000232004b000000020400002900000ff20000a13d00000005023002100000000103000029000000000232001900000000013100190000000001010433000000000341013f0000000002020433000000000332004b00000fe40000213d0000000001210019000000010110027000000dd00000013d000000000232004b00000ff20000a13d0000000001140019000000200110003900000000010104330000000702000029000000000012043500000012010000290000000002010433000000000500041a000000400300043d000004970100004100000000001304350000000404300039000000000100041400000000002404350000045402500197000000040420008c00000de60000613d00000024040000390000002006000039001300000003001d0000001305000029114202610000040f0000001303000029000000000110004c00000fc40000613d000000080100002900000001011000310000000902000029000000000221016f0000000001320019000000000221004b00000000020000190000000102004039000004550410009c00000f890000213d000000010220019000000f890000c13d000000400010043f000004530100004100000001020000310000001f0420008c000000000500001900000000050120190000045302200197000000000420004c0000000001008019000004530220009c000000000105c019000000000110004c00000fc10000613d000000000103043300000004020000290000004002200039000e00000002001d00000000001204350000049801000041000000400200043d001300000002001d00000000001204350000000001000414000300000001001d0000047501000041000000000010043900000000010004120000000400100443000000240000044300008005010000390000004402000039114202af0000040f0000045402100197000000040120008c00000e1d0000613d00000004040000390000002006000039000000030100002900000013030000290000000005030019114202610000040f000000000110004c00000fc40000613d000000080100002900000001011000310000000902000029000000000221016f00000013050000290000000001520019000000000221004b00000000020000190000000102004039000004550310009c00000f890000213d000000010220019000000f890000c13d000000400010043f00000453010000410000000102000031000000200320008c000000000300001900000000030140190000045302200197000000000420004c000000000100a019000004530220009c000000000103c019000000000110004c00000fc10000c13d0000000003050433000004540130009c00000fc10000213d0000000a010000290000000002010433000000030120008c00000f900000213d000000000120004c001300000003001d00000e810000613d000000010120008c00000ebf0000c13d00000499010000410000000000100439000000040030044300008002010000390000002402000039114202af0000040f0000001305000029000000000110004c00000fc10000613d000000400300043d0000049c0100004100000000001304350000000001000414000000040200002900000000020204330000000404300039000000000024043500000007020000290000000002020433000000240430003900000000002404350000000e02000029000000000202043300000044043000390000000000240435000000040250008c00000e670000613d000000640400003900000000020500190000000005030019001300000003001d00000000060000191142022a0000040f0000001303000029000000000110004c00000fc40000613d000000080100002900000001011000310000000902000029000000000221016f0000000001320019000000000221004b00000000020000190000000102004039000004550310009c00000f890000213d000000010220019000000f890000c13d000000400010043f00000453010000410000000102000031000000000320004c000000000300001900000000030140190000045302200197000000000420004c000000000100a019000004530220009c000000000103c019000000000110004c00000f380000613d00000fc10000013d00000499010000410000000000100439000000040030044300008002010000390000002402000039114202af0000040f0000001305000029000000000110004c00000fc10000613d000000400300043d0000049d0100004100000000001304350000000001000414000000040200002900000000020204330000000404300039000000000024043500000007020000290000000002020433000000240430003900000000002404350000000e02000029000000000202043300000044043000390000000000240435000000040250008c00000ea50000613d000000640400003900000000020500190000000005030019001300000003001d00000000060000191142022a0000040f0000001303000029000000000110004c00000fc40000613d000000080100002900000001011000310000000902000029000000000221016f0000000001320019000000000221004b00000000020000190000000102004039000004550310009c00000f890000213d000000010220019000000f890000c13d000000400010043f00000453010000410000000102000031000000000320004c000000000300001900000000030140190000045302200197000000000420004c000000000100a019000004530220009c000000000103c019000000000110004c00000f380000613d00000fc10000013d0000049901000041000000000010043900000004003004430000800201000039000a00000002001d0000002402000039114202af0000040f0000000a02000029000000020220008c00000f010000c13d000000000110004c000000130500002900000fc10000613d000000400300043d0000049b0100004100000000001304350000000001000414000000040200002900000000020204330000000404300039000000000024043500000007020000290000000002020433000000240430003900000000002404350000000e02000029000000000202043300000044043000390000000000240435000000040250008c00000ee70000613d000000640400003900000000020500190000000005030019001300000003001d00000000060000191142022a0000040f0000001303000029000000000110004c00000fc40000613d000000080100002900000001011000310000000902000029000000000221016f0000000001320019000000000221004b00000000020000190000000102004039000004550310009c00000f890000213d000000010220019000000f890000c13d000000400010043f00000453010000410000000102000031000000000320004c000000000300001900000000030140190000045302200197000000000420004c000000000100a019000004530220009c000000000103c019000000000110004c00000f380000613d00000fc10000013d000000000110004c000000130500002900000fc10000613d000000400300043d0000049a0100004100000000001304350000000001000414000000040200002900000000020204330000000404300039000000000024043500000007020000290000000002020433000000240430003900000000002404350000000e02000029000000000202043300000044043000390000000000240435000000040250008c00000f1f0000613d000000640400003900000000020500190000000005030019001300000003001d00000000060000191142022a0000040f0000001303000029000000000110004c00000fc40000613d000000080100002900000001011000310000000902000029000000000221016f0000000001320019000000000221004b00000000020000190000000102004039000004550310009c00000f890000213d000000010220019000000f890000c13d000000400010043f00000453010000410000000102000031000000000320004c000000000300001900000000030140190000045302200197000000000420004c000000000100a019000004530220009c000000000103c019000000000110004c00000fc10000c13d000000140100002900000000001004350000000c01000029000000200010043f0000004002000039001300000002001d0000000001000019114202980000040f000000000001041b0000000f0100002900000000001004350000000b01000029000000200010043f00000000010000190000001302000029114202980000040f000000000001041b0000000102100039000000000002041b0000000202100039000000000002041b0000000301100039000000000001041b0000000f0100002900000000001004350000000501000029000000200010043f00000000010000190000001302000029114202980000040f0000001404000029000000000301041a000000000001041b000000000230004c00000f680000613d000000000010043500000020020000390000000001000019001300000003001d114202980000040f000000140400002900000013020000290000000002210019000000000321004b00000f680000813d000000000001041b000000010110003900000f630000013d000000120100002900000000070104330000000d010000290000000001010433000000400200043d00000060032000390000000000130435000000400120003900000006030000290000000000310435000000200120003900000010030000290000000000310435000000000042043500000452010000410000000003000414000004520430009c0000000003018019000004520420009c00000000010240190000004001100210000000c002300210000000000112019f0000049e011001c70000800d0200003900000004030000390000049f040000410000000f050000290000001106000029114211380000040f000000010120019000000fc10000613d000000000001042d000004580100004100000000001004350000004101000039000000040010043f00000024020000390000000001000019114202cb0000040f000004580100004100000000001004350000002101000039000000040010043f00000024020000390000000001000019114202cb0000040f000000400100043d0000004402100039000004aa0300004100000000003204350000002402100039000000110300003900000000003204350000047a0200004100000000002104350000000402100039000000200300003900000000003204350000006402000039114202cb0000040f000000400100043d0000004402100039000004a90300004100000000003204350000002402100039000000100300003900000000003204350000047a0200004100000000002104350000000402100039000000200300003900000000003204350000006402000039114202cb0000040f000000400100043d0000004402100039000004a603000041000000000032043500000024021000390000000f0300003900000000003204350000047a0200004100000000002104350000000402100039000000200300003900000000003204350000006402000039114202cb0000040f00000000010000190000000002000019114202cb0000040f0000000302000367000000400100043d00000001040000310000001f0340018f000000050440027200000fd30000613d000000000500001900000005065002100000000007610019000000000662034f000000000606043b00000000006704350000000105500039000000000645004b00000fcb0000413d000000000530004c00000fe20000613d0000000504400210000000000242034f00000000044100190000000303300210000000000504043300000000053501cf000000000535022f000000000202043b0000010003300089000000000232022f00000000023201cf000000000252019f00000000002404350000000102000031114202cb0000040f000004580100004100000000001004350000001101000039000000040010043f00000024020000390000000001000019114202cb0000040f000004580100004100000000001004350000001201000039000000040010043f00000024020000390000000001000019114202cb0000040f000004580100004100000000001004350000003201000039000000040010043f00000024020000390000000001000019114202cb0000040f00090000000000020000000802000039000000000302041a000000010400003900000000050004110000000006000019000000000136004b00000000010000190000100b0000813d000000000020043500000001016000390000047d06600041000000000606041a0000045406600197000000000656004b0000000006010019000000000104001900000fff0000c13d11420bfb0000040f0000000701000039000000000501041a000004560250009c000010700000813d00000005025002100000003f02200039000000200600008a000000000262016f000000400300043d0000000002230019000100000003001d000000000332004b00000000030000190000000103004039000004550420009c000010700000213d0000000103300190000010700000c13d000000400020043f000000010200002900000000005204350000000000100435000004ab0700004100000000080200190000000009000019000300000005001d000200000006001d000000000159004b000010670000813d000000000107041a000000010210019000000001031002700000007f0430018f000000000403c0190000001f0340008c00000000030000190000000103002039000000000331013f0000000103300190000010690000c13d000000400a00043d00000000034a0436000000000220004c000900000007001d0000104e0000c13d000001000200008a000000000121016f000000000013043500000020020000390000003f01200039000000000261016f0000000001a20019000000000221004b00000000020000190000000102004039000004550310009c000010700000213d0000000102200190000010700000c13d0000002008800039000000400010043f0000000000a80435000000010990003900000009070000290000000107700039000010270000013d000000000070043500000020020000390000000001000019000800000008001d000700000009001d00060000000a001d000500000004001d000400000003001d114202980000040f000000040b0000290000000507000029000000060a00002900000007090000290000000808000029000000020600002900000003050000290000000002000019000000000372004b0000103d0000813d0000000003b20019000000000401041a0000000000430435000000200220003900000001011000390000105f0000013d0000000101000029000000000001042d000004580100004100000000001004350000002201000039000000040010043f00000024020000390000000001000019114202cb0000040f000004580100004100000000001004350000004101000039000000040010043f00000024020000390000000001000019114202cb0000040f000800000000000200000000050100190000002004500039000000010100008a000500000001001d000400000003001d000700000005001d000300000004001d000000000132004b000010b90000813d0000000001050433000000000121004b000010ba0000a13d00000005012002100000000001410019000000000701043300000000060200190000000008020019000600000002001d0000000108800039000000000138004b000010a80000813d0000000001050433000000000181004b000010ba0000a13d000000050180021000000000014100190000000001010433000000000171004b0000108a0000813d000200000007001d0000000501000029000000000116004b000010c10000613d0000000106600039000800000006001d000000000105001900000000020800190000000003060019000100000008001d114210c80000040f00000001080000290000000806000029000000070500002900000004030000290000000304000029000000060200002900000002070000290000108a0000013d00000000010500190000000003060019000800000006001d114210c80000040f000000070100002900000006020000290000000803000029114210770000040f000000080200002900000007050000290000000501000029000000000112004b000010c10000613d0000000102200039000000040300002900000003040000290000107f0000013d000000000001042d000004580100004100000000001004350000003201000039000000040010043f00000024020000390000000001000019114202cb0000040f000004580100004100000000001004350000001101000039000000040010043f00000024020000390000000001000019114202cb0000040f0000000045010434000000000635004b000010d90000a13d000000000525004b000010d90000a13d00000005033002100000000005430019000000000305043300000005062002100000000004460019000000000604043300000000006504350000000001010433000000000121004b000010d90000a13d0000000000340435000000000001042d000004580100004100000000001004350000003201000039000000040010043f00000024020000390000000001000019114202cb0000040f0001000000000002000000000200041a000000400300043d000004ac0400004100000000004304350000000404300039000000000014043500000000010004140000045402200197000000040420008c000010f30000613d00000024040000390000002006000039000100000003001d0000000105000029114202610000040f0000000103000029000000000110004c000011180000613d0000001f010000390000000101100031000000200200008a000000000221016f0000000001320019000000000221004b00000000020000190000000102004039000004550410009c0000110e0000213d00000001022001900000110e0000c13d000000400010043f000004530100004100000001020000310000001f0420008c000000000500001900000000050120190000045302200197000000000420004c0000000001008019000004530220009c000000000105c019000000000110004c000011150000613d0000000001030433000000000001042d000004580100004100000000001004350000004101000039000000040010043f00000024020000390000000001000019114202cb0000040f00000000010000190000000002000019114202cb0000040f0000000302000367000000400100043d00000001040000310000001f0340018f0000000504400272000011270000613d000000000500001900000005065002100000000007610019000000000662034f000000000606043b00000000006704350000000105500039000000000645004b0000111f0000413d000000000530004c000011360000613d0000000504400210000000000242034f00000000044100190000000303300210000000000504043300000000053501cf000000000535022f000000000202043b0000010003300089000000000232022f00000000023201cf000000000252019f00000000002404350000000102000031114202cb0000040f0000113b002104210000000102000039000000000001042d0000000002000019000000000001042d00001140002104230000000102000039000000000001042d0000000002000019000000000001042d0000114200000432000011430001042e000011440001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff000000000000000000000000000000000000000000000001000000000000000000000002000000000000000000000000000000000000000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffd740df000000000000000000000000000000000000000000000000000000001c53c280000000000000000000000000000000000000000000000000000000001efba6c20000000000000000000000000000000000000000000000000000000035b03c170000000000000000000000000000000000000000000000000000000037a3dba30000000000000000000000000000000000000000000000000000000040e9eda2000000000000000000000000000000000000000000000000000000004357855e000000000000000000000000000000000000000000000000000000004d0cfd9e000000000000000000000000000000000000000000000000000000006af6fa8000000000000000000000000000000000000000000000000000000000800032c10000000000000000000000000000000000000000000000000000000080a1f712000000000000000000000000000000000000000000000000000000008e32e4210000000000000000000000000000000000000000000000000000000093d7fe2c000000000000000000000000000000000000000000000000000000009b902497000000000000000000000000000000000000000000000000000000009d95f1cc00000000000000000000000000000000000000000000000000000000a85c38ef00000000000000000000000000000000000000000000000000000000b9e0336f00000000000000000000000000000000000000000000000000000000bea1675800000000000000000000000000000000000000000000000000000000c2d6f4b000000000000000000000000000000000000000000000000000000000d5c14c7a00000000000000000000000000000000000000000000000000000000dcdfb43100000000000000000000000000000000000000000000000000000000e21e5fe000000000000000000000000000000000000000000000000000000000e448821b00000000000000000000000000000000000000000000000000000000f5ed447c00000000000000000000000000000000000000000000000000000000f851a44000000000000000000000000000000000000000000000000000000000fa8dd49800000000000000000000000000000000000000000000000000000000fd2882800000000000000000000000000000000000000000000000000000000016fff074310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0200000000000000000000000000000000000000000000000000000000000000020000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002540be40057524f4e475f504152414d53000000000000000000000000000000000000000008c379a000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000001f3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee341444d494e5f4f4e4c59000000000000000000000000000000000000000000000200000000000000000000000000000000000020000000000000000000000000477e87af277e7755f85267ef7c6b77cd28610c2c8c2923acdf55fa5b63f18b7756414c55455f3000000000000000000000000000000000000000000000000000230365d79885046a48c9158f0e4840ab95929bbebf5de4be23f7ce5f91a97c654d494e5f414e53574552530000000000000000000000000000000000000000000200000000000000000000000000000000000040000000000000000000000000adfedad3d82b3775bf2dbea70a01327d1f26c0b868eb8ce0963a6e9af1003e85414c52454144595f4c49535445440000000000000000000000000000000000004d41585f4f5241434c455f4e4f444553000000000000000000000000000000000200000000000000000000000000000000000060000000000000000000000000945eb5535c35fb8b656c5c6b7d8bb9d9deba3a44d202bd2b53d58aac4f43db0457524f4e475f494e44455800000000000000000000000000000000000000000003082ced7b8d3c831a021af877c172ae1e0257c3522a135e4d71613438461156f3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee254524144494e475f4f4e4c590000000000000000000000000000000000000000ec44acf200000000000000000000000000000000000000000000000000000000302f81fc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d955391326eef835a3905d9ada7e0cc03c9912f07fac2fe4c8f1b503a0b31a93b55c5ca181eaa005c00000000000000000000000000000000000000000000000000000000feaf968c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000005f5e100a1d54e9b0000000000000000000000000000000000000000000000000000000000b12783000000000000000000000000000000000000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b8380d670eb000000000000000000000000000000000000000000000000000000000298263500000000000000000000000000000000000000000000000000000000e2f5371000000000000000000000000000000000000000000000000000000000b5228d13000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000080000000000000000000000000083ca6e7f81f6f9083ad3b2b715818280203583164505a7fe416501b4ab73699000000000000000000000000000000000000000000000000ffffffffffffff8000000000000000000000000000000000000000000000ffffffffffffffffffff0000000036f9bfb3af7b756fad5cd10396a21346cbefc1bf33a44ab72e36108cffffffffc906404c50848a9052a32efc695decb934103e40cc5bb548d1c9ef75000000000000000000000000000000000000000000000000ffffffffffffffa04e4f545f57484954454c49535400000000000000000000000000000000000000524551554553545f455850495245440000000000000000000000000000000000000000000119799812dea11197f27f0f6e885c8ba7eb31f476caf7411a863388000000000000000000000000000000000000000000000000000000e8d4a51000524551554553545f46494e495348454400000000000000000000000000000000524551554553545f4e4f545f4558495354000000000000000000000000000000a66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6888251135b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a66bbc09a3eaf6022f4eb7277c69b2ae75082a2be7d2131490e5a9d669ad1596
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0x0000000000000000000000007b4872e2096ec9410b6b8c8b7d039589e6ee8022000000000000000000000000d3281cf19a7e49e76d9031faa4259f42ee13fd81000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000004000000000000000000000000e5601264e9e00b7509fdf565102e042bedff254c000000000000000000000000b8e96e6ee3cd36e417ca671f6be3112b9cf451c3000000000000000000000000bbfb41267755323136c5773afd923d543f047f1d000000000000000000000000eb9891f7dac08d1a82a0b95b0d324b4616d8a113
-----Decoded View---------------
Arg [0] : _storageT (address): 0x7B4872e2096Ec9410b6b8C8B7d039589e6eE8022
Arg [1] : _pairsStorage (address): 0xd3281cf19a7E49E76d9031FAa4259F42Ee13fd81
Arg [2] : _minAnswers (uint256): 1
Arg [3] : _nodes (address[]): 0xe5601264e9e00B7509Fdf565102e042bedFf254C,0xB8e96e6eE3CD36e417Ca671F6be3112B9Cf451C3,0xbbFB41267755323136C5773AFd923d543F047f1D,0xeb9891f7DAC08D1a82a0b95b0d324B4616d8a113
-----Encoded View---------------
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.