File: sym.sh
   1 #!/bin/sh
   2 
   3 # The MIT License (MIT)
   4 #
   5 # Copyright © 2024 pacman64
   6 #
   7 # Permission is hereby granted, free of charge, to any person obtaining a copy
   8 # of this software and associated documentation files (the “Software”), to deal
   9 # in the Software without restriction, including without limitation the rights
  10 # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  11 # copies of the Software, and to permit persons to whom the Software is
  12 # furnished to do so, subject to the following conditions:
  13 #
  14 # The above copyright notice and this permission notice shall be included in
  15 # all copies or substantial portions of the Software.
  16 #
  17 # THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  18 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  19 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  20 # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  21 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  22 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  23 # SOFTWARE.
  24 
  25 
  26 # sym [names...]
  27 #
  28 # Lookup various hard-to-type symbols by their common names/aliases. All/any
  29 # dashes in the names given are ignored, and are thus supported, so to speak.
  30 
  31 
  32 # handle help options
  33 case "$1" in
  34     -h|--h|-help|--help)
  35         # show help message, extracting the info-comment at the start
  36         # of this file, and quit
  37         awk '/^# +sym/, /^$/ { gsub(/^# ?/, ""); print }' "$0"
  38         exit 0
  39     ;;
  40 esac
  41 
  42 # when given no names, show (almost) all name-symbol pairs supported
  43 if [ $# -eq 0 ]; then
  44     # show all built-in `here-doc` entries from this very script/file
  45     awk '/^[a-z]/ && NF == 2' "${0}"
  46     exit 0
  47 fi
  48 
  49 # lookup built-in dataset
  50 awk -v allnames="${*}" '
  51 # figure out which names to lookup, and handle special names upfront
  52 BEGIN {
  53     # lowercase symbol names, also ignoring any dashes in them
  54     allnames = tolower(allnames)
  55     gsub(/[_-]/, "", allnames)
  56     gsub(/^ +| +$/, "", allnames)
  57     # split space-separated items into an array named `symbols`
  58     split(allnames, symbols, / +/)
  59 
  60     # special-handle a few entries which either span multiple lines,
  61     # have whitespace-like symbols in them, or both
  62 
  63     special["cr"] = "\r" # no trailing LF
  64     special["crlf"] = "\r\n"
  65     special["formfeed"] = "\f\n"
  66     special["lf"] = "\n"
  67     special["linefeed"] = "\n"
  68     special["nil"] = "\0\n"
  69     special["nul"] = "\0\n"
  70     special["null"] = "\0\n"
  71     special["space"] = " \n"
  72     special["tab"] = "\t\n"
  73     special["vtab"] = "\v\n"
  74     special["whitespace"] = " \t\n\r\f\v" # no trailing LF
  75 
  76     for (i in symbols) {
  77         if (symbols[i] == "ascii") {
  78             # the full ASCII set, with no extra LF after it
  79             matches[i]++
  80             for (n = 0; n < 128; n++) {
  81                 printf "%c", n
  82             }
  83             continue
  84         }
  85 
  86         if (special[symbols[i]] == "") {
  87             # none of the special names match
  88             continue
  89         }
  90 
  91         # a special name matched
  92         matches[i]++
  93         printf special[symbols[i]]
  94     }
  95 }
  96 
  97 # try to match each symbol to each built-in data line
  98 {
  99     for (i in symbols) {
 100         if ($1 == symbols[i]) {
 101             matches[i]++
 102             print $2
 103             next
 104         }
 105     }
 106 }
 107 
 108 # report any not-found-type errors
 109 END {
 110     fs = "\x1b[31mno matching symbols found for `%s`\x1b[0m\n"
 111     for (i in symbols) {
 112         if (matches[i] == 0) {
 113             printf fs, symbols[i]
 114             failures++
 115         }
 116     }
 117 
 118     if (failures > 0) {
 119         exit 1
 120     }
 121 }' << 'ENDOFDATA'
 122 adash        -
 123 aeq          ≈
 124 almost       ≈
 125 amp          &
 126 ampersand    &
 127 apos         ’
 128 apostrophe   ’
 129 approx       ≅
 130 asterisk     *
 131 atleast      ≥
 132 atmost       ≤
 133 backquote    `
 134 backslash    \
 135 ball         ●
 136 bang         !
 137 block        █
 138 bquo         `
 139 bquote       `
 140 bslash       \
 141 bullet       •
 142 caret        ^
 143 cdot         ·
 144 circle       ●
 145 cloud        ☁️
 146 colon        :
 147 comma        ,
 148 copyright    ©
 149 cquote       ”
 150 crap         💩
 151 crapface     💩
 152 cross        ×
 153 dash         –
 154 deg          °
 155 degree       °
 156 doc          📄
 157 document     📄
 158 dollar       $
 159 dot          .
 160 dquo         "
 161 dquote       "
 162 ellip        …
 163 ellipsis     …
 164 email        @
 165 eq           =
 166 equal        =
 167 equals       =
 168 excl         !
 169 exclam       !
 170 exclamation  !
 171 faces        😀😁😂😃😄😅😆😇😈😉😊😋😌😍😎😏😐😑😒😓😔😕😖😗😘😙😚😛😜😝😞😟😠😡😢😣😤😥😦😧😨😩😪😫😬😭😮😯😰😱😲😳😴😵😶😷🙁🙂🙃🙄🧐👶🤓🤐🤑🤒🤔🤕🤗🤠🤡🤢🤣🤤🤥🤧🤨🤩🤪🤫🤬🤭🤮🤯
 172 file         📄
 173 fullmoon     🌕
 174 fullstop     .
 175 geq          ≥
 176 greatereq    ≥
 177 happy        😀
 178 happyface    😀
 179 heart        ❤️
 180 hellip       …
 181 hole         ○
 182 leq          ≤
 183 less         <
 184 lesseq       ≤
 185 lightning    🌩️
 186 mdash        —
 187 mdot         ·
 188 more         >
 189 music        🎵
 190 musicalnote  🎵
 191 ndash        –
 192 neq          ≠
 193 not          ¬
 194 notequal     ≠
 195 notequals    ≠
 196 oquote       “
 197 period       .
 198 pipe         |
 199 question     ?
 200 rain         🌧️
 201 semicolon    ;
 202 sharp        #
 203 shit         💩
 204 shitface     💩
 205 slash        /
 206 slasher      ⧸
 207 slashier     ⧸
 208 smile        🙂
 209 smileface    🙂
 210 smilingface  🙂
 211 snow         ❄️
 212 square       ■
 213 squo         '
 214 squote       '
 215 star         ⭐
 216 sun          ☀️
 217 tilde        ~
 218 vbar         |
 219 vellip       ⋮
 220 
 221 alpha    α
 222 beta     β
 223 delta    δ
 224 eps      ε
 225 epsilon  ε
 226 gamma    γ
 227 lambda   λ
 228 omega    ω
 229 pi       π
 230 sigma    σ
 231 tau      τ
 232 theta    θ
 233 
 234 alphabet        abcdefghijklmnopqrstuvwxyz
 235 asciiletters    abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
 236 digits          0123456789
 237 greek           αβγδεζηθικλμνξοπρστυφχψω
 238 hex             0123456789abcdef
 239 hexa            0123456789abcdef
 240 hexadec         0123456789abcdef
 241 hexadecimal     0123456789abcdef
 242 hexdigits       0123456789abcdefABCDEF
 243 inf             ∞
 244 infinity        ∞
 245 latin           abcdefghijklmnopqrstuvwxyz
 246 letters         abcdefghijklmnopqrstuvwxyz
 247 lower           abcdefghijklmnopqrstuvwxyz
 248 lowercase       abcdefghijklmnopqrstuvwxyz
 249 lowercasegreek  αβγδεζηθικλμνξοπρστυφχψω
 250 lowergreek      αβγδεζηθικλμνξοπρστυφχψω
 251 lowercasehex    0123456789abcdef
 252 lowerhex        0123456789abcdef
 253 math            +-×÷²³±
 254 midascii        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
 255 octal           01234567
 256 octaldigits     01234567
 257 octdigits       01234567
 258 other           ✓✗✔❌
 259 plusminus       ±
 260 prod            Π
 261 product         Π
 262 punct           !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
 263 punctuation     !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
 264 sum             Σ
 265 summation       Σ
 266 upper           ABCDEFGHIJKLMNOPQRSTUVWXYZ
 267 uppercase       ABCDEFGHIJKLMNOPQRSTUVWXYZ
 268 uppercasegreek  ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ
 269 uppergreek      ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ
 270 uppercasehex    0123456789ABCDEF
 271 upperhex        0123456789ABCDEF
 272 
 273 aud  A$
 274 brl  R$
 275 cad  C$
 276 chf  CHF
 277 clp  CLP
 278 cny  元
 279 czk  Kč
 280 dkk  DKK
 281 eur  €
 282 gbp  £
 283 hkd  HK$
 284 huf  Ft
 285 idr  Rp
 286 ils  ₪
 287 inr  ₹
 288 jpy  ¥
 289 krw  ₩
 290 mxn  MXN
 291 nok  NOK
 292 nzd  NZ$
 293 php  ₱
 294 pln  zł
 295 rub  ₽
 296 sar  ﷼
 297 sek  SEK
 298 sgd  S$
 299 thb  ฿
 300 try  ₺
 301 twd  NT$
 302 usd  $
 303 zar  R
 304 
 305 baht            ฿
 306 britishpound    £
 307 cent            ¢
 308 cents           ¢
 309 euro            €
 310 indianrupee     ₹
 311 koruna          Kč
 312 naira           ₦
 313 newshekel       ₪
 314 philippinepeso  ₱
 315 pound           £
 316 poundsterling   £
 317 renminbi        元
 318 riyal           ﷼
 319 ruble           ₽
 320 rupee           ₹
 321 saudiriyal      ﷼
 322 shekel          ₪
 323 sterling        £
 324 turkishlira     ₺
 325 won             ₩
 326 yen             ¥
 327 zloty           zł
 328 
 329 afghanistan         🇦🇫
 330 america             🇺🇸
 331 algeria             🇩🇿
 332 angola              🇦🇴
 333 arabia              🇸🇦
 334 arabemirates        🇦🇪
 335 argentina           🇦🇷
 336 australia           🇦🇺
 337 austria             🇦🇹
 338 bangladesh          🇧🇩
 339 belgium             🇧🇪
 340 brazil              🇧🇷
 341 britain             🇬🇧
 342 canada              🇨🇦
 343 chile               🇨🇱
 344 china               🇨🇳
 345 colombia            🇨🇴
 346 czechia             🇨🇿
 347 czechrepublic       🇨🇿
 348 denmark             🇩🇰
 349 dominicanrepublic   🇩🇴
 350 drc                 🇨🇩
 351 drcongo             🇨🇩
 352 ecuador             🇪🇨
 353 egypt               🇪🇬
 354 emirates            🇦🇪
 355 england             🇬🇧
 356 ethiopia            🇪🇹
 357 europe              🇪🇺
 358 europeanunion       🇪🇺
 359 finland             🇫🇮
 360 france              🇫🇷
 361 germany             🇩🇪
 362 ghana               🇬🇭
 363 greatbritain        🇬🇧
 364 greece              🇬🇷
 365 holland             🇳🇱
 366 hungary             🇭🇺
 367 india               🇮🇳
 368 indonesia           🇮🇩
 369 iran                🇮🇷
 370 iraq                🇮🇶
 371 ireland             🇮🇪
 372 israel              🇮🇱
 373 italy               🇮🇹
 374 japan               🇯🇵
 375 kazakhstan          🇰🇿
 376 kenya               🇰🇪
 377 korea               🇰🇷
 378 kuwait              🇰🇼
 379 madagascar          🇲🇬
 380 malaysia            🇲🇾
 381 mexico              🇲🇽
 382 morocco             🇲🇦
 383 mozambique          🇲🇿
 384 myanmar             🇲🇲
 385 nepal               🇳🇵
 386 netherlands         🇳🇱
 387 newzealand          🇳🇿
 388 nigeria             🇳🇬
 389 northkorea          🇰🇵
 390 norway              🇳🇴
 391 pakistan            🇵🇰
 392 peru                🇵🇪
 393 philippines         🇵🇭
 394 poland              🇵🇱
 395 portugal            🇵🇹
 396 qatar               🇶🇦
 397 rok                 🇰🇷
 398 romania             🇷🇴
 399 russia              🇷🇺
 400 saudiarabia         🇸🇦
 401 singapore           🇸🇬
 402 somalia             🇸🇴
 403 southafrica         🇿🇦
 404 southkorea          🇰🇷
 405 spain               🇪🇸
 406 srilanka            🇱🇰
 407 sudan               🇸🇩
 408 sweden              🇸🇪
 409 switzerland         🇨🇭
 410 taiwan              🇹🇼
 411 tanzania            🇹🇿
 412 thailand            🇹🇭
 413 turkey              🇹🇷
 414 uganda              🇺🇬
 415 ukraine             🇺🇦
 416 unitedarab          🇦🇪
 417 unitedarabemirates  🇦🇪
 418 unitedemirates      🇦🇪
 419 unitedkingdom       🇬🇧
 420 unitedstates        🇺🇸
 421 uzbekistan          🇺🇿
 422 yemen               🇾🇪
 423 venezuela           🇻🇪
 424 vietnam             🇻🇳
 425 
 426 af  🇦🇫
 427 ax  🇦🇽
 428 al  🇦🇱
 429 dz  🇩🇿
 430 as  🇦🇸
 431 ad  🇦🇩
 432 ao  🇦🇴
 433 ai  🇦🇮
 434 aq  🇦🇶
 435 ag  🇦🇬
 436 ar  🇦🇷
 437 am  🇦🇲
 438 aw  🇦🇼
 439 au  🇦🇺
 440 at  🇦🇹
 441 az  🇦🇿
 442 bs  🇧🇸
 443 bh  🇧🇭
 444 bd  🇧🇩
 445 bb  🇧🇧
 446 by  🇧🇾
 447 be  🇧🇪
 448 bz  🇧🇿
 449 bj  🇧🇯
 450 bm  🇧🇲
 451 bt  🇧🇹
 452 bo  🇧🇴
 453 bq  🇧🇶
 454 ba  🇧🇦
 455 bw  🇧🇼
 456 bv  🇧🇻
 457 br  🇧🇷
 458 io  🇮🇴
 459 bn  🇧🇳
 460 bg  🇧🇬
 461 bf  🇧🇫
 462 bi  🇧🇮
 463 cv  🇨🇻
 464 kh  🇰🇭
 465 cm  🇨🇲
 466 ca  🇨🇦
 467 ky  🇰🇾
 468 cf  🇨🇫
 469 td  🇹🇩
 470 cl  🇨🇱
 471 cn  🇨🇳
 472 cx  🇨🇽
 473 cc  🇨🇨
 474 co  🇨🇴
 475 km  🇰🇲
 476 cd  🇨🇩
 477 cg  🇨🇬
 478 ck  🇨🇰
 479 cr  🇨🇷
 480 ci  🇨🇮
 481 hr  🇭🇷
 482 cu  🇨🇺
 483 cw  🇨🇼
 484 cy  🇨🇾
 485 cz  🇨🇿
 486 dk  🇩🇰
 487 dj  🇩🇯
 488 dm  🇩🇲
 489 do  🇩🇴
 490 ec  🇪🇨
 491 eg  🇪🇬
 492 sv  🇸🇻
 493 gq  🇬🇶
 494 er  🇪🇷
 495 ee  🇪🇪
 496 sz  🇸🇿
 497 et  🇪🇹
 498 eu  🇪🇺
 499 fk  🇫🇰
 500 fo  🇫🇴
 501 fj  🇫🇯
 502 fi  🇫🇮
 503 fr  🇫🇷
 504 gf  🇬🇫
 505 pf  🇵🇫
 506 tf  🇹🇫
 507 ga  🇬🇦
 508 gm  🇬🇲
 509 ge  🇬🇪
 510 de  🇩🇪
 511 gh  🇬🇭
 512 gi  🇬🇮
 513 gr  🇬🇷
 514 gl  🇬🇱
 515 gd  🇬🇩
 516 gp  🇬🇵
 517 gu  🇬🇺
 518 gt  🇬🇹
 519 gg  🇬🇬
 520 gn  🇬🇳
 521 gw  🇬🇼
 522 gy  🇬🇾
 523 ht  🇭🇹
 524 hm  🇭🇲
 525 va  🇻🇦
 526 hn  🇭🇳
 527 hk  🇭🇰
 528 hu  🇭🇺
 529 is  🇮🇸
 530 in  🇮🇳
 531 id  🇮🇩
 532 ir  🇮🇷
 533 iq  🇮🇶
 534 ie  🇮🇪
 535 im  🇮🇲
 536 il  🇮🇱
 537 it  🇮🇹
 538 jm  🇯🇲
 539 jp  🇯🇵
 540 je  🇯🇪
 541 jo  🇯🇴
 542 kz  🇰🇿
 543 ke  🇰🇪
 544 ki  🇰🇮
 545 kp  🇰🇵
 546 kr  🇰🇷
 547 kw  🇰🇼
 548 kg  🇰🇬
 549 la  🇱🇦
 550 lv  🇱🇻
 551 lb  🇱🇧
 552 ls  🇱🇸
 553 lr  🇱🇷
 554 ly  🇱🇾
 555 li  🇱🇮
 556 lt  🇱🇹
 557 lu  🇱🇺
 558 mo  🇲🇴
 559 mk  🇲🇰
 560 mg  🇲🇬
 561 mw  🇲🇼
 562 my  🇲🇾
 563 mv  🇲🇻
 564 ml  🇲🇱
 565 mt  🇲🇹
 566 mh  🇲🇭
 567 mq  🇲🇶
 568 mr  🇲🇷
 569 mu  🇲🇺
 570 yt  🇾🇹
 571 mx  🇲🇽
 572 fm  🇫🇲
 573 md  🇲🇩
 574 mc  🇲🇨
 575 mn  🇲🇳
 576 me  🇲🇪
 577 ms  🇲🇸
 578 ma  🇲🇦
 579 mz  🇲🇿
 580 mm  🇲🇲
 581 na  🇳🇦
 582 nr  🇳🇷
 583 np  🇳🇵
 584 nl  🇳🇱
 585 nc  🇳🇨
 586 nz  🇳🇿
 587 ni  🇳🇮
 588 ne  🇳🇪
 589 ng  🇳🇬
 590 nu  🇳🇺
 591 nf  🇳🇫
 592 mp  🇲🇵
 593 no  🇳🇴
 594 om  🇴🇲
 595 pk  🇵🇰
 596 pw  🇵🇼
 597 ps  🇵🇸
 598 pa  🇵🇦
 599 pg  🇵🇬
 600 py  🇵🇾
 601 pe  🇵🇪
 602 ph  🇵🇭
 603 pn  🇵🇳
 604 pl  🇵🇱
 605 pt  🇵🇹
 606 pr  🇵🇷
 607 qa  🇶🇦
 608 re  🇷🇪
 609 ro  🇷🇴
 610 ru  🇷🇺
 611 rw  🇷🇼
 612 bl  🇧🇱
 613 sh  🇸🇭
 614 kn  🇰🇳
 615 lc  🇱🇨
 616 mf  🇲🇫
 617 pm  🇵🇲
 618 vc  🇻🇨
 619 ws  🇼🇸
 620 sm  🇸🇲
 621 st  🇸🇹
 622 sa  🇸🇦
 623 sn  🇸🇳
 624 rs  🇷🇸
 625 sc  🇸🇨
 626 sl  🇸🇱
 627 sg  🇸🇬
 628 sx  🇸🇽
 629 sk  🇸🇰
 630 si  🇸🇮
 631 sb  🇸🇧
 632 so  🇸🇴
 633 za  🇿🇦
 634 gs  🇬🇸
 635 ss  🇸🇸
 636 es  🇪🇸
 637 lk  🇱🇰
 638 sd  🇸🇩
 639 sr  🇸🇷
 640 sj  🇸🇯
 641 se  🇸🇪
 642 ch  🇨🇭
 643 sy  🇸🇾
 644 tw  🇹🇼
 645 tj  🇹🇯
 646 tz  🇹🇿
 647 th  🇹🇭
 648 tl  🇹🇱
 649 tg  🇹🇬
 650 tk  🇹🇰
 651 to  🇹🇴
 652 tt  🇹🇹
 653 tn  🇹🇳
 654 tr  🇹🇷
 655 tm  🇹🇲
 656 tc  🇹🇨
 657 tv  🇹🇻
 658 ug  🇺🇬
 659 ua  🇺🇦
 660 ae  🇦🇪
 661 gb  🇬🇧
 662 um  🇺🇲
 663 us  🇺🇸
 664 uy  🇺🇾
 665 uz  🇺🇿
 666 vu  🇻🇺
 667 ve  🇻🇪
 668 vn  🇻🇳
 669 vg  🇻🇬
 670 vi  🇻🇮
 671 wf  🇼🇫
 672 eh  🇪🇭
 673 ye  🇾🇪
 674 zm  🇿🇲
 675 zw  🇿🇼
 676 
 677 afg  🇦🇫
 678 ala  🇦🇽
 679 alb  🇦🇱
 680 dza  🇩🇿
 681 asm  🇦🇸
 682 and  🇦🇩
 683 ago  🇦🇴
 684 aia  🇦🇮
 685 ata  🇦🇶
 686 atg  🇦🇬
 687 arg  🇦🇷
 688 arm  🇦🇲
 689 abw  🇦🇼
 690 aus  🇦🇺
 691 aut  🇦🇹
 692 aze  🇦🇿
 693 bhs  🇧🇸
 694 bhr  🇧🇭
 695 bgd  🇧🇩
 696 brb  🇧🇧
 697 blr  🇧🇾
 698 bel  🇧🇪
 699 blz  🇧🇿
 700 ben  🇧🇯
 701 bmu  🇧🇲
 702 btn  🇧🇹
 703 bol  🇧🇴
 704 bes  🇧🇶
 705 bih  🇧🇦
 706 bwa  🇧🇼
 707 bvt  🇧🇻
 708 bra  🇧🇷
 709 iot  🇮🇴
 710 brn  🇧🇳
 711 bgr  🇧🇬
 712 bfa  🇧🇫
 713 bdi  🇧🇮
 714 cpv  🇨🇻
 715 khm  🇰🇭
 716 cmr  🇨🇲
 717 can  🇨🇦
 718 cym  🇰🇾
 719 caf  🇨🇫
 720 tcd  🇹🇩
 721 chl  🇨🇱
 722 chn  🇨🇳
 723 cxr  🇨🇽
 724 cck  🇨🇨
 725 col  🇨🇴
 726 com  🇰🇲
 727 cod  🇨🇩
 728 cog  🇨🇬
 729 cok  🇨🇰
 730 cri  🇨🇷
 731 civ  🇨🇮
 732 hrv  🇭🇷
 733 cub  🇨🇺
 734 cuw  🇨🇼
 735 cyp  🇨🇾
 736 cze  🇨🇿
 737 dnk  🇩🇰
 738 dji  🇩🇯
 739 dma  🇩🇲
 740 dom  🇩🇴
 741 ecu  🇪🇨
 742 egy  🇪🇬
 743 slv  🇸🇻
 744 gnq  🇬🇶
 745 eri  🇪🇷
 746 est  🇪🇪
 747 swz  🇸🇿
 748 eth  🇪🇹
 749 flk  🇫🇰
 750 fro  🇫🇴
 751 fji  🇫🇯
 752 fin  🇫🇮
 753 fra  🇫🇷
 754 guf  🇬🇫
 755 pyf  🇵🇫
 756 atf  🇹🇫
 757 gab  🇬🇦
 758 gmb  🇬🇲
 759 geo  🇬🇪
 760 deu  🇩🇪
 761 gha  🇬🇭
 762 gib  🇬🇮
 763 grc  🇬🇷
 764 grl  🇬🇱
 765 grd  🇬🇩
 766 glp  🇬🇵
 767 gum  🇬🇺
 768 gtm  🇬🇹
 769 ggy  🇬🇬
 770 gin  🇬🇳
 771 gnb  🇬🇼
 772 guy  🇬🇾
 773 hti  🇭🇹
 774 hmd  🇭🇲
 775 vat  🇻🇦
 776 hnd  🇭🇳
 777 hkg  🇭🇰
 778 hun  🇭🇺
 779 isl  🇮🇸
 780 ind  🇮🇳
 781 idn  🇮🇩
 782 irn  🇮🇷
 783 irq  🇮🇶
 784 irl  🇮🇪
 785 imn  🇮🇲
 786 isr  🇮🇱
 787 ita  🇮🇹
 788 jam  🇯🇲
 789 jpn  🇯🇵
 790 jey  🇯🇪
 791 jor  🇯🇴
 792 kaz  🇰🇿
 793 ken  🇰🇪
 794 kir  🇰🇮
 795 prk  🇰🇵
 796 kor  🇰🇷
 797 kwt  🇰🇼
 798 kgz  🇰🇬
 799 lao  🇱🇦
 800 lva  🇱🇻
 801 lbn  🇱🇧
 802 lso  🇱🇸
 803 lbr  🇱🇷
 804 lby  🇱🇾
 805 lie  🇱🇮
 806 ltu  🇱🇹
 807 lux  🇱🇺
 808 mac  🇲🇴
 809 mkd  🇲🇰
 810 mdg  🇲🇬
 811 mwi  🇲🇼
 812 mys  🇲🇾
 813 mdv  🇲🇻
 814 mli  🇲🇱
 815 mlt  🇲🇹
 816 mhl  🇲🇭
 817 mtq  🇲🇶
 818 mrt  🇲🇷
 819 mus  🇲🇺
 820 myt  🇾🇹
 821 mex  🇲🇽
 822 fsm  🇫🇲
 823 mda  🇲🇩
 824 mco  🇲🇨
 825 mng  🇲🇳
 826 mne  🇲🇪
 827 msr  🇲🇸
 828 mar  🇲🇦
 829 moz  🇲🇿
 830 mmr  🇲🇲
 831 nam  🇳🇦
 832 nru  🇳🇷
 833 npl  🇳🇵
 834 nld  🇳🇱
 835 ncl  🇳🇨
 836 nzl  🇳🇿
 837 nic  🇳🇮
 838 ner  🇳🇪
 839 nga  🇳🇬
 840 niu  🇳🇺
 841 nfk  🇳🇫
 842 mnp  🇲🇵
 843 nor  🇳🇴
 844 omn  🇴🇲
 845 pak  🇵🇰
 846 plw  🇵🇼
 847 pse  🇵🇸
 848 pan  🇵🇦
 849 png  🇵🇬
 850 pry  🇵🇾
 851 per  🇵🇪
 852 phl  🇵🇭
 853 pcn  🇵🇳
 854 pol  🇵🇱
 855 prt  🇵🇹
 856 pri  🇵🇷
 857 qat  🇶🇦
 858 reu  🇷🇪
 859 rou  🇷🇴
 860 rus  🇷🇺
 861 rwa  🇷🇼
 862 blm  🇧🇱
 863 shn  🇸🇭
 864 kna  🇰🇳
 865 lca  🇱🇨
 866 maf  🇲🇫
 867 spm  🇵🇲
 868 vct  🇻🇨
 869 wsm  🇼🇸
 870 smr  🇸🇲
 871 stp  🇸🇹
 872 sau  🇸🇦
 873 sen  🇸🇳
 874 srb  🇷🇸
 875 syc  🇸🇨
 876 sle  🇸🇱
 877 sgp  🇸🇬
 878 sxm  🇸🇽
 879 svk  🇸🇰
 880 svn  🇸🇮
 881 slb  🇸🇧
 882 som  🇸🇴
 883 zaf  🇿🇦
 884 sgs  🇬🇸
 885 ssd  🇸🇸
 886 esp  🇪🇸
 887 lka  🇱🇰
 888 sdn  🇸🇩
 889 sur  🇸🇷
 890 sjm  🇸🇯
 891 swe  🇸🇪
 892 che  🇨🇭
 893 syr  🇸🇾
 894 twn  🇹🇼
 895 tjk  🇹🇯
 896 tza  🇹🇿
 897 tha  🇹🇭
 898 tls  🇹🇱
 899 tgo  🇹🇬
 900 tkl  🇹🇰
 901 ton  🇹🇴
 902 tto  🇹🇹
 903 tun  🇹🇳
 904 tur  🇹🇷
 905 tkm  🇹🇲
 906 tca  🇹🇨
 907 tuv  🇹🇻
 908 uga  🇺🇬
 909 ukr  🇺🇦
 910 are  🇦🇪
 911 gbr  🇬🇧
 912 uae  🇦🇪
 913 umi  🇺🇲
 914 usa  🇺🇸
 915 ury  🇺🇾
 916 uzb  🇺🇿
 917 vut  🇻🇺
 918 ven  🇻🇪
 919 vnm  🇻🇳
 920 vgb  🇻🇬
 921 vir  🇻🇮
 922 wlf  🇼🇫
 923 esh  🇪🇭
 924 yem  🇾🇪
 925 zmb  🇿🇲
 926 zwe  🇿🇼
 927 ENDOFDATA