digraph "indexed-fs" { node [shape=record]; subgraph cluster_file1 { graph [label="file1.txt", fontname="monospace"] file1 [label=" Index | { Block 1 | Block 2 | Block 3 }"]; f1block3 [label="r sit"]; f1block2 [label="sum dolo"]; f1block1 [label="Lorem ip"]; file1:f1i3 -> f1block3 file1:f1i2 -> f1block2 file1:f1i1 -> f1block1 } subgraph cluster_file2 { graph [label="file2.exe", fontname="monospace", rankdir=LR] file2 [label=" Index | { Indirect 1 | Indirect 2 | Indirect 3}"]; file2:f2i3:e -> ind3:f2i3:n file2:f2i2:e -> ind2:f2i2:n file2:f2i1:e -> ind1:f2i1:n subgraph indirect3 { ind3 [label=" Indirect 3 | { Block 1 }"]; f2block7 [label="0000 0000 4000 3800"]; ind3:f2i3b1:e -> f2block7:n; } subgraph indirect2 { ind2 [label=" Indirect 2 | { Block 1 | Block 2 | Block 3}"]; f2block6 [label="a0f6 1000 0000 0000"]; f2block5 [label="4000 0000 0000 0000"]; f2block4 [label="2015 0300 0000 0000"]; ind2:f2i2b1:e -> f2block4:n; ind2:f2i2b2:e -> f2block5:n; ind2:f2i2b3:e -> f2block6:n; } subgraph indirect1 { ind1 [label=" Indirect 1 | { Block 1 | Block 2 | Block 3}"]; f2block3 [label="0300 3e00 0100 0000"]; f2block2 [label="0000 0000 0000 0000"]; f2block1 [label="7f45 4c46 0201 0100"]; ind1:f2i1b1:e -> f2block1:n; ind1:f2i1b2:e -> f2block2:n; ind1:f2i1b3:e -> f2block3:n; } } subgraph cluster_dir { label="directory" dfile1:ind:c -> file1:ind1 dfile2:ind:c -> file2:ind1 dfile1 [label="file1.txt | •", fontname="monospace"] dfile2 [label="file2.exe | •", fontname="monospace"] } }