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