




from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available, is_vision_available


lowerCAmelCase__						=	{
    """configuration_oneformer""": ["""ONEFORMER_PRETRAINED_CONFIG_ARCHIVE_MAP""", """OneFormerConfig"""],
    """processing_oneformer""": ["""OneFormerProcessor"""],
}

try:
	if not is_vision_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	lowerCAmelCase__						=	["""OneFormerImageProcessor"""]

try:
	if not is_torch_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	lowerCAmelCase__						=	[
	    """ONEFORMER_PRETRAINED_MODEL_ARCHIVE_LIST""",
	    """OneFormerForUniversalSegmentation""",
	    """OneFormerModel""",
	    """OneFormerPreTrainedModel""",
	]

if TYPE_CHECKING:
	from .configuration_oneformer import ONEFORMER_PRETRAINED_CONFIG_ARCHIVE_MAP, OneFormerConfig
	from .processing_oneformer import OneFormerProcessor

	try:
		if not is_vision_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .image_processing_oneformer import OneFormerImageProcessor
	try:
		if not is_torch_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_oneformer import (
		    ONEFORMER_PRETRAINED_MODEL_ARCHIVE_LIST,
		    OneFormerForUniversalSegmentation,
		    OneFormerModel,
		    OneFormerPreTrainedModel,
		)


else:
	import sys

	lowerCAmelCase__						=	_LazyModule(__name__, globals()["""__file__"""], _import_structure)




def    lowerCAmelCase__							(		SCREAMING_SNAKE_CASE_:							list		,    SCREAMING_SNAKE_CASE_:							int		,    SCREAMING_SNAKE_CASE_:							int		,    SCREAMING_SNAKE_CASE_:							int )     -> int:




				'''simple docstring'''





				A__            =     int((lower_bound + upper_bound) // 2 )
				if array[r] == value:
								return r
				if lower_bound >= upper_bound:
								return -1
				if array[r] < value:
								return binary_search(SCREAMING_SNAKE_CASE_		,    r + 1		,    SCREAMING_SNAKE_CASE_		,    SCREAMING_SNAKE_CASE_ )
				else:
								return binary_search(SCREAMING_SNAKE_CASE_		,    SCREAMING_SNAKE_CASE_		,    r - 1		,    SCREAMING_SNAKE_CASE_ )



def    lowerCAmelCase__							(		SCREAMING_SNAKE_CASE_:							int		,    SCREAMING_SNAKE_CASE_:							list )     -> list:




				'''simple docstring'''





				A__            =     0
				if matrix[index][0] == value:
								return [index, 0]
				while index < len(SCREAMING_SNAKE_CASE_ ) and matrix[index][0] < value:
								A__            =     binary_search(matrix[index]		,    0		,    len(matrix[index] ) - 1		,    SCREAMING_SNAKE_CASE_ )
								if r != -1:
												return [index, r]
								index += 1
				return [-1, -1]


if __name__ == "__main__":
	import doctest

	doctest.testmod()

