





'''simple docstring'''


from ..utils import DummyObject, requires_backends

class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				int								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Union[str, Any]:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[Any]:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Union[str, Any]:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				int								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[Any]:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[Any]:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Any:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				List[Any]								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Any:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				List[Any]:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[Any]:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				List[Any]								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[int]:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				List[Any]:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				List[str]:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				Dict								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				int:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[Any]:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				List[str]:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				List[Any]								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				List[str]:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				str:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				List[str]:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				int								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Any:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				str:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				List[Any]:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				Optional[int]								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[Any]:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Tuple:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				List[Any]:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				Union[str, Any]								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[Any]:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				int:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				List[str]:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				Optional[int]								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[Any]:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[int]:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[int]:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				Union[str, Any]								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				str:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Union[str, Any]:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				int:
     requires_backends(cls      ,  ["torch"]		)







def 						__a(*SCREAMING_SNAKE_CASE_	:       Optional[Any]		,							**SCREAMING_SNAKE_CASE_	:       int     ):



    '''simple docstring'''





    requires_backends(SCREAMING_SNAKE_CASE_		,							["torch"]     )


def 						__a(*SCREAMING_SNAKE_CASE_	:       str		,							**SCREAMING_SNAKE_CASE_	:       str     ):



    '''simple docstring'''





    requires_backends(SCREAMING_SNAKE_CASE_		,							["torch"]     )


def 						__a(*SCREAMING_SNAKE_CASE_	:       str		,							**SCREAMING_SNAKE_CASE_	:       List[Any]     ):



    '''simple docstring'''





    requires_backends(SCREAMING_SNAKE_CASE_		,							["torch"]     )


def 						__a(*SCREAMING_SNAKE_CASE_	:       Optional[Any]		,							**SCREAMING_SNAKE_CASE_	:       List[str]     ):



    '''simple docstring'''





    requires_backends(SCREAMING_SNAKE_CASE_		,							["torch"]     )


def 						__a(*SCREAMING_SNAKE_CASE_	:       List[Any]		,							**SCREAMING_SNAKE_CASE_	:       List[str]     ):



    '''simple docstring'''





    requires_backends(SCREAMING_SNAKE_CASE_		,							["torch"]     )


def 						__a(*SCREAMING_SNAKE_CASE_	:       Tuple		,							**SCREAMING_SNAKE_CASE_	:       str     ):



    '''simple docstring'''





    requires_backends(SCREAMING_SNAKE_CASE_		,							["torch"]     )


def 						__a(*SCREAMING_SNAKE_CASE_	:       int		,							**SCREAMING_SNAKE_CASE_	:       Dict     ):



    '''simple docstring'''





    requires_backends(SCREAMING_SNAKE_CASE_		,							["torch"]     )

class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				Dict								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[Any]:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Dict:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Dict:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				Union[str, Any]								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				str:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Tuple:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				List[Any]:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				Optional[Any]								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[Any]:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Tuple:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				List[Any]:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				List[Any]								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Tuple:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Union[str, Any]:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				int:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				List[Any]								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				int:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[int]:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[Any]:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				Any								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[int]:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[int]:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[int]:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				Optional[int]								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Dict:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				List[str]:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Tuple:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				List[str]								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				List[Any]:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				List[str]:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Any:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				Any								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				int:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				int:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Dict:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				List[str]								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[Any]:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[int]:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Any:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				List[str]								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				int:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[Any]:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[Any]:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				Optional[int]								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[Any]:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				str:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Dict:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				Union[str, Any]								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Any:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				str:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Dict:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				List[Any]								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Any:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Tuple:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Union[str, Any]:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				Optional[int]								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				int:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				int:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				List[str]:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				str								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				int:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[int]:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				List[Any]:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				Tuple								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				str:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[Any]:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				List[str]:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				Union[str, Any]								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				str:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Union[str, Any]:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Tuple:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				List[str]								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[Any]:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[int]:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				str:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				Any								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				str:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				List[str]:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				int:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				Union[str, Any]								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				List[str]:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Any:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Dict:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				Union[str, Any]								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				int:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Any:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				str:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				int								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Union[str, Any]:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[Any]:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Tuple:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				Tuple								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				List[Any]:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Dict:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				int:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				str								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				List[Any]:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[int]:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[int]:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				Dict								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				str:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Any:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Tuple:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				Any								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				int:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Tuple:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[Any]:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				List[str]								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[Any]:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[Any]:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[Any]:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				int								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[Any]:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Union[str, Any]:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Dict:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				Dict								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Any:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				List[Any]:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Dict:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				str								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				List[Any]:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Tuple:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				List[Any]:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				int								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Union[str, Any]:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				List[str]:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				List[Any]:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				List[Any]								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				List[Any]:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				List[Any]:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Dict:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				List[Any]								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Union[str, Any]:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				str:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Union[str, Any]:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				List[str]								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[int]:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[Any]:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Union[str, Any]:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				Tuple								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[Any]:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Dict:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Tuple:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				Union[str, Any]								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				str:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Any:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Union[str, Any]:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				str								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Optional[int]:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Tuple:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				str:
     requires_backends(cls      ,  ["torch"]		)







class  lowerCAmelCase_		(		metaclass=__magic_name__		):
 __lowerCamelCase    :				Union[str, Any]								=       ["torch"]




 def __init__(						self      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Union[str, Any]:
     requires_backends(self      ,  ["torch"]		)




 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				str:
     requires_backends(cls      ,  ["torch"]		)





 @classmethod
 def 				_snake_case (						cls      ,  *_lowerCAmelCase      ,  **_lowerCAmelCase		)     ->				Dict:
     requires_backends(cls      ,  ["torch"]		)









'''simple docstring'''






from __future__ import annotations

lowerCAmelCase									=   list[tuple[int, int]]

lowerCAmelCase									=   [
    [0, 0, 0, 0, 0, 0, 0],
    [0, 1, 0, 0, 0, 0, 0],  # 0 are free path whereas 1's are obstacles
    [0, 0, 0, 0, 0, 0, 0],
    [0, 0, 1, 0, 0, 0, 0],
    [1, 0, 1, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 0, 0],
    [0, 0, 0, 0, 1, 0, 0],
]

lowerCAmelCase									=   ([-1, 0], [0, -1], [1, 0], [0, 1])  # up, left, down, right
class 		lowerCamelCase	:



	def __init__( self		,   a_		,   a_		,   a_		,   a_		,   a_		,   a_		,   ):
			lowerCAmelCase  :     int       						= pos_x
			lowerCAmelCase  :     Union[str, Any]       						= pos_y
			lowerCAmelCase  :     Optional[Any]       						= (pos_y, pos_x)
			lowerCAmelCase  :     Union[str, Any]       						= goal_x
			lowerCAmelCase  :     Tuple       						= goal_y
			lowerCAmelCase  :     str       						= g_cost
			lowerCAmelCase  :     Dict       						= parent
			lowerCAmelCase  :     List[Any]       						= self.calculate_heuristic()



	def 	_lowerCamelCase     ( self						):
			lowerCAmelCase  :     int       						= abs(self.pos_x - self.goal_x						)
			lowerCAmelCase  :     Any       						= abs(self.pos_y - self.goal_y						)
			return dx + dy





	def __lt__( self		,   a_						):
			return self.f_cost < other.f_cost






class 		lowerCamelCase	:



	def __init__( self		,   a_		,   a_						):
			lowerCAmelCase  :     Union[str, Any]       						= Node(start[1]		,   start[0]		,   goal[1]		,   goal[0]		,   0		,   a_						)
			lowerCAmelCase  :     Union[str, Any]       						= Node(goal[1]		,   goal[0]		,   goal[1]		,   goal[0]		,   99_999		,   a_						)

			lowerCAmelCase  :     Tuple       						= [self.start]
			lowerCAmelCase  :     list[Node]       						= []

			lowerCAmelCase  :     Tuple       						= False



	def 	_lowerCamelCase     ( self						):
			while self.open_nodes:
					# Open Nodes are sorted using __lt__
					self.open_nodes.sort()
					lowerCAmelCase  :     List[Any]       						= self.open_nodes.pop(0						)

					if current_node.pos == self.target.pos:
							lowerCAmelCase  :     Tuple       						= True
							return self.retrace_path(a_						)

					self.closed_nodes.append(a_						)
					lowerCAmelCase  :     Tuple       						= self.get_successors(a_						)

					for child_node in successors:
							if child_node in self.closed_nodes:
									continue

							if child_node not in self.open_nodes:
									self.open_nodes.append(a_						)
							else:
									# retrieve the best current path
									lowerCAmelCase  :     int       						= self.open_nodes.pop(self.open_nodes.index(a_						)						)

									if child_node.g_cost < better_node.g_cost:
											self.open_nodes.append(a_						)
									else:
											self.open_nodes.append(a_						)

			if not self.reached:
					return [self.start.pos]
			return None



	def 	_lowerCamelCase     ( self		,   a_						):
			lowerCAmelCase  :     Union[str, Any]       						= []
			for action in delta:
					lowerCAmelCase  :     Dict       						= parent.pos_x + action[1]
					lowerCAmelCase  :     str       						= parent.pos_y + action[0]

					if not (0 <= pos_x <= len(grid[0]						) - 1 and 0 <= pos_y <= len(a_						) - 1):
							continue

					if grid[pos_y][pos_x] != 0:
							continue

					successors.append(
					    Node(
					        a_		,   a_		,   self.target.pos_y		,   self.target.pos_x		,   parent.g_cost + 1		,   a_		,   )						)
			return successors





	def 	_lowerCamelCase     ( self		,   a_						):
			lowerCAmelCase  :     Union[str, Any]       						= node
			lowerCAmelCase  :     List[str]       						= []
			while current_node is not None:
					path.append((current_node.pos_y, current_node.pos_x)						)
					lowerCAmelCase  :     Dict       						= current_node.parent
			path.reverse()
			return path


if __name__ == "__main__":
					lowerCAmelCase									=   (0, 0)
					lowerCAmelCase									=   (len(grid) - 1, len(grid[0]) - 1)
					for elem in grid:
										print(elem)

					print("""------""")

					lowerCAmelCase									=   GreedyBestFirst(init, goal)
					lowerCAmelCase									=   greedy_bf.search()
					if path:
										for pos_x, pos_y in path:
															lowerCAmelCase									=   2

										for elem in grid:
															print(elem)



