Skip to content

Instantly share code, notes, and snippets.

@harlowja
Created October 9, 2015 15:15
Show Gist options
  • Save harlowja/e5838f65edb0d3a9ff8a to your computer and use it in GitHub Desktop.
Save harlowja/e5838f65edb0d3a9ff8a to your computer and use it in GitHub Desktop.
os.svg
Display the source blob
Display the rendered blob
Raw
<?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.36.0 (20140111.2315)
-->
<!-- Title: OpenStack Universe Pages: 1 -->
<svg width="3740pt" height="3326pt" viewBox="0.00 0.00 3739.70 3325.88" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 3321.88)">
<title>OpenStack Universe</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-3321.88 3735.7,-3321.88 3735.7,4 -4,4"/>
<!-- Chef OpenStack -->
<g id="node1" class="node"><title>Chef OpenStack</title>
<ellipse fill="none" stroke="black" cx="3035.32" cy="-2671.96" rx="68.7879" ry="18"/>
<text text-anchor="middle" x="3035.32" y="-2668.26" font-family="Times,serif" font-size="14.00">Chef OpenStack</text>
</g>
<!-- cookbook&#45;openstack&#45;bare&#45;metal -->
<g id="node2" class="node"><title>cookbook-openstack-bare-metal</title>
<ellipse fill="none" stroke="black" cx="3414.74" cy="-2660.09" rx="95.0227" ry="18"/>
<text text-anchor="middle" x="3414.74" y="-2657.29" font-family="Times,serif" font-size="11.00">cookbook-openstack-bare-metal</text>
</g>
<!-- Chef OpenStack&#45;&gt;cookbook&#45;openstack&#45;bare&#45;metal -->
<g id="edge1" class="edge"><title>Chef OpenStack-&gt;cookbook-openstack-bare-metal</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3104.03,-2669.81C3161.6,-2668.01 3244.68,-2665.41 3310.45,-2663.35"/>
<polygon fill="black" stroke="black" points="3310.97,-2666.83 3320.85,-2663.02 3310.75,-2659.84 3310.97,-2666.83"/>
</g>
<!-- cookbook&#45;openstack&#45;block&#45;storage -->
<g id="node3" class="node"><title>cookbook-openstack-block-storage</title>
<ellipse fill="none" stroke="black" cx="2745" cy="-2387.24" rx="102.455" ry="18"/>
<text text-anchor="middle" x="2745" y="-2384.44" font-family="Times,serif" font-size="11.00">cookbook-openstack-block-storage</text>
</g>
<!-- Chef OpenStack&#45;&gt;cookbook&#45;openstack&#45;block&#45;storage -->
<g id="edge2" class="edge"><title>Chef OpenStack-&gt;cookbook-openstack-block-storage</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3025.75,-2653.91C3013.77,-2632.24 2991.83,-2595.43 2967.32,-2568.25 2908.91,-2503.5 2826.31,-2442.59 2780,-2410.6"/>
<polygon fill="black" stroke="black" points="2781.74,-2407.55 2771.51,-2404.78 2777.78,-2413.32 2781.74,-2407.55"/>
</g>
<!-- cookbook&#45;openstack&#45;client -->
<g id="node4" class="node"><title>cookbook-openstack-client</title>
<ellipse fill="none" stroke="black" cx="2963.02" cy="-2947.35" rx="81.3616" ry="18"/>
<text text-anchor="middle" x="2963.02" y="-2944.55" font-family="Times,serif" font-size="11.00">cookbook-openstack-client</text>
</g>
<!-- Chef OpenStack&#45;&gt;cookbook&#45;openstack&#45;client -->
<g id="edge3" class="edge"><title>Chef OpenStack-&gt;cookbook-openstack-client</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3030.57,-2690.03C3018.27,-2736.9 2985.24,-2862.69 2970.41,-2919.19"/>
<polygon fill="black" stroke="black" points="2966.93,-2918.65 2967.78,-2929.21 2973.7,-2920.43 2966.93,-2918.65"/>
</g>
<!-- cookbook&#45;openstack&#45;common -->
<g id="node5" class="node"><title>cookbook-openstack-common</title>
<ellipse fill="none" stroke="black" cx="3202.63" cy="-2761.75" rx="88.996" ry="18"/>
<text text-anchor="middle" x="3202.63" y="-2758.95" font-family="Times,serif" font-size="11.00">cookbook-openstack-common</text>
</g>
<!-- Chef OpenStack&#45;&gt;cookbook&#45;openstack&#45;common -->
<g id="edge4" class="edge"><title>Chef OpenStack-&gt;cookbook-openstack-common</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3065.61,-2688.22C3092.67,-2702.74 3132.5,-2724.11 3162.25,-2740.08"/>
<polygon fill="black" stroke="black" points="3160.67,-2743.2 3171.13,-2744.85 3163.98,-2737.03 3160.67,-2743.2"/>
</g>
<!-- cookbook&#45;openstack&#45;compute -->
<g id="node6" class="node"><title>cookbook-openstack-compute</title>
<ellipse fill="none" stroke="black" cx="2879.5" cy="-2767.61" rx="88.996" ry="18"/>
<text text-anchor="middle" x="2879.5" y="-2764.81" font-family="Times,serif" font-size="11.00">cookbook-openstack-compute</text>
</g>
<!-- Chef OpenStack&#45;&gt;cookbook&#45;openstack&#45;compute -->
<g id="edge5" class="edge"><title>Chef OpenStack-&gt;cookbook-openstack-compute</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3008.17,-2688.62C2982.68,-2704.27 2944.35,-2727.8 2916.15,-2745.11"/>
<polygon fill="black" stroke="black" points="2914.07,-2742.28 2907.38,-2750.5 2917.73,-2748.25 2914.07,-2742.28"/>
</g>
<!-- cookbook&#45;openstack&#45;dashboard -->
<g id="node7" class="node"><title>cookbook-openstack-dashboard</title>
<ellipse fill="none" stroke="black" cx="2490.57" cy="-2400.22" rx="93.4152" ry="18"/>
<text text-anchor="middle" x="2490.57" y="-2397.42" font-family="Times,serif" font-size="11.00">cookbook-openstack-dashboard</text>
</g>
<!-- Chef OpenStack&#45;&gt;cookbook&#45;openstack&#45;dashboard -->
<g id="edge6" class="edge"><title>Chef OpenStack-&gt;cookbook-openstack-dashboard</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2995.17,-2657.22C2949.96,-2640.31 2874.57,-2611.13 2811.42,-2582.01 2704.09,-2532.5 2584.69,-2459.85 2526.46,-2423.19"/>
<polygon fill="black" stroke="black" points="2527.97,-2420 2517.65,-2417.62 2524.23,-2425.92 2527.97,-2420"/>
</g>
<!-- cookbook&#45;openstack&#45;data&#45;processing -->
<g id="node8" class="node"><title>cookbook-openstack-data-processing</title>
<ellipse fill="none" stroke="black" cx="3599.31" cy="-2454.45" rx="108.482" ry="18"/>
<text text-anchor="middle" x="3599.31" y="-2451.65" font-family="Times,serif" font-size="11.00">cookbook-openstack-data-processing</text>
</g>
<!-- Chef OpenStack&#45;&gt;cookbook&#45;openstack&#45;data&#45;processing -->
<g id="edge7" class="edge"><title>Chef OpenStack-&gt;cookbook-openstack-data-processing</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3074.08,-2657.01C3172.87,-2618.91 3434.16,-2518.14 3546.62,-2474.77"/>
<polygon fill="black" stroke="black" points="3547.99,-2477.99 3556.06,-2471.13 3545.47,-2471.46 3547.99,-2477.99"/>
</g>
<!-- cookbook&#45;openstack&#45;database -->
<g id="node9" class="node"><title>cookbook-openstack-database</title>
<ellipse fill="none" stroke="black" cx="2876.12" cy="-2568.19" rx="89.6988" ry="18"/>
<text text-anchor="middle" x="2876.12" y="-2565.39" font-family="Times,serif" font-size="11.00">cookbook-openstack-database</text>
</g>
<!-- Chef OpenStack&#45;&gt;cookbook&#45;openstack&#45;database -->
<g id="edge8" class="edge"><title>Chef OpenStack-&gt;cookbook-openstack-database</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3009.38,-2655.05C2982.6,-2637.6 2940.64,-2610.25 2910.97,-2590.91"/>
<polygon fill="black" stroke="black" points="2912.86,-2587.96 2902.57,-2585.43 2909.04,-2593.83 2912.86,-2587.96"/>
</g>
<!-- cookbook&#45;openstack&#45;identity -->
<g id="node10" class="node"><title>cookbook-openstack-identity</title>
<ellipse fill="none" stroke="black" cx="3145.52" cy="-2364" rx="85.9826" ry="18"/>
<text text-anchor="middle" x="3145.52" y="-2361.2" font-family="Times,serif" font-size="11.00">cookbook-openstack-identity</text>
</g>
<!-- Chef OpenStack&#45;&gt;cookbook&#45;openstack&#45;identity -->
<g id="edge9" class="edge"><title>Chef OpenStack-&gt;cookbook-openstack-identity</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3041.88,-2653.61C3060.45,-2601.73 3113.43,-2453.68 3135.59,-2391.75"/>
<polygon fill="black" stroke="black" points="3138.92,-2392.84 3138.99,-2382.25 3132.33,-2390.48 3138.92,-2392.84"/>
</g>
<!-- cookbook&#45;openstack&#45;image -->
<g id="node11" class="node"><title>cookbook-openstack-image</title>
<ellipse fill="none" stroke="black" cx="2961.41" cy="-2387.36" rx="82.2667" ry="18"/>
<text text-anchor="middle" x="2961.41" y="-2384.56" font-family="Times,serif" font-size="11.00">cookbook-openstack-image</text>
</g>
<!-- Chef OpenStack&#45;&gt;cookbook&#45;openstack&#45;image -->
<g id="edge10" class="edge"><title>Chef OpenStack-&gt;cookbook-openstack-image</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3030.58,-2653.72C3018.01,-2605.33 2983.76,-2473.41 2968.69,-2415.38"/>
<polygon fill="black" stroke="black" points="2972.01,-2414.24 2966.11,-2405.44 2965.23,-2416 2972.01,-2414.24"/>
</g>
<!-- cookbook&#45;openstack&#45;integration&#45;test -->
<g id="node12" class="node"><title>cookbook-openstack-integration-test</title>
<ellipse fill="none" stroke="black" cx="2694.08" cy="-2666.1" rx="106.374" ry="18"/>
<text text-anchor="middle" x="2694.08" y="-2663.3" font-family="Times,serif" font-size="11.00">cookbook-openstack-integration-test</text>
</g>
<!-- Chef OpenStack&#45;&gt;cookbook&#45;openstack&#45;integration&#45;test -->
<g id="edge11" class="edge"><title>Chef OpenStack-&gt;cookbook-openstack-integration-test</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2966.26,-2670.77C2921.53,-2670 2862.16,-2668.98 2810.28,-2668.09"/>
<polygon fill="black" stroke="black" points="2810.07,-2664.59 2800.01,-2667.92 2809.95,-2671.59 2810.07,-2664.59"/>
</g>
<!-- cookbook&#45;openstack&#45;network -->
<g id="node13" class="node"><title>cookbook-openstack-network</title>
<ellipse fill="none" stroke="black" cx="3601.84" cy="-2867.08" rx="87.5911" ry="18"/>
<text text-anchor="middle" x="3601.84" y="-2864.28" font-family="Times,serif" font-size="11.00">cookbook-openstack-network</text>
</g>
<!-- Chef OpenStack&#45;&gt;cookbook&#45;openstack&#45;network -->
<g id="edge12" class="edge"><title>Chef OpenStack-&gt;cookbook-openstack-network</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3079,-2685.93C3125.68,-2700.94 3201.79,-2725.65 3267.11,-2747.98 3367.04,-2782.14 3483.02,-2823.88 3548.89,-2847.78"/>
<polygon fill="black" stroke="black" points="3548.04,-2851.19 3558.63,-2851.32 3550.43,-2844.62 3548.04,-2851.19"/>
</g>
<!-- cookbook&#45;openstack&#45;object&#45;storage -->
<g id="node14" class="node"><title>cookbook-openstack-object-storage</title>
<ellipse fill="none" stroke="black" cx="3369.69" cy="-2941.44" rx="104.063" ry="18"/>
<text text-anchor="middle" x="3369.69" y="-2938.64" font-family="Times,serif" font-size="11.00">cookbook-openstack-object-storage</text>
</g>
<!-- Chef OpenStack&#45;&gt;cookbook&#45;openstack&#45;object&#45;storage -->
<g id="edge13" class="edge"><title>Chef OpenStack-&gt;cookbook-openstack-object-storage</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3048.54,-2689.98C3062.95,-2708.98 3087.28,-2739.2 3112.03,-2761.62 3183.3,-2826.2 3278.61,-2887.11 3331.04,-2918.78"/>
<polygon fill="black" stroke="black" points="3329.33,-2921.83 3339.7,-2923.98 3332.93,-2915.83 3329.33,-2921.83"/>
</g>
<!-- cookbook&#45;openstack&#45;ops&#45;database -->
<g id="node15" class="node"><title>cookbook-openstack-ops-database</title>
<ellipse fill="none" stroke="black" cx="3151.91" cy="-2956.72" rx="101.05" ry="18"/>
<text text-anchor="middle" x="3151.91" y="-2953.92" font-family="Times,serif" font-size="11.00">cookbook-openstack-ops-database</text>
</g>
<!-- Chef OpenStack&#45;&gt;cookbook&#45;openstack&#45;ops&#45;database -->
<g id="edge14" class="edge"><title>Chef OpenStack-&gt;cookbook-openstack-ops-database</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3042.79,-2690.2C3062.65,-2738.72 3116.88,-2871.17 3140.58,-2929.04"/>
<polygon fill="black" stroke="black" points="3137.47,-2930.69 3144.5,-2938.62 3143.95,-2928.04 3137.47,-2930.69"/>
</g>
<!-- cookbook&#45;openstack&#45;ops&#45;messaging -->
<g id="node16" class="node"><title>cookbook-openstack-ops-messaging</title>
<ellipse fill="none" stroke="black" cx="3188.61" cy="-2559.79" rx="105.671" ry="18"/>
<text text-anchor="middle" x="3188.61" y="-2556.99" font-family="Times,serif" font-size="11.00">cookbook-openstack-ops-messaging</text>
</g>
<!-- Chef OpenStack&#45;&gt;cookbook&#45;openstack&#45;ops&#45;messaging -->
<g id="edge15" class="edge"><title>Chef OpenStack-&gt;cookbook-openstack-ops-messaging</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3058.6,-2654.92C3084.67,-2635.84 3127.1,-2604.8 3156.35,-2583.39"/>
<polygon fill="black" stroke="black" points="3158.6,-2586.08 3164.61,-2577.35 3154.47,-2580.43 3158.6,-2586.08"/>
</g>
<!-- cookbook&#45;openstack&#45;orchestration -->
<g id="node17" class="node"><title>cookbook-openstack-orchestration</title>
<ellipse fill="none" stroke="black" cx="3361.28" cy="-2386" rx="101.05" ry="18"/>
<text text-anchor="middle" x="3361.28" y="-2383.2" font-family="Times,serif" font-size="11.00">cookbook-openstack-orchestration</text>
</g>
<!-- Chef OpenStack&#45;&gt;cookbook&#45;openstack&#45;orchestration -->
<g id="edge16" class="edge"><title>Chef OpenStack-&gt;cookbook-openstack-orchestration</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3039.04,-2653.8C3044.69,-2629.95 3057.39,-2587.82 3081.18,-2559.68 3144.16,-2485.17 3247.49,-2432.87 3309.49,-2406.25"/>
<polygon fill="black" stroke="black" points="3310.86,-2409.47 3318.7,-2402.35 3308.13,-2403.02 3310.86,-2409.47"/>
</g>
<!-- cookbook&#45;openstack&#45;telemetry -->
<g id="node18" class="node"><title>cookbook-openstack-telemetry</title>
<ellipse fill="none" stroke="black" cx="2488.4" cy="-2924.5" rx="91.3068" ry="18"/>
<text text-anchor="middle" x="2488.4" y="-2921.7" font-family="Times,serif" font-size="11.00">cookbook-openstack-telemetry</text>
</g>
<!-- Chef OpenStack&#45;&gt;cookbook&#45;openstack&#45;telemetry -->
<g id="edge17" class="edge"><title>Chef OpenStack-&gt;cookbook-openstack-telemetry</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2992.66,-2686.18C2948.02,-2701.45 2876.15,-2727.11 2815.88,-2753.65 2708.43,-2800.98 2587.16,-2868 2526.8,-2902.34"/>
<polygon fill="black" stroke="black" points="2524.95,-2899.37 2518,-2907.36 2528.42,-2905.45 2524.95,-2899.37"/>
</g>
<!-- openstack&#45;chef&#45;repo -->
<g id="node19" class="node"><title>openstack-chef-repo</title>
<ellipse fill="none" stroke="black" cx="2466.23" cy="-2660.81" rx="64.1867" ry="18"/>
<text text-anchor="middle" x="2466.23" y="-2658.01" font-family="Times,serif" font-size="11.00">openstack-chef-repo</text>
</g>
<!-- Chef OpenStack&#45;&gt;openstack&#45;chef&#45;repo -->
<g id="edge18" class="edge"><title>Chef OpenStack-&gt;openstack-chef-repo</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2972.24,-2664.65C2903.87,-2657.33 2791.47,-2647.07 2694.24,-2646.5 2641.62,-2646.19 2582.31,-2650.04 2537.36,-2653.83"/>
<polygon fill="black" stroke="black" points="2536.79,-2650.37 2527.13,-2654.71 2537.4,-2657.34 2536.79,-2650.37"/>
</g>
<!-- openstack&#45;chef&#45;specs -->
<g id="node20" class="node"><title>openstack-chef-specs</title>
<ellipse fill="none" stroke="black" cx="2741.93" cy="-2939.79" rx="67.9024" ry="18"/>
<text text-anchor="middle" x="2741.93" y="-2936.99" font-family="Times,serif" font-size="11.00">openstack-chef-specs</text>
</g>
<!-- Chef OpenStack&#45;&gt;openstack&#45;chef&#45;specs -->
<g id="edge19" class="edge"><title>Chef OpenStack-&gt;openstack-chef-specs</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3025.55,-2689.82C3013.96,-2710.07 2993.27,-2743.42 2970.09,-2767.75 2910.29,-2830.51 2825.82,-2887.74 2778.23,-2917.76"/>
<polygon fill="black" stroke="black" points="2776.12,-2914.95 2769.5,-2923.22 2779.83,-2920.88 2776.12,-2914.95"/>
</g>
<!-- Community App Catalog -->
<g id="node21" class="node"><title>Community App Catalog</title>
<ellipse fill="none" stroke="black" cx="253.741" cy="-1667.21" rx="100.983" ry="18"/>
<text text-anchor="middle" x="253.741" y="-1663.51" font-family="Times,serif" font-size="14.00">Community App Catalog</text>
</g>
<!-- app&#45;catalog -->
<g id="node22" class="node"><title>app-catalog</title>
<ellipse fill="none" stroke="black" cx="297.636" cy="-1724.63" rx="40.7822" ry="18"/>
<text text-anchor="middle" x="297.636" y="-1721.83" font-family="Times,serif" font-size="11.00">app-catalog</text>
</g>
<!-- Community App Catalog&#45;&gt;app&#45;catalog -->
<g id="edge20" class="edge"><title>Community App Catalog-&gt;app-catalog</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M267.389,-1685.06C270.787,-1689.5 274.495,-1694.36 278.115,-1699.09"/>
<polygon fill="black" stroke="black" points="275.594,-1701.55 284.448,-1707.37 281.155,-1697.3 275.594,-1701.55"/>
</g>
<!-- app&#45;catalog&#45;ui -->
<g id="node23" class="node"><title>app-catalog-ui</title>
<ellipse fill="none" stroke="black" cx="229.784" cy="-1599" rx="48.2143" ry="18"/>
<text text-anchor="middle" x="229.784" y="-1596.2" font-family="Times,serif" font-size="11.00">app-catalog-ui</text>
</g>
<!-- Community App Catalog&#45;&gt;app&#45;catalog&#45;ui -->
<g id="edge21" class="edge"><title>Community App Catalog-&gt;app-catalog-ui</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M247.321,-1648.93C244.892,-1642.01 242.072,-1633.98 239.413,-1626.41"/>
<polygon fill="black" stroke="black" points="242.672,-1625.13 236.056,-1616.86 236.068,-1627.45 242.672,-1625.13"/>
</g>
<!-- Documentation -->
<g id="node24" class="node"><title>Documentation</title>
<ellipse fill="none" stroke="black" cx="1147.04" cy="-416.164" rx="65.7887" ry="18"/>
<text text-anchor="middle" x="1147.04" y="-412.464" font-family="Times,serif" font-size="14.00">Documentation</text>
</g>
<!-- api&#45;site -->
<g id="node25" class="node"><title>api-site</title>
<ellipse fill="none" stroke="black" cx="1357.93" cy="-565.139" rx="30.1339" ry="18"/>
<text text-anchor="middle" x="1357.93" y="-562.339" font-family="Times,serif" font-size="11.00">api-site</text>
</g>
<!-- Documentation&#45;&gt;api&#45;site -->
<g id="edge22" class="edge"><title>Documentation-&gt;api-site</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1170.82,-432.963C1210.04,-460.67 1288.1,-515.813 1329.93,-545.359"/>
<polygon fill="black" stroke="black" points="1328.09,-548.345 1338.28,-551.256 1332.13,-542.628 1328.09,-548.345"/>
</g>
<!-- docs&#45;specs -->
<g id="node26" class="node"><title>docs-specs</title>
<ellipse fill="none" stroke="black" cx="1114.23" cy="-279.48" rx="39.1741" ry="18"/>
<text text-anchor="middle" x="1114.23" y="-276.68" font-family="Times,serif" font-size="11.00">docs-specs</text>
</g>
<!-- Documentation&#45;&gt;docs&#45;specs -->
<g id="edge23" class="edge"><title>Documentation-&gt;docs-specs</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1142.68,-398.013C1137.14,-374.934 1127.52,-334.836 1121.02,-307.739"/>
<polygon fill="black" stroke="black" points="1124.35,-306.613 1118.61,-297.706 1117.54,-308.247 1124.35,-306.613"/>
</g>
<!-- ha&#45;guide -->
<g id="node27" class="node"><title>ha-guide</title>
<ellipse fill="none" stroke="black" cx="902.653" cy="-565.333" rx="33.1473" ry="18"/>
<text text-anchor="middle" x="902.653" y="-562.533" font-family="Times,serif" font-size="11.00">ha-guide</text>
</g>
<!-- Documentation&#45;&gt;ha&#45;guide -->
<g id="edge24" class="edge"><title>Documentation-&gt;ha-guide</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1119.95,-432.697C1074.19,-460.632 981.837,-517.001 933.593,-546.448"/>
<polygon fill="black" stroke="black" points="931.552,-543.594 924.839,-551.791 935.199,-549.569 931.552,-543.594"/>
</g>
<!-- openstack&#45;doc&#45;tools -->
<g id="node28" class="node"><title>openstack-doc-tools</title>
<ellipse fill="none" stroke="black" cx="1203.44" cy="-564.424" rx="63.2812" ry="18"/>
<text text-anchor="middle" x="1203.44" y="-561.624" font-family="Times,serif" font-size="11.00">openstack-doc-tools</text>
</g>
<!-- Documentation&#45;&gt;openstack&#45;doc&#45;tools -->
<g id="edge25" class="edge"><title>Documentation-&gt;openstack-doc-tools</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1153.95,-434.343C1163.68,-459.908 1181.48,-506.699 1192.87,-536.642"/>
<polygon fill="black" stroke="black" points="1189.64,-537.993 1196.46,-546.095 1196.18,-535.504 1189.64,-537.993"/>
</g>
<!-- openstack&#45;manuals -->
<g id="node29" class="node"><title>openstack-manuals</title>
<ellipse fill="none" stroke="black" cx="1066.03" cy="-562.555" rx="60.9711" ry="18"/>
<text text-anchor="middle" x="1066.03" y="-559.755" font-family="Times,serif" font-size="11.00">openstack-manuals</text>
</g>
<!-- Documentation&#45;&gt;openstack&#45;manuals -->
<g id="edge26" class="edge"><title>Documentation-&gt;openstack-manuals</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1137.11,-434.114C1123.08,-459.467 1097.35,-505.96 1081,-535.508"/>
<polygon fill="black" stroke="black" points="1077.82,-534.014 1076.04,-544.458 1083.95,-537.403 1077.82,-534.014"/>
</g>
<!-- openstackdocstheme -->
<g id="node30" class="node"><title>openstackdocstheme</title>
<ellipse fill="none" stroke="black" cx="939.361" cy="-419.899" rx="64.889" ry="18"/>
<text text-anchor="middle" x="939.361" y="-417.099" font-family="Times,serif" font-size="11.00">openstackdocstheme</text>
</g>
<!-- Documentation&#45;&gt;openstackdocstheme -->
<g id="edge27" class="edge"><title>Documentation-&gt;openstackdocstheme</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1081.33,-417.346C1060.09,-417.728 1036.39,-418.154 1014.52,-418.547"/>
<polygon fill="black" stroke="black" points="1014.22,-415.052 1004.29,-418.732 1014.35,-422.051 1014.22,-415.052"/>
</g>
<!-- operations&#45;guide -->
<g id="node31" class="node"><title>operations-guide</title>
<ellipse fill="none" stroke="black" cx="1343.9" cy="-410.131" rx="54.2411" ry="18"/>
<text text-anchor="middle" x="1343.9" y="-407.331" font-family="Times,serif" font-size="11.00">operations-guide</text>
</g>
<!-- Documentation&#45;&gt;operations&#45;guide -->
<g id="edge28" class="edge"><title>Documentation-&gt;operations-guide</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1212.32,-414.163C1234.06,-413.497 1258.24,-412.756 1279.88,-412.093"/>
<polygon fill="black" stroke="black" points="1280.07,-415.589 1289.95,-411.784 1279.85,-408.592 1280.07,-415.589"/>
</g>
<!-- training&#45;guides -->
<g id="node32" class="node"><title>training-guides</title>
<ellipse fill="none" stroke="black" cx="916.911" cy="-281.319" rx="49.8222" ry="18"/>
<text text-anchor="middle" x="916.911" y="-278.519" font-family="Times,serif" font-size="11.00">training-guides</text>
</g>
<!-- Documentation&#45;&gt;training&#45;guides -->
<g id="edge29" class="edge"><title>Documentation-&gt;training-guides</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1118.82,-399.629C1076.74,-374.971 997.603,-328.601 951.9,-301.821"/>
<polygon fill="black" stroke="black" points="953.623,-298.774 943.225,-296.738 950.084,-304.813 953.623,-298.774"/>
</g>
<!-- training&#45;labs -->
<g id="node33" class="node"><title>training-labs</title>
<ellipse fill="none" stroke="black" cx="1322.56" cy="-273" rx="43.0936" ry="18"/>
<text text-anchor="middle" x="1322.56" y="-270.2" font-family="Times,serif" font-size="11.00">training-labs</text>
</g>
<!-- Documentation&#45;&gt;training&#45;labs -->
<g id="edge30" class="edge"><title>Documentation-&gt;training-labs</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1168.21,-398.895C1199.86,-373.076 1259.56,-324.388 1294.71,-295.715"/>
<polygon fill="black" stroke="black" points="1297.13,-298.26 1302.66,-289.227 1292.7,-292.836 1297.13,-298.26"/>
</g>
<!-- I18n -->
<g id="node34" class="node"><title>I18n</title>
<ellipse fill="none" stroke="black" cx="1302" cy="-2211" rx="27" ry="18"/>
<text text-anchor="middle" x="1302" y="-2207.3" font-family="Times,serif" font-size="14.00">I18n</text>
</g>
<!-- Infrastructure -->
<g id="node35" class="node"><title>Infrastructure</title>
<ellipse fill="none" stroke="black" cx="1560.87" cy="-1492.13" rx="58.4896" ry="18"/>
<text text-anchor="middle" x="1560.87" y="-1488.43" font-family="Times,serif" font-size="14.00">Infrastructure</text>
</g>
<!-- activity&#45;board -->
<g id="node36" class="node"><title>activity-board</title>
<ellipse fill="none" stroke="black" cx="1990.39" cy="-1280.47" rx="46.8089" ry="18"/>
<text text-anchor="middle" x="1990.39" y="-1277.67" font-family="Times,serif" font-size="11.00">activity-board</text>
</g>
<!-- Infrastructure&#45;&gt;activity&#45;board -->
<g id="edge31" class="edge"><title>Infrastructure-&gt;activity-board</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1582.52,-1475.28C1593.15,-1467.39 1606.34,-1458.16 1618.84,-1450.94 1679.28,-1416.01 1866.21,-1334.11 1949.56,-1298.05"/>
<polygon fill="black" stroke="black" points="1951.17,-1301.16 1958.96,-1293.98 1948.39,-1294.74 1951.17,-1301.16"/>
</g>
<!-- ansible&#45;build&#45;image -->
<g id="node37" class="node"><title>ansible-build-image</title>
<ellipse fill="none" stroke="black" cx="1500.43" cy="-681" rx="62.5783" ry="18"/>
<text text-anchor="middle" x="1500.43" y="-678.2" font-family="Times,serif" font-size="11.00">ansible-build-image</text>
</g>
<!-- Infrastructure&#45;&gt;ansible&#45;build&#45;image -->
<g id="edge32" class="edge"><title>Infrastructure-&gt;ansible-build-image</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1556.87,-1474.12C1551.41,-1447.6 1542.52,-1396.41 1544.56,-1352.53 1545.45,-1333.58 1554.54,-1329.71 1553.44,-1310.77 1550.67,-1263.07 1519.06,-1256.69 1519.08,-1208.91 1519.11,-1143.53 1561.05,-1134.74 1566.22,-1069.57 1566.59,-1065.01 1520.56,-797.625 1505.29,-709.111"/>
<polygon fill="black" stroke="black" points="1508.73,-708.492 1503.58,-699.233 1501.83,-709.682 1508.73,-708.492"/>
</g>
<!-- ansible&#45;puppet -->
<g id="node38" class="node"><title>ansible-puppet</title>
<ellipse fill="none" stroke="black" cx="1073.7" cy="-2345.23" rx="48.9176" ry="18"/>
<text text-anchor="middle" x="1073.7" y="-2342.43" font-family="Times,serif" font-size="11.00">ansible-puppet</text>
</g>
<!-- Infrastructure&#45;&gt;ansible&#45;puppet -->
<g id="edge33" class="edge"><title>Infrastructure-&gt;ansible-puppet</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1539.64,-1509.23C1517.49,-1528.84 1484.82,-1563.32 1476.28,-1602.15 1468.48,-1637.6 1501.71,-1646.27 1494.31,-1681.81 1479.77,-1751.64 1439.05,-1751.93 1399.34,-1811.18 1272.12,-2001.02 1134.01,-2239.64 1088.88,-2318.55"/>
<polygon fill="black" stroke="black" points="1085.77,-2316.95 1083.85,-2327.37 1091.84,-2320.42 1085.77,-2316.95"/>
</g>
<!-- askbot&#45;theme -->
<g id="node39" class="node"><title>askbot-theme</title>
<ellipse fill="none" stroke="black" cx="1734.67" cy="-1361.95" rx="45.9042" ry="18"/>
<text text-anchor="middle" x="1734.67" y="-1359.15" font-family="Times,serif" font-size="11.00">askbot-theme</text>
</g>
<!-- Infrastructure&#45;&gt;askbot&#45;theme -->
<g id="edge34" class="edge"><title>Infrastructure-&gt;askbot-theme</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1583.24,-1475.38C1614.25,-1452.14 1670.4,-1410.09 1704.92,-1384.23"/>
<polygon fill="black" stroke="black" points="1707.3,-1386.82 1713.21,-1378.03 1703.1,-1381.22 1707.3,-1386.82"/>
</g>
<!-- bindep -->
<g id="node40" class="node"><title>bindep</title>
<ellipse fill="none" stroke="black" cx="1357.78" cy="-1574.52" rx="27.824" ry="18"/>
<text text-anchor="middle" x="1357.78" y="-1571.72" font-family="Times,serif" font-size="11.00">bindep</text>
</g>
<!-- Infrastructure&#45;&gt;bindep -->
<g id="edge35" class="edge"><title>Infrastructure-&gt;bindep</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1539.7,-1509.04C1523.45,-1521.22 1500.02,-1537.18 1477.17,-1546.93 1450.92,-1558.13 1419.4,-1565.17 1395.34,-1569.33"/>
<polygon fill="black" stroke="black" points="1394.49,-1565.92 1385.19,-1570.99 1395.62,-1572.83 1394.49,-1565.92"/>
</g>
<!-- bugdaystats -->
<g id="node41" class="node"><title>bugdaystats</title>
<ellipse fill="none" stroke="black" cx="707.564" cy="-711.613" rx="40.7822" ry="18"/>
<text text-anchor="middle" x="707.564" y="-708.813" font-family="Times,serif" font-size="11.00">bugdaystats</text>
</g>
<!-- Infrastructure&#45;&gt;bugdaystats -->
<g id="edge36" class="edge"><title>Infrastructure-&gt;bugdaystats</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1528.23,-1476.93C1505.99,-1465.9 1476.37,-1449.88 1452.53,-1432.24 1370.51,-1371.57 849.238,-852.922 731.273,-735.278"/>
<polygon fill="black" stroke="black" points="733.647,-732.702 724.095,-728.118 728.703,-737.658 733.647,-732.702"/>
</g>
<!-- devstack&#45;gate -->
<g id="node42" class="node"><title>devstack-gate</title>
<ellipse fill="none" stroke="black" cx="2109.54" cy="-943.709" rx="46.8089" ry="18"/>
<text text-anchor="middle" x="2109.54" y="-940.909" font-family="Times,serif" font-size="11.00">devstack-gate</text>
</g>
<!-- Infrastructure&#45;&gt;devstack&#45;gate -->
<g id="edge37" class="edge"><title>Infrastructure-&gt;devstack-gate</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1575.09,-1474.66C1608.62,-1433.72 1695.73,-1328.77 1774.22,-1246.26 1840.28,-1176.82 1858.77,-1161.27 1929.84,-1096.96 1982.34,-1049.47 2045.77,-996.327 2081.5,-966.76"/>
<polygon fill="black" stroke="black" points="2084.06,-969.186 2089.54,-960.119 2079.6,-963.789 2084.06,-969.186"/>
</g>
<!-- elastic&#45;recheck -->
<g id="node43" class="node"><title>elastic-recheck</title>
<ellipse fill="none" stroke="black" cx="1422.97" cy="-909.319" rx="51.2277" ry="18"/>
<text text-anchor="middle" x="1422.97" y="-906.519" font-family="Times,serif" font-size="11.00">elastic-recheck</text>
</g>
<!-- Infrastructure&#45;&gt;elastic&#45;recheck -->
<g id="edge38" class="edge"><title>Infrastructure-&gt;elastic-recheck</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1556.87,-1474.12C1551.41,-1447.6 1542.52,-1396.41 1544.56,-1352.53 1545.45,-1333.58 1555.61,-1329.62 1553.44,-1310.77 1539.92,-1193.13 1472.31,-1183.54 1440.35,-1069.52 1427.74,-1024.5 1424.18,-969.993 1423.24,-937.567"/>
<polygon fill="black" stroke="black" points="1426.73,-937.38 1423,-927.463 1419.73,-937.54 1426.73,-937.38"/>
</g>
<!-- gear -->
<g id="node44" class="node"><title>gear</title>
<ellipse fill="none" stroke="black" cx="1911.41" cy="-927.812" rx="27" ry="18"/>
<text text-anchor="middle" x="1911.41" y="-925.012" font-family="Times,serif" font-size="11.00">gear</text>
</g>
<!-- Infrastructure&#45;&gt;gear -->
<g id="edge39" class="edge"><title>Infrastructure-&gt;gear</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1575.99,-1474.55C1598.11,-1448.56 1640.21,-1398.05 1672.84,-1352.68 1774.29,-1211.61 1866.52,-1023.4 1899.03,-954.514"/>
<polygon fill="black" stroke="black" points="1902.3,-955.775 1903.38,-945.235 1895.96,-952.8 1902.3,-955.775"/>
</g>
<!-- gearman&#45;plugin -->
<g id="node45" class="node"><title>gearman-plugin</title>
<ellipse fill="none" stroke="black" cx="1647.41" cy="-1078.63" rx="51.931" ry="18"/>
<text text-anchor="middle" x="1647.41" y="-1075.83" font-family="Times,serif" font-size="11.00">gearman-plugin</text>
</g>
<!-- Infrastructure&#45;&gt;gearman&#45;plugin -->
<g id="edge40" class="edge"><title>Infrastructure-&gt;gearman-plugin</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1555.19,-1473.92C1547.63,-1447.14 1536.15,-1395.64 1544.56,-1352.53 1558.5,-1281.14 1598.88,-1277.57 1623.3,-1209.05 1635.4,-1175.12 1641.71,-1133.96 1644.8,-1107.07"/>
<polygon fill="black" stroke="black" points="1648.31,-1107.14 1645.89,-1096.83 1641.35,-1106.4 1648.31,-1107.14"/>
</g>
<!-- gerrit -->
<g id="node46" class="node"><title>gerrit</title>
<ellipse fill="none" stroke="black" cx="358.078" cy="-1597.51" rx="27" ry="18"/>
<text text-anchor="middle" x="358.078" y="-1594.71" font-family="Times,serif" font-size="11.00">gerrit</text>
</g>
<!-- Infrastructure&#45;&gt;gerrit -->
<g id="edge41" class="edge"><title>Infrastructure-&gt;gerrit</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1507.31,-1499.54C1426.03,-1510.58 1266.6,-1531.43 1130.66,-1544.35 848.323,-1571.18 506.709,-1589.89 395.209,-1595.64"/>
<polygon fill="black" stroke="black" points="394.955,-1592.15 385.147,-1596.16 395.313,-1599.14 394.955,-1592.15"/>
</g>
<!-- gerritbot -->
<g id="node47" class="node"><title>gerritbot</title>
<ellipse fill="none" stroke="black" cx="2645.64" cy="-1030.19" rx="32.4445" ry="18"/>
<text text-anchor="middle" x="2645.64" y="-1027.39" font-family="Times,serif" font-size="11.00">gerritbot</text>
</g>
<!-- Infrastructure&#45;&gt;gerritbot -->
<g id="edge42" class="edge"><title>Infrastructure-&gt;gerritbot</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1582.06,-1475.13C1592.69,-1467.12 1606.01,-1457.83 1618.84,-1450.94 1789.15,-1359.43 1845.51,-1366.99 2024.67,-1294.34 2249.33,-1203.24 2516.52,-1086.83 2610.7,-1045.54"/>
<polygon fill="black" stroke="black" points="2612.29,-1048.67 2620.04,-1041.45 2609.48,-1042.26 2612.29,-1048.67"/>
</g>
<!-- gerritlib -->
<g id="node48" class="node"><title>gerritlib</title>
<ellipse fill="none" stroke="black" cx="2010.56" cy="-1606.89" rx="31.0408" ry="18"/>
<text text-anchor="middle" x="2010.56" y="-1604.09" font-family="Times,serif" font-size="11.00">gerritlib</text>
</g>
<!-- Infrastructure&#45;&gt;gerritlib -->
<g id="edge43" class="edge"><title>Infrastructure-&gt;gerritlib</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1606.05,-1503.66C1694.56,-1526.25 1889.39,-1575.96 1972.15,-1597.08"/>
<polygon fill="black" stroke="black" points="1971.35,-1600.49 1981.91,-1599.57 1973.09,-1593.71 1971.35,-1600.49"/>
</g>
<!-- git&#45;review -->
<g id="node49" class="node"><title>git-review</title>
<ellipse fill="none" stroke="black" cx="1463.46" cy="-2119.96" rx="37.0671" ry="18"/>
<text text-anchor="middle" x="1463.46" y="-2117.16" font-family="Times,serif" font-size="11.00">git-review</text>
</g>
<!-- Infrastructure&#45;&gt;git&#45;review -->
<g id="edge44" class="edge"><title>Infrastructure-&gt;git-review</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1565.74,-1510.26C1574.92,-1546.86 1593.12,-1632.18 1584.07,-1703.64 1577.04,-1759.19 1558.81,-1768.92 1539.92,-1821.63 1518.77,-1880.64 1510.13,-1894.43 1494.18,-1955.05 1481.74,-2002.37 1472.39,-2058.61 1467.44,-2091.68"/>
<polygon fill="black" stroke="black" points="1463.92,-2091.55 1465.93,-2101.96 1470.85,-2092.57 1463.92,-2091.55"/>
</g>
<!-- gitdm -->
<g id="node50" class="node"><title>gitdm</title>
<ellipse fill="none" stroke="black" cx="1794.89" cy="-1092.34" rx="27" ry="18"/>
<text text-anchor="middle" x="1794.89" y="-1089.54" font-family="Times,serif" font-size="11.00">gitdm</text>
</g>
<!-- Infrastructure&#45;&gt;gitdm -->
<g id="edge45" class="edge"><title>Infrastructure-&gt;gitdm</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1577.36,-1474.65C1614.17,-1434.7 1703.52,-1332.25 1751.19,-1230.55 1768.33,-1193.98 1781.15,-1148.94 1788.34,-1120.43"/>
<polygon fill="black" stroke="black" points="1791.82,-1120.91 1790.81,-1110.36 1785.03,-1119.24 1791.82,-1120.91"/>
</g>
<!-- glean -->
<g id="node51" class="node"><title>glean</title>
<ellipse fill="none" stroke="black" cx="2293.25" cy="-697.303" rx="27" ry="18"/>
<text text-anchor="middle" x="2293.25" y="-694.503" font-family="Times,serif" font-size="11.00">glean</text>
</g>
<!-- Infrastructure&#45;&gt;glean -->
<g id="edge46" class="edge"><title>Infrastructure-&gt;glean</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1575.62,-1474.62C1609.93,-1434.01 1697.96,-1330.45 1774.22,-1246.26 1962.41,-1038.52 2198.11,-795.052 2270.85,-720.286"/>
<polygon fill="black" stroke="black" points="2273.67,-722.402 2278.14,-712.795 2268.66,-717.52 2273.67,-722.402"/>
</g>
<!-- grafyaml -->
<g id="node52" class="node"><title>grafyaml</title>
<ellipse fill="none" stroke="black" cx="660.703" cy="-2327.88" rx="33.8507" ry="18"/>
<text text-anchor="middle" x="660.703" y="-2325.08" font-family="Times,serif" font-size="11.00">grafyaml</text>
</g>
<!-- Infrastructure&#45;&gt;grafyaml -->
<g id="edge47" class="edge"><title>Infrastructure-&gt;grafyaml</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1541.16,-1509.23C1504.08,-1541.67 1421.89,-1614.9 1357.61,-1681.59 1250.19,-1793.04 1252.37,-1852.18 1126.22,-1941.88 1038.25,-2004.44 1008.2,-2008.71 923.392,-2075.48 916.31,-2081.06 915.113,-2083.12 908.573,-2089.33 825.784,-2167.83 728.529,-2262.01 684.497,-2304.76"/>
<polygon fill="black" stroke="black" points="681.892,-2302.41 677.156,-2311.88 686.768,-2307.43 681.892,-2302.41"/>
</g>
<!-- groups -->
<g id="node53" class="node"><title>groups</title>
<ellipse fill="none" stroke="black" cx="350.003" cy="-1813.46" rx="27.824" ry="18"/>
<text text-anchor="middle" x="350.003" y="-1810.66" font-family="Times,serif" font-size="11.00">groups</text>
</g>
<!-- Infrastructure&#45;&gt;groups -->
<g id="edge48" class="edge"><title>Infrastructure-&gt;groups</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1509.94,-1501.05C1440.69,-1513.65 1313.26,-1538.54 1206.76,-1568.79 1131.75,-1590.1 1115.39,-1602.97 1040.85,-1625.89 792.204,-1702.34 488.319,-1779.17 385.746,-1804.65"/>
<polygon fill="black" stroke="black" points="384.764,-1801.29 375.901,-1807.09 386.449,-1808.08 384.764,-1801.29"/>
</g>
<!-- groups&#45;static&#45;pages -->
<g id="node54" class="node"><title>groups-static-pages</title>
<ellipse fill="none" stroke="black" cx="1150.73" cy="-1666.49" rx="61.8756" ry="18"/>
<text text-anchor="middle" x="1150.73" y="-1663.69" font-family="Times,serif" font-size="11.00">groups-static-pages</text>
</g>
<!-- Infrastructure&#45;&gt;groups&#45;static&#45;pages -->
<g id="edge49" class="edge"><title>Infrastructure-&gt;groups-static-pages</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1537.76,-1508.9C1521.33,-1520.41 1498.49,-1535.59 1477.17,-1546.93 1386.7,-1595.05 1272.65,-1631.93 1206.08,-1651.31"/>
<polygon fill="black" stroke="black" points="1204.86,-1648.03 1196.22,-1654.16 1206.8,-1654.75 1204.86,-1648.03"/>
</g>
<!-- infra&#45;ansible -->
<g id="node55" class="node"><title>infra-ansible</title>
<ellipse fill="none" stroke="black" cx="1369.74" cy="-1447.85" rx="43.7956" ry="18"/>
<text text-anchor="middle" x="1369.74" y="-1445.05" font-family="Times,serif" font-size="11.00">infra-ansible</text>
</g>
<!-- Infrastructure&#45;&gt;infra&#45;ansible -->
<g id="edge50" class="edge"><title>Infrastructure-&gt;infra-ansible</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1514.12,-1481.3C1484.95,-1474.54 1447.5,-1465.86 1418.05,-1459.04"/>
<polygon fill="black" stroke="black" points="1418.52,-1455.56 1407.99,-1456.71 1416.94,-1462.38 1418.52,-1455.56"/>
</g>
<!-- infra&#45;manual -->
<g id="node56" class="node"><title>infra-manual</title>
<ellipse fill="none" stroke="black" cx="1269.69" cy="-1344.97" rx="44.498" ry="18"/>
<text text-anchor="middle" x="1269.69" y="-1342.17" font-family="Times,serif" font-size="11.00">infra-manual</text>
</g>
<!-- Infrastructure&#45;&gt;infra&#45;manual -->
<g id="edge51" class="edge"><title>Infrastructure-&gt;infra-manual</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1530.26,-1476.66C1476.45,-1449.47 1365.13,-1393.21 1306.95,-1363.8"/>
<polygon fill="black" stroke="black" points="1308.25,-1360.54 1297.74,-1359.15 1305.09,-1366.79 1308.25,-1360.54"/>
</g>
<!-- infra&#45;specs -->
<g id="node57" class="node"><title>infra-specs</title>
<ellipse fill="none" stroke="black" cx="1680.97" cy="-1926.74" rx="39.8775" ry="18"/>
<text text-anchor="middle" x="1680.97" y="-1923.94" font-family="Times,serif" font-size="11.00">infra-specs</text>
</g>
<!-- Infrastructure&#45;&gt;infra&#45;specs -->
<g id="edge52" class="edge"><title>Infrastructure-&gt;infra-specs</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1565.88,-1510.25C1584.59,-1577.97 1650.5,-1816.48 1673.21,-1898.67"/>
<polygon fill="black" stroke="black" points="1669.9,-1899.84 1675.94,-1908.55 1676.65,-1897.97 1669.9,-1899.84"/>
</g>
<!-- irc&#45;meetings -->
<g id="node58" class="node"><title>irc-meetings</title>
<ellipse fill="none" stroke="black" cx="1973.61" cy="-1934.29" rx="43.0936" ry="18"/>
<text text-anchor="middle" x="1973.61" y="-1931.49" font-family="Times,serif" font-size="11.00">irc-meetings</text>
</g>
<!-- Infrastructure&#45;&gt;irc&#45;meetings -->
<g id="edge53" class="edge"><title>Infrastructure-&gt;irc-meetings</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1584.42,-1508.96C1608.59,-1526.47 1647.02,-1555 1678.7,-1581.58 1685.66,-1587.43 1689.89,-1587.23 1693.71,-1595.48 1700.04,-1609.18 1688.84,-1615.7 1695.16,-1629.41 1740.3,-1727.27 1801.39,-1713.76 1872.74,-1794.54 1905.45,-1831.57 1937.93,-1878.98 1956.87,-1907.96"/>
<polygon fill="black" stroke="black" points="1954.15,-1910.2 1962.52,-1916.69 1960.02,-1906.39 1954.15,-1910.2"/>
</g>
<!-- jeepyb -->
<g id="node59" class="node"><title>jeepyb</title>
<ellipse fill="none" stroke="black" cx="1241.55" cy="-2348.52" rx="27.824" ry="18"/>
<text text-anchor="middle" x="1241.55" y="-2345.72" font-family="Times,serif" font-size="11.00">jeepyb</text>
</g>
<!-- Infrastructure&#45;&gt;jeepyb -->
<g id="edge54" class="edge"><title>Infrastructure-&gt;jeepyb</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1565.95,-1510.18C1571.42,-1532.1 1578.65,-1570.16 1573.28,-1602.49 1565.15,-1651.52 1534.33,-1654.7 1525.55,-1703.62 1517.05,-1750.99 1543.63,-1764.19 1534.83,-1811.5 1493.94,-2031.29 1322.09,-2252.63 1262.22,-2324.44"/>
<polygon fill="black" stroke="black" points="1259.24,-2322.54 1255.49,-2332.45 1264.6,-2327.04 1259.24,-2322.54"/>
</g>
<!-- jenkins&#45;job&#45;builder -->
<g id="node60" class="node"><title>jenkins-job-builder</title>
<ellipse fill="none" stroke="black" cx="1738.91" cy="-918.459" rx="60.2679" ry="18"/>
<text text-anchor="middle" x="1738.91" y="-915.659" font-family="Times,serif" font-size="11.00">jenkins-job-builder</text>
</g>
<!-- Infrastructure&#45;&gt;jenkins&#45;job&#45;builder -->
<g id="edge55" class="edge"><title>Infrastructure-&gt;jenkins-job-builder</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1555.09,-1473.9C1547.42,-1447.1 1535.79,-1395.57 1544.56,-1352.53 1551.56,-1318.22 1687.86,-1111.38 1700.73,-1078.81 1718.29,-1034.33 1729.2,-979.594 1734.65,-946.944"/>
<polygon fill="black" stroke="black" points="1738.16,-947.195 1736.29,-936.765 1731.25,-946.08 1738.16,-947.195"/>
</g>
<!-- lodgeit -->
<g id="node61" class="node"><title>lodgeit</title>
<ellipse fill="none" stroke="black" cx="2160.51" cy="-1705.01" rx="28.0277" ry="18"/>
<text text-anchor="middle" x="2160.51" y="-1702.21" font-family="Times,serif" font-size="11.00">lodgeit</text>
</g>
<!-- Infrastructure&#45;&gt;lodgeit -->
<g id="edge56" class="edge"><title>Infrastructure-&gt;lodgeit</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1599.29,-1505.77C1708.85,-1544.66 2021.59,-1655.69 2126.06,-1692.78"/>
<polygon fill="black" stroke="black" points="2124.91,-1696.08 2135.51,-1696.13 2127.25,-1689.49 2124.91,-1696.08"/>
</g>
<!-- meetbot -->
<g id="node62" class="node"><title>meetbot</title>
<ellipse fill="none" stroke="black" cx="1296.93" cy="-1692.38" rx="31.0408" ry="18"/>
<text text-anchor="middle" x="1296.93" y="-1689.58" font-family="Times,serif" font-size="11.00">meetbot</text>
</g>
<!-- Infrastructure&#45;&gt;meetbot -->
<g id="edge57" class="edge"><title>Infrastructure-&gt;meetbot</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1538.82,-1508.86C1490.7,-1545.36 1376.4,-1632.08 1324.01,-1671.83"/>
<polygon fill="black" stroke="black" points="1321.71,-1669.19 1315.86,-1678.02 1325.94,-1674.76 1321.71,-1669.19"/>
</g>
<!-- nodepool -->
<g id="node63" class="node"><title>nodepool</title>
<ellipse fill="none" stroke="black" cx="1436.65" cy="-1201.25" rx="33.8507" ry="18"/>
<text text-anchor="middle" x="1436.65" y="-1198.45" font-family="Times,serif" font-size="11.00">nodepool</text>
</g>
<!-- Infrastructure&#45;&gt;nodepool -->
<g id="edge58" class="edge"><title>Infrastructure-&gt;nodepool</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1554.96,-1474.01C1549.67,-1458.75 1541.21,-1436.56 1531.27,-1418.42 1502.91,-1366.7 1476.43,-1365.06 1454.03,-1310.48 1443.32,-1284.38 1439.18,-1252.25 1437.59,-1229.62"/>
<polygon fill="black" stroke="black" points="1441.07,-1229.12 1437,-1219.34 1434.08,-1229.52 1441.07,-1229.12"/>
</g>
<!-- nose&#45;html&#45;output -->
<g id="node64" class="node"><title>nose-html-output</title>
<ellipse fill="none" stroke="black" cx="2338.55" cy="-973.221" rx="54.9444" ry="18"/>
<text text-anchor="middle" x="2338.55" y="-970.421" font-family="Times,serif" font-size="11.00">nose-html-output</text>
</g>
<!-- Infrastructure&#45;&gt;nose&#45;html&#45;output -->
<g id="edge59" class="edge"><title>Infrastructure-&gt;nose-html-output</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1582.91,-1475.27C1593.52,-1467.47 1606.57,-1458.32 1618.84,-1450.94 1682.37,-1412.67 1704.4,-1414.24 1767.88,-1375.91 1928.36,-1279 1957.81,-1238.63 2111.14,-1130.77 2180.38,-1082.06 2262.07,-1025.75 2306.25,-995.384"/>
<polygon fill="black" stroke="black" points="2308.31,-998.215 2314.57,-989.667 2304.34,-992.445 2308.31,-998.215"/>
</g>
<!-- odsreg -->
<g id="node65" class="node"><title>odsreg</title>
<ellipse fill="none" stroke="black" cx="1554.81" cy="-1703.63" rx="27.824" ry="18"/>
<text text-anchor="middle" x="1554.81" y="-1700.83" font-family="Times,serif" font-size="11.00">odsreg</text>
</g>
<!-- Infrastructure&#45;&gt;odsreg -->
<g id="edge60" class="edge"><title>Infrastructure-&gt;odsreg</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1564.59,-1510.42C1568.63,-1532.26 1574.4,-1569.93 1573.28,-1602.49 1572.42,-1627.71 1566.88,-1655.92 1562.09,-1676.12"/>
<polygon fill="black" stroke="black" points="1558.67,-1675.35 1559.68,-1685.9 1565.47,-1677.03 1558.67,-1675.35"/>
</g>
<!-- openstack&#45;nose -->
<g id="node66" class="node"><title>openstack-nose</title>
<ellipse fill="none" stroke="black" cx="1655.94" cy="-1464.86" rx="51.2277" ry="18"/>
<text text-anchor="middle" x="1655.94" y="-1462.06" font-family="Times,serif" font-size="11.00">openstack-nose</text>
</g>
<!-- Infrastructure&#45;&gt;openstack&#45;nose -->
<g id="edge61" class="edge"><title>Infrastructure-&gt;openstack-nose</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1603.68,-1479.85C1604.58,-1479.59 1605.49,-1479.33 1606.4,-1479.07"/>
<polygon fill="black" stroke="black" points="1607.47,-1482.4 1616.11,-1476.28 1605.54,-1475.68 1607.47,-1482.4"/>
</g>
<!-- openstack&#45;planet -->
<g id="node67" class="node"><title>openstack-planet</title>
<ellipse fill="none" stroke="black" cx="1084.22" cy="-926.328" rx="55.1467" ry="18"/>
<text text-anchor="middle" x="1084.22" y="-923.528" font-family="Times,serif" font-size="11.00">openstack-planet</text>
</g>
<!-- Infrastructure&#45;&gt;openstack&#45;planet -->
<g id="edge62" class="edge"><title>Infrastructure-&gt;openstack-planet</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1555.38,-1474.14C1550.29,-1458.75 1541.9,-1436.33 1531.27,-1418.42 1482.22,-1335.81 1322.21,-1154.68 1256.18,-1084.9 1208.25,-1034.24 1147.24,-980.19 1112.27,-950.095"/>
<polygon fill="black" stroke="black" points="1114.25,-947.184 1104.38,-943.333 1109.69,-952.499 1114.25,-947.184"/>
</g>
<!-- openstackid -->
<g id="node68" class="node"><title>openstackid</title>
<ellipse fill="none" stroke="black" cx="889.483" cy="-1900.47" rx="41.4846" ry="18"/>
<text text-anchor="middle" x="889.483" y="-1897.67" font-family="Times,serif" font-size="11.00">openstackid</text>
</g>
<!-- Infrastructure&#45;&gt;openstackid -->
<g id="edge63" class="edge"><title>Infrastructure-&gt;openstackid</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1536.13,-1508.68C1519.55,-1519.69 1497.18,-1534.37 1477.17,-1546.93 1268.54,-1677.92 1013.28,-1828.1 923.029,-1880.89"/>
<polygon fill="black" stroke="black" points="921.189,-1877.91 914.323,-1885.98 924.722,-1883.96 921.189,-1877.91"/>
</g>
<!-- openstackid&#45;resources -->
<g id="node69" class="node"><title>openstackid-resources</title>
<ellipse fill="none" stroke="black" cx="1801.39" cy="-1794.39" rx="69.5112" ry="18"/>
<text text-anchor="middle" x="1801.39" y="-1791.59" font-family="Times,serif" font-size="11.00">openstackid-resources</text>
</g>
<!-- Infrastructure&#45;&gt;openstackid&#45;resources -->
<g id="edge64" class="edge"><title>Infrastructure-&gt;openstackid-resources</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1562.91,-1510.44C1565.98,-1532.03 1573.25,-1568.35 1589.48,-1595.21 1614.46,-1636.54 1720.4,-1727.29 1772.38,-1770.55"/>
<polygon fill="black" stroke="black" points="1770.31,-1773.38 1780.24,-1777.07 1774.78,-1767.99 1770.31,-1773.38"/>
</g>
<!-- openstackweb -->
<g id="node70" class="node"><title>openstackweb</title>
<ellipse fill="none" stroke="black" cx="1503.73" cy="-1310.63" rx="48.2143" ry="18"/>
<text text-anchor="middle" x="1503.73" y="-1307.83" font-family="Times,serif" font-size="11.00">openstackweb</text>
</g>
<!-- Infrastructure&#45;&gt;openstackweb -->
<g id="edge65" class="edge"><title>Infrastructure-&gt;openstackweb</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1555.18,-1474.06C1545.17,-1442.26 1524.34,-1376.1 1512.49,-1338.44"/>
<polygon fill="black" stroke="black" points="1515.74,-1337.11 1509.4,-1328.62 1509.06,-1339.21 1515.74,-1337.11"/>
</g>
<!-- os&#45;loganalyze -->
<g id="node71" class="node"><title>os-loganalyze</title>
<ellipse fill="none" stroke="black" cx="1524.78" cy="-1602.32" rx="46.8089" ry="18"/>
<text text-anchor="middle" x="1524.78" y="-1599.52" font-family="Times,serif" font-size="11.00">os-loganalyze</text>
</g>
<!-- Infrastructure&#45;&gt;os&#45;loganalyze -->
<g id="edge66" class="edge"><title>Infrastructure-&gt;os-loganalyze</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1554.91,-1510.32C1549.19,-1527.79 1540.47,-1554.41 1533.88,-1574.53"/>
<polygon fill="black" stroke="black" points="1530.54,-1573.5 1530.75,-1584.1 1537.19,-1575.68 1530.54,-1573.5"/>
</g>
<!-- project&#45;config -->
<g id="node72" class="node"><title>project-config</title>
<ellipse fill="none" stroke="black" cx="1922.98" cy="-2114.39" rx="47.5114" ry="18"/>
<text text-anchor="middle" x="1922.98" y="-2111.59" font-family="Times,serif" font-size="11.00">project-config</text>
</g>
<!-- Infrastructure&#45;&gt;project&#45;config -->
<g id="edge67" class="edge"><title>Infrastructure-&gt;project-config</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1565.46,-1510.12C1570.83,-1530.77 1580.16,-1565.63 1589.48,-1595.21 1640.52,-1757.16 1653.32,-1803.52 1754.84,-1939.63 1798.95,-1998.78 1861.46,-2058.84 1896.51,-2090.85"/>
<polygon fill="black" stroke="black" points="1894.22,-2093.49 1903.97,-2097.62 1898.92,-2088.3 1894.22,-2093.49"/>
</g>
<!-- project&#45;config&#45;example -->
<g id="node73" class="node"><title>project-config-example</title>
<ellipse fill="none" stroke="black" cx="850.744" cy="-1721.54" rx="72.3214" ry="18"/>
<text text-anchor="middle" x="850.744" y="-1718.74" font-family="Times,serif" font-size="11.00">project-config-example</text>
</g>
<!-- Infrastructure&#45;&gt;project&#45;config&#45;example -->
<g id="edge68" class="edge"><title>Infrastructure-&gt;project-config-example</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1510.9,-1501.6C1492.35,-1505.19 1471.14,-1509.4 1451.89,-1513.45 1440.58,-1515.83 1437.79,-1516.62 1426.51,-1519.17 1328.84,-1541.2 1302,-1537.9 1206.76,-1568.79 1089.38,-1606.87 957.382,-1668.83 892.011,-1700.88"/>
<polygon fill="black" stroke="black" points="890.286,-1697.83 882.86,-1705.39 893.378,-1704.11 890.286,-1697.83"/>
</g>
<!-- publications -->
<g id="node74" class="node"><title>publications</title>
<ellipse fill="none" stroke="black" cx="647.211" cy="-1656.59" rx="42.1875" ry="18"/>
<text text-anchor="middle" x="647.211" y="-1653.79" font-family="Times,serif" font-size="11.00">publications</text>
</g>
<!-- Infrastructure&#45;&gt;publications -->
<g id="edge69" class="edge"><title>Infrastructure-&gt;publications</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1510.05,-1501.13C1407.45,-1519.32 1168.24,-1561.8 967.393,-1598.08 871.261,-1615.45 758.953,-1636.04 696.155,-1647.58"/>
<polygon fill="black" stroke="black" points="695.341,-1644.17 686.139,-1649.42 696.607,-1651.06 695.341,-1644.17"/>
</g>
<!-- puppet&#45;accessbot -->
<g id="node75" class="node"><title>puppet-accessbot</title>
<ellipse fill="none" stroke="black" cx="1148.39" cy="-2105.15" rx="55.8489" ry="18"/>
<text text-anchor="middle" x="1148.39" y="-2102.35" font-family="Times,serif" font-size="11.00">puppet-accessbot</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;accessbot -->
<g id="edge70" class="edge"><title>Infrastructure-&gt;puppet-accessbot</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1539.66,-1508.91C1500.81,-1540.26 1416.79,-1610.96 1357.61,-1681.59 1268.15,-1788.37 1242.41,-1816.78 1187.36,-1944.74 1168.43,-1988.74 1157.61,-2043.64 1152.38,-2076.47"/>
<polygon fill="black" stroke="black" points="1148.86,-2076.3 1150.81,-2086.71 1155.78,-2077.35 1148.86,-2076.3"/>
</g>
<!-- puppet&#45;ansible -->
<g id="node76" class="node"><title>puppet-ansible</title>
<ellipse fill="none" stroke="black" cx="958.881" cy="-2089.37" rx="48.9176" ry="18"/>
<text text-anchor="middle" x="958.881" y="-2086.57" font-family="Times,serif" font-size="11.00">puppet-ansible</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;ansible -->
<g id="edge71" class="edge"><title>Infrastructure-&gt;puppet-ansible</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1541.16,-1509.23C1504.08,-1541.67 1421.89,-1614.9 1357.61,-1681.59 1257.09,-1785.89 1246.6,-1825.46 1144.31,-1928.03 1091.92,-1980.55 1025.17,-2036.15 987.724,-2066.42"/>
<polygon fill="black" stroke="black" points="985.343,-2063.84 979.75,-2072.84 989.734,-2069.3 985.343,-2063.84"/>
</g>
<!-- puppet&#45;apparmor -->
<g id="node77" class="node"><title>puppet-apparmor</title>
<ellipse fill="none" stroke="black" cx="1246.86" cy="-1582.7" rx="55.1467" ry="18"/>
<text text-anchor="middle" x="1246.86" y="-1579.9" font-family="Times,serif" font-size="11.00">puppet-apparmor</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;apparmor -->
<g id="edge72" class="edge"><title>Infrastructure-&gt;puppet-apparmor</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1510.9,-1501.6C1492.35,-1505.19 1471.14,-1509.4 1451.89,-1513.45 1440.58,-1515.83 1437.62,-1515.96 1426.51,-1519.17 1380.02,-1532.58 1328.02,-1551.4 1291.98,-1565.08"/>
<polygon fill="black" stroke="black" points="1290.34,-1561.95 1282.25,-1568.79 1292.84,-1568.49 1290.34,-1561.95"/>
</g>
<!-- puppet&#45;apps_site -->
<g id="node78" class="node"><title>puppet-apps_site</title>
<ellipse fill="none" stroke="black" cx="2359.34" cy="-1833.2" rx="54.9444" ry="18"/>
<text text-anchor="middle" x="2359.34" y="-1830.4" font-family="Times,serif" font-size="11.00">puppet-apps_site</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;apps_site -->
<g id="edge73" class="edge"><title>Infrastructure-&gt;puppet-apps_site</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1595.18,-1506.78C1723.42,-1561.56 2174.5,-1754.24 2316.32,-1814.82"/>
<polygon fill="black" stroke="black" points="2315.03,-1818.08 2325.6,-1818.79 2317.78,-1811.64 2315.03,-1818.08"/>
</g>
<!-- puppet&#45;askbot -->
<g id="node79" class="node"><title>puppet-askbot</title>
<ellipse fill="none" stroke="black" cx="2164.36" cy="-1335.23" rx="46.8089" ry="18"/>
<text text-anchor="middle" x="2164.36" y="-1332.43" font-family="Times,serif" font-size="11.00">puppet-askbot</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;askbot -->
<g id="edge74" class="edge"><title>Infrastructure-&gt;puppet-askbot</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1618.94,-1489.35C1642.19,-1487.45 1669.08,-1484.22 1693.03,-1478.79 1852.95,-1442.48 2037.67,-1380.05 2120.36,-1350.98"/>
<polygon fill="black" stroke="black" points="2121.67,-1354.23 2129.94,-1347.6 2119.34,-1347.63 2121.67,-1354.23"/>
</g>
<!-- puppet&#45;asterisk -->
<g id="node80" class="node"><title>puppet-asterisk</title>
<ellipse fill="none" stroke="black" cx="998.954" cy="-1450.86" rx="50.5248" ry="18"/>
<text text-anchor="middle" x="998.954" y="-1448.06" font-family="Times,serif" font-size="11.00">puppet-asterisk</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;asterisk -->
<g id="edge75" class="edge"><title>Infrastructure-&gt;puppet-asterisk</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1502.21,-1493C1440.64,-1493.47 1341.05,-1492.98 1255.32,-1486.84 1234.57,-1485.35 1229.5,-1483.74 1208.88,-1480.96 1156.97,-1473.96 1097.92,-1465.44 1055.7,-1459.26"/>
<polygon fill="black" stroke="black" points="1056.02,-1455.77 1045.61,-1457.78 1055,-1462.69 1056.02,-1455.77"/>
</g>
<!-- puppet&#45;bandersnatch -->
<g id="node81" class="node"><title>puppet-bandersnatch</title>
<ellipse fill="none" stroke="black" cx="2356.6" cy="-1200.07" rx="64.889" ry="18"/>
<text text-anchor="middle" x="2356.6" y="-1197.27" font-family="Times,serif" font-size="11.00">puppet-bandersnatch</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;bandersnatch -->
<g id="edge76" class="edge"><title>Infrastructure-&gt;puppet-bandersnatch</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1581.67,-1475.11C1592.32,-1467 1605.76,-1457.63 1618.84,-1450.94 1744.24,-1386.8 2153.7,-1261.04 2302.19,-1216.33"/>
<polygon fill="black" stroke="black" points="2303.44,-1219.61 2312.01,-1213.37 2301.42,-1212.9 2303.44,-1219.61"/>
</g>
<!-- puppet&#45;bugdaystats -->
<g id="node82" class="node"><title>puppet-bugdaystats</title>
<ellipse fill="none" stroke="black" cx="1836.56" cy="-1246.26" rx="60.9711" ry="18"/>
<text text-anchor="middle" x="1836.56" y="-1243.46" font-family="Times,serif" font-size="11.00">puppet-bugdaystats</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;bugdaystats -->
<g id="edge77" class="edge"><title>Infrastructure-&gt;puppet-bugdaystats</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1576.41,-1474.29C1601.41,-1446.05 1652.7,-1389.95 1701.46,-1347.99 1735.14,-1319.01 1776.21,-1288.74 1804.17,-1268.84"/>
<polygon fill="black" stroke="black" points="1806.26,-1271.64 1812.4,-1263 1802.22,-1265.93 1806.26,-1271.64"/>
</g>
<!-- puppet&#45;bup -->
<g id="node83" class="node"><title>puppet-bup</title>
<ellipse fill="none" stroke="black" cx="2362.44" cy="-1621.35" rx="39.1741" ry="18"/>
<text text-anchor="middle" x="2362.44" y="-1618.55" font-family="Times,serif" font-size="11.00">puppet-bup</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;bup -->
<g id="edge78" class="edge"><title>Infrastructure-&gt;puppet-bup</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1607.64,-1503.07C1658.59,-1514.74 1742.61,-1533.27 1815.65,-1546.01 1998.95,-1577.98 2218.76,-1604.79 2314.24,-1615.88"/>
<polygon fill="black" stroke="black" points="2313.84,-1619.36 2324.17,-1617.03 2314.64,-1612.4 2313.84,-1619.36"/>
</g>
<!-- puppet&#45;cgit -->
<g id="node84" class="node"><title>puppet-cgit</title>
<ellipse fill="none" stroke="black" cx="2648.93" cy="-1282.19" rx="39.8775" ry="18"/>
<text text-anchor="middle" x="2648.93" y="-1279.39" font-family="Times,serif" font-size="11.00">puppet-cgit</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;cgit -->
<g id="edge79" class="edge"><title>Infrastructure-&gt;puppet-cgit</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1618.09,-1488.15C1630.5,-1487.11 1643.55,-1485.87 1655.69,-1484.46 1672.36,-1482.52 1676.51,-1481.74 1693.03,-1478.79 1874.47,-1446.37 2437.95,-1327.05 2603.04,-1291.96"/>
<polygon fill="black" stroke="black" points="2603.82,-1295.37 2612.87,-1289.87 2602.36,-1288.53 2603.82,-1295.37"/>
</g>
<!-- puppet&#45;dashboard -->
<g id="node85" class="node"><title>puppet-dashboard</title>
<ellipse fill="none" stroke="black" cx="839.807" cy="-1540.97" rx="57.2545" ry="18"/>
<text text-anchor="middle" x="839.807" y="-1538.17" font-family="Times,serif" font-size="11.00">puppet-dashboard</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;dashboard -->
<g id="edge80" class="edge"><title>Infrastructure-&gt;puppet-dashboard</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1502.35,-1492.19C1419.51,-1492.67 1263.37,-1495.01 1130.79,-1505.15 1051.44,-1511.22 960.463,-1523.24 901.67,-1531.68"/>
<polygon fill="black" stroke="black" points="900.834,-1528.26 891.437,-1533.16 901.835,-1535.19 900.834,-1528.26"/>
</g>
<!-- puppet&#45;diskimage_builder -->
<g id="node86" class="node"><title>puppet-diskimage_builder</title>
<ellipse fill="none" stroke="black" cx="2649.12" cy="-1750.85" rx="78.5511" ry="18"/>
<text text-anchor="middle" x="2649.12" y="-1748.05" font-family="Times,serif" font-size="11.00">puppet-diskimage_builder</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;diskimage_builder -->
<g id="edge81" class="edge"><title>Infrastructure-&gt;puppet-diskimage_builder</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1609.37,-1502.38C1725.53,-1526.95 2010.15,-1587.14 2010.77,-1587.29 2224.18,-1636.67 2475.46,-1703.68 2588.57,-1734.32"/>
<polygon fill="black" stroke="black" points="2587.86,-1737.76 2598.43,-1737 2589.69,-1731 2587.86,-1737.76"/>
</g>
<!-- puppet&#45;drupal -->
<g id="node87" class="node"><title>puppet-drupal</title>
<ellipse fill="none" stroke="black" cx="1697.2" cy="-2344.28" rx="46.1069" ry="18"/>
<text text-anchor="middle" x="1697.2" y="-2341.48" font-family="Times,serif" font-size="11.00">puppet-drupal</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;drupal -->
<g id="edge82" class="edge"><title>Infrastructure-&gt;puppet-drupal</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1565.89,-1510.29C1584.62,-1578.2 1649.49,-1813.7 1650.15,-1821.79 1654.02,-1868.49 1638.8,-1879.86 1639.68,-1926.71 1641.12,-2003.56 1678.93,-2235.46 1692.45,-2316.2"/>
<polygon fill="black" stroke="black" points="1689.01,-2316.85 1694.12,-2326.13 1695.91,-2315.69 1689.01,-2316.85"/>
</g>
<!-- puppet&#45;elastic_recheck -->
<g id="node88" class="node"><title>puppet-elastic_recheck</title>
<ellipse fill="none" stroke="black" cx="1546.8" cy="-2352.32" rx="71.6184" ry="18"/>
<text text-anchor="middle" x="1546.8" y="-2349.52" font-family="Times,serif" font-size="11.00">puppet-elastic_recheck</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;elastic_recheck -->
<g id="edge83" class="edge"><title>Infrastructure-&gt;puppet-elastic_recheck</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1565.74,-1510.26C1574.92,-1546.86 1593.12,-1632.18 1584.07,-1703.64 1577.04,-1759.19 1541.93,-1765.68 1539.92,-1821.63 1537.69,-1883.41 1574.13,-1893.46 1579.17,-1955.08 1584.76,-2023.6 1566.28,-2040.12 1560.18,-2108.59 1553.24,-2186.39 1549.35,-2278.49 1547.72,-2323.98"/>
<polygon fill="black" stroke="black" points="1544.22,-2324.14 1547.37,-2334.25 1551.21,-2324.38 1544.22,-2324.14"/>
</g>
<!-- puppet&#45;elasticsearch -->
<g id="node89" class="node"><title>puppet-elasticsearch</title>
<ellipse fill="none" stroke="black" cx="1821.38" cy="-1939.69" rx="64.889" ry="18"/>
<text text-anchor="middle" x="1821.38" y="-1936.89" font-family="Times,serif" font-size="11.00">puppet-elasticsearch</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;elasticsearch -->
<g id="edge84" class="edge"><title>Infrastructure-&gt;puppet-elasticsearch</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1565.46,-1510.12C1570.83,-1530.77 1580.16,-1565.63 1589.48,-1595.21 1609.3,-1658.08 1605.36,-1678.3 1638.91,-1735.05 1682.34,-1808.49 1754.41,-1879.41 1793.72,-1915.34"/>
<polygon fill="black" stroke="black" points="1791.83,-1918.35 1801.59,-1922.46 1796.53,-1913.16 1791.83,-1918.35"/>
</g>
<!-- puppet&#45;etherpad_lite -->
<g id="node90" class="node"><title>puppet-etherpad_lite</title>
<ellipse fill="none" stroke="black" cx="1668.5" cy="-682.831" rx="64.1867" ry="18"/>
<text text-anchor="middle" x="1668.5" y="-680.031" font-family="Times,serif" font-size="11.00">puppet-etherpad_lite</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;etherpad_lite -->
<g id="edge85" class="edge"><title>Infrastructure-&gt;puppet-etherpad_lite</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1556.87,-1474.12C1551.41,-1447.6 1542.52,-1396.41 1544.56,-1352.53 1545.45,-1333.58 1554.54,-1329.71 1553.44,-1310.77 1550.67,-1263.07 1519.06,-1256.69 1519.08,-1208.91 1519.11,-1143.53 1545.34,-1131.52 1566.22,-1069.57 1589.84,-999.512 1599.6,-983.172 1619.17,-911.885 1638.84,-840.286 1655.54,-754.341 1663.5,-710.907"/>
<polygon fill="black" stroke="black" points="1666.99,-711.28 1665.33,-700.816 1660.1,-710.029 1666.99,-711.28"/>
</g>
<!-- puppet&#45;exim -->
<g id="node91" class="node"><title>puppet-exim</title>
<ellipse fill="none" stroke="black" cx="885.954" cy="-951.245" rx="42.8909" ry="18"/>
<text text-anchor="middle" x="885.954" y="-948.445" font-family="Times,serif" font-size="11.00">puppet-exim</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;exim -->
<g id="edge86" class="edge"><title>Infrastructure-&gt;puppet-exim</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1528.82,-1477.03C1506.57,-1465.94 1476.71,-1449.79 1452.53,-1432.24 1283.87,-1309.83 1270.73,-1244.62 1109.66,-1112.37 1044.08,-1058.53 962.045,-1001.99 917.797,-972.305"/>
<polygon fill="black" stroke="black" points="919.466,-969.211 909.207,-966.563 915.576,-975.031 919.466,-969.211"/>
</g>
<!-- puppet&#45;gerrit -->
<g id="node92" class="node"><title>puppet-gerrit</title>
<ellipse fill="none" stroke="black" cx="881.873" cy="-2337.93" rx="44.498" ry="18"/>
<text text-anchor="middle" x="881.873" y="-2335.13" font-family="Times,serif" font-size="11.00">puppet-gerrit</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;gerrit -->
<g id="edge87" class="edge"><title>Infrastructure-&gt;puppet-gerrit</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1540.02,-1509.22C1501.75,-1541.07 1418.64,-1612.55 1357.61,-1681.59 1156.22,-1909.43 955.868,-2220.25 898.279,-2311.65"/>
<polygon fill="black" stroke="black" points="895.215,-2309.95 892.857,-2320.27 901.142,-2313.67 895.215,-2309.95"/>
</g>
<!-- puppet&#45;gerritbot -->
<g id="node93" class="node"><title>puppet-gerritbot</title>
<ellipse fill="none" stroke="black" cx="1870.26" cy="-1670.75" rx="52.1334" ry="18"/>
<text text-anchor="middle" x="1870.26" y="-1667.95" font-family="Times,serif" font-size="11.00">puppet-gerritbot</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;gerritbot -->
<g id="edge88" class="edge"><title>Infrastructure-&gt;puppet-gerritbot</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1593.43,-1507.16C1639.77,-1529 1726.87,-1571.73 1796.66,-1615.72 1812.08,-1625.44 1828.4,-1637.45 1841.74,-1647.77"/>
<polygon fill="black" stroke="black" points="1839.6,-1650.53 1849.63,-1653.94 1843.91,-1645.02 1839.6,-1650.53"/>
</g>
<!-- puppet&#45;github -->
<g id="node94" class="node"><title>puppet-github</title>
<ellipse fill="none" stroke="black" cx="391.858" cy="-2036.78" rx="46.1069" ry="18"/>
<text text-anchor="middle" x="391.858" y="-2033.98" font-family="Times,serif" font-size="11.00">puppet-github</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;github -->
<g id="edge89" class="edge"><title>Infrastructure-&gt;puppet-github</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1537.24,-1508.85C1520.77,-1520.2 1498.08,-1535.2 1477.17,-1546.93 1356.39,-1614.67 1322.85,-1625.69 1195.62,-1680.36 1110.9,-1716.76 1087.03,-1719.24 1002.12,-1755.21 782.952,-1848.06 525.573,-1971.72 430.046,-2018.14"/>
<polygon fill="black" stroke="black" points="428.246,-2015.12 420.784,-2022.64 431.308,-2021.42 428.246,-2015.12"/>
</g>
<!-- puppet&#45;graphite -->
<g id="node95" class="node"><title>puppet-graphite</title>
<ellipse fill="none" stroke="black" cx="1195.01" cy="-1798.95" rx="51.931" ry="18"/>
<text text-anchor="middle" x="1195.01" y="-1796.15" font-family="Times,serif" font-size="11.00">puppet-graphite</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;graphite -->
<g id="edge90" class="edge"><title>Infrastructure-&gt;puppet-graphite</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1542.63,-1509.37C1503.06,-1546.54 1406.01,-1636.47 1320.01,-1706.33 1288.93,-1731.58 1251.93,-1758.64 1226.29,-1776.95"/>
<polygon fill="black" stroke="black" points="1224.17,-1774.16 1218.05,-1782.81 1228.23,-1779.87 1224.17,-1774.16"/>
</g>
<!-- puppet&#45;haveged -->
<g id="node96" class="node"><title>puppet-haveged</title>
<ellipse fill="none" stroke="black" cx="1395.86" cy="-2352.52" rx="51.931" ry="18"/>
<text text-anchor="middle" x="1395.86" y="-2349.72" font-family="Times,serif" font-size="11.00">puppet-haveged</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;haveged -->
<g id="edge91" class="edge"><title>Infrastructure-&gt;puppet-haveged</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1565.78,-1510.27C1575.06,-1546.88 1593.4,-1632.21 1584.07,-1703.64 1582.47,-1715.92 1427.57,-2107.84 1424.57,-2119.85 1406.51,-2192.27 1399.59,-2280.32 1397.12,-2324.45"/>
<polygon fill="black" stroke="black" points="1393.62,-2324.27 1396.59,-2334.44 1400.61,-2324.64 1393.62,-2324.27"/>
</g>
<!-- puppet&#45;hound -->
<g id="node97" class="node"><title>puppet-hound</title>
<ellipse fill="none" stroke="black" cx="663.339" cy="-1005.81" rx="45.9042" ry="18"/>
<text text-anchor="middle" x="663.339" y="-1003.01" font-family="Times,serif" font-size="11.00">puppet-hound</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;hound -->
<g id="edge92" class="edge"><title>Infrastructure-&gt;puppet-hound</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1531.04,-1476.55C1509.05,-1464.85 1478.57,-1448.16 1452.53,-1432.24 1383.95,-1390.31 1372.84,-1370.15 1302.52,-1331.22 1228.3,-1290.12 1204.36,-1290.83 1128.12,-1253.6 964.875,-1173.88 775.078,-1068.66 698.262,-1025.53"/>
<polygon fill="black" stroke="black" points="699.896,-1022.44 689.464,-1020.59 696.466,-1028.54 699.896,-1022.44"/>
</g>
<!-- puppet&#45;httpd -->
<g id="node98" class="node"><title>puppet-httpd</title>
<ellipse fill="none" stroke="black" cx="2344.6" cy="-2060.94" rx="42.8909" ry="18"/>
<text text-anchor="middle" x="2344.6" y="-2058.14" font-family="Times,serif" font-size="11.00">puppet-httpd</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;httpd -->
<g id="edge93" class="edge"><title>Infrastructure-&gt;puppet-httpd</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1597.61,-1506.2C1662.68,-1531.84 1801.41,-1589.76 1908.49,-1656.93 2040.96,-1740.02 2069.49,-1769.54 2182.57,-1877.54 2237.61,-1930.11 2294.96,-1998.91 2324.44,-2035.48"/>
<polygon fill="black" stroke="black" points="2321.99,-2038.02 2330.97,-2043.63 2327.45,-2033.64 2321.99,-2038.02"/>
</g>
<!-- puppet&#45;infra&#45;cookiecutter -->
<g id="node99" class="node"><title>puppet-infra-cookiecutter</title>
<ellipse fill="none" stroke="black" cx="2008.29" cy="-1443.15" rx="77.6452" ry="18"/>
<text text-anchor="middle" x="2008.29" y="-1440.35" font-family="Times,serif" font-size="11.00">puppet-infra-cookiecutter</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;infra&#45;cookiecutter -->
<g id="edge94" class="edge"><title>Infrastructure-&gt;puppet-infra-cookiecutter</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1617.81,-1487.86C1630.3,-1486.83 1643.44,-1485.67 1655.69,-1484.46 1750.1,-1475.11 1858.46,-1462.07 1929.85,-1453.16"/>
<polygon fill="black" stroke="black" points="1930.62,-1456.59 1940.11,-1451.87 1929.75,-1449.64 1930.62,-1456.59"/>
</g>
<!-- puppet&#45;infracloud -->
<g id="node100" class="node"><title>puppet-infracloud</title>
<ellipse fill="none" stroke="black" cx="1011.16" cy="-1285.88" rx="57.2545" ry="18"/>
<text text-anchor="middle" x="1011.16" y="-1283.08" font-family="Times,serif" font-size="11.00">puppet-infracloud</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;infracloud -->
<g id="edge95" class="edge"><title>Infrastructure-&gt;puppet-infracloud</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1523.52,-1478.11C1426.15,-1441.58 1164.73,-1343.5 1057.76,-1303.37"/>
<polygon fill="black" stroke="black" points="1058.8,-1300.02 1048.21,-1299.78 1056.34,-1306.57 1058.8,-1300.02"/>
</g>
<!-- puppet&#45;iptables -->
<g id="node101" class="node"><title>puppet-iptables</title>
<ellipse fill="none" stroke="black" cx="1641.6" cy="-1595.34" rx="50.5248" ry="18"/>
<text text-anchor="middle" x="1641.6" y="-1592.54" font-family="Times,serif" font-size="11.00">puppet-iptables</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;iptables -->
<g id="edge96" class="edge"><title>Infrastructure-&gt;puppet-iptables</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1574.57,-1509.64C1587.44,-1526.1 1606.86,-1550.93 1621.49,-1569.64"/>
<polygon fill="black" stroke="black" points="1618.92,-1572.03 1627.84,-1577.75 1624.43,-1567.72 1618.92,-1572.03"/>
</g>
<!-- puppet&#45;jeepyb -->
<g id="node102" class="node"><title>puppet-jeepyb</title>
<ellipse fill="none" stroke="black" cx="2647.36" cy="-2003.13" rx="47.5114" ry="18"/>
<text text-anchor="middle" x="2647.36" y="-2000.33" font-family="Times,serif" font-size="11.00">puppet-jeepyb</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;jeepyb -->
<g id="edge97" class="edge"><title>Infrastructure-&gt;puppet-jeepyb</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1593.09,-1507.28C1750.36,-1581.25 2436.74,-1904.08 2608.36,-1984.79"/>
<polygon fill="black" stroke="black" points="2606.99,-1988.02 2617.53,-1989.11 2609.97,-1981.68 2606.99,-1988.02"/>
</g>
<!-- puppet&#45;jenkins -->
<g id="node103" class="node"><title>puppet-jenkins</title>
<ellipse fill="none" stroke="black" cx="1847.23" cy="-685.398" rx="48.9176" ry="18"/>
<text text-anchor="middle" x="1847.23" y="-682.598" font-family="Times,serif" font-size="11.00">puppet-jenkins</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;jenkins -->
<g id="edge98" class="edge"><title>Infrastructure-&gt;puppet-jenkins</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1579.14,-1474.97C1619.13,-1436.04 1713.87,-1336.19 1751.19,-1230.55 1771.78,-1172.26 1756.89,-1153.38 1766.29,-1092.28 1767.75,-1082.74 1823.48,-804.078 1841.6,-713.523"/>
<polygon fill="black" stroke="black" points="1845.09,-713.935 1843.62,-703.443 1838.22,-712.562 1845.09,-713.935"/>
</g>
<!-- puppet&#45;kerberos -->
<g id="node104" class="node"><title>puppet-kerberos</title>
<ellipse fill="none" stroke="black" cx="1130.72" cy="-1524.75" rx="52.8356" ry="18"/>
<text text-anchor="middle" x="1130.72" y="-1521.95" font-family="Times,serif" font-size="11.00">puppet-kerberos</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;kerberos -->
<g id="edge99" class="edge"><title>Infrastructure-&gt;puppet-kerberos</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1503.75,-1496.46C1423.02,-1502.58 1276.11,-1513.73 1192.78,-1520.05"/>
<polygon fill="black" stroke="black" points="1192.4,-1516.56 1182.69,-1520.81 1192.93,-1523.54 1192.4,-1516.56"/>
</g>
<!-- puppet&#45;kibana -->
<g id="node105" class="node"><title>puppet-kibana</title>
<ellipse fill="none" stroke="black" cx="1149.99" cy="-684.485" rx="47.5114" ry="18"/>
<text text-anchor="middle" x="1149.99" y="-681.685" font-family="Times,serif" font-size="11.00">puppet-kibana</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;kibana -->
<g id="edge100" class="edge"><title>Infrastructure-&gt;puppet-kibana</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1554.96,-1474.01C1549.67,-1458.75 1541.21,-1436.56 1531.27,-1418.42 1502.91,-1366.7 1487.35,-1359.16 1454.03,-1310.48 1337.48,-1140.21 1289.16,-1105.56 1212.52,-913.977 1184.4,-843.666 1164.48,-756.328 1155.44,-712.436"/>
<polygon fill="black" stroke="black" points="1158.84,-711.605 1153.43,-702.498 1151.98,-712.994 1158.84,-711.605"/>
</g>
<!-- puppet&#45;lodgeit -->
<g id="node106" class="node"><title>puppet-lodgeit</title>
<ellipse fill="none" stroke="black" cx="1609.88" cy="-2108.62" rx="48.2143" ry="18"/>
<text text-anchor="middle" x="1609.88" y="-2105.82" font-family="Times,serif" font-size="11.00">puppet-lodgeit</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;lodgeit -->
<g id="edge101" class="edge"><title>Infrastructure-&gt;puppet-lodgeit</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1565.9,-1510.29C1584.67,-1578.19 1649.65,-1813.69 1650.15,-1821.79 1651.75,-1847.28 1625.44,-2013 1614.52,-2080.29"/>
<polygon fill="black" stroke="black" points="1611,-2080.14 1612.85,-2090.57 1617.91,-2081.26 1611,-2080.14"/>
</g>
<!-- puppet&#45;log_processor -->
<g id="node107" class="node"><title>puppet-log_processor</title>
<ellipse fill="none" stroke="black" cx="1425.96" cy="-1681.7" rx="66.9979" ry="18"/>
<text text-anchor="middle" x="1425.96" y="-1678.9" font-family="Times,serif" font-size="11.00">puppet-log_processor</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;log_processor -->
<g id="edge102" class="edge"><title>Infrastructure-&gt;puppet-log_processor</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1546.59,-1509.67C1529.34,-1531.07 1499.74,-1568.57 1476.28,-1602.15 1464.23,-1619.4 1451.58,-1639.41 1441.97,-1655.05"/>
<polygon fill="black" stroke="black" points="1438.92,-1653.34 1436.7,-1663.7 1444.89,-1656.99 1438.92,-1653.34"/>
</g>
<!-- puppet&#45;logrotate -->
<g id="node108" class="node"><title>puppet-logrotate</title>
<ellipse fill="none" stroke="black" cx="843.759" cy="-1357.13" rx="53.5381" ry="18"/>
<text text-anchor="middle" x="843.759" y="-1354.33" font-family="Times,serif" font-size="11.00">puppet-logrotate</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;logrotate -->
<g id="edge103" class="edge"><title>Infrastructure-&gt;puppet-logrotate</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1505.92,-1485.79C1467.62,-1481.18 1415.38,-1474.54 1369.54,-1467.45 1355.21,-1465.23 1351.63,-1464.61 1337.43,-1461.65 1322.05,-1458.44 1318.37,-1456.93 1303.03,-1453.51 1157.9,-1421.13 986.252,-1385.92 899.676,-1368.38"/>
<polygon fill="black" stroke="black" points="900.295,-1364.94 889.8,-1366.39 898.907,-1371.8 900.295,-1364.94"/>
</g>
<!-- puppet&#45;logstash -->
<g id="node109" class="node"><title>puppet-logstash</title>
<ellipse fill="none" stroke="black" cx="1303.89" cy="-1213.97" rx="51.931" ry="18"/>
<text text-anchor="middle" x="1303.89" y="-1211.17" font-family="Times,serif" font-size="11.00">puppet-logstash</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;logstash -->
<g id="edge104" class="edge"><title>Infrastructure-&gt;puppet-logstash</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1555.74,-1473.91C1550.87,-1458.39 1542.61,-1435.88 1531.27,-1418.42 1478.87,-1337.8 1386.8,-1268.92 1337.42,-1235.52"/>
<polygon fill="black" stroke="black" points="1339.26,-1232.54 1329.01,-1229.9 1335.37,-1238.36 1339.26,-1232.54"/>
</g>
<!-- puppet&#45;mailman -->
<g id="node110" class="node"><title>puppet-mailman</title>
<ellipse fill="none" stroke="black" cx="1696.67" cy="-1230.42" rx="52.8356" ry="18"/>
<text text-anchor="middle" x="1696.67" y="-1227.62" font-family="Times,serif" font-size="11.00">puppet-mailman</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;mailman -->
<g id="edge105" class="edge"><title>Infrastructure-&gt;puppet-mailman</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1579.67,-1474.73C1605.04,-1450.11 1649.71,-1402.53 1672.84,-1352.68 1686.86,-1322.47 1692.64,-1284.36 1695.01,-1258.79"/>
<polygon fill="black" stroke="black" points="1698.52,-1258.91 1695.84,-1248.66 1691.54,-1258.34 1698.52,-1258.91"/>
</g>
<!-- puppet&#45;mediawiki -->
<g id="node111" class="node"><title>puppet-mediawiki</title>
<ellipse fill="none" stroke="black" cx="1754.49" cy="-1629.51" rx="57.9578" ry="18"/>
<text text-anchor="middle" x="1754.49" y="-1626.71" font-family="Times,serif" font-size="11.00">puppet-mediawiki</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;mediawiki -->
<g id="edge106" class="edge"><title>Infrastructure-&gt;puppet-mediawiki</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1584.23,-1508.7C1618.82,-1533.25 1683.78,-1579.34 1722.69,-1606.95"/>
<polygon fill="black" stroke="black" points="1720.87,-1609.95 1731.05,-1612.88 1724.92,-1604.24 1720.87,-1609.95"/>
</g>
<!-- puppet&#45;meetbot -->
<g id="node112" class="node"><title>puppet-meetbot</title>
<ellipse fill="none" stroke="black" cx="1203.47" cy="-1084.81" rx="51.2277" ry="18"/>
<text text-anchor="middle" x="1203.47" y="-1082.01" font-family="Times,serif" font-size="11.00">puppet-meetbot</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;meetbot -->
<g id="edge107" class="edge"><title>Infrastructure-&gt;puppet-meetbot</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1555.45,-1474.09C1550.4,-1458.68 1542.04,-1436.24 1531.27,-1418.42 1448.26,-1281.09 1298.06,-1156.98 1233.88,-1107.52"/>
<polygon fill="black" stroke="black" points="1235.83,-1104.61 1225.77,-1101.31 1231.58,-1110.17 1235.83,-1104.61"/>
</g>
<!-- puppet&#45;mysql_backup -->
<g id="node113" class="node"><title>puppet-mysql_backup</title>
<ellipse fill="none" stroke="black" cx="856.395" cy="-1160.68" rx="67.9024" ry="18"/>
<text text-anchor="middle" x="856.395" y="-1157.88" font-family="Times,serif" font-size="11.00">puppet-mysql_backup</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;mysql_backup -->
<g id="edge108" class="edge"><title>Infrastructure-&gt;puppet-mysql_backup</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1523.47,-1477.99C1462.67,-1454.72 1338.9,-1406.18 1236.85,-1358.73 1109.16,-1299.36 962.518,-1219.63 894.597,-1182.02"/>
<polygon fill="black" stroke="black" points="895.988,-1178.79 885.546,-1177 892.592,-1184.91 895.988,-1178.79"/>
</g>
<!-- puppet&#45;nodepool -->
<g id="node114" class="node"><title>puppet-nodepool</title>
<ellipse fill="none" stroke="black" cx="2171.12" cy="-1519.83" rx="53.5381" ry="18"/>
<text text-anchor="middle" x="2171.12" y="-1517.03" font-family="Times,serif" font-size="11.00">puppet-nodepool</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;nodepool -->
<g id="edge109" class="edge"><title>Infrastructure-&gt;puppet-nodepool</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1614.56,-1499.53C1643.57,-1503.52 1680.01,-1508.5 1712.54,-1512.88 1732.23,-1515.53 1737.01,-1517.95 1756.87,-1518.75 1810.61,-1520.92 1823.94,-1513.27 1877.72,-1512.56 1957.02,-1511.51 2048.36,-1514.43 2107.78,-1516.87"/>
<polygon fill="black" stroke="black" points="2107.99,-1520.38 2118.13,-1517.3 2108.28,-1513.39 2107.99,-1520.38"/>
</g>
<!-- puppet&#45;openafs -->
<g id="node115" class="node"><title>puppet-openafs</title>
<ellipse fill="none" stroke="black" cx="1004.12" cy="-1611.99" rx="50.5248" ry="18"/>
<text text-anchor="middle" x="1004.12" y="-1609.19" font-family="Times,serif" font-size="11.00">puppet-openafs</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;openafs -->
<g id="edge110" class="edge"><title>Infrastructure-&gt;puppet-openafs</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1510.91,-1501.65C1492.36,-1505.25 1471.15,-1509.45 1451.89,-1513.45 1308.67,-1543.21 1140.32,-1581.03 1056.73,-1599.99"/>
<polygon fill="black" stroke="black" points="1055.94,-1596.58 1046.96,-1602.21 1057.49,-1603.41 1055.94,-1596.58"/>
</g>
<!-- puppet&#45;openstack&#45;health -->
<g id="node116" class="node"><title>puppet-openstack-health</title>
<ellipse fill="none" stroke="black" cx="381.415" cy="-700.282" rx="75.3348" ry="18"/>
<text text-anchor="middle" x="381.415" y="-697.482" font-family="Times,serif" font-size="11.00">puppet-openstack-health</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;openstack&#45;health -->
<g id="edge111" class="edge"><title>Infrastructure-&gt;puppet-openstack-health</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1531.04,-1476.55C1509.05,-1464.85 1478.57,-1448.16 1452.53,-1432.24 1383.95,-1390.31 1372.84,-1370.15 1302.52,-1331.22 1228.3,-1290.12 1201.4,-1296.36 1128.12,-1253.6 827.849,-1078.38 504.057,-806.134 409.058,-724.322"/>
<polygon fill="black" stroke="black" points="411.198,-721.545 401.341,-717.661 406.624,-726.845 411.198,-721.545"/>
</g>
<!-- puppet&#45;openstackci -->
<g id="node117" class="node"><title>puppet-openstackci</title>
<ellipse fill="none" stroke="black" cx="1757.46" cy="-1499.15" rx="61.1733" ry="18"/>
<text text-anchor="middle" x="1757.46" y="-1496.35" font-family="Times,serif" font-size="11.00">puppet-openstackci</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;openstackci -->
<g id="edge112" class="edge"><title>Infrastructure-&gt;puppet-openstackci</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1619.06,-1494.21C1640.17,-1494.96 1664.26,-1495.82 1686.36,-1496.61"/>
<polygon fill="black" stroke="black" points="1686.23,-1500.11 1696.35,-1496.97 1686.48,-1493.11 1686.23,-1500.11"/>
</g>
<!-- puppet&#45;openstackid -->
<g id="node118" class="node"><title>puppet-openstackid</title>
<ellipse fill="none" stroke="black" cx="1503.29" cy="-1069.54" rx="61.1733" ry="18"/>
<text text-anchor="middle" x="1503.29" y="-1066.74" font-family="Times,serif" font-size="11.00">puppet-openstackid</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;openstackid -->
<g id="edge113" class="edge"><title>Infrastructure-&gt;puppet-openstackid</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1556.87,-1474.12C1551.41,-1447.6 1542.52,-1396.41 1544.56,-1352.53 1545.45,-1333.58 1554.54,-1329.71 1553.44,-1310.77 1550.67,-1263.07 1529.46,-1255.54 1519.08,-1208.91 1510.63,-1170.97 1506.58,-1126.16 1504.73,-1097.8"/>
<polygon fill="black" stroke="black" points="1508.22,-1097.55 1504.12,-1087.78 1501.23,-1097.98 1508.22,-1097.55"/>
</g>
<!-- puppet&#45;os_client_config -->
<g id="node119" class="node"><title>puppet-os_client_config</title>
<ellipse fill="none" stroke="black" cx="1312.59" cy="-2113.49" rx="73.2267" ry="18"/>
<text text-anchor="middle" x="1312.59" y="-2110.69" font-family="Times,serif" font-size="11.00">puppet-os_client_config</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;os_client_config -->
<g id="edge114" class="edge"><title>Infrastructure-&gt;puppet-os_client_config</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1539.64,-1509.23C1517.49,-1528.84 1484.82,-1563.32 1476.28,-1602.15 1468.48,-1637.6 1501.71,-1646.27 1494.31,-1681.81 1479.77,-1751.64 1433.91,-1748.79 1399.34,-1811.18 1366.58,-1870.3 1362,-1887.58 1343.12,-1952.48 1329.85,-1998.13 1320.89,-2052.79 1316.27,-2085.25"/>
<polygon fill="black" stroke="black" points="1312.78,-2084.97 1314.87,-2095.35 1319.71,-2085.93 1312.78,-2084.97"/>
</g>
<!-- puppet&#45;packagekit -->
<g id="node120" class="node"><title>puppet-packagekit</title>
<ellipse fill="none" stroke="black" cx="1247.89" cy="-1944.87" rx="58.8623" ry="18"/>
<text text-anchor="middle" x="1247.89" y="-1942.07" font-family="Times,serif" font-size="11.00">puppet-packagekit</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;packagekit -->
<g id="edge115" class="edge"><title>Infrastructure-&gt;puppet-packagekit</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1537.57,-1508.76C1496.51,-1539.07 1410.59,-1607.09 1357.61,-1681.59 1321.05,-1733.01 1324.56,-1753.23 1300.29,-1811.47 1285.17,-1847.72 1268.78,-1889.98 1258.43,-1917.06"/>
<polygon fill="black" stroke="black" points="1255.06,-1916.06 1254.77,-1926.65 1261.61,-1918.55 1255.06,-1916.06"/>
</g>
<!-- puppet&#45;pgsql_backup -->
<g id="node121" class="node"><title>puppet-pgsql_backup</title>
<ellipse fill="none" stroke="black" cx="1467.08" cy="-1811.34" rx="66.2946" ry="18"/>
<text text-anchor="middle" x="1467.08" y="-1808.54" font-family="Times,serif" font-size="11.00">puppet-pgsql_backup</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;pgsql_backup -->
<g id="edge116" class="edge"><title>Infrastructure-&gt;puppet-pgsql_backup</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1566.11,-1510.21C1571.74,-1532.15 1579.13,-1570.24 1573.28,-1602.49 1569.76,-1621.94 1510.35,-1732.29 1481.96,-1784.26"/>
<polygon fill="black" stroke="black" points="1478.77,-1782.8 1477.04,-1793.25 1484.91,-1786.16 1478.77,-1782.8"/>
</g>
<!-- puppet&#45;phabricator -->
<g id="node122" class="node"><title>puppet-phabricator</title>
<ellipse fill="none" stroke="black" cx="1082.57" cy="-1928.02" rx="60.2679" ry="18"/>
<text text-anchor="middle" x="1082.57" y="-1925.22" font-family="Times,serif" font-size="11.00">puppet-phabricator</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;phabricator -->
<g id="edge117" class="edge"><title>Infrastructure-&gt;puppet-phabricator</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1541.67,-1509.19C1505.1,-1541.87 1423.24,-1615.89 1357.61,-1681.59 1307.21,-1732.06 1299.65,-1749.59 1248.32,-1799.12 1241.57,-1805.64 1239.63,-1807 1232.37,-1812.93 1191.95,-1845.9 1143.93,-1882.33 1113.36,-1905.19"/>
<polygon fill="black" stroke="black" points="1111.14,-1902.48 1105.22,-1911.27 1115.33,-1908.09 1111.14,-1902.48"/>
</g>
<!-- puppet&#45;pip -->
<g id="node123" class="node"><title>puppet-pip</title>
<ellipse fill="none" stroke="black" cx="1339.77" cy="-1811.53" rx="37.7689" ry="18"/>
<text text-anchor="middle" x="1339.77" y="-1808.73" font-family="Times,serif" font-size="11.00">puppet-pip</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;pip -->
<g id="edge118" class="edge"><title>Infrastructure-&gt;puppet-pip</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1533.95,-1508.32C1488.94,-1536.99 1399.26,-1601.3 1357.61,-1681.59 1341.05,-1713.53 1338.13,-1755.55 1338.33,-1783.04"/>
<polygon fill="black" stroke="black" points="1334.83,-1783.24 1338.55,-1793.16 1341.83,-1783.08 1334.83,-1783.24"/>
</g>
<!-- puppet&#45;planet -->
<g id="node124" class="node"><title>puppet-planet</title>
<ellipse fill="none" stroke="black" cx="1260.43" cy="-913.979" rx="46.1069" ry="18"/>
<text text-anchor="middle" x="1260.43" y="-911.179" font-family="Times,serif" font-size="11.00">puppet-planet</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;planet -->
<g id="edge119" class="edge"><title>Infrastructure-&gt;puppet-planet</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1554.96,-1474.01C1549.67,-1458.75 1541.21,-1436.56 1531.27,-1418.42 1502.91,-1366.7 1487.35,-1359.16 1454.03,-1310.48 1382.04,-1205.31 1347.18,-1187.68 1297.02,-1070.51 1278.66,-1027.63 1268.68,-974.035 1263.96,-941.983"/>
<polygon fill="black" stroke="black" points="1267.41,-941.401 1262.56,-931.985 1260.48,-942.375 1267.41,-941.401"/>
</g>
<!-- puppet&#45;project_config -->
<g id="node125" class="node"><title>puppet-project_config</title>
<ellipse fill="none" stroke="black" cx="1863.39" cy="-2352.84" rx="67.9024" ry="18"/>
<text text-anchor="middle" x="1863.39" y="-2350.04" font-family="Times,serif" font-size="11.00">puppet-project_config</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;project_config -->
<g id="edge120" class="edge"><title>Infrastructure-&gt;puppet-project_config</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1565.46,-1510.12C1570.83,-1530.77 1580.16,-1565.63 1589.48,-1595.21 1609.3,-1658.08 1614.1,-1673.98 1638.91,-1735.05 1707.08,-1902.85 1752.03,-1933.37 1809.53,-2105.12 1835.52,-2182.75 1852.18,-2278.35 1859.34,-2324.82"/>
<polygon fill="black" stroke="black" points="1855.89,-2325.39 1860.84,-2334.76 1862.81,-2324.35 1855.89,-2325.39"/>
</g>
<!-- puppet&#45;puppet -->
<g id="node126" class="node"><title>puppet-puppet</title>
<ellipse fill="none" stroke="black" cx="355.807" cy="-976.028" rx="47.5114" ry="18"/>
<text text-anchor="middle" x="355.807" y="-973.228" font-family="Times,serif" font-size="11.00">puppet-puppet</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;puppet -->
<g id="edge121" class="edge"><title>Infrastructure-&gt;puppet-puppet</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1524.66,-1477.9C1464.52,-1454.12 1340.38,-1404.39 1236.85,-1358.73 1154.19,-1322.28 1135.85,-1308.04 1052.96,-1272.11 945.029,-1225.33 915.477,-1219.86 806.948,-1174.47 654.03,-1110.51 474.218,-1029.72 395.772,-994.195"/>
<polygon fill="black" stroke="black" points="396.826,-990.83 386.273,-989.89 393.937,-997.206 396.826,-990.83"/>
</g>
<!-- puppet&#45;redis -->
<g id="node127" class="node"><title>puppet-redis</title>
<ellipse fill="none" stroke="black" cx="2629.6" cy="-2316.1" rx="42.8909" ry="18"/>
<text text-anchor="middle" x="2629.6" y="-2313.3" font-family="Times,serif" font-size="11.00">puppet-redis</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;redis -->
<g id="edge122" class="edge"><title>Infrastructure-&gt;puppet-redis</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1594.62,-1506.93C1627.1,-1523.28 1674.08,-1553.05 1693.71,-1595.48 1700.04,-1609.18 1688.37,-1615.93 1695.16,-1629.41 1699.57,-1638.17 1704.54,-1637.31 1712.31,-1643.29 2054.93,-1907.41 2482.8,-2212.13 2599.19,-2294.6"/>
<polygon fill="black" stroke="black" points="2597.47,-2297.67 2607.65,-2300.59 2601.51,-2291.95 2597.47,-2297.67"/>
</g>
<!-- puppet&#45;refstack -->
<g id="node128" class="node"><title>puppet-refstack</title>
<ellipse fill="none" stroke="black" cx="1396.44" cy="-1952.5" rx="51.931" ry="18"/>
<text text-anchor="middle" x="1396.44" y="-1949.7" font-family="Times,serif" font-size="11.00">puppet-refstack</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;refstack -->
<g id="edge123" class="edge"><title>Infrastructure-&gt;puppet-refstack</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1539.64,-1509.23C1517.49,-1528.84 1484.82,-1563.32 1476.28,-1602.15 1468.48,-1637.6 1501.71,-1646.27 1494.31,-1681.81 1479.77,-1751.64 1422.24,-1743.63 1399.34,-1811.18 1386.62,-1848.69 1388.79,-1895.07 1392.12,-1924.23"/>
<polygon fill="black" stroke="black" points="1388.7,-1925.03 1393.43,-1934.51 1395.64,-1924.14 1388.7,-1925.03"/>
</g>
<!-- puppet&#45;releasestatus -->
<g id="node129" class="node"><title>puppet-releasestatus</title>
<ellipse fill="none" stroke="black" cx="1139.74" cy="-1385.09" rx="64.1867" ry="18"/>
<text text-anchor="middle" x="1139.74" y="-1382.29" font-family="Times,serif" font-size="11.00">puppet-releasestatus</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;releasestatus -->
<g id="edge124" class="edge"><title>Infrastructure-&gt;puppet-releasestatus</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1526.09,-1477.51C1494.27,-1464.59 1445.66,-1446 1402.05,-1434.05 1336.99,-1416.21 1261.08,-1402.83 1207.7,-1394.6"/>
<polygon fill="black" stroke="black" points="1208.09,-1391.12 1197.67,-1393.07 1207.03,-1398.04 1208.09,-1391.12"/>
</g>
<!-- puppet&#45;reviewday -->
<g id="node130" class="node"><title>puppet-reviewday</title>
<ellipse fill="none" stroke="black" cx="1356.34" cy="-1070.64" rx="57.9578" ry="18"/>
<text text-anchor="middle" x="1356.34" y="-1067.84" font-family="Times,serif" font-size="11.00">puppet-reviewday</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;reviewday -->
<g id="edge125" class="edge"><title>Infrastructure-&gt;puppet-reviewday</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1554.96,-1474.01C1549.67,-1458.75 1541.21,-1436.56 1531.27,-1418.42 1502.91,-1366.7 1484.11,-1361.23 1454.03,-1310.48 1426.54,-1264.11 1421.9,-1251.06 1401.38,-1201.21 1387.03,-1166.37 1373.33,-1125.1 1364.89,-1098.43"/>
<polygon fill="black" stroke="black" points="1368.15,-1097.12 1361.81,-1088.63 1361.47,-1099.22 1368.15,-1097.12"/>
</g>
<!-- puppet&#45;simpleproxy -->
<g id="node131" class="node"><title>puppet-simpleproxy</title>
<ellipse fill="none" stroke="black" cx="1608.7" cy="-1352.61" rx="62.5783" ry="18"/>
<text text-anchor="middle" x="1608.7" y="-1349.81" font-family="Times,serif" font-size="11.00">puppet-simpleproxy</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;simpleproxy -->
<g id="edge126" class="edge"><title>Infrastructure-&gt;puppet-simpleproxy</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1567.03,-1474.17C1575.16,-1450.44 1589.58,-1408.4 1599.14,-1380.51"/>
<polygon fill="black" stroke="black" points="1602.49,-1381.53 1602.42,-1370.93 1595.86,-1379.26 1602.49,-1381.53"/>
</g>
<!-- puppet&#45;snmpd -->
<g id="node132" class="node"><title>puppet-snmpd</title>
<ellipse fill="none" stroke="black" cx="2145.16" cy="-1144.74" rx="46.8089" ry="18"/>
<text text-anchor="middle" x="2145.16" y="-1141.94" font-family="Times,serif" font-size="11.00">puppet-snmpd</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;snmpd -->
<g id="edge127" class="edge"><title>Infrastructure-&gt;puppet-snmpd</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1582.91,-1475.27C1593.52,-1467.47 1606.57,-1458.32 1618.84,-1450.94 1682.37,-1412.67 1703.09,-1411.98 1767.88,-1375.91 1898.32,-1303.28 2048.16,-1207.68 2112.76,-1165.86"/>
<polygon fill="black" stroke="black" points="2114.81,-1168.7 2121.3,-1160.32 2111,-1162.83 2114.81,-1168.7"/>
</g>
<!-- puppet&#45;ssh -->
<g id="node133" class="node"><title>puppet-ssh</title>
<ellipse fill="none" stroke="black" cx="1863.55" cy="-1391.38" rx="38.4712" ry="18"/>
<text text-anchor="middle" x="1863.55" y="-1388.58" font-family="Times,serif" font-size="11.00">puppet-ssh</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;ssh -->
<g id="edge128" class="edge"><title>Infrastructure-&gt;puppet-ssh</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1580.89,-1475.02C1591.56,-1466.68 1605.25,-1457.14 1618.84,-1450.94 1683.78,-1421.29 1765.41,-1405.24 1816.03,-1397.5"/>
<polygon fill="black" stroke="black" points="1816.66,-1400.94 1826.04,-1396.01 1815.63,-1394.02 1816.66,-1400.94"/>
</g>
<!-- puppet&#45;ssl_cert_check -->
<g id="node134" class="node"><title>puppet-ssl_cert_check</title>
<ellipse fill="none" stroke="black" cx="1038.31" cy="-1112.19" rx="69.5112" ry="18"/>
<text text-anchor="middle" x="1038.31" y="-1109.39" font-family="Times,serif" font-size="11.00">puppet-ssl_cert_check</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;ssl_cert_check -->
<g id="edge129" class="edge"><title>Infrastructure-&gt;puppet-ssl_cert_check</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1529.67,-1476.74C1507.55,-1465.38 1477.49,-1449.05 1452.53,-1432.24 1331.62,-1350.81 1313.61,-1314.13 1197.58,-1225.89 1154.63,-1193.23 1103.68,-1157.33 1071.18,-1134.78"/>
<polygon fill="black" stroke="black" points="1073.14,-1131.89 1062.93,-1129.07 1069.16,-1137.64 1073.14,-1131.89"/>
</g>
<!-- puppet&#45;stackalytics -->
<g id="node135" class="node"><title>puppet-stackalytics</title>
<ellipse fill="none" stroke="black" cx="1978.44" cy="-1773.19" rx="61.1733" ry="18"/>
<text text-anchor="middle" x="1978.44" y="-1770.39" font-family="Times,serif" font-size="11.00">puppet-stackalytics</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;stackalytics -->
<g id="edge130" class="edge"><title>Infrastructure-&gt;puppet-stackalytics</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1584.42,-1508.96C1608.59,-1526.47 1647.02,-1555 1678.7,-1581.58 1685.66,-1587.43 1689.89,-1587.23 1693.71,-1595.48 1700.04,-1609.18 1688.37,-1615.93 1695.16,-1629.41 1699.57,-1638.17 1704.04,-1638.02 1712.31,-1643.29 1785.73,-1690.08 1878.46,-1731.81 1932.83,-1754.7"/>
<polygon fill="black" stroke="black" points="1931.62,-1757.98 1942.2,-1758.61 1934.32,-1751.53 1931.62,-1757.98"/>
</g>
<!-- puppet&#45;statusbot -->
<g id="node136" class="node"><title>puppet-statusbot</title>
<ellipse fill="none" stroke="black" cx="1595.04" cy="-1821.71" rx="53.5381" ry="18"/>
<text text-anchor="middle" x="1595.04" y="-1818.91" font-family="Times,serif" font-size="11.00">puppet-statusbot</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;statusbot -->
<g id="edge131" class="edge"><title>Infrastructure-&gt;puppet-statusbot</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1562.97,-1510.48C1565.46,-1532.38 1569.74,-1570.1 1573.28,-1602.49 1578.21,-1647.43 1579.58,-1658.65 1584.07,-1703.64 1587.14,-1734.37 1590.37,-1769.63 1592.53,-1793.56"/>
<polygon fill="black" stroke="black" points="1589.06,-1794.05 1593.44,-1803.7 1596.03,-1793.43 1589.06,-1794.05"/>
</g>
<!-- puppet&#45;storyboard -->
<g id="node137" class="node"><title>puppet-storyboard</title>
<ellipse fill="none" stroke="black" cx="656.009" cy="-1242.4" rx="57.9578" ry="18"/>
<text text-anchor="middle" x="656.009" y="-1239.6" font-family="Times,serif" font-size="11.00">puppet-storyboard</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;storyboard -->
<g id="edge132" class="edge"><title>Infrastructure-&gt;puppet-storyboard</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1524.21,-1477.93C1492.18,-1465.71 1444.31,-1447.91 1402.05,-1434.05 1149.99,-1351.36 840.587,-1281.74 714.074,-1254.59"/>
<polygon fill="black" stroke="black" points="714.714,-1251.15 704.203,-1252.48 713.249,-1257.99 714.714,-1251.15"/>
</g>
<!-- puppet&#45;subunit2sql -->
<g id="node138" class="node"><title>puppet-subunit2sql</title>
<ellipse fill="none" stroke="black" cx="365.532" cy="-1193.58" rx="59.5649" ry="18"/>
<text text-anchor="middle" x="365.532" y="-1190.78" font-family="Times,serif" font-size="11.00">puppet-subunit2sql</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;subunit2sql -->
<g id="edge133" class="edge"><title>Infrastructure-&gt;puppet-subunit2sql</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1504.42,-1486.93C1458.99,-1482.15 1393.66,-1473.93 1337.43,-1461.65 1310,-1455.66 1119.78,-1406.12 1092.67,-1398.81 839.202,-1330.52 537.663,-1243.58 418.107,-1208.88"/>
<polygon fill="black" stroke="black" points="419.04,-1205.51 408.461,-1206.08 417.088,-1212.23 419.04,-1205.51"/>
</g>
<!-- puppet&#45;sudoers -->
<g id="node139" class="node"><title>puppet-sudoers</title>
<ellipse fill="none" stroke="black" cx="660.258" cy="-1861.79" rx="49.8222" ry="18"/>
<text text-anchor="middle" x="660.258" y="-1858.99" font-family="Times,serif" font-size="11.00">puppet-sudoers</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;sudoers -->
<g id="edge134" class="edge"><title>Infrastructure-&gt;puppet-sudoers</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1537.24,-1508.85C1520.77,-1520.2 1498.08,-1535.2 1477.17,-1546.93 1203.91,-1700.19 841.068,-1810.78 710.073,-1848.05"/>
<polygon fill="black" stroke="black" points="708.981,-1844.72 700.312,-1850.81 710.888,-1851.46 708.981,-1844.72"/>
</g>
<!-- puppet&#45;tmpreaper -->
<g id="node140" class="node"><title>puppet-tmpreaper</title>
<ellipse fill="none" stroke="black" cx="2649.7" cy="-1516.85" rx="57.2545" ry="18"/>
<text text-anchor="middle" x="2649.7" y="-1514.05" font-family="Times,serif" font-size="11.00">puppet-tmpreaper</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;tmpreaper -->
<g id="edge135" class="edge"><title>Infrastructure-&gt;puppet-tmpreaper</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1617.73,-1487.83C1666.08,-1484.31 1731.73,-1479.84 1758.06,-1479.55 2067.27,-1476.17 2436.3,-1500.73 2583.93,-1511.72"/>
<polygon fill="black" stroke="black" points="2583.94,-1515.23 2594.18,-1512.49 2584.47,-1508.25 2583.94,-1515.23"/>
</g>
<!-- puppet&#45;ulimit -->
<g id="node141" class="node"><title>puppet-ulimit</title>
<ellipse fill="none" stroke="black" cx="2364.22" cy="-1413.74" rx="45.2009" ry="18"/>
<text text-anchor="middle" x="2364.22" y="-1410.94" font-family="Times,serif" font-size="11.00">puppet-ulimit</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;ulimit -->
<g id="edge136" class="edge"><title>Infrastructure-&gt;puppet-ulimit</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1618.46,-1488.45C1730.45,-1481.29 1969.94,-1465.89 2007.71,-1462.75 2032.7,-1460.67 2038.96,-1460.16 2063.86,-1457.11 2151.12,-1446.43 2252.22,-1431.25 2312.06,-1421.97"/>
<polygon fill="black" stroke="black" points="2312.67,-1425.42 2322.02,-1420.42 2311.6,-1418.5 2312.67,-1425.42"/>
</g>
<!-- puppet&#45;unattended_upgrades -->
<g id="node142" class="node"><title>puppet-unattended_upgrades</title>
<ellipse fill="none" stroke="black" cx="1877.64" cy="-1532.16" rx="85.9826" ry="18"/>
<text text-anchor="middle" x="1877.64" y="-1529.36" font-family="Times,serif" font-size="11.00">puppet-unattended_upgrades</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;unattended_upgrades -->
<g id="edge137" class="edge"><title>Infrastructure-&gt;puppet-unattended_upgrades</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1614.06,-1499.76C1653.45,-1505.31 1708.46,-1512.86 1756.87,-1518.75 1767.88,-1520.09 1779.47,-1521.45 1790.93,-1522.76"/>
<polygon fill="black" stroke="black" points="1790.61,-1526.24 1800.94,-1523.89 1791.4,-1519.29 1790.61,-1526.24"/>
</g>
<!-- puppet&#45;unbound -->
<g id="node143" class="node"><title>puppet-unbound</title>
<ellipse fill="none" stroke="black" cx="1756.21" cy="-2105.1" rx="51.931" ry="18"/>
<text text-anchor="middle" x="1756.21" y="-2102.3" font-family="Times,serif" font-size="11.00">puppet-unbound</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;unbound -->
<g id="edge138" class="edge"><title>Infrastructure-&gt;puppet-unbound</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1565.46,-1510.12C1570.83,-1530.77 1580.16,-1565.63 1589.48,-1595.21 1609.3,-1658.08 1614.77,-1673.71 1638.91,-1735.05 1672.94,-1821.51 1694.88,-1837.98 1722.26,-1926.78 1738.25,-1978.63 1748.09,-2041.41 1752.82,-2076.95"/>
<polygon fill="black" stroke="black" points="1749.37,-2077.6 1754.13,-2087.07 1756.32,-2076.7 1749.37,-2077.6"/>
</g>
<!-- puppet&#45;user -->
<g id="node144" class="node"><title>puppet-user</title>
<ellipse fill="none" stroke="black" cx="1536.67" cy="-1955.07" rx="40.7822" ry="18"/>
<text text-anchor="middle" x="1536.67" y="-1952.27" font-family="Times,serif" font-size="11.00">puppet-user</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;user -->
<g id="edge139" class="edge"><title>Infrastructure-&gt;puppet-user</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1562.97,-1510.48C1565.46,-1532.38 1569.74,-1570.1 1573.28,-1602.49 1578.21,-1647.43 1589.75,-1658.79 1584.07,-1703.64 1577.04,-1759.19 1550.56,-1766.66 1539.92,-1821.63 1533,-1857.38 1533.35,-1899.52 1534.66,-1926.73"/>
<polygon fill="black" stroke="black" points="1531.16,-1926.94 1535.21,-1936.73 1538.15,-1926.55 1531.16,-1926.94"/>
</g>
<!-- puppet&#45;vcsrepo -->
<g id="node145" class="node"><title>puppet-vcsrepo</title>
<ellipse fill="none" stroke="black" cx="1571.19" cy="-1208.98" rx="50.5248" ry="18"/>
<text text-anchor="middle" x="1571.19" y="-1206.18" font-family="Times,serif" font-size="11.00">puppet-vcsrepo</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;vcsrepo -->
<g id="edge140" class="edge"><title>Infrastructure-&gt;puppet-vcsrepo</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1556.87,-1474.12C1551.41,-1447.6 1542.52,-1396.41 1544.56,-1352.53 1545.45,-1333.58 1549.84,-1329.4 1553.44,-1310.77 1558.26,-1285.87 1563.17,-1257.44 1566.6,-1236.96"/>
<polygon fill="black" stroke="black" points="1570.06,-1237.48 1568.25,-1227.04 1563.15,-1236.33 1570.06,-1237.48"/>
</g>
<!-- puppet&#45;vinz -->
<g id="node146" class="node"><title>puppet-vinz</title>
<ellipse fill="none" stroke="black" cx="2152.33" cy="-1891.31" rx="40.7822" ry="18"/>
<text text-anchor="middle" x="2152.33" y="-1888.51" font-family="Times,serif" font-size="11.00">puppet-vinz</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;vinz -->
<g id="edge141" class="edge"><title>Infrastructure-&gt;puppet-vinz</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1598.42,-1505.95C1664.15,-1531 1803.1,-1587.75 1908.49,-1656.93 1974.11,-1700 1984.9,-1718.74 2041.38,-1773.25 2073.56,-1804.32 2108.57,-1842.34 2130.48,-1866.7"/>
<polygon fill="black" stroke="black" points="2128.1,-1869.29 2137.38,-1874.4 2133.32,-1864.62 2128.1,-1869.29"/>
</g>
<!-- puppet&#45;yum -->
<g id="node147" class="node"><title>puppet-yum</title>
<ellipse fill="none" stroke="black" cx="1032.14" cy="-1769.08" rx="40.7822" ry="18"/>
<text text-anchor="middle" x="1032.14" y="-1766.28" font-family="Times,serif" font-size="11.00">puppet-yum</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;yum -->
<g id="edge142" class="edge"><title>Infrastructure-&gt;puppet-yum</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1537.16,-1508.72C1520.65,-1520 1497.96,-1534.99 1477.17,-1546.93 1330.68,-1631.07 1148.19,-1716.35 1070.27,-1751.89"/>
<polygon fill="black" stroke="black" points="1068.51,-1748.84 1060.86,-1756.17 1071.41,-1755.21 1068.51,-1748.84"/>
</g>
<!-- puppet&#45;zanata -->
<g id="node148" class="node"><title>puppet-zanata</title>
<ellipse fill="none" stroke="black" cx="354.206" cy="-1395.82" rx="47.5114" ry="18"/>
<text text-anchor="middle" x="354.206" y="-1393.02" font-family="Times,serif" font-size="11.00">puppet-zanata</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;zanata -->
<g id="edge143" class="edge"><title>Infrastructure-&gt;puppet-zanata</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1502.27,-1491.92C1440.75,-1491.51 1341.2,-1490.32 1255.32,-1486.84 1141.2,-1482.21 1112.62,-1480.67 998.86,-1470.46 779.863,-1450.8 520.121,-1417.74 409.027,-1403.13"/>
<polygon fill="black" stroke="black" points="409.435,-1399.65 399.063,-1401.82 408.52,-1406.59 409.435,-1399.65"/>
</g>
<!-- puppet&#45;zuul -->
<g id="node149" class="node"><title>puppet-zuul</title>
<ellipse fill="none" stroke="black" cx="646.39" cy="-1453.17" rx="40.7822" ry="18"/>
<text text-anchor="middle" x="646.39" y="-1450.37" font-family="Times,serif" font-size="11.00">puppet-zuul</text>
</g>
<!-- Infrastructure&#45;&gt;puppet&#45;zuul -->
<g id="edge144" class="edge"><title>Infrastructure-&gt;puppet-zuul</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1502.28,-1491.77C1440.76,-1491.25 1341.21,-1489.95 1255.32,-1486.84 1048.17,-1479.32 801.727,-1463.61 697.24,-1456.63"/>
<polygon fill="black" stroke="black" points="697.196,-1453.12 686.985,-1455.94 696.728,-1460.1 697.196,-1453.12"/>
</g>
<!-- pypi&#45;mirror -->
<g id="node150" class="node"><title>pypi-mirror</title>
<ellipse fill="none" stroke="black" cx="355.701" cy="-2319.46" rx="40.0804" ry="18"/>
<text text-anchor="middle" x="355.701" y="-2316.66" font-family="Times,serif" font-size="11.00">pypi-mirror</text>
</g>
<!-- Infrastructure&#45;&gt;pypi&#45;mirror -->
<g id="edge145" class="edge"><title>Infrastructure-&gt;pypi-mirror</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1535.99,-1508.47C1519.36,-1519.38 1496.97,-1534.05 1477.17,-1546.93 1386.97,-1605.62 1363.81,-1619.36 1273.85,-1678.42 1115.73,-1782.23 1080.9,-1815.48 919.705,-1914.44 803.637,-1985.7 763.151,-1985.41 653.386,-2066.04 546.943,-2144.23 430.323,-2249.97 380.497,-2296.21"/>
<polygon fill="black" stroke="black" points="378.022,-2293.73 373.086,-2303.11 382.791,-2298.86 378.022,-2293.73"/>
</g>
<!-- python&#45;storyboardclient -->
<g id="node151" class="node"><title>python-storyboardclient</title>
<ellipse fill="none" stroke="black" cx="727.747" cy="-2066.11" rx="72.5245" ry="18"/>
<text text-anchor="middle" x="727.747" y="-2063.31" font-family="Times,serif" font-size="11.00">python-storyboardclient</text>
</g>
<!-- Infrastructure&#45;&gt;python&#45;storyboardclient -->
<g id="edge146" class="edge"><title>Infrastructure-&gt;python-storyboardclient</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1535.99,-1508.47C1519.36,-1519.38 1496.97,-1534.05 1477.17,-1546.93 1386.97,-1605.62 1362.93,-1618.04 1273.85,-1678.42 1075.62,-1812.79 842.877,-1981.89 759.464,-2042.87"/>
<polygon fill="black" stroke="black" points="757.182,-2040.2 751.177,-2048.93 761.315,-2045.85 757.182,-2040.2"/>
</g>
<!-- releasestatus -->
<g id="node152" class="node"><title>releasestatus</title>
<ellipse fill="none" stroke="black" cx="1485.17" cy="-1418.4" rx="44.498" ry="18"/>
<text text-anchor="middle" x="1485.17" y="-1415.6" font-family="Times,serif" font-size="11.00">releasestatus</text>
</g>
<!-- Infrastructure&#45;&gt;releasestatus -->
<g id="edge147" class="edge"><title>Infrastructure-&gt;releasestatus</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1542.93,-1474.66C1532.98,-1464.97 1520.47,-1452.78 1509.64,-1442.23"/>
<polygon fill="black" stroke="black" points="1512.06,-1439.71 1502.46,-1435.24 1507.18,-1444.72 1512.06,-1439.71"/>
</g>
<!-- reviewday -->
<g id="node153" class="node"><title>reviewday</title>
<ellipse fill="none" stroke="black" cx="1579.69" cy="-911.757" rx="37.7689" ry="18"/>
<text text-anchor="middle" x="1579.69" y="-908.957" font-family="Times,serif" font-size="11.00">reviewday</text>
</g>
<!-- Infrastructure&#45;&gt;reviewday -->
<g id="edge148" class="edge"><title>Infrastructure-&gt;reviewday</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1556.87,-1474.12C1551.41,-1447.6 1542.52,-1396.41 1544.56,-1352.53 1545.45,-1333.58 1554.54,-1329.71 1553.44,-1310.77 1550.67,-1263.07 1519.06,-1256.69 1519.08,-1208.91 1519.11,-1143.53 1552.87,-1133.56 1566.22,-1069.57 1575.52,-1025.02 1578.42,-972.121 1579.32,-940.284"/>
<polygon fill="black" stroke="black" points="1582.82,-940.027 1579.56,-929.949 1575.83,-939.865 1582.82,-940.027"/>
</g>
<!-- reviewstats -->
<g id="node154" class="node"><title>reviewstats</title>
<ellipse fill="none" stroke="black" cx="1681.4" cy="-1735.07" rx="40.7822" ry="18"/>
<text text-anchor="middle" x="1681.4" y="-1732.27" font-family="Times,serif" font-size="11.00">reviewstats</text>
</g>
<!-- Infrastructure&#45;&gt;reviewstats -->
<g id="edge149" class="edge"><title>Infrastructure-&gt;reviewstats</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1564.12,-1510.22C1568.3,-1531.28 1576.59,-1566.8 1589.48,-1595.21 1608.99,-1638.18 1640.75,-1682.92 1661.35,-1709.89"/>
<polygon fill="black" stroke="black" points="1658.74,-1712.23 1667.62,-1718 1664.27,-1707.95 1658.74,-1712.23"/>
</g>
<!-- shade -->
<g id="node155" class="node"><title>shade</title>
<ellipse fill="none" stroke="black" cx="1389.16" cy="-1327.97" rx="27" ry="18"/>
<text text-anchor="middle" x="1389.16" y="-1325.17" font-family="Times,serif" font-size="11.00">shade</text>
</g>
<!-- Infrastructure&#45;&gt;shade -->
<g id="edge150" class="edge"><title>Infrastructure-&gt;shade</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1522.92,-1478.31C1495.65,-1466.47 1460.11,-1446.78 1439.07,-1418.37 1424.16,-1398.25 1410.67,-1373.18 1401.48,-1354.55"/>
<polygon fill="black" stroke="black" points="1404.59,-1352.93 1397.08,-1345.45 1398.28,-1355.97 1404.59,-1352.93"/>
</g>
<!-- statusbot -->
<g id="node156" class="node"><title>statusbot</title>
<ellipse fill="none" stroke="black" cx="943.701" cy="-689.57" rx="33.8507" ry="18"/>
<text text-anchor="middle" x="943.701" y="-686.77" font-family="Times,serif" font-size="11.00">statusbot</text>
</g>
<!-- Infrastructure&#45;&gt;statusbot -->
<g id="edge151" class="edge"><title>Infrastructure-&gt;statusbot</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1555.29,-1474.19C1550.14,-1458.84 1541.72,-1436.43 1531.27,-1418.42 1496.23,-1358.09 1185.15,-980.546 1141.14,-926.414 1077.5,-848.145 1000.57,-756.775 964.401,-713.998"/>
<polygon fill="black" stroke="black" points="966.857,-711.482 957.726,-706.109 961.514,-716.004 966.857,-711.482"/>
</g>
<!-- storyboard -->
<g id="node157" class="node"><title>storyboard</title>
<ellipse fill="none" stroke="black" cx="2051.07" cy="-689.635" rx="37.7689" ry="18"/>
<text text-anchor="middle" x="2051.07" y="-686.835" font-family="Times,serif" font-size="11.00">storyboard</text>
</g>
<!-- Infrastructure&#45;&gt;storyboard -->
<g id="edge152" class="edge"><title>Infrastructure-&gt;storyboard</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1575.99,-1474.55C1598.11,-1448.56 1640.21,-1398.05 1672.84,-1352.68 1803.07,-1171.59 1834.86,-1124.55 1940.01,-927.842 1980.01,-853.019 2020.49,-761.223 2039.66,-716.582"/>
<polygon fill="black" stroke="black" points="2042.92,-717.861 2043.63,-707.29 2036.48,-715.109 2042.92,-717.861"/>
</g>
<!-- storyboard&#45;webclient -->
<g id="node158" class="node"><title>storyboard-webclient</title>
<ellipse fill="none" stroke="black" cx="2626.78" cy="-718.91" rx="66.2946" ry="18"/>
<text text-anchor="middle" x="2626.78" y="-716.11" font-family="Times,serif" font-size="11.00">storyboard-webclient</text>
</g>
<!-- Infrastructure&#45;&gt;storyboard&#45;webclient -->
<g id="edge153" class="edge"><title>Infrastructure-&gt;storyboard-webclient</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1582.91,-1475.27C1593.52,-1467.47 1606.57,-1458.32 1618.84,-1450.94 1682.37,-1412.67 1705.28,-1415.66 1767.88,-1375.91 2021.18,-1215.06 2060.03,-1140.58 2299.09,-959.236 2406.5,-877.753 2536.16,-784.001 2594.99,-741.704"/>
<polygon fill="black" stroke="black" points="2597.07,-744.522 2603.15,-735.845 2592.98,-738.837 2597.07,-744.522"/>
</g>
<!-- subunit2sql -->
<g id="node159" class="node"><title>subunit2sql</title>
<ellipse fill="none" stroke="black" cx="1958.94" cy="-1110.87" rx="39.8775" ry="18"/>
<text text-anchor="middle" x="1958.94" y="-1108.07" font-family="Times,serif" font-size="11.00">subunit2sql</text>
</g>
<!-- Infrastructure&#45;&gt;subunit2sql -->
<g id="edge154" class="edge"><title>Infrastructure-&gt;subunit2sql</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1574.22,-1474.34C1606.23,-1432.27 1690.9,-1324.3 1774.22,-1246.26 1781.66,-1239.3 1784.31,-1238.49 1792.48,-1232.4 1840.04,-1197 1895.76,-1156.51 1929.16,-1132.36"/>
<polygon fill="black" stroke="black" points="1931.51,-1134.98 1937.56,-1126.29 1927.4,-1129.31 1931.51,-1134.98"/>
</g>
<!-- system&#45;config -->
<g id="node160" class="node"><title>system-config</title>
<ellipse fill="none" stroke="black" cx="1162.85" cy="-1239.74" rx="47.5114" ry="18"/>
<text text-anchor="middle" x="1162.85" y="-1236.94" font-family="Times,serif" font-size="11.00">system-config</text>
</g>
<!-- Infrastructure&#45;&gt;system&#45;config -->
<g id="edge155" class="edge"><title>Infrastructure-&gt;system-config</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1531.04,-1476.55C1509.05,-1464.85 1478.57,-1448.16 1452.53,-1432.24 1383.95,-1390.31 1369.48,-1375.69 1302.52,-1331.22 1266.03,-1306.98 1223.94,-1279.48 1195.59,-1261.01"/>
<polygon fill="black" stroke="black" points="1197.18,-1257.87 1186.89,-1255.35 1193.36,-1263.74 1197.18,-1257.87"/>
</g>
<!-- tripleo&#45;ci -->
<g id="node161" class="node"><title>tripleo-ci</title>
<ellipse fill="none" stroke="black" cx="1451.84" cy="-1533.05" rx="34.054" ry="18"/>
<text text-anchor="middle" x="1451.84" y="-1530.25" font-family="Times,serif" font-size="11.00">tripleo-ci</text>
</g>
<!-- Infrastructure&#45;&gt;tripleo&#45;ci -->
<g id="edge156" class="edge"><title>Infrastructure-&gt;tripleo-ci</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1523.65,-1506.1C1512.58,-1510.25 1500.45,-1514.8 1489.36,-1518.97"/>
<polygon fill="black" stroke="black" points="1488.07,-1515.71 1479.94,-1522.5 1490.53,-1522.27 1488.07,-1515.71"/>
</g>
<!-- trystack&#45;site -->
<g id="node162" class="node"><title>trystack-site</title>
<ellipse fill="none" stroke="black" cx="1331.13" cy="-681.361" rx="42.8909" ry="18"/>
<text text-anchor="middle" x="1331.13" y="-678.561" font-family="Times,serif" font-size="11.00">trystack-site</text>
</g>
<!-- Infrastructure&#45;&gt;trystack&#45;site -->
<g id="edge157" class="edge"><title>Infrastructure-&gt;trystack-site</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1556.87,-1474.12C1551.41,-1447.6 1542.52,-1396.41 1544.56,-1352.53 1545.45,-1333.58 1555.61,-1329.62 1553.44,-1310.77 1546.68,-1251.95 1464.78,-1123.45 1440.35,-1069.52 1408.27,-998.681 1392.57,-983.697 1370.25,-909.207 1349.22,-839.03 1338.29,-753.094 1333.75,-709.548"/>
<polygon fill="black" stroke="black" points="1337.21,-709.025 1332.73,-699.426 1330.25,-709.726 1337.21,-709.025"/>
</g>
<!-- yaml2ical -->
<g id="node163" class="node"><title>yaml2ical</title>
<ellipse fill="none" stroke="black" cx="2301.31" cy="-2338.47" rx="36.1607" ry="18"/>
<text text-anchor="middle" x="2301.31" y="-2335.67" font-family="Times,serif" font-size="11.00">yaml2ical</text>
</g>
<!-- Infrastructure&#45;&gt;yaml2ical -->
<g id="edge158" class="edge"><title>Infrastructure-&gt;yaml2ical</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1594.62,-1506.93C1627.1,-1523.28 1674.08,-1553.05 1693.71,-1595.48 1700.04,-1609.18 1688.84,-1615.7 1695.16,-1629.41 1740.3,-1727.27 1794.19,-1720.75 1872.74,-1794.54 1932,-1850.21 1947.8,-1863.12 2005.44,-1920.47 2081.34,-1995.97 2109.46,-2007.55 2172.14,-2094.34 2224.85,-2167.31 2269.71,-2264.54 2289.9,-2311.21"/>
<polygon fill="black" stroke="black" points="2286.78,-2312.82 2293.94,-2320.64 2293.22,-2310.07 2286.78,-2312.82"/>
</g>
<!-- zmq&#45;event&#45;publisher -->
<g id="node164" class="node"><title>zmq-event-publisher</title>
<ellipse fill="none" stroke="black" cx="1255.96" cy="-1467.24" rx="64.1867" ry="18"/>
<text text-anchor="middle" x="1255.96" y="-1464.44" font-family="Times,serif" font-size="11.00">zmq-event-publisher</text>
</g>
<!-- Infrastructure&#45;&gt;zmq&#45;event&#45;publisher -->
<g id="edge159" class="edge"><title>Infrastructure-&gt;zmq-event-publisher</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1504.23,-1487.5C1454.48,-1483.44 1381.83,-1477.51 1327.97,-1473.12"/>
<polygon fill="black" stroke="black" points="1328.05,-1469.61 1317.8,-1472.29 1327.48,-1476.59 1328.05,-1469.61"/>
</g>
<!-- zuul -->
<g id="node165" class="node"><title>zuul</title>
<ellipse fill="none" stroke="black" cx="2063.42" cy="-2347.52" rx="27" ry="18"/>
<text text-anchor="middle" x="2063.42" y="-2344.72" font-family="Times,serif" font-size="11.00">zuul</text>
</g>
<!-- Infrastructure&#45;&gt;zuul -->
<g id="edge160" class="edge"><title>Infrastructure-&gt;zuul</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1565.17,-1510.34C1575.2,-1551.51 1602.17,-1654.43 1638.91,-1735.05 1753.84,-1987.21 1973.63,-2246.18 2042.35,-2324.03"/>
<polygon fill="black" stroke="black" points="2040,-2326.65 2049.25,-2331.81 2045.24,-2322.01 2040,-2326.65"/>
</g>
<!-- zuul&#45;packaging -->
<g id="node166" class="node"><title>zuul-packaging</title>
<ellipse fill="none" stroke="black" cx="2120.03" cy="-2094.3" rx="50.5248" ry="18"/>
<text text-anchor="middle" x="2120.03" y="-2091.5" font-family="Times,serif" font-size="11.00">zuul-packaging</text>
</g>
<!-- Infrastructure&#45;&gt;zuul&#45;packaging -->
<g id="edge161" class="edge"><title>Infrastructure-&gt;zuul-packaging</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1594.62,-1506.93C1627.1,-1523.28 1674.08,-1553.05 1693.71,-1595.48 1700.04,-1609.18 1688.84,-1615.7 1695.16,-1629.41 1740.3,-1727.27 1794.19,-1720.75 1872.74,-1794.54 1932,-1850.21 1948.07,-1862.86 2005.44,-1920.47 2011.42,-1926.47 2013.31,-1927.65 2018.5,-1934.34 2052.84,-1978.55 2086.4,-2034.68 2105.03,-2067.34"/>
<polygon fill="black" stroke="black" points="2102.13,-2069.31 2110.1,-2076.29 2108.22,-2065.86 2102.13,-2069.31"/>
</g>
<!-- OpenStack UX -->
<g id="node167" class="node"><title>OpenStack UX</title>
<ellipse fill="none" stroke="black" cx="2461.34" cy="-732" rx="64.189" ry="18"/>
<text text-anchor="middle" x="2461.34" y="-728.3" font-family="Times,serif" font-size="14.00">OpenStack UX</text>
</g>
<!-- OpenStack client -->
<g id="node168" class="node"><title>OpenStack client</title>
<ellipse fill="none" stroke="black" cx="2874.93" cy="-1392.85" rx="71.4873" ry="18"/>
<text text-anchor="middle" x="2874.93" y="-1389.15" font-family="Times,serif" font-size="14.00">OpenStack client</text>
</g>
<!-- cliff -->
<g id="node169" class="node"><title>cliff</title>
<ellipse fill="none" stroke="black" cx="2959.42" cy="-1294.32" rx="27" ry="18"/>
<text text-anchor="middle" x="2959.42" y="-1291.52" font-family="Times,serif" font-size="11.00">cliff</text>
</g>
<!-- OpenStack client&#45;&gt;cliff -->
<g id="edge162" class="edge"><title>OpenStack client-&gt;cliff</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2890.03,-1375.24C2903.78,-1359.21 2924.18,-1335.42 2939.3,-1317.78"/>
<polygon fill="black" stroke="black" points="2941.98,-1320.03 2945.84,-1310.16 2936.67,-1315.47 2941.98,-1320.03"/>
</g>
<!-- os&#45;client&#45;config -->
<g id="node170" class="node"><title>os-client-config</title>
<ellipse fill="none" stroke="black" cx="2763.62" cy="-1242" rx="51.931" ry="18"/>
<text text-anchor="middle" x="2763.62" y="-1239.2" font-family="Times,serif" font-size="11.00">os-client-config</text>
</g>
<!-- OpenStack client&#45;&gt;os&#45;client&#45;config -->
<g id="edge163" class="edge"><title>OpenStack client-&gt;os-client-config</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2861.72,-1374.96C2842.14,-1348.42 2805.3,-1298.49 2782.76,-1267.94"/>
<polygon fill="black" stroke="black" points="2785.56,-1265.84 2776.81,-1259.87 2779.93,-1270 2785.56,-1265.84"/>
</g>
<!-- python&#45;openstackclient -->
<g id="node171" class="node"><title>python-openstackclient</title>
<ellipse fill="none" stroke="black" cx="2723.56" cy="-1385.9" rx="71.6184" ry="18"/>
<text text-anchor="middle" x="2723.56" y="-1383.1" font-family="Times,serif" font-size="11.00">python-openstackclient</text>
</g>
<!-- OpenStack client&#45;&gt;python&#45;openstackclient -->
<g id="edge164" class="edge"><title>OpenStack client-&gt;python-openstackclient</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2804.56,-1389.62C2804.46,-1389.61 2804.35,-1389.61 2804.24,-1389.61"/>
<polygon fill="black" stroke="black" points="2804.51,-1386.11 2794.36,-1389.15 2804.18,-1393.11 2804.51,-1386.11"/>
</g>
<!-- OpenStackAnsible -->
<g id="node172" class="node"><title>OpenStackAnsible</title>
<ellipse fill="none" stroke="black" cx="3108.12" cy="-1259.21" rx="76.8869" ry="18"/>
<text text-anchor="middle" x="3108.12" y="-1255.51" font-family="Times,serif" font-size="14.00">OpenStackAnsible</text>
</g>
<!-- openstack&#45;ansible -->
<g id="node173" class="node"><title>openstack-ansible</title>
<ellipse fill="none" stroke="black" cx="3152.02" cy="-1316.63" rx="57.9578" ry="18"/>
<text text-anchor="middle" x="3152.02" y="-1313.83" font-family="Times,serif" font-size="11.00">openstack-ansible</text>
</g>
<!-- OpenStackAnsible&#45;&gt;openstack&#45;ansible -->
<g id="edge165" class="edge"><title>OpenStackAnsible-&gt;openstack-ansible</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3121.77,-1277.06C3125.11,-1281.42 3128.74,-1286.18 3132.3,-1290.83"/>
<polygon fill="black" stroke="black" points="3129.68,-1293.16 3138.53,-1298.98 3135.24,-1288.91 3129.68,-1293.16"/>
</g>
<!-- openstack&#45;ansible&#45;specs -->
<g id="node174" class="node"><title>openstack-ansible-specs</title>
<ellipse fill="none" stroke="black" cx="3084.17" cy="-1191" rx="75.3348" ry="18"/>
<text text-anchor="middle" x="3084.17" y="-1188.2" font-family="Times,serif" font-size="11.00">openstack-ansible-specs</text>
</g>
<!-- OpenStackAnsible&#45;&gt;openstack&#45;ansible&#45;specs -->
<g id="edge166" class="edge"><title>OpenStackAnsible-&gt;openstack-ansible-specs</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3101.7,-1240.93C3099.31,-1234.12 3096.54,-1226.24 3093.92,-1218.77"/>
<polygon fill="black" stroke="black" points="3097.22,-1217.6 3090.6,-1209.33 3090.62,-1219.92 3097.22,-1217.6"/>
</g>
<!-- Packaging&#45;deb -->
<g id="node175" class="node"><title>Packaging-deb</title>
<ellipse fill="none" stroke="black" cx="747.183" cy="-3047.27" rx="63.0888" ry="18"/>
<text text-anchor="middle" x="747.183" y="-3043.57" font-family="Times,serif" font-size="14.00">Packaging-deb</text>
</g>
<!-- deb&#45;ceilometer -->
<g id="node176" class="node"><title>deb-ceilometer</title>
<ellipse fill="none" stroke="black" cx="949.73" cy="-2949.62" rx="49.8222" ry="18"/>
<text text-anchor="middle" x="949.73" y="-2946.82" font-family="Times,serif" font-size="11.00">deb-ceilometer</text>
</g>
<!-- Packaging&#45;deb&#45;&gt;deb&#45;ceilometer -->
<g id="edge167" class="edge"><title>Packaging-deb-&gt;deb-ceilometer</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M779.726,-3031.58C815.292,-3014.44 872.272,-2986.97 910.337,-2968.61"/>
<polygon fill="black" stroke="black" points="912.095,-2971.65 919.583,-2964.15 909.055,-2965.34 912.095,-2971.65"/>
</g>
<!-- deb&#45;ceilometermiddleware -->
<g id="node177" class="node"><title>deb-ceilometermiddleware</title>
<ellipse fill="none" stroke="black" cx="488.98" cy="-2783.19" rx="81.5645" ry="18"/>
<text text-anchor="middle" x="488.98" y="-2780.39" font-family="Times,serif" font-size="11.00">deb-ceilometermiddleware</text>
</g>
<!-- Packaging&#45;deb&#45;&gt;deb&#45;ceilometermiddleware -->
<g id="edge168" class="edge"><title>Packaging-deb-&gt;deb-ceilometermiddleware</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M729.84,-3029.54C685.008,-2983.68 565.165,-2861.11 513.377,-2808.14"/>
<polygon fill="black" stroke="black" points="515.74,-2805.55 506.247,-2800.85 510.735,-2810.44 515.74,-2805.55"/>
</g>
<!-- deb&#45;cinder -->
<g id="node178" class="node"><title>deb-cinder</title>
<ellipse fill="none" stroke="black" cx="488.725" cy="-3293.07" rx="38.4712" ry="18"/>
<text text-anchor="middle" x="488.725" y="-3290.27" font-family="Times,serif" font-size="11.00">deb-cinder</text>
</g>
<!-- Packaging&#45;deb&#45;&gt;deb&#45;cinder -->
<g id="edge169" class="edge"><title>Packaging-deb-&gt;deb-cinder</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M713.303,-3062.58C675.78,-3080.77 615.094,-3114 573.458,-3155.87 540.82,-3188.68 515.001,-3236.33 500.804,-3265.97"/>
<polygon fill="black" stroke="black" points="497.513,-3264.74 496.442,-3275.28 503.853,-3267.71 497.513,-3264.74"/>
</g>
<!-- deb&#45;designate -->
<g id="node179" class="node"><title>deb-designate</title>
<ellipse fill="none" stroke="black" cx="919.962" cy="-3106.97" rx="46.8089" ry="18"/>
<text text-anchor="middle" x="919.962" y="-3104.17" font-family="Times,serif" font-size="11.00">deb-designate</text>
</g>
<!-- Packaging&#45;deb&#45;&gt;deb&#45;designate -->
<g id="edge170" class="edge"><title>Packaging-deb-&gt;deb-designate</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M787.692,-3061.27C813.986,-3070.35 848.27,-3082.2 875.344,-3091.55"/>
<polygon fill="black" stroke="black" points="874.37,-3094.92 884.965,-3094.88 876.656,-3088.3 874.37,-3094.92"/>
</g>
<!-- deb&#45;designate&#45;dashboard -->
<g id="node180" class="node"><title>deb-designate-dashboard</title>
<ellipse fill="none" stroke="black" cx="604.837" cy="-3034.93" rx="76.24" ry="18"/>
<text text-anchor="middle" x="604.837" y="-3032.13" font-family="Times,serif" font-size="11.00">deb-designate-dashboard</text>
</g>
<!-- Packaging&#45;deb&#45;&gt;deb&#45;designate&#45;dashboard -->
<g id="edge171" class="edge"><title>Packaging-deb-&gt;deb-designate-dashboard</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M686.815,-3042.04C686.711,-3042.03 686.607,-3042.02 686.502,-3042.01"/>
<polygon fill="black" stroke="black" points="687.011,-3038.54 676.746,-3041.17 686.406,-3045.52 687.011,-3038.54"/>
</g>
<!-- deb&#45;glance -->
<g id="node181" class="node"><title>deb-glance</title>
<ellipse fill="none" stroke="black" cx="318.981" cy="-2786.32" rx="39.1741" ry="18"/>
<text text-anchor="middle" x="318.981" y="-2783.52" font-family="Times,serif" font-size="11.00">deb-glance</text>
</g>
<!-- Packaging&#45;deb&#45;&gt;deb&#45;glance -->
<g id="edge172" class="edge"><title>Packaging-deb-&gt;deb-glance</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M717.731,-3031.12C675.277,-3007.67 594.603,-2962.53 527.432,-2921.57 463.264,-2882.44 389.894,-2833.93 349.564,-2806.93"/>
<polygon fill="black" stroke="black" points="351.492,-2804.01 341.237,-2801.35 347.593,-2809.82 351.492,-2804.01"/>
</g>
<!-- deb&#45;heat -->
<g id="node182" class="node"><title>deb-heat</title>
<ellipse fill="none" stroke="black" cx="1085.58" cy="-2813.66" rx="33.1473" ry="18"/>
<text text-anchor="middle" x="1085.58" y="-2810.86" font-family="Times,serif" font-size="11.00">deb-heat</text>
</g>
<!-- Packaging&#45;deb&#45;&gt;deb&#45;heat -->
<g id="edge173" class="edge"><title>Packaging-deb-&gt;deb-heat</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M771.52,-3030.47C832.435,-2988.42 991.272,-2878.77 1056.74,-2833.58"/>
<polygon fill="black" stroke="black" points="1058.73,-2836.45 1064.97,-2827.89 1054.76,-2830.69 1058.73,-2836.45"/>
</g>
<!-- deb&#45;horizon -->
<g id="node183" class="node"><title>deb-horizon</title>
<ellipse fill="none" stroke="black" cx="558.067" cy="-2907.79" rx="41.4846" ry="18"/>
<text text-anchor="middle" x="558.067" y="-2904.99" font-family="Times,serif" font-size="11.00">deb-horizon</text>
</g>
<!-- Packaging&#45;deb&#45;&gt;deb&#45;horizon -->
<g id="edge174" class="edge"><title>Packaging-deb-&gt;deb-horizon</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M724.371,-3030.45C690.03,-3005.12 625.061,-2957.2 587.294,-2929.34"/>
<polygon fill="black" stroke="black" points="589.342,-2926.51 579.216,-2923.39 585.187,-2932.14 589.342,-2926.51"/>
</g>
<!-- deb&#45;ironic -->
<g id="node184" class="node"><title>deb-ironic</title>
<ellipse fill="none" stroke="black" cx="776.857" cy="-2783.46" rx="37.0671" ry="18"/>
<text text-anchor="middle" x="776.857" y="-2780.66" font-family="Times,serif" font-size="11.00">deb-ironic</text>
</g>
<!-- Packaging&#45;deb&#45;&gt;deb&#45;ironic -->
<g id="edge175" class="edge"><title>Packaging-deb-&gt;deb-ironic</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M749.222,-3029.14C754.305,-2983.96 767.562,-2866.1 773.68,-2811.71"/>
<polygon fill="black" stroke="black" points="777.164,-2812.05 774.803,-2801.72 770.207,-2811.27 777.164,-2812.05"/>
</g>
<!-- deb&#45;keystone -->
<g id="node185" class="node"><title>deb-keystone</title>
<ellipse fill="none" stroke="black" cx="689.544" cy="-2920.73" rx="45.2009" ry="18"/>
<text text-anchor="middle" x="689.544" y="-2917.93" font-family="Times,serif" font-size="11.00">deb-keystone</text>
</g>
<!-- Packaging&#45;deb&#45;&gt;deb&#45;keystone -->
<g id="edge176" class="edge"><title>Packaging-deb-&gt;deb-keystone</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M739.047,-3029.41C729.349,-3008.12 713.047,-2972.33 701.815,-2947.67"/>
<polygon fill="black" stroke="black" points="704.969,-2946.15 697.638,-2938.5 698.598,-2949.05 704.969,-2946.15"/>
</g>
<!-- deb&#45;mistral -->
<g id="node186" class="node"><title>deb-mistral</title>
<ellipse fill="none" stroke="black" cx="309.39" cy="-2952.49" rx="40.0804" ry="18"/>
<text text-anchor="middle" x="309.39" y="-2949.69" font-family="Times,serif" font-size="11.00">deb-mistral</text>
</g>
<!-- Packaging&#45;deb&#45;&gt;deb&#45;mistral -->
<g id="edge177" class="edge"><title>Packaging-deb-&gt;deb-mistral</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M704.353,-3033.93C690.303,-3029.68 674.585,-3025.06 660.12,-3021.11 572.46,-2997.19 550.893,-2988.95 461.507,-2972.63 427.399,-2966.4 388.652,-2961.3 358.801,-2957.79"/>
<polygon fill="black" stroke="black" points="358.971,-2954.29 348.635,-2956.62 358.167,-2961.24 358.971,-2954.29"/>
</g>
<!-- deb&#45;mistral&#45;dashboard -->
<g id="node187" class="node"><title>deb-mistral-dashboard</title>
<ellipse fill="none" stroke="black" cx="1088.2" cy="-3044.67" rx="69.5112" ry="18"/>
<text text-anchor="middle" x="1088.2" y="-3041.87" font-family="Times,serif" font-size="11.00">deb-mistral-dashboard</text>
</g>
<!-- Packaging&#45;deb&#45;&gt;deb&#45;mistral&#45;dashboard -->
<g id="edge178" class="edge"><title>Packaging-deb-&gt;deb-mistral-dashboard</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M810.527,-3046.79C866.336,-3046.36 947.903,-3045.74 1008.2,-3045.28"/>
<polygon fill="black" stroke="black" points="1008.47,-3048.78 1018.45,-3045.2 1008.42,-3041.78 1008.47,-3048.78"/>
</g>
<!-- deb&#45;murano -->
<g id="node188" class="node"><title>deb-murano</title>
<ellipse fill="none" stroke="black" cx="1078.85" cy="-3261.37" rx="41.4846" ry="18"/>
<text text-anchor="middle" x="1078.85" y="-3258.57" font-family="Times,serif" font-size="11.00">deb-murano</text>
</g>
<!-- Packaging&#45;deb&#45;&gt;deb&#45;murano -->
<g id="edge179" class="edge"><title>Packaging-deb-&gt;deb-murano</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M772.932,-3063.9C832.822,-3102.56 981.347,-3198.43 1046.89,-3240.74"/>
<polygon fill="black" stroke="black" points="1045.27,-3243.86 1055.57,-3246.35 1049.07,-3237.98 1045.27,-3243.86"/>
</g>
<!-- deb&#45;murano&#45;dashboard -->
<g id="node189" class="node"><title>deb-murano-dashboard</title>
<ellipse fill="none" stroke="black" cx="762.431" cy="-3299.88" rx="70.9157" ry="18"/>
<text text-anchor="middle" x="762.431" y="-3297.08" font-family="Times,serif" font-size="11.00">deb-murano-dashboard</text>
</g>
<!-- Packaging&#45;deb&#45;&gt;deb&#45;murano&#45;dashboard -->
<g id="edge180" class="edge"><title>Packaging-deb-&gt;deb-murano-dashboard</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M747.857,-3065.62C748.711,-3087.93 750.312,-3126.71 752.268,-3159.93 754.543,-3198.57 757.909,-3243.16 760.136,-3271.43"/>
<polygon fill="black" stroke="black" points="756.676,-3272.08 760.957,-3281.77 763.654,-3271.52 756.676,-3272.08"/>
</g>
<!-- deb&#45;neutron -->
<g id="node190" class="node"><title>deb-neutron</title>
<ellipse fill="none" stroke="black" cx="820.587" cy="-2945.62" rx="41.4846" ry="18"/>
<text text-anchor="middle" x="820.587" y="-2942.82" font-family="Times,serif" font-size="11.00">deb-neutron</text>
</g>
<!-- Packaging&#45;deb&#45;&gt;deb&#45;neutron -->
<g id="edge181" class="edge"><title>Packaging-deb-&gt;deb-neutron</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M759.969,-3029.57C771.547,-3013.53 788.749,-2989.71 801.874,-2971.53"/>
<polygon fill="black" stroke="black" points="804.931,-2973.28 807.947,-2963.12 799.255,-2969.18 804.931,-2973.28"/>
</g>
<!-- deb&#45;neutron&#45;fwaas -->
<g id="node191" class="node"><title>deb-neutron-fwaas</title>
<ellipse fill="none" stroke="black" cx="916.574" cy="-2779.9" rx="60.2679" ry="18"/>
<text text-anchor="middle" x="916.574" y="-2777.1" font-family="Times,serif" font-size="11.00">deb-neutron-fwaas</text>
</g>
<!-- Packaging&#45;deb&#45;&gt;deb&#45;neutron&#45;fwaas -->
<g id="edge182" class="edge"><title>Packaging-deb-&gt;deb-neutron-fwaas</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M750.259,-3029.13C754.342,-3008.07 762.806,-2972.75 777.495,-2945.48 807.69,-2889.41 858.931,-2834.95 890.072,-2804.58"/>
<polygon fill="black" stroke="black" points="892.759,-2806.85 897.531,-2797.39 887.901,-2801.81 892.759,-2806.85"/>
</g>
<!-- deb&#45;neutron&#45;lbaas -->
<g id="node192" class="node"><title>deb-neutron-lbaas</title>
<ellipse fill="none" stroke="black" cx="316.509" cy="-3282.26" rx="57.9578" ry="18"/>
<text text-anchor="middle" x="316.509" y="-3279.46" font-family="Times,serif" font-size="11.00">deb-neutron-lbaas</text>
</g>
<!-- Packaging&#45;deb&#45;&gt;deb&#45;neutron&#45;lbaas -->
<g id="edge183" class="edge"><title>Packaging-deb-&gt;deb-neutron-lbaas</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M717.919,-3063.24C642.007,-3104.66 438.805,-3215.53 354.243,-3261.67"/>
<polygon fill="black" stroke="black" points="352.348,-3258.72 345.246,-3266.58 355.701,-3264.86 352.348,-3258.72"/>
</g>
<!-- deb&#45;neutron&#45;vpnaas -->
<g id="node193" class="node"><title>deb-neutron-vpnaas</title>
<ellipse fill="none" stroke="black" cx="317.539" cy="-3111.52" rx="62.5783" ry="18"/>
<text text-anchor="middle" x="317.539" y="-3108.72" font-family="Times,serif" font-size="11.00">deb-neutron-vpnaas</text>
</g>
<!-- Packaging&#45;deb&#45;&gt;deb&#45;neutron&#45;vpnaas -->
<g id="edge184" class="edge"><title>Packaging-deb-&gt;deb-neutron-vpnaas</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M691.014,-3055.67C611.671,-3067.54 467.089,-3089.15 382.988,-3101.73"/>
<polygon fill="black" stroke="black" points="382.413,-3098.28 373.04,-3103.22 383.448,-3105.2 382.413,-3098.28"/>
</g>
<!-- deb&#45;nova -->
<g id="node194" class="node"><title>deb-nova</title>
<ellipse fill="none" stroke="black" cx="497.825" cy="-3139.98" rx="34.054" ry="18"/>
<text text-anchor="middle" x="497.825" y="-3137.18" font-family="Times,serif" font-size="11.00">deb-nova</text>
</g>
<!-- Packaging&#45;deb&#45;&gt;deb&#45;nova -->
<g id="edge185" class="edge"><title>Packaging-deb-&gt;deb-nova</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M708.767,-3061.56C661.576,-3079.1 582.046,-3108.67 535.293,-3126.05"/>
<polygon fill="black" stroke="black" points="533.991,-3122.8 525.838,-3129.56 536.431,-3129.36 533.991,-3122.8"/>
</g>
<!-- deb&#45;openstack&#45;pkg&#45;tools -->
<g id="node195" class="node"><title>deb-openstack-pkg-tools</title>
<ellipse fill="none" stroke="black" cx="650.224" cy="-3155.97" rx="75.3348" ry="18"/>
<text text-anchor="middle" x="650.224" y="-3153.17" font-family="Times,serif" font-size="11.00">deb-openstack-pkg-tools</text>
</g>
<!-- Packaging&#45;deb&#45;&gt;deb&#45;openstack&#45;pkg&#45;tools -->
<g id="edge186" class="edge"><title>Packaging-deb-&gt;deb-openstack-pkg-tools</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M731.605,-3064.74C715.726,-3082.54 690.931,-3110.33 672.881,-3130.57"/>
<polygon fill="black" stroke="black" points="670.131,-3128.39 666.086,-3138.18 675.354,-3133.05 670.131,-3128.39"/>
</g>
<!-- deb&#45;rally -->
<g id="node196" class="node"><title>deb-rally</title>
<ellipse fill="none" stroke="black" cx="461.312" cy="-2992.23" rx="33.8507" ry="18"/>
<text text-anchor="middle" x="461.312" y="-2989.43" font-family="Times,serif" font-size="11.00">deb-rally</text>
</g>
<!-- Packaging&#45;deb&#45;&gt;deb&#45;rally -->
<g id="edge187" class="edge"><title>Packaging-deb-&gt;deb-rally</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M705.884,-3033.5C691.518,-3029.08 675.22,-3024.46 660.12,-3021.11 607.181,-3009.38 545.22,-3001.24 504.719,-2996.66"/>
<polygon fill="black" stroke="black" points="504.975,-2993.17 494.65,-2995.55 504.204,-3000.13 504.975,-2993.17"/>
</g>
<!-- deb&#45;sahara -->
<g id="node197" class="node"><title>deb-sahara</title>
<ellipse fill="none" stroke="black" cx="792.954" cy="-3160.06" rx="39.1741" ry="18"/>
<text text-anchor="middle" x="792.954" y="-3157.26" font-family="Times,serif" font-size="11.00">deb-sahara</text>
</g>
<!-- Packaging&#45;deb&#45;&gt;deb&#45;sahara -->
<g id="edge188" class="edge"><title>Packaging-deb-&gt;deb-sahara</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M754.537,-3065.4C761.954,-3083.67 773.493,-3112.11 781.99,-3133.04"/>
<polygon fill="black" stroke="black" points="778.766,-3134.41 785.769,-3142.36 785.252,-3131.77 778.766,-3134.41"/>
</g>
<!-- deb&#45;swift -->
<g id="node198" class="node"><title>deb-swift</title>
<ellipse fill="none" stroke="black" cx="909.409" cy="-3288.14" rx="35.4579" ry="18"/>
<text text-anchor="middle" x="909.409" y="-3285.34" font-family="Times,serif" font-size="11.00">deb-swift</text>
</g>
<!-- Packaging&#45;deb&#45;&gt;deb&#45;swift -->
<g id="edge189" class="edge"><title>Packaging-deb-&gt;deb-swift</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M761.944,-3065.17C779.73,-3087.03 810.147,-3125.41 833.64,-3160.19 856.676,-3194.29 880.405,-3235.54 895.03,-3261.81"/>
<polygon fill="black" stroke="black" points="892.084,-3263.71 899.988,-3270.77 898.208,-3260.32 892.084,-3263.71"/>
</g>
<!-- deb&#45;tempest -->
<g id="node199" class="node"><title>deb-tempest</title>
<ellipse fill="none" stroke="black" cx="626.646" cy="-3295.97" rx="42.8909" ry="18"/>
<text text-anchor="middle" x="626.646" y="-3293.17" font-family="Times,serif" font-size="11.00">deb-tempest</text>
</g>
<!-- Packaging&#45;deb&#45;&gt;deb&#45;tempest -->
<g id="edge190" class="edge"><title>Packaging-deb-&gt;deb-tempest</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M746.242,-3065.3C744.552,-3087.46 739.869,-3125.85 726.99,-3156.07 707.981,-3200.67 672.771,-3244.92 649.525,-3271.36"/>
<polygon fill="black" stroke="black" points="646.777,-3269.18 642.726,-3278.97 651.998,-3273.85 646.777,-3269.18"/>
</g>
<!-- deb&#45;trove -->
<g id="node200" class="node"><title>deb-trove</title>
<ellipse fill="none" stroke="black" cx="640.073" cy="-2772" rx="35.4579" ry="18"/>
<text text-anchor="middle" x="640.073" y="-2769.2" font-family="Times,serif" font-size="11.00">deb-trove</text>
</g>
<!-- Packaging&#45;deb&#45;&gt;deb&#45;trove -->
<g id="edge191" class="edge"><title>Packaging-deb-&gt;deb-trove</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M748.31,-3029.13C749.271,-3004.05 748.879,-2957.74 736.243,-2920.84 719.801,-2872.84 684.625,-2824.9 661.68,-2796.88"/>
<polygon fill="black" stroke="black" points="664.076,-2794.29 654.986,-2788.84 658.697,-2798.77 664.076,-2794.29"/>
</g>
<!-- Packaging&#45;rpm -->
<g id="node201" class="node"><title>Packaging-rpm</title>
<ellipse fill="none" stroke="black" cx="167.13" cy="-1920.66" rx="64.9885" ry="18"/>
<text text-anchor="middle" x="167.13" y="-1916.96" font-family="Times,serif" font-size="14.00">Packaging-rpm</text>
</g>
<!-- pymod2pkg -->
<g id="node202" class="node"><title>pymod2pkg</title>
<ellipse fill="none" stroke="black" cx="233.816" cy="-1877.42" rx="40.0804" ry="18"/>
<text text-anchor="middle" x="233.816" y="-1874.62" font-family="Times,serif" font-size="11.00">pymod2pkg</text>
</g>
<!-- Packaging&#45;rpm&#45;&gt;pymod2pkg -->
<g id="edge192" class="edge"><title>Packaging-rpm-&gt;pymod2pkg</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M192.722,-1904.06C195.752,-1902.1 198.873,-1900.08 201.976,-1898.06"/>
<polygon fill="black" stroke="black" points="204.1,-1900.86 210.586,-1892.48 200.291,-1894.98 204.1,-1900.86"/>
</g>
<!-- renderspec -->
<g id="node203" class="node"><title>renderspec</title>
<ellipse fill="none" stroke="black" cx="123.968" cy="-1854" rx="39.1741" ry="18"/>
<text text-anchor="middle" x="123.968" y="-1851.2" font-family="Times,serif" font-size="11.00">renderspec</text>
</g>
<!-- Packaging&#45;rpm&#45;&gt;renderspec -->
<g id="edge193" class="edge"><title>Packaging-rpm-&gt;renderspec</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M155.563,-1902.79C151.041,-1895.81 145.764,-1887.66 140.832,-1880.04"/>
<polygon fill="black" stroke="black" points="143.641,-1877.94 135.268,-1871.45 137.765,-1881.75 143.641,-1877.94"/>
</g>
<!-- rpm&#45;packaging -->
<g id="node204" class="node"><title>rpm-packaging</title>
<ellipse fill="none" stroke="black" cx="100.911" cy="-1964.51" rx="49.8222" ry="18"/>
<text text-anchor="middle" x="100.911" y="-1961.71" font-family="Times,serif" font-size="11.00">rpm-packaging</text>
</g>
<!-- Packaging&#45;rpm&#45;&gt;rpm&#45;packaging -->
<g id="edge194" class="edge"><title>Packaging-rpm-&gt;rpm-packaging</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M141.717,-1937.49C138.945,-1939.32 136.097,-1941.21 133.257,-1943.09"/>
<polygon fill="black" stroke="black" points="131.246,-1940.22 124.841,-1948.66 135.111,-1946.06 131.246,-1940.22"/>
</g>
<!-- rpm&#45;packaging&#45;tools -->
<g id="node205" class="node"><title>rpm-packaging-tools</title>
<ellipse fill="none" stroke="black" cx="210.974" cy="-1986.97" rx="64.1867" ry="18"/>
<text text-anchor="middle" x="210.974" y="-1984.17" font-family="Times,serif" font-size="11.00">rpm-packaging-tools</text>
</g>
<!-- Packaging&#45;rpm&#45;&gt;rpm&#45;packaging&#45;tools -->
<g id="edge195" class="edge"><title>Packaging-rpm-&gt;rpm-packaging-tools</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M178.879,-1938.43C183.401,-1945.27 188.664,-1953.23 193.604,-1960.7"/>
<polygon fill="black" stroke="black" points="190.757,-1962.74 199.192,-1969.15 196.596,-1958.88 190.757,-1962.74"/>
</g>
<!-- Puppet OpenStack -->
<g id="node206" class="node"><title>Puppet OpenStack</title>
<ellipse fill="none" stroke="black" cx="1683.81" cy="-2815.7" rx="76.0865" ry="18"/>
<text text-anchor="middle" x="1683.81" y="-2812" font-family="Times,serif" font-size="14.00">Puppet OpenStack</text>
</g>
<!-- puppet&#45;aodh -->
<g id="node207" class="node"><title>puppet-aodh</title>
<ellipse fill="none" stroke="black" cx="2014.69" cy="-2727.67" rx="42.8909" ry="18"/>
<text text-anchor="middle" x="2014.69" y="-2724.87" font-family="Times,serif" font-size="11.00">puppet-aodh</text>
</g>
<!-- Puppet OpenStack&#45;&gt;puppet&#45;aodh -->
<g id="edge196" class="edge"><title>Puppet OpenStack-&gt;puppet-aodh</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1746.21,-2805.31C1765.7,-2802.03 1787.27,-2798.37 1807.05,-2794.94 1821.03,-2792.51 1824.76,-2792.93 1838.49,-2789.33 1885.91,-2776.88 1938.82,-2757.62 1974.16,-2743.94"/>
<polygon fill="black" stroke="black" points="1975.6,-2747.13 1983.65,-2740.24 1973.06,-2740.61 1975.6,-2747.13"/>
</g>
<!-- puppet&#45;ceilometer -->
<g id="node208" class="node"><title>puppet-ceilometer</title>
<ellipse fill="none" stroke="black" cx="1654.8" cy="-2478.54" rx="58.16" ry="18"/>
<text text-anchor="middle" x="1654.8" y="-2475.74" font-family="Times,serif" font-size="11.00">puppet-ceilometer</text>
</g>
<!-- Puppet OpenStack&#45;&gt;puppet&#45;ceilometer -->
<g id="edge197" class="edge"><title>Puppet OpenStack-&gt;puppet-ceilometer</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1682.25,-2797.58C1677.48,-2742.12 1663.05,-2574.44 1657.25,-2507.04"/>
<polygon fill="black" stroke="black" points="1660.71,-2506.42 1656.37,-2496.76 1653.74,-2507.02 1660.71,-2506.42"/>
</g>
<!-- puppet&#45;cinder -->
<g id="node209" class="node"><title>puppet-cinder</title>
<ellipse fill="none" stroke="black" cx="1507.48" cy="-3165.97" rx="46.1069" ry="18"/>
<text text-anchor="middle" x="1507.48" y="-3163.17" font-family="Times,serif" font-size="11.00">puppet-cinder</text>
</g>
<!-- Puppet OpenStack&#45;&gt;puppet&#45;cinder -->
<g id="edge198" class="edge"><title>Puppet OpenStack-&gt;puppet-cinder</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1669.05,-2833.69C1647.24,-2860.93 1606.17,-2914.88 1579.86,-2965.89 1549.62,-3024.5 1526.36,-3098.68 1515.04,-3138.2"/>
<polygon fill="black" stroke="black" points="1511.65,-3137.36 1512.3,-3147.93 1518.38,-3139.26 1511.65,-3137.36"/>
</g>
<!-- puppet&#45;designate -->
<g id="node210" class="node"><title>puppet-designate</title>
<ellipse fill="none" stroke="black" cx="1894.81" cy="-2847.02" rx="55.1467" ry="18"/>
<text text-anchor="middle" x="1894.81" y="-2844.22" font-family="Times,serif" font-size="11.00">puppet-designate</text>
</g>
<!-- Puppet OpenStack&#45;&gt;puppet&#45;designate -->
<g id="edge199" class="edge"><title>Puppet OpenStack-&gt;puppet-designate</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1748.26,-2825.27C1775.67,-2829.34 1807.45,-2834.05 1834.39,-2838.05"/>
<polygon fill="black" stroke="black" points="1834.06,-2841.54 1844.47,-2839.55 1835.09,-2834.62 1834.06,-2841.54"/>
</g>
<!-- puppet&#45;glance -->
<g id="node211" class="node"><title>puppet-glance</title>
<ellipse fill="none" stroke="black" cx="1524.52" cy="-2825.11" rx="47.5114" ry="18"/>
<text text-anchor="middle" x="1524.52" y="-2822.31" font-family="Times,serif" font-size="11.00">puppet-glance</text>
</g>
<!-- Puppet OpenStack&#45;&gt;puppet&#45;glance -->
<g id="edge200" class="edge"><title>Puppet OpenStack-&gt;puppet-glance</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1609.76,-2820.08C1600.31,-2820.64 1590.76,-2821.2 1581.64,-2821.74"/>
<polygon fill="black" stroke="black" points="1581.33,-2818.25 1571.56,-2822.33 1581.74,-2825.24 1581.33,-2818.25"/>
</g>
<!-- puppet&#45;gnocchi -->
<g id="node212" class="node"><title>puppet-gnocchi</title>
<ellipse fill="none" stroke="black" cx="1251.74" cy="-2499.27" rx="50.5248" ry="18"/>
<text text-anchor="middle" x="1251.74" y="-2496.47" font-family="Times,serif" font-size="11.00">puppet-gnocchi</text>
</g>
<!-- Puppet OpenStack&#45;&gt;puppet&#45;gnocchi -->
<g id="edge201" class="edge"><title>Puppet OpenStack-&gt;puppet-gnocchi</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1660.98,-2798.31C1628.97,-2773.94 1568.9,-2728.26 1517.58,-2689.5 1509.36,-2683.29 1507.36,-2681.67 1499.05,-2675.58 1421.94,-2619.15 1330.07,-2554.26 1282.98,-2521.17"/>
<polygon fill="black" stroke="black" points="1284.92,-2518.25 1274.72,-2515.37 1280.89,-2523.98 1284.92,-2518.25"/>
</g>
<!-- puppet&#45;heat -->
<g id="node213" class="node"><title>puppet-heat</title>
<ellipse fill="none" stroke="black" cx="2225.44" cy="-2492.06" rx="40.7822" ry="18"/>
<text text-anchor="middle" x="2225.44" y="-2489.26" font-family="Times,serif" font-size="11.00">puppet-heat</text>
</g>
<!-- Puppet OpenStack&#45;&gt;puppet&#45;heat -->
<g id="edge202" class="edge"><title>Puppet OpenStack-&gt;puppet-heat</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1712.17,-2798.76C1804.19,-2743.77 2094.24,-2570.46 2192.51,-2511.74"/>
<polygon fill="black" stroke="black" points="2194.35,-2514.71 2201.14,-2506.58 2190.76,-2508.7 2194.35,-2514.71"/>
</g>
<!-- puppet&#45;horizon -->
<g id="node214" class="node"><title>puppet-horizon</title>
<ellipse fill="none" stroke="black" cx="1488.56" cy="-2479.31" rx="49.8222" ry="18"/>
<text text-anchor="middle" x="1488.56" y="-2476.51" font-family="Times,serif" font-size="11.00">puppet-horizon</text>
</g>
<!-- Puppet OpenStack&#45;&gt;puppet&#45;horizon -->
<g id="edge203" class="edge"><title>Puppet OpenStack-&gt;puppet-horizon</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1662.52,-2798.28C1634.18,-2774.06 1584.24,-2727.55 1554.72,-2678.01 1521.41,-2622.09 1502.34,-2547.23 1493.88,-2507.25"/>
<polygon fill="black" stroke="black" points="1497.29,-2506.5 1491.86,-2497.4 1490.44,-2507.9 1497.29,-2506.5"/>
</g>
<!-- puppet&#45;ironic -->
<g id="node215" class="node"><title>puppet-ironic</title>
<ellipse fill="none" stroke="black" cx="1877.96" cy="-2648.78" rx="45.2009" ry="18"/>
<text text-anchor="middle" x="1877.96" y="-2645.98" font-family="Times,serif" font-size="11.00">puppet-ironic</text>
</g>
<!-- Puppet OpenStack&#45;&gt;puppet&#45;ironic -->
<g id="edge204" class="edge"><title>Puppet OpenStack-&gt;puppet-ironic</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1704.22,-2798.16C1739.39,-2767.91 1811.44,-2705.97 1850.81,-2672.13"/>
<polygon fill="black" stroke="black" points="1853.38,-2674.53 1858.68,-2665.35 1848.82,-2669.22 1853.38,-2674.53"/>
</g>
<!-- puppet&#45;keystone -->
<g id="node216" class="node"><title>puppet-keystone</title>
<ellipse fill="none" stroke="black" cx="1734.89" cy="-2655.47" rx="53.5381" ry="18"/>
<text text-anchor="middle" x="1734.89" y="-2652.67" font-family="Times,serif" font-size="11.00">puppet-keystone</text>
</g>
<!-- Puppet OpenStack&#45;&gt;puppet&#45;keystone -->
<g id="edge205" class="edge"><title>Puppet OpenStack-&gt;puppet-keystone</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1689.57,-2797.63C1698.42,-2769.87 1715.44,-2716.47 1725.92,-2683.61"/>
<polygon fill="black" stroke="black" points="1729.37,-2684.31 1729.07,-2673.72 1722.7,-2682.18 1729.37,-2684.31"/>
</g>
<!-- puppet&#45;manila -->
<g id="node217" class="node"><title>puppet-manila</title>
<ellipse fill="none" stroke="black" cx="1245.62" cy="-2736.57" rx="48.2143" ry="18"/>
<text text-anchor="middle" x="1245.62" y="-2733.77" font-family="Times,serif" font-size="11.00">puppet-manila</text>
</g>
<!-- Puppet OpenStack&#45;&gt;puppet&#45;manila -->
<g id="edge206" class="edge"><title>Puppet OpenStack-&gt;puppet-manila</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1623.34,-2804.78C1537.24,-2789.24 1380.71,-2760.97 1298.81,-2746.17"/>
<polygon fill="black" stroke="black" points="1299.42,-2742.73 1288.96,-2744.4 1298.18,-2749.62 1299.42,-2742.73"/>
</g>
<!-- puppet&#45;mistral -->
<g id="node218" class="node"><title>puppet-mistral</title>
<ellipse fill="none" stroke="black" cx="2242.15" cy="-2908.81" rx="48.2143" ry="18"/>
<text text-anchor="middle" x="2242.15" y="-2906.01" font-family="Times,serif" font-size="11.00">puppet-mistral</text>
</g>
<!-- Puppet OpenStack&#45;&gt;puppet&#45;mistral -->
<g id="edge207" class="edge"><title>Puppet OpenStack-&gt;puppet-mistral</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1731.28,-2829.85C1765.33,-2839.6 1812.43,-2852.3 1854.48,-2860.85 1970.47,-2884.43 2108.51,-2898.15 2184.6,-2904.49"/>
<polygon fill="black" stroke="black" points="2184.67,-2908.01 2194.92,-2905.34 2185.24,-2901.03 2184.67,-2908.01"/>
</g>
<!-- puppet&#45;murano -->
<g id="node219" class="node"><title>puppet-murano</title>
<ellipse fill="none" stroke="black" cx="2030.17" cy="-2932.64" rx="49.8222" ry="18"/>
<text text-anchor="middle" x="2030.17" y="-2929.84" font-family="Times,serif" font-size="11.00">puppet-murano</text>
</g>
<!-- Puppet OpenStack&#45;&gt;puppet&#45;murano -->
<g id="edge208" class="edge"><title>Puppet OpenStack-&gt;puppet-murano</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1727.67,-2830.51C1793.3,-2852.67 1916.47,-2894.26 1983.62,-2916.93"/>
<polygon fill="black" stroke="black" points="1982.91,-2920.38 1993.51,-2920.27 1985.15,-2913.75 1982.91,-2920.38"/>
</g>
<!-- puppet&#45;neutron -->
<g id="node220" class="node"><title>puppet-neutron</title>
<ellipse fill="none" stroke="black" cx="1817.18" cy="-3171.65" rx="49.8222" ry="18"/>
<text text-anchor="middle" x="1817.18" y="-3168.85" font-family="Times,serif" font-size="11.00">puppet-neutron</text>
</g>
<!-- Puppet OpenStack&#45;&gt;puppet&#45;neutron -->
<g id="edge209" class="edge"><title>Puppet OpenStack-&gt;puppet-neutron</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1677.13,-2833.99C1668.82,-2859.33 1656.75,-2906.46 1665.81,-2945.79 1668.46,-2957.28 1759.19,-3088.43 1798.89,-3145.44"/>
<polygon fill="black" stroke="black" points="1796.21,-3147.73 1804.8,-3153.93 1801.95,-3143.72 1796.21,-3147.73"/>
</g>
<!-- puppet&#45;nova -->
<g id="node221" class="node"><title>puppet-nova</title>
<ellipse fill="none" stroke="black" cx="1807.46" cy="-2775.34" rx="42.8909" ry="18"/>
<text text-anchor="middle" x="1807.46" y="-2772.54" font-family="Times,serif" font-size="11.00">puppet-nova</text>
</g>
<!-- Puppet OpenStack&#45;&gt;puppet&#45;nova -->
<g id="edge210" class="edge"><title>Puppet OpenStack-&gt;puppet-nova</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1728.45,-2801.13C1739.9,-2797.39 1752.21,-2793.38 1763.62,-2789.65"/>
<polygon fill="black" stroke="black" points="1764.95,-2792.9 1773.37,-2786.47 1762.78,-2786.24 1764.95,-2792.9"/>
</g>
<!-- puppet&#45;openstack&#45;cookiecutter -->
<g id="node222" class="node"><title>puppet-openstack-cookiecutter</title>
<ellipse fill="none" stroke="black" cx="1990.07" cy="-2487.87" rx="91.3068" ry="18"/>
<text text-anchor="middle" x="1990.07" y="-2485.07" font-family="Times,serif" font-size="11.00">puppet-openstack-cookiecutter</text>
</g>
<!-- Puppet OpenStack&#45;&gt;puppet&#45;openstack&#45;cookiecutter -->
<g id="edge211" class="edge"><title>Puppet OpenStack-&gt;puppet-openstack-cookiecutter</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1698.98,-2797.86C1725.37,-2766.98 1781.62,-2701.8 1831.26,-2648.65 1877.12,-2599.54 1932.7,-2544.17 1964.47,-2512.91"/>
<polygon fill="black" stroke="black" points="1966.95,-2515.37 1971.63,-2505.87 1962.05,-2510.38 1966.95,-2515.37"/>
</g>
<!-- puppet&#45;openstack&#45;integration -->
<g id="node223" class="node"><title>puppet-openstack-integration</title>
<ellipse fill="none" stroke="black" cx="1260.19" cy="-3152.37" rx="87.3884" ry="18"/>
<text text-anchor="middle" x="1260.19" y="-3149.57" font-family="Times,serif" font-size="11.00">puppet-openstack-integration</text>
</g>
<!-- Puppet OpenStack&#45;&gt;puppet&#45;openstack&#45;integration -->
<g id="edge212" class="edge"><title>Puppet OpenStack-&gt;puppet-openstack-integration</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1668.65,-2833.45C1643.74,-2862.11 1591.86,-2919.59 1541.71,-2961.59 1460.24,-3029.8 1354.18,-3096.4 1298.37,-3129.94"/>
<polygon fill="black" stroke="black" points="1296.31,-3127.09 1289.53,-3135.23 1299.91,-3133.1 1296.31,-3127.09"/>
</g>
<!-- puppet&#45;openstack&#45;specs -->
<g id="node224" class="node"><title>puppet-openstack-specs</title>
<ellipse fill="none" stroke="black" cx="1247.28" cy="-2926.02" rx="73.2267" ry="18"/>
<text text-anchor="middle" x="1247.28" y="-2923.22" font-family="Times,serif" font-size="11.00">puppet-openstack-specs</text>
</g>
<!-- Puppet OpenStack&#45;&gt;puppet&#45;openstack&#45;specs -->
<g id="edge213" class="edge"><title>Puppet OpenStack-&gt;puppet-openstack-specs</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1631.59,-2828.9C1550.5,-2849.39 1394.68,-2888.77 1308.45,-2910.56"/>
<polygon fill="black" stroke="black" points="1307.38,-2907.22 1298.54,-2913.06 1309.1,-2914.01 1307.38,-2907.22"/>
</g>
<!-- puppet&#45;openstack_extras -->
<g id="node225" class="node"><title>puppet-openstack_extras</title>
<ellipse fill="none" stroke="black" cx="1464.34" cy="-2961.47" rx="75.5378" ry="18"/>
<text text-anchor="middle" x="1464.34" y="-2958.67" font-family="Times,serif" font-size="11.00">puppet-openstack_extras</text>
</g>
<!-- Puppet OpenStack&#45;&gt;puppet&#45;openstack_extras -->
<g id="edge214" class="edge"><title>Puppet OpenStack-&gt;puppet-openstack_extras</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1658.2,-2832.71C1618.66,-2858.97 1542.7,-2909.43 1498.52,-2938.77"/>
<polygon fill="black" stroke="black" points="1496.52,-2935.9 1490.12,-2944.35 1500.39,-2941.73 1496.52,-2935.9"/>
</g>
<!-- puppet&#45;openstack_spec_helper -->
<g id="node226" class="node"><title>puppet-openstack_spec_helper</title>
<ellipse fill="none" stroke="black" cx="1758.81" cy="-2945.84" rx="91.3068" ry="18"/>
<text text-anchor="middle" x="1758.81" y="-2943.04" font-family="Times,serif" font-size="11.00">puppet-openstack_spec_helper</text>
</g>
<!-- Puppet OpenStack&#45;&gt;puppet&#45;openstack_spec_helper -->
<g id="edge215" class="edge"><title>Puppet OpenStack-&gt;puppet-openstack_spec_helper</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1694.24,-2833.8C1707,-2855.94 1728.72,-2893.63 1743.41,-2919.11"/>
<polygon fill="black" stroke="black" points="1740.45,-2920.98 1748.47,-2927.9 1746.51,-2917.49 1740.45,-2920.98"/>
</g>
<!-- puppet&#45;openstacklib -->
<g id="node227" class="node"><title>puppet-openstacklib</title>
<ellipse fill="none" stroke="black" cx="1452.84" cy="-2689.31" rx="63.2812" ry="18"/>
<text text-anchor="middle" x="1452.84" y="-2686.51" font-family="Times,serif" font-size="11.00">puppet-openstacklib</text>
</g>
<!-- Puppet OpenStack&#45;&gt;puppet&#45;openstacklib -->
<g id="edge216" class="edge"><title>Puppet OpenStack-&gt;puppet-openstacklib</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1653.61,-2799.18C1611.97,-2776.39 1536.9,-2735.31 1491.3,-2710.36"/>
<polygon fill="black" stroke="black" points="1492.76,-2707.17 1482.31,-2705.44 1489.4,-2713.31 1492.76,-2707.17"/>
</g>
<!-- puppet&#45;sahara -->
<g id="node228" class="node"><title>puppet-sahara</title>
<ellipse fill="none" stroke="black" cx="1879.28" cy="-2995.07" rx="47.5114" ry="18"/>
<text text-anchor="middle" x="1879.28" y="-2992.27" font-family="Times,serif" font-size="11.00">puppet-sahara</text>
</g>
<!-- Puppet OpenStack&#45;&gt;puppet&#45;sahara -->
<g id="edge217" class="edge"><title>Puppet OpenStack-&gt;puppet-sahara</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1712.21,-2832.62C1748.09,-2855.06 1810.18,-2897.5 1851.82,-2945.89 1857.53,-2952.53 1862.6,-2960.55 1866.79,-2968.16"/>
<polygon fill="black" stroke="black" points="1863.73,-2969.86 1871.44,-2977.13 1869.95,-2966.64 1863.73,-2969.86"/>
</g>
<!-- puppet&#45;swift -->
<g id="node229" class="node"><title>puppet-swift</title>
<ellipse fill="none" stroke="black" cx="1992.15" cy="-3162.18" rx="43.0936" ry="18"/>
<text text-anchor="middle" x="1992.15" y="-3159.38" font-family="Times,serif" font-size="11.00">puppet-swift</text>
</g>
<!-- Puppet OpenStack&#45;&gt;puppet&#45;swift -->
<g id="edge218" class="edge"><title>Puppet OpenStack-&gt;puppet-swift</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1719.64,-2831.73C1773.72,-2857.86 1875.5,-2914.87 1928.38,-2995.11 1957.72,-3039.63 1976.39,-3099.6 1985.51,-3134.26"/>
<polygon fill="black" stroke="black" points="1982.17,-3135.33 1988.03,-3144.16 1988.95,-3133.6 1982.17,-3135.33"/>
</g>
<!-- puppet&#45;tempest -->
<g id="node230" class="node"><title>puppet-tempest</title>
<ellipse fill="none" stroke="black" cx="1673.74" cy="-3156.17" rx="50.5248" ry="18"/>
<text text-anchor="middle" x="1673.74" y="-3153.37" font-family="Times,serif" font-size="11.00">puppet-tempest</text>
</g>
<!-- Puppet OpenStack&#45;&gt;puppet&#45;tempest -->
<g id="edge219" class="edge"><title>Puppet OpenStack-&gt;puppet-tempest</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1677.92,-2833.83C1670.53,-2859 1659.51,-2905.93 1665.81,-2945.79 1667.38,-2955.72 1673.47,-2956.33 1675.66,-2966.14 1688.27,-3022.4 1682.77,-3090.4 1678.01,-3127.89"/>
<polygon fill="black" stroke="black" points="1674.5,-3127.69 1676.64,-3138.06 1681.44,-3128.62 1674.5,-3127.69"/>
</g>
<!-- puppet&#45;tripleo -->
<g id="node231" class="node"><title>puppet-tripleo</title>
<ellipse fill="none" stroke="black" cx="1811.52" cy="-2466" rx="46.8089" ry="18"/>
<text text-anchor="middle" x="1811.52" y="-2463.2" font-family="Times,serif" font-size="11.00">puppet-tripleo</text>
</g>
<!-- Puppet OpenStack&#45;&gt;puppet&#45;tripleo -->
<g id="edge220" class="edge"><title>Puppet OpenStack-&gt;puppet-tripleo</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1699.69,-2798.06C1723.82,-2770.12 1769.11,-2712.94 1790.01,-2655.59 1809.87,-2601.06 1812.62,-2532.36 1812.38,-2494.44"/>
<polygon fill="black" stroke="black" points="1815.88,-2494.1 1812.24,-2484.15 1808.88,-2494.2 1815.88,-2494.1"/>
</g>
<!-- puppet&#45;trove -->
<g id="node232" class="node"><title>puppet-trove</title>
<ellipse fill="none" stroke="black" cx="2227.89" cy="-3145.1" rx="43.0936" ry="18"/>
<text text-anchor="middle" x="2227.89" y="-3142.3" font-family="Times,serif" font-size="11.00">puppet-trove</text>
</g>
<!-- Puppet OpenStack&#45;&gt;puppet&#45;trove -->
<g id="edge221" class="edge"><title>Puppet OpenStack-&gt;puppet-trove</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1711.54,-2832.49C1803.09,-2887.92 2095.55,-3064.98 2194.67,-3124.99"/>
<polygon fill="black" stroke="black" points="2193.01,-3128.07 2203.37,-3130.26 2196.63,-3122.08 2193.01,-3128.07"/>
</g>
<!-- puppet&#45;tuskar -->
<g id="node233" class="node"><title>puppet-tuskar</title>
<ellipse fill="none" stroke="black" cx="1627.76" cy="-2966.02" rx="46.1069" ry="18"/>
<text text-anchor="middle" x="1627.76" y="-2963.22" font-family="Times,serif" font-size="11.00">puppet-tuskar</text>
</g>
<!-- Puppet OpenStack&#45;&gt;puppet&#45;tuskar -->
<g id="edge222" class="edge"><title>Puppet OpenStack-&gt;puppet-tuskar</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1677.05,-2833.84C1667.37,-2859.79 1649.48,-2907.76 1638.13,-2938.22"/>
<polygon fill="black" stroke="black" points="1634.76,-2937.23 1634.55,-2947.82 1641.32,-2939.67 1634.76,-2937.23"/>
</g>
<!-- puppet&#45;vswitch -->
<g id="node234" class="node"><title>puppet-vswitch</title>
<ellipse fill="none" stroke="black" cx="1606.83" cy="-2678.18" rx="50.5248" ry="18"/>
<text text-anchor="middle" x="1606.83" y="-2675.38" font-family="Times,serif" font-size="11.00">puppet-vswitch</text>
</g>
<!-- Puppet OpenStack&#45;&gt;puppet&#45;vswitch -->
<g id="edge223" class="edge"><title>Puppet OpenStack-&gt;puppet-vswitch</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1673.74,-2797.73C1660.55,-2774.15 1637.28,-2732.58 1621.96,-2705.2"/>
<polygon fill="black" stroke="black" points="1624.84,-2703.18 1616.9,-2696.17 1618.73,-2706.6 1624.84,-2703.18"/>
</g>
<!-- puppet&#45;zaqar -->
<g id="node235" class="node"><title>puppet-zaqar</title>
<ellipse fill="none" stroke="black" cx="2232.18" cy="-2714.46" rx="44.498" ry="18"/>
<text text-anchor="middle" x="2232.18" y="-2711.66" font-family="Times,serif" font-size="11.00">puppet-zaqar</text>
</g>
<!-- Puppet OpenStack&#45;&gt;puppet&#45;zaqar -->
<g id="edge224" class="edge"><title>Puppet OpenStack-&gt;puppet-zaqar</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1746.21,-2805.31C1765.7,-2802.03 1787.27,-2798.37 1807.05,-2794.94 1942.87,-2771.38 2102.43,-2740.24 2181.9,-2724.5"/>
<polygon fill="black" stroke="black" points="2182.98,-2727.85 2192.11,-2722.47 2181.62,-2720.99 2182.98,-2727.85"/>
</g>
<!-- Quality Assurance -->
<g id="node236" class="node"><title>Quality Assurance</title>
<ellipse fill="none" stroke="black" cx="428.722" cy="-433.282" rx="76.0865" ry="18"/>
<text text-anchor="middle" x="428.722" y="-429.582" font-family="Times,serif" font-size="14.00">Quality Assurance</text>
</g>
<!-- bashate -->
<g id="node237" class="node"><title>bashate</title>
<ellipse fill="none" stroke="black" cx="631.978" cy="-367.775" rx="30.1339" ry="18"/>
<text text-anchor="middle" x="631.978" y="-364.975" font-family="Times,serif" font-size="11.00">bashate</text>
</g>
<!-- Quality Assurance&#45;&gt;bashate -->
<g id="edge225" class="edge"><title>Quality Assurance-&gt;bashate</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M473.831,-418.744C510.555,-406.908 561.717,-390.42 595.795,-379.437"/>
<polygon fill="black" stroke="black" points="596.913,-382.754 605.357,-376.355 594.765,-376.091 596.913,-382.754"/>
</g>
<!-- devstack -->
<g id="node238" class="node"><title>devstack</title>
<ellipse fill="none" stroke="black" cx="431.568" cy="-234.417" rx="33.8507" ry="18"/>
<text text-anchor="middle" x="431.568" y="-231.617" font-family="Times,serif" font-size="11.00">devstack</text>
</g>
<!-- Quality Assurance&#45;&gt;devstack -->
<g id="edge226" class="edge"><title>Quality Assurance-&gt;devstack</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M428.985,-414.93C429.484,-380.065 430.572,-304.047 431.164,-262.652"/>
<polygon fill="black" stroke="black" points="434.667,-262.487 431.31,-252.438 427.668,-262.387 434.667,-262.487"/>
</g>
<!-- devstack&#45;plugin&#45;cookiecutter -->
<g id="node239" class="node"><title>devstack-plugin-cookiecutter</title>
<ellipse fill="none" stroke="black" cx="429.506" cy="-594.135" rx="87.3884" ry="18"/>
<text text-anchor="middle" x="429.506" y="-591.335" font-family="Times,serif" font-size="11.00">devstack-plugin-cookiecutter</text>
</g>
<!-- Quality Assurance&#45;&gt;devstack&#45;plugin&#45;cookiecutter -->
<g id="edge227" class="edge"><title>Quality Assurance-&gt;devstack-plugin-cookiecutter</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M428.811,-451.422C428.946,-479.177 429.206,-532.433 429.367,-565.457"/>
<polygon fill="black" stroke="black" points="425.868,-565.832 429.417,-575.815 432.868,-565.798 425.868,-565.832"/>
</g>
<!-- devstack&#45;vagrant -->
<g id="node240" class="node"><title>devstack-vagrant</title>
<ellipse fill="none" stroke="black" cx="576.371" cy="-490.005" rx="55.1467" ry="18"/>
<text text-anchor="middle" x="576.371" y="-487.205" font-family="Times,serif" font-size="11.00">devstack-vagrant</text>
</g>
<!-- Quality Assurance&#45;&gt;devstack&#45;vagrant -->
<g id="edge228" class="edge"><title>Quality Assurance-&gt;devstack-vagrant</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M468.678,-448.632C487.907,-456.02 511.051,-464.911 530.947,-472.554"/>
<polygon fill="black" stroke="black" points="529.832,-475.875 540.422,-476.194 532.342,-469.341 529.832,-475.875"/>
</g>
<!-- eslint&#45;config&#45;openstack -->
<g id="node241" class="node"><title>eslint-config-openstack</title>
<ellipse fill="none" stroke="black" cx="276.161" cy="-615.098" rx="72.3214" ry="18"/>
<text text-anchor="middle" x="276.161" y="-612.298" font-family="Times,serif" font-size="11.00">eslint-config-openstack</text>
</g>
<!-- Quality Assurance&#45;&gt;eslint&#45;config&#45;openstack -->
<g id="edge229" class="edge"><title>Quality Assurance-&gt;eslint-config-openstack</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M413.816,-451.047C386.701,-483.362 329.211,-551.875 297.786,-589.326"/>
<polygon fill="black" stroke="black" points="294.874,-587.351 291.127,-597.262 300.236,-591.851 294.874,-587.351"/>
</g>
<!-- grenade -->
<g id="node242" class="node"><title>grenade</title>
<ellipse fill="none" stroke="black" cx="288.265" cy="-356.494" rx="31.0408" ry="18"/>
<text text-anchor="middle" x="288.265" y="-353.694" font-family="Times,serif" font-size="11.00">grenade</text>
</g>
<!-- Quality Assurance&#45;&gt;grenade -->
<g id="edge230" class="edge"><title>Quality Assurance-&gt;grenade</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M398.245,-416.621C375.167,-404.004 343.55,-386.719 320.138,-373.919"/>
<polygon fill="black" stroke="black" points="321.74,-370.806 311.287,-369.08 318.382,-376.948 321.74,-370.806"/>
</g>
<!-- hacking -->
<g id="node243" class="node"><title>hacking</title>
<ellipse fill="none" stroke="black" cx="749.415" cy="-250.025" rx="30.8374" ry="18"/>
<text text-anchor="middle" x="749.415" y="-247.225" font-family="Times,serif" font-size="11.00">hacking</text>
</g>
<!-- Quality Assurance&#45;&gt;hacking -->
<g id="edge231" class="edge"><title>Quality Assurance-&gt;hacking</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M458.032,-416.534C518.478,-381.992 656.492,-303.125 718.382,-267.758"/>
<polygon fill="black" stroke="black" points="720.345,-270.668 727.291,-262.668 716.872,-264.59 720.345,-270.668"/>
</g>
<!-- openstack&#45;health -->
<g id="node244" class="node"><title>openstack-health</title>
<ellipse fill="none" stroke="black" cx="273.41" cy="-228.067" rx="55.1467" ry="18"/>
<text text-anchor="middle" x="273.41" y="-225.267" font-family="Times,serif" font-size="11.00">openstack-health</text>
</g>
<!-- Quality Assurance&#45;&gt;openstack&#45;health -->
<g id="edge232" class="edge"><title>Quality Assurance-&gt;openstack-health</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M415.211,-415.43C387.662,-379.029 324.91,-296.114 292.929,-253.858"/>
<polygon fill="black" stroke="black" points="295.605,-251.594 286.779,-245.732 290.023,-255.818 295.605,-251.594"/>
</g>
<!-- os&#45;testr -->
<g id="node245" class="node"><title>os-testr</title>
<ellipse fill="none" stroke="black" cx="592.658" cy="-222" rx="30.1339" ry="18"/>
<text text-anchor="middle" x="592.658" y="-219.2" font-family="Times,serif" font-size="11.00">os-testr</text>
</g>
<!-- Quality Assurance&#45;&gt;os&#45;testr -->
<g id="edge233" class="edge"><title>Quality Assurance-&gt;os-testr</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M436.39,-415.31C444.663,-396.56 458.68,-366.568 473.663,-342.267 498.53,-301.936 539.306,-264.679 566.068,-242.636"/>
<polygon fill="black" stroke="black" points="568.325,-245.312 573.891,-236.297 563.918,-239.873 568.325,-245.312"/>
</g>
<!-- qa&#45;specs -->
<g id="node246" class="node"><title>qa-specs</title>
<ellipse fill="none" stroke="black" cx="508.937" cy="-342.351" rx="33.8507" ry="18"/>
<text text-anchor="middle" x="508.937" y="-339.551" font-family="Times,serif" font-size="11.00">qa-specs</text>
</g>
<!-- Quality Assurance&#45;&gt;qa&#45;specs -->
<g id="edge234" class="edge"><title>Quality Assurance-&gt;qa-specs</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M444.57,-415.317C456.934,-401.301 474.225,-381.7 487.773,-366.343"/>
<polygon fill="black" stroke="black" points="490.48,-368.565 494.47,-358.75 485.23,-363.934 490.48,-368.565"/>
</g>
<!-- stackviz -->
<g id="node247" class="node"><title>stackviz</title>
<ellipse fill="none" stroke="black" cx="275.542" cy="-479.406" rx="31.7423" ry="18"/>
<text text-anchor="middle" x="275.542" y="-476.606" font-family="Times,serif" font-size="11.00">stackviz</text>
</g>
<!-- Quality Assurance&#45;&gt;stackviz -->
<g id="edge235" class="edge"><title>Quality Assurance-&gt;stackviz</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M381.513,-447.498C359.756,-454.049 334.271,-461.723 313.746,-467.903"/>
<polygon fill="black" stroke="black" points="312.673,-464.571 304.107,-470.805 314.691,-471.273 312.673,-464.571"/>
</g>
<!-- tempest -->
<g id="node248" class="node"><title>tempest</title>
<ellipse fill="none" stroke="black" cx="752.095" cy="-436.923" rx="30.8374" ry="18"/>
<text text-anchor="middle" x="752.095" y="-434.123" font-family="Times,serif" font-size="11.00">tempest</text>
</g>
<!-- Quality Assurance&#45;&gt;tempest -->
<g id="edge236" class="edge"><title>Quality Assurance-&gt;tempest</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M504.947,-434.141C569.408,-434.866 659.3,-435.878 711.025,-436.461"/>
<polygon fill="black" stroke="black" points="711.112,-439.962 721.151,-436.575 711.191,-432.962 711.112,-439.962"/>
</g>
<!-- tempest&#45;lib -->
<g id="node249" class="node"><title>tempest-lib</title>
<ellipse fill="none" stroke="black" cx="737.133" cy="-601.645" rx="39.8775" ry="18"/>
<text text-anchor="middle" x="737.133" y="-598.845" font-family="Times,serif" font-size="11.00">tempest-lib</text>
</g>
<!-- Quality Assurance&#45;&gt;tempest&#45;lib -->
<g id="edge237" class="edge"><title>Quality Assurance-&gt;tempest-lib</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M452.889,-450.46C474.286,-465.354 506.607,-487.088 536.076,-503.849 591.209,-535.204 657.873,-566.375 698.886,-584.823"/>
<polygon fill="black" stroke="black" points="697.679,-588.117 708.236,-589.008 700.539,-581.728 697.679,-588.117"/>
</g>
<!-- tempest&#45;plugin&#45;cookiecutter -->
<g id="node250" class="node"><title>tempest-plugin-cookiecutter</title>
<ellipse fill="none" stroke="black" cx="572.758" cy="-621.804" rx="84.375" ry="18"/>
<text text-anchor="middle" x="572.758" y="-619.004" font-family="Times,serif" font-size="11.00">tempest-plugin-cookiecutter</text>
</g>
<!-- Quality Assurance&#45;&gt;tempest&#45;plugin&#45;cookiecutter -->
<g id="edge238" class="edge"><title>Quality Assurance-&gt;tempest-plugin-cookiecutter</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M442.273,-451.018C467.795,-484.422 523.094,-556.801 552.85,-595.746"/>
<polygon fill="black" stroke="black" points="550.286,-598.157 559.139,-603.978 555.849,-593.907 550.286,-598.157"/>
</g>
<!-- RefStack -->
<g id="node251" class="node"><title>RefStack</title>
<ellipse fill="none" stroke="black" cx="123.665" cy="-2942.21" rx="42.7926" ry="18"/>
<text text-anchor="middle" x="123.665" y="-2938.51" font-family="Times,serif" font-size="14.00">RefStack</text>
</g>
<!-- refstack -->
<g id="node252" class="node"><title>refstack</title>
<ellipse fill="none" stroke="black" cx="167.561" cy="-2999.63" rx="31.7423" ry="18"/>
<text text-anchor="middle" x="167.561" y="-2996.83" font-family="Times,serif" font-size="11.00">refstack</text>
</g>
<!-- RefStack&#45;&gt;refstack -->
<g id="edge239" class="edge"><title>RefStack-&gt;refstack</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M136.835,-2959.43C140.459,-2964.17 144.465,-2969.41 148.355,-2974.5"/>
<polygon fill="black" stroke="black" points="145.848,-2976.99 154.702,-2982.81 151.409,-2972.73 145.848,-2976.99"/>
</g>
<!-- refstack&#45;client -->
<g id="node253" class="node"><title>refstack-client</title>
<ellipse fill="none" stroke="black" cx="99.7084" cy="-2874" rx="48.9176" ry="18"/>
<text text-anchor="middle" x="99.7084" y="-2871.2" font-family="Times,serif" font-size="11.00">refstack-client</text>
</g>
<!-- RefStack&#45;&gt;refstack&#45;client -->
<g id="edge240" class="edge"><title>RefStack-&gt;refstack-client</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M117.371,-2924.29C114.942,-2917.37 112.107,-2909.3 109.428,-2901.67"/>
<polygon fill="black" stroke="black" points="112.66,-2900.31 106.044,-2892.04 106.056,-2902.63 112.66,-2900.31"/>
</g>
<!-- Release Cycle Management -->
<g id="node254" class="node"><title>Release Cycle Management</title>
<ellipse fill="none" stroke="black" cx="2515.53" cy="-3087.47" rx="110.48" ry="18"/>
<text text-anchor="middle" x="2515.53" y="-3083.77" font-family="Times,serif" font-size="14.00">Release Cycle Management</text>
</g>
<!-- release&#45;tools -->
<g id="node255" class="node"><title>release-tools</title>
<ellipse fill="none" stroke="black" cx="2589.68" cy="-3030.55" rx="44.498" ry="18"/>
<text text-anchor="middle" x="2589.68" y="-3027.75" font-family="Times,serif" font-size="11.00">release-tools</text>
</g>
<!-- Release Cycle Management&#45;&gt;release&#45;tools -->
<g id="edge241" class="edge"><title>Release Cycle Management-&gt;release-tools</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2538.58,-3069.77C2545.55,-3064.42 2553.29,-3058.48 2560.6,-3052.87"/>
<polygon fill="black" stroke="black" points="2563.1,-3055.36 2568.9,-3046.5 2558.84,-3049.81 2563.1,-3055.36"/>
</g>
<!-- releases -->
<g id="node256" class="node"><title>releases</title>
<ellipse fill="none" stroke="black" cx="2448.69" cy="-3027" rx="31.7423" ry="18"/>
<text text-anchor="middle" x="2448.69" y="-3024.2" font-family="Times,serif" font-size="11.00">releases</text>
</g>
<!-- Release Cycle Management&#45;&gt;releases -->
<g id="edge242" class="edge"><title>Release Cycle Management-&gt;releases</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2495.84,-3069.66C2488.82,-3063.31 2480.83,-3056.08 2473.45,-3049.4"/>
<polygon fill="black" stroke="black" points="2475.51,-3046.55 2465.75,-3042.44 2470.82,-3051.74 2475.51,-3046.55"/>
</g>
<!-- reno -->
<g id="node257" class="node"><title>reno</title>
<ellipse fill="none" stroke="black" cx="2424" cy="-3131.71" rx="27" ry="18"/>
<text text-anchor="middle" x="2424" y="-3128.91" font-family="Times,serif" font-size="11.00">reno</text>
</g>
<!-- Release Cycle Management&#45;&gt;reno -->
<g id="edge243" class="edge"><title>Release Cycle Management-&gt;reno</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2480.14,-3104.58C2471.9,-3108.56 2463.18,-3112.78 2455.14,-3116.66"/>
<polygon fill="black" stroke="black" points="2453.55,-3113.54 2446.07,-3121.05 2456.6,-3119.84 2453.55,-3113.54"/>
</g>
<!-- requirements -->
<g id="node258" class="node"><title>requirements</title>
<ellipse fill="none" stroke="black" cx="2606.53" cy="-3139.04" rx="44.498" ry="18"/>
<text text-anchor="middle" x="2606.53" y="-3136.24" font-family="Times,serif" font-size="11.00">requirements</text>
</g>
<!-- Release Cycle Management&#45;&gt;requirements -->
<g id="edge244" class="edge"><title>Release Cycle Management-&gt;requirements</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2546.09,-3104.79C2554.28,-3109.43 2563.19,-3114.48 2571.6,-3119.25"/>
<polygon fill="black" stroke="black" points="2570.04,-3122.38 2580.46,-3124.27 2573.49,-3116.29 2570.04,-3122.38"/>
</g>
<!-- specs&#45;cookiecutter -->
<g id="node259" class="node"><title>specs-cookiecutter</title>
<ellipse fill="none" stroke="black" cx="2507.87" cy="-3171.32" rx="60.2679" ry="18"/>
<text text-anchor="middle" x="2507.87" y="-3168.52" font-family="Times,serif" font-size="11.00">specs-cookiecutter</text>
</g>
<!-- Release Cycle Management&#45;&gt;specs&#45;cookiecutter -->
<g id="edge245" class="edge"><title>Release Cycle Management-&gt;specs-cookiecutter</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2513.87,-3105.67C2512.87,-3116.54 2511.59,-3130.6 2510.47,-3142.91"/>
<polygon fill="black" stroke="black" points="2506.95,-3142.88 2509.53,-3153.16 2513.92,-3143.52 2506.95,-3142.88"/>
</g>
<!-- Security -->
<g id="node260" class="node"><title>Security</title>
<ellipse fill="none" stroke="black" cx="156.339" cy="-1259.38" rx="40.0939" ry="18"/>
<text text-anchor="middle" x="156.339" y="-1255.68" font-family="Times,serif" font-size="14.00">Security</text>
</g>
<!-- anchor -->
<g id="node261" class="node"><title>anchor</title>
<ellipse fill="none" stroke="black" cx="208.202" cy="-1196.83" rx="28.0277" ry="18"/>
<text text-anchor="middle" x="208.202" y="-1194.03" font-family="Times,serif" font-size="11.00">anchor</text>
</g>
<!-- Security&#45;&gt;anchor -->
<g id="edge246" class="edge"><title>Security-&gt;anchor</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M170.511,-1242.29C175.943,-1235.74 182.249,-1228.13 188.13,-1221.04"/>
<polygon fill="black" stroke="black" points="191.073,-1222.97 194.761,-1213.04 185.684,-1218.51 191.073,-1222.97"/>
</g>
<!-- bandit -->
<g id="node262" class="node"><title>bandit</title>
<ellipse fill="none" stroke="black" cx="112.583" cy="-1191" rx="27" ry="18"/>
<text text-anchor="middle" x="112.583" y="-1188.2" font-family="Times,serif" font-size="11.00">bandit</text>
</g>
<!-- Security&#45;&gt;bandit -->
<g id="edge247" class="edge"><title>Security-&gt;bandit</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M145.071,-1241.77C140.109,-1234.02 134.187,-1224.76 128.767,-1216.29"/>
<polygon fill="black" stroke="black" points="131.699,-1214.38 123.36,-1207.84 125.802,-1218.15 131.699,-1214.38"/>
</g>
<!-- ossa -->
<g id="node263" class="node"><title>ossa</title>
<ellipse fill="none" stroke="black" cx="78" cy="-1280.72" rx="27" ry="18"/>
<text text-anchor="middle" x="78" y="-1277.92" font-family="Times,serif" font-size="11.00">ossa</text>
</g>
<!-- Security&#45;&gt;ossa -->
<g id="edge248" class="edge"><title>Security-&gt;ossa</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M121.75,-1268.8C118.83,-1269.6 115.875,-1270.4 112.952,-1271.2"/>
<polygon fill="black" stroke="black" points="111.96,-1267.84 103.232,-1273.85 113.8,-1274.6 111.96,-1267.84"/>
</g>
<!-- security&#45;doc -->
<g id="node264" class="node"><title>security-doc</title>
<ellipse fill="none" stroke="black" cx="232.129" cy="-1288.84" rx="42.8909" ry="18"/>
<text text-anchor="middle" x="232.129" y="-1286.04" font-family="Times,serif" font-size="11.00">security-doc</text>
</g>
<!-- Security&#45;&gt;security&#45;doc -->
<g id="edge249" class="edge"><title>Security-&gt;security-doc</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M187.166,-1271.36C188.411,-1271.84 189.666,-1272.33 190.926,-1272.82"/>
<polygon fill="black" stroke="black" points="190.002,-1276.22 200.591,-1276.58 192.538,-1269.69 190.002,-1276.22"/>
</g>
<!-- security&#45;specs -->
<g id="node265" class="node"><title>security-specs</title>
<ellipse fill="none" stroke="black" cx="152.509" cy="-1340.56" rx="48.2143" ry="18"/>
<text text-anchor="middle" x="152.509" y="-1337.76" font-family="Times,serif" font-size="11.00">security-specs</text>
</g>
<!-- Security&#45;&gt;security&#45;specs -->
<g id="edge250" class="edge"><title>Security-&gt;security-specs</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M155.489,-1277.4C155.006,-1287.63 154.391,-1300.66 153.846,-1312.23"/>
<polygon fill="black" stroke="black" points="150.345,-1312.16 153.37,-1322.32 157.337,-1312.49 150.345,-1312.16"/>
</g>
<!-- astara -->
<g id="node266" class="node"><title>astara</title>
<ellipse fill="none" stroke="black" cx="3132.06" cy="-3146.21" rx="31.3957" ry="18"/>
<text text-anchor="middle" x="3132.06" y="-3142.51" font-family="Times,serif" font-size="14.00">astara</text>
</g>
<!-- astara&#45;appliance -->
<g id="node267" class="node"><title>astara-appliance</title>
<ellipse fill="none" stroke="black" cx="3175.96" cy="-3203.63" rx="54.2411" ry="18"/>
<text text-anchor="middle" x="3175.96" y="-3200.83" font-family="Times,serif" font-size="11.00">astara-appliance</text>
</g>
<!-- astara&#45;&gt;astara&#45;appliance -->
<g id="edge251" class="edge"><title>astara-&gt;astara-appliance</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3144.76,-3162.81C3148.33,-3167.48 3152.3,-3172.67 3156.17,-3177.74"/>
<polygon fill="black" stroke="black" points="3153.67,-3180.24 3162.53,-3186.05 3159.23,-3175.98 3153.67,-3180.24"/>
</g>
<!-- astara&#45;horizon -->
<g id="node268" class="node"><title>astara-horizon</title>
<ellipse fill="none" stroke="black" cx="3108.11" cy="-3078" rx="48.2143" ry="18"/>
<text text-anchor="middle" x="3108.11" y="-3075.2" font-family="Times,serif" font-size="11.00">astara-horizon</text>
</g>
<!-- astara&#45;&gt;astara&#45;horizon -->
<g id="edge252" class="edge"><title>astara-&gt;astara-horizon</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3125.77,-3128.29C3123.34,-3121.37 3120.51,-3113.3 3117.83,-3105.67"/>
<polygon fill="black" stroke="black" points="3121.06,-3104.31 3114.44,-3096.04 3114.45,-3106.63 3121.06,-3104.31"/>
</g>
<!-- barbican -->
<g id="node269" class="node"><title>barbican</title>
<ellipse fill="none" stroke="black" cx="871.522" cy="-130.437" rx="40.8928" ry="18"/>
<text text-anchor="middle" x="871.522" y="-126.737" font-family="Times,serif" font-size="14.00">barbican</text>
</g>
<!-- castellan -->
<g id="node270" class="node"><title>castellan</title>
<ellipse fill="none" stroke="black" cx="943.213" cy="-85.9331" rx="33.8507" ry="18"/>
<text text-anchor="middle" x="943.213" y="-83.1331" font-family="Times,serif" font-size="11.00">castellan</text>
</g>
<!-- barbican&#45;&gt;castellan -->
<g id="edge253" class="edge"><title>barbican-&gt;castellan</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M895.394,-115.618C900.847,-112.233 906.717,-108.588 912.415,-105.052"/>
<polygon fill="black" stroke="black" points="914.489,-107.883 921.139,-99.6356 910.797,-101.936 914.489,-107.883"/>
</g>
<!-- kite -->
<g id="node271" class="node"><title>kite</title>
<ellipse fill="none" stroke="black" cx="800.392" cy="-69" rx="27" ry="18"/>
<text text-anchor="middle" x="800.392" y="-66.2" font-family="Times,serif" font-size="11.00">kite</text>
</g>
<!-- barbican&#45;&gt;kite -->
<g id="edge254" class="edge"><title>barbican-&gt;kite</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M852.833,-114.295C844.301,-106.926 834.082,-98.0995 824.941,-90.2037"/>
<polygon fill="black" stroke="black" points="827.11,-87.4524 817.254,-83.5646 822.534,-92.75 827.11,-87.4524"/>
</g>
<!-- python&#45;barbicanclient -->
<g id="node272" class="node"><title>python-barbicanclient</title>
<ellipse fill="none" stroke="black" cx="781.951" cy="-172.048" rx="67.9024" ry="18"/>
<text text-anchor="middle" x="781.951" y="-169.248" font-family="Times,serif" font-size="11.00">python-barbicanclient</text>
</g>
<!-- barbican&#45;&gt;python&#45;barbicanclient -->
<g id="edge255" class="edge"><title>barbican-&gt;python-barbicanclient</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M843.181,-143.603C837.463,-146.259 831.33,-149.108 825.234,-151.94"/>
<polygon fill="black" stroke="black" points="823.345,-148.959 815.75,-156.346 826.294,-155.307 823.345,-148.959"/>
</g>
<!-- python&#45;kiteclient -->
<g id="node273" class="node"><title>python-kiteclient</title>
<ellipse fill="none" stroke="black" cx="927.57" cy="-191.339" rx="54.9444" ry="18"/>
<text text-anchor="middle" x="927.57" y="-188.539" font-family="Times,serif" font-size="11.00">python-kiteclient</text>
</g>
<!-- barbican&#45;&gt;python&#45;kiteclient -->
<g id="edge256" class="edge"><title>barbican-&gt;python-kiteclient</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M887.134,-147.401C892.629,-153.372 898.921,-160.208 904.879,-166.682"/>
<polygon fill="black" stroke="black" points="902.305,-169.054 911.652,-174.042 907.455,-164.314 902.305,-169.054"/>
</g>
<!-- ceilometer -->
<g id="node274" class="node"><title>ceilometer</title>
<ellipse fill="none" stroke="black" cx="2834.69" cy="-2226.62" rx="48.1917" ry="18"/>
<text text-anchor="middle" x="2834.69" y="-2222.92" font-family="Times,serif" font-size="14.00">ceilometer</text>
</g>
<!-- aodh -->
<g id="node275" class="node"><title>aodh</title>
<ellipse fill="none" stroke="black" cx="2918.41" cy="-2162.94" rx="27" ry="18"/>
<text text-anchor="middle" x="2918.41" y="-2160.14" font-family="Times,serif" font-size="11.00">aodh</text>
</g>
<!-- ceilometer&#45;&gt;aodh -->
<g id="edge257" class="edge"><title>ceilometer-&gt;aodh</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2856.25,-2210.22C2867.32,-2201.8 2880.89,-2191.48 2892.53,-2182.63"/>
<polygon fill="black" stroke="black" points="2894.75,-2185.33 2900.6,-2176.49 2890.52,-2179.76 2894.75,-2185.33"/>
</g>
<!-- ceilometermiddleware -->
<g id="node276" class="node"><title>ceilometermiddleware</title>
<ellipse fill="none" stroke="black" cx="2772.76" cy="-2160" rx="69.5112" ry="18"/>
<text text-anchor="middle" x="2772.76" y="-2157.2" font-family="Times,serif" font-size="11.00">ceilometermiddleware</text>
</g>
<!-- ceilometer&#45;&gt;ceilometermiddleware -->
<g id="edge258" class="edge"><title>ceilometer-&gt;ceilometermiddleware</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2818.74,-2209.46C2811.97,-2202.18 2803.93,-2193.53 2796.48,-2185.52"/>
<polygon fill="black" stroke="black" points="2798.67,-2182.74 2789.3,-2177.8 2793.54,-2187.5 2798.67,-2182.74"/>
</g>
<!-- gnocchi -->
<g id="node277" class="node"><title>gnocchi</title>
<ellipse fill="none" stroke="black" cx="2743.72" cy="-2259.4" rx="30.8374" ry="18"/>
<text text-anchor="middle" x="2743.72" y="-2256.6" font-family="Times,serif" font-size="11.00">gnocchi</text>
</g>
<!-- ceilometer&#45;&gt;gnocchi -->
<g id="edge259" class="edge"><title>ceilometer-&gt;gnocchi</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2800.04,-2239.11C2793.36,-2241.51 2786.35,-2244.04 2779.63,-2246.46"/>
<polygon fill="black" stroke="black" points="2778.29,-2243.22 2770.06,-2249.9 2780.66,-2249.81 2778.29,-2243.22"/>
</g>
<!-- python&#45;ceilometerclient -->
<g id="node278" class="node"><title>python-ceilometerclient</title>
<ellipse fill="none" stroke="black" cx="2942.24" cy="-2266.81" rx="73.2267" ry="18"/>
<text text-anchor="middle" x="2942.24" y="-2264.01" font-family="Times,serif" font-size="11.00">python-ceilometerclient</text>
</g>
<!-- ceilometer&#45;&gt;python&#45;ceilometerclient -->
<g id="edge260" class="edge"><title>ceilometer-&gt;python-ceilometerclient</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2869.01,-2239.45C2876.44,-2242.22 2884.45,-2245.21 2892.34,-2248.16"/>
<polygon fill="black" stroke="black" points="2891.27,-2251.5 2901.86,-2251.72 2893.72,-2244.94 2891.27,-2251.5"/>
</g>
<!-- python&#45;gnocchiclient -->
<g id="node279" class="node"><title>python-gnocchiclient</title>
<ellipse fill="none" stroke="black" cx="2828.36" cy="-2309.03" rx="65.5917" ry="18"/>
<text text-anchor="middle" x="2828.36" y="-2306.23" font-family="Times,serif" font-size="11.00">python-gnocchiclient</text>
</g>
<!-- ceilometer&#45;&gt;python&#45;gnocchiclient -->
<g id="edge261" class="edge"><title>ceilometer-&gt;python-gnocchiclient</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2833.28,-2244.91C2832.48,-2255.36 2831.45,-2268.71 2830.55,-2280.51"/>
<polygon fill="black" stroke="black" points="2827.03,-2280.55 2829.76,-2290.79 2834.01,-2281.09 2827.03,-2280.55"/>
</g>
<!-- cinder -->
<g id="node280" class="node"><title>cinder</title>
<ellipse fill="none" stroke="black" cx="2941.29" cy="-3146.21" rx="32.4942" ry="18"/>
<text text-anchor="middle" x="2941.29" y="-3142.51" font-family="Times,serif" font-size="14.00">cinder</text>
</g>
<!-- os&#45;brick -->
<g id="node281" class="node"><title>os-brick</title>
<ellipse fill="none" stroke="black" cx="2985.19" cy="-3203.63" rx="31.7423" ry="18"/>
<text text-anchor="middle" x="2985.19" y="-3200.83" font-family="Times,serif" font-size="11.00">os-brick</text>
</g>
<!-- cinder&#45;&gt;os&#45;brick -->
<g id="edge262" class="edge"><title>cinder-&gt;os-brick</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2953.99,-3162.81C2957.78,-3167.77 2962.02,-3173.31 2966.12,-3178.68"/>
<polygon fill="black" stroke="black" points="2963.51,-3181.04 2972.37,-3186.86 2969.08,-3176.79 2963.51,-3181.04"/>
</g>
<!-- python&#45;cinderclient -->
<g id="node282" class="node"><title>python-cinderclient</title>
<ellipse fill="none" stroke="black" cx="2917.34" cy="-3078" rx="61.1733" ry="18"/>
<text text-anchor="middle" x="2917.34" y="-3075.2" font-family="Times,serif" font-size="11.00">python-cinderclient</text>
</g>
<!-- cinder&#45;&gt;python&#45;cinderclient -->
<g id="edge263" class="edge"><title>cinder-&gt;python-cinderclient</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2935,-3128.29C2932.57,-3121.37 2929.73,-3113.3 2927.06,-3105.67"/>
<polygon fill="black" stroke="black" points="2930.29,-3104.31 2923.67,-3096.04 2923.68,-3106.63 2930.29,-3104.31"/>
</g>
<!-- cloudkitty -->
<g id="node283" class="node"><title>cloudkitty</title>
<ellipse fill="none" stroke="black" cx="196.915" cy="-1004.21" rx="46.2923" ry="18"/>
<text text-anchor="middle" x="196.915" y="-1000.51" font-family="Times,serif" font-size="14.00">cloudkitty</text>
</g>
<!-- cloudkitty&#45;dashboard -->
<g id="node284" class="node"><title>cloudkitty-dashboard</title>
<ellipse fill="none" stroke="black" cx="240.81" cy="-1061.63" rx="65.5917" ry="18"/>
<text text-anchor="middle" x="240.81" y="-1058.83" font-family="Times,serif" font-size="11.00">cloudkitty-dashboard</text>
</g>
<!-- cloudkitty&#45;&gt;cloudkitty&#45;dashboard -->
<g id="edge264" class="edge"><title>cloudkitty-&gt;cloudkitty-dashboard</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M210.323,-1021.75C213.664,-1026.12 217.317,-1030.89 220.898,-1035.58"/>
<polygon fill="black" stroke="black" points="218.327,-1037.98 227.181,-1043.8 223.888,-1033.73 218.327,-1037.98"/>
</g>
<!-- python&#45;cloudkittyclient -->
<g id="node285" class="node"><title>python-cloudkittyclient</title>
<ellipse fill="none" stroke="black" cx="172.958" cy="-936" rx="70.9157" ry="18"/>
<text text-anchor="middle" x="172.958" y="-933.2" font-family="Times,serif" font-size="11.00">python-cloudkittyclient</text>
</g>
<!-- cloudkitty&#45;&gt;python&#45;cloudkittyclient -->
<g id="edge265" class="edge"><title>cloudkitty-&gt;python-cloudkittyclient</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M190.62,-986.286C188.191,-979.37 185.356,-971.298 182.677,-963.672"/>
<polygon fill="black" stroke="black" points="185.91,-962.313 179.293,-954.038 179.305,-964.632 185.91,-962.313"/>
</g>
<!-- congress -->
<g id="node286" class="node"><title>congress</title>
<ellipse fill="none" stroke="black" cx="2540.6" cy="-936.003" rx="41.6928" ry="18"/>
<text text-anchor="middle" x="2540.6" y="-932.303" font-family="Times,serif" font-size="14.00">congress</text>
</g>
<!-- python&#45;congressclient -->
<g id="node287" class="node"><title>python-congressclient</title>
<ellipse fill="none" stroke="black" cx="2666.21" cy="-936" rx="67.9024" ry="18"/>
<text text-anchor="middle" x="2666.21" y="-933.2" font-family="Times,serif" font-size="11.00">python-congressclient</text>
</g>
<!-- congress&#45;&gt;python&#45;congressclient -->
<g id="edge266" class="edge"><title>congress-&gt;python-congressclient</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2582.43,-936.002C2584.14,-936.002 2585.88,-936.002 2587.64,-936.002"/>
<polygon fill="black" stroke="black" points="2587.87,-939.502 2597.87,-936.002 2587.87,-932.502 2587.87,-939.502"/>
</g>
<!-- cue -->
<g id="node288" class="node"><title>cue</title>
<ellipse fill="none" stroke="black" cx="78.0774" cy="-749.206" rx="27" ry="18"/>
<text text-anchor="middle" x="78.0774" y="-745.506" font-family="Times,serif" font-size="14.00">cue</text>
</g>
<!-- cue&#45;dashboard -->
<g id="node289" class="node"><title>cue-dashboard</title>
<ellipse fill="none" stroke="black" cx="121.973" cy="-806.625" rx="48.9176" ry="18"/>
<text text-anchor="middle" x="121.973" y="-803.825" font-family="Times,serif" font-size="11.00">cue-dashboard</text>
</g>
<!-- cue&#45;&gt;cue&#45;dashboard -->
<g id="edge267" class="edge"><title>cue-&gt;cue-dashboard</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M90.5386,-765.507C94.2646,-770.381 98.4421,-775.845 102.505,-781.16"/>
<polygon fill="black" stroke="black" points="99.8594,-783.462 108.713,-789.281 105.421,-779.211 99.8594,-783.462"/>
</g>
<!-- python&#45;cueclient -->
<g id="node290" class="node"><title>python-cueclient</title>
<ellipse fill="none" stroke="black" cx="54.1204" cy="-681" rx="54.2411" ry="18"/>
<text text-anchor="middle" x="54.1204" y="-678.2" font-family="Times,serif" font-size="11.00">python-cueclient</text>
</g>
<!-- cue&#45;&gt;python&#45;cueclient -->
<g id="edge268" class="edge"><title>cue-&gt;python-cueclient</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M71.9079,-731.642C69.4514,-724.648 66.5648,-716.43 63.8401,-708.672"/>
<polygon fill="black" stroke="black" points="67.136,-707.494 60.5198,-699.219 60.5316,-709.814 67.136,-707.494"/>
</g>
<!-- designate -->
<g id="node291" class="node"><title>designate</title>
<ellipse fill="none" stroke="black" cx="1878.71" cy="-86.2063" rx="44.393" ry="18"/>
<text text-anchor="middle" x="1878.71" y="-82.5063" font-family="Times,serif" font-size="14.00">designate</text>
</g>
<!-- designate&#45;dashboard -->
<g id="node292" class="node"><title>designate-dashboard</title>
<ellipse fill="none" stroke="black" cx="1922.61" cy="-143.625" rx="64.1867" ry="18"/>
<text text-anchor="middle" x="1922.61" y="-140.825" font-family="Times,serif" font-size="11.00">designate-dashboard</text>
</g>
<!-- designate&#45;&gt;designate&#45;dashboard -->
<g id="edge269" class="edge"><title>designate-&gt;designate-dashboard</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1891.88,-103.434C1895.38,-108.005 1899.23,-113.041 1902.98,-117.957"/>
<polygon fill="black" stroke="black" points="1900.29,-120.194 1909.14,-126.013 1905.85,-115.942 1900.29,-120.194"/>
</g>
<!-- python&#45;designateclient -->
<g id="node293" class="node"><title>python-designateclient</title>
<ellipse fill="none" stroke="black" cx="1854.76" cy="-18" rx="69.5112" ry="18"/>
<text text-anchor="middle" x="1854.76" y="-15.2" font-family="Times,serif" font-size="11.00">python-designateclient</text>
</g>
<!-- designate&#45;&gt;python&#45;designateclient -->
<g id="edge270" class="edge"><title>designate-&gt;python-designateclient</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1872.42,-68.2859C1869.99,-61.3701 1867.15,-53.2985 1864.47,-45.6721"/>
<polygon fill="black" stroke="black" points="1867.71,-44.3126 1861.09,-36.0375 1861.1,-46.6324 1867.71,-44.3126"/>
</g>
<!-- glance -->
<g id="node294" class="node"><title>glance</title>
<ellipse fill="none" stroke="black" cx="86.4962" cy="-443.206" rx="33.5952" ry="18"/>
<text text-anchor="middle" x="86.4962" y="-439.506" font-family="Times,serif" font-size="14.00">glance</text>
</g>
<!-- glance_store -->
<g id="node295" class="node"><title>glance_store</title>
<ellipse fill="none" stroke="black" cx="130.391" cy="-500.625" rx="43.7956" ry="18"/>
<text text-anchor="middle" x="130.391" y="-497.825" font-family="Times,serif" font-size="11.00">glance_store</text>
</g>
<!-- glance&#45;&gt;glance_store -->
<g id="edge271" class="edge"><title>glance-&gt;glance_store</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M99.4288,-460.123C102.993,-464.786 106.941,-469.95 110.792,-474.987"/>
<polygon fill="black" stroke="black" points="108.241,-477.413 117.095,-483.232 113.802,-473.162 108.241,-477.413"/>
</g>
<!-- python&#45;glanceclient -->
<g id="node296" class="node"><title>python-glanceclient</title>
<ellipse fill="none" stroke="black" cx="62.5391" cy="-375" rx="62.5783" ry="18"/>
<text text-anchor="middle" x="62.5391" y="-372.2" font-family="Times,serif" font-size="11.00">python-glanceclient</text>
</g>
<!-- glance&#45;&gt;python&#45;glanceclient -->
<g id="edge272" class="edge"><title>glance-&gt;python-glanceclient</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M80.2017,-425.286C77.7726,-418.37 74.9375,-410.298 72.2588,-402.672"/>
<polygon fill="black" stroke="black" points="75.4909,-401.313 68.8747,-393.038 68.8865,-403.632 75.4909,-401.313"/>
</g>
<!-- heat -->
<g id="node297" class="node"><title>heat</title>
<ellipse fill="none" stroke="black" cx="1650.06" cy="-202.514" rx="27" ry="18"/>
<text text-anchor="middle" x="1650.06" y="-198.814" font-family="Times,serif" font-size="14.00">heat</text>
</g>
<!-- heat&#45;cfnclient -->
<g id="node298" class="node"><title>heat-cfnclient</title>
<ellipse fill="none" stroke="black" cx="1721.45" cy="-161.008" rx="46.8089" ry="18"/>
<text text-anchor="middle" x="1721.45" y="-158.208" font-family="Times,serif" font-size="11.00">heat-cfnclient</text>
</g>
<!-- heat&#45;&gt;heat&#45;cfnclient -->
<g id="edge273" class="edge"><title>heat-&gt;heat-cfnclient</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1670.71,-190.508C1675.67,-187.625 1681.1,-184.466 1686.51,-181.32"/>
<polygon fill="black" stroke="black" points="1688.62,-184.142 1695.51,-176.09 1685.1,-178.09 1688.62,-184.142"/>
</g>
<!-- heat&#45;cfntools -->
<g id="node299" class="node"><title>heat-cfntools</title>
<ellipse fill="none" stroke="black" cx="1649.89" cy="-120" rx="44.498" ry="18"/>
<text text-anchor="middle" x="1649.89" y="-117.2" font-family="Times,serif" font-size="11.00">heat-cfntools</text>
</g>
<!-- heat&#45;&gt;heat&#45;cfntools -->
<g id="edge274" class="edge"><title>heat-&gt;heat-cfntools</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1650.02,-184.201C1650,-173.732 1649.97,-160.373 1649.95,-148.554"/>
<polygon fill="black" stroke="black" points="1653.45,-148.254 1649.93,-138.261 1646.45,-148.268 1653.45,-148.254"/>
</g>
<!-- heat&#45;templates -->
<g id="node300" class="node"><title>heat-templates</title>
<ellipse fill="none" stroke="black" cx="1579.31" cy="-244.962" rx="49.1201" ry="18"/>
<text text-anchor="middle" x="1579.31" y="-242.162" font-family="Times,serif" font-size="11.00">heat-templates</text>
</g>
<!-- heat&#45;&gt;heat&#45;templates -->
<g id="edge275" class="edge"><title>heat-&gt;heat-templates</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1629.97,-214.564C1624.88,-217.62 1619.26,-220.99 1613.68,-224.341"/>
<polygon fill="black" stroke="black" points="1611.78,-221.395 1605.01,-229.541 1615.39,-227.397 1611.78,-221.395"/>
</g>
<!-- heat&#45;translator -->
<g id="node301" class="node"><title>heat-translator</title>
<ellipse fill="none" stroke="black" cx="1722.03" cy="-243.05" rx="48.9176" ry="18"/>
<text text-anchor="middle" x="1722.03" y="-240.25" font-family="Times,serif" font-size="11.00">heat-translator</text>
</g>
<!-- heat&#45;&gt;heat&#45;translator -->
<g id="edge276" class="edge"><title>heat-&gt;heat-translator</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1670.87,-214.238C1675.72,-216.965 1681,-219.943 1686.29,-222.918"/>
<polygon fill="black" stroke="black" points="1684.66,-226.018 1695.09,-227.875 1688.09,-219.919 1684.66,-226.018"/>
</g>
<!-- python&#45;heatclient -->
<g id="node302" class="node"><title>python-heatclient</title>
<ellipse fill="none" stroke="black" cx="1651.49" cy="-285.068" rx="55.8489" ry="18"/>
<text text-anchor="middle" x="1651.49" y="-282.268" font-family="Times,serif" font-size="11.00">python-heatclient</text>
</g>
<!-- heat&#45;&gt;python&#45;heatclient -->
<g id="edge277" class="edge"><title>heat-&gt;python-heatclient</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1650.37,-220.835C1650.56,-231.309 1650.79,-244.675 1651,-256.499"/>
<polygon fill="black" stroke="black" points="1647.5,-256.86 1651.17,-266.797 1654.5,-256.738 1647.5,-256.86"/>
</g>
<!-- tosca&#45;parser -->
<g id="node303" class="node"><title>tosca-parser</title>
<ellipse fill="none" stroke="black" cx="1578.27" cy="-161.896" rx="42.8909" ry="18"/>
<text text-anchor="middle" x="1578.27" y="-159.096" font-family="Times,serif" font-size="11.00">tosca-parser</text>
</g>
<!-- heat&#45;&gt;tosca&#45;parser -->
<g id="edge278" class="edge"><title>heat-&gt;tosca-parser</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1629.29,-190.765C1624.08,-187.813 1618.34,-184.566 1612.65,-181.347"/>
<polygon fill="black" stroke="black" points="1614.26,-178.238 1603.83,-176.359 1610.81,-184.33 1614.26,-178.238"/>
</g>
<!-- horizon -->
<g id="node304" class="node"><title>horizon</title>
<ellipse fill="none" stroke="black" cx="1702.33" cy="-480.905" rx="37.8943" ry="18"/>
<text text-anchor="middle" x="1702.33" y="-477.205" font-family="Times,serif" font-size="14.00">horizon</text>
</g>
<!-- django&#45;openstack&#45;auth&#45;kerberos -->
<g id="node305" class="node"><title>django-openstack-auth-kerberos</title>
<ellipse fill="none" stroke="black" cx="1800.98" cy="-429.323" rx="95.0227" ry="18"/>
<text text-anchor="middle" x="1800.98" y="-426.523" font-family="Times,serif" font-size="11.00">django-openstack-auth-kerberos</text>
</g>
<!-- horizon&#45;&gt;django&#45;openstack&#45;auth&#45;kerberos -->
<g id="edge279" class="edge"><title>horizon-&gt;django-openstack-auth-kerberos</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1727.99,-467.487C1737.53,-462.5 1748.61,-456.705 1759.22,-451.159"/>
<polygon fill="black" stroke="black" points="1761.13,-454.111 1768.37,-446.376 1757.88,-447.908 1761.13,-454.111"/>
</g>
<!-- django_openstack_auth -->
<g id="node306" class="node"><title>django_openstack_auth</title>
<ellipse fill="none" stroke="black" cx="1609.85" cy="-426" rx="71.6184" ry="18"/>
<text text-anchor="middle" x="1609.85" y="-423.2" font-family="Times,serif" font-size="11.00">django_openstack_auth</text>
</g>
<!-- horizon&#45;&gt;django_openstack_auth -->
<g id="edge280" class="edge"><title>horizon-&gt;django_openstack_auth</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1678.51,-466.766C1668.81,-461.007 1657.38,-454.216 1646.65,-447.847"/>
<polygon fill="black" stroke="black" points="1648.24,-444.723 1637.86,-442.627 1644.67,-450.742 1648.24,-444.723"/>
</g>
<!-- horizon&#45;cisco&#45;ui -->
<g id="node307" class="node"><title>horizon-cisco-ui</title>
<ellipse fill="none" stroke="black" cx="1583.52" cy="-543.208" rx="53.5381" ry="18"/>
<text text-anchor="middle" x="1583.52" y="-540.408" font-family="Times,serif" font-size="11.00">horizon-cisco-ui</text>
</g>
<!-- horizon&#45;&gt;horizon&#45;cisco&#45;ui -->
<g id="edge281" class="edge"><title>horizon-&gt;horizon-cisco-ui</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1676.84,-494.271C1660.81,-502.674 1639.84,-513.675 1621.83,-523.117"/>
<polygon fill="black" stroke="black" points="1619.96,-520.147 1612.73,-527.891 1623.21,-526.346 1619.96,-520.147"/>
</g>
<!-- manila&#45;ui -->
<g id="node308" class="node"><title>manila-ui</title>
<ellipse fill="none" stroke="black" cx="1818.81" cy="-548.934" rx="35.4579" ry="18"/>
<text text-anchor="middle" x="1818.81" y="-546.134" font-family="Times,serif" font-size="11.00">manila-ui</text>
</g>
<!-- horizon&#45;&gt;manila&#45;ui -->
<g id="edge282" class="edge"><title>horizon-&gt;manila-ui</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1726.46,-495.001C1743.95,-505.214 1767.77,-519.127 1786.84,-530.264"/>
<polygon fill="black" stroke="black" points="1785.1,-533.3 1795.5,-535.32 1788.63,-527.255 1785.1,-533.3"/>
</g>
<!-- tuskar&#45;ui -->
<g id="node309" class="node"><title>tuskar-ui</title>
<ellipse fill="none" stroke="black" cx="1694.4" cy="-576.831" rx="33.8507" ry="18"/>
<text text-anchor="middle" x="1694.4" y="-574.031" font-family="Times,serif" font-size="11.00">tuskar-ui</text>
</g>
<!-- horizon&#45;&gt;tuskar&#45;ui -->
<g id="edge283" class="edge"><title>horizon-&gt;tuskar-ui</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1700.83,-498.948C1699.69,-512.794 1698.09,-532.18 1696.77,-548.146"/>
<polygon fill="black" stroke="black" points="1693.25,-548.289 1695.91,-558.543 1700.22,-548.865 1693.25,-548.289"/>
</g>
<!-- ironic -->
<g id="node310" class="node"><title>ironic</title>
<ellipse fill="none" stroke="black" cx="349.993" cy="-2497.76" rx="31.3957" ry="18"/>
<text text-anchor="middle" x="349.993" y="-2494.06" font-family="Times,serif" font-size="14.00">ironic</text>
</g>
<!-- bifrost -->
<g id="node311" class="node"><title>bifrost</title>
<ellipse fill="none" stroke="black" cx="543.243" cy="-2630.24" rx="27.1205" ry="18"/>
<text text-anchor="middle" x="543.243" y="-2627.44" font-family="Times,serif" font-size="11.00">bifrost</text>
</g>
<!-- ironic&#45;&gt;bifrost -->
<g id="edge284" class="edge"><title>ironic-&gt;bifrost</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M370.309,-2511.69C405.265,-2535.66 476.804,-2584.7 516.027,-2611.59"/>
<polygon fill="black" stroke="black" points="514.115,-2614.52 524.342,-2617.29 518.073,-2608.74 514.115,-2614.52"/>
</g>
<!-- coreos&#45;image&#45;builder -->
<g id="node312" class="node"><title>coreos-image-builder</title>
<ellipse fill="none" stroke="black" cx="316.295" cy="-2374.15" rx="66.9979" ry="18"/>
<text text-anchor="middle" x="316.295" y="-2371.35" font-family="Times,serif" font-size="11.00">coreos-image-builder</text>
</g>
<!-- ironic&#45;&gt;coreos&#45;image&#45;builder -->
<g id="edge285" class="edge"><title>ironic-&gt;coreos-image-builder</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M345.093,-2479.79C339.528,-2459.37 330.379,-2425.81 323.888,-2402"/>
<polygon fill="black" stroke="black" points="327.208,-2400.87 321.201,-2392.14 320.454,-2402.71 327.208,-2400.87"/>
</g>
<!-- ironic&#45;inspector -->
<g id="node313" class="node"><title>ironic-inspector</title>
<ellipse fill="none" stroke="black" cx="126.896" cy="-2634.33" rx="51.931" ry="18"/>
<text text-anchor="middle" x="126.896" y="-2631.53" font-family="Times,serif" font-size="11.00">ironic-inspector</text>
</g>
<!-- ironic&#45;&gt;ironic&#45;inspector -->
<g id="edge286" class="edge"><title>ironic-&gt;ironic-inspector</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M328.196,-2511.11C289.341,-2534.89 207.838,-2584.78 161.337,-2613.25"/>
<polygon fill="black" stroke="black" points="159.229,-2610.44 152.527,-2618.64 162.883,-2616.41 159.229,-2610.44"/>
</g>
<!-- ironic&#45;lib -->
<g id="node314" class="node"><title>ironic-lib</title>
<ellipse fill="none" stroke="black" cx="403.956" cy="-2631.38" rx="34.054" ry="18"/>
<text text-anchor="middle" x="403.956" y="-2628.58" font-family="Times,serif" font-size="11.00">ironic-lib</text>
</g>
<!-- ironic&#45;&gt;ironic&#45;lib -->
<g id="edge287" class="edge"><title>ironic-&gt;ironic-lib</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M357.159,-2515.51C366.311,-2538.17 382.242,-2577.61 392.941,-2604.11"/>
<polygon fill="black" stroke="black" points="389.77,-2605.6 396.76,-2613.56 396.261,-2602.98 389.77,-2605.6"/>
</g>
<!-- ironic&#45;python&#45;agent -->
<g id="node315" class="node"><title>ironic-python-agent</title>
<ellipse fill="none" stroke="black" cx="275.706" cy="-2629.81" rx="61.8756" ry="18"/>
<text text-anchor="middle" x="275.706" y="-2627.01" font-family="Times,serif" font-size="11.00">ironic-python-agent</text>
</g>
<!-- ironic&#45;&gt;ironic&#45;python&#45;agent -->
<g id="edge288" class="edge"><title>ironic-&gt;ironic-python-agent</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M340.282,-2515.03C327.742,-2537.32 305.777,-2576.36 290.989,-2602.65"/>
<polygon fill="black" stroke="black" points="287.749,-2601.27 285.897,-2611.7 293.85,-2604.7 287.749,-2601.27"/>
</g>
<!-- ironic&#45;webclient -->
<g id="node316" class="node"><title>ironic-webclient</title>
<ellipse fill="none" stroke="black" cx="155.375" cy="-2500.29" rx="53.5381" ry="18"/>
<text text-anchor="middle" x="155.375" y="-2497.49" font-family="Times,serif" font-size="11.00">ironic-webclient</text>
</g>
<!-- ironic&#45;&gt;ironic&#45;webclient -->
<g id="edge289" class="edge"><title>ironic-&gt;ironic-webclient</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M318.725,-2498.17C291.946,-2498.52 252.534,-2499.03 219.132,-2499.47"/>
<polygon fill="black" stroke="black" points="218.933,-2495.97 208.98,-2499.6 219.024,-2502.97 218.933,-2495.97"/>
</g>
<!-- python&#45;dracclient -->
<g id="node317" class="node"><title>python-dracclient</title>
<ellipse fill="none" stroke="black" cx="533.326" cy="-2484.47" rx="56.5515" ry="18"/>
<text text-anchor="middle" x="533.326" y="-2481.67" font-family="Times,serif" font-size="11.00">python-dracclient</text>
</g>
<!-- ironic&#45;&gt;python&#45;dracclient -->
<g id="edge290" class="edge"><title>ironic-&gt;python-dracclient</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M381.093,-2495.51C404.762,-2493.79 438.181,-2491.37 467.681,-2489.23"/>
<polygon fill="black" stroke="black" points="468.209,-2492.7 477.929,-2488.48 467.702,-2485.72 468.209,-2492.7"/>
</g>
<!-- python&#45;ironic&#45;inspector&#45;client -->
<g id="node318" class="node"><title>python-ironic-inspector-client</title>
<ellipse fill="none" stroke="black" cx="139.998" cy="-2373.06" rx="88.996" ry="18"/>
<text text-anchor="middle" x="139.998" y="-2370.26" font-family="Times,serif" font-size="11.00">python-ironic-inspector-client</text>
</g>
<!-- ironic&#45;&gt;python&#45;ironic&#45;inspector&#45;client -->
<g id="edge291" class="edge"><title>ironic-&gt;python-ironic-inspector-client</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M327.917,-2484.65C292.156,-2463.42 221.159,-2421.26 177.403,-2395.27"/>
<polygon fill="black" stroke="black" points="179.153,-2392.24 168.768,-2390.14 175.579,-2398.26 179.153,-2392.24"/>
</g>
<!-- python&#45;ironicclient -->
<g id="node319" class="node"><title>python-ironicclient</title>
<ellipse fill="none" stroke="black" cx="504.063" cy="-2364" rx="60.2679" ry="18"/>
<text text-anchor="middle" x="504.063" y="-2361.2" font-family="Times,serif" font-size="11.00">python-ironicclient</text>
</g>
<!-- ironic&#45;&gt;python&#45;ironicclient -->
<g id="edge292" class="edge"><title>ironic-&gt;python-ironicclient</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M367.368,-2482.68C393.993,-2459.56 445.119,-2415.18 476.739,-2387.72"/>
<polygon fill="black" stroke="black" points="479.075,-2390.33 484.331,-2381.13 474.486,-2385.04 479.075,-2390.33"/>
</g>
<!-- keystone -->
<g id="node320" class="node"><title>keystone</title>
<ellipse fill="none" stroke="black" cx="992.106" cy="-2560.28" rx="42.4939" ry="18"/>
<text text-anchor="middle" x="992.106" y="-2556.58" font-family="Times,serif" font-size="14.00">keystone</text>
</g>
<!-- keystoneauth -->
<g id="node321" class="node"><title>keystoneauth</title>
<ellipse fill="none" stroke="black" cx="1111.42" cy="-2490.99" rx="44.498" ry="18"/>
<text text-anchor="middle" x="1111.42" y="-2488.19" font-family="Times,serif" font-size="11.00">keystoneauth</text>
</g>
<!-- keystone&#45;&gt;keystoneauth -->
<g id="edge293" class="edge"><title>keystone-&gt;keystoneauth</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1017.12,-2545.75C1034.46,-2535.68 1057.78,-2522.13 1076.89,-2511.04"/>
<polygon fill="black" stroke="black" points="1078.72,-2514.02 1085.61,-2505.97 1075.21,-2507.97 1078.72,-2514.02"/>
</g>
<!-- keystoneauth&#45;saml2 -->
<g id="node322" class="node"><title>keystoneauth-saml2</title>
<ellipse fill="none" stroke="black" cx="991.996" cy="-2466" rx="62.5783" ry="18"/>
<text text-anchor="middle" x="991.996" y="-2463.2" font-family="Times,serif" font-size="11.00">keystoneauth-saml2</text>
</g>
<!-- keystone&#45;&gt;keystoneauth&#45;saml2 -->
<g id="edge294" class="edge"><title>keystone-&gt;keystoneauth-saml2</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M992.085,-2542.1C992.069,-2528.54 992.047,-2509.75 992.029,-2494.23"/>
<polygon fill="black" stroke="black" points="995.529,-2494.12 992.017,-2484.12 988.529,-2494.13 995.529,-2494.12"/>
</g>
<!-- keystonemiddleware -->
<g id="node323" class="node"><title>keystonemiddleware</title>
<ellipse fill="none" stroke="black" cx="859.065" cy="-2629.9" rx="64.889" ry="18"/>
<text text-anchor="middle" x="859.065" y="-2627.1" font-family="Times,serif" font-size="11.00">keystonemiddleware</text>
</g>
<!-- keystone&#45;&gt;keystonemiddleware -->
<g id="edge295" class="edge"><title>keystone-&gt;keystonemiddleware</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M965.183,-2574.37C946.049,-2584.38 920.043,-2597.99 898.565,-2609.23"/>
<polygon fill="black" stroke="black" points="896.908,-2606.14 889.671,-2613.88 900.154,-2612.35 896.908,-2606.14"/>
</g>
<!-- pycadf -->
<g id="node324" class="node"><title>pycadf</title>
<ellipse fill="none" stroke="black" cx="1112.1" cy="-2628.64" rx="28.0277" ry="18"/>
<text text-anchor="middle" x="1112.1" y="-2625.84" font-family="Times,serif" font-size="11.00">pycadf</text>
</g>
<!-- keystone&#45;&gt;pycadf -->
<g id="edge296" class="edge"><title>keystone-&gt;pycadf</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1017.55,-2574.78C1036.32,-2585.47 1061.93,-2600.06 1081.76,-2611.36"/>
<polygon fill="black" stroke="black" points="1080.28,-2614.54 1090.7,-2616.45 1083.74,-2608.46 1080.28,-2614.54"/>
</g>
<!-- python&#45;keystoneclient -->
<g id="node325" class="node"><title>python-keystoneclient</title>
<ellipse fill="none" stroke="black" cx="994" cy="-2654.47" rx="67.9024" ry="18"/>
<text text-anchor="middle" x="994" y="-2651.67" font-family="Times,serif" font-size="11.00">python-keystoneclient</text>
</g>
<!-- keystone&#45;&gt;python&#45;keystoneclient -->
<g id="edge297" class="edge"><title>keystone-&gt;python-keystoneclient</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M992.471,-2578.44C992.744,-2591.99 993.121,-2610.76 993.433,-2626.26"/>
<polygon fill="black" stroke="black" points="989.936,-2626.44 993.636,-2636.37 996.934,-2626.3 989.936,-2626.44"/>
</g>
<!-- python&#45;keystoneclient&#45;kerberos -->
<g id="node326" class="node"><title>python-keystoneclient-kerberos</title>
<ellipse fill="none" stroke="black" cx="858.207" cy="-2491.41" rx="93.4152" ry="18"/>
<text text-anchor="middle" x="858.207" y="-2488.61" font-family="Times,serif" font-size="11.00">python-keystoneclient-kerberos</text>
</g>
<!-- keystone&#45;&gt;python&#45;keystoneclient&#45;kerberos -->
<g id="edge298" class="edge"><title>keystone-&gt;python-keystoneclient-kerberos</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M965.01,-2546.34C946.504,-2536.82 921.612,-2524.02 900.514,-2513.17"/>
<polygon fill="black" stroke="black" points="901.923,-2509.96 891.429,-2508.5 898.722,-2516.18 901.923,-2509.96"/>
</g>
<!-- kolla -->
<g id="node327" class="node"><title>kolla</title>
<ellipse fill="none" stroke="black" cx="1762.6" cy="-834" rx="28.6953" ry="18"/>
<text text-anchor="middle" x="1762.6" y="-830.3" font-family="Times,serif" font-size="14.00">kolla</text>
</g>
<!-- magnum -->
<g id="node328" class="node"><title>magnum</title>
<ellipse fill="none" stroke="black" cx="91.3069" cy="-188.206" rx="42.4939" ry="18"/>
<text text-anchor="middle" x="91.3069" y="-184.506" font-family="Times,serif" font-size="14.00">magnum</text>
</g>
<!-- magnum&#45;ui -->
<g id="node329" class="node"><title>magnum-ui</title>
<ellipse fill="none" stroke="black" cx="135.202" cy="-245.625" rx="39.8775" ry="18"/>
<text text-anchor="middle" x="135.202" y="-242.825" font-family="Times,serif" font-size="11.00">magnum-ui</text>
</g>
<!-- magnum&#45;&gt;magnum&#45;ui -->
<g id="edge299" class="edge"><title>magnum-&gt;magnum-ui</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M104.477,-205.434C108.036,-210.09 111.964,-215.228 115.788,-220.23"/>
<polygon fill="black" stroke="black" points="113.187,-222.591 122.041,-228.41 118.749,-218.34 113.187,-222.591"/>
</g>
<!-- python&#45;magnumclient -->
<g id="node330" class="node"><title>python-magnumclient</title>
<ellipse fill="none" stroke="black" cx="67.3498" cy="-120" rx="67.2" ry="18"/>
<text text-anchor="middle" x="67.3498" y="-117.2" font-family="Times,serif" font-size="11.00">python-magnumclient</text>
</g>
<!-- magnum&#45;&gt;python&#45;magnumclient -->
<g id="edge300" class="edge"><title>magnum-&gt;python-magnumclient</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M85.0124,-170.286C82.5833,-163.37 79.7482,-155.298 77.0695,-147.672"/>
<polygon fill="black" stroke="black" points="80.3016,-146.313 73.6854,-138.038 73.6972,-148.632 80.3016,-146.313"/>
</g>
<!-- manila -->
<g id="node331" class="node"><title>manila</title>
<ellipse fill="none" stroke="black" cx="2534.5" cy="-86.2063" rx="35.194" ry="18"/>
<text text-anchor="middle" x="2534.5" y="-82.5063" font-family="Times,serif" font-size="14.00">manila</text>
</g>
<!-- manila&#45;image&#45;elements -->
<g id="node332" class="node"><title>manila-image-elements</title>
<ellipse fill="none" stroke="black" cx="2578.39" cy="-143.625" rx="72.5245" ry="18"/>
<text text-anchor="middle" x="2578.39" y="-140.825" font-family="Times,serif" font-size="11.00">manila-image-elements</text>
</g>
<!-- manila&#45;&gt;manila&#45;image&#45;elements -->
<g id="edge301" class="edge"><title>manila-&gt;manila-image-elements</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2547.43,-103.123C2550.93,-107.701 2554.8,-112.763 2558.58,-117.712"/>
<polygon fill="black" stroke="black" points="2555.93,-120.012 2564.79,-125.831 2561.5,-115.761 2555.93,-120.012"/>
</g>
<!-- python&#45;manilaclient -->
<g id="node333" class="node"><title>python-manilaclient</title>
<ellipse fill="none" stroke="black" cx="2510.54" cy="-18" rx="62.5783" ry="18"/>
<text text-anchor="middle" x="2510.54" y="-15.2" font-family="Times,serif" font-size="11.00">python-manilaclient</text>
</g>
<!-- manila&#45;&gt;python&#45;manilaclient -->
<g id="edge302" class="edge"><title>manila-&gt;python-manilaclient</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2528.2,-68.2859C2525.77,-61.3701 2522.94,-53.2985 2520.26,-45.6721"/>
<polygon fill="black" stroke="black" points="2523.49,-44.3126 2516.87,-36.0375 2516.89,-46.6324 2523.49,-44.3126"/>
</g>
<!-- mistral -->
<g id="node334" class="node"><title>mistral</title>
<ellipse fill="none" stroke="black" cx="2857.06" cy="-253.065" rx="35.9954" ry="18"/>
<text text-anchor="middle" x="2857.06" y="-249.365" font-family="Times,serif" font-size="14.00">mistral</text>
</g>
<!-- mistral&#45;dashboard -->
<g id="node335" class="node"><title>mistral-dashboard</title>
<ellipse fill="none" stroke="black" cx="2951.98" cy="-236.865" rx="57.9578" ry="18"/>
<text text-anchor="middle" x="2951.98" y="-234.065" font-family="Times,serif" font-size="11.00">mistral-dashboard</text>
</g>
<!-- mistral&#45;&gt;mistral&#45;dashboard -->
<g id="edge303" class="edge"><title>mistral-&gt;mistral-dashboard</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2891.06,-247.262C2891.16,-247.244 2891.27,-247.227 2891.37,-247.209"/>
<polygon fill="black" stroke="black" points="2891.9,-250.67 2901.17,-245.537 2890.72,-243.769 2891.9,-250.67"/>
</g>
<!-- mistral&#45;extra -->
<g id="node336" class="node"><title>mistral-extra</title>
<ellipse fill="none" stroke="black" cx="2789.44" cy="-171" rx="44.498" ry="18"/>
<text text-anchor="middle" x="2789.44" y="-168.2" font-family="Times,serif" font-size="11.00">mistral-extra</text>
</g>
<!-- mistral&#45;&gt;mistral&#45;extra -->
<g id="edge304" class="edge"><title>mistral-&gt;mistral-extra</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2843.05,-236.061C2833.59,-224.584 2820.95,-209.236 2810.31,-196.329"/>
<polygon fill="black" stroke="black" points="2812.73,-193.757 2803.67,-188.264 2807.33,-198.208 2812.73,-193.757"/>
</g>
<!-- python&#45;mistralclient -->
<g id="node337" class="node"><title>python-mistralclient</title>
<ellipse fill="none" stroke="black" cx="2766.14" cy="-289.37" rx="63.2812" ry="18"/>
<text text-anchor="middle" x="2766.14" y="-286.57" font-family="Times,serif" font-size="11.00">python-mistralclient</text>
</g>
<!-- mistral&#45;&gt;python&#45;mistralclient -->
<g id="edge305" class="edge"><title>mistral-&gt;python-mistralclient</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2828.79,-264.353C2823.58,-266.433 2818.02,-268.655 2812.44,-270.883"/>
<polygon fill="black" stroke="black" points="2811.08,-267.656 2803.09,-274.615 2813.68,-274.157 2811.08,-267.656"/>
</g>
<!-- murano -->
<g id="node338" class="node"><title>murano</title>
<ellipse fill="none" stroke="black" cx="3172.42" cy="-136.814" rx="38.1938" ry="18"/>
<text text-anchor="middle" x="3172.42" y="-133.114" font-family="Times,serif" font-size="14.00">murano</text>
</g>
<!-- murano&#45;agent -->
<g id="node339" class="node"><title>murano-agent</title>
<ellipse fill="none" stroke="black" cx="3251.95" cy="-73.5286" rx="46.1069" ry="18"/>
<text text-anchor="middle" x="3251.95" y="-70.7286" font-family="Times,serif" font-size="11.00">murano-agent</text>
</g>
<!-- murano&#45;&gt;murano&#45;agent -->
<g id="edge306" class="edge"><title>murano-&gt;murano-agent</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3192.08,-121.17C3201.52,-113.661 3213.01,-104.52 3223.38,-96.2615"/>
<polygon fill="black" stroke="black" points="3225.76,-98.8404 3231.41,-89.875 3221.41,-93.363 3225.76,-98.8404"/>
</g>
<!-- murano&#45;apps -->
<g id="node340" class="node"><title>murano-apps</title>
<ellipse fill="none" stroke="black" cx="3101.64" cy="-69" rx="44.498" ry="18"/>
<text text-anchor="middle" x="3101.64" y="-66.2" font-family="Times,serif" font-size="11.00">murano-apps</text>
</g>
<!-- murano&#45;&gt;murano&#45;apps -->
<g id="edge307" class="edge"><title>murano-&gt;murano-apps</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3155.29,-120.398C3146.64,-112.109 3135.98,-101.899 3126.45,-92.769"/>
<polygon fill="black" stroke="black" points="3128.75,-90.1263 3119.11,-85.7358 3123.91,-95.1811 3128.75,-90.1263"/>
</g>
<!-- murano&#45;dashboard -->
<g id="node341" class="node"><title>murano-dashboard</title>
<ellipse fill="none" stroke="black" cx="3067.93" cy="-168.572" rx="58.8623" ry="18"/>
<text text-anchor="middle" x="3067.93" y="-165.772" font-family="Times,serif" font-size="11.00">murano-dashboard</text>
</g>
<!-- murano&#45;&gt;murano&#45;dashboard -->
<g id="edge308" class="edge"><title>murano-&gt;murano-dashboard</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3140.22,-146.602C3133.62,-148.606 3126.52,-150.764 3119.44,-152.916"/>
<polygon fill="black" stroke="black" points="3118.4,-149.575 3109.85,-155.832 3120.43,-156.273 3118.4,-149.575"/>
</g>
<!-- murano&#45;deployment -->
<g id="node342" class="node"><title>murano-deployment</title>
<ellipse fill="none" stroke="black" cx="3274.48" cy="-177.48" rx="62.5783" ry="18"/>
<text text-anchor="middle" x="3274.48" y="-174.68" font-family="Times,serif" font-size="11.00">murano-deployment</text>
</g>
<!-- murano&#45;&gt;murano&#45;deployment -->
<g id="edge309" class="edge"><title>murano-&gt;murano-deployment</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3201.67,-148.467C3209.97,-151.777 3219.23,-155.464 3228.28,-159.07"/>
<polygon fill="black" stroke="black" points="3227,-162.329 3237.59,-162.779 3229.59,-155.826 3227,-162.329"/>
</g>
<!-- python&#45;muranoclient -->
<g id="node343" class="node"><title>python-muranoclient</title>
<ellipse fill="none" stroke="black" cx="3166.09" cy="-219.222" rx="64.1867" ry="18"/>
<text text-anchor="middle" x="3166.09" y="-216.422" font-family="Times,serif" font-size="11.00">python-muranoclient</text>
</g>
<!-- murano&#45;&gt;python&#45;muranoclient -->
<g id="edge310" class="edge"><title>murano-&gt;python-muranoclient</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3171.02,-155.103C3170.21,-165.559 3169.19,-178.901 3168.28,-190.704"/>
<polygon fill="black" stroke="black" points="3164.77,-190.745 3167.49,-200.984 3171.75,-191.282 3164.77,-190.745"/>
</g>
<!-- neutron -->
<g id="node344" class="node"><title>neutron</title>
<ellipse fill="none" stroke="black" cx="3258.62" cy="-1741.15" rx="37.8943" ry="18"/>
<text text-anchor="middle" x="3258.62" y="-1737.45" font-family="Times,serif" font-size="14.00">neutron</text>
</g>
<!-- dragonflow -->
<g id="node345" class="node"><title>dragonflow</title>
<ellipse fill="none" stroke="black" cx="3520.74" cy="-1642.45" rx="40.0804" ry="18"/>
<text text-anchor="middle" x="3520.74" y="-1639.65" font-family="Times,serif" font-size="11.00">dragonflow</text>
</g>
<!-- neutron&#45;&gt;dragonflow -->
<g id="edge311" class="edge"><title>neutron-&gt;dragonflow</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3288.43,-1729.92C3335.55,-1712.18 3427.31,-1677.63 3480.31,-1657.67"/>
<polygon fill="black" stroke="black" points="3481.61,-1660.92 3489.74,-1654.12 3479.15,-1654.37 3481.61,-1660.92"/>
</g>
<!-- kuryr -->
<g id="node346" class="node"><title>kuryr</title>
<ellipse fill="none" stroke="black" cx="3009.47" cy="-1461.11" rx="27" ry="18"/>
<text text-anchor="middle" x="3009.47" y="-1458.31" font-family="Times,serif" font-size="11.00">kuryr</text>
</g>
<!-- neutron&#45;&gt;kuryr -->
<g id="edge312" class="edge"><title>neutron-&gt;kuryr</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3249.55,-1723.54C3234.46,-1695.11 3202.24,-1638.07 3166.12,-1596.35 3125.97,-1549.97 3069.69,-1505.29 3036.66,-1480.68"/>
<polygon fill="black" stroke="black" points="3038.51,-1477.7 3028.39,-1474.58 3034.36,-1483.33 3038.51,-1477.7"/>
</g>
<!-- networking&#45;ale&#45;omniswitch -->
<g id="node347" class="node"><title>networking-ale-omniswitch</title>
<ellipse fill="none" stroke="black" cx="2990.6" cy="-2015.68" rx="82.9692" ry="18"/>
<text text-anchor="middle" x="2990.6" y="-2012.88" font-family="Times,serif" font-size="11.00">networking-ale-omniswitch</text>
</g>
<!-- neutron&#45;&gt;networking&#45;ale&#45;omniswitch -->
<g id="edge313" class="edge"><title>neutron-&gt;networking-ale-omniswitch</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3241.73,-1757.31C3219.22,-1778.95 3178.22,-1818.61 3143.95,-1853.24 3096.92,-1900.76 3043.69,-1957.94 3013.94,-1990.22"/>
<polygon fill="black" stroke="black" points="3011.1,-1988.15 3006.9,-1997.87 3016.25,-1992.89 3011.1,-1988.15"/>
</g>
<!-- networking&#45;arista -->
<g id="node348" class="node"><title>networking-arista</title>
<ellipse fill="none" stroke="black" cx="3504.04" cy="-1841.23" rx="57.2545" ry="18"/>
<text text-anchor="middle" x="3504.04" y="-1838.43" font-family="Times,serif" font-size="11.00">networking-arista</text>
</g>
<!-- neutron&#45;&gt;networking&#45;arista -->
<g id="edge314" class="edge"><title>neutron-&gt;networking-arista</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3287.73,-1753.02C3330.23,-1770.35 3409.6,-1802.72 3459.48,-1823.06"/>
<polygon fill="black" stroke="black" points="3458.46,-1826.42 3469.04,-1826.96 3461.1,-1819.94 3458.46,-1826.42"/>
</g>
<!-- networking&#45;bgpvpn -->
<g id="node349" class="node"><title>networking-bgpvpn</title>
<ellipse fill="none" stroke="black" cx="3121.21" cy="-1734.21" rx="60.9711" ry="18"/>
<text text-anchor="middle" x="3121.21" y="-1731.41" font-family="Times,serif" font-size="11.00">networking-bgpvpn</text>
</g>
<!-- neutron&#45;&gt;networking&#45;bgpvpn -->
<g id="edge315" class="edge"><title>neutron-&gt;networking-bgpvpn</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3221.07,-1739.25C3211.83,-1738.79 3201.64,-1738.27 3191.41,-1737.76"/>
<polygon fill="black" stroke="black" points="3191.36,-1734.25 3181.19,-1737.24 3191,-1741.24 3191.36,-1734.25"/>
</g>
<!-- networking&#45;calico -->
<g id="node350" class="node"><title>networking-calico</title>
<ellipse fill="none" stroke="black" cx="2827.85" cy="-1464.07" rx="58.16" ry="18"/>
<text text-anchor="middle" x="2827.85" y="-1461.27" font-family="Times,serif" font-size="11.00">networking-calico</text>
</g>
<!-- neutron&#45;&gt;networking&#45;calico -->
<g id="edge316" class="edge"><title>neutron-&gt;networking-calico</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3236.06,-1726.64C3165.09,-1680.99 2946.03,-1540.08 2861.55,-1485.74"/>
<polygon fill="black" stroke="black" points="2863.41,-1482.78 2853.1,-1480.31 2859.62,-1488.66 2863.41,-1482.78"/>
</g>
<!-- networking&#45;cisco -->
<g id="node351" class="node"><title>networking-cisco</title>
<ellipse fill="none" stroke="black" cx="3662.29" cy="-1489.2" rx="55.8489" ry="18"/>
<text text-anchor="middle" x="3662.29" y="-1486.4" font-family="Times,serif" font-size="11.00">networking-cisco</text>
</g>
<!-- neutron&#45;&gt;networking&#45;cisco -->
<g id="edge317" class="edge"><title>neutron-&gt;networking-cisco</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3281.77,-1726.7C3349.44,-1684.46 3547.18,-1561.05 3627.63,-1510.83"/>
<polygon fill="black" stroke="black" points="3629.77,-1513.63 3636.4,-1505.36 3626.06,-1507.69 3629.77,-1513.63"/>
</g>
<!-- networking&#45;fortinet -->
<g id="node352" class="node"><title>networking-fortinet</title>
<ellipse fill="none" stroke="black" cx="3103.19" cy="-1596.31" rx="61.1733" ry="18"/>
<text text-anchor="middle" x="3103.19" y="-1593.51" font-family="Times,serif" font-size="11.00">networking-fortinet</text>
</g>
<!-- neutron&#45;&gt;networking&#45;fortinet -->
<g id="edge318" class="edge"><title>neutron-&gt;networking-fortinet</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3241.39,-1725.09C3214.28,-1699.83 3161.49,-1650.64 3129.57,-1620.9"/>
<polygon fill="black" stroke="black" points="3131.64,-1618.04 3121.94,-1613.78 3126.87,-1623.16 3131.64,-1618.04"/>
</g>
<!-- networking&#45;fujitsu -->
<g id="node353" class="node"><title>networking-fujitsu</title>
<ellipse fill="none" stroke="black" cx="3318.42" cy="-1448.63" rx="58.8623" ry="18"/>
<text text-anchor="middle" x="3318.42" y="-1445.83" font-family="Times,serif" font-size="11.00">networking-fujitsu</text>
</g>
<!-- neutron&#45;&gt;networking&#45;fujitsu -->
<g id="edge319" class="edge"><title>neutron-&gt;networking-fujitsu</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3263.07,-1722.93C3269.31,-1697.12 3280.87,-1648.41 3289.48,-1606.64 3298.84,-1561.24 3308.25,-1508.19 3313.69,-1476.55"/>
<polygon fill="black" stroke="black" points="3317.14,-1477.14 3315.38,-1466.69 3310.24,-1475.95 3317.14,-1477.14"/>
</g>
<!-- networking&#45;hpe -->
<g id="node354" class="node"><title>networking-hpe</title>
<ellipse fill="none" stroke="black" cx="3236.16" cy="-1606.59" rx="51.931" ry="18"/>
<text text-anchor="middle" x="3236.16" y="-1603.79" font-family="Times,serif" font-size="11.00">networking-hpe</text>
</g>
<!-- neutron&#45;&gt;networking&#45;hpe -->
<g id="edge320" class="edge"><title>neutron-&gt;networking-hpe</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3255.59,-1723C3251.82,-1700.43 3245.35,-1661.63 3240.92,-1635.08"/>
<polygon fill="black" stroke="black" points="3244.31,-1634.16 3239.21,-1624.88 3237.41,-1635.32 3244.31,-1634.16"/>
</g>
<!-- networking&#45;hyperv -->
<g id="node355" class="node"><title>networking-hyperv</title>
<ellipse fill="none" stroke="black" cx="2814.13" cy="-1650.08" rx="60.2679" ry="18"/>
<text text-anchor="middle" x="2814.13" y="-1647.28" font-family="Times,serif" font-size="11.00">networking-hyperv</text>
</g>
<!-- neutron&#45;&gt;networking&#45;hyperv -->
<g id="edge321" class="edge"><title>neutron-&gt;networking-hyperv</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3224.68,-1733.12C3207.09,-1729.09 3185.23,-1724.25 3165.57,-1720.44 3062.15,-1700.41 3034.66,-1704.15 2931.71,-1681.81 2910.31,-1677.17 2886.99,-1671.09 2866.8,-1665.49"/>
<polygon fill="black" stroke="black" points="2867.73,-1662.12 2857.16,-1662.8 2865.84,-1668.86 2867.73,-1662.12"/>
</g>
<!-- networking&#45;infoblox -->
<g id="node356" class="node"><title>networking-infoblox</title>
<ellipse fill="none" stroke="black" cx="3667.96" cy="-1737.35" rx="63.9845" ry="18"/>
<text text-anchor="middle" x="3667.96" y="-1734.55" font-family="Times,serif" font-size="11.00">networking-infoblox</text>
</g>
<!-- neutron&#45;&gt;networking&#45;infoblox -->
<g id="edge322" class="edge"><title>neutron-&gt;networking-infoblox</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3295.09,-1745.95C3311.83,-1748.13 3331.94,-1750.73 3350.04,-1753 3371.12,-1755.65 3376.25,-1758.33 3397.49,-1758.77 3466.73,-1760.22 3545.65,-1752.94 3600.29,-1746.48"/>
<polygon fill="black" stroke="black" points="3601.04,-1749.92 3610.55,-1745.24 3600.2,-1742.97 3601.04,-1749.92"/>
</g>
<!-- networking&#45;l2gw -->
<g id="node357" class="node"><title>networking-l2gw</title>
<ellipse fill="none" stroke="black" cx="3671.81" cy="-1977.44" rx="55.1467" ry="18"/>
<text text-anchor="middle" x="3671.81" y="-1974.64" font-family="Times,serif" font-size="11.00">networking-l2gw</text>
</g>
<!-- neutron&#45;&gt;networking&#45;l2gw -->
<g id="edge323" class="edge"><title>neutron-&gt;networking-l2gw</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3282.92,-1755.05C3352.53,-1794.86 3552.96,-1909.47 3635.56,-1956.71"/>
<polygon fill="black" stroke="black" points="3633.92,-1959.8 3644.34,-1961.73 3637.4,-1953.72 3633.92,-1959.8"/>
</g>
<!-- networking&#45;lenovo -->
<g id="node358" class="node"><title>networking-lenovo</title>
<ellipse fill="none" stroke="black" cx="3254.56" cy="-2023.59" rx="59.5649" ry="18"/>
<text text-anchor="middle" x="3254.56" y="-2020.79" font-family="Times,serif" font-size="11.00">networking-lenovo</text>
</g>
<!-- neutron&#45;&gt;networking&#45;lenovo -->
<g id="edge324" class="edge"><title>neutron-&gt;networking-lenovo</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3258.36,-1759.24C3257.67,-1807.06 3255.8,-1937.03 3254.97,-1995"/>
<polygon fill="black" stroke="black" points="3251.46,-1995.23 3254.82,-2005.27 3258.46,-1995.33 3251.46,-1995.23"/>
</g>
<!-- networking&#45;midonet -->
<g id="node359" class="node"><title>networking-midonet</title>
<ellipse fill="none" stroke="black" cx="3372.45" cy="-1603.08" rx="63.2812" ry="18"/>
<text text-anchor="middle" x="3372.45" y="-1600.28" font-family="Times,serif" font-size="11.00">networking-midonet</text>
</g>
<!-- neutron&#45;&gt;networking&#45;midonet -->
<g id="edge325" class="edge"><title>neutron-&gt;networking-midonet</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3272.57,-1724.22C3292.24,-1700.36 3328.28,-1656.66 3351.26,-1628.78"/>
<polygon fill="black" stroke="black" points="3354,-1630.97 3357.66,-1621.03 3348.59,-1626.51 3354,-1630.97"/>
</g>
<!-- networking&#45;odl -->
<g id="node360" class="node"><title>networking-odl</title>
<ellipse fill="none" stroke="black" cx="3478.75" cy="-1453.61" rx="49.8222" ry="18"/>
<text text-anchor="middle" x="3478.75" y="-1450.81" font-family="Times,serif" font-size="11.00">networking-odl</text>
</g>
<!-- neutron&#45;&gt;networking&#45;odl -->
<g id="edge326" class="edge"><title>neutron-&gt;networking-odl</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3262.02,-1722.8C3267.84,-1694.97 3281.66,-1641.31 3307.71,-1603.01 3344.86,-1548.38 3406.66,-1501.25 3444.92,-1475.22"/>
<polygon fill="black" stroke="black" points="3447.28,-1477.84 3453.64,-1469.37 3443.39,-1472.03 3447.28,-1477.84"/>
</g>
<!-- networking&#45;ofagent -->
<g id="node361" class="node"><title>networking-ofagent</title>
<ellipse fill="none" stroke="black" cx="2819.07" cy="-2007.29" rx="61.8756" ry="18"/>
<text text-anchor="middle" x="2819.07" y="-2004.49" font-family="Times,serif" font-size="11.00">networking-ofagent</text>
</g>
<!-- neutron&#45;&gt;networking&#45;ofagent -->
<g id="edge327" class="edge"><title>neutron-&gt;networking-ofagent</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3234.98,-1755.46C3162.31,-1799.46 2941.77,-1932.99 2854.84,-1985.63"/>
<polygon fill="black" stroke="black" points="2852.87,-1982.73 2846.13,-1990.9 2856.49,-1988.72 2852.87,-1982.73"/>
</g>
<!-- networking&#45;onos -->
<g id="node362" class="node"><title>networking-onos</title>
<ellipse fill="none" stroke="black" cx="2829.42" cy="-1818.66" rx="54.2411" ry="18"/>
<text text-anchor="middle" x="2829.42" y="-1815.86" font-family="Times,serif" font-size="11.00">networking-onos</text>
</g>
<!-- neutron&#45;&gt;networking&#45;onos -->
<g id="edge328" class="edge"><title>neutron-&gt;networking-onos</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3223.13,-1747.56C3149.06,-1760.93 2977.43,-1791.93 2887.21,-1808.22"/>
<polygon fill="black" stroke="black" points="2886.37,-1804.82 2877.15,-1810.04 2887.62,-1811.71 2886.37,-1804.82"/>
</g>
<!-- networking&#45;ovn -->
<g id="node363" class="node"><title>networking-ovn</title>
<ellipse fill="none" stroke="black" cx="3014.19" cy="-1841.45" rx="51.931" ry="18"/>
<text text-anchor="middle" x="3014.19" y="-1838.65" font-family="Times,serif" font-size="11.00">networking-ovn</text>
</g>
<!-- neutron&#45;&gt;networking&#45;ovn -->
<g id="edge329" class="edge"><title>neutron-&gt;networking-ovn</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3229.62,-1753.05C3186.94,-1770.56 3106.92,-1803.4 3057.33,-1823.75"/>
<polygon fill="black" stroke="black" points="3055.76,-1820.61 3047.84,-1827.64 3058.42,-1827.09 3055.76,-1820.61"/>
</g>
<!-- networking&#45;plumgrid -->
<g id="node364" class="node"><title>networking-plumgrid</title>
<ellipse fill="none" stroke="black" cx="3397.62" cy="-1739.17" rx="65.5917" ry="18"/>
<text text-anchor="middle" x="3397.62" y="-1736.37" font-family="Times,serif" font-size="11.00">networking-plumgrid</text>
</g>
<!-- neutron&#45;&gt;networking&#45;plumgrid -->
<g id="edge330" class="edge"><title>neutron-&gt;networking-plumgrid</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3296.6,-1740.61C3304.6,-1740.49 3313.31,-1740.37 3322.15,-1740.24"/>
<polygon fill="black" stroke="black" points="3322.2,-1743.74 3332.15,-1740.1 3322.1,-1736.74 3322.2,-1743.74"/>
</g>
<!-- networking&#45;powervm -->
<g id="node365" class="node"><title>networking-powervm</title>
<ellipse fill="none" stroke="black" cx="2980.33" cy="-1668.03" rx="66.9979" ry="18"/>
<text text-anchor="middle" x="2980.33" y="-1665.23" font-family="Times,serif" font-size="11.00">networking-powervm</text>
</g>
<!-- neutron&#45;&gt;networking&#45;powervm -->
<g id="edge331" class="edge"><title>neutron-&gt;networking-powervm</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3225.32,-1732.4C3179.19,-1720.28 3095.1,-1698.19 3038.47,-1683.31"/>
<polygon fill="black" stroke="black" points="3039.15,-1679.87 3028.59,-1680.71 3037.37,-1686.64 3039.15,-1679.87"/>
</g>
<!-- networking&#45;sfc -->
<g id="node366" class="node"><title>networking-sfc</title>
<ellipse fill="none" stroke="black" cx="3331.46" cy="-1866.01" rx="49.8222" ry="18"/>
<text text-anchor="middle" x="3331.46" y="-1863.21" font-family="Times,serif" font-size="11.00">networking-sfc</text>
</g>
<!-- neutron&#45;&gt;networking&#45;sfc -->
<g id="edge332" class="edge"><title>neutron-&gt;networking-sfc</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3268.74,-1758.51C3281.02,-1779.54 3301.81,-1815.19 3316.07,-1839.63"/>
<polygon fill="black" stroke="black" points="3313.12,-1841.52 3321.18,-1848.4 3319.17,-1837.99 3313.12,-1841.52"/>
</g>
<!-- networking&#45;vsphere -->
<g id="node367" class="node"><title>networking-vsphere</title>
<ellipse fill="none" stroke="black" cx="3381.9" cy="-2015.56" rx="62.5783" ry="18"/>
<text text-anchor="middle" x="3381.9" y="-2012.76" font-family="Times,serif" font-size="11.00">networking-vsphere</text>
</g>
<!-- neutron&#45;&gt;networking&#45;vsphere -->
<g id="edge333" class="edge"><title>neutron-&gt;networking-vsphere</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3259.29,-1759.17C3260.76,-1784.04 3265.38,-1829.91 3279.95,-1866 3299.23,-1913.73 3335.59,-1961.62 3359.27,-1989.92"/>
<polygon fill="black" stroke="black" points="3356.74,-1992.35 3365.88,-1997.71 3362.08,-1987.82 3356.74,-1992.35"/>
</g>
<!-- octavia -->
<g id="node368" class="node"><title>octavia</title>
<ellipse fill="none" stroke="black" cx="3124.67" cy="-2021.82" rx="29.4311" ry="18"/>
<text text-anchor="middle" x="3124.67" y="-2019.02" font-family="Times,serif" font-size="11.00">octavia</text>
</g>
<!-- neutron&#45;&gt;octavia -->
<g id="edge334" class="edge"><title>neutron-&gt;octavia</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3254.49,-1759.22C3248.46,-1784.19 3236.09,-1830.37 3219.32,-1867.36 3197.54,-1915.38 3163.69,-1966.75 3142.92,-1996.49"/>
<polygon fill="black" stroke="black" points="3139.83,-1994.81 3136.93,-2005 3145.55,-1998.84 3139.83,-1994.81"/>
</g>
<!-- python&#45;neutron&#45;pd&#45;driver -->
<g id="node369" class="node"><title>python-neutron-pd-driver</title>
<ellipse fill="none" stroke="black" cx="3167.8" cy="-1446" rx="76.24" ry="18"/>
<text text-anchor="middle" x="3167.8" y="-1443.2" font-family="Times,serif" font-size="11.00">python-neutron-pd-driver</text>
</g>
<!-- neutron&#45;&gt;python&#45;neutron&#45;pd&#45;driver -->
<g id="edge335" class="edge"><title>neutron-&gt;python-neutron-pd-driver</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3245.77,-1723.96C3228.16,-1699.38 3197.09,-1652.09 3182.85,-1606.53 3168.89,-1561.88 3166.74,-1507.12 3166.93,-1474.47"/>
<polygon fill="black" stroke="black" points="3170.43,-1474.35 3167.07,-1464.3 3163.44,-1474.25 3170.43,-1474.35"/>
</g>
<!-- python&#45;neutronclient -->
<g id="node370" class="node"><title>python-neutronclient</title>
<ellipse fill="none" stroke="black" cx="3515.83" cy="-2027.87" rx="64.1867" ry="18"/>
<text text-anchor="middle" x="3515.83" y="-2025.07" font-family="Times,serif" font-size="11.00">python-neutronclient</text>
</g>
<!-- neutron&#45;&gt;python&#45;neutronclient -->
<g id="edge336" class="edge"><title>neutron-&gt;python-neutronclient</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3275.63,-1757.22C3300.07,-1780.54 3346.23,-1825.41 3382.97,-1866.03 3424.83,-1912.31 3470.29,-1969.29 3495.7,-2001.82"/>
<polygon fill="black" stroke="black" points="3493.11,-2004.19 3502.01,-2009.93 3498.63,-1999.89 3493.11,-2004.19"/>
</g>
<!-- vmware&#45;nsx -->
<g id="node371" class="node"><title>vmware-nsx</title>
<ellipse fill="none" stroke="black" cx="3175.02" cy="-1867.21" rx="42.8909" ry="18"/>
<text text-anchor="middle" x="3175.02" y="-1864.41" font-family="Times,serif" font-size="11.00">vmware-nsx</text>
</g>
<!-- neutron&#45;&gt;vmware&#45;nsx -->
<g id="edge337" class="edge"><title>neutron-&gt;vmware-nsx</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3247.17,-1758.41C3232.99,-1779.79 3208.7,-1816.41 3192.27,-1841.2"/>
<polygon fill="black" stroke="black" points="3189.21,-1839.48 3186.6,-1849.75 3195.04,-1843.35 3189.21,-1839.48"/>
</g>
<!-- nova -->
<g id="node372" class="node"><title>nova</title>
<ellipse fill="none" stroke="black" cx="2475.95" cy="-2109.08" rx="27.8951" ry="18"/>
<text text-anchor="middle" x="2475.95" y="-2105.38" font-family="Times,serif" font-size="14.00">nova</text>
</g>
<!-- python&#45;novaclient -->
<g id="node373" class="node"><title>python-novaclient</title>
<ellipse fill="none" stroke="black" cx="2575.34" cy="-2109" rx="57.2545" ry="18"/>
<text text-anchor="middle" x="2575.34" y="-2106.2" font-family="Times,serif" font-size="11.00">python-novaclient</text>
</g>
<!-- nova&#45;&gt;python&#45;novaclient -->
<g id="edge338" class="edge"><title>nova-&gt;python-novaclient</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2503.9,-2109.06C2505.16,-2109.06 2506.44,-2109.06 2507.74,-2109.06"/>
<polygon fill="black" stroke="black" points="2508.02,-2112.56 2518.02,-2109.05 2508.02,-2105.56 2508.02,-2112.56"/>
</g>
<!-- oslo -->
<g id="node374" class="node"><title>oslo</title>
<ellipse fill="none" stroke="black" cx="3185.18" cy="-669.753" rx="27" ry="18"/>
<text text-anchor="middle" x="3185.18" y="-666.053" font-family="Times,serif" font-size="14.00">oslo</text>
</g>
<!-- automaton -->
<g id="node375" class="node"><title>automaton</title>
<ellipse fill="none" stroke="black" cx="3431.97" cy="-723.599" rx="37.0671" ry="18"/>
<text text-anchor="middle" x="3431.97" y="-720.799" font-family="Times,serif" font-size="11.00">automaton</text>
</g>
<!-- oslo&#45;&gt;automaton -->
<g id="edge339" class="edge"><title>oslo-&gt;automaton</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3211.13,-675.414C3253.13,-684.577 3336.48,-702.763 3387.91,-713.985"/>
<polygon fill="black" stroke="black" points="3387.23,-717.419 3397.75,-716.132 3388.72,-710.58 3387.23,-717.419"/>
</g>
<!-- cookiecutter -->
<g id="node376" class="node"><title>cookiecutter</title>
<ellipse fill="none" stroke="black" cx="3113" cy="-375" rx="42.8909" ry="18"/>
<text text-anchor="middle" x="3113" y="-372.2" font-family="Times,serif" font-size="11.00">cookiecutter</text>
</g>
<!-- oslo&#45;&gt;cookiecutter -->
<g id="edge340" class="edge"><title>oslo-&gt;cookiecutter</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3177.61,-652.26C3167.55,-628.358 3149.86,-583.955 3139.7,-544.538 3127.08,-495.592 3119.46,-437.068 3115.76,-403.153"/>
<polygon fill="black" stroke="black" points="3119.22,-402.627 3114.69,-393.05 3112.26,-403.362 3119.22,-402.627"/>
</g>
<!-- debtcollector -->
<g id="node377" class="node"><title>debtcollector</title>
<ellipse fill="none" stroke="black" cx="2974.62" cy="-1043.29" rx="44.498" ry="18"/>
<text text-anchor="middle" x="2974.62" y="-1040.49" font-family="Times,serif" font-size="11.00">debtcollector</text>
</g>
<!-- oslo&#45;&gt;debtcollector -->
<g id="edge341" class="edge"><title>oslo-&gt;debtcollector</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3175.01,-686.445C3152.56,-723.431 3097.27,-815.207 3053.6,-893.554 3029.85,-936.181 3003.68,-986.5 2988.22,-1016.6"/>
<polygon fill="black" stroke="black" points="2985.04,-1015.14 2983.6,-1025.63 2991.27,-1018.33 2985.04,-1015.14"/>
</g>
<!-- devstack&#45;plugin&#45;amqp1 -->
<g id="node378" class="node"><title>devstack-plugin-amqp1</title>
<ellipse fill="none" stroke="black" cx="3303.95" cy="-652.648" rx="71.6184" ry="18"/>
<text text-anchor="middle" x="3303.95" y="-649.848" font-family="Times,serif" font-size="11.00">devstack-plugin-amqp1</text>
</g>
<!-- oslo&#45;&gt;devstack&#45;plugin&#45;amqp1 -->
<g id="edge342" class="edge"><title>oslo-&gt;devstack-plugin-amqp1</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3211.84,-665.914C3217.81,-665.054 3224.43,-664.101 3231.29,-663.112"/>
<polygon fill="black" stroke="black" points="3232.09,-666.534 3241.48,-661.644 3231.09,-659.606 3232.09,-666.534"/>
</g>
<!-- devstack&#45;plugin&#45;zmq -->
<g id="node379" class="node"><title>devstack-plugin-zmq</title>
<ellipse fill="none" stroke="black" cx="3057.97" cy="-767.775" rx="65.5917" ry="18"/>
<text text-anchor="middle" x="3057.97" y="-764.975" font-family="Times,serif" font-size="11.00">devstack-plugin-zmq</text>
</g>
<!-- oslo&#45;&gt;devstack&#45;plugin&#45;zmq -->
<g id="edge343" class="edge"><title>oslo-&gt;devstack-plugin-zmq</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3167.49,-683.383C3147.01,-699.168 3112.91,-725.439 3088.2,-744.482"/>
<polygon fill="black" stroke="black" points="3085.99,-741.762 3080.21,-750.638 3090.27,-747.306 3085.99,-741.762"/>
</g>
<!-- futurist -->
<g id="node380" class="node"><title>futurist</title>
<ellipse fill="none" stroke="black" cx="2768.2" cy="-404.228" rx="28.7291" ry="18"/>
<text text-anchor="middle" x="2768.2" y="-401.428" font-family="Times,serif" font-size="11.00">futurist</text>
</g>
<!-- oslo&#45;&gt;futurist -->
<g id="edge344" class="edge"><title>oslo-&gt;futurist</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3165.63,-657.302C3098.5,-614.554 2877.16,-473.61 2797.27,-422.742"/>
<polygon fill="black" stroke="black" points="2799,-419.692 2788.68,-417.273 2795.24,-425.597 2799,-419.692"/>
</g>
<!-- mox3 -->
<g id="node381" class="node"><title>mox3</title>
<ellipse fill="none" stroke="black" cx="3429.71" cy="-566.984" rx="27" ry="18"/>
<text text-anchor="middle" x="3429.71" y="-564.184" font-family="Times,serif" font-size="11.00">mox3</text>
</g>
<!-- oslo&#45;&gt;mox3 -->
<g id="edge345" class="edge"><title>oslo-&gt;mox3</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3207.19,-659.284C3220.28,-653.138 3237.25,-645.309 3252.49,-638.718 3302.47,-617.092 3361.19,-593.721 3396.91,-579.725"/>
<polygon fill="black" stroke="black" points="3398.31,-582.936 3406.34,-576.035 3395.76,-576.416 3398.31,-582.936"/>
</g>
<!-- oslo&#45;cookiecutter -->
<g id="node382" class="node"><title>oslo-cookiecutter</title>
<ellipse fill="none" stroke="black" cx="3062.24" cy="-523.195" rx="55.8489" ry="18"/>
<text text-anchor="middle" x="3062.24" y="-520.395" font-family="Times,serif" font-size="11.00">oslo-cookiecutter</text>
</g>
<!-- oslo&#45;&gt;oslo&#45;cookiecutter -->
<g id="edge346" class="edge"><title>oslo-&gt;oslo-cookiecutter</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3171.79,-653.79C3150.63,-628.563 3109.26,-579.244 3083.85,-548.959"/>
<polygon fill="black" stroke="black" points="3086.25,-546.37 3077.14,-540.958 3080.89,-550.868 3086.25,-546.37"/>
</g>
<!-- oslo&#45;incubator -->
<g id="node383" class="node"><title>oslo-incubator</title>
<ellipse fill="none" stroke="black" cx="3401.38" cy="-384.491" rx="48.2143" ry="18"/>
<text text-anchor="middle" x="3401.38" y="-381.691" font-family="Times,serif" font-size="11.00">oslo-incubator</text>
</g>
<!-- oslo&#45;&gt;oslo&#45;incubator -->
<g id="edge347" class="edge"><title>oslo-&gt;oslo-incubator</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3193.23,-652.561C3206.27,-625.239 3233.38,-570.554 3261.29,-527.089 3292.27,-478.833 3341.62,-433.464 3372.72,-407.358"/>
<polygon fill="black" stroke="black" points="3375.13,-409.909 3380.6,-400.833 3370.66,-404.519 3375.13,-409.909"/>
</g>
<!-- oslo.cache -->
<g id="node384" class="node"><title>oslo.cache</title>
<ellipse fill="none" stroke="black" cx="3179.78" cy="-544.554" rx="38.4712" ry="18"/>
<text text-anchor="middle" x="3179.78" y="-541.754" font-family="Times,serif" font-size="11.00">oslo.cache</text>
</g>
<!-- oslo&#45;&gt;oslo.cache -->
<g id="edge348" class="edge"><title>oslo-&gt;oslo.cache</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3184.4,-651.548C3183.51,-630.964 3182.05,-597.185 3181.01,-573.089"/>
<polygon fill="black" stroke="black" points="3184.49,-572.621 3180.57,-562.781 3177.5,-572.923 3184.49,-572.621"/>
</g>
<!-- oslo.concurrency -->
<g id="node385" class="node"><title>oslo.concurrency</title>
<ellipse fill="none" stroke="black" cx="2758.32" cy="-621.212" rx="55.1467" ry="18"/>
<text text-anchor="middle" x="2758.32" y="-618.412" font-family="Times,serif" font-size="11.00">oslo.concurrency</text>
</g>
<!-- oslo&#45;&gt;oslo.concurrency -->
<g id="edge349" class="edge"><title>oslo-&gt;oslo.concurrency</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3157.81,-670.506C3133.31,-670.92 3096.44,-670.904 3064.48,-668.264 2977.16,-661.052 2876.98,-643.961 2815.67,-632.487"/>
<polygon fill="black" stroke="black" points="2816.28,-629.04 2805.81,-630.626 2814.98,-635.919 2816.28,-629.04"/>
</g>
<!-- oslo.config -->
<g id="node386" class="node"><title>oslo.config</title>
<ellipse fill="none" stroke="black" cx="3614.33" cy="-722.747" rx="39.1741" ry="18"/>
<text text-anchor="middle" x="3614.33" y="-719.947" font-family="Times,serif" font-size="11.00">oslo.config</text>
</g>
<!-- oslo&#45;&gt;oslo.config -->
<g id="edge350" class="edge"><title>oslo-&gt;oslo.config</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3212.03,-673.068C3282.97,-681.828 3476.15,-705.683 3566.52,-716.843"/>
<polygon fill="black" stroke="black" points="3566.15,-720.323 3576.5,-718.075 3567,-713.376 3566.15,-720.323"/>
</g>
<!-- oslo.context -->
<g id="node387" class="node"><title>oslo.context</title>
<ellipse fill="none" stroke="black" cx="3577.03" cy="-862.629" rx="42.1875" ry="18"/>
<text text-anchor="middle" x="3577.03" y="-859.829" font-family="Times,serif" font-size="11.00">oslo.context</text>
</g>
<!-- oslo&#45;&gt;oslo.context -->
<g id="edge351" class="edge"><title>oslo-&gt;oslo.context</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3207.09,-680.536C3271.29,-712.135 3459.49,-804.772 3539.9,-844.355"/>
<polygon fill="black" stroke="black" points="3538.64,-847.636 3549.16,-848.912 3541.73,-841.355 3538.64,-847.636"/>
</g>
<!-- oslo.db -->
<g id="node388" class="node"><title>oslo.db</title>
<ellipse fill="none" stroke="black" cx="3271.35" cy="-1045.13" rx="28.7291" ry="18"/>
<text text-anchor="middle" x="3271.35" y="-1042.33" font-family="Times,serif" font-size="11.00">oslo.db</text>
</g>
<!-- oslo&#45;&gt;oslo.db -->
<g id="edge352" class="edge"><title>oslo-&gt;oslo.db</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3194.67,-686.755C3214.4,-723.253 3259.27,-812.396 3274.06,-893.664 3281.77,-936.022 3278.51,-986.142 3275.16,-1016.78"/>
<polygon fill="black" stroke="black" points="3271.67,-1016.42 3273.98,-1026.76 3278.63,-1017.23 3271.67,-1016.42"/>
</g>
<!-- oslo.i18n -->
<g id="node389" class="node"><title>oslo.i18n</title>
<ellipse fill="none" stroke="black" cx="3296.56" cy="-527.246" rx="33.8507" ry="18"/>
<text text-anchor="middle" x="3296.56" y="-524.446" font-family="Times,serif" font-size="11.00">oslo.i18n</text>
</g>
<!-- oslo&#45;&gt;oslo.i18n -->
<g id="edge353" class="edge"><title>oslo-&gt;oslo.i18n</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3197.74,-653.683C3217.11,-628.905 3254.4,-581.187 3277.23,-551.984"/>
<polygon fill="black" stroke="black" points="3280.13,-553.951 3283.53,-543.917 3274.62,-549.641 3280.13,-553.951"/>
</g>
<!-- oslo.log -->
<g id="node390" class="node"><title>oslo.log</title>
<ellipse fill="none" stroke="black" cx="3594.65" cy="-388.081" rx="30.8374" ry="18"/>
<text text-anchor="middle" x="3594.65" y="-385.281" font-family="Times,serif" font-size="11.00">oslo.log</text>
</g>
<!-- oslo&#45;&gt;oslo.log -->
<g id="edge354" class="edge"><title>oslo-&gt;oslo.log</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3204.11,-656.732C3269.69,-611.622 3487.44,-461.833 3566.04,-407.763"/>
<polygon fill="black" stroke="black" points="3568.24,-410.5 3574.49,-401.949 3564.27,-404.733 3568.24,-410.5"/>
</g>
<!-- oslo.messaging -->
<g id="node391" class="node"><title>oslo.messaging</title>
<ellipse fill="none" stroke="black" cx="2774.28" cy="-1023.4" rx="50.5248" ry="18"/>
<text text-anchor="middle" x="2774.28" y="-1020.6" font-family="Times,serif" font-size="11.00">oslo.messaging</text>
</g>
<!-- oslo&#45;&gt;oslo.messaging -->
<g id="edge355" class="edge"><title>oslo-&gt;oslo.messaging</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3177.2,-687.087C3167.07,-707.843 3148.14,-742.928 3125.11,-767.883 3027.25,-873.921 2879.49,-964.294 2811.24,-1003.11"/>
<polygon fill="black" stroke="black" points="2809.14,-1000.27 2802.15,-1008.24 2812.58,-1006.37 2809.14,-1000.27"/>
</g>
<!-- oslo.middleware -->
<g id="node392" class="node"><title>oslo.middleware</title>
<ellipse fill="none" stroke="black" cx="2761.57" cy="-814.088" rx="54.2411" ry="18"/>
<text text-anchor="middle" x="2761.57" y="-811.288" font-family="Times,serif" font-size="11.00">oslo.middleware</text>
</g>
<!-- oslo&#45;&gt;oslo.middleware -->
<g id="edge356" class="edge"><title>oslo-&gt;oslo.middleware</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3160.88,-678.032C3092.85,-701.213 2899.53,-767.081 2809.19,-797.863"/>
<polygon fill="black" stroke="black" points="2807.81,-794.634 2799.47,-801.172 2810.07,-801.26 2807.81,-794.634"/>
</g>
<!-- oslo.policy -->
<g id="node393" class="node"><title>oslo.policy</title>
<ellipse fill="none" stroke="black" cx="2928.14" cy="-716.097" rx="39.1741" ry="18"/>
<text text-anchor="middle" x="2928.14" y="-713.297" font-family="Times,serif" font-size="11.00">oslo.policy</text>
</g>
<!-- oslo&#45;&gt;oslo.policy -->
<g id="edge357" class="edge"><title>oslo-&gt;oslo.policy</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3158.64,-674.538C3115.26,-682.36 3028.62,-697.981 2974.79,-707.686"/>
<polygon fill="black" stroke="black" points="2974.04,-704.266 2964.82,-709.485 2975.28,-711.155 2974.04,-704.266"/>
</g>
<!-- oslo.reports -->
<g id="node394" class="node"><title>oslo.reports</title>
<ellipse fill="none" stroke="black" cx="3172.28" cy="-781.549" rx="40.7822" ry="18"/>
<text text-anchor="middle" x="3172.28" y="-778.749" font-family="Times,serif" font-size="11.00">oslo.reports</text>
</g>
<!-- oslo&#45;&gt;oslo.reports -->
<g id="edge358" class="edge"><title>oslo-&gt;oslo.reports</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3183.11,-687.715C3181.07,-705.376 3177.93,-732.602 3175.55,-753.187"/>
<polygon fill="black" stroke="black" points="3172.06,-752.925 3174.39,-763.261 3179.01,-753.728 3172.06,-752.925"/>
</g>
<!-- oslo.rootwrap -->
<g id="node395" class="node"><title>oslo.rootwrap</title>
<ellipse fill="none" stroke="black" cx="2928.39" cy="-561.006" rx="46.1069" ry="18"/>
<text text-anchor="middle" x="2928.39" y="-558.206" font-family="Times,serif" font-size="11.00">oslo.rootwrap</text>
</g>
<!-- oslo&#45;&gt;oslo.rootwrap -->
<g id="edge359" class="edge"><title>oslo-&gt;oslo.rootwrap</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3161.94,-659.911C3118.38,-641.464 3023.96,-601.476 2969.45,-578.393"/>
<polygon fill="black" stroke="black" points="2970.66,-575.103 2960.08,-574.427 2967.93,-581.549 2970.66,-575.103"/>
</g>
<!-- oslo.serialization -->
<g id="node396" class="node"><title>oslo.serialization</title>
<ellipse fill="none" stroke="black" cx="3384.69" cy="-869.247" rx="55.1467" ry="18"/>
<text text-anchor="middle" x="3384.69" y="-866.447" font-family="Times,serif" font-size="11.00">oslo.serialization</text>
</g>
<!-- oslo&#45;&gt;oslo.serialization -->
<g id="edge360" class="edge"><title>oslo-&gt;oslo.serialization</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3196.04,-686.504C3209.08,-706.438 3231.76,-740.61 3252.42,-769.112 3257,-775.432 3257.54,-777.591 3263.17,-782.993 3289.57,-808.299 3323.86,-831.953 3349.28,-848.066"/>
<polygon fill="black" stroke="black" points="3347.54,-851.106 3357.87,-853.441 3351.25,-845.171 3347.54,-851.106"/>
</g>
<!-- oslo.service -->
<g id="node397" class="node"><title>oslo.service</title>
<ellipse fill="none" stroke="black" cx="3416.62" cy="-1035.48" rx="42.1875" ry="18"/>
<text text-anchor="middle" x="3416.62" y="-1032.68" font-family="Times,serif" font-size="11.00">oslo.service</text>
</g>
<!-- oslo&#45;&gt;oslo.service -->
<g id="edge361" class="edge"><title>oslo-&gt;oslo.service</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3195.73,-686.418C3232.46,-744.458 3354.96,-938.046 3399.91,-1009.06"/>
<polygon fill="black" stroke="black" points="3397.17,-1011.29 3405.47,-1017.86 3403.08,-1007.54 3397.17,-1011.29"/>
</g>
<!-- oslo.utils -->
<g id="node398" class="node"><title>oslo.utils</title>
<ellipse fill="none" stroke="black" cx="3130.72" cy="-1046.51" rx="33.8507" ry="18"/>
<text text-anchor="middle" x="3130.72" y="-1043.71" font-family="Times,serif" font-size="11.00">oslo.utils</text>
</g>
<!-- oslo&#45;&gt;oslo.utils -->
<g id="edge362" class="edge"><title>oslo-&gt;oslo.utils</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3173.8,-686.185C3160.07,-707.145 3137.83,-745.043 3129.79,-781.372 3118.99,-830.12 3132.26,-843.75 3132.57,-893.677 3132.85,-936.924 3132.02,-987.052 3131.38,-1017.77"/>
<polygon fill="black" stroke="black" points="3127.88,-1018.09 3131.16,-1028.16 3134.87,-1018.24 3127.88,-1018.09"/>
</g>
<!-- oslo.versionedobjects -->
<g id="node399" class="node"><title>oslo.versionedobjects</title>
<ellipse fill="none" stroke="black" cx="3250.16" cy="-375.733" rx="67.2" ry="18"/>
<text text-anchor="middle" x="3250.16" y="-372.933" font-family="Times,serif" font-size="11.00">oslo.versionedobjects</text>
</g>
<!-- oslo&#45;&gt;oslo.versionedobjects -->
<g id="edge363" class="edge"><title>oslo-&gt;oslo.versionedobjects</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3190.64,-652.057C3197.96,-627.926 3211.05,-583.271 3219.87,-544.57 3231.05,-495.443 3240.69,-437.506 3245.93,-403.862"/>
<polygon fill="black" stroke="black" points="3249.41,-404.251 3247.48,-393.835 3242.49,-403.185 3249.41,-404.251"/>
</g>
<!-- oslo.vmware -->
<g id="node400" class="node"><title>oslo.vmware</title>
<ellipse fill="none" stroke="black" cx="3604.34" cy="-1032.21" rx="44.498" ry="18"/>
<text text-anchor="middle" x="3604.34" y="-1029.41" font-family="Times,serif" font-size="11.00">oslo.vmware</text>
</g>
<!-- oslo&#45;&gt;oslo.vmware -->
<g id="edge364" class="edge"><title>oslo-&gt;oslo.vmware</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3205.77,-681.872C3232.09,-697.673 3278.7,-726.692 3315.82,-755.382 3423.47,-838.599 3535.42,-956.678 3581.97,-1007.45"/>
<polygon fill="black" stroke="black" points="3579.54,-1009.98 3588.87,-1015 3584.71,-1005.26 3579.54,-1009.98"/>
</g>
<!-- oslosphinx -->
<g id="node401" class="node"><title>oslosphinx</title>
<ellipse fill="none" stroke="black" cx="3093.09" cy="-893.616" rx="37.7689" ry="18"/>
<text text-anchor="middle" x="3093.09" y="-890.816" font-family="Times,serif" font-size="11.00">oslosphinx</text>
</g>
<!-- oslo&#45;&gt;oslosphinx -->
<g id="edge365" class="edge"><title>oslo-&gt;oslosphinx</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3175.75,-686.796C3164.04,-708.385 3143.88,-746.933 3129.79,-781.372 3118.28,-809.511 3107.79,-842.712 3101,-865.67"/>
<polygon fill="black" stroke="black" points="3097.59,-864.862 3098.15,-875.442 3104.31,-866.821 3097.59,-864.862"/>
</g>
<!-- oslotest -->
<g id="node402" class="node"><title>oslotest</title>
<ellipse fill="none" stroke="black" cx="3064.78" cy="-648.665" rx="30.1339" ry="18"/>
<text text-anchor="middle" x="3064.78" y="-645.865" font-family="Times,serif" font-size="11.00">oslotest</text>
</g>
<!-- oslo&#45;&gt;oslotest -->
<g id="edge366" class="edge"><title>oslo-&gt;oslotest</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3159.06,-665.177C3142.91,-662.349 3121.88,-658.667 3103.79,-655.497"/>
<polygon fill="black" stroke="black" points="3104.26,-652.027 3093.81,-653.749 3103.05,-658.922 3104.26,-652.027"/>
</g>
<!-- pbr -->
<g id="node403" class="node"><title>pbr</title>
<ellipse fill="none" stroke="black" cx="3604.38" cy="-568.315" rx="27" ry="18"/>
<text text-anchor="middle" x="3604.38" y="-565.515" font-family="Times,serif" font-size="11.00">pbr</text>
</g>
<!-- oslo&#45;&gt;pbr -->
<g id="edge367" class="edge"><title>oslo-&gt;pbr</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3206.49,-658.363C3219.47,-651.819 3236.58,-643.896 3252.49,-638.718 3364.44,-602.267 3502.87,-581.267 3567.68,-572.77"/>
<polygon fill="black" stroke="black" points="3568.33,-576.215 3577.8,-571.466 3567.43,-569.272 3568.33,-576.215"/>
</g>
<!-- pylockfile -->
<g id="node404" class="node"><title>pylockfile</title>
<ellipse fill="none" stroke="black" cx="3235.78" cy="-893.47" rx="36.8641" ry="18"/>
<text text-anchor="middle" x="3235.78" y="-890.67" font-family="Times,serif" font-size="11.00">pylockfile</text>
</g>
<!-- oslo&#45;&gt;pylockfile -->
<g id="edge368" class="edge"><title>oslo-&gt;pylockfile</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3190.3,-687.497C3196.54,-709.494 3207.19,-748.188 3214.77,-781.726 3221.15,-809.985 3227.12,-842.568 3231.05,-865.23"/>
<polygon fill="black" stroke="black" points="3227.62,-865.929 3232.76,-875.193 3234.52,-864.746 3227.62,-865.929"/>
</g>
<!-- stevedore -->
<g id="node405" class="node"><title>stevedore</title>
<ellipse fill="none" stroke="black" cx="3289.49" cy="-769.188" rx="35.4579" ry="18"/>
<text text-anchor="middle" x="3289.49" y="-766.388" font-family="Times,serif" font-size="11.00">stevedore</text>
</g>
<!-- oslo&#45;&gt;stevedore -->
<g id="edge369" class="edge"><title>oslo-&gt;stevedore</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3201.02,-684.855C3218.13,-701.162 3245.59,-727.333 3265.38,-746.198"/>
<polygon fill="black" stroke="black" points="3263.16,-748.918 3272.81,-753.284 3267.99,-743.851 3263.16,-748.918"/>
</g>
<!-- taskflow -->
<g id="node406" class="node"><title>taskflow</title>
<ellipse fill="none" stroke="black" cx="2958.54" cy="-379.68" rx="33.1473" ry="18"/>
<text text-anchor="middle" x="2958.54" y="-376.88" font-family="Times,serif" font-size="11.00">taskflow</text>
</g>
<!-- oslo&#45;&gt;taskflow -->
<g id="edge370" class="edge"><title>oslo-&gt;taskflow</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3179.9,-651.792C3170.81,-622.822 3150.2,-564.827 3119.77,-523.233 3082.03,-471.647 3023.02,-425.082 2987.83,-399.744"/>
<polygon fill="black" stroke="black" points="2989.6,-396.709 2979.42,-393.769 2985.54,-402.415 2989.6,-396.709"/>
</g>
<!-- tooz -->
<g id="node407" class="node"><title>tooz</title>
<ellipse fill="none" stroke="black" cx="2942.18" cy="-871.8" rx="27" ry="18"/>
<text text-anchor="middle" x="2942.18" y="-869" font-family="Times,serif" font-size="11.00">tooz</text>
</g>
<!-- oslo&#45;&gt;tooz -->
<g id="edge371" class="edge"><title>oslo-&gt;tooz</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M3177.29,-687.177C3167.27,-708.022 3148.43,-743.194 3125.11,-767.883 3082.46,-813.052 3015.73,-844.072 2975.75,-859.806"/>
<polygon fill="black" stroke="black" points="2974.27,-856.624 2966.19,-863.476 2976.78,-863.159 2974.27,-856.624"/>
</g>
<!-- rally -->
<g id="node408" class="node"><title>rally</title>
<ellipse fill="none" stroke="black" cx="1965" cy="-834" rx="27" ry="18"/>
<text text-anchor="middle" x="1965" y="-830.3" font-family="Times,serif" font-size="14.00">rally</text>
</g>
<!-- sahara -->
<g id="node409" class="node"><title>sahara</title>
<ellipse fill="none" stroke="black" cx="387.084" cy="-86.2063" rx="33.2948" ry="18"/>
<text text-anchor="middle" x="387.084" y="-82.5063" font-family="Times,serif" font-size="14.00">sahara</text>
</g>
<!-- python&#45;saharaclient -->
<g id="node410" class="node"><title>python-saharaclient</title>
<ellipse fill="none" stroke="black" cx="430.979" cy="-143.625" rx="62.5783" ry="18"/>
<text text-anchor="middle" x="430.979" y="-140.825" font-family="Times,serif" font-size="11.00">python-saharaclient</text>
</g>
<!-- sahara&#45;&gt;python&#45;saharaclient -->
<g id="edge372" class="edge"><title>sahara-&gt;python-saharaclient</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M400.017,-103.123C403.516,-107.701 407.386,-112.763 411.169,-117.712"/>
<polygon fill="black" stroke="black" points="408.522,-120.012 417.376,-125.831 414.083,-115.761 408.522,-120.012"/>
</g>
<!-- sahara&#45;dashboard -->
<g id="node411" class="node"><title>sahara-dashboard</title>
<ellipse fill="none" stroke="black" cx="363.127" cy="-18" rx="57.2545" ry="18"/>
<text text-anchor="middle" x="363.127" y="-15.2" font-family="Times,serif" font-size="11.00">sahara-dashboard</text>
</g>
<!-- sahara&#45;&gt;sahara&#45;dashboard -->
<g id="edge373" class="edge"><title>sahara-&gt;sahara-dashboard</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M380.79,-68.2859C378.361,-61.3701 375.525,-53.2985 372.847,-45.6721"/>
<polygon fill="black" stroke="black" points="376.079,-44.3126 369.463,-36.0375 369.474,-46.6324 376.079,-44.3126"/>
</g>
<!-- searchlight -->
<g id="node412" class="node"><title>searchlight</title>
<ellipse fill="none" stroke="black" cx="2446.4" cy="-2313" rx="49.2915" ry="18"/>
<text text-anchor="middle" x="2446.4" y="-2309.3" font-family="Times,serif" font-size="14.00">searchlight</text>
</g>
<!-- solum -->
<g id="node413" class="node"><title>solum</title>
<ellipse fill="none" stroke="black" cx="271.923" cy="-2190.89" rx="32.4942" ry="18"/>
<text text-anchor="middle" x="271.923" y="-2187.19" font-family="Times,serif" font-size="14.00">solum</text>
</g>
<!-- python&#45;solumclient -->
<g id="node414" class="node"><title>python-solumclient</title>
<ellipse fill="none" stroke="black" cx="369.081" cy="-2174.23" rx="60.9711" ry="18"/>
<text text-anchor="middle" x="369.081" y="-2171.43" font-family="Times,serif" font-size="11.00">python-solumclient</text>
</g>
<!-- solum&#45;&gt;python&#45;solumclient -->
<g id="edge374" class="edge"><title>solum-&gt;python-solumclient</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M303.199,-2185.53C304.253,-2185.35 305.32,-2185.17 306.397,-2184.98"/>
<polygon fill="black" stroke="black" points="307.031,-2188.43 316.295,-2183.29 305.847,-2181.53 307.031,-2188.43"/>
</g>
<!-- solum&#45;dashboard -->
<g id="node415" class="node"><title>solum-dashboard</title>
<ellipse fill="none" stroke="black" cx="197.46" cy="-2109" rx="55.1467" ry="18"/>
<text text-anchor="middle" x="197.46" y="-2106.2" font-family="Times,serif" font-size="11.00">solum-dashboard</text>
</g>
<!-- solum&#45;&gt;solum&#45;dashboard -->
<g id="edge375" class="edge"><title>solum-&gt;solum-dashboard</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M257.211,-2174.71C246.582,-2163.02 232.03,-2147.02 219.949,-2133.73"/>
<polygon fill="black" stroke="black" points="222.486,-2131.32 213.169,-2126.28 217.307,-2136.03 222.486,-2131.32"/>
</g>
<!-- solum&#45;infra&#45;guestagent -->
<g id="node416" class="node"><title>solum-infra-guestagent</title>
<ellipse fill="none" stroke="black" cx="173.559" cy="-2226.02" rx="71.6184" ry="18"/>
<text text-anchor="middle" x="173.559" y="-2223.22" font-family="Times,serif" font-size="11.00">solum-infra-guestagent</text>
</g>
<!-- solum&#45;&gt;solum&#45;infra&#45;guestagent -->
<g id="edge376" class="edge"><title>solum-&gt;solum-infra-guestagent</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M244.523,-2200.68C238.192,-2202.94 231.257,-2205.41 224.281,-2207.91"/>
<polygon fill="black" stroke="black" points="223.036,-2204.63 214.796,-2211.29 225.39,-2211.23 223.036,-2204.63"/>
</g>
<!-- swift -->
<g id="node417" class="node"><title>swift</title>
<ellipse fill="none" stroke="black" cx="65.4493" cy="-3146.21" rx="28.6953" ry="18"/>
<text text-anchor="middle" x="65.4493" y="-3142.51" font-family="Times,serif" font-size="14.00">swift</text>
</g>
<!-- python&#45;swiftclient -->
<g id="node418" class="node"><title>python-swiftclient</title>
<ellipse fill="none" stroke="black" cx="109.345" cy="-3203.63" rx="58.16" ry="18"/>
<text text-anchor="middle" x="109.345" y="-3200.83" font-family="Times,serif" font-size="11.00">python-swiftclient</text>
</g>
<!-- swift&#45;&gt;python&#45;swiftclient -->
<g id="edge377" class="edge"><title>swift-&gt;python-swiftclient</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M77.9105,-3162.51C81.5699,-3167.29 85.665,-3172.65 89.6591,-3177.87"/>
<polygon fill="black" stroke="black" points="86.9213,-3180.06 95.7752,-3185.88 92.4824,-3175.81 86.9213,-3180.06"/>
</g>
<!-- swift&#45;bench -->
<g id="node419" class="node"><title>swift-bench</title>
<ellipse fill="none" stroke="black" cx="41.4923" cy="-3078" rx="41.4846" ry="18"/>
<text text-anchor="middle" x="41.4923" y="-3075.2" font-family="Times,serif" font-size="11.00">swift-bench</text>
</g>
<!-- swift&#45;&gt;swift&#45;bench -->
<g id="edge378" class="edge"><title>swift-&gt;swift-bench</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M59.1549,-3128.29C56.7258,-3121.37 53.8907,-3113.3 51.2119,-3105.67"/>
<polygon fill="black" stroke="black" points="54.4441,-3104.31 47.8279,-3096.04 47.8397,-3106.63 54.4441,-3104.31"/>
</g>
<!-- tripleo -->
<g id="node420" class="node"><title>tripleo</title>
<ellipse fill="none" stroke="black" cx="2304.21" cy="-408.909" rx="33.5952" ry="18"/>
<text text-anchor="middle" x="2304.21" y="-405.209" font-family="Times,serif" font-size="14.00">tripleo</text>
</g>
<!-- dib&#45;utils -->
<g id="node421" class="node"><title>dib-utils</title>
<ellipse fill="none" stroke="black" cx="2424.55" cy="-465.162" rx="31.7423" ry="18"/>
<text text-anchor="middle" x="2424.55" y="-462.362" font-family="Times,serif" font-size="11.00">dib-utils</text>
</g>
<!-- tripleo&#45;&gt;dib&#45;utils -->
<g id="edge379" class="edge"><title>tripleo-&gt;dib-utils</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2329.73,-420.839C2347.52,-429.154 2371.43,-440.333 2390.8,-449.384"/>
<polygon fill="black" stroke="black" points="2389.35,-452.571 2399.89,-453.635 2392.31,-446.229 2389.35,-452.571"/>
</g>
<!-- diskimage&#45;builder -->
<g id="node422" class="node"><title>diskimage-builder</title>
<ellipse fill="none" stroke="black" cx="2218.25" cy="-224.563" rx="57.9578" ry="18"/>
<text text-anchor="middle" x="2218.25" y="-221.763" font-family="Times,serif" font-size="11.00">diskimage-builder</text>
</g>
<!-- tripleo&#45;&gt;diskimage&#45;builder -->
<g id="edge380" class="edge"><title>tripleo-&gt;diskimage-builder</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2288.32,-392.766C2271.65,-374.828 2246.08,-344.233 2232.77,-312.858 2224.69,-293.82 2221.09,-270.705 2219.49,-252.902"/>
<polygon fill="black" stroke="black" points="2222.97,-252.562 2218.75,-242.847 2215.99,-253.078 2222.97,-252.562"/>
</g>
<!-- instack -->
<g id="node423" class="node"><title>instack</title>
<ellipse fill="none" stroke="black" cx="2231.71" cy="-599.804" rx="28.7291" ry="18"/>
<text text-anchor="middle" x="2231.71" y="-597.004" font-family="Times,serif" font-size="11.00">instack</text>
</g>
<!-- tripleo&#45;&gt;instack -->
<g id="edge381" class="edge"><title>tripleo-&gt;instack</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2291.38,-425.883C2278.17,-444.264 2258.03,-474.94 2247.24,-504.534 2239.3,-526.322 2235.41,-552.391 2233.5,-571.747"/>
<polygon fill="black" stroke="black" points="2230.02,-571.476 2232.64,-581.74 2236.99,-572.08 2230.02,-571.476"/>
</g>
<!-- instack&#45;undercloud -->
<g id="node424" class="node"><title>instack-undercloud</title>
<ellipse fill="none" stroke="black" cx="2309.58" cy="-504.596" rx="60.9711" ry="18"/>
<text text-anchor="middle" x="2309.58" y="-501.796" font-family="Times,serif" font-size="11.00">instack-undercloud</text>
</g>
<!-- tripleo&#45;&gt;instack&#45;undercloud -->
<g id="edge382" class="edge"><title>tripleo-&gt;instack-undercloud</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2305.22,-426.907C2305.99,-440.719 2307.08,-460.056 2307.97,-475.982"/>
<polygon fill="black" stroke="black" points="2304.5,-476.565 2308.55,-486.353 2311.49,-476.173 2304.5,-476.565"/>
</g>
<!-- os&#45;apply&#45;config -->
<g id="node425" class="node"><title>os-apply-config</title>
<ellipse fill="none" stroke="black" cx="2189.38" cy="-475.079" rx="51.931" ry="18"/>
<text text-anchor="middle" x="2189.38" y="-472.279" font-family="Times,serif" font-size="11.00">os-apply-config</text>
</g>
<!-- tripleo&#45;&gt;os&#45;apply&#45;config -->
<g id="edge383" class="edge"><title>tripleo-&gt;os-apply-config</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2281.25,-422.14C2265.16,-431.41 2243.35,-443.979 2225.02,-454.544"/>
<polygon fill="black" stroke="black" points="2223.25,-451.52 2216.34,-459.546 2226.75,-457.585 2223.25,-451.52"/>
</g>
<!-- os&#45;cloud&#45;config -->
<g id="node426" class="node"><title>os-cloud-config</title>
<ellipse fill="none" stroke="black" cx="2062.5" cy="-233.385" rx="51.931" ry="18"/>
<text text-anchor="middle" x="2062.5" y="-230.585" font-family="Times,serif" font-size="11.00">os-cloud-config</text>
</g>
<!-- tripleo&#45;&gt;os&#45;cloud&#45;config -->
<g id="edge384" class="edge"><title>tripleo-&gt;os-cloud-config</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2285.4,-393.906C2267.91,-380.06 2241.03,-359.047 2217.17,-341.484 2175.45,-310.772 2126.26,-276.756 2094.74,-255.236"/>
<polygon fill="black" stroke="black" points="2096.57,-252.251 2086.34,-249.511 2092.63,-258.035 2096.57,-252.251"/>
</g>
<!-- os&#45;collect&#45;config -->
<g id="node427" class="node"><title>os-collect-config</title>
<ellipse fill="none" stroke="black" cx="2554.37" cy="-353.849" rx="55.1467" ry="18"/>
<text text-anchor="middle" x="2554.37" y="-351.049" font-family="Times,serif" font-size="11.00">os-collect-config</text>
</g>
<!-- tripleo&#45;&gt;os&#45;collect&#45;config -->
<g id="edge385" class="edge"><title>tripleo-&gt;os-collect-config</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2335.64,-401.991C2376.4,-393.02 2448.2,-377.217 2498.39,-366.172"/>
<polygon fill="black" stroke="black" points="2499.42,-369.528 2508.43,-363.96 2497.91,-362.692 2499.42,-369.528"/>
</g>
<!-- os&#45;net&#45;config -->
<g id="node428" class="node"><title>os-net-config</title>
<ellipse fill="none" stroke="black" cx="2183.9" cy="-355.235" rx="45.2009" ry="18"/>
<text text-anchor="middle" x="2183.9" y="-352.435" font-family="Times,serif" font-size="11.00">os-net-config</text>
</g>
<!-- tripleo&#45;&gt;os&#45;net&#45;config -->
<g id="edge386" class="edge"><title>tripleo-&gt;os-net-config</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2278.1,-397.263C2262.24,-390.187 2241.67,-381.01 2223.8,-373.038"/>
<polygon fill="black" stroke="black" points="2224.76,-369.632 2214.2,-368.754 2221.9,-376.024 2224.76,-369.632"/>
</g>
<!-- os&#45;refresh&#45;config -->
<g id="node429" class="node"><title>os-refresh-config</title>
<ellipse fill="none" stroke="black" cx="2373.75" cy="-222" rx="55.8489" ry="18"/>
<text text-anchor="middle" x="2373.75" y="-219.2" font-family="Times,serif" font-size="11.00">os-refresh-config</text>
</g>
<!-- tripleo&#45;&gt;os&#45;refresh&#45;config -->
<g id="edge387" class="edge"><title>tripleo-&gt;os-refresh-config</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2314.58,-391.405C2330.27,-364.888 2358.37,-317.16 2359.84,-312.983 2366.99,-292.699 2370.46,-268.596 2372.15,-250.296"/>
<polygon fill="black" stroke="black" points="2375.65,-250.511 2372.95,-240.264 2368.67,-249.953 2375.65,-250.511"/>
</g>
<!-- python&#45;tripleoclient -->
<g id="node430" class="node"><title>python-tripleoclient</title>
<ellipse fill="none" stroke="black" cx="2296.31" cy="-312.92" rx="61.8756" ry="18"/>
<text text-anchor="middle" x="2296.31" y="-310.12" font-family="Times,serif" font-size="11.00">python-tripleoclient</text>
</g>
<!-- tripleo&#45;&gt;python&#45;tripleoclient -->
<g id="edge388" class="edge"><title>tripleo-&gt;python-tripleoclient</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2302.72,-390.854C2301.58,-376.999 2299.98,-357.601 2298.67,-341.625"/>
<polygon fill="black" stroke="black" points="2302.12,-340.9 2297.81,-331.221 2295.14,-341.474 2302.12,-340.9"/>
</g>
<!-- python&#45;tuskarclient -->
<g id="node431" class="node"><title>python-tuskarclient</title>
<ellipse fill="none" stroke="black" cx="2049.74" cy="-361.188" rx="60.9711" ry="18"/>
<text text-anchor="middle" x="2049.74" y="-358.388" font-family="Times,serif" font-size="11.00">python-tuskarclient</text>
</g>
<!-- tripleo&#45;&gt;python&#45;tuskarclient -->
<g id="edge389" class="edge"><title>tripleo-&gt;python-tuskarclient</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2272.23,-402.913C2231.94,-395.357 2161.81,-382.206 2111.04,-372.685"/>
<polygon fill="black" stroke="black" points="2111.63,-369.235 2101.16,-370.832 2110.34,-376.115 2111.63,-369.235"/>
</g>
<!-- tripleo&#45;common -->
<g id="node432" class="node"><title>tripleo-common</title>
<ellipse fill="none" stroke="black" cx="2559.4" cy="-469.544" rx="51.931" ry="18"/>
<text text-anchor="middle" x="2559.4" y="-466.744" font-family="Times,serif" font-size="11.00">tripleo-common</text>
</g>
<!-- tripleo&#45;&gt;tripleo&#45;common -->
<g id="edge390" class="edge"><title>tripleo-&gt;tripleo-common</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2335.24,-416.283C2377.71,-426.373 2454.53,-444.627 2506.26,-456.917"/>
<polygon fill="black" stroke="black" points="2505.71,-460.384 2516.25,-459.291 2507.33,-453.574 2505.71,-460.384"/>
</g>
<!-- tripleo&#45;docs -->
<g id="node433" class="node"><title>tripleo-docs</title>
<ellipse fill="none" stroke="black" cx="2540.19" cy="-593.914" rx="41.4846" ry="18"/>
<text text-anchor="middle" x="2540.19" y="-591.114" font-family="Times,serif" font-size="11.00">tripleo-docs</text>
</g>
<!-- tripleo&#45;&gt;tripleo&#45;docs -->
<g id="edge391" class="edge"><title>tripleo-&gt;tripleo-docs</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2323.52,-424.049C2365.14,-456.68 2463.46,-533.761 2512.03,-571.839"/>
<polygon fill="black" stroke="black" points="2509.91,-574.625 2519.94,-578.04 2514.23,-569.116 2509.91,-574.625"/>
</g>
<!-- tripleo&#45;heat&#45;templates -->
<g id="node434" class="node"><title>tripleo-heat-templates</title>
<ellipse fill="none" stroke="black" cx="2383.33" cy="-598.208" rx="68.6051" ry="18"/>
<text text-anchor="middle" x="2383.33" y="-595.408" font-family="Times,serif" font-size="11.00">tripleo-heat-templates</text>
</g>
<!-- tripleo&#45;&gt;tripleo&#45;heat&#45;templates -->
<g id="edge392" class="edge"><title>tripleo-&gt;tripleo-heat-templates</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2319.49,-425.051C2335.48,-442.975 2359.88,-473.51 2371.91,-504.658 2379.98,-525.553 2382.68,-550.852 2383.45,-569.87"/>
<polygon fill="black" stroke="black" points="2379.96,-570.081 2383.71,-579.991 2386.96,-569.906 2379.96,-570.081"/>
</g>
<!-- tripleo&#45;image&#45;elements -->
<g id="node435" class="node"><title>tripleo-image-elements</title>
<ellipse fill="none" stroke="black" cx="2416.26" cy="-343.71" rx="71.6184" ry="18"/>
<text text-anchor="middle" x="2416.26" y="-340.91" font-family="Times,serif" font-size="11.00">tripleo-image-elements</text>
</g>
<!-- tripleo&#45;&gt;tripleo&#45;image&#45;elements -->
<g id="edge393" class="edge"><title>tripleo-&gt;tripleo-image-elements</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2327.15,-395.558C2342.09,-386.865 2361.92,-375.327 2379.08,-365.343"/>
<polygon fill="black" stroke="black" points="2380.89,-368.341 2387.77,-360.287 2377.37,-362.291 2380.89,-368.341"/>
</g>
<!-- tripleo&#45;incubator -->
<g id="node436" class="node"><title>tripleo-incubator</title>
<ellipse fill="none" stroke="black" cx="2538.54" cy="-229.66" rx="54.2411" ry="18"/>
<text text-anchor="middle" x="2538.54" y="-226.86" font-family="Times,serif" font-size="11.00">tripleo-incubator</text>
</g>
<!-- tripleo&#45;&gt;tripleo&#45;incubator -->
<g id="edge394" class="edge"><title>tripleo-&gt;tripleo-incubator</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2311.86,-391.315C2318.61,-377.23 2329.49,-357.582 2343.1,-343.573 2386.37,-299.068 2450.7,-266.098 2493.6,-247.383"/>
<polygon fill="black" stroke="black" points="2495.13,-250.534 2502.95,-243.382 2492.38,-244.099 2495.13,-250.534"/>
</g>
<!-- tripleo&#45;puppet&#45;elements -->
<g id="node437" class="node"><title>tripleo-puppet-elements</title>
<ellipse fill="none" stroke="black" cx="2069.02" cy="-596.44" rx="73.2267" ry="18"/>
<text text-anchor="middle" x="2069.02" y="-593.64" font-family="Times,serif" font-size="11.00">tripleo-puppet-elements</text>
</g>
<!-- tripleo&#45;&gt;tripleo&#45;puppet&#45;elements -->
<g id="edge395" class="edge"><title>tripleo-&gt;tripleo-puppet-elements</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2289.74,-425.415C2277.55,-439.095 2259.47,-458.865 2242.7,-475.164 2201,-515.689 2144.57,-552.414 2107.5,-574.577"/>
<polygon fill="black" stroke="black" points="2105.34,-571.788 2098.51,-579.891 2108.9,-577.813 2105.34,-571.788"/>
</g>
<!-- tuskar -->
<g id="node438" class="node"><title>tuskar</title>
<ellipse fill="none" stroke="black" cx="2050.19" cy="-475.592" rx="27" ry="18"/>
<text text-anchor="middle" x="2050.19" y="-472.792" font-family="Times,serif" font-size="11.00">tuskar</text>
</g>
<!-- tripleo&#45;&gt;tuskar -->
<g id="edge396" class="edge"><title>tripleo-&gt;tuskar</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2273.82,-416.886C2226.51,-429.305 2135.49,-453.199 2085.4,-466.35"/>
<polygon fill="black" stroke="black" points="2084.44,-462.983 2075.65,-468.908 2086.22,-469.754 2084.44,-462.983"/>
</g>
<!-- trove -->
<g id="node439" class="node"><title>trove</title>
<ellipse fill="none" stroke="black" cx="1098.08" cy="-86.2063" rx="28.6953" ry="18"/>
<text text-anchor="middle" x="1098.08" y="-82.5063" font-family="Times,serif" font-size="14.00">trove</text>
</g>
<!-- python&#45;troveclient -->
<g id="node440" class="node"><title>python-troveclient</title>
<ellipse fill="none" stroke="black" cx="1141.97" cy="-143.625" rx="58.16" ry="18"/>
<text text-anchor="middle" x="1141.97" y="-140.825" font-family="Times,serif" font-size="11.00">python-troveclient</text>
</g>
<!-- trove&#45;&gt;python&#45;troveclient -->
<g id="edge397" class="edge"><title>trove-&gt;python-troveclient</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1110.54,-102.507C1114.2,-107.294 1118.29,-112.65 1122.29,-117.875"/>
<polygon fill="black" stroke="black" points="1119.55,-120.057 1128.4,-125.875 1125.11,-115.805 1119.55,-120.057"/>
</g>
<!-- trove&#45;integration -->
<g id="node441" class="node"><title>trove-integration</title>
<ellipse fill="none" stroke="black" cx="1074.12" cy="-18" rx="54.2411" ry="18"/>
<text text-anchor="middle" x="1074.12" y="-15.2" font-family="Times,serif" font-size="11.00">trove-integration</text>
</g>
<!-- trove&#45;&gt;trove&#45;integration -->
<g id="edge398" class="edge"><title>trove-&gt;trove-integration</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1091.78,-68.2859C1089.35,-61.3701 1086.52,-53.2985 1083.84,-45.6721"/>
<polygon fill="black" stroke="black" points="1087.07,-44.3126 1080.46,-36.0375 1080.47,-46.6324 1087.07,-44.3126"/>
</g>
<!-- zaqar -->
<g id="node442" class="node"><title>zaqar</title>
<ellipse fill="none" stroke="black" cx="2069.9" cy="-2211.08" rx="29.795" ry="18"/>
<text text-anchor="middle" x="2069.9" y="-2207.38" font-family="Times,serif" font-size="14.00">zaqar</text>
</g>
<!-- python&#45;zaqarclient -->
<g id="node443" class="node"><title>python-zaqarclient</title>
<ellipse fill="none" stroke="black" cx="2171.92" cy="-2211" rx="59.5649" ry="18"/>
<text text-anchor="middle" x="2171.92" y="-2208.2" font-family="Times,serif" font-size="11.00">python-zaqarclient</text>
</g>
<!-- zaqar&#45;&gt;python&#45;zaqarclient -->
<g id="edge399" class="edge"><title>zaqar-&gt;python-zaqarclient</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2099.96,-2211.05C2100.56,-2211.05 2101.17,-2211.05 2101.79,-2211.05"/>
<polygon fill="black" stroke="black" points="2102.07,-2214.55 2112.07,-2211.05 2102.06,-2207.55 2102.07,-2214.55"/>
</g>
</g>
</svg>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment