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

export interface WitOracleTrustableDefault$Type {
  readonly _format: "hh3-artifact-1";
  readonly contractName: "WitOracleTrustableDefault";
  readonly sourceName: "contracts/core/trustable/WitOracleTrustableDefault.sol";
  readonly abi: [{"inputs":[{"components":[{"internalType":"uint32","name":"reportResultGasBase","type":"uint32"},{"internalType":"uint32","name":"reportResultWithCallbackGasBase","type":"uint32"},{"internalType":"uint32","name":"reportResultWithCallbackRevertGasBase","type":"uint32"},{"internalType":"uint32","name":"sstoreFromZeroGas","type":"uint32"}],"internalType":"struct WitOracleBaseQueriable.EvmImmutables","name":"_immutables","type":"tuple"},{"internalType":"contract WitOracleRadonRegistry","name":"_registry","type":"address"},{"internalType":"bytes32","name":"_versionTag","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidDataReport","type":"error"},{"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":"uint256","name":"queryId","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"BatchReportError","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","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":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Received","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"reporters","type":"address[]"}],"name":"ReportersSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"reporters","type":"address[]"}],"name":"ReportersUnset","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","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":true,"internalType":"address","name":"evmRequester","type":"address"},{"indexed":false,"internalType":"uint256","name":"evmGasPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"evmReward","type":"uint256"},{"indexed":false,"internalType":"Witnet.QueryId","name":"queryId","type":"uint64"},{"indexed":false,"internalType":"Witnet.RadonHash","name":"radonHash","type":"bytes32"},{"components":[{"internalType":"uint16","name":"witResultMaxSize","type":"uint16"},{"internalType":"uint16","name":"witCommitteeSize","type":"uint16"},{"internalType":"uint64","name":"witUnitaryReward","type":"uint64"}],"indexed":false,"internalType":"struct Witnet.QuerySLA","name":"radonParams","type":"tuple"}],"name":"WitOracleQuery","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"Witnet.QueryId","name":"queryId","type":"uint64"},{"indexed":false,"internalType":"uint256","name":"evmGasPrice","type":"uint256"}],"name":"WitOracleQueryReport","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"Witnet.QueryId","name":"queryId","type":"uint64"},{"indexed":false,"internalType":"address","name":"evmConsumer","type":"address"},{"indexed":false,"internalType":"uint256","name":"evmGasPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"evmCallbackGas","type":"uint256"}],"name":"WitOracleQueryReportDelivery","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"Witnet.QueryId","name":"queryId","type":"uint64"},{"indexed":false,"internalType":"address","name":"evmDisputer","type":"address"}],"name":"WitOracleQueryReportDispute","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"Witnet.QueryId","name":"queryId","type":"uint64"},{"indexed":false,"internalType":"address","name":"evmSender","type":"address"},{"indexed":false,"internalType":"uint256","name":"evmGasPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"evmReward","type":"uint256"}],"name":"WitOracleQueryUpgrade","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"evmOrigin","type":"address"},{"indexed":true,"internalType":"address","name":"evmConsumer","type":"address"},{"indexed":false,"internalType":"address","name":"evmReporter","type":"address"},{"indexed":false,"internalType":"Witnet.TransactionHash","name":"witDrTxHash","type":"bytes32"},{"indexed":false,"internalType":"Witnet.RadonHash","name":"queryRadHash","type":"bytes32"},{"components":[{"internalType":"uint16","name":"witResultMaxSize","type":"uint16"},{"internalType":"uint16","name":"witCommitteeSize","type":"uint16"},{"internalType":"uint64","name":"witUnitaryReward","type":"uint64"}],"indexed":false,"internalType":"struct Witnet.QuerySLA","name":"queryParams","type":"tuple"},{"indexed":false,"internalType":"Witnet.Timestamp","name":"resultTimestamp","type":"uint64"},{"indexed":false,"internalType":"bytes","name":"resultCborBytes","type":"bytes"}],"name":"WitOracleReport","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"Witnet.QueryId","name":"queryId","type":"uint64"},{"indexed":false,"internalType":"address","name":"evmConsumer","type":"address"},{"indexed":false,"internalType":"uint256","name":"evmGasPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"evmCallbackActualGas","type":"uint256"},{"indexed":false,"internalType":"string","name":"evmCallbackRevertReason","type":"string"},{"indexed":false,"internalType":"bytes","name":"resultCborBytes","type":"bytes"}],"name":"WitOracleResportDeliveryFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"evmReward","type":"uint256"},{"components":[{"internalType":"uint8","name":"numWitnesses","type":"uint8"},{"internalType":"uint64","name":"witnessReward","type":"uint64"}],"indexed":false,"internalType":"struct IWitOracleLegacy.RadonSLA","name":"witnetSLA","type":"tuple"}],"name":"WitnetQuery","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":"channel","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"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":"currency","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_queryId","type":"uint256"}],"name":"deleteQuery","outputs":[{"internalType":"Witnet.QueryEvmReward","name":"","type":"uint72"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deployer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_evmGasPrice","type":"uint256"}],"name":"estimateBaseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_gasPrice","type":"uint256"},{"internalType":"uint16","name":"","type":"uint16"}],"name":"estimateBaseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"gasPrice","type":"uint256"},{"internalType":"bytes32","name":"radHash","type":"bytes32"}],"name":"estimateBaseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_evmGasPrice","type":"uint256"},{"internalType":"uint24","name":"_evmCallbackGasLimit","type":"uint24"}],"name":"estimateBaseFeeWithCallback","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_evmGasPrice","type":"uint256"},{"internalType":"uint256","name":"_evmWitPrice","type":"uint256"},{"components":[{"internalType":"uint16","name":"witResultMaxSize","type":"uint16"},{"internalType":"uint16","name":"witCommitteeSize","type":"uint16"},{"internalType":"uint64","name":"witUnitaryReward","type":"uint64"}],"internalType":"struct Witnet.QuerySLA","name":"_querySLA","type":"tuple"}],"name":"estimateExtraFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_queryIds","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint256","name":"_evmGasPrice","type":"uint256"},{"internalType":"uint256","name":"_evmWitPrice","type":"uint256"}],"name":"estimateReportEarnings","outputs":[{"internalType":"uint256","name":"_revenues","type":"uint256"},{"internalType":"uint256","name":"_expenses","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"Witnet.QueryId[]","name":"_queryIds","type":"uint64[]"}],"name":"extractRadonBytecodes","outputs":[{"internalType":"bytes[]","name":"_bytecodes","type":"bytes[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"queryIds","type":"uint256[]"}],"name":"extractWitnetDataRequests","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"queryId","type":"uint256"}],"name":"fetchQueryResponse","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getNextQueryId","outputs":[{"internalType":"Witnet.QueryId","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"Witnet.QueryId","name":"_queryId","type":"uint64"}],"name":"getQuery","outputs":[{"components":[{"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":"request","type":"tuple"},{"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":"response","type":"tuple"},{"components":[{"internalType":"uint16","name":"witResultMaxSize","type":"uint16"},{"internalType":"uint16","name":"witCommitteeSize","type":"uint16"},{"internalType":"uint64","name":"witUnitaryReward","type":"uint64"}],"internalType":"struct Witnet.QuerySLA","name":"slaParams","type":"tuple"},{"internalType":"Witnet.QueryUUID","name":"uuid","type":"bytes15"},{"internalType":"Witnet.QueryEvmReward","name":"reward","type":"uint72"},{"internalType":"Witnet.BlockNumber","name":"checkpoint","type":"uint64"}],"internalType":"struct Witnet.Query","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"queryId","type":"uint256"}],"name":"getQuery","outputs":[{"components":[{"components":[{"internalType":"address","name":"requester","type":"address"},{"internalType":"uint24","name":"callbackGas","type":"uint24"},{"internalType":"uint72","name":"evmReward","type":"uint72"},{"internalType":"bytes","name":"radonBytecode","type":"bytes"},{"internalType":"bytes32","name":"radonHash","type":"bytes32"},{"components":[{"internalType":"uint8","name":"numWitnesses","type":"uint8"},{"internalType":"uint64","name":"witnessReward","type":"uint64"}],"internalType":"struct IWitOracleLegacy.RadonSLA","name":"radonParams","type":"tuple"}],"internalType":"struct IWitOracleLegacy.QueryRequest","name":"request","type":"tuple"},{"components":[{"internalType":"address","name":"reporter","type":"address"},{"internalType":"uint64","name":"finality","type":"uint64"},{"internalType":"uint32","name":"timestamp","type":"uint32"},{"internalType":"bytes32","name":"trail","type":"bytes32"},{"internalType":"bytes","name":"cborBytes","type":"bytes"}],"internalType":"struct IWitOracleLegacy.QueryResponse","name":"response","type":"tuple"}],"internalType":"struct IWitOracleLegacy.Query","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_queryId","type":"uint256"}],"name":"getQueryEvmReward","outputs":[{"internalType":"Witnet.QueryEvmReward","name":"","type":"uint72"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"queryId","type":"uint256"}],"name":"getQueryRequest","outputs":[{"components":[{"internalType":"address","name":"requester","type":"address"},{"internalType":"uint24","name":"callbackGas","type":"uint24"},{"internalType":"uint72","name":"evmReward","type":"uint72"},{"internalType":"bytes","name":"radonBytecode","type":"bytes"},{"internalType":"bytes32","name":"radonHash","type":"bytes32"},{"components":[{"internalType":"uint8","name":"numWitnesses","type":"uint8"},{"internalType":"uint64","name":"witnessReward","type":"uint64"}],"internalType":"struct IWitOracleLegacy.RadonSLA","name":"radonParams","type":"tuple"}],"internalType":"struct IWitOracleLegacy.QueryRequest","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"Witnet.QueryId","name":"_queryId","type":"uint64"}],"name":"getQueryRequest","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":"Witnet.QueryId","name":"_queryId","type":"uint64"}],"name":"getQueryResponse","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":"uint256","name":"queryId","type":"uint256"}],"name":"getQueryResponse","outputs":[{"components":[{"internalType":"address","name":"reporter","type":"address"},{"internalType":"uint64","name":"finality","type":"uint64"},{"internalType":"uint32","name":"timestamp","type":"uint32"},{"internalType":"bytes32","name":"trail","type":"bytes32"},{"internalType":"bytes","name":"cborBytes","type":"bytes"}],"internalType":"struct IWitOracleLegacy.QueryResponse","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"queryId","type":"uint256"}],"name":"getQueryResponseStatus","outputs":[{"internalType":"enum IWitOracleLegacy.QueryResponseStatus","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_queryId","type":"uint256"}],"name":"getQueryResult","outputs":[{"components":[{"internalType":"enum Witnet.ResultStatus","name":"status","type":"uint8"},{"internalType":"enum Witnet.RadonDataTypes","name":"dataType","type":"uint8"},{"internalType":"Witnet.TransactionHash","name":"drTxHash","type":"bytes32"},{"internalType":"uint256","name":"finality","type":"uint256"},{"internalType":"Witnet.Timestamp","name":"timestamp","type":"uint64"},{"components":[{"components":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"cursor","type":"uint256"}],"internalType":"struct WitnetBuffer.Buffer","name":"buffer","type":"tuple"},{"internalType":"uint8","name":"initialByte","type":"uint8"},{"internalType":"uint8","name":"majorType","type":"uint8"},{"internalType":"uint8","name":"additionalInformation","type":"uint8"},{"internalType":"uint64","name":"len","type":"uint64"},{"internalType":"uint64","name":"tag","type":"uint64"}],"internalType":"struct WitnetCBOR.CBOR","name":"value","type":"tuple"}],"internalType":"struct Witnet.DataResult","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"queryId","type":"uint256"}],"name":"getQueryResultCborBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"queryId","type":"uint256"}],"name":"getQueryResultError","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":"uint256","name":"_queryId","type":"uint256"}],"name":"getQueryResultStatus","outputs":[{"internalType":"enum Witnet.ResultStatus","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_queryId","type":"uint256"}],"name":"getQueryResultStatusDescription","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_queryId","type":"uint256"}],"name":"getQueryResultTrails","outputs":[{"internalType":"bytes32","name":"queryUUID","type":"bytes32"},{"internalType":"Witnet.TransactionHash","name":"resultDrTxHash","type":"bytes32"},{"internalType":"Witnet.Timestamp","name":"resultTimestamp","type":"uint64"},{"internalType":"uint256","name":"resultFinalityBlock","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_queryId","type":"uint256"}],"name":"getQueryStatus","outputs":[{"internalType":"enum Witnet.QueryStatus","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_queryIds","type":"uint256[]"}],"name":"getQueryStatusBatch","outputs":[{"internalType":"enum Witnet.QueryStatus[]","name":"_status","type":"uint8[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_queryId","type":"uint256"}],"name":"getQueryStatusString","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"_initData","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_queryResponseReporter","type":"address"}],"name":"isReporter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"Witnet.TransactionHash","name":"witDrTxHash","type":"bytes32"},{"internalType":"Witnet.RadonHash","name":"queryRadHash","type":"bytes32"},{"components":[{"internalType":"uint16","name":"witResultMaxSize","type":"uint16"},{"internalType":"uint16","name":"witCommitteeSize","type":"uint16"},{"internalType":"uint64","name":"witUnitaryReward","type":"uint64"}],"internalType":"struct Witnet.QuerySLA","name":"queryParams","type":"tuple"},{"internalType":"Witnet.Timestamp","name":"resultTimestamp","type":"uint64"},{"internalType":"bytes","name":"resultCborBytes","type":"bytes"}],"internalType":"struct Witnet.DataPushReport","name":"_report","type":"tuple"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"parseDataReport","outputs":[{"components":[{"internalType":"enum Witnet.ResultStatus","name":"status","type":"uint8"},{"internalType":"enum Witnet.RadonDataTypes","name":"dataType","type":"uint8"},{"internalType":"Witnet.TransactionHash","name":"drTxHash","type":"bytes32"},{"internalType":"uint256","name":"finality","type":"uint256"},{"internalType":"Witnet.Timestamp","name":"timestamp","type":"uint64"},{"components":[{"components":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"cursor","type":"uint256"}],"internalType":"struct WitnetBuffer.Buffer","name":"buffer","type":"tuple"},{"internalType":"uint8","name":"initialByte","type":"uint8"},{"internalType":"uint8","name":"majorType","type":"uint8"},{"internalType":"uint8","name":"additionalInformation","type":"uint8"},{"internalType":"uint64","name":"len","type":"uint64"},{"internalType":"uint64","name":"tag","type":"uint64"}],"internalType":"struct WitnetCBOR.CBOR","name":"value","type":"tuple"}],"internalType":"struct Witnet.DataResult","name":"_result","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_queryRadHash","type":"bytes32"},{"components":[{"internalType":"uint8","name":"numWitnesses","type":"uint8"},{"internalType":"uint64","name":"witnessReward","type":"uint64"}],"internalType":"struct IWitOracleLegacy.RadonSLA","name":"_querySLA","type":"tuple"}],"name":"postRequest","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_queryRadHash","type":"bytes32"},{"components":[{"internalType":"uint8","name":"numWitnesses","type":"uint8"},{"internalType":"uint64","name":"witnessReward","type":"uint64"}],"internalType":"struct IWitOracleLegacy.RadonSLA","name":"_querySLA","type":"tuple"},{"internalType":"uint24","name":"_queryCallbackGas","type":"uint24"}],"name":"postRequestWithCallback","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"Witnet.TransactionHash","name":"witDrTxHash","type":"bytes32"},{"internalType":"Witnet.RadonHash","name":"queryRadHash","type":"bytes32"},{"components":[{"internalType":"uint16","name":"witResultMaxSize","type":"uint16"},{"internalType":"uint16","name":"witCommitteeSize","type":"uint16"},{"internalType":"uint64","name":"witUnitaryReward","type":"uint64"}],"internalType":"struct Witnet.QuerySLA","name":"queryParams","type":"tuple"},{"internalType":"Witnet.Timestamp","name":"resultTimestamp","type":"uint64"},{"internalType":"bytes","name":"resultCborBytes","type":"bytes"}],"internalType":"struct Witnet.DataPushReport","name":"_report","type":"tuple"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"pushDataReport","outputs":[{"components":[{"internalType":"enum Witnet.ResultStatus","name":"status","type":"uint8"},{"internalType":"enum Witnet.RadonDataTypes","name":"dataType","type":"uint8"},{"internalType":"Witnet.TransactionHash","name":"drTxHash","type":"bytes32"},{"internalType":"uint256","name":"finality","type":"uint256"},{"internalType":"Witnet.Timestamp","name":"timestamp","type":"uint64"},{"components":[{"components":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"cursor","type":"uint256"}],"internalType":"struct WitnetBuffer.Buffer","name":"buffer","type":"tuple"},{"internalType":"uint8","name":"initialByte","type":"uint8"},{"internalType":"uint8","name":"majorType","type":"uint8"},{"internalType":"uint8","name":"additionalInformation","type":"uint8"},{"internalType":"uint64","name":"len","type":"uint64"},{"internalType":"uint64","name":"tag","type":"uint64"}],"internalType":"struct WitnetCBOR.CBOR","name":"value","type":"tuple"}],"internalType":"struct Witnet.DataResult","name":"","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"Witnet.RadonHash","name":"_queryRAD","type":"bytes32"},{"components":[{"internalType":"uint16","name":"witResultMaxSize","type":"uint16"},{"internalType":"uint16","name":"witCommitteeSize","type":"uint16"},{"internalType":"uint64","name":"witUnitaryReward","type":"uint64"}],"internalType":"struct Witnet.QuerySLA","name":"_querySLA","type":"tuple"}],"name":"queryData","outputs":[{"internalType":"uint256","name":"_queryId","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"Witnet.RadonHash","name":"_queryRAD","type":"bytes32"},{"components":[{"internalType":"uint16","name":"witResultMaxSize","type":"uint16"},{"internalType":"uint16","name":"witCommitteeSize","type":"uint16"},{"internalType":"uint64","name":"witUnitaryReward","type":"uint64"}],"internalType":"struct Witnet.QuerySLA","name":"_querySLA","type":"tuple"},{"components":[{"internalType":"address","name":"consumer","type":"address"},{"internalType":"uint24","name":"gasLimit","type":"uint24"}],"internalType":"struct Witnet.QueryCallback","name":"_queryCallback","type":"tuple"}],"name":"queryDataWithCallback","outputs":[{"internalType":"uint256","name":"_queryId","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IWitOracleRadonRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"Witnet.QueryId","name":"_queryId","type":"uint64"},{"internalType":"Witnet.Timestamp","name":"_resultTimestamp","type":"uint64"},{"internalType":"Witnet.TransactionHash","name":"_witDrTxHash","type":"bytes32"},{"internalType":"bytes","name":"_resultCborBytes","type":"bytes"}],"name":"reportResult","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"queryId","type":"uint256"},{"internalType":"bytes32","name":"drTxHash","type":"bytes32"},{"internalType":"bytes","name":"resultCborBytes","type":"bytes"}],"name":"reportResult","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"Witnet.QueryId","name":"_queryId","type":"uint64"},{"internalType":"Witnet.TransactionHash","name":"_witDrTxHash","type":"bytes32"},{"internalType":"bytes","name":"_resultCborBytes","type":"bytes"}],"name":"reportResult","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"queryId","type":"uint256"},{"internalType":"uint32","name":"resultTimestamp","type":"uint32"},{"internalType":"bytes32","name":"drTxHash","type":"bytes32"},{"internalType":"bytes","name":"resultCborBytes","type":"bytes"}],"name":"reportResult","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"queryId","type":"uint256"},{"internalType":"uint32","name":"resultTimestamp","type":"uint32"},{"internalType":"bytes32","name":"drTxHash","type":"bytes32"},{"internalType":"bytes","name":"resultCborBytes","type":"bytes"}],"internalType":"struct IWitOracleLegacy.BatchResultLegacy[]","name":"results","type":"tuple[]"}],"name":"reportResultBatch","outputs":[{"internalType":"uint256","name":"_batchReward","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"Witnet.QueryId","name":"queryId","type":"uint64"},{"internalType":"Witnet.Timestamp","name":"resultTimestamp","type":"uint64"},{"internalType":"Witnet.TransactionHash","name":"drTxHash","type":"bytes32"},{"internalType":"bytes","name":"resultCborBytes","type":"bytes"}],"internalType":"struct IWitOracleQueriableTrustableReporter.BatchResult[]","name":"_batchResults","type":"tuple[]"}],"name":"reportResultBatch","outputs":[{"internalType":"uint256","name":"_batchReward","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_queryResponseReporters","type":"address[]"}],"name":"setReporters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"specs","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_exReporters","type":"address[]"}],"name":"unsetReporters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_queryId","type":"uint256"}],"name":"upgradeQueryEvmReward","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}];
  readonly bytecode: "0x6102006040523361010052348015610015575f5ffd5b50604051615dea380380615dea83398101604081905261003491610349565b8083835f6001846040518060400160405280601981526020017f696f2e7769746e65742e70726f786961626c652e626f6172640000000000000081525082335f6001600160a01b0316816001600160a01b0316036100ac57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6100b581610232565b5030608052151560c052600160025560e0919091528051602091820120610120526001600160a01b039283166101405260408051808201909152601381527f696e6578697374656e74207265676973747279000000000000000000000000009181019190915261012b9284163b1515915061024e565b6101ec63a614fef760e01b6001600160e01b031916826001600160a01b031663adb7c3f76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561017c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a091906103fa565b6001600160e01b031916146040518060400160405280601481526020017f756e636f6d706c69616e7420726567697374727900000000000000000000000081525061024e60201b60201c565b6001600160a01b031661016052805163ffffffff90811661018052602082015181166101a052604082015181166101c052606090910151166101e0525061049d92505050565b600180546001600160a01b031916905561024b81610260565b50565b8161025c5761025c816102af565b5050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60408051808201909152601981527f5769744f7261636c65547275737461626c6544656661756c74000000000000006020820152816040516020016102f592919061043f565b60408051601f198184030181529082905262461bcd60e51b82526100a391600401610468565b805163ffffffff8116811461032e575f5ffd5b919050565b80516001600160a01b038116811461032e575f5ffd5b5f5f5f83850360c081121561035c575f5ffd5b6080811215610369575f5ffd5b50604051608081016001600160401b038111828210171561039857634e487b7160e01b5f52604160045260245ffd5b6040526103a48561031b565b81526103b26020860161031b565b60208201526103c36040860161031b565b60408201526103d46060860161031b565b606082015292506103e760808501610333565b60a0949094015192959394509192915050565b5f6020828403121561040a575f5ffd5b81516001600160e01b031981168114610421575f5ffd5b9392505050565b5f81518060208401855e5f93019283525090919050565b5f61044a8285610428565b6101d160f51b815261045f6002820185610428565b95945050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161588061056a5f395f8181610e880152818161159d0152612e3f01525f610eb401525f8181610ef40152610f3c01525f6115c901525f818161092f01528181611f60015261285a01525f610cc101525f61071a01525f610c7101525f611fd201525f8181610769015261215701525f50505f81816106d101528181610b0e01528181611969015281816119da01528181611a210152611a4301526158805ff3fe6080604052600436106103ac575f3560e01c806379ba5097116101e6578063adb7c3f71161010c578063d0a92a081161009f578063e900aa331161006e578063e900aa3314610ce3578063ec5946db14610cf6578063f2fde38b14610d09578063f61921b214610d28576103ac565b8063d0a92a0814610c41578063d5f3948814610c60578063e30c397814610c93578063e5a6b10f14610cb0576103ac565b8063bff852fa116100db578063bff852fa14610bb6578063c258134814610bca578063c805dd0f14610be9578063ca7da98b14610c15576103ac565b8063adb7c3f714610b33578063aeb2ffc114610b4c578063b207e73014610b78578063b783922b14610b97576103ac565b80638d3d8b3811610184578063a58f680311610153578063a58f680314610a95578063a667533f14610aa8578063a77fc1a414610ad4578063a9e954b914610b00576103ac565b80638d3d8b3814610a075780638da5cb5b14610a2657806393d5185c14610a425780639cc56e6714610a76576103ac565b80637bd88218116101c05780637bd882181461097e5780637c1fbda31461099d578063838d44e2146109bc5780638cfcdea2146109db576103ac565b806379ba50971461090a5780637b1039991461091e5780637bbdb96e14610951576103ac565b80634cddf615116102d657806359209b39116102695780636f07abcc116102385780636f07abcc146108565780636fdaab7e14610875578063715018a6146108d757806376d0e357146108eb576103ac565b806359209b39146107cd5780636280bce8146107f95780636b58960a146108185780636d0d6a7e14610837576103ac565b80635304bba2116102a55780635304bba21461073c5780635479d9401461075b57806354fd4d501461078d578063581f5094146107a1576103ac565b80634cddf615146106785780634e6c13a1146106a45780635001f3b5146106c357806352d1902d14610709576103ac565b806328a78d9b1161034e5780633fa595761161031d5780633fa59576146105c0578063439fab911461060e57806345ea6c171461062d5780634c9f72e314610659576103ac565b806328a78d9b1461055a57806339a8653e1461057b5780633b3195b71461059a5780633dc2b7a2146105ad576103ac565b806308b7e85e1161038a57806308b7e85e146104b75780630aa4112a146104e35780631aea970b1461050f578063234fe6e31461052e576103ac565b8063044ad7be1461043757806305e742ef1461046b57806306eb2c4214610498575b3480156103b7575f5ffd5b506103c55f3560f81c610d54565b6103d560ff5f3560f01c16610d54565b6103e560ff5f3560e81c16610d54565b6103f560ff5f3560e01c16610d54565b6040516020016104089493929190613b5c565b60408051601f198184030181529082905262461bcd60e51b825261042e91600401613be8565b60405180910390fd5b348015610442575f5ffd5b50610456610451366004613c0e565b610e40565b60405190151581526020015b60405180910390f35b348015610476575f5ffd5b5061048a610485366004613c39565b610e81565b604051908152602001610462565b3480156104a3575f5ffd5b5061048a6104b2366004613cae565b610f71565b3480156104c2575f5ffd5b506104d66104d1366004613cec565b611190565b6040516104629190613be8565b3480156104ee575f5ffd5b506105026104fd366004613cec565b6111b0565b6040516104629190613d87565b34801561051a575f5ffd5b5061048a610529366004613dea565b611404565b348015610539575f5ffd5b5061054d610548366004613cec565b6114b1565b6040516104629190613e7b565b348015610565575f5ffd5b50610579610574366004613cae565b611526565b005b348015610586575f5ffd5b5061048a610595366004613cec565b611597565b61048a6105a8366004613fca565b6115f7565b61048a6105bb36600461404d565b6117e3565b3480156105cb575f5ffd5b506105df6105da366004613cec565b611842565b604051610462949392919093845260208401929092526001600160401b03166040830152606082015260800190565b348015610619575f5ffd5b506105796106283660046140f6565b611893565b348015610638575f5ffd5b5061064c610647366004613cae565b611ac7565b6040516104629190614127565b348015610664575f5ffd5b50610579610673366004613cae565b611b6e565b348015610683575f5ffd5b50610697610692366004613cec565b611baf565b604051610462919061419f565b3480156106af575f5ffd5b5061048a6106be3660046141cf565b611c23565b3480156106ce575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610462565b348015610714575f5ffd5b5061048a7f000000000000000000000000000000000000000000000000000000000000000081565b348015610747575f5ffd5b5061064c6107563660046142f6565b611f2e565b348015610766575f5ffd5b507f0000000000000000000000000000000000000000000000000000000000000000610456565b348015610798575f5ffd5b506104d6611fcb565b3480156107ac575f5ffd5b506107c06107bb366004613cae565b611ffb565b604051610462919061439b565b3480156107d8575f5ffd5b506107ec6107e7366004613cec565b6120b5565b60405161046291906143e6565b348015610804575f5ffd5b5061048a6108133660046144d2565b612131565b348015610823575f5ffd5b50610456610832366004613c0e565b612154565b348015610842575f5ffd5b506107ec610851366004614520565b6121a8565b348015610861575f5ffd5b5061054d610870366004613cec565b6122a3565b348015610880575f5ffd5b506108bf61088f366004613cec565b5f9081525f51602061582b5f395f51905f526020526040902060090154600160781b90046001600160481b031690565b6040516001600160481b039091168152602001610462565b3480156108e2575f5ffd5b506105796122dd565b3480156108f6575f5ffd5b5061048a61090536600461458b565b6122f0565b348015610915575f5ffd5b50610579612357565b348015610929575f5ffd5b506106f17f000000000000000000000000000000000000000000000000000000000000000081565b34801561095c575f5ffd5b506109656123d1565b6040516001600160e01b03199091168152602001610462565b348015610989575f5ffd5b5061048a6109983660046145ca565b6123db565b3480156109a8575f5ffd5b506108bf6109b7366004613cec565b6123e5565b3480156109c7575f5ffd5b506104d66109d6366004613cec565b6124da565b3480156109e6575f5ffd5b506109fa6109f53660046145ed565b61255c565b60405161046291906146b1565b348015610a12575f5ffd5b506104d6610a21366004613cec565b61266e565b348015610a31575f5ffd5b505f546001600160a01b03166106f1565b348015610a4d575f5ffd5b50610a61610a5c36600461476d565b612683565b60408051928352602083019190915201610462565b348015610a81575f5ffd5b5061048a610a903660046147e8565b612836565b61048a610aa3366004614808565b6128fc565b348015610ab3575f5ffd5b50610ac7610ac23660046145ed565b6129bb565b604051610462919061482a565b348015610adf575f5ffd5b50610af3610aee366004613cec565b612a6d565b604051610462919061483c565b348015610b0b575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000003f61048a565b348015610b3e575f5ffd5b506304722eaf60e31b610965565b348015610b57575f5ffd5b50610b6b610b66366004613cec565b612b55565b60405161046291906148b6565b348015610b83575f5ffd5b5061048a610b92366004614901565b612b87565b348015610ba2575f5ffd5b506107ec610bb1366004614520565b612bb1565b348015610bc1575f5ffd5b506104d6612c35565b348015610bd5575f5ffd5b506104d6610be4366004613cec565b612c6c565b348015610bf4575f5ffd5b50610bfd612d3d565b6040516001600160401b039091168152602001610462565b348015610c20575f5ffd5b50610c34610c2f3660046145ed565b612d61565b6040516104629190614925565b348015610c4c575f5ffd5b5061048a610c5b366004614937565b612e06565b348015610c6b575f5ffd5b506106f17f000000000000000000000000000000000000000000000000000000000000000081565b348015610c9e575f5ffd5b506001546001600160a01b03166106f1565b348015610cbb575f5ffd5b506106f17f000000000000000000000000000000000000000000000000000000000000000081565b61048a610cf136600461496a565b612e90565b610579610d04366004613cec565b612f00565b348015610d14575f5ffd5b50610579610d23366004613c0e565b613059565b348015610d33575f5ffd5b50610d47610d42366004613cec565b6130c9565b60405161046291906149a8565b6040805160028082528183019092526060915f91906020820181803683370190505090505f610d846010856149e2565b610d8f906030614a03565b90505f610d9d601086614a1c565b610da8906030614a03565b905060398260ff161115610dc457610dc1600783614a03565b91505b60398160ff161115610dde57610ddb600782614a03565b90505b8160f81b835f81518110610df457610df4614a3d565b60200101906001600160f81b03191690815f1a9053508060f81b83600181518110610e2157610e21614a3d565b60200101906001600160f81b03191690815f1a90535091949350505050565b6001600160a01b0381165f9081527ff595240b351bc8f951c2f53b26f4e78c32cb62122cf76c19b7fdda7d4968e185602052604081205460ff165b92915050565b5f80610eae7f00000000000000000000000000000000000000000000000000000000000000006003614a51565b610ed8907f0000000000000000000000000000000000000000000000000000000000000000614a68565b9050808362ffffff161080610f1a575080610f1862ffffff85167f0000000000000000000000000000000000000000000000000000000000000000614a68565b105b15610f3157610f298185614a51565b915050610e7b565b610f6062ffffff84167f0000000000000000000000000000000000000000000000000000000000000000614a68565b610f299085614a51565b5092915050565b5f610fd05f51602061580b5f395f51905f525b335f908152600291909101602090815260409182902054825180840190935260158352743ab730baba3437b934bd32b2103932b837b93a32b960591b9183019190915260ff16906132da565b5f826001600160401b03811115610fe957610fe9613e8e565b60405190808252806020026020018201604052801561103857816020015b604080516080810182525f80825260208083018290529282015260608082015282525f199092019101816110075790505b5090505f5b8381101561117e57604051806080016040528086868481811061106257611062614a3d565b90506020028101906110749190614a7b565b356001600160401b0316815260200186868481811061109557611095614a3d565b90506020028101906110a79190614a7b565b6110b8906040810190602001614a99565b63ffffffff1681526020018686848181106110d5576110d5614a3d565b90506020028101906110e79190614a7b565b60400135815260200186868481811061110257611102614a3d565b90506020028101906111149190614a7b565b611122906060810190614ab2565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050915250825183908390811061116b5761116b614a3d565b602090810291909101015260010161103d565b5061118881611c23565b949350505050565b606061119b826123e5565b505060408051602081019091525f8152919050565b6111f36040805160c0810182525f80825260208083018290528284018290526060808401526080830182905283518085019094528184528301529060a082015290565b5f8281525f51602061582b5f395f51905f526020526040902060018101805461ffff919061122090614af4565b9050111561127b576040805160c0810182525f8082526020808301829052828401829052835180820185528281526060840152600290940154608083015282518084019093528083529282019290925260a082015292915050565b6003810154156113a4576040805160c08101825282546001600160a01b0381168252600160a01b810462ffffff166020830152600160b81b90046001600160481b0316918101919091526001820180546060830191906112da90614af4565b80601f016020809104026020016040519081016040528092919081815260200182805461130690614af4565b80156113515780601f1061132857610100808354040283529160200191611351565b820191905f5260205f20905b81548152906001019060200180831161133457829003601f168201915b5050509183525050600283015460208083019190915260408051808201825260089095015462010000810460ff16865264010000000090046001600160401b031691850191909152019190915292915050565b6040805160c08101825282546001600160a01b0381168252600160a01b900462ffffff1660208201526009830154600160781b90046001600160481b0316918101919091526001820180546060830191906112da90614af4565b50919050565b5f61141b5f51602061580b5f395f51905f52610f84565b6114556001600160401b03861615156040518060400160405280600d81526020016c06261642074696d657374616d7609c1b8152506132da565b604080518082019091526016815275726573756c742063616e6e6f7420626520656d70747960501b602082015261148f90831515906132da565b6114a5866001600160401b0316868686866132ec565b90505b95945050505050565b60405163234fe6e360e01b8152600481018290525f9073__$713c4f4487e8756194dbc5b3b091cd4345$__9063234fe6e3906024015b602060405180830381865af4158015611502573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e7b9190614b32565b61152e61333a565b6040516328a78d9b60e01b815273__$713c4f4487e8756194dbc5b3b091cd4345$__906328a78d9b906115679085908590600401614b4d565b5f6040518083038186803b15801561157d575f5ffd5b505af415801561158f573d5f5f3e3d5ffd5b505050505050565b5f6115c37f00000000000000000000000000000000000000000000000000000000000000006004614a51565b6115ed907f0000000000000000000000000000000000000000000000000000000000000000614a68565b610e7b9083614a51565b5f346116073a8460200151610e81565b61163f81831015604051806040016040528060138152602001721a5b9cdd59999a58da595b9d081c995dd85c99606a1b8152506132da565b61167d61164d82600a614a51565b8311156040518060400160405280600f81526020016e1d1bdbc81b5d58da081c995dd85c99608a1b8152506132da565b846116b361168a82613366565b6040518060400160405280600b81526020016a696e76616c696420534c4160a81b8152506132da565b846117795f825f01516001600160a01b03163b118015611737575081516040516323d0872b60e11b81523060048201526001600160a01b03909116906347a10e5690602401602060405180830381865afa158015611713573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117379190614b99565b801561174b57505f826020015162ffffff16115b6040518060400160405280601081526020016f696e76616c69642063616c6c6261636b60801b8152506132da565b8551602087015161178d9190348b8b6133a1565b9450336001600160a01b03167ffbe74eb38ea9de3d74d481a4f701ae121d794895c5797db8260d06d317901d263a34888c8c6040516117d0959493929190614bb8565b60405180910390a2505050509392505050565b5f61183b836040518060600160405280602061ffff168152602001855f0160208101906118109190614c1f565b60ff16815260209081019061182b90604088019088016145ed565b6001600160401b031690526128fc565b9392505050565b5f5f5f5f5f6118508661341d565b600981015460058201546004909201546001600160881b0319608883901b16999298506001600160401b03600160c01b9182900481169850910416945092505050565b5f546001600160a01b0316806118c957818060200190518101906118b79190614c9b565b925090506118c481613439565b611911565b336001600160a01b038216146119115760405162461bcd60e51b815260206004820152600d60248201526c3737ba103a34329037bbb732b960991b604482015260640161042e565b61191a82613452565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbe541580159061198b57507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbe547f00000000000000000000000000000000000000000000000000000000000000003f145b156119d85760405162461bcd60e51b815260206004820152601c60248201527f616c726561647920696e697469616c697a656420636f64656861736800000000604482015260640161042e565b7f00000000000000000000000000000000000000000000000000000000000000003f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc600201557f00000000000000000000000000000000000000000000000000000000000000003f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611a7c5f546001600160a01b031690565b6001600160a01b03167fe73e754121f0bad1327816970101955bfffdf53d270ac509d777c25be070d7f6611aae611fcb565b604051611abb9190613be8565b60405180910390a45050565b60605f826001600160401b03811115611ae257611ae2613e8e565b604051908082528060200260200182016040528015611b0b578160200160208202803683370190505b5090505f5b8151811015611b6457848482818110611b2b57611b2b614a3d565b90506020020135828281518110611b4457611b44614a3d565b6001600160401b0390921660209283029190910190910152600101611b10565b5061118881611f2e565b611b7661333a565b604051634c9f72e360e01b815273__$713c4f4487e8756194dbc5b3b091cd4345$__90634c9f72e3906115679085908590600401614b4d565b604051634cddf61560e01b8152600481018290525f9073__$713c4f4487e8756194dbc5b3b091cd4345$__90634cddf61590602401602060405180830381865af4158015611bff573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e7b9190614cf7565b5f611c3a5f51602061580b5f395f51905f52610f84565b5f5b8251811015611f18575f838281518110611c5857611c58614a3d565b6020908102919091010151516001600160401b031690506001611c7a826122a3565b6006811115611c8b57611c8b613e57565b14611d88577f4df64445edc775fba59db44b8001852fb1b777eea88fd54f04572dd114e3ff7f848381518110611cc357611cc3614a3d565b60200260200101515f0151611cd6612c35565b604051638f191e5f60e01b815273__$713c4f4487e8756194dbc5b3b091cd4345$__90638f191e5f90611d0e90600190600401613e7b565b5f60405180830381865af4158015611d28573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611d4f9190810190614d10565b604051602001611d60929190614d54565b60408051601f1981840301815290829052611d7b9291614d74565b60405180910390a1611f0f565b426001600160401b0316848381518110611da457611da4614a3d565b6020026020010151602001516001600160401b03161180611df75750611df7848381518110611dd557611dd5614a3d565b6020026020010151602001516001600160401b03166001600160401b03161590565b80611e1f5750838281518110611e0f57611e0f614a3d565b602002602001015160600151515f145b15611e7a577f4df64445edc775fba59db44b8001852fb1b777eea88fd54f04572dd114e3ff7f848381518110611e5757611e57614a3d565b60200260200101515f0151611e6a612c35565b604051602001611d609190614d95565b611f02848381518110611e8f57611e8f614a3d565b60200260200101515f01516001600160401b0316858481518110611eb557611eb5614a3d565b602002602001015160200151868581518110611ed357611ed3614a3d565b602002602001015160400151878681518110611ef157611ef1614a3d565b6020026020010151606001516134cb565b611f0c9084614a68565b92505b50600101611c3c565b508015611f2957611f293382613609565b919050565b604051633ab5a66d60e11b815260609073__$713c4f4487e8756194dbc5b3b091cd4345$__9063756b4cda90611f8a907f0000000000000000000000000000000000000000000000000000000000000000908690600401614dc5565b5f60405180830381865af4158015611fa4573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610e7b9190810190614e23565b6060611ff67f000000000000000000000000000000000000000000000000000000000000000061363c565b905090565b6060816001600160401b0381111561201557612015613e8e565b60405190808252806020026020018201604052801561203e578160200160208202803683370190505b5090505f5b82811015610f6a5761206c84848381811061206057612060614a3d565b905060200201356122a3565b82828151811061207e5761207e614a3d565b6020026020010190600681111561209757612097613e57565b908160068111156120aa576120aa613e57565b905250600101612043565b6120bd613a48565b6040516359209b3960e01b81526004810183905273__$713c4f4487e8756194dbc5b3b091cd4345$__906359209b39906024015f60405180830381865af415801561210a573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610e7b919081019061505b565b5f6121485f51602061580b5f395f51905f52610f84565b6114a8858585856122f0565b5f7f00000000000000000000000000000000000000000000000000000000000000008015610e7b5750816001600160a01b03166121985f546001600160a01b031690565b6001600160a01b03161492915050565b6121b0613a48565b5f5f73__$713c4f4487e8756194dbc5b3b091cd4345$__631600b78b8787876040518463ffffffff1660e01b81526004016121ed939291906150fe565b5f60405180830381865af4158015612207573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261222e91908101906151ae565b909250905033327f7a9001dc4425127400f09e4c0b02908ad0e1f642ee9c92932a222c686674648284893560208b013560408c0161227260c08e0160a08f016145ed565b61227f60c08f018f614ab2565b60405161229297969594939291906151f1565b60405180910390a395945050505050565b604051631bc1eaf360e21b8152600481018290525f9073__$713c4f4487e8756194dbc5b3b091cd4345$__90636f07abcc906024016114e7565b6122e561333a565b6122ee5f613439565b565b5f6123075f51602061580b5f395f51905f52610f84565b604080518082019091526016815275726573756c742063616e6e6f7420626520656d70747960501b602082015261234190831515906132da565b6114a8856001600160401b0316428686866132ec565b60015433906001600160a01b031681146123c55760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840161042e565b6123ce81613439565b50565b5f611ff6306136dd565b5f61183b83611597565b604051637c1fbda360e01b8152600481018290525f9073__$713c4f4487e8756194dbc5b3b091cd4345$__90637c1fbda390602401602060405180830381865af4925050508015612453575060408051601f3d908101601f1916820190925261245091810190615262565b60015b6124c05761245f61527b565b806308c379a0036124875750612473615293565b8061247e5750612489565b6113fe8161371b565b505b3d8080156124b2576040519150601f19603f3d011682016040523d82523d5f602084013e6124b7565b606091505b506113fe613735565b6001600160481b0381168015610f6a57610f6a3382613609565b606073__$713c4f4487e8756194dbc5b3b091cd4345$__634cbc7ff86124ff846122a3565b6040518263ffffffff1660e01b815260040161251b9190613e7b565b5f60405180830381865af4158015612535573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610e7b9190810190614d10565b6125f26040805161014081019091525f60c0820181815260e083018290526060610100840152610120830191909152819081526040805160a0810182525f808252602082810182905292820181905260608083015260808201529101908152604080516060810182525f80825260208281018290529282015291019081525f602082018190526040820181905260609091015290565b60405163467e6f5160e11b81526001600160401b038316600482015273__$713c4f4487e8756194dbc5b3b091cd4345$__90638cfcdea2906024015f60405180830381865af4158015612647573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610e7b9190810190615494565b606061267982612d61565b6060015192915050565b5f80805b8781101561282a575f8989838181106126a2576126a2614a3d565b60200291909101359150600190506126b9826122a3565b60068111156126ca576126ca613e57565b03612821575f6126d98261341d565b8054909150600160a01b900462ffffff161561276957604080516060810182525f8152600883015461ffff62010000820416602083015264010000000090046001600160401b0316918101919091526127359088908890612e06565b815461274e908990600160a01b900462ffffff16610e81565b6127589190614a68565b6127629085614a68565b93506127d1565b60408051606081018252600883015461ffff808216835262010000820416602083015264010000000090046001600160401b0316918101919091526127b19088908890612e06565b6127ba88611597565b6127c49190614a68565b6127ce9085614a68565b93505b60088101546127f19064010000000090046001600160401b031687614a51565b6127fb9085614a68565b600982015490945061281d90600160781b90046001600160481b031686614a68565b9450505b50600101612687565b50965096945050505050565b604051631a3b01e960e21b8152600481018290525f906128f3906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906368ec07a490602401602060405180830381865afa15801561289f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128c39190614b99565b604051806040016040528060128152602001710eadcd6dcdeeedc40e4c2c8dedc40d0c2e6d60731b8152506132da565b61183b83611597565b5f346129073a611597565b61293f81831015604051806040016040528060138152602001721a5b9cdd59999a58da595b9d081c995dd85c99606a1b8152506132da565b61294d61164d82600a614a51565b8361295a61168a82613366565b612967335f3489896133a1565b9350336001600160a01b03167ffbe74eb38ea9de3d74d481a4f701ae121d794895c5797db8260d06d317901d263a34878a8a6040516129aa959493929190614bb8565b60405180910390a250505092915050565b6129f160405180608001604052805f6001600160a01b031681526020015f62ffffff168152602001606081526020015f81525090565b60405163a667533f60e01b81526001600160401b038316600482015273__$713c4f4487e8756194dbc5b3b091cd4345$__9063a667533f906024015f60405180830381865af4158015612a46573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610e7b919081019061556e565b604080518082019091525f8152606060208201525f612a8b836120b5565b90506040518060400160405280825f015160ff811115612aad57612aad613e57565b60ff16815260200173__$39c1c75f9ff01712a7ae2d1d1d8c462aa1$__6371aad10d84604051602001612ae091906143e6565b6040516020818303038152906040526040518263ffffffff1660e01b8152600401612b0b9190613be8565b5f60405180830381865af4158015612b25573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612b4c9190810190614d10565b90529392505050565b612b5d613ac3565b6040518060400160405280612b71846111b0565b8152602001612b7f846130c9565b905292915050565b5f612b9e5f51602061580b5f395f51905f52610f84565b6114a5868663ffffffff16868686611404565b612bb9613a48565b604051631600b78b60e01b815273__$713c4f4487e8756194dbc5b3b091cd4345$__90631600b78b90612bf4908790879087906004016150fe565b5f60405180830381865af4158015612c0e573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526114a891908101906151ae565b60408051808201909152601981527f5769744f7261636c65547275737461626c6544656661756c7400000000000000602082015290565b606073__$39c1c75f9ff01712a7ae2d1d1d8c462aa1$__6371aad10d73__$713c4f4487e8756194dbc5b3b091cd4345$__6359209b39856040518263ffffffff1660e01b8152600401612cc191815260200190565b5f60405180830381865af4158015612cdb573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612d02919081019061505b565b604051602001612d1291906143e6565b6040516020818303038152906040526040518263ffffffff1660e01b815260040161251b9190613be8565b5f5f51602061580b5f395f51905f5254611ff6906001600160401b0316600161559f565b6040805160a0810182525f80825260208201819052918101829052606080820152608081019190915260405163ca7da98b60e01b81526001600160401b038316600482015273__$713c4f4487e8756194dbc5b3b091cd4345$__9063ca7da98b906024015f60405180830381865af4158015612ddf573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610e7b91908101906155be565b5f6020825f015161ffff1611612e1c575f612e6e565b8151602090612e2c9082906155ef565b612e369190615609565b61ffff16612e647f000000000000000000000000000000000000000000000000000000000000000086614a51565b612e6e9190614a51565b6040830151612e86906001600160401b031685614a51565b6111889190614a68565b5f611188846040518060600160405280602061ffff168152602001865f016020810190612ebd9190614c1f565b60ff168152602090810190612ed890604089019089016145ed565b6001600160401b031690526040805180820190915233815262ffffff861660208201526115f7565b80600180612f0d836122a3565b6006811115612f1e57612f1e613e57565b14612fa957604051638f191e5f60e01b8152612fa49073__$713c4f4487e8756194dbc5b3b091cd4345$__90638f191e5f90612f5e908590600401613e7b565b5f60405180830381865af4158015612f78573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612f9f9190810190614d10565b61371b565b505050565b5f612fb38461341d565b90505f346009830154612fd69190600160781b90046001600160481b0316614a68565b6009830180546001600160481b038316600160781b0268ffffffffffffffffff60781b19909116179055604080516001600160401b03881681523360208201523a818301526060810183905290519192507f66f95ec285ca572fa1cac40e7019e14ab45a8fc619c6405222e8af55534c2f67919081900360800190a15050505050565b61306161333a565b600180546001600160a01b0383166001600160a01b031990911681179091556130915f546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b61310f6040518060a001604052805f6001600160a01b031681526020015f6001600160401b031681526020015f63ffffffff1681526020015f8152602001606081525090565b5f8281525f51602061582b5f395f51905f526020526040902060018101805461ffff919061313c90614af4565b905011156131805750506040805160a0810182525f808252602080830182905282840182905260608301829052835191825281019092526080810191909152919050565b600381015415613275576040805160a08101825260048301546001600160a01b038116825263ffffffff600160a01b82048116602080850191909152600160c01b90920490911c1691810191909152600582015460608201526006820180546080830191906131ee90614af4565b80601f016020809104026020016040519081016040528092919081815260200182805461321a90614af4565b80156132655780601f1061323c57610100808354040283529160200191613265565b820191905f5260205f20905b81548152906001019060200180831161324857829003601f168201915b5050505050815250915050919050565b6040805160a08101825260048301546001600160a01b038116825260098401546001600160401b03600160c01b9182900416602084015263ffffffff91041691810191909152600582015460608201526006820180546080830191906131ee90614af4565b816132e8576132e88161371b565b5050565b5f61332e86868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506134cb92505050565b90506114a83382613609565b5f546001600160a01b031633146122ee5760405163118cdaa760e01b815233600482015260240161042e565b5f5f826020015161ffff161180156133875750607f826020015161ffff1611155b8015610e7b575050604001516001600160401b0316151590565b5f6133af8686868686613740565b90507ffb94adf28ab7e538d2691d90927f622cbc1100eae6afec58052efdee6c98a61681346040518060400160405280866020015160ff16815260200186604001516001600160401b031681525060405161340c9392919061562c565b60405180910390a195945050505050565b5f9081525f51602061582b5f395f51905f526020526040902090565b600180546001600160a01b03191690556123ce816138ab565b73__$713c4f4487e8756194dbc5b3b091cd4345$__634c9f72e382806020019051810190613480919061565b565b6040518263ffffffff1660e01b815260040161349c91906156f6565b5f6040518083038186803b1580156134b2575f5ffd5b505af41580156134c4573d5f5f3e3d5ffd5b5050505050565b5f6135876001604051631bc1eaf360e21b81526004810188905273__$713c4f4487e8756194dbc5b3b091cd4345$__90636f07abcc90602401602060405180830381865af415801561351f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135439190614b32565b600681111561355457613554613e57565b14604051806040016040528060148152602001736e6f7420696e20506f737465642073746174757360601b8152506132da565b604051637102a0df60e11b815273__$713c4f4487e8756194dbc5b3b091cd4345$__9063e20541be906135ca9033903a9043908b908b908b908b90600401615736565b602060405180830381865af41580156135e5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114a89190615786565b6040516001600160a01b0383169082156108fc029083905f818181858888f19350505050158015612fa4573d5f5f3e3d5ffd5b60605f613648836138fa565b6001600160401b0381111561365f5761365f613e8e565b6040519080825280601f01601f191660200182016040528015613689576020820181803683370190505b5090505f5b8151811015610f6a578381602081106136a9576136a9614a3d565b1a60f81b8282815181106136bf576136bf614a3d565b60200101906001600160f81b03191690815f1a90535060010161368e565b604080516001600160a01b038316602082015246918101919091525f906060015b604051602081830303815290604052805190602001209050919050565b613723612c35565b81604051602001610408929190614d54565b6122ee612f9f613932565b5f5f51602061580b5f395f51905f5280545f90613765906001600160401b031661579d565b91906101000a8154816001600160401b0302191690836001600160401b0316021790556001600160401b031690505f61379d8261341d565b6009810180546001600160c01b0316600160c01b436001600160401b03160217905590506137d482856137cf86613981565b6139d4565b60098201805460889290921c6001600160c01b031990921691909117600160781b6001600160481b0388160217905580546001600160a01b0319166001600160a01b0388161781556002810184905562ffffff86161561384957805462ffffff60a01b1916600160a01b62ffffff8816021781555b82516008909101805460208501516040909501516001600160401b0316640100000000026bffffffffffffffff000000001961ffff968716620100000263ffffffff199093169690941695909517179190911692909217909155949350505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f5b6020811015611f295781816020811061391757613917614a3d565b1a60f81b6001600160f81b03191615611f29576001016138fc565b60606040518060400160405260108152806020016f2bb4ba27b930b1b632a230ba30a634b160811b81525060405160200161396d91906157c7565b604051602081830303815290604052905090565b5f815f0151826020015183604001516040516020016136fe9392919060f093841b6001600160f01b031990811682529290931b909116600283015260c01b6001600160c01b0319166004820152600c0190565b5f6139de306136dd565b6139e96001436157f7565b604080516001600160e01b031990931660208401529040908201526001600160401b03851660608201526080810184905260a0810183905260c0016040516020818303038152906040528051906020012090509392505050565b905290565b6040805160c08101909152805f81526020015f81526020015f81526020015f81526020015f6001600160401b03168152602001613a43604080516101008101909152606060c082019081525f60e0830152819081525f6020820181905260408201819052606082018190526080820181905260a09091015290565b6040518060400160405280613b116040805160c0810182525f80825260208083018290528284018290526060808401526080830182905283518085019094528184528301529060a082015290565b81526040805160a0810182525f80825260208281018290529282018190526060808301919091526080820152910190613a43565b5f81518060208401855e5f93019283525090919050565b7f5769746e657455706772616461626c65426173653a206e6f7420696d706c656d8152680cadce8cac8744060f60bb1b60208201525f6114a5613bb4613bae613ba8602986018a613b45565b88613b45565b86613b45565b84613b45565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61183b6020830184613bba565b6001600160a01b03811681146123ce575f5ffd5b5f60208284031215613c1e575f5ffd5b813561183b81613bfa565b62ffffff811681146123ce575f5ffd5b5f5f60408385031215613c4a575f5ffd5b823591506020830135613c5c81613c29565b809150509250929050565b5f5f83601f840112613c77575f5ffd5b5081356001600160401b03811115613c8d575f5ffd5b6020830191508360208260051b8501011115613ca7575f5ffd5b9250929050565b5f5f60208385031215613cbf575f5ffd5b82356001600160401b03811115613cd4575f5ffd5b613ce085828601613c67565b90969095509350505050565b5f60208284031215613cfc575f5ffd5b5035919050565b60018060a01b03815116825262ffffff60208201511660208301526001600160481b0360408201511660408301525f606082015160e06060850152613d4b60e0850182613bba565b90506080830151608085015260a0830151613d7f60a0860182805160ff1682526020908101516001600160401b0316910152565b509392505050565b602081525f61183b6020830184613d03565b6001600160401b03811681146123ce575f5ffd5b5f5f83601f840112613dbd575f5ffd5b5081356001600160401b03811115613dd3575f5ffd5b602083019150836020828501011115613ca7575f5ffd5b5f5f5f5f5f60808688031215613dfe575f5ffd5b8535613e0981613d99565b94506020860135613e1981613d99565b93506040860135925060608601356001600160401b03811115613e3a575f5ffd5b613e4688828901613dad565b969995985093965092949392505050565b634e487b7160e01b5f52602160045260245ffd5b600781106123ce576123ce613e57565b60208101613e8883613e6b565b91905290565b634e487b7160e01b5f52604160045260245ffd5b606081018181106001600160401b0382111715613ec157613ec1613e8e565b60405250565b604081018181106001600160401b0382111715613ec157613ec1613e8e565b608081018181106001600160401b0382111715613ec157613ec1613e8e565b60c081018181106001600160401b0382111715613ec157613ec1613e8e565b601f8201601f191681016001600160401b0381118282101715613f4957613f49613e8e565b6040525050565b604051613f5e60c082613f24565b90565b61ffff811681146123ce575f5ffd5b5f60608284031215613f80575f5ffd5b604051613f8c81613ea2565b8091508235613f9a81613f61565b81526020830135613faa81613f61565b60208201526040830135613fbd81613d99565b6040919091015292915050565b5f5f5f83850360c0811215613fdd575f5ffd5b84359350613fee8660208701613f70565b92506040607f1982011215614001575f5ffd5b5060405161400e81613ec7565b608085013561401c81613bfa565b815260a085013561402c81613c29565b602082015292959194509192509050565b5f604082840312156113fe575f5ffd5b5f5f6060838503121561405e575f5ffd5b8235915061406f846020850161403d565b90509250929050565b5f6001600160401b0382111561409057614090613e8e565b50601f01601f191660200190565b5f82601f8301126140ad575f5ffd5b81356140b881614078565b6040516140c58282613f24565b8281528560208487010111156140d9575f5ffd5b826020860160208301375f92810160200192909252509392505050565b5f60208284031215614106575f5ffd5b81356001600160401b0381111561411b575f5ffd5b6111888482850161409e565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b8281101561417e57603f19878603018452614169858351613bba565b9450602093840193919091019060010161414d565b50929695505050505050565b610100811061419b5761419b613e57565b9052565b60208101610e7b828461418a565b5f6001600160401b038211156141c5576141c5613e8e565b5060051b60200190565b5f602082840312156141df575f5ffd5b81356001600160401b038111156141f4575f5ffd5b8201601f81018413614204575f5ffd5b803561420f816141ad565b60405161421c8282613f24565b80915082815260208101915060208360051b85010192508683111561423f575f5ffd5b602084015b838110156142eb5780356001600160401b03811115614261575f5ffd5b85016080818a03601f19011215614276575f5ffd5b60405161428281613ee6565b602082013561429081613d99565b815260408201356142a081613d99565b60208201526060820135604082015260808201356001600160401b038111156142c7575f5ffd5b6142d68b60208386010161409e565b60608301525084525060209283019201614244565b509695505050505050565b5f60208284031215614306575f5ffd5b81356001600160401b0381111561431b575f5ffd5b8201601f8101841361432b575f5ffd5b8035614336816141ad565b6040516143438282613f24565b80915082815260208101915060208360051b850101925086831115614366575f5ffd5b6020840193505b8284101561439157833561438081613d99565b82526020938401939091019061436d565b9695505050505050565b602080825282518282018190525f918401906040840190835b818110156143db5783516143c781613e6b565b8352602093840193909201916001016143b4565b509095945050505050565b602081526143f860208201835161418a565b5f60208301516014811061440e5761440e613e57565b8060408401525060408301516060830152606083015160808301526001600160401b0360808401511660a083015260a083015160c080840152805160c060e0850152805160406101a08601526144686101e0860182613bba565b6020928301516101c08701529183015160ff166101008601525060408201519061449861012086018360ff169052565b606083015160ff1661014086015260808301516001600160401b0380821661016088015260a09094015193841661018087015291506114a8565b5f5f5f5f606085870312156144e5575f5ffd5b843593506020850135925060408501356001600160401b03811115614508575f5ffd5b61451487828801613dad565b95989497509550505050565b5f5f5f60408486031215614532575f5ffd5b83356001600160401b03811115614547575f5ffd5b840160e08187031215614558575f5ffd5b925060208401356001600160401b03811115614572575f5ffd5b61457e86828701613dad565b9497909650939450505050565b5f5f5f5f6060858703121561459e575f5ffd5b84356145a981613d99565b93506020850135925060408501356001600160401b03811115614508575f5ffd5b5f5f604083850312156145db575f5ffd5b823591506020830135613c5c81613f61565b5f602082840312156145fd575f5ffd5b813561183b81613d99565b60018060a01b03815116825262ffffff60208201511660208301525f60408201516080604085015261463d6080850182613bba565b606093840151949093019390935250919050565b60018060a01b0381511682526001600160401b036020820151166020830152604081015160408301525f606082015160a0606085015261469460a0850182613bba565b6080938401516001600160a01b0316949093019390935250919050565b602081525f825161010060208401526146ce610120840182614608565b90506020840151601f198483030160408501526146eb8282614651565b9150506040840151614728606085018261ffff815116825261ffff60208201511660208301526001600160401b0360408201511660408301525050565b5060608401516001600160881b03191660c084015260808401516001600160481b031660e084015260a0909301516001600160401b0316610100909201919091525090565b5f5f5f5f5f5f60808789031215614782575f5ffd5b86356001600160401b03811115614797575f5ffd5b6147a389828a01613c67565b90975095505060208701356001600160401b038111156147c1575f5ffd5b6147cd89828a01613dad565b979a9699509760408101359660609091013595509350505050565b5f5f604083850312156147f9575f5ffd5b50508035926020909101359150565b5f5f60808385031215614819575f5ffd5b8235915061406f8460208501613f70565b602081525f61183b6020830184614608565b6020815260ff82511660208201525f60208301516040808401526111886060840182613bba565b60018060a01b0381511682526001600160401b03602082015116602083015263ffffffff6040820151166040830152606081015160608301525f608082015160a0608085015261118860a0850182613bba565b602081525f8251604060208401526148d16060840182613d03565b90506020840151601f198483030160408501526114a88282614863565b803563ffffffff81168114611f29575f5ffd5b5f5f5f5f5f60808688031215614915575f5ffd5b85359450613e19602087016148ee565b602081525f61183b6020830184614651565b5f5f5f60a08486031215614949575f5ffd5b83359250602084013591506149618560408601613f70565b90509250925092565b5f5f5f6080848603121561497c575f5ffd5b8335925061498d856020860161403d565b9150606084013561499d81613c29565b809150509250925092565b602081525f61183b6020830184614863565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60ff8316806149f4576149f46149ba565b8060ff84160491505092915050565b60ff8181168382160190811115610e7b57610e7b6149ce565b5f60ff831680614a2e57614a2e6149ba565b8060ff84160691505092915050565b634e487b7160e01b5f52603260045260245ffd5b8082028115828204841417610e7b57610e7b6149ce565b80820180821115610e7b57610e7b6149ce565b5f8235607e19833603018112614a8f575f5ffd5b9190910192915050565b5f60208284031215614aa9575f5ffd5b61183b826148ee565b5f5f8335601e19843603018112614ac7575f5ffd5b8301803591506001600160401b03821115614ae0575f5ffd5b602001915036819003821315613ca7575f5ffd5b600181811c90821680614b0857607f821691505b6020821081036113fe57634e487b7160e01b5f52602260045260245ffd5b600781106123ce575f5ffd5b5f60208284031215614b42575f5ffd5b815161183b81614b26565b602080825281018290525f8360408301825b85811015614b8f578235614b7281613bfa565b6001600160a01b0316825260209283019290910190600101614b5f565b5095945050505050565b5f60208284031215614ba9575f5ffd5b8151801515811461183b575f5ffd5b858152602081018590526001600160401b03841660408201526060810183905260e08101614391608083018461ffff815116825261ffff60208201511660208301526001600160401b0360408201511660408301525050565b60ff811681146123ce575f5ffd5b5f60208284031215614c2f575f5ffd5b813561183b81614c11565b5f614c4483614078565b604051614c518282613f24565b809250848152858585011115614c65575f5ffd5b8484602083015e5f6020868301015250509392505050565b5f82601f830112614c8c575f5ffd5b61183b83835160208501614c3a565b5f5f60408385031215614cac575f5ffd5b8251614cb781613bfa565b60208401519092506001600160401b03811115614cd2575f5ffd5b614cde85828601614c7d565b9150509250929050565b80516101008110611f29575f5ffd5b5f60208284031215614d07575f5ffd5b61183b82614ce8565b5f60208284031215614d20575f5ffd5b81516001600160401b03811115614d35575f5ffd5b8201601f81018413614d45575f5ffd5b61118884825160208401614c3a565b5f614d5f8285613b45565b6101d160f51b81526114a86002820185613b45565b6001600160401b0383168152604060208201525f6111886040830184613bba565b5f614da08284613b45565b743a20696e76616c6964207265706f7274206461746160581b81526015019392505050565b6001600160a01b03831681526040602080830182905283519183018290525f91908401906060840190835b81811015614e175783516001600160401b0316835260209384019390920191600101614df0565b50909695505050505050565b5f60208284031215614e33575f5ffd5b81516001600160401b03811115614e48575f5ffd5b8201601f81018413614e58575f5ffd5b8051614e63816141ad565b604051614e708282613f24565b80915082815260208101915060208360051b850101925086831115614e93575f5ffd5b602084015b838110156142eb5780516001600160401b03811115614eb5575f5ffd5b614ec489602083890101614c7d565b84525060209283019201614e98565b8051611f2981613d99565b8051611f2981614c11565b5f60c08284031215614ef9575f5ffd5b604051614f0581613f05565b80915082516001600160401b03811115614f1d575f5ffd5b830160408186031215614f2e575f5ffd5b604051614f3a81613ec7565b81516001600160401b03811115614f4f575f5ffd5b614f5b87828501614c7d565b825250602091820151828201528252614f75908401614ede565b6020820152614f8660408401614ede565b6040820152614f9760608401614ede565b6060820152614fa860808401614ed3565b6080820152614fb960a08401614ed3565b60a08201525092915050565b5f60c08284031215614fd5575f5ffd5b604051614fe181613f05565b809150614fed83614ce8565b8152602083015160148110615000575f5ffd5b6020820152604083810151908201526060808401519082015261502560808401614ed3565b608082015260a08301516001600160401b03811115615042575f5ffd5b61504e85828601614ee9565b60a0830152505092915050565b5f6020828403121561506b575f5ffd5b81516001600160401b03811115615080575f5ffd5b61118884828501614fc5565b803561509781613f61565b61ffff16825260208101356150ab81613f61565b61ffff16602083015260408101356150c281613d99565b6001600160401b0381166040840152505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6040808252843582820152602085013560608301525f90615125906080840190870161508c565b60a085013561513381613d99565b6001600160401b031660e083015260c085013536869003601e19018112615158575f5ffd5b85016020810190356001600160401b03811115615173575f5ffd5b803603821315615181575f5ffd5b60e0610100850152615198610120850182846150d6565b91505082810360208401526143918185876150d6565b5f5f604083850312156151bf575f5ffd5b82516151ca81613bfa565b60208401519092506001600160401b038111156151e5575f5ffd5b614cde85828601614fc5565b6001600160a01b03881681526020810187905260408101869052615218606082018661508c565b6001600160401b03841660c082015261010060e08201525f61523f610100830184866150d6565b9998505050505050505050565b80516001600160481b0381168114611f29575f5ffd5b5f60208284031215615272575f5ffd5b61183b8261524c565b5f60033d1115613f5e5760045f5f3e505f5160e01c90565b5f60443d10156152a05790565b6040513d600319016004823e80513d60248201116001600160401b03821117156152c957505090565b80820180516001600160401b038111156152e4575050505090565b3d84016003190182820160200111156152fe575050505090565b613d7f60208285010185613f24565b5f6080828403121561531d575f5ffd5b60405161532981613ee6565b809150825161533781613bfa565b8152602083015161534781613c29565b602082015260408301516001600160401b03811115615364575f5ffd5b61537085828601614c7d565b604083015250606092830151920191909152919050565b5f60a08284031215615397575f5ffd5b60405160a081018181106001600160401b03821117156153b9576153b9613e8e565b806040525080915082516153cc81613bfa565b815260208301516153dc81613d99565b60208201526040838101519082015260608301516001600160401b03811115615403575f5ffd5b61540f85828601614c7d565b606083015250608083015161542381613bfa565b6080919091015292915050565b5f60608284031215615440575f5ffd5b60405161544c81613ea2565b809150825161545a81613f61565b8152602083015161546a81613f61565b60208201526040830151613fbd81613d99565b80516001600160881b031981168114611f29575f5ffd5b5f602082840312156154a4575f5ffd5b81516001600160401b038111156154b9575f5ffd5b820161010081850312156154cb575f5ffd5b6154d3613f50565b81516001600160401b038111156154e8575f5ffd5b6154f48682850161530d565b82525060208201516001600160401b0381111561550f575f5ffd5b61551b86828501615387565b60208301525061552e8560408401615430565b604082015261553f60a0830161547d565b606082015261555060c0830161524c565b608082015261556160e08301614ed3565b60a0820152949350505050565b5f6020828403121561557e575f5ffd5b81516001600160401b03811115615593575f5ffd5b6111888482850161530d565b6001600160401b038181168382160190811115610e7b57610e7b6149ce565b5f602082840312156155ce575f5ffd5b81516001600160401b038111156155e3575f5ffd5b61118884828501615387565b61ffff8281168282160390811115610e7b57610e7b6149ce565b5f61ffff83168061561c5761561c6149ba565b8061ffff84160491505092915050565b8381526020808201849052825160ff1660408301528201516001600160401b0316606082015260808101611188565b5f6020828403121561566b575f5ffd5b81516001600160401b03811115615680575f5ffd5b8201601f81018413615690575f5ffd5b805161569b816141ad565b6040516156a88282613f24565b80915082815260208101915060208360051b8501019250868311156156cb575f5ffd5b6020840193505b828410156143915783516156e581613bfa565b8252602093840193909101906156d2565b602080825282518282018190525f918401906040840190835b818110156143db5783516001600160a01b031683526020938401939092019160010161570f565b60018060a01b03881681528660208201526001600160401b03861660408201528460608201526001600160401b03841660808201528260a082015260e060c08201525f61523f60e0830184613bba565b5f60208284031215615796575f5ffd5b5051919050565b5f6001600160401b0382166001600160401b0381036157be576157be6149ce565b60010192915050565b5f6157d28284613b45565b741d103ab73430b7323632b21030b9b9b2b93a34b7b760591b81526015019392505050565b81810381811115610e7b57610e7b6149ce56fef595240b351bc8f951c2f53b26f4e78c32cb62122cf76c19b7fdda7d4968e183f595240b351bc8f951c2f53b26f4e78c32cb62122cf76c19b7fdda7d4968e184a2646970667358221220931792477c2c4d01d11d6af0c10cfbbd48341dea05abc30dfe37e3d8c1e269e864736f6c634300081e0033";
  readonly deployedBytecode: "0x6080604052600436106103ac575f3560e01c806379ba5097116101e6578063adb7c3f71161010c578063d0a92a081161009f578063e900aa331161006e578063e900aa3314610ce3578063ec5946db14610cf6578063f2fde38b14610d09578063f61921b214610d28576103ac565b8063d0a92a0814610c41578063d5f3948814610c60578063e30c397814610c93578063e5a6b10f14610cb0576103ac565b8063bff852fa116100db578063bff852fa14610bb6578063c258134814610bca578063c805dd0f14610be9578063ca7da98b14610c15576103ac565b8063adb7c3f714610b33578063aeb2ffc114610b4c578063b207e73014610b78578063b783922b14610b97576103ac565b80638d3d8b3811610184578063a58f680311610153578063a58f680314610a95578063a667533f14610aa8578063a77fc1a414610ad4578063a9e954b914610b00576103ac565b80638d3d8b3814610a075780638da5cb5b14610a2657806393d5185c14610a425780639cc56e6714610a76576103ac565b80637bd88218116101c05780637bd882181461097e5780637c1fbda31461099d578063838d44e2146109bc5780638cfcdea2146109db576103ac565b806379ba50971461090a5780637b1039991461091e5780637bbdb96e14610951576103ac565b80634cddf615116102d657806359209b39116102695780636f07abcc116102385780636f07abcc146108565780636fdaab7e14610875578063715018a6146108d757806376d0e357146108eb576103ac565b806359209b39146107cd5780636280bce8146107f95780636b58960a146108185780636d0d6a7e14610837576103ac565b80635304bba2116102a55780635304bba21461073c5780635479d9401461075b57806354fd4d501461078d578063581f5094146107a1576103ac565b80634cddf615146106785780634e6c13a1146106a45780635001f3b5146106c357806352d1902d14610709576103ac565b806328a78d9b1161034e5780633fa595761161031d5780633fa59576146105c0578063439fab911461060e57806345ea6c171461062d5780634c9f72e314610659576103ac565b806328a78d9b1461055a57806339a8653e1461057b5780633b3195b71461059a5780633dc2b7a2146105ad576103ac565b806308b7e85e1161038a57806308b7e85e146104b75780630aa4112a146104e35780631aea970b1461050f578063234fe6e31461052e576103ac565b8063044ad7be1461043757806305e742ef1461046b57806306eb2c4214610498575b3480156103b7575f5ffd5b506103c55f3560f81c610d54565b6103d560ff5f3560f01c16610d54565b6103e560ff5f3560e81c16610d54565b6103f560ff5f3560e01c16610d54565b6040516020016104089493929190613b5c565b60408051601f198184030181529082905262461bcd60e51b825261042e91600401613be8565b60405180910390fd5b348015610442575f5ffd5b50610456610451366004613c0e565b610e40565b60405190151581526020015b60405180910390f35b348015610476575f5ffd5b5061048a610485366004613c39565b610e81565b604051908152602001610462565b3480156104a3575f5ffd5b5061048a6104b2366004613cae565b610f71565b3480156104c2575f5ffd5b506104d66104d1366004613cec565b611190565b6040516104629190613be8565b3480156104ee575f5ffd5b506105026104fd366004613cec565b6111b0565b6040516104629190613d87565b34801561051a575f5ffd5b5061048a610529366004613dea565b611404565b348015610539575f5ffd5b5061054d610548366004613cec565b6114b1565b6040516104629190613e7b565b348015610565575f5ffd5b50610579610574366004613cae565b611526565b005b348015610586575f5ffd5b5061048a610595366004613cec565b611597565b61048a6105a8366004613fca565b6115f7565b61048a6105bb36600461404d565b6117e3565b3480156105cb575f5ffd5b506105df6105da366004613cec565b611842565b604051610462949392919093845260208401929092526001600160401b03166040830152606082015260800190565b348015610619575f5ffd5b506105796106283660046140f6565b611893565b348015610638575f5ffd5b5061064c610647366004613cae565b611ac7565b6040516104629190614127565b348015610664575f5ffd5b50610579610673366004613cae565b611b6e565b348015610683575f5ffd5b50610697610692366004613cec565b611baf565b604051610462919061419f565b3480156106af575f5ffd5b5061048a6106be3660046141cf565b611c23565b3480156106ce575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610462565b348015610714575f5ffd5b5061048a7f000000000000000000000000000000000000000000000000000000000000000081565b348015610747575f5ffd5b5061064c6107563660046142f6565b611f2e565b348015610766575f5ffd5b507f0000000000000000000000000000000000000000000000000000000000000000610456565b348015610798575f5ffd5b506104d6611fcb565b3480156107ac575f5ffd5b506107c06107bb366004613cae565b611ffb565b604051610462919061439b565b3480156107d8575f5ffd5b506107ec6107e7366004613cec565b6120b5565b60405161046291906143e6565b348015610804575f5ffd5b5061048a6108133660046144d2565b612131565b348015610823575f5ffd5b50610456610832366004613c0e565b612154565b348015610842575f5ffd5b506107ec610851366004614520565b6121a8565b348015610861575f5ffd5b5061054d610870366004613cec565b6122a3565b348015610880575f5ffd5b506108bf61088f366004613cec565b5f9081525f51602061582b5f395f51905f526020526040902060090154600160781b90046001600160481b031690565b6040516001600160481b039091168152602001610462565b3480156108e2575f5ffd5b506105796122dd565b3480156108f6575f5ffd5b5061048a61090536600461458b565b6122f0565b348015610915575f5ffd5b50610579612357565b348015610929575f5ffd5b506106f17f000000000000000000000000000000000000000000000000000000000000000081565b34801561095c575f5ffd5b506109656123d1565b6040516001600160e01b03199091168152602001610462565b348015610989575f5ffd5b5061048a6109983660046145ca565b6123db565b3480156109a8575f5ffd5b506108bf6109b7366004613cec565b6123e5565b3480156109c7575f5ffd5b506104d66109d6366004613cec565b6124da565b3480156109e6575f5ffd5b506109fa6109f53660046145ed565b61255c565b60405161046291906146b1565b348015610a12575f5ffd5b506104d6610a21366004613cec565b61266e565b348015610a31575f5ffd5b505f546001600160a01b03166106f1565b348015610a4d575f5ffd5b50610a61610a5c36600461476d565b612683565b60408051928352602083019190915201610462565b348015610a81575f5ffd5b5061048a610a903660046147e8565b612836565b61048a610aa3366004614808565b6128fc565b348015610ab3575f5ffd5b50610ac7610ac23660046145ed565b6129bb565b604051610462919061482a565b348015610adf575f5ffd5b50610af3610aee366004613cec565b612a6d565b604051610462919061483c565b348015610b0b575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000003f61048a565b348015610b3e575f5ffd5b506304722eaf60e31b610965565b348015610b57575f5ffd5b50610b6b610b66366004613cec565b612b55565b60405161046291906148b6565b348015610b83575f5ffd5b5061048a610b92366004614901565b612b87565b348015610ba2575f5ffd5b506107ec610bb1366004614520565b612bb1565b348015610bc1575f5ffd5b506104d6612c35565b348015610bd5575f5ffd5b506104d6610be4366004613cec565b612c6c565b348015610bf4575f5ffd5b50610bfd612d3d565b6040516001600160401b039091168152602001610462565b348015610c20575f5ffd5b50610c34610c2f3660046145ed565b612d61565b6040516104629190614925565b348015610c4c575f5ffd5b5061048a610c5b366004614937565b612e06565b348015610c6b575f5ffd5b506106f17f000000000000000000000000000000000000000000000000000000000000000081565b348015610c9e575f5ffd5b506001546001600160a01b03166106f1565b348015610cbb575f5ffd5b506106f17f000000000000000000000000000000000000000000000000000000000000000081565b61048a610cf136600461496a565b612e90565b610579610d04366004613cec565b612f00565b348015610d14575f5ffd5b50610579610d23366004613c0e565b613059565b348015610d33575f5ffd5b50610d47610d42366004613cec565b6130c9565b60405161046291906149a8565b6040805160028082528183019092526060915f91906020820181803683370190505090505f610d846010856149e2565b610d8f906030614a03565b90505f610d9d601086614a1c565b610da8906030614a03565b905060398260ff161115610dc457610dc1600783614a03565b91505b60398160ff161115610dde57610ddb600782614a03565b90505b8160f81b835f81518110610df457610df4614a3d565b60200101906001600160f81b03191690815f1a9053508060f81b83600181518110610e2157610e21614a3d565b60200101906001600160f81b03191690815f1a90535091949350505050565b6001600160a01b0381165f9081527ff595240b351bc8f951c2f53b26f4e78c32cb62122cf76c19b7fdda7d4968e185602052604081205460ff165b92915050565b5f80610eae7f00000000000000000000000000000000000000000000000000000000000000006003614a51565b610ed8907f0000000000000000000000000000000000000000000000000000000000000000614a68565b9050808362ffffff161080610f1a575080610f1862ffffff85167f0000000000000000000000000000000000000000000000000000000000000000614a68565b105b15610f3157610f298185614a51565b915050610e7b565b610f6062ffffff84167f0000000000000000000000000000000000000000000000000000000000000000614a68565b610f299085614a51565b5092915050565b5f610fd05f51602061580b5f395f51905f525b335f908152600291909101602090815260409182902054825180840190935260158352743ab730baba3437b934bd32b2103932b837b93a32b960591b9183019190915260ff16906132da565b5f826001600160401b03811115610fe957610fe9613e8e565b60405190808252806020026020018201604052801561103857816020015b604080516080810182525f80825260208083018290529282015260608082015282525f199092019101816110075790505b5090505f5b8381101561117e57604051806080016040528086868481811061106257611062614a3d565b90506020028101906110749190614a7b565b356001600160401b0316815260200186868481811061109557611095614a3d565b90506020028101906110a79190614a7b565b6110b8906040810190602001614a99565b63ffffffff1681526020018686848181106110d5576110d5614a3d565b90506020028101906110e79190614a7b565b60400135815260200186868481811061110257611102614a3d565b90506020028101906111149190614a7b565b611122906060810190614ab2565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050915250825183908390811061116b5761116b614a3d565b602090810291909101015260010161103d565b5061118881611c23565b949350505050565b606061119b826123e5565b505060408051602081019091525f8152919050565b6111f36040805160c0810182525f80825260208083018290528284018290526060808401526080830182905283518085019094528184528301529060a082015290565b5f8281525f51602061582b5f395f51905f526020526040902060018101805461ffff919061122090614af4565b9050111561127b576040805160c0810182525f8082526020808301829052828401829052835180820185528281526060840152600290940154608083015282518084019093528083529282019290925260a082015292915050565b6003810154156113a4576040805160c08101825282546001600160a01b0381168252600160a01b810462ffffff166020830152600160b81b90046001600160481b0316918101919091526001820180546060830191906112da90614af4565b80601f016020809104026020016040519081016040528092919081815260200182805461130690614af4565b80156113515780601f1061132857610100808354040283529160200191611351565b820191905f5260205f20905b81548152906001019060200180831161133457829003601f168201915b5050509183525050600283015460208083019190915260408051808201825260089095015462010000810460ff16865264010000000090046001600160401b031691850191909152019190915292915050565b6040805160c08101825282546001600160a01b0381168252600160a01b900462ffffff1660208201526009830154600160781b90046001600160481b0316918101919091526001820180546060830191906112da90614af4565b50919050565b5f61141b5f51602061580b5f395f51905f52610f84565b6114556001600160401b03861615156040518060400160405280600d81526020016c06261642074696d657374616d7609c1b8152506132da565b604080518082019091526016815275726573756c742063616e6e6f7420626520656d70747960501b602082015261148f90831515906132da565b6114a5866001600160401b0316868686866132ec565b90505b95945050505050565b60405163234fe6e360e01b8152600481018290525f9073__$713c4f4487e8756194dbc5b3b091cd4345$__9063234fe6e3906024015b602060405180830381865af4158015611502573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e7b9190614b32565b61152e61333a565b6040516328a78d9b60e01b815273__$713c4f4487e8756194dbc5b3b091cd4345$__906328a78d9b906115679085908590600401614b4d565b5f6040518083038186803b15801561157d575f5ffd5b505af415801561158f573d5f5f3e3d5ffd5b505050505050565b5f6115c37f00000000000000000000000000000000000000000000000000000000000000006004614a51565b6115ed907f0000000000000000000000000000000000000000000000000000000000000000614a68565b610e7b9083614a51565b5f346116073a8460200151610e81565b61163f81831015604051806040016040528060138152602001721a5b9cdd59999a58da595b9d081c995dd85c99606a1b8152506132da565b61167d61164d82600a614a51565b8311156040518060400160405280600f81526020016e1d1bdbc81b5d58da081c995dd85c99608a1b8152506132da565b846116b361168a82613366565b6040518060400160405280600b81526020016a696e76616c696420534c4160a81b8152506132da565b846117795f825f01516001600160a01b03163b118015611737575081516040516323d0872b60e11b81523060048201526001600160a01b03909116906347a10e5690602401602060405180830381865afa158015611713573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117379190614b99565b801561174b57505f826020015162ffffff16115b6040518060400160405280601081526020016f696e76616c69642063616c6c6261636b60801b8152506132da565b8551602087015161178d9190348b8b6133a1565b9450336001600160a01b03167ffbe74eb38ea9de3d74d481a4f701ae121d794895c5797db8260d06d317901d263a34888c8c6040516117d0959493929190614bb8565b60405180910390a2505050509392505050565b5f61183b836040518060600160405280602061ffff168152602001855f0160208101906118109190614c1f565b60ff16815260209081019061182b90604088019088016145ed565b6001600160401b031690526128fc565b9392505050565b5f5f5f5f5f6118508661341d565b600981015460058201546004909201546001600160881b0319608883901b16999298506001600160401b03600160c01b9182900481169850910416945092505050565b5f546001600160a01b0316806118c957818060200190518101906118b79190614c9b565b925090506118c481613439565b611911565b336001600160a01b038216146119115760405162461bcd60e51b815260206004820152600d60248201526c3737ba103a34329037bbb732b960991b604482015260640161042e565b61191a82613452565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbe541580159061198b57507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbe547f00000000000000000000000000000000000000000000000000000000000000003f145b156119d85760405162461bcd60e51b815260206004820152601c60248201527f616c726561647920696e697469616c697a656420636f64656861736800000000604482015260640161042e565b7f00000000000000000000000000000000000000000000000000000000000000003f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc600201557f00000000000000000000000000000000000000000000000000000000000000003f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611a7c5f546001600160a01b031690565b6001600160a01b03167fe73e754121f0bad1327816970101955bfffdf53d270ac509d777c25be070d7f6611aae611fcb565b604051611abb9190613be8565b60405180910390a45050565b60605f826001600160401b03811115611ae257611ae2613e8e565b604051908082528060200260200182016040528015611b0b578160200160208202803683370190505b5090505f5b8151811015611b6457848482818110611b2b57611b2b614a3d565b90506020020135828281518110611b4457611b44614a3d565b6001600160401b0390921660209283029190910190910152600101611b10565b5061118881611f2e565b611b7661333a565b604051634c9f72e360e01b815273__$713c4f4487e8756194dbc5b3b091cd4345$__90634c9f72e3906115679085908590600401614b4d565b604051634cddf61560e01b8152600481018290525f9073__$713c4f4487e8756194dbc5b3b091cd4345$__90634cddf61590602401602060405180830381865af4158015611bff573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e7b9190614cf7565b5f611c3a5f51602061580b5f395f51905f52610f84565b5f5b8251811015611f18575f838281518110611c5857611c58614a3d565b6020908102919091010151516001600160401b031690506001611c7a826122a3565b6006811115611c8b57611c8b613e57565b14611d88577f4df64445edc775fba59db44b8001852fb1b777eea88fd54f04572dd114e3ff7f848381518110611cc357611cc3614a3d565b60200260200101515f0151611cd6612c35565b604051638f191e5f60e01b815273__$713c4f4487e8756194dbc5b3b091cd4345$__90638f191e5f90611d0e90600190600401613e7b565b5f60405180830381865af4158015611d28573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611d4f9190810190614d10565b604051602001611d60929190614d54565b60408051601f1981840301815290829052611d7b9291614d74565b60405180910390a1611f0f565b426001600160401b0316848381518110611da457611da4614a3d565b6020026020010151602001516001600160401b03161180611df75750611df7848381518110611dd557611dd5614a3d565b6020026020010151602001516001600160401b03166001600160401b03161590565b80611e1f5750838281518110611e0f57611e0f614a3d565b602002602001015160600151515f145b15611e7a577f4df64445edc775fba59db44b8001852fb1b777eea88fd54f04572dd114e3ff7f848381518110611e5757611e57614a3d565b60200260200101515f0151611e6a612c35565b604051602001611d609190614d95565b611f02848381518110611e8f57611e8f614a3d565b60200260200101515f01516001600160401b0316858481518110611eb557611eb5614a3d565b602002602001015160200151868581518110611ed357611ed3614a3d565b602002602001015160400151878681518110611ef157611ef1614a3d565b6020026020010151606001516134cb565b611f0c9084614a68565b92505b50600101611c3c565b508015611f2957611f293382613609565b919050565b604051633ab5a66d60e11b815260609073__$713c4f4487e8756194dbc5b3b091cd4345$__9063756b4cda90611f8a907f0000000000000000000000000000000000000000000000000000000000000000908690600401614dc5565b5f60405180830381865af4158015611fa4573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610e7b9190810190614e23565b6060611ff67f000000000000000000000000000000000000000000000000000000000000000061363c565b905090565b6060816001600160401b0381111561201557612015613e8e565b60405190808252806020026020018201604052801561203e578160200160208202803683370190505b5090505f5b82811015610f6a5761206c84848381811061206057612060614a3d565b905060200201356122a3565b82828151811061207e5761207e614a3d565b6020026020010190600681111561209757612097613e57565b908160068111156120aa576120aa613e57565b905250600101612043565b6120bd613a48565b6040516359209b3960e01b81526004810183905273__$713c4f4487e8756194dbc5b3b091cd4345$__906359209b39906024015f60405180830381865af415801561210a573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610e7b919081019061505b565b5f6121485f51602061580b5f395f51905f52610f84565b6114a8858585856122f0565b5f7f00000000000000000000000000000000000000000000000000000000000000008015610e7b5750816001600160a01b03166121985f546001600160a01b031690565b6001600160a01b03161492915050565b6121b0613a48565b5f5f73__$713c4f4487e8756194dbc5b3b091cd4345$__631600b78b8787876040518463ffffffff1660e01b81526004016121ed939291906150fe565b5f60405180830381865af4158015612207573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261222e91908101906151ae565b909250905033327f7a9001dc4425127400f09e4c0b02908ad0e1f642ee9c92932a222c686674648284893560208b013560408c0161227260c08e0160a08f016145ed565b61227f60c08f018f614ab2565b60405161229297969594939291906151f1565b60405180910390a395945050505050565b604051631bc1eaf360e21b8152600481018290525f9073__$713c4f4487e8756194dbc5b3b091cd4345$__90636f07abcc906024016114e7565b6122e561333a565b6122ee5f613439565b565b5f6123075f51602061580b5f395f51905f52610f84565b604080518082019091526016815275726573756c742063616e6e6f7420626520656d70747960501b602082015261234190831515906132da565b6114a8856001600160401b0316428686866132ec565b60015433906001600160a01b031681146123c55760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840161042e565b6123ce81613439565b50565b5f611ff6306136dd565b5f61183b83611597565b604051637c1fbda360e01b8152600481018290525f9073__$713c4f4487e8756194dbc5b3b091cd4345$__90637c1fbda390602401602060405180830381865af4925050508015612453575060408051601f3d908101601f1916820190925261245091810190615262565b60015b6124c05761245f61527b565b806308c379a0036124875750612473615293565b8061247e5750612489565b6113fe8161371b565b505b3d8080156124b2576040519150601f19603f3d011682016040523d82523d5f602084013e6124b7565b606091505b506113fe613735565b6001600160481b0381168015610f6a57610f6a3382613609565b606073__$713c4f4487e8756194dbc5b3b091cd4345$__634cbc7ff86124ff846122a3565b6040518263ffffffff1660e01b815260040161251b9190613e7b565b5f60405180830381865af4158015612535573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610e7b9190810190614d10565b6125f26040805161014081019091525f60c0820181815260e083018290526060610100840152610120830191909152819081526040805160a0810182525f808252602082810182905292820181905260608083015260808201529101908152604080516060810182525f80825260208281018290529282015291019081525f602082018190526040820181905260609091015290565b60405163467e6f5160e11b81526001600160401b038316600482015273__$713c4f4487e8756194dbc5b3b091cd4345$__90638cfcdea2906024015f60405180830381865af4158015612647573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610e7b9190810190615494565b606061267982612d61565b6060015192915050565b5f80805b8781101561282a575f8989838181106126a2576126a2614a3d565b60200291909101359150600190506126b9826122a3565b60068111156126ca576126ca613e57565b03612821575f6126d98261341d565b8054909150600160a01b900462ffffff161561276957604080516060810182525f8152600883015461ffff62010000820416602083015264010000000090046001600160401b0316918101919091526127359088908890612e06565b815461274e908990600160a01b900462ffffff16610e81565b6127589190614a68565b6127629085614a68565b93506127d1565b60408051606081018252600883015461ffff808216835262010000820416602083015264010000000090046001600160401b0316918101919091526127b19088908890612e06565b6127ba88611597565b6127c49190614a68565b6127ce9085614a68565b93505b60088101546127f19064010000000090046001600160401b031687614a51565b6127fb9085614a68565b600982015490945061281d90600160781b90046001600160481b031686614a68565b9450505b50600101612687565b50965096945050505050565b604051631a3b01e960e21b8152600481018290525f906128f3906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906368ec07a490602401602060405180830381865afa15801561289f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128c39190614b99565b604051806040016040528060128152602001710eadcd6dcdeeedc40e4c2c8dedc40d0c2e6d60731b8152506132da565b61183b83611597565b5f346129073a611597565b61293f81831015604051806040016040528060138152602001721a5b9cdd59999a58da595b9d081c995dd85c99606a1b8152506132da565b61294d61164d82600a614a51565b8361295a61168a82613366565b612967335f3489896133a1565b9350336001600160a01b03167ffbe74eb38ea9de3d74d481a4f701ae121d794895c5797db8260d06d317901d263a34878a8a6040516129aa959493929190614bb8565b60405180910390a250505092915050565b6129f160405180608001604052805f6001600160a01b031681526020015f62ffffff168152602001606081526020015f81525090565b60405163a667533f60e01b81526001600160401b038316600482015273__$713c4f4487e8756194dbc5b3b091cd4345$__9063a667533f906024015f60405180830381865af4158015612a46573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610e7b919081019061556e565b604080518082019091525f8152606060208201525f612a8b836120b5565b90506040518060400160405280825f015160ff811115612aad57612aad613e57565b60ff16815260200173__$39c1c75f9ff01712a7ae2d1d1d8c462aa1$__6371aad10d84604051602001612ae091906143e6565b6040516020818303038152906040526040518263ffffffff1660e01b8152600401612b0b9190613be8565b5f60405180830381865af4158015612b25573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612b4c9190810190614d10565b90529392505050565b612b5d613ac3565b6040518060400160405280612b71846111b0565b8152602001612b7f846130c9565b905292915050565b5f612b9e5f51602061580b5f395f51905f52610f84565b6114a5868663ffffffff16868686611404565b612bb9613a48565b604051631600b78b60e01b815273__$713c4f4487e8756194dbc5b3b091cd4345$__90631600b78b90612bf4908790879087906004016150fe565b5f60405180830381865af4158015612c0e573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526114a891908101906151ae565b60408051808201909152601981527f5769744f7261636c65547275737461626c6544656661756c7400000000000000602082015290565b606073__$39c1c75f9ff01712a7ae2d1d1d8c462aa1$__6371aad10d73__$713c4f4487e8756194dbc5b3b091cd4345$__6359209b39856040518263ffffffff1660e01b8152600401612cc191815260200190565b5f60405180830381865af4158015612cdb573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612d02919081019061505b565b604051602001612d1291906143e6565b6040516020818303038152906040526040518263ffffffff1660e01b815260040161251b9190613be8565b5f5f51602061580b5f395f51905f5254611ff6906001600160401b0316600161559f565b6040805160a0810182525f80825260208201819052918101829052606080820152608081019190915260405163ca7da98b60e01b81526001600160401b038316600482015273__$713c4f4487e8756194dbc5b3b091cd4345$__9063ca7da98b906024015f60405180830381865af4158015612ddf573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610e7b91908101906155be565b5f6020825f015161ffff1611612e1c575f612e6e565b8151602090612e2c9082906155ef565b612e369190615609565b61ffff16612e647f000000000000000000000000000000000000000000000000000000000000000086614a51565b612e6e9190614a51565b6040830151612e86906001600160401b031685614a51565b6111889190614a68565b5f611188846040518060600160405280602061ffff168152602001865f016020810190612ebd9190614c1f565b60ff168152602090810190612ed890604089019089016145ed565b6001600160401b031690526040805180820190915233815262ffffff861660208201526115f7565b80600180612f0d836122a3565b6006811115612f1e57612f1e613e57565b14612fa957604051638f191e5f60e01b8152612fa49073__$713c4f4487e8756194dbc5b3b091cd4345$__90638f191e5f90612f5e908590600401613e7b565b5f60405180830381865af4158015612f78573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612f9f9190810190614d10565b61371b565b505050565b5f612fb38461341d565b90505f346009830154612fd69190600160781b90046001600160481b0316614a68565b6009830180546001600160481b038316600160781b0268ffffffffffffffffff60781b19909116179055604080516001600160401b03881681523360208201523a818301526060810183905290519192507f66f95ec285ca572fa1cac40e7019e14ab45a8fc619c6405222e8af55534c2f67919081900360800190a15050505050565b61306161333a565b600180546001600160a01b0383166001600160a01b031990911681179091556130915f546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b61310f6040518060a001604052805f6001600160a01b031681526020015f6001600160401b031681526020015f63ffffffff1681526020015f8152602001606081525090565b5f8281525f51602061582b5f395f51905f526020526040902060018101805461ffff919061313c90614af4565b905011156131805750506040805160a0810182525f808252602080830182905282840182905260608301829052835191825281019092526080810191909152919050565b600381015415613275576040805160a08101825260048301546001600160a01b038116825263ffffffff600160a01b82048116602080850191909152600160c01b90920490911c1691810191909152600582015460608201526006820180546080830191906131ee90614af4565b80601f016020809104026020016040519081016040528092919081815260200182805461321a90614af4565b80156132655780601f1061323c57610100808354040283529160200191613265565b820191905f5260205f20905b81548152906001019060200180831161324857829003601f168201915b5050505050815250915050919050565b6040805160a08101825260048301546001600160a01b038116825260098401546001600160401b03600160c01b9182900416602084015263ffffffff91041691810191909152600582015460608201526006820180546080830191906131ee90614af4565b816132e8576132e88161371b565b5050565b5f61332e86868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506134cb92505050565b90506114a83382613609565b5f546001600160a01b031633146122ee5760405163118cdaa760e01b815233600482015260240161042e565b5f5f826020015161ffff161180156133875750607f826020015161ffff1611155b8015610e7b575050604001516001600160401b0316151590565b5f6133af8686868686613740565b90507ffb94adf28ab7e538d2691d90927f622cbc1100eae6afec58052efdee6c98a61681346040518060400160405280866020015160ff16815260200186604001516001600160401b031681525060405161340c9392919061562c565b60405180910390a195945050505050565b5f9081525f51602061582b5f395f51905f526020526040902090565b600180546001600160a01b03191690556123ce816138ab565b73__$713c4f4487e8756194dbc5b3b091cd4345$__634c9f72e382806020019051810190613480919061565b565b6040518263ffffffff1660e01b815260040161349c91906156f6565b5f6040518083038186803b1580156134b2575f5ffd5b505af41580156134c4573d5f5f3e3d5ffd5b5050505050565b5f6135876001604051631bc1eaf360e21b81526004810188905273__$713c4f4487e8756194dbc5b3b091cd4345$__90636f07abcc90602401602060405180830381865af415801561351f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135439190614b32565b600681111561355457613554613e57565b14604051806040016040528060148152602001736e6f7420696e20506f737465642073746174757360601b8152506132da565b604051637102a0df60e11b815273__$713c4f4487e8756194dbc5b3b091cd4345$__9063e20541be906135ca9033903a9043908b908b908b908b90600401615736565b602060405180830381865af41580156135e5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114a89190615786565b6040516001600160a01b0383169082156108fc029083905f818181858888f19350505050158015612fa4573d5f5f3e3d5ffd5b60605f613648836138fa565b6001600160401b0381111561365f5761365f613e8e565b6040519080825280601f01601f191660200182016040528015613689576020820181803683370190505b5090505f5b8151811015610f6a578381602081106136a9576136a9614a3d565b1a60f81b8282815181106136bf576136bf614a3d565b60200101906001600160f81b03191690815f1a90535060010161368e565b604080516001600160a01b038316602082015246918101919091525f906060015b604051602081830303815290604052805190602001209050919050565b613723612c35565b81604051602001610408929190614d54565b6122ee612f9f613932565b5f5f51602061580b5f395f51905f5280545f90613765906001600160401b031661579d565b91906101000a8154816001600160401b0302191690836001600160401b0316021790556001600160401b031690505f61379d8261341d565b6009810180546001600160c01b0316600160c01b436001600160401b03160217905590506137d482856137cf86613981565b6139d4565b60098201805460889290921c6001600160c01b031990921691909117600160781b6001600160481b0388160217905580546001600160a01b0319166001600160a01b0388161781556002810184905562ffffff86161561384957805462ffffff60a01b1916600160a01b62ffffff8816021781555b82516008909101805460208501516040909501516001600160401b0316640100000000026bffffffffffffffff000000001961ffff968716620100000263ffffffff199093169690941695909517179190911692909217909155949350505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f5b6020811015611f295781816020811061391757613917614a3d565b1a60f81b6001600160f81b03191615611f29576001016138fc565b60606040518060400160405260108152806020016f2bb4ba27b930b1b632a230ba30a634b160811b81525060405160200161396d91906157c7565b604051602081830303815290604052905090565b5f815f0151826020015183604001516040516020016136fe9392919060f093841b6001600160f01b031990811682529290931b909116600283015260c01b6001600160c01b0319166004820152600c0190565b5f6139de306136dd565b6139e96001436157f7565b604080516001600160e01b031990931660208401529040908201526001600160401b03851660608201526080810184905260a0810183905260c0016040516020818303038152906040528051906020012090509392505050565b905290565b6040805160c08101909152805f81526020015f81526020015f81526020015f81526020015f6001600160401b03168152602001613a43604080516101008101909152606060c082019081525f60e0830152819081525f6020820181905260408201819052606082018190526080820181905260a09091015290565b6040518060400160405280613b116040805160c0810182525f80825260208083018290528284018290526060808401526080830182905283518085019094528184528301529060a082015290565b81526040805160a0810182525f80825260208281018290529282018190526060808301919091526080820152910190613a43565b5f81518060208401855e5f93019283525090919050565b7f5769746e657455706772616461626c65426173653a206e6f7420696d706c656d8152680cadce8cac8744060f60bb1b60208201525f6114a5613bb4613bae613ba8602986018a613b45565b88613b45565b86613b45565b84613b45565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61183b6020830184613bba565b6001600160a01b03811681146123ce575f5ffd5b5f60208284031215613c1e575f5ffd5b813561183b81613bfa565b62ffffff811681146123ce575f5ffd5b5f5f60408385031215613c4a575f5ffd5b823591506020830135613c5c81613c29565b809150509250929050565b5f5f83601f840112613c77575f5ffd5b5081356001600160401b03811115613c8d575f5ffd5b6020830191508360208260051b8501011115613ca7575f5ffd5b9250929050565b5f5f60208385031215613cbf575f5ffd5b82356001600160401b03811115613cd4575f5ffd5b613ce085828601613c67565b90969095509350505050565b5f60208284031215613cfc575f5ffd5b5035919050565b60018060a01b03815116825262ffffff60208201511660208301526001600160481b0360408201511660408301525f606082015160e06060850152613d4b60e0850182613bba565b90506080830151608085015260a0830151613d7f60a0860182805160ff1682526020908101516001600160401b0316910152565b509392505050565b602081525f61183b6020830184613d03565b6001600160401b03811681146123ce575f5ffd5b5f5f83601f840112613dbd575f5ffd5b5081356001600160401b03811115613dd3575f5ffd5b602083019150836020828501011115613ca7575f5ffd5b5f5f5f5f5f60808688031215613dfe575f5ffd5b8535613e0981613d99565b94506020860135613e1981613d99565b93506040860135925060608601356001600160401b03811115613e3a575f5ffd5b613e4688828901613dad565b969995985093965092949392505050565b634e487b7160e01b5f52602160045260245ffd5b600781106123ce576123ce613e57565b60208101613e8883613e6b565b91905290565b634e487b7160e01b5f52604160045260245ffd5b606081018181106001600160401b0382111715613ec157613ec1613e8e565b60405250565b604081018181106001600160401b0382111715613ec157613ec1613e8e565b608081018181106001600160401b0382111715613ec157613ec1613e8e565b60c081018181106001600160401b0382111715613ec157613ec1613e8e565b601f8201601f191681016001600160401b0381118282101715613f4957613f49613e8e565b6040525050565b604051613f5e60c082613f24565b90565b61ffff811681146123ce575f5ffd5b5f60608284031215613f80575f5ffd5b604051613f8c81613ea2565b8091508235613f9a81613f61565b81526020830135613faa81613f61565b60208201526040830135613fbd81613d99565b6040919091015292915050565b5f5f5f83850360c0811215613fdd575f5ffd5b84359350613fee8660208701613f70565b92506040607f1982011215614001575f5ffd5b5060405161400e81613ec7565b608085013561401c81613bfa565b815260a085013561402c81613c29565b602082015292959194509192509050565b5f604082840312156113fe575f5ffd5b5f5f6060838503121561405e575f5ffd5b8235915061406f846020850161403d565b90509250929050565b5f6001600160401b0382111561409057614090613e8e565b50601f01601f191660200190565b5f82601f8301126140ad575f5ffd5b81356140b881614078565b6040516140c58282613f24565b8281528560208487010111156140d9575f5ffd5b826020860160208301375f92810160200192909252509392505050565b5f60208284031215614106575f5ffd5b81356001600160401b0381111561411b575f5ffd5b6111888482850161409e565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b8281101561417e57603f19878603018452614169858351613bba565b9450602093840193919091019060010161414d565b50929695505050505050565b610100811061419b5761419b613e57565b9052565b60208101610e7b828461418a565b5f6001600160401b038211156141c5576141c5613e8e565b5060051b60200190565b5f602082840312156141df575f5ffd5b81356001600160401b038111156141f4575f5ffd5b8201601f81018413614204575f5ffd5b803561420f816141ad565b60405161421c8282613f24565b80915082815260208101915060208360051b85010192508683111561423f575f5ffd5b602084015b838110156142eb5780356001600160401b03811115614261575f5ffd5b85016080818a03601f19011215614276575f5ffd5b60405161428281613ee6565b602082013561429081613d99565b815260408201356142a081613d99565b60208201526060820135604082015260808201356001600160401b038111156142c7575f5ffd5b6142d68b60208386010161409e565b60608301525084525060209283019201614244565b509695505050505050565b5f60208284031215614306575f5ffd5b81356001600160401b0381111561431b575f5ffd5b8201601f8101841361432b575f5ffd5b8035614336816141ad565b6040516143438282613f24565b80915082815260208101915060208360051b850101925086831115614366575f5ffd5b6020840193505b8284101561439157833561438081613d99565b82526020938401939091019061436d565b9695505050505050565b602080825282518282018190525f918401906040840190835b818110156143db5783516143c781613e6b565b8352602093840193909201916001016143b4565b509095945050505050565b602081526143f860208201835161418a565b5f60208301516014811061440e5761440e613e57565b8060408401525060408301516060830152606083015160808301526001600160401b0360808401511660a083015260a083015160c080840152805160c060e0850152805160406101a08601526144686101e0860182613bba565b6020928301516101c08701529183015160ff166101008601525060408201519061449861012086018360ff169052565b606083015160ff1661014086015260808301516001600160401b0380821661016088015260a09094015193841661018087015291506114a8565b5f5f5f5f606085870312156144e5575f5ffd5b843593506020850135925060408501356001600160401b03811115614508575f5ffd5b61451487828801613dad565b95989497509550505050565b5f5f5f60408486031215614532575f5ffd5b83356001600160401b03811115614547575f5ffd5b840160e08187031215614558575f5ffd5b925060208401356001600160401b03811115614572575f5ffd5b61457e86828701613dad565b9497909650939450505050565b5f5f5f5f6060858703121561459e575f5ffd5b84356145a981613d99565b93506020850135925060408501356001600160401b03811115614508575f5ffd5b5f5f604083850312156145db575f5ffd5b823591506020830135613c5c81613f61565b5f602082840312156145fd575f5ffd5b813561183b81613d99565b60018060a01b03815116825262ffffff60208201511660208301525f60408201516080604085015261463d6080850182613bba565b606093840151949093019390935250919050565b60018060a01b0381511682526001600160401b036020820151166020830152604081015160408301525f606082015160a0606085015261469460a0850182613bba565b6080938401516001600160a01b0316949093019390935250919050565b602081525f825161010060208401526146ce610120840182614608565b90506020840151601f198483030160408501526146eb8282614651565b9150506040840151614728606085018261ffff815116825261ffff60208201511660208301526001600160401b0360408201511660408301525050565b5060608401516001600160881b03191660c084015260808401516001600160481b031660e084015260a0909301516001600160401b0316610100909201919091525090565b5f5f5f5f5f5f60808789031215614782575f5ffd5b86356001600160401b03811115614797575f5ffd5b6147a389828a01613c67565b90975095505060208701356001600160401b038111156147c1575f5ffd5b6147cd89828a01613dad565b979a9699509760408101359660609091013595509350505050565b5f5f604083850312156147f9575f5ffd5b50508035926020909101359150565b5f5f60808385031215614819575f5ffd5b8235915061406f8460208501613f70565b602081525f61183b6020830184614608565b6020815260ff82511660208201525f60208301516040808401526111886060840182613bba565b60018060a01b0381511682526001600160401b03602082015116602083015263ffffffff6040820151166040830152606081015160608301525f608082015160a0608085015261118860a0850182613bba565b602081525f8251604060208401526148d16060840182613d03565b90506020840151601f198483030160408501526114a88282614863565b803563ffffffff81168114611f29575f5ffd5b5f5f5f5f5f60808688031215614915575f5ffd5b85359450613e19602087016148ee565b602081525f61183b6020830184614651565b5f5f5f60a08486031215614949575f5ffd5b83359250602084013591506149618560408601613f70565b90509250925092565b5f5f5f6080848603121561497c575f5ffd5b8335925061498d856020860161403d565b9150606084013561499d81613c29565b809150509250925092565b602081525f61183b6020830184614863565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60ff8316806149f4576149f46149ba565b8060ff84160491505092915050565b60ff8181168382160190811115610e7b57610e7b6149ce565b5f60ff831680614a2e57614a2e6149ba565b8060ff84160691505092915050565b634e487b7160e01b5f52603260045260245ffd5b8082028115828204841417610e7b57610e7b6149ce565b80820180821115610e7b57610e7b6149ce565b5f8235607e19833603018112614a8f575f5ffd5b9190910192915050565b5f60208284031215614aa9575f5ffd5b61183b826148ee565b5f5f8335601e19843603018112614ac7575f5ffd5b8301803591506001600160401b03821115614ae0575f5ffd5b602001915036819003821315613ca7575f5ffd5b600181811c90821680614b0857607f821691505b6020821081036113fe57634e487b7160e01b5f52602260045260245ffd5b600781106123ce575f5ffd5b5f60208284031215614b42575f5ffd5b815161183b81614b26565b602080825281018290525f8360408301825b85811015614b8f578235614b7281613bfa565b6001600160a01b0316825260209283019290910190600101614b5f565b5095945050505050565b5f60208284031215614ba9575f5ffd5b8151801515811461183b575f5ffd5b858152602081018590526001600160401b03841660408201526060810183905260e08101614391608083018461ffff815116825261ffff60208201511660208301526001600160401b0360408201511660408301525050565b60ff811681146123ce575f5ffd5b5f60208284031215614c2f575f5ffd5b813561183b81614c11565b5f614c4483614078565b604051614c518282613f24565b809250848152858585011115614c65575f5ffd5b8484602083015e5f6020868301015250509392505050565b5f82601f830112614c8c575f5ffd5b61183b83835160208501614c3a565b5f5f60408385031215614cac575f5ffd5b8251614cb781613bfa565b60208401519092506001600160401b03811115614cd2575f5ffd5b614cde85828601614c7d565b9150509250929050565b80516101008110611f29575f5ffd5b5f60208284031215614d07575f5ffd5b61183b82614ce8565b5f60208284031215614d20575f5ffd5b81516001600160401b03811115614d35575f5ffd5b8201601f81018413614d45575f5ffd5b61118884825160208401614c3a565b5f614d5f8285613b45565b6101d160f51b81526114a86002820185613b45565b6001600160401b0383168152604060208201525f6111886040830184613bba565b5f614da08284613b45565b743a20696e76616c6964207265706f7274206461746160581b81526015019392505050565b6001600160a01b03831681526040602080830182905283519183018290525f91908401906060840190835b81811015614e175783516001600160401b0316835260209384019390920191600101614df0565b50909695505050505050565b5f60208284031215614e33575f5ffd5b81516001600160401b03811115614e48575f5ffd5b8201601f81018413614e58575f5ffd5b8051614e63816141ad565b604051614e708282613f24565b80915082815260208101915060208360051b850101925086831115614e93575f5ffd5b602084015b838110156142eb5780516001600160401b03811115614eb5575f5ffd5b614ec489602083890101614c7d565b84525060209283019201614e98565b8051611f2981613d99565b8051611f2981614c11565b5f60c08284031215614ef9575f5ffd5b604051614f0581613f05565b80915082516001600160401b03811115614f1d575f5ffd5b830160408186031215614f2e575f5ffd5b604051614f3a81613ec7565b81516001600160401b03811115614f4f575f5ffd5b614f5b87828501614c7d565b825250602091820151828201528252614f75908401614ede565b6020820152614f8660408401614ede565b6040820152614f9760608401614ede565b6060820152614fa860808401614ed3565b6080820152614fb960a08401614ed3565b60a08201525092915050565b5f60c08284031215614fd5575f5ffd5b604051614fe181613f05565b809150614fed83614ce8565b8152602083015160148110615000575f5ffd5b6020820152604083810151908201526060808401519082015261502560808401614ed3565b608082015260a08301516001600160401b03811115615042575f5ffd5b61504e85828601614ee9565b60a0830152505092915050565b5f6020828403121561506b575f5ffd5b81516001600160401b03811115615080575f5ffd5b61118884828501614fc5565b803561509781613f61565b61ffff16825260208101356150ab81613f61565b61ffff16602083015260408101356150c281613d99565b6001600160401b0381166040840152505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6040808252843582820152602085013560608301525f90615125906080840190870161508c565b60a085013561513381613d99565b6001600160401b031660e083015260c085013536869003601e19018112615158575f5ffd5b85016020810190356001600160401b03811115615173575f5ffd5b803603821315615181575f5ffd5b60e0610100850152615198610120850182846150d6565b91505082810360208401526143918185876150d6565b5f5f604083850312156151bf575f5ffd5b82516151ca81613bfa565b60208401519092506001600160401b038111156151e5575f5ffd5b614cde85828601614fc5565b6001600160a01b03881681526020810187905260408101869052615218606082018661508c565b6001600160401b03841660c082015261010060e08201525f61523f610100830184866150d6565b9998505050505050505050565b80516001600160481b0381168114611f29575f5ffd5b5f60208284031215615272575f5ffd5b61183b8261524c565b5f60033d1115613f5e5760045f5f3e505f5160e01c90565b5f60443d10156152a05790565b6040513d600319016004823e80513d60248201116001600160401b03821117156152c957505090565b80820180516001600160401b038111156152e4575050505090565b3d84016003190182820160200111156152fe575050505090565b613d7f60208285010185613f24565b5f6080828403121561531d575f5ffd5b60405161532981613ee6565b809150825161533781613bfa565b8152602083015161534781613c29565b602082015260408301516001600160401b03811115615364575f5ffd5b61537085828601614c7d565b604083015250606092830151920191909152919050565b5f60a08284031215615397575f5ffd5b60405160a081018181106001600160401b03821117156153b9576153b9613e8e565b806040525080915082516153cc81613bfa565b815260208301516153dc81613d99565b60208201526040838101519082015260608301516001600160401b03811115615403575f5ffd5b61540f85828601614c7d565b606083015250608083015161542381613bfa565b6080919091015292915050565b5f60608284031215615440575f5ffd5b60405161544c81613ea2565b809150825161545a81613f61565b8152602083015161546a81613f61565b60208201526040830151613fbd81613d99565b80516001600160881b031981168114611f29575f5ffd5b5f602082840312156154a4575f5ffd5b81516001600160401b038111156154b9575f5ffd5b820161010081850312156154cb575f5ffd5b6154d3613f50565b81516001600160401b038111156154e8575f5ffd5b6154f48682850161530d565b82525060208201516001600160401b0381111561550f575f5ffd5b61551b86828501615387565b60208301525061552e8560408401615430565b604082015261553f60a0830161547d565b606082015261555060c0830161524c565b608082015261556160e08301614ed3565b60a0820152949350505050565b5f6020828403121561557e575f5ffd5b81516001600160401b03811115615593575f5ffd5b6111888482850161530d565b6001600160401b038181168382160190811115610e7b57610e7b6149ce565b5f602082840312156155ce575f5ffd5b81516001600160401b038111156155e3575f5ffd5b61118884828501615387565b61ffff8281168282160390811115610e7b57610e7b6149ce565b5f61ffff83168061561c5761561c6149ba565b8061ffff84160491505092915050565b8381526020808201849052825160ff1660408301528201516001600160401b0316606082015260808101611188565b5f6020828403121561566b575f5ffd5b81516001600160401b03811115615680575f5ffd5b8201601f81018413615690575f5ffd5b805161569b816141ad565b6040516156a88282613f24565b80915082815260208101915060208360051b8501019250868311156156cb575f5ffd5b6020840193505b828410156143915783516156e581613bfa565b8252602093840193909101906156d2565b602080825282518282018190525f918401906040840190835b818110156143db5783516001600160a01b031683526020938401939092019160010161570f565b60018060a01b03881681528660208201526001600160401b03861660408201528460608201526001600160401b03841660808201528260a082015260e060c08201525f61523f60e0830184613bba565b5f60208284031215615796575f5ffd5b5051919050565b5f6001600160401b0382166001600160401b0381036157be576157be6149ce565b60010192915050565b5f6157d28284613b45565b741d103ab73430b7323632b21030b9b9b2b93a34b7b760591b81526015019392505050565b81810381811115610e7b57610e7b6149ce56fef595240b351bc8f951c2f53b26f4e78c32cb62122cf76c19b7fdda7d4968e183f595240b351bc8f951c2f53b26f4e78c32cb62122cf76c19b7fdda7d4968e184a2646970667358221220931792477c2c4d01d11d6af0c10cfbbd48341dea05abc30dfe37e3d8c1e269e864736f6c634300081e0033";
  readonly linkReferences: {"project/contracts/data/WitOracleDataLib.sol":{"WitOracleDataLib":[{"length":20,"start":6707},{"length":20,"start":6823},{"length":20,"start":8431},{"length":20,"start":8497},{"length":20,"start":8783},{"length":20,"start":9386},{"length":20,"start":9789},{"length":20,"start":10014},{"length":20,"start":10277},{"length":20,"start":10599},{"length":20,"start":10824},{"length":20,"start":11130},{"length":20,"start":12153},{"length":20,"start":12594},{"length":20,"start":12788},{"length":20,"start":13074},{"length":20,"start":13472},{"length":20,"start":14782},{"length":20,"start":14929},{"length":20,"start":15104}]},"project/contracts/libs/WitOracleResultStatusLib.sol":{"WitOracleResultStatusLib":[{"length":20,"start":12321},{"length":20,"start":12762}]}};
  readonly deployedLinkReferences: {"project/contracts/data/WitOracleDataLib.sol":{"WitOracleDataLib":[{"length":20,"start":5321},{"length":20,"start":5437},{"length":20,"start":7045},{"length":20,"start":7111},{"length":20,"start":7397},{"length":20,"start":8000},{"length":20,"start":8403},{"length":20,"start":8628},{"length":20,"start":8891},{"length":20,"start":9213},{"length":20,"start":9438},{"length":20,"start":9744},{"length":20,"start":10767},{"length":20,"start":11208},{"length":20,"start":11402},{"length":20,"start":11688},{"length":20,"start":12086},{"length":20,"start":13396},{"length":20,"start":13543},{"length":20,"start":13718}]},"project/contracts/libs/WitOracleResultStatusLib.sol":{"WitOracleResultStatusLib":[{"length":20,"start":10935},{"length":20,"start":11376}]}};
  readonly immutableReferences: {"9009":[{"length":32,"start":8146}],"9013":[{"length":32,"start":3185}],"9104":[{"length":32,"start":1818}],"10085":[{"length":32,"start":2351},{"length":32,"start":8032},{"length":32,"start":10330}],"10087":[{"length":32,"start":5577}],"10089":[{"length":32,"start":3828},{"length":32,"start":3900}],"10091":[{"length":32,"start":3764}],"10093":[{"length":32,"start":3720},{"length":32,"start":5533},{"length":32,"start":11839}],"45715":[{"length":32,"start":3265}],"45824":[{"length":32,"start":1745},{"length":32,"start":2830},{"length":32,"start":6505},{"length":32,"start":6618},{"length":32,"start":6689},{"length":32,"start":6723}],"45828":[{"length":32,"start":1897},{"length":32,"start":8535}]};
  readonly inputSourceName: "project/contracts/core/trustable/WitOracleTrustableDefault.sol";
  readonly buildInfoId: "solc-0_8_30-47301052af11a5aa5062e9b98ca44d5e142950cf";
};

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