// This file was autogenerated by Hardhat, do not edit it.
// prettier-ignore
// tslint:disable
// eslint-disable
// biome-ignore format: see above

export interface WitPriceFeedsLegacyUpgradable$Type {
  readonly _format: "hh3-artifact-1";
  readonly contractName: "WitPriceFeedsLegacyUpgradable";
  readonly sourceName: "contracts/apps/WitPriceFeedsLegacyUpgradable.sol";
  readonly abi: [{"inputs":[{"internalType":"contract WitOracle","name":"_witOracle","type":"address"},{"internalType":"bytes32","name":"_versionTag","type":"bytes32"},{"internalType":"bool","name":"_upgradable","type":"bool"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"solver","type":"address"},{"indexed":false,"internalType":"bytes32","name":"codehash","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"constructorParams","type":"bytes"}],"name":"NewPriceFeedsSolver","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"evmOrigin","type":"address"},{"indexed":false,"internalType":"address","name":"evmSender","type":"address"},{"indexed":false,"internalType":"bytes4","name":"erc2362Id4","type":"bytes4"},{"indexed":false,"internalType":"uint256","name":"witOracleQueryId","type":"uint256"}],"name":"PullingUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"baseAddr","type":"address"},{"indexed":true,"internalType":"bytes32","name":"baseCodehash","type":"bytes32"},{"indexed":false,"internalType":"string","name":"versionTag","type":"string"}],"name":"Upgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"caption","type":"string"},{"indexed":false,"internalType":"bytes4","name":"feedId","type":"bytes4"}],"name":"WitFeedDeleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"caption","type":"string"},{"indexed":false,"internalType":"bytes4","name":"feedId","type":"bytes4"},{"indexed":false,"internalType":"bytes32","name":"radHash","type":"bytes32"}],"name":"WitFeedSettled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"caption","type":"string"},{"indexed":false,"internalType":"bytes4","name":"feedId","type":"bytes4"},{"indexed":false,"internalType":"address","name":"solver","type":"address"}],"name":"WitFeedSolverSettled","type":"event"},{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"base","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseFeeOverheadPercentage","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"class","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"codehash","outputs":[{"internalType":"bytes32","name":"_codehash","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dataType","outputs":[{"internalType":"enum Witnet.RadonDataTypes","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultRadonSLA","outputs":[{"components":[{"internalType":"uint8","name":"numWitnesses","type":"uint8"},{"internalType":"uint8","name":"minConsensusPercentage","type":"uint8"},{"internalType":"uint64","name":"witnessReward","type":"uint64"},{"internalType":"uint64","name":"witnessCollateral","type":"uint64"},{"internalType":"uint64","name":"minerCommitRevealFee","type":"uint64"}],"internalType":"struct IWitPriceFeedsLegacy.RadonSLAv1","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"caption","type":"string"}],"name":"deleteFeed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deleteFeeds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"initcode","type":"bytes"},{"internalType":"bytes","name":"constructorParams","type":"bytes"}],"name":"deployPriceSolver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deployer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"initcode","type":"bytes"},{"internalType":"bytes","name":"constructorParams","type":"bytes"}],"name":"determinePriceSolverAddress","outputs":[{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_evmGasPrice","type":"uint256"}],"name":"estimateUpdateBaseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"footprint","outputs":[{"internalType":"bytes4","name":"_footprint","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"caption","type":"string"}],"name":"hash","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"_initData","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isUpgradable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"}],"name":"isUpgradableFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"feedId","type":"bytes4"}],"name":"lastValidQueryId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"feedId","type":"bytes4"}],"name":"lastValidQueryResponse","outputs":[{"components":[{"internalType":"address","name":"reporter","type":"address"},{"internalType":"Witnet.Timestamp","name":"resultTimestamp","type":"uint64"},{"internalType":"Witnet.TransactionHash","name":"resultDrTxHash","type":"bytes32"},{"internalType":"bytes","name":"resultCborBytes","type":"bytes"},{"internalType":"address","name":"disputer","type":"address"}],"internalType":"struct Witnet.QueryResponse","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"feedId","type":"bytes4"}],"name":"latestPrice","outputs":[{"components":[{"internalType":"uint64","name":"value","type":"uint64"},{"internalType":"Witnet.Timestamp","name":"timestamp","type":"uint64"},{"internalType":"Witnet.TransactionHash","name":"drTxHash","type":"bytes32"},{"internalType":"enum IWitPriceFeedsLegacySolver.LatestUpdateStatus","name":"latestStatus","type":"uint8"}],"internalType":"struct IWitPriceFeedsLegacySolver.Price","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4[]","name":"feedIds","type":"bytes4[]"}],"name":"latestPrices","outputs":[{"components":[{"internalType":"uint64","name":"value","type":"uint64"},{"internalType":"Witnet.Timestamp","name":"timestamp","type":"uint64"},{"internalType":"Witnet.TransactionHash","name":"drTxHash","type":"bytes32"},{"internalType":"enum IWitPriceFeedsLegacySolver.LatestUpdateStatus","name":"latestStatus","type":"uint8"}],"internalType":"struct IWitPriceFeedsLegacySolver.Price[]","name":"_prices","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"feedId","type":"bytes4"}],"name":"latestUpdateQueryId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"feedId","type":"bytes4"}],"name":"latestUpdateQueryRequest","outputs":[{"components":[{"internalType":"address","name":"requester","type":"address"},{"internalType":"uint24","name":"callbackGas","type":"uint24"},{"internalType":"bytes","name":"radonBytecode","type":"bytes"},{"internalType":"Witnet.RadonHash","name":"radonHash","type":"bytes32"}],"internalType":"struct Witnet.QueryRequest","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"feedId","type":"bytes4"}],"name":"latestUpdateResponse","outputs":[{"components":[{"internalType":"address","name":"reporter","type":"address"},{"internalType":"Witnet.Timestamp","name":"resultTimestamp","type":"uint64"},{"internalType":"Witnet.TransactionHash","name":"resultDrTxHash","type":"bytes32"},{"internalType":"bytes","name":"resultCborBytes","type":"bytes"},{"internalType":"address","name":"disputer","type":"address"}],"internalType":"struct Witnet.QueryResponse","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"feedId","type":"bytes4"}],"name":"latestUpdateResponseStatus","outputs":[{"internalType":"enum IWitOracleLegacy.QueryResponseStatus","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"feedId","type":"bytes4"}],"name":"latestUpdateResultError","outputs":[{"components":[{"internalType":"uint8","name":"code","type":"uint8"},{"internalType":"string","name":"reason","type":"string"}],"internalType":"struct IWitOracleLegacy.ResultError","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"feedId","type":"bytes4"}],"name":"lookupCaption","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"feedId","type":"bytes4"}],"name":"lookupDecimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"feedId","type":"bytes4"}],"name":"lookupPriceSolver","outputs":[{"internalType":"address","name":"_solverAddress","type":"address"},{"internalType":"string[]","name":"_solverDeps","type":"string[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"feedId","type":"bytes4"}],"name":"lookupWitnetBytecode","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"feedId","type":"bytes4"}],"name":"lookupWitnetRadHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"feedId","type":"bytes4"}],"name":"lookupWitnetRetrievals","outputs":[{"components":[{"internalType":"uint8","name":"argsCount","type":"uint8"},{"internalType":"enum Witnet.RadonRetrievalMethods","name":"method","type":"uint8"},{"internalType":"enum Witnet.RadonDataTypes","name":"dataType","type":"uint8"},{"internalType":"string","name":"url","type":"string"},{"internalType":"string","name":"body","type":"string"},{"internalType":"string[2][]","name":"headers","type":"string[2][]"},{"internalType":"bytes","name":"radonScript","type":"bytes"}],"internalType":"struct Witnet.RadonRetrieval[]","name":"_retrievals","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"prefix","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"feedId","type":"bytes4"}],"name":"requestUpdate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"feedId","type":"bytes4"},{"components":[{"internalType":"uint8","name":"numWitnesses","type":"uint8"},{"internalType":"uint64","name":"unitaryReward","type":"uint64"}],"internalType":"struct IWitPriceFeedsLegacy.RadonSLAv2","name":"legacySLA","type":"tuple"}],"name":"requestUpdate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_baseFeeOverheadPercentage","type":"uint16"}],"name":"settleBaseFeeOverheadPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint8","name":"numWitnesses","type":"uint8"},{"internalType":"uint64","name":"unitaryReward","type":"uint64"}],"internalType":"struct IWitPriceFeedsLegacy.RadonSLAv2","name":"radonSLAv2","type":"tuple"}],"name":"settleDefaultRadonSLA","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"caption","type":"string"},{"internalType":"bytes32","name":"radHash","type":"bytes32"}],"name":"settleFeedRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"caption","type":"string"},{"internalType":"contract IWitOracleRequest","name":"request","type":"address"}],"name":"settleFeedRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"caption","type":"string"},{"internalType":"contract IWitOracleRequestTemplate","name":"template","type":"address"},{"internalType":"string[][]","name":"args","type":"string[][]"}],"name":"settleFeedRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"caption","type":"string"},{"internalType":"address","name":"solver","type":"address"},{"internalType":"string[]","name":"deps","type":"string[]"}],"name":"settleFeedSolver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"specs","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"supportedFeeds","outputs":[{"internalType":"bytes4[]","name":"_ids","type":"bytes4[]"},{"internalType":"string[]","name":"_captions","type":"string[]"},{"internalType":"bytes32[]","name":"_solvers","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"caption","type":"string"}],"name":"supportsCaption","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"feedId","type":"bytes32"}],"name":"valueFor","outputs":[{"internalType":"int256","name":"_value","type":"int256"},{"internalType":"uint256","name":"_timestamp","type":"uint256"},{"internalType":"uint256","name":"_status","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"witOracle","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"witnet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}];
  readonly bytecode: "0x6101c060405260046080526550726963652d60d01b60a0523361014052348015610027575f5ffd5b5060405161508c38038061508c833981016040819052610046916102cf565b60408051808201909152601f81527f696f2e7769746e65742e70726f786961626c652e66656564732e7072696365006020820152819083908233806100a557604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6100ae816101e6565b503060c052151561010052600160025561012091909152805160209182012061016052604080518082019091526011815270696e6578697374656e74206f7261636c6560781b9181019190915261011391506001600160a01b0385163b151590610202565b6101d2637cd906ed60e11b636d11bc5160e11b186001600160e01b031916846001600160a01b031663adb7c3f76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561016d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610191919061031e565b6001600160e01b0319161460405180604001604052806012815260200171756e636f6d706c69616e74206f7261636c6560701b81525061020260201b60201c565b50506001600160a01b0316610180526103c1565b600180546001600160a01b03191690556101ff81610214565b50565b816102105761021081610263565b5050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60408051808201909152601d81527f576974507269636546656564734c656761637955706772616461626c650000006020820152816040516020016102a9929190610363565b60408051601f198184030181529082905262461bcd60e51b825261009c9160040161038c565b5f5f5f606084860312156102e1575f5ffd5b83516001600160a01b03811681146102f7575f5ffd5b6020850151604086015191945092508015158114610313575f5ffd5b809150509250925092565b5f6020828403121561032e575f5ffd5b81516001600160e01b031981168114610345575f5ffd5b9392505050565b5f81518060208401855e5f93019283525090919050565b5f61036e828561034c565b6101d160f51b8152610383600282018561034c565b95945050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a051614bd66104b65f395f50505f81816104bf0152818161056601528181610d70015281816112560152818161142c01528181611ca201528181611eca01528181611efc01528181611fb4015281816121640152818161278e01528181612b8f0152612f4201525f61062501525f610ade01525f6113b701525f818161065501526114f801525f50505f81816105f001528181610925015281816110e2015281816111530152818161119a01526111bc01525f8181610e2e01526115f801525f81816106f501526116b10152614bd65ff3fe60806040526004361061034f575f3560e01c80638da5cb5b116101c5578063d3471e34116100f6578063f14cb81211610094578063f9f34bb61161006e578063f9f34bb614610c21578063fae91a5114610c4d578063ff24fb4f14610c6c578063ff75890f14610c8b5761034f565b8063f14cb81214610b9c578063f2fde38b14610bc8578063f78eea8314610be75761034f565b8063e1c9e3c0116100d0578063e1c9e3c014610b33578063e30c397814610b47578063eb92b29b14610b5b578063ef1dff2b14610b7d5761034f565b8063d3471e3414610aae578063d5f3948814610acd578063d6a3614f14610b005761034f565b8063b411ee9411610163578063c064d3721161013d578063c064d37214610a18578063c3d98ea814610a37578063c5010d1714610a63578063cfae692914610a825761034f565b8063b411ee9414610995578063b8d38c96146109b4578063bff852fa146109d35761034f565b8063a9e954b91161019f578063a9e954b914610917578063abc86c6e1461094a578063ac82c6081461095d578063adb7c3f71461097c5761034f565b80638da5cb5b146108bd5780638df3fdfd146108d9578063a55b471c146108f85761034f565b806354fd4d501161029f578063715018a61161023d578063806d7e8f11610217578063806d7e8f1461082657806384292f071461085257806386ac03e0146108715780638a416ea9146108905761034f565b8063715018a6146107ea57806375dadb32146107fe57806379ba5097146108125761034f565b80636175ff00116102795780636175ff00146106e45780636ab221f8146107245780636b58960a146107555780636d1178e5146107745761034f565b806354fd4d50146106855780635be93984146106995780635c0d9d80146106b85761034f565b8063439fab911161030c5780634efef9c0116102e65780634efef9c0146105b65780635001f3b5146105e257806352d1902d146106145780635479d940146106475761034f565b8063439fab911461053957806346d1d21a1461055857806349492ef11461058a5761034f565b8063029db9581461043a5780630306732e1461046c57806303f3813d1461048f5780631014d375146104ae578063384ac938146104f95780633e088e1214610526575b34801561035a575f5ffd5b505f356001600160e01b03191663e0d20f7360e01b14801561037b57503330145b15610408575f6103a160206103903684613333565b6001600160c01b031916901b610caa565b6006015460408051808201909152601081526f3ab739b2ba3a3632b21039b7b63b32b960811b60208201526001600160a01b0390911691506103e69082151590610ce3565b604051365f82375f5f3683855af43d805f843e818015610404578184f35b8184fd5b6104386040518060400160405280600f81526020016e1b9bdd081a5b5c1b195b595b9d1959608a1b815250610cf5565b005b348015610445575f5ffd5b5061045961045436600461337e565b610d6a565b6040519081526020015b60405180910390f35b348015610477575f5ffd5b50610480610d9b565b60405161046393929190613421565b34801561049a575f5ffd5b506104386104a9366004613556565b610e18565b3480156104b9575f5ffd5b506104e17f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610463565b348015610504575f5ffd5b5061051861051336600461337e565b610fb1565b6040516104639291906135d6565b61045961053436600461337e565b610fc6565b348015610544575f5ffd5b50610438610553366004613713565b61100c565b348015610563575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000006104e1565b348015610595575f5ffd5b506105a96105a436600461337e565b611240565b6040516104639190613757565b3480156105c1575f5ffd5b506105d56105d036600461337e565b6112eb565b604051610463919061377e565b3480156105ed575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000006104e1565b34801561061f575f5ffd5b506104597f000000000000000000000000000000000000000000000000000000000000000081565b348015610652575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040519015158152602001610463565b348015610690575f5ffd5b506105d56113b0565b3480156106a4575f5ffd5b506104596106b336600461337e565b6113e0565b3480156106c3575f5ffd5b506106d76106d236600461337e565b6113f4565b6040516104639190613790565b3480156106ef575f5ffd5b506107177f000000000000000000000000000000000000000000000000000000000000000081565b604051610463919061380a565b34801561072f575f5ffd5b5061074361073e36600461337e565b6114ca565b60405160ff9091168152602001610463565b348015610760575f5ffd5b5061067561076f366004613818565b6114e1565b34801561077f575f5ffd5b5061078861153a565b60405161046391905f60a08201905060ff835116825260ff60208401511660208301526001600160401b0360408401511660408301526001600160401b0360608401511660608301526001600160401b03608084015116608083015292915050565b3480156107f5575f5ffd5b506104386115de565b348015610809575f5ffd5b506105d56115f1565b34801561081d575f5ffd5b5061043861161c565b348015610831575f5ffd5b5061084561084036600461337e565b611624565b60405161046391906138c0565b34801561085d575f5ffd5b5061043861086c3660046139b1565b6116a4565b34801561087c575f5ffd5b5061043861088b3660046139f8565b611873565b34801561089b575f5ffd5b506108a4611948565b6040516001600160e01b03199091168152602001610463565b3480156108c8575f5ffd5b505f546001600160a01b03166104e1565b3480156108e4575f5ffd5b506104596108f336600461337e565b611a46565b348015610903575f5ffd5b506104e1610912366004613a36565b611a5a565b348015610922575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000003f610459565b610459610958366004613ab0565b611b9e565b348015610968575f5ffd5b50610438610977366004613ae4565b611bbf565b348015610987575f5ffd5b506331f74adb60e11b6108a4565b3480156109a0575f5ffd5b506108a46109af366004613713565b611c2c565b3480156109bf575f5ffd5b506104386109ce366004613b45565b611c3a565b3480156109de575f5ffd5b5060408051808201909152601d81527f576974507269636546656564734c656761637955706772616461626c6500000060208201526105d5565b348015610a23575f5ffd5b50610459610a32366004613b60565b611c5a565b348015610a42575f5ffd5b50610a56610a5136600461337e565b611c64565b6040516104639190613bc1565b348015610a6e575f5ffd5b50610675610a7d3660046139f8565b611da7565b348015610a8d575f5ffd5b50610aa1610a9c36600461337e565b611e9f565b6040516104639190613bcf565b348015610ab9575f5ffd5b50610aa1610ac836600461337e565b611f89565b348015610ad8575f5ffd5b506104e17f000000000000000000000000000000000000000000000000000000000000000081565b348015610b0b575f5ffd5b507fe36ea87c48340f2c23c9e1c9f72f5c5165184e75683a4d2a19148e5964c1d20054610459565b348015610b3e575f5ffd5b50610438611fea565b348015610b52575f5ffd5b506104e16120b5565b348015610b66575f5ffd5b5060045460405161ffff9091168152602001610463565b348015610b88575f5ffd5b506105d5610b9736600461337e565b6120c8565b348015610ba7575f5ffd5b50610bbb610bb636600461337e565b612161565b6040516104639190613c3a565b348015610bd3575f5ffd5b50610438610be2366004613818565b6121f7565b348015610bf2575f5ffd5b50610c06610c01366004613b60565b612208565b60408051938452602084019290925290820152606001610463565b348015610c2c575f5ffd5b50610c40610c3b366004613c54565b612292565b6040516104639190613c86565b348015610c58575f5ffd5b50610438610c67366004613cd3565b612367565b348015610c77575f5ffd5b50610438610c86366004613556565b612443565b348015610c96575f5ffd5b506104e1610ca5366004613a36565b61249a565b6001600160e01b0319165f9081527fe36ea87c48340f2c23c9e1c9f72f5c5165184e75683a4d2a19148e5964c1d2016020526040902090565b81610cf157610cf181610cf5565b5050565b60408051808201909152601d81527f576974507269636546656564734c656761637955706772616461626c65000000602082015281604051602001610d3b929190613d04565b60408051601f198184030181529082905262461bcd60e51b8252610d619160040161377e565b60405180910390fd5b5f610d957f000000000000000000000000000000000000000000000000000000000000000083612524565b92915050565b606080606073__$434fc99454de0befe5e255c48ea2d383e7$__630306732e6040518163ffffffff1660e01b81526004015f60405180830381865af4158015610de6573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610e0d9190810190613e9e565b925092509250909192565b610e206125d1565b610e936001600160d01b03197f000000000000000000000000000000000000000000000000000000000000000016610e588688613f97565b6001600160d01b03191614604051806040016040528060128152602001710c4c2c840c6c2e0e8d2dedc40e0e4caccd2f60731b815250610ce3565b6040805180820190915260118152706e6f20736f6c766572206164647265737360781b6020820152610ed1906001600160a01b038516151590610ce3565b6040516303f3813d60e01b815273__$434fc99454de0befe5e255c48ea2d383e7$__906303f3813d90610f109088908890889088908890600401614036565b5f6040518083038186803b158015610f26575f5ffd5b505af4925050508015610f37575060015b610faa57610f436140c4565b806308c379a003610f715750610f576140dc565b80610f625750610f73565b610f6b81610cf5565b50610faa565b505b3d808015610f9c576040519150601f19603f3d011682016040523d82523d5f602084013e610fa1565b606091505b50610f6b6125fd565b5050505050565b5f6060610fbd8361260d565b91509150915091565b6040805160608101825260035461ffff808216835262010000820416602083015264010000000090046001600160401b0316918101919091525f90610d95908390612763565b5f546001600160a01b0316806110425781806020019051810190611030919061415e565b9250905061103d816129e6565b61108a565b336001600160a01b0382161461108a5760405162461bcd60e51b815260206004820152600d60248201526c3737ba103a34329037bbb732b960991b6044820152606401610d61565b611093826129ff565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbe541580159061110457507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbe547f00000000000000000000000000000000000000000000000000000000000000003f145b156111515760405162461bcd60e51b815260206004820152601c60248201527f616c726561647920696e697469616c697a656420636f646568617368000000006044820152606401610d61565b7f00000000000000000000000000000000000000000000000000000000000000003f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc600201557f00000000000000000000000000000000000000000000000000000000000000003f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111f55f546001600160a01b031690565b6001600160a01b03167fe73e754121f0bad1327816970101955bfffdf53d270ac509d777c25be070d7f66112276113b0565b604051611234919061377e565b60405180910390a45050565b604080518082019091525f8152606060208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a77fc1a461128c846113e0565b6040518263ffffffff1660e01b81526004016112aa91815260200190565b5f60405180830381865afa1580156112c4573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d9591908101906141c4565b60605f6112f783610caa565b905061132f81600501545f5f1b14156040518060400160405280600b81526020016a0dcde40a4828840d0c2e6d60ab1b815250610ce3565b611337612b8c565b6001600160a01b0316638a22776482600501546040518263ffffffff1660e01b815260040161136891815260200190565b5f60405180830381865afa158015611382573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526113a99190810190614245565b9392505050565b60606113db7f0000000000000000000000000000000000000000000000000000000000000000612c0d565b905090565b5f6113ea82610caa565b6004015492915050565b61142a60405180608001604052805f6001600160a01b031681526020015f62ffffff168152602001606081526020015f81525090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a667533f611462846113e0565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526024015f60405180830381865afa1580156114a3573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d959190810190614276565b5f6114d482610caa565b6001015460ff1692915050565b5f5f6114f45f546001600160a01b031690565b90507f000000000000000000000000000000000000000000000000000000000000000080156113a95750826001600160a01b0316816001600160a01b0316149392505050565b6040805160a0810182525f808252602082018190529181018290526060810182905260808101919091526003546040805160a08101825262010000830460ff8116808352603360208401526401000000009094046001600160401b031692820183905261ffff169260608201906115b19084614331565b6001600160401b031681526020016115cc60ff851684614367565b6001600160401b031690529392505050565b6115e66125d1565b6115ef5f6129e6565b565b60606113db7f0000000000000000000000000000000000000000000000000000000000000000612cae565b6115ef612d4f565b606061162e612b8c565b6001600160a01b03166377c1125961164584611a46565b6040518263ffffffff1660e01b815260040161166391815260200190565b5f60405180830381865afa15801561167d573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d95919081019061449b565b6116ac6125d1565b6117997f000000000000000000000000000000000000000000000000000000000000000060138111156116e1576116e16137e2565b6116e9612b8c565b6001600160a01b0316634c729104846040518263ffffffff1660e01b815260040161171691815260200190565b602060405180830381865afa158015611731573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117559190614648565b6013811115611766576117666137e2565b146040518060400160405280601481526020017362616420726573756c742064617461207479706560601b815250610ce3565b6040516384292f0760e01b815273__$434fc99454de0befe5e255c48ea2d383e7$__906384292f07906117d490869086908690600401614661565b5f6040518083038186803b1580156117ea575f5ffd5b505af49250505080156117fb575060015b61186e576118076140c4565b806308c379a003611835575061181b6140dc565b806118265750611837565b61182f81610cf5565b50505050565b505b3d808015611860576040519150601f19603f3d011682016040523d82523d5f602084013e611865565b606091505b5061182f6125fd565b505050565b61187b6125d1565b604051630435601f60e51b815273__$434fc99454de0befe5e255c48ea2d383e7$__906386ac03e0906118b49085908590600401614684565b5f6040518083038186803b1580156118ca575f5ffd5b505af49250505080156118db575060015b610cf1576118e76140c4565b806308c379a00361190f57506118fb6140dc565b806119065750611911565b61186e81610cf5565b505b3d80801561193a576040519150601f19603f3d011682016040523d82523d5f602084013e61193f565b606091505b5061186e6125fd565b7fe36ea87c48340f2c23c9e1c9f72f5c5165184e75683a4d2a19148e5964c1d200545f9015611a43576119cf7fe36ea87c48340f2c23c9e1c9f72f5c5165184e75683a4d2a19148e5964c1d1ff6001015f815481106119a9576119a9614697565b905f5260205f2090600891828204019190066004029054906101000a900460e01b612dca565b905060015b7fe36ea87c48340f2c23c9e1c9f72f5c5165184e75683a4d2a19148e5964c1d20054811015611a4157611a357fe36ea87c48340f2c23c9e1c9f72f5c5165184e75683a4d2a19148e5964c1d1ff60010182815481106119a9576119a9614697565b909118906001016119d4565b505b90565b5f611a5082610caa565b6005015492915050565b5f611a636125d1565b604051632956d1c760e21b815273__$434fc99454de0befe5e255c48ea2d383e7$__9063a55b471c90611aa09088908890889088906004016146ab565b602060405180830381865af4925050508015611ad9575060408051601f3d908101601f19168201909252611ad6918101906146dc565b60015b611b4c57611ae56140c4565b806308c379a003611b135750611af96140dc565b80611b045750611b15565b611b0d81610cf5565b50611b96565b505b3d808015611b3e576040519150601f19603f3d011682016040523d82523d5f602084013e611b43565b606091505b50611b0d6125fd565b7f18678abae9a91a452648053bebd7d23122fb9204cddc206fa8193750abb8940f81826001600160a01b03163f8686604051611b8b94939291906146f7565b60405180910390a190505b949350505050565b5f6113a983611bba611bb53686900386018661473c565b612e53565b612763565b611bc76125d1565b61186e8383836001600160a01b0316631eef90526040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c08573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061086c9190614781565b805160208201205f90610d95565b611c426125d1565b6004805461ffff191661ffff92909216919091179055565b5f610d9582612f26565b611c8b604080516080810182525f8082526020820181905291810182905290606082015290565b6040516384ee241160e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201526001600160e01b03198316602482015273__$434fc99454de0befe5e255c48ea2d383e7$__906384ee241190604401608060405180830381865af4925050508015611d2f575060408051601f3d908101601f19168201909252611d2c91810190614798565b60015b610d9557611d3b6140c4565b806308c379a003611d695750611d4f6140dc565b80611d5a5750611d6b565b611d6381610cf5565b50919050565b505b3d808015611d94576040519150601f19603f3d011682016040523d82523d5f602084013e611d99565b606091505b50611d636125fd565b919050565b5f5f611de784848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611c2c92505050565b90506001600160e01b03198116611e8c611e0083610caa565b8054611e0b906147fd565b80601f0160208091040260200160405190810160405280929190818152602001828054611e37906147fd565b8015611e825780601f10611e5957610100808354040283529160200191611e82565b820191905f5260205f20905b815481529060010190602001808311611e6557829003601f168201915b5050505050611c2c565b6001600160e01b03191614949350505050565b6040805160a0810182525f8082526020820181905291810182905260608082015260808101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ca7da98b611f217f000000000000000000000000000000000000000000000000000000000000000085612524565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526024015f60405180830381865afa158015611f62573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d95919081019061482f565b6040805160a0810182525f8082526020820181905291810182905260608082015260808101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ca7da98b611f21846113e0565b611ff26125d1565b73__$434fc99454de0befe5e255c48ea2d383e7$__63e1c9e3c06040518163ffffffff1660e01b81526004015f6040518083038186803b158015612034575f5ffd5b505af4925050508015612045575060015b6115ef576120516140c4565b806308c379a00361207c57506120656140dc565b80612070575061207e565b61207981610cf5565b50565b505b3d8080156120a7576040519150601f19603f3d011682016040523d82523d5f602084013e6120ac565b606091505b506120796125fd565b5f6113db6001546001600160a01b031690565b60606120d382610caa565b80546120de906147fd565b80601f016020809104026020016040519081016040528092919081815260200182805461210a906147fd565b80156121555780601f1061212c57610100808354040283529160200191612155565b820191905f5260205f20905b81548152906001019060200180831161213857829003601f168201915b50505050509050919050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663234fe6e361219a846113e0565b6040518263ffffffff1660e01b81526004016121b891815260200190565b602060405180830381865afa1580156121d3573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d9591906148e4565b6121ff6125d1565b61207981612fe1565b5f5f5f5f61221585611c64565b805160208201519192506001600160401b031690600283606001516003811115612241576122416137e2565b146122735760018360600151600381111561225e5761225e6137e2565b1461226b57610190612276565b610194612276565b60c85b9195506001600160401b0316935061ffff169150509193909250565b6060816001600160401b038111156122ac576122ac6135f9565b60405190808252806020026020018201604052801561230457816020015b6122f1604080516080810182525f8082526020820181905291810182905290606082015290565b8152602001906001900390816122ca5790505b5090505f5b828110156123605761233b84848381811061232657612326614697565b9050602002016020810190610a51919061337e565b82828151811061234d5761234d614697565b6020908102919091010152600101612309565b5092915050565b61236f6125d1565b61237c6020820182614902565b6003805463ffff0000191660ff9290921662010000029190911790556123a8604082016020830161491d565b600380546001600160401b039283166401000000009081026bffffffffffffffff000000001983168117938490556040805160608101825261ffff92831694831694909417845262010000850490911660208401529204909216908201526120799061241390613012565b60405180604001604052806012815260200171696e76616c69642075706461746520534c4160701b815250610ce3565b61244b6125d1565b610faa8585856001600160a01b031663bf7a0bd386866040518363ffffffff1660e01b815260040161247e92919061498d565b6020604051808303815f875af1158015611c08573d5f5f3e3d5ffd5b6040516001628a76f160e01b031981525f9073__$434fc99454de0befe5e255c48ea2d383e7$__9063ff75890f906124dc9088908890889088906004016146ab565b602060405180830381865af41580156124f7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061251b91906146dc565b95945050505050565b5f61252e82610caa565b6004015490508015806125b857505f604051634cddf61560e01b8152600481018390526001600160a01b03851690634cddf61590602401602060405180830381865afa158015612580573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125a49190614a2e565b60ff8111156125b5576125b56137e2565b14155b15610d95576125c682610caa565b600301549392505050565b5f546001600160a01b031633146115ef5760405163118cdaa760e01b8152336004820152602401610d61565b6115ef61260861304d565b610cf5565b5f606061261983610caa565b600601546001600160a01b031691505f612632846130a9565b905080516001600160401b0381111561264d5761264d6135f9565b60405190808252806020026020018201604052801561268057816020015b606081526020019060019003908161266b5790505b5091505f5b815181101561275c576126b08282815181106126a3576126a3614697565b6020026020010151610caa565b80546126bb906147fd565b80601f01602080910402602001604051908101604052809291908181526020018280546126e7906147fd565b80156127325780601f1061270957610100808354040283529160200191612732565b820191905f5260205f20905b81548152906001019060200180831161271557829003601f168201915b505050505083828151811061274957612749614697565b6020908102919091010152600101612685565b5050915091565b5f61276d83610caa565b600501541561295c57604080516303f8890160e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201526001600160e01b031985166024820152835161ffff90811660448301526020850151166064820152908301516001600160401b031660848201523460a482018190529073__$434fc99454de0befe5e255c48ea2d383e7$__906307f112029060c4016040805180830381865af492505050801561284d575060408051601f3d908101601f1916820190925261284a91810190614a4d565b60015b6128c0576128596140c4565b806308c379a003612887575061286d6140dc565b806128785750612889565b61288181610cf5565b50612956565b505b3d8080156128b2576040519150601f19603f3d011682016040523d82523d5f602084013e6128b7565b606091505b506128816125fd565b348110156128fd57336108fc6128d68334614a6f565b6040518115909202915f818181858888f193505050501580156128fb573d5f5f3e3d5ffd5b505b604080513281523360208201526001600160e01b03198816818301526060810184905290517f0bd652a116bb5006c2e07594e8a3fe9b5ba51acf6cd9572568913fda51ad26c49181900360800190a19250610d95915050565b50610d95565b5f61296684610caa565b600601546001600160a01b0316146129b9576129b2612984846130a9565b6040518060400160405280856020015160ff16815260200185604001516001600160401b0316815250613191565b9050610d95565b610d956040518060400160405280600c81526020016b1d5b9adb9bdddb881999595960a21b815250610cf5565b600180546001600160a01b031916905561207981613274565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbe54612a76576040805160608101825260108152600360208201819052630bebc20091909201528054670bebc200000300106bffffffffffffffffffffffff199091161790556004805461ffff1916600a17905550565b805115612b05575f5f82806020019051810190612a939190614a82565b6004805461ffff93841661ffff1990911617905580516003805460208401516040909401516001600160401b0316640100000000026bffffffffffffffff0000000019948616620100000263ffffffff1990921693909516929092179190911791909116919091179055506120799050565b6040805160608101825260035461ffff808216835262010000820416602083015264010000000090046001600160401b031691810191909152612b4790613012565b61207957506040805160608101825260108152600360208201819052630bebc200919092015280546bffffffffffffffffffffffff1916670bebc20000030010179055565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637b1039996040518163ffffffff1660e01b8152600401602060405180830381865afa158015612be9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113db91906146dc565b60605f612c19836132c3565b6001600160401b03811115612c3057612c306135f9565b6040519080825280601f01601f191660200182016040528015612c5a576020820181803683370190505b5090505f5b815181101561236057838160208110612c7a57612c7a614697565b1a60f81b828281518110612c9057612c90614697565b60200101906001600160f81b03191690815f1a905350600101612c5f565b60605f612cba836132fb565b6001600160401b03811115612cd157612cd16135f9565b6040519080825280601f01601f191660200182016040528015612cfb576020820181803683370190505b5090505f5b815181101561236057838160208110612d1b57612d1b614697565b1a60f81b828281518110612d3157612d31614697565b60200101906001600160f81b03191690815f1a905350600101612d00565b3380612d596120b5565b6001600160a01b031614612dc15760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610d61565b612079816129e6565b5f80612dd583610caa565b6005015414612e255781612de883610caa565b60050154604080516001600160e01b031990931660208401528201526060015b604051602081830303815290604052805190602001209050919050565b81612e2f83610caa565b60080154604080516001600160e01b03199093166020840152820152606001612e08565b604080516060810182525f808252602082018190529181019190915260035482516201000090910461ffff1660ff90911610801590612ead575060035460208301516001600160401b036401000000009092048216911610155b15612ee857506040805160608101825260035461ffff168152825160ff16602080830191909152909201516001600160401b03169082015290565b611da26040518060400160405280601781526020017f756e736563757265207570646174652072657175657374000000000000000000815250610cf5565b6004545f90606490612f3c9061ffff1682614b19565b61ffff167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166339a8653e856040518263ffffffff1660e01b8152600401612f8e91815260200190565b602060405180830381865afa158015612fa9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612fcd9190614781565b612fd79190614b33565b610d959190614b4a565b612fe96125d1565b6001600160a01b038116612dc157604051631e4fbdf760e01b81525f6004820152602401610d61565b5f5f826020015161ffff161180156130335750607f826020015161ffff1611155b8015610d95575050604001516001600160401b0316151590565b606060405180604001604052601a8152806020017f576974507269636546656564734c6567616379446174614c69620000000000008152506040516020016130959190614b5d565b604051602081830303815290604052905090565b6001600160e01b031981165f9081527fe36ea87c48340f2c23c9e1c9f72f5c5165184e75683a4d2a19148e5964c1d20160209081526040918290206008908101548351828152610120810190945260609390929091908201610100803683370190505091505f5b6008811015613189578183828151811061312c5761312c614697565b60200260200101906001600160e01b03191690816001600160e01b0319168152505082818151811061316057613160614697565b60209081029190910101516001600160e01b0319161561318957602082901b9150600101613110565b825250919050565b5f5f8351346131a09190614b4a565b90505f5b845181101561326c57306001600160a01b031663abc86c6e838784815181106131cf576131cf614697565b6020908102919091018101516040516001600160e01b031960e086901b811682529091166004820152885160ff166024820152908801516001600160401b0316604482015260640160206040518083038185885af1158015613233573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906132589190614781565b6132629084614b8d565b92506001016131a4565b505092915050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f5b6020811015611da2578181602081106132e0576132e0614697565b1a60f81b6001600160f81b03191615611da2576001016132c5565b5f5b6020811015611da25781816020811061331857613318614697565b1a60f81b6001600160f81b03191615611da2576001016132fd565b80356001600160c01b03198116906008841015612360576001600160c01b031960089490940360031b84901b1690921692915050565b6001600160e01b031981168114612079575f5ffd5b5f6020828403121561338e575f5ffd5b81356113a981613369565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b5f82825180855260208501945060208160051b830101602085015f5b8381101561341557601f198584030188526133ff838351613399565b60209889019890935091909101906001016133e3565b50909695505050505050565b606080825284519082018190525f9060208601906080840190835b818110156134645783516001600160e01b03191683526020938401939092019160010161343c565b5050838103602085015261347881876133c7565b848103604086015285518082526020808801945090910191505f5b818110156134b1578351835260209384019390920191600101613493565b5090979650505050505050565b5f5f83601f8401126134ce575f5ffd5b5081356001600160401b038111156134e4575f5ffd5b6020830191508360208285010111156134fb575f5ffd5b9250929050565b6001600160a01b0381168114612079575f5ffd5b5f5f83601f840112613526575f5ffd5b5081356001600160401b0381111561353c575f5ffd5b6020830191508360208260051b85010111156134fb575f5ffd5b5f5f5f5f5f6060868803121561356a575f5ffd5b85356001600160401b0381111561357f575f5ffd5b61358b888289016134be565b909650945050602086013561359f81613502565b925060408601356001600160401b038111156135b9575f5ffd5b6135c588828901613516565b969995985093965092949392505050565b6001600160a01b03831681526040602082018190525f90611b96908301846133c7565b634e487b7160e01b5f52604160045260245ffd5b604081018181106001600160401b038211171561362c5761362c6135f9565b60405250565b608081018181106001600160401b038211171561362c5761362c6135f9565b60a081018181106001600160401b038211171561362c5761362c6135f9565b601f8201601f191681016001600160401b0381118282101715613695576136956135f9565b6040525050565b604051611a4360e082613670565b5f6001600160401b038211156136c2576136c26135f9565b50601f01601f191660200190565b5f6136da836136aa565b6040516136e78282613670565b8092508481528585850111156136fb575f5ffd5b848460208301375f6020868301015250509392505050565b5f60208284031215613723575f5ffd5b81356001600160401b03811115613738575f5ffd5b8201601f81018413613748575f5ffd5b611b96848235602084016136d0565b6020815260ff82511660208201525f6020830151604080840152611b966060840182613399565b602081525f6113a96020830184613399565b6020815260018060a01b03825116602082015262ffffff60208301511660408201525f6040830151608060608401526137cc60a0840182613399565b9050606084015160808401528091505092915050565b634e487b7160e01b5f52602160045260245ffd5b60148110613806576138066137e2565b9052565b60208101610d9582846137f6565b5f60208284031215613828575f5ffd5b81356113a981613502565b60058110613806576138066137e2565b5f82825180855260208501945060208160051b830101602085015f5b8381101561341557848303601f19018852815183604081015f5b60028110156138a7578682038352613892828551613399565b60209485019493909301929150600101613879565b5060209a8b019a9095509390930192505060010161385f565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b828110156139a557603f19878603018452815160ff815116865260208101516139126020880182613833565b50604081015161392560408801826137f6565b50606081015160e0606088015261393f60e0880182613399565b9050608082015187820360808901526139588282613399565b91505060a082015187820360a08901526139728282613843565b91505060c0820151915086810360c088015261398e8183613399565b9650505060209384019391909101906001016138e6565b50929695505050505050565b5f5f5f604084860312156139c3575f5ffd5b83356001600160401b038111156139d8575f5ffd5b6139e4868287016134be565b909790965060209590950135949350505050565b5f5f60208385031215613a09575f5ffd5b82356001600160401b03811115613a1e575f5ffd5b613a2a858286016134be565b90969095509350505050565b5f5f5f5f60408587031215613a49575f5ffd5b84356001600160401b03811115613a5e575f5ffd5b613a6a878288016134be565b90955093505060208501356001600160401b03811115613a88575f5ffd5b613a94878288016134be565b95989497509550505050565b5f60408284031215611d63575f5ffd5b5f5f60608385031215613ac1575f5ffd5b8235613acc81613369565b9150613adb8460208501613aa0565b90509250929050565b5f5f5f60408486031215613af6575f5ffd5b83356001600160401b03811115613b0b575f5ffd5b613b17868287016134be565b9094509250506020840135613b2b81613502565b809150509250925092565b61ffff81168114612079575f5ffd5b5f60208284031215613b55575f5ffd5b81356113a981613b36565b5f60208284031215613b70575f5ffd5b5035919050565b6001600160401b0381511682526001600160401b03602082015116602083015260408101516040830152606081015160048110613bb657613bb66137e2565b806060840152505050565b60808101610d958284613b77565b6020815260018060a01b0382511660208201526001600160401b036020830151166040820152604082015160608201525f606083015160a06080840152613c1960c0840182613399565b608094909401516001600160a01b031660a093909301929092525090919050565b6020810160078310613c4e57613c4e6137e2565b91905290565b5f5f60208385031215613c65575f5ffd5b82356001600160401b03811115613c7a575f5ffd5b613a2a85828601613516565b602080825282518282018190525f918401906040840190835b81811015613cc857613cb2838551613b77565b6020939093019260809290920191600101613c9f565b509095945050505050565b5f60408284031215613ce3575f5ffd5b6113a98383613aa0565b5f81518060208401855e5f93019283525090919050565b5f613d0f8285613ced565b6101d160f51b815261251b6002820185613ced565b5f6001600160401b03821115613d3c57613d3c6135f9565b5060051b60200190565b5f82601f830112613d55575f5ffd5b8151602083015f613d65836136aa565b604051613d728282613670565b809250848152878585011115613d86575f5ffd5b8484602083015e5f60208683010152809550505050505092915050565b5f82601f830112613db2575f5ffd5b8151613dbd81613d24565b604051613dca8282613670565b80915082815260208101915060208360051b860101925085831115613ded575f5ffd5b602085015b83811015613e2d5780516001600160401b03811115613e0f575f5ffd5b613e1e886020838a0101613d46565b84525060209283019201613df2565b5095945050505050565b5f82601f830112613e46575f5ffd5b8151613e5181613d24565b604051613e5e8282613670565b80915082815260208101915060208360051b860101925085831115613e81575f5ffd5b602085015b83811015613e2d578051835260209283019201613e86565b5f5f5f60608486031215613eb0575f5ffd5b83516001600160401b03811115613ec5575f5ffd5b8401601f81018613613ed5575f5ffd5b8051613ee081613d24565b604051613eed8282613670565b80915082815260208101915060208360051b850101925088831115613f10575f5ffd5b6020840193505b82841015613f3b578351613f2a81613369565b825260209384019390910190613f17565b8096505050505060208401516001600160401b03811115613f5a575f5ffd5b613f6686828701613da3565b92505060408401516001600160401b03811115613f81575f5ffd5b613f8d86828701613e37565b9150509250925092565b80356001600160d01b03198116906006841015612360576001600160d01b031960069490940360031b84901b1690921692915050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f5f8335601e1984360301811261400a575f5ffd5b83016020810192503590506001600160401b03811115614028575f5ffd5b8036038213156134fb575f5ffd5b606081525f614049606083018789613fcd565b6001600160a01b038616602084810191909152838203604085015284825281810190600586901b830101865f5b878110156140b457848303601f19018452614091828a613ff5565b61409c858284613fcd565b60209687019690955093909301925050600101614076565b50909a9950505050505050505050565b5f60033d1115611a435760045f5f3e505f5160e01c90565b5f60443d10156140e95790565b6040513d600319016004823e80513d60248201116001600160401b038211171561411257505090565b80820180516001600160401b0381111561412d575050505090565b3d8401600319018282016020011115614147575050505090565b61415660208285010185613670565b509392505050565b5f5f6040838503121561416f575f5ffd5b825161417a81613502565b60208401519092506001600160401b03811115614195575f5ffd5b6141a185828601613d46565b9150509250929050565b60ff81168114612079575f5ffd5b8051611da2816141ab565b5f602082840312156141d4575f5ffd5b81516001600160401b038111156141e9575f5ffd5b8201604081850312156141fa575f5ffd5b6040516142068161360d565b8151614211816141ab565b815260208201516001600160401b0381111561422b575f5ffd5b61423786828501613d46565b602083015250949350505050565b5f60208284031215614255575f5ffd5b81516001600160401b0381111561426a575f5ffd5b611b9684828501613d46565b5f60208284031215614286575f5ffd5b81516001600160401b0381111561429b575f5ffd5b8201608081850312156142ac575f5ffd5b6040516142b881613632565b81516142c381613502565b8152602082015162ffffff811681146142da575f5ffd5b602082015260408201516001600160401b038111156142f7575f5ffd5b61430386828501613d46565b604083015250606091820151918101919091529392505050565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b0381811683821602908116908181146123605761236061431d565b634e487b7160e01b5f52601260045260245ffd5b5f6001600160401b0383168061437f5761437f614353565b806001600160401b0384160491505092915050565b805160058110611da2575f5ffd5b805160148110611da2575f5ffd5b5f82601f8301126143bf575f5ffd5b81516143ca81613d24565b6040516143d78282613670565b80915082815260208101915060208360051b8601019250858311156143fa575f5ffd5b602085015b83811015613e2d5780516001600160401b0381111561441c575f5ffd5b8601603f8101881361442c575f5ffd5b6040516144388161360d565b80606083018a811115614449575f5ffd5b602084015b818110156144895780516001600160401b0381111561446b575f5ffd5b61447a8d602083890101613d46565b8452506020928301920161444e565b505050845250602092830192016143ff565b5f602082840312156144ab575f5ffd5b81516001600160401b038111156144c0575f5ffd5b8201601f810184136144d0575f5ffd5b80516144db81613d24565b6040516144e88282613670565b80915082815260208101915060208360051b85010192508683111561450b575f5ffd5b602084015b8381101561463d5780516001600160401b0381111561452d575f5ffd5b850160e0818a03601f19011215614542575f5ffd5b61454a61369c565b614556602083016141b9565b815261456460408301614394565b6020820152614575606083016143a2565b604082015260808201516001600160401b03811115614592575f5ffd5b6145a18b602083860101613d46565b60608301525060a08201516001600160401b038111156145bf575f5ffd5b6145ce8b602083860101613d46565b60808301525060c08201516001600160401b038111156145ec575f5ffd5b6145fb8b6020838601016143b0565b60a08301525060e08201516001600160401b03811115614619575f5ffd5b6146288b602083860101613d46565b60c08301525084525060209283019201614510565b509695505050505050565b5f60208284031215614658575f5ffd5b6113a9826143a2565b604081525f614674604083018587613fcd565b9050826020830152949350505050565b602081525f611b96602083018486613fcd565b634e487b7160e01b5f52603260045260245ffd5b604081525f6146be604083018688613fcd565b82810360208401526146d1818587613fcd565b979650505050505050565b5f602082840312156146ec575f5ffd5b81516113a981613502565b60018060a01b0385168152836020820152606060408201525f61471e606083018486613fcd565b9695505050505050565b6001600160401b0381168114612079575f5ffd5b5f604082840312801561474d575f5ffd5b5060405161475a8161360d565b8235614765816141ab565b8152602083013561477581614728565b60208201529392505050565b5f60208284031215614791575f5ffd5b5051919050565b5f60808284031280156147a9575f5ffd5b506040516147b681613632565b82516147c181614728565b815260208301516147d181614728565b6020820152604083810151908201526060830151600481106147f1575f5ffd5b60608201529392505050565b600181811c9082168061481157607f821691505b602082108103611d6357634e487b7160e01b5f52602260045260245ffd5b5f6020828403121561483f575f5ffd5b81516001600160401b03811115614854575f5ffd5b820160a08185031215614865575f5ffd5b60405161487181613651565b815161487c81613502565b8152602082015161488c81614728565b60208201526040828101519082015260608201516001600160401b038111156148b3575f5ffd5b6148bf86828501613d46565b606083015250608082015191506148d582613502565b60808101919091529392505050565b5f602082840312156148f4575f5ffd5b8151600781106113a9575f5ffd5b5f60208284031215614912575f5ffd5b81356113a9816141ab565b5f6020828403121561492d575f5ffd5b81356113a981614728565b5f8383855260208501945060208460051b820101835f5b8681101561341557838303601f1901885261496a8287613ff5565b614975858284613fcd565b60209a8b019a9095509390930192505060010161494f565b602080825281018290525f6040600584901b830181019083018583601e1936839003015b87821015614a2157868503603f1901845282358181126149cf575f5ffd5b89016020810190356001600160401b038111156149ea575f5ffd5b8060051b36038213156149fb575f5ffd5b614a06878284614938565b965050506020830192506020840193506001820191506149b1565b5092979650505050505050565b5f60208284031215614a3e575f5ffd5b815161010081106113a9575f5ffd5b5f5f60408385031215614a5e575f5ffd5b505080516020909101519092909150565b81810381811115610d9557610d9561431d565b5f5f8284036080811215614a94575f5ffd5b8351614a9f81613b36565b92506060601f1982011215614ab2575f5ffd5b50604051606081018181106001600160401b0382111715614ad557614ad56135f9565b6040526020840151614ae681613b36565b81526040840151614af681613b36565b60208201526060840151614b0981614728565b6040820152919491935090915050565b61ffff8181168382160190811115610d9557610d9561431d565b8082028115828204841417610d9557610d9561431d565b5f82614b5857614b58614353565b500490565b5f614b688284613ced565b741d103ab73430b7323632b21030b9b9b2b93a34b7b760591b81526015019392505050565b80820180821115610d9557610d9561431d56fea26469706673582212200a92bec127c1410b53d2e22d74c8ec818936c41e2b0164f274938356a79e016664736f6c634300081e0033";
  readonly deployedBytecode: "0x60806040526004361061034f575f3560e01c80638da5cb5b116101c5578063d3471e34116100f6578063f14cb81211610094578063f9f34bb61161006e578063f9f34bb614610c21578063fae91a5114610c4d578063ff24fb4f14610c6c578063ff75890f14610c8b5761034f565b8063f14cb81214610b9c578063f2fde38b14610bc8578063f78eea8314610be75761034f565b8063e1c9e3c0116100d0578063e1c9e3c014610b33578063e30c397814610b47578063eb92b29b14610b5b578063ef1dff2b14610b7d5761034f565b8063d3471e3414610aae578063d5f3948814610acd578063d6a3614f14610b005761034f565b8063b411ee9411610163578063c064d3721161013d578063c064d37214610a18578063c3d98ea814610a37578063c5010d1714610a63578063cfae692914610a825761034f565b8063b411ee9414610995578063b8d38c96146109b4578063bff852fa146109d35761034f565b8063a9e954b91161019f578063a9e954b914610917578063abc86c6e1461094a578063ac82c6081461095d578063adb7c3f71461097c5761034f565b80638da5cb5b146108bd5780638df3fdfd146108d9578063a55b471c146108f85761034f565b806354fd4d501161029f578063715018a61161023d578063806d7e8f11610217578063806d7e8f1461082657806384292f071461085257806386ac03e0146108715780638a416ea9146108905761034f565b8063715018a6146107ea57806375dadb32146107fe57806379ba5097146108125761034f565b80636175ff00116102795780636175ff00146106e45780636ab221f8146107245780636b58960a146107555780636d1178e5146107745761034f565b806354fd4d50146106855780635be93984146106995780635c0d9d80146106b85761034f565b8063439fab911161030c5780634efef9c0116102e65780634efef9c0146105b65780635001f3b5146105e257806352d1902d146106145780635479d940146106475761034f565b8063439fab911461053957806346d1d21a1461055857806349492ef11461058a5761034f565b8063029db9581461043a5780630306732e1461046c57806303f3813d1461048f5780631014d375146104ae578063384ac938146104f95780633e088e1214610526575b34801561035a575f5ffd5b505f356001600160e01b03191663e0d20f7360e01b14801561037b57503330145b15610408575f6103a160206103903684613333565b6001600160c01b031916901b610caa565b6006015460408051808201909152601081526f3ab739b2ba3a3632b21039b7b63b32b960811b60208201526001600160a01b0390911691506103e69082151590610ce3565b604051365f82375f5f3683855af43d805f843e818015610404578184f35b8184fd5b6104386040518060400160405280600f81526020016e1b9bdd081a5b5c1b195b595b9d1959608a1b815250610cf5565b005b348015610445575f5ffd5b5061045961045436600461337e565b610d6a565b6040519081526020015b60405180910390f35b348015610477575f5ffd5b50610480610d9b565b60405161046393929190613421565b34801561049a575f5ffd5b506104386104a9366004613556565b610e18565b3480156104b9575f5ffd5b506104e17f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610463565b348015610504575f5ffd5b5061051861051336600461337e565b610fb1565b6040516104639291906135d6565b61045961053436600461337e565b610fc6565b348015610544575f5ffd5b50610438610553366004613713565b61100c565b348015610563575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000006104e1565b348015610595575f5ffd5b506105a96105a436600461337e565b611240565b6040516104639190613757565b3480156105c1575f5ffd5b506105d56105d036600461337e565b6112eb565b604051610463919061377e565b3480156105ed575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000006104e1565b34801561061f575f5ffd5b506104597f000000000000000000000000000000000000000000000000000000000000000081565b348015610652575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040519015158152602001610463565b348015610690575f5ffd5b506105d56113b0565b3480156106a4575f5ffd5b506104596106b336600461337e565b6113e0565b3480156106c3575f5ffd5b506106d76106d236600461337e565b6113f4565b6040516104639190613790565b3480156106ef575f5ffd5b506107177f000000000000000000000000000000000000000000000000000000000000000081565b604051610463919061380a565b34801561072f575f5ffd5b5061074361073e36600461337e565b6114ca565b60405160ff9091168152602001610463565b348015610760575f5ffd5b5061067561076f366004613818565b6114e1565b34801561077f575f5ffd5b5061078861153a565b60405161046391905f60a08201905060ff835116825260ff60208401511660208301526001600160401b0360408401511660408301526001600160401b0360608401511660608301526001600160401b03608084015116608083015292915050565b3480156107f5575f5ffd5b506104386115de565b348015610809575f5ffd5b506105d56115f1565b34801561081d575f5ffd5b5061043861161c565b348015610831575f5ffd5b5061084561084036600461337e565b611624565b60405161046391906138c0565b34801561085d575f5ffd5b5061043861086c3660046139b1565b6116a4565b34801561087c575f5ffd5b5061043861088b3660046139f8565b611873565b34801561089b575f5ffd5b506108a4611948565b6040516001600160e01b03199091168152602001610463565b3480156108c8575f5ffd5b505f546001600160a01b03166104e1565b3480156108e4575f5ffd5b506104596108f336600461337e565b611a46565b348015610903575f5ffd5b506104e1610912366004613a36565b611a5a565b348015610922575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000003f610459565b610459610958366004613ab0565b611b9e565b348015610968575f5ffd5b50610438610977366004613ae4565b611bbf565b348015610987575f5ffd5b506331f74adb60e11b6108a4565b3480156109a0575f5ffd5b506108a46109af366004613713565b611c2c565b3480156109bf575f5ffd5b506104386109ce366004613b45565b611c3a565b3480156109de575f5ffd5b5060408051808201909152601d81527f576974507269636546656564734c656761637955706772616461626c6500000060208201526105d5565b348015610a23575f5ffd5b50610459610a32366004613b60565b611c5a565b348015610a42575f5ffd5b50610a56610a5136600461337e565b611c64565b6040516104639190613bc1565b348015610a6e575f5ffd5b50610675610a7d3660046139f8565b611da7565b348015610a8d575f5ffd5b50610aa1610a9c36600461337e565b611e9f565b6040516104639190613bcf565b348015610ab9575f5ffd5b50610aa1610ac836600461337e565b611f89565b348015610ad8575f5ffd5b506104e17f000000000000000000000000000000000000000000000000000000000000000081565b348015610b0b575f5ffd5b507fe36ea87c48340f2c23c9e1c9f72f5c5165184e75683a4d2a19148e5964c1d20054610459565b348015610b3e575f5ffd5b50610438611fea565b348015610b52575f5ffd5b506104e16120b5565b348015610b66575f5ffd5b5060045460405161ffff9091168152602001610463565b348015610b88575f5ffd5b506105d5610b9736600461337e565b6120c8565b348015610ba7575f5ffd5b50610bbb610bb636600461337e565b612161565b6040516104639190613c3a565b348015610bd3575f5ffd5b50610438610be2366004613818565b6121f7565b348015610bf2575f5ffd5b50610c06610c01366004613b60565b612208565b60408051938452602084019290925290820152606001610463565b348015610c2c575f5ffd5b50610c40610c3b366004613c54565b612292565b6040516104639190613c86565b348015610c58575f5ffd5b50610438610c67366004613cd3565b612367565b348015610c77575f5ffd5b50610438610c86366004613556565b612443565b348015610c96575f5ffd5b506104e1610ca5366004613a36565b61249a565b6001600160e01b0319165f9081527fe36ea87c48340f2c23c9e1c9f72f5c5165184e75683a4d2a19148e5964c1d2016020526040902090565b81610cf157610cf181610cf5565b5050565b60408051808201909152601d81527f576974507269636546656564734c656761637955706772616461626c65000000602082015281604051602001610d3b929190613d04565b60408051601f198184030181529082905262461bcd60e51b8252610d619160040161377e565b60405180910390fd5b5f610d957f000000000000000000000000000000000000000000000000000000000000000083612524565b92915050565b606080606073__$434fc99454de0befe5e255c48ea2d383e7$__630306732e6040518163ffffffff1660e01b81526004015f60405180830381865af4158015610de6573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610e0d9190810190613e9e565b925092509250909192565b610e206125d1565b610e936001600160d01b03197f000000000000000000000000000000000000000000000000000000000000000016610e588688613f97565b6001600160d01b03191614604051806040016040528060128152602001710c4c2c840c6c2e0e8d2dedc40e0e4caccd2f60731b815250610ce3565b6040805180820190915260118152706e6f20736f6c766572206164647265737360781b6020820152610ed1906001600160a01b038516151590610ce3565b6040516303f3813d60e01b815273__$434fc99454de0befe5e255c48ea2d383e7$__906303f3813d90610f109088908890889088908890600401614036565b5f6040518083038186803b158015610f26575f5ffd5b505af4925050508015610f37575060015b610faa57610f436140c4565b806308c379a003610f715750610f576140dc565b80610f625750610f73565b610f6b81610cf5565b50610faa565b505b3d808015610f9c576040519150601f19603f3d011682016040523d82523d5f602084013e610fa1565b606091505b50610f6b6125fd565b5050505050565b5f6060610fbd8361260d565b91509150915091565b6040805160608101825260035461ffff808216835262010000820416602083015264010000000090046001600160401b0316918101919091525f90610d95908390612763565b5f546001600160a01b0316806110425781806020019051810190611030919061415e565b9250905061103d816129e6565b61108a565b336001600160a01b0382161461108a5760405162461bcd60e51b815260206004820152600d60248201526c3737ba103a34329037bbb732b960991b6044820152606401610d61565b611093826129ff565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbe541580159061110457507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbe547f00000000000000000000000000000000000000000000000000000000000000003f145b156111515760405162461bcd60e51b815260206004820152601c60248201527f616c726561647920696e697469616c697a656420636f646568617368000000006044820152606401610d61565b7f00000000000000000000000000000000000000000000000000000000000000003f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc600201557f00000000000000000000000000000000000000000000000000000000000000003f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111f55f546001600160a01b031690565b6001600160a01b03167fe73e754121f0bad1327816970101955bfffdf53d270ac509d777c25be070d7f66112276113b0565b604051611234919061377e565b60405180910390a45050565b604080518082019091525f8152606060208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a77fc1a461128c846113e0565b6040518263ffffffff1660e01b81526004016112aa91815260200190565b5f60405180830381865afa1580156112c4573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d9591908101906141c4565b60605f6112f783610caa565b905061132f81600501545f5f1b14156040518060400160405280600b81526020016a0dcde40a4828840d0c2e6d60ab1b815250610ce3565b611337612b8c565b6001600160a01b0316638a22776482600501546040518263ffffffff1660e01b815260040161136891815260200190565b5f60405180830381865afa158015611382573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526113a99190810190614245565b9392505050565b60606113db7f0000000000000000000000000000000000000000000000000000000000000000612c0d565b905090565b5f6113ea82610caa565b6004015492915050565b61142a60405180608001604052805f6001600160a01b031681526020015f62ffffff168152602001606081526020015f81525090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a667533f611462846113e0565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526024015f60405180830381865afa1580156114a3573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d959190810190614276565b5f6114d482610caa565b6001015460ff1692915050565b5f5f6114f45f546001600160a01b031690565b90507f000000000000000000000000000000000000000000000000000000000000000080156113a95750826001600160a01b0316816001600160a01b0316149392505050565b6040805160a0810182525f808252602082018190529181018290526060810182905260808101919091526003546040805160a08101825262010000830460ff8116808352603360208401526401000000009094046001600160401b031692820183905261ffff169260608201906115b19084614331565b6001600160401b031681526020016115cc60ff851684614367565b6001600160401b031690529392505050565b6115e66125d1565b6115ef5f6129e6565b565b60606113db7f0000000000000000000000000000000000000000000000000000000000000000612cae565b6115ef612d4f565b606061162e612b8c565b6001600160a01b03166377c1125961164584611a46565b6040518263ffffffff1660e01b815260040161166391815260200190565b5f60405180830381865afa15801561167d573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d95919081019061449b565b6116ac6125d1565b6117997f000000000000000000000000000000000000000000000000000000000000000060138111156116e1576116e16137e2565b6116e9612b8c565b6001600160a01b0316634c729104846040518263ffffffff1660e01b815260040161171691815260200190565b602060405180830381865afa158015611731573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117559190614648565b6013811115611766576117666137e2565b146040518060400160405280601481526020017362616420726573756c742064617461207479706560601b815250610ce3565b6040516384292f0760e01b815273__$434fc99454de0befe5e255c48ea2d383e7$__906384292f07906117d490869086908690600401614661565b5f6040518083038186803b1580156117ea575f5ffd5b505af49250505080156117fb575060015b61186e576118076140c4565b806308c379a003611835575061181b6140dc565b806118265750611837565b61182f81610cf5565b50505050565b505b3d808015611860576040519150601f19603f3d011682016040523d82523d5f602084013e611865565b606091505b5061182f6125fd565b505050565b61187b6125d1565b604051630435601f60e51b815273__$434fc99454de0befe5e255c48ea2d383e7$__906386ac03e0906118b49085908590600401614684565b5f6040518083038186803b1580156118ca575f5ffd5b505af49250505080156118db575060015b610cf1576118e76140c4565b806308c379a00361190f57506118fb6140dc565b806119065750611911565b61186e81610cf5565b505b3d80801561193a576040519150601f19603f3d011682016040523d82523d5f602084013e61193f565b606091505b5061186e6125fd565b7fe36ea87c48340f2c23c9e1c9f72f5c5165184e75683a4d2a19148e5964c1d200545f9015611a43576119cf7fe36ea87c48340f2c23c9e1c9f72f5c5165184e75683a4d2a19148e5964c1d1ff6001015f815481106119a9576119a9614697565b905f5260205f2090600891828204019190066004029054906101000a900460e01b612dca565b905060015b7fe36ea87c48340f2c23c9e1c9f72f5c5165184e75683a4d2a19148e5964c1d20054811015611a4157611a357fe36ea87c48340f2c23c9e1c9f72f5c5165184e75683a4d2a19148e5964c1d1ff60010182815481106119a9576119a9614697565b909118906001016119d4565b505b90565b5f611a5082610caa565b6005015492915050565b5f611a636125d1565b604051632956d1c760e21b815273__$434fc99454de0befe5e255c48ea2d383e7$__9063a55b471c90611aa09088908890889088906004016146ab565b602060405180830381865af4925050508015611ad9575060408051601f3d908101601f19168201909252611ad6918101906146dc565b60015b611b4c57611ae56140c4565b806308c379a003611b135750611af96140dc565b80611b045750611b15565b611b0d81610cf5565b50611b96565b505b3d808015611b3e576040519150601f19603f3d011682016040523d82523d5f602084013e611b43565b606091505b50611b0d6125fd565b7f18678abae9a91a452648053bebd7d23122fb9204cddc206fa8193750abb8940f81826001600160a01b03163f8686604051611b8b94939291906146f7565b60405180910390a190505b949350505050565b5f6113a983611bba611bb53686900386018661473c565b612e53565b612763565b611bc76125d1565b61186e8383836001600160a01b0316631eef90526040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c08573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061086c9190614781565b805160208201205f90610d95565b611c426125d1565b6004805461ffff191661ffff92909216919091179055565b5f610d9582612f26565b611c8b604080516080810182525f8082526020820181905291810182905290606082015290565b6040516384ee241160e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201526001600160e01b03198316602482015273__$434fc99454de0befe5e255c48ea2d383e7$__906384ee241190604401608060405180830381865af4925050508015611d2f575060408051601f3d908101601f19168201909252611d2c91810190614798565b60015b610d9557611d3b6140c4565b806308c379a003611d695750611d4f6140dc565b80611d5a5750611d6b565b611d6381610cf5565b50919050565b505b3d808015611d94576040519150601f19603f3d011682016040523d82523d5f602084013e611d99565b606091505b50611d636125fd565b919050565b5f5f611de784848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611c2c92505050565b90506001600160e01b03198116611e8c611e0083610caa565b8054611e0b906147fd565b80601f0160208091040260200160405190810160405280929190818152602001828054611e37906147fd565b8015611e825780601f10611e5957610100808354040283529160200191611e82565b820191905f5260205f20905b815481529060010190602001808311611e6557829003601f168201915b5050505050611c2c565b6001600160e01b03191614949350505050565b6040805160a0810182525f8082526020820181905291810182905260608082015260808101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ca7da98b611f217f000000000000000000000000000000000000000000000000000000000000000085612524565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526024015f60405180830381865afa158015611f62573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d95919081019061482f565b6040805160a0810182525f8082526020820181905291810182905260608082015260808101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ca7da98b611f21846113e0565b611ff26125d1565b73__$434fc99454de0befe5e255c48ea2d383e7$__63e1c9e3c06040518163ffffffff1660e01b81526004015f6040518083038186803b158015612034575f5ffd5b505af4925050508015612045575060015b6115ef576120516140c4565b806308c379a00361207c57506120656140dc565b80612070575061207e565b61207981610cf5565b50565b505b3d8080156120a7576040519150601f19603f3d011682016040523d82523d5f602084013e6120ac565b606091505b506120796125fd565b5f6113db6001546001600160a01b031690565b60606120d382610caa565b80546120de906147fd565b80601f016020809104026020016040519081016040528092919081815260200182805461210a906147fd565b80156121555780601f1061212c57610100808354040283529160200191612155565b820191905f5260205f20905b81548152906001019060200180831161213857829003601f168201915b50505050509050919050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663234fe6e361219a846113e0565b6040518263ffffffff1660e01b81526004016121b891815260200190565b602060405180830381865afa1580156121d3573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d9591906148e4565b6121ff6125d1565b61207981612fe1565b5f5f5f5f61221585611c64565b805160208201519192506001600160401b031690600283606001516003811115612241576122416137e2565b146122735760018360600151600381111561225e5761225e6137e2565b1461226b57610190612276565b610194612276565b60c85b9195506001600160401b0316935061ffff169150509193909250565b6060816001600160401b038111156122ac576122ac6135f9565b60405190808252806020026020018201604052801561230457816020015b6122f1604080516080810182525f8082526020820181905291810182905290606082015290565b8152602001906001900390816122ca5790505b5090505f5b828110156123605761233b84848381811061232657612326614697565b9050602002016020810190610a51919061337e565b82828151811061234d5761234d614697565b6020908102919091010152600101612309565b5092915050565b61236f6125d1565b61237c6020820182614902565b6003805463ffff0000191660ff9290921662010000029190911790556123a8604082016020830161491d565b600380546001600160401b039283166401000000009081026bffffffffffffffff000000001983168117938490556040805160608101825261ffff92831694831694909417845262010000850490911660208401529204909216908201526120799061241390613012565b60405180604001604052806012815260200171696e76616c69642075706461746520534c4160701b815250610ce3565b61244b6125d1565b610faa8585856001600160a01b031663bf7a0bd386866040518363ffffffff1660e01b815260040161247e92919061498d565b6020604051808303815f875af1158015611c08573d5f5f3e3d5ffd5b6040516001628a76f160e01b031981525f9073__$434fc99454de0befe5e255c48ea2d383e7$__9063ff75890f906124dc9088908890889088906004016146ab565b602060405180830381865af41580156124f7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061251b91906146dc565b95945050505050565b5f61252e82610caa565b6004015490508015806125b857505f604051634cddf61560e01b8152600481018390526001600160a01b03851690634cddf61590602401602060405180830381865afa158015612580573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125a49190614a2e565b60ff8111156125b5576125b56137e2565b14155b15610d95576125c682610caa565b600301549392505050565b5f546001600160a01b031633146115ef5760405163118cdaa760e01b8152336004820152602401610d61565b6115ef61260861304d565b610cf5565b5f606061261983610caa565b600601546001600160a01b031691505f612632846130a9565b905080516001600160401b0381111561264d5761264d6135f9565b60405190808252806020026020018201604052801561268057816020015b606081526020019060019003908161266b5790505b5091505f5b815181101561275c576126b08282815181106126a3576126a3614697565b6020026020010151610caa565b80546126bb906147fd565b80601f01602080910402602001604051908101604052809291908181526020018280546126e7906147fd565b80156127325780601f1061270957610100808354040283529160200191612732565b820191905f5260205f20905b81548152906001019060200180831161271557829003601f168201915b505050505083828151811061274957612749614697565b6020908102919091010152600101612685565b5050915091565b5f61276d83610caa565b600501541561295c57604080516303f8890160e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201526001600160e01b031985166024820152835161ffff90811660448301526020850151166064820152908301516001600160401b031660848201523460a482018190529073__$434fc99454de0befe5e255c48ea2d383e7$__906307f112029060c4016040805180830381865af492505050801561284d575060408051601f3d908101601f1916820190925261284a91810190614a4d565b60015b6128c0576128596140c4565b806308c379a003612887575061286d6140dc565b806128785750612889565b61288181610cf5565b50612956565b505b3d8080156128b2576040519150601f19603f3d011682016040523d82523d5f602084013e6128b7565b606091505b506128816125fd565b348110156128fd57336108fc6128d68334614a6f565b6040518115909202915f818181858888f193505050501580156128fb573d5f5f3e3d5ffd5b505b604080513281523360208201526001600160e01b03198816818301526060810184905290517f0bd652a116bb5006c2e07594e8a3fe9b5ba51acf6cd9572568913fda51ad26c49181900360800190a19250610d95915050565b50610d95565b5f61296684610caa565b600601546001600160a01b0316146129b9576129b2612984846130a9565b6040518060400160405280856020015160ff16815260200185604001516001600160401b0316815250613191565b9050610d95565b610d956040518060400160405280600c81526020016b1d5b9adb9bdddb881999595960a21b815250610cf5565b600180546001600160a01b031916905561207981613274565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbe54612a76576040805160608101825260108152600360208201819052630bebc20091909201528054670bebc200000300106bffffffffffffffffffffffff199091161790556004805461ffff1916600a17905550565b805115612b05575f5f82806020019051810190612a939190614a82565b6004805461ffff93841661ffff1990911617905580516003805460208401516040909401516001600160401b0316640100000000026bffffffffffffffff0000000019948616620100000263ffffffff1990921693909516929092179190911791909116919091179055506120799050565b6040805160608101825260035461ffff808216835262010000820416602083015264010000000090046001600160401b031691810191909152612b4790613012565b61207957506040805160608101825260108152600360208201819052630bebc200919092015280546bffffffffffffffffffffffff1916670bebc20000030010179055565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637b1039996040518163ffffffff1660e01b8152600401602060405180830381865afa158015612be9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113db91906146dc565b60605f612c19836132c3565b6001600160401b03811115612c3057612c306135f9565b6040519080825280601f01601f191660200182016040528015612c5a576020820181803683370190505b5090505f5b815181101561236057838160208110612c7a57612c7a614697565b1a60f81b828281518110612c9057612c90614697565b60200101906001600160f81b03191690815f1a905350600101612c5f565b60605f612cba836132fb565b6001600160401b03811115612cd157612cd16135f9565b6040519080825280601f01601f191660200182016040528015612cfb576020820181803683370190505b5090505f5b815181101561236057838160208110612d1b57612d1b614697565b1a60f81b828281518110612d3157612d31614697565b60200101906001600160f81b03191690815f1a905350600101612d00565b3380612d596120b5565b6001600160a01b031614612dc15760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610d61565b612079816129e6565b5f80612dd583610caa565b6005015414612e255781612de883610caa565b60050154604080516001600160e01b031990931660208401528201526060015b604051602081830303815290604052805190602001209050919050565b81612e2f83610caa565b60080154604080516001600160e01b03199093166020840152820152606001612e08565b604080516060810182525f808252602082018190529181019190915260035482516201000090910461ffff1660ff90911610801590612ead575060035460208301516001600160401b036401000000009092048216911610155b15612ee857506040805160608101825260035461ffff168152825160ff16602080830191909152909201516001600160401b03169082015290565b611da26040518060400160405280601781526020017f756e736563757265207570646174652072657175657374000000000000000000815250610cf5565b6004545f90606490612f3c9061ffff1682614b19565b61ffff167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166339a8653e856040518263ffffffff1660e01b8152600401612f8e91815260200190565b602060405180830381865afa158015612fa9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612fcd9190614781565b612fd79190614b33565b610d959190614b4a565b612fe96125d1565b6001600160a01b038116612dc157604051631e4fbdf760e01b81525f6004820152602401610d61565b5f5f826020015161ffff161180156130335750607f826020015161ffff1611155b8015610d95575050604001516001600160401b0316151590565b606060405180604001604052601a8152806020017f576974507269636546656564734c6567616379446174614c69620000000000008152506040516020016130959190614b5d565b604051602081830303815290604052905090565b6001600160e01b031981165f9081527fe36ea87c48340f2c23c9e1c9f72f5c5165184e75683a4d2a19148e5964c1d20160209081526040918290206008908101548351828152610120810190945260609390929091908201610100803683370190505091505f5b6008811015613189578183828151811061312c5761312c614697565b60200260200101906001600160e01b03191690816001600160e01b0319168152505082818151811061316057613160614697565b60209081029190910101516001600160e01b0319161561318957602082901b9150600101613110565b825250919050565b5f5f8351346131a09190614b4a565b90505f5b845181101561326c57306001600160a01b031663abc86c6e838784815181106131cf576131cf614697565b6020908102919091018101516040516001600160e01b031960e086901b811682529091166004820152885160ff166024820152908801516001600160401b0316604482015260640160206040518083038185885af1158015613233573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906132589190614781565b6132629084614b8d565b92506001016131a4565b505092915050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f5b6020811015611da2578181602081106132e0576132e0614697565b1a60f81b6001600160f81b03191615611da2576001016132c5565b5f5b6020811015611da25781816020811061331857613318614697565b1a60f81b6001600160f81b03191615611da2576001016132fd565b80356001600160c01b03198116906008841015612360576001600160c01b031960089490940360031b84901b1690921692915050565b6001600160e01b031981168114612079575f5ffd5b5f6020828403121561338e575f5ffd5b81356113a981613369565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b5f82825180855260208501945060208160051b830101602085015f5b8381101561341557601f198584030188526133ff838351613399565b60209889019890935091909101906001016133e3565b50909695505050505050565b606080825284519082018190525f9060208601906080840190835b818110156134645783516001600160e01b03191683526020938401939092019160010161343c565b5050838103602085015261347881876133c7565b848103604086015285518082526020808801945090910191505f5b818110156134b1578351835260209384019390920191600101613493565b5090979650505050505050565b5f5f83601f8401126134ce575f5ffd5b5081356001600160401b038111156134e4575f5ffd5b6020830191508360208285010111156134fb575f5ffd5b9250929050565b6001600160a01b0381168114612079575f5ffd5b5f5f83601f840112613526575f5ffd5b5081356001600160401b0381111561353c575f5ffd5b6020830191508360208260051b85010111156134fb575f5ffd5b5f5f5f5f5f6060868803121561356a575f5ffd5b85356001600160401b0381111561357f575f5ffd5b61358b888289016134be565b909650945050602086013561359f81613502565b925060408601356001600160401b038111156135b9575f5ffd5b6135c588828901613516565b969995985093965092949392505050565b6001600160a01b03831681526040602082018190525f90611b96908301846133c7565b634e487b7160e01b5f52604160045260245ffd5b604081018181106001600160401b038211171561362c5761362c6135f9565b60405250565b608081018181106001600160401b038211171561362c5761362c6135f9565b60a081018181106001600160401b038211171561362c5761362c6135f9565b601f8201601f191681016001600160401b0381118282101715613695576136956135f9565b6040525050565b604051611a4360e082613670565b5f6001600160401b038211156136c2576136c26135f9565b50601f01601f191660200190565b5f6136da836136aa565b6040516136e78282613670565b8092508481528585850111156136fb575f5ffd5b848460208301375f6020868301015250509392505050565b5f60208284031215613723575f5ffd5b81356001600160401b03811115613738575f5ffd5b8201601f81018413613748575f5ffd5b611b96848235602084016136d0565b6020815260ff82511660208201525f6020830151604080840152611b966060840182613399565b602081525f6113a96020830184613399565b6020815260018060a01b03825116602082015262ffffff60208301511660408201525f6040830151608060608401526137cc60a0840182613399565b9050606084015160808401528091505092915050565b634e487b7160e01b5f52602160045260245ffd5b60148110613806576138066137e2565b9052565b60208101610d9582846137f6565b5f60208284031215613828575f5ffd5b81356113a981613502565b60058110613806576138066137e2565b5f82825180855260208501945060208160051b830101602085015f5b8381101561341557848303601f19018852815183604081015f5b60028110156138a7578682038352613892828551613399565b60209485019493909301929150600101613879565b5060209a8b019a9095509390930192505060010161385f565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b828110156139a557603f19878603018452815160ff815116865260208101516139126020880182613833565b50604081015161392560408801826137f6565b50606081015160e0606088015261393f60e0880182613399565b9050608082015187820360808901526139588282613399565b91505060a082015187820360a08901526139728282613843565b91505060c0820151915086810360c088015261398e8183613399565b9650505060209384019391909101906001016138e6565b50929695505050505050565b5f5f5f604084860312156139c3575f5ffd5b83356001600160401b038111156139d8575f5ffd5b6139e4868287016134be565b909790965060209590950135949350505050565b5f5f60208385031215613a09575f5ffd5b82356001600160401b03811115613a1e575f5ffd5b613a2a858286016134be565b90969095509350505050565b5f5f5f5f60408587031215613a49575f5ffd5b84356001600160401b03811115613a5e575f5ffd5b613a6a878288016134be565b90955093505060208501356001600160401b03811115613a88575f5ffd5b613a94878288016134be565b95989497509550505050565b5f60408284031215611d63575f5ffd5b5f5f60608385031215613ac1575f5ffd5b8235613acc81613369565b9150613adb8460208501613aa0565b90509250929050565b5f5f5f60408486031215613af6575f5ffd5b83356001600160401b03811115613b0b575f5ffd5b613b17868287016134be565b9094509250506020840135613b2b81613502565b809150509250925092565b61ffff81168114612079575f5ffd5b5f60208284031215613b55575f5ffd5b81356113a981613b36565b5f60208284031215613b70575f5ffd5b5035919050565b6001600160401b0381511682526001600160401b03602082015116602083015260408101516040830152606081015160048110613bb657613bb66137e2565b806060840152505050565b60808101610d958284613b77565b6020815260018060a01b0382511660208201526001600160401b036020830151166040820152604082015160608201525f606083015160a06080840152613c1960c0840182613399565b608094909401516001600160a01b031660a093909301929092525090919050565b6020810160078310613c4e57613c4e6137e2565b91905290565b5f5f60208385031215613c65575f5ffd5b82356001600160401b03811115613c7a575f5ffd5b613a2a85828601613516565b602080825282518282018190525f918401906040840190835b81811015613cc857613cb2838551613b77565b6020939093019260809290920191600101613c9f565b509095945050505050565b5f60408284031215613ce3575f5ffd5b6113a98383613aa0565b5f81518060208401855e5f93019283525090919050565b5f613d0f8285613ced565b6101d160f51b815261251b6002820185613ced565b5f6001600160401b03821115613d3c57613d3c6135f9565b5060051b60200190565b5f82601f830112613d55575f5ffd5b8151602083015f613d65836136aa565b604051613d728282613670565b809250848152878585011115613d86575f5ffd5b8484602083015e5f60208683010152809550505050505092915050565b5f82601f830112613db2575f5ffd5b8151613dbd81613d24565b604051613dca8282613670565b80915082815260208101915060208360051b860101925085831115613ded575f5ffd5b602085015b83811015613e2d5780516001600160401b03811115613e0f575f5ffd5b613e1e886020838a0101613d46565b84525060209283019201613df2565b5095945050505050565b5f82601f830112613e46575f5ffd5b8151613e5181613d24565b604051613e5e8282613670565b80915082815260208101915060208360051b860101925085831115613e81575f5ffd5b602085015b83811015613e2d578051835260209283019201613e86565b5f5f5f60608486031215613eb0575f5ffd5b83516001600160401b03811115613ec5575f5ffd5b8401601f81018613613ed5575f5ffd5b8051613ee081613d24565b604051613eed8282613670565b80915082815260208101915060208360051b850101925088831115613f10575f5ffd5b6020840193505b82841015613f3b578351613f2a81613369565b825260209384019390910190613f17565b8096505050505060208401516001600160401b03811115613f5a575f5ffd5b613f6686828701613da3565b92505060408401516001600160401b03811115613f81575f5ffd5b613f8d86828701613e37565b9150509250925092565b80356001600160d01b03198116906006841015612360576001600160d01b031960069490940360031b84901b1690921692915050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f5f8335601e1984360301811261400a575f5ffd5b83016020810192503590506001600160401b03811115614028575f5ffd5b8036038213156134fb575f5ffd5b606081525f614049606083018789613fcd565b6001600160a01b038616602084810191909152838203604085015284825281810190600586901b830101865f5b878110156140b457848303601f19018452614091828a613ff5565b61409c858284613fcd565b60209687019690955093909301925050600101614076565b50909a9950505050505050505050565b5f60033d1115611a435760045f5f3e505f5160e01c90565b5f60443d10156140e95790565b6040513d600319016004823e80513d60248201116001600160401b038211171561411257505090565b80820180516001600160401b0381111561412d575050505090565b3d8401600319018282016020011115614147575050505090565b61415660208285010185613670565b509392505050565b5f5f6040838503121561416f575f5ffd5b825161417a81613502565b60208401519092506001600160401b03811115614195575f5ffd5b6141a185828601613d46565b9150509250929050565b60ff81168114612079575f5ffd5b8051611da2816141ab565b5f602082840312156141d4575f5ffd5b81516001600160401b038111156141e9575f5ffd5b8201604081850312156141fa575f5ffd5b6040516142068161360d565b8151614211816141ab565b815260208201516001600160401b0381111561422b575f5ffd5b61423786828501613d46565b602083015250949350505050565b5f60208284031215614255575f5ffd5b81516001600160401b0381111561426a575f5ffd5b611b9684828501613d46565b5f60208284031215614286575f5ffd5b81516001600160401b0381111561429b575f5ffd5b8201608081850312156142ac575f5ffd5b6040516142b881613632565b81516142c381613502565b8152602082015162ffffff811681146142da575f5ffd5b602082015260408201516001600160401b038111156142f7575f5ffd5b61430386828501613d46565b604083015250606091820151918101919091529392505050565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b0381811683821602908116908181146123605761236061431d565b634e487b7160e01b5f52601260045260245ffd5b5f6001600160401b0383168061437f5761437f614353565b806001600160401b0384160491505092915050565b805160058110611da2575f5ffd5b805160148110611da2575f5ffd5b5f82601f8301126143bf575f5ffd5b81516143ca81613d24565b6040516143d78282613670565b80915082815260208101915060208360051b8601019250858311156143fa575f5ffd5b602085015b83811015613e2d5780516001600160401b0381111561441c575f5ffd5b8601603f8101881361442c575f5ffd5b6040516144388161360d565b80606083018a811115614449575f5ffd5b602084015b818110156144895780516001600160401b0381111561446b575f5ffd5b61447a8d602083890101613d46565b8452506020928301920161444e565b505050845250602092830192016143ff565b5f602082840312156144ab575f5ffd5b81516001600160401b038111156144c0575f5ffd5b8201601f810184136144d0575f5ffd5b80516144db81613d24565b6040516144e88282613670565b80915082815260208101915060208360051b85010192508683111561450b575f5ffd5b602084015b8381101561463d5780516001600160401b0381111561452d575f5ffd5b850160e0818a03601f19011215614542575f5ffd5b61454a61369c565b614556602083016141b9565b815261456460408301614394565b6020820152614575606083016143a2565b604082015260808201516001600160401b03811115614592575f5ffd5b6145a18b602083860101613d46565b60608301525060a08201516001600160401b038111156145bf575f5ffd5b6145ce8b602083860101613d46565b60808301525060c08201516001600160401b038111156145ec575f5ffd5b6145fb8b6020838601016143b0565b60a08301525060e08201516001600160401b03811115614619575f5ffd5b6146288b602083860101613d46565b60c08301525084525060209283019201614510565b509695505050505050565b5f60208284031215614658575f5ffd5b6113a9826143a2565b604081525f614674604083018587613fcd565b9050826020830152949350505050565b602081525f611b96602083018486613fcd565b634e487b7160e01b5f52603260045260245ffd5b604081525f6146be604083018688613fcd565b82810360208401526146d1818587613fcd565b979650505050505050565b5f602082840312156146ec575f5ffd5b81516113a981613502565b60018060a01b0385168152836020820152606060408201525f61471e606083018486613fcd565b9695505050505050565b6001600160401b0381168114612079575f5ffd5b5f604082840312801561474d575f5ffd5b5060405161475a8161360d565b8235614765816141ab565b8152602083013561477581614728565b60208201529392505050565b5f60208284031215614791575f5ffd5b5051919050565b5f60808284031280156147a9575f5ffd5b506040516147b681613632565b82516147c181614728565b815260208301516147d181614728565b6020820152604083810151908201526060830151600481106147f1575f5ffd5b60608201529392505050565b600181811c9082168061481157607f821691505b602082108103611d6357634e487b7160e01b5f52602260045260245ffd5b5f6020828403121561483f575f5ffd5b81516001600160401b03811115614854575f5ffd5b820160a08185031215614865575f5ffd5b60405161487181613651565b815161487c81613502565b8152602082015161488c81614728565b60208201526040828101519082015260608201516001600160401b038111156148b3575f5ffd5b6148bf86828501613d46565b606083015250608082015191506148d582613502565b60808101919091529392505050565b5f602082840312156148f4575f5ffd5b8151600781106113a9575f5ffd5b5f60208284031215614912575f5ffd5b81356113a9816141ab565b5f6020828403121561492d575f5ffd5b81356113a981614728565b5f8383855260208501945060208460051b820101835f5b8681101561341557838303601f1901885261496a8287613ff5565b614975858284613fcd565b60209a8b019a9095509390930192505060010161494f565b602080825281018290525f6040600584901b830181019083018583601e1936839003015b87821015614a2157868503603f1901845282358181126149cf575f5ffd5b89016020810190356001600160401b038111156149ea575f5ffd5b8060051b36038213156149fb575f5ffd5b614a06878284614938565b965050506020830192506020840193506001820191506149b1565b5092979650505050505050565b5f60208284031215614a3e575f5ffd5b815161010081106113a9575f5ffd5b5f5f60408385031215614a5e575f5ffd5b505080516020909101519092909150565b81810381811115610d9557610d9561431d565b5f5f8284036080811215614a94575f5ffd5b8351614a9f81613b36565b92506060601f1982011215614ab2575f5ffd5b50604051606081018181106001600160401b0382111715614ad557614ad56135f9565b6040526020840151614ae681613b36565b81526040840151614af681613b36565b60208201526060840151614b0981614728565b6040820152919491935090915050565b61ffff8181168382160190811115610d9557610d9561431d565b8082028115828204841417610d9557610d9561431d565b5f82614b5857614b58614353565b500490565b5f614b688284613ced565b741d103ab73430b7323632b21030b9b9b2b93a34b7b760591b81526015019392505050565b80820180821115610d9557610d9561431d56fea26469706673582212200a92bec127c1410b53d2e22d74c8ec818936c41e2b0164f274938356a79e016664736f6c634300081e0033";
  readonly linkReferences: {"project/contracts/data/WitPriceFeedsLegacyDataLib.sol":{"WitPriceFeedsLegacyDataLib":[{"length":20,"start":4696},{"length":20,"start":5014},{"length":20,"start":7262},{"length":20,"start":7488},{"length":20,"start":7976},{"length":20,"start":8591},{"length":20,"start":9386},{"length":20,"start":10596},{"length":20,"start":11438}]}};
  readonly deployedLinkReferences: {"project/contracts/data/WitPriceFeedsLegacyDataLib.sol":{"WitPriceFeedsLegacyDataLib":[{"length":20,"start":3490},{"length":20,"start":3808},{"length":20,"start":6056},{"length":20,"start":6282},{"length":20,"start":6770},{"length":20,"start":7385},{"length":20,"start":8180},{"length":20,"start":9390},{"length":20,"start":10232}]}};
  readonly immutableReferences: {"805":[{"length":32,"start":1781},{"length":32,"start":5809}],"808":[{"length":32,"start":3630},{"length":32,"start":5624}],"2342":[{"length":32,"start":1215},{"length":32,"start":1382},{"length":32,"start":3440},{"length":32,"start":4694},{"length":32,"start":5164},{"length":32,"start":7330},{"length":32,"start":7882},{"length":32,"start":7932},{"length":32,"start":8116},{"length":32,"start":8548},{"length":32,"start":10126},{"length":32,"start":11151},{"length":32,"start":12098}],"9009":[{"length":32,"start":5047}],"9013":[{"length":32,"start":2782}],"9104":[{"length":32,"start":1573}],"45824":[{"length":32,"start":1520},{"length":32,"start":2341},{"length":32,"start":4322},{"length":32,"start":4435},{"length":32,"start":4506},{"length":32,"start":4540}],"45828":[{"length":32,"start":1621},{"length":32,"start":5368}]};
  readonly inputSourceName: "project/contracts/apps/WitPriceFeedsLegacyUpgradable.sol";
  readonly buildInfoId: "solc-0_8_30-47301052af11a5aa5062e9b98ca44d5e142950cf";
};

import "hardhat/types/artifacts";
declare module "hardhat/types/artifacts" {
  interface ArtifactMap {
    ["WitPriceFeedsLegacyUpgradable"]: WitPriceFeedsLegacyUpgradable$Type;
    ["contracts/apps/WitPriceFeedsLegacyUpgradable.sol:WitPriceFeedsLegacyUpgradable"]: WitPriceFeedsLegacyUpgradable$Type;
  }
}