@coset-dev/contracts 1.0.3 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../types/ethers-contracts/OracleFactory.ts"],
4
- "sourcesContent": ["/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nimport type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from \"ethers\"\nimport type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from \"./common.js\"\n \n\n export interface OracleFactoryInterface extends Interface {\n getFunction(nameOrSignature: \"activeOracleCount\" | \"config\" | \"deployOracle\" | \"getAllOracles()\" | \"getAllOracles(uint256,uint256)\" | \"getOracleInfo\" | \"getProviderOracles(address,uint256,uint256)\" | \"getProviderOracles(address)\" | \"oracleList\" | \"oracles\" | \"owner\" | \"providerOracles\" | \"renounceOwnership\" | \"setOracleDataUpdatePrice\" | \"setOracleStatus\" | \"transferOwnership\" | \"updateConfig\"): FunctionFragment;\n\n getEvent(nameOrSignatureOrTopic: \"OracleDeployed\" | \"OracleStatusChanged\" | \"OwnershipTransferred\"): EventFragment;\n\n encodeFunctionData(functionFragment: 'activeOracleCount', values?: undefined): string;\nencodeFunctionData(functionFragment: 'config', values?: undefined): string;\nencodeFunctionData(functionFragment: 'deployOracle', values: [BigNumberish, BigNumberish, BytesLike]): string;\nencodeFunctionData(functionFragment: 'getAllOracles()', values?: undefined): string;\nencodeFunctionData(functionFragment: 'getAllOracles(uint256,uint256)', values: [BigNumberish, BigNumberish]): string;\nencodeFunctionData(functionFragment: 'getOracleInfo', values: [AddressLike]): string;\nencodeFunctionData(functionFragment: 'getProviderOracles(address,uint256,uint256)', values: [AddressLike, BigNumberish, BigNumberish]): string;\nencodeFunctionData(functionFragment: 'getProviderOracles(address)', values: [AddressLike]): string;\nencodeFunctionData(functionFragment: 'oracleList', values: [BigNumberish]): string;\nencodeFunctionData(functionFragment: 'oracles', values: [AddressLike]): string;\nencodeFunctionData(functionFragment: 'owner', values?: undefined): string;\nencodeFunctionData(functionFragment: 'providerOracles', values: [AddressLike, BigNumberish]): string;\nencodeFunctionData(functionFragment: 'renounceOwnership', values?: undefined): string;\nencodeFunctionData(functionFragment: 'setOracleDataUpdatePrice', values: [AddressLike, BigNumberish]): string;\nencodeFunctionData(functionFragment: 'setOracleStatus', values: [AddressLike, boolean]): string;\nencodeFunctionData(functionFragment: 'transferOwnership', values: [AddressLike]): string;\nencodeFunctionData(functionFragment: 'updateConfig', values: [BigNumberish, BigNumberish]): string;\n\n decodeFunctionResult(functionFragment: 'activeOracleCount', data: BytesLike): Result;\ndecodeFunctionResult(functionFragment: 'config', data: BytesLike): Result;\ndecodeFunctionResult(functionFragment: 'deployOracle', data: BytesLike): Result;\ndecodeFunctionResult(functionFragment: 'getAllOracles()', data: BytesLike): Result;\ndecodeFunctionResult(functionFragment: 'getAllOracles(uint256,uint256)', data: BytesLike): Result;\ndecodeFunctionResult(functionFragment: 'getOracleInfo', data: BytesLike): Result;\ndecodeFunctionResult(functionFragment: 'getProviderOracles(address,uint256,uint256)', data: BytesLike): Result;\ndecodeFunctionResult(functionFragment: 'getProviderOracles(address)', data: BytesLike): Result;\ndecodeFunctionResult(functionFragment: 'oracleList', data: BytesLike): Result;\ndecodeFunctionResult(functionFragment: 'oracles', data: BytesLike): Result;\ndecodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result;\ndecodeFunctionResult(functionFragment: 'providerOracles', data: BytesLike): Result;\ndecodeFunctionResult(functionFragment: 'renounceOwnership', data: BytesLike): Result;\ndecodeFunctionResult(functionFragment: 'setOracleDataUpdatePrice', data: BytesLike): Result;\ndecodeFunctionResult(functionFragment: 'setOracleStatus', data: BytesLike): Result;\ndecodeFunctionResult(functionFragment: 'transferOwnership', data: BytesLike): Result;\ndecodeFunctionResult(functionFragment: 'updateConfig', data: BytesLike): Result;\n }\n\n \n export namespace OracleDeployedEvent {\n export type InputTuple = [oracleAddress: AddressLike, provider: AddressLike, timestamp: BigNumberish];\n export type OutputTuple = [oracleAddress: string, provider: string, timestamp: bigint];\n export interface OutputObject {oracleAddress: string, provider: string, timestamp: bigint };\n export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>\n export type Filter = TypedDeferredTopicFilter<Event>\n export type Log = TypedEventLog<Event>\n export type LogDescription = TypedLogDescription<Event>\n }\n\n \n\n export namespace OracleStatusChangedEvent {\n export type InputTuple = [oracleAddress: AddressLike, provider: AddressLike, newOracleStatus: boolean, timestamp: BigNumberish];\n export type OutputTuple = [oracleAddress: string, provider: string, newOracleStatus: boolean, timestamp: bigint];\n export interface OutputObject {oracleAddress: string, provider: string, newOracleStatus: boolean, timestamp: bigint };\n export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>\n export type Filter = TypedDeferredTopicFilter<Event>\n export type Log = TypedEventLog<Event>\n export type LogDescription = TypedLogDescription<Event>\n }\n\n \n\n export namespace OwnershipTransferredEvent {\n export type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike];\n export type OutputTuple = [previousOwner: string, newOwner: string];\n export interface OutputObject {previousOwner: string, newOwner: string };\n export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>\n export type Filter = TypedDeferredTopicFilter<Event>\n export type Log = TypedEventLog<Event>\n export type LogDescription = TypedLogDescription<Event>\n }\n\n \n\n export interface OracleFactory extends BaseContract {\n \n connect(runner?: ContractRunner | null): OracleFactory;\n waitForDeployment(): Promise<this>;\n\n interface: OracleFactoryInterface;\n\n \n queryFilter<TCEvent extends TypedContractEvent>(\n event: TCEvent,\n fromBlockOrBlockhash?: string | number | undefined,\n toBlock?: string | number | undefined,\n ): Promise<Array<TypedEventLog<TCEvent>>>\n queryFilter<TCEvent extends TypedContractEvent>(\n filter: TypedDeferredTopicFilter<TCEvent>,\n fromBlockOrBlockhash?: string | number | undefined,\n toBlock?: string | number | undefined\n ): Promise<Array<TypedEventLog<TCEvent>>>;\n\n on<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>\n on<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>\n \n once<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>\n once<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>\n\n listeners<TCEvent extends TypedContractEvent>(\n event: TCEvent\n ): Promise<Array<TypedListener<TCEvent>>>;\n listeners(eventName?: string): Promise<Array<Listener>>\n removeAllListeners<TCEvent extends TypedContractEvent>(event?: TCEvent): Promise<this>\n\n\n \n \n activeOracleCount: TypedContractMethod<\n [],\n [bigint],\n 'view'\n >\n \n\n \n config: TypedContractMethod<\n [],\n [[bigint, bigint] & {oracleDeployPrice: bigint, oracleFactoryShare: bigint }],\n 'view'\n >\n \n\n \n deployOracle: TypedContractMethod<\n [_recommendedUpdateDuration: BigNumberish, _dataUpdatePrice: BigNumberish, _initialData: BytesLike, ],\n [void],\n 'payable'\n >\n \n\n \n \"getAllOracles()\": TypedContractMethod<\n [],\n [string[]],\n 'view'\n >\n \n\n \n \"getAllOracles(uint256,uint256)\": TypedContractMethod<\n [offset: BigNumberish, limit: BigNumberish, ],\n [[string[], bigint] & {total: bigint }],\n 'view'\n >\n \n\n \n getOracleInfo: TypedContractMethod<\n [oracleAddress: AddressLike, ],\n [[string, bigint, boolean] & {provider: string, createdAt: bigint, isActive: boolean }],\n 'view'\n >\n \n\n \n \"getProviderOracles(address,uint256,uint256)\": TypedContractMethod<\n [provider: AddressLike, offset: BigNumberish, limit: BigNumberish, ],\n [[string[], bigint] & {total: bigint }],\n 'view'\n >\n \n\n \n \"getProviderOracles(address)\": TypedContractMethod<\n [provider: AddressLike, ],\n [string[]],\n 'view'\n >\n \n\n \n oracleList: TypedContractMethod<\n [arg0: BigNumberish, ],\n [string],\n 'view'\n >\n \n\n \n oracles: TypedContractMethod<\n [arg0: AddressLike, ],\n [[string, bigint, boolean] & {provider: string, createdAt: bigint, isActive: boolean }],\n 'view'\n >\n \n\n \n owner: TypedContractMethod<\n [],\n [string],\n 'view'\n >\n \n\n \n providerOracles: TypedContractMethod<\n [arg0: AddressLike, arg1: BigNumberish, ],\n [string],\n 'view'\n >\n \n\n \n renounceOwnership: TypedContractMethod<\n [],\n [void],\n 'nonpayable'\n >\n \n\n \n setOracleDataUpdatePrice: TypedContractMethod<\n [oracleAddress: AddressLike, _dataUpdatePrice: BigNumberish, ],\n [void],\n 'nonpayable'\n >\n \n\n \n setOracleStatus: TypedContractMethod<\n [oracleAddress: AddressLike, _isActive: boolean, ],\n [void],\n 'nonpayable'\n >\n \n\n \n transferOwnership: TypedContractMethod<\n [newOwner: AddressLike, ],\n [void],\n 'nonpayable'\n >\n \n\n \n updateConfig: TypedContractMethod<\n [_oracleDeployPrice: BigNumberish, _oracleFactoryShare: BigNumberish, ],\n [void],\n 'nonpayable'\n >\n \n\n\n getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;\n\n getFunction(nameOrSignature: 'activeOracleCount'): TypedContractMethod<\n [],\n [bigint],\n 'view'\n >;\ngetFunction(nameOrSignature: 'config'): TypedContractMethod<\n [],\n [[bigint, bigint] & {oracleDeployPrice: bigint, oracleFactoryShare: bigint }],\n 'view'\n >;\ngetFunction(nameOrSignature: 'deployOracle'): TypedContractMethod<\n [_recommendedUpdateDuration: BigNumberish, _dataUpdatePrice: BigNumberish, _initialData: BytesLike, ],\n [void],\n 'payable'\n >;\ngetFunction(nameOrSignature: 'getAllOracles()'): TypedContractMethod<\n [],\n [string[]],\n 'view'\n >;\ngetFunction(nameOrSignature: 'getAllOracles(uint256,uint256)'): TypedContractMethod<\n [offset: BigNumberish, limit: BigNumberish, ],\n [[string[], bigint] & {total: bigint }],\n 'view'\n >;\ngetFunction(nameOrSignature: 'getOracleInfo'): TypedContractMethod<\n [oracleAddress: AddressLike, ],\n [[string, bigint, boolean] & {provider: string, createdAt: bigint, isActive: boolean }],\n 'view'\n >;\ngetFunction(nameOrSignature: 'getProviderOracles(address,uint256,uint256)'): TypedContractMethod<\n [provider: AddressLike, offset: BigNumberish, limit: BigNumberish, ],\n [[string[], bigint] & {total: bigint }],\n 'view'\n >;\ngetFunction(nameOrSignature: 'getProviderOracles(address)'): TypedContractMethod<\n [provider: AddressLike, ],\n [string[]],\n 'view'\n >;\ngetFunction(nameOrSignature: 'oracleList'): TypedContractMethod<\n [arg0: BigNumberish, ],\n [string],\n 'view'\n >;\ngetFunction(nameOrSignature: 'oracles'): TypedContractMethod<\n [arg0: AddressLike, ],\n [[string, bigint, boolean] & {provider: string, createdAt: bigint, isActive: boolean }],\n 'view'\n >;\ngetFunction(nameOrSignature: 'owner'): TypedContractMethod<\n [],\n [string],\n 'view'\n >;\ngetFunction(nameOrSignature: 'providerOracles'): TypedContractMethod<\n [arg0: AddressLike, arg1: BigNumberish, ],\n [string],\n 'view'\n >;\ngetFunction(nameOrSignature: 'renounceOwnership'): TypedContractMethod<\n [],\n [void],\n 'nonpayable'\n >;\ngetFunction(nameOrSignature: 'setOracleDataUpdatePrice'): TypedContractMethod<\n [oracleAddress: AddressLike, _dataUpdatePrice: BigNumberish, ],\n [void],\n 'nonpayable'\n >;\ngetFunction(nameOrSignature: 'setOracleStatus'): TypedContractMethod<\n [oracleAddress: AddressLike, _isActive: boolean, ],\n [void],\n 'nonpayable'\n >;\ngetFunction(nameOrSignature: 'transferOwnership'): TypedContractMethod<\n [newOwner: AddressLike, ],\n [void],\n 'nonpayable'\n >;\ngetFunction(nameOrSignature: 'updateConfig'): TypedContractMethod<\n [_oracleDeployPrice: BigNumberish, _oracleFactoryShare: BigNumberish, ],\n [void],\n 'nonpayable'\n >;\n\n getEvent(key: 'OracleDeployed'): TypedContractEvent<OracleDeployedEvent.InputTuple, OracleDeployedEvent.OutputTuple, OracleDeployedEvent.OutputObject>;\ngetEvent(key: 'OracleStatusChanged'): TypedContractEvent<OracleStatusChangedEvent.InputTuple, OracleStatusChangedEvent.OutputTuple, OracleStatusChangedEvent.OutputObject>;\ngetEvent(key: 'OwnershipTransferred'): TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>;\n\n filters: {\n \n 'OracleDeployed(address,address,uint256)': TypedContractEvent<OracleDeployedEvent.InputTuple, OracleDeployedEvent.OutputTuple, OracleDeployedEvent.OutputObject>;\n OracleDeployed: TypedContractEvent<OracleDeployedEvent.InputTuple, OracleDeployedEvent.OutputTuple, OracleDeployedEvent.OutputObject>;\n \n\n 'OracleStatusChanged(address,address,bool,uint256)': TypedContractEvent<OracleStatusChangedEvent.InputTuple, OracleStatusChangedEvent.OutputTuple, OracleStatusChangedEvent.OutputObject>;\n OracleStatusChanged: TypedContractEvent<OracleStatusChangedEvent.InputTuple, OracleStatusChangedEvent.OutputTuple, OracleStatusChangedEvent.OutputObject>;\n \n\n 'OwnershipTransferred(address,address)': TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>;\n OwnershipTransferred: TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>;\n \n };\n }"],
5
- "mappings": "AAkDW,IAAUA,MAAV,IAAUA,IAAA,IAYV,IAAUC,MAAV,IAAUA,IAAA,IAYV,IAAUC,MAAV,IAAUA,IAAA",
4
+ "sourcesContent": ["/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nimport type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from \"ethers\"\nimport type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from \"./common.js\"\n \n\n export interface OracleFactoryInterface extends Interface {\n getFunction(nameOrSignature: \"activeOracleCount\" | \"config\" | \"deployOracle\" | \"getAllOracles\" | \"getOracleInfo\" | \"getProviderOracles\" | \"oracleList\" | \"oracles\" | \"owner\" | \"providerOracles\" | \"renounceOwnership\" | \"setOracleDataUpdatePrice\" | \"setOracleStatus\" | \"transferOwnership\" | \"updateConfig\" | \"updateOracleData\"): FunctionFragment;\n\n getEvent(nameOrSignatureOrTopic: \"OracleDeployed\" | \"OracleStatusChanged\" | \"OwnershipTransferred\"): EventFragment;\n\n encodeFunctionData(functionFragment: 'activeOracleCount', values?: undefined): string;\nencodeFunctionData(functionFragment: 'config', values?: undefined): string;\nencodeFunctionData(functionFragment: 'deployOracle', values: [BigNumberish, BigNumberish, BytesLike]): string;\nencodeFunctionData(functionFragment: 'getAllOracles', values: [BigNumberish, BigNumberish]): string;\nencodeFunctionData(functionFragment: 'getOracleInfo', values: [AddressLike]): string;\nencodeFunctionData(functionFragment: 'getProviderOracles', values: [AddressLike, BigNumberish, BigNumberish]): string;\nencodeFunctionData(functionFragment: 'oracleList', values: [BigNumberish]): string;\nencodeFunctionData(functionFragment: 'oracles', values: [AddressLike]): string;\nencodeFunctionData(functionFragment: 'owner', values?: undefined): string;\nencodeFunctionData(functionFragment: 'providerOracles', values: [AddressLike, BigNumberish]): string;\nencodeFunctionData(functionFragment: 'renounceOwnership', values?: undefined): string;\nencodeFunctionData(functionFragment: 'setOracleDataUpdatePrice', values: [AddressLike, BigNumberish]): string;\nencodeFunctionData(functionFragment: 'setOracleStatus', values: [AddressLike, boolean]): string;\nencodeFunctionData(functionFragment: 'transferOwnership', values: [AddressLike]): string;\nencodeFunctionData(functionFragment: 'updateConfig', values: [BigNumberish, BigNumberish]): string;\nencodeFunctionData(functionFragment: 'updateOracleData', values: [AddressLike, BytesLike]): string;\n\n decodeFunctionResult(functionFragment: 'activeOracleCount', data: BytesLike): Result;\ndecodeFunctionResult(functionFragment: 'config', data: BytesLike): Result;\ndecodeFunctionResult(functionFragment: 'deployOracle', data: BytesLike): Result;\ndecodeFunctionResult(functionFragment: 'getAllOracles', data: BytesLike): Result;\ndecodeFunctionResult(functionFragment: 'getOracleInfo', data: BytesLike): Result;\ndecodeFunctionResult(functionFragment: 'getProviderOracles', data: BytesLike): Result;\ndecodeFunctionResult(functionFragment: 'oracleList', data: BytesLike): Result;\ndecodeFunctionResult(functionFragment: 'oracles', data: BytesLike): Result;\ndecodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result;\ndecodeFunctionResult(functionFragment: 'providerOracles', data: BytesLike): Result;\ndecodeFunctionResult(functionFragment: 'renounceOwnership', data: BytesLike): Result;\ndecodeFunctionResult(functionFragment: 'setOracleDataUpdatePrice', data: BytesLike): Result;\ndecodeFunctionResult(functionFragment: 'setOracleStatus', data: BytesLike): Result;\ndecodeFunctionResult(functionFragment: 'transferOwnership', data: BytesLike): Result;\ndecodeFunctionResult(functionFragment: 'updateConfig', data: BytesLike): Result;\ndecodeFunctionResult(functionFragment: 'updateOracleData', data: BytesLike): Result;\n }\n\n \n export namespace OracleDeployedEvent {\n export type InputTuple = [oracleAddress: AddressLike, provider: AddressLike, timestamp: BigNumberish];\n export type OutputTuple = [oracleAddress: string, provider: string, timestamp: bigint];\n export interface OutputObject {oracleAddress: string, provider: string, timestamp: bigint };\n export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>\n export type Filter = TypedDeferredTopicFilter<Event>\n export type Log = TypedEventLog<Event>\n export type LogDescription = TypedLogDescription<Event>\n }\n\n \n\n export namespace OracleStatusChangedEvent {\n export type InputTuple = [oracleAddress: AddressLike, provider: AddressLike, newOracleStatus: boolean, timestamp: BigNumberish];\n export type OutputTuple = [oracleAddress: string, provider: string, newOracleStatus: boolean, timestamp: bigint];\n export interface OutputObject {oracleAddress: string, provider: string, newOracleStatus: boolean, timestamp: bigint };\n export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>\n export type Filter = TypedDeferredTopicFilter<Event>\n export type Log = TypedEventLog<Event>\n export type LogDescription = TypedLogDescription<Event>\n }\n\n \n\n export namespace OwnershipTransferredEvent {\n export type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike];\n export type OutputTuple = [previousOwner: string, newOwner: string];\n export interface OutputObject {previousOwner: string, newOwner: string };\n export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>\n export type Filter = TypedDeferredTopicFilter<Event>\n export type Log = TypedEventLog<Event>\n export type LogDescription = TypedLogDescription<Event>\n }\n\n \n\n export interface OracleFactory extends BaseContract {\n \n connect(runner?: ContractRunner | null): OracleFactory;\n waitForDeployment(): Promise<this>;\n\n interface: OracleFactoryInterface;\n\n \n queryFilter<TCEvent extends TypedContractEvent>(\n event: TCEvent,\n fromBlockOrBlockhash?: string | number | undefined,\n toBlock?: string | number | undefined,\n ): Promise<Array<TypedEventLog<TCEvent>>>\n queryFilter<TCEvent extends TypedContractEvent>(\n filter: TypedDeferredTopicFilter<TCEvent>,\n fromBlockOrBlockhash?: string | number | undefined,\n toBlock?: string | number | undefined\n ): Promise<Array<TypedEventLog<TCEvent>>>;\n\n on<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>\n on<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>\n \n once<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>\n once<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>\n\n listeners<TCEvent extends TypedContractEvent>(\n event: TCEvent\n ): Promise<Array<TypedListener<TCEvent>>>;\n listeners(eventName?: string): Promise<Array<Listener>>\n removeAllListeners<TCEvent extends TypedContractEvent>(event?: TCEvent): Promise<this>\n\n\n \n \n activeOracleCount: TypedContractMethod<\n [],\n [bigint],\n 'view'\n >\n \n\n \n config: TypedContractMethod<\n [],\n [[bigint, bigint] & {oracleDeployPrice: bigint, oracleFactoryShare: bigint }],\n 'view'\n >\n \n\n \n deployOracle: TypedContractMethod<\n [_recommendedUpdateDuration: BigNumberish, _dataUpdatePrice: BigNumberish, _initialData: BytesLike, ],\n [void],\n 'payable'\n >\n \n\n \n getAllOracles: TypedContractMethod<\n [offset: BigNumberish, limit: BigNumberish, ],\n [[string[], bigint] & {total: bigint }],\n 'view'\n >\n \n\n \n getOracleInfo: TypedContractMethod<\n [oracleAddress: AddressLike, ],\n [[string, bigint, boolean] & {provider: string, createdAt: bigint, isActive: boolean }],\n 'view'\n >\n \n\n \n getProviderOracles: TypedContractMethod<\n [provider: AddressLike, offset: BigNumberish, limit: BigNumberish, ],\n [[string[], bigint] & {total: bigint }],\n 'view'\n >\n \n\n \n oracleList: TypedContractMethod<\n [arg0: BigNumberish, ],\n [string],\n 'view'\n >\n \n\n \n oracles: TypedContractMethod<\n [arg0: AddressLike, ],\n [[string, bigint, boolean] & {provider: string, createdAt: bigint, isActive: boolean }],\n 'view'\n >\n \n\n \n owner: TypedContractMethod<\n [],\n [string],\n 'view'\n >\n \n\n \n providerOracles: TypedContractMethod<\n [arg0: AddressLike, arg1: BigNumberish, ],\n [string],\n 'view'\n >\n \n\n \n renounceOwnership: TypedContractMethod<\n [],\n [void],\n 'nonpayable'\n >\n \n\n \n setOracleDataUpdatePrice: TypedContractMethod<\n [oracleAddress: AddressLike, _dataUpdatePrice: BigNumberish, ],\n [void],\n 'nonpayable'\n >\n \n\n \n setOracleStatus: TypedContractMethod<\n [oracleAddress: AddressLike, _isActive: boolean, ],\n [void],\n 'nonpayable'\n >\n \n\n \n transferOwnership: TypedContractMethod<\n [newOwner: AddressLike, ],\n [void],\n 'nonpayable'\n >\n \n\n \n updateConfig: TypedContractMethod<\n [_oracleDeployPrice: BigNumberish, _oracleFactoryShare: BigNumberish, ],\n [void],\n 'nonpayable'\n >\n \n\n \n updateOracleData: TypedContractMethod<\n [oracleAddress: AddressLike, _data: BytesLike, ],\n [void],\n 'payable'\n >\n \n\n\n getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;\n\n getFunction(nameOrSignature: 'activeOracleCount'): TypedContractMethod<\n [],\n [bigint],\n 'view'\n >;\ngetFunction(nameOrSignature: 'config'): TypedContractMethod<\n [],\n [[bigint, bigint] & {oracleDeployPrice: bigint, oracleFactoryShare: bigint }],\n 'view'\n >;\ngetFunction(nameOrSignature: 'deployOracle'): TypedContractMethod<\n [_recommendedUpdateDuration: BigNumberish, _dataUpdatePrice: BigNumberish, _initialData: BytesLike, ],\n [void],\n 'payable'\n >;\ngetFunction(nameOrSignature: 'getAllOracles'): TypedContractMethod<\n [offset: BigNumberish, limit: BigNumberish, ],\n [[string[], bigint] & {total: bigint }],\n 'view'\n >;\ngetFunction(nameOrSignature: 'getOracleInfo'): TypedContractMethod<\n [oracleAddress: AddressLike, ],\n [[string, bigint, boolean] & {provider: string, createdAt: bigint, isActive: boolean }],\n 'view'\n >;\ngetFunction(nameOrSignature: 'getProviderOracles'): TypedContractMethod<\n [provider: AddressLike, offset: BigNumberish, limit: BigNumberish, ],\n [[string[], bigint] & {total: bigint }],\n 'view'\n >;\ngetFunction(nameOrSignature: 'oracleList'): TypedContractMethod<\n [arg0: BigNumberish, ],\n [string],\n 'view'\n >;\ngetFunction(nameOrSignature: 'oracles'): TypedContractMethod<\n [arg0: AddressLike, ],\n [[string, bigint, boolean] & {provider: string, createdAt: bigint, isActive: boolean }],\n 'view'\n >;\ngetFunction(nameOrSignature: 'owner'): TypedContractMethod<\n [],\n [string],\n 'view'\n >;\ngetFunction(nameOrSignature: 'providerOracles'): TypedContractMethod<\n [arg0: AddressLike, arg1: BigNumberish, ],\n [string],\n 'view'\n >;\ngetFunction(nameOrSignature: 'renounceOwnership'): TypedContractMethod<\n [],\n [void],\n 'nonpayable'\n >;\ngetFunction(nameOrSignature: 'setOracleDataUpdatePrice'): TypedContractMethod<\n [oracleAddress: AddressLike, _dataUpdatePrice: BigNumberish, ],\n [void],\n 'nonpayable'\n >;\ngetFunction(nameOrSignature: 'setOracleStatus'): TypedContractMethod<\n [oracleAddress: AddressLike, _isActive: boolean, ],\n [void],\n 'nonpayable'\n >;\ngetFunction(nameOrSignature: 'transferOwnership'): TypedContractMethod<\n [newOwner: AddressLike, ],\n [void],\n 'nonpayable'\n >;\ngetFunction(nameOrSignature: 'updateConfig'): TypedContractMethod<\n [_oracleDeployPrice: BigNumberish, _oracleFactoryShare: BigNumberish, ],\n [void],\n 'nonpayable'\n >;\ngetFunction(nameOrSignature: 'updateOracleData'): TypedContractMethod<\n [oracleAddress: AddressLike, _data: BytesLike, ],\n [void],\n 'payable'\n >;\n\n getEvent(key: 'OracleDeployed'): TypedContractEvent<OracleDeployedEvent.InputTuple, OracleDeployedEvent.OutputTuple, OracleDeployedEvent.OutputObject>;\ngetEvent(key: 'OracleStatusChanged'): TypedContractEvent<OracleStatusChangedEvent.InputTuple, OracleStatusChangedEvent.OutputTuple, OracleStatusChangedEvent.OutputObject>;\ngetEvent(key: 'OwnershipTransferred'): TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>;\n\n filters: {\n \n 'OracleDeployed(address,address,uint256)': TypedContractEvent<OracleDeployedEvent.InputTuple, OracleDeployedEvent.OutputTuple, OracleDeployedEvent.OutputObject>;\n OracleDeployed: TypedContractEvent<OracleDeployedEvent.InputTuple, OracleDeployedEvent.OutputTuple, OracleDeployedEvent.OutputObject>;\n \n\n 'OracleStatusChanged(address,address,bool,uint256)': TypedContractEvent<OracleStatusChangedEvent.InputTuple, OracleStatusChangedEvent.OutputTuple, OracleStatusChangedEvent.OutputObject>;\n OracleStatusChanged: TypedContractEvent<OracleStatusChangedEvent.InputTuple, OracleStatusChangedEvent.OutputTuple, OracleStatusChangedEvent.OutputObject>;\n \n\n 'OwnershipTransferred(address,address)': TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>;\n OwnershipTransferred: TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>;\n \n };\n }"],
5
+ "mappings": "AAgDW,IAAUA,MAAV,IAAUA,IAAA,IAYV,IAAUC,MAAV,IAAUA,IAAA,IAYV,IAAUC,MAAV,IAAUA,IAAA",
6
6
  "names": ["OracleDeployedEvent", "OracleStatusChangedEvent", "OwnershipTransferredEvent"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{Contract as t,ContractFactory as n,Interface as c}from"ethers";const e=[{inputs:[{internalType:"address payable",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AmountTransferFailed",type:"error"},{inputs:[{internalType:"uint256",name:"required",type:"uint256"},{internalType:"uint256",name:"provided",type:"uint256"}],name:"ExcessivePayment",type:"error"},{inputs:[{internalType:"uint256",name:"required",type:"uint256"},{internalType:"uint256",name:"provided",type:"uint256"}],name:"InsufficientPayment",type:"error"},{inputs:[],name:"NoStatusChange",type:"error"},{inputs:[{internalType:"address",name:"oracleAddress",type:"address"}],name:"OracleIsNotExist",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"},{inputs:[],name:"ZeroAddressProvided",type:"error"},{inputs:[],name:"ZeroAmountProvided",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oracleAddress",type:"address"},{indexed:!0,internalType:"address",name:"provider",type:"address"},{indexed:!1,internalType:"uint256",name:"timestamp",type:"uint256"}],name:"OracleDeployed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oracleAddress",type:"address"},{indexed:!0,internalType:"address",name:"provider",type:"address"},{indexed:!1,internalType:"bool",name:"newOracleStatus",type:"bool"},{indexed:!1,internalType:"uint256",name:"timestamp",type:"uint256"}],name:"OracleStatusChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{inputs:[],name:"activeOracleCount",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"config",outputs:[{internalType:"uint128",name:"oracleDeployPrice",type:"uint128"},{internalType:"uint8",name:"oracleFactoryShare",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_recommendedUpdateDuration",type:"uint256"},{internalType:"uint256",name:"_dataUpdatePrice",type:"uint256"},{internalType:"bytes",name:"_initialData",type:"bytes"}],name:"deployOracle",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"getAllOracles",outputs:[{internalType:"address[]",name:"",type:"address[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"offset",type:"uint256"},{internalType:"uint256",name:"limit",type:"uint256"}],name:"getAllOracles",outputs:[{internalType:"address[]",name:"",type:"address[]"},{internalType:"uint256",name:"total",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"oracleAddress",type:"address"}],name:"getOracleInfo",outputs:[{internalType:"address",name:"provider",type:"address"},{internalType:"uint64",name:"createdAt",type:"uint64"},{internalType:"bool",name:"isActive",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"provider",type:"address"},{internalType:"uint256",name:"offset",type:"uint256"},{internalType:"uint256",name:"limit",type:"uint256"}],name:"getProviderOracles",outputs:[{internalType:"address[]",name:"",type:"address[]"},{internalType:"uint256",name:"total",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"provider",type:"address"}],name:"getProviderOracles",outputs:[{internalType:"address[]",name:"",type:"address[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"oracleList",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"oracles",outputs:[{internalType:"address",name:"provider",type:"address"},{internalType:"uint64",name:"createdAt",type:"uint64"},{internalType:"bool",name:"isActive",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"providerOracles",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"oracleAddress",type:"address"},{internalType:"uint256",name:"_dataUpdatePrice",type:"uint256"}],name:"setOracleDataUpdatePrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"oracleAddress",type:"address"},{internalType:"bool",name:"_isActive",type:"bool"}],name:"setOracleStatus",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint128",name:"_oracleDeployPrice",type:"uint128"},{internalType:"uint8",name:"_oracleFactoryShare",type:"uint8"}],name:"updateConfig",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],d="0x608060405234801561000f575f5ffd5b506040516147d03803806147d083398181016040528101906100319190610271565b805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a2575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009991906102bc565b60405180910390fd5b6100b18161015260201b60201c565b5060018081905550604051806040016040528066b1a2bc2ec500006fffffffffffffffffffffffffffffffff168152602001601460ff1681525060025f820151815f015f6101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506020820151815f0160106101000a81548160ff021916908360ff160217905550905050506102d5565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61024082610217565b9050919050565b61025081610236565b811461025a575f5ffd5b50565b5f8151905061026b81610247565b92915050565b5f6020828403121561028657610285610213565b5b5f6102938482850161025d565b91505092915050565b5f6102a682610217565b9050919050565b6102b68161029c565b82525050565b5f6020820190506102cf5f8301846102ad565b92915050565b6144ee806102e25f395ff3fe608060405260043610610101575f3560e01c806379502c5511610094578063b6ad659211610063578063b6ad659214610363578063bca86af81461038b578063bfdb6b04146103b5578063ed128a10146103f3578063f2fde38b1461041b5761011a565b806379502c55146102935780638da5cb5b146102be578063979c6167146102e8578063addd5099146103255761011a565b80636269cf8a116100d05780636269cf8a146101da57806365a6bb2914610217578063715018a6146102415780637907fdca146102575761011a565b80631ae11e261461011e578063239aad0d14610146578063565a21c5146101825780635ccba2aa1461019e5761011a565b3661011a575f3411156101185761011734610443565b5b005b5f5ffd5b348015610129575f5ffd5b50610144600480360381019061013f91906119b4565b6104d1565b005b348015610151575f5ffd5b5061016c60048036038101906101679190611a25565b6107fa565b6040516101799190611a5f565b60405180910390f35b61019c60048036038101906101979190611ad9565b610835565b005b3480156101a9575f5ffd5b506101c460048036038101906101bf9190611b4a565b610c4c565b6040516101d19190611a5f565b60405180910390f35b3480156101e5575f5ffd5b5061020060048036038101906101fb9190611b88565b610c94565b60405161020e929190611c9e565b60405180910390f35b348015610222575f5ffd5b5061022b610e6a565b6040516102389190611ccc565b60405180910390f35b34801561024c575f5ffd5b50610255610ef5565b005b348015610262575f5ffd5b5061027d60048036038101906102789190611cec565b610f08565b60405161028a9190611ccc565b60405180910390f35b34801561029e575f5ffd5b506102a7610fd0565b6040516102b5929190611d5c565b60405180910390f35b3480156102c9575f5ffd5b506102d2611008565b6040516102df9190611a5f565b60405180910390f35b3480156102f3575f5ffd5b5061030e60048036038101906103099190611d83565b61102f565b60405161031c929190611c9e565b60405180910390f35b348015610330575f5ffd5b5061034b60048036038101906103469190611cec565b6111c4565b60405161035a93929190611df2565b60405180910390f35b34801561036e575f5ffd5b5061038960048036038101906103849190611e7b565b611228565b005b348015610396575f5ffd5b5061039f61128b565b6040516103ac9190611eb9565b60405180910390f35b3480156103c0575f5ffd5b506103db60048036038101906103d69190611cec565b611291565b6040516103ea93929190611df2565b60405180910390f35b3480156103fe575f5ffd5b5061041960048036038101906104149190611b4a565b61146a565b005b348015610426575f5ffd5b50610441600480360381019061043c9190611cec565b6115ac565b005b5f6002826104519190611f2c565b905061049081733f2e72283f1e29b7cb4402511c41b60fb4900b5773ffffffffffffffffffffffffffffffffffffffff1661163090919063ffffffff16565b6104cd8173f0b5563971c60d2dc4407d1d85c9c3d2fc06726e73ffffffffffffffffffffffffffffffffffffffff1661163090919063ffffffff16565b5050565b6104d9611772565b815f73ffffffffffffffffffffffffffffffffffffffff1660055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036105a857806040517f0be91a0600000000000000000000000000000000000000000000000000000000815260040161059f9190611a5f565b60405180910390fd5b5f60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f01601c9054906101000a900460ff169050821515811515146107c2578260055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f01601c6101000a81548160ff0219169083151502179055508261067a5760045f81548092919061067190611f5c565b91905055610691565b60045f81548092919061068c90611f83565b919050555b508373ffffffffffffffffffffffffffffffffffffffff16634d4061ec846040518263ffffffff1660e01b81526004016106cb9190611fca565b5f604051808303815f87803b1580156106e2575f5ffd5b505af11580156106f4573d5f5f3e3d5ffd5b5050505060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f3208d6325311d4e408c9c30106ec97bd8847ae44431db95b71a86ce6a2a256ca85426040516107b5929190611fe3565b60405180910390a36107f4565b6040517fe79eac9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b60038181548110610809575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61083d6117f9565b60025f015f9054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff163410156108d45760025f015f9054906101000a90046fffffffffffffffffffffffffffffffff16346040517fb99e2ab70000000000000000000000000000000000000000000000000000000081526004016108cb929190612043565b60405180910390fd5b60025f015f9054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1634111561096b5760025f015f9054906101000a90046fffffffffffffffffffffffffffffffff16346040517f08aed925000000000000000000000000000000000000000000000000000000008152600401610962929190612043565b60405180910390fd5b5f3390505f85858585853060405161098290611910565b610991969594939291906120c4565b604051809103905ff0801580156109aa573d5f5f3e3d5ffd5b50905060405180606001604052808373ffffffffffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff1681526020016001151581525060055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151815f0160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506040820151815f01601c6101000a81548160ff02191690831515021790555090505060045f815480929190610ace90611f83565b9190505550600381908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bd734610443565b8173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f342b198a542ed04a4a3ad77cc9d0aa89ce1e4991f0154c69f0da1f551c1ec57e42604051610c349190611eb9565b60405180910390a35050610c4661183f565b50505050565b6006602052815f5260405f208181548110610c65575f80fd5b905f5260205f20015f915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60605f5f60065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20905080805490509150818510610d36575f67ffffffffffffffff811115610cff57610cfe61211e565b5b604051908082528060200260200182016040528015610d2d5781602001602082028036833780820191505090505b50925050610e62565b5f8486610d43919061214b565b905082811115610d51578290505b5f8682610d5e919061217e565b90505f8167ffffffffffffffff811115610d7b57610d7a61211e565b5b604051908082528060200260200182016040528015610da95781602001602082028036833780820191505090505b5090505f5f90505b82811015610e595784818a610dc6919061214b565b81548110610dd757610dd66121b1565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828281518110610e1257610e116121b1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050610db1565b50809550505050505b935093915050565b60606003805480602002602001604051908101604052809291908181526020018280548015610eeb57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610ea2575b5050505050905090565b610efd611772565b610f065f611848565b565b606060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805480602002602001604051908101604052809291908181526020018280548015610fc457602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610f7b575b50505050509050919050565b6002805f015f9054906101000a90046fffffffffffffffffffffffffffffffff1690805f0160109054906101000a900460ff16905082565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60605f6003805490509050808410611091575f67ffffffffffffffff81111561105b5761105a61211e565b5b6040519080825280602002602001820160405280156110895781602001602082028036833780820191505090505b5091506111bd565b5f838561109e919061214b565b9050818111156110ac578190505b5f85826110b9919061217e565b90505f8167ffffffffffffffff8111156110d6576110d561211e565b5b6040519080825280602002602001820160405280156111045781602001602082028036833780820191505090505b5090505f5f90505b828110156111b55760038189611122919061214b565b81548110611133576111326121b1565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682828151811061116e5761116d6121b1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050808060010191505061110c565b508094505050505b9250929050565b6005602052805f5260405f205f91509050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690805f0160149054906101000a900467ffffffffffffffff1690805f01601c9054906101000a900460ff16905083565b611230611772565b8160025f015f6101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055508060025f0160106101000a81548160ff021916908360ff1602179055505050565b60045481565b5f5f5f835f73ffffffffffffffffffffffffffffffffffffffff1660055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361136357806040517f0be91a0600000000000000000000000000000000000000000000000000000000815260040161135a9190611a5f565b60405180910390fd5b5f60055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206040518060600160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020015f820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020015f8201601c9054906101000a900460ff1615151515815250509050805f01518160200151826040015194509450945050509193909250565b611472611772565b815f73ffffffffffffffffffffffffffffffffffffffff1660055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361154157806040517f0be91a060000000000000000000000000000000000000000000000000000000081526004016115389190611a5f565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663118d9330836040518263ffffffff1660e01b815260040161157a9190611eb9565b5f604051808303815f87803b158015611591575f5ffd5b505af11580156115a3573d5f5f3e3d5ffd5b50505050505050565b6115b4611772565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611624575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161161b9190611a5f565b60405180910390fd5b61162d81611848565b50565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611695576040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f81036116ce576040517f8b12710700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff16826040516116f39061220b565b5f6040518083038185875af1925050503d805f811461172d576040519150601f19603f3d011682016040523d82523d5f602084013e611732565b606091505b505090508061176d576040517f3d56f70700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b61177a611909565b73ffffffffffffffffffffffffffffffffffffffff16611798611008565b73ffffffffffffffffffffffffffffffffffffffff16146117f7576117bb611909565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016117ee9190611a5f565b60405180910390fd5b565b600260015403611835576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600181905550565b60018081905550565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b6122998061222083390190565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61194e82611925565b9050919050565b61195e81611944565b8114611968575f5ffd5b50565b5f8135905061197981611955565b92915050565b5f8115159050919050565b6119938161197f565b811461199d575f5ffd5b50565b5f813590506119ae8161198a565b92915050565b5f5f604083850312156119ca576119c961191d565b5b5f6119d78582860161196b565b92505060206119e8858286016119a0565b9150509250929050565b5f819050919050565b611a04816119f2565b8114611a0e575f5ffd5b50565b5f81359050611a1f816119fb565b92915050565b5f60208284031215611a3a57611a3961191d565b5b5f611a4784828501611a11565b91505092915050565b611a5981611944565b82525050565b5f602082019050611a725f830184611a50565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f840112611a9957611a98611a78565b5b8235905067ffffffffffffffff811115611ab657611ab5611a7c565b5b602083019150836001820283011115611ad257611ad1611a80565b5b9250929050565b5f5f5f5f60608587031215611af157611af061191d565b5b5f611afe87828801611a11565b9450506020611b0f87828801611a11565b935050604085013567ffffffffffffffff811115611b3057611b2f611921565b5b611b3c87828801611a84565b925092505092959194509250565b5f5f60408385031215611b6057611b5f61191d565b5b5f611b6d8582860161196b565b9250506020611b7e85828601611a11565b9150509250929050565b5f5f5f60608486031215611b9f57611b9e61191d565b5b5f611bac8682870161196b565b9350506020611bbd86828701611a11565b9250506040611bce86828701611a11565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611c0a81611944565b82525050565b5f611c1b8383611c01565b60208301905092915050565b5f602082019050919050565b5f611c3d82611bd8565b611c478185611be2565b9350611c5283611bf2565b805f5b83811015611c82578151611c698882611c10565b9750611c7483611c27565b925050600181019050611c55565b5085935050505092915050565b611c98816119f2565b82525050565b5f6040820190508181035f830152611cb68185611c33565b9050611cc56020830184611c8f565b9392505050565b5f6020820190508181035f830152611ce48184611c33565b905092915050565b5f60208284031215611d0157611d0061191d565b5b5f611d0e8482850161196b565b91505092915050565b5f6fffffffffffffffffffffffffffffffff82169050919050565b611d3b81611d17565b82525050565b5f60ff82169050919050565b611d5681611d41565b82525050565b5f604082019050611d6f5f830185611d32565b611d7c6020830184611d4d565b9392505050565b5f5f60408385031215611d9957611d9861191d565b5b5f611da685828601611a11565b9250506020611db785828601611a11565b9150509250929050565b5f67ffffffffffffffff82169050919050565b611ddd81611dc1565b82525050565b611dec8161197f565b82525050565b5f606082019050611e055f830186611a50565b611e126020830185611dd4565b611e1f6040830184611de3565b949350505050565b611e3081611d17565b8114611e3a575f5ffd5b50565b5f81359050611e4b81611e27565b92915050565b611e5a81611d41565b8114611e64575f5ffd5b50565b5f81359050611e7581611e51565b92915050565b5f5f60408385031215611e9157611e9061191d565b5b5f611e9e85828601611e3d565b9250506020611eaf85828601611e67565b9150509250929050565b5f602082019050611ecc5f830184611c8f565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611f36826119f2565b9150611f41836119f2565b925082611f5157611f50611ed2565b5b828204905092915050565b5f611f66826119f2565b91505f8203611f7857611f77611eff565b5b600182039050919050565b5f611f8d826119f2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611fbf57611fbe611eff565b5b600182019050919050565b5f602082019050611fdd5f830184611de3565b92915050565b5f604082019050611ff65f830185611de3565b6120036020830184611c8f565b9392505050565b5f819050919050565b5f61202d61202861202384611d17565b61200a565b6119f2565b9050919050565b61203d81612013565b82525050565b5f6040820190506120565f830185612034565b6120636020830184611c8f565b9392505050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f6120a3838561206a565b93506120b083858461207a565b6120b983612088565b840190509392505050565b5f60a0820190506120d75f830189611c8f565b6120e46020830188611c8f565b81810360408301526120f7818688612098565b90506121066060830185611a50565b6121136080830184611a50565b979650505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f612155826119f2565b9150612160836119f2565b925082820190508082111561217857612177611eff565b5b92915050565b5f612188826119f2565b9150612193836119f2565b92508282039050818111156121ab576121aa611eff565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81905092915050565b50565b5f6121f65f836121de565b9150612201826121e8565b5f82019050919050565b5f612215826121eb565b915081905091905056fe60c06040526001805f6101000a81548160ff021916908315150217905550348015610028575f5ffd5b50604051612299380380612299833981810160405281019061004a919061052f565b60015f819055505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806100b657505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156100ed576040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff163b1461013d576040517f7305bdbd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8173ffffffffffffffffffffffffffffffffffffffff163b0361018d576040517f14b9535000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505083600381905550426004819055508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508460058190555061021c8360045461022660201b60201c565b50505050506109ff565b5f825103610260576040517f23e6b99500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611400825111156102ad5781516114006040517f711f64300000000000000000000000000000000000000000000000000000000081526004016102a49291906105d1565b60405180910390fd5b604051806040016040528083815260200182815250600660ce54606481106102d8576102d76105f8565b5b600202015f820151815f0190816102ef919061082c565b50602082015181600101559050506064600160ce5461030e9190610928565b6103189190610988565b60ce81905550606460cf5410156103415760cf5f81548092919061033b906109b8565b91905055505b8160029081610350919061082c565b505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b61037881610366565b8114610382575f5ffd5b50565b5f815190506103938161036f565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6103e7826103a1565b810181811067ffffffffffffffff82111715610406576104056103b1565b5b80604052505050565b5f610418610355565b905061042482826103de565b919050565b5f67ffffffffffffffff821115610443576104426103b1565b5b61044c826103a1565b9050602081019050919050565b8281835e5f83830152505050565b5f61047961047484610429565b61040f565b9050828152602081018484840111156104955761049461039d565b5b6104a0848285610459565b509392505050565b5f82601f8301126104bc576104bb610399565b5b81516104cc848260208601610467565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6104fe826104d5565b9050919050565b61050e816104f4565b8114610518575f5ffd5b50565b5f8151905061052981610505565b92915050565b5f5f5f5f5f60a086880312156105485761054761035e565b5b5f61055588828901610385565b955050602061056688828901610385565b945050604086015167ffffffffffffffff81111561058757610586610362565b5b610593888289016104a8565b93505060606105a48882890161051b565b92505060806105b58882890161051b565b9150509295509295909350565b6105cb81610366565b82525050565b5f6040820190506105e45f8301856105c2565b6105f160208301846105c2565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061067357607f821691505b6020821081036106865761068561062f565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026106e87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826106ad565b6106f286836106ad565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61072d61072861072384610366565b61070a565b610366565b9050919050565b5f819050919050565b61074683610713565b61075a61075282610734565b8484546106b9565b825550505050565b5f5f905090565b610771610762565b61077c81848461073d565b505050565b5b8181101561079f576107945f82610769565b600181019050610782565b5050565b601f8211156107e4576107b58161068c565b6107be8461069e565b810160208510156107cd578190505b6107e16107d98561069e565b830182610781565b50505b505050565b5f82821c905092915050565b5f6108045f19846008026107e9565b1980831691505092915050565b5f61081c83836107f5565b9150826002028217905092915050565b61083582610625565b67ffffffffffffffff81111561084e5761084d6103b1565b5b610858825461065c565b6108638282856107a3565b5f60209050601f831160018114610894575f8415610882578287015190505b61088c8582610811565b8655506108f3565b601f1984166108a28661068c565b5f5b828110156108c9578489015182556001820191506020850194506020810190506108a4565b868310156108e657848901516108e2601f8916826107f5565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61093282610366565b915061093d83610366565b9250828201905080821115610955576109546108fb565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61099282610366565b915061099d83610366565b9250826109ad576109ac61095b565b5b828206905092915050565b5f6109c282610366565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036109f4576109f36108fb565b5b600182019050919050565b60805160a051611848610a515f395f81816103bb0152818161054f01528181610853015281816109ec0152610a7a01525f818161039701528181610529015281816106f101526107cd01526118485ff3fe6080604052600436106100f2575f3560e01c80633bc5de3011610089578063a7a38f0b11610058578063a7a38f0b146102ea578063b334b63414610327578063bb4013d31461034f578063c45a01551461036b576100f2565b80633bc5de3014610244578063483d45bd1461026e5780634d4061ec146102985780639c5f9481146102c0576100f2565b806322fce66f116100c557806322fce66f1461019c5780632c20dc89146101c65780632fbf8d2a146101f05780633a9c9ffc1461021a576100f2565b8063085d4883146100f6578063118d93301461012057806314bcec9f1461014857806322f3e2d414610172575b5f5ffd5b348015610101575f5ffd5b5061010a610395565b6040516101179190610e70565b60405180910390f35b34801561012b575f5ffd5b5061014660048036038101906101419190610ec4565b6103b9565b005b348015610153575f5ffd5b5061015c610448565b6040516101699190610efe565b60405180910390f35b34801561017d575f5ffd5b5061018661044e565b6040516101939190610f31565b60405180910390f35b3480156101a7575f5ffd5b506101b0610460565b6040516101bd9190610efe565b60405180910390f35b3480156101d1575f5ffd5b506101da610466565b6040516101e79190610efe565b60405180910390f35b3480156101fb575f5ffd5b5061020461046c565b6040516102119190610efe565b60405180910390f35b348015610225575f5ffd5b5061022e610472565b60405161023b9190610efe565b60405180910390f35b34801561024f575f5ffd5b50610258610478565b6040516102659190610fba565b60405180910390f35b348015610279575f5ffd5b50610282610526565b60405161028f9190610e70565b60405180910390f35b3480156102a3575f5ffd5b506102be60048036038101906102b99190611004565b61054d565b005b3480156102cb575f5ffd5b506102d46105ee565b6040516102e19190610fba565b60405180910390f35b3480156102f5575f5ffd5b50610310600480360381019061030b9190610ec4565b610642565b60405161031e92919061102f565b60405180910390f35b348015610332575f5ffd5b5061034d60048036038101906103489190610ec4565b6106ef565b005b610369600480360381019061036491906110be565b61077e565b005b348015610376575f5ffd5b5061037f610a78565b60405161038c9190611164565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461043e576040517f0234e5ea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060038190555050565b60045481565b60015f9054906101000a900460ff1681565b61140081565b60035481565b60055481565b60cf5481565b606060015f9054906101000a900460ff166104bf576040517fe8eb59c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600554600454426104d091906111aa565b1115610519576004546005546040517f72fc46a70000000000000000000000000000000000000000000000000000000081526004016105109291906111dd565b60405180910390fd5b610521610a9c565b905090565b5f7f0000000000000000000000000000000000000000000000000000000000000000905090565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105d2576040517f0234e5ea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060015f6101000a81548160ff02191690831515021790555050565b606060015f9054906101000a900460ff16610635576040517fe8eb59c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61063d610a9c565b905090565b60068160648110610651575f80fd5b600202015f91509050805f01805461066890611231565b80601f016020809104026020016040519081016040528092919081815260200182805461069490611231565b80156106df5780601f106106b6576101008083540402835291602001916106df565b820191905f5260205f20905b8154815290600101906020018083116106c257829003601f168201915b5050505050908060010154905082565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610774576040517f7a4443f900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060058190555050565b610786610b73565b60015f9054906101000a900460ff166107cb576040517fe8eb59c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610850576040517f7a4443f900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166379502c556040518163ffffffff1660e01b81526004016040805180830381865afa1580156108b9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108dd91906112dc565b60ff169150505f6064826003546108f4919061131a565b6108fe9190611388565b9050803410156109475780346040517fb99e2ab700000000000000000000000000000000000000000000000000000000815260040161093e9291906111dd565b60405180910390fd5b8034111561098e5780346040517f08aed9250000000000000000000000000000000000000000000000000000000081526004016109859291906111dd565b60405180910390fd5b5f429050806004819055506109e685858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505082610bb7565b610a2f827f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610ce690919063ffffffff16565b7f60badeea04f31d7e2d2b86b618aaddc0a3239fa5b361b407b25d3f1615d577bf600282604051610a6192919061144b565b60405180910390a1505050610a74610e28565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60605f60028054610aac90611231565b905003610ae5576040517f779619da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028054610af290611231565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1e90611231565b8015610b695780601f10610b4057610100808354040283529160200191610b69565b820191905f5260205f20905b815481529060010190602001808311610b4c57829003601f168201915b5050505050905090565b60025f5403610bae576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025f81905550565b5f825103610bf1576040517f23e6b99500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61140082511115610c3e5781516114006040517f711f6430000000000000000000000000000000000000000000000000000000008152600401610c359291906111dd565b60405180910390fd5b604051806040016040528083815260200182815250600660ce5460648110610c6957610c68611479565b5b600202015f820151815f019081610c809190611658565b50602082015181600101559050506064600160ce54610c9f9190611727565b610ca9919061175a565b60ce81905550606460cf541015610cd25760cf5f815480929190610ccc9061178a565b91905055505b8160029081610ce19190611658565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d4b576040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8103610d84576040517f8b12710700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682604051610da9906117fe565b5f6040518083038185875af1925050503d805f8114610de3576040519150601f19603f3d011682016040523d82523d5f602084013e610de8565b606091505b5050905080610e23576040517f3d56f70700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60015f81905550565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610e5a82610e31565b9050919050565b610e6a81610e50565b82525050565b5f602082019050610e835f830184610e61565b92915050565b5f5ffd5b5f5ffd5b5f819050919050565b610ea381610e91565b8114610ead575f5ffd5b50565b5f81359050610ebe81610e9a565b92915050565b5f60208284031215610ed957610ed8610e89565b5b5f610ee684828501610eb0565b91505092915050565b610ef881610e91565b82525050565b5f602082019050610f115f830184610eef565b92915050565b5f8115159050919050565b610f2b81610f17565b82525050565b5f602082019050610f445f830184610f22565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610f8c82610f4a565b610f968185610f54565b9350610fa6818560208601610f64565b610faf81610f72565b840191505092915050565b5f6020820190508181035f830152610fd28184610f82565b905092915050565b610fe381610f17565b8114610fed575f5ffd5b50565b5f81359050610ffe81610fda565b92915050565b5f6020828403121561101957611018610e89565b5b5f61102684828501610ff0565b91505092915050565b5f6040820190508181035f8301526110478185610f82565b90506110566020830184610eef565b9392505050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261107e5761107d61105d565b5b8235905067ffffffffffffffff81111561109b5761109a611061565b5b6020830191508360018202830111156110b7576110b6611065565b5b9250929050565b5f5f602083850312156110d4576110d3610e89565b5b5f83013567ffffffffffffffff8111156110f1576110f0610e8d565b5b6110fd85828601611069565b92509250509250929050565b5f819050919050565b5f61112c61112761112284610e31565b611109565b610e31565b9050919050565b5f61113d82611112565b9050919050565b5f61114e82611133565b9050919050565b61115e81611144565b82525050565b5f6020820190506111775f830184611155565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6111b482610e91565b91506111bf83610e91565b92508282039050818111156111d7576111d661117d565b5b92915050565b5f6040820190506111f05f830185610eef565b6111fd6020830184610eef565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061124857607f821691505b60208210810361125b5761125a611204565b5b50919050565b5f6fffffffffffffffffffffffffffffffff82169050919050565b61128581611261565b811461128f575f5ffd5b50565b5f815190506112a08161127c565b92915050565b5f60ff82169050919050565b6112bb816112a6565b81146112c5575f5ffd5b50565b5f815190506112d6816112b2565b92915050565b5f5f604083850312156112f2576112f1610e89565b5b5f6112ff85828601611292565b9250506020611310858286016112c8565b9150509250929050565b5f61132482610e91565b915061132f83610e91565b925082820261133d81610e91565b915082820484148315176113545761135361117d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61139282610e91565b915061139d83610e91565b9250826113ad576113ac61135b565b5b828204905092915050565b5f819050815f5260205f209050919050565b5f81546113d681611231565b6113e08186610f54565b9450600182165f81146113fa576001811461141057611442565b60ff198316865281151560200286019350611442565b611419856113b8565b5f5b8381101561143a5781548189015260018201915060208101905061141b565b808801955050505b50505092915050565b5f6040820190508181035f83015261146381856113ca565b90506114726020830184610eef565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261151d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826114e2565b61152786836114e2565b95508019841693508086168417925050509392505050565b5f61155961155461154f84610e91565b611109565b610e91565b9050919050565b5f819050919050565b6115728361153f565b61158661157e82611560565b8484546114ee565b825550505050565b5f5f905090565b61159d61158e565b6115a8818484611569565b505050565b5b818110156115cb576115c05f82611595565b6001810190506115ae565b5050565b601f821115611610576115e1816113b8565b6115ea846114d3565b810160208510156115f9578190505b61160d611605856114d3565b8301826115ad565b50505b505050565b5f82821c905092915050565b5f6116305f1984600802611615565b1980831691505092915050565b5f6116488383611621565b9150826002028217905092915050565b61166182610f4a565b67ffffffffffffffff81111561167a576116796114a6565b5b6116848254611231565b61168f8282856115cf565b5f60209050601f8311600181146116c0575f84156116ae578287015190505b6116b8858261163d565b86555061171f565b601f1984166116ce866113b8565b5f5b828110156116f5578489015182556001820191506020850194506020810190506116d0565b86831015611712578489015161170e601f891682611621565b8355505b6001600288020188555050505b505050505050565b5f61173182610e91565b915061173c83610e91565b92508282019050808211156117545761175361117d565b5b92915050565b5f61176482610e91565b915061176f83610e91565b92508261177f5761177e61135b565b5b828206905092915050565b5f61179482610e91565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036117c6576117c561117d565b5b600182019050919050565b5f81905092915050565b50565b5f6117e95f836117d1565b91506117f4826117db565b5f82019050919050565b5f611808826117de565b915081905091905056fea264697066735822122014107d58dae22172c21d0f5e6e8da206265291680004b9ae5e495511e2e29e7764736f6c634300081e0033a26469706673582212204e0b3d702e3a92901379cd934b92b550c0cecdab4b8f6605bf4857640a76fbfe64736f6c634300081e0033",r=a=>a.length>1;class p extends n{constructor(...f){r(f)?super(...f):super(e,d,f[0])}getDeployTransaction(f,b){return super.getDeployTransaction(f,b||{})}deploy(f,b){return super.deploy(f,b||{})}connect(f){return super.connect(f)}static bytecode=d;static abi=e;static createInterface(){return new c(e)}attach(f){return super.attach(f)}static connect(f,b){return new t(f,e,b)}}export{p as OracleFactory__factory};
1
+ import{Contract as t,ContractFactory as n,Interface as c}from"ethers";const e=[{inputs:[{internalType:"address payable",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AmountTransferFailed",type:"error"},{inputs:[{internalType:"uint256",name:"required",type:"uint256"},{internalType:"uint256",name:"provided",type:"uint256"}],name:"ExcessivePayment",type:"error"},{inputs:[{internalType:"uint256",name:"required",type:"uint256"},{internalType:"uint256",name:"provided",type:"uint256"}],name:"InsufficientPayment",type:"error"},{inputs:[],name:"NoStatusChange",type:"error"},{inputs:[{internalType:"address",name:"oracleAddress",type:"address"}],name:"OracleIsNotExist",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"},{inputs:[],name:"ZeroAddressProvided",type:"error"},{inputs:[],name:"ZeroAmountProvided",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oracleAddress",type:"address"},{indexed:!0,internalType:"address",name:"provider",type:"address"},{indexed:!1,internalType:"uint256",name:"timestamp",type:"uint256"}],name:"OracleDeployed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oracleAddress",type:"address"},{indexed:!0,internalType:"address",name:"provider",type:"address"},{indexed:!1,internalType:"bool",name:"newOracleStatus",type:"bool"},{indexed:!1,internalType:"uint256",name:"timestamp",type:"uint256"}],name:"OracleStatusChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{inputs:[],name:"activeOracleCount",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"config",outputs:[{internalType:"uint128",name:"oracleDeployPrice",type:"uint128"},{internalType:"uint8",name:"oracleFactoryShare",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_recommendedUpdateDuration",type:"uint256"},{internalType:"uint256",name:"_dataUpdatePrice",type:"uint256"},{internalType:"bytes",name:"_initialData",type:"bytes"}],name:"deployOracle",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"offset",type:"uint256"},{internalType:"uint256",name:"limit",type:"uint256"}],name:"getAllOracles",outputs:[{internalType:"address[]",name:"",type:"address[]"},{internalType:"uint256",name:"total",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"oracleAddress",type:"address"}],name:"getOracleInfo",outputs:[{internalType:"address",name:"provider",type:"address"},{internalType:"uint64",name:"createdAt",type:"uint64"},{internalType:"bool",name:"isActive",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"provider",type:"address"},{internalType:"uint256",name:"offset",type:"uint256"},{internalType:"uint256",name:"limit",type:"uint256"}],name:"getProviderOracles",outputs:[{internalType:"address[]",name:"",type:"address[]"},{internalType:"uint256",name:"total",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"oracleList",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"oracles",outputs:[{internalType:"address",name:"provider",type:"address"},{internalType:"uint64",name:"createdAt",type:"uint64"},{internalType:"bool",name:"isActive",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"providerOracles",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"oracleAddress",type:"address"},{internalType:"uint256",name:"_dataUpdatePrice",type:"uint256"}],name:"setOracleDataUpdatePrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"oracleAddress",type:"address"},{internalType:"bool",name:"_isActive",type:"bool"}],name:"setOracleStatus",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint128",name:"_oracleDeployPrice",type:"uint128"},{internalType:"uint8",name:"_oracleFactoryShare",type:"uint8"}],name:"updateConfig",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"oracleAddress",type:"address"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"updateOracleData",outputs:[],stateMutability:"payable",type:"function"},{stateMutability:"payable",type:"receive"}],d="0x608060405234801561000f575f5ffd5b5060405161485e38038061485e83398181016040528101906100319190610271565b805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a2575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009991906102bc565b60405180910390fd5b6100b18161015260201b60201c565b5060018081905550604051806040016040528066b1a2bc2ec500006fffffffffffffffffffffffffffffffff168152602001601460ff1681525060025f820151815f015f6101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506020820151815f0160106101000a81548160ff021916908360ff160217905550905050506102d5565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61024082610217565b9050919050565b61025081610236565b811461025a575f5ffd5b50565b5f8151905061026b81610247565b92915050565b5f6020828403121561028657610285610213565b5b5f6102938482850161025d565b91505092915050565b5f6102a682610217565b9050919050565b6102b68161029c565b82525050565b5f6020820190506102cf5f8301846102ad565b92915050565b61457c806102e25f395ff3fe6080604052600436106100f6575f3560e01c8063979c616711610089578063bfdb6b0411610058578063bfdb6b0414610344578063c83dae3414610382578063ed128a101461039e578063f2fde38b146103c65761010f565b8063979c616714610277578063addd5099146102b4578063b6ad6592146102f2578063bca86af81461031a5761010f565b80636269cf8a116100c55780636269cf8a146101cf578063715018a61461020c57806379502c55146102225780638da5cb5b1461024d5761010f565b80631ae11e2614610113578063239aad0d1461013b578063565a21c5146101775780635ccba2aa146101935761010f565b3661010f575f34111561010d5761010c346103ee565b5b005b5f5ffd5b34801561011e575f5ffd5b5061013960048036038101906101349190611973565b61048c565b005b348015610146575f5ffd5b50610161600480360381019061015c91906119e4565b6107b5565b60405161016e9190611a1e565b60405180910390f35b610191600480360381019061018c9190611a98565b6107f0565b005b34801561019e575f5ffd5b506101b960048036038101906101b49190611b09565b610c07565b6040516101c69190611a1e565b60405180910390f35b3480156101da575f5ffd5b506101f560048036038101906101f09190611b47565b610c4f565b604051610203929190611c5d565b60405180910390f35b348015610217575f5ffd5b50610220610e25565b005b34801561022d575f5ffd5b50610236610e38565b604051610244929190611cd0565b60405180910390f35b348015610258575f5ffd5b50610261610e70565b60405161026e9190611a1e565b60405180910390f35b348015610282575f5ffd5b5061029d60048036038101906102989190611cf7565b610e97565b6040516102ab929190611c5d565b60405180910390f35b3480156102bf575f5ffd5b506102da60048036038101906102d59190611d35565b61102c565b6040516102e993929190611d91565b60405180910390f35b3480156102fd575f5ffd5b5061031860048036038101906103139190611e1a565b611090565b005b348015610325575f5ffd5b5061032e6110f3565b60405161033b9190611e58565b60405180910390f35b34801561034f575f5ffd5b5061036a60048036038101906103659190611d35565b6110f9565b60405161037993929190611d91565b60405180910390f35b61039c60048036038101906103979190611e71565b6112d2565b005b3480156103a9575f5ffd5b506103c460048036038101906103bf9190611b09565b611429565b005b3480156103d1575f5ffd5b506103ec60048036038101906103e79190611d35565b61156b565b005b5f6002826103fc9190611f28565b90505f818361040b9190611f58565b905061044a82733f2e72283f1e29b7cb4402511c41b60fb4900b5773ffffffffffffffffffffffffffffffffffffffff166115ef90919063ffffffff16565b6104878173f0b5563971c60d2dc4407d1d85c9c3d2fc06726e73ffffffffffffffffffffffffffffffffffffffff166115ef90919063ffffffff16565b505050565b610494611731565b815f73ffffffffffffffffffffffffffffffffffffffff1660055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361056357806040517f0be91a0600000000000000000000000000000000000000000000000000000000815260040161055a9190611a1e565b60405180910390fd5b5f60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f01601c9054906101000a900460ff1690508215158115151461077d578260055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f01601c6101000a81548160ff021916908315150217905550826106355760045f81548092919061062c90611f8b565b9190505561064c565b60045f81548092919061064790611fb2565b919050555b508373ffffffffffffffffffffffffffffffffffffffff16634d4061ec846040518263ffffffff1660e01b81526004016106869190611ff9565b5f604051808303815f87803b15801561069d575f5ffd5b505af11580156106af573d5f5f3e3d5ffd5b5050505060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f3208d6325311d4e408c9c30106ec97bd8847ae44431db95b71a86ce6a2a256ca8542604051610770929190612012565b60405180910390a36107af565b6040517fe79eac9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b600381815481106107c4575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107f86117b8565b60025f015f9054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1634101561088f5760025f015f9054906101000a90046fffffffffffffffffffffffffffffffff16346040517fb99e2ab7000000000000000000000000000000000000000000000000000000008152600401610886929190612072565b60405180910390fd5b60025f015f9054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff163411156109265760025f015f9054906101000a90046fffffffffffffffffffffffffffffffff16346040517f08aed92500000000000000000000000000000000000000000000000000000000815260040161091d929190612072565b60405180910390fd5b5f3390505f85858585853060405161093d906118cf565b61094c969594939291906120f3565b604051809103905ff080158015610965573d5f5f3e3d5ffd5b50905060405180606001604052808373ffffffffffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff1681526020016001151581525060055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151815f0160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506040820151815f01601c6101000a81548160ff02191690831515021790555090505060045f815480929190610a8990611fb2565b9190505550600381908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b92346103ee565b8173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f342b198a542ed04a4a3ad77cc9d0aa89ce1e4991f0154c69f0da1f551c1ec57e42604051610bef9190611e58565b60405180910390a35050610c016117fe565b50505050565b6006602052815f5260405f208181548110610c20575f80fd5b905f5260205f20015f915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60605f5f60065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20905080805490509150818510610cf1575f67ffffffffffffffff811115610cba57610cb961214d565b5b604051908082528060200260200182016040528015610ce85781602001602082028036833780820191505090505b50925050610e1d565b5f8486610cfe919061217a565b905082811115610d0c578290505b5f8682610d199190611f58565b90505f8167ffffffffffffffff811115610d3657610d3561214d565b5b604051908082528060200260200182016040528015610d645781602001602082028036833780820191505090505b5090505f5f90505b82811015610e145784818a610d81919061217a565b81548110610d9257610d916121ad565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828281518110610dcd57610dcc6121ad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050610d6c565b50809550505050505b935093915050565b610e2d611731565b610e365f611807565b565b6002805f015f9054906101000a90046fffffffffffffffffffffffffffffffff1690805f0160109054906101000a900460ff16905082565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60605f6003805490509050808410610ef9575f67ffffffffffffffff811115610ec357610ec261214d565b5b604051908082528060200260200182016040528015610ef15781602001602082028036833780820191505090505b509150611025565b5f8385610f06919061217a565b905081811115610f14578190505b5f8582610f219190611f58565b90505f8167ffffffffffffffff811115610f3e57610f3d61214d565b5b604051908082528060200260200182016040528015610f6c5781602001602082028036833780820191505090505b5090505f5f90505b8281101561101d5760038189610f8a919061217a565b81548110610f9b57610f9a6121ad565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828281518110610fd657610fd56121ad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050610f74565b508094505050505b9250929050565b6005602052805f5260405f205f91509050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690805f0160149054906101000a900467ffffffffffffffff1690805f01601c9054906101000a900460ff16905083565b611098611731565b8160025f015f6101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055508060025f0160106101000a81548160ff021916908360ff1602179055505050565b60045481565b5f5f5f835f73ffffffffffffffffffffffffffffffffffffffff1660055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036111cb57806040517f0be91a060000000000000000000000000000000000000000000000000000000081526004016111c29190611a1e565b60405180910390fd5b5f60055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206040518060600160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020015f820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020015f8201601c9054906101000a900460ff1615151515815250509050805f01518160200151826040015194509450945050509193909250565b6112da611731565b6112e26117b8565b825f73ffffffffffffffffffffffffffffffffffffffff1660055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036113b157806040517f0be91a060000000000000000000000000000000000000000000000000000000081526004016113a89190611a1e565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff1663bb4013d33485856040518463ffffffff1660e01b81526004016113ed9291906121da565b5f604051808303818588803b158015611404575f5ffd5b505af1158015611416573d5f5f3e3d5ffd5b5050505050506114246117fe565b505050565b611431611731565b815f73ffffffffffffffffffffffffffffffffffffffff1660055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361150057806040517f0be91a060000000000000000000000000000000000000000000000000000000081526004016114f79190611a1e565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663118d9330836040518263ffffffff1660e01b81526004016115399190611e58565b5f604051808303815f87803b158015611550575f5ffd5b505af1158015611562573d5f5f3e3d5ffd5b50505050505050565b611573611731565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115e3575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016115da9190611a1e565b60405180910390fd5b6115ec81611807565b50565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611654576040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f810361168d576040517f8b12710700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff16826040516116b290612229565b5f6040518083038185875af1925050503d805f81146116ec576040519150601f19603f3d011682016040523d82523d5f602084013e6116f1565b606091505b505090508061172c576040517f3d56f70700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b6117396118c8565b73ffffffffffffffffffffffffffffffffffffffff16611757610e70565b73ffffffffffffffffffffffffffffffffffffffff16146117b65761177a6118c8565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016117ad9190611a1e565b60405180910390fd5b565b6002600154036117f4576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600181905550565b60018081905550565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b6123098061223e83390190565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61190d826118e4565b9050919050565b61191d81611903565b8114611927575f5ffd5b50565b5f8135905061193881611914565b92915050565b5f8115159050919050565b6119528161193e565b811461195c575f5ffd5b50565b5f8135905061196d81611949565b92915050565b5f5f60408385031215611989576119886118dc565b5b5f6119968582860161192a565b92505060206119a78582860161195f565b9150509250929050565b5f819050919050565b6119c3816119b1565b81146119cd575f5ffd5b50565b5f813590506119de816119ba565b92915050565b5f602082840312156119f9576119f86118dc565b5b5f611a06848285016119d0565b91505092915050565b611a1881611903565b82525050565b5f602082019050611a315f830184611a0f565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f840112611a5857611a57611a37565b5b8235905067ffffffffffffffff811115611a7557611a74611a3b565b5b602083019150836001820283011115611a9157611a90611a3f565b5b9250929050565b5f5f5f5f60608587031215611ab057611aaf6118dc565b5b5f611abd878288016119d0565b9450506020611ace878288016119d0565b935050604085013567ffffffffffffffff811115611aef57611aee6118e0565b5b611afb87828801611a43565b925092505092959194509250565b5f5f60408385031215611b1f57611b1e6118dc565b5b5f611b2c8582860161192a565b9250506020611b3d858286016119d0565b9150509250929050565b5f5f5f60608486031215611b5e57611b5d6118dc565b5b5f611b6b8682870161192a565b9350506020611b7c868287016119d0565b9250506040611b8d868287016119d0565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611bc981611903565b82525050565b5f611bda8383611bc0565b60208301905092915050565b5f602082019050919050565b5f611bfc82611b97565b611c068185611ba1565b9350611c1183611bb1565b805f5b83811015611c41578151611c288882611bcf565b9750611c3383611be6565b925050600181019050611c14565b5085935050505092915050565b611c57816119b1565b82525050565b5f6040820190508181035f830152611c758185611bf2565b9050611c846020830184611c4e565b9392505050565b5f6fffffffffffffffffffffffffffffffff82169050919050565b611caf81611c8b565b82525050565b5f60ff82169050919050565b611cca81611cb5565b82525050565b5f604082019050611ce35f830185611ca6565b611cf06020830184611cc1565b9392505050565b5f5f60408385031215611d0d57611d0c6118dc565b5b5f611d1a858286016119d0565b9250506020611d2b858286016119d0565b9150509250929050565b5f60208284031215611d4a57611d496118dc565b5b5f611d578482850161192a565b91505092915050565b5f67ffffffffffffffff82169050919050565b611d7c81611d60565b82525050565b611d8b8161193e565b82525050565b5f606082019050611da45f830186611a0f565b611db16020830185611d73565b611dbe6040830184611d82565b949350505050565b611dcf81611c8b565b8114611dd9575f5ffd5b50565b5f81359050611dea81611dc6565b92915050565b611df981611cb5565b8114611e03575f5ffd5b50565b5f81359050611e1481611df0565b92915050565b5f5f60408385031215611e3057611e2f6118dc565b5b5f611e3d85828601611ddc565b9250506020611e4e85828601611e06565b9150509250929050565b5f602082019050611e6b5f830184611c4e565b92915050565b5f5f5f60408486031215611e8857611e876118dc565b5b5f611e958682870161192a565b935050602084013567ffffffffffffffff811115611eb657611eb56118e0565b5b611ec286828701611a43565b92509250509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611f32826119b1565b9150611f3d836119b1565b925082611f4d57611f4c611ece565b5b828204905092915050565b5f611f62826119b1565b9150611f6d836119b1565b9250828203905081811115611f8557611f84611efb565b5b92915050565b5f611f95826119b1565b91505f8203611fa757611fa6611efb565b5b600182039050919050565b5f611fbc826119b1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611fee57611fed611efb565b5b600182019050919050565b5f60208201905061200c5f830184611d82565b92915050565b5f6040820190506120255f830185611d82565b6120326020830184611c4e565b9392505050565b5f819050919050565b5f61205c61205761205284611c8b565b612039565b6119b1565b9050919050565b61206c81612042565b82525050565b5f6040820190506120855f830185612063565b6120926020830184611c4e565b9392505050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f6120d28385612099565b93506120df8385846120a9565b6120e8836120b7565b840190509392505050565b5f60a0820190506121065f830189611c4e565b6121136020830188611c4e565b81810360408301526121268186886120c7565b90506121356060830185611a0f565b6121426080830184611a0f565b979650505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f612184826119b1565b915061218f836119b1565b92508282019050808211156121a7576121a6611efb565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6020820190508181035f8301526121f38184866120c7565b90509392505050565b5f81905092915050565b50565b5f6122145f836121fc565b915061221f82612206565b5f82019050919050565b5f61223382612209565b915081905091905056fe60c06040526001805f6101000a81548160ff021916908315150217905550348015610028575f5ffd5b50604051612309380380612309833981810160405281019061004a919061052f565b60015f819055505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806100b657505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156100ed576040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff163b1461013d576040517f7305bdbd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8173ffffffffffffffffffffffffffffffffffffffff163b0361018d576040517f14b9535000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505083600381905550426004819055508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508460058190555061021c8360045461022660201b60201c565b50505050506109ff565b5f825103610260576040517f23e6b99500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611400825111156102ad5781516114006040517f711f64300000000000000000000000000000000000000000000000000000000081526004016102a49291906105d1565b60405180910390fd5b604051806040016040528083815260200182815250600660ce54606481106102d8576102d76105f8565b5b600202015f820151815f0190816102ef919061082c565b50602082015181600101559050506064600160ce5461030e9190610928565b6103189190610988565b60ce81905550606460cf5410156103415760cf5f81548092919061033b906109b8565b91905055505b8160029081610350919061082c565b505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b61037881610366565b8114610382575f5ffd5b50565b5f815190506103938161036f565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6103e7826103a1565b810181811067ffffffffffffffff82111715610406576104056103b1565b5b80604052505050565b5f610418610355565b905061042482826103de565b919050565b5f67ffffffffffffffff821115610443576104426103b1565b5b61044c826103a1565b9050602081019050919050565b8281835e5f83830152505050565b5f61047961047484610429565b61040f565b9050828152602081018484840111156104955761049461039d565b5b6104a0848285610459565b509392505050565b5f82601f8301126104bc576104bb610399565b5b81516104cc848260208601610467565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6104fe826104d5565b9050919050565b61050e816104f4565b8114610518575f5ffd5b50565b5f8151905061052981610505565b92915050565b5f5f5f5f5f60a086880312156105485761054761035e565b5b5f61055588828901610385565b955050602061056688828901610385565b945050604086015167ffffffffffffffff81111561058757610586610362565b5b610593888289016104a8565b93505060606105a48882890161051b565b92505060806105b58882890161051b565b9150509295509295909350565b6105cb81610366565b82525050565b5f6040820190506105e45f8301856105c2565b6105f160208301846105c2565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061067357607f821691505b6020821081036106865761068561062f565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026106e87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826106ad565b6106f286836106ad565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61072d61072861072384610366565b61070a565b610366565b9050919050565b5f819050919050565b61074683610713565b61075a61075282610734565b8484546106b9565b825550505050565b5f5f905090565b610771610762565b61077c81848461073d565b505050565b5b8181101561079f576107945f82610769565b600181019050610782565b5050565b601f8211156107e4576107b58161068c565b6107be8461069e565b810160208510156107cd578190505b6107e16107d98561069e565b830182610781565b50505b505050565b5f82821c905092915050565b5f6108045f19846008026107e9565b1980831691505092915050565b5f61081c83836107f5565b9150826002028217905092915050565b61083582610625565b67ffffffffffffffff81111561084e5761084d6103b1565b5b610858825461065c565b6108638282856107a3565b5f60209050601f831160018114610894575f8415610882578287015190505b61088c8582610811565b8655506108f3565b601f1984166108a28661068c565b5f5b828110156108c9578489015182556001820191506020850194506020810190506108a4565b868310156108e657848901516108e2601f8916826107f5565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61093282610366565b915061093d83610366565b9250828201905080821115610955576109546108fb565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61099282610366565b915061099d83610366565b9250826109ad576109ac61095b565b5b828206905092915050565b5f6109c282610366565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036109f4576109f36108fb565b5b600182019050919050565b60805160a0516118b1610a585f395f81816103bb0152818161054f015281816107cd01528181610853015281816109d40152610ae301525f818161039701528181610529015281816106f10152610a2901526118b15ff3fe6080604052600436106100f2575f3560e01c80633bc5de3011610089578063a7a38f0b11610058578063a7a38f0b146102ea578063b334b63414610327578063bb4013d31461034f578063c45a01551461036b576100f2565b80633bc5de3014610244578063483d45bd1461026e5780634d4061ec146102985780639c5f9481146102c0576100f2565b806322fce66f116100c557806322fce66f1461019c5780632c20dc89146101c65780632fbf8d2a146101f05780633a9c9ffc1461021a576100f2565b8063085d4883146100f6578063118d93301461012057806314bcec9f1461014857806322f3e2d414610172575b5f5ffd5b348015610101575f5ffd5b5061010a610395565b6040516101179190610ed9565b60405180910390f35b34801561012b575f5ffd5b5061014660048036038101906101419190610f2d565b6103b9565b005b348015610153575f5ffd5b5061015c610448565b6040516101699190610f67565b60405180910390f35b34801561017d575f5ffd5b5061018661044e565b6040516101939190610f9a565b60405180910390f35b3480156101a7575f5ffd5b506101b0610460565b6040516101bd9190610f67565b60405180910390f35b3480156101d1575f5ffd5b506101da610466565b6040516101e79190610f67565b60405180910390f35b3480156101fb575f5ffd5b5061020461046c565b6040516102119190610f67565b60405180910390f35b348015610225575f5ffd5b5061022e610472565b60405161023b9190610f67565b60405180910390f35b34801561024f575f5ffd5b50610258610478565b6040516102659190611023565b60405180910390f35b348015610279575f5ffd5b50610282610526565b60405161028f9190610ed9565b60405180910390f35b3480156102a3575f5ffd5b506102be60048036038101906102b9919061106d565b61054d565b005b3480156102cb575f5ffd5b506102d46105ee565b6040516102e19190611023565b60405180910390f35b3480156102f5575f5ffd5b50610310600480360381019061030b9190610f2d565b610642565b60405161031e929190611098565b60405180910390f35b348015610332575f5ffd5b5061034d60048036038101906103489190610f2d565b6106ef565b005b61036960048036038101906103649190611127565b61077e565b005b348015610376575f5ffd5b5061037f610ae1565b60405161038c91906111cd565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461043e576040517f0234e5ea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060038190555050565b60045481565b60015f9054906101000a900460ff1681565b61140081565b60035481565b60055481565b60cf5481565b606060015f9054906101000a900460ff166104bf576040517fe8eb59c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600554600454426104d09190611213565b1115610519576004546005546040517f72fc46a7000000000000000000000000000000000000000000000000000000008152600401610510929190611246565b60405180910390fd5b610521610b05565b905090565b5f7f0000000000000000000000000000000000000000000000000000000000000000905090565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105d2576040517f0234e5ea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060015f6101000a81548160ff02191690831515021790555050565b606060015f9054906101000a900460ff16610635576040517fe8eb59c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61063d610b05565b905090565b60068160648110610651575f80fd5b600202015f91509050805f0180546106689061129a565b80601f01602080910402602001604051908101604052809291908181526020018280546106949061129a565b80156106df5780601f106106b6576101008083540402835291602001916106df565b820191905f5260205f20905b8154815290600101906020018083116106c257829003601f168201915b5050505050908060010154905082565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610774576040517f7a4443f900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060058190555050565b610786610bdc565b60015f9054906101000a900460ff166107cb576040517fe8eb59c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610850576040517f0234e5ea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166379502c556040518163ffffffff1660e01b81526004016040805180830381865afa1580156108b9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108dd9190611345565b60ff1691505060035434101561092e57600354346040517fb99e2ab7000000000000000000000000000000000000000000000000000000008152600401610925929190611246565b60405180910390fd5b60035434111561097957600354346040517f08aed925000000000000000000000000000000000000000000000000000000008152600401610970929190611246565b60405180910390fd5b5f429050806004819055506109d184848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505082610c20565b5f7f000000000000000000000000000000000000000000000000000000000000000090505f8390505f60648234610a089190611383565b610a1291906113f1565b90505f8134610a219190611213565b9050610a6c817f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610d4f90919063ffffffff16565b610a95828573ffffffffffffffffffffffffffffffffffffffff16610d4f90919063ffffffff16565b7f60badeea04f31d7e2d2b86b618aaddc0a3239fa5b361b407b25d3f1615d577bf600286604051610ac79291906114b4565b60405180910390a1505050505050610add610e91565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60605f60028054610b159061129a565b905003610b4e576040517f779619da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028054610b5b9061129a565b80601f0160208091040260200160405190810160405280929190818152602001828054610b879061129a565b8015610bd25780601f10610ba957610100808354040283529160200191610bd2565b820191905f5260205f20905b815481529060010190602001808311610bb557829003601f168201915b5050505050905090565b60025f5403610c17576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025f81905550565b5f825103610c5a576040517f23e6b99500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61140082511115610ca75781516114006040517f711f6430000000000000000000000000000000000000000000000000000000008152600401610c9e929190611246565b60405180910390fd5b604051806040016040528083815260200182815250600660ce5460648110610cd257610cd16114e2565b5b600202015f820151815f019081610ce991906116c1565b50602082015181600101559050506064600160ce54610d089190611790565b610d1291906117c3565b60ce81905550606460cf541015610d3b5760cf5f815480929190610d35906117f3565b91905055505b8160029081610d4a91906116c1565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610db4576040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8103610ded576040517f8b12710700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682604051610e1290611867565b5f6040518083038185875af1925050503d805f8114610e4c576040519150601f19603f3d011682016040523d82523d5f602084013e610e51565b606091505b5050905080610e8c576040517f3d56f70700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60015f81905550565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610ec382610e9a565b9050919050565b610ed381610eb9565b82525050565b5f602082019050610eec5f830184610eca565b92915050565b5f5ffd5b5f5ffd5b5f819050919050565b610f0c81610efa565b8114610f16575f5ffd5b50565b5f81359050610f2781610f03565b92915050565b5f60208284031215610f4257610f41610ef2565b5b5f610f4f84828501610f19565b91505092915050565b610f6181610efa565b82525050565b5f602082019050610f7a5f830184610f58565b92915050565b5f8115159050919050565b610f9481610f80565b82525050565b5f602082019050610fad5f830184610f8b565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610ff582610fb3565b610fff8185610fbd565b935061100f818560208601610fcd565b61101881610fdb565b840191505092915050565b5f6020820190508181035f83015261103b8184610feb565b905092915050565b61104c81610f80565b8114611056575f5ffd5b50565b5f8135905061106781611043565b92915050565b5f6020828403121561108257611081610ef2565b5b5f61108f84828501611059565b91505092915050565b5f6040820190508181035f8301526110b08185610feb565b90506110bf6020830184610f58565b9392505050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126110e7576110e66110c6565b5b8235905067ffffffffffffffff811115611104576111036110ca565b5b6020830191508360018202830111156111205761111f6110ce565b5b9250929050565b5f5f6020838503121561113d5761113c610ef2565b5b5f83013567ffffffffffffffff81111561115a57611159610ef6565b5b611166858286016110d2565b92509250509250929050565b5f819050919050565b5f61119561119061118b84610e9a565b611172565b610e9a565b9050919050565b5f6111a68261117b565b9050919050565b5f6111b78261119c565b9050919050565b6111c7816111ad565b82525050565b5f6020820190506111e05f8301846111be565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61121d82610efa565b915061122883610efa565b92508282039050818111156112405761123f6111e6565b5b92915050565b5f6040820190506112595f830185610f58565b6112666020830184610f58565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806112b157607f821691505b6020821081036112c4576112c361126d565b5b50919050565b5f6fffffffffffffffffffffffffffffffff82169050919050565b6112ee816112ca565b81146112f8575f5ffd5b50565b5f81519050611309816112e5565b92915050565b5f60ff82169050919050565b6113248161130f565b811461132e575f5ffd5b50565b5f8151905061133f8161131b565b92915050565b5f5f6040838503121561135b5761135a610ef2565b5b5f611368858286016112fb565b925050602061137985828601611331565b9150509250929050565b5f61138d82610efa565b915061139883610efa565b92508282026113a681610efa565b915082820484148315176113bd576113bc6111e6565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6113fb82610efa565b915061140683610efa565b925082611416576114156113c4565b5b828204905092915050565b5f819050815f5260205f209050919050565b5f815461143f8161129a565b6114498186610fbd565b9450600182165f81146114635760018114611479576114ab565b60ff1983168652811515602002860193506114ab565b61148285611421565b5f5b838110156114a357815481890152600182019150602081019050611484565b808801955050505b50505092915050565b5f6040820190508181035f8301526114cc8185611433565b90506114db6020830184610f58565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026115867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261154b565b611590868361154b565b95508019841693508086168417925050509392505050565b5f6115c26115bd6115b884610efa565b611172565b610efa565b9050919050565b5f819050919050565b6115db836115a8565b6115ef6115e7826115c9565b848454611557565b825550505050565b5f5f905090565b6116066115f7565b6116118184846115d2565b505050565b5b81811015611634576116295f826115fe565b600181019050611617565b5050565b601f8211156116795761164a81611421565b6116538461153c565b81016020851015611662578190505b61167661166e8561153c565b830182611616565b50505b505050565b5f82821c905092915050565b5f6116995f198460080261167e565b1980831691505092915050565b5f6116b1838361168a565b9150826002028217905092915050565b6116ca82610fb3565b67ffffffffffffffff8111156116e3576116e261150f565b5b6116ed825461129a565b6116f8828285611638565b5f60209050601f831160018114611729575f8415611717578287015190505b61172185826116a6565b865550611788565b601f19841661173786611421565b5f5b8281101561175e57848901518255600182019150602085019450602081019050611739565b8683101561177b5784890151611777601f89168261168a565b8355505b6001600288020188555050505b505050505050565b5f61179a82610efa565b91506117a583610efa565b92508282019050808211156117bd576117bc6111e6565b5b92915050565b5f6117cd82610efa565b91506117d883610efa565b9250826117e8576117e76113c4565b5b828206905092915050565b5f6117fd82610efa565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361182f5761182e6111e6565b5b600182019050919050565b5f81905092915050565b50565b5f6118525f8361183a565b915061185d82611844565b5f82019050919050565b5f61187182611847565b915081905091905056fea264697066735822122006cf6fe66325cb292f6f7e02a5d61be288e6c5c5ad287d318d3650106bff6d5a64736f6c634300081e0033a2646970667358221220119718c8d91f3174dac2bf2f4a3fde6971d6d78351fe54a7632f91ca9d81271864736f6c634300081e0033",r=a=>a.length>1;class p extends n{constructor(...f){r(f)?super(...f):super(e,d,f[0])}getDeployTransaction(f,b){return super.getDeployTransaction(f,b||{})}deploy(f,b){return super.deploy(f,b||{})}connect(f){return super.connect(f)}static bytecode=d;static abi=e;static createInterface(){return new c(e)}attach(f){return super.attach(f)}static connect(f,b){return new t(f,e,b)}}export{p as OracleFactory__factory};
2
2
  //# sourceMappingURL=OracleFactory__factory.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../types/ethers-contracts/factories/OracleFactory__factory.ts"],
4
- "sourcesContent": ["/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nimport type { Addressable } from \"ethers\";\nimport { Contract, ContractFactory, ContractTransactionResponse, Interface } from \"ethers\"\nimport type { Signer, AddressLike, ContractDeployTransaction, ContractRunner } from \"ethers\"\nimport type { NonPayableOverrides } from \"../common.js\"\n import type { OracleFactory, OracleFactoryInterface } from \"../OracleFactory.js\";\n\n const _abi = [\n {\n \"inputs\": [\n {\n \"internalType\": \"address payable\",\n \"name\": \"_owner\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n },\n {\n \"inputs\": [],\n \"name\": \"AmountTransferFailed\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"required\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"provided\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"ExcessivePayment\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"required\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"provided\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"InsufficientPayment\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"NoStatusChange\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"oracleAddress\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"OracleIsNotExist\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"OwnableInvalidOwner\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"OwnableUnauthorizedAccount\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ReentrancyGuardReentrantCall\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ZeroAddressProvided\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ZeroAmountProvided\",\n \"type\": \"error\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"oracleAddress\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"timestamp\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"OracleDeployed\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"oracleAddress\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"bool\",\n \"name\": \"newOracleStatus\",\n \"type\": \"bool\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"timestamp\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"OracleStatusChanged\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"previousOwner\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newOwner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"OwnershipTransferred\",\n \"type\": \"event\"\n },\n {\n \"inputs\": [],\n \"name\": \"activeOracleCount\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"config\",\n \"outputs\": [\n {\n \"internalType\": \"uint128\",\n \"name\": \"oracleDeployPrice\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"oracleFactoryShare\",\n \"type\": \"uint8\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"_recommendedUpdateDuration\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"_dataUpdatePrice\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"_initialData\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"deployOracle\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getAllOracles\",\n \"outputs\": [\n {\n \"internalType\": \"address[]\",\n \"name\": \"\",\n \"type\": \"address[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"offset\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"limit\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"getAllOracles\",\n \"outputs\": [\n {\n \"internalType\": \"address[]\",\n \"name\": \"\",\n \"type\": \"address[]\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"total\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"oracleAddress\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getOracleInfo\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"createdAt\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"isActive\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"offset\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"limit\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"getProviderOracles\",\n \"outputs\": [\n {\n \"internalType\": \"address[]\",\n \"name\": \"\",\n \"type\": \"address[]\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"total\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getProviderOracles\",\n \"outputs\": [\n {\n \"internalType\": \"address[]\",\n \"name\": \"\",\n \"type\": \"address[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"oracleList\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"oracles\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"createdAt\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"isActive\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"owner\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"providerOracles\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"renounceOwnership\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"oracleAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"_dataUpdatePrice\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"setOracleDataUpdatePrice\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"oracleAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"_isActive\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"setOracleStatus\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"newOwner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"transferOwnership\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint128\",\n \"name\": \"_oracleDeployPrice\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"_oracleFactoryShare\",\n \"type\": \"uint8\"\n }\n ],\n \"name\": \"updateConfig\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"stateMutability\": \"payable\",\n \"type\": \"receive\"\n }\n] as const;\n\n const _bytecode = \"0x608060405234801561000f575f5ffd5b506040516147d03803806147d083398181016040528101906100319190610271565b805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a2575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009991906102bc565b60405180910390fd5b6100b18161015260201b60201c565b5060018081905550604051806040016040528066b1a2bc2ec500006fffffffffffffffffffffffffffffffff168152602001601460ff1681525060025f820151815f015f6101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506020820151815f0160106101000a81548160ff021916908360ff160217905550905050506102d5565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61024082610217565b9050919050565b61025081610236565b811461025a575f5ffd5b50565b5f8151905061026b81610247565b92915050565b5f6020828403121561028657610285610213565b5b5f6102938482850161025d565b91505092915050565b5f6102a682610217565b9050919050565b6102b68161029c565b82525050565b5f6020820190506102cf5f8301846102ad565b92915050565b6144ee806102e25f395ff3fe608060405260043610610101575f3560e01c806379502c5511610094578063b6ad659211610063578063b6ad659214610363578063bca86af81461038b578063bfdb6b04146103b5578063ed128a10146103f3578063f2fde38b1461041b5761011a565b806379502c55146102935780638da5cb5b146102be578063979c6167146102e8578063addd5099146103255761011a565b80636269cf8a116100d05780636269cf8a146101da57806365a6bb2914610217578063715018a6146102415780637907fdca146102575761011a565b80631ae11e261461011e578063239aad0d14610146578063565a21c5146101825780635ccba2aa1461019e5761011a565b3661011a575f3411156101185761011734610443565b5b005b5f5ffd5b348015610129575f5ffd5b50610144600480360381019061013f91906119b4565b6104d1565b005b348015610151575f5ffd5b5061016c60048036038101906101679190611a25565b6107fa565b6040516101799190611a5f565b60405180910390f35b61019c60048036038101906101979190611ad9565b610835565b005b3480156101a9575f5ffd5b506101c460048036038101906101bf9190611b4a565b610c4c565b6040516101d19190611a5f565b60405180910390f35b3480156101e5575f5ffd5b5061020060048036038101906101fb9190611b88565b610c94565b60405161020e929190611c9e565b60405180910390f35b348015610222575f5ffd5b5061022b610e6a565b6040516102389190611ccc565b60405180910390f35b34801561024c575f5ffd5b50610255610ef5565b005b348015610262575f5ffd5b5061027d60048036038101906102789190611cec565b610f08565b60405161028a9190611ccc565b60405180910390f35b34801561029e575f5ffd5b506102a7610fd0565b6040516102b5929190611d5c565b60405180910390f35b3480156102c9575f5ffd5b506102d2611008565b6040516102df9190611a5f565b60405180910390f35b3480156102f3575f5ffd5b5061030e60048036038101906103099190611d83565b61102f565b60405161031c929190611c9e565b60405180910390f35b348015610330575f5ffd5b5061034b60048036038101906103469190611cec565b6111c4565b60405161035a93929190611df2565b60405180910390f35b34801561036e575f5ffd5b5061038960048036038101906103849190611e7b565b611228565b005b348015610396575f5ffd5b5061039f61128b565b6040516103ac9190611eb9565b60405180910390f35b3480156103c0575f5ffd5b506103db60048036038101906103d69190611cec565b611291565b6040516103ea93929190611df2565b60405180910390f35b3480156103fe575f5ffd5b5061041960048036038101906104149190611b4a565b61146a565b005b348015610426575f5ffd5b50610441600480360381019061043c9190611cec565b6115ac565b005b5f6002826104519190611f2c565b905061049081733f2e72283f1e29b7cb4402511c41b60fb4900b5773ffffffffffffffffffffffffffffffffffffffff1661163090919063ffffffff16565b6104cd8173f0b5563971c60d2dc4407d1d85c9c3d2fc06726e73ffffffffffffffffffffffffffffffffffffffff1661163090919063ffffffff16565b5050565b6104d9611772565b815f73ffffffffffffffffffffffffffffffffffffffff1660055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036105a857806040517f0be91a0600000000000000000000000000000000000000000000000000000000815260040161059f9190611a5f565b60405180910390fd5b5f60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f01601c9054906101000a900460ff169050821515811515146107c2578260055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f01601c6101000a81548160ff0219169083151502179055508261067a5760045f81548092919061067190611f5c565b91905055610691565b60045f81548092919061068c90611f83565b919050555b508373ffffffffffffffffffffffffffffffffffffffff16634d4061ec846040518263ffffffff1660e01b81526004016106cb9190611fca565b5f604051808303815f87803b1580156106e2575f5ffd5b505af11580156106f4573d5f5f3e3d5ffd5b5050505060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f3208d6325311d4e408c9c30106ec97bd8847ae44431db95b71a86ce6a2a256ca85426040516107b5929190611fe3565b60405180910390a36107f4565b6040517fe79eac9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b60038181548110610809575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61083d6117f9565b60025f015f9054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff163410156108d45760025f015f9054906101000a90046fffffffffffffffffffffffffffffffff16346040517fb99e2ab70000000000000000000000000000000000000000000000000000000081526004016108cb929190612043565b60405180910390fd5b60025f015f9054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1634111561096b5760025f015f9054906101000a90046fffffffffffffffffffffffffffffffff16346040517f08aed925000000000000000000000000000000000000000000000000000000008152600401610962929190612043565b60405180910390fd5b5f3390505f85858585853060405161098290611910565b610991969594939291906120c4565b604051809103905ff0801580156109aa573d5f5f3e3d5ffd5b50905060405180606001604052808373ffffffffffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff1681526020016001151581525060055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151815f0160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506040820151815f01601c6101000a81548160ff02191690831515021790555090505060045f815480929190610ace90611f83565b9190505550600381908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bd734610443565b8173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f342b198a542ed04a4a3ad77cc9d0aa89ce1e4991f0154c69f0da1f551c1ec57e42604051610c349190611eb9565b60405180910390a35050610c4661183f565b50505050565b6006602052815f5260405f208181548110610c65575f80fd5b905f5260205f20015f915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60605f5f60065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20905080805490509150818510610d36575f67ffffffffffffffff811115610cff57610cfe61211e565b5b604051908082528060200260200182016040528015610d2d5781602001602082028036833780820191505090505b50925050610e62565b5f8486610d43919061214b565b905082811115610d51578290505b5f8682610d5e919061217e565b90505f8167ffffffffffffffff811115610d7b57610d7a61211e565b5b604051908082528060200260200182016040528015610da95781602001602082028036833780820191505090505b5090505f5f90505b82811015610e595784818a610dc6919061214b565b81548110610dd757610dd66121b1565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828281518110610e1257610e116121b1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050610db1565b50809550505050505b935093915050565b60606003805480602002602001604051908101604052809291908181526020018280548015610eeb57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610ea2575b5050505050905090565b610efd611772565b610f065f611848565b565b606060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805480602002602001604051908101604052809291908181526020018280548015610fc457602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610f7b575b50505050509050919050565b6002805f015f9054906101000a90046fffffffffffffffffffffffffffffffff1690805f0160109054906101000a900460ff16905082565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60605f6003805490509050808410611091575f67ffffffffffffffff81111561105b5761105a61211e565b5b6040519080825280602002602001820160405280156110895781602001602082028036833780820191505090505b5091506111bd565b5f838561109e919061214b565b9050818111156110ac578190505b5f85826110b9919061217e565b90505f8167ffffffffffffffff8111156110d6576110d561211e565b5b6040519080825280602002602001820160405280156111045781602001602082028036833780820191505090505b5090505f5f90505b828110156111b55760038189611122919061214b565b81548110611133576111326121b1565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682828151811061116e5761116d6121b1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050808060010191505061110c565b508094505050505b9250929050565b6005602052805f5260405f205f91509050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690805f0160149054906101000a900467ffffffffffffffff1690805f01601c9054906101000a900460ff16905083565b611230611772565b8160025f015f6101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055508060025f0160106101000a81548160ff021916908360ff1602179055505050565b60045481565b5f5f5f835f73ffffffffffffffffffffffffffffffffffffffff1660055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361136357806040517f0be91a0600000000000000000000000000000000000000000000000000000000815260040161135a9190611a5f565b60405180910390fd5b5f60055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206040518060600160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020015f820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020015f8201601c9054906101000a900460ff1615151515815250509050805f01518160200151826040015194509450945050509193909250565b611472611772565b815f73ffffffffffffffffffffffffffffffffffffffff1660055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361154157806040517f0be91a060000000000000000000000000000000000000000000000000000000081526004016115389190611a5f565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663118d9330836040518263ffffffff1660e01b815260040161157a9190611eb9565b5f604051808303815f87803b158015611591575f5ffd5b505af11580156115a3573d5f5f3e3d5ffd5b50505050505050565b6115b4611772565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611624575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161161b9190611a5f565b60405180910390fd5b61162d81611848565b50565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611695576040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f81036116ce576040517f8b12710700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff16826040516116f39061220b565b5f6040518083038185875af1925050503d805f811461172d576040519150601f19603f3d011682016040523d82523d5f602084013e611732565b606091505b505090508061176d576040517f3d56f70700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b61177a611909565b73ffffffffffffffffffffffffffffffffffffffff16611798611008565b73ffffffffffffffffffffffffffffffffffffffff16146117f7576117bb611909565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016117ee9190611a5f565b60405180910390fd5b565b600260015403611835576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600181905550565b60018081905550565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b6122998061222083390190565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61194e82611925565b9050919050565b61195e81611944565b8114611968575f5ffd5b50565b5f8135905061197981611955565b92915050565b5f8115159050919050565b6119938161197f565b811461199d575f5ffd5b50565b5f813590506119ae8161198a565b92915050565b5f5f604083850312156119ca576119c961191d565b5b5f6119d78582860161196b565b92505060206119e8858286016119a0565b9150509250929050565b5f819050919050565b611a04816119f2565b8114611a0e575f5ffd5b50565b5f81359050611a1f816119fb565b92915050565b5f60208284031215611a3a57611a3961191d565b5b5f611a4784828501611a11565b91505092915050565b611a5981611944565b82525050565b5f602082019050611a725f830184611a50565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f840112611a9957611a98611a78565b5b8235905067ffffffffffffffff811115611ab657611ab5611a7c565b5b602083019150836001820283011115611ad257611ad1611a80565b5b9250929050565b5f5f5f5f60608587031215611af157611af061191d565b5b5f611afe87828801611a11565b9450506020611b0f87828801611a11565b935050604085013567ffffffffffffffff811115611b3057611b2f611921565b5b611b3c87828801611a84565b925092505092959194509250565b5f5f60408385031215611b6057611b5f61191d565b5b5f611b6d8582860161196b565b9250506020611b7e85828601611a11565b9150509250929050565b5f5f5f60608486031215611b9f57611b9e61191d565b5b5f611bac8682870161196b565b9350506020611bbd86828701611a11565b9250506040611bce86828701611a11565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611c0a81611944565b82525050565b5f611c1b8383611c01565b60208301905092915050565b5f602082019050919050565b5f611c3d82611bd8565b611c478185611be2565b9350611c5283611bf2565b805f5b83811015611c82578151611c698882611c10565b9750611c7483611c27565b925050600181019050611c55565b5085935050505092915050565b611c98816119f2565b82525050565b5f6040820190508181035f830152611cb68185611c33565b9050611cc56020830184611c8f565b9392505050565b5f6020820190508181035f830152611ce48184611c33565b905092915050565b5f60208284031215611d0157611d0061191d565b5b5f611d0e8482850161196b565b91505092915050565b5f6fffffffffffffffffffffffffffffffff82169050919050565b611d3b81611d17565b82525050565b5f60ff82169050919050565b611d5681611d41565b82525050565b5f604082019050611d6f5f830185611d32565b611d7c6020830184611d4d565b9392505050565b5f5f60408385031215611d9957611d9861191d565b5b5f611da685828601611a11565b9250506020611db785828601611a11565b9150509250929050565b5f67ffffffffffffffff82169050919050565b611ddd81611dc1565b82525050565b611dec8161197f565b82525050565b5f606082019050611e055f830186611a50565b611e126020830185611dd4565b611e1f6040830184611de3565b949350505050565b611e3081611d17565b8114611e3a575f5ffd5b50565b5f81359050611e4b81611e27565b92915050565b611e5a81611d41565b8114611e64575f5ffd5b50565b5f81359050611e7581611e51565b92915050565b5f5f60408385031215611e9157611e9061191d565b5b5f611e9e85828601611e3d565b9250506020611eaf85828601611e67565b9150509250929050565b5f602082019050611ecc5f830184611c8f565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611f36826119f2565b9150611f41836119f2565b925082611f5157611f50611ed2565b5b828204905092915050565b5f611f66826119f2565b91505f8203611f7857611f77611eff565b5b600182039050919050565b5f611f8d826119f2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611fbf57611fbe611eff565b5b600182019050919050565b5f602082019050611fdd5f830184611de3565b92915050565b5f604082019050611ff65f830185611de3565b6120036020830184611c8f565b9392505050565b5f819050919050565b5f61202d61202861202384611d17565b61200a565b6119f2565b9050919050565b61203d81612013565b82525050565b5f6040820190506120565f830185612034565b6120636020830184611c8f565b9392505050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f6120a3838561206a565b93506120b083858461207a565b6120b983612088565b840190509392505050565b5f60a0820190506120d75f830189611c8f565b6120e46020830188611c8f565b81810360408301526120f7818688612098565b90506121066060830185611a50565b6121136080830184611a50565b979650505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f612155826119f2565b9150612160836119f2565b925082820190508082111561217857612177611eff565b5b92915050565b5f612188826119f2565b9150612193836119f2565b92508282039050818111156121ab576121aa611eff565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81905092915050565b50565b5f6121f65f836121de565b9150612201826121e8565b5f82019050919050565b5f612215826121eb565b915081905091905056fe60c06040526001805f6101000a81548160ff021916908315150217905550348015610028575f5ffd5b50604051612299380380612299833981810160405281019061004a919061052f565b60015f819055505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806100b657505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156100ed576040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff163b1461013d576040517f7305bdbd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8173ffffffffffffffffffffffffffffffffffffffff163b0361018d576040517f14b9535000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505083600381905550426004819055508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508460058190555061021c8360045461022660201b60201c565b50505050506109ff565b5f825103610260576040517f23e6b99500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611400825111156102ad5781516114006040517f711f64300000000000000000000000000000000000000000000000000000000081526004016102a49291906105d1565b60405180910390fd5b604051806040016040528083815260200182815250600660ce54606481106102d8576102d76105f8565b5b600202015f820151815f0190816102ef919061082c565b50602082015181600101559050506064600160ce5461030e9190610928565b6103189190610988565b60ce81905550606460cf5410156103415760cf5f81548092919061033b906109b8565b91905055505b8160029081610350919061082c565b505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b61037881610366565b8114610382575f5ffd5b50565b5f815190506103938161036f565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6103e7826103a1565b810181811067ffffffffffffffff82111715610406576104056103b1565b5b80604052505050565b5f610418610355565b905061042482826103de565b919050565b5f67ffffffffffffffff821115610443576104426103b1565b5b61044c826103a1565b9050602081019050919050565b8281835e5f83830152505050565b5f61047961047484610429565b61040f565b9050828152602081018484840111156104955761049461039d565b5b6104a0848285610459565b509392505050565b5f82601f8301126104bc576104bb610399565b5b81516104cc848260208601610467565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6104fe826104d5565b9050919050565b61050e816104f4565b8114610518575f5ffd5b50565b5f8151905061052981610505565b92915050565b5f5f5f5f5f60a086880312156105485761054761035e565b5b5f61055588828901610385565b955050602061056688828901610385565b945050604086015167ffffffffffffffff81111561058757610586610362565b5b610593888289016104a8565b93505060606105a48882890161051b565b92505060806105b58882890161051b565b9150509295509295909350565b6105cb81610366565b82525050565b5f6040820190506105e45f8301856105c2565b6105f160208301846105c2565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061067357607f821691505b6020821081036106865761068561062f565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026106e87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826106ad565b6106f286836106ad565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61072d61072861072384610366565b61070a565b610366565b9050919050565b5f819050919050565b61074683610713565b61075a61075282610734565b8484546106b9565b825550505050565b5f5f905090565b610771610762565b61077c81848461073d565b505050565b5b8181101561079f576107945f82610769565b600181019050610782565b5050565b601f8211156107e4576107b58161068c565b6107be8461069e565b810160208510156107cd578190505b6107e16107d98561069e565b830182610781565b50505b505050565b5f82821c905092915050565b5f6108045f19846008026107e9565b1980831691505092915050565b5f61081c83836107f5565b9150826002028217905092915050565b61083582610625565b67ffffffffffffffff81111561084e5761084d6103b1565b5b610858825461065c565b6108638282856107a3565b5f60209050601f831160018114610894575f8415610882578287015190505b61088c8582610811565b8655506108f3565b601f1984166108a28661068c565b5f5b828110156108c9578489015182556001820191506020850194506020810190506108a4565b868310156108e657848901516108e2601f8916826107f5565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61093282610366565b915061093d83610366565b9250828201905080821115610955576109546108fb565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61099282610366565b915061099d83610366565b9250826109ad576109ac61095b565b5b828206905092915050565b5f6109c282610366565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036109f4576109f36108fb565b5b600182019050919050565b60805160a051611848610a515f395f81816103bb0152818161054f01528181610853015281816109ec0152610a7a01525f818161039701528181610529015281816106f101526107cd01526118485ff3fe6080604052600436106100f2575f3560e01c80633bc5de3011610089578063a7a38f0b11610058578063a7a38f0b146102ea578063b334b63414610327578063bb4013d31461034f578063c45a01551461036b576100f2565b80633bc5de3014610244578063483d45bd1461026e5780634d4061ec146102985780639c5f9481146102c0576100f2565b806322fce66f116100c557806322fce66f1461019c5780632c20dc89146101c65780632fbf8d2a146101f05780633a9c9ffc1461021a576100f2565b8063085d4883146100f6578063118d93301461012057806314bcec9f1461014857806322f3e2d414610172575b5f5ffd5b348015610101575f5ffd5b5061010a610395565b6040516101179190610e70565b60405180910390f35b34801561012b575f5ffd5b5061014660048036038101906101419190610ec4565b6103b9565b005b348015610153575f5ffd5b5061015c610448565b6040516101699190610efe565b60405180910390f35b34801561017d575f5ffd5b5061018661044e565b6040516101939190610f31565b60405180910390f35b3480156101a7575f5ffd5b506101b0610460565b6040516101bd9190610efe565b60405180910390f35b3480156101d1575f5ffd5b506101da610466565b6040516101e79190610efe565b60405180910390f35b3480156101fb575f5ffd5b5061020461046c565b6040516102119190610efe565b60405180910390f35b348015610225575f5ffd5b5061022e610472565b60405161023b9190610efe565b60405180910390f35b34801561024f575f5ffd5b50610258610478565b6040516102659190610fba565b60405180910390f35b348015610279575f5ffd5b50610282610526565b60405161028f9190610e70565b60405180910390f35b3480156102a3575f5ffd5b506102be60048036038101906102b99190611004565b61054d565b005b3480156102cb575f5ffd5b506102d46105ee565b6040516102e19190610fba565b60405180910390f35b3480156102f5575f5ffd5b50610310600480360381019061030b9190610ec4565b610642565b60405161031e92919061102f565b60405180910390f35b348015610332575f5ffd5b5061034d60048036038101906103489190610ec4565b6106ef565b005b610369600480360381019061036491906110be565b61077e565b005b348015610376575f5ffd5b5061037f610a78565b60405161038c9190611164565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461043e576040517f0234e5ea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060038190555050565b60045481565b60015f9054906101000a900460ff1681565b61140081565b60035481565b60055481565b60cf5481565b606060015f9054906101000a900460ff166104bf576040517fe8eb59c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600554600454426104d091906111aa565b1115610519576004546005546040517f72fc46a70000000000000000000000000000000000000000000000000000000081526004016105109291906111dd565b60405180910390fd5b610521610a9c565b905090565b5f7f0000000000000000000000000000000000000000000000000000000000000000905090565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105d2576040517f0234e5ea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060015f6101000a81548160ff02191690831515021790555050565b606060015f9054906101000a900460ff16610635576040517fe8eb59c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61063d610a9c565b905090565b60068160648110610651575f80fd5b600202015f91509050805f01805461066890611231565b80601f016020809104026020016040519081016040528092919081815260200182805461069490611231565b80156106df5780601f106106b6576101008083540402835291602001916106df565b820191905f5260205f20905b8154815290600101906020018083116106c257829003601f168201915b5050505050908060010154905082565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610774576040517f7a4443f900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060058190555050565b610786610b73565b60015f9054906101000a900460ff166107cb576040517fe8eb59c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610850576040517f7a4443f900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166379502c556040518163ffffffff1660e01b81526004016040805180830381865afa1580156108b9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108dd91906112dc565b60ff169150505f6064826003546108f4919061131a565b6108fe9190611388565b9050803410156109475780346040517fb99e2ab700000000000000000000000000000000000000000000000000000000815260040161093e9291906111dd565b60405180910390fd5b8034111561098e5780346040517f08aed9250000000000000000000000000000000000000000000000000000000081526004016109859291906111dd565b60405180910390fd5b5f429050806004819055506109e685858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505082610bb7565b610a2f827f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610ce690919063ffffffff16565b7f60badeea04f31d7e2d2b86b618aaddc0a3239fa5b361b407b25d3f1615d577bf600282604051610a6192919061144b565b60405180910390a1505050610a74610e28565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60605f60028054610aac90611231565b905003610ae5576040517f779619da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028054610af290611231565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1e90611231565b8015610b695780601f10610b4057610100808354040283529160200191610b69565b820191905f5260205f20905b815481529060010190602001808311610b4c57829003601f168201915b5050505050905090565b60025f5403610bae576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025f81905550565b5f825103610bf1576040517f23e6b99500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61140082511115610c3e5781516114006040517f711f6430000000000000000000000000000000000000000000000000000000008152600401610c359291906111dd565b60405180910390fd5b604051806040016040528083815260200182815250600660ce5460648110610c6957610c68611479565b5b600202015f820151815f019081610c809190611658565b50602082015181600101559050506064600160ce54610c9f9190611727565b610ca9919061175a565b60ce81905550606460cf541015610cd25760cf5f815480929190610ccc9061178a565b91905055505b8160029081610ce19190611658565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d4b576040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8103610d84576040517f8b12710700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682604051610da9906117fe565b5f6040518083038185875af1925050503d805f8114610de3576040519150601f19603f3d011682016040523d82523d5f602084013e610de8565b606091505b5050905080610e23576040517f3d56f70700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60015f81905550565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610e5a82610e31565b9050919050565b610e6a81610e50565b82525050565b5f602082019050610e835f830184610e61565b92915050565b5f5ffd5b5f5ffd5b5f819050919050565b610ea381610e91565b8114610ead575f5ffd5b50565b5f81359050610ebe81610e9a565b92915050565b5f60208284031215610ed957610ed8610e89565b5b5f610ee684828501610eb0565b91505092915050565b610ef881610e91565b82525050565b5f602082019050610f115f830184610eef565b92915050565b5f8115159050919050565b610f2b81610f17565b82525050565b5f602082019050610f445f830184610f22565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610f8c82610f4a565b610f968185610f54565b9350610fa6818560208601610f64565b610faf81610f72565b840191505092915050565b5f6020820190508181035f830152610fd28184610f82565b905092915050565b610fe381610f17565b8114610fed575f5ffd5b50565b5f81359050610ffe81610fda565b92915050565b5f6020828403121561101957611018610e89565b5b5f61102684828501610ff0565b91505092915050565b5f6040820190508181035f8301526110478185610f82565b90506110566020830184610eef565b9392505050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261107e5761107d61105d565b5b8235905067ffffffffffffffff81111561109b5761109a611061565b5b6020830191508360018202830111156110b7576110b6611065565b5b9250929050565b5f5f602083850312156110d4576110d3610e89565b5b5f83013567ffffffffffffffff8111156110f1576110f0610e8d565b5b6110fd85828601611069565b92509250509250929050565b5f819050919050565b5f61112c61112761112284610e31565b611109565b610e31565b9050919050565b5f61113d82611112565b9050919050565b5f61114e82611133565b9050919050565b61115e81611144565b82525050565b5f6020820190506111775f830184611155565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6111b482610e91565b91506111bf83610e91565b92508282039050818111156111d7576111d661117d565b5b92915050565b5f6040820190506111f05f830185610eef565b6111fd6020830184610eef565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061124857607f821691505b60208210810361125b5761125a611204565b5b50919050565b5f6fffffffffffffffffffffffffffffffff82169050919050565b61128581611261565b811461128f575f5ffd5b50565b5f815190506112a08161127c565b92915050565b5f60ff82169050919050565b6112bb816112a6565b81146112c5575f5ffd5b50565b5f815190506112d6816112b2565b92915050565b5f5f604083850312156112f2576112f1610e89565b5b5f6112ff85828601611292565b9250506020611310858286016112c8565b9150509250929050565b5f61132482610e91565b915061132f83610e91565b925082820261133d81610e91565b915082820484148315176113545761135361117d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61139282610e91565b915061139d83610e91565b9250826113ad576113ac61135b565b5b828204905092915050565b5f819050815f5260205f209050919050565b5f81546113d681611231565b6113e08186610f54565b9450600182165f81146113fa576001811461141057611442565b60ff198316865281151560200286019350611442565b611419856113b8565b5f5b8381101561143a5781548189015260018201915060208101905061141b565b808801955050505b50505092915050565b5f6040820190508181035f83015261146381856113ca565b90506114726020830184610eef565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261151d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826114e2565b61152786836114e2565b95508019841693508086168417925050509392505050565b5f61155961155461154f84610e91565b611109565b610e91565b9050919050565b5f819050919050565b6115728361153f565b61158661157e82611560565b8484546114ee565b825550505050565b5f5f905090565b61159d61158e565b6115a8818484611569565b505050565b5b818110156115cb576115c05f82611595565b6001810190506115ae565b5050565b601f821115611610576115e1816113b8565b6115ea846114d3565b810160208510156115f9578190505b61160d611605856114d3565b8301826115ad565b50505b505050565b5f82821c905092915050565b5f6116305f1984600802611615565b1980831691505092915050565b5f6116488383611621565b9150826002028217905092915050565b61166182610f4a565b67ffffffffffffffff81111561167a576116796114a6565b5b6116848254611231565b61168f8282856115cf565b5f60209050601f8311600181146116c0575f84156116ae578287015190505b6116b8858261163d565b86555061171f565b601f1984166116ce866113b8565b5f5b828110156116f5578489015182556001820191506020850194506020810190506116d0565b86831015611712578489015161170e601f891682611621565b8355505b6001600288020188555050505b505050505050565b5f61173182610e91565b915061173c83610e91565b92508282019050808211156117545761175361117d565b5b92915050565b5f61176482610e91565b915061176f83610e91565b92508261177f5761177e61135b565b5b828206905092915050565b5f61179482610e91565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036117c6576117c561117d565b5b600182019050919050565b5f81905092915050565b50565b5f6117e95f836117d1565b91506117f4826117db565b5f82019050919050565b5f611808826117de565b915081905091905056fea264697066735822122014107d58dae22172c21d0f5e6e8da206265291680004b9ae5e495511e2e29e7764736f6c634300081e0033a26469706673582212204e0b3d702e3a92901379cd934b92b550c0cecdab4b8f6605bf4857640a76fbfe64736f6c634300081e0033\";\n\n \n type OracleFactoryConstructorParams = [signer?: Signer] | ConstructorParameters<typeof ContractFactory>;\n\n const isSuperArgs = (xs: OracleFactoryConstructorParams): xs is ConstructorParameters<typeof ContractFactory> =>\n xs.length > 1\n \n\n export class OracleFactory__factory extends ContractFactory {\n \n constructor(...args: OracleFactoryConstructorParams) {\n if (isSuperArgs(args)) {\n super(...args);\n } else {\n super(_abi, _bytecode, args[0]);\n }\n \n }\n \n override getDeployTransaction(_owner: AddressLike, overrides?: NonPayableOverrides & { from?: string }): Promise<ContractDeployTransaction> {\n return super.getDeployTransaction(_owner, overrides || {});\n };\n override deploy(_owner: AddressLike, overrides?: NonPayableOverrides & { from?: string }) {\n return super.deploy(_owner, overrides || {}) as Promise<OracleFactory & {\n deploymentTransaction(): ContractTransactionResponse;\n }>;\n }\n override connect(runner: ContractRunner | null): OracleFactory__factory {\n return super.connect(runner) as OracleFactory__factory;\n }\n \n \n static readonly bytecode = _bytecode;\n static readonly abi = _abi;\n static createInterface(): OracleFactoryInterface {\n return new Interface(_abi) as OracleFactoryInterface;\n }\n \n override attach(address: string | Addressable): OracleFactory {\n return super.attach(address) as OracleFactory;\n }\n static connect(address: string, runner?: ContractRunner | null): OracleFactory {\n return new Contract(address, _abi, runner) as unknown as OracleFactory;\n }\n }\n\n \n "],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nimport type { Addressable } from \"ethers\";\nimport { Contract, ContractFactory, ContractTransactionResponse, Interface } from \"ethers\"\nimport type { Signer, AddressLike, ContractDeployTransaction, ContractRunner } from \"ethers\"\nimport type { NonPayableOverrides } from \"../common.js\"\n import type { OracleFactory, OracleFactoryInterface } from \"../OracleFactory.js\";\n\n const _abi = [\n {\n \"inputs\": [\n {\n \"internalType\": \"address payable\",\n \"name\": \"_owner\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n },\n {\n \"inputs\": [],\n \"name\": \"AmountTransferFailed\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"required\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"provided\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"ExcessivePayment\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"required\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"provided\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"InsufficientPayment\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"NoStatusChange\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"oracleAddress\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"OracleIsNotExist\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"OwnableInvalidOwner\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"OwnableUnauthorizedAccount\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ReentrancyGuardReentrantCall\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ZeroAddressProvided\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ZeroAmountProvided\",\n \"type\": \"error\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"oracleAddress\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"timestamp\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"OracleDeployed\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"oracleAddress\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"bool\",\n \"name\": \"newOracleStatus\",\n \"type\": \"bool\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"timestamp\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"OracleStatusChanged\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"previousOwner\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newOwner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"OwnershipTransferred\",\n \"type\": \"event\"\n },\n {\n \"inputs\": [],\n \"name\": \"activeOracleCount\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"config\",\n \"outputs\": [\n {\n \"internalType\": \"uint128\",\n \"name\": \"oracleDeployPrice\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"oracleFactoryShare\",\n \"type\": \"uint8\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"_recommendedUpdateDuration\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"_dataUpdatePrice\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"_initialData\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"deployOracle\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"offset\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"limit\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"getAllOracles\",\n \"outputs\": [\n {\n \"internalType\": \"address[]\",\n \"name\": \"\",\n \"type\": \"address[]\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"total\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"oracleAddress\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getOracleInfo\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"createdAt\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"isActive\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"offset\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"limit\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"getProviderOracles\",\n \"outputs\": [\n {\n \"internalType\": \"address[]\",\n \"name\": \"\",\n \"type\": \"address[]\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"total\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"oracleList\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"oracles\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"createdAt\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"isActive\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"owner\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"providerOracles\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"renounceOwnership\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"oracleAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"_dataUpdatePrice\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"setOracleDataUpdatePrice\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"oracleAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"_isActive\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"setOracleStatus\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"newOwner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"transferOwnership\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint128\",\n \"name\": \"_oracleDeployPrice\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"_oracleFactoryShare\",\n \"type\": \"uint8\"\n }\n ],\n \"name\": \"updateConfig\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"oracleAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"_data\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"updateOracleData\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n },\n {\n \"stateMutability\": \"payable\",\n \"type\": \"receive\"\n }\n] as const;\n\n const _bytecode = \"0x608060405234801561000f575f5ffd5b5060405161485e38038061485e83398181016040528101906100319190610271565b805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a2575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009991906102bc565b60405180910390fd5b6100b18161015260201b60201c565b5060018081905550604051806040016040528066b1a2bc2ec500006fffffffffffffffffffffffffffffffff168152602001601460ff1681525060025f820151815f015f6101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506020820151815f0160106101000a81548160ff021916908360ff160217905550905050506102d5565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61024082610217565b9050919050565b61025081610236565b811461025a575f5ffd5b50565b5f8151905061026b81610247565b92915050565b5f6020828403121561028657610285610213565b5b5f6102938482850161025d565b91505092915050565b5f6102a682610217565b9050919050565b6102b68161029c565b82525050565b5f6020820190506102cf5f8301846102ad565b92915050565b61457c806102e25f395ff3fe6080604052600436106100f6575f3560e01c8063979c616711610089578063bfdb6b0411610058578063bfdb6b0414610344578063c83dae3414610382578063ed128a101461039e578063f2fde38b146103c65761010f565b8063979c616714610277578063addd5099146102b4578063b6ad6592146102f2578063bca86af81461031a5761010f565b80636269cf8a116100c55780636269cf8a146101cf578063715018a61461020c57806379502c55146102225780638da5cb5b1461024d5761010f565b80631ae11e2614610113578063239aad0d1461013b578063565a21c5146101775780635ccba2aa146101935761010f565b3661010f575f34111561010d5761010c346103ee565b5b005b5f5ffd5b34801561011e575f5ffd5b5061013960048036038101906101349190611973565b61048c565b005b348015610146575f5ffd5b50610161600480360381019061015c91906119e4565b6107b5565b60405161016e9190611a1e565b60405180910390f35b610191600480360381019061018c9190611a98565b6107f0565b005b34801561019e575f5ffd5b506101b960048036038101906101b49190611b09565b610c07565b6040516101c69190611a1e565b60405180910390f35b3480156101da575f5ffd5b506101f560048036038101906101f09190611b47565b610c4f565b604051610203929190611c5d565b60405180910390f35b348015610217575f5ffd5b50610220610e25565b005b34801561022d575f5ffd5b50610236610e38565b604051610244929190611cd0565b60405180910390f35b348015610258575f5ffd5b50610261610e70565b60405161026e9190611a1e565b60405180910390f35b348015610282575f5ffd5b5061029d60048036038101906102989190611cf7565b610e97565b6040516102ab929190611c5d565b60405180910390f35b3480156102bf575f5ffd5b506102da60048036038101906102d59190611d35565b61102c565b6040516102e993929190611d91565b60405180910390f35b3480156102fd575f5ffd5b5061031860048036038101906103139190611e1a565b611090565b005b348015610325575f5ffd5b5061032e6110f3565b60405161033b9190611e58565b60405180910390f35b34801561034f575f5ffd5b5061036a60048036038101906103659190611d35565b6110f9565b60405161037993929190611d91565b60405180910390f35b61039c60048036038101906103979190611e71565b6112d2565b005b3480156103a9575f5ffd5b506103c460048036038101906103bf9190611b09565b611429565b005b3480156103d1575f5ffd5b506103ec60048036038101906103e79190611d35565b61156b565b005b5f6002826103fc9190611f28565b90505f818361040b9190611f58565b905061044a82733f2e72283f1e29b7cb4402511c41b60fb4900b5773ffffffffffffffffffffffffffffffffffffffff166115ef90919063ffffffff16565b6104878173f0b5563971c60d2dc4407d1d85c9c3d2fc06726e73ffffffffffffffffffffffffffffffffffffffff166115ef90919063ffffffff16565b505050565b610494611731565b815f73ffffffffffffffffffffffffffffffffffffffff1660055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361056357806040517f0be91a0600000000000000000000000000000000000000000000000000000000815260040161055a9190611a1e565b60405180910390fd5b5f60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f01601c9054906101000a900460ff1690508215158115151461077d578260055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f01601c6101000a81548160ff021916908315150217905550826106355760045f81548092919061062c90611f8b565b9190505561064c565b60045f81548092919061064790611fb2565b919050555b508373ffffffffffffffffffffffffffffffffffffffff16634d4061ec846040518263ffffffff1660e01b81526004016106869190611ff9565b5f604051808303815f87803b15801561069d575f5ffd5b505af11580156106af573d5f5f3e3d5ffd5b5050505060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f3208d6325311d4e408c9c30106ec97bd8847ae44431db95b71a86ce6a2a256ca8542604051610770929190612012565b60405180910390a36107af565b6040517fe79eac9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b600381815481106107c4575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107f86117b8565b60025f015f9054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1634101561088f5760025f015f9054906101000a90046fffffffffffffffffffffffffffffffff16346040517fb99e2ab7000000000000000000000000000000000000000000000000000000008152600401610886929190612072565b60405180910390fd5b60025f015f9054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff163411156109265760025f015f9054906101000a90046fffffffffffffffffffffffffffffffff16346040517f08aed92500000000000000000000000000000000000000000000000000000000815260040161091d929190612072565b60405180910390fd5b5f3390505f85858585853060405161093d906118cf565b61094c969594939291906120f3565b604051809103905ff080158015610965573d5f5f3e3d5ffd5b50905060405180606001604052808373ffffffffffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff1681526020016001151581525060055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151815f0160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506040820151815f01601c6101000a81548160ff02191690831515021790555090505060045f815480929190610a8990611fb2565b9190505550600381908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b92346103ee565b8173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f342b198a542ed04a4a3ad77cc9d0aa89ce1e4991f0154c69f0da1f551c1ec57e42604051610bef9190611e58565b60405180910390a35050610c016117fe565b50505050565b6006602052815f5260405f208181548110610c20575f80fd5b905f5260205f20015f915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60605f5f60065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20905080805490509150818510610cf1575f67ffffffffffffffff811115610cba57610cb961214d565b5b604051908082528060200260200182016040528015610ce85781602001602082028036833780820191505090505b50925050610e1d565b5f8486610cfe919061217a565b905082811115610d0c578290505b5f8682610d199190611f58565b90505f8167ffffffffffffffff811115610d3657610d3561214d565b5b604051908082528060200260200182016040528015610d645781602001602082028036833780820191505090505b5090505f5f90505b82811015610e145784818a610d81919061217a565b81548110610d9257610d916121ad565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828281518110610dcd57610dcc6121ad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050610d6c565b50809550505050505b935093915050565b610e2d611731565b610e365f611807565b565b6002805f015f9054906101000a90046fffffffffffffffffffffffffffffffff1690805f0160109054906101000a900460ff16905082565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60605f6003805490509050808410610ef9575f67ffffffffffffffff811115610ec357610ec261214d565b5b604051908082528060200260200182016040528015610ef15781602001602082028036833780820191505090505b509150611025565b5f8385610f06919061217a565b905081811115610f14578190505b5f8582610f219190611f58565b90505f8167ffffffffffffffff811115610f3e57610f3d61214d565b5b604051908082528060200260200182016040528015610f6c5781602001602082028036833780820191505090505b5090505f5f90505b8281101561101d5760038189610f8a919061217a565b81548110610f9b57610f9a6121ad565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828281518110610fd657610fd56121ad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050610f74565b508094505050505b9250929050565b6005602052805f5260405f205f91509050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690805f0160149054906101000a900467ffffffffffffffff1690805f01601c9054906101000a900460ff16905083565b611098611731565b8160025f015f6101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055508060025f0160106101000a81548160ff021916908360ff1602179055505050565b60045481565b5f5f5f835f73ffffffffffffffffffffffffffffffffffffffff1660055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036111cb57806040517f0be91a060000000000000000000000000000000000000000000000000000000081526004016111c29190611a1e565b60405180910390fd5b5f60055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206040518060600160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020015f820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020015f8201601c9054906101000a900460ff1615151515815250509050805f01518160200151826040015194509450945050509193909250565b6112da611731565b6112e26117b8565b825f73ffffffffffffffffffffffffffffffffffffffff1660055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036113b157806040517f0be91a060000000000000000000000000000000000000000000000000000000081526004016113a89190611a1e565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff1663bb4013d33485856040518463ffffffff1660e01b81526004016113ed9291906121da565b5f604051808303818588803b158015611404575f5ffd5b505af1158015611416573d5f5f3e3d5ffd5b5050505050506114246117fe565b505050565b611431611731565b815f73ffffffffffffffffffffffffffffffffffffffff1660055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361150057806040517f0be91a060000000000000000000000000000000000000000000000000000000081526004016114f79190611a1e565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663118d9330836040518263ffffffff1660e01b81526004016115399190611e58565b5f604051808303815f87803b158015611550575f5ffd5b505af1158015611562573d5f5f3e3d5ffd5b50505050505050565b611573611731565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115e3575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016115da9190611a1e565b60405180910390fd5b6115ec81611807565b50565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611654576040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f810361168d576040517f8b12710700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff16826040516116b290612229565b5f6040518083038185875af1925050503d805f81146116ec576040519150601f19603f3d011682016040523d82523d5f602084013e6116f1565b606091505b505090508061172c576040517f3d56f70700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b6117396118c8565b73ffffffffffffffffffffffffffffffffffffffff16611757610e70565b73ffffffffffffffffffffffffffffffffffffffff16146117b65761177a6118c8565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016117ad9190611a1e565b60405180910390fd5b565b6002600154036117f4576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600181905550565b60018081905550565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b6123098061223e83390190565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61190d826118e4565b9050919050565b61191d81611903565b8114611927575f5ffd5b50565b5f8135905061193881611914565b92915050565b5f8115159050919050565b6119528161193e565b811461195c575f5ffd5b50565b5f8135905061196d81611949565b92915050565b5f5f60408385031215611989576119886118dc565b5b5f6119968582860161192a565b92505060206119a78582860161195f565b9150509250929050565b5f819050919050565b6119c3816119b1565b81146119cd575f5ffd5b50565b5f813590506119de816119ba565b92915050565b5f602082840312156119f9576119f86118dc565b5b5f611a06848285016119d0565b91505092915050565b611a1881611903565b82525050565b5f602082019050611a315f830184611a0f565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f840112611a5857611a57611a37565b5b8235905067ffffffffffffffff811115611a7557611a74611a3b565b5b602083019150836001820283011115611a9157611a90611a3f565b5b9250929050565b5f5f5f5f60608587031215611ab057611aaf6118dc565b5b5f611abd878288016119d0565b9450506020611ace878288016119d0565b935050604085013567ffffffffffffffff811115611aef57611aee6118e0565b5b611afb87828801611a43565b925092505092959194509250565b5f5f60408385031215611b1f57611b1e6118dc565b5b5f611b2c8582860161192a565b9250506020611b3d858286016119d0565b9150509250929050565b5f5f5f60608486031215611b5e57611b5d6118dc565b5b5f611b6b8682870161192a565b9350506020611b7c868287016119d0565b9250506040611b8d868287016119d0565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611bc981611903565b82525050565b5f611bda8383611bc0565b60208301905092915050565b5f602082019050919050565b5f611bfc82611b97565b611c068185611ba1565b9350611c1183611bb1565b805f5b83811015611c41578151611c288882611bcf565b9750611c3383611be6565b925050600181019050611c14565b5085935050505092915050565b611c57816119b1565b82525050565b5f6040820190508181035f830152611c758185611bf2565b9050611c846020830184611c4e565b9392505050565b5f6fffffffffffffffffffffffffffffffff82169050919050565b611caf81611c8b565b82525050565b5f60ff82169050919050565b611cca81611cb5565b82525050565b5f604082019050611ce35f830185611ca6565b611cf06020830184611cc1565b9392505050565b5f5f60408385031215611d0d57611d0c6118dc565b5b5f611d1a858286016119d0565b9250506020611d2b858286016119d0565b9150509250929050565b5f60208284031215611d4a57611d496118dc565b5b5f611d578482850161192a565b91505092915050565b5f67ffffffffffffffff82169050919050565b611d7c81611d60565b82525050565b611d8b8161193e565b82525050565b5f606082019050611da45f830186611a0f565b611db16020830185611d73565b611dbe6040830184611d82565b949350505050565b611dcf81611c8b565b8114611dd9575f5ffd5b50565b5f81359050611dea81611dc6565b92915050565b611df981611cb5565b8114611e03575f5ffd5b50565b5f81359050611e1481611df0565b92915050565b5f5f60408385031215611e3057611e2f6118dc565b5b5f611e3d85828601611ddc565b9250506020611e4e85828601611e06565b9150509250929050565b5f602082019050611e6b5f830184611c4e565b92915050565b5f5f5f60408486031215611e8857611e876118dc565b5b5f611e958682870161192a565b935050602084013567ffffffffffffffff811115611eb657611eb56118e0565b5b611ec286828701611a43565b92509250509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611f32826119b1565b9150611f3d836119b1565b925082611f4d57611f4c611ece565b5b828204905092915050565b5f611f62826119b1565b9150611f6d836119b1565b9250828203905081811115611f8557611f84611efb565b5b92915050565b5f611f95826119b1565b91505f8203611fa757611fa6611efb565b5b600182039050919050565b5f611fbc826119b1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611fee57611fed611efb565b5b600182019050919050565b5f60208201905061200c5f830184611d82565b92915050565b5f6040820190506120255f830185611d82565b6120326020830184611c4e565b9392505050565b5f819050919050565b5f61205c61205761205284611c8b565b612039565b6119b1565b9050919050565b61206c81612042565b82525050565b5f6040820190506120855f830185612063565b6120926020830184611c4e565b9392505050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f6120d28385612099565b93506120df8385846120a9565b6120e8836120b7565b840190509392505050565b5f60a0820190506121065f830189611c4e565b6121136020830188611c4e565b81810360408301526121268186886120c7565b90506121356060830185611a0f565b6121426080830184611a0f565b979650505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f612184826119b1565b915061218f836119b1565b92508282019050808211156121a7576121a6611efb565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6020820190508181035f8301526121f38184866120c7565b90509392505050565b5f81905092915050565b50565b5f6122145f836121fc565b915061221f82612206565b5f82019050919050565b5f61223382612209565b915081905091905056fe60c06040526001805f6101000a81548160ff021916908315150217905550348015610028575f5ffd5b50604051612309380380612309833981810160405281019061004a919061052f565b60015f819055505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806100b657505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156100ed576040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff163b1461013d576040517f7305bdbd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8173ffffffffffffffffffffffffffffffffffffffff163b0361018d576040517f14b9535000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505083600381905550426004819055508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508460058190555061021c8360045461022660201b60201c565b50505050506109ff565b5f825103610260576040517f23e6b99500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611400825111156102ad5781516114006040517f711f64300000000000000000000000000000000000000000000000000000000081526004016102a49291906105d1565b60405180910390fd5b604051806040016040528083815260200182815250600660ce54606481106102d8576102d76105f8565b5b600202015f820151815f0190816102ef919061082c565b50602082015181600101559050506064600160ce5461030e9190610928565b6103189190610988565b60ce81905550606460cf5410156103415760cf5f81548092919061033b906109b8565b91905055505b8160029081610350919061082c565b505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b61037881610366565b8114610382575f5ffd5b50565b5f815190506103938161036f565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6103e7826103a1565b810181811067ffffffffffffffff82111715610406576104056103b1565b5b80604052505050565b5f610418610355565b905061042482826103de565b919050565b5f67ffffffffffffffff821115610443576104426103b1565b5b61044c826103a1565b9050602081019050919050565b8281835e5f83830152505050565b5f61047961047484610429565b61040f565b9050828152602081018484840111156104955761049461039d565b5b6104a0848285610459565b509392505050565b5f82601f8301126104bc576104bb610399565b5b81516104cc848260208601610467565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6104fe826104d5565b9050919050565b61050e816104f4565b8114610518575f5ffd5b50565b5f8151905061052981610505565b92915050565b5f5f5f5f5f60a086880312156105485761054761035e565b5b5f61055588828901610385565b955050602061056688828901610385565b945050604086015167ffffffffffffffff81111561058757610586610362565b5b610593888289016104a8565b93505060606105a48882890161051b565b92505060806105b58882890161051b565b9150509295509295909350565b6105cb81610366565b82525050565b5f6040820190506105e45f8301856105c2565b6105f160208301846105c2565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061067357607f821691505b6020821081036106865761068561062f565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026106e87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826106ad565b6106f286836106ad565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61072d61072861072384610366565b61070a565b610366565b9050919050565b5f819050919050565b61074683610713565b61075a61075282610734565b8484546106b9565b825550505050565b5f5f905090565b610771610762565b61077c81848461073d565b505050565b5b8181101561079f576107945f82610769565b600181019050610782565b5050565b601f8211156107e4576107b58161068c565b6107be8461069e565b810160208510156107cd578190505b6107e16107d98561069e565b830182610781565b50505b505050565b5f82821c905092915050565b5f6108045f19846008026107e9565b1980831691505092915050565b5f61081c83836107f5565b9150826002028217905092915050565b61083582610625565b67ffffffffffffffff81111561084e5761084d6103b1565b5b610858825461065c565b6108638282856107a3565b5f60209050601f831160018114610894575f8415610882578287015190505b61088c8582610811565b8655506108f3565b601f1984166108a28661068c565b5f5b828110156108c9578489015182556001820191506020850194506020810190506108a4565b868310156108e657848901516108e2601f8916826107f5565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61093282610366565b915061093d83610366565b9250828201905080821115610955576109546108fb565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61099282610366565b915061099d83610366565b9250826109ad576109ac61095b565b5b828206905092915050565b5f6109c282610366565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036109f4576109f36108fb565b5b600182019050919050565b60805160a0516118b1610a585f395f81816103bb0152818161054f015281816107cd01528181610853015281816109d40152610ae301525f818161039701528181610529015281816106f10152610a2901526118b15ff3fe6080604052600436106100f2575f3560e01c80633bc5de3011610089578063a7a38f0b11610058578063a7a38f0b146102ea578063b334b63414610327578063bb4013d31461034f578063c45a01551461036b576100f2565b80633bc5de3014610244578063483d45bd1461026e5780634d4061ec146102985780639c5f9481146102c0576100f2565b806322fce66f116100c557806322fce66f1461019c5780632c20dc89146101c65780632fbf8d2a146101f05780633a9c9ffc1461021a576100f2565b8063085d4883146100f6578063118d93301461012057806314bcec9f1461014857806322f3e2d414610172575b5f5ffd5b348015610101575f5ffd5b5061010a610395565b6040516101179190610ed9565b60405180910390f35b34801561012b575f5ffd5b5061014660048036038101906101419190610f2d565b6103b9565b005b348015610153575f5ffd5b5061015c610448565b6040516101699190610f67565b60405180910390f35b34801561017d575f5ffd5b5061018661044e565b6040516101939190610f9a565b60405180910390f35b3480156101a7575f5ffd5b506101b0610460565b6040516101bd9190610f67565b60405180910390f35b3480156101d1575f5ffd5b506101da610466565b6040516101e79190610f67565b60405180910390f35b3480156101fb575f5ffd5b5061020461046c565b6040516102119190610f67565b60405180910390f35b348015610225575f5ffd5b5061022e610472565b60405161023b9190610f67565b60405180910390f35b34801561024f575f5ffd5b50610258610478565b6040516102659190611023565b60405180910390f35b348015610279575f5ffd5b50610282610526565b60405161028f9190610ed9565b60405180910390f35b3480156102a3575f5ffd5b506102be60048036038101906102b9919061106d565b61054d565b005b3480156102cb575f5ffd5b506102d46105ee565b6040516102e19190611023565b60405180910390f35b3480156102f5575f5ffd5b50610310600480360381019061030b9190610f2d565b610642565b60405161031e929190611098565b60405180910390f35b348015610332575f5ffd5b5061034d60048036038101906103489190610f2d565b6106ef565b005b61036960048036038101906103649190611127565b61077e565b005b348015610376575f5ffd5b5061037f610ae1565b60405161038c91906111cd565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461043e576040517f0234e5ea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060038190555050565b60045481565b60015f9054906101000a900460ff1681565b61140081565b60035481565b60055481565b60cf5481565b606060015f9054906101000a900460ff166104bf576040517fe8eb59c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600554600454426104d09190611213565b1115610519576004546005546040517f72fc46a7000000000000000000000000000000000000000000000000000000008152600401610510929190611246565b60405180910390fd5b610521610b05565b905090565b5f7f0000000000000000000000000000000000000000000000000000000000000000905090565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105d2576040517f0234e5ea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060015f6101000a81548160ff02191690831515021790555050565b606060015f9054906101000a900460ff16610635576040517fe8eb59c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61063d610b05565b905090565b60068160648110610651575f80fd5b600202015f91509050805f0180546106689061129a565b80601f01602080910402602001604051908101604052809291908181526020018280546106949061129a565b80156106df5780601f106106b6576101008083540402835291602001916106df565b820191905f5260205f20905b8154815290600101906020018083116106c257829003601f168201915b5050505050908060010154905082565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610774576040517f7a4443f900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060058190555050565b610786610bdc565b60015f9054906101000a900460ff166107cb576040517fe8eb59c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610850576040517f0234e5ea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166379502c556040518163ffffffff1660e01b81526004016040805180830381865afa1580156108b9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108dd9190611345565b60ff1691505060035434101561092e57600354346040517fb99e2ab7000000000000000000000000000000000000000000000000000000008152600401610925929190611246565b60405180910390fd5b60035434111561097957600354346040517f08aed925000000000000000000000000000000000000000000000000000000008152600401610970929190611246565b60405180910390fd5b5f429050806004819055506109d184848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505082610c20565b5f7f000000000000000000000000000000000000000000000000000000000000000090505f8390505f60648234610a089190611383565b610a1291906113f1565b90505f8134610a219190611213565b9050610a6c817f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610d4f90919063ffffffff16565b610a95828573ffffffffffffffffffffffffffffffffffffffff16610d4f90919063ffffffff16565b7f60badeea04f31d7e2d2b86b618aaddc0a3239fa5b361b407b25d3f1615d577bf600286604051610ac79291906114b4565b60405180910390a1505050505050610add610e91565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60605f60028054610b159061129a565b905003610b4e576040517f779619da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028054610b5b9061129a565b80601f0160208091040260200160405190810160405280929190818152602001828054610b879061129a565b8015610bd25780601f10610ba957610100808354040283529160200191610bd2565b820191905f5260205f20905b815481529060010190602001808311610bb557829003601f168201915b5050505050905090565b60025f5403610c17576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025f81905550565b5f825103610c5a576040517f23e6b99500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61140082511115610ca75781516114006040517f711f6430000000000000000000000000000000000000000000000000000000008152600401610c9e929190611246565b60405180910390fd5b604051806040016040528083815260200182815250600660ce5460648110610cd257610cd16114e2565b5b600202015f820151815f019081610ce991906116c1565b50602082015181600101559050506064600160ce54610d089190611790565b610d1291906117c3565b60ce81905550606460cf541015610d3b5760cf5f815480929190610d35906117f3565b91905055505b8160029081610d4a91906116c1565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610db4576040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8103610ded576040517f8b12710700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682604051610e1290611867565b5f6040518083038185875af1925050503d805f8114610e4c576040519150601f19603f3d011682016040523d82523d5f602084013e610e51565b606091505b5050905080610e8c576040517f3d56f70700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60015f81905550565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610ec382610e9a565b9050919050565b610ed381610eb9565b82525050565b5f602082019050610eec5f830184610eca565b92915050565b5f5ffd5b5f5ffd5b5f819050919050565b610f0c81610efa565b8114610f16575f5ffd5b50565b5f81359050610f2781610f03565b92915050565b5f60208284031215610f4257610f41610ef2565b5b5f610f4f84828501610f19565b91505092915050565b610f6181610efa565b82525050565b5f602082019050610f7a5f830184610f58565b92915050565b5f8115159050919050565b610f9481610f80565b82525050565b5f602082019050610fad5f830184610f8b565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610ff582610fb3565b610fff8185610fbd565b935061100f818560208601610fcd565b61101881610fdb565b840191505092915050565b5f6020820190508181035f83015261103b8184610feb565b905092915050565b61104c81610f80565b8114611056575f5ffd5b50565b5f8135905061106781611043565b92915050565b5f6020828403121561108257611081610ef2565b5b5f61108f84828501611059565b91505092915050565b5f6040820190508181035f8301526110b08185610feb565b90506110bf6020830184610f58565b9392505050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126110e7576110e66110c6565b5b8235905067ffffffffffffffff811115611104576111036110ca565b5b6020830191508360018202830111156111205761111f6110ce565b5b9250929050565b5f5f6020838503121561113d5761113c610ef2565b5b5f83013567ffffffffffffffff81111561115a57611159610ef6565b5b611166858286016110d2565b92509250509250929050565b5f819050919050565b5f61119561119061118b84610e9a565b611172565b610e9a565b9050919050565b5f6111a68261117b565b9050919050565b5f6111b78261119c565b9050919050565b6111c7816111ad565b82525050565b5f6020820190506111e05f8301846111be565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61121d82610efa565b915061122883610efa565b92508282039050818111156112405761123f6111e6565b5b92915050565b5f6040820190506112595f830185610f58565b6112666020830184610f58565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806112b157607f821691505b6020821081036112c4576112c361126d565b5b50919050565b5f6fffffffffffffffffffffffffffffffff82169050919050565b6112ee816112ca565b81146112f8575f5ffd5b50565b5f81519050611309816112e5565b92915050565b5f60ff82169050919050565b6113248161130f565b811461132e575f5ffd5b50565b5f8151905061133f8161131b565b92915050565b5f5f6040838503121561135b5761135a610ef2565b5b5f611368858286016112fb565b925050602061137985828601611331565b9150509250929050565b5f61138d82610efa565b915061139883610efa565b92508282026113a681610efa565b915082820484148315176113bd576113bc6111e6565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6113fb82610efa565b915061140683610efa565b925082611416576114156113c4565b5b828204905092915050565b5f819050815f5260205f209050919050565b5f815461143f8161129a565b6114498186610fbd565b9450600182165f81146114635760018114611479576114ab565b60ff1983168652811515602002860193506114ab565b61148285611421565b5f5b838110156114a357815481890152600182019150602081019050611484565b808801955050505b50505092915050565b5f6040820190508181035f8301526114cc8185611433565b90506114db6020830184610f58565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026115867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261154b565b611590868361154b565b95508019841693508086168417925050509392505050565b5f6115c26115bd6115b884610efa565b611172565b610efa565b9050919050565b5f819050919050565b6115db836115a8565b6115ef6115e7826115c9565b848454611557565b825550505050565b5f5f905090565b6116066115f7565b6116118184846115d2565b505050565b5b81811015611634576116295f826115fe565b600181019050611617565b5050565b601f8211156116795761164a81611421565b6116538461153c565b81016020851015611662578190505b61167661166e8561153c565b830182611616565b50505b505050565b5f82821c905092915050565b5f6116995f198460080261167e565b1980831691505092915050565b5f6116b1838361168a565b9150826002028217905092915050565b6116ca82610fb3565b67ffffffffffffffff8111156116e3576116e261150f565b5b6116ed825461129a565b6116f8828285611638565b5f60209050601f831160018114611729575f8415611717578287015190505b61172185826116a6565b865550611788565b601f19841661173786611421565b5f5b8281101561175e57848901518255600182019150602085019450602081019050611739565b8683101561177b5784890151611777601f89168261168a565b8355505b6001600288020188555050505b505050505050565b5f61179a82610efa565b91506117a583610efa565b92508282019050808211156117bd576117bc6111e6565b5b92915050565b5f6117cd82610efa565b91506117d883610efa565b9250826117e8576117e76113c4565b5b828206905092915050565b5f6117fd82610efa565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361182f5761182e6111e6565b5b600182019050919050565b5f81905092915050565b50565b5f6118525f8361183a565b915061185d82611844565b5f82019050919050565b5f61187182611847565b915081905091905056fea264697066735822122006cf6fe66325cb292f6f7e02a5d61be288e6c5c5ad287d318d3650106bff6d5a64736f6c634300081e0033a2646970667358221220119718c8d91f3174dac2bf2f4a3fde6971d6d78351fe54a7632f91ca9d81271864736f6c634300081e0033\";\n\n \n type OracleFactoryConstructorParams = [signer?: Signer] | ConstructorParameters<typeof ContractFactory>;\n\n const isSuperArgs = (xs: OracleFactoryConstructorParams): xs is ConstructorParameters<typeof ContractFactory> =>\n xs.length > 1\n \n\n export class OracleFactory__factory extends ContractFactory {\n \n constructor(...args: OracleFactoryConstructorParams) {\n if (isSuperArgs(args)) {\n super(...args);\n } else {\n super(_abi, _bytecode, args[0]);\n }\n \n }\n \n override getDeployTransaction(_owner: AddressLike, overrides?: NonPayableOverrides & { from?: string }): Promise<ContractDeployTransaction> {\n return super.getDeployTransaction(_owner, overrides || {});\n };\n override deploy(_owner: AddressLike, overrides?: NonPayableOverrides & { from?: string }) {\n return super.deploy(_owner, overrides || {}) as Promise<OracleFactory & {\n deploymentTransaction(): ContractTransactionResponse;\n }>;\n }\n override connect(runner: ContractRunner | null): OracleFactory__factory {\n return super.connect(runner) as OracleFactory__factory;\n }\n \n \n static readonly bytecode = _bytecode;\n static readonly abi = _abi;\n static createInterface(): OracleFactoryInterface {\n return new Interface(_abi) as OracleFactoryInterface;\n }\n \n override attach(address: string | Addressable): OracleFactory {\n return super.attach(address) as OracleFactory;\n }\n static connect(address: string, runner?: ContractRunner | null): OracleFactory {\n return new Contract(address, _abi, runner) as unknown as OracleFactory;\n }\n }\n\n \n "],
5
+ "mappings": "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",
6
6
  "names": ["Contract", "ContractFactory", "Interface", "_abi", "_bytecode", "isSuperArgs", "xs", "OracleFactory__factory", "args", "_owner", "overrides", "runner", "address"]
7
7
  }