<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.26.3 (20100126.1600)
 -->
<!-- Title: G Pages: 1 -->
<svg width="328pt" height="1080pt"
 viewBox="0.00 0.00 327.90 1080.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph1" class="graph" transform="scale(0.609481 0.609481) rotate(0) translate(4 1768)">
<title>G</title>
<polygon fill="white" stroke="white" points="-4,5 -4,-1768 535,-1768 535,5 -4,5"/>
<!-- ch11_unrolled_asm_comba -->
<g id="node1" class="node"><title>ch11_unrolled_asm_comba</title>
<a xlink:href="patches/ch11_unrolled_asm_comba" xlink:title="ch11_unrolled_asm_comba">
<polygon fill="none" stroke="black" points="200,-972 8.52651e-14,-972 0,-936 200,-936 200,-972"/>
<text text-anchor="middle" x="100" y="-949.9" font-family="Times Roman,serif" font-size="14.00">ch11_unrolled_asm_comba</text>
</a>
</g>
<!-- ffa_ch11_tuning_and_api.kv -->
<g id="node2" class="node"><title>ffa_ch11_tuning_and_api.kv</title>
<a xlink:href="patches/ffa_ch11_tuning_and_api.kv" xlink:title="ffa_ch11_tuning_and_api.kv">
<polygon fill="none" stroke="black" points="433,-1044 223,-1044 223,-1008 433,-1008 433,-1044"/>
<text text-anchor="middle" x="328" y="-1021.9" font-family="Times Roman,serif" font-size="14.00">ffa_ch11_tuning_and_api.kv</text>
</a>
</g>
<!-- ffa_ch11_tuning_and_api.kv&#45;&gt;ch11_unrolled_asm_comba -->
<g id="edge2" class="edge"><title>ffa_ch11_tuning_and_api.kv&#45;&gt;ch11_unrolled_asm_comba</title>
<path fill="none" stroke="black" d="M270.76,-1007.92C239.185,-997.953 199.81,-985.519 166.829,-975.104"/>
<polygon fill="black" stroke="black" points="167.853,-971.757 157.263,-972.083 165.745,-978.432 167.853,-971.757"/>
</g>
<!-- ffa_ch12_karatsuba_redux.kv -->
<g id="node12" class="node"><title>ffa_ch12_karatsuba_redux.kv</title>
<a xlink:href="patches/ffa_ch12_karatsuba_redux.kv" xlink:title="ffa_ch12_karatsuba_redux.kv">
<polygon fill="none" stroke="black" points="438,-972 218,-972 218,-936 438,-936 438,-972"/>
<text text-anchor="middle" x="328" y="-949.9" font-family="Times Roman,serif" font-size="14.00">ffa_ch12_karatsuba_redux.kv</text>
</a>
</g>
<!-- ffa_ch11_tuning_and_api.kv&#45;&gt;ffa_ch12_karatsuba_redux.kv -->
<g id="edge12" class="edge"><title>ffa_ch11_tuning_and_api.kv&#45;&gt;ffa_ch12_karatsuba_redux.kv</title>
<path fill="none" stroke="black" d="M328,-1007.83C328,-1000.13 328,-990.974 328,-982.417"/>
<polygon fill="black" stroke="black" points="331.5,-982.413 328,-972.413 324.5,-982.413 331.5,-982.413"/>
</g>
<!-- ffa_w_borrow_expr.kv -->
<g id="node15" class="node"><title>ffa_w_borrow_expr.kv</title>
<a xlink:href="patches/ffa_w_borrow_expr.kv" xlink:title="ffa_w_borrow_expr.kv">
<polygon fill="none" stroke="black" points="482,-900 312,-900 312,-864 482,-864 482,-900"/>
<text text-anchor="middle" x="397" y="-877.9" font-family="Times Roman,serif" font-size="14.00">ffa_w_borrow_expr.kv</text>
</a>
</g>
<!-- ffa_ch11_tuning_and_api.kv&#45;&gt;ffa_w_borrow_expr.kv -->
<g id="edge62" class="edge"><title>ffa_ch11_tuning_and_api.kv&#45;&gt;ffa_w_borrow_expr.kv</title>
<path fill="none" stroke="black" d="M401.753,-1007.89C419.534,-999.877 436.432,-988.401 447,-972 460.554,-950.965 444.33,-926.02 426.844,-907.733"/>
<polygon fill="black" stroke="black" points="428.929,-904.873 419.355,-900.335 424.009,-909.853 428.929,-904.873"/>
</g>
<!-- ch9_asm_comba -->
<g id="node4" class="node"><title>ch9_asm_comba</title>
<a xlink:href="patches/ch9_asm_comba" xlink:title="ch9_asm_comba">
<polygon fill="none" stroke="black" points="224,-1116 96,-1116 96,-1080 224,-1080 224,-1116"/>
<text text-anchor="middle" x="160" y="-1093.9" font-family="Times Roman,serif" font-size="14.00">ch9_asm_comba</text>
</a>
</g>
<!-- ffa_ch1_genesis.kv -->
<g id="node5" class="node"><title>ffa_ch1_genesis.kv</title>
<a xlink:href="patches/ffa_ch1_genesis.kv" xlink:title="ffa_ch1_genesis.kv">
<polygon fill="none" stroke="black" points="383,-1764 237,-1764 237,-1728 383,-1728 383,-1764"/>
<text text-anchor="middle" x="310" y="-1741.9" font-family="Times Roman,serif" font-size="14.00">ffa_ch1_genesis.kv</text>
</a>
</g>
<!-- ffa_ch1_genesis.kv&#45;&gt;ch9_asm_comba -->
<g id="edge4" class="edge"><title>ffa_ch1_genesis.kv&#45;&gt;ch9_asm_comba</title>
<path fill="none" stroke="black" d="M236.783,-1729.85C215.38,-1721.78 193.789,-1709.78 179,-1692 152.854,-1660.57 160,-1642.88 160,-1602 160,-1602 160,-1602 160,-1242 160,-1201.88 160,-1155.46 160,-1126.42"/>
<polygon fill="black" stroke="black" points="163.5,-1126.19 160,-1116.19 156.5,-1126.19 163.5,-1126.19"/>
</g>
<!-- ffa_ch2_logicals.kv -->
<g id="node39" class="node"><title>ffa_ch2_logicals.kv</title>
<a xlink:href="patches/ffa_ch2_logicals.kv" xlink:title="ffa_ch2_logicals.kv">
<polygon fill="none" stroke="black" points="332,-1692 188,-1692 188,-1656 332,-1656 332,-1692"/>
<text text-anchor="middle" x="260" y="-1669.9" font-family="Times Roman,serif" font-size="14.00">ffa_ch2_logicals.kv</text>
</a>
</g>
<!-- ffa_ch1_genesis.kv&#45;&gt;ffa_ch2_logicals.kv -->
<g id="edge38" class="edge"><title>ffa_ch1_genesis.kv&#45;&gt;ffa_ch2_logicals.kv</title>
<path fill="none" stroke="black" d="M297.383,-1727.83C291.683,-1719.62 284.834,-1709.76 278.564,-1700.73"/>
<polygon fill="black" stroke="black" points="281.366,-1698.63 272.787,-1692.41 275.616,-1702.62 281.366,-1698.63"/>
</g>
<!-- ffa_ch4_ffacalc.kv -->
<g id="node43" class="node"><title>ffa_ch4_ffacalc.kv</title>
<a xlink:href="patches/ffa_ch4_ffacalc.kv" xlink:title="ffa_ch4_ffacalc.kv">
<polygon fill="none" stroke="black" points="370,-1548 232,-1548 232,-1512 370,-1512 370,-1548"/>
<text text-anchor="middle" x="301" y="-1525.9" font-family="Times Roman,serif" font-size="14.00">ffa_ch4_ffacalc.kv</text>
</a>
</g>
<!-- ffa_ch1_genesis.kv&#45;&gt;ffa_ch4_ffacalc.kv -->
<g id="edge44" class="edge"><title>ffa_ch1_genesis.kv&#45;&gt;ffa_ch4_ffacalc.kv</title>
<path fill="none" stroke="black" d="M323.796,-1727.58C330.403,-1717.6 337.602,-1704.74 341,-1692 345.602,-1674.74 342.545,-1597.66 338,-1584 334.752,-1574.24 329.172,-1564.62 323.317,-1556.28"/>
<polygon fill="black" stroke="black" points="325.988,-1554 317.202,-1548.08 320.379,-1558.19 325.988,-1554"/>
</g>
<!-- ffa_ch5_egypt.kv -->
<g id="node46" class="node"><title>ffa_ch5_egypt.kv</title>
<a xlink:href="patches/ffa_ch5_egypt.kv" xlink:title="ffa_ch5_egypt.kv">
<polygon fill="none" stroke="black" points="415,-1476 281,-1476 281,-1440 415,-1440 415,-1476"/>
<text text-anchor="middle" x="348" y="-1453.9" font-family="Times Roman,serif" font-size="14.00">ffa_ch5_egypt.kv</text>
</a>
</g>
<!-- ffa_ch1_genesis.kv&#45;&gt;ffa_ch5_egypt.kv -->
<g id="edge48" class="edge"><title>ffa_ch1_genesis.kv&#45;&gt;ffa_ch5_egypt.kv</title>
<path fill="none" stroke="black" d="M329.915,-1727.84C339.319,-1718.12 349.813,-1705.42 356,-1692 383.134,-1633.14 373.873,-1612.61 379,-1548 380.266,-1532.05 383.122,-1527.46 379,-1512 376.505,-1502.64 371.959,-1493.22 367.104,-1484.92"/>
<polygon fill="black" stroke="black" points="370.061,-1483.05 361.796,-1476.42 364.123,-1486.76 370.061,-1483.05"/>
</g>
<!-- ffa_ch9_exodus.kv -->
<g id="node7" class="node"><title>ffa_ch9_exodus.kv</title>
<a xlink:href="patches/ffa_ch9_exodus.kv" xlink:title="ffa_ch9_exodus.kv">
<polygon fill="none" stroke="black" points="380,-1188 238,-1188 238,-1152 380,-1152 380,-1188"/>
<text text-anchor="middle" x="309" y="-1165.9" font-family="Times Roman,serif" font-size="14.00">ffa_ch9_exodus.kv</text>
</a>
</g>
<!-- ffa_ch9_exodus.kv&#45;&gt;ch9_asm_comba -->
<g id="edge6" class="edge"><title>ffa_ch9_exodus.kv&#45;&gt;ch9_asm_comba</title>
<path fill="none" stroke="black" d="M271.401,-1151.83C251.65,-1142.29 227.27,-1130.51 206.358,-1120.4"/>
<polygon fill="black" stroke="black" points="207.855,-1117.24 197.329,-1116.04 204.81,-1123.54 207.855,-1117.24"/>
</g>
<!-- ffa_ch10_karatsuba.kv -->
<g id="node9" class="node"><title>ffa_ch10_karatsuba.kv</title>
<a xlink:href="patches/ffa_ch10_karatsuba.kv" xlink:title="ffa_ch10_karatsuba.kv">
<polygon fill="none" stroke="black" points="414,-1116 242,-1116 242,-1080 414,-1080 414,-1116"/>
<text text-anchor="middle" x="328" y="-1093.9" font-family="Times Roman,serif" font-size="14.00">ffa_ch10_karatsuba.kv</text>
</a>
</g>
<!-- ffa_ch9_exodus.kv&#45;&gt;ffa_ch10_karatsuba.kv -->
<g id="edge8" class="edge"><title>ffa_ch9_exodus.kv&#45;&gt;ffa_ch10_karatsuba.kv</title>
<path fill="none" stroke="black" d="M313.795,-1151.83C315.849,-1144.05 318.296,-1134.77 320.576,-1126.13"/>
<polygon fill="black" stroke="black" points="323.973,-1126.98 323.141,-1116.41 317.205,-1125.19 323.973,-1126.98"/>
</g>
<!-- ffa_ch10_karatsuba.kv&#45;&gt;ffa_ch11_tuning_and_api.kv -->
<g id="edge10" class="edge"><title>ffa_ch10_karatsuba.kv&#45;&gt;ffa_ch11_tuning_and_api.kv</title>
<path fill="none" stroke="black" d="M328,-1079.83C328,-1072.13 328,-1062.97 328,-1054.42"/>
<polygon fill="black" stroke="black" points="331.5,-1054.41 328,-1044.41 324.5,-1054.41 331.5,-1054.41"/>
</g>
<!-- ffa_ch12_karatsuba_redux.kv&#45;&gt;ffa_w_borrow_expr.kv -->
<g id="edge60" class="edge"><title>ffa_ch12_karatsuba_redux.kv&#45;&gt;ffa_w_borrow_expr.kv</title>
<path fill="none" stroke="black" d="M345.412,-935.831C353.521,-927.369 363.316,-917.149 372.182,-907.897"/>
<polygon fill="black" stroke="black" points="374.962,-910.055 379.354,-900.413 369.908,-905.211 374.962,-910.055"/>
</g>
<!-- ffa_ch13_measure_and_qshifts.kv -->
<g id="node14" class="node"><title>ffa_ch13_measure_and_qshifts.kv</title>
<a xlink:href="patches/ffa_ch13_measure_and_qshifts.kv" xlink:title="ffa_ch13_measure_and_qshifts.kv">
<polygon fill="none" stroke="black" points="521,-828 273,-828 273,-792 521,-792 521,-828"/>
<text text-anchor="middle" x="397" y="-805.9" font-family="Times Roman,serif" font-size="14.00">ffa_ch13_measure_and_qshifts.kv</text>
</a>
</g>
<!-- ffa_ch14_barrett.kv -->
<g id="node17" class="node"><title>ffa_ch14_barrett.kv</title>
<a xlink:href="patches/ffa_ch14_barrett.kv" xlink:title="ffa_ch14_barrett.kv">
<polygon fill="none" stroke="black" points="473,-756 321,-756 321,-720 473,-720 473,-756"/>
<text text-anchor="middle" x="397" y="-733.9" font-family="Times Roman,serif" font-size="14.00">ffa_ch14_barrett.kv</text>
</a>
</g>
<!-- ffa_ch13_measure_and_qshifts.kv&#45;&gt;ffa_ch14_barrett.kv -->
<g id="edge16" class="edge"><title>ffa_ch13_measure_and_qshifts.kv&#45;&gt;ffa_ch14_barrett.kv</title>
<path fill="none" stroke="black" d="M397,-791.831C397,-784.131 397,-774.974 397,-766.417"/>
<polygon fill="black" stroke="black" points="400.5,-766.413 397,-756.413 393.5,-766.413 400.5,-766.413"/>
</g>
<!-- ffa_w_borrow_expr.kv&#45;&gt;ffa_ch13_measure_and_qshifts.kv -->
<g id="edge14" class="edge"><title>ffa_w_borrow_expr.kv&#45;&gt;ffa_ch13_measure_and_qshifts.kv</title>
<path fill="none" stroke="black" d="M397,-863.831C397,-856.131 397,-846.974 397,-838.417"/>
<polygon fill="black" stroke="black" points="400.5,-838.413 397,-828.413 393.5,-838.413 400.5,-838.413"/>
</g>
<!-- ffa_ch15_gcd.kv -->
<g id="node19" class="node"><title>ffa_ch15_gcd.kv</title>
<a xlink:href="patches/ffa_ch15_gcd.kv" xlink:title="ffa_ch15_gcd.kv">
<polygon fill="none" stroke="black" points="461,-684 333,-684 333,-648 461,-648 461,-684"/>
<text text-anchor="middle" x="397" y="-661.9" font-family="Times Roman,serif" font-size="14.00">ffa_ch15_gcd.kv</text>
</a>
</g>
<!-- ffa_ch14_barrett.kv&#45;&gt;ffa_ch15_gcd.kv -->
<g id="edge18" class="edge"><title>ffa_ch14_barrett.kv&#45;&gt;ffa_ch15_gcd.kv</title>
<path fill="none" stroke="black" d="M397,-719.831C397,-712.131 397,-702.974 397,-694.417"/>
<polygon fill="black" stroke="black" points="400.5,-694.413 397,-684.413 393.5,-694.413 400.5,-694.413"/>
</g>
<!-- ffa_ch16_miller_rabin.kv -->
<g id="node21" class="node"><title>ffa_ch16_miller_rabin.kv</title>
<a xlink:href="patches/ffa_ch16_miller_rabin.kv" xlink:title="ffa_ch16_miller_rabin.kv">
<polygon fill="none" stroke="black" points="489,-612 305,-612 305,-576 489,-576 489,-612"/>
<text text-anchor="middle" x="397" y="-589.9" font-family="Times Roman,serif" font-size="14.00">ffa_ch16_miller_rabin.kv</text>
</a>
</g>
<!-- ffa_ch15_gcd.kv&#45;&gt;ffa_ch16_miller_rabin.kv -->
<g id="edge20" class="edge"><title>ffa_ch15_gcd.kv&#45;&gt;ffa_ch16_miller_rabin.kv</title>
<path fill="none" stroke="black" d="M397,-647.831C397,-640.131 397,-630.974 397,-622.417"/>
<polygon fill="black" stroke="black" points="400.5,-622.413 397,-612.413 393.5,-622.413 400.5,-622.413"/>
</g>
<!-- ffa_ch17_peh.kv -->
<g id="node23" class="node"><title>ffa_ch17_peh.kv</title>
<a xlink:href="patches/ffa_ch17_peh.kv" xlink:title="ffa_ch17_peh.kv">
<polygon fill="none" stroke="black" points="462,-540 332,-540 332,-504 462,-504 462,-540"/>
<text text-anchor="middle" x="397" y="-517.9" font-family="Times Roman,serif" font-size="14.00">ffa_ch17_peh.kv</text>
</a>
</g>
<!-- ffa_ch16_miller_rabin.kv&#45;&gt;ffa_ch17_peh.kv -->
<g id="edge22" class="edge"><title>ffa_ch16_miller_rabin.kv&#45;&gt;ffa_ch17_peh.kv</title>
<path fill="none" stroke="black" d="M397,-575.831C397,-568.131 397,-558.974 397,-550.417"/>
<polygon fill="black" stroke="black" points="400.5,-550.413 397,-540.413 393.5,-550.413 400.5,-550.413"/>
</g>
<!-- ffa_ch18_subroutines.kv -->
<g id="node25" class="node"><title>ffa_ch18_subroutines.kv</title>
<a xlink:href="patches/ffa_ch18_subroutines.kv" xlink:title="ffa_ch18_subroutines.kv">
<polygon fill="none" stroke="black" points="489,-468 305,-468 305,-432 489,-432 489,-468"/>
<text text-anchor="middle" x="397" y="-445.9" font-family="Times Roman,serif" font-size="14.00">ffa_ch18_subroutines.kv</text>
</a>
</g>
<!-- ffa_ch17_peh.kv&#45;&gt;ffa_ch18_subroutines.kv -->
<g id="edge24" class="edge"><title>ffa_ch17_peh.kv&#45;&gt;ffa_ch18_subroutines.kv</title>
<path fill="none" stroke="black" d="M397,-503.831C397,-496.131 397,-486.974 397,-478.417"/>
<polygon fill="black" stroke="black" points="400.5,-478.413 397,-468.413 393.5,-478.413 400.5,-478.413"/>
</g>
<!-- ffa_ch19_peh_tuning_and_demos.kv -->
<g id="node27" class="node"><title>ffa_ch19_peh_tuning_and_demos.kv</title>
<a xlink:href="patches/ffa_ch19_peh_tuning_and_demos.kv" xlink:title="ffa_ch19_peh_tuning_and_demos.kv">
<polygon fill="none" stroke="black" points="530,-396 264,-396 264,-360 530,-360 530,-396"/>
<text text-anchor="middle" x="397" y="-373.9" font-family="Times Roman,serif" font-size="14.00">ffa_ch19_peh_tuning_and_demos.kv</text>
</a>
</g>
<!-- ffa_ch18_subroutines.kv&#45;&gt;ffa_ch19_peh_tuning_and_demos.kv -->
<g id="edge26" class="edge"><title>ffa_ch18_subroutines.kv&#45;&gt;ffa_ch19_peh_tuning_and_demos.kv</title>
<path fill="none" stroke="black" d="M397,-431.831C397,-424.131 397,-414.974 397,-406.417"/>
<polygon fill="black" stroke="black" points="400.5,-406.413 397,-396.413 393.5,-406.413 400.5,-406.413"/>
</g>
<!-- ffa_ch20_litmus.kv -->
<g id="node29" class="node"><title>ffa_ch20_litmus.kv</title>
<a xlink:href="patches/ffa_ch20_litmus.kv" xlink:title="ffa_ch20_litmus.kv">
<polygon fill="none" stroke="black" points="470,-324 324,-324 324,-288 470,-288 470,-324"/>
<text text-anchor="middle" x="397" y="-301.9" font-family="Times Roman,serif" font-size="14.00">ffa_ch20_litmus.kv</text>
</a>
</g>
<!-- ffa_ch19_peh_tuning_and_demos.kv&#45;&gt;ffa_ch20_litmus.kv -->
<g id="edge28" class="edge"><title>ffa_ch19_peh_tuning_and_demos.kv&#45;&gt;ffa_ch20_litmus.kv</title>
<path fill="none" stroke="black" d="M397,-359.831C397,-352.131 397,-342.974 397,-334.417"/>
<polygon fill="black" stroke="black" points="400.5,-334.413 397,-324.413 393.5,-334.413 400.5,-334.413"/>
</g>
<!-- ffa_ch20b_litmus_legacy_hashes.kv -->
<g id="node31" class="node"><title>ffa_ch20b_litmus_legacy_hashes.kv</title>
<a xlink:href="patches/ffa_ch20b_litmus_legacy_hashes.kv" xlink:title="ffa_ch20b_litmus_legacy_hashes.kv">
<polygon fill="none" stroke="black" points="527,-252 267,-252 267,-216 527,-216 527,-252"/>
<text text-anchor="middle" x="397" y="-229.9" font-family="Times Roman,serif" font-size="14.00">ffa_ch20b_litmus_legacy_hashes.kv</text>
</a>
</g>
<!-- ffa_ch20_litmus.kv&#45;&gt;ffa_ch20b_litmus_legacy_hashes.kv -->
<g id="edge30" class="edge"><title>ffa_ch20_litmus.kv&#45;&gt;ffa_ch20b_litmus_legacy_hashes.kv</title>
<path fill="none" stroke="black" d="M397,-287.831C397,-280.131 397,-270.974 397,-262.417"/>
<polygon fill="black" stroke="black" points="400.5,-262.413 397,-252.413 393.5,-262.413 400.5,-262.413"/>
</g>
<!-- ffa_ch20c_litmus_clearsigned.kv -->
<g id="node33" class="node"><title>ffa_ch20c_litmus_clearsigned.kv</title>
<a xlink:href="patches/ffa_ch20c_litmus_clearsigned.kv" xlink:title="ffa_ch20c_litmus_clearsigned.kv">
<polygon fill="none" stroke="black" points="516,-180 278,-180 278,-144 516,-144 516,-180"/>
<text text-anchor="middle" x="397" y="-157.9" font-family="Times Roman,serif" font-size="14.00">ffa_ch20c_litmus_clearsigned.kv</text>
</a>
</g>
<!-- ffa_ch20b_litmus_legacy_hashes.kv&#45;&gt;ffa_ch20c_litmus_clearsigned.kv -->
<g id="edge32" class="edge"><title>ffa_ch20b_litmus_legacy_hashes.kv&#45;&gt;ffa_ch20c_litmus_clearsigned.kv</title>
<path fill="none" stroke="black" d="M397,-215.831C397,-208.131 397,-198.974 397,-190.417"/>
<polygon fill="black" stroke="black" points="400.5,-190.413 397,-180.413 393.5,-190.413 400.5,-190.413"/>
</g>
<!-- ffa_ch20d_litmus_nested_fix.kv -->
<g id="node35" class="node"><title>ffa_ch20d_litmus_nested_fix.kv</title>
<a xlink:href="patches/ffa_ch20d_litmus_nested_fix.kv" xlink:title="ffa_ch20d_litmus_nested_fix.kv">
<polygon fill="none" stroke="black" points="513,-108 281,-108 281,-72 513,-72 513,-108"/>
<text text-anchor="middle" x="397" y="-85.9" font-family="Times Roman,serif" font-size="14.00">ffa_ch20d_litmus_nested_fix.kv</text>
</a>
</g>
<!-- ffa_ch20c_litmus_clearsigned.kv&#45;&gt;ffa_ch20d_litmus_nested_fix.kv -->
<g id="edge34" class="edge"><title>ffa_ch20c_litmus_clearsigned.kv&#45;&gt;ffa_ch20d_litmus_nested_fix.kv</title>
<path fill="none" stroke="black" d="M397,-143.831C397,-136.131 397,-126.974 397,-118.417"/>
<polygon fill="black" stroke="black" points="400.5,-118.413 397,-108.413 393.5,-118.413 400.5,-118.413"/>
</g>
<!-- ffa_ch21a_bis_fix_ch15_gcd.kv -->
<g id="node37" class="node"><title>ffa_ch21a_bis_fix_ch15_gcd.kv</title>
<a xlink:href="patches/ffa_ch21a_bis_fix_ch15_gcd.kv" xlink:title="ffa_ch21a_bis_fix_ch15_gcd.kv">
<polygon fill="none" stroke="black" points="510,-36 284,-36 284,-1.77636e-14 510,-3.55271e-15 510,-36"/>
<text text-anchor="middle" x="397" y="-13.9" font-family="Times Roman,serif" font-size="14.00">ffa_ch21a_bis_fix_ch15_gcd.kv</text>
</a>
</g>
<!-- ffa_ch20d_litmus_nested_fix.kv&#45;&gt;ffa_ch21a_bis_fix_ch15_gcd.kv -->
<g id="edge36" class="edge"><title>ffa_ch20d_litmus_nested_fix.kv&#45;&gt;ffa_ch21a_bis_fix_ch15_gcd.kv</title>
<path fill="none" stroke="black" d="M397,-71.8314C397,-64.131 397,-54.9743 397,-46.4166"/>
<polygon fill="black" stroke="black" points="400.5,-46.4132 397,-36.4133 393.5,-46.4133 400.5,-46.4132"/>
</g>
<!-- ffa_ch3_shifts.kv -->
<g id="node41" class="node"><title>ffa_ch3_shifts.kv</title>
<a xlink:href="patches/ffa_ch3_shifts.kv" xlink:title="ffa_ch3_shifts.kv">
<polygon fill="none" stroke="black" points="329,-1620 197,-1620 197,-1584 329,-1584 329,-1620"/>
<text text-anchor="middle" x="263" y="-1597.9" font-family="Times Roman,serif" font-size="14.00">ffa_ch3_shifts.kv</text>
</a>
</g>
<!-- ffa_ch2_logicals.kv&#45;&gt;ffa_ch3_shifts.kv -->
<g id="edge40" class="edge"><title>ffa_ch2_logicals.kv&#45;&gt;ffa_ch3_shifts.kv</title>
<path fill="none" stroke="black" d="M260.757,-1655.83C261.078,-1648.13 261.459,-1638.97 261.816,-1630.42"/>
<polygon fill="black" stroke="black" points="265.313,-1630.55 262.233,-1620.41 258.319,-1630.26 265.313,-1630.55"/>
</g>
<!-- ffa_ch3_shifts.kv&#45;&gt;ffa_ch4_ffacalc.kv -->
<g id="edge42" class="edge"><title>ffa_ch3_shifts.kv&#45;&gt;ffa_ch4_ffacalc.kv</title>
<path fill="none" stroke="black" d="M272.589,-1583.83C276.832,-1575.79 281.912,-1566.17 286.596,-1557.29"/>
<polygon fill="black" stroke="black" points="289.71,-1558.89 291.282,-1548.41 283.519,-1555.62 289.71,-1558.89"/>
</g>
<!-- ffa_ch4_ffacalc.kv&#45;&gt;ffa_ch5_egypt.kv -->
<g id="edge46" class="edge"><title>ffa_ch4_ffacalc.kv&#45;&gt;ffa_ch5_egypt.kv</title>
<path fill="none" stroke="black" d="M312.86,-1511.83C318.163,-1503.71 324.524,-1493.96 330.367,-1485.01"/>
<polygon fill="black" stroke="black" points="333.445,-1486.7 335.98,-1476.41 327.583,-1482.87 333.445,-1486.7"/>
</g>
<!-- ffa_ch6_simplest_rsa.kv -->
<g id="node49" class="node"><title>ffa_ch6_simplest_rsa.kv</title>
<a xlink:href="patches/ffa_ch6_simplest_rsa.kv" xlink:title="ffa_ch6_simplest_rsa.kv">
<polygon fill="none" stroke="black" points="374,-1404 194,-1404 194,-1368 374,-1368 374,-1404"/>
<text text-anchor="middle" x="284" y="-1381.9" font-family="Times Roman,serif" font-size="14.00">ffa_ch6_simplest_rsa.kv</text>
</a>
</g>
<!-- ffa_ch5_egypt.kv&#45;&gt;ffa_ch6_simplest_rsa.kv -->
<g id="edge50" class="edge"><title>ffa_ch5_egypt.kv&#45;&gt;ffa_ch6_simplest_rsa.kv</title>
<path fill="none" stroke="black" d="M331.85,-1439.83C324.328,-1431.37 315.243,-1421.15 307.02,-1411.9"/>
<polygon fill="black" stroke="black" points="309.627,-1409.56 300.367,-1404.41 304.395,-1414.21 309.627,-1409.56"/>
</g>
<!-- ffa_ch7_turbo_egyptians.kv -->
<g id="node51" class="node"><title>ffa_ch7_turbo_egyptians.kv</title>
<a xlink:href="patches/ffa_ch7_turbo_egyptians.kv" xlink:title="ffa_ch7_turbo_egyptians.kv">
<polygon fill="none" stroke="black" points="412,-1332 206,-1332 206,-1296 412,-1296 412,-1332"/>
<text text-anchor="middle" x="309" y="-1309.9" font-family="Times Roman,serif" font-size="14.00">ffa_ch7_turbo_egyptians.kv</text>
</a>
</g>
<!-- ffa_ch5_egypt.kv&#45;&gt;ffa_ch7_turbo_egyptians.kv -->
<g id="edge52" class="edge"><title>ffa_ch5_egypt.kv&#45;&gt;ffa_ch7_turbo_egyptians.kv</title>
<path fill="none" stroke="black" d="M363.934,-1439.96C378.233,-1421.46 395.229,-1392.06 383,-1368 376.856,-1355.91 366.596,-1345.88 355.643,-1337.89"/>
<polygon fill="black" stroke="black" points="357.432,-1334.87 347.188,-1332.17 353.509,-1340.67 357.432,-1334.87"/>
</g>
<!-- ffa_ch6_simplest_rsa.kv&#45;&gt;ffa_ch7_turbo_egyptians.kv -->
<g id="edge54" class="edge"><title>ffa_ch6_simplest_rsa.kv&#45;&gt;ffa_ch7_turbo_egyptians.kv</title>
<path fill="none" stroke="black" d="M290.309,-1367.83C293.012,-1360.05 296.232,-1350.77 299.231,-1342.13"/>
<polygon fill="black" stroke="black" points="302.633,-1343.01 302.607,-1332.41 296.02,-1340.71 302.633,-1343.01"/>
</g>
<!-- ffa_ch8_randomism.kv -->
<g id="node54" class="node"><title>ffa_ch8_randomism.kv</title>
<a xlink:href="patches/ffa_ch8_randomism.kv" xlink:title="ffa_ch8_randomism.kv">
<polygon fill="none" stroke="black" points="394,-1260 224,-1260 224,-1224 394,-1224 394,-1260"/>
<text text-anchor="middle" x="309" y="-1237.9" font-family="Times Roman,serif" font-size="14.00">ffa_ch8_randomism.kv</text>
</a>
</g>
<!-- ffa_ch7_turbo_egyptians.kv&#45;&gt;ffa_ch8_randomism.kv -->
<g id="edge56" class="edge"><title>ffa_ch7_turbo_egyptians.kv&#45;&gt;ffa_ch8_randomism.kv</title>
<path fill="none" stroke="black" d="M309,-1295.83C309,-1288.13 309,-1278.97 309,-1270.42"/>
<polygon fill="black" stroke="black" points="312.5,-1270.41 309,-1260.41 305.5,-1270.41 312.5,-1270.41"/>
</g>
<!-- ffa_ch8_randomism.kv&#45;&gt;ffa_ch9_exodus.kv -->
<g id="edge58" class="edge"><title>ffa_ch8_randomism.kv&#45;&gt;ffa_ch9_exodus.kv</title>
<path fill="none" stroke="black" d="M309,-1223.83C309,-1216.13 309,-1206.97 309,-1198.42"/>
<polygon fill="black" stroke="black" points="312.5,-1198.41 309,-1188.41 305.5,-1198.41 312.5,-1198.41"/>
</g>
</g>
</svg>
