




"""simple docstring"""





def        _UpperCamelCase     (      UpperCamelCase				)      ->      Optional[int]:


			"""simple docstring"""
			return [
			    {
			        0: [1, 2],
			        1: [0, 2],
			        2: [0, 1, 3, 5],
			        3: [2, 4],
			        4: [3],
			        5: [2, 6, 8],
			        6: [5, 7],
			        7: [6, 8],
			        8: [5, 7],
			    },
			    {
			        0: [6],
			        1: [9],
			        2: [4, 5],
			        3: [4],
			        4: [2, 3],
			        5: [2],
			        6: [0, 7],
			        7: [6],
			        8: [],
			        9: [1],
			    },
			    {
			        0: [4],
			        1: [6],
			        2: [],
			        3: [5, 6, 7],
			        4: [0, 6],
			        5: [3, 8, 9],
			        6: [1, 3, 4, 7],
			        7: [3, 6, 8, 9],
			        8: [5, 7],
			        9: [5, 7],
			    },
			    {
			        0: [1, 3],
			        1: [0, 2, 4],
			        2: [1, 3, 4],
			        3: [0, 2, 4],
			        4: [1, 2, 3],
			    },
			][index]

def        _UpperCamelCase     (      UpperCamelCase				)      ->      list[tuple[int, int]]:


			"""simple docstring"""
			__UpperCAmelCase						:			List[str]												=       0
			__UpperCAmelCase						:			Any												=       len(UpperCamelCase				)  # No of vertices in graph
			__UpperCAmelCase						:			Union[str, Any]												=       [0] * n
			__UpperCAmelCase						:			List[Any]												=       [False] * n

			def dfs(UpperCamelCase					,							UpperCamelCase					,							UpperCamelCase					,							UpperCamelCase				):
						__UpperCAmelCase						:			List[str]												=       True
						__UpperCAmelCase						:			Union[str, Any]												=       id_
						id_ += 1
						for to in graph[at]:
									if to == parent:
												pass
									elif not visited[to]:
												dfs(UpperCamelCase					,							UpperCamelCase					,							UpperCamelCase					,							id_				)
												__UpperCAmelCase						:			Tuple												=       min(low[at]					,							low[to]				)
												if id_ <= low[to]:
															bridges.append((at, to) if at < to else (to, at)				)
									else:
												# This edge is a back edge and cannot be a bridge
												__UpperCAmelCase						:			List[Any]												=       min(low[at]					,							low[to]				)

			__UpperCAmelCase						:			list[tuple[int, int]]												=       []
			for i in range(UpperCamelCase				):
						if not visited[i]:
									dfs(UpperCamelCase					,							-1					,							UpperCamelCase					,							id_				)
			return bridges


if __name__ == "__main__":
					import doctest

					doctest.testmod()






from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_torch_available,
)


SCREAMING_SNAKE_CASE			: str				   =					{
    "configuration_gpt_bigcode": ["GPT_BIGCODE_PRETRAINED_CONFIG_ARCHIVE_MAP", "GPTBigCodeConfig"],
}

try:
 if not is_torch_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 SCREAMING_SNAKE_CASE			: int				   =					[
     "GPT_BIGCODE_PRETRAINED_MODEL_ARCHIVE_LIST",
     "GPTBigCodeForSequenceClassification",
     "GPTBigCodeForTokenClassification",
     "GPTBigCodeForCausalLM",
     "GPTBigCodeModel",
     "GPTBigCodePreTrainedModel",
 ]

if TYPE_CHECKING:
 from .configuration_gpt_bigcode import GPT_BIGCODE_PRETRAINED_CONFIG_ARCHIVE_MAP, GPTBigCodeConfig

 try:
  if not is_torch_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_gpt_bigcode import (
      GPT_BIGCODE_PRETRAINED_MODEL_ARCHIVE_LIST,
      GPTBigCodeForCausalLM,
      GPTBigCodeForSequenceClassification,
      GPTBigCodeForTokenClassification,
      GPTBigCodeModel,
      GPTBigCodePreTrainedModel,
  )


else:
 import sys

 SCREAMING_SNAKE_CASE			: List[Any]				   =					_LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)


