<｜begin▁of▁sentence｜>### Instruction:
Imagine you're plotting out different routes for an adventure expedition, where each checkpoint is a node, and the paths between them are directed trails, symbolizing a one-way trek. Your map contains trails like this: from checkpoint 0 to checkpoint 1, from 1 to 2, from 2 back to 0, from 3 to 4, from 4 to 5, from 5 back to 3, and also a trail from 2 to 3.

To make the map more navigable, you want to consolidate areas where you can hike in circles endlessly (strongly connected regions) into single mega-checkpoints. Your task is to craft a simplified version of the map, the "condensation graph," where each of these circular hiking regions is represented by a single, unified checkpoint.

How can you go about collapsing these interconnected checkpoint clusters into single points on your adventure map using NetworkX? And once you've done that, how can you decipher which original checkpoints correspond to which new mega-checkpoint on this streamlined map?
### Response:
import networkx as nx

# Create a directed graph
G = nx.DiGraph()
G.add_edges_from([(0, 1), (1, 2), (2, 0), (3, 4), (4, 5), (5, 3), (2, 3)])

# Compute the condensation of the graph
C = nx.condensation(G)

# Print nodes with their members in the condensation graph
print(C.nodes.data())

# Print the mapping from original nodes to the condensed nodes
print(C.graph['mapping'])
<|EOT|>
