Created
October 13, 2019 15:44
-
-
Save LeadroyaL/4e068787e075e9ff030c4937f5c113bd to your computer and use it in GitHub Desktop.
从汇编语句生成CFG:以balsnctf2019 Hack Compiler为例
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# coding:utf-8 | |
from graphviz import Digraph | |
# 先加载asm文件,按照列表的方式去存 | |
fd = open("main.asm") | |
lines = [l.strip('\n') for l in fd.readlines()] | |
fd.close() | |
# 遍历label,找到label对应的addr(应该是第一个label的addr) | |
label_addrs = dict() | |
for i in range(len(lines)): | |
a = lines[i] | |
if a[0] == '(' and a[-1] == ')': | |
j = i - 1 | |
while True: | |
if lines[j][0] == '(' and lines[j][-1] == ')': | |
j -= 1 | |
continue | |
label_addrs[a.strip("()")] = j + 1 | |
break | |
# 按顺序遍历汇编,以 branch 语句作为BB的结束,以 branch 语句的目的地作为BB的开始 | |
# sps存放各个BB的开头地址 | |
sps = set() | |
sps.add(0) | |
sps.add(len(lines)) | |
for i in range(len(lines) - 1): | |
a, b = lines[i], lines[i + 1] | |
if "JMP" in b or "JLT" in b or "JEQ" in b or "JGT" in b or "JLE" in b or "JNE" in b or "JGE" in b: | |
if "@" in a: | |
# 找到label对应的addr | |
print "Branch at", b, "to", a, label_addrs[a.strip('@')] | |
# 检查是不是最后一个指令 | |
if i + 2 < len(lines): | |
sps.add(i + 2) | |
sps.add(label_addrs[a.strip('@')]) | |
else: | |
print "Indirect Branch:", a, b | |
sps = list(sps) | |
sps.sort() | |
print sps | |
bbs = [] | |
for i in range(len(sps) - 1): | |
a, b = sps[i], sps[i + 1] | |
bbs.append((a, b)) | |
# 使用API,按地址从小到大顺序创建各个BB | |
dot = Digraph(comment='The Round Table') | |
for start, end in bbs: | |
dot.node('Node%d' % start, 'Some data %d~%d' % (start, end), shape='box') | |
# 创建连接关系:如果末尾是普通语句,就连接到下一个,如果末尾是跳转语句,就连接到跳转的位置 | |
for start, end in bbs: | |
bb = lines[start:end] | |
a, b = bb[-2], bb[-1] | |
if "JMP" in b and '@' in a: | |
nextBB = label_addrs[a.strip('@')] | |
dot.edge('Node%d' % start, 'Node%d' % nextBB) | |
elif ("JLT" in b or "JEQ" in b or "JGT" in b or "JLE" in b or "JNE" in b or "JGE" in b) and '@' in a: | |
nextBB = label_addrs[a.strip('@')] | |
dot.edge('Node%d' % start, 'Node%d' % nextBB) | |
dot.edge('Node%d' % start, 'Node%d' % end) | |
else: | |
dot.edge('Node%d' % start, 'Node%d' % end) | |
print dot.source | |
dot.view() # 后面这句就注释了,也可以使用这个命令查看效果 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// The Round Table | |
digraph { | |
Node0 [label="Some data 0~4087" shape=box] | |
Node4087 [label="Some data 4087~4101" shape=box] | |
Node4101 [label="Some data 4101~4115" shape=box] | |
Node4115 [label="Some data 4115~4118" shape=box] | |
Node4118 [label="Some data 4118~4150" shape=box] | |
Node4150 [label="Some data 4150~4173" shape=box] | |
Node4173 [label="Some data 4173~4196" shape=box] | |
Node4196 [label="Some data 4196~4206" shape=box] | |
Node4206 [label="Some data 4206~4245" shape=box] | |
Node4245 [label="Some data 4245~4250" shape=box] | |
Node4250 [label="Some data 4250~4285" shape=box] | |
Node4285 [label="Some data 4285~4294" shape=box] | |
Node4294 [label="Some data 4294~4615" shape=box] | |
Node4615 [label="Some data 4615~4634" shape=box] | |
Node4634 [label="Some data 4634~4642" shape=box] | |
Node4642 [label="Some data 4642~4656" shape=box] | |
Node4656 [label="Some data 4656~4673" shape=box] | |
Node4673 [label="Some data 4673~4695" shape=box] | |
Node4695 [label="Some data 4695~4705" shape=box] | |
Node4705 [label="Some data 4705~4729" shape=box] | |
Node4729 [label="Some data 4729~4783" shape=box] | |
Node4783 [label="Some data 4783~4802" shape=box] | |
Node4802 [label="Some data 4802~4816" shape=box] | |
Node4816 [label="Some data 4816~4830" shape=box] | |
Node4830 [label="Some data 4830~4833" shape=box] | |
Node4833 [label="Some data 4833~4836" shape=box] | |
Node4836 [label="Some data 4836~4853" shape=box] | |
Node4853 [label="Some data 4853~4877" shape=box] | |
Node4877 [label="Some data 4877~4891" shape=box] | |
Node4891 [label="Some data 4891~4903" shape=box] | |
Node4903 [label="Some data 4903~4922" shape=box] | |
Node4922 [label="Some data 4922~4936" shape=box] | |
Node4936 [label="Some data 4936~4948" shape=box] | |
Node4948 [label="Some data 4948~4967" shape=box] | |
Node4967 [label="Some data 4967~5005" shape=box] | |
Node5005 [label="Some data 5005~5011" shape=box] | |
Node5011 [label="Some data 5011~5048" shape=box] | |
Node5048 [label="Some data 5048~5059" shape=box] | |
Node5059 [label="Some data 5059~5063" shape=box] | |
Node5063 [label="Some data 5063~5078" shape=box] | |
Node5078 [label="Some data 5078~5090" shape=box] | |
Node5090 [label="Some data 5090~5100" shape=box] | |
Node5100 [label="Some data 5100~5124" shape=box] | |
Node5124 [label="Some data 5124~5141" shape=box] | |
Node5141 [label="Some data 5141~5191" shape=box] | |
Node5191 [label="Some data 5191~5200" shape=box] | |
Node5200 [label="Some data 5200~5204" shape=box] | |
Node5204 [label="Some data 5204~5233" shape=box] | |
Node5233 [label="Some data 5233~5246" shape=box] | |
Node5246 [label="Some data 5246~5255" shape=box] | |
Node5255 [label="Some data 5255~5270" shape=box] | |
Node5270 [label="Some data 5270~5283" shape=box] | |
Node5283 [label="Some data 5283~5300" shape=box] | |
Node5300 [label="Some data 5300~5324" shape=box] | |
Node5324 [label="Some data 5324~5335" shape=box] | |
Node5335 [label="Some data 5335~5406" shape=box] | |
Node5406 [label="Some data 5406~5415" shape=box] | |
Node5415 [label="Some data 5415~5764" shape=box] | |
Node5764 [label="Some data 5764~5773" shape=box] | |
Node5773 [label="Some data 5773~6046" shape=box] | |
Node6046 [label="Some data 6046~6055" shape=box] | |
Node6055 [label="Some data 6055~6403" shape=box] | |
Node6403 [label="Some data 6403~6412" shape=box] | |
Node6412 [label="Some data 6412~6764" shape=box] | |
Node6764 [label="Some data 6764~6773" shape=box] | |
Node6773 [label="Some data 6773~7046" shape=box] | |
Node7046 [label="Some data 7046~7055" shape=box] | |
Node7055 [label="Some data 7055~7407" shape=box] | |
Node7407 [label="Some data 7407~7416" shape=box] | |
Node7416 [label="Some data 7416~7764" shape=box] | |
Node7764 [label="Some data 7764~7773" shape=box] | |
Node7773 [label="Some data 7773~8046" shape=box] | |
Node8046 [label="Some data 8046~8055" shape=box] | |
Node8055 [label="Some data 8055~8407" shape=box] | |
Node8407 [label="Some data 8407~8416" shape=box] | |
Node8416 [label="Some data 8416~8763" shape=box] | |
Node8763 [label="Some data 8763~8772" shape=box] | |
Node8772 [label="Some data 8772~9041" shape=box] | |
Node9041 [label="Some data 9041~9050" shape=box] | |
Node9050 [label="Some data 9050~9398" shape=box] | |
Node9398 [label="Some data 9398~9407" shape=box] | |
Node9407 [label="Some data 9407~9675" shape=box] | |
Node9675 [label="Some data 9675~9684" shape=box] | |
Node9684 [label="Some data 9684~9957" shape=box] | |
Node9957 [label="Some data 9957~9966" shape=box] | |
Node9966 [label="Some data 9966~10234" shape=box] | |
Node10234 [label="Some data 10234~10243" shape=box] | |
Node10243 [label="Some data 10243~10512" shape=box] | |
Node10512 [label="Some data 10512~10521" shape=box] | |
Node10521 [label="Some data 10521~10794" shape=box] | |
Node10794 [label="Some data 10794~10803" shape=box] | |
Node10803 [label="Some data 10803~11155" shape=box] | |
Node11155 [label="Some data 11155~11164" shape=box] | |
Node11164 [label="Some data 11164~11516" shape=box] | |
Node11516 [label="Some data 11516~11525" shape=box] | |
Node11525 [label="Some data 11525~11877" shape=box] | |
Node11877 [label="Some data 11877~11886" shape=box] | |
Node11886 [label="Some data 11886~12234" shape=box] | |
Node12234 [label="Some data 12234~12243" shape=box] | |
Node12243 [label="Some data 12243~12595" shape=box] | |
Node12595 [label="Some data 12595~12604" shape=box] | |
Node12604 [label="Some data 12604~12877" shape=box] | |
Node12877 [label="Some data 12877~12886" shape=box] | |
Node12886 [label="Some data 12886~13155" shape=box] | |
Node13155 [label="Some data 13155~13164" shape=box] | |
Node13164 [label="Some data 13164~13511" shape=box] | |
Node13511 [label="Some data 13511~13520" shape=box] | |
Node13520 [label="Some data 13520~13793" shape=box] | |
Node13793 [label="Some data 13793~13802" shape=box] | |
Node13802 [label="Some data 13802~14075" shape=box] | |
Node14075 [label="Some data 14075~14084" shape=box] | |
Node14084 [label="Some data 14084~14357" shape=box] | |
Node14357 [label="Some data 14357~14366" shape=box] | |
Node14366 [label="Some data 14366~14639" shape=box] | |
Node14639 [label="Some data 14639~14648" shape=box] | |
Node14648 [label="Some data 14648~15000" shape=box] | |
Node15000 [label="Some data 15000~15009" shape=box] | |
Node15009 [label="Some data 15009~15358" shape=box] | |
Node15358 [label="Some data 15358~15367" shape=box] | |
Node15367 [label="Some data 15367~15719" shape=box] | |
Node15719 [label="Some data 15719~15728" shape=box] | |
Node15728 [label="Some data 15728~16080" shape=box] | |
Node16080 [label="Some data 16080~16089" shape=box] | |
Node16089 [label="Some data 16089~16438" shape=box] | |
Node16438 [label="Some data 16438~16447" shape=box] | |
Node16447 [label="Some data 16447~16790" shape=box] | |
Node16790 [label="Some data 16790~16799" shape=box] | |
Node16799 [label="Some data 16799~17146" shape=box] | |
Node17146 [label="Some data 17146~17155" shape=box] | |
Node17155 [label="Some data 17155~17428" shape=box] | |
Node17428 [label="Some data 17428~17437" shape=box] | |
Node17437 [label="Some data 17437~17710" shape=box] | |
Node17710 [label="Some data 17710~17719" shape=box] | |
Node17719 [label="Some data 17719~17992" shape=box] | |
Node17992 [label="Some data 17992~18001" shape=box] | |
Node18001 [label="Some data 18001~18269" shape=box] | |
Node18269 [label="Some data 18269~18278" shape=box] | |
Node18278 [label="Some data 18278~18630" shape=box] | |
Node18630 [label="Some data 18630~18639" shape=box] | |
Node18639 [label="Some data 18639~18991" shape=box] | |
Node18991 [label="Some data 18991~19000" shape=box] | |
Node19000 [label="Some data 19000~19273" shape=box] | |
Node19273 [label="Some data 19273~19282" shape=box] | |
Node19282 [label="Some data 19282~19634" shape=box] | |
Node19634 [label="Some data 19634~19643" shape=box] | |
Node19643 [label="Some data 19643~19995" shape=box] | |
Node19995 [label="Some data 19995~20004" shape=box] | |
Node20004 [label="Some data 20004~20356" shape=box] | |
Node20356 [label="Some data 20356~20365" shape=box] | |
Node20365 [label="Some data 20365~20638" shape=box] | |
Node20638 [label="Some data 20638~20647" shape=box] | |
Node20647 [label="Some data 20647~20920" shape=box] | |
Node20920 [label="Some data 20920~20929" shape=box] | |
Node20929 [label="Some data 20929~21281" shape=box] | |
Node21281 [label="Some data 21281~21290" shape=box] | |
Node21290 [label="Some data 21290~21639" shape=box] | |
Node21639 [label="Some data 21639~21648" shape=box] | |
Node21648 [label="Some data 21648~22000" shape=box] | |
Node22000 [label="Some data 22000~22009" shape=box] | |
Node22009 [label="Some data 22009~22282" shape=box] | |
Node22282 [label="Some data 22282~22291" shape=box] | |
Node22291 [label="Some data 22291~22643" shape=box] | |
Node22643 [label="Some data 22643~22652" shape=box] | |
Node22652 [label="Some data 22652~22925" shape=box] | |
Node22925 [label="Some data 22925~22934" shape=box] | |
Node22934 [label="Some data 22934~23207" shape=box] | |
Node23207 [label="Some data 23207~23216" shape=box] | |
Node23216 [label="Some data 23216~23489" shape=box] | |
Node23489 [label="Some data 23489~23498" shape=box] | |
Node23498 [label="Some data 23498~23771" shape=box] | |
Node23771 [label="Some data 23771~23780" shape=box] | |
Node23780 [label="Some data 23780~24046" shape=box] | |
Node24046 [label="Some data 24046~24055" shape=box] | |
Node24055 [label="Some data 24055~24399" shape=box] | |
Node24399 [label="Some data 24399~24408" shape=box] | |
Node24408 [label="Some data 24408~24757" shape=box] | |
Node24757 [label="Some data 24757~24766" shape=box] | |
Node24766 [label="Some data 24766~25118" shape=box] | |
Node25118 [label="Some data 25118~25127" shape=box] | |
Node25127 [label="Some data 25127~25400" shape=box] | |
Node25400 [label="Some data 25400~25409" shape=box] | |
Node25409 [label="Some data 25409~25758" shape=box] | |
Node25758 [label="Some data 25758~25767" shape=box] | |
Node25767 [label="Some data 25767~26037" shape=box] | |
Node26037 [label="Some data 26037~26046" shape=box] | |
Node26046 [label="Some data 26046~26314" shape=box] | |
Node26314 [label="Some data 26314~26323" shape=box] | |
Node26323 [label="Some data 26323~26596" shape=box] | |
Node26596 [label="Some data 26596~26605" shape=box] | |
Node26605 [label="Some data 26605~26878" shape=box] | |
Node26878 [label="Some data 26878~26887" shape=box] | |
Node26887 [label="Some data 26887~27160" shape=box] | |
Node27160 [label="Some data 27160~27169" shape=box] | |
Node27169 [label="Some data 27169~27521" shape=box] | |
Node27521 [label="Some data 27521~27530" shape=box] | |
Node27530 [label="Some data 27530~27803" shape=box] | |
Node27803 [label="Some data 27803~27812" shape=box] | |
Node27812 [label="Some data 27812~28164" shape=box] | |
Node28164 [label="Some data 28164~28173" shape=box] | |
Node28173 [label="Some data 28173~28519" shape=box] | |
Node28519 [label="Some data 28519~28528" shape=box] | |
Node28528 [label="Some data 28528~28880" shape=box] | |
Node28880 [label="Some data 28880~28889" shape=box] | |
Node28889 [label="Some data 28889~29152" shape=box] | |
Node29152 [label="Some data 29152~29161" shape=box] | |
Node29161 [label="Some data 29161~29434" shape=box] | |
Node29434 [label="Some data 29434~29443" shape=box] | |
Node29443 [label="Some data 29443~29792" shape=box] | |
Node29792 [label="Some data 29792~29801" shape=box] | |
Node29801 [label="Some data 29801~30153" shape=box] | |
Node30153 [label="Some data 30153~30162" shape=box] | |
Node30162 [label="Some data 30162~30432" shape=box] | |
Node30432 [label="Some data 30432~30441" shape=box] | |
Node30441 [label="Some data 30441~30464" shape=box] | |
Node30464 [label="Some data 30464~30510" shape=box] | |
Node30510 [label="Some data 30510~30578" shape=box] | |
Node30578 [label="Some data 30578~30592" shape=box] | |
Node30592 [label="Some data 30592~30639" shape=box] | |
Node30639 [label="Some data 30639~30664" shape=box] | |
Node30664 [label="Some data 30664~30675" shape=box] | |
Node30675 [label="Some data 30675~30678" shape=box] | |
Node30678 [label="Some data 30678~30696" shape=box] | |
Node30696 [label="Some data 30696~30720" shape=box] | |
Node30720 [label="Some data 30720~30733" shape=box] | |
Node30733 [label="Some data 30733~30760" shape=box] | |
Node30760 [label="Some data 30760~30813" shape=box] | |
Node30813 [label="Some data 30813~30831" shape=box] | |
Node30831 [label="Some data 30831~30844" shape=box] | |
Node30844 [label="Some data 30844~30883" shape=box] | |
Node30883 [label="Some data 30883~30900" shape=box] | |
Node30900 [label="Some data 30900~30913" shape=box] | |
Node30913 [label="Some data 30913~30932" shape=box] | |
Node30932 [label="Some data 30932~30949" shape=box] | |
Node30949 [label="Some data 30949~30962" shape=box] | |
Node30962 [label="Some data 30962~30981" shape=box] | |
Node30981 [label="Some data 30981~30994" shape=box] | |
Node30994 [label="Some data 30994~31012" shape=box] | |
Node31012 [label="Some data 31012~31025" shape=box] | |
Node31025 [label="Some data 31025~31043" shape=box] | |
Node31043 [label="Some data 31043~31056" shape=box] | |
Node31056 [label="Some data 31056~31074" shape=box] | |
Node31074 [label="Some data 31074~31087" shape=box] | |
Node31087 [label="Some data 31087~31105" shape=box] | |
Node31105 [label="Some data 31105~31118" shape=box] | |
Node31118 [label="Some data 31118~31136" shape=box] | |
Node31136 [label="Some data 31136~31149" shape=box] | |
Node31149 [label="Some data 31149~31167" shape=box] | |
Node31167 [label="Some data 31167~31180" shape=box] | |
Node31180 [label="Some data 31180~31198" shape=box] | |
Node31198 [label="Some data 31198~31211" shape=box] | |
Node31211 [label="Some data 31211~31229" shape=box] | |
Node31229 [label="Some data 31229~31242" shape=box] | |
Node31242 [label="Some data 31242~31260" shape=box] | |
Node31260 [label="Some data 31260~31273" shape=box] | |
Node31273 [label="Some data 31273~31291" shape=box] | |
Node31291 [label="Some data 31291~31304" shape=box] | |
Node31304 [label="Some data 31304~31322" shape=box] | |
Node31322 [label="Some data 31322~31335" shape=box] | |
Node31335 [label="Some data 31335~31353" shape=box] | |
Node31353 [label="Some data 31353~31366" shape=box] | |
Node31366 [label="Some data 31366~31384" shape=box] | |
Node31384 [label="Some data 31384~31397" shape=box] | |
Node31397 [label="Some data 31397~31420" shape=box] | |
Node31420 [label="Some data 31420~31438" shape=box] | |
Node31438 [label="Some data 31438~31458" shape=box] | |
Node31458 [label="Some data 31458~31479" shape=box] | |
Node31479 [label="Some data 31479~31505" shape=box] | |
Node31505 [label="Some data 31505~31524" shape=box] | |
Node31524 [label="Some data 31524~31548" shape=box] | |
Node31548 [label="Some data 31548~31593" shape=box] | |
Node31593 [label="Some data 31593~31603" shape=box] | |
Node0 -> Node4087 | |
Node4087 -> Node4115 | |
Node4087 -> Node4101 | |
Node4101 -> Node4115 | |
Node4115 -> Node4087 | |
Node4118 -> Node4150 | |
Node4150 -> Node4173 | |
Node4173 -> Node4285 | |
Node4173 -> Node4196 | |
Node4196 -> Node4285 | |
Node4196 -> Node4206 | |
Node4206 -> Node4250 | |
Node4206 -> Node4245 | |
Node4245 -> Node4250 | |
Node4250 -> Node4285 | |
Node4285 -> Node4173 | |
Node4294 -> Node4615 | |
Node4615 -> Node4634 | |
Node4634 -> Node4656 | |
Node4634 -> Node4642 | |
Node4642 -> Node4656 | |
Node4656 -> Node4673 | |
Node4673 -> Node4877 | |
Node4673 -> Node4695 | |
Node4695 -> Node4705 | |
Node4705 -> Node4853 | |
Node4705 -> Node4729 | |
Node4729 -> Node4783 | |
Node4783 -> Node4833 | |
Node4783 -> Node4802 | |
Node4802 -> Node4830 | |
Node4802 -> Node4816 | |
Node4816 -> Node4830 | |
Node4830 -> Node4802 | |
Node4833 -> Node4783 | |
Node4836 -> Node4853 | |
Node4853 -> Node4877 | |
Node4877 -> Node4922 | |
Node4877 -> Node4891 | |
Node4891 -> Node4705 | |
Node4903 -> Node5063 | |
Node4922 -> Node4967 | |
Node4922 -> Node4936 | |
Node4936 -> Node4705 | |
Node4948 -> Node5063 | |
Node4967 -> Node5011 | |
Node4967 -> Node5005 | |
Node5005 -> Node5011 | |
Node5011 -> Node5048 | |
Node5048 -> Node5078 | |
Node5048 -> Node5059 | |
Node5059 -> Node5063 | |
Node5063 -> Node5078 | |
Node5078 -> Node5100 | |
Node5078 -> Node5090 | |
Node5090 -> Node5100 | |
Node5100 -> Node5048 | |
Node5124 -> Node4634 | |
Node5141 -> Node5191 | |
Node5191 -> Node5204 | |
Node5191 -> Node5200 | |
Node5200 -> Node5204 | |
Node5204 -> Node5255 | |
Node5204 -> Node5233 | |
Node5233 -> Node5255 | |
Node5233 -> Node5246 | |
Node5246 -> Node5255 | |
Node5255 -> Node31593 | |
Node5255 -> Node5270 | |
Node5270 -> Node31593 | |
Node5270 -> Node5283 | |
Node5283 -> Node30678 | |
Node5283 -> Node5300 | |
Node5300 -> Node4673 | |
Node5324 -> Node5335 | |
Node5335 -> Node5415 | |
Node5335 -> Node5406 | |
Node5406 -> Node5415 | |
Node5415 -> Node5773 | |
Node5415 -> Node5764 | |
Node5764 -> Node5773 | |
Node5773 -> Node6055 | |
Node5773 -> Node6046 | |
Node6046 -> Node6055 | |
Node6055 -> Node6412 | |
Node6055 -> Node6403 | |
Node6403 -> Node6412 | |
Node6412 -> Node6773 | |
Node6412 -> Node6764 | |
Node6764 -> Node6773 | |
Node6773 -> Node7055 | |
Node6773 -> Node7046 | |
Node7046 -> Node7055 | |
Node7055 -> Node7416 | |
Node7055 -> Node7407 | |
Node7407 -> Node7416 | |
Node7416 -> Node7773 | |
Node7416 -> Node7764 | |
Node7764 -> Node7773 | |
Node7773 -> Node8055 | |
Node7773 -> Node8046 | |
Node8046 -> Node8055 | |
Node8055 -> Node8416 | |
Node8055 -> Node8407 | |
Node8407 -> Node8416 | |
Node8416 -> Node8772 | |
Node8416 -> Node8763 | |
Node8763 -> Node8772 | |
Node8772 -> Node9050 | |
Node8772 -> Node9041 | |
Node9041 -> Node9050 | |
Node9050 -> Node9407 | |
Node9050 -> Node9398 | |
Node9398 -> Node9407 | |
Node9407 -> Node9684 | |
Node9407 -> Node9675 | |
Node9675 -> Node9684 | |
Node9684 -> Node9966 | |
Node9684 -> Node9957 | |
Node9957 -> Node9966 | |
Node9966 -> Node10243 | |
Node9966 -> Node10234 | |
Node10234 -> Node10243 | |
Node10243 -> Node10521 | |
Node10243 -> Node10512 | |
Node10512 -> Node10521 | |
Node10521 -> Node10803 | |
Node10521 -> Node10794 | |
Node10794 -> Node10803 | |
Node10803 -> Node11164 | |
Node10803 -> Node11155 | |
Node11155 -> Node11164 | |
Node11164 -> Node11525 | |
Node11164 -> Node11516 | |
Node11516 -> Node11525 | |
Node11525 -> Node11886 | |
Node11525 -> Node11877 | |
Node11877 -> Node11886 | |
Node11886 -> Node12243 | |
Node11886 -> Node12234 | |
Node12234 -> Node12243 | |
Node12243 -> Node12604 | |
Node12243 -> Node12595 | |
Node12595 -> Node12604 | |
Node12604 -> Node12886 | |
Node12604 -> Node12877 | |
Node12877 -> Node12886 | |
Node12886 -> Node13164 | |
Node12886 -> Node13155 | |
Node13155 -> Node13164 | |
Node13164 -> Node13520 | |
Node13164 -> Node13511 | |
Node13511 -> Node13520 | |
Node13520 -> Node13802 | |
Node13520 -> Node13793 | |
Node13793 -> Node13802 | |
Node13802 -> Node14084 | |
Node13802 -> Node14075 | |
Node14075 -> Node14084 | |
Node14084 -> Node14366 | |
Node14084 -> Node14357 | |
Node14357 -> Node14366 | |
Node14366 -> Node14648 | |
Node14366 -> Node14639 | |
Node14639 -> Node14648 | |
Node14648 -> Node15009 | |
Node14648 -> Node15000 | |
Node15000 -> Node15009 | |
Node15009 -> Node15367 | |
Node15009 -> Node15358 | |
Node15358 -> Node15367 | |
Node15367 -> Node15728 | |
Node15367 -> Node15719 | |
Node15719 -> Node15728 | |
Node15728 -> Node16089 | |
Node15728 -> Node16080 | |
Node16080 -> Node16089 | |
Node16089 -> Node16447 | |
Node16089 -> Node16438 | |
Node16438 -> Node16447 | |
Node16447 -> Node16799 | |
Node16447 -> Node16790 | |
Node16790 -> Node16799 | |
Node16799 -> Node17155 | |
Node16799 -> Node17146 | |
Node17146 -> Node17155 | |
Node17155 -> Node17437 | |
Node17155 -> Node17428 | |
Node17428 -> Node17437 | |
Node17437 -> Node17719 | |
Node17437 -> Node17710 | |
Node17710 -> Node17719 | |
Node17719 -> Node18001 | |
Node17719 -> Node17992 | |
Node17992 -> Node18001 | |
Node18001 -> Node18278 | |
Node18001 -> Node18269 | |
Node18269 -> Node18278 | |
Node18278 -> Node18639 | |
Node18278 -> Node18630 | |
Node18630 -> Node18639 | |
Node18639 -> Node19000 | |
Node18639 -> Node18991 | |
Node18991 -> Node19000 | |
Node19000 -> Node19282 | |
Node19000 -> Node19273 | |
Node19273 -> Node19282 | |
Node19282 -> Node19643 | |
Node19282 -> Node19634 | |
Node19634 -> Node19643 | |
Node19643 -> Node20004 | |
Node19643 -> Node19995 | |
Node19995 -> Node20004 | |
Node20004 -> Node20365 | |
Node20004 -> Node20356 | |
Node20356 -> Node20365 | |
Node20365 -> Node20647 | |
Node20365 -> Node20638 | |
Node20638 -> Node20647 | |
Node20647 -> Node20929 | |
Node20647 -> Node20920 | |
Node20920 -> Node20929 | |
Node20929 -> Node21290 | |
Node20929 -> Node21281 | |
Node21281 -> Node21290 | |
Node21290 -> Node21648 | |
Node21290 -> Node21639 | |
Node21639 -> Node21648 | |
Node21648 -> Node22009 | |
Node21648 -> Node22000 | |
Node22000 -> Node22009 | |
Node22009 -> Node22291 | |
Node22009 -> Node22282 | |
Node22282 -> Node22291 | |
Node22291 -> Node22652 | |
Node22291 -> Node22643 | |
Node22643 -> Node22652 | |
Node22652 -> Node22934 | |
Node22652 -> Node22925 | |
Node22925 -> Node22934 | |
Node22934 -> Node23216 | |
Node22934 -> Node23207 | |
Node23207 -> Node23216 | |
Node23216 -> Node23498 | |
Node23216 -> Node23489 | |
Node23489 -> Node23498 | |
Node23498 -> Node23780 | |
Node23498 -> Node23771 | |
Node23771 -> Node23780 | |
Node23780 -> Node24055 | |
Node23780 -> Node24046 | |
Node24046 -> Node24055 | |
Node24055 -> Node24408 | |
Node24055 -> Node24399 | |
Node24399 -> Node24408 | |
Node24408 -> Node24766 | |
Node24408 -> Node24757 | |
Node24757 -> Node24766 | |
Node24766 -> Node25127 | |
Node24766 -> Node25118 | |
Node25118 -> Node25127 | |
Node25127 -> Node25409 | |
Node25127 -> Node25400 | |
Node25400 -> Node25409 | |
Node25409 -> Node25767 | |
Node25409 -> Node25758 | |
Node25758 -> Node25767 | |
Node25767 -> Node26046 | |
Node25767 -> Node26037 | |
Node26037 -> Node26046 | |
Node26046 -> Node26323 | |
Node26046 -> Node26314 | |
Node26314 -> Node26323 | |
Node26323 -> Node26605 | |
Node26323 -> Node26596 | |
Node26596 -> Node26605 | |
Node26605 -> Node26887 | |
Node26605 -> Node26878 | |
Node26878 -> Node26887 | |
Node26887 -> Node27169 | |
Node26887 -> Node27160 | |
Node27160 -> Node27169 | |
Node27169 -> Node27530 | |
Node27169 -> Node27521 | |
Node27521 -> Node27530 | |
Node27530 -> Node27812 | |
Node27530 -> Node27803 | |
Node27803 -> Node27812 | |
Node27812 -> Node28173 | |
Node27812 -> Node28164 | |
Node28164 -> Node28173 | |
Node28173 -> Node28528 | |
Node28173 -> Node28519 | |
Node28519 -> Node28528 | |
Node28528 -> Node28889 | |
Node28528 -> Node28880 | |
Node28880 -> Node28889 | |
Node28889 -> Node29161 | |
Node28889 -> Node29152 | |
Node29152 -> Node29161 | |
Node29161 -> Node29443 | |
Node29161 -> Node29434 | |
Node29434 -> Node29443 | |
Node29443 -> Node29801 | |
Node29443 -> Node29792 | |
Node29792 -> Node29801 | |
Node29801 -> Node30162 | |
Node29801 -> Node30153 | |
Node30153 -> Node30162 | |
Node30162 -> Node30441 | |
Node30162 -> Node30432 | |
Node30432 -> Node30441 | |
Node30441 -> Node4150 | |
Node30464 -> Node30578 | |
Node30464 -> Node30510 | |
Node30510 -> Node30578 | |
Node30578 -> Node30639 | |
Node30578 -> Node30592 | |
Node30592 -> Node30639 | |
Node30639 -> Node4615 | |
Node30664 -> Node30675 | |
Node30675 -> Node30675 | |
Node30678 -> Node30733 | |
Node30678 -> Node30696 | |
Node30696 -> Node4673 | |
Node30720 -> Node5335 | |
Node30733 -> Node30813 | |
Node30733 -> Node30760 | |
Node30760 -> Node30813 | |
Node30813 -> Node31593 | |
Node30813 -> Node30831 | |
Node30831 -> Node31420 | |
Node30831 -> Node30844 | |
Node30844 -> Node30913 | |
Node30844 -> Node30883 | |
Node30883 -> Node30913 | |
Node30883 -> Node30900 | |
Node30900 -> Node30913 | |
Node30913 -> Node30962 | |
Node30913 -> Node30932 | |
Node30932 -> Node30962 | |
Node30932 -> Node30949 | |
Node30949 -> Node30962 | |
Node30962 -> Node30994 | |
Node30962 -> Node30981 | |
Node30981 -> Node30994 | |
Node30994 -> Node31025 | |
Node30994 -> Node31012 | |
Node31012 -> Node31025 | |
Node31025 -> Node31056 | |
Node31025 -> Node31043 | |
Node31043 -> Node31056 | |
Node31056 -> Node31087 | |
Node31056 -> Node31074 | |
Node31074 -> Node31087 | |
Node31087 -> Node31118 | |
Node31087 -> Node31105 | |
Node31105 -> Node31118 | |
Node31118 -> Node31149 | |
Node31118 -> Node31136 | |
Node31136 -> Node31149 | |
Node31149 -> Node31180 | |
Node31149 -> Node31167 | |
Node31167 -> Node31180 | |
Node31180 -> Node31211 | |
Node31180 -> Node31198 | |
Node31198 -> Node31211 | |
Node31211 -> Node31242 | |
Node31211 -> Node31229 | |
Node31229 -> Node31242 | |
Node31242 -> Node31273 | |
Node31242 -> Node31260 | |
Node31260 -> Node31273 | |
Node31273 -> Node31304 | |
Node31273 -> Node31291 | |
Node31291 -> Node31304 | |
Node31304 -> Node31335 | |
Node31304 -> Node31322 | |
Node31322 -> Node31335 | |
Node31335 -> Node31366 | |
Node31335 -> Node31353 | |
Node31353 -> Node31366 | |
Node31366 -> Node31397 | |
Node31366 -> Node31384 | |
Node31384 -> Node31397 | |
Node31397 -> Node31420 | |
Node31420 -> Node31505 | |
Node31420 -> Node31438 | |
Node31438 -> Node31505 | |
Node31438 -> Node31458 | |
Node31458 -> Node4673 | |
Node31479 -> Node31505 | |
Node31505 -> Node31593 | |
Node31505 -> Node31524 | |
Node31524 -> Node4673 | |
Node31548 -> Node31593 | |
Node31593 -> Node5191 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment