• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1//
2// Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8//     http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15//
16// Author: Eric Sullivan <esullivan@nvidia.com>
17//
18
19// This code is used to pass on device (including physical device) extensions through the call chain. It must do this without
20// creating a stack frame, because the actual parameters of the call are not known. Since the first parameter is known to be a
21// VkPhysicalDevice or a dispatchable object it can unwrap the object, possibly overwriting the wrapped physical device, and then
22// jump to the next function in the call chain
23
24.include "gen_defines.asm"
25
26.if AARCH_64
27
28.macro PhysDevExtTramp num
29.global vkPhysDevExtTramp\num
30#if defined(__ELF__)
31 .hidden vkPhysDevExtTramp\num
32#endif
33.balign 4
34
35vkPhysDevExtTramp\num:
36    ldr     x9, [x0]                                                 // Load the loader_instance_dispatch_table* into x9
37    ldr     x0, [x0, PHYS_DEV_OFFSET_PHYS_DEV_TRAMP]                 // Load the unwrapped VkPhysicalDevice into x0
38    mov     x10, (PHYS_DEV_OFFSET_INST_DISPATCH + (PTR_SIZE * \num)) // Put the offset of the entry in the dispatch table for the function
39    ldr     x11, [x9, x10]                                           // Load the address to branch to out of the dispatch table
40    br      x11                                                      // Branch to the next member of the dispatch chain
41.endm
42
43.macro PhysDevExtTermin num
44.global vkPhysDevExtTermin\num
45#if defined(__ELF__)
46 .hidden vkPhysDevExtTermin\num
47#endif
48.balign 4
49vkPhysDevExtTermin\num:
50    ldr     x9, [x0, ICD_TERM_OFFSET_PHYS_DEV_TERM]             // Load the loader_icd_term* in x9
51    mov     x11, (DISPATCH_OFFSET_ICD_TERM + (PTR_SIZE * \num)) // Put the offset into the dispatch table in x11
52    ldr     x10, [x9, x11]                                      // Load the address of the next function in the dispatch chain
53    cbz     x10, terminError\num                                // Go to the error section if the next function in the chain is NULL
54    ldr     x0, [x0, PHYS_DEV_OFFSET_PHYS_DEV_TERM]             // Unwrap the VkPhysicalDevice in x0
55    br      x10                                                 // Jump to the next function in the chain
56terminError\num:
57    mov     x10, (FUNCTION_OFFSET_INSTANCE + (CHAR_PTR_SIZE * \num)) // Offset of the function name string in the instance
58    ldr     x11, [x9, INSTANCE_OFFSET_ICD_TERM]   // Load the instance pointer
59    mov     x0, x11                               // Vulkan instance pointer (first arg)
60    mov     x1, VULKAN_LOADER_ERROR_BIT           // The error logging bit (second arg)
61    mov     x2, #0                                // Zero (third arg)
62    ldr     x3, [x11, x10]                        // The function name (fourth arg)
63    bl      loader_log_asm_function_not_supported // Log the error message before we crash
64    mov     x0, #0
65    br      x0                                    // Crash intentionally by jumping to address zero
66.endm
67
68.macro DevExtTramp num
69.global vkdev_ext\num
70#if defined(__ELF__)
71 .hidden vkdev_ext\num
72#endif
73.balign 4
74vkdev_ext\num:
75    ldr     x9, [x0]                                              // Load the loader_instance_dispatch_table* into x9
76    mov     x10, (EXT_OFFSET_DEVICE_DISPATCH + (PTR_SIZE * \num)) // Offset of the desired function in the dispatch table
77    ldr     x11, [x9, x10]                                        // Load the function address
78    br      x11
79.endm
80
81.endif
82
83#if defined(__ELF__)
84.section .note.GNU-stack,"",%progbits
85#endif
86
87.data
88
89termin_error_string:
90.string "Function %s not supported for this physical device"
91
92.text
93
94    PhysDevExtTramp 0
95    PhysDevExtTramp 1
96    PhysDevExtTramp 2
97    PhysDevExtTramp 3
98    PhysDevExtTramp 4
99    PhysDevExtTramp 5
100    PhysDevExtTramp 6
101    PhysDevExtTramp 7
102    PhysDevExtTramp 8
103    PhysDevExtTramp 9
104    PhysDevExtTramp 10
105    PhysDevExtTramp 11
106    PhysDevExtTramp 12
107    PhysDevExtTramp 13
108    PhysDevExtTramp 14
109    PhysDevExtTramp 15
110    PhysDevExtTramp 16
111    PhysDevExtTramp 17
112    PhysDevExtTramp 18
113    PhysDevExtTramp 19
114    PhysDevExtTramp 20
115    PhysDevExtTramp 21
116    PhysDevExtTramp 22
117    PhysDevExtTramp 23
118    PhysDevExtTramp 24
119    PhysDevExtTramp 25
120    PhysDevExtTramp 26
121    PhysDevExtTramp 27
122    PhysDevExtTramp 28
123    PhysDevExtTramp 29
124    PhysDevExtTramp 30
125    PhysDevExtTramp 31
126    PhysDevExtTramp 32
127    PhysDevExtTramp 33
128    PhysDevExtTramp 34
129    PhysDevExtTramp 35
130    PhysDevExtTramp 36
131    PhysDevExtTramp 37
132    PhysDevExtTramp 38
133    PhysDevExtTramp 39
134    PhysDevExtTramp 40
135    PhysDevExtTramp 41
136    PhysDevExtTramp 42
137    PhysDevExtTramp 43
138    PhysDevExtTramp 44
139    PhysDevExtTramp 45
140    PhysDevExtTramp 46
141    PhysDevExtTramp 47
142    PhysDevExtTramp 48
143    PhysDevExtTramp 49
144    PhysDevExtTramp 50
145    PhysDevExtTramp 51
146    PhysDevExtTramp 52
147    PhysDevExtTramp 53
148    PhysDevExtTramp 54
149    PhysDevExtTramp 55
150    PhysDevExtTramp 56
151    PhysDevExtTramp 57
152    PhysDevExtTramp 58
153    PhysDevExtTramp 59
154    PhysDevExtTramp 60
155    PhysDevExtTramp 61
156    PhysDevExtTramp 62
157    PhysDevExtTramp 63
158    PhysDevExtTramp 64
159    PhysDevExtTramp 65
160    PhysDevExtTramp 66
161    PhysDevExtTramp 67
162    PhysDevExtTramp 68
163    PhysDevExtTramp 69
164    PhysDevExtTramp 70
165    PhysDevExtTramp 71
166    PhysDevExtTramp 72
167    PhysDevExtTramp 73
168    PhysDevExtTramp 74
169    PhysDevExtTramp 75
170    PhysDevExtTramp 76
171    PhysDevExtTramp 77
172    PhysDevExtTramp 78
173    PhysDevExtTramp 79
174    PhysDevExtTramp 80
175    PhysDevExtTramp 81
176    PhysDevExtTramp 82
177    PhysDevExtTramp 83
178    PhysDevExtTramp 84
179    PhysDevExtTramp 85
180    PhysDevExtTramp 86
181    PhysDevExtTramp 87
182    PhysDevExtTramp 88
183    PhysDevExtTramp 89
184    PhysDevExtTramp 90
185    PhysDevExtTramp 91
186    PhysDevExtTramp 92
187    PhysDevExtTramp 93
188    PhysDevExtTramp 94
189    PhysDevExtTramp 95
190    PhysDevExtTramp 96
191    PhysDevExtTramp 97
192    PhysDevExtTramp 98
193    PhysDevExtTramp 99
194    PhysDevExtTramp 100
195    PhysDevExtTramp 101
196    PhysDevExtTramp 102
197    PhysDevExtTramp 103
198    PhysDevExtTramp 104
199    PhysDevExtTramp 105
200    PhysDevExtTramp 106
201    PhysDevExtTramp 107
202    PhysDevExtTramp 108
203    PhysDevExtTramp 109
204    PhysDevExtTramp 110
205    PhysDevExtTramp 111
206    PhysDevExtTramp 112
207    PhysDevExtTramp 113
208    PhysDevExtTramp 114
209    PhysDevExtTramp 115
210    PhysDevExtTramp 116
211    PhysDevExtTramp 117
212    PhysDevExtTramp 118
213    PhysDevExtTramp 119
214    PhysDevExtTramp 120
215    PhysDevExtTramp 121
216    PhysDevExtTramp 122
217    PhysDevExtTramp 123
218    PhysDevExtTramp 124
219    PhysDevExtTramp 125
220    PhysDevExtTramp 126
221    PhysDevExtTramp 127
222    PhysDevExtTramp 128
223    PhysDevExtTramp 129
224    PhysDevExtTramp 130
225    PhysDevExtTramp 131
226    PhysDevExtTramp 132
227    PhysDevExtTramp 133
228    PhysDevExtTramp 134
229    PhysDevExtTramp 135
230    PhysDevExtTramp 136
231    PhysDevExtTramp 137
232    PhysDevExtTramp 138
233    PhysDevExtTramp 139
234    PhysDevExtTramp 140
235    PhysDevExtTramp 141
236    PhysDevExtTramp 142
237    PhysDevExtTramp 143
238    PhysDevExtTramp 144
239    PhysDevExtTramp 145
240    PhysDevExtTramp 146
241    PhysDevExtTramp 147
242    PhysDevExtTramp 148
243    PhysDevExtTramp 149
244    PhysDevExtTramp 150
245    PhysDevExtTramp 151
246    PhysDevExtTramp 152
247    PhysDevExtTramp 153
248    PhysDevExtTramp 154
249    PhysDevExtTramp 155
250    PhysDevExtTramp 156
251    PhysDevExtTramp 157
252    PhysDevExtTramp 158
253    PhysDevExtTramp 159
254    PhysDevExtTramp 160
255    PhysDevExtTramp 161
256    PhysDevExtTramp 162
257    PhysDevExtTramp 163
258    PhysDevExtTramp 164
259    PhysDevExtTramp 165
260    PhysDevExtTramp 166
261    PhysDevExtTramp 167
262    PhysDevExtTramp 168
263    PhysDevExtTramp 169
264    PhysDevExtTramp 170
265    PhysDevExtTramp 171
266    PhysDevExtTramp 172
267    PhysDevExtTramp 173
268    PhysDevExtTramp 174
269    PhysDevExtTramp 175
270    PhysDevExtTramp 176
271    PhysDevExtTramp 177
272    PhysDevExtTramp 178
273    PhysDevExtTramp 179
274    PhysDevExtTramp 180
275    PhysDevExtTramp 181
276    PhysDevExtTramp 182
277    PhysDevExtTramp 183
278    PhysDevExtTramp 184
279    PhysDevExtTramp 185
280    PhysDevExtTramp 186
281    PhysDevExtTramp 187
282    PhysDevExtTramp 188
283    PhysDevExtTramp 189
284    PhysDevExtTramp 190
285    PhysDevExtTramp 191
286    PhysDevExtTramp 192
287    PhysDevExtTramp 193
288    PhysDevExtTramp 194
289    PhysDevExtTramp 195
290    PhysDevExtTramp 196
291    PhysDevExtTramp 197
292    PhysDevExtTramp 198
293    PhysDevExtTramp 199
294    PhysDevExtTramp 200
295    PhysDevExtTramp 201
296    PhysDevExtTramp 202
297    PhysDevExtTramp 203
298    PhysDevExtTramp 204
299    PhysDevExtTramp 205
300    PhysDevExtTramp 206
301    PhysDevExtTramp 207
302    PhysDevExtTramp 208
303    PhysDevExtTramp 209
304    PhysDevExtTramp 210
305    PhysDevExtTramp 211
306    PhysDevExtTramp 212
307    PhysDevExtTramp 213
308    PhysDevExtTramp 214
309    PhysDevExtTramp 215
310    PhysDevExtTramp 216
311    PhysDevExtTramp 217
312    PhysDevExtTramp 218
313    PhysDevExtTramp 219
314    PhysDevExtTramp 220
315    PhysDevExtTramp 221
316    PhysDevExtTramp 222
317    PhysDevExtTramp 223
318    PhysDevExtTramp 224
319    PhysDevExtTramp 225
320    PhysDevExtTramp 226
321    PhysDevExtTramp 227
322    PhysDevExtTramp 228
323    PhysDevExtTramp 229
324    PhysDevExtTramp 230
325    PhysDevExtTramp 231
326    PhysDevExtTramp 232
327    PhysDevExtTramp 233
328    PhysDevExtTramp 234
329    PhysDevExtTramp 235
330    PhysDevExtTramp 236
331    PhysDevExtTramp 237
332    PhysDevExtTramp 238
333    PhysDevExtTramp 239
334    PhysDevExtTramp 240
335    PhysDevExtTramp 241
336    PhysDevExtTramp 242
337    PhysDevExtTramp 243
338    PhysDevExtTramp 244
339    PhysDevExtTramp 245
340    PhysDevExtTramp 246
341    PhysDevExtTramp 247
342    PhysDevExtTramp 248
343    PhysDevExtTramp 249
344
345    PhysDevExtTermin 0
346    PhysDevExtTermin 1
347    PhysDevExtTermin 2
348    PhysDevExtTermin 3
349    PhysDevExtTermin 4
350    PhysDevExtTermin 5
351    PhysDevExtTermin 6
352    PhysDevExtTermin 7
353    PhysDevExtTermin 8
354    PhysDevExtTermin 9
355    PhysDevExtTermin 10
356    PhysDevExtTermin 11
357    PhysDevExtTermin 12
358    PhysDevExtTermin 13
359    PhysDevExtTermin 14
360    PhysDevExtTermin 15
361    PhysDevExtTermin 16
362    PhysDevExtTermin 17
363    PhysDevExtTermin 18
364    PhysDevExtTermin 19
365    PhysDevExtTermin 20
366    PhysDevExtTermin 21
367    PhysDevExtTermin 22
368    PhysDevExtTermin 23
369    PhysDevExtTermin 24
370    PhysDevExtTermin 25
371    PhysDevExtTermin 26
372    PhysDevExtTermin 27
373    PhysDevExtTermin 28
374    PhysDevExtTermin 29
375    PhysDevExtTermin 30
376    PhysDevExtTermin 31
377    PhysDevExtTermin 32
378    PhysDevExtTermin 33
379    PhysDevExtTermin 34
380    PhysDevExtTermin 35
381    PhysDevExtTermin 36
382    PhysDevExtTermin 37
383    PhysDevExtTermin 38
384    PhysDevExtTermin 39
385    PhysDevExtTermin 40
386    PhysDevExtTermin 41
387    PhysDevExtTermin 42
388    PhysDevExtTermin 43
389    PhysDevExtTermin 44
390    PhysDevExtTermin 45
391    PhysDevExtTermin 46
392    PhysDevExtTermin 47
393    PhysDevExtTermin 48
394    PhysDevExtTermin 49
395    PhysDevExtTermin 50
396    PhysDevExtTermin 51
397    PhysDevExtTermin 52
398    PhysDevExtTermin 53
399    PhysDevExtTermin 54
400    PhysDevExtTermin 55
401    PhysDevExtTermin 56
402    PhysDevExtTermin 57
403    PhysDevExtTermin 58
404    PhysDevExtTermin 59
405    PhysDevExtTermin 60
406    PhysDevExtTermin 61
407    PhysDevExtTermin 62
408    PhysDevExtTermin 63
409    PhysDevExtTermin 64
410    PhysDevExtTermin 65
411    PhysDevExtTermin 66
412    PhysDevExtTermin 67
413    PhysDevExtTermin 68
414    PhysDevExtTermin 69
415    PhysDevExtTermin 70
416    PhysDevExtTermin 71
417    PhysDevExtTermin 72
418    PhysDevExtTermin 73
419    PhysDevExtTermin 74
420    PhysDevExtTermin 75
421    PhysDevExtTermin 76
422    PhysDevExtTermin 77
423    PhysDevExtTermin 78
424    PhysDevExtTermin 79
425    PhysDevExtTermin 80
426    PhysDevExtTermin 81
427    PhysDevExtTermin 82
428    PhysDevExtTermin 83
429    PhysDevExtTermin 84
430    PhysDevExtTermin 85
431    PhysDevExtTermin 86
432    PhysDevExtTermin 87
433    PhysDevExtTermin 88
434    PhysDevExtTermin 89
435    PhysDevExtTermin 90
436    PhysDevExtTermin 91
437    PhysDevExtTermin 92
438    PhysDevExtTermin 93
439    PhysDevExtTermin 94
440    PhysDevExtTermin 95
441    PhysDevExtTermin 96
442    PhysDevExtTermin 97
443    PhysDevExtTermin 98
444    PhysDevExtTermin 99
445    PhysDevExtTermin 100
446    PhysDevExtTermin 101
447    PhysDevExtTermin 102
448    PhysDevExtTermin 103
449    PhysDevExtTermin 104
450    PhysDevExtTermin 105
451    PhysDevExtTermin 106
452    PhysDevExtTermin 107
453    PhysDevExtTermin 108
454    PhysDevExtTermin 109
455    PhysDevExtTermin 110
456    PhysDevExtTermin 111
457    PhysDevExtTermin 112
458    PhysDevExtTermin 113
459    PhysDevExtTermin 114
460    PhysDevExtTermin 115
461    PhysDevExtTermin 116
462    PhysDevExtTermin 117
463    PhysDevExtTermin 118
464    PhysDevExtTermin 119
465    PhysDevExtTermin 120
466    PhysDevExtTermin 121
467    PhysDevExtTermin 122
468    PhysDevExtTermin 123
469    PhysDevExtTermin 124
470    PhysDevExtTermin 125
471    PhysDevExtTermin 126
472    PhysDevExtTermin 127
473    PhysDevExtTermin 128
474    PhysDevExtTermin 129
475    PhysDevExtTermin 130
476    PhysDevExtTermin 131
477    PhysDevExtTermin 132
478    PhysDevExtTermin 133
479    PhysDevExtTermin 134
480    PhysDevExtTermin 135
481    PhysDevExtTermin 136
482    PhysDevExtTermin 137
483    PhysDevExtTermin 138
484    PhysDevExtTermin 139
485    PhysDevExtTermin 140
486    PhysDevExtTermin 141
487    PhysDevExtTermin 142
488    PhysDevExtTermin 143
489    PhysDevExtTermin 144
490    PhysDevExtTermin 145
491    PhysDevExtTermin 146
492    PhysDevExtTermin 147
493    PhysDevExtTermin 148
494    PhysDevExtTermin 149
495    PhysDevExtTermin 150
496    PhysDevExtTermin 151
497    PhysDevExtTermin 152
498    PhysDevExtTermin 153
499    PhysDevExtTermin 154
500    PhysDevExtTermin 155
501    PhysDevExtTermin 156
502    PhysDevExtTermin 157
503    PhysDevExtTermin 158
504    PhysDevExtTermin 159
505    PhysDevExtTermin 160
506    PhysDevExtTermin 161
507    PhysDevExtTermin 162
508    PhysDevExtTermin 163
509    PhysDevExtTermin 164
510    PhysDevExtTermin 165
511    PhysDevExtTermin 166
512    PhysDevExtTermin 167
513    PhysDevExtTermin 168
514    PhysDevExtTermin 169
515    PhysDevExtTermin 170
516    PhysDevExtTermin 171
517    PhysDevExtTermin 172
518    PhysDevExtTermin 173
519    PhysDevExtTermin 174
520    PhysDevExtTermin 175
521    PhysDevExtTermin 176
522    PhysDevExtTermin 177
523    PhysDevExtTermin 178
524    PhysDevExtTermin 179
525    PhysDevExtTermin 180
526    PhysDevExtTermin 181
527    PhysDevExtTermin 182
528    PhysDevExtTermin 183
529    PhysDevExtTermin 184
530    PhysDevExtTermin 185
531    PhysDevExtTermin 186
532    PhysDevExtTermin 187
533    PhysDevExtTermin 188
534    PhysDevExtTermin 189
535    PhysDevExtTermin 190
536    PhysDevExtTermin 191
537    PhysDevExtTermin 192
538    PhysDevExtTermin 193
539    PhysDevExtTermin 194
540    PhysDevExtTermin 195
541    PhysDevExtTermin 196
542    PhysDevExtTermin 197
543    PhysDevExtTermin 198
544    PhysDevExtTermin 199
545    PhysDevExtTermin 200
546    PhysDevExtTermin 201
547    PhysDevExtTermin 202
548    PhysDevExtTermin 203
549    PhysDevExtTermin 204
550    PhysDevExtTermin 205
551    PhysDevExtTermin 206
552    PhysDevExtTermin 207
553    PhysDevExtTermin 208
554    PhysDevExtTermin 209
555    PhysDevExtTermin 210
556    PhysDevExtTermin 211
557    PhysDevExtTermin 212
558    PhysDevExtTermin 213
559    PhysDevExtTermin 214
560    PhysDevExtTermin 215
561    PhysDevExtTermin 216
562    PhysDevExtTermin 217
563    PhysDevExtTermin 218
564    PhysDevExtTermin 219
565    PhysDevExtTermin 220
566    PhysDevExtTermin 221
567    PhysDevExtTermin 222
568    PhysDevExtTermin 223
569    PhysDevExtTermin 224
570    PhysDevExtTermin 225
571    PhysDevExtTermin 226
572    PhysDevExtTermin 227
573    PhysDevExtTermin 228
574    PhysDevExtTermin 229
575    PhysDevExtTermin 230
576    PhysDevExtTermin 231
577    PhysDevExtTermin 232
578    PhysDevExtTermin 233
579    PhysDevExtTermin 234
580    PhysDevExtTermin 235
581    PhysDevExtTermin 236
582    PhysDevExtTermin 237
583    PhysDevExtTermin 238
584    PhysDevExtTermin 239
585    PhysDevExtTermin 240
586    PhysDevExtTermin 241
587    PhysDevExtTermin 242
588    PhysDevExtTermin 243
589    PhysDevExtTermin 244
590    PhysDevExtTermin 245
591    PhysDevExtTermin 246
592    PhysDevExtTermin 247
593    PhysDevExtTermin 248
594    PhysDevExtTermin 249
595
596    DevExtTramp 0
597    DevExtTramp 1
598    DevExtTramp 2
599    DevExtTramp 3
600    DevExtTramp 4
601    DevExtTramp 5
602    DevExtTramp 6
603    DevExtTramp 7
604    DevExtTramp 8
605    DevExtTramp 9
606    DevExtTramp 10
607    DevExtTramp 11
608    DevExtTramp 12
609    DevExtTramp 13
610    DevExtTramp 14
611    DevExtTramp 15
612    DevExtTramp 16
613    DevExtTramp 17
614    DevExtTramp 18
615    DevExtTramp 19
616    DevExtTramp 20
617    DevExtTramp 21
618    DevExtTramp 22
619    DevExtTramp 23
620    DevExtTramp 24
621    DevExtTramp 25
622    DevExtTramp 26
623    DevExtTramp 27
624    DevExtTramp 28
625    DevExtTramp 29
626    DevExtTramp 30
627    DevExtTramp 31
628    DevExtTramp 32
629    DevExtTramp 33
630    DevExtTramp 34
631    DevExtTramp 35
632    DevExtTramp 36
633    DevExtTramp 37
634    DevExtTramp 38
635    DevExtTramp 39
636    DevExtTramp 40
637    DevExtTramp 41
638    DevExtTramp 42
639    DevExtTramp 43
640    DevExtTramp 44
641    DevExtTramp 45
642    DevExtTramp 46
643    DevExtTramp 47
644    DevExtTramp 48
645    DevExtTramp 49
646    DevExtTramp 50
647    DevExtTramp 51
648    DevExtTramp 52
649    DevExtTramp 53
650    DevExtTramp 54
651    DevExtTramp 55
652    DevExtTramp 56
653    DevExtTramp 57
654    DevExtTramp 58
655    DevExtTramp 59
656    DevExtTramp 60
657    DevExtTramp 61
658    DevExtTramp 62
659    DevExtTramp 63
660    DevExtTramp 64
661    DevExtTramp 65
662    DevExtTramp 66
663    DevExtTramp 67
664    DevExtTramp 68
665    DevExtTramp 69
666    DevExtTramp 70
667    DevExtTramp 71
668    DevExtTramp 72
669    DevExtTramp 73
670    DevExtTramp 74
671    DevExtTramp 75
672    DevExtTramp 76
673    DevExtTramp 77
674    DevExtTramp 78
675    DevExtTramp 79
676    DevExtTramp 80
677    DevExtTramp 81
678    DevExtTramp 82
679    DevExtTramp 83
680    DevExtTramp 84
681    DevExtTramp 85
682    DevExtTramp 86
683    DevExtTramp 87
684    DevExtTramp 88
685    DevExtTramp 89
686    DevExtTramp 90
687    DevExtTramp 91
688    DevExtTramp 92
689    DevExtTramp 93
690    DevExtTramp 94
691    DevExtTramp 95
692    DevExtTramp 96
693    DevExtTramp 97
694    DevExtTramp 98
695    DevExtTramp 99
696    DevExtTramp 100
697    DevExtTramp 101
698    DevExtTramp 102
699    DevExtTramp 103
700    DevExtTramp 104
701    DevExtTramp 105
702    DevExtTramp 106
703    DevExtTramp 107
704    DevExtTramp 108
705    DevExtTramp 109
706    DevExtTramp 110
707    DevExtTramp 111
708    DevExtTramp 112
709    DevExtTramp 113
710    DevExtTramp 114
711    DevExtTramp 115
712    DevExtTramp 116
713    DevExtTramp 117
714    DevExtTramp 118
715    DevExtTramp 119
716    DevExtTramp 120
717    DevExtTramp 121
718    DevExtTramp 122
719    DevExtTramp 123
720    DevExtTramp 124
721    DevExtTramp 125
722    DevExtTramp 126
723    DevExtTramp 127
724    DevExtTramp 128
725    DevExtTramp 129
726    DevExtTramp 130
727    DevExtTramp 131
728    DevExtTramp 132
729    DevExtTramp 133
730    DevExtTramp 134
731    DevExtTramp 135
732    DevExtTramp 136
733    DevExtTramp 137
734    DevExtTramp 138
735    DevExtTramp 139
736    DevExtTramp 140
737    DevExtTramp 141
738    DevExtTramp 142
739    DevExtTramp 143
740    DevExtTramp 144
741    DevExtTramp 145
742    DevExtTramp 146
743    DevExtTramp 147
744    DevExtTramp 148
745    DevExtTramp 149
746    DevExtTramp 150
747    DevExtTramp 151
748    DevExtTramp 152
749    DevExtTramp 153
750    DevExtTramp 154
751    DevExtTramp 155
752    DevExtTramp 156
753    DevExtTramp 157
754    DevExtTramp 158
755    DevExtTramp 159
756    DevExtTramp 160
757    DevExtTramp 161
758    DevExtTramp 162
759    DevExtTramp 163
760    DevExtTramp 164
761    DevExtTramp 165
762    DevExtTramp 166
763    DevExtTramp 167
764    DevExtTramp 168
765    DevExtTramp 169
766    DevExtTramp 170
767    DevExtTramp 171
768    DevExtTramp 172
769    DevExtTramp 173
770    DevExtTramp 174
771    DevExtTramp 175
772    DevExtTramp 176
773    DevExtTramp 177
774    DevExtTramp 178
775    DevExtTramp 179
776    DevExtTramp 180
777    DevExtTramp 181
778    DevExtTramp 182
779    DevExtTramp 183
780    DevExtTramp 184
781    DevExtTramp 185
782    DevExtTramp 186
783    DevExtTramp 187
784    DevExtTramp 188
785    DevExtTramp 189
786    DevExtTramp 190
787    DevExtTramp 191
788    DevExtTramp 192
789    DevExtTramp 193
790    DevExtTramp 194
791    DevExtTramp 195
792    DevExtTramp 196
793    DevExtTramp 197
794    DevExtTramp 198
795    DevExtTramp 199
796    DevExtTramp 200
797    DevExtTramp 201
798    DevExtTramp 202
799    DevExtTramp 203
800    DevExtTramp 204
801    DevExtTramp 205
802    DevExtTramp 206
803    DevExtTramp 207
804    DevExtTramp 208
805    DevExtTramp 209
806    DevExtTramp 210
807    DevExtTramp 211
808    DevExtTramp 212
809    DevExtTramp 213
810    DevExtTramp 214
811    DevExtTramp 215
812    DevExtTramp 216
813    DevExtTramp 217
814    DevExtTramp 218
815    DevExtTramp 219
816    DevExtTramp 220
817    DevExtTramp 221
818    DevExtTramp 222
819    DevExtTramp 223
820    DevExtTramp 224
821    DevExtTramp 225
822    DevExtTramp 226
823    DevExtTramp 227
824    DevExtTramp 228
825    DevExtTramp 229
826    DevExtTramp 230
827    DevExtTramp 231
828    DevExtTramp 232
829    DevExtTramp 233
830    DevExtTramp 234
831    DevExtTramp 235
832    DevExtTramp 236
833    DevExtTramp 237
834    DevExtTramp 238
835    DevExtTramp 239
836    DevExtTramp 240
837    DevExtTramp 241
838    DevExtTramp 242
839    DevExtTramp 243
840    DevExtTramp 244
841    DevExtTramp 245
842    DevExtTramp 246
843    DevExtTramp 247
844    DevExtTramp 248
845    DevExtTramp 249
846