UNPKG

emoji-js

Version:

A JS Emoji conversion library

1,049 lines (958 loc) 343 kB
"use strict"; ;(function() { var root = this; var previous_emoji = root.EmojiConvertor; /** * @global * @namespace */ var emoji = function(){ var self = this; /** * The set of images to use for graphical emoji. * * @memberof emoji * @type {string} */ self.img_set = 'apple'; /** * Configuration details for different image sets. This includes a path to a directory containing the * individual images (`path`) and a URL to sprite sheets (`sheet`). All of these images can be found * in the [emoji-data repository]{@link https://github.com/iamcal/emoji-data}. Using a CDN for these * is not a bad idea. * * @memberof emoji * @type {object} */ self.img_sets = { 'apple' : {'path' : '/emoji-data/img-apple-64/', 'sheet' : '/emoji-data/sheet_apple_64.png', 'sheet_size' : 64, 'mask' : 1}, 'google' : {'path' : '/emoji-data/img-google-64/', 'sheet' : '/emoji-data/sheet_google_64.png', 'sheet_size' : 64, 'mask' : 2}, 'twitter' : {'path' : '/emoji-data/img-twitter-64/', 'sheet' : '/emoji-data/sheet_twitter_64.png', 'sheet_size' : 64, 'mask' : 4}, 'facebook' : {'path' : '/emoji-data/img-facebook-64/', 'sheet' : '/emoji-data/sheet_facebook_64.png', 'sheet_size' : 64, 'mask' : 8}, }; /** * Use a CSS class instead of specifying a sprite or background image for * the span representing the emoticon. This requires a CSS sheet with * emoticon data-uris. * * @memberof emoji * @type bool * @todo document how to build the CSS stylesheet self requires. */ self.use_css_imgs = false; /** * Instead of replacing emoticons with the appropriate representations, * replace them with their colon string representation. * @memberof emoji * @type bool */ self.colons_mode = false; self.text_mode = false; /** * If true, sets the "title" property on the span or image that gets * inserted for the emoticon. * @memberof emoji * @type bool */ self.include_title = false; /** * If true, sets the text of the span or image that gets inserted for the * emoticon. * @memberof emoji * @type bool */ self.include_text = false; /** * If the platform supports native emoticons, use those instead * of the fallbacks. * @memberof emoji * @type bool */ self.allow_native = true; /** * Wrap native with a <span class="emoji-native"></span> to allow styling * @memberof emoji * @type bool */ self.wrap_native = false; /** * Set to true to use CSS sprites instead of individual images on * platforms that support it. * * @memberof emoji * @type bool */ self.use_sheet = false; /** * * Set to true to avoid black & white native Windows emoji being used. * * @memberof emoji * @type bool */ self.avoid_ms_emoji = true; /** * * Set to true to allow :CAPITALIZATION: * * @memberof emoji * @type bool */ self.allow_caps = false; /** * * Suffix to allow for individual image cache busting * * @memberof emoji * @type string */ self.img_suffix = ''; // Keeps track of what has been initialized. /** @private */ self.inits = {}; self.map = {}; // discover the environment settings self.init_env(); return self; } emoji.prototype.noConflict = function(){ root.EmojiConvertor = previous_emoji; return emoji; } /** * @memberof emoji * @param {string} str A string potentially containing ascii emoticons * (ie. `:)`) * * @returns {string} A new string with all emoticons in `str` * replaced by a representatation that's supported by the current * environtment. */ emoji.prototype.replace_emoticons = function(str){ var self = this; var colonized = self.replace_emoticons_with_colons(str); return self.replace_colons(colonized); }; /** * @memberof emoji * @param {string} str A string potentially containing ascii emoticons * (ie. `:)`) * * @returns {string} A new string with all emoticons in `str` * replaced by their colon string representations (ie. `:smile:`) */ emoji.prototype.replace_emoticons_with_colons = function(str){ var self = this; self.init_emoticons(); var _prev_offset = 0; var emoticons_with_parens = []; var str_replaced = str.replace(self.rx_emoticons, function(m, $1, emoticon, offset){ var prev_offset = _prev_offset; _prev_offset = offset + m.length; var has_open_paren = emoticon.indexOf('(') !== -1; var has_close_paren = emoticon.indexOf(')') !== -1; /* * Track paren-having emoticons for fixing later */ if ((has_open_paren || has_close_paren) && emoticons_with_parens.indexOf(emoticon) == -1) { emoticons_with_parens.push(emoticon); } /* * Look for preceding open paren for emoticons that contain a close paren * This prevents matching "8)" inside "(around 7 - 8)" */ if (has_close_paren && !has_open_paren) { var piece = str.substring(prev_offset, offset); if (piece.indexOf('(') !== -1 && piece.indexOf(')') === -1) return m; } /* * See if we're in a numbered list * This prevents matching "8)" inside "7) foo\n8) bar" */ if (m === '\n8)') { var before_match = str.substring(0, offset); if (/\n?(6\)|7\))/.test(before_match)) return m; } var val = self.data[self.map.emoticons[emoticon]][3][0]; return val ? $1+':'+val+':' : m; }); /* * Come back and fix emoticons we ignored because they were inside parens. * It's useful to do self at the end so we don't get tripped up by other, * normal emoticons */ if (emoticons_with_parens.length) { var escaped_emoticons = emoticons_with_parens.map(self.escape_rx); var parenthetical_rx = new RegExp('(\\(.+)('+escaped_emoticons.join('|')+')(.+\\))', 'g'); str_replaced = str_replaced.replace(parenthetical_rx, function(m, $1, emoticon, $2) { var val = self.data[self.map.emoticons[emoticon]][3][0]; return val ? $1+':'+val+':'+$2 : m; }); } return str_replaced; }; /** * @memberof emoji * @param {string} str A string potentially containing colon string * representations of emoticons (ie. `:smile:`) * * @returns {string} A new string with all colon string emoticons replaced * with the appropriate representation. */ emoji.prototype.replace_colons = function(str){ var self = this; self.init_colons(); return str.replace(self.rx_colons, function(m){ var idx = m.substr(1, m.length-2); if (self.allow_caps) idx = idx.toLowerCase(); // special case - an emoji with a skintone modified if (idx.indexOf('::skin-tone-') > -1){ var skin_tone = idx.substr(-1, 1); var skin_idx = 'skin-tone-'+skin_tone; var skin_val = self.map.colons[skin_idx]; idx = idx.substr(0, idx.length - 13); var val = self.map.colons[idx]; if (val){ return self.replacement(val, idx, ':', { 'idx' : skin_val, 'actual' : skin_idx, 'wrapper' : ':' }); }else{ return ':' + idx + ':' + self.replacement(skin_val, skin_idx, ':'); } }else{ var val = self.map.colons[idx]; return val ? self.replacement(val, idx, ':') : m; } }); }; /** * @memberof emoji * @param {string} str A string potentially containing unified unicode * emoticons. (ie. 😄) * * @returns {string} A new string with all unicode emoticons replaced with * the appropriate representation for the current environment. */ emoji.prototype.replace_unified = function(str){ var self = this; self.init_unified(); return str.replace(self.rx_unified, function(m, p1, p2){ var val = self.map.unified[p1]; if (val){ var idx = null; if (p2 == '\uD83C\uDFFB') idx = '1f3fb'; if (p2 == '\uD83C\uDFFC') idx = '1f3fc'; if (p2 == '\uD83C\uDFFD') idx = '1f3fd'; if (p2 == '\uD83C\uDFFE') idx = '1f3fe'; if (p2 == '\uD83C\uDFFF') idx = '1f3ff'; if (idx){ return self.replacement(val, null, null, { idx : idx, actual : p2, wrapper : '' }); } return self.replacement(val); } val = self.map.unified_vars[p1]; if (val){ return self.replacement(val[0], null, null, { 'idx' : val[1], 'actual' : '', 'wrapper' : '', }); } return m; }); }; emoji.prototype.addAliases = function(map){ var self = this; self.init_colons(); for (var i in map){ self.map.colons[i] = map[i]; } }; emoji.prototype.removeAliases = function(list){ var self = this; for (var i=0; i<list.length; i++){ var alias = list[i]; // first, delete the alias mapping delete self.map.colons[alias]; // now reset it to the default, if one exists finder_block: { for (var j in self.data){ for (var k=0; k<self.data[j][3].length; k++){ if (alias == self.data[j][3][k]){ self.map.colons[alias] = j; break finder_block; } } } } } }; // Does the actual replacement of a character with the appropriate /** @private */ emoji.prototype.replacement = function(idx, actual, wrapper, variation, is_extra){ var self = this; var full_idx = idx; // for emoji with variation modifiers, set `extra` to the standalone output for the // modifier (used if we can't combine the glyph) and set variation_idx to key of the // variation modifier (used below) var extra = ''; var var_idx = null; if (typeof variation === 'object'){ extra = self.replacement(variation.idx, variation.actual, variation.wrapper, undefined, true); var_idx = variation.idx; } // deal with simple modes (colons and text) first wrapper = wrapper || ''; if (self.colons_mode) return ':'+self.data[idx][3][0]+':'+extra; var text_name = (actual) ? wrapper+actual+wrapper : self.data[idx][8] || wrapper+self.data[idx][3][0]+wrapper; if (self.text_mode) return text_name + extra; // figure out which images and code points to use, based on the skin variations. this information is also used for // unified native output mode var img = self.find_image(idx, var_idx); // native modes next. // for variations selectors, we just need to output them raw, which `extra` will contain. since softbank and google don't // support skin variations, we'll keep `extra` around, every if we have a valid variation selector self.init_env(); if (self.replace_mode == 'softbank' && self.allow_native && self.data[idx][1]) return self.format_native(self.data[idx][1] + extra, !is_extra); if (self.replace_mode == 'google' && self.allow_native && self.data[idx][2]) return self.format_native(self.data[idx][2] + extra, !is_extra); // for unified (and images, below), we can use the variation info and throw away the `extra` contents if (img.is_var){ extra = ''; } if (self.replace_mode == 'unified' && self.allow_native) return self.format_native(img.unified + extra, !is_extra); // finally deal with image modes. // the call to .find_image() earlier checked if the image set and particular emoji supports variations, // otherwise we can return it as a separate image (already calculated in `extra`). // first we set up the params we'll use if we can't use a variation. var title = self.include_title ? ' title="'+(actual || self.data[idx][3][0])+'"' : ''; var text = self.include_text ? wrapper+(actual || self.data[idx][3][0])+wrapper : ''; // custom image for this glyph? if (self.data[idx][7]){ img.path = self.data[idx][7]; img.px = null; img.py = null; img.is_var = false; } // if we're displaying a variation, include it in the text if (img.is_var && self.include_text && variation && variation.actual && variation.wrapper) { text += variation.wrapper+variation.actual+variation.wrapper; } // output if (self.replace_mode == 'css') { if (self.use_sheet && img.px != null && img.py != null){ // simplified calculation of `100 * (position * sprite_size) / ( (sheet_size * sprite_size) - sprite_size )` var sheet_x = 100 * img.px / (self.sheet_size - 1); var sheet_y = 100 * img.py / (self.sheet_size - 1); var sheet_sz = 100 * self.sheet_size; var style = 'background: url('+img.sheet+');background-position:'+(sheet_x)+'% '+(sheet_y)+'%;background-size:'+sheet_sz+'% '+sheet_sz+'%'; return '<span class="emoji-outer emoji-sizer"><span class="emoji-inner" style="'+style+'"'+title+' data-codepoints="'+img.full_idx+'">'+text+'</span></span>'+extra; }else if (self.use_css_imgs){ return '<span class="emoji emoji-'+idx+'"'+title+' data-codepoints="'+img.full_idx+'">'+text+'</span>'+extra; }else{ return '<span class="emoji emoji-sizer" style="background-image:url('+img.path+')"'+title+' data-codepoints="'+img.full_idx+'">'+text+'</span>'+extra; } } return '<img src="'+img.path+'" class="emoji" data-codepoints="'+img.full_idx+'" '+title+'/>'+extra; }; // Wraps the output of a native endpoint, if configured /** @private */ emoji.prototype.format_native = function(native, allow_wrap){ var self = this; if (self.wrap_native && allow_wrap){ return '<span class="emoji-native">'+ native + '</span>'; } return native; }; // Finds the best image to display, taking into account image set precedence and obsoletes /** @private */ emoji.prototype.find_image = function(idx, var_idx){ var self = this; // set up some initial state var out = { 'path' : '', 'sheet' : '', 'sheet_size' : 0, 'px' : self.data[idx][4], 'py' : self.data[idx][5], 'full_idx' : idx, 'is_var' : false, 'unified' : self.data[idx][0][0] }; var use_mask = self.data[idx][6]; // can we use a variation? if (var_idx && self.variations_data[idx] && self.variations_data[idx][var_idx]){ var var_data = self.variations_data[idx][var_idx]; out.px = var_data[1]; out.py = var_data[2]; out.full_idx = var_data[0]; out.is_var = true; out.unified = var_data[4][0]; use_mask = var_data[3]; } // this matches `build/build_image.php` `in emoji-data`, so that sheet and images modes always // agree about the image to use. var try_order = [self.img_set, 'apple', 'google', 'twitter', 'facebook', 'messenger']; // for each image set, see if we have the image we need. otherwise check for an obsolete in // that image set for (var j=0; j<try_order.length; j++){ // check we haven't passed in a bad value for img_set, or messed up the img_sets hash if (!self.img_sets[try_order[j]]){ throw Error("Invalid value for img_set"); } if (use_mask & self.img_sets[try_order[j]].mask){ out.path = self.img_sets[try_order[j]].path+out.full_idx+'.png' + self.img_suffix; // if we're not changing glyph, use our base set for sheets - it has every glyph out.sheet = self.img_sets[self.img_set].sheet; out.sheet_size = self.img_sets[self.img_set].sheet_size; return out; } if (self.obsoletes_data[out.full_idx]){ var ob_data = self.obsoletes_data[out.full_idx]; if (ob_data[3] & self.img_sets[try_order[j]].mask){ out.path = self.img_sets[try_order[j]].path+ob_data[0]+'.png' + self.img_suffix; out.sheet = self.img_sets[try_order[j]].sheet; out.sheet_size = self.img_sets[try_order[j]].sheet_size; out.px = ob_data[1]; out.py = ob_data[2]; return out; } } } return out; }; // Initializes the text emoticon data /** @private */ emoji.prototype.init_emoticons = function(){ var self = this; if (self.inits.emoticons) return; self.init_colons(); // we require this for the emoticons map self.inits.emoticons = 1; var a = []; self.map.emoticons = {}; for (var i in self.emoticons_data){ // because we never see some characters in our text except as entities, we must do some replacing var emoticon = i.replace(/\&/g, '&amp;').replace(/\</g, '&lt;').replace(/\>/g, '&gt;'); if (!self.map.colons[self.emoticons_data[i]]) continue; self.map.emoticons[emoticon] = self.map.colons[self.emoticons_data[i]]; a.push(self.escape_rx(emoticon)); } self.rx_emoticons = new RegExp(('(^|\\s)('+a.join('|')+')(?=$|[\\s|\\?\\.,!])'), 'g'); }; // Initializes the colon string data /** @private */ emoji.prototype.init_colons = function(){ var self = this; if (self.inits.colons) return; self.inits.colons = 1; self.rx_colons = new RegExp('\:[a-zA-Z0-9-_+]+\:(\:skin-tone-[2-6]\:)?', 'g'); self.map.colons = {}; for (var i in self.data){ for (var j=0; j<self.data[i][3].length; j++){ self.map.colons[self.data[i][3][j]] = i; } } }; // initializes the unified unicode emoticon data /** @private */ emoji.prototype.init_unified = function(){ var self = this; if (self.inits.unified) return; self.inits.unified = 1; var a = []; self.map.unified = {}; self.map.unified_vars = {}; for (var i in self.data){ for (var j=0; j<self.data[i][0].length; j++){ a.push(self.data[i][0][j].replace('*', '\\*')); self.map.unified[self.data[i][0][j]] = i; } } for (var i in self.variations_data){ // skip simple append-style skin tones if (self.variations_data[i]['1f3fb']){ if (self.variations_data[i]['1f3fb'][0] == i+'-1f3fb') continue; } for (var k in self.variations_data[i]){ for (var j=0; j<self.variations_data[i][k][4].length; j++){ a.push(self.variations_data[i][k][4][j].replace('*', '\\*')); self.map.unified_vars[self.variations_data[i][k][4][j]] = [i, k]; } } } a = a.sort(function(a,b){ return b.length - a.length; }); self.rx_unified = new RegExp('('+a.join('|')+')(\uD83C[\uDFFB-\uDFFF])?', "g"); }; // initializes the environment, figuring out what representation // of emoticons is best. /** @private */ emoji.prototype.init_env = function(){ var self = this; if (self.inits.env) return; self.inits.env = 1; self.replace_mode = 'img'; var supports_css = false; if (typeof(navigator) !== 'undefined' && "userAgent" in navigator) { var ua = navigator.userAgent; if (typeof window !== 'undefined' && window.getComputedStyle){ try { var st = window.getComputedStyle(document.body); if (st['background-size'] || st['backgroundSize']){ supports_css = true; } } catch(e){ // Swallow an exception caused by hidden iFrames on Firefox // https://github.com/iamcal/js-emoji/issues/73 if (ua.match(/Firefox/i)){ supports_css = true; } } } if ("product" in navigator){ if (/ReactNative/i.test(navigator.product)){ self.replace_mode = 'unified'; return; } } if (ua.match(/(iPhone|iPod|iPad|iPhone\s+Simulator)/i)){ if (ua.match(/OS\s+[12345]/i)){ self.replace_mode = 'softbank'; return; } if (ua.match(/OS\s+[6789]/i)){ self.replace_mode = 'unified'; return; } } if (ua.match(/Mac OS X (10[._ ](?:[789]|1)|11[._ ]\d)/i)){ self.replace_mode = 'unified'; return; } if (!self.avoid_ms_emoji){ if (ua.match(/Windows NT 6.[1-9]/i) || ua.match(/Windows NT 10.[0-9]/i)){ if (!ua.match(/Chrome/i) && !ua.match(/MSIE 8/i)){ self.replace_mode = 'unified'; return; } } } } // Need a better way to detect android devices that actually // support emoji. if (false && ua.match(/Android/i)){ self.replace_mode = 'google'; return; } if (supports_css){ self.replace_mode = 'css'; return; } // nothing fancy detected - use images }; /** @private */ emoji.prototype.escape_rx = function(text){ return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); }; emoji.prototype.sheet_size = 61; /** @private */ emoji.prototype.data = { "0023-fe0f-20e3":[["\u0023\uFE0F\u20E3","\u0023\u20E3"],"\uE210","\uDBBA\uDC2C",["hash"],0,0,7,0], "002a-fe0f-20e3":[["\u002A\uFE0F\u20E3","\u002A\u20E3"],"","",["keycap_star"],0,1,7,0], "0030-fe0f-20e3":[["\u0030\uFE0F\u20E3","\u0030\u20E3"],"\uE225","\uDBBA\uDC37",["zero"],0,2,7,0], "0031-fe0f-20e3":[["\u0031\uFE0F\u20E3","\u0031\u20E3"],"\uE21C","\uDBBA\uDC2E",["one"],0,3,7,0], "0032-fe0f-20e3":[["\u0032\uFE0F\u20E3","\u0032\u20E3"],"\uE21D","\uDBBA\uDC2F",["two"],0,4,7,0], "0033-fe0f-20e3":[["\u0033\uFE0F\u20E3","\u0033\u20E3"],"\uE21E","\uDBBA\uDC30",["three"],0,5,7,0], "0034-fe0f-20e3":[["\u0034\uFE0F\u20E3","\u0034\u20E3"],"\uE21F","\uDBBA\uDC31",["four"],0,6,7,0], "0035-fe0f-20e3":[["\u0035\uFE0F\u20E3","\u0035\u20E3"],"\uE220","\uDBBA\uDC32",["five"],0,7,7,0], "0036-fe0f-20e3":[["\u0036\uFE0F\u20E3","\u0036\u20E3"],"\uE221","\uDBBA\uDC33",["six"],0,8,7,0], "0037-fe0f-20e3":[["\u0037\uFE0F\u20E3","\u0037\u20E3"],"\uE222","\uDBBA\uDC34",["seven"],0,9,7,0], "0038-fe0f-20e3":[["\u0038\uFE0F\u20E3","\u0038\u20E3"],"\uE223","\uDBBA\uDC35",["eight"],0,10,7,0], "0039-fe0f-20e3":[["\u0039\uFE0F\u20E3","\u0039\u20E3"],"\uE224","\uDBBA\uDC36",["nine"],0,11,7,0], "00a9-fe0f":[["\u00A9\uFE0F","\u00A9"],"\uE24E","\uDBBA\uDF29",["copyright"],0,12,7,0], "00ae-fe0f":[["\u00AE\uFE0F","\u00AE"],"\uE24F","\uDBBA\uDF2D",["registered"],0,13,7,0], "1f004":[["\uD83C\uDC04"],"\uE12D","\uDBBA\uDC0B",["mahjong"],0,14,15,0], "1f0cf":[["\uD83C\uDCCF"],"","\uDBBA\uDC12",["black_joker"],0,15,15,0], "1f170-fe0f":[["\uD83C\uDD70\uFE0F","\uD83C\uDD70"],"\uE532","\uDBB9\uDD0B",["a"],0,16,15,0], "1f171-fe0f":[["\uD83C\uDD71\uFE0F","\uD83C\uDD71"],"\uE533","\uDBB9\uDD0C",["b"],0,17,15,0], "1f17e-fe0f":[["\uD83C\uDD7E\uFE0F","\uD83C\uDD7E"],"\uE535","\uDBB9\uDD0E",["o2"],0,18,15,0], "1f17f-fe0f":[["\uD83C\uDD7F\uFE0F","\uD83C\uDD7F"],"\uE14F","\uDBB9\uDFF6",["parking"],0,19,15,0], "1f18e":[["\uD83C\uDD8E"],"\uE534","\uDBB9\uDD0D",["ab"],0,20,15,0], "1f191":[["\uD83C\uDD91"],"","\uDBBA\uDF84",["cl"],0,21,15,0], "1f192":[["\uD83C\uDD92"],"\uE214","\uDBBA\uDF38",["cool"],0,22,15,0], "1f193":[["\uD83C\uDD93"],"","\uDBBA\uDF21",["free"],0,23,15,0], "1f194":[["\uD83C\uDD94"],"\uE229","\uDBBA\uDF81",["id"],0,24,15,0], "1f195":[["\uD83C\uDD95"],"\uE212","\uDBBA\uDF36",["new"],0,25,15,0], "1f196":[["\uD83C\uDD96"],"","\uDBBA\uDF28",["ng"],0,26,15,0], "1f197":[["\uD83C\uDD97"],"\uE24D","\uDBBA\uDF27",["ok"],0,27,15,0], "1f198":[["\uD83C\uDD98"],"","\uDBBA\uDF4F",["sos"],0,28,15,0], "1f199":[["\uD83C\uDD99"],"\uE213","\uDBBA\uDF37",["up"],0,29,15,0], "1f19a":[["\uD83C\uDD9A"],"\uE12E","\uDBBA\uDF32",["vs"],0,30,15,0], "1f1e6-1f1e8":[["\uD83C\uDDE6\uD83C\uDDE8"],"","",["flag-ac"],0,31,15,0], "1f1e6-1f1e9":[["\uD83C\uDDE6\uD83C\uDDE9"],"","",["flag-ad"],0,32,15,0], "1f1e6-1f1ea":[["\uD83C\uDDE6\uD83C\uDDEA"],"","",["flag-ae"],0,33,15,0], "1f1e6-1f1eb":[["\uD83C\uDDE6\uD83C\uDDEB"],"","",["flag-af"],0,34,15,0], "1f1e6-1f1ec":[["\uD83C\uDDE6\uD83C\uDDEC"],"","",["flag-ag"],0,35,15,0], "1f1e6-1f1ee":[["\uD83C\uDDE6\uD83C\uDDEE"],"","",["flag-ai"],0,36,15,0], "1f1e6-1f1f1":[["\uD83C\uDDE6\uD83C\uDDF1"],"","",["flag-al"],0,37,15,0], "1f1e6-1f1f2":[["\uD83C\uDDE6\uD83C\uDDF2"],"","",["flag-am"],0,38,15,0], "1f1e6-1f1f4":[["\uD83C\uDDE6\uD83C\uDDF4"],"","",["flag-ao"],0,39,15,0], "1f1e6-1f1f6":[["\uD83C\uDDE6\uD83C\uDDF6"],"","",["flag-aq"],0,40,15,0], "1f1e6-1f1f7":[["\uD83C\uDDE6\uD83C\uDDF7"],"","",["flag-ar"],0,41,15,0], "1f1e6-1f1f8":[["\uD83C\uDDE6\uD83C\uDDF8"],"","",["flag-as"],0,42,15,0], "1f1e6-1f1f9":[["\uD83C\uDDE6\uD83C\uDDF9"],"","",["flag-at"],0,43,15,0], "1f1e6-1f1fa":[["\uD83C\uDDE6\uD83C\uDDFA"],"","",["flag-au"],0,44,15,0], "1f1e6-1f1fc":[["\uD83C\uDDE6\uD83C\uDDFC"],"","",["flag-aw"],0,45,15,0], "1f1e6-1f1fd":[["\uD83C\uDDE6\uD83C\uDDFD"],"","",["flag-ax"],0,46,15,0], "1f1e6-1f1ff":[["\uD83C\uDDE6\uD83C\uDDFF"],"","",["flag-az"],0,47,15,0], "1f1e7-1f1e6":[["\uD83C\uDDE7\uD83C\uDDE6"],"","",["flag-ba"],0,48,15,0], "1f1e7-1f1e7":[["\uD83C\uDDE7\uD83C\uDDE7"],"","",["flag-bb"],0,49,15,0], "1f1e7-1f1e9":[["\uD83C\uDDE7\uD83C\uDDE9"],"","",["flag-bd"],0,50,15,0], "1f1e7-1f1ea":[["\uD83C\uDDE7\uD83C\uDDEA"],"","",["flag-be"],0,51,15,0], "1f1e7-1f1eb":[["\uD83C\uDDE7\uD83C\uDDEB"],"","",["flag-bf"],0,52,15,0], "1f1e7-1f1ec":[["\uD83C\uDDE7\uD83C\uDDEC"],"","",["flag-bg"],0,53,15,0], "1f1e7-1f1ed":[["\uD83C\uDDE7\uD83C\uDDED"],"","",["flag-bh"],0,54,15,0], "1f1e7-1f1ee":[["\uD83C\uDDE7\uD83C\uDDEE"],"","",["flag-bi"],0,55,15,0], "1f1e7-1f1ef":[["\uD83C\uDDE7\uD83C\uDDEF"],"","",["flag-bj"],0,56,15,0], "1f1e7-1f1f1":[["\uD83C\uDDE7\uD83C\uDDF1"],"","",["flag-bl"],0,57,15,0], "1f1e7-1f1f2":[["\uD83C\uDDE7\uD83C\uDDF2"],"","",["flag-bm"],0,58,15,0], "1f1e7-1f1f3":[["\uD83C\uDDE7\uD83C\uDDF3"],"","",["flag-bn"],0,59,15,0], "1f1e7-1f1f4":[["\uD83C\uDDE7\uD83C\uDDF4"],"","",["flag-bo"],0,60,15,0], "1f1e7-1f1f6":[["\uD83C\uDDE7\uD83C\uDDF6"],"","",["flag-bq"],1,0,15,0], "1f1e7-1f1f7":[["\uD83C\uDDE7\uD83C\uDDF7"],"","",["flag-br"],1,1,15,0], "1f1e7-1f1f8":[["\uD83C\uDDE7\uD83C\uDDF8"],"","",["flag-bs"],1,2,15,0], "1f1e7-1f1f9":[["\uD83C\uDDE7\uD83C\uDDF9"],"","",["flag-bt"],1,3,15,0], "1f1e7-1f1fb":[["\uD83C\uDDE7\uD83C\uDDFB"],"","",["flag-bv"],1,4,15,0], "1f1e7-1f1fc":[["\uD83C\uDDE7\uD83C\uDDFC"],"","",["flag-bw"],1,5,15,0], "1f1e7-1f1fe":[["\uD83C\uDDE7\uD83C\uDDFE"],"","",["flag-by"],1,6,15,0], "1f1e7-1f1ff":[["\uD83C\uDDE7\uD83C\uDDFF"],"","",["flag-bz"],1,7,15,0], "1f1e8-1f1e6":[["\uD83C\uDDE8\uD83C\uDDE6"],"","",["flag-ca"],1,8,15,0], "1f1e8-1f1e8":[["\uD83C\uDDE8\uD83C\uDDE8"],"","",["flag-cc"],1,9,15,0], "1f1e8-1f1e9":[["\uD83C\uDDE8\uD83C\uDDE9"],"","",["flag-cd"],1,10,15,0], "1f1e8-1f1eb":[["\uD83C\uDDE8\uD83C\uDDEB"],"","",["flag-cf"],1,11,15,0], "1f1e8-1f1ec":[["\uD83C\uDDE8\uD83C\uDDEC"],"","",["flag-cg"],1,12,15,0], "1f1e8-1f1ed":[["\uD83C\uDDE8\uD83C\uDDED"],"","",["flag-ch"],1,13,15,0], "1f1e8-1f1ee":[["\uD83C\uDDE8\uD83C\uDDEE"],"","",["flag-ci"],1,14,15,0], "1f1e8-1f1f0":[["\uD83C\uDDE8\uD83C\uDDF0"],"","",["flag-ck"],1,15,15,0], "1f1e8-1f1f1":[["\uD83C\uDDE8\uD83C\uDDF1"],"","",["flag-cl"],1,16,15,0], "1f1e8-1f1f2":[["\uD83C\uDDE8\uD83C\uDDF2"],"","",["flag-cm"],1,17,15,0], "1f1e8-1f1f3":[["\uD83C\uDDE8\uD83C\uDDF3"],"\uE513","\uDBB9\uDCED",["cn","flag-cn"],1,18,15,0], "1f1e8-1f1f4":[["\uD83C\uDDE8\uD83C\uDDF4"],"","",["flag-co"],1,19,15,0], "1f1e8-1f1f5":[["\uD83C\uDDE8\uD83C\uDDF5"],"","",["flag-cp"],1,20,15,0], "1f1e8-1f1f7":[["\uD83C\uDDE8\uD83C\uDDF7"],"","",["flag-cr"],1,21,15,0], "1f1e8-1f1fa":[["\uD83C\uDDE8\uD83C\uDDFA"],"","",["flag-cu"],1,22,15,0], "1f1e8-1f1fb":[["\uD83C\uDDE8\uD83C\uDDFB"],"","",["flag-cv"],1,23,15,0], "1f1e8-1f1fc":[["\uD83C\uDDE8\uD83C\uDDFC"],"","",["flag-cw"],1,24,15,0], "1f1e8-1f1fd":[["\uD83C\uDDE8\uD83C\uDDFD"],"","",["flag-cx"],1,25,15,0], "1f1e8-1f1fe":[["\uD83C\uDDE8\uD83C\uDDFE"],"","",["flag-cy"],1,26,15,0], "1f1e8-1f1ff":[["\uD83C\uDDE8\uD83C\uDDFF"],"","",["flag-cz"],1,27,15,0], "1f1e9-1f1ea":[["\uD83C\uDDE9\uD83C\uDDEA"],"\uE50E","\uDBB9\uDCE8",["de","flag-de"],1,28,15,0], "1f1e9-1f1ec":[["\uD83C\uDDE9\uD83C\uDDEC"],"","",["flag-dg"],1,29,15,0], "1f1e9-1f1ef":[["\uD83C\uDDE9\uD83C\uDDEF"],"","",["flag-dj"],1,30,15,0], "1f1e9-1f1f0":[["\uD83C\uDDE9\uD83C\uDDF0"],"","",["flag-dk"],1,31,15,0], "1f1e9-1f1f2":[["\uD83C\uDDE9\uD83C\uDDF2"],"","",["flag-dm"],1,32,15,0], "1f1e9-1f1f4":[["\uD83C\uDDE9\uD83C\uDDF4"],"","",["flag-do"],1,33,15,0], "1f1e9-1f1ff":[["\uD83C\uDDE9\uD83C\uDDFF"],"","",["flag-dz"],1,34,15,0], "1f1ea-1f1e6":[["\uD83C\uDDEA\uD83C\uDDE6"],"","",["flag-ea"],1,35,15,0], "1f1ea-1f1e8":[["\uD83C\uDDEA\uD83C\uDDE8"],"","",["flag-ec"],1,36,15,0], "1f1ea-1f1ea":[["\uD83C\uDDEA\uD83C\uDDEA"],"","",["flag-ee"],1,37,15,0], "1f1ea-1f1ec":[["\uD83C\uDDEA\uD83C\uDDEC"],"","",["flag-eg"],1,38,15,0], "1f1ea-1f1ed":[["\uD83C\uDDEA\uD83C\uDDED"],"","",["flag-eh"],1,39,15,0], "1f1ea-1f1f7":[["\uD83C\uDDEA\uD83C\uDDF7"],"","",["flag-er"],1,40,15,0], "1f1ea-1f1f8":[["\uD83C\uDDEA\uD83C\uDDF8"],"\uE511","\uDBB9\uDCEB",["es","flag-es"],1,41,15,0], "1f1ea-1f1f9":[["\uD83C\uDDEA\uD83C\uDDF9"],"","",["flag-et"],1,42,15,0], "1f1ea-1f1fa":[["\uD83C\uDDEA\uD83C\uDDFA"],"","",["flag-eu"],1,43,15,0], "1f1eb-1f1ee":[["\uD83C\uDDEB\uD83C\uDDEE"],"","",["flag-fi"],1,44,15,0], "1f1eb-1f1ef":[["\uD83C\uDDEB\uD83C\uDDEF"],"","",["flag-fj"],1,45,15,0], "1f1eb-1f1f0":[["\uD83C\uDDEB\uD83C\uDDF0"],"","",["flag-fk"],1,46,15,0], "1f1eb-1f1f2":[["\uD83C\uDDEB\uD83C\uDDF2"],"","",["flag-fm"],1,47,15,0], "1f1eb-1f1f4":[["\uD83C\uDDEB\uD83C\uDDF4"],"","",["flag-fo"],1,48,15,0], "1f1eb-1f1f7":[["\uD83C\uDDEB\uD83C\uDDF7"],"\uE50D","\uDBB9\uDCE7",["fr","flag-fr"],1,49,15,0], "1f1ec-1f1e6":[["\uD83C\uDDEC\uD83C\uDDE6"],"","",["flag-ga"],1,50,15,0], "1f1ec-1f1e7":[["\uD83C\uDDEC\uD83C\uDDE7"],"\uE510","\uDBB9\uDCEA",["gb","uk","flag-gb"],1,51,15,0], "1f1ec-1f1e9":[["\uD83C\uDDEC\uD83C\uDDE9"],"","",["flag-gd"],1,52,15,0], "1f1ec-1f1ea":[["\uD83C\uDDEC\uD83C\uDDEA"],"","",["flag-ge"],1,53,15,0], "1f1ec-1f1eb":[["\uD83C\uDDEC\uD83C\uDDEB"],"","",["flag-gf"],1,54,15,0], "1f1ec-1f1ec":[["\uD83C\uDDEC\uD83C\uDDEC"],"","",["flag-gg"],1,55,15,0], "1f1ec-1f1ed":[["\uD83C\uDDEC\uD83C\uDDED"],"","",["flag-gh"],1,56,15,0], "1f1ec-1f1ee":[["\uD83C\uDDEC\uD83C\uDDEE"],"","",["flag-gi"],1,57,15,0], "1f1ec-1f1f1":[["\uD83C\uDDEC\uD83C\uDDF1"],"","",["flag-gl"],1,58,15,0], "1f1ec-1f1f2":[["\uD83C\uDDEC\uD83C\uDDF2"],"","",["flag-gm"],1,59,15,0], "1f1ec-1f1f3":[["\uD83C\uDDEC\uD83C\uDDF3"],"","",["flag-gn"],1,60,15,0], "1f1ec-1f1f5":[["\uD83C\uDDEC\uD83C\uDDF5"],"","",["flag-gp"],2,0,15,0], "1f1ec-1f1f6":[["\uD83C\uDDEC\uD83C\uDDF6"],"","",["flag-gq"],2,1,15,0], "1f1ec-1f1f7":[["\uD83C\uDDEC\uD83C\uDDF7"],"","",["flag-gr"],2,2,15,0], "1f1ec-1f1f8":[["\uD83C\uDDEC\uD83C\uDDF8"],"","",["flag-gs"],2,3,15,0], "1f1ec-1f1f9":[["\uD83C\uDDEC\uD83C\uDDF9"],"","",["flag-gt"],2,4,15,0], "1f1ec-1f1fa":[["\uD83C\uDDEC\uD83C\uDDFA"],"","",["flag-gu"],2,5,15,0], "1f1ec-1f1fc":[["\uD83C\uDDEC\uD83C\uDDFC"],"","",["flag-gw"],2,6,15,0], "1f1ec-1f1fe":[["\uD83C\uDDEC\uD83C\uDDFE"],"","",["flag-gy"],2,7,15,0], "1f1ed-1f1f0":[["\uD83C\uDDED\uD83C\uDDF0"],"","",["flag-hk"],2,8,15,0], "1f1ed-1f1f2":[["\uD83C\uDDED\uD83C\uDDF2"],"","",["flag-hm"],2,9,15,0], "1f1ed-1f1f3":[["\uD83C\uDDED\uD83C\uDDF3"],"","",["flag-hn"],2,10,15,0], "1f1ed-1f1f7":[["\uD83C\uDDED\uD83C\uDDF7"],"","",["flag-hr"],2,11,15,0], "1f1ed-1f1f9":[["\uD83C\uDDED\uD83C\uDDF9"],"","",["flag-ht"],2,12,15,0], "1f1ed-1f1fa":[["\uD83C\uDDED\uD83C\uDDFA"],"","",["flag-hu"],2,13,15,0], "1f1ee-1f1e8":[["\uD83C\uDDEE\uD83C\uDDE8"],"","",["flag-ic"],2,14,15,0], "1f1ee-1f1e9":[["\uD83C\uDDEE\uD83C\uDDE9"],"","",["flag-id"],2,15,15,0], "1f1ee-1f1ea":[["\uD83C\uDDEE\uD83C\uDDEA"],"","",["flag-ie"],2,16,15,0], "1f1ee-1f1f1":[["\uD83C\uDDEE\uD83C\uDDF1"],"","",["flag-il"],2,17,15,0], "1f1ee-1f1f2":[["\uD83C\uDDEE\uD83C\uDDF2"],"","",["flag-im"],2,18,15,0], "1f1ee-1f1f3":[["\uD83C\uDDEE\uD83C\uDDF3"],"","",["flag-in"],2,19,15,0], "1f1ee-1f1f4":[["\uD83C\uDDEE\uD83C\uDDF4"],"","",["flag-io"],2,20,15,0], "1f1ee-1f1f6":[["\uD83C\uDDEE\uD83C\uDDF6"],"","",["flag-iq"],2,21,15,0], "1f1ee-1f1f7":[["\uD83C\uDDEE\uD83C\uDDF7"],"","",["flag-ir"],2,22,15,0], "1f1ee-1f1f8":[["\uD83C\uDDEE\uD83C\uDDF8"],"","",["flag-is"],2,23,15,0], "1f1ee-1f1f9":[["\uD83C\uDDEE\uD83C\uDDF9"],"\uE50F","\uDBB9\uDCE9",["it","flag-it"],2,24,15,0], "1f1ef-1f1ea":[["\uD83C\uDDEF\uD83C\uDDEA"],"","",["flag-je"],2,25,15,0], "1f1ef-1f1f2":[["\uD83C\uDDEF\uD83C\uDDF2"],"","",["flag-jm"],2,26,15,0], "1f1ef-1f1f4":[["\uD83C\uDDEF\uD83C\uDDF4"],"","",["flag-jo"],2,27,15,0], "1f1ef-1f1f5":[["\uD83C\uDDEF\uD83C\uDDF5"],"\uE50B","\uDBB9\uDCE5",["jp","flag-jp"],2,28,15,0], "1f1f0-1f1ea":[["\uD83C\uDDF0\uD83C\uDDEA"],"","",["flag-ke"],2,29,15,0], "1f1f0-1f1ec":[["\uD83C\uDDF0\uD83C\uDDEC"],"","",["flag-kg"],2,30,15,0], "1f1f0-1f1ed":[["\uD83C\uDDF0\uD83C\uDDED"],"","",["flag-kh"],2,31,15,0], "1f1f0-1f1ee":[["\uD83C\uDDF0\uD83C\uDDEE"],"","",["flag-ki"],2,32,15,0], "1f1f0-1f1f2":[["\uD83C\uDDF0\uD83C\uDDF2"],"","",["flag-km"],2,33,15,0], "1f1f0-1f1f3":[["\uD83C\uDDF0\uD83C\uDDF3"],"","",["flag-kn"],2,34,15,0], "1f1f0-1f1f5":[["\uD83C\uDDF0\uD83C\uDDF5"],"","",["flag-kp"],2,35,15,0], "1f1f0-1f1f7":[["\uD83C\uDDF0\uD83C\uDDF7"],"\uE514","\uDBB9\uDCEE",["kr","flag-kr"],2,36,15,0], "1f1f0-1f1fc":[["\uD83C\uDDF0\uD83C\uDDFC"],"","",["flag-kw"],2,37,15,0], "1f1f0-1f1fe":[["\uD83C\uDDF0\uD83C\uDDFE"],"","",["flag-ky"],2,38,15,0], "1f1f0-1f1ff":[["\uD83C\uDDF0\uD83C\uDDFF"],"","",["flag-kz"],2,39,15,0], "1f1f1-1f1e6":[["\uD83C\uDDF1\uD83C\uDDE6"],"","",["flag-la"],2,40,15,0], "1f1f1-1f1e7":[["\uD83C\uDDF1\uD83C\uDDE7"],"","",["flag-lb"],2,41,15,0], "1f1f1-1f1e8":[["\uD83C\uDDF1\uD83C\uDDE8"],"","",["flag-lc"],2,42,15,0], "1f1f1-1f1ee":[["\uD83C\uDDF1\uD83C\uDDEE"],"","",["flag-li"],2,43,15,0], "1f1f1-1f1f0":[["\uD83C\uDDF1\uD83C\uDDF0"],"","",["flag-lk"],2,44,15,0], "1f1f1-1f1f7":[["\uD83C\uDDF1\uD83C\uDDF7"],"","",["flag-lr"],2,45,15,0], "1f1f1-1f1f8":[["\uD83C\uDDF1\uD83C\uDDF8"],"","",["flag-ls"],2,46,15,0], "1f1f1-1f1f9":[["\uD83C\uDDF1\uD83C\uDDF9"],"","",["flag-lt"],2,47,15,0], "1f1f1-1f1fa":[["\uD83C\uDDF1\uD83C\uDDFA"],"","",["flag-lu"],2,48,15,0], "1f1f1-1f1fb":[["\uD83C\uDDF1\uD83C\uDDFB"],"","",["flag-lv"],2,49,15,0], "1f1f1-1f1fe":[["\uD83C\uDDF1\uD83C\uDDFE"],"","",["flag-ly"],2,50,15,0], "1f1f2-1f1e6":[["\uD83C\uDDF2\uD83C\uDDE6"],"","",["flag-ma"],2,51,15,0], "1f1f2-1f1e8":[["\uD83C\uDDF2\uD83C\uDDE8"],"","",["flag-mc"],2,52,15,0], "1f1f2-1f1e9":[["\uD83C\uDDF2\uD83C\uDDE9"],"","",["flag-md"],2,53,15,0], "1f1f2-1f1ea":[["\uD83C\uDDF2\uD83C\uDDEA"],"","",["flag-me"],2,54,15,0], "1f1f2-1f1eb":[["\uD83C\uDDF2\uD83C\uDDEB"],"","",["flag-mf"],2,55,15,0], "1f1f2-1f1ec":[["\uD83C\uDDF2\uD83C\uDDEC"],"","",["flag-mg"],2,56,15,0], "1f1f2-1f1ed":[["\uD83C\uDDF2\uD83C\uDDED"],"","",["flag-mh"],2,57,15,0], "1f1f2-1f1f0":[["\uD83C\uDDF2\uD83C\uDDF0"],"","",["flag-mk"],2,58,15,0], "1f1f2-1f1f1":[["\uD83C\uDDF2\uD83C\uDDF1"],"","",["flag-ml"],2,59,15,0], "1f1f2-1f1f2":[["\uD83C\uDDF2\uD83C\uDDF2"],"","",["flag-mm"],2,60,15,0], "1f1f2-1f1f3":[["\uD83C\uDDF2\uD83C\uDDF3"],"","",["flag-mn"],3,0,15,0], "1f1f2-1f1f4":[["\uD83C\uDDF2\uD83C\uDDF4"],"","",["flag-mo"],3,1,15,0], "1f1f2-1f1f5":[["\uD83C\uDDF2\uD83C\uDDF5"],"","",["flag-mp"],3,2,15,0], "1f1f2-1f1f6":[["\uD83C\uDDF2\uD83C\uDDF6"],"","",["flag-mq"],3,3,15,0], "1f1f2-1f1f7":[["\uD83C\uDDF2\uD83C\uDDF7"],"","",["flag-mr"],3,4,15,0], "1f1f2-1f1f8":[["\uD83C\uDDF2\uD83C\uDDF8"],"","",["flag-ms"],3,5,15,0], "1f1f2-1f1f9":[["\uD83C\uDDF2\uD83C\uDDF9"],"","",["flag-mt"],3,6,15,0], "1f1f2-1f1fa":[["\uD83C\uDDF2\uD83C\uDDFA"],"","",["flag-mu"],3,7,15,0], "1f1f2-1f1fb":[["\uD83C\uDDF2\uD83C\uDDFB"],"","",["flag-mv"],3,8,15,0], "1f1f2-1f1fc":[["\uD83C\uDDF2\uD83C\uDDFC"],"","",["flag-mw"],3,9,15,0], "1f1f2-1f1fd":[["\uD83C\uDDF2\uD83C\uDDFD"],"","",["flag-mx"],3,10,15,0], "1f1f2-1f1fe":[["\uD83C\uDDF2\uD83C\uDDFE"],"","",["flag-my"],3,11,15,0], "1f1f2-1f1ff":[["\uD83C\uDDF2\uD83C\uDDFF"],"","",["flag-mz"],3,12,15,0], "1f1f3-1f1e6":[["\uD83C\uDDF3\uD83C\uDDE6"],"","",["flag-na"],3,13,15,0], "1f1f3-1f1e8":[["\uD83C\uDDF3\uD83C\uDDE8"],"","",["flag-nc"],3,14,15,0], "1f1f3-1f1ea":[["\uD83C\uDDF3\uD83C\uDDEA"],"","",["flag-ne"],3,15,15,0], "1f1f3-1f1eb":[["\uD83C\uDDF3\uD83C\uDDEB"],"","",["flag-nf"],3,16,15,0], "1f1f3-1f1ec":[["\uD83C\uDDF3\uD83C\uDDEC"],"","",["flag-ng"],3,17,15,0], "1f1f3-1f1ee":[["\uD83C\uDDF3\uD83C\uDDEE"],"","",["flag-ni"],3,18,15,0], "1f1f3-1f1f1":[["\uD83C\uDDF3\uD83C\uDDF1"],"","",["flag-nl"],3,19,15,0], "1f1f3-1f1f4":[["\uD83C\uDDF3\uD83C\uDDF4"],"","",["flag-no"],3,20,15,0], "1f1f3-1f1f5":[["\uD83C\uDDF3\uD83C\uDDF5"],"","",["flag-np"],3,21,15,0], "1f1f3-1f1f7":[["\uD83C\uDDF3\uD83C\uDDF7"],"","",["flag-nr"],3,22,15,0], "1f1f3-1f1fa":[["\uD83C\uDDF3\uD83C\uDDFA"],"","",["flag-nu"],3,23,15,0], "1f1f3-1f1ff":[["\uD83C\uDDF3\uD83C\uDDFF"],"","",["flag-nz"],3,24,15,0], "1f1f4-1f1f2":[["\uD83C\uDDF4\uD83C\uDDF2"],"","",["flag-om"],3,25,15,0], "1f1f5-1f1e6":[["\uD83C\uDDF5\uD83C\uDDE6"],"","",["flag-pa"],3,26,15,0], "1f1f5-1f1ea":[["\uD83C\uDDF5\uD83C\uDDEA"],"","",["flag-pe"],3,27,15,0], "1f1f5-1f1eb":[["\uD83C\uDDF5\uD83C\uDDEB"],"","",["flag-pf"],3,28,15,0], "1f1f5-1f1ec":[["\uD83C\uDDF5\uD83C\uDDEC"],"","",["flag-pg"],3,29,15,0], "1f1f5-1f1ed":[["\uD83C\uDDF5\uD83C\uDDED"],"","",["flag-ph"],3,30,15,0], "1f1f5-1f1f0":[["\uD83C\uDDF5\uD83C\uDDF0"],"","",["flag-pk"],3,31,15,0], "1f1f5-1f1f1":[["\uD83C\uDDF5\uD83C\uDDF1"],"","",["flag-pl"],3,32,15,0], "1f1f5-1f1f2":[["\uD83C\uDDF5\uD83C\uDDF2"],"","",["flag-pm"],3,33,15,0], "1f1f5-1f1f3":[["\uD83C\uDDF5\uD83C\uDDF3"],"","",["flag-pn"],3,34,15,0], "1f1f5-1f1f7":[["\uD83C\uDDF5\uD83C\uDDF7"],"","",["flag-pr"],3,35,15,0], "1f1f5-1f1f8":[["\uD83C\uDDF5\uD83C\uDDF8"],"","",["flag-ps"],3,36,15,0], "1f1f5-1f1f9":[["\uD83C\uDDF5\uD83C\uDDF9"],"","",["flag-pt"],3,37,15,0], "1f1f5-1f1fc":[["\uD83C\uDDF5\uD83C\uDDFC"],"","",["flag-pw"],3,38,15,0], "1f1f5-1f1fe":[["\uD83C\uDDF5\uD83C\uDDFE"],"","",["flag-py"],3,39,15,0], "1f1f6-1f1e6":[["\uD83C\uDDF6\uD83C\uDDE6"],"","",["flag-qa"],3,40,15,0], "1f1f7-1f1ea":[["\uD83C\uDDF7\uD83C\uDDEA"],"","",["flag-re"],3,41,15,0], "1f1f7-1f1f4":[["\uD83C\uDDF7\uD83C\uDDF4"],"","",["flag-ro"],3,42,15,0], "1f1f7-1f1f8":[["\uD83C\uDDF7\uD83C\uDDF8"],"","",["flag-rs"],3,43,15,0], "1f1f7-1f1fa":[["\uD83C\uDDF7\uD83C\uDDFA"],"\uE512","\uDBB9\uDCEC",["ru","flag-ru"],3,44,15,0], "1f1f7-1f1fc":[["\uD83C\uDDF7\uD83C\uDDFC"],"","",["flag-rw"],3,45,15,0], "1f1f8-1f1e6":[["\uD83C\uDDF8\uD83C\uDDE6"],"","",["flag-sa"],3,46,15,0], "1f1f8-1f1e7":[["\uD83C\uDDF8\uD83C\uDDE7"],"","",["flag-sb"],3,47,15,0], "1f1f8-1f1e8":[["\uD83C\uDDF8\uD83C\uDDE8"],"","",["flag-sc"],3,48,15,0], "1f1f8-1f1e9":[["\uD83C\uDDF8\uD83C\uDDE9"],"","",["flag-sd"],3,49,15,0], "1f1f8-1f1ea":[["\uD83C\uDDF8\uD83C\uDDEA"],"","",["flag-se"],3,50,15,0], "1f1f8-1f1ec":[["\uD83C\uDDF8\uD83C\uDDEC"],"","",["flag-sg"],3,51,15,0], "1f1f8-1f1ed":[["\uD83C\uDDF8\uD83C\uDDED"],"","",["flag-sh"],3,52,15,0], "1f1f8-1f1ee":[["\uD83C\uDDF8\uD83C\uDDEE"],"","",["flag-si"],3,53,15,0], "1f1f8-1f1ef":[["\uD83C\uDDF8\uD83C\uDDEF"],"","",["flag-sj"],3,54,15,0], "1f1f8-1f1f0":[["\uD83C\uDDF8\uD83C\uDDF0"],"","",["flag-sk"],3,55,15,0], "1f1f8-1f1f1":[["\uD83C\uDDF8\uD83C\uDDF1"],"","",["flag-sl"],3,56,15,0], "1f1f8-1f1f2":[["\uD83C\uDDF8\uD83C\uDDF2"],"","",["flag-sm"],3,57,15,0], "1f1f8-1f1f3":[["\uD83C\uDDF8\uD83C\uDDF3"],"","",["flag-sn"],3,58,15,0], "1f1f8-1f1f4":[["\uD83C\uDDF8\uD83C\uDDF4"],"","",["flag-so"],3,59,15,0], "1f1f8-1f1f7":[["\uD83C\uDDF8\uD83C\uDDF7"],"","",["flag-sr"],3,60,15,0], "1f1f8-1f1f8":[["\uD83C\uDDF8\uD83C\uDDF8"],"","",["flag-ss"],4,0,15,0], "1f1f8-1f1f9":[["\uD83C\uDDF8\uD83C\uDDF9"],"","",["flag-st"],4,1,15,0], "1f1f8-1f1fb":[["\uD83C\uDDF8\uD83C\uDDFB"],"","",["flag-sv"],4,2,15,0], "1f1f8-1f1fd":[["\uD83C\uDDF8\uD83C\uDDFD"],"","",["flag-sx"],4,3,15,0], "1f1f8-1f1fe":[["\uD83C\uDDF8\uD83C\uDDFE"],"","",["flag-sy"],4,4,15,0], "1f1f8-1f1ff":[["\uD83C\uDDF8\uD83C\uDDFF"],"","",["flag-sz"],4,5,15,0], "1f1f9-1f1e6":[["\uD83C\uDDF9\uD83C\uDDE6"],"","",["flag-ta"],4,6,15,0], "1f1f9-1f1e8":[["\uD83C\uDDF9\uD83C\uDDE8"],"","",["flag-tc"],4,7,15,0], "1f1f9-1f1e9":[["\uD83C\uDDF9\uD83C\uDDE9"],"","",["flag-td"],4,8,15,0], "1f1f9-1f1eb":[["\uD83C\uDDF9\uD83C\uDDEB"],"","",["flag-tf"],4,9,15,0], "1f1f9-1f1ec":[["\uD83C\uDDF9\uD83C\uDDEC"],"","",["flag-tg"],4,10,15,0], "1f1f9-1f1ed":[["\uD83C\uDDF9\uD83C\uDDED"],"","",["flag-th"],4,11,15,0], "1f1f9-1f1ef":[["\uD83C\uDDF9\uD83C\uDDEF"],"","",["flag-tj"],4,12,15,0], "1f1f9-1f1f0":[["\uD83C\uDDF9\uD83C\uDDF0"],"","",["flag-tk"],4,13,15,0], "1f1f9-1f1f1":[["\uD83C\uDDF9\uD83C\uDDF1"],"","",["flag-tl"],4,14,15,0], "1f1f9-1f1f2":[["\uD83C\uDDF9\uD83C\uDDF2"],"","",["flag-tm"],4,15,15,0], "1f1f9-1f1f3":[["\uD83C\uDDF9\uD83C\uDDF3"],"","",["flag-tn"],4,16,15,0], "1f1f9-1f1f4":[["\uD83C\uDDF9\uD83C\uDDF4"],"","",["flag-to"],4,17,15,0], "1f1f9-1f1f7":[["\uD83C\uDDF9\uD83C\uDDF7"],"","",["flag-tr"],4,18,15,0], "1f1f9-1f1f9":[["\uD83C\uDDF9\uD83C\uDDF9"],"","",["flag-tt"],4,19,15,0], "1f1f9-1f1fb":[["\uD83C\uDDF9\uD83C\uDDFB"],"","",["flag-tv"],4,20,15,0], "1f1f9-1f1fc":[["\uD83C\uDDF9\uD83C\uDDFC"],"","",["flag-tw"],4,21,15,0], "1f1f9-1f1ff":[["\uD83C\uDDF9\uD83C\uDDFF"],"","",["flag-tz"],4,22,15,0], "1f1fa-1f1e6":[["\uD83C\uDDFA\uD83C\uDDE6"],"","",["flag-ua"],4,23,15,0], "1f1fa-1f1ec":[["\uD83C\uDDFA\uD83C\uDDEC"],"","",["flag-ug"],4,24,15,0], "1f1fa-1f1f2":[["\uD83C\uDDFA\uD83C\uDDF2"],"","",["flag-um"],4,25,15,0], "1f1fa-1f1f3":[["\uD83C\uDDFA\uD83C\uDDF3"],"","",["flag-un"],4,26,15,0], "1f1fa-1f1f8":[["\uD83C\uDDFA\uD83C\uDDF8"],"\uE50C","\uDBB9\uDCE6",["us","flag-us"],4,27,15,0], "1f1fa-1f1fe":[["\uD83C\uDDFA\uD83C\uDDFE"],"","",["flag-uy"],4,28,15,0], "1f1fa-1f1ff":[["\uD83C\uDDFA\uD83C\uDDFF"],"","",["flag-uz"],4,29,15,0], "1f1fb-1f1e6":[["\uD83C\uDDFB\uD83C\uDDE6"],"","",["flag-va"],4,30,15,0], "1f1fb-1f1e8":[["\uD83C\uDDFB\uD83C\uDDE8"],"","",["flag-vc"],4,31,15,0], "1f1fb-1f1ea":[["\uD83C\uDDFB\uD83C\uDDEA"],"","",["flag-ve"],4,32,15,0], "1f1fb-1f1ec":[["\uD83C\uDDFB\uD83C\uDDEC"],"","",["flag-vg"],4,33,15,0], "1f1fb-1f1ee":[["\uD83C\uDDFB\uD83C\uDDEE"],"","",["flag-vi"],4,34,15,0], "1f1fb-1f1f3":[["\uD83C\uDDFB\uD83C\uDDF3"],"","",["flag-vn"],4,35,15,0], "1f1fb-1f1fa":[["\uD83C\uDDFB\uD83C\uDDFA"],"","",["flag-vu"],4,36,15,0], "1f1fc-1f1eb":[["\uD83C\uDDFC\uD83C\uDDEB"],"","",["flag-wf"],4,37,15,0], "1f1fc-1f1f8":[["\uD83C\uDDFC\uD83C\uDDF8"],"","",["flag-ws"],4,38,15,0], "1f1fd-1f1f0":[["\uD83C\uDDFD\uD83C\uDDF0"],"","",["flag-xk"],4,39,15,0], "1f1fe-1f1ea":[["\uD83C\uDDFE\uD83C\uDDEA"],"","",["flag-ye"],4,40,15,0], "1f1fe-1f1f9":[["\uD83C\uDDFE\uD83C\uDDF9"],"","",["flag-yt"],4,41,15,0], "1f1ff-1f1e6":[["\uD83C\uDDFF\uD83C\uDDE6"],"","",["flag-za"],4,42,15,0], "1f1ff-1f1f2":[["\uD83C\uDDFF\uD83C\uDDF2"],"","",["flag-zm"],4,43,15,0], "1f1ff-1f1fc":[["\uD83C\uDDFF\uD83C\uDDFC"],"","",["flag-zw"],4,44,15,0], "1f201":[["\uD83C\uDE01"],"\uE203","\uDBBA\uDF24",["koko"],4,45,15,0], "1f202-fe0f":[["\uD83C\uDE02\uFE0F","\uD83C\uDE02"],"\uE228","\uDBBA\uDF3F",["sa"],4,46,15,0], "1f21a":[["\uD83C\uDE1A"],"\uE216","\uDBBA\uDF3A",["u7121"],4,47,15,0], "1f22f":[["\uD83C\uDE2F"],"\uE22C","\uDBBA\uDF40",["u6307"],4,48,15,0], "1f232":[["\uD83C\uDE32"],"","\uDBBA\uDF2E",["u7981"],4,49,15,0], "1f233":[["\uD83C\uDE33"],"\uE22B","\uDBBA\uDF2F",["u7a7a"],4,50,15,0], "1f234":[["\uD83C\uDE34"],"","\uDBBA\uDF30",["u5408"],4,51,15,0], "1f235":[["\uD83C\uDE35"],"\uE22A","\uDBBA\uDF31",["u6e80"],4,52,15,0], "1f236":[["\uD83C\uDE36"],"\uE215","\uDBBA\uDF39",["u6709"],4,53,15,0], "1f237-fe0f":[["\uD83C\uDE37\uFE0F","\uD83C\uDE37"],"\uE217","\uDBBA\uDF3B",["u6708"],4,54,15,0], "1f238":[["\uD83C\uDE38"],"\uE218","\uDBBA\uDF3C",["u7533"],4,55,15,0], "1f239":[["\uD83C\uDE39"],"\uE227","\uDBBA\uDF3E",["u5272"],4,56,15,0], "1f23a":[["\uD83C\uDE3A"],"\uE22D","\uDBBA\uDF41",["u55b6"],4,57,15,0], "1f250":[["\uD83C\uDE50"],"\uE226","\uDBBA\uDF3D",["ideograph_advantage"],4,58,15,0], "1f251":[["\uD83C\uDE51"],"","\uDBBA\uDF50",["accept"],4,59,15,0], "1f300":[["\uD83C\uDF00"],"\uE443","\uDBB8\uDC05",["cyclone"],4,60,15,0], "1f301":[["\uD83C\uDF01"],"","\uDBB8\uDC06",["foggy"],5,0,15,0], "1f302":[["\uD83C\uDF02"],"\uE43C","\uDBB8\uDC07",["closed_umbrella"],5,1,15,0], "1f303":[["\uD83C\uDF03"],"\uE44B","\uDBB8\uDC08",["night_with_stars"],5,2,15,0], "1f304":[["\uD83C\uDF04"],"\uE04D","\uDBB8\uDC09",["sunrise_over_mountains"],5,3,15,0], "1f305":[["\uD83C\uDF05"],"\uE449","\uDBB8\uDC0A",["sunrise"],5,4,15,0], "1f306":[["\uD83C\uDF06"],"\uE146","\uDBB8\uDC0B",["city_sunset"],5,5,15,0], "1f307":[["\uD83C\uDF07"],"\uE44A","\uDBB8\uDC0C",["city_sunrise"],5,6,15,0], "1f308":[["\uD83C\uDF08"],"\uE44C","\uDBB8\uDC0D",["rainbow"],5,7,15,0], "1f309":[["\uD83C\uDF09"],"","\uDBB8\uDC10",["bridge_at_night"],5,8,15,0], "1f30a":[["\uD83C\uDF0A"],"\uE43E","\uDBB8\uDC38",["ocean"],5,9,15,0], "1f30b":[["\uD83C\uDF0B"],"","\uDBB8\uDC3A",["volcano"],5,10,15,0], "1f30c":[["\uD83C\uDF0C"],"","\uDBB8\uDC3B",["milky_way"],5,11,15,0], "1f30d":[["\uD83C\uDF0D"],"","",["earth_africa"],5,12,15,0], "1f30e":[["\uD83C\uDF0E"],"","",["earth_americas"],5,13,15,0], "1f30f":[["\uD83C\uDF0F"],"","\uDBB8\uDC39",["earth_asia"],5,14,15,0], "1f310":[["\uD83C\uDF10"],"","",["globe_with_meridians"],5,15,15,0], "1f311":[["\uD83C\uDF11"],"","\uDBB8\uDC11",["new_moon"],5,16,15,0], "1f312":[["\uD83C\uDF12"],"","",["waxing_crescent_moon"],5,17,15,0], "1f313":[["\uD83C\uDF13"],"","\uDBB8\uDC13",["first_quarter_moon"],5,18,15,0], "1f314":[["\uD83C\uDF14"],"","\uDBB8\uDC12",["moon","waxing_gibbous_moon"],5,19,15,0], "1f315":[["\uD83C\uDF15"],"","\uDBB8\uDC15",["full_moon"],5,20,15,0], "1f316":[["\uD83C\uDF16"],"","",["waning_gibbous_moon"],5,21,15,0], "1f317":[["\uD83C\uDF17"],"","",["last_quarter_moon"],5,22,15,0], "1f318":[["\uD83C\uDF18"],"","",["waning_crescent_moon"],5,23,15,0], "1f319":[["\uD83C\uDF19"],"\uE04C","\uDBB8\uDC14",["crescent_moon"],5,24,15,0], "1f31a":[["\uD83C\uDF1A"],"","",["new_moon_with_face"],5,25,15,0], "1f31b":[["\uD83C\uDF1B"],"","\uDBB8\uDC16",["first_quarter_moon_with_face"],5,26,15,0], "1f31c":[["\uD83C\uDF1C"],"","",["last_quarter_moon_with_face"],5,27,15,0], "1f31d":[["\uD83C\uDF1D"],"","",["full_moon_with_face"],5,28,15,0], "1f31e":[["\uD83C\uDF1E"],"","",["sun_with_face"],5,29,15,0], "1f31f":[["\uD83C\uDF1F"],"\uE335","\uDBBA\uDF69",["star2"],5,30,15,0], "1f320":[["\uD83C\uDF20"],"","\uDBBA\uDF6A",["stars"],5,31,15,0], "1f321-fe0f":[["\uD83C\uDF21\uFE0F","\uD83C\uDF21"],"","",["thermometer"],5,32,15,0], "1f324-fe0f":[["\uD83C\uDF24\uFE0F","\uD83C\uDF24"],"","",["mostly_sunny","sun_small_cloud"],5,33,15,0], "1f325-fe0f":[["\uD83C\uDF25\uFE0F","\uD83C\uDF25"],"","",["barely_sunny","sun_behind_cloud"],5,34,15,0], "1f326-fe0f":[["\uD83C\uDF26\uFE0F","\uD83C\uDF26"],"","",["partly_sunny_rain","sun_behind_rain_cloud"],5,35,15,0], "1f327-fe0f":[["\uD83C\uDF27\uFE0F","\uD83C\uDF27"],"","",["rain_cloud"],5,36,15,0], "1f328-fe0f":[["\uD83C\uDF28\uFE0F","\uD83C\uDF28"],"","",["snow_cloud"],5,37,15,0], "1f329-fe0f":[["\uD83C\uDF29\uFE0F","\uD83C\uDF29"],"","",["lightning","lightning_cloud"],5,38,15,0], "1f32a-fe0f":[["\uD83C\uDF2A\uFE0F","\uD83C\uDF2A"],"","",["tornado","tornado_cloud"],5,39,15,0], "1f32b-fe0f":[["\uD83C\uDF2B\uFE0F","\uD83C\uDF2B"],"","",["fog"],5,40,15,0], "1f32c-fe0f":[["\uD83C\uDF2C\uFE0F","\uD83C\uDF2C"],"","",["wind_blowing_face"],5,41,15,0], "1f32d":[["\uD83C\uDF2D"],"","",["hotdog"],5,42,15,0], "1f32e":[["\uD83C\uDF2E"],"","",["taco"],5,43,15,0], "1f32f":[["\uD83C\uDF2F"],"","",["burrito"],5,44,15,0], "1f330":[["\uD83C\uDF30"],"","\uDBB8\uDC4C",["chestnut"],5,45,15,0], "1f331":[["\uD83C\uDF31"],"","\uDBB8\uDC3E",["seedling"],5,46,15,0], "1f332":[["\uD83C\uDF32"],"","",["evergreen_tree"],5,47,15,0], "1f333":[["\uD83C\uDF33"],"","",["deciduous_tree"],5,48,15,0], "1f334":[["\uD83C\uDF34"],"\uE307","\uDBB8\uDC47",["palm_tree"],5,49,15,0], "1f335":[["\uD83C\uDF35"],"\uE308","\uDBB8\uDC48",["cactus"],5,50,15,0], "1f336-fe0f":[["\uD83C\uDF36\uFE0F","\uD83C\uDF36"],"","",["hot_pepper"],5,51,15,0], "1f337":[["\uD83C\uDF37"],"\uE304","\uDBB8\uDC3D",["tulip"],5,52,15,0], "1f338":[["\uD83C\uDF38"],"\uE030","\uDBB8\uDC40",["cherry_blossom"],5,53,15,0], "1f339":[["\uD83C\uDF39"],"\uE032","\uDBB8\uDC41",["rose"],5,54,15,0], "1f33a":[["\uD83C\uDF3A"],"\uE303","\uDBB8\uDC45",["hibiscus"],5,55,15,0], "1f33b":[["\uD83C\uDF3B"],"\uE305","\uDBB8\uDC46",["sunflower"],5,56,15,0], "1f33c":[["\uD83C\uDF3C"],"","\uDBB8\uDC4D",["blossom"],5,57,15,0], "1f33d":[["\uD83C\uDF3D"],"","\uDBB8\uDC4A",["corn"],5,58,15,0], "1f33e":[["\uD83C\uDF3E"],"\uE444","\uDBB8\uDC49",["ear_of_rice"],5,59,15,0], "1f33f":[["\uD83C\uDF3F"],"","\uDBB8\uDC4E",["herb"],5,60,15,0], "1f340":[["\uD83C\uDF40"],"\uE110","\uDBB8\uDC3C",["four_leaf_clover"],6,0,15,0], "1f341":[["\uD83C\uDF41"],"\uE118","\uDBB8\uDC3F",["maple_leaf"],6,1,15,0], "1f342":[["\uD83C\uDF42"],"\uE119","\uDBB8\uDC42",["fallen_leaf"],6,2,15,0], "1f343":[["\uD83C\uDF43"],"\uE447","\uDBB8\uDC43",["leaves"],6,3,15,0], "1f344":[["\uD83C\uDF44"],"","\uDBB8\uDC4B",["mushroom"],6,4,15,0], "1f345":[["\uD83C\uDF45"],"\uE349","\uDBB8\uDC55",["tomato"],6,5,15,0], "1f346":[["\uD83C\uDF46"],"\uE34A","\uDBB8\uDC56",["eggplant"],6,6,15,0], "1f347":[["\uD83C\uDF47"],"","\uDBB8\uDC59",["grapes"],6,7,15,0], "1f348":[["\uD83C\uDF48"],"","\uDBB8\uDC57",["melon"],6,8,15,0], "1f349":[["\uD83C\uDF49"],"\uE348","\uDBB8\uDC54",["watermelon"],6,9,15,0], "1f34a":[["\uD83C\uDF4A"],"\uE346","\uDBB8\uDC52",["tangerine"],6,10,15,0], "1f34b":[["\uD83C\uDF4B"],"","",["lemon"],6,11,15,0], "1f34c":[["\uD83C\uDF4C"],"","\uDBB8\uDC50",["banana"],6,12,15,0], "1f34d":[["\uD83C\uDF4D"],"","\uDBB8\uDC58",["pineapple"],6,13,15,0], "1f34e":[["\uD83C\uDF4E"],"\uE345","\uDBB8\uDC51",["apple"],6,14,15,0], "1f34f":[["\uD83C\uDF4F"],"","\uDBB8\uDC5B",["green_apple"],6,15,15,0], "1f350":[["\uD83C\uDF50"],"","",["pear"],6,16,15,0], "1f351":[["\uD83C\uDF51"],"","\uDBB8\uDC5A",["peach"],6,17,15,0], "1f352":[["\uD83C\uDF52"],"","\uDBB8\uDC4F",["cherries"],6,18,15,0], "1f353":[["\uD83C\uDF53"],"\uE347","\uDBB8\uDC53",["strawberry"],6,19,15,0], "1f354":[["\uD83C\uDF54"],"\uE120","\uDBBA\uDD60",["hamburger"],6,20,15,0], "1f355":[["\uD83C\uDF55"],"","\uDBBA\uDD75",["pizza"],6,21,15,0], "1f356":[["\uD83C\uDF56"],"","\uDBBA\uDD72",["meat_on_bone"],6,22,15,0], "1f357":[["\uD83C\uDF57"],"","\uDBBA\uDD76",["poultry_leg"],6,23,15,0], "1f358":[["\uD83C\uDF58"],"\uE33D","\uDBBA\uDD69",["rice_cracker"],6,24,15,0], "1f359":[["\uD83C\uDF59"],"\uE342","\uDBBA\uDD61",["rice_ball"],6,25,15,0], "1f35a":[["\uD83C\uDF5A"],"\uE33E","\uDBBA\uDD6A",["rice"],6,26,15,0],