"""simple docstring"""







_a					:					int=			{0: [2, 3], 1: [0], 2: [1], 3: [4], 4: []}

_a					:					Optional[int]=			{0: [1, 2, 3], 1: [2], 2: [0], 3: [4], 4: [5], 5: [3]}
def   __UpperCAmelCase    (   UpperCAmelCase_   :    dict[int, list[int]]      ,							UpperCAmelCase_   :    int      ,							UpperCAmelCase_   :    list[bool]  )							->      list[int]:

	'''simple docstring'''





	__snake_case      :							Tuple						=			True
	__snake_case      :							Optional[Any]						=			[]

	for neighbour in graph[vert]:
		if not visited[neighbour]:
			order += topology_sort(UpperCAmelCase_      ,							UpperCAmelCase_      ,							UpperCAmelCase_  )

	order.append(UpperCAmelCase_  )

	return order
def   __UpperCAmelCase    (   UpperCAmelCase_   :    dict[int, list[int]]      ,							UpperCAmelCase_   :    int      ,							UpperCAmelCase_   :    list[bool]  )							->      list[int]:

	'''simple docstring'''





	__snake_case      :							str						=			True
	__snake_case      :							Dict						=			[vert]

	for neighbour in reversed_graph[vert]:
		if not visited[neighbour]:
			component += find_components(UpperCAmelCase_      ,							UpperCAmelCase_      ,							UpperCAmelCase_  )

	return component

def   __UpperCAmelCase    (   UpperCAmelCase_   :    dict[int, list[int]]  )							->      list[list[int]]:

	'''simple docstring'''





	__snake_case      :							Tuple						=			len(UpperCAmelCase_  ) * [False]
	__snake_case      :							dict[int, list[int]]						=			{vert: [] for vert in range(len(UpperCAmelCase_  )  )}

	for vert, neighbours in graph.items():
		for neighbour in neighbours:
			reversed_graph[neighbour].append(UpperCAmelCase_  )

	__snake_case      :							Tuple						=			[]
	for i, was_visited in enumerate(UpperCAmelCase_  ):
		if not was_visited:
			order += topology_sort(UpperCAmelCase_      ,							UpperCAmelCase_      ,							UpperCAmelCase_  )

	__snake_case      :							int						=			[]
	__snake_case      :							List[str]						=			len(UpperCAmelCase_  ) * [False]

	for i in range(len(UpperCAmelCase_  )  ):
		__snake_case      :							str						=			order[len(UpperCAmelCase_  ) - i - 1]
		if not visited[vert]:
			__snake_case      :							int						=			find_components(UpperCAmelCase_      ,							UpperCAmelCase_      ,							UpperCAmelCase_  )
			components_list.append(UpperCAmelCase_  )

	return components_list






"""simple docstring"""







from __future__ import annotations

import os
from typing import Any

import requests

_a					:					int=			"https://api.github.com"

# https://docs.github.com/en/free-pro-team@latest/rest/reference/users#get-the-authenticated-user
_a					:					Dict=			BASE_URL + "/user"

# https://github.com/settings/tokens
_a					:					Union[str, Any]=			os.environ.get("USER_TOKEN", "")
def   __UpperCAmelCase    (   UpperCAmelCase_   :    str  )							->      dict[Any, Any]:

	'''simple docstring'''





	__snake_case      :							Tuple						=			{
	    'Authorization': F"token {auth_token}",
	    'Accept': 'application/vnd.github.v3+json',
	}
	return requests.get(UpperCAmelCase_      ,							headers=UpperCAmelCase_  ).json()


if __name__ == "__main__":  # pragma: no cover
	if USER_TOKEN:
		for key, value in fetch_github_info(USER_TOKEN).items():
			print(f'''{key}: {value}''')
	else:
		raise ValueError("'USER_TOKEN' field cannot be empty.")





