1 | #!/usr/bin/env perl
|
---|
2 |
|
---|
3 | # ========================================================================
|
---|
4 | # createRnx3Aliases.pl
|
---|
5 | # ========================================================================
|
---|
6 | #
|
---|
7 | # Purpose : Helps to create Rnx3 alias mountpoints for a existing
|
---|
8 | # BKG NtripCaster installation. See help for details.
|
---|
9 | #
|
---|
10 | # Revision: $Id: createRnx3Aliases.pl 8230 2018-01-03 14:40:27Z wiese $
|
---|
11 | # ========================================================================
|
---|
12 |
|
---|
13 | # Uses
|
---|
14 | use strict;
|
---|
15 | use warnings;
|
---|
16 |
|
---|
17 | # Arguments
|
---|
18 | my ($confDir) = @ARGV;
|
---|
19 | if ( !defined $confDir || $confDir =~ /-h|--help/ ) {
|
---|
20 | print <<EOI_HLP;
|
---|
21 |
|
---|
22 | createRnx3Aliases.pl - Helps to create Rnx3 alias mountpoints for a existing
|
---|
23 | BKG NtripCaster installation.
|
---|
24 |
|
---|
25 | See White Paper URL???
|
---|
26 | For NtripCaster admins.
|
---|
27 | The output contains the alias records for the ntripcaster.conf file.
|
---|
28 | Creates a new sourcetable file with alias records included.
|
---|
29 |
|
---|
30 | USAGE:
|
---|
31 | $0 <ntripcaster-conf-dir>
|
---|
32 |
|
---|
33 | EXAMPLES:
|
---|
34 | $0 /home/rt/eurefcaster/conf
|
---|
35 |
|
---|
36 | Authors:
|
---|
37 | Erwin Wiesensarter <Erwin.Wiesensarter\@bkg.bund.de>
|
---|
38 |
|
---|
39 | EOI_HLP
|
---|
40 | exit;
|
---|
41 | }
|
---|
42 |
|
---|
43 | my $ntripcaster_conf = $confDir . '/ntripcaster.conf';
|
---|
44 | my $sourcetable_dat = $confDir . '/sourcetable.dat';
|
---|
45 |
|
---|
46 | my @igsLongNames = <DATA>;
|
---|
47 | chomp $_ for (@igsLongNames);
|
---|
48 |
|
---|
49 | my @existing_mpts;
|
---|
50 | my %st_streams = parseSourcetable($sourcetable_dat);
|
---|
51 |
|
---|
52 | # Create alias names for each stream
|
---|
53 | # ----------------------------------
|
---|
54 | my @alias;
|
---|
55 | my $rnx3Name = "";
|
---|
56 | while ( my ( $fourCharId, $rows ) = each %st_streams ) {
|
---|
57 |
|
---|
58 | # RAW streams
|
---|
59 | my @raw = grep ( $_->[3] =~ /RAW/i, @$rows );
|
---|
60 | if (@raw) {
|
---|
61 | if ( scalar @raw > 1 ) {
|
---|
62 | warn "WARN: more than one RAW stream for $fourCharId\n";
|
---|
63 | }
|
---|
64 | my $i = 0;
|
---|
65 | foreach (@raw) {
|
---|
66 | if ( $i == 0 ) {
|
---|
67 | $rnx3Name = $fourCharId . "00" . $_->[8] . 9;
|
---|
68 | if ( grep { $rnx3Name eq $_ } @existing_mpts ) {
|
---|
69 | print "$rnx3Name already exists - skip";
|
---|
70 | next;
|
---|
71 | }
|
---|
72 | printf "%-5s %-8s %-6s %-9s\n", $_->[1], $_->[3], $_->[4], $rnx3Name;
|
---|
73 | push ( @alias, [ $_->[1], $rnx3Name ] );
|
---|
74 | }
|
---|
75 | else {
|
---|
76 | printf "%-5s %-8s %-6s %-9s\n", $_->[1], $_->[3], $_->[4], "skipped";
|
---|
77 | }
|
---|
78 |
|
---|
79 | $i++;
|
---|
80 | }
|
---|
81 | }
|
---|
82 |
|
---|
83 | # RTCM streams
|
---|
84 | my @rtcm = map { $_->[0] }
|
---|
85 | sort { $b->[2] <=> $a->[2] }
|
---|
86 | map { [ $_, split ( /\s+/, $_->[3], 2 ) ] }
|
---|
87 | grep { $_->[3] =~ /RTCM/i } @$rows;
|
---|
88 |
|
---|
89 | my $i = 0;
|
---|
90 | foreach (@rtcm) {
|
---|
91 | $rnx3Name = $fourCharId . "00" . $_->[8] . $i++;
|
---|
92 | if ( grep { $rnx3Name eq $_ } @existing_mpts ) {
|
---|
93 | print "$rnx3Name already exists - skip";
|
---|
94 | next;
|
---|
95 | }
|
---|
96 | printf "%-5s %-15s %-9s\n", $_->[1], $_->[3], $rnx3Name;
|
---|
97 | push ( @alias, [ $_->[1], $rnx3Name ] );
|
---|
98 | }
|
---|
99 |
|
---|
100 | print "\n";
|
---|
101 | }
|
---|
102 |
|
---|
103 | print "===================== Alias ===================== (insert in $ntripcaster_conf)\n";
|
---|
104 | foreach ( sort { ( $a->[1] ) cmp ( $b->[1] ) } @alias ) {
|
---|
105 | print "alias /$_->[1] /$_->[0]\n";
|
---|
106 | }
|
---|
107 | print "\n";
|
---|
108 |
|
---|
109 | writeNewSourcetable($sourcetable_dat);
|
---|
110 |
|
---|
111 | ###############################################################################
|
---|
112 | sub parseSourcetable {
|
---|
113 | my ($sourcetableFil) = @_;
|
---|
114 |
|
---|
115 | my %st;
|
---|
116 | open ( my $ST, '<', $sourcetableFil ) || die "Could not open file '$sourcetableFil': $!\n";
|
---|
117 | while (<$ST>) {
|
---|
118 | chomp;
|
---|
119 | next if ( $_ =~ /^#/ );
|
---|
120 | $_ =~ /^(CAS|NET|STR);.+/ || die "Weird sourcetable line: [$_]";
|
---|
121 | if ( $_ =~ /^STR;/ ) {
|
---|
122 | my @fields = split ';', $_;
|
---|
123 | push ( @existing_mpts, $fields[1] );
|
---|
124 | scalar @fields >= 18 || die "Not enough fields in line: [$_]\nsee http://software.rtcm-ntrip.org/wiki/STR";
|
---|
125 | if ( $fields[1] =~ /^CLK|EPH$/i ) {
|
---|
126 | print "INFO: skip $fields[1]\n";
|
---|
127 | next;
|
---|
128 | }
|
---|
129 |
|
---|
130 | # Consider only mountpoint names with length 5
|
---|
131 | if ( length ( $fields[1] ) == 5 ) {
|
---|
132 | my $fourCharId = substr ( $fields[1], 0, 4 );
|
---|
133 |
|
---|
134 | # Compare country code with official IGS station list (IGS Network.csv 21.12.2017 from
|
---|
135 | # http://www.igs.org/network)
|
---|
136 | my @igs_found = grep ( $fourCharId eq substr ( $_, 0, 4 ), @igsLongNames );
|
---|
137 | if (@igs_found) {
|
---|
138 | my $rnx3Name = $fourCharId . "00" . $fields[8];
|
---|
139 | $rnx3Name eq $igs_found[0]
|
---|
140 | || die
|
---|
141 | "wrong country code \"$fields[8]\" for sourcetable stream $fields[1] (IGS: $igs_found[0])\n";
|
---|
142 | }
|
---|
143 | push ( @{ $st{$fourCharId} }, \@fields );
|
---|
144 | }
|
---|
145 | }
|
---|
146 | }
|
---|
147 | close ($ST);
|
---|
148 | return %st;
|
---|
149 | }
|
---|
150 |
|
---|
151 | sub writeNewSourcetable {
|
---|
152 | my ($sourcetable_orig) = @_;
|
---|
153 |
|
---|
154 | my $sourcetable_new = $sourcetable_orig . '.new';
|
---|
155 |
|
---|
156 | open ( my $ORIG, '<', $sourcetable_orig ) || die "Could not open file '$sourcetable_orig': $!\n";
|
---|
157 | open ( my $NEW, '>', $sourcetable_new ) || die "Could not open file '$sourcetable_new': $!\n";
|
---|
158 | while (<$ORIG>) {
|
---|
159 | print $NEW $_;
|
---|
160 | my @fields = split ( ';', $_ );
|
---|
161 | if ( @fields && $fields[0] eq "STR" ) {
|
---|
162 | my @found = grep ( $_->[0] eq $fields[1], @alias ); # search for mountpoint
|
---|
163 | if (@found) {
|
---|
164 | $fields[1] = $found[0]->[1];
|
---|
165 | $fields[18] = $found[0]->[0];
|
---|
166 | my $alias_rc = join ( ';', @fields );
|
---|
167 | print $NEW "$alias_rc\n";
|
---|
168 | }
|
---|
169 | }
|
---|
170 | }
|
---|
171 | close ($ORIG) || die "Could not close file $sourcetable_orig: $!";
|
---|
172 | close ($NEW) || die "Could not close file $sourcetable_new: $!";
|
---|
173 |
|
---|
174 | print "INFO: New sourcetable $sourcetable_new created\n";
|
---|
175 | }
|
---|
176 |
|
---|
177 | __DATA__
|
---|
178 | ABMF00GLP
|
---|
179 | ABPO00MDG
|
---|
180 | ADIS00ETH
|
---|
181 | AGGO00ARG
|
---|
182 | AIRA00JPN
|
---|
183 | AJAC00FRA
|
---|
184 | ALBH00CAN
|
---|
185 | ALGO00CAN
|
---|
186 | ALIC00AUS
|
---|
187 | ALRT00CAN
|
---|
188 | AMC200USA
|
---|
189 | ANKR00TUR
|
---|
190 | ANMG00MYS
|
---|
191 | ANTC00CHL
|
---|
192 | AREG00PER
|
---|
193 | AREQ00PER
|
---|
194 | ARTU00RUS
|
---|
195 | ARUC00ARM
|
---|
196 | ASCG00SHN
|
---|
197 | ASPA00USA
|
---|
198 | AUCK00NZL
|
---|
199 | AZU100USA
|
---|
200 | BADG00RUS
|
---|
201 | BAIE00CAN
|
---|
202 | BAKE00CAN
|
---|
203 | BAKO00IDN
|
---|
204 | BAMF00CAN
|
---|
205 | BARH00USA
|
---|
206 | BHR300BHR
|
---|
207 | BHR400BHR
|
---|
208 | BIK000KGZ
|
---|
209 | BILL00USA
|
---|
210 | BJCO00BEN
|
---|
211 | BJFS00CHN
|
---|
212 | BJNM00CHN
|
---|
213 | BLYT00USA
|
---|
214 | BNOA00IDN
|
---|
215 | BOGI00POL
|
---|
216 | BOGT00COL
|
---|
217 | BOR100POL
|
---|
218 | BRAZ00BRA
|
---|
219 | BREW00USA
|
---|
220 | BRFT00BRA
|
---|
221 | BRMU00GBR
|
---|
222 | BRST00FRA
|
---|
223 | BRUN00BRN
|
---|
224 | BRUX00BEL
|
---|
225 | BSHM00ISR
|
---|
226 | BTNG00IDN
|
---|
227 | BUCU00ROU
|
---|
228 | BZRG00ITA
|
---|
229 | CAGS00CAN
|
---|
230 | CAS100ATA
|
---|
231 | CCJ200JPN
|
---|
232 | CEBR00ESP
|
---|
233 | CEDU00AUS
|
---|
234 | CGGN00NGA
|
---|
235 | CHAN00CHN
|
---|
236 | CHIL00USA
|
---|
237 | CHOF00JPN
|
---|
238 | CHPG00BRA
|
---|
239 | CHPI00BRA
|
---|
240 | CHTI00NZL
|
---|
241 | CHUM00KAZ
|
---|
242 | CHUR00CAN
|
---|
243 | CHWK00CAN
|
---|
244 | CIT100USA
|
---|
245 | CKIS00COK
|
---|
246 | CKSV00TWN
|
---|
247 | CLAR00USA
|
---|
248 | CMP900USA
|
---|
249 | CMUM00THA
|
---|
250 | CNMR00USA
|
---|
251 | COCO00AUS
|
---|
252 | CORD00ARG
|
---|
253 | COSO00USA
|
---|
254 | COTE00ATA
|
---|
255 | COYQ00CHL
|
---|
256 | CPNM00THA
|
---|
257 | CPVG00CPV
|
---|
258 | CRAO00UKR
|
---|
259 | CRFP00USA
|
---|
260 | CRO100VIR
|
---|
261 | CUSV00THA
|
---|
262 | CUT000AUS
|
---|
263 | CUUT00THA
|
---|
264 | CZTG00ATF
|
---|
265 | DAE200KOR
|
---|
266 | DAEJ00KOR
|
---|
267 | DAKR00SEN
|
---|
268 | DARW00AUS
|
---|
269 | DAV100ATA
|
---|
270 | DEAR00ZAF
|
---|
271 | DGAR00GBR
|
---|
272 | DHLG00USA
|
---|
273 | DJIG00DJI
|
---|
274 | DLF100NLD
|
---|
275 | DLTV00VNM
|
---|
276 | DRAG00ISR
|
---|
277 | DRAO00CAN
|
---|
278 | DUBO00CAN
|
---|
279 | DUM100ATA
|
---|
280 | DUND00NZL
|
---|
281 | DYNG00GRC
|
---|
282 | EBRE00ESP
|
---|
283 | EIL300USA
|
---|
284 | EIL400USA
|
---|
285 | EPRT00USA
|
---|
286 | ESCU00CAN
|
---|
287 | EUSM00MYS
|
---|
288 | FAA100PYF
|
---|
289 | FAIR00USA
|
---|
290 | FALE00WSM
|
---|
291 | FALK00FLK
|
---|
292 | FFMJ00DEU
|
---|
293 | FLIN00CAN
|
---|
294 | FLRS00PRT
|
---|
295 | FRDN00CAN
|
---|
296 | FTNA00WLF
|
---|
297 | FUNC00PRT
|
---|
298 | GAMB00PYF
|
---|
299 | GAMG00KOR
|
---|
300 | GANP00SVK
|
---|
301 | GCGO00USA
|
---|
302 | GENO00ITA
|
---|
303 | GLPS00ECU
|
---|
304 | GLSV00UKR
|
---|
305 | GMSD00JPN
|
---|
306 | GODE00USA
|
---|
307 | GODN00USA
|
---|
308 | GODS00USA
|
---|
309 | GODZ00USA
|
---|
310 | GOL200USA
|
---|
311 | GOLD00USA
|
---|
312 | GOP600CZE
|
---|
313 | GOP700CZE
|
---|
314 | GOPE00CZE
|
---|
315 | GOUG00SHN
|
---|
316 | GRAC00FRA
|
---|
317 | GRAS00FRA
|
---|
318 | GRAZ00AUT
|
---|
319 | GUAM00GUM
|
---|
320 | GUAO00CHN
|
---|
321 | GUAT00GTM
|
---|
322 | GUUG00GUM
|
---|
323 | HALY00SAU
|
---|
324 | HAMD00IRN
|
---|
325 | HARB00ZAF
|
---|
326 | HARV00USA
|
---|
327 | HERS00GBR
|
---|
328 | HERT00GBR
|
---|
329 | HKSL00HKG
|
---|
330 | HKWS00HKG
|
---|
331 | HLFX00CAN
|
---|
332 | HNLC00USA
|
---|
333 | HNPT00USA
|
---|
334 | HNUS00ZAF
|
---|
335 | HOB200AUS
|
---|
336 | HOFN00ISL
|
---|
337 | HOLB00CAN
|
---|
338 | HOLM00CAN
|
---|
339 | HOLP00USA
|
---|
340 | HRAG00ZAF
|
---|
341 | HRAO00ZAF
|
---|
342 | HUEG00DEU
|
---|
343 | HYDE00IND
|
---|
344 | IENG00ITA
|
---|
345 | IISC00IND
|
---|
346 | INEG00MEX
|
---|
347 | INVK00CAN
|
---|
348 | IQAL00CAN
|
---|
349 | IQQE00CHL
|
---|
350 | IRKJ00RUS
|
---|
351 | IRKM00RUS
|
---|
352 | IRKT00RUS
|
---|
353 | ISBA00IRQ
|
---|
354 | ISPA00CHL
|
---|
355 | ISTA00TUR
|
---|
356 | IZMI00TUR
|
---|
357 | JCTW00ZAF
|
---|
358 | JFNG00CHN
|
---|
359 | JNAV00VNM
|
---|
360 | JOG200IDN
|
---|
361 | JOZ200POL
|
---|
362 | JOZE00POL
|
---|
363 | JPLM00USA
|
---|
364 | JPRE00ZAF
|
---|
365 | KARR00AUS
|
---|
366 | KAT100AUS
|
---|
367 | KELY00GRL
|
---|
368 | KERG00ATF
|
---|
369 | KGNI00JPN
|
---|
370 | KHAR00UKR
|
---|
371 | KIR000SWE
|
---|
372 | KIR800SWE
|
---|
373 | KIRI00KIR
|
---|
374 | KIRU00SWE
|
---|
375 | KIT300UZB
|
---|
376 | KITG00UZB
|
---|
377 | KMNM00TWN
|
---|
378 | KOKB00USA
|
---|
379 | KOKV00USA
|
---|
380 | KOS100NLD
|
---|
381 | KOUC00NCL
|
---|
382 | KOUG00GUF
|
---|
383 | KOUR00GUF
|
---|
384 | KRGG00ATF
|
---|
385 | KRS100TUR
|
---|
386 | KSMV00JPN
|
---|
387 | KUNM00CHN
|
---|
388 | KUUJ00CAN
|
---|
389 | KZN200RUS
|
---|
390 | LAE100PNG
|
---|
391 | LAMA00POL
|
---|
392 | LAUT00FJI
|
---|
393 | LBCH00USA
|
---|
394 | LCK300IND
|
---|
395 | LCK400IND
|
---|
396 | LEIJ00DEU
|
---|
397 | LHAZ00CHN
|
---|
398 | LLAG00ESP
|
---|
399 | LMMF00MTQ
|
---|
400 | LPAL00ESP
|
---|
401 | LPGS00ARG
|
---|
402 | LROC00FRA
|
---|
403 | M0SE00ITA
|
---|
404 | MAC100AUS
|
---|
405 | MAD200ESP
|
---|
406 | MADR00ESP
|
---|
407 | MAG000RUS
|
---|
408 | MAJU00MHL
|
---|
409 | MAL200KEN
|
---|
410 | MANA00NIC
|
---|
411 | MAR600SWE
|
---|
412 | MAR700SWE
|
---|
413 | MARS00FRA
|
---|
414 | MAS100ESP
|
---|
415 | MAT100ITA
|
---|
416 | MATE00ITA
|
---|
417 | MATG00ITA
|
---|
418 | MAUI00USA
|
---|
419 | MAW100ATA
|
---|
420 | MAYG00MYT
|
---|
421 | MBAR00UGA
|
---|
422 | MCHL00AUS
|
---|
423 | MCIL00JPN
|
---|
424 | MCM400ATA
|
---|
425 | MDO100USA
|
---|
426 | MDVJ00RUS
|
---|
427 | MEDI00ITA
|
---|
428 | MELI00ESP
|
---|
429 | MERS00TUR
|
---|
430 | MET300FIN
|
---|
431 | METG00FIN
|
---|
432 | METS00FIN
|
---|
433 | MFKG00ZAF
|
---|
434 | MGUE00ARG
|
---|
435 | MIKL00UKR
|
---|
436 | MIZU00JPN
|
---|
437 | MKEA00USA
|
---|
438 | MOBJ00RUS
|
---|
439 | MOBK00RUS
|
---|
440 | MOBN00RUS
|
---|
441 | MOBS00AUS
|
---|
442 | MOIU00KEN
|
---|
443 | MONP00USA
|
---|
444 | MORP00GBR
|
---|
445 | MQZG00NZL
|
---|
446 | MRL100NZL
|
---|
447 | MRL200NZL
|
---|
448 | MRO100AUS
|
---|
449 | MTKA00JPN
|
---|
450 | MTV100URY
|
---|
451 | MTV200URY
|
---|
452 | NAIN00CAN
|
---|
453 | NAMA00SAU
|
---|
454 | NANO00CAN
|
---|
455 | NAUR00NRU
|
---|
456 | NCKU00TWN
|
---|
457 | NICO00CYP
|
---|
458 | NIST00USA
|
---|
459 | NIUM00NIU
|
---|
460 | NKLG00GAB
|
---|
461 | NLIB00USA
|
---|
462 | NNOR00AUS
|
---|
463 | NOT100ITA
|
---|
464 | NOVM00RUS
|
---|
465 | NRC100CAN
|
---|
466 | NRIL00RUS
|
---|
467 | NRL100USA
|
---|
468 | NRMD00NCL
|
---|
469 | NTUS00SGP
|
---|
470 | NURK00RWA
|
---|
471 | NVSK00RUS
|
---|
472 | NYA100NOR
|
---|
473 | NYA200NOR
|
---|
474 | NYAL00NOR
|
---|
475 | OAK100GBR
|
---|
476 | OAK200GBR
|
---|
477 | OBE400DEU
|
---|
478 | OHI200ATA
|
---|
479 | OHI300ATA
|
---|
480 | ONS100SWE
|
---|
481 | ONSA00SWE
|
---|
482 | OPMT00FRA
|
---|
483 | ORID00MKD
|
---|
484 | OSN300KOR
|
---|
485 | OSN400KOR
|
---|
486 | OUS200NZL
|
---|
487 | OWMG00NZL
|
---|
488 | PADO00ITA
|
---|
489 | PALM00ATA
|
---|
490 | PARC00CHL
|
---|
491 | PARK00AUS
|
---|
492 | PBRI00IND
|
---|
493 | PDEL00PRT
|
---|
494 | PEN200HUN
|
---|
495 | PENC00HUN
|
---|
496 | PERT00AUS
|
---|
497 | PETS00RUS
|
---|
498 | PGEN00PHL
|
---|
499 | PICL00CAN
|
---|
500 | PIE100USA
|
---|
501 | PIMO00PHL
|
---|
502 | PIN100USA
|
---|
503 | PNGM00PNG
|
---|
504 | POHN00FSM
|
---|
505 | POL200KGZ
|
---|
506 | POLV00UKR
|
---|
507 | POTS00DEU
|
---|
508 | POVE00BRA
|
---|
509 | PPPC00PHL
|
---|
510 | PRDS00CAN
|
---|
511 | PRE300ZAF
|
---|
512 | PRE400ZAF
|
---|
513 | PTAG00PHL
|
---|
514 | PTBB00DEU
|
---|
515 | PTGG00PHL
|
---|
516 | PTVL00VUT
|
---|
517 | QAQ100GRL
|
---|
518 | QIKI00CAN
|
---|
519 | QUI300ECU
|
---|
520 | QUI400ECU
|
---|
521 | QUIN00USA
|
---|
522 | RABT00MAR
|
---|
523 | RAEG00PRT
|
---|
524 | RAMO00ISR
|
---|
525 | RBAY00ZAF
|
---|
526 | RCMN00KEN
|
---|
527 | RDSD00DOM
|
---|
528 | RECF00BRA
|
---|
529 | REDU00BEL
|
---|
530 | RESO00CAN
|
---|
531 | REUN00REU
|
---|
532 | REYK00ISL
|
---|
533 | RGDG00ARG
|
---|
534 | RIGA00LVA
|
---|
535 | RIO200ARG
|
---|
536 | RIOP00ECU
|
---|
537 | ROAP00ESP
|
---|
538 | ROCK00USA
|
---|
539 | ROTH00ATA
|
---|
540 | SALU00BRA
|
---|
541 | SAMO00WSM
|
---|
542 | SANT00CHL
|
---|
543 | SASK00CAN
|
---|
544 | SASS00DEU
|
---|
545 | SAVO00BRA
|
---|
546 | SBOK00ZAF
|
---|
547 | SCH200CAN
|
---|
548 | SCIP00USA
|
---|
549 | SCOR00GRL
|
---|
550 | SCRZ00BOL
|
---|
551 | SCTB00ATA
|
---|
552 | SCUB00CUB
|
---|
553 | SEJN00KOR
|
---|
554 | SEY200SYC
|
---|
555 | SEYG00SYC
|
---|
556 | SFDM00USA
|
---|
557 | SFER00ESP
|
---|
558 | SGOC00LKA
|
---|
559 | SHAO00CHN
|
---|
560 | SHE200CAN
|
---|
561 | SIMO00ZAF
|
---|
562 | SIN100SGP
|
---|
563 | SMST00JPN
|
---|
564 | SNI100USA
|
---|
565 | SOD300FIN
|
---|
566 | SOFI00BGR
|
---|
567 | SOLA00SAU
|
---|
568 | SOLO00SLB
|
---|
569 | SPK100USA
|
---|
570 | SPT000SWE
|
---|
571 | SPTU00BRA
|
---|
572 | SSIA00SLV
|
---|
573 | STFU00USA
|
---|
574 | STHL00GBR
|
---|
575 | STJ300CAN
|
---|
576 | STJO00CAN
|
---|
577 | STK200JPN
|
---|
578 | STR100AUS
|
---|
579 | STR200AUS
|
---|
580 | SULP00UKR
|
---|
581 | SUTH00ZAF
|
---|
582 | SUTM00ZAF
|
---|
583 | SUWN00KOR
|
---|
584 | SVTL00RUS
|
---|
585 | SYDN00AUS
|
---|
586 | SYOG00ATA
|
---|
587 | TABL00USA
|
---|
588 | TANA00ETH
|
---|
589 | TASH00UZB
|
---|
590 | TCMS00TWN
|
---|
591 | TDOU00ZAF
|
---|
592 | TEHN00IRN
|
---|
593 | THTG00PYF
|
---|
594 | THTI00PYF
|
---|
595 | THU200GRL
|
---|
596 | THU300GRL
|
---|
597 | TID100AUS
|
---|
598 | TIDB00AUS
|
---|
599 | TIT200DEU
|
---|
600 | TIXI00RUS
|
---|
601 | TLSE00FRA
|
---|
602 | TLSG00FRA
|
---|
603 | TNML00TWN
|
---|
604 | TONG00TON
|
---|
605 | TORP00USA
|
---|
606 | TOW200AUS
|
---|
607 | TRAK00USA
|
---|
608 | TRO100NOR
|
---|
609 | TSK200JPN
|
---|
610 | TSKB00JPN
|
---|
611 | TUBI00TUR
|
---|
612 | TUVA00TUV
|
---|
613 | TWTF00TWN
|
---|
614 | UCAL00CAN
|
---|
615 | UCLP00USA
|
---|
616 | UCLU00CAN
|
---|
617 | UFPR00BRA
|
---|
618 | ULAB00MNG
|
---|
619 | ULDI00ZAF
|
---|
620 | UNB300CAN
|
---|
621 | UNBD00CAN
|
---|
622 | UNBJ00CAN
|
---|
623 | UNBN00CAN
|
---|
624 | UNSA00ARG
|
---|
625 | UNX200AUS
|
---|
626 | UNX300AUS
|
---|
627 | URUM00CHN
|
---|
628 | USN700USA
|
---|
629 | USN800USA
|
---|
630 | USN900USA
|
---|
631 | USNO00USA
|
---|
632 | USUD00JPN
|
---|
633 | UZHL00UKR
|
---|
634 | VACS00MUS
|
---|
635 | VALD00CAN
|
---|
636 | VESL00ATA
|
---|
637 | VILL00ESP
|
---|
638 | VIS000SWE
|
---|
639 | VNDP00USA
|
---|
640 | VOIM00MDG
|
---|
641 | WAB200CHE
|
---|
642 | WARK00NZL
|
---|
643 | WARN00DEU
|
---|
644 | WDC500USA
|
---|
645 | WDC600USA
|
---|
646 | WES200USA
|
---|
647 | WGTN00NZL
|
---|
648 | WHC100USA
|
---|
649 | WHIT00CAN
|
---|
650 | WIDC00USA
|
---|
651 | WILL00CAN
|
---|
652 | WIND00NAM
|
---|
653 | WLSN00USA
|
---|
654 | WROC00POL
|
---|
655 | WSRT00NLD
|
---|
656 | WTZ300DEU
|
---|
657 | WTZA00DEU
|
---|
658 | WTZR00DEU
|
---|
659 | WTZS00DEU
|
---|
660 | WTZZ00DEU
|
---|
661 | WUH200CHN
|
---|
662 | WUHN00CHN
|
---|
663 | XIAN00CHN
|
---|
664 | XMIS00AUS
|
---|
665 | YAKT00RUS
|
---|
666 | YAR200AUS
|
---|
667 | YAR300AUS
|
---|
668 | YARR00AUS
|
---|
669 | YEBE00ESP
|
---|
670 | YEL200CAN
|
---|
671 | YELL00CAN
|
---|
672 | YIBL00OMN
|
---|
673 | YKRO00CIV
|
---|
674 | YONS00KOR
|
---|
675 | YSSK00RUS
|
---|
676 | ZAMB00ZMB
|
---|
677 | ZECK00RUS
|
---|
678 | ZIM200CHE
|
---|
679 | ZIM300CHE
|
---|
680 | ZIMJ00CHE
|
---|
681 | ZIMM00CHE
|
---|
682 | ZWE200RUS
|
---|
683 |
|
---|