diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 000000000..a46cefb09 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,28 @@ +Copyright (c) 2013, Salvatore Sanfilippo +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + diff --git a/README.md b/README.md index d18eb90e9..0b8ede1eb 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ The main features are: where the checksum is xored with the ICAO address by brute forcing the checksum field using recently seen ICAO addresses. * Decode raw IQ samples from file (using --ifile command line switch). -* Interactive command-line-interfae mode where aircrafts currently detected +* Interactive command-line-interface mode where aircrafts currently detected are shown as a list refreshing as more data arrives. * CPR coordinates decoding and track calculation from velocity. * TCP server streaming and receiving raw data to/from connected clients @@ -237,7 +237,7 @@ For the diligent programmer with a Mode S specification on his hands it should be trivial to understand how it works. The algorithms I used were obtained basically looking at many messages -as displayed using a trow-away SDL program, and trying to model the algorithm +as displayed using a throw-away SDL program, and trying to model the algorithm based on how the messages look graphically. How to test the program? diff --git a/country_list.h b/country_list.h new file mode 100644 index 000000000..cd500ac68 --- /dev/null +++ b/country_list.h @@ -0,0 +1,207 @@ +enum blockSize { + BLK_1024 = 1024, + BLK_4096 = 4096, + BLK_32768 = 32768, + BLK_262144 = 262144, + BLK_1048576= 1048576 +}; + + +struct countryCodes { + char *code; + uint32_t len; + uint32_t icao_addr; + uint32_t icao_mask; +} countryList[] = { +{"ZW",BLK_1024,0x4000,0xfffc00}, +{"BW",BLK_1024,0x30000,0xfffc00}, +{"KM",BLK_1024,0x35000,0xfffc00}, +{"GW",BLK_1024,0x48000,0xfffc00}, +{"LS",BLK_1024,0x4a000,0xfffc00}, +{"MV",BLK_1024,0x5a000,0xfffc00}, +{"MR",BLK_1024,0x5e000,0xfffc00}, +{"MU",BLK_1024,0x60000,0xfffc00}, +{"QA",BLK_1024,0x6a000,0xfffc00}, +{"SC",BLK_1024,0x74000,0xfffc00}, +{"SL",BLK_1024,0x76000,0xfffc00}, +{"SZ",BLK_1024,0x7a000,0xfffc00}, +{"BJ",BLK_1024,0x94000,0xfffc00}, +{"CV",BLK_1024,0x96000,0xfffc00}, +{"DJ",BLK_1024,0x98000,0xfffc00}, +{"ST",BLK_1024,0x9e000,0xfffc00}, +{"BB",BLK_1024,0xaa000,0xfffc00}, +{"BZ",BLK_1024,0xab000,0xfffc00}, +{"VC",BLK_1024,0xbc000,0xfffc00}, +{"AG",BLK_1024,0xca000,0xfffc00}, +{"GD",BLK_1024,0xcc000,0xfffc00}, +{"NA",BLK_1024,0x201000,0xfffc00}, +{"ER",BLK_1024,0x202000,0xfffc00}, +{"CY",BLK_1024,0x4c8000,0xfffc00}, +{"LU",BLK_1024,0x4d0000,0xfffc00}, +{"MT",BLK_1024,0x4d2000,0xfffc00}, +{"MC",BLK_1024,0x4d4000,0xfffc00}, +{"SM",BLK_1024,0x500000,0xfffc00}, +{"AL",BLK_1024,0x501000,0xfffc00}, +{"HR",BLK_1024,0x501c00,0xfffc00}, +{"LV",BLK_1024,0x502c00,0xfffc00}, +{"LT",BLK_1024,0x503c00,0xfffc00}, +{"MD",BLK_1024,0x504c00,0xfffc00}, +{"SK",BLK_1024,0x505c00,0xfffc00}, +{"SI",BLK_1024,0x506c00,0xfffc00}, +{"UZ",BLK_1024,0x507c00,0xfffc00}, +{"BY",BLK_1024,0x510000,0xfffc00}, +{"EE",BLK_1024,0x511000,0xfffc00}, +{"MK",BLK_1024,0x512000,0xfffc00}, +{"BA",BLK_1024,0x513000,0xfffc00}, +{"GE",BLK_1024,0x514000,0xfffc00}, +{"TJ",BLK_1024,0x515000,0xfffc00}, +{"AM",BLK_1024,0x600000,0xfffc00}, +{"AZ",BLK_1024,0x600800,0xfffc00}, +{"KG",BLK_1024,0x601000,0xfffc00}, +{"TM",BLK_1024,0x601800,0xfffc00}, +{"BT",BLK_1024,0x680000,0xfffc00}, +{"FM",BLK_1024,0x681000,0xfffc00}, +{"MN",BLK_1024,0x682000,0xfffc00}, +{"KZ",BLK_1024,0x683000,0xfffc00}, +{"PW",BLK_1024,0x684000,0xfffc00}, +{"OM",BLK_1024,0x70c000,0xfffc00}, +{"BN",BLK_1024,0x895000,0xfffc00}, +{"SB",BLK_1024,0x897000,0xfffc00}, +{"00",BLK_1024,0x899000,0xfffc00}, +{"MH",BLK_1024,0x900000,0xfffc00}, +{"CK",BLK_1024,0x901000,0xfffc00}, +{"WS",BLK_1024,0x902000,0xfffc00}, +{"NR",BLK_1024,0xc8a000,0xfffc00}, +{"LC",BLK_1024,0xc8c000,0xfffc00}, +{"TO",BLK_1024,0xc8d000,0xfffc00}, +{"KI",BLK_1024,0xc8e000,0xfffc00}, +{"VU",BLK_1024,0xc90000,0xfffc00}, +{"00",BLK_1024,0xf09000,0xfffc00}, +{"MZ",BLK_4096,0x6000,0xfff000}, +{"BI",BLK_4096,0x32000,0xfff000}, +{"CM",BLK_4096,0x34000,0xfff000}, +{"CG",BLK_4096,0x36000,0xfff000}, +{"CI",BLK_4096,0x38000,0xfff000}, +{"GA",BLK_4096,0x3e000,0xfff000}, +{"ET",BLK_4096,0x40000,0xfff000}, +{"GQ",BLK_4096,0x42000,0xfff000}, +{"GH",BLK_4096,0x44000,0xfff000}, +{"GN",BLK_4096,0x46000,0xfff000}, +{"KE",BLK_4096,0x4c000,0xfff000}, +{"LR",BLK_4096,0x50000,0xfff000}, +{"MG",BLK_4096,0x54000,0xfff000}, +{"MW",BLK_4096,0x58000,0xfff000}, +{"ML",BLK_4096,0x5c000,0xfff000}, +{"NE",BLK_4096,0x62000,0xfff000}, +{"NG",BLK_4096,0x64000,0xfff000}, +{"UG",BLK_4096,0x68000,0xfff000}, +{"CF",BLK_4096,0x6c000,0xfff000}, +{"RW",BLK_4096,0x6e000,0xfff000}, +{"SN",BLK_4096,0x70000,0xfff000}, +{"SO",BLK_4096,0x78000,0xfff000}, +{"SD",BLK_4096,0x7c000,0xfff000}, +{"TZ",BLK_4096,0x80000,0xfff000}, +{"TD",BLK_4096,0x84000,0xfff000}, +{"TG",BLK_4096,0x88000,0xfff000}, +{"ZM",BLK_4096,0x8a000,0xfff000}, +{"CD",BLK_4096,0x8c000,0xfff000}, +{"AO",BLK_4096,0x90000,0xfff000}, +{"GM",BLK_4096,0x9a000,0xfff000}, +{"BF",BLK_4096,0x9c000,0xfff000}, +{"BS",BLK_4096,0xa8000,0xfff000}, +{"CO",BLK_4096,0xac000,0xfff000}, +{"CR",BLK_4096,0xae000,0xfff000}, +{"CU",BLK_4096,0xb0000,0xfff000}, +{"SV",BLK_4096,0xb2000,0xfff000}, +{"GT",BLK_4096,0xb4000,0xfff000}, +{"GY",BLK_4096,0xb6000,0xfff000}, +{"HT",BLK_4096,0xb8000,0xfff000}, +{"HN",BLK_4096,0xba000,0xfff000}, +{"JM",BLK_4096,0xbe000,0xfff000}, +{"NI",BLK_4096,0xc0000,0xfff000}, +{"PA",BLK_4096,0xc2000,0xfff000}, +{"DO",BLK_4096,0xc4000,0xfff000}, +{"TT",BLK_4096,0xc6000,0xfff000}, +{"SR",BLK_4096,0xc8000,0xfff000}, +{"IE",BLK_4096,0x4ca000,0xfff000}, +{"IS",BLK_4096,0x4cc000,0xfff000}, +{"AF",BLK_4096,0x700000,0xfff000}, +{"BD",BLK_4096,0x702000,0xfff000}, +{"MM",BLK_4096,0x704000,0xfff000}, +{"KW",BLK_4096,0x706000,0xfff000}, +{"LA",BLK_4096,0x708000,0xfff000}, +{"NP",BLK_4096,0x70a000,0xfff000}, +{"KH",BLK_4096,0x70e000,0xfff000}, +{"YE",BLK_4096,0x890000,0xfff000}, +{"BH",BLK_4096,0x894000,0xfff000}, +{"AE",BLK_4096,0x896000,0xfff000}, +{"PG",BLK_4096,0x898000,0xfff000}, +{"FJ",BLK_4096,0xc88000,0xfff000}, +{"CL",BLK_4096,0xe80000,0xfff000}, +{"EC",BLK_4096,0xe84000,0xfff000}, +{"PY",BLK_4096,0xe88000,0xfff000}, +{"PE",BLK_4096,0xe8c000,0xfff000}, +{"UY",BLK_4096,0xe90000,0xfff000}, +{"BO",BLK_4096,0xe94000,0xfff000}, +{"ZA",BLK_32768,0x8000,0xff8000}, +{"EG",BLK_32768,0x10000,0xff8000}, +{"LY",BLK_32768,0x18000,0xff8000}, +{"MA",BLK_32768,0x20000,0xff8000}, +{"TN",BLK_32768,0x28000,0xff8000}, +{"DZ",BLK_32768,0xa0000,0xff8000}, +{"MX",BLK_32768,0xd0000,0xff8000}, +{"VE",BLK_32768,0xd8000,0xff8000}, +{"AT",BLK_32768,0x440000,0xff8000}, +{"BE",BLK_32768,0x448000,0xff8000}, +{"BG",BLK_32768,0x450000,0xff8000}, +{"DK",BLK_32768,0x458000,0xff8000}, +{"FI",BLK_32768,0x460000,0xff8000}, +{"GR",BLK_32768,0x468000,0xff8000}, +{"HU",BLK_32768,0x470000,0xff8000}, +{"NO",BLK_32768,0x478000,0xff8000}, +{"NL",BLK_32768,0x480000,0xff8000}, +{"PL",BLK_32768,0x488000,0xff8000}, +{"PT",BLK_32768,0x490000,0xff8000}, +{"CZ",BLK_32768,0x498000,0xff8000}, +{"RO",BLK_32768,0x4a0000,0xff8000}, +{"SE",BLK_32768,0x4a8000,0xff8000}, +{"CH",BLK_32768,0x4b0000,0xff8000}, +{"TR",BLK_32768,0x4b8000,0xff8000}, +{"YU",BLK_32768,0x4c0000,0xff8000}, +{"UA",BLK_32768,0x508000,0xff8000}, +{"SA",BLK_32768,0x710000,0xff8000}, +{"KR",BLK_32768,0x718000,0xff8000}, +{"KP",BLK_32768,0x720000,0xff8000}, +{"IQ",BLK_32768,0x728000,0xff8000}, +{"IR",BLK_32768,0x730000,0xff8000}, +{"IL",BLK_32768,0x738000,0xff8000}, +{"JO",BLK_32768,0x740000,0xff8000}, +{"LB",BLK_32768,0x748000,0xff8000}, +{"MY",BLK_32768,0x750000,0xff8000}, +{"PH",BLK_32768,0x758000,0xff8000}, +{"PK",BLK_32768,0x760000,0xff8000}, +{"SG",BLK_32768,0x768000,0xff8000}, +{"LK",BLK_32768,0x770000,0xff8000}, +{"SY",BLK_32768,0x778000,0xff8000}, +{"TH",BLK_32768,0x880000,0xff8000}, +{"VN",BLK_32768,0x888000,0xff8000}, +{"ID",BLK_32768,0x8a0000,0xff8000}, +{"NZ",BLK_32768,0xc80000,0xff8000}, +{"00",BLK_32768,0xf00000,0xff8000}, +{"IT",BLK_262144,0x300000,0xfc0000}, +{"ES",BLK_262144,0x340000,0xfc0000}, +{"FR",BLK_262144,0x380000,0xfc0000}, +{"DE",BLK_262144,0x3c0000,0xfc0000}, +{"GB",BLK_262144,0x400000,0xfc0000}, +{"CN",BLK_262144,0x780000,0xfc0000}, +{"AU",BLK_262144,0x7c0000,0xfc0000}, +{"IN",BLK_262144,0x800000,0xfc0000}, +{"JP",BLK_262144,0x840000,0xfc0000}, +{"CA",BLK_262144,0xc00000,0xfc0000}, +{"AR",BLK_262144,0xe00000,0xfc0000}, +{"BR",BLK_262144,0xe40000,0xfc0000}, +{"RU",BLK_1048576,0x100000,0xf00000}, +{"US",BLK_1048576,0xa00000,0xf00000}, +}; + +#define CTALEN() (sizeof(countryList) / sizeof(struct countryCodes)) diff --git a/dump1090.c b/dump1090.c index 7fa5327a3..b72a0ff78 100644 --- a/dump1090.c +++ b/dump1090.c @@ -45,6 +45,7 @@ #include #include "rtl-sdr.h" #include "anet.h" +#include "country_list.h" #define MODES_DEFAULT_RATE 2000000 #define MODES_DEFAULT_FREQ 1090000000 @@ -120,6 +121,7 @@ struct aircraft { double lat, lon; /* Coordinated obtained from CPR encoded data. */ long long odd_cprtime, even_cprtime; struct aircraft *next; /* Next aircraft in our linked list. */ + struct countryCodes * reg; /* aircraft registretion country */ }; /* Program global state. */ @@ -1107,6 +1109,17 @@ void decodeModesMessage(struct modesMessage *mm, unsigned char *msg) { mm->phase_corrected = 0; /* Set to 1 by the caller if needed. */ } +/* Extract the country code from the ICAO adress. */ +struct countryCodes * icaoToCountyCode(uint32_t addr) +{ + unsigned int i; + for (i=0; i < CTALEN(); i++) { + if((addr & countryList[i].icao_mask) == countryList[i].icao_addr) + return &countryList[i]; + } + return NULL; +} + /* This function gets a decoded Mode S Message and prints it on the screen * in a human readable format. */ void displayModesMessage(struct modesMessage *mm) { @@ -1582,6 +1595,7 @@ struct aircraft *interactiveCreateAircraft(uint32_t addr) { a->lon = 0; a->seen = time(NULL); a->messages = 0; + a->reg = icaoToCountyCode(addr); a->next = NULL; return a; } @@ -1807,8 +1821,8 @@ void interactiveShowData(void) { printf("\x1b[H\x1b[2J"); /* Clear the screen */ printf( -"Hex Flight Altitude Speed Lat Lon Track Messages Seen %s\n" -"--------------------------------------------------------------------------------\n", +"Hex Reg Flight Altitude Speed Lat Lon Track Messages Seen %s\n" +"-----------------------------------------------------------------------------------\n", progress); while(a && count < Modes.interactive_rows) { @@ -1820,8 +1834,10 @@ void interactiveShowData(void) { speed *= 1.852; } - printf("%-6s %-8s %-9d %-7d %-7.03f %-7.03f %-3d %-9ld %d sec\n", - a->hexaddr, a->flight, altitude, speed, + printf("%-6s %-3s %-8s %-9d %-7d %-7.03f %-7.03f %-3d %-9ld %d sec\n", + a->hexaddr, + a->reg?a->reg->code:" ", + a->flight, altitude, speed, a->lat, a->lon, a->track, a->messages, (int)(now - a->seen)); a = a->next; @@ -2152,10 +2168,12 @@ char *aircraftsToJson(int *len) { if (a->lat != 0 && a->lon != 0) { l = snprintf(p,buflen, - "{\"hex\":\"%s\", \"flight\":\"%s\", \"lat\":%f, " + "{\"hex\":\"%s\", \"reg\":\"%s\",\"flight\":\"%s\", \"lat\":%f, " "\"lon\":%f, \"altitude\":%d, \"track\":%d, " "\"speed\":%d},\n", - a->hexaddr, a->flight, a->lat, a->lon, a->altitude, a->track, + a->hexaddr, + a->reg?a->reg->code:"", + a->flight, a->lat, a->lon, a->altitude, a->track, a->speed); p += l; buflen -= l; /* Resize if needed. */ @@ -2181,8 +2199,36 @@ char *aircraftsToJson(int *len) { return buf; } +/* Return contents of a file */ +char *getFileContents(const char *filename, int *clen) +{ + struct stat sbuf; + int fd = -1; + char *content; + + if (stat(filename,&sbuf) != -1 && + (fd = open(filename,O_RDONLY)) != -1) + { + content = malloc(sbuf.st_size); + if (read(fd,content,sbuf.st_size) == -1) { + snprintf(content,sbuf.st_size,"Error reading from file: %s", + strerror(errno)); + } + *clen = sbuf.st_size; + } else { + char buf[128]; + + *clen = snprintf(buf,sizeof(buf),"Error opening file: %s", + strerror(errno)); + content = strdup(buf); + } + if (fd != -1) close(fd); + return (content); +} + #define MODES_CONTENT_TYPE_HTML "text/html;charset=utf-8" #define MODES_CONTENT_TYPE_JSON "application/json;charset=utf-8" +#define MODES_CONTENT_TYPE_PNG "image/png" /* Get an HTTP request header and write the response to the client. * Again here we assume that the socket buffer is enough without doing @@ -2194,7 +2240,7 @@ int handleHTTPRequest(struct client *c) { char hdr[512]; int clen, hdrlen; int httpver, keepalive; - char *p, *url, *content; + char *p, *url, *flag, *content; char *ctype; if (Modes.debug & MODES_DEBUG_NET) @@ -2218,38 +2264,34 @@ int handleHTTPRequest(struct client *c) { if (!p) return 1; /* There should be a space before HTTP/... */ *p = '\0'; + /* Check for /flags/xx.png, where xx is the two character ICAO code */ + flag = strstr(url, "/flags/"); + if (flag) { + /* Ensure string is 13 characters long and ends in .png */ + if ((13 != strlen(flag) || + (strstr(flag, ".png") != (flag+9)))) { + flag = NULL; + } + } + if (Modes.debug & MODES_DEBUG_NET) { printf("\nHTTP keep alive: %d\n", keepalive); printf("HTTP requested URL: %s\n\n", url); } - /* Select the content to send, we have just two so far: + /* Select the content to send, we have three so far: * "/" -> Our google map application. - * "/data.json" -> Our ajax request to update planes. */ + * "/data.json" -> Our ajax request to update planes. + * "/flags/xx.png" -> Flag for each ICAO two character code. */ if (strstr(url, "/data.json")) { content = aircraftsToJson(&clen); ctype = MODES_CONTENT_TYPE_JSON; + } else if(flag) { + /* Add 1 to strip off leading /, images are in flags subdirectory. */ + content = getFileContents(flag+1, &clen); + ctype = MODES_CONTENT_TYPE_PNG; } else { - struct stat sbuf; - int fd = -1; - - if (stat("gmap.html",&sbuf) != -1 && - (fd = open("gmap.html",O_RDONLY)) != -1) - { - content = malloc(sbuf.st_size); - if (read(fd,content,sbuf.st_size) == -1) { - snprintf(content,sbuf.st_size,"Error reading from file: %s", - strerror(errno)); - } - clen = sbuf.st_size; - } else { - char buf[128]; - - clen = snprintf(buf,sizeof(buf),"Error opening HTML file: %s", - strerror(errno)); - content = strdup(buf); - } - if (fd != -1) close(fd); + content = getFileContents("gmap.html", &clen); ctype = MODES_CONTENT_TYPE_HTML; } diff --git a/flags/FLAGS-CHANGES b/flags/FLAGS-CHANGES new file mode 100644 index 000000000..33220a825 --- /dev/null +++ b/flags/FLAGS-CHANGES @@ -0,0 +1,7 @@ +As requested in FLAGS-LICENSE, an additional file enumerating any modifications +made is also encouraged. + +Additions: +yu.png - Saved https://upload.wikimedia.org/wikipedia/commons/9/90/Flag_of_Serbia_and_Montenegro.svg?download +as a 32x16 png. I chose this flag as it was more current (Federal Republic of Yugoslavia: 1992-2006) over the +flag with the star (Socialist Federal Republic of Yugoslavia: 1945-1992). diff --git a/flags/FLAGS-LICENSE b/flags/FLAGS-LICENSE new file mode 100644 index 000000000..b63ec6f48 --- /dev/null +++ b/flags/FLAGS-LICENSE @@ -0,0 +1,32 @@ +Flagfox Flag Icon Set +Copyright 2013-2016, David Garrett +Some rights reserved + +Except where otherwise noted, this work is licensed under a +Creative Commons Attribution-ShareAlike 4.0 International License: +https://creativecommons.org/licenses/by-sa/4.0/ +https://creativecommons.org/licenses/by-sa/4.0/legalcode + +This license applies only to this set of country/territory flags. +This license does not apply to any other Flagfox images/icons, +source code, localizations, or database content. (see main LICENSE) + +This flag icon set is based on public domain and/or non-copyrightable +flag images provided by Wikimedia Commons. Those wishing to reuse flag +images in an unmodified larger format are directed to the source works. +https://commons.wikimedia.org/ + +Those wishing to reuse flag icons in this set are encouraged to use the +most recent version provided in the most recent version of Flagfox. +Attribution should note the version of Flagfox the icons are from and +the date of its release, as country/territory flags change over time. +https://addons.mozilla.org/addon/flagfox + +If this flag icon set is reused in large portion, this license text +file should be included with the image files. An additional text file +enumerating any modifications made is also encouraged, if applicable. + +If you use any portions of the Flagfox Flag Icon Set in other works +a quick email or message on our forums would be appreciated: +daveg.extensionfeedback@gmail.com +http://flagfox.net/forum diff --git a/flags/ad.png b/flags/ad.png new file mode 100644 index 000000000..c9eb9ada1 Binary files /dev/null and b/flags/ad.png differ diff --git a/flags/ae.png b/flags/ae.png new file mode 100644 index 000000000..a6b780bed Binary files /dev/null and b/flags/ae.png differ diff --git a/flags/af.png b/flags/af.png new file mode 100644 index 000000000..33c481bb6 Binary files /dev/null and b/flags/af.png differ diff --git a/flags/ag.png b/flags/ag.png new file mode 100644 index 000000000..0816bd52f Binary files /dev/null and b/flags/ag.png differ diff --git a/flags/ai.png b/flags/ai.png new file mode 100644 index 000000000..ea3e82195 Binary files /dev/null and b/flags/ai.png differ diff --git a/flags/al.png b/flags/al.png new file mode 100644 index 000000000..f5a4bcf81 Binary files /dev/null and b/flags/al.png differ diff --git a/flags/am.png b/flags/am.png new file mode 100644 index 000000000..6c1e059c8 Binary files /dev/null and b/flags/am.png differ diff --git a/flags/ao.png b/flags/ao.png new file mode 100644 index 000000000..1fffeeefa Binary files /dev/null and b/flags/ao.png differ diff --git a/flags/aq.png b/flags/aq.png new file mode 100644 index 000000000..9112397af Binary files /dev/null and b/flags/aq.png differ diff --git a/flags/ar.png b/flags/ar.png new file mode 100644 index 000000000..600f60058 Binary files /dev/null and b/flags/ar.png differ diff --git a/flags/as.png b/flags/as.png new file mode 100644 index 000000000..eeeedb1e1 Binary files /dev/null and b/flags/as.png differ diff --git a/flags/at.png b/flags/at.png new file mode 100644 index 000000000..b2f4ab207 Binary files /dev/null and b/flags/at.png differ diff --git a/flags/au.png b/flags/au.png new file mode 100644 index 000000000..4db9c0484 Binary files /dev/null and b/flags/au.png differ diff --git a/flags/aw.png b/flags/aw.png new file mode 100644 index 000000000..a8ddb0e68 Binary files /dev/null and b/flags/aw.png differ diff --git a/flags/ax.png b/flags/ax.png new file mode 100644 index 000000000..82aa7dcdb Binary files /dev/null and b/flags/ax.png differ diff --git a/flags/az.png b/flags/az.png new file mode 100644 index 000000000..cbe677229 Binary files /dev/null and b/flags/az.png differ diff --git a/flags/ba.png b/flags/ba.png new file mode 100644 index 000000000..ace06e41b Binary files /dev/null and b/flags/ba.png differ diff --git a/flags/bb.png b/flags/bb.png new file mode 100644 index 000000000..bd49ac391 Binary files /dev/null and b/flags/bb.png differ diff --git a/flags/bd.png b/flags/bd.png new file mode 100644 index 000000000..52687d378 Binary files /dev/null and b/flags/bd.png differ diff --git a/flags/be.png b/flags/be.png new file mode 100644 index 000000000..5a43b1301 Binary files /dev/null and b/flags/be.png differ diff --git a/flags/bf.png b/flags/bf.png new file mode 100644 index 000000000..e99713776 Binary files /dev/null and b/flags/bf.png differ diff --git a/flags/bg.png b/flags/bg.png new file mode 100644 index 000000000..89e4c8b5e Binary files /dev/null and b/flags/bg.png differ diff --git a/flags/bh.png b/flags/bh.png new file mode 100644 index 000000000..9c3129b1d Binary files /dev/null and b/flags/bh.png differ diff --git a/flags/bi.png b/flags/bi.png new file mode 100644 index 000000000..b206392e3 Binary files /dev/null and b/flags/bi.png differ diff --git a/flags/bj.png b/flags/bj.png new file mode 100644 index 000000000..00909110a Binary files /dev/null and b/flags/bj.png differ diff --git a/flags/bl.png b/flags/bl.png new file mode 100644 index 000000000..0fabfade7 Binary files /dev/null and b/flags/bl.png differ diff --git a/flags/bm.png b/flags/bm.png new file mode 100644 index 000000000..9d2262cb3 Binary files /dev/null and b/flags/bm.png differ diff --git a/flags/bn.png b/flags/bn.png new file mode 100644 index 000000000..ac2725b87 Binary files /dev/null and b/flags/bn.png differ diff --git a/flags/bo.png b/flags/bo.png new file mode 100644 index 000000000..fe3b4eb08 Binary files /dev/null and b/flags/bo.png differ diff --git a/flags/bq.png b/flags/bq.png new file mode 100644 index 000000000..d33b63123 Binary files /dev/null and b/flags/bq.png differ diff --git a/flags/br.png b/flags/br.png new file mode 100644 index 000000000..001e97acc Binary files /dev/null and b/flags/br.png differ diff --git a/flags/bs.png b/flags/bs.png new file mode 100644 index 000000000..de7d986b7 Binary files /dev/null and b/flags/bs.png differ diff --git a/flags/bt.png b/flags/bt.png new file mode 100644 index 000000000..4ac41d9b6 Binary files /dev/null and b/flags/bt.png differ diff --git a/flags/bw.png b/flags/bw.png new file mode 100644 index 000000000..8057cbbc6 Binary files /dev/null and b/flags/bw.png differ diff --git a/flags/by.png b/flags/by.png new file mode 100644 index 000000000..9a3874538 Binary files /dev/null and b/flags/by.png differ diff --git a/flags/bz.png b/flags/bz.png new file mode 100644 index 000000000..9fb1de516 Binary files /dev/null and b/flags/bz.png differ diff --git a/flags/ca.png b/flags/ca.png new file mode 100644 index 000000000..abc5281a8 Binary files /dev/null and b/flags/ca.png differ diff --git a/flags/cc.png b/flags/cc.png new file mode 100644 index 000000000..c08c97caa Binary files /dev/null and b/flags/cc.png differ diff --git a/flags/cd.png b/flags/cd.png new file mode 100644 index 000000000..fff626957 Binary files /dev/null and b/flags/cd.png differ diff --git a/flags/cf.png b/flags/cf.png new file mode 100644 index 000000000..8229a2314 Binary files /dev/null and b/flags/cf.png differ diff --git a/flags/cg.png b/flags/cg.png new file mode 100644 index 000000000..ec17cbc9b Binary files /dev/null and b/flags/cg.png differ diff --git a/flags/ch.png b/flags/ch.png new file mode 100644 index 000000000..2dffc4339 Binary files /dev/null and b/flags/ch.png differ diff --git a/flags/ci.png b/flags/ci.png new file mode 100644 index 000000000..39cb88d5e Binary files /dev/null and b/flags/ci.png differ diff --git a/flags/ck.png b/flags/ck.png new file mode 100644 index 000000000..a9b32b1bb Binary files /dev/null and b/flags/ck.png differ diff --git a/flags/cl.png b/flags/cl.png new file mode 100644 index 000000000..6ce46d517 Binary files /dev/null and b/flags/cl.png differ diff --git a/flags/cm.png b/flags/cm.png new file mode 100644 index 000000000..fd226cb85 Binary files /dev/null and b/flags/cm.png differ diff --git a/flags/cn.png b/flags/cn.png new file mode 100644 index 000000000..4b26fcc92 Binary files /dev/null and b/flags/cn.png differ diff --git a/flags/co.png b/flags/co.png new file mode 100644 index 000000000..83b472ecb Binary files /dev/null and b/flags/co.png differ diff --git a/flags/cr.png b/flags/cr.png new file mode 100644 index 000000000..a581281fd Binary files /dev/null and b/flags/cr.png differ diff --git a/flags/cu.png b/flags/cu.png new file mode 100644 index 000000000..9359964e4 Binary files /dev/null and b/flags/cu.png differ diff --git a/flags/cv.png b/flags/cv.png new file mode 100644 index 000000000..080caae90 Binary files /dev/null and b/flags/cv.png differ diff --git a/flags/cw.png b/flags/cw.png new file mode 100644 index 000000000..72278db12 Binary files /dev/null and b/flags/cw.png differ diff --git a/flags/cx.png b/flags/cx.png new file mode 100644 index 000000000..60c46ac83 Binary files /dev/null and b/flags/cx.png differ diff --git a/flags/cy.png b/flags/cy.png new file mode 100644 index 000000000..665c97894 Binary files /dev/null and b/flags/cy.png differ diff --git a/flags/cz.png b/flags/cz.png new file mode 100644 index 000000000..9257df130 Binary files /dev/null and b/flags/cz.png differ diff --git a/flags/de.png b/flags/de.png new file mode 100644 index 000000000..259a6d06f Binary files /dev/null and b/flags/de.png differ diff --git a/flags/dj.png b/flags/dj.png new file mode 100644 index 000000000..66747cac8 Binary files /dev/null and b/flags/dj.png differ diff --git a/flags/dk.png b/flags/dk.png new file mode 100644 index 000000000..254620614 Binary files /dev/null and b/flags/dk.png differ diff --git a/flags/dm.png b/flags/dm.png new file mode 100644 index 000000000..4b4ed4427 Binary files /dev/null and b/flags/dm.png differ diff --git a/flags/do.png b/flags/do.png new file mode 100644 index 000000000..4fafeee01 Binary files /dev/null and b/flags/do.png differ diff --git a/flags/dz.png b/flags/dz.png new file mode 100644 index 000000000..a52243368 Binary files /dev/null and b/flags/dz.png differ diff --git a/flags/ec.png b/flags/ec.png new file mode 100644 index 000000000..83f795869 Binary files /dev/null and b/flags/ec.png differ diff --git a/flags/ee.png b/flags/ee.png new file mode 100644 index 000000000..7f0fa03ad Binary files /dev/null and b/flags/ee.png differ diff --git a/flags/eg.png b/flags/eg.png new file mode 100644 index 000000000..a6c0bf7d6 Binary files /dev/null and b/flags/eg.png differ diff --git a/flags/eh.png b/flags/eh.png new file mode 100644 index 000000000..ae4941e93 Binary files /dev/null and b/flags/eh.png differ diff --git a/flags/er.png b/flags/er.png new file mode 100644 index 000000000..16762d7ff Binary files /dev/null and b/flags/er.png differ diff --git a/flags/es.png b/flags/es.png new file mode 100644 index 000000000..51e8e19d4 Binary files /dev/null and b/flags/es.png differ diff --git a/flags/et.png b/flags/et.png new file mode 100644 index 000000000..01fe886e7 Binary files /dev/null and b/flags/et.png differ diff --git a/flags/eu.png b/flags/eu.png new file mode 100644 index 000000000..80f735c98 Binary files /dev/null and b/flags/eu.png differ diff --git a/flags/fi.png b/flags/fi.png new file mode 100644 index 000000000..d9b13c5df Binary files /dev/null and b/flags/fi.png differ diff --git a/flags/fj.png b/flags/fj.png new file mode 100644 index 000000000..f624c5eca Binary files /dev/null and b/flags/fj.png differ diff --git a/flags/fk.png b/flags/fk.png new file mode 100644 index 000000000..4b947a850 Binary files /dev/null and b/flags/fk.png differ diff --git a/flags/fm.png b/flags/fm.png new file mode 100644 index 000000000..c8c3edb14 Binary files /dev/null and b/flags/fm.png differ diff --git a/flags/fo.png b/flags/fo.png new file mode 100644 index 000000000..3546f0ac7 Binary files /dev/null and b/flags/fo.png differ diff --git a/flags/fr.png b/flags/fr.png new file mode 100644 index 000000000..0fabfade7 Binary files /dev/null and b/flags/fr.png differ diff --git a/flags/ga.png b/flags/ga.png new file mode 100644 index 000000000..cda678166 Binary files /dev/null and b/flags/ga.png differ diff --git a/flags/gb.png b/flags/gb.png new file mode 100644 index 000000000..74da38f8a Binary files /dev/null and b/flags/gb.png differ diff --git a/flags/gd.png b/flags/gd.png new file mode 100644 index 000000000..1ed37c7ed Binary files /dev/null and b/flags/gd.png differ diff --git a/flags/ge.png b/flags/ge.png new file mode 100644 index 000000000..2c8b792bb Binary files /dev/null and b/flags/ge.png differ diff --git a/flags/gf.png b/flags/gf.png new file mode 100644 index 000000000..671be464f Binary files /dev/null and b/flags/gf.png differ diff --git a/flags/gg.png b/flags/gg.png new file mode 100644 index 000000000..1010f7749 Binary files /dev/null and b/flags/gg.png differ diff --git a/flags/gh.png b/flags/gh.png new file mode 100644 index 000000000..524d8f0fa Binary files /dev/null and b/flags/gh.png differ diff --git a/flags/gi.png b/flags/gi.png new file mode 100644 index 000000000..6b9f5b2c6 Binary files /dev/null and b/flags/gi.png differ diff --git a/flags/gl.png b/flags/gl.png new file mode 100644 index 000000000..afaab2d4e Binary files /dev/null and b/flags/gl.png differ diff --git a/flags/gm.png b/flags/gm.png new file mode 100644 index 000000000..5b0aaf2e9 Binary files /dev/null and b/flags/gm.png differ diff --git a/flags/gn.png b/flags/gn.png new file mode 100644 index 000000000..4c1b49ab5 Binary files /dev/null and b/flags/gn.png differ diff --git a/flags/gp.png b/flags/gp.png new file mode 100644 index 000000000..a2de6b224 Binary files /dev/null and b/flags/gp.png differ diff --git a/flags/gq.png b/flags/gq.png new file mode 100644 index 000000000..8bfa70de1 Binary files /dev/null and b/flags/gq.png differ diff --git a/flags/gr.png b/flags/gr.png new file mode 100644 index 000000000..570204da7 Binary files /dev/null and b/flags/gr.png differ diff --git a/flags/gs.png b/flags/gs.png new file mode 100644 index 000000000..488c5666a Binary files /dev/null and b/flags/gs.png differ diff --git a/flags/gt.png b/flags/gt.png new file mode 100644 index 000000000..d62784830 Binary files /dev/null and b/flags/gt.png differ diff --git a/flags/gu.png b/flags/gu.png new file mode 100644 index 000000000..957db58d4 Binary files /dev/null and b/flags/gu.png differ diff --git a/flags/gw.png b/flags/gw.png new file mode 100644 index 000000000..b79d816a8 Binary files /dev/null and b/flags/gw.png differ diff --git a/flags/gy.png b/flags/gy.png new file mode 100644 index 000000000..69034dad6 Binary files /dev/null and b/flags/gy.png differ diff --git a/flags/hk.png b/flags/hk.png new file mode 100644 index 000000000..17372e2c1 Binary files /dev/null and b/flags/hk.png differ diff --git a/flags/hn.png b/flags/hn.png new file mode 100644 index 000000000..99d8fa45d Binary files /dev/null and b/flags/hn.png differ diff --git a/flags/hr.png b/flags/hr.png new file mode 100644 index 000000000..f11c40595 Binary files /dev/null and b/flags/hr.png differ diff --git a/flags/ht.png b/flags/ht.png new file mode 100644 index 000000000..ce4f979e0 Binary files /dev/null and b/flags/ht.png differ diff --git a/flags/hu.png b/flags/hu.png new file mode 100644 index 000000000..4cb7ef792 Binary files /dev/null and b/flags/hu.png differ diff --git a/flags/id.png b/flags/id.png new file mode 100644 index 000000000..a1afd4662 Binary files /dev/null and b/flags/id.png differ diff --git a/flags/ie.png b/flags/ie.png new file mode 100644 index 000000000..15a0240e2 Binary files /dev/null and b/flags/ie.png differ diff --git a/flags/il.png b/flags/il.png new file mode 100644 index 000000000..0e7dbe9b7 Binary files /dev/null and b/flags/il.png differ diff --git a/flags/im.png b/flags/im.png new file mode 100644 index 000000000..008e9f747 Binary files /dev/null and b/flags/im.png differ diff --git a/flags/in.png b/flags/in.png new file mode 100644 index 000000000..1557ba22a Binary files /dev/null and b/flags/in.png differ diff --git a/flags/io.png b/flags/io.png new file mode 100644 index 000000000..410e94ef6 Binary files /dev/null and b/flags/io.png differ diff --git a/flags/iq.png b/flags/iq.png new file mode 100644 index 000000000..bcb8e937a Binary files /dev/null and b/flags/iq.png differ diff --git a/flags/ir.png b/flags/ir.png new file mode 100644 index 000000000..3ece36e26 Binary files /dev/null and b/flags/ir.png differ diff --git a/flags/is.png b/flags/is.png new file mode 100644 index 000000000..21ab843e3 Binary files /dev/null and b/flags/is.png differ diff --git a/flags/it.png b/flags/it.png new file mode 100644 index 000000000..b468eb94c Binary files /dev/null and b/flags/it.png differ diff --git a/flags/je.png b/flags/je.png new file mode 100644 index 000000000..13e477ce7 Binary files /dev/null and b/flags/je.png differ diff --git a/flags/jm.png b/flags/jm.png new file mode 100644 index 000000000..e8a3b8eb8 Binary files /dev/null and b/flags/jm.png differ diff --git a/flags/jo.png b/flags/jo.png new file mode 100644 index 000000000..e4d4e9a6a Binary files /dev/null and b/flags/jo.png differ diff --git a/flags/jp.png b/flags/jp.png new file mode 100644 index 000000000..ae6d0e993 Binary files /dev/null and b/flags/jp.png differ diff --git a/flags/ke.png b/flags/ke.png new file mode 100644 index 000000000..5714b6752 Binary files /dev/null and b/flags/ke.png differ diff --git a/flags/kg.png b/flags/kg.png new file mode 100644 index 000000000..a07a24757 Binary files /dev/null and b/flags/kg.png differ diff --git a/flags/kh.png b/flags/kh.png new file mode 100644 index 000000000..bba9b54a6 Binary files /dev/null and b/flags/kh.png differ diff --git a/flags/ki.png b/flags/ki.png new file mode 100644 index 000000000..3c30bcfbf Binary files /dev/null and b/flags/ki.png differ diff --git a/flags/km.png b/flags/km.png new file mode 100644 index 000000000..9a9ab8630 Binary files /dev/null and b/flags/km.png differ diff --git a/flags/kn.png b/flags/kn.png new file mode 100644 index 000000000..c2fd8eded Binary files /dev/null and b/flags/kn.png differ diff --git a/flags/kp.png b/flags/kp.png new file mode 100644 index 000000000..2297b5520 Binary files /dev/null and b/flags/kp.png differ diff --git a/flags/kr.png b/flags/kr.png new file mode 100644 index 000000000..35c39eddc Binary files /dev/null and b/flags/kr.png differ diff --git a/flags/kw.png b/flags/kw.png new file mode 100644 index 000000000..da8c31dea Binary files /dev/null and b/flags/kw.png differ diff --git a/flags/ky.png b/flags/ky.png new file mode 100644 index 000000000..8e8df6796 Binary files /dev/null and b/flags/ky.png differ diff --git a/flags/kz.png b/flags/kz.png new file mode 100644 index 000000000..1ee794a8b Binary files /dev/null and b/flags/kz.png differ diff --git a/flags/la.png b/flags/la.png new file mode 100644 index 000000000..31beef263 Binary files /dev/null and b/flags/la.png differ diff --git a/flags/lb.png b/flags/lb.png new file mode 100644 index 000000000..3ebfaa614 Binary files /dev/null and b/flags/lb.png differ diff --git a/flags/lc.png b/flags/lc.png new file mode 100644 index 000000000..3c4a41e52 Binary files /dev/null and b/flags/lc.png differ diff --git a/flags/li.png b/flags/li.png new file mode 100644 index 000000000..967fdfcd5 Binary files /dev/null and b/flags/li.png differ diff --git a/flags/lk.png b/flags/lk.png new file mode 100644 index 000000000..b796bbfb8 Binary files /dev/null and b/flags/lk.png differ diff --git a/flags/lr.png b/flags/lr.png new file mode 100644 index 000000000..e3687f5c0 Binary files /dev/null and b/flags/lr.png differ diff --git a/flags/ls.png b/flags/ls.png new file mode 100644 index 000000000..6cedfcb24 Binary files /dev/null and b/flags/ls.png differ diff --git a/flags/lt.png b/flags/lt.png new file mode 100644 index 000000000..102ea7480 Binary files /dev/null and b/flags/lt.png differ diff --git a/flags/lu.png b/flags/lu.png new file mode 100644 index 000000000..763ea743a Binary files /dev/null and b/flags/lu.png differ diff --git a/flags/lv.png b/flags/lv.png new file mode 100644 index 000000000..55eed1dd6 Binary files /dev/null and b/flags/lv.png differ diff --git a/flags/ly.png b/flags/ly.png new file mode 100644 index 000000000..73a957aea Binary files /dev/null and b/flags/ly.png differ diff --git a/flags/ma.png b/flags/ma.png new file mode 100644 index 000000000..3047a7ab2 Binary files /dev/null and b/flags/ma.png differ diff --git a/flags/mc.png b/flags/mc.png new file mode 100644 index 000000000..0679494b5 Binary files /dev/null and b/flags/mc.png differ diff --git a/flags/md.png b/flags/md.png new file mode 100644 index 000000000..09d3896be Binary files /dev/null and b/flags/md.png differ diff --git a/flags/me.png b/flags/me.png new file mode 100644 index 000000000..c2e476494 Binary files /dev/null and b/flags/me.png differ diff --git a/flags/mf.png b/flags/mf.png new file mode 100644 index 000000000..0fabfade7 Binary files /dev/null and b/flags/mf.png differ diff --git a/flags/mg.png b/flags/mg.png new file mode 100644 index 000000000..5fe2a1479 Binary files /dev/null and b/flags/mg.png differ diff --git a/flags/mh.png b/flags/mh.png new file mode 100644 index 000000000..e82862252 Binary files /dev/null and b/flags/mh.png differ diff --git a/flags/mk.png b/flags/mk.png new file mode 100644 index 000000000..4694e6c52 Binary files /dev/null and b/flags/mk.png differ diff --git a/flags/ml.png b/flags/ml.png new file mode 100644 index 000000000..ec87737bf Binary files /dev/null and b/flags/ml.png differ diff --git a/flags/mm.png b/flags/mm.png new file mode 100644 index 000000000..cb48ba7c0 Binary files /dev/null and b/flags/mm.png differ diff --git a/flags/mn.png b/flags/mn.png new file mode 100644 index 000000000..193127372 Binary files /dev/null and b/flags/mn.png differ diff --git a/flags/mo.png b/flags/mo.png new file mode 100644 index 000000000..145f0882c Binary files /dev/null and b/flags/mo.png differ diff --git a/flags/mp.png b/flags/mp.png new file mode 100644 index 000000000..fcad3e791 Binary files /dev/null and b/flags/mp.png differ diff --git a/flags/mq.png b/flags/mq.png new file mode 100644 index 000000000..6885baec1 Binary files /dev/null and b/flags/mq.png differ diff --git a/flags/mr.png b/flags/mr.png new file mode 100644 index 000000000..089825cb3 Binary files /dev/null and b/flags/mr.png differ diff --git a/flags/ms.png b/flags/ms.png new file mode 100644 index 000000000..4604dc67f Binary files /dev/null and b/flags/ms.png differ diff --git a/flags/mt.png b/flags/mt.png new file mode 100644 index 000000000..a62a306b5 Binary files /dev/null and b/flags/mt.png differ diff --git a/flags/mu.png b/flags/mu.png new file mode 100644 index 000000000..aba837fcd Binary files /dev/null and b/flags/mu.png differ diff --git a/flags/mv.png b/flags/mv.png new file mode 100644 index 000000000..82546eb23 Binary files /dev/null and b/flags/mv.png differ diff --git a/flags/mw.png b/flags/mw.png new file mode 100644 index 000000000..4eb607d9f Binary files /dev/null and b/flags/mw.png differ diff --git a/flags/mx.png b/flags/mx.png new file mode 100644 index 000000000..97a92445f Binary files /dev/null and b/flags/mx.png differ diff --git a/flags/my.png b/flags/my.png new file mode 100644 index 000000000..d8299d734 Binary files /dev/null and b/flags/my.png differ diff --git a/flags/mz.png b/flags/mz.png new file mode 100644 index 000000000..ce7603cb6 Binary files /dev/null and b/flags/mz.png differ diff --git a/flags/na.png b/flags/na.png new file mode 100644 index 000000000..50597cf98 Binary files /dev/null and b/flags/na.png differ diff --git a/flags/nc.png b/flags/nc.png new file mode 100644 index 000000000..6c84f1cfc Binary files /dev/null and b/flags/nc.png differ diff --git a/flags/ne.png b/flags/ne.png new file mode 100644 index 000000000..ef1adaa4c Binary files /dev/null and b/flags/ne.png differ diff --git a/flags/nf.png b/flags/nf.png new file mode 100644 index 000000000..35b31e694 Binary files /dev/null and b/flags/nf.png differ diff --git a/flags/ng.png b/flags/ng.png new file mode 100644 index 000000000..9a7a66359 Binary files /dev/null and b/flags/ng.png differ diff --git a/flags/ni.png b/flags/ni.png new file mode 100644 index 000000000..20ef0181d Binary files /dev/null and b/flags/ni.png differ diff --git a/flags/nl.png b/flags/nl.png new file mode 100644 index 000000000..d33b63123 Binary files /dev/null and b/flags/nl.png differ diff --git a/flags/no.png b/flags/no.png new file mode 100644 index 000000000..754501586 Binary files /dev/null and b/flags/no.png differ diff --git a/flags/np.png b/flags/np.png new file mode 100644 index 000000000..4537d4b82 Binary files /dev/null and b/flags/np.png differ diff --git a/flags/nr.png b/flags/nr.png new file mode 100644 index 000000000..ec3833d49 Binary files /dev/null and b/flags/nr.png differ diff --git a/flags/nu.png b/flags/nu.png new file mode 100644 index 000000000..1073fc254 Binary files /dev/null and b/flags/nu.png differ diff --git a/flags/nz.png b/flags/nz.png new file mode 100644 index 000000000..7b100bbf3 Binary files /dev/null and b/flags/nz.png differ diff --git a/flags/om.png b/flags/om.png new file mode 100644 index 000000000..42467e403 Binary files /dev/null and b/flags/om.png differ diff --git a/flags/pa.png b/flags/pa.png new file mode 100644 index 000000000..53d24bd9b Binary files /dev/null and b/flags/pa.png differ diff --git a/flags/pe.png b/flags/pe.png new file mode 100644 index 000000000..5cc73adda Binary files /dev/null and b/flags/pe.png differ diff --git a/flags/pf.png b/flags/pf.png new file mode 100644 index 000000000..829fcfcdc Binary files /dev/null and b/flags/pf.png differ diff --git a/flags/pg.png b/flags/pg.png new file mode 100644 index 000000000..5aef454ea Binary files /dev/null and b/flags/pg.png differ diff --git a/flags/ph.png b/flags/ph.png new file mode 100644 index 000000000..a73871c47 Binary files /dev/null and b/flags/ph.png differ diff --git a/flags/pk.png b/flags/pk.png new file mode 100644 index 000000000..3149ca640 Binary files /dev/null and b/flags/pk.png differ diff --git a/flags/pl.png b/flags/pl.png new file mode 100644 index 000000000..24e3e7e6c Binary files /dev/null and b/flags/pl.png differ diff --git a/flags/pm.png b/flags/pm.png new file mode 100644 index 000000000..88932fcb5 Binary files /dev/null and b/flags/pm.png differ diff --git a/flags/pn.png b/flags/pn.png new file mode 100644 index 000000000..8fc85f377 Binary files /dev/null and b/flags/pn.png differ diff --git a/flags/pr.png b/flags/pr.png new file mode 100644 index 000000000..238287272 Binary files /dev/null and b/flags/pr.png differ diff --git a/flags/ps.png b/flags/ps.png new file mode 100644 index 000000000..f4541c68d Binary files /dev/null and b/flags/ps.png differ diff --git a/flags/pt.png b/flags/pt.png new file mode 100644 index 000000000..83d60d687 Binary files /dev/null and b/flags/pt.png differ diff --git a/flags/pw.png b/flags/pw.png new file mode 100644 index 000000000..b68dc9727 Binary files /dev/null and b/flags/pw.png differ diff --git a/flags/py.png b/flags/py.png new file mode 100644 index 000000000..7ff16b210 Binary files /dev/null and b/flags/py.png differ diff --git a/flags/qa.png b/flags/qa.png new file mode 100644 index 000000000..7c38eac48 Binary files /dev/null and b/flags/qa.png differ diff --git a/flags/re.png b/flags/re.png new file mode 100644 index 000000000..0fabfade7 Binary files /dev/null and b/flags/re.png differ diff --git a/flags/ro.png b/flags/ro.png new file mode 100644 index 000000000..adf2516eb Binary files /dev/null and b/flags/ro.png differ diff --git a/flags/rs.png b/flags/rs.png new file mode 100644 index 000000000..2b039ba29 Binary files /dev/null and b/flags/rs.png differ diff --git a/flags/ru.png b/flags/ru.png new file mode 100644 index 000000000..f64fd5dbd Binary files /dev/null and b/flags/ru.png differ diff --git a/flags/rw.png b/flags/rw.png new file mode 100644 index 000000000..1b4f0a74e Binary files /dev/null and b/flags/rw.png differ diff --git a/flags/sa.png b/flags/sa.png new file mode 100644 index 000000000..9d9725820 Binary files /dev/null and b/flags/sa.png differ diff --git a/flags/sb.png b/flags/sb.png new file mode 100644 index 000000000..0b875c2ac Binary files /dev/null and b/flags/sb.png differ diff --git a/flags/sc.png b/flags/sc.png new file mode 100644 index 000000000..a4634e14e Binary files /dev/null and b/flags/sc.png differ diff --git a/flags/sd.png b/flags/sd.png new file mode 100644 index 000000000..20a7572e8 Binary files /dev/null and b/flags/sd.png differ diff --git a/flags/se.png b/flags/se.png new file mode 100644 index 000000000..a4c3d5677 Binary files /dev/null and b/flags/se.png differ diff --git a/flags/sg.png b/flags/sg.png new file mode 100644 index 000000000..0b12cbfba Binary files /dev/null and b/flags/sg.png differ diff --git a/flags/sh.png b/flags/sh.png new file mode 100644 index 000000000..ccbb2b242 Binary files /dev/null and b/flags/sh.png differ diff --git a/flags/si.png b/flags/si.png new file mode 100644 index 000000000..21dc5d945 Binary files /dev/null and b/flags/si.png differ diff --git a/flags/sj.png b/flags/sj.png new file mode 100644 index 000000000..754501586 Binary files /dev/null and b/flags/sj.png differ diff --git a/flags/sk.png b/flags/sk.png new file mode 100644 index 000000000..53136a137 Binary files /dev/null and b/flags/sk.png differ diff --git a/flags/sl.png b/flags/sl.png new file mode 100644 index 000000000..9db4875e7 Binary files /dev/null and b/flags/sl.png differ diff --git a/flags/sm.png b/flags/sm.png new file mode 100644 index 000000000..2aa120883 Binary files /dev/null and b/flags/sm.png differ diff --git a/flags/sn.png b/flags/sn.png new file mode 100644 index 000000000..447a9fe59 Binary files /dev/null and b/flags/sn.png differ diff --git a/flags/so.png b/flags/so.png new file mode 100644 index 000000000..4984c998d Binary files /dev/null and b/flags/so.png differ diff --git a/flags/sr.png b/flags/sr.png new file mode 100644 index 000000000..1510080ef Binary files /dev/null and b/flags/sr.png differ diff --git a/flags/ss.png b/flags/ss.png new file mode 100644 index 000000000..162e394cb Binary files /dev/null and b/flags/ss.png differ diff --git a/flags/st.png b/flags/st.png new file mode 100644 index 000000000..214231eb3 Binary files /dev/null and b/flags/st.png differ diff --git a/flags/sv.png b/flags/sv.png new file mode 100644 index 000000000..3541252ab Binary files /dev/null and b/flags/sv.png differ diff --git a/flags/sx.png b/flags/sx.png new file mode 100644 index 000000000..ef81b3e81 Binary files /dev/null and b/flags/sx.png differ diff --git a/flags/sy.png b/flags/sy.png new file mode 100644 index 000000000..5c7ec9335 Binary files /dev/null and b/flags/sy.png differ diff --git a/flags/sz.png b/flags/sz.png new file mode 100644 index 000000000..cd14fd551 Binary files /dev/null and b/flags/sz.png differ diff --git a/flags/tc.png b/flags/tc.png new file mode 100644 index 000000000..d5fcb8cc6 Binary files /dev/null and b/flags/tc.png differ diff --git a/flags/td.png b/flags/td.png new file mode 100644 index 000000000..9d4ea0b3f Binary files /dev/null and b/flags/td.png differ diff --git a/flags/tf.png b/flags/tf.png new file mode 100644 index 000000000..fe7c5e8c8 Binary files /dev/null and b/flags/tf.png differ diff --git a/flags/tg.png b/flags/tg.png new file mode 100644 index 000000000..f748b9f35 Binary files /dev/null and b/flags/tg.png differ diff --git a/flags/th.png b/flags/th.png new file mode 100644 index 000000000..5f077a43b Binary files /dev/null and b/flags/th.png differ diff --git a/flags/tj.png b/flags/tj.png new file mode 100644 index 000000000..b77c8a500 Binary files /dev/null and b/flags/tj.png differ diff --git a/flags/tk.png b/flags/tk.png new file mode 100644 index 000000000..8a2fc00de Binary files /dev/null and b/flags/tk.png differ diff --git a/flags/tl.png b/flags/tl.png new file mode 100644 index 000000000..6e52a84e1 Binary files /dev/null and b/flags/tl.png differ diff --git a/flags/tm.png b/flags/tm.png new file mode 100644 index 000000000..f7e0eda2e Binary files /dev/null and b/flags/tm.png differ diff --git a/flags/tn.png b/flags/tn.png new file mode 100644 index 000000000..52c18be49 Binary files /dev/null and b/flags/tn.png differ diff --git a/flags/to.png b/flags/to.png new file mode 100644 index 000000000..8daac5aa8 Binary files /dev/null and b/flags/to.png differ diff --git a/flags/tr.png b/flags/tr.png new file mode 100644 index 000000000..f5050f10d Binary files /dev/null and b/flags/tr.png differ diff --git a/flags/tt.png b/flags/tt.png new file mode 100644 index 000000000..1bcb5afd8 Binary files /dev/null and b/flags/tt.png differ diff --git a/flags/tv.png b/flags/tv.png new file mode 100644 index 000000000..6d76f7512 Binary files /dev/null and b/flags/tv.png differ diff --git a/flags/tw.png b/flags/tw.png new file mode 100644 index 000000000..a49ff97a5 Binary files /dev/null and b/flags/tw.png differ diff --git a/flags/tz.png b/flags/tz.png new file mode 100644 index 000000000..ae009d032 Binary files /dev/null and b/flags/tz.png differ diff --git a/flags/ua.png b/flags/ua.png new file mode 100644 index 000000000..afe50df1e Binary files /dev/null and b/flags/ua.png differ diff --git a/flags/ug.png b/flags/ug.png new file mode 100644 index 000000000..8f02875ce Binary files /dev/null and b/flags/ug.png differ diff --git a/flags/um.png b/flags/um.png new file mode 100644 index 000000000..3843debdf Binary files /dev/null and b/flags/um.png differ diff --git a/flags/us.png b/flags/us.png new file mode 100644 index 000000000..3843debdf Binary files /dev/null and b/flags/us.png differ diff --git a/flags/uy.png b/flags/uy.png new file mode 100644 index 000000000..8488ab9f3 Binary files /dev/null and b/flags/uy.png differ diff --git a/flags/uz.png b/flags/uz.png new file mode 100644 index 000000000..7b2cec51b Binary files /dev/null and b/flags/uz.png differ diff --git a/flags/va.png b/flags/va.png new file mode 100644 index 000000000..959de7739 Binary files /dev/null and b/flags/va.png differ diff --git a/flags/vc.png b/flags/vc.png new file mode 100644 index 000000000..7a6ca3596 Binary files /dev/null and b/flags/vc.png differ diff --git a/flags/ve.png b/flags/ve.png new file mode 100644 index 000000000..26308e597 Binary files /dev/null and b/flags/ve.png differ diff --git a/flags/vg.png b/flags/vg.png new file mode 100644 index 000000000..52ae3bc42 Binary files /dev/null and b/flags/vg.png differ diff --git a/flags/vi.png b/flags/vi.png new file mode 100644 index 000000000..bfdb43c86 Binary files /dev/null and b/flags/vi.png differ diff --git a/flags/vn.png b/flags/vn.png new file mode 100644 index 000000000..bf4abbab4 Binary files /dev/null and b/flags/vn.png differ diff --git a/flags/vu.png b/flags/vu.png new file mode 100644 index 000000000..76f3a6b10 Binary files /dev/null and b/flags/vu.png differ diff --git a/flags/wf.png b/flags/wf.png new file mode 100644 index 000000000..2b574012d Binary files /dev/null and b/flags/wf.png differ diff --git a/flags/ws.png b/flags/ws.png new file mode 100644 index 000000000..2ab4cdfc2 Binary files /dev/null and b/flags/ws.png differ diff --git a/flags/ye.png b/flags/ye.png new file mode 100644 index 000000000..daaa9dbbd Binary files /dev/null and b/flags/ye.png differ diff --git a/flags/yt.png b/flags/yt.png new file mode 100644 index 000000000..0fabfade7 Binary files /dev/null and b/flags/yt.png differ diff --git a/flags/yu.png b/flags/yu.png new file mode 100644 index 000000000..6037e8b09 Binary files /dev/null and b/flags/yu.png differ diff --git a/flags/za.png b/flags/za.png new file mode 100644 index 000000000..2398c8362 Binary files /dev/null and b/flags/za.png differ diff --git a/flags/zm.png b/flags/zm.png new file mode 100644 index 000000000..d11147c79 Binary files /dev/null and b/flags/zm.png differ diff --git a/flags/zw.png b/flags/zw.png new file mode 100644 index 000000000..60f257d64 Binary files /dev/null and b/flags/zw.png differ diff --git a/gmap.html b/gmap.html index b39a30a22..f007668d0 100644 --- a/gmap.html +++ b/gmap.html @@ -38,6 +38,7 @@ src="https://maps.googleapis.com/maps/api/js?sensor=true">