1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
3 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4<!-- Generated by graphviz version 2.43.0 (0)
5 -->
6<!-- Title: %3 Pages: 1 -->
7<svg width="798pt" height="567pt"
8 viewBox="0.00 0.00 797.50 567.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
9<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 563)">
10<title>%3</title>
11<polygon fill="white" stroke="transparent" points="-4,4 -4,-563 793.5,-563 793.5,4 -4,4"/>
12<g id="clust2" class="cluster">
13<title>cluster_android</title>
14<polygon fill="none" stroke="black" points="223,-8 223,-155 533,-155 533,-8 223,-8"/>
15<text text-anchor="middle" x="378" y="-139.8" font-family="Times,serif" font-size="14.00">Android</text>
16</g>
17<!-- browser -->
18<g id="node1" class="node">
19<title>browser</title>
20<ellipse fill="none" stroke="black" cx="190" cy="-541" rx="40.09" ry="18"/>
21<text text-anchor="middle" x="190" y="-537.3" font-family="Times,serif" font-size="14.00">Browser</text>
22</g>
23<!-- webrtc -->
24<g id="node9" class="node">
25<title>webrtc</title>
26<ellipse fill="none" stroke="black" cx="190" cy="-469" rx="34.39" ry="18"/>
27<text text-anchor="middle" x="190" y="-465.3" font-family="Times,serif" font-size="14.00">webrtc</text>
28</g>
29<!-- browser&#45;&gt;webrtc -->
30<g id="edge3" class="edge">
31<title>browser&#45;&gt;webrtc</title>
32<path fill="none" stroke="black" d="M190,-522.7C190,-514.98 190,-505.71 190,-497.11"/>
33<polygon fill="black" stroke="black" points="193.5,-497.1 190,-487.1 186.5,-497.1 193.5,-497.1"/>
34</g>
35<!-- cli -->
36<g id="node2" class="node">
37<title>cli</title>
38<ellipse fill="none" stroke="black" cx="425" cy="-541" rx="44.39" ry="18"/>
39<text text-anchor="middle" x="425" y="-537.3" font-family="Times,serif" font-size="14.00">User CLI</text>
40</g>
41<!-- cvd_import_locations -->
42<g id="node3" class="node">
43<title>cvd_import_locations</title>
44<g id="a_node3"><a xlink:href="https://cs.android.com/android/platform/superproject/+/master:device/google/cuttlefish/host/commands/cvd_import_locations/" xlink:title="cvd_import_locations">
45<ellipse fill="none" stroke="black" cx="330" cy="-469" rx="87.99" ry="18"/>
46<text text-anchor="middle" x="330" y="-465.3" font-family="Times,serif" font-size="14.00">cvd_import_locations</text>
47</a>
48</g>
49</g>
50<!-- cli&#45;&gt;cvd_import_locations -->
51<g id="edge1" class="edge">
52<title>cli&#45;&gt;cvd_import_locations</title>
53<path fill="none" stroke="black" d="M404.39,-524.81C391.61,-515.4 374.97,-503.14 360.67,-492.6"/>
54<polygon fill="black" stroke="black" points="362.69,-489.74 352.57,-486.63 358.54,-495.38 362.69,-489.74"/>
55</g>
56<!-- cvd_update_location -->
57<g id="node4" class="node">
58<title>cvd_update_location</title>
59<g id="a_node4"><a xlink:href="https://cs.android.com/android/platform/superproject/+/master:device/google/cuttlefish/host/commands/cvd_update_location/" xlink:title="cvd_update_location">
60<ellipse fill="none" stroke="black" cx="520" cy="-469" rx="83.69" ry="18"/>
61<text text-anchor="middle" x="520" y="-465.3" font-family="Times,serif" font-size="14.00">cvd_update_location</text>
62</a>
63</g>
64</g>
65<!-- cli&#45;&gt;cvd_update_location -->
66<g id="edge2" class="edge">
67<title>cli&#45;&gt;cvd_update_location</title>
68<path fill="none" stroke="black" d="M445.61,-524.81C458.48,-515.33 475.27,-502.96 489.64,-492.37"/>
69<polygon fill="black" stroke="black" points="491.8,-495.13 497.77,-486.38 487.64,-489.49 491.8,-495.13"/>
70</g>
71<!-- gnss_grpc_server -->
72<g id="node6" class="node">
73<title>gnss_grpc_server</title>
74<polygon fill="none" stroke="black" points="368.5,-415 291.5,-415 291.5,-379 368.5,-379 368.5,-415"/>
75<text text-anchor="middle" x="330" y="-393.3" font-family="Times,serif" font-size="14.00">TCP gRPC</text>
76</g>
77<!-- cvd_import_locations&#45;&gt;gnss_grpc_server -->
78<g id="edge7" class="edge">
79<title>cvd_import_locations&#45;&gt;gnss_grpc_server</title>
80<path fill="none" stroke="black" d="M330,-440.67C330,-435.69 330,-430.49 330,-425.51"/>
81<polygon fill="black" stroke="black" points="326.5,-440.7 330,-450.7 333.5,-440.7 326.5,-440.7"/>
82<polygon fill="black" stroke="black" points="333.5,-425.1 330,-415.1 326.5,-425.1 333.5,-425.1"/>
83</g>
84<!-- cvd_update_location&#45;&gt;gnss_grpc_server -->
85<g id="edge8" class="edge">
86<title>cvd_update_location&#45;&gt;gnss_grpc_server</title>
87<path fill="none" stroke="black" d="M470.16,-449.64C441.76,-439.18 406.36,-426.13 378.23,-415.77"/>
88<polygon fill="black" stroke="black" points="469.11,-452.98 479.71,-453.15 471.53,-446.41 469.11,-452.98"/>
89<polygon fill="black" stroke="black" points="379.21,-412.4 368.61,-412.23 376.79,-418.97 379.21,-412.4"/>
90</g>
91<!-- gnss_grpc_proxy -->
92<g id="node5" class="node">
93<title>gnss_grpc_proxy</title>
94<ellipse fill="none" stroke="black" cx="378" cy="-325" rx="79.89" ry="18"/>
95<text text-anchor="start" x="324.5" y="-322.3" font-family="Times,serif" font-size="14.00"> </text>
96<text text-anchor="start" x="328.5" y="-322.3" font-family="Times,serif" font-weight="bold" font-size="14.00">gnss_grpc_proxy</text>
97<text text-anchor="start" x="427.5" y="-322.3" font-family="Times,serif" font-size="14.00"> </text>
98</g>
99<!-- host_gnss_console_in -->
100<g id="node10" class="node">
101<title>host_gnss_console_in</title>
102<polygon fill="none" stroke="green" points="170,-271 0,-271 0,-235 170,-235 170,-271"/>
103<text text-anchor="middle" x="85" y="-249.3" font-family="Times,serif" font-size="14.00">internal/gnsshvc_fifo_vm.in</text>
104</g>
105<!-- gnss_grpc_proxy&#45;&gt;host_gnss_console_in -->
106<g id="edge11" class="edge">
107<title>gnss_grpc_proxy&#45;&gt;host_gnss_console_in</title>
108<path fill="none" stroke="green" d="M325.28,-311.4C281.03,-300.83 217.08,-285.55 166.28,-273.42"/>
109<polygon fill="green" stroke="green" points="166.84,-269.95 156.3,-271.03 165.21,-276.76 166.84,-269.95"/>
110</g>
111<!-- gnss_grpc_server&#45;&gt;gnss_grpc_proxy -->
112<g id="edge10" class="edge">
113<title>gnss_grpc_server&#45;&gt;gnss_grpc_proxy</title>
114<path fill="none" stroke="black" d="M347.58,-370.36C351.76,-364.26 356.23,-357.75 360.41,-351.65"/>
115<polygon fill="black" stroke="black" points="344.63,-368.47 341.87,-378.7 350.41,-372.43 344.63,-368.47"/>
116<polygon fill="black" stroke="black" points="363.5,-353.33 366.27,-343.1 357.73,-349.37 363.5,-353.33"/>
117</g>
118<!-- run_cvd -->
119<g id="node7" class="node">
120<title>run_cvd</title>
121<g id="a_node7"><a xlink:href="https://cs.android.com/android/platform/superproject/+/master:device/google/cuttlefish/host/commands/run_cvd/" xlink:title="run_cvd">
122<ellipse fill="none" stroke="black" cx="426" cy="-397" rx="39.79" ry="18"/>
123<text text-anchor="middle" x="426" y="-393.3" font-family="Times,serif" font-size="14.00">run_cvd</text>
124</a>
125</g>
126</g>
127<!-- run_cvd&#45;&gt;gnss_grpc_proxy -->
128<g id="edge4" class="edge">
129<title>run_cvd&#45;&gt;gnss_grpc_proxy</title>
130<path fill="none" stroke="black" d="M414.62,-379.41C408.91,-371.08 401.86,-360.8 395.48,-351.49"/>
131<polygon fill="black" stroke="black" points="398.17,-349.22 389.63,-342.96 392.4,-353.18 398.17,-349.22"/>
132</g>
133<!-- vmm -->
134<g id="node8" class="node">
135<title>vmm</title>
136<ellipse fill="none" stroke="black" cx="378" cy="-181" rx="64.19" ry="18"/>
137<text text-anchor="middle" x="378" y="-177.3" font-family="Times,serif" font-size="14.00">crosvm / qemu</text>
138</g>
139<!-- host_gnss_console_out -->
140<g id="node11" class="node">
141<title>host_gnss_console_out</title>
142<polygon fill="none" stroke="green" points="365.5,-271 188.5,-271 188.5,-235 365.5,-235 365.5,-271"/>
143<text text-anchor="middle" x="277" y="-249.3" font-family="Times,serif" font-size="14.00">internal/gnsshvc_fifo_vm.out</text>
144</g>
145<!-- vmm&#45;&gt;host_gnss_console_out -->
146<g id="edge13" class="edge">
147<title>vmm&#45;&gt;host_gnss_console_out</title>
148<path fill="none" stroke="green" d="M354.93,-197.99C341.65,-207.2 324.73,-218.92 310.05,-229.1"/>
149<polygon fill="green" stroke="green" points="307.93,-226.3 301.71,-234.88 311.92,-232.06 307.93,-226.3"/>
150</g>
151<!-- fixed_location_console -->
152<g id="node15" class="node">
153<title>fixed_location_console</title>
154<polygon fill="none" stroke="blue" points="525,-124 387,-124 387,-88 525,-88 525,-124"/>
155<text text-anchor="middle" x="456" y="-102.3" font-family="Times,serif" font-size="14.00">/dev/hvc6 | /dev/gnss1</text>
156</g>
157<!-- vmm&#45;&gt;fixed_location_console -->
158<g id="edge19" class="edge">
159<title>vmm&#45;&gt;fixed_location_console</title>
160<path fill="none" stroke="blue" d="M403.17,-156.44C411.9,-148.27 421.69,-139.11 430.45,-130.91"/>
161<polygon fill="blue" stroke="blue" points="400.61,-154.05 395.7,-163.44 405.39,-159.16 400.61,-154.05"/>
162<polygon fill="blue" stroke="blue" points="432.92,-133.39 437.83,-124.01 428.14,-128.28 432.92,-133.39"/>
163</g>
164<!-- gnss_console -->
165<g id="node16" class="node">
166<title>gnss_console</title>
167<polygon fill="none" stroke="green" points="369,-124 231,-124 231,-88 369,-88 369,-124"/>
168<text text-anchor="middle" x="300" y="-102.3" font-family="Times,serif" font-size="14.00">/dev/hvc5 | /dev/gnss0</text>
169</g>
170<!-- vmm&#45;&gt;gnss_console -->
171<g id="edge20" class="edge">
172<title>vmm&#45;&gt;gnss_console</title>
173<path fill="none" stroke="green" d="M352.83,-156.44C344.1,-148.27 334.31,-139.11 325.55,-130.91"/>
174<polygon fill="green" stroke="green" points="350.61,-159.16 360.3,-163.44 355.39,-154.05 350.61,-159.16"/>
175<polygon fill="green" stroke="green" points="327.86,-128.28 318.17,-124.01 323.08,-133.39 327.86,-128.28"/>
176</g>
177<!-- webrtc&#45;&gt;gnss_grpc_server -->
178<g id="edge9" class="edge">
179<title>webrtc&#45;&gt;gnss_grpc_server</title>
180<path fill="none" stroke="black" d="M223.3,-451.35C242.27,-441.87 266.25,-429.87 286.67,-419.66"/>
181<polygon fill="black" stroke="black" points="221.45,-448.36 214.07,-455.97 224.58,-454.62 221.45,-448.36"/>
182<polygon fill="black" stroke="black" points="288.4,-422.72 295.77,-415.11 285.26,-416.45 288.4,-422.72"/>
183</g>
184<!-- host_gnss_console_in&#45;&gt;vmm -->
185<g id="edge14" class="edge">
186<title>host_gnss_console_in&#45;&gt;vmm</title>
187<path fill="none" stroke="green" d="M156.3,-234.97C206.8,-222.9 273.66,-206.93 320.7,-195.69"/>
188<polygon fill="green" stroke="green" points="321.81,-199.02 330.72,-193.3 320.18,-192.21 321.81,-199.02"/>
189</g>
190<!-- host_gnss_console_out&#45;&gt;gnss_grpc_proxy -->
191<g id="edge12" class="edge">
192<title>host_gnss_console_out&#45;&gt;gnss_grpc_proxy</title>
193<path fill="none" stroke="green" d="M301.71,-271.12C315.05,-280.37 331.68,-291.9 346,-301.82"/>
194<polygon fill="green" stroke="green" points="344.36,-304.94 354.57,-307.76 348.35,-299.19 344.36,-304.94"/>
195</g>
196<!-- host_fixed_location_console_in -->
197<g id="node12" class="node">
198<title>host_fixed_location_console_in</title>
199<polygon fill="none" stroke="blue" points="574,-271 384,-271 384,-235 574,-235 574,-271"/>
200<text text-anchor="middle" x="479" y="-249.3" font-family="Times,serif" font-size="14.00">internal/locationhvc_fifo_vm.in</text>
201</g>
202<!-- host_fixed_location_console_in&#45;&gt;gnss_grpc_proxy -->
203<g id="edge15" class="edge">
204<title>host_fixed_location_console_in&#45;&gt;gnss_grpc_proxy</title>
205<path fill="none" stroke="blue" d="M446.02,-276.86C431.46,-286.95 414.68,-298.58 401.43,-307.76"/>
206<polygon fill="blue" stroke="blue" points="448.07,-279.7 454.29,-271.12 444.08,-273.94 448.07,-279.7"/>
207</g>
208<!-- host_fixed_location_console_in&#45;&gt;vmm -->
209<g id="edge18" class="edge">
210<title>host_fixed_location_console_in&#45;&gt;vmm</title>
211<path fill="none" stroke="blue" d="M445.95,-229.1C431.27,-218.92 414.35,-207.2 401.07,-197.99"/>
212<polygon fill="blue" stroke="blue" points="444.08,-232.06 454.29,-234.88 448.07,-226.3 444.08,-232.06"/>
213</g>
214<!-- host_fixed_location_console_out -->
215<g id="node13" class="node">
216<title>host_fixed_location_console_out</title>
217<polygon fill="none" stroke="blue" points="789.5,-271 592.5,-271 592.5,-235 789.5,-235 789.5,-271"/>
218<text text-anchor="middle" x="691" y="-249.3" font-family="Times,serif" font-size="14.00">internal/locationhvc_fifo_vm.out</text>
219</g>
220<!-- host_fixed_location_console_out&#45;&gt;gnss_grpc_proxy -->
221<g id="edge16" class="edge">
222<title>host_fixed_location_console_out&#45;&gt;gnss_grpc_proxy</title>
223<path fill="none" stroke="blue" d="M614.83,-271.03C562.08,-282.83 492.61,-298.37 442.57,-309.56"/>
224<polygon fill="blue" stroke="blue" points="441.52,-306.21 432.52,-311.81 443.04,-313.04 441.52,-306.21"/>
225</g>
226<!-- host_fixed_location_console_out&#45;&gt;vmm -->
227<g id="edge17" class="edge">
228<title>host_fixed_location_console_out&#45;&gt;vmm</title>
229<path fill="none" stroke="blue" d="M614.83,-234.97C559.87,-222.67 486.76,-206.32 436.39,-195.06"/>
230<polygon fill="blue" stroke="blue" points="437.15,-191.64 426.63,-192.88 435.62,-198.47 437.15,-191.64"/>
231</g>
232<!-- gnss_hal -->
233<g id="node14" class="node">
234<title>gnss_hal</title>
235<g id="a_node14"><a xlink:href="https://cs.android.com/android/platform/superproject/+/master:hardware/interfaces/gnss/aidl/default/" xlink:title="vendor.gnss&#45;default">
236<ellipse fill="none" stroke="black" cx="378" cy="-34" rx="79.89" ry="18"/>
237<text text-anchor="middle" x="378" y="-30.3" font-family="Times,serif" font-size="14.00">vendor.gnss&#45;default</text>
238</a>
239</g>
240</g>
241<!-- fixed_location_console&#45;&gt;gnss_hal -->
242<g id="edge5" class="edge">
243<title>fixed_location_console&#45;&gt;gnss_hal</title>
244<path fill="none" stroke="blue" d="M429.18,-80.93C421.11,-73.68 412.26,-65.75 404.23,-58.54"/>
245<polygon fill="blue" stroke="blue" points="426.94,-83.62 436.72,-87.7 431.61,-78.41 426.94,-83.62"/>
246<polygon fill="blue" stroke="blue" points="406.3,-55.7 396.52,-51.62 401.63,-60.91 406.3,-55.7"/>
247</g>
248<!-- gnss_console&#45;&gt;gnss_hal -->
249<g id="edge6" class="edge">
250<title>gnss_console&#45;&gt;gnss_hal</title>
251<path fill="none" stroke="green" d="M326.82,-80.93C334.89,-73.68 343.74,-65.75 351.77,-58.54"/>
252<polygon fill="green" stroke="green" points="324.39,-78.41 319.28,-87.7 329.06,-83.62 324.39,-78.41"/>
253<polygon fill="green" stroke="green" points="354.37,-60.91 359.48,-51.62 349.7,-55.7 354.37,-60.91"/>
254</g>
255</g>
256</svg>
257