diff --git a/QtAwesome/QtAwesome.cpp b/QtAwesome/QtAwesome.cpp index d0c286d..8f75286 100644 --- a/QtAwesome/QtAwesome.cpp +++ b/QtAwesome/QtAwesome.cpp @@ -13,15 +13,20 @@ #include #include #include +#include +QtAwesomeIconPainter::~QtAwesomeIconPainter() +{ +} /// The font-awesome icon painter class QtAwesomeCharIconPainter: public QtAwesomeIconPainter { - protected: + virtual ~QtAwesomeCharIconPainter(); + QStringList optionKeysForModeAndState( const QString& key, QIcon::Mode mode, QIcon::State state) { QString modePostfix; @@ -78,6 +83,9 @@ public: { painter->save(); + painter->setRenderHint(QPainter::Antialiasing); + painter->setRenderHint(QPainter::HighQualityAntialiasing); + QVariant var =options.value("anim"); QtAwesomeAnimation* anim = var.value(); if( anim ) { @@ -87,22 +95,50 @@ public: // set the default options QColor color = optionValueForModeAndState("color", mode, state, options).value(); QString text = optionValueForModeAndState("text", mode, state, options).toString(); + int st = options.value("style", style::fas).toInt(); Q_ASSERT(color.isValid()); Q_ASSERT(!text.isEmpty()); painter->setPen(color); + QRectF textRect(rect); + int flags = Qt::AlignHCenter | Qt::AlignVCenter; - // add some 'padding' around the icon - int drawSize = qRound(rect.height()*options.value("scale-factor").toFloat()); + // ajust font size depending on the rectangle + int drawSize = qRound(textRect.height() * options.value("scale-factor").toDouble()); + QFont ft = awesome->font(static_cast(st), drawSize); + QFontMetricsF fm(ft); + QRectF tbr = fm.boundingRect(textRect,flags,text); + if(tbr.width() > textRect.width()) { + drawSize = static_cast(ft.pixelSize() * qMin(textRect.width() * + 0.95/tbr.width(),textRect.height() * 0.95/tbr.height())); + ft.setPixelSize(drawSize); + } + + painter->setFont( ft ); + painter->drawText( textRect, flags, text); + +#ifdef FONT_AWESOME_PRO + if(st == style::fad){ + QColor dcolor = optionValueForModeAndState("duotone-color", mode, state, options).value(); + int dcharacter = text.at(0).unicode() | QtAwesome::DUOTONE_HEX_ICON_VALUE; + //Duotone is a 21-bits character, we need to use surrogate pairs + int high = ((dcharacter - 0x10000) >> 10) + 0xD800; + int low = (dcharacter & 0x3FF) + 0xDC00; + text = QString("%1%2").arg(QChar(high), QChar(low)); + + painter->setPen(dcolor); + painter->drawText( textRect, Qt::AlignHCenter | Qt::AlignVCenter, text); + } +#endif - painter->setFont( awesome->font(drawSize) ); - painter->drawText( rect, text, QTextOption( Qt::AlignCenter|Qt::AlignVCenter ) ); painter->restore(); } - }; +QtAwesomeCharIconPainter::~QtAwesomeCharIconPainter(){ + +} //--------------------------------------------------------------------------------------- @@ -120,7 +156,7 @@ public: { } - virtual ~QtAwesomeIconPainterIconEngine() {} + virtual ~QtAwesomeIconPainterIconEngine(); QtAwesomeIconPainterIconEngine* clone() const { @@ -152,836 +188,2168 @@ private: QVariantMap options_; ///< the options for this icon painter }; +QtAwesomeIconPainterIconEngine::~QtAwesomeIconPainterIconEngine(){ + +} //--------------------------------------------------------------------------------------- +const QString QtAwesome::FAB_FONT_FILENAME = "Font Awesome 5 Brands-Regular-400.otf"; +#ifdef FONT_AWESOME_PRO +const QString QtAwesome::FAD_FONT_FILENAME = "Font Awesome 5 Duotone-Solid-900.otf"; +const QString QtAwesome::FAL_FONT_FILENAME = "Font Awesome 5 Pro-Light-300.otf"; +const QString QtAwesome::FAR_FONT_FILENAME = "Font Awesome 5 Pro-Regular-400.otf"; +const QString QtAwesome::FAS_FONT_FILENAME = "Font Awesome 5 Pro-Solid-900.otf"; +#else +const QString QtAwesome::FAR_FONT_FILENAME = "Font Awesome 5 Free-Regular-400.otf"; +const QString QtAwesome::FAS_FONT_FILENAME = "Font Awesome 5 Free-Solid-900.otf"; +#endif + /// The default icon colors QtAwesome::QtAwesome( QObject* parent ) : QObject( parent ) - , namedCodepoints_() + , _namedCodepoints() { // initialize the default options setDefaultOption( "color", QColor(50,50,50) ); setDefaultOption( "color-disabled", QColor(70,70,70,60)); setDefaultOption( "color-active", QColor(10,10,10)); setDefaultOption( "color-selected", QColor(10,10,10)); - setDefaultOption( "scale-factor", 0.9 ); + setDefaultOption( "scale-factor", 1.0 ); + +#ifdef FONT_AWESOME_PRO + setDefaultOption( "duotone-color", QColor(50,50,50,127) ); + setDefaultOption( "duotone-color-disabled", QColor(70,70,70,50)); + setDefaultOption( "duotone-color-active", QColor(10,10,10,200)); + setDefaultOption( "duotone-color-selected", QColor(10,10,10,210)); +#endif setDefaultOption( "text", QVariant() ); setDefaultOption( "text-disabled", QVariant() ); setDefaultOption( "text-active", QVariant() ); setDefaultOption( "text-selected", QVariant() ); - fontIconPainter_ = new QtAwesomeCharIconPainter(); + _fontIconPainter = new QtAwesomeCharIconPainter(); + _fontDetails.insert(style::fas, FontData(FAS_FONT_FILENAME)); + _fontDetails.insert(style::far, FontData(FAR_FONT_FILENAME)); + _fontDetails.insert(style::fab, FontData(FAB_FONT_FILENAME)); +#ifdef FONT_AWESOME_PRO + _fontDetails.insert(style::fal, FontData(FAL_FONT_FILENAME)); + _fontDetails.insert(style::fad, FontData(FAD_FONT_FILENAME)); +#endif } QtAwesome::~QtAwesome() { - delete fontIconPainter_; -// delete errorIconPainter_; - qDeleteAll(painterMap_); -} + delete _fontIconPainter; + qDeleteAll(_painterMap); -/// initializes the QtAwesome icon factory with the given fontname -void QtAwesome::init(const QString& fontname) -{ - fontName_ = fontname; + if(_namedCodepoints.contains(style::fab)) + delete _namedCodepoints[style::fab]; +#ifdef FONT_AWESOME_PRO + if(_namedCodepoints.contains(style::fas)) + delete _namedCodepoints[style::fas]; +#else + if(_namedCodepoints.contains(style::fas)) + delete _namedCodepoints[style::fas]; + + if(_namedCodepoints.contains(style::far)) + delete _namedCodepoints[style::far]; +#endif } struct FANameIcon { const char *name; - fa::icon icon; + int icon; }; -static const FANameIcon faNameIconArray[] = { - { "fa_500px" , fa::fa_500px }, - { "addressbook" , fa::addressbook }, - { "addressbooko" , fa::addressbooko }, - { "addresscard" , fa::addresscard }, - { "addresscardo" , fa::addresscardo }, - { "adjust" , fa::adjust }, - { "adn" , fa::adn }, - { "aligncenter" , fa::aligncenter }, - { "alignjustify" , fa::alignjustify }, - { "alignleft" , fa::alignleft }, - { "alignright" , fa::alignright }, - { "amazon" , fa::amazon }, - { "ambulance" , fa::ambulance }, - { "americansignlanguageinterpreting" , fa::americansignlanguageinterpreting }, - { "anchor" , fa::anchor }, - { "android" , fa::android }, - { "angellist" , fa::angellist }, - { "angledoubledown" , fa::angledoubledown }, - { "angledoubleleft" , fa::angledoubleleft }, - { "angledoubleright" , fa::angledoubleright }, - { "angledoubleup" , fa::angledoubleup }, - { "angledown" , fa::angledown }, - { "angleleft" , fa::angleleft }, - { "angleright" , fa::angleright }, - { "angleup" , fa::angleup }, - { "apple" , fa::apple }, - { "archive" , fa::archive }, - { "areachart" , fa::areachart }, - { "arrowcircledown" , fa::arrowcircledown }, - { "arrowcircleleft" , fa::arrowcircleleft }, - { "arrowcircleodown" , fa::arrowcircleodown }, - { "arrowcircleoleft" , fa::arrowcircleoleft }, - { "arrowcircleoright" , fa::arrowcircleoright }, - { "arrowcircleoup" , fa::arrowcircleoup }, - { "arrowcircleright" , fa::arrowcircleright }, - { "arrowcircleup" , fa::arrowcircleup }, - { "arrowdown" , fa::arrowdown }, - { "arrowleft" , fa::arrowleft }, - { "arrowright" , fa::arrowright }, - { "arrowup" , fa::arrowup }, - { "arrows" , fa::arrows }, - { "arrowsalt" , fa::arrowsalt }, - { "arrowsh" , fa::arrowsh }, - { "arrowsv" , fa::arrowsv }, - { "aslinterpreting" , fa::aslinterpreting }, - { "assistivelisteningsystems" , fa::assistivelisteningsystems }, - { "asterisk" , fa::asterisk }, - { "at" , fa::at }, - { "audiodescription" , fa::audiodescription }, - { "automobile" , fa::automobile }, - { "backward" , fa::backward }, - { "balancescale" , fa::balancescale }, - { "ban" , fa::ban }, - { "bandcamp" , fa::bandcamp }, - { "bank" , fa::bank }, - { "barchart" , fa::barchart }, - { "barcharto" , fa::barcharto }, - { "barcode" , fa::barcode }, - { "bars" , fa::bars }, - { "bath" , fa::bath }, - { "bathtub" , fa::bathtub }, - { "battery" , fa::battery }, - { "battery0" , fa::battery0 }, - { "battery1" , fa::battery1 }, - { "battery2" , fa::battery2 }, - { "battery3" , fa::battery3 }, - { "battery4" , fa::battery4 }, - { "batteryempty" , fa::batteryempty }, - { "batteryfull" , fa::batteryfull }, - { "batteryhalf" , fa::batteryhalf }, - { "batteryquarter" , fa::batteryquarter }, - { "batterythreequarters" , fa::batterythreequarters }, - { "bed" , fa::bed }, - { "beer" , fa::beer }, - { "behance" , fa::behance }, - { "behancesquare" , fa::behancesquare }, - { "bell" , fa::bell }, - { "bello" , fa::bello }, - { "bellslash" , fa::bellslash }, - { "bellslasho" , fa::bellslasho }, - { "bicycle" , fa::bicycle }, - { "binoculars" , fa::binoculars }, - { "birthdaycake" , fa::birthdaycake }, - { "bitbucket" , fa::bitbucket }, - { "bitbucketsquare" , fa::bitbucketsquare }, - { "bitcoin" , fa::bitcoin }, - { "blacktie" , fa::blacktie }, - { "blind" , fa::blind }, - { "bluetooth" , fa::bluetooth }, - { "bluetoothb" , fa::bluetoothb }, - { "bold" , fa::bold }, - { "bolt" , fa::bolt }, - { "bomb" , fa::bomb }, - { "book" , fa::book }, - { "bookmark" , fa::bookmark }, - { "bookmarko" , fa::bookmarko }, - { "braille" , fa::braille }, - { "briefcase" , fa::briefcase }, - { "btc" , fa::btc }, - { "bug" , fa::bug }, - { "building" , fa::building }, - { "buildingo" , fa::buildingo }, - { "bullhorn" , fa::bullhorn }, - { "bullseye" , fa::bullseye }, - { "bus" , fa::bus }, - { "buysellads" , fa::buysellads }, - { "cab" , fa::cab }, - { "calculator" , fa::calculator }, - { "calendar" , fa::calendar }, - { "calendarchecko" , fa::calendarchecko }, - { "calendarminuso" , fa::calendarminuso }, - { "calendaro" , fa::calendaro }, - { "calendarpluso" , fa::calendarpluso }, - { "calendartimeso" , fa::calendartimeso }, - { "camera" , fa::camera }, - { "cameraretro" , fa::cameraretro }, - { "car" , fa::car }, - { "caretdown" , fa::caretdown }, - { "caretleft" , fa::caretleft }, - { "caretright" , fa::caretright }, - { "caretsquareodown" , fa::caretsquareodown }, - { "caretsquareoleft" , fa::caretsquareoleft }, - { "caretsquareoright" , fa::caretsquareoright }, - { "caretsquareoup" , fa::caretsquareoup }, - { "caretup" , fa::caretup }, - { "cartarrowdown" , fa::cartarrowdown }, - { "cartplus" , fa::cartplus }, - { "cc" , fa::cc }, - { "ccamex" , fa::ccamex }, - { "ccdinersclub" , fa::ccdinersclub }, - { "ccdiscover" , fa::ccdiscover }, - { "ccjcb" , fa::ccjcb }, - { "ccmastercard" , fa::ccmastercard }, - { "ccpaypal" , fa::ccpaypal }, - { "ccstripe" , fa::ccstripe }, - { "ccvisa" , fa::ccvisa }, - { "certificate" , fa::certificate }, - { "chain" , fa::chain }, - { "chainbroken" , fa::chainbroken }, - { "check" , fa::check }, - { "checkcircle" , fa::checkcircle }, - { "checkcircleo" , fa::checkcircleo }, - { "checksquare" , fa::checksquare }, - { "checksquareo" , fa::checksquareo }, - { "chevroncircledown" , fa::chevroncircledown }, - { "chevroncircleleft" , fa::chevroncircleleft }, - { "chevroncircleright" , fa::chevroncircleright }, - { "chevroncircleup" , fa::chevroncircleup }, - { "chevrondown" , fa::chevrondown }, - { "chevronleft" , fa::chevronleft }, - { "chevronright" , fa::chevronright }, - { "chevronup" , fa::chevronup }, - { "child" , fa::child }, - { "chrome" , fa::chrome }, - { "circle" , fa::circle }, - { "circleo" , fa::circleo }, - { "circleonotch" , fa::circleonotch }, - { "circlethin" , fa::circlethin }, - { "clipboard" , fa::clipboard }, - { "clocko" , fa::clocko }, - { "clone" , fa::clone }, - { "close" , fa::close }, - { "cloud" , fa::cloud }, - { "clouddownload" , fa::clouddownload }, - { "cloudupload" , fa::cloudupload }, - { "cny" , fa::cny }, - { "code" , fa::code }, - { "codefork" , fa::codefork }, - { "codepen" , fa::codepen }, - { "codiepie" , fa::codiepie }, - { "coffee" , fa::coffee }, - { "cog" , fa::cog }, - { "cogs" , fa::cogs }, - { "columns" , fa::columns }, - { "comment" , fa::comment }, - { "commento" , fa::commento }, - { "commenting" , fa::commenting }, - { "commentingo" , fa::commentingo }, - { "comments" , fa::comments }, - { "commentso" , fa::commentso }, - { "compass" , fa::compass }, - { "compress" , fa::compress }, - { "connectdevelop" , fa::connectdevelop }, - { "contao" , fa::contao }, - { "copy" , fa::copy }, - { "copyright" , fa::copyright }, - { "creativecommons" , fa::creativecommons }, - { "creditcard" , fa::creditcard }, - { "creditcardalt" , fa::creditcardalt }, - { "crop" , fa::crop }, - { "crosshairs" , fa::crosshairs }, - { "css3" , fa::css3 }, - { "cube" , fa::cube }, - { "cubes" , fa::cubes }, - { "cut" , fa::cut }, - { "cutlery" , fa::cutlery }, - { "dashboard" , fa::dashboard }, - { "dashcube" , fa::dashcube }, - { "database" , fa::database }, - { "deaf" , fa::deaf }, - { "deafness" , fa::deafness }, - { "dedent" , fa::dedent }, - { "delicious" , fa::delicious }, - { "desktop" , fa::desktop }, - { "deviantart" , fa::deviantart }, - { "diamond" , fa::diamond }, - { "digg" , fa::digg }, - { "dollar" , fa::dollar }, - { "dotcircleo" , fa::dotcircleo }, - { "download" , fa::download }, - { "dribbble" , fa::dribbble }, - { "driverslicense" , fa::driverslicense }, - { "driverslicenseo" , fa::driverslicenseo }, - { "dropbox" , fa::dropbox }, - { "drupal" , fa::drupal }, - { "edge" , fa::edge }, - { "edit" , fa::edit }, - { "eercast" , fa::eercast }, - { "eject" , fa::eject }, - { "ellipsish" , fa::ellipsish }, - { "ellipsisv" , fa::ellipsisv }, - { "empire" , fa::empire }, - { "envelope" , fa::envelope }, - { "envelopeo" , fa::envelopeo }, - { "envelopeopen" , fa::envelopeopen }, - { "envelopeopeno" , fa::envelopeopeno }, - { "envelopesquare" , fa::envelopesquare }, - { "envira" , fa::envira }, - { "eraser" , fa::eraser }, - { "etsy" , fa::etsy }, - { "eur" , fa::eur }, - { "euro" , fa::euro }, - { "exchange" , fa::exchange }, - { "exclamation" , fa::exclamation }, - { "exclamationcircle" , fa::exclamationcircle }, - { "exclamationtriangle" , fa::exclamationtriangle }, - { "expand" , fa::expand }, - { "expeditedssl" , fa::expeditedssl }, - { "externallink" , fa::externallink }, - { "externallinksquare" , fa::externallinksquare }, - { "eye" , fa::eye }, - { "eyeslash" , fa::eyeslash }, - { "eyedropper" , fa::eyedropper }, - { "fa" , fa::fa }, - { "facebook" , fa::facebook }, - { "facebookf" , fa::facebookf }, - { "facebookofficial" , fa::facebookofficial }, - { "facebooksquare" , fa::facebooksquare }, - { "fastbackward" , fa::fastbackward }, - { "fastforward" , fa::fastforward }, - { "fax" , fa::fax }, - { "feed" , fa::feed }, - { "female" , fa::female }, - { "fighterjet" , fa::fighterjet }, - { "file" , fa::file }, - { "filearchiveo" , fa::filearchiveo }, - { "fileaudioo" , fa::fileaudioo }, - { "filecodeo" , fa::filecodeo }, - { "fileexcelo" , fa::fileexcelo }, - { "fileimageo" , fa::fileimageo }, - { "filemovieo" , fa::filemovieo }, - { "fileo" , fa::fileo }, - { "filepdfo" , fa::filepdfo }, - { "filephotoo" , fa::filephotoo }, - { "filepictureo" , fa::filepictureo }, - { "filepowerpointo" , fa::filepowerpointo }, - { "filesoundo" , fa::filesoundo }, - { "filetext" , fa::filetext }, - { "filetexto" , fa::filetexto }, - { "filevideoo" , fa::filevideoo }, - { "filewordo" , fa::filewordo }, - { "filezipo" , fa::filezipo }, - { "fileso" , fa::fileso }, - { "film" , fa::film }, - { "filter" , fa::filter }, - { "fire" , fa::fire }, - { "fireextinguisher" , fa::fireextinguisher }, - { "firefox" , fa::firefox }, - { "firstorder" , fa::firstorder }, - { "flag" , fa::flag }, - { "flagcheckered" , fa::flagcheckered }, - { "flago" , fa::flago }, - { "flash" , fa::flash }, - { "flask" , fa::flask }, - { "flickr" , fa::flickr }, - { "floppyo" , fa::floppyo }, - { "folder" , fa::folder }, - { "foldero" , fa::foldero }, - { "folderopen" , fa::folderopen }, - { "folderopeno" , fa::folderopeno }, - { "font" , fa::font }, - { "fontawesome" , fa::fontawesome }, - { "fonticons" , fa::fonticons }, - { "fortawesome" , fa::fortawesome }, - { "forumbee" , fa::forumbee }, - { "forward" , fa::forward }, - { "foursquare" , fa::foursquare }, - { "freecodecamp" , fa::freecodecamp }, - { "frowno" , fa::frowno }, - { "futbolo" , fa::futbolo }, - { "gamepad" , fa::gamepad }, - { "gavel" , fa::gavel }, - { "gbp" , fa::gbp }, - { "ge" , fa::ge }, - { "gear" , fa::gear }, - { "gears" , fa::gears }, - { "genderless" , fa::genderless }, - { "getpocket" , fa::getpocket }, - { "gg" , fa::gg }, - { "ggcircle" , fa::ggcircle }, - { "gift" , fa::gift }, - { "git" , fa::git }, - { "gitsquare" , fa::gitsquare }, - { "github" , fa::github }, - { "githubalt" , fa::githubalt }, - { "githubsquare" , fa::githubsquare }, - { "gitlab" , fa::gitlab }, - { "gittip" , fa::gittip }, - { "glass" , fa::glass }, - { "glide" , fa::glide }, - { "glideg" , fa::glideg }, - { "globe" , fa::globe }, - { "google" , fa::google }, - { "googleplus" , fa::googleplus }, - { "googlepluscircle" , fa::googlepluscircle }, - { "googleplusofficial" , fa::googleplusofficial }, - { "googleplussquare" , fa::googleplussquare }, - { "googlewallet" , fa::googlewallet }, - { "graduationcap" , fa::graduationcap }, - { "gratipay" , fa::gratipay }, - { "grav" , fa::grav }, - { "group" , fa::group }, - { "hsquare" , fa::hsquare }, - { "hackernews" , fa::hackernews }, - { "handgrabo" , fa::handgrabo }, - { "handlizardo" , fa::handlizardo }, - { "handodown" , fa::handodown }, - { "handoleft" , fa::handoleft }, - { "handoright" , fa::handoright }, - { "handoup" , fa::handoup }, - { "handpapero" , fa::handpapero }, - { "handpeaceo" , fa::handpeaceo }, - { "handpointero" , fa::handpointero }, - { "handrocko" , fa::handrocko }, - { "handscissorso" , fa::handscissorso }, - { "handspocko" , fa::handspocko }, - { "handstopo" , fa::handstopo }, - { "handshakeo" , fa::handshakeo }, - { "hardofhearing" , fa::hardofhearing }, - { "hashtag" , fa::hashtag }, - { "hddo" , fa::hddo }, - { "header" , fa::header }, - { "headphones" , fa::headphones }, - { "heart" , fa::heart }, - { "hearto" , fa::hearto }, - { "heartbeat" , fa::heartbeat }, - { "history" , fa::history }, - { "home" , fa::home }, - { "hospitalo" , fa::hospitalo }, - { "hotel" , fa::hotel }, - { "hourglass" , fa::hourglass }, - { "hourglass1" , fa::hourglass1 }, - { "hourglass2" , fa::hourglass2 }, - { "hourglass3" , fa::hourglass3 }, - { "hourglassend" , fa::hourglassend }, - { "hourglasshalf" , fa::hourglasshalf }, - { "hourglasso" , fa::hourglasso }, - { "hourglassstart" , fa::hourglassstart }, - { "houzz" , fa::houzz }, - { "html5" , fa::html5 }, - { "icursor" , fa::icursor }, - { "idbadge" , fa::idbadge }, - { "idcard" , fa::idcard }, - { "idcardo" , fa::idcardo }, - { "ils" , fa::ils }, - { "image" , fa::image }, - { "imdb" , fa::imdb }, - { "inbox" , fa::inbox }, - { "indent" , fa::indent }, - { "industry" , fa::industry }, - { "info" , fa::info }, - { "infocircle" , fa::infocircle }, - { "inr" , fa::inr }, - { "instagram" , fa::instagram }, - { "institution" , fa::institution }, - { "internetexplorer" , fa::internetexplorer }, - { "intersex" , fa::intersex }, - { "ioxhost" , fa::ioxhost }, - { "italic" , fa::italic }, - { "joomla" , fa::joomla }, - { "jpy" , fa::jpy }, - { "jsfiddle" , fa::jsfiddle }, - { "key" , fa::key }, - { "keyboardo" , fa::keyboardo }, - { "krw" , fa::krw }, - { "language" , fa::language }, - { "laptop" , fa::laptop }, - { "lastfm" , fa::lastfm }, - { "lastfmsquare" , fa::lastfmsquare }, - { "leaf" , fa::leaf }, - { "leanpub" , fa::leanpub }, - { "legal" , fa::legal }, - { "lemono" , fa::lemono }, - { "leveldown" , fa::leveldown }, - { "levelup" , fa::levelup }, - { "lifebouy" , fa::lifebouy }, - { "lifebuoy" , fa::lifebuoy }, - { "lifering" , fa::lifering }, - { "lifesaver" , fa::lifesaver }, - { "lightbulbo" , fa::lightbulbo }, - { "linechart" , fa::linechart }, - { "link" , fa::link }, - { "linkedin" , fa::linkedin }, - { "linkedinsquare" , fa::linkedinsquare }, - { "linode" , fa::linode }, - { "fa_linux" , fa::fa_linux }, - { "list" , fa::list }, - { "listalt" , fa::listalt }, - { "listol" , fa::listol }, - { "listul" , fa::listul }, - { "locationarrow" , fa::locationarrow }, - { "lock" , fa::lock }, - { "longarrowdown" , fa::longarrowdown }, - { "longarrowleft" , fa::longarrowleft }, - { "longarrowright" , fa::longarrowright }, - { "longarrowup" , fa::longarrowup }, - { "lowvision" , fa::lowvision }, - { "magic" , fa::magic }, - { "magnet" , fa::magnet }, - { "mailforward" , fa::mailforward }, - { "mailreply" , fa::mailreply }, - { "mailreplyall" , fa::mailreplyall }, - { "male" , fa::male }, - { "map" , fa::map }, - { "mapmarker" , fa::mapmarker }, - { "mapo" , fa::mapo }, - { "mappin" , fa::mappin }, - { "mapsigns" , fa::mapsigns }, - { "mars" , fa::mars }, - { "marsdouble" , fa::marsdouble }, - { "marsstroke" , fa::marsstroke }, - { "marsstrokeh" , fa::marsstrokeh }, - { "marsstrokev" , fa::marsstrokev }, - { "maxcdn" , fa::maxcdn }, - { "meanpath" , fa::meanpath }, - { "medium" , fa::medium }, - { "medkit" , fa::medkit }, - { "meetup" , fa::meetup }, - { "meho" , fa::meho }, - { "mercury" , fa::mercury }, - { "microchip" , fa::microchip }, - { "microphone" , fa::microphone }, - { "microphoneslash" , fa::microphoneslash }, - { "minus" , fa::minus }, - { "minuscircle" , fa::minuscircle }, - { "minussquare" , fa::minussquare }, - { "minussquareo" , fa::minussquareo }, - { "mixcloud" , fa::mixcloud }, - { "mobile" , fa::mobile }, - { "mobilephone" , fa::mobilephone }, - { "modx" , fa::modx }, - { "money" , fa::money }, - { "moono" , fa::moono }, - { "mortarboard" , fa::mortarboard }, - { "motorcycle" , fa::motorcycle }, - { "mousepointer" , fa::mousepointer }, - { "music" , fa::music }, - { "navicon" , fa::navicon }, - { "neuter" , fa::neuter }, - { "newspapero" , fa::newspapero }, - { "objectgroup" , fa::objectgroup }, - { "objectungroup" , fa::objectungroup }, - { "odnoklassniki" , fa::odnoklassniki }, - { "odnoklassnikisquare" , fa::odnoklassnikisquare }, - { "opencart" , fa::opencart }, - { "openid" , fa::openid }, - { "opera" , fa::opera }, - { "optinmonster" , fa::optinmonster }, - { "outdent" , fa::outdent }, - { "pagelines" , fa::pagelines }, - { "paintbrush" , fa::paintbrush }, - { "paperplane" , fa::paperplane }, - { "paperplaneo" , fa::paperplaneo }, - { "paperclip" , fa::paperclip }, - { "paragraph" , fa::paragraph }, - { "paste" , fa::paste }, - { "pause" , fa::pause }, - { "pausecircle" , fa::pausecircle }, - { "pausecircleo" , fa::pausecircleo }, - { "paw" , fa::paw }, - { "paypal" , fa::paypal }, - { "pencil" , fa::pencil }, - { "pencilsquare" , fa::pencilsquare }, - { "pencilsquareo" , fa::pencilsquareo }, - { "percent" , fa::percent }, - { "phone" , fa::phone }, - { "phonesquare" , fa::phonesquare }, - { "photo" , fa::photo }, - { "pictureo" , fa::pictureo }, - { "piechart" , fa::piechart }, - { "piedpiper" , fa::piedpiper }, - { "piedpiperalt" , fa::piedpiperalt }, - { "piedpiperpp" , fa::piedpiperpp }, - { "pinterest" , fa::pinterest }, - { "pinterestp" , fa::pinterestp }, - { "pinterestsquare" , fa::pinterestsquare }, - { "plane" , fa::plane }, - { "play" , fa::play }, - { "playcircle" , fa::playcircle }, - { "playcircleo" , fa::playcircleo }, - { "plug" , fa::plug }, - { "plus" , fa::plus }, - { "pluscircle" , fa::pluscircle }, - { "plussquare" , fa::plussquare }, - { "plussquareo" , fa::plussquareo }, - { "podcast" , fa::podcast }, - { "poweroff" , fa::poweroff }, - { "print" , fa::print }, - { "producthunt" , fa::producthunt }, - { "puzzlepiece" , fa::puzzlepiece }, - { "qq" , fa::qq }, - { "qrcode" , fa::qrcode }, - { "question" , fa::question }, - { "questioncircle" , fa::questioncircle }, - { "questioncircleo" , fa::questioncircleo }, - { "quora" , fa::quora }, - { "quoteleft" , fa::quoteleft }, - { "quoteright" , fa::quoteright }, - { "ra" , fa::ra }, - { "random" , fa::random }, - { "ravelry" , fa::ravelry }, - { "rebel" , fa::rebel }, - { "recycle" , fa::recycle }, - { "reddit" , fa::reddit }, - { "redditalien" , fa::redditalien }, - { "redditsquare" , fa::redditsquare }, - { "refresh" , fa::refresh }, - { "registered" , fa::registered }, - { "remove" , fa::remove }, - { "renren" , fa::renren }, - { "reorder" , fa::reorder }, - { "repeat" , fa::repeat }, - { "reply" , fa::reply }, - { "replyall" , fa::replyall }, - { "resistance" , fa::resistance }, - { "retweet" , fa::retweet }, - { "rmb" , fa::rmb }, - { "road" , fa::road }, - { "rocket" , fa::rocket }, - { "rotateleft" , fa::rotateleft }, - { "rotateright" , fa::rotateright }, - { "rouble" , fa::rouble }, - { "rss" , fa::rss }, - { "rsssquare" , fa::rsssquare }, - { "rub" , fa::rub }, - { "ruble" , fa::ruble }, - { "rupee" , fa::rupee }, - { "s15" , fa::s15 }, - { "safari" , fa::safari }, - { "save" , fa::save }, - { "scissors" , fa::scissors }, - { "scribd" , fa::scribd }, - { "search" , fa::search }, - { "searchminus" , fa::searchminus }, - { "searchplus" , fa::searchplus }, - { "sellsy" , fa::sellsy }, - { "send" , fa::send }, - { "sendo" , fa::sendo }, - { "server" , fa::server }, - { "share" , fa::share }, - { "sharealt" , fa::sharealt }, - { "sharealtsquare" , fa::sharealtsquare }, - { "sharesquare" , fa::sharesquare }, - { "sharesquareo" , fa::sharesquareo }, - { "shekel" , fa::shekel }, - { "sheqel" , fa::sheqel }, - { "shield" , fa::shield }, - { "ship" , fa::ship }, - { "shirtsinbulk" , fa::shirtsinbulk }, - { "shoppingbag" , fa::shoppingbag }, - { "shoppingbasket" , fa::shoppingbasket }, - { "shoppingcart" , fa::shoppingcart }, - { "shower" , fa::shower }, - { "signin" , fa::signin }, - { "signlanguage" , fa::signlanguage }, - { "signout" , fa::signout }, - { "signal" , fa::signal }, - { "signing" , fa::signing }, - { "simplybuilt" , fa::simplybuilt }, - { "sitemap" , fa::sitemap }, - { "skyatlas" , fa::skyatlas }, - { "skype" , fa::skype }, - { "slack" , fa::slack }, - { "sliders" , fa::sliders }, - { "slideshare" , fa::slideshare }, - { "smileo" , fa::smileo }, - { "snapchat" , fa::snapchat }, - { "snapchatghost" , fa::snapchatghost }, - { "snapchatsquare" , fa::snapchatsquare }, - { "snowflakeo" , fa::snowflakeo }, - { "soccerballo" , fa::soccerballo }, - { "sort" , fa::sort }, - { "sortalphaasc" , fa::sortalphaasc }, - { "sortalphadesc" , fa::sortalphadesc }, - { "sortamountasc" , fa::sortamountasc }, - { "sortamountdesc" , fa::sortamountdesc }, - { "sortasc" , fa::sortasc }, - { "sortdesc" , fa::sortdesc }, - { "sortdown" , fa::sortdown }, - { "sortnumericasc" , fa::sortnumericasc }, - { "sortnumericdesc" , fa::sortnumericdesc }, - { "sortup" , fa::sortup }, - { "soundcloud" , fa::soundcloud }, - { "spaceshuttle" , fa::spaceshuttle }, - { "spinner" , fa::spinner }, - { "spoon" , fa::spoon }, - { "spotify" , fa::spotify }, - { "square" , fa::square }, - { "squareo" , fa::squareo }, - { "stackexchange" , fa::stackexchange }, - { "stackoverflow" , fa::stackoverflow }, - { "star" , fa::star }, - { "starhalf" , fa::starhalf }, - { "starhalfempty" , fa::starhalfempty }, - { "starhalffull" , fa::starhalffull }, - { "starhalfo" , fa::starhalfo }, - { "staro" , fa::staro }, - { "steam" , fa::steam }, - { "steamsquare" , fa::steamsquare }, - { "stepbackward" , fa::stepbackward }, - { "stepforward" , fa::stepforward }, - { "stethoscope" , fa::stethoscope }, - { "stickynote" , fa::stickynote }, - { "stickynoteo" , fa::stickynoteo }, - { "stop" , fa::stop }, - { "stopcircle" , fa::stopcircle }, - { "stopcircleo" , fa::stopcircleo }, - { "streetview" , fa::streetview }, - { "strikethrough" , fa::strikethrough }, - { "stumbleupon" , fa::stumbleupon }, - { "stumbleuponcircle" , fa::stumbleuponcircle }, - { "subscript" , fa::subscript }, - { "subway" , fa::subway }, - { "suitcase" , fa::suitcase }, - { "suno" , fa::suno }, - { "superpowers" , fa::superpowers }, - { "superscript" , fa::superscript }, - { "support" , fa::support }, - { "table" , fa::table }, - { "tablet" , fa::tablet }, - { "tachometer" , fa::tachometer }, - { "tag" , fa::tag }, - { "tags" , fa::tags }, - { "tasks" , fa::tasks }, - { "taxi" , fa::taxi }, - { "telegram" , fa::telegram }, - { "television" , fa::television }, - { "tencentweibo" , fa::tencentweibo }, - { "terminal" , fa::terminal }, - { "textheight" , fa::textheight }, - { "textwidth" , fa::textwidth }, - { "th" , fa::th }, - { "thlarge" , fa::thlarge }, - { "thlist" , fa::thlist }, - { "themeisle" , fa::themeisle }, - { "thermometer" , fa::thermometer }, - { "thermometer0" , fa::thermometer0 }, - { "thermometer1" , fa::thermometer1 }, - { "thermometer2" , fa::thermometer2 }, - { "thermometer3" , fa::thermometer3 }, - { "thermometer4" , fa::thermometer4 }, - { "thermometerempty" , fa::thermometerempty }, - { "thermometerfull" , fa::thermometerfull }, - { "thermometerhalf" , fa::thermometerhalf }, - { "thermometerquarter" , fa::thermometerquarter }, - { "thermometerthreequarters" , fa::thermometerthreequarters }, - { "thumbtack" , fa::thumbtack }, - { "thumbsdown" , fa::thumbsdown }, - { "thumbsodown" , fa::thumbsodown }, - { "thumbsoup" , fa::thumbsoup }, - { "thumbsup" , fa::thumbsup }, - { "ticket" , fa::ticket }, - { "times" , fa::times }, - { "timescircle" , fa::timescircle }, - { "timescircleo" , fa::timescircleo }, - { "timesrectangle" , fa::timesrectangle }, - { "timesrectangleo" , fa::timesrectangleo }, - { "tint" , fa::tint }, - { "toggledown" , fa::toggledown }, - { "toggleleft" , fa::toggleleft }, - { "toggleoff" , fa::toggleoff }, - { "toggleon" , fa::toggleon }, - { "toggleright" , fa::toggleright }, - { "toggleup" , fa::toggleup }, - { "trademark" , fa::trademark }, - { "train" , fa::train }, - { "transgender" , fa::transgender }, - { "transgenderalt" , fa::transgenderalt }, - { "trash" , fa::trash }, - { "trasho" , fa::trasho }, - { "tree" , fa::tree }, - { "trello" , fa::trello }, - { "tripadvisor" , fa::tripadvisor }, - { "trophy" , fa::trophy }, - { "truck" , fa::truck }, - { "fa_try" , fa::fa_try }, - { "tty" , fa::tty }, - { "tumblr" , fa::tumblr }, - { "tumblrsquare" , fa::tumblrsquare }, - { "turkishlira" , fa::turkishlira }, - { "tv" , fa::tv }, - { "twitch" , fa::twitch }, - { "twitter" , fa::twitter }, - { "twittersquare" , fa::twittersquare }, - { "umbrella" , fa::umbrella }, - { "underline" , fa::underline }, - { "undo" , fa::undo }, - { "universalaccess" , fa::universalaccess }, - { "university" , fa::university }, - { "unlink" , fa::unlink }, - { "unlock" , fa::unlock }, - { "unlockalt" , fa::unlockalt }, - { "unsorted" , fa::unsorted }, - { "upload" , fa::upload }, - { "usb" , fa::usb }, - { "usd" , fa::usd }, - { "user" , fa::user }, - { "usercircle" , fa::usercircle }, - { "usercircleo" , fa::usercircleo }, - { "usermd" , fa::usermd }, - { "usero" , fa::usero }, - { "userplus" , fa::userplus }, - { "usersecret" , fa::usersecret }, - { "usertimes" , fa::usertimes }, - { "users" , fa::users }, - { "vcard" , fa::vcard }, - { "vcardo" , fa::vcardo }, - { "venus" , fa::venus }, - { "venusdouble" , fa::venusdouble }, - { "venusmars" , fa::venusmars }, - { "viacoin" , fa::viacoin }, - { "viadeo" , fa::viadeo }, - { "viadeosquare" , fa::viadeosquare }, - { "videocamera" , fa::videocamera }, - { "vimeo" , fa::vimeo }, - { "vimeosquare" , fa::vimeosquare }, - { "vine" , fa::vine }, - { "vk" , fa::vk }, - { "volumecontrolphone" , fa::volumecontrolphone }, - { "volumedown" , fa::volumedown }, - { "volumeoff" , fa::volumeoff }, - { "volumeup" , fa::volumeup }, - { "warning" , fa::warning }, - { "wechat" , fa::wechat }, - { "weibo" , fa::weibo }, - { "weixin" , fa::weixin }, - { "whatsapp" , fa::whatsapp }, - { "wheelchair" , fa::wheelchair }, - { "wheelchairalt" , fa::wheelchairalt }, - { "wifi" , fa::wifi }, - { "wikipediaw" , fa::wikipediaw }, - { "windowclose" , fa::windowclose }, - { "windowcloseo" , fa::windowcloseo }, - { "windowmaximize" , fa::windowmaximize }, - { "windowminimize" , fa::windowminimize }, - { "windowrestore" , fa::windowrestore }, - { "windows" , fa::windows }, - { "won" , fa::won }, - { "wordpress" , fa::wordpress }, - { "wpbeginner" , fa::wpbeginner }, - { "wpexplorer" , fa::wpexplorer }, - { "wpforms" , fa::wpforms }, - { "wrench" , fa::wrench }, - { "xing" , fa::xing }, - { "xingsquare" , fa::xingsquare }, - { "ycombinator" , fa::ycombinator }, - { "ycombinatorsquare" , fa::ycombinatorsquare }, - { "yahoo" , fa::yahoo }, - { "yc" , fa::yc }, - { "ycsquare" , fa::ycsquare }, - { "yelp" , fa::yelp }, - { "yen" , fa::yen }, - { "yoast" , fa::yoast }, - { "youtube" , fa::youtube }, - { "youtubeplay" , fa::youtubeplay }, - { "youtubesquare" , fa::youtubesquare } +static const FANameIcon faBrandsIconArray[] = { + { "500px" , fa::fa_500px }, + { "accessible-icon" , fa::accessibleicon }, + { "accusoft" , fa::accusoft }, + { "acquisitions-incorporated" , fa::acquisitionsincorporated }, + { "adn" , fa::adn }, + { "adobe" , fa::adobe }, + { "adversal" , fa::adversal }, + { "affiliatetheme" , fa::affiliatetheme }, + { "airbnb" , fa::airbnb }, + { "algolia" , fa::algolia }, + { "alipay" , fa::alipay }, + { "amazon" , fa::amazon }, + { "amazon-pay" , fa::amazonpay }, + { "amilia" , fa::amilia }, + { "android" , fa::android }, + { "angellist" , fa::angellist }, + { "angrycreative" , fa::angrycreative }, + { "angular" , fa::angular }, + { "app-store" , fa::appstore }, + { "app-store-ios" , fa::appstoreios }, + { "apper" , fa::apper }, + { "apple" , fa::apple }, + { "apple-pay" , fa::applepay }, + { "artstation" , fa::artstation }, + { "asymmetrik" , fa::asymmetrik }, + { "atlassian" , fa::atlassian }, + { "audible" , fa::audible }, + { "autoprefixer" , fa::autoprefixer }, + { "avianex" , fa::avianex }, + { "aviato" , fa::aviato }, + { "aws" , fa::aws }, + { "bandcamp" , fa::bandcamp }, + { "battle-net" , fa::battlenet }, + { "behance" , fa::behance }, + { "behance-square" , fa::behancesquare }, + { "bimobject" , fa::bimobject }, + { "bitbucket" , fa::bitbucket }, + { "bitcoin" , fa::bitcoin }, + { "bity" , fa::bity }, + { "black-tie" , fa::blacktie }, + { "blackberry" , fa::blackberry }, + { "blogger" , fa::blogger }, + { "blogger-b" , fa::bloggerb }, + { "bluetooth" , fa::bluetooth }, + { "bluetooth-b" , fa::bluetoothb }, + { "bootstrap" , fa::bootstrap }, + { "btc" , fa::btc }, + { "buffer" , fa::buffer }, + { "buromobelexperte" , fa::buromobelexperte }, + { "buysellads" , fa::buysellads }, + { "canadian-maple-leaf" , fa::canadianmapleleaf }, + { "cc-amazon-pay" , fa::ccamazonpay }, + { "cc-amex" , fa::ccamex }, + { "cc-apple-pay" , fa::ccapplepay }, + { "cc-diners-club" , fa::ccdinersclub }, + { "cc-discover" , fa::ccdiscover }, + { "cc-jcb" , fa::ccjcb }, + { "cc-mastercard" , fa::ccmastercard }, + { "cc-paypal" , fa::ccpaypal }, + { "cc-stripe" , fa::ccstripe }, + { "cc-visa" , fa::ccvisa }, + { "centercode" , fa::centercode }, + { "centos" , fa::centos }, + { "chrome" , fa::chrome }, + { "chromecast" , fa::chromecast }, + { "cloudscale" , fa::cloudscale }, + { "cloudsmith" , fa::cloudsmith }, + { "cloudversify" , fa::cloudversify }, + { "codepen" , fa::codepen }, + { "codiepie" , fa::codiepie }, + { "confluence" , fa::confluence }, + { "connectdevelop" , fa::connectdevelop }, + { "contao" , fa::contao }, + { "cotton-bureau" , fa::cottonbureau }, + { "cpanel" , fa::cpanel }, + { "creative-commons" , fa::creativecommons }, + { "creative-commons-by" , fa::creativecommonsby }, + { "creative-commons-nc" , fa::creativecommonsnc }, + { "creative-commons-nc-eu" , fa::creativecommonsnceu }, + { "creative-commons-nc-jp" , fa::creativecommonsncjp }, + { "creative-commons-nd" , fa::creativecommonsnd }, + { "creative-commons-pd" , fa::creativecommonspd }, + { "creative-commons-pd-alt" , fa::creativecommonspdalt }, + { "creative-commons-remix" , fa::creativecommonsremix }, + { "creative-commons-sa" , fa::creativecommonssa }, + { "creative-commons-sampling" , fa::creativecommonssampling }, + { "creative-commons-sampling-plus" , fa::creativecommonssamplingplus }, + { "creative-commons-share" , fa::creativecommonsshare }, + { "creative-commons-zero" , fa::creativecommonszero }, + { "critical-role" , fa::criticalrole }, + { "css3" , fa::css3 }, + { "css3-alt" , fa::css3alt }, + { "cuttlefish" , fa::cuttlefish }, + { "d-and-d" , fa::dandd }, + { "d-and-d-beyond" , fa::danddbeyond }, + { "dashcube" , fa::dashcube }, + { "delicious" , fa::delicious }, + { "deploydog" , fa::deploydog }, + { "deskpro" , fa::deskpro }, + { "dev" , fa::dev }, + { "deviantart" , fa::deviantart }, + { "dhl" , fa::dhl }, + { "diaspora" , fa::diaspora }, + { "digg" , fa::digg }, + { "digital-ocean" , fa::digitalocean }, + { "discord" , fa::discord }, + { "discourse" , fa::discourse }, + { "dochub" , fa::dochub }, + { "docker" , fa::docker }, + { "draft2digital" , fa::draft2digital }, + { "dribbble" , fa::dribbble }, + { "dribbble-square" , fa::dribbblesquare }, + { "dropbox" , fa::dropbox }, + { "drupal" , fa::drupal }, + { "dyalog" , fa::dyalog }, + { "earlybirds" , fa::earlybirds }, + { "ebay" , fa::ebay }, + { "edge" , fa::edge }, + { "elementor" , fa::elementor }, + { "ello" , fa::ello }, + { "ember" , fa::ember }, + { "empire" , fa::empire }, + { "envira" , fa::envira }, + { "erlang" , fa::erlang }, + { "ethereum" , fa::ethereum }, + { "etsy" , fa::etsy }, + { "evernote" , fa::evernote }, + { "expeditedssl" , fa::expeditedssl }, + { "facebook" , fa::facebook }, + { "facebook-f" , fa::facebookf }, + { "facebook-messenger" , fa::facebookmessenger }, + { "facebook-square" , fa::facebooksquare }, + { "fantasy-flight-games" , fa::fantasyflightgames }, + { "fedex" , fa::fedex }, + { "fedora" , fa::fedora }, + { "figma" , fa::figma }, + { "firefox" , fa::firefox }, + { "first-order" , fa::firstorder }, + { "first-order-alt" , fa::firstorderalt }, + { "firstdraft" , fa::firstdraft }, + { "flickr" , fa::flickr }, + { "flipboard" , fa::flipboard }, + { "fly" , fa::fly }, + { "font-awesome" , fa::fontawesome }, + { "font-awesome-alt" , fa::fontawesomealt }, + { "font-awesome-flag" , fa::fontawesomeflag }, + { "fonticons" , fa::fonticons }, + { "fonticons-fi" , fa::fonticonsfi }, + { "fort-awesome" , fa::fortawesome }, + { "fort-awesome-alt" , fa::fortawesomealt }, + { "forumbee" , fa::forumbee }, + { "foursquare" , fa::foursquare }, + { "free-code-camp" , fa::freecodecamp }, + { "freebsd" , fa::freebsd }, + { "fulcrum" , fa::fulcrum }, + { "galactic-republic" , fa::galacticrepublic }, + { "galactic-senate" , fa::galacticsenate }, + { "get-pocket" , fa::getpocket }, + { "gg" , fa::gg }, + { "gg-circle" , fa::ggcircle }, + { "git" , fa::git }, + { "git-alt" , fa::gitalt }, + { "git-square" , fa::gitsquare }, + { "github" , fa::github }, + { "github-alt" , fa::githubalt }, + { "github-square" , fa::githubsquare }, + { "gitkraken" , fa::gitkraken }, + { "gitlab" , fa::gitlab }, + { "gitter" , fa::gitter }, + { "glide" , fa::glide }, + { "glide-g" , fa::glideg }, + { "gofore" , fa::gofore }, + { "goodreads" , fa::goodreads }, + { "goodreads-g" , fa::goodreadsg }, + { "google" , fa::google }, + { "google-drive" , fa::googledrive }, + { "google-play" , fa::googleplay }, + { "google-plus" , fa::googleplus }, + { "google-plus-g" , fa::googleplusg }, + { "google-plus-square" , fa::googleplussquare }, + { "google-wallet" , fa::googlewallet }, + { "gratipay" , fa::gratipay }, + { "grav" , fa::grav }, + { "gripfire" , fa::gripfire }, + { "grunt" , fa::grunt }, + { "gulp" , fa::gulp }, + { "hacker-news" , fa::hackernews }, + { "hacker-news-square" , fa::hackernewssquare }, + { "hackerrank" , fa::hackerrank }, + { "hips" , fa::hips }, + { "hire-a-helper" , fa::hireahelper }, + { "hooli" , fa::hooli }, + { "hornbill" , fa::hornbill }, + { "hotjar" , fa::hotjar }, + { "houzz" , fa::houzz }, + { "html5" , fa::html5 }, + { "hubspot" , fa::hubspot }, + { "imdb" , fa::imdb }, + { "instagram" , fa::instagram }, + { "intercom" , fa::intercom }, + { "internet-explorer" , fa::internetexplorer }, + { "invision" , fa::invision }, + { "ioxhost" , fa::ioxhost }, + { "itch-io" , fa::itchio }, + { "itunes" , fa::itunes }, + { "itunes-note" , fa::itunesnote }, + { "java" , fa::java }, + { "jedi-order" , fa::jediorder }, + { "jenkins" , fa::jenkins }, + { "jira" , fa::jira }, + { "joget" , fa::joget }, + { "joomla" , fa::joomla }, + { "js" , fa::js }, + { "js-square" , fa::jssquare }, + { "jsfiddle" , fa::jsfiddle }, + { "kaggle" , fa::kaggle }, + { "keybase" , fa::keybase }, + { "keycdn" , fa::keycdn }, + { "kickstarter" , fa::kickstarter }, + { "kickstarter-k" , fa::kickstarterk }, + { "korvue" , fa::korvue }, + { "laravel" , fa::laravel }, + { "lastfm" , fa::lastfm }, + { "lastfm-square" , fa::lastfmsquare }, + { "leanpub" , fa::leanpub }, + { "less" , fa::less }, + { "line" , fa::line }, + { "linkedin" , fa::linkedin }, + { "linkedin-in" , fa::linkedinin }, + { "linode" , fa::linode }, + { "linux" , fa::linux }, + { "lyft" , fa::lyft }, + { "magento" , fa::magento }, + { "mailchimp" , fa::mailchimp }, + { "mandalorian" , fa::mandalorian }, + { "markdown" , fa::markdown }, + { "mastodon" , fa::mastodon }, + { "maxcdn" , fa::maxcdn }, + { "medapps" , fa::medapps }, + { "medium" , fa::medium }, + { "medium-m" , fa::mediumm }, + { "medrt" , fa::medrt }, + { "meetup" , fa::meetup }, + { "megaport" , fa::megaport }, + { "mendeley" , fa::mendeley }, + { "microsoft" , fa::microsoft }, + { "mix" , fa::mix }, + { "mixcloud" , fa::mixcloud }, + { "mizuni" , fa::mizuni }, + { "modx" , fa::modx }, + { "monero" , fa::monero }, + { "napster" , fa::napster }, + { "neos" , fa::neos }, + { "nimblr" , fa::nimblr }, + { "node" , fa::node }, + { "node-js" , fa::nodejs }, + { "npm" , fa::npm }, + { "ns8" , fa::ns8 }, + { "nutritionix" , fa::nutritionix }, + { "odnoklassniki" , fa::odnoklassniki }, + { "odnoklassniki-square" , fa::odnoklassnikisquare }, + { "old-republic" , fa::oldrepublic }, + { "opencart" , fa::opencart }, + { "openid" , fa::openid }, + { "opera" , fa::opera }, + { "optin-monster" , fa::optinmonster }, + { "osi" , fa::osi }, + { "page4" , fa::page4 }, + { "pagelines" , fa::pagelines }, + { "palfed" , fa::palfed }, + { "patreon" , fa::patreon }, + { "paypal" , fa::paypal }, + { "penny-arcade" , fa::pennyarcade }, + { "periscope" , fa::periscope }, + { "phabricator" , fa::phabricator }, + { "phoenix-framework" , fa::phoenixframework }, + { "phoenix-squadron" , fa::phoenixsquadron }, + { "php" , fa::php }, + { "pied-piper" , fa::piedpiper }, + { "pied-piper-alt" , fa::piedpiperalt }, + { "pied-piper-hat" , fa::piedpiperhat }, + { "pied-piper-pp" , fa::piedpiperpp }, + { "pinterest" , fa::pinterest }, + { "pinterest-p" , fa::pinterestp }, + { "pinterest-square" , fa::pinterestsquare }, + { "playstation" , fa::playstation }, + { "product-hunt" , fa::producthunt }, + { "pushed" , fa::pushed }, + { "python" , fa::python }, + { "qq" , fa::qq }, + { "quinscape" , fa::quinscape }, + { "quora" , fa::quora }, + { "r-project" , fa::rproject }, + { "raspberry-pi" , fa::raspberrypi }, + { "ravelry" , fa::ravelry }, + { "react" , fa::react }, + { "reacteurope" , fa::reacteurope }, + { "readme" , fa::readme }, + { "rebel" , fa::rebel }, + { "red-river" , fa::redriver }, + { "reddit" , fa::reddit }, + { "reddit-alien" , fa::redditalien }, + { "reddit-square" , fa::redditsquare }, + { "redhat" , fa::redhat }, + { "renren" , fa::renren }, + { "replyd" , fa::replyd }, + { "researchgate" , fa::researchgate }, + { "resolving" , fa::resolving }, + { "rev" , fa::rev }, + { "rocketchat" , fa::rocketchat }, + { "rockrms" , fa::rockrms }, + { "safari" , fa::safari }, + { "salesforce" , fa::salesforce }, + { "sass" , fa::sass }, + { "schlix" , fa::schlix }, + { "scribd" , fa::scribd }, + { "searchengin" , fa::searchengin }, + { "sellcast" , fa::sellcast }, + { "sellsy" , fa::sellsy }, + { "servicestack" , fa::servicestack }, + { "shirtsinbulk" , fa::shirtsinbulk }, + { "shopware" , fa::shopware }, + { "simplybuilt" , fa::simplybuilt }, + { "sistrix" , fa::sistrix }, + { "sith" , fa::sith }, + { "sketch" , fa::sketch }, + { "skyatlas" , fa::skyatlas }, + { "skype" , fa::skype }, + { "slack" , fa::slack }, + { "slack-hash" , fa::slackhash }, + { "slideshare" , fa::slideshare }, + { "snapchat" , fa::snapchat }, + { "snapchat-ghost" , fa::snapchatghost }, + { "snapchat-square" , fa::snapchatsquare }, + { "soundcloud" , fa::soundcloud }, + { "sourcetree" , fa::sourcetree }, + { "speakap" , fa::speakap }, + { "speaker-deck" , fa::speakerdeck }, + { "spotify" , fa::spotify }, + { "squarespace" , fa::squarespace }, + { "stack-exchange" , fa::stackexchange }, + { "stack-overflow" , fa::stackoverflow }, + { "stackpath" , fa::stackpath }, + { "staylinked" , fa::staylinked }, + { "steam" , fa::steam }, + { "steam-square" , fa::steamsquare }, + { "steam-symbol" , fa::steamsymbol }, + { "sticker-mule" , fa::stickermule }, + { "strava" , fa::strava }, + { "stripe" , fa::stripe }, + { "stripe-s" , fa::stripes }, + { "studiovinari" , fa::studiovinari }, + { "stumbleupon" , fa::stumbleupon }, + { "stumbleupon-circle" , fa::stumbleuponcircle }, + { "superpowers" , fa::superpowers }, + { "supple" , fa::supple }, + { "suse" , fa::suse }, + { "symfony" , fa::symfony }, + { "teamspeak" , fa::teamspeak }, + { "telegram" , fa::telegram }, + { "telegram-plane" , fa::telegramplane }, + { "tencent-weibo" , fa::tencentweibo }, + { "the-red-yeti" , fa::theredyeti }, + { "themeco" , fa::themeco }, + { "themeisle" , fa::themeisle }, + { "think-peaks" , fa::thinkpeaks }, + { "trade-federation" , fa::tradefederation }, + { "trello" , fa::trello }, + { "tripadvisor" , fa::tripadvisor }, + { "tumblr" , fa::tumblr }, + { "tumblr-square" , fa::tumblrsquare }, + { "twitch" , fa::twitch }, + { "twitter" , fa::twitter }, + { "twitter-square" , fa::twittersquare }, + { "typo3" , fa::typo3 }, + { "uber" , fa::uber }, + { "ubuntu" , fa::ubuntu }, + { "uikit" , fa::uikit }, + { "uniregistry" , fa::uniregistry }, + { "untappd" , fa::untappd }, + { "ups" , fa::ups }, + { "usb" , fa::usb }, + { "usps" , fa::usps }, + { "ussunnah" , fa::ussunnah }, + { "vaadin" , fa::vaadin }, + { "viacoin" , fa::viacoin }, + { "viadeo" , fa::viadeo }, + { "viadeo-square" , fa::viadeosquare }, + { "viber" , fa::viber }, + { "vimeo" , fa::vimeo }, + { "vimeo-square" , fa::vimeosquare }, + { "vimeo-v" , fa::vimeov }, + { "vine" , fa::vine }, + { "vk" , fa::vk }, + { "vnv" , fa::vnv }, + { "vuejs" , fa::vuejs }, + { "waze" , fa::waze }, + { "weebly" , fa::weebly }, + { "weibo" , fa::weibo }, + { "weixin" , fa::weixin }, + { "whatsapp" , fa::whatsapp }, + { "whatsapp-square" , fa::whatsappsquare }, + { "whmcs" , fa::whmcs }, + { "wikipedia-w" , fa::wikipediaw }, + { "windows" , fa::windows }, + { "wix" , fa::wix }, + { "wizards-of-the-coast" , fa::wizardsofthecoast }, + { "wolf-pack-battalion" , fa::wolfpackbattalion }, + { "wordpress" , fa::wordpress }, + { "wordpress-simple" , fa::wordpresssimple }, + { "wpbeginner" , fa::wpbeginner }, + { "wpexplorer" , fa::wpexplorer }, + { "wpforms" , fa::wpforms }, + { "wpressr" , fa::wpressr }, + { "xbox" , fa::xbox }, + { "xing" , fa::xing }, + { "xing-square" , fa::xingsquare }, + { "y-combinator" , fa::ycombinator }, + { "yahoo" , fa::yahoo }, + { "yammer" , fa::yammer }, + { "yandex" , fa::yandex }, + { "yandex-international" , fa::yandexinternational }, + { "yarn" , fa::yarn }, + { "yelp" , fa::yelp }, + { "yoast" , fa::yoast }, + { "youtube" , fa::youtube }, + { "youtube-square" , fa::youtubesquare }, + { "zhihu" , fa::zhihu } +}; + + +#ifdef FONT_AWESOME_PRO +static const FANameIcon faProIconArray[] = { + { "abacus" , fa::abacus }, + { "acorn" , fa::acorn }, + { "alarm-clock" , fa::alarmclock }, + { "alarm-exclamation" , fa::alarmexclamation }, + { "alarm-plus" , fa::alarmplus }, + { "alarm-snooze" , fa::alarmsnooze }, + { "alicorn" , fa::alicorn }, + { "align-slash" , fa::alignslash }, + { "analytics" , fa::analytics }, + { "angel" , fa::angel }, + { "apple-crate" , fa::applecrate }, + { "arrow-alt-down" , fa::arrowaltdown }, + { "arrow-alt-from-bottom" , fa::arrowaltfrombottom }, + { "arrow-alt-from-left" , fa::arrowaltfromleft }, + { "arrow-alt-from-right" , fa::arrowaltfromright }, + { "arrow-alt-from-top" , fa::arrowaltfromtop }, + { "arrow-alt-left" , fa::arrowaltleft }, + { "arrow-alt-right" , fa::arrowaltright }, + { "arrow-alt-square-down" , fa::arrowaltsquaredown }, + { "arrow-alt-square-left" , fa::arrowaltsquareleft }, + { "arrow-alt-square-right" , fa::arrowaltsquareright }, + { "arrow-alt-square-up" , fa::arrowaltsquareup }, + { "arrow-alt-to-bottom" , fa::arrowalttobottom }, + { "arrow-alt-to-left" , fa::arrowalttoleft }, + { "arrow-alt-to-right" , fa::arrowalttoright }, + { "arrow-alt-to-top" , fa::arrowalttotop }, + { "arrow-alt-up" , fa::arrowaltup }, + { "arrow-from-bottom" , fa::arrowfrombottom }, + { "arrow-from-left" , fa::arrowfromleft }, + { "arrow-from-right" , fa::arrowfromright }, + { "arrow-from-top" , fa::arrowfromtop }, + { "arrows" , fa::arrows }, + { "arrows-h" , fa::arrowsh }, + { "arrow-square-down" , fa::arrowsquaredown }, + { "arrow-square-left" , fa::arrowsquareleft }, + { "arrow-square-right" , fa::arrowsquareright }, + { "arrow-square-up" , fa::arrowsquareup }, + { "arrows-v" , fa::arrowsv }, + { "arrow-to-bottom" , fa::arrowtobottom }, + { "arrow-to-left" , fa::arrowtoleft }, + { "arrow-to-right" , fa::arrowtoright }, + { "arrow-to-top" , fa::arrowtotop }, + { "atom-alt" , fa::atomalt }, + { "axe" , fa::axe }, + { "axe-battle" , fa::axebattle }, + { "backpack" , fa::backpack }, + { "badge" , fa::badge }, + { "badge-check" , fa::badgecheck }, + { "badge-dollar" , fa::badgedollar }, + { "badge-percent" , fa::badgepercent }, + { "badger-honey" , fa::badgerhoney }, + { "bags-shopping" , fa::bagsshopping }, + { "ballot" , fa::ballot }, + { "ballot-check" , fa::ballotcheck }, + { "ball-pile" , fa::ballpile }, + { "barcode-alt" , fa::barcodealt }, + { "barcode-read" , fa::barcoderead }, + { "barcode-scan" , fa::barcodescan }, + { "baseball" , fa::baseball }, + { "basketball-hoop" , fa::basketballhoop }, + { "bat" , fa::bat }, + { "battery-bolt" , fa::batterybolt }, + { "battery-slash" , fa::batteryslash }, + { "bell-exclamation" , fa::bellexclamation }, + { "bell-plus" , fa::bellplus }, + { "bells" , fa::bells }, + { "bell-school" , fa::bellschool }, + { "bell-school-slash" , fa::bellschoolslash }, + { "biking-mountain" , fa::bikingmountain }, + { "blanket" , fa::blanket }, + { "bone-break" , fa::bonebreak }, + { "book-alt" , fa::bookalt }, + { "book-heart" , fa::bookheart }, + { "books" , fa::books }, + { "books-medical" , fa::booksmedical }, + { "book-spells" , fa::bookspells }, + { "book-user" , fa::bookuser }, + { "boot" , fa::boot }, + { "booth-curtain" , fa::boothcurtain }, + { "border-bottom" , fa::borderbottom }, + { "border-center-h" , fa::bordercenterh }, + { "border-center-v" , fa::bordercenterv }, + { "border-inner" , fa::borderinner }, + { "border-left" , fa::borderleft }, + { "border-outer" , fa::borderouter }, + { "border-right" , fa::borderright }, + { "border-style-alt" , fa::borderstylealt }, + { "border-top" , fa::bordertop }, + { "bow-arrow" , fa::bowarrow }, + { "bowling-pins" , fa::bowlingpins }, + { "box-alt" , fa::boxalt }, + { "box-ballot" , fa::boxballot }, + { "box-check" , fa::boxcheck }, + { "boxes-alt" , fa::boxesalt }, + { "box-fragile" , fa::boxfragile }, + { "box-full" , fa::boxfull }, + { "box-heart" , fa::boxheart }, + { "boxing-glove" , fa::boxingglove }, + { "box-up" , fa::boxup }, + { "box-usd" , fa::boxusd }, + { "brackets" , fa::brackets }, + { "brackets-curly" , fa::bracketscurly }, + { "bread-loaf" , fa::breadloaf }, + { "bring-forward" , fa::bringforward }, + { "bring-front" , fa::bringfront }, + { "browser" , fa::browser }, + { "bullseye-arrow" , fa::bullseyearrow }, + { "bullseye-pointer" , fa::bullseyepointer }, + { "burger-soda" , fa::burgersoda }, + { "burrito" , fa::burrito }, + { "bus-school" , fa::busschool }, + { "cabinet-filing" , fa::cabinetfiling }, + { "calculator-alt" , fa::calculatoralt }, + { "calendar-edit" , fa::calendaredit }, + { "calendar-exclamation" , fa::calendarexclamation }, + { "calendar-star" , fa::calendarstar }, + { "camera-alt" , fa::cameraalt }, + { "campfire" , fa::campfire }, + { "candle-holder" , fa::candleholder }, + { "candy-corn" , fa::candycorn }, + { "car-building" , fa::carbuilding }, + { "car-bump" , fa::carbump }, + { "car-bus" , fa::carbus }, + { "caret-circle-down" , fa::caretcircledown }, + { "caret-circle-left" , fa::caretcircleleft }, + { "caret-circle-right" , fa::caretcircleright }, + { "caret-circle-up" , fa::caretcircleup }, + { "car-garage" , fa::cargarage }, + { "car-mechanic" , fa::carmechanic }, + { "cars" , fa::cars }, + { "car-tilt" , fa::cartilt }, + { "car-wash" , fa::carwash }, + { "cauldron" , fa::cauldron }, + { "chair-office" , fa::chairoffice }, + { "chart-line-down" , fa::chartlinedown }, + { "chart-network" , fa::chartnetwork }, + { "chart-pie-alt" , fa::chartpiealt }, + { "chart-scatter" , fa::chartscatter }, + { "cheeseburger" , fa::cheeseburger }, + { "cheese-swiss" , fa::cheeseswiss }, + { "chess-bishop-alt" , fa::chessbishopalt }, + { "chess-clock" , fa::chessclock }, + { "chess-clock-alt" , fa::chessclockalt }, + { "chess-king-alt" , fa::chesskingalt }, + { "chess-knight-alt" , fa::chessknightalt }, + { "chess-pawn-alt" , fa::chesspawnalt }, + { "chess-queen-alt" , fa::chessqueenalt }, + { "chess-rook-alt" , fa::chessrookalt }, + { "chevron-double-down" , fa::chevrondoubledown }, + { "chevron-double-left" , fa::chevrondoubleleft }, + { "chevron-double-right" , fa::chevrondoubleright }, + { "chevron-double-up" , fa::chevrondoubleup }, + { "chevron-square-down" , fa::chevronsquaredown }, + { "chevron-square-left" , fa::chevronsquareleft }, + { "chevron-square-right" , fa::chevronsquareright }, + { "chevron-square-up" , fa::chevronsquareup }, + { "chimney" , fa::chimney }, + { "claw-marks" , fa::clawmarks }, + { "clipboard-list-check" , fa::clipboardlistcheck }, + { "clipboard-prescription" , fa::clipboardprescription }, + { "clipboard-user" , fa::clipboarduser }, + { "cloud-download" , fa::clouddownload }, + { "cloud-drizzle" , fa::clouddrizzle }, + { "cloud-hail" , fa::cloudhail }, + { "cloud-hail-mixed" , fa::cloudhailmixed }, + { "cloud-rainbow" , fa::cloudrainbow }, + { "clouds" , fa::clouds }, + { "cloud-showers" , fa::cloudshowers }, + { "cloud-sleet" , fa::cloudsleet }, + { "clouds-moon" , fa::cloudsmoon }, + { "cloud-snow" , fa::cloudsnow }, + { "clouds-sun" , fa::cloudssun }, + { "cloud-upload" , fa::cloudupload }, + { "club" , fa::club }, + { "code-commit" , fa::codecommit }, + { "code-merge" , fa::codemerge }, + { "coffee-togo" , fa::coffeetogo }, + { "coffin" , fa::coffin }, + { "coin" , fa::coin }, + { "comment-alt-check" , fa::commentaltcheck }, + { "comment-alt-dollar" , fa::commentaltdollar }, + { "comment-alt-dots" , fa::commentaltdots }, + { "comment-alt-edit" , fa::commentaltedit }, + { "comment-alt-exclamation" , fa::commentaltexclamation }, + { "comment-alt-lines" , fa::commentaltlines }, + { "comment-alt-medical" , fa::commentaltmedical }, + { "comment-alt-minus" , fa::commentaltminus }, + { "comment-alt-plus" , fa::commentaltplus }, + { "comment-alt-slash" , fa::commentaltslash }, + { "comment-alt-smile" , fa::commentaltsmile }, + { "comment-alt-times" , fa::commentalttimes }, + { "comment-check" , fa::commentcheck }, + { "comment-edit" , fa::commentedit }, + { "comment-exclamation" , fa::commentexclamation }, + { "comment-lines" , fa::commentlines }, + { "comment-minus" , fa::commentminus }, + { "comment-plus" , fa::commentplus }, + { "comments-alt" , fa::commentsalt }, + { "comments-alt-dollar" , fa::commentsaltdollar }, + { "comment-smile" , fa::commentsmile }, + { "comment-times" , fa::commenttimes }, + { "compass-slash" , fa::compassslash }, + { "compress-alt" , fa::compressalt }, + { "compress-wide" , fa::compresswide }, + { "construction" , fa::construction }, + { "container-storage" , fa::containerstorage }, + { "conveyor-belt" , fa::conveyorbelt }, + { "conveyor-belt-alt" , fa::conveyorbeltalt }, + { "corn" , fa::corn }, + { "cow" , fa::cow }, + { "credit-card-blank" , fa::creditcardblank }, + { "credit-card-front" , fa::creditcardfront }, + { "cricket" , fa::cricket }, + { "croissant" , fa::croissant }, + { "crutches" , fa::crutches }, + { "curling" , fa::curling }, + { "dagger" , fa::dagger }, + { "debug" , fa::debug }, + { "deer" , fa::deer }, + { "deer-rudolph" , fa::deerrudolph }, + { "desktop-alt" , fa::desktopalt }, + { "dewpoint" , fa::dewpoint }, + { "diamond" , fa::diamond }, + { "dice-d10" , fa::diced10 }, + { "dice-d12" , fa::diced12 }, + { "dice-d4" , fa::diced4 }, + { "dice-d8" , fa::diced8 }, + { "digging" , fa::digging }, + { "diploma" , fa::diploma }, + { "disease" , fa::disease }, + { "dog-leashed" , fa::dogleashed }, + { "dolly-empty" , fa::dollyempty }, + { "dolly-flatbed-alt" , fa::dollyflatbedalt }, + { "dolly-flatbed-empty" , fa::dollyflatbedempty }, + { "do-not-enter" , fa::donotenter }, + { "draw-circle" , fa::drawcircle }, + { "draw-square" , fa::drawsquare }, + { "dreidel" , fa::dreidel }, + { "drone" , fa::drone }, + { "drone-alt" , fa::dronealt }, + { "drumstick" , fa::drumstick }, + { "dryer" , fa::dryer }, + { "dryer-alt" , fa::dryeralt }, + { "duck" , fa::duck }, + { "ear" , fa::ear }, + { "ear-muffs" , fa::earmuffs }, + { "eclipse" , fa::eclipse }, + { "eclipse-alt" , fa::eclipsealt }, + { "egg-fried" , fa::eggfried }, + { "elephant" , fa::elephant }, + { "ellipsis-h-alt" , fa::ellipsishalt }, + { "ellipsis-v-alt" , fa::ellipsisvalt }, + { "empty-set" , fa::emptyset }, + { "engine-warning" , fa::enginewarning }, + { "envelope-open-dollar" , fa::envelopeopendollar }, + { "exchange" , fa::exchange }, + { "exclamation-square" , fa::exclamationsquare }, + { "expand-alt" , fa::expandalt }, + { "expand-arrows" , fa::expandarrows }, + { "expand-wide" , fa::expandwide }, + { "external-link" , fa::externallink }, + { "external-link-square" , fa::externallinksquare }, + { "eye-evil" , fa::eyeevil }, + { "farm" , fa::farm }, + { "field-hockey" , fa::fieldhockey }, + { "file-certificate" , fa::filecertificate }, + { "file-chart-line" , fa::filechartline }, + { "file-chart-pie" , fa::filechartpie }, + { "file-check" , fa::filecheck }, + { "file-edit" , fa::fileedit }, + { "file-exclamation" , fa::fileexclamation }, + { "file-minus" , fa::fileminus }, + { "file-plus" , fa::fileplus }, + { "file-search" , fa::filesearch }, + { "files-medical" , fa::filesmedical }, + { "file-spreadsheet" , fa::filespreadsheet }, + { "file-times" , fa::filetimes }, + { "file-user" , fa::fileuser }, + { "film-alt" , fa::filmalt }, + { "fireplace" , fa::fireplace }, + { "fire-smoke" , fa::firesmoke }, + { "fish-cooked" , fa::fishcooked }, + { "flag-alt" , fa::flagalt }, + { "flame" , fa::flame }, + { "flask-poison" , fa::flaskpoison }, + { "flask-potion" , fa::flaskpotion }, + { "flower" , fa::flower }, + { "flower-daffodil" , fa::flowerdaffodil }, + { "flower-tulip" , fa::flowertulip }, + { "fog" , fa::fog }, + { "folders" , fa::folders }, + { "folder-times" , fa::foldertimes }, + { "folder-tree" , fa::foldertree }, + { "font-case" , fa::fontcase }, + { "football-helmet" , fa::footballhelmet }, + { "forklift" , fa::forklift }, + { "fragile" , fa::fragile }, + { "french-fries" , fa::frenchfries }, + { "frosty-head" , fa::frostyhead }, + { "function" , fa::function }, + { "game-board" , fa::gameboard }, + { "game-board-alt" , fa::gameboardalt }, + { "gas-pump-slash" , fa::gaspumpslash }, + { "gift-card" , fa::giftcard }, + { "gingerbread-man" , fa::gingerbreadman }, + { "glass" , fa::glass }, + { "glass-champagne" , fa::glasschampagne }, + { "glass-citrus" , fa::glasscitrus }, + { "glasses-alt" , fa::glassesalt }, + { "glass-whiskey-rocks" , fa::glasswhiskeyrocks }, + { "globe-snow" , fa::globesnow }, + { "globe-stand" , fa::globestand }, + { "golf-club" , fa::golfclub }, + { "h1" , fa::h1 }, + { "h2" , fa::h2 }, + { "h3" , fa::h3 }, + { "h4" , fa::h4 }, + { "hammer-war" , fa::hammerwar }, + { "hand-heart" , fa::handheart }, + { "hand-holding-box" , fa::handholdingbox }, + { "hand-holding-magic" , fa::handholdingmagic }, + { "hand-holding-seedling" , fa::handholdingseedling }, + { "hand-holding-water" , fa::handholdingwater }, + { "hand-receiving" , fa::handreceiving }, + { "handshake-alt" , fa::handshakealt }, + { "hands-heart" , fa::handsheart }, + { "hands-usd" , fa::handsusd }, + { "hat-chef" , fa::hatchef }, + { "hat-santa" , fa::hatsanta }, + { "hat-winter" , fa::hatwinter }, + { "hat-witch" , fa::hatwitch }, + { "head-side" , fa::headside }, + { "head-side-brain" , fa::headsidebrain }, + { "head-side-medical" , fa::headsidemedical }, + { "head-vr" , fa::headvr }, + { "heart-circle" , fa::heartcircle }, + { "heart-rate" , fa::heartrate }, + { "heart-square" , fa::heartsquare }, + { "helmet-battle" , fa::helmetbattle }, + { "hexagon" , fa::hexagon }, + { "hockey-mask" , fa::hockeymask }, + { "hockey-sticks" , fa::hockeysticks }, + { "home-alt" , fa::homealt }, + { "home-heart" , fa::homeheart }, + { "home-lg" , fa::homelg }, + { "home-lg-alt" , fa::homelgalt }, + { "hood-cloak" , fa::hoodcloak }, + { "horizontal-rule" , fa::horizontalrule }, + { "hospitals" , fa::hospitals }, + { "hospital-user" , fa::hospitaluser }, + { "house-flood" , fa::houseflood }, + { "humidity" , fa::humidity }, + { "hurricane" , fa::hurricane }, + { "ice-skate" , fa::iceskate }, + { "icons-alt" , fa::iconsalt }, + { "inbox-in" , fa::inboxin }, + { "inbox-out" , fa::inboxout }, + { "industry-alt" , fa::industryalt }, + { "info-square" , fa::infosquare }, + { "inhaler" , fa::inhaler }, + { "integral" , fa::integral }, + { "intersection" , fa::intersection }, + { "inventory" , fa::inventory }, + { "island-tropical" , fa::islandtropical }, + { "jack-o-lantern" , fa::jackolantern }, + { "kerning" , fa::kerning }, + { "keynote" , fa::keynote }, + { "key-skeleton" , fa::keyskeleton }, + { "kidneys" , fa::kidneys }, + { "kite" , fa::kite }, + { "knife-kitchen" , fa::knifekitchen }, + { "lambda" , fa::lambda }, + { "lamp" , fa::lamp }, + { "landmark-alt" , fa::landmarkalt }, + { "layer-minus" , fa::layerminus }, + { "layer-plus" , fa::layerplus }, + { "leaf-heart" , fa::leafheart }, + { "leaf-maple" , fa::leafmaple }, + { "leaf-oak" , fa::leafoak }, + { "level-down" , fa::leveldown }, + { "level-up" , fa::levelup }, + { "lightbulb-dollar" , fa::lightbulbdollar }, + { "lightbulb-exclamation" , fa::lightbulbexclamation }, + { "lightbulb-on" , fa::lightbulbon }, + { "lightbulb-slash" , fa::lightbulbslash }, + { "lights-holiday" , fa::lightsholiday }, + { "line-columns" , fa::linecolumns }, + { "line-height" , fa::lineheight }, + { "lips" , fa::lips }, + { "location" , fa::location }, + { "location-circle" , fa::locationcircle }, + { "location-slash" , fa::locationslash }, + { "lock-alt" , fa::lockalt }, + { "lock-open-alt" , fa::lockopenalt }, + { "long-arrow-down" , fa::longarrowdown }, + { "long-arrow-left" , fa::longarrowleft }, + { "long-arrow-right" , fa::longarrowright }, + { "long-arrow-up" , fa::longarrowup }, + { "loveseat" , fa::loveseat }, + { "luchador" , fa::luchador }, + { "lungs" , fa::lungs }, + { "mace" , fa::mace }, + { "mailbox" , fa::mailbox }, + { "mandolin" , fa::mandolin }, + { "map-marker-alt-slash" , fa::mapmarkeraltslash }, + { "map-marker-check" , fa::mapmarkercheck }, + { "map-marker-edit" , fa::mapmarkeredit }, + { "map-marker-exclamation" , fa::mapmarkerexclamation }, + { "map-marker-minus" , fa::mapmarkerminus }, + { "map-marker-plus" , fa::mapmarkerplus }, + { "map-marker-question" , fa::mapmarkerquestion }, + { "map-marker-slash" , fa::mapmarkerslash }, + { "map-marker-smile" , fa::mapmarkersmile }, + { "map-marker-times" , fa::mapmarkertimes }, + { "meat" , fa::meat }, + { "megaphone" , fa::megaphone }, + { "mind-share" , fa::mindshare }, + { "minus-hexagon" , fa::minushexagon }, + { "minus-octagon" , fa::minusoctagon }, + { "mistletoe" , fa::mistletoe }, + { "mobile-android" , fa::mobileandroid }, + { "mobile-android-alt" , fa::mobileandroidalt }, + { "money-check-edit" , fa::moneycheckedit }, + { "money-check-edit-alt" , fa::moneycheckeditalt }, + { "monitor-heart-rate" , fa::monitorheartrate }, + { "monkey" , fa::monkey }, + { "moon-cloud" , fa::mooncloud }, + { "moon-stars" , fa::moonstars }, + { "mountains" , fa::mountains }, + { "mug" , fa::mug }, + { "mug-marshmallows" , fa::mugmarshmallows }, + { "mug-tea" , fa::mugtea }, + { "narwhal" , fa::narwhal }, + { "octagon" , fa::octagon }, + { "oil-temp" , fa::oiltemp }, + { "omega" , fa::omega }, + { "ornament" , fa::ornament }, + { "overline" , fa::overline }, + { "page-break" , fa::pagebreak }, + { "paint-brush-alt" , fa::paintbrushalt }, + { "pallet-alt" , fa::palletalt }, + { "paragraph-rtl" , fa::paragraphrtl }, + { "parking-circle" , fa::parkingcircle }, + { "parking-circle-slash" , fa::parkingcircleslash }, + { "parking-slash" , fa::parkingslash }, + { "paw-alt" , fa::pawalt }, + { "paw-claws" , fa::pawclaws }, + { "pegasus" , fa::pegasus }, + { "pencil" , fa::pencil }, + { "pencil-paintbrush" , fa::pencilpaintbrush }, + { "pennant" , fa::pennant }, + { "person-carry" , fa::personcarry }, + { "person-dolly" , fa::persondolly }, + { "person-dolly-empty" , fa::persondollyempty }, + { "person-sign" , fa::personsign }, + { "phone-laptop" , fa::phonelaptop }, + { "phone-office" , fa::phoneoffice }, + { "phone-plus" , fa::phoneplus }, + { "pi" , fa::pi }, + { "pie" , fa::pie }, + { "pig" , fa::pig }, + { "pizza" , fa::pizza }, + { "plane-alt" , fa::planealt }, + { "plus-hexagon" , fa::plushexagon }, + { "plus-octagon" , fa::plusoctagon }, + { "podium" , fa::podium }, + { "podium-star" , fa::podiumstar }, + { "poll-people" , fa::pollpeople }, + { "popcorn" , fa::popcorn }, + { "presentation" , fa::presentation }, + { "print-search" , fa::printsearch }, + { "print-slash" , fa::printslash }, + { "pumpkin" , fa::pumpkin }, + { "question-square" , fa::questionsquare }, + { "rabbit" , fa::rabbit }, + { "rabbit-fast" , fa::rabbitfast }, + { "racquet" , fa::racquet }, + { "raindrops" , fa::raindrops }, + { "ram" , fa::ram }, + { "ramp-loading" , fa::ramploading }, + { "rectangle-landscape" , fa::rectanglelandscape }, + { "rectangle-portrait" , fa::rectangleportrait }, + { "rectangle-wide" , fa::rectanglewide }, + { "repeat" , fa::repeat }, + { "repeat-1" , fa::repeat1 }, + { "repeat-1-alt" , fa::repeat1alt }, + { "repeat-alt" , fa::repeatalt }, + { "retweet-alt" , fa::retweetalt }, + { "rings-wedding" , fa::ringswedding }, + { "route-highway" , fa::routehighway }, + { "route-interstate" , fa::routeinterstate }, + { "ruler-triangle" , fa::rulertriangle }, + { "rv" , fa::rv }, + { "sack" , fa::sack }, + { "sack-dollar" , fa::sackdollar }, + { "salad" , fa::salad }, + { "sandwich" , fa::sandwich }, + { "sausage" , fa::sausage }, + { "scalpel" , fa::scalpel }, + { "scalpel-path" , fa::scalpelpath }, + { "scanner" , fa::scanner }, + { "scanner-keyboard" , fa::scannerkeyboard }, + { "scanner-touchscreen" , fa::scannertouchscreen }, + { "scarecrow" , fa::scarecrow }, + { "scarf" , fa::scarf }, + { "scroll-old" , fa::scrollold }, + { "scrubber" , fa::scrubber }, + { "scythe" , fa::scythe }, + { "send-back" , fa::sendback }, + { "send-backward" , fa::sendbackward }, + { "share-all" , fa::shareall }, + { "sheep" , fa::sheep }, + { "shield" , fa::shield }, + { "shield-check" , fa::shieldcheck }, + { "shield-cross" , fa::shieldcross }, + { "shipping-timed" , fa::shippingtimed }, + { "shish-kebab" , fa::shishkebab }, + { "shovel" , fa::shovel }, + { "shovel-snow" , fa::shovelsnow }, + { "shredder" , fa::shredder }, + { "shuttlecock" , fa::shuttlecock }, + { "sickle" , fa::sickle }, + { "sigma" , fa::sigma }, + { "signal-1" , fa::signal1 }, + { "signal-2" , fa::signal2 }, + { "signal-3" , fa::signal3 }, + { "signal-4" , fa::signal4 }, + { "signal-alt" , fa::signalalt }, + { "signal-alt-1" , fa::signalalt1 }, + { "signal-alt-2" , fa::signalalt2 }, + { "signal-alt-3" , fa::signalalt3 }, + { "signal-alt-slash" , fa::signalaltslash }, + { "signal-slash" , fa::signalslash }, + { "sign-in" , fa::signin }, + { "sign-out" , fa::signout }, + { "skeleton" , fa::skeleton }, + { "ski-jump" , fa::skijump }, + { "ski-lift" , fa::skilift }, + { "sledding" , fa::sledding }, + { "sliders-h-square" , fa::slidershsquare }, + { "sliders-v" , fa::slidersv }, + { "sliders-v-square" , fa::slidersvsquare }, + { "smile-plus" , fa::smileplus }, + { "smoke" , fa::smoke }, + { "snake" , fa::snake }, + { "snooze" , fa::snooze }, + { "snow-blowing" , fa::snowblowing }, + { "snowflakes" , fa::snowflakes }, + { "snowmobile" , fa::snowmobile }, + { "sort-alt" , fa::sortalt }, + { "sort-shapes-down" , fa::sortshapesdown }, + { "sort-shapes-down-alt" , fa::sortshapesdownalt }, + { "sort-shapes-up" , fa::sortshapesup }, + { "sort-shapes-up-alt" , fa::sortshapesupalt }, + { "sort-size-down" , fa::sortsizedown }, + { "sort-size-down-alt" , fa::sortsizedownalt }, + { "sort-size-up" , fa::sortsizeup }, + { "sort-size-up-alt" , fa::sortsizeupalt }, + { "soup" , fa::soup }, + { "spade" , fa::spade }, + { "sparkles" , fa::sparkles }, + { "spider-black-widow" , fa::spiderblackwidow }, + { "spider-web" , fa::spiderweb }, + { "spinner-third" , fa::spinnerthird }, + { "square-root" , fa::squareroot }, + { "squirrel" , fa::squirrel }, + { "staff" , fa::staff }, + { "star-christmas" , fa::starchristmas }, + { "star-exclamation" , fa::starexclamation }, + { "stars" , fa::stars }, + { "steak" , fa::steak }, + { "steering-wheel" , fa::steeringwheel }, + { "stocking" , fa::stocking }, + { "stomach" , fa::stomach }, + { "stretcher" , fa::stretcher }, + { "sun-cloud" , fa::suncloud }, + { "sun-dust" , fa::sundust }, + { "sunglasses" , fa::sunglasses }, + { "sun-haze" , fa::sunhaze }, + { "sunrise" , fa::sunrise }, + { "sunset" , fa::sunset }, + { "sword" , fa::sword }, + { "swords" , fa::swords }, + { "tablet-android" , fa::tabletandroid }, + { "tablet-android-alt" , fa::tabletandroidalt }, + { "tablet-rugged" , fa::tabletrugged }, + { "tachometer" , fa::tachometer }, + { "tachometer-alt-average" , fa::tachometeraltaverage }, + { "tachometer-alt-fast" , fa::tachometeraltfast }, + { "tachometer-alt-fastest" , fa::tachometeraltfastest }, + { "tachometer-alt-slow" , fa::tachometeraltslow }, + { "tachometer-alt-slowest" , fa::tachometeraltslowest }, + { "tachometer-average" , fa::tachometeraverage }, + { "tachometer-fast" , fa::tachometerfast }, + { "tachometer-fastest" , fa::tachometerfastest }, + { "tachometer-slow" , fa::tachometerslow }, + { "tachometer-slowest" , fa::tachometerslowest }, + { "taco" , fa::taco }, + { "tally" , fa::tally }, + { "tanakh" , fa::tanakh }, + { "tasks-alt" , fa::tasksalt }, + { "temperature-frigid" , fa::temperaturefrigid }, + { "temperature-hot" , fa::temperaturehot }, + { "tennis-ball" , fa::tennisball }, + { "text" , fa::text }, + { "text-size" , fa::textsize }, + { "theta" , fa::theta }, + { "thunderstorm" , fa::thunderstorm }, + { "thunderstorm-moon" , fa::thunderstormmoon }, + { "thunderstorm-sun" , fa::thunderstormsun }, + { "ticket" , fa::ticket }, + { "tilde" , fa::tilde }, + { "times-hexagon" , fa::timeshexagon }, + { "times-octagon" , fa::timesoctagon }, + { "times-square" , fa::timessquare }, + { "tire" , fa::tire }, + { "tire-flat" , fa::tireflat }, + { "tire-pressure-warning" , fa::tirepressurewarning }, + { "tire-rugged" , fa::tirerugged }, + { "toilet-paper-alt" , fa::toiletpaperalt }, + { "tombstone" , fa::tombstone }, + { "tombstone-alt" , fa::tombstonealt }, + { "toothbrush" , fa::toothbrush }, + { "tornado" , fa::tornado }, + { "traffic-cone" , fa::trafficcone }, + { "traffic-light-go" , fa::trafficlightgo }, + { "traffic-light-slow" , fa::trafficlightslow }, + { "traffic-light-stop" , fa::trafficlightstop }, + { "trash-undo" , fa::trashundo }, + { "trash-undo-alt" , fa::trashundoalt }, + { "treasure-chest" , fa::treasurechest }, + { "tree-alt" , fa::treealt }, + { "tree-christmas" , fa::treechristmas }, + { "tree-decorated" , fa::treedecorated }, + { "tree-large" , fa::treelarge }, + { "tree-palm" , fa::treepalm }, + { "trees" , fa::trees }, + { "triangle" , fa::triangle }, + { "trophy-alt" , fa::trophyalt }, + { "truck-container" , fa::truckcontainer }, + { "truck-couch" , fa::truckcouch }, + { "truck-plow" , fa::truckplow }, + { "truck-ramp" , fa::truckramp }, + { "turkey" , fa::turkey }, + { "turtle" , fa::turtle }, + { "tv-retro" , fa::tvretro }, + { "unicorn" , fa::unicorn }, + { "union" , fa::unionp }, + { "usd-circle" , fa::usdcircle }, + { "usd-square" , fa::usdsquare }, + { "user-chart" , fa::userchart }, + { "user-crown" , fa::usercrown }, + { "user-hard-hat" , fa::userhardhat }, + { "user-headset" , fa::userheadset }, + { "user-md-chat" , fa::usermdchat }, + { "users-class" , fa::usersclass }, + { "users-crown" , fa::userscrown }, + { "users-medical" , fa::usersmedical }, + { "utensil-fork" , fa::utensilfork }, + { "utensil-knife" , fa::utensilknife }, + { "utensils-alt" , fa::utensilsalt }, + { "value-absolute" , fa::valueabsolute }, + { "video-plus" , fa::videoplus }, + { "volcano" , fa::volcano }, + { "volume" , fa::volume }, + { "volume-slash" , fa::volumeslash }, + { "vote-nay" , fa::votenay }, + { "walker" , fa::walker }, + { "wand" , fa::wand }, + { "wand-magic" , fa::wandmagic }, + { "warehouse-alt" , fa::warehousealt }, + { "washer" , fa::washer }, + { "watch" , fa::watch }, + { "watch-fitness" , fa::watchfitness }, + { "water-lower" , fa::waterlower }, + { "water-rise" , fa::waterrise }, + { "wave-sine" , fa::wavesine }, + { "wave-triangle" , fa::wavetriangle }, + { "webcam" , fa::webcam }, + { "webcam-slash" , fa::webcamslash }, + { "whale" , fa::whale }, + { "wheat" , fa::wheat }, + { "whistle" , fa::whistle }, + { "wifi-1" , fa::wifi1 }, + { "wifi-2" , fa::wifi2 }, + { "wifi-slash" , fa::wifislash }, + { "window" , fa::window }, + { "window-alt" , fa::windowalt }, + { "windsock" , fa::windsock }, + { "wind-turbine" , fa::windturbine }, + { "wind-warning" , fa::windwarning }, + { "wreath" , fa::wreath } +}; +#endif +static const FANameIcon faCommonIconArray[] = { + { "address-book" , fa::addressbook }, //First free-regular icon + { "address-card" , fa::addresscard }, + { "angry" , fa::angry }, + { "arrow-alt-circle-down" , fa::arrowaltcircledown }, + { "arrow-alt-circle-left" , fa::arrowaltcircleleft }, + { "arrow-alt-circle-right" , fa::arrowaltcircleright }, + { "arrow-alt-circle-up" , fa::arrowaltcircleup }, + { "bell" , fa::bell }, + { "bell-slash" , fa::bellslash }, + { "bookmark" , fa::bookmark }, + { "building" , fa::building }, + { "calendar" , fa::calendar }, + { "calendar-alt" , fa::calendaralt }, + { "calendar-check" , fa::calendarcheck }, + { "calendar-minus" , fa::calendarminus }, + { "calendar-plus" , fa::calendarplus }, + { "calendar-times" , fa::calendartimes }, + { "caret-square-down" , fa::caretsquaredown }, + { "caret-square-left" , fa::caretsquareleft }, + { "caret-square-right" , fa::caretsquareright }, + { "caret-square-up" , fa::caretsquareup }, + { "chart-bar" , fa::chartbar }, + { "check-circle" , fa::checkcircle }, + { "check-square" , fa::checksquare }, + { "circle" , fa::circle }, + { "clipboard" , fa::clipboard }, + { "clock" , fa::clock }, + { "clone" , fa::clone }, + { "closed-captioning" , fa::closedcaptioning }, + { "comment" , fa::comment }, + { "comment-alt" , fa::commentalt }, + { "comment-dots" , fa::commentdots }, + { "comments" , fa::comments }, + { "compass" , fa::compass }, + { "copy" , fa::copy }, + { "copyright" , fa::copyright }, + { "credit-card" , fa::creditcard }, + { "dizzy" , fa::dizzy }, + { "dot-circle" , fa::dotcircle }, + { "edit" , fa::edit }, + { "envelope" , fa::envelope }, + { "envelope-open" , fa::envelopeopen }, + { "eye" , fa::eye }, + { "eye-slash" , fa::eyeslash }, + { "file" , fa::file }, + { "file-alt" , fa::filealt }, + { "file-archive" , fa::filearchive }, + { "file-audio" , fa::fileaudio }, + { "file-code" , fa::filecode }, + { "file-excel" , fa::fileexcel }, + { "file-image" , fa::fileimage }, + { "file-pdf" , fa::filepdf }, + { "file-powerpoint" , fa::filepowerpoint }, + { "file-video" , fa::filevideo }, + { "file-word" , fa::fileword }, + { "flag" , fa::flag }, + { "flushed" , fa::flushed }, + { "folder" , fa::folder }, + { "folder-open" , fa::folderopen }, + { "frown" , fa::frown }, + { "frown-open" , fa::frownopen }, + { "futbol" , fa::futbol }, + { "gem" , fa::gem }, + { "grimace" , fa::grimace }, + { "grin" , fa::grin }, + { "grin-alt" , fa::grinalt }, + { "grin-beam" , fa::grinbeam }, + { "grin-beam-sweat" , fa::grinbeamsweat }, + { "grin-hearts" , fa::grinhearts }, + { "grin-squint" , fa::grinsquint }, + { "grin-squint-tears" , fa::grinsquinttears }, + { "grin-stars" , fa::grinstars }, + { "grin-tears" , fa::grintears }, + { "grin-tongue" , fa::grintongue }, + { "grin-tongue-squint" , fa::grintonguesquint }, + { "grin-tongue-wink" , fa::grintonguewink }, + { "grin-wink" , fa::grinwink }, + { "hand-lizard" , fa::handlizard }, + { "hand-paper" , fa::handpaper }, + { "hand-peace" , fa::handpeace }, + { "hand-point-down" , fa::handpointdown }, + { "hand-point-left" , fa::handpointleft }, + { "hand-point-right" , fa::handpointright }, + { "hand-point-up" , fa::handpointup }, + { "hand-pointer" , fa::handpointer }, + { "hand-rock" , fa::handrock }, + { "hand-scissors" , fa::handscissors }, + { "hand-spock" , fa::handspock }, + { "handshake" , fa::handshake }, + { "hdd" , fa::hdd }, + { "heart" , fa::heart }, + { "hospital" , fa::hospital }, + { "hourglass" , fa::hourglass }, + { "id-badge" , fa::idbadge }, + { "id-card" , fa::idcard }, + { "image" , fa::image }, + { "images" , fa::images }, + { "keyboard" , fa::keyboard }, + { "kiss" , fa::kiss }, + { "kiss-beam" , fa::kissbeam }, + { "kiss-wink-heart" , fa::kisswinkheart }, + { "laugh" , fa::laugh }, + { "laugh-beam" , fa::laughbeam }, + { "laugh-squint" , fa::laughsquint }, + { "laugh-wink" , fa::laughwink }, + { "lemon" , fa::lemon }, + { "life-ring" , fa::lifering }, + { "lightbulb" , fa::lightbulb }, + { "list-alt" , fa::listalt }, + { "map" , fa::map }, + { "meh" , fa::meh }, + { "meh-blank" , fa::mehblank }, + { "meh-rolling-eyes" , fa::mehrollingeyes }, + { "minus-square" , fa::minussquare }, + { "money-bill-alt" , fa::moneybillalt }, + { "moon" , fa::moon }, + { "newspaper" , fa::newspaper }, + { "object-group" , fa::objectgroup }, + { "object-ungroup" , fa::objectungroup }, + { "paper-plane" , fa::paperplane }, + { "pause-circle" , fa::pausecircle }, + { "play-circle" , fa::playcircle }, + { "plus-square" , fa::plussquare }, + { "question-circle" , fa::questioncircle }, + { "registered" , fa::registered }, + { "sad-cry" , fa::sadcry }, + { "sad-tear" , fa::sadtear }, + { "save" , fa::save }, + { "share-square" , fa::sharesquare }, + { "smile" , fa::smile }, + { "smile-beam" , fa::smilebeam }, + { "smile-wink" , fa::smilewink }, + { "snowflake" , fa::snowflake }, + { "square" , fa::square }, + { "star" , fa::star }, + { "star-half" , fa::starhalf }, + { "sticky-note" , fa::stickynote }, + { "stop-circle" , fa::stopcircle }, + { "sun" , fa::sun }, + { "surprise" , fa::surprise }, + { "thumbs-down" , fa::thumbsdown }, + { "thumbs-up" , fa::thumbsup }, + { "times-circle" , fa::timescircle }, + { "tired" , fa::tired }, + { "trash-alt" , fa::trashalt }, + { "user" , fa::user }, + { "user-circle" , fa::usercircle }, + { "window-close" , fa::windowclose }, + { "window-maximize" , fa::windowmaximize }, + { "window-minimize" , fa::windowminimize }, + { "window-restore" , fa::windowrestore }, //last free-regular icon + { "ad" , fa::ad }, + { "adjust" , fa::adjust }, + { "air-freshener" , fa::airfreshener }, + { "align-center" , fa::aligncenter }, + { "align-justify" , fa::alignjustify }, + { "align-left" , fa::alignleft }, + { "align-right" , fa::alignright }, + { "allergies" , fa::allergies }, + { "ambulance" , fa::ambulance }, + { "american-sign-language-interpreting" , fa::americansignlanguageinterpreting }, + { "anchor" , fa::anchor }, + { "angle-double-down" , fa::angledoubledown }, + { "angle-double-left" , fa::angledoubleleft }, + { "angle-double-right" , fa::angledoubleright }, + { "angle-double-up" , fa::angledoubleup }, + { "angle-down" , fa::angledown }, + { "angle-left" , fa::angleleft }, + { "angle-right" , fa::angleright }, + { "angle-up" , fa::angleup }, + { "ankh" , fa::ankh }, + { "apple-alt" , fa::applealt }, + { "archive" , fa::archive }, + { "archway" , fa::archway }, + { "arrow-circle-down" , fa::arrowcircledown }, + { "arrow-circle-left" , fa::arrowcircleleft }, + { "arrow-circle-right" , fa::arrowcircleright }, + { "arrow-circle-up" , fa::arrowcircleup }, + { "arrow-down" , fa::arrowdown }, + { "arrow-left" , fa::arrowleft }, + { "arrow-right" , fa::arrowright }, + { "arrows-alt" , fa::arrowsalt }, + { "arrows-alt-h" , fa::arrowsalth }, + { "arrows-alt-v" , fa::arrowsaltv }, + { "arrow-up" , fa::arrowup }, + { "assistive-listening-systems" , fa::assistivelisteningsystems }, + { "asterisk" , fa::asterisk }, + { "at" , fa::at }, + { "atlas" , fa::atlas }, + { "atom" , fa::atom }, + { "audio-description" , fa::audiodescription }, + { "award" , fa::award }, + { "baby" , fa::baby }, + { "baby-carriage" , fa::babycarriage }, + { "backspace" , fa::backspace }, + { "backward" , fa::backward }, + { "bacon" , fa::bacon }, + { "balance-scale" , fa::balancescale }, + { "balance-scale-left" , fa::balancescaleleft }, + { "balance-scale-right" , fa::balancescaleright }, + { "ban" , fa::ban }, + { "band-aid" , fa::bandaid }, + { "barcode" , fa::barcode }, + { "bars" , fa::bars }, + { "baseball-ball" , fa::baseballball }, + { "basketball-ball" , fa::basketballball }, + { "bath" , fa::bath }, + { "battery-empty" , fa::batteryempty }, + { "battery-full" , fa::batteryfull }, + { "battery-half" , fa::batteryhalf }, + { "battery-quarter" , fa::batteryquarter }, + { "battery-three-quarters" , fa::batterythreequarters }, + { "bed" , fa::bed }, + { "beer" , fa::beer }, + { "bezier-curve" , fa::beziercurve }, + { "bible" , fa::bible }, + { "bicycle" , fa::bicycle }, + { "biking" , fa::biking }, + { "binoculars" , fa::binoculars }, + { "biohazard" , fa::biohazard }, + { "birthday-cake" , fa::birthdaycake }, + { "blender" , fa::blender }, + { "blender-phone" , fa::blenderphone }, + { "blind" , fa::blind }, + { "blog" , fa::blog }, + { "bold" , fa::bold }, + { "bolt" , fa::bolt }, + { "bomb" , fa::bomb }, + { "bone" , fa::bone }, + { "bong" , fa::bong }, + { "book" , fa::book }, + { "book-dead" , fa::bookdead }, + { "book-medical" , fa::bookmedical }, + { "book-open" , fa::bookopen }, + { "book-reader" , fa::bookreader }, + { "border-all" , fa::borderall }, + { "border-none" , fa::bordernone }, + { "border-style" , fa::borderstyle }, + { "bowling-ball" , fa::bowlingball }, + { "box" , fa::box }, + { "boxes" , fa::boxes }, + { "box-open" , fa::boxopen }, + { "braille" , fa::braille }, + { "brain" , fa::brain }, + { "bread-slice" , fa::breadslice }, + { "briefcase" , fa::briefcase }, + { "briefcase-medical" , fa::briefcasemedical }, + { "broadcast-tower" , fa::broadcasttower }, + { "broom" , fa::broom }, + { "brush" , fa::brush }, + { "bug" , fa::bug }, + { "bullhorn" , fa::bullhorn }, + { "bullseye" , fa::bullseye }, + { "burn" , fa::burn }, + { "bus" , fa::bus }, + { "bus-alt" , fa::busalt }, + { "business-time" , fa::businesstime }, + { "calculator" , fa::calculator }, + { "calendar-day" , fa::calendarday }, + { "calendar-week" , fa::calendarweek }, + { "camera" , fa::camera }, + { "camera-retro" , fa::cameraretro }, + { "campground" , fa::campground }, + { "candy-cane" , fa::candycane }, + { "cannabis" , fa::cannabis }, + { "capsules" , fa::capsules }, + { "car" , fa::car }, + { "car-alt" , fa::caralt }, + { "car-battery" , fa::carbattery }, + { "car-crash" , fa::carcrash }, + { "caret-down" , fa::caretdown }, + { "caret-left" , fa::caretleft }, + { "caret-right" , fa::caretright }, + { "caret-up" , fa::caretup }, + { "carrot" , fa::carrot }, + { "car-side" , fa::carside }, + { "cart-arrow-down" , fa::cartarrowdown }, + { "cart-plus" , fa::cartplus }, + { "cash-register" , fa::cashregister }, + { "cat" , fa::cat }, + { "certificate" , fa::certificate }, + { "chair" , fa::chair }, + { "chalkboard" , fa::chalkboard }, + { "chalkboard-teacher" , fa::chalkboardteacher }, + { "charging-station" , fa::chargingstation }, + { "chart-area" , fa::chartarea }, + { "chart-line" , fa::chartline }, + { "chart-pie" , fa::chartpie }, + { "check" , fa::check }, + { "check-double" , fa::checkdouble }, + { "cheese" , fa::cheese }, + { "chess" , fa::chess }, + { "chess-bishop" , fa::chessbishop }, + { "chess-board" , fa::chessboard }, + { "chess-king" , fa::chessking }, + { "chess-knight" , fa::chessknight }, + { "chess-pawn" , fa::chesspawn }, + { "chess-queen" , fa::chessqueen }, + { "chess-rook" , fa::chessrook }, + { "chevron-circle-down" , fa::chevroncircledown }, + { "chevron-circle-left" , fa::chevroncircleleft }, + { "chevron-circle-right" , fa::chevroncircleright }, + { "chevron-circle-up" , fa::chevroncircleup }, + { "chevron-down" , fa::chevrondown }, + { "chevron-left" , fa::chevronleft }, + { "chevron-right" , fa::chevronright }, + { "chevron-up" , fa::chevronup }, + { "child" , fa::child }, + { "church" , fa::church }, + { "circle-notch" , fa::circlenotch }, + { "city" , fa::city }, + { "clinic-medical" , fa::clinicmedical }, + { "clipboard-check" , fa::clipboardcheck }, + { "clipboard-list" , fa::clipboardlist }, + { "cloud" , fa::cloud }, + { "cloud-download-alt" , fa::clouddownloadalt }, + { "cloud-meatball" , fa::cloudmeatball }, + { "cloud-moon" , fa::cloudmoon }, + { "cloud-moon-rain" , fa::cloudmoonrain }, + { "cloud-rain" , fa::cloudrain }, + { "cloud-showers-heavy" , fa::cloudshowersheavy }, + { "cloud-sun" , fa::cloudsun }, + { "cloud-sun-rain" , fa::cloudsunrain }, + { "cloud-upload-alt" , fa::clouduploadalt }, + { "cocktail" , fa::cocktail }, + { "code" , fa::code }, + { "code-branch" , fa::codebranch }, + { "coffee" , fa::coffee }, + { "cog" , fa::cog }, + { "cogs" , fa::cogs }, + { "coins" , fa::coins }, + { "columns" , fa::columns }, + { "comment-dollar" , fa::commentdollar }, + { "comment-medical" , fa::commentmedical }, + { "comments-dollar" , fa::commentsdollar }, + { "comment-slash" , fa::commentslash }, + { "compact-disc" , fa::compactdisc }, + { "compress" , fa::compress }, + { "compress-arrows-alt" , fa::compressarrowsalt }, + { "concierge-bell" , fa::conciergebell }, + { "cookie" , fa::cookie }, + { "cookie-bite" , fa::cookiebite }, + { "couch" , fa::couch }, + { "crop" , fa::crop }, + { "crop-alt" , fa::cropalt }, + { "cross" , fa::cross }, + { "crosshairs" , fa::crosshairs }, + { "crow" , fa::crow }, + { "crown" , fa::crown }, + { "crutch" , fa::crutch }, + { "cube" , fa::cube }, + { "cubes" , fa::cubes }, + { "cut" , fa::cut }, + { "database" , fa::database }, + { "deaf" , fa::deaf }, + { "democrat" , fa::democrat }, + { "desktop" , fa::desktop }, + { "dharmachakra" , fa::dharmachakra }, + { "diagnoses" , fa::diagnoses }, + { "dice" , fa::dice }, + { "dice-d20" , fa::diced20 }, + { "dice-d6" , fa::diced6 }, + { "dice-five" , fa::dicefive }, + { "dice-four" , fa::dicefour }, + { "dice-one" , fa::diceone }, + { "dice-six" , fa::dicesix }, + { "dice-three" , fa::dicethree }, + { "dice-two" , fa::dicetwo }, + { "digital-tachograph" , fa::digitaltachograph }, + { "directions" , fa::directions }, + { "divide" , fa::divide }, + { "dna" , fa::dna }, + { "dog" , fa::dog }, + { "dollar-sign" , fa::dollarsign }, + { "dolly" , fa::dolly }, + { "dolly-flatbed" , fa::dollyflatbed }, + { "donate" , fa::donate }, + { "door-closed" , fa::doorclosed }, + { "door-open" , fa::dooropen }, + { "dove" , fa::dove }, + { "download" , fa::download }, + { "drafting-compass" , fa::draftingcompass }, + { "dragon" , fa::dragon }, + { "draw-polygon" , fa::drawpolygon }, + { "drum" , fa::drum }, + { "drum-steelpan" , fa::drumsteelpan }, + { "drumstick-bite" , fa::drumstickbite }, + { "dumbbell" , fa::dumbbell }, + { "dumpster" , fa::dumpster }, + { "dumpster-fire" , fa::dumpsterfire }, + { "dungeon" , fa::dungeon }, + { "egg" , fa::egg }, + { "eject" , fa::eject }, + { "ellipsis-h" , fa::ellipsish }, + { "ellipsis-v" , fa::ellipsisv }, + { "envelope-open-text" , fa::envelopeopentext }, + { "envelope-square" , fa::envelopesquare }, + { "equals" , fa::equals }, + { "eraser" , fa::eraser }, + { "ethernet" , fa::ethernet }, + { "euro-sign" , fa::eurosign }, + { "exchange-alt" , fa::exchangealt }, + { "exclamation" , fa::exclamation }, + { "exclamation-circle" , fa::exclamationcircle }, + { "exclamation-triangle" , fa::exclamationtriangle }, + { "expand" , fa::expand }, + { "expand-arrows-alt" , fa::expandarrowsalt }, + { "external-link-alt" , fa::externallinkalt }, + { "external-link-square-alt" , fa::externallinksquarealt }, + { "eye-dropper" , fa::eyedropper }, + { "fan" , fa::fan }, + { "fast-backward" , fa::fastbackward }, + { "fast-forward" , fa::fastforward }, + { "fax" , fa::fax }, + { "feather" , fa::feather }, + { "feather-alt" , fa::featheralt }, + { "female" , fa::female }, + { "fighter-jet" , fa::fighterjet }, + { "file-contract" , fa::filecontract }, + { "file-csv" , fa::filecsv }, + { "file-download" , fa::filedownload }, + { "file-export" , fa::fileexport }, + { "file-import" , fa::fileimport }, + { "file-invoice" , fa::fileinvoice }, + { "file-invoice-dollar" , fa::fileinvoicedollar }, + { "file-medical" , fa::filemedical }, + { "file-medical-alt" , fa::filemedicalalt }, + { "file-prescription" , fa::fileprescription }, + { "file-signature" , fa::filesignature }, + { "file-upload" , fa::fileupload }, + { "fill" , fa::fill }, + { "fill-drip" , fa::filldrip }, + { "film" , fa::film }, + { "filter" , fa::filter }, + { "fingerprint" , fa::fingerprint }, + { "fire" , fa::fire }, + { "fire-alt" , fa::firealt }, + { "fire-extinguisher" , fa::fireextinguisher }, + { "first-aid" , fa::firstaid }, + { "fish" , fa::fish }, + { "fist-raised" , fa::fistraised }, + { "flag-checkered" , fa::flagcheckered }, + { "flag-usa" , fa::flagusa }, + { "flask" , fa::flask }, + { "folder-minus" , fa::folderminus }, + { "folder-plus" , fa::folderplus }, + { "font" , fa::font }, + { "football-ball" , fa::footballball }, + { "forward" , fa::forward }, + { "frog" , fa::frog }, + { "funnel-dollar" , fa::funneldollar }, + { "gamepad" , fa::gamepad }, + { "gas-pump" , fa::gaspump }, + { "gavel" , fa::gavel }, + { "genderless" , fa::genderless }, + { "ghost" , fa::ghost }, + { "gift" , fa::gift }, + { "gifts" , fa::gifts }, + { "glass-cheers" , fa::glasscheers }, + { "glasses" , fa::glasses }, + { "glass-martini" , fa::glassmartini }, + { "glass-martini-alt" , fa::glassmartinialt }, + { "glass-whiskey" , fa::glasswhiskey }, + { "globe" , fa::globe }, + { "globe-africa" , fa::globeafrica }, + { "globe-americas" , fa::globeamericas }, + { "globe-asia" , fa::globeasia }, + { "globe-europe" , fa::globeeurope }, + { "golf-ball" , fa::golfball }, + { "gopuram" , fa::gopuram }, + { "graduation-cap" , fa::graduationcap }, + { "greater-than" , fa::greaterthan }, + { "greater-than-equal" , fa::greaterthanequal }, + { "grip-horizontal" , fa::griphorizontal }, + { "grip-lines" , fa::griplines }, + { "grip-lines-vertical" , fa::griplinesvertical }, + { "grip-vertical" , fa::gripvertical }, + { "guitar" , fa::guitar }, + { "hamburger" , fa::hamburger }, + { "hammer" , fa::hammer }, + { "hamsa" , fa::hamsa }, + { "hand-holding" , fa::handholding }, + { "hand-holding-heart" , fa::handholdingheart }, + { "hand-holding-usd" , fa::handholdingusd }, + { "hand-middle-finger" , fa::handmiddlefinger }, + { "hands" , fa::hands }, + { "hands-helping" , fa::handshelping }, + { "hanukiah" , fa::hanukiah }, + { "hard-hat" , fa::hardhat }, + { "hashtag" , fa::hashtag }, + { "hat-wizard" , fa::hatwizard }, + { "haykal" , fa::haykal }, + { "heading" , fa::heading }, + { "headphones" , fa::headphones }, + { "headphones-alt" , fa::headphonesalt }, + { "headset" , fa::headset }, + { "heartbeat" , fa::heartbeat }, + { "heart-broken" , fa::heartbroken }, + { "helicopter" , fa::helicopter }, + { "highlighter" , fa::highlighter }, + { "hiking" , fa::hiking }, + { "hippo" , fa::hippo }, + { "history" , fa::history }, + { "hockey-puck" , fa::hockeypuck }, + { "holly-berry" , fa::hollyberry }, + { "home" , fa::home }, + { "horse" , fa::horse }, + { "horse-head" , fa::horsehead }, + { "hospital-alt" , fa::hospitalalt }, + { "hospital-symbol" , fa::hospitalsymbol }, + { "hotdog" , fa::hotdog }, + { "hotel" , fa::hotel }, + { "hot-tub" , fa::hottub }, + { "hourglass-end" , fa::hourglassend }, + { "hourglass-half" , fa::hourglasshalf }, + { "hourglass-start" , fa::hourglassstart }, + { "house-damage" , fa::housedamage }, + { "hryvnia" , fa::hryvnia }, + { "h-square" , fa::hsquare }, + { "ice-cream" , fa::icecream }, + { "icicles" , fa::icicles }, + { "icons" , fa::icons }, + { "i-cursor" , fa::icursor }, + { "id-card-alt" , fa::idcardalt }, + { "igloo" , fa::igloo }, + { "inbox" , fa::inbox }, + { "indent" , fa::indent }, + { "industry" , fa::industry }, + { "infinity" , fa::infinity }, + { "info" , fa::info }, + { "info-circle" , fa::infocircle }, + { "italic" , fa::italic }, + { "jedi" , fa::jedi }, + { "joint" , fa::joint }, + { "journal-whills" , fa::journalwhills }, + { "kaaba" , fa::kaaba }, + { "key" , fa::key }, + { "khanda" , fa::khanda }, + { "kiwi-bird" , fa::kiwibird }, + { "landmark" , fa::landmark }, + { "language" , fa::language }, + { "laptop" , fa::laptop }, + { "laptop-code" , fa::laptopcode }, + { "laptop-medical" , fa::laptopmedical }, + { "layer-group" , fa::layergroup }, + { "leaf" , fa::leaf }, + { "less-than" , fa::lessthan }, + { "less-than-equal" , fa::lessthanequal }, + { "level-down-alt" , fa::leveldownalt }, + { "level-up-alt" , fa::levelupalt }, + { "link" , fa::link }, + { "lira-sign" , fa::lirasign }, + { "list" , fa::list }, + { "list-ol" , fa::listol }, + { "list-ul" , fa::listul }, + { "location-arrow" , fa::locationarrow }, + { "lock" , fa::lock }, + { "lock-open" , fa::lockopen }, + { "long-arrow-alt-down" , fa::longarrowaltdown }, + { "long-arrow-alt-left" , fa::longarrowaltleft }, + { "long-arrow-alt-right" , fa::longarrowaltright }, + { "long-arrow-alt-up" , fa::longarrowaltup }, + { "low-vision" , fa::lowvision }, + { "luggage-cart" , fa::luggagecart }, + { "magic" , fa::magic }, + { "magnet" , fa::magnet }, + { "mail-bulk" , fa::mailbulk }, + { "male" , fa::male }, + { "map-marked" , fa::mapmarked }, + { "map-marked-alt" , fa::mapmarkedalt }, + { "map-marker" , fa::mapmarker }, + { "map-marker-alt" , fa::mapmarkeralt }, + { "map-pin" , fa::mappin }, + { "map-signs" , fa::mapsigns }, + { "marker" , fa::marker }, + { "mars" , fa::mars }, + { "mars-double" , fa::marsdouble }, + { "mars-stroke" , fa::marsstroke }, + { "mars-stroke-h" , fa::marsstrokeh }, + { "mars-stroke-v" , fa::marsstrokev }, + { "mask" , fa::mask }, + { "medal" , fa::medal }, + { "medkit" , fa::medkit }, + { "memory" , fa::memory }, + { "menorah" , fa::menorah }, + { "mercury" , fa::mercury }, + { "meteor" , fa::meteor }, + { "microchip" , fa::microchip }, + { "microphone" , fa::microphone }, + { "microphone-alt" , fa::microphonealt }, + { "microphone-alt-slash" , fa::microphonealtslash }, + { "microphone-slash" , fa::microphoneslash }, + { "microscope" , fa::microscope }, + { "minus" , fa::minus }, + { "minus-circle" , fa::minuscircle }, + { "mitten" , fa::mitten }, + { "mobile" , fa::mobile }, + { "mobile-alt" , fa::mobilealt }, + { "money-bill" , fa::moneybill }, + { "money-bill-wave" , fa::moneybillwave }, + { "money-bill-wave-alt" , fa::moneybillwavealt }, + { "money-check" , fa::moneycheck }, + { "money-check-alt" , fa::moneycheckalt }, + { "monument" , fa::monument }, + { "mortar-pestle" , fa::mortarpestle }, + { "mosque" , fa::mosque }, + { "motorcycle" , fa::motorcycle }, + { "mountain" , fa::mountain }, + { "mouse-pointer" , fa::mousepointer }, + { "mug-hot" , fa::mughot }, + { "music" , fa::music }, + { "network-wired" , fa::networkwired }, + { "neuter" , fa::neuter }, + { "not-equal" , fa::notequal }, + { "notes-medical" , fa::notesmedical }, + { "oil-can" , fa::oilcan }, + { "om" , fa::om }, + { "otter" , fa::otter }, + { "outdent" , fa::outdent }, + { "pager" , fa::pager }, + { "paint-brush" , fa::paintbrush }, + { "paint-roller" , fa::paintroller }, + { "palette" , fa::palette }, + { "pallet" , fa::pallet }, + { "paperclip" , fa::paperclip }, + { "parachute-box" , fa::parachutebox }, + { "paragraph" , fa::paragraph }, + { "parking" , fa::parking }, + { "passport" , fa::passport }, + { "pastafarianism" , fa::pastafarianism }, + { "paste" , fa::paste }, + { "pause" , fa::pause }, + { "paw" , fa::paw }, + { "peace" , fa::peace }, + { "pen" , fa::pen }, + { "pen-alt" , fa::penalt }, + { "pencil-alt" , fa::pencilalt }, + { "pencil-ruler" , fa::pencilruler }, + { "pen-fancy" , fa::penfancy }, + { "pen-nib" , fa::pennib }, + { "pen-square" , fa::pensquare }, + { "people-carry" , fa::peoplecarry }, + { "pepper-hot" , fa::pepperhot }, + { "percent" , fa::percent }, + { "percentage" , fa::percentage }, + { "person-booth" , fa::personbooth }, + { "phone" , fa::phone }, + { "phone-alt" , fa::phonealt }, + { "phone-slash" , fa::phoneslash }, + { "phone-square" , fa::phonesquare }, + { "phone-square-alt" , fa::phonesquarealt }, + { "phone-volume" , fa::phonevolume }, + { "photo-video" , fa::photovideo }, + { "piggy-bank" , fa::piggybank }, + { "pills" , fa::pills }, + { "pizza-slice" , fa::pizzaslice }, + { "place-of-worship" , fa::placeofworship }, + { "plane" , fa::plane }, + { "plane-arrival" , fa::planearrival }, + { "plane-departure" , fa::planedeparture }, + { "play" , fa::play }, + { "plug" , fa::plug }, + { "plus" , fa::plus }, + { "plus-circle" , fa::pluscircle }, + { "podcast" , fa::podcast }, + { "poll" , fa::poll }, + { "poll-h" , fa::pollh }, + { "poo" , fa::poo }, + { "poop" , fa::poop }, + { "poo-storm" , fa::poostorm }, + { "portrait" , fa::portrait }, + { "pound-sign" , fa::poundsign }, + { "power-off" , fa::poweroff }, + { "pray" , fa::pray }, + { "praying-hands" , fa::prayinghands }, + { "prescription" , fa::prescription }, + { "prescription-bottle" , fa::prescriptionbottle }, + { "prescription-bottle-alt" , fa::prescriptionbottlealt }, + { "print" , fa::print }, + { "procedures" , fa::procedures }, + { "project-diagram" , fa::projectdiagram }, + { "puzzle-piece" , fa::puzzlepiece }, + { "qrcode" , fa::qrcode }, + { "question" , fa::question }, + { "quidditch" , fa::quidditch }, + { "quote-left" , fa::quoteleft }, + { "quote-right" , fa::quoteright }, + { "quran" , fa::quran }, + { "radiation" , fa::radiation }, + { "radiation-alt" , fa::radiationalt }, + { "rainbow" , fa::rainbow }, + { "random" , fa::random }, + { "receipt" , fa::receipt }, + { "recycle" , fa::recycle }, + { "redo" , fa::redo }, + { "redo-alt" , fa::redoalt }, + { "remove-format" , fa::removeformat }, + { "reply" , fa::reply }, + { "reply-all" , fa::replyall }, + { "republican" , fa::republican }, + { "restroom" , fa::restroom }, + { "retweet" , fa::retweet }, + { "ribbon" , fa::ribbon }, + { "ring" , fa::ring }, + { "road" , fa::road }, + { "robot" , fa::robot }, + { "rocket" , fa::rocket }, + { "route" , fa::route }, + { "rss" , fa::rss }, + { "rss-square" , fa::rsssquare }, + { "ruble-sign" , fa::rublesign }, + { "ruler" , fa::ruler }, + { "ruler-combined" , fa::rulercombined }, + { "ruler-horizontal" , fa::rulerhorizontal }, + { "ruler-vertical" , fa::rulervertical }, + { "running" , fa::running }, + { "rupee-sign" , fa::rupeesign }, + { "satellite" , fa::satellite }, + { "satellite-dish" , fa::satellitedish }, + { "school" , fa::school }, + { "screwdriver" , fa::screwdriver }, + { "scroll" , fa::scroll }, + { "sd-card" , fa::sdcard }, + { "search" , fa::search }, + { "search-dollar" , fa::searchdollar }, + { "search-location" , fa::searchlocation }, + { "search-minus" , fa::searchminus }, + { "search-plus" , fa::searchplus }, + { "seedling" , fa::seedling }, + { "server" , fa::server }, + { "shapes" , fa::shapes }, + { "share" , fa::share }, + { "share-alt" , fa::sharealt }, + { "share-alt-square" , fa::sharealtsquare }, + { "shekel-sign" , fa::shekelsign }, + { "shield-alt" , fa::shieldalt }, + { "ship" , fa::ship }, + { "shipping-fast" , fa::shippingfast }, + { "shoe-prints" , fa::shoeprints }, + { "shopping-bag" , fa::shoppingbag }, + { "shopping-basket" , fa::shoppingbasket }, + { "shopping-cart" , fa::shoppingcart }, + { "shower" , fa::shower }, + { "shuttle-van" , fa::shuttlevan }, + { "sign" , fa::sign }, + { "signal" , fa::signal }, + { "signature" , fa::signature }, + { "sign-in-alt" , fa::signinalt }, + { "sign-language" , fa::signlanguage }, + { "sign-out-alt" , fa::signoutalt }, + { "sim-card" , fa::simcard }, + { "sitemap" , fa::sitemap }, + { "skating" , fa::skating }, + { "skiing" , fa::skiing }, + { "skiing-nordic" , fa::skiingnordic }, + { "skull" , fa::skull }, + { "skull-crossbones" , fa::skullcrossbones }, + { "slash" , fa::slash }, + { "sleigh" , fa::sleigh }, + { "sliders-h" , fa::slidersh }, + { "smog" , fa::smog }, + { "smoking" , fa::smoking }, + { "smoking-ban" , fa::smokingban }, + { "sms" , fa::sms }, + { "snowboarding" , fa::snowboarding }, + { "snowman" , fa::snowman }, + { "snowplow" , fa::snowplow }, + { "socks" , fa::socks }, + { "solar-panel" , fa::solarpanel }, + { "sort" , fa::sort }, + { "sort-alpha-down" , fa::sortalphadown }, + { "sort-alpha-down-alt" , fa::sortalphadownalt }, + { "sort-alpha-up" , fa::sortalphaup }, + { "sort-alpha-up-alt" , fa::sortalphaupalt }, + { "sort-amount-down" , fa::sortamountdown }, + { "sort-amount-down-alt" , fa::sortamountdownalt }, + { "sort-amount-up" , fa::sortamountup }, + { "sort-amount-up-alt" , fa::sortamountupalt }, + { "sort-down" , fa::sortdown }, + { "sort-numeric-down" , fa::sortnumericdown }, + { "sort-numeric-down-alt" , fa::sortnumericdownalt }, + { "sort-numeric-up" , fa::sortnumericup }, + { "sort-numeric-up-alt" , fa::sortnumericupalt }, + { "sort-up" , fa::sortup }, + { "spa" , fa::spa }, + { "space-shuttle" , fa::spaceshuttle }, + { "spell-check" , fa::spellcheck }, + { "spider" , fa::spider }, + { "spinner" , fa::spinner }, + { "splotch" , fa::splotch }, + { "spray-can" , fa::spraycan }, + { "square-full" , fa::squarefull }, + { "square-root-alt" , fa::squarerootalt }, + { "stamp" , fa::stamp }, + { "star-and-crescent" , fa::starandcrescent }, + { "star-half-alt" , fa::starhalfalt }, + { "star-of-david" , fa::starofdavid }, + { "star-of-life" , fa::staroflife }, + { "step-backward" , fa::stepbackward }, + { "step-forward" , fa::stepforward }, + { "stethoscope" , fa::stethoscope }, + { "stop" , fa::stop }, + { "stopwatch" , fa::stopwatch }, + { "store" , fa::store }, + { "store-alt" , fa::storealt }, + { "stream" , fa::stream }, + { "street-view" , fa::streetview }, + { "strikethrough" , fa::strikethrough }, + { "stroopwafel" , fa::stroopwafel }, + { "subscript" , fa::subscript }, + { "subway" , fa::subway }, + { "suitcase" , fa::suitcase }, + { "suitcase-rolling" , fa::suitcaserolling }, + { "superscript" , fa::superscript }, + { "swatchbook" , fa::swatchbook }, + { "swimmer" , fa::swimmer }, + { "swimming-pool" , fa::swimmingpool }, + { "synagogue" , fa::synagogue }, + { "sync" , fa::sync }, + { "sync-alt" , fa::syncalt }, + { "syringe" , fa::syringe }, + { "table" , fa::table }, + { "tablet" , fa::tablet }, + { "tablet-alt" , fa::tabletalt }, + { "table-tennis" , fa::tabletennis }, + { "tablets" , fa::tablets }, + { "tachometer-alt" , fa::tachometeralt }, + { "tag" , fa::tag }, + { "tags" , fa::tags }, + { "tape" , fa::tape }, + { "tasks" , fa::tasks }, + { "taxi" , fa::taxi }, + { "teeth" , fa::teeth }, + { "teeth-open" , fa::teethopen }, + { "temperature-high" , fa::temperaturehigh }, + { "temperature-low" , fa::temperaturelow }, + { "tenge" , fa::tenge }, + { "terminal" , fa::terminal }, + { "text-height" , fa::textheight }, + { "text-width" , fa::textwidth }, + { "th" , fa::th }, + { "theater-masks" , fa::theatermasks }, + { "thermometer" , fa::thermometer }, + { "thermometer-empty" , fa::thermometerempty }, + { "thermometer-full" , fa::thermometerfull }, + { "thermometer-half" , fa::thermometerhalf }, + { "thermometer-quarter" , fa::thermometerquarter }, + { "thermometer-three-quarters" , fa::thermometerthreequarters }, + { "th-large" , fa::thlarge }, + { "th-list" , fa::thlist }, + { "thumbtack" , fa::thumbtack }, + { "ticket-alt" , fa::ticketalt }, + { "times" , fa::times }, + { "tint" , fa::tint }, + { "tint-slash" , fa::tintslash }, + { "toggle-off" , fa::toggleoff }, + { "toggle-on" , fa::toggleon }, + { "toilet" , fa::toilet }, + { "toilet-paper" , fa::toiletpaper }, + { "toolbox" , fa::toolbox }, + { "tools" , fa::tools }, + { "tooth" , fa::tooth }, + { "torah" , fa::torah }, + { "torii-gate" , fa::toriigate }, + { "tractor" , fa::tractor }, + { "trademark" , fa::trademark }, + { "traffic-light" , fa::trafficlight }, + { "train" , fa::train }, + { "tram" , fa::tram }, + { "transgender" , fa::transgender }, + { "transgender-alt" , fa::transgenderalt }, + { "trash" , fa::trash }, + { "trash-restore" , fa::trashrestore }, + { "trash-restore-alt" , fa::trashrestorealt }, + { "tree" , fa::tree }, + { "trophy" , fa::trophy }, + { "truck" , fa::truck }, + { "truck-loading" , fa::truckloading }, + { "truck-monster" , fa::truckmonster }, + { "truck-moving" , fa::truckmoving }, + { "truck-pickup" , fa::truckpickup }, + { "tshirt" , fa::tshirt }, + { "tty" , fa::tty }, + { "tv" , fa::tv }, + { "umbrella" , fa::umbrella }, + { "umbrella-beach" , fa::umbrellabeach }, + { "underline" , fa::underline }, + { "undo" , fa::undo }, + { "undo-alt" , fa::undoalt }, + { "universal-access" , fa::universalaccess }, + { "university" , fa::university }, + { "unlink" , fa::unlink }, + { "unlock" , fa::unlock }, + { "unlock-alt" , fa::unlockalt }, + { "upload" , fa::upload }, + { "user-alt" , fa::useralt }, + { "user-alt-slash" , fa::useraltslash }, + { "user-astronaut" , fa::userastronaut }, + { "user-check" , fa::usercheck }, + { "user-clock" , fa::userclock }, + { "user-cog" , fa::usercog }, + { "user-edit" , fa::useredit }, + { "user-friends" , fa::userfriends }, + { "user-graduate" , fa::usergraduate }, + { "user-injured" , fa::userinjured }, + { "user-lock" , fa::userlock }, + { "user-md" , fa::usermd }, + { "user-minus" , fa::userminus }, + { "user-ninja" , fa::userninja }, + { "user-nurse" , fa::usernurse }, + { "user-plus" , fa::userplus }, + { "users" , fa::users }, + { "users-cog" , fa::userscog }, + { "user-secret" , fa::usersecret }, + { "user-shield" , fa::usershield }, + { "user-slash" , fa::userslash }, + { "user-tag" , fa::usertag }, + { "user-tie" , fa::usertie }, + { "user-times" , fa::usertimes }, + { "utensils" , fa::utensils }, + { "utensil-spoon" , fa::utensilspoon }, + { "vector-square" , fa::vectorsquare }, + { "venus" , fa::venus }, + { "venus-double" , fa::venusdouble }, + { "venus-mars" , fa::venusmars }, + { "vial" , fa::vial }, + { "vials" , fa::vials }, + { "video" , fa::video }, + { "video-slash" , fa::videoslash }, + { "vihara" , fa::vihara }, + { "voicemail" , fa::voicemail }, + { "volleyball-ball" , fa::volleyballball }, + { "volume-down" , fa::volumedown }, + { "volume-mute" , fa::volumemute }, + { "volume-off" , fa::volumeoff }, + { "volume-up" , fa::volumeup }, + { "vote-yea" , fa::voteyea }, + { "vr-cardboard" , fa::vrcardboard }, + { "walking" , fa::walking }, + { "wallet" , fa::wallet }, + { "warehouse" , fa::warehouse }, + { "water" , fa::water }, + { "wave-square" , fa::wavesquare }, + { "weight" , fa::weight }, + { "weight-hanging" , fa::weighthanging }, + { "wheelchair" , fa::wheelchair }, + { "wifi" , fa::wifi }, + { "wind" , fa::wind }, + { "wine-bottle" , fa::winebottle }, + { "wine-glass" , fa::wineglass }, + { "wine-glass-alt" , fa::wineglassalt }, + { "won-sign" , fa::wonsign }, + { "wrench" , fa::wrench }, + { "x-ray" , fa::xray }, + { "yen-sign" , fa::yensign }, + { "yin-yang" , fa::yinyang } }; @@ -990,71 +2358,109 @@ static const FANameIcon faNameIconArray[] = { /// To initialize QtAwesome with font-awesome you need to call this method bool QtAwesome::initFontAwesome( ) { - static int fontAwesomeFontId = -1; + bool errors = false; + // The macro below internally calls "qInitResources_QtAwesome()". this initializes + // the resource system. For a .pri project this isn't required, but when building and using a + // static library the resource need to initialized first. + /// + // I've checked th qInitResource_* code and calling this method mutliple times shouldn't be any problem + // (More info about this subject: http://qt-project.org/wiki/QtResources) +#ifdef FONT_AWESOME_PRO + Q_INIT_RESOURCE(QtAwesomePro); +#else + Q_INIT_RESOURCE(QtAwesomeFree); +#endif + for(FontData &fd : _fontDetails ) { // only load font-awesome once - if( fontAwesomeFontId < 0 ) { + if( fd.fontId() < 0 ) { + // load the font file + QFile res(":/fonts/" + fd.fontFilename()); + if(!res.open(QIODevice::ReadOnly)) { + qDebug() << "Font awesome font" << fd.fontFilename() << "could not be loaded!"; + errors = true; + continue; + } + QByteArray fontData( res.readAll() ); + res.close(); - // The macro below internally calls "qInitResources_QtAwesome()". this initializes - // the resource system. For a .pri project this isn't required, but when building and using a - // static library the resource need to initialized first. - /// - // I've checked th qInitResource_* code and calling this method mutliple times shouldn't be any problem - // (More info about this subject: http://qt-project.org/wiki/QtResources) - Q_INIT_RESOURCE(QtAwesome); + // fetch the given font + fd.setFontId(QFontDatabase::addApplicationFontFromData(fontData)); + } - // load the font file - QFile res(":/fonts/fontawesome-4.7.0.ttf"); - if(!res.open(QIODevice::ReadOnly)) { - qDebug() << "Font awesome font could not be loaded!"; + QStringList loadedFontFamilies = QFontDatabase::applicationFontFamilies(fd.fontId()); + if( !loadedFontFamilies.empty() ) { + fd.setFontFamily( loadedFontFamilies.at(0) ); + } else { + qDebug() << "Font awesome" << fd.fontFilename() << " font is empty?!"; + fd.setFontId( -1 ); // restore the font-awesome id return false; } - QByteArray fontData( res.readAll() ); - res.close(); - - // fetch the given font - fontAwesomeFontId = QFontDatabase::addApplicationFontFromData(fontData); } - QStringList loadedFontFamilies = QFontDatabase::applicationFontFamilies(fontAwesomeFontId); - if( !loadedFontFamilies.empty() ) { - fontName_= loadedFontFamilies.at(0); - } else { - qDebug() << "Font awesome font is empty?!"; - fontAwesomeFontId = -1; // restore the font-awesome id - return false; + // intialize the brands icon map + QHash *brands = new QHash(); + for (unsigned i = 0; i < sizeof(faBrandsIconArray)/sizeof(FANameIcon); ++i) { + brands->insert(faBrandsIconArray[i].name, faBrandsIconArray[i].icon); + } + _namedCodepoints.insert(style::fab, brands); + + //initialize others code icons maps +#ifdef FONT_AWESOME_PRO + QHash *commonMap = new QHash(); + for (unsigned i = 0; i < sizeof(faCommonIconArray)/sizeof(FANameIcon); ++i) { + commonMap->insert(faCommonIconArray[i].name, faCommonIconArray[i].icon); } - // intialize the map - QHash& m = namedCodepoints_; - for (unsigned i = 0; i < sizeof(faNameIconArray)/sizeof(FANameIcon); ++i) { - m.insert(faNameIconArray[i].name, faNameIconArray[i].icon); + for (unsigned i = 0; i < sizeof(faProIconArray)/sizeof(FANameIcon); ++i) { + commonMap->insert(faProIconArray[i].name, faProIconArray[i].icon); } - return true; + _namedCodepoints.insert(style::far, commonMap); + _namedCodepoints.insert(style::fas, commonMap); + _namedCodepoints.insert(style::fal, commonMap); + _namedCodepoints.insert(style::fad, commonMap); +#else + QHash *farMap = new QHash(); + for (unsigned i = 0; i < sizeof(faCommonIconArray)/sizeof(FANameIcon) && i < FREE_REGULAR_ICON_SIZE; ++i) { + farMap->insert(faCommonIconArray[i].name, faCommonIconArray[i].icon); + } + _namedCodepoints.insert(style::far, farMap); + + QHash *fasMap = new QHash(); + for (unsigned i = 0; i < sizeof(faCommonIconArray)/sizeof(FANameIcon); ++i) { + fasMap->insert(faCommonIconArray[i].name, faCommonIconArray[i].icon); + } + _namedCodepoints.insert(style::fas, fasMap); +#endif + + return errors; } -void QtAwesome::addNamedCodepoint( const QString& name, int codePoint) +const QHash QtAwesome::namedCodePoints(style::styles st) const { - namedCodepoints_.insert( name, codePoint); + if(!_namedCodepoints.contains(st)) + return QHash(); + + return *_namedCodepoints[st]; } /// Sets a default option. These options are passed on to the icon painters void QtAwesome::setDefaultOption(const QString& name, const QVariant& value) { - defaultOptions_.insert( name, value ); + _defaultOptions.insert( name, value ); } /// Returns the default option for the given name QVariant QtAwesome::defaultOption(const QString& name) { - return defaultOptions_.value( name ); + return _defaultOptions.value( name ); } -// internal helper method to merge to option amps +// internal helper method to merge to option maps static QVariantMap mergeOptions( const QVariantMap& defaults, const QVariantMap& override ) { QVariantMap result= defaults; @@ -1069,39 +2475,56 @@ static QVariantMap mergeOptions( const QVariantMap& defaults, const QVariantMap& } -/// Creates an icon with the given code-point +/// Creates an icon with the given code-point for st style /// /// awesome->icon( icon_group ) /// -QIcon QtAwesome::icon(int character, const QVariantMap &options) +QIcon QtAwesome::icon(int st, int character, const QVariantMap &options) { // create a merged QVariantMap to have default options and icon-specific options - QVariantMap optionMap = mergeOptions( defaultOptions_, options ); - optionMap.insert("text", QString( QChar(static_cast(character)) ) ); + QVariantMap optionMap = mergeOptions( _defaultOptions, options ); + optionMap.insert("text", QString( QChar(character)) ); + optionMap.insert("style", st); - return icon( fontIconPainter_, optionMap ); + return icon( _fontIconPainter, optionMap ); } /// Creates an icon with the given name /// -/// You can use the icon names as defined on http://fortawesome.github.io/Font-Awesome/design.html withour the 'icon-' prefix +/// You can use the icon names as defined on https://fontawesome.com/cheatsheet/free and +/// https://fontawesome.com/cheatsheet/pro adding the style prefix, e.g. "fas address-book" /// @param name the name of the icon /// @param options extra option to pass to the icon renderer QIcon QtAwesome::icon(const QString& name, const QVariantMap& options) { - // when it's a named codepoint - if( namedCodepoints_.count(name) ) { - return icon( namedCodepoints_.value(name), options ); + //Split name + QStringList params = name.split(" "); + int st; + QString ic; + + if(params.size() == 2){ + st = stringToStyleEnum(params[0]); + ic = params[1]; + } else if (params.size() == 1) { + st = style::fas; + ic = params[0]; + } else { + return QIcon(); } + // when it's a named codepoint + if(_namedCodepoints.contains(st) && _namedCodepoints[st]->contains(ic)) { + return icon( st, _namedCodepoints[st]->value(ic), options ); + } // create a merged QVariantMap to have default options and icon-specific options - QVariantMap optionMap = mergeOptions( defaultOptions_, options ); + QVariantMap optionMap = mergeOptions( _defaultOptions, options ); + optionMap.insert("style", st); // this method first tries to retrieve the icon - QtAwesomeIconPainter* painter = painterMap_.value(name); + QtAwesomeIconPainter* painter = _painterMap.value(name); if( !painter ) { return QIcon(); } @@ -1115,7 +2538,7 @@ QIcon QtAwesome::icon(const QString& name, const QVariantMap& options) /// @param optionmap the options to pass to the painter QIcon QtAwesome::icon(QtAwesomeIconPainter* painter, const QVariantMap& optionMap ) { - // Warning, when you use memoryleak detection. You should turn it of for the next call + // Warning, when you use memoryleak detection. You should turn it off for the next call // QIcon's placed in gui items are often cached and not deleted when my memory-leak detection checks for leaks. // I'm not sure if it's a Qt bug or something I do wrong QtAwesomeIconPainterIconEngine* engine = new QtAwesomeIconPainterIconEngine( this, painter, optionMap ); @@ -1125,22 +2548,76 @@ QIcon QtAwesome::icon(QtAwesomeIconPainter* painter, const QVariantMap& optionMa /// Adds a named icon-painter to the QtAwesome icon map /// As the name applies the ownership is passed over to QtAwesome /// -/// @param name the name of the icon +/// @param name the name of the icon including the style /// @param painter the icon painter to add for this name void QtAwesome::give(const QString& name, QtAwesomeIconPainter* painter) { - delete painterMap_.value( name ); // delete the old one - painterMap_.insert( name, painter ); + delete _painterMap.value( name ); // delete the old one + _painterMap.insert( name, painter ); } -/// Creates/Gets the icon font with a given size in pixels. This can be usefull to use a label for displaying icons + +/// \brief QtAwesome::font Creates/Gets the icon font with a given size in pixels. This can be usefull to use a label for displaying icons +/// +/// \param st Font Awesome style such as fas, fal, fab, fad or far +/// \param size point size of the font +/// \return the corresponding font /// Example: /// /// QLabel* label = new QLabel( QChar( icon_group ) ); -/// label->setFont( awesome->font(16) ) -QFont QtAwesome::font( int size ) +/// label->setFont( awesome->font(style::fas, 16) ) +QFont QtAwesome::font(style::styles st, int size ) const { - QFont font( fontName_); - font.setPixelSize(size); - return font; + if(!_fontDetails.contains(st)) + return QFont(); + + QFont ft( _fontDetails[st].fontFamily()); + ft.setPixelSize(size); + return ft; +} + +QString QtAwesome::fontName(style::styles st) const +{ + if(_fontDetails.contains(st)) + return _fontDetails[st].fontFamily(); + + return ""; +} + +int QtAwesome::stringToStyleEnum(const QString st) const +{ + if(st == "fas") + return style::fas; + else if (st == "far") + return style::far; + else if (st == "fab") + return style::fab; +#ifdef FONT_AWESOME_PRO + else if (st == "fal") + return style::fal; + else if (st == "fad") + return style::fad; +#endif + + return style::fas; +} + +const QString QtAwesome::styleEnumToString(int st) const +{ + switch(st){ + case style::fab: + return "fab"; + case style::far: + return "far"; + case style::fas: + return "fas"; +#ifdef FONT_AWESOME_PRO + case style::fal: + return "fal"; + case style::fad: + return "fad"; +#endif + } + + return "fas"; } diff --git a/QtAwesome/QtAwesome.h b/QtAwesome/QtAwesome.h index 5aabd1b..99db974 100644 --- a/QtAwesome/QtAwesome.h +++ b/QtAwesome/QtAwesome.h @@ -19,27 +19,42 @@ #include +/// A list of all style-names +namespace style { + enum styles { + /// solid icons + fas, + /// regular icons + far, +#ifdef FONT_AWESOME_PRO + /// light icons + fal, + /// duotone icons + fad, +#endif + /// brands icons + fab + }; +} + /// A list of all icon-names with the codepoint (unicode-value) on the right /// You can use the names on the page http://fortawesome.github.io/Font-Awesome/design.html + namespace fa { - enum icon { - fa_500px = 0xf26e, + enum common { + ad = 0xf641, addressbook = 0xf2b9, - addressbooko = 0xf2ba, addresscard = 0xf2bb, - addresscardo = 0xf2bc, adjust = 0xf042, - adn = 0xf170, + airfreshener = 0xf5d0, aligncenter = 0xf037, alignjustify = 0xf039, alignleft = 0xf036, alignright = 0xf038, - amazon = 0xf270, + allergies = 0xf461, ambulance = 0xf0f9, americansignlanguageinterpreting = 0xf2a3, anchor = 0xf13d, - android = 0xf17b, - angellist = 0xf209, angledoubledown = 0xf103, angledoubleleft = 0xf100, angledoubleright = 0xf101, @@ -48,48 +63,48 @@ namespace fa { angleleft = 0xf104, angleright = 0xf105, angleup = 0xf106, - apple = 0xf179, + angry = 0xf556, + ankh = 0xf644, + applealt = 0xf5d1, archive = 0xf187, - areachart = 0xf1fe, + archway = 0xf557, + arrowaltcircledown = 0xf358, + arrowaltcircleleft = 0xf359, + arrowaltcircleright = 0xf35a, + arrowaltcircleup = 0xf35b, arrowcircledown = 0xf0ab, arrowcircleleft = 0xf0a8, - arrowcircleodown = 0xf01a, - arrowcircleoleft = 0xf190, - arrowcircleoright = 0xf18e, - arrowcircleoup = 0xf01b, arrowcircleright = 0xf0a9, arrowcircleup = 0xf0aa, arrowdown = 0xf063, arrowleft = 0xf060, arrowright = 0xf061, - arrowup = 0xf062, - arrows = 0xf047, arrowsalt = 0xf0b2, - arrowsh = 0xf07e, - arrowsv = 0xf07d, - aslinterpreting = 0xf2a3, + arrowsalth = 0xf337, + arrowsaltv = 0xf338, + arrowup = 0xf062, assistivelisteningsystems = 0xf2a2, asterisk = 0xf069, at = 0xf1fa, + atlas = 0xf558, + atom = 0xf5d2, audiodescription = 0xf29e, - automobile = 0xf1b9, + award = 0xf559, + baby = 0xf77c, + babycarriage = 0xf77d, + backspace = 0xf55a, backward = 0xf04a, + bacon = 0xf7e5, balancescale = 0xf24e, + balancescaleleft = 0xf515, + balancescaleright = 0xf516, ban = 0xf05e, - bandcamp = 0xf2d5, - bank = 0xf19c, - barchart = 0xf080, - barcharto = 0xf080, + bandaid = 0xf462, barcode = 0xf02a, bars = 0xf0c9, + baseballball = 0xf433, + basketballball = 0xf434, bath = 0xf2cd, - bathtub = 0xf2cd, - battery = 0xf240, - battery0 = 0xf244, - battery1 = 0xf243, - battery2 = 0xf242, - battery3 = 0xf241, - battery4 = 0xf240, batteryempty = 0xf244, batteryfull = 0xf240, batteryhalf = 0xf242, @@ -97,76 +112,108 @@ namespace fa { batterythreequarters = 0xf241, bed = 0xf236, beer = 0xf0fc, - behance = 0xf1b4, - behancesquare = 0xf1b5, bell = 0xf0f3, - bello = 0xf0a2, bellslash = 0xf1f6, - bellslasho = 0xf1f7, + beziercurve = 0xf55b, + bible = 0xf647, bicycle = 0xf206, + biking = 0xf84a, binoculars = 0xf1e5, + biohazard = 0xf780, birthdaycake = 0xf1fd, - bitbucket = 0xf171, - bitbucketsquare = 0xf172, - bitcoin = 0xf15a, - blacktie = 0xf27e, + blender = 0xf517, + blenderphone = 0xf6b6, blind = 0xf29d, - bluetooth = 0xf293, - bluetoothb = 0xf294, + blog = 0xf781, bold = 0xf032, bolt = 0xf0e7, bomb = 0xf1e2, + bone = 0xf5d7, + bong = 0xf55c, book = 0xf02d, + bookdead = 0xf6b7, bookmark = 0xf02e, - bookmarko = 0xf097, + bookmedical = 0xf7e6, + bookopen = 0xf518, + bookreader = 0xf5da, + borderall = 0xf84c, + bordernone = 0xf850, + borderstyle = 0xf853, + bowlingball = 0xf436, + box = 0xf466, + boxes = 0xf468, + boxopen = 0xf49e, braille = 0xf2a1, + brain = 0xf5dc, + breadslice = 0xf7ec, briefcase = 0xf0b1, - btc = 0xf15a, + briefcasemedical = 0xf469, + broadcasttower = 0xf519, + broom = 0xf51a, + brush = 0xf55d, bug = 0xf188, building = 0xf1ad, - buildingo = 0xf0f7, bullhorn = 0xf0a1, bullseye = 0xf140, + burn = 0xf46a, bus = 0xf207, - buysellads = 0xf20d, - cab = 0xf1ba, + busalt = 0xf55e, + businesstime = 0xf64a, calculator = 0xf1ec, - calendar = 0xf073, - calendarchecko = 0xf274, - calendarminuso = 0xf272, - calendaro = 0xf133, - calendarpluso = 0xf271, - calendartimeso = 0xf273, + calendar = 0xf133, + calendaralt = 0xf073, + calendarcheck = 0xf274, + calendarday = 0xf783, + calendarminus = 0xf272, + calendarplus = 0xf271, + calendartimes = 0xf273, + calendarweek = 0xf784, camera = 0xf030, cameraretro = 0xf083, + campground = 0xf6bb, + candycane = 0xf786, + cannabis = 0xf55f, + capsules = 0xf46b, car = 0xf1b9, + caralt = 0xf5de, + carbattery = 0xf5df, + carcrash = 0xf5e1, caretdown = 0xf0d7, caretleft = 0xf0d9, caretright = 0xf0da, - caretsquareodown = 0xf150, - caretsquareoleft = 0xf191, - caretsquareoright = 0xf152, - caretsquareoup = 0xf151, + caretsquaredown = 0xf150, + caretsquareleft = 0xf191, + caretsquareright = 0xf152, + caretsquareup = 0xf151, caretup = 0xf0d8, + carrot = 0xf787, + carside = 0xf5e4, cartarrowdown = 0xf218, cartplus = 0xf217, - cc = 0xf20a, - ccamex = 0xf1f3, - ccdinersclub = 0xf24c, - ccdiscover = 0xf1f2, - ccjcb = 0xf24b, - ccmastercard = 0xf1f1, - ccpaypal = 0xf1f4, - ccstripe = 0xf1f5, - ccvisa = 0xf1f0, + cashregister = 0xf788, + cat = 0xf6be, certificate = 0xf0a3, - chain = 0xf0c1, - chainbroken = 0xf127, + chair = 0xf6c0, + chalkboard = 0xf51b, + chalkboardteacher = 0xf51c, + chargingstation = 0xf5e7, + chartarea = 0xf1fe, + chartbar = 0xf080, + chartline = 0xf201, + chartpie = 0xf200, check = 0xf00c, checkcircle = 0xf058, - checkcircleo = 0xf05d, + checkdouble = 0xf560, checksquare = 0xf14a, - checksquareo = 0xf046, + cheese = 0xf7ef, + chess = 0xf439, + chessbishop = 0xf43a, + chessboard = 0xf43c, + chessking = 0xf43f, + chessknight = 0xf441, + chesspawn = 0xf443, + chessqueen = 0xf445, + chessrook = 0xf447, chevroncircledown = 0xf13a, chevroncircleleft = 0xf137, chevroncircleright = 0xf138, @@ -176,639 +223,1909 @@ namespace fa { chevronright = 0xf054, chevronup = 0xf077, child = 0xf1ae, - chrome = 0xf268, + church = 0xf51d, circle = 0xf111, - circleo = 0xf10c, - circleonotch = 0xf1ce, - circlethin = 0xf1db, - clipboard = 0xf0ea, - clocko = 0xf017, + circlenotch = 0xf1ce, + city = 0xf64f, + clinicmedical = 0xf7f2, + clipboard = 0xf328, + clipboardcheck = 0xf46c, + clipboardlist = 0xf46d, + clock = 0xf017, clone = 0xf24d, - close = 0xf00d, + closedcaptioning = 0xf20a, cloud = 0xf0c2, - clouddownload = 0xf0ed, - cloudupload = 0xf0ee, - cny = 0xf157, + clouddownloadalt = 0xf381, + cloudmeatball = 0xf73b, + cloudmoon = 0xf6c3, + cloudmoonrain = 0xf73c, + cloudrain = 0xf73d, + cloudshowersheavy = 0xf740, + cloudsun = 0xf6c4, + cloudsunrain = 0xf743, + clouduploadalt = 0xf382, + cocktail = 0xf561, code = 0xf121, - codefork = 0xf126, - codepen = 0xf1cb, - codiepie = 0xf284, + codebranch = 0xf126, coffee = 0xf0f4, cog = 0xf013, cogs = 0xf085, + coins = 0xf51e, columns = 0xf0db, comment = 0xf075, - commento = 0xf0e5, - commenting = 0xf27a, - commentingo = 0xf27b, + commentalt = 0xf27a, + commentdollar = 0xf651, + commentdots = 0xf4ad, + commentmedical = 0xf7f5, comments = 0xf086, - commentso = 0xf0e6, + commentsdollar = 0xf653, + commentslash = 0xf4b3, + compactdisc = 0xf51f, compass = 0xf14e, compress = 0xf066, - connectdevelop = 0xf20e, - contao = 0xf26d, + compressarrowsalt = 0xf78c, + conciergebell = 0xf562, + cookie = 0xf563, + cookiebite = 0xf564, copy = 0xf0c5, copyright = 0xf1f9, - creativecommons = 0xf25e, + couch = 0xf4b8, creditcard = 0xf09d, - creditcardalt = 0xf283, crop = 0xf125, + cropalt = 0xf565, + cross = 0xf654, crosshairs = 0xf05b, - css3 = 0xf13c, + crow = 0xf520, + crown = 0xf521, + crutch = 0xf7f7, cube = 0xf1b2, cubes = 0xf1b3, cut = 0xf0c4, - cutlery = 0xf0f5, - dashboard = 0xf0e4, - dashcube = 0xf210, database = 0xf1c0, deaf = 0xf2a4, - deafness = 0xf2a4, - dedent = 0xf03b, - delicious = 0xf1a5, + democrat = 0xf747, desktop = 0xf108, - deviantart = 0xf1bd, - diamond = 0xf219, - digg = 0xf1a6, - dollar = 0xf155, - dotcircleo = 0xf192, + dharmachakra = 0xf655, + diagnoses = 0xf470, + dice = 0xf522, + diced20 = 0xf6cf, + diced6 = 0xf6d1, + dicefive = 0xf523, + dicefour = 0xf524, + diceone = 0xf525, + dicesix = 0xf526, + dicethree = 0xf527, + dicetwo = 0xf528, + digitaltachograph = 0xf566, + directions = 0xf5eb, + divide = 0xf529, + dizzy = 0xf567, + dna = 0xf471, + dog = 0xf6d3, + dollarsign = 0xf155, + dolly = 0xf472, + dollyflatbed = 0xf474, + donate = 0xf4b9, + doorclosed = 0xf52a, + dooropen = 0xf52b, + dotcircle = 0xf192, + dove = 0xf4ba, download = 0xf019, - dribbble = 0xf17d, - driverslicense = 0xf2c2, - driverslicenseo = 0xf2c3, - dropbox = 0xf16b, - drupal = 0xf1a9, - edge = 0xf282, + draftingcompass = 0xf568, + dragon = 0xf6d5, + drawpolygon = 0xf5ee, + drum = 0xf569, + drumsteelpan = 0xf56a, + drumstickbite = 0xf6d7, + dumbbell = 0xf44b, + dumpster = 0xf793, + dumpsterfire = 0xf794, + dungeon = 0xf6d9, edit = 0xf044, - eercast = 0xf2da, + egg = 0xf7fb, eject = 0xf052, ellipsish = 0xf141, ellipsisv = 0xf142, - empire = 0xf1d1, envelope = 0xf0e0, - envelopeo = 0xf003, envelopeopen = 0xf2b6, - envelopeopeno = 0xf2b7, + envelopeopentext = 0xf658, envelopesquare = 0xf199, - envira = 0xf299, + equals = 0xf52c, eraser = 0xf12d, - etsy = 0xf2d7, - eur = 0xf153, - euro = 0xf153, - exchange = 0xf0ec, + ethernet = 0xf796, + eurosign = 0xf153, + exchangealt = 0xf362, exclamation = 0xf12a, exclamationcircle = 0xf06a, exclamationtriangle = 0xf071, expand = 0xf065, - expeditedssl = 0xf23e, - externallink = 0xf08e, - externallinksquare = 0xf14c, + expandarrowsalt = 0xf31e, + externallinkalt = 0xf35d, + externallinksquarealt = 0xf360, eye = 0xf06e, - eyeslash = 0xf070, eyedropper = 0xf1fb, - fa = 0xf2b4, - facebook = 0xf09a, - facebookf = 0xf09a, - facebookofficial = 0xf230, - facebooksquare = 0xf082, + eyeslash = 0xf070, + fan = 0xf863, fastbackward = 0xf049, fastforward = 0xf050, fax = 0xf1ac, - feed = 0xf09e, + feather = 0xf52d, + featheralt = 0xf56b, female = 0xf182, fighterjet = 0xf0fb, file = 0xf15b, - filearchiveo = 0xf1c6, - fileaudioo = 0xf1c7, - filecodeo = 0xf1c9, - fileexcelo = 0xf1c3, - fileimageo = 0xf1c5, - filemovieo = 0xf1c8, - fileo = 0xf016, - filepdfo = 0xf1c1, - filephotoo = 0xf1c5, - filepictureo = 0xf1c5, - filepowerpointo = 0xf1c4, - filesoundo = 0xf1c7, - filetext = 0xf15c, - filetexto = 0xf0f6, - filevideoo = 0xf1c8, - filewordo = 0xf1c2, - filezipo = 0xf1c6, - fileso = 0xf0c5, + filealt = 0xf15c, + filearchive = 0xf1c6, + fileaudio = 0xf1c7, + filecode = 0xf1c9, + filecontract = 0xf56c, + filecsv = 0xf6dd, + filedownload = 0xf56d, + fileexcel = 0xf1c3, + fileexport = 0xf56e, + fileimage = 0xf1c5, + fileimport = 0xf56f, + fileinvoice = 0xf570, + fileinvoicedollar = 0xf571, + filemedical = 0xf477, + filemedicalalt = 0xf478, + filepdf = 0xf1c1, + filepowerpoint = 0xf1c4, + fileprescription = 0xf572, + filesignature = 0xf573, + fileupload = 0xf574, + filevideo = 0xf1c8, + fileword = 0xf1c2, + fill = 0xf575, + filldrip = 0xf576, film = 0xf008, filter = 0xf0b0, + fingerprint = 0xf577, fire = 0xf06d, + firealt = 0xf7e4, fireextinguisher = 0xf134, - firefox = 0xf269, - firstorder = 0xf2b0, + firstaid = 0xf479, + fish = 0xf578, + fistraised = 0xf6de, flag = 0xf024, flagcheckered = 0xf11e, - flago = 0xf11d, - flash = 0xf0e7, + flagusa = 0xf74d, flask = 0xf0c3, - flickr = 0xf16e, - floppyo = 0xf0c7, + flushed = 0xf579, folder = 0xf07b, - foldero = 0xf114, + folderminus = 0xf65d, folderopen = 0xf07c, - folderopeno = 0xf115, + folderplus = 0xf65e, font = 0xf031, - fontawesome = 0xf2b4, - fonticons = 0xf280, - fortawesome = 0xf286, - forumbee = 0xf211, + footballball = 0xf44e, forward = 0xf04e, - foursquare = 0xf180, - freecodecamp = 0xf2c5, - frowno = 0xf119, - futbolo = 0xf1e3, + frog = 0xf52e, + frown = 0xf119, + frownopen = 0xf57a, + funneldollar = 0xf662, + futbol = 0xf1e3, gamepad = 0xf11b, + gaspump = 0xf52f, gavel = 0xf0e3, - gbp = 0xf154, - ge = 0xf1d1, - gear = 0xf013, - gears = 0xf085, + gem = 0xf3a5, genderless = 0xf22d, - getpocket = 0xf265, - gg = 0xf260, - ggcircle = 0xf261, + ghost = 0xf6e2, gift = 0xf06b, - git = 0xf1d3, - gitsquare = 0xf1d2, - github = 0xf09b, - githubalt = 0xf113, - githubsquare = 0xf092, - gitlab = 0xf296, - gittip = 0xf184, - glass = 0xf000, - glide = 0xf2a5, - glideg = 0xf2a6, + gifts = 0xf79c, + glasscheers = 0xf79f, + glasses = 0xf530, + glassmartini = 0xf000, + glassmartinialt = 0xf57b, + glasswhiskey = 0xf7a0, globe = 0xf0ac, - google = 0xf1a0, - googleplus = 0xf0d5, - googlepluscircle = 0xf2b3, - googleplusofficial = 0xf2b3, - googleplussquare = 0xf0d4, - googlewallet = 0xf1ee, + globeafrica = 0xf57c, + globeamericas = 0xf57d, + globeasia = 0xf57e, + globeeurope = 0xf7a2, + golfball = 0xf450, + gopuram = 0xf664, graduationcap = 0xf19d, - gratipay = 0xf184, - grav = 0xf2d6, - group = 0xf0c0, - hsquare = 0xf0fd, - hackernews = 0xf1d4, - handgrabo = 0xf255, - handlizardo = 0xf258, - handodown = 0xf0a7, - handoleft = 0xf0a5, - handoright = 0xf0a4, - handoup = 0xf0a6, - handpapero = 0xf256, - handpeaceo = 0xf25b, - handpointero = 0xf25a, - handrocko = 0xf255, - handscissorso = 0xf257, - handspocko = 0xf259, - handstopo = 0xf256, - handshakeo = 0xf2b5, - hardofhearing = 0xf2a4, + greaterthan = 0xf531, + greaterthanequal = 0xf532, + grimace = 0xf57f, + grin = 0xf580, + grinalt = 0xf581, + grinbeam = 0xf582, + grinbeamsweat = 0xf583, + grinhearts = 0xf584, + grinsquint = 0xf585, + grinsquinttears = 0xf586, + grinstars = 0xf587, + grintears = 0xf588, + grintongue = 0xf589, + grintonguesquint = 0xf58a, + grintonguewink = 0xf58b, + grinwink = 0xf58c, + griphorizontal = 0xf58d, + griplines = 0xf7a4, + griplinesvertical = 0xf7a5, + gripvertical = 0xf58e, + guitar = 0xf7a6, + hamburger = 0xf805, + hammer = 0xf6e3, + hamsa = 0xf665, + handholding = 0xf4bd, + handholdingheart = 0xf4be, + handholdingusd = 0xf4c0, + handlizard = 0xf258, + handmiddlefinger = 0xf806, + handpaper = 0xf256, + handpeace = 0xf25b, + handpointdown = 0xf0a7, + handpointer = 0xf25a, + handpointleft = 0xf0a5, + handpointright = 0xf0a4, + handpointup = 0xf0a6, + handrock = 0xf255, + hands = 0xf4c2, + handscissors = 0xf257, + handshake = 0xf2b5, + handshelping = 0xf4c4, + handspock = 0xf259, + hanukiah = 0xf6e6, + hardhat = 0xf807, hashtag = 0xf292, - hddo = 0xf0a0, - header = 0xf1dc, + hatwizard = 0xf6e8, + haykal = 0xf666, + hdd = 0xf0a0, + heading = 0xf1dc, headphones = 0xf025, + headphonesalt = 0xf58f, + headset = 0xf590, heart = 0xf004, - hearto = 0xf08a, heartbeat = 0xf21e, + heartbroken = 0xf7a9, + helicopter = 0xf533, + highlighter = 0xf591, + hiking = 0xf6ec, + hippo = 0xf6ed, history = 0xf1da, + hockeypuck = 0xf453, + hollyberry = 0xf7aa, home = 0xf015, - hospitalo = 0xf0f8, - hotel = 0xf236, + horse = 0xf6f0, + horsehead = 0xf7ab, + hospital = 0xf0f8, + hospitalalt = 0xf47d, + hospitalsymbol = 0xf47e, + hotdog = 0xf80f, + hotel = 0xf594, + hottub = 0xf593, hourglass = 0xf254, - hourglass1 = 0xf251, - hourglass2 = 0xf252, - hourglass3 = 0xf253, hourglassend = 0xf253, hourglasshalf = 0xf252, - hourglasso = 0xf250, hourglassstart = 0xf251, - houzz = 0xf27c, - html5 = 0xf13b, + housedamage = 0xf6f1, + hryvnia = 0xf6f2, + hsquare = 0xf0fd, + icecream = 0xf810, + icicles = 0xf7ad, + icons = 0xf86d, icursor = 0xf246, idbadge = 0xf2c1, idcard = 0xf2c2, - idcardo = 0xf2c3, - ils = 0xf20b, + idcardalt = 0xf47f, + igloo = 0xf7ae, image = 0xf03e, - imdb = 0xf2d8, + images = 0xf302, inbox = 0xf01c, indent = 0xf03c, industry = 0xf275, + infinity = 0xf534, info = 0xf129, infocircle = 0xf05a, - inr = 0xf156, - instagram = 0xf16d, - institution = 0xf19c, - internetexplorer = 0xf26b, - intersex = 0xf224, - ioxhost = 0xf208, italic = 0xf033, - joomla = 0xf1aa, - jpy = 0xf157, - jsfiddle = 0xf1cc, + jedi = 0xf669, + joint = 0xf595, + journalwhills = 0xf66a, + kaaba = 0xf66b, key = 0xf084, - keyboardo = 0xf11c, - krw = 0xf159, + keyboard = 0xf11c, + khanda = 0xf66d, + kiss = 0xf596, + kissbeam = 0xf597, + kisswinkheart = 0xf598, + kiwibird = 0xf535, + landmark = 0xf66f, language = 0xf1ab, laptop = 0xf109, - lastfm = 0xf202, - lastfmsquare = 0xf203, + laptopcode = 0xf5fc, + laptopmedical = 0xf812, + laugh = 0xf599, + laughbeam = 0xf59a, + laughsquint = 0xf59b, + laughwink = 0xf59c, + layergroup = 0xf5fd, leaf = 0xf06c, - leanpub = 0xf212, - legal = 0xf0e3, - lemono = 0xf094, - leveldown = 0xf149, - levelup = 0xf148, - lifebouy = 0xf1cd, - lifebuoy = 0xf1cd, + lemon = 0xf094, + lessthan = 0xf536, + lessthanequal = 0xf537, + leveldownalt = 0xf3be, + levelupalt = 0xf3bf, lifering = 0xf1cd, - lifesaver = 0xf1cd, - lightbulbo = 0xf0eb, - linechart = 0xf201, + lightbulb = 0xf0eb, link = 0xf0c1, - linkedin = 0xf0e1, - linkedinsquare = 0xf08c, - linode = 0xf2b8, - fa_linux = 0xf17c, + lirasign = 0xf195, list = 0xf03a, listalt = 0xf022, listol = 0xf0cb, listul = 0xf0ca, locationarrow = 0xf124, lock = 0xf023, - longarrowdown = 0xf175, - longarrowleft = 0xf177, - longarrowright = 0xf178, - longarrowup = 0xf176, + lockopen = 0xf3c1, + longarrowaltdown = 0xf309, + longarrowaltleft = 0xf30a, + longarrowaltright = 0xf30b, + longarrowaltup = 0xf30c, lowvision = 0xf2a8, + luggagecart = 0xf59d, magic = 0xf0d0, magnet = 0xf076, - mailforward = 0xf064, - mailreply = 0xf112, - mailreplyall = 0xf122, + mailbulk = 0xf674, male = 0xf183, map = 0xf279, + mapmarked = 0xf59f, + mapmarkedalt = 0xf5a0, mapmarker = 0xf041, - mapo = 0xf278, + mapmarkeralt = 0xf3c5, mappin = 0xf276, mapsigns = 0xf277, + marker = 0xf5a1, mars = 0xf222, marsdouble = 0xf227, marsstroke = 0xf229, marsstrokeh = 0xf22b, marsstrokev = 0xf22a, - maxcdn = 0xf136, - meanpath = 0xf20c, - medium = 0xf23a, + mask = 0xf6fa, + medal = 0xf5a2, medkit = 0xf0fa, - meetup = 0xf2e0, - meho = 0xf11a, + meh = 0xf11a, + mehblank = 0xf5a4, + mehrollingeyes = 0xf5a5, + memory = 0xf538, + menorah = 0xf676, mercury = 0xf223, + meteor = 0xf753, microchip = 0xf2db, microphone = 0xf130, + microphonealt = 0xf3c9, + microphonealtslash = 0xf539, microphoneslash = 0xf131, + microscope = 0xf610, minus = 0xf068, minuscircle = 0xf056, minussquare = 0xf146, - minussquareo = 0xf147, - mixcloud = 0xf289, + mitten = 0xf7b5, mobile = 0xf10b, - mobilephone = 0xf10b, - modx = 0xf285, - money = 0xf0d6, - moono = 0xf186, - mortarboard = 0xf19d, + mobilealt = 0xf3cd, + moneybill = 0xf0d6, + moneybillalt = 0xf3d1, + moneybillwave = 0xf53a, + moneybillwavealt = 0xf53b, + moneycheck = 0xf53c, + moneycheckalt = 0xf53d, + monument = 0xf5a6, + moon = 0xf186, + mortarpestle = 0xf5a7, + mosque = 0xf678, motorcycle = 0xf21c, + mountain = 0xf6fc, mousepointer = 0xf245, + mughot = 0xf7b6, music = 0xf001, - navicon = 0xf0c9, + networkwired = 0xf6ff, neuter = 0xf22c, - newspapero = 0xf1ea, + newspaper = 0xf1ea, + notequal = 0xf53e, + notesmedical = 0xf481, objectgroup = 0xf247, objectungroup = 0xf248, - odnoklassniki = 0xf263, - odnoklassnikisquare = 0xf264, - opencart = 0xf23d, - openid = 0xf19b, - opera = 0xf26a, - optinmonster = 0xf23c, + oilcan = 0xf613, + om = 0xf679, + otter = 0xf700, outdent = 0xf03b, - pagelines = 0xf18c, + pager = 0xf815, paintbrush = 0xf1fc, - paperplane = 0xf1d8, - paperplaneo = 0xf1d9, + paintroller = 0xf5aa, + palette = 0xf53f, + pallet = 0xf482, paperclip = 0xf0c6, + paperplane = 0xf1d8, + parachutebox = 0xf4cd, paragraph = 0xf1dd, + parking = 0xf540, + passport = 0xf5ab, + pastafarianism = 0xf67b, paste = 0xf0ea, pause = 0xf04c, pausecircle = 0xf28b, - pausecircleo = 0xf28c, paw = 0xf1b0, - paypal = 0xf1ed, - pencil = 0xf040, - pencilsquare = 0xf14b, - pencilsquareo = 0xf044, + peace = 0xf67c, + pen = 0xf304, + penalt = 0xf305, + pencilalt = 0xf303, + pencilruler = 0xf5ae, + penfancy = 0xf5ac, + pennib = 0xf5ad, + pensquare = 0xf14b, + peoplecarry = 0xf4ce, + pepperhot = 0xf816, percent = 0xf295, + percentage = 0xf541, + personbooth = 0xf756, phone = 0xf095, + phonealt = 0xf879, + phoneslash = 0xf3dd, phonesquare = 0xf098, - photo = 0xf03e, - pictureo = 0xf03e, - piechart = 0xf200, - piedpiper = 0xf2ae, - piedpiperalt = 0xf1a8, - piedpiperpp = 0xf1a7, - pinterest = 0xf0d2, - pinterestp = 0xf231, - pinterestsquare = 0xf0d3, + phonesquarealt = 0xf87b, + phonevolume = 0xf2a0, + photovideo = 0xf87c, + piggybank = 0xf4d3, + pills = 0xf484, + pizzaslice = 0xf818, + placeofworship = 0xf67f, plane = 0xf072, + planearrival = 0xf5af, + planedeparture = 0xf5b0, play = 0xf04b, playcircle = 0xf144, - playcircleo = 0xf01d, plug = 0xf1e6, plus = 0xf067, pluscircle = 0xf055, plussquare = 0xf0fe, - plussquareo = 0xf196, podcast = 0xf2ce, + poll = 0xf681, + pollh = 0xf682, + poo = 0xf2fe, + poop = 0xf619, + poostorm = 0xf75a, + portrait = 0xf3e0, + poundsign = 0xf154, poweroff = 0xf011, + pray = 0xf683, + prayinghands = 0xf684, + prescription = 0xf5b1, + prescriptionbottle = 0xf485, + prescriptionbottlealt = 0xf486, print = 0xf02f, - producthunt = 0xf288, + procedures = 0xf487, + projectdiagram = 0xf542, puzzlepiece = 0xf12e, - qq = 0xf1d6, qrcode = 0xf029, question = 0xf128, questioncircle = 0xf059, - questioncircleo = 0xf29c, - quora = 0xf2c4, + quidditch = 0xf458, quoteleft = 0xf10d, quoteright = 0xf10e, - ra = 0xf1d0, + quran = 0xf687, + radiation = 0xf7b9, + radiationalt = 0xf7ba, + rainbow = 0xf75b, random = 0xf074, - ravelry = 0xf2d9, - rebel = 0xf1d0, + receipt = 0xf543, recycle = 0xf1b8, - reddit = 0xf1a1, - redditalien = 0xf281, - redditsquare = 0xf1a2, - refresh = 0xf021, + redo = 0xf01e, + redoalt = 0xf2f9, registered = 0xf25d, - remove = 0xf00d, - renren = 0xf18b, - reorder = 0xf0c9, - repeat = 0xf01e, - reply = 0xf112, + removeformat = 0xf87d, + reply = 0xf3e5, replyall = 0xf122, - resistance = 0xf1d0, + republican = 0xf75e, + restroom = 0xf7bd, retweet = 0xf079, - rmb = 0xf157, + ribbon = 0xf4d6, + ring = 0xf70b, road = 0xf018, + robot = 0xf544, rocket = 0xf135, - rotateleft = 0xf0e2, - rotateright = 0xf01e, - rouble = 0xf158, + route = 0xf4d7, rss = 0xf09e, rsssquare = 0xf143, - rub = 0xf158, - ruble = 0xf158, - rupee = 0xf156, - s15 = 0xf2cd, - safari = 0xf267, + rublesign = 0xf158, + ruler = 0xf545, + rulercombined = 0xf546, + rulerhorizontal = 0xf547, + rulervertical = 0xf548, + running = 0xf70c, + rupeesign = 0xf156, + sadcry = 0xf5b3, + sadtear = 0xf5b4, + satellite = 0xf7bf, + satellitedish = 0xf7c0, save = 0xf0c7, - scissors = 0xf0c4, - scribd = 0xf28a, + school = 0xf549, + screwdriver = 0xf54a, + scroll = 0xf70e, + sdcard = 0xf7c2, search = 0xf002, + searchdollar = 0xf688, + searchlocation = 0xf689, searchminus = 0xf010, searchplus = 0xf00e, - sellsy = 0xf213, - send = 0xf1d8, - sendo = 0xf1d9, + seedling = 0xf4d8, server = 0xf233, + shapes = 0xf61f, share = 0xf064, sharealt = 0xf1e0, sharealtsquare = 0xf1e1, sharesquare = 0xf14d, - sharesquareo = 0xf045, - shekel = 0xf20b, - sheqel = 0xf20b, - shield = 0xf132, + shekelsign = 0xf20b, + shieldalt = 0xf3ed, ship = 0xf21a, - shirtsinbulk = 0xf214, + shippingfast = 0xf48b, + shoeprints = 0xf54b, shoppingbag = 0xf290, shoppingbasket = 0xf291, shoppingcart = 0xf07a, shower = 0xf2cc, - signin = 0xf090, - signlanguage = 0xf2a7, - signout = 0xf08b, + shuttlevan = 0xf5b6, + sign = 0xf4d9, signal = 0xf012, - signing = 0xf2a7, - simplybuilt = 0xf215, + signature = 0xf5b7, + signinalt = 0xf2f6, + signlanguage = 0xf2a7, + signoutalt = 0xf2f5, + simcard = 0xf7c4, sitemap = 0xf0e8, - skyatlas = 0xf216, - skype = 0xf17e, - slack = 0xf198, - sliders = 0xf1de, - slideshare = 0xf1e7, - smileo = 0xf118, - snapchat = 0xf2ab, - snapchatghost = 0xf2ac, - snapchatsquare = 0xf2ad, - snowflakeo = 0xf2dc, - soccerballo = 0xf1e3, + skating = 0xf7c5, + skiing = 0xf7c9, + skiingnordic = 0xf7ca, + skull = 0xf54c, + skullcrossbones = 0xf714, + slash = 0xf715, + sleigh = 0xf7cc, + slidersh = 0xf1de, + smile = 0xf118, + smilebeam = 0xf5b8, + smilewink = 0xf4da, + smog = 0xf75f, + smoking = 0xf48d, + smokingban = 0xf54d, + sms = 0xf7cd, + snowboarding = 0xf7ce, + snowflake = 0xf2dc, + snowman = 0xf7d0, + snowplow = 0xf7d2, + socks = 0xf696, + solarpanel = 0xf5ba, sort = 0xf0dc, - sortalphaasc = 0xf15d, - sortalphadesc = 0xf15e, - sortamountasc = 0xf160, - sortamountdesc = 0xf161, - sortasc = 0xf0de, - sortdesc = 0xf0dd, + sortalphadown = 0xf15d, + sortalphadownalt = 0xf881, + sortalphaup = 0xf15e, + sortalphaupalt = 0xf882, + sortamountdown = 0xf160, + sortamountdownalt = 0xf884, + sortamountup = 0xf161, + sortamountupalt = 0xf885, sortdown = 0xf0dd, - sortnumericasc = 0xf162, - sortnumericdesc = 0xf163, + sortnumericdown = 0xf162, + sortnumericdownalt = 0xf886, + sortnumericup = 0xf163, + sortnumericupalt = 0xf887, sortup = 0xf0de, - soundcloud = 0xf1be, + spa = 0xf5bb, spaceshuttle = 0xf197, + spellcheck = 0xf891, + spider = 0xf717, spinner = 0xf110, - spoon = 0xf1b1, - spotify = 0xf1bc, + splotch = 0xf5bc, + spraycan = 0xf5bd, square = 0xf0c8, - squareo = 0xf096, - stackexchange = 0xf18d, - stackoverflow = 0xf16c, + squarefull = 0xf45c, + squarerootalt = 0xf698, + stamp = 0xf5bf, star = 0xf005, + starandcrescent = 0xf699, starhalf = 0xf089, - starhalfempty = 0xf123, - starhalffull = 0xf123, - starhalfo = 0xf123, - staro = 0xf006, - steam = 0xf1b6, - steamsquare = 0xf1b7, + starhalfalt = 0xf5c0, + starofdavid = 0xf69a, + staroflife = 0xf621, stepbackward = 0xf048, stepforward = 0xf051, stethoscope = 0xf0f1, stickynote = 0xf249, - stickynoteo = 0xf24a, stop = 0xf04d, stopcircle = 0xf28d, - stopcircleo = 0xf28e, + stopwatch = 0xf2f2, + store = 0xf54e, + storealt = 0xf54f, + stream = 0xf550, streetview = 0xf21d, strikethrough = 0xf0cc, - stumbleupon = 0xf1a4, - stumbleuponcircle = 0xf1a3, + stroopwafel = 0xf551, subscript = 0xf12c, subway = 0xf239, suitcase = 0xf0f2, - suno = 0xf185, - superpowers = 0xf2dd, + suitcaserolling = 0xf5c1, + sun = 0xf185, superscript = 0xf12b, - support = 0xf1cd, + surprise = 0xf5c2, + swatchbook = 0xf5c3, + swimmer = 0xf5c4, + swimmingpool = 0xf5c5, + synagogue = 0xf69b, + sync = 0xf021, + syncalt = 0xf2f1, + syringe = 0xf48e, table = 0xf0ce, tablet = 0xf10a, - tachometer = 0xf0e4, + tabletalt = 0xf3fa, + tabletennis = 0xf45d, + tablets = 0xf490, + tachometeralt = 0xf3fd, tag = 0xf02b, tags = 0xf02c, + tape = 0xf4db, tasks = 0xf0ae, taxi = 0xf1ba, - telegram = 0xf2c6, - television = 0xf26c, - tencentweibo = 0xf1d5, + teeth = 0xf62e, + teethopen = 0xf62f, + temperaturehigh = 0xf769, + temperaturelow = 0xf76b, + tenge = 0xf7d7, terminal = 0xf120, textheight = 0xf034, textwidth = 0xf035, th = 0xf00a, - thlarge = 0xf009, - thlist = 0xf00b, - themeisle = 0xf2b2, - thermometer = 0xf2c7, - thermometer0 = 0xf2cb, - thermometer1 = 0xf2ca, - thermometer2 = 0xf2c9, - thermometer3 = 0xf2c8, - thermometer4 = 0xf2c7, + theatermasks = 0xf630, + thermometer = 0xf491, thermometerempty = 0xf2cb, thermometerfull = 0xf2c7, thermometerhalf = 0xf2c9, thermometerquarter = 0xf2ca, thermometerthreequarters = 0xf2c8, - thumbtack = 0xf08d, + thlarge = 0xf009, + thlist = 0xf00b, thumbsdown = 0xf165, - thumbsodown = 0xf088, - thumbsoup = 0xf087, thumbsup = 0xf164, - ticket = 0xf145, + thumbtack = 0xf08d, + ticketalt = 0xf3ff, times = 0xf00d, timescircle = 0xf057, - timescircleo = 0xf05c, - timesrectangle = 0xf2d3, - timesrectangleo = 0xf2d4, tint = 0xf043, - toggledown = 0xf150, - toggleleft = 0xf191, + tintslash = 0xf5c7, + tired = 0xf5c8, toggleoff = 0xf204, toggleon = 0xf205, - toggleright = 0xf152, - toggleup = 0xf151, + toilet = 0xf7d8, + toiletpaper = 0xf71e, + toolbox = 0xf552, + tools = 0xf7d9, + tooth = 0xf5c9, + torah = 0xf6a0, + toriigate = 0xf6a1, + tractor = 0xf722, trademark = 0xf25c, + trafficlight = 0xf637, train = 0xf238, + tram = 0xf7da, transgender = 0xf224, transgenderalt = 0xf225, trash = 0xf1f8, - trasho = 0xf014, + trashalt = 0xf2ed, + trashrestore = 0xf829, + trashrestorealt = 0xf82a, tree = 0xf1bb, - trello = 0xf181, - tripadvisor = 0xf262, trophy = 0xf091, truck = 0xf0d1, - fa_try = 0xf195, + truckloading = 0xf4de, + truckmonster = 0xf63b, + truckmoving = 0xf4df, + truckpickup = 0xf63c, + tshirt = 0xf553, tty = 0xf1e4, - tumblr = 0xf173, - tumblrsquare = 0xf174, - turkishlira = 0xf195, tv = 0xf26c, - twitch = 0xf1e8, - twitter = 0xf099, - twittersquare = 0xf081, umbrella = 0xf0e9, + umbrellabeach = 0xf5ca, underline = 0xf0cd, undo = 0xf0e2, + undoalt = 0xf2ea, universalaccess = 0xf29a, university = 0xf19c, unlink = 0xf127, unlock = 0xf09c, unlockalt = 0xf13e, - unsorted = 0xf0dc, upload = 0xf093, - usb = 0xf287, - usd = 0xf155, user = 0xf007, + useralt = 0xf406, + useraltslash = 0xf4fa, + userastronaut = 0xf4fb, + usercheck = 0xf4fc, usercircle = 0xf2bd, - usercircleo = 0xf2be, + userclock = 0xf4fd, + usercog = 0xf4fe, + useredit = 0xf4ff, + userfriends = 0xf500, + usergraduate = 0xf501, + userinjured = 0xf728, + userlock = 0xf502, usermd = 0xf0f0, - usero = 0xf2c0, + userminus = 0xf503, + userninja = 0xf504, + usernurse = 0xf82f, userplus = 0xf234, - usersecret = 0xf21b, - usertimes = 0xf235, users = 0xf0c0, - vcard = 0xf2bb, - vcardo = 0xf2bc, + userscog = 0xf509, + usersecret = 0xf21b, + usershield = 0xf505, + userslash = 0xf506, + usertag = 0xf507, + usertie = 0xf508, + usertimes = 0xf235, + utensils = 0xf2e7, + utensilspoon = 0xf2e5, + vectorsquare = 0xf5cb, venus = 0xf221, venusdouble = 0xf226, venusmars = 0xf228, - viacoin = 0xf237, - viadeo = 0xf2a9, - viadeosquare = 0xf2aa, - videocamera = 0xf03d, - vimeo = 0xf27d, - vimeosquare = 0xf194, - vine = 0xf1ca, - vk = 0xf189, - volumecontrolphone = 0xf2a0, + vial = 0xf492, + vials = 0xf493, + video = 0xf03d, + videoslash = 0xf4e2, + vihara = 0xf6a7, + voicemail = 0xf897, + volleyballball = 0xf45f, volumedown = 0xf027, + volumemute = 0xf6a9, volumeoff = 0xf026, volumeup = 0xf028, - warning = 0xf071, - wechat = 0xf1d7, - weibo = 0xf18a, - weixin = 0xf1d7, - whatsapp = 0xf232, + voteyea = 0xf772, + vrcardboard = 0xf729, + walking = 0xf554, + wallet = 0xf555, + warehouse = 0xf494, + water = 0xf773, + wavesquare = 0xf83e, + weight = 0xf496, + weighthanging = 0xf5cd, wheelchair = 0xf193, - wheelchairalt = 0xf29b, wifi = 0xf1eb, - wikipediaw = 0xf266, - windowclose = 0xf2d3, - windowcloseo = 0xf2d4, + wind = 0xf72e, + windowclose = 0xf410, windowmaximize = 0xf2d0, windowminimize = 0xf2d1, windowrestore = 0xf2d2, - windows = 0xf17a, - won = 0xf159, - wordpress = 0xf19a, - wpbeginner = 0xf297, - wpexplorer = 0xf2de, - wpforms = 0xf298, + winebottle = 0xf72f, + wineglass = 0xf4e3, + wineglassalt = 0xf5ce, + wonsign = 0xf159, wrench = 0xf0ad, - xing = 0xf168, - xingsquare = 0xf169, - ycombinator = 0xf23b, - ycombinatorsquare = 0xf1d4, - yahoo = 0xf19e, - yc = 0xf23b, - ycsquare = 0xf1d4, - yelp = 0xf1e9, - yen = 0xf157, - yoast = 0xf2b1, - youtube = 0xf167, - youtubeplay = 0xf16a, - youtubesquare = 0xf166 + xray = 0xf497, + yensign = 0xf157, + yinyang = 0xf6ad + }; + +#ifdef FONT_AWESOME_PRO + enum pro { + abacus = 0xf640, + acorn = 0xf6ae, + alarmclock = 0xf34e, + alarmexclamation = 0xf843, + alarmplus = 0xf844, + alarmsnooze = 0xf845, + alicorn = 0xf6b0, + alignslash = 0xf846, + analytics = 0xf643, + angel = 0xf779, + applecrate = 0xf6b1, + arrowaltdown = 0xf354, + arrowaltfrombottom = 0xf346, + arrowaltfromleft = 0xf347, + arrowaltfromright = 0xf348, + arrowaltfromtop = 0xf349, + arrowaltleft = 0xf355, + arrowaltright = 0xf356, + arrowaltsquaredown = 0xf350, + arrowaltsquareleft = 0xf351, + arrowaltsquareright = 0xf352, + arrowaltsquareup = 0xf353, + arrowalttobottom = 0xf34a, + arrowalttoleft = 0xf34b, + arrowalttoright = 0xf34c, + arrowalttotop = 0xf34d, + arrowaltup = 0xf357, + arrowfrombottom = 0xf342, + arrowfromleft = 0xf343, + arrowfromright = 0xf344, + arrowfromtop = 0xf345, + arrows = 0xf047, + arrowsh = 0xf07e, + arrowsquaredown = 0xf339, + arrowsquareleft = 0xf33a, + arrowsquareright = 0xf33b, + arrowsquareup = 0xf33c, + arrowsv = 0xf07d, + arrowtobottom = 0xf33d, + arrowtoleft = 0xf33e, + arrowtoright = 0xf340, + arrowtotop = 0xf341, + atomalt = 0xf5d3, + axe = 0xf6b2, + axebattle = 0xf6b3, + backpack = 0xf5d4, + badge = 0xf335, + badgecheck = 0xf336, + badgedollar = 0xf645, + badgepercent = 0xf646, + badgerhoney = 0xf6b4, + bagsshopping = 0xf847, + ballot = 0xf732, + ballotcheck = 0xf733, + ballpile = 0xf77e, + barcodealt = 0xf463, + barcoderead = 0xf464, + barcodescan = 0xf465, + baseball = 0xf432, + basketballhoop = 0xf435, + bat = 0xf6b5, + batterybolt = 0xf376, + batteryslash = 0xf377, + bellexclamation = 0xf848, + bellplus = 0xf849, + bells = 0xf77f, + bellschool = 0xf5d5, + bellschoolslash = 0xf5d6, + bikingmountain = 0xf84b, + blanket = 0xf498, + bonebreak = 0xf5d8, + bookalt = 0xf5d9, + bookheart = 0xf499, + books = 0xf5db, + booksmedical = 0xf7e8, + bookspells = 0xf6b8, + bookuser = 0xf7e7, + boot = 0xf782, + boothcurtain = 0xf734, + borderbottom = 0xf84d, + bordercenterh = 0xf89c, + bordercenterv = 0xf89d, + borderinner = 0xf84e, + borderleft = 0xf84f, + borderouter = 0xf851, + borderright = 0xf852, + borderstylealt = 0xf854, + bordertop = 0xf855, + bowarrow = 0xf6b9, + bowlingpins = 0xf437, + boxalt = 0xf49a, + boxballot = 0xf735, + boxcheck = 0xf467, + boxesalt = 0xf4a1, + boxfragile = 0xf49b, + boxfull = 0xf49c, + boxheart = 0xf49d, + boxingglove = 0xf438, + boxup = 0xf49f, + boxusd = 0xf4a0, + brackets = 0xf7e9, + bracketscurly = 0xf7ea, + breadloaf = 0xf7eb, + bringforward = 0xf856, + bringfront = 0xf857, + browser = 0xf37e, + bullseyearrow = 0xf648, + bullseyepointer = 0xf649, + burgersoda = 0xf858, + burrito = 0xf7ed, + busschool = 0xf5dd, + cabinetfiling = 0xf64b, + calculatoralt = 0xf64c, + calendaredit = 0xf333, + calendarexclamation = 0xf334, + calendarstar = 0xf736, + cameraalt = 0xf332, + campfire = 0xf6ba, + candleholder = 0xf6bc, + candycorn = 0xf6bd, + carbuilding = 0xf859, + carbump = 0xf5e0, + carbus = 0xf85a, + caretcircledown = 0xf32d, + caretcircleleft = 0xf32e, + caretcircleright = 0xf330, + caretcircleup = 0xf331, + cargarage = 0xf5e2, + carmechanic = 0xf5e3, + cars = 0xf85b, + cartilt = 0xf5e5, + carwash = 0xf5e6, + cauldron = 0xf6bf, + chairoffice = 0xf6c1, + chartlinedown = 0xf64d, + chartnetwork = 0xf78a, + chartpiealt = 0xf64e, + chartscatter = 0xf7ee, + cheeseburger = 0xf7f1, + cheeseswiss = 0xf7f0, + chessbishopalt = 0xf43b, + chessclock = 0xf43d, + chessclockalt = 0xf43e, + chesskingalt = 0xf440, + chessknightalt = 0xf442, + chesspawnalt = 0xf444, + chessqueenalt = 0xf446, + chessrookalt = 0xf448, + chevrondoubledown = 0xf322, + chevrondoubleleft = 0xf323, + chevrondoubleright = 0xf324, + chevrondoubleup = 0xf325, + chevronsquaredown = 0xf329, + chevronsquareleft = 0xf32a, + chevronsquareright = 0xf32b, + chevronsquareup = 0xf32c, + chimney = 0xf78b, + clawmarks = 0xf6c2, + clipboardlistcheck = 0xf737, + clipboardprescription = 0xf5e8, + clipboarduser = 0xf7f3, + clouddownload = 0xf0ed, + clouddrizzle = 0xf738, + cloudhail = 0xf739, + cloudhailmixed = 0xf73a, + cloudrainbow = 0xf73e, + clouds = 0xf744, + cloudshowers = 0xf73f, + cloudsleet = 0xf741, + cloudsmoon = 0xf745, + cloudsnow = 0xf742, + cloudssun = 0xf746, + cloudupload = 0xf0ee, + club = 0xf327, + codecommit = 0xf386, + codemerge = 0xf387, + coffeetogo = 0xf6c5, + coffin = 0xf6c6, + coin = 0xf85c, + commentaltcheck = 0xf4a2, + commentaltdollar = 0xf650, + commentaltdots = 0xf4a3, + commentaltedit = 0xf4a4, + commentaltexclamation = 0xf4a5, + commentaltlines = 0xf4a6, + commentaltmedical = 0xf7f4, + commentaltminus = 0xf4a7, + commentaltplus = 0xf4a8, + commentaltslash = 0xf4a9, + commentaltsmile = 0xf4aa, + commentalttimes = 0xf4ab, + commentcheck = 0xf4ac, + commentedit = 0xf4ae, + commentexclamation = 0xf4af, + commentlines = 0xf4b0, + commentminus = 0xf4b1, + commentplus = 0xf4b2, + commentsalt = 0xf4b6, + commentsaltdollar = 0xf652, + commentsmile = 0xf4b4, + commenttimes = 0xf4b5, + compassslash = 0xf5e9, + compressalt = 0xf422, + compresswide = 0xf326, + construction = 0xf85d, + containerstorage = 0xf4b7, + conveyorbelt = 0xf46e, + conveyorbeltalt = 0xf46f, + corn = 0xf6c7, + cow = 0xf6c8, + creditcardblank = 0xf389, + creditcardfront = 0xf38a, + cricket = 0xf449, + croissant = 0xf7f6, + crutches = 0xf7f8, + curling = 0xf44a, + dagger = 0xf6cb, + debug = 0xf7f9, + deer = 0xf78e, + deerrudolph = 0xf78f, + desktopalt = 0xf390, + dewpoint = 0xf748, + diamond = 0xf219, + diced10 = 0xf6cd, + diced12 = 0xf6ce, + diced4 = 0xf6d0, + diced8 = 0xf6d2, + digging = 0xf85e, + diploma = 0xf5ea, + disease = 0xf7fa, + dogleashed = 0xf6d4, + dollyempty = 0xf473, + dollyflatbedalt = 0xf475, + dollyflatbedempty = 0xf476, + donotenter = 0xf5ec, + drawcircle = 0xf5ed, + drawsquare = 0xf5ef, + dreidel = 0xf792, + drone = 0xf85f, + dronealt = 0xf860, + drumstick = 0xf6d6, + dryer = 0xf861, + dryeralt = 0xf862, + duck = 0xf6d8, + ear = 0xf5f0, + earmuffs = 0xf795, + eclipse = 0xf749, + eclipsealt = 0xf74a, + eggfried = 0xf7fc, + elephant = 0xf6da, + ellipsishalt = 0xf39b, + ellipsisvalt = 0xf39c, + emptyset = 0xf656, + enginewarning = 0xf5f2, + envelopeopendollar = 0xf657, + exchange = 0xf0ec, + exclamationsquare = 0xf321, + expandalt = 0xf424, + expandarrows = 0xf31d, + expandwide = 0xf320, + externallink = 0xf08e, + externallinksquare = 0xf14c, + eyeevil = 0xf6db, + farm = 0xf864, + fieldhockey = 0xf44c, + filecertificate = 0xf5f3, + filechartline = 0xf659, + filechartpie = 0xf65a, + filecheck = 0xf316, + fileedit = 0xf31c, + fileexclamation = 0xf31a, + fileminus = 0xf318, + fileplus = 0xf319, + filesearch = 0xf865, + filesmedical = 0xf7fd, + filespreadsheet = 0xf65b, + filetimes = 0xf317, + fileuser = 0xf65c, + filmalt = 0xf3a0, + fireplace = 0xf79a, + firesmoke = 0xf74b, + fishcooked = 0xf7fe, + flagalt = 0xf74c, + flame = 0xf6df, + flaskpoison = 0xf6e0, + flaskpotion = 0xf6e1, + flower = 0xf7ff, + flowerdaffodil = 0xf800, + flowertulip = 0xf801, + fog = 0xf74e, + folders = 0xf660, + foldertimes = 0xf65f, + foldertree = 0xf802, + fontcase = 0xf866, + footballhelmet = 0xf44f, + forklift = 0xf47a, + fragile = 0xf4bb, + frenchfries = 0xf803, + frostyhead = 0xf79b, + function = 0xf661, + gameboard = 0xf867, + gameboardalt = 0xf868, + gaspumpslash = 0xf5f4, + giftcard = 0xf663, + gingerbreadman = 0xf79d, + glass = 0xf804, + glasschampagne = 0xf79e, + glasscitrus = 0xf869, + glassesalt = 0xf5f5, + glasswhiskeyrocks = 0xf7a1, + globesnow = 0xf7a3, + globestand = 0xf5f6, + golfclub = 0xf451, + h1 = 0xf313, + h2 = 0xf314, + h3 = 0xf315, + h4 = 0xf86a, + hammerwar = 0xf6e4, + handheart = 0xf4bc, + handholdingbox = 0xf47b, + handholdingmagic = 0xf6e5, + handholdingseedling = 0xf4bf, + handholdingwater = 0xf4c1, + handreceiving = 0xf47c, + handshakealt = 0xf4c6, + handsheart = 0xf4c3, + handsusd = 0xf4c5, + hatchef = 0xf86b, + hatsanta = 0xf7a7, + hatwinter = 0xf7a8, + hatwitch = 0xf6e7, + headside = 0xf6e9, + headsidebrain = 0xf808, + headsidemedical = 0xf809, + headvr = 0xf6ea, + heartcircle = 0xf4c7, + heartrate = 0xf5f8, + heartsquare = 0xf4c8, + helmetbattle = 0xf6eb, + hexagon = 0xf312, + hockeymask = 0xf6ee, + hockeysticks = 0xf454, + homealt = 0xf80a, + homeheart = 0xf4c9, + homelg = 0xf80b, + homelgalt = 0xf80c, + hoodcloak = 0xf6ef, + horizontalrule = 0xf86c, + hospitals = 0xf80e, + hospitaluser = 0xf80d, + houseflood = 0xf74f, + humidity = 0xf750, + hurricane = 0xf751, + iceskate = 0xf7ac, + iconsalt = 0xf86e, + inboxin = 0xf310, + inboxout = 0xf311, + industryalt = 0xf3b3, + infosquare = 0xf30f, + inhaler = 0xf5f9, + integral = 0xf667, + intersection = 0xf668, + inventory = 0xf480, + islandtropical = 0xf811, + jackolantern = 0xf30e, + kerning = 0xf86f, + keynote = 0xf66c, + keyskeleton = 0xf6f3, + kidneys = 0xf5fb, + kite = 0xf6f4, + knifekitchen = 0xf6f5, + lambda = 0xf66e, + lamp = 0xf4ca, + landmarkalt = 0xf752, + layerminus = 0xf5fe, + layerplus = 0xf5ff, + leafheart = 0xf4cb, + leafmaple = 0xf6f6, + leafoak = 0xf6f7, + leveldown = 0xf149, + levelup = 0xf148, + lightbulbdollar = 0xf670, + lightbulbexclamation = 0xf671, + lightbulbon = 0xf672, + lightbulbslash = 0xf673, + lightsholiday = 0xf7b2, + linecolumns = 0xf870, + lineheight = 0xf871, + lips = 0xf600, + location = 0xf601, + locationcircle = 0xf602, + locationslash = 0xf603, + lockalt = 0xf30d, + lockopenalt = 0xf3c2, + longarrowdown = 0xf175, + longarrowleft = 0xf177, + longarrowright = 0xf178, + longarrowup = 0xf176, + loveseat = 0xf4cc, + luchador = 0xf455, + lungs = 0xf604, + mace = 0xf6f8, + mailbox = 0xf813, + mandolin = 0xf6f9, + mapmarkeraltslash = 0xf605, + mapmarkercheck = 0xf606, + mapmarkeredit = 0xf607, + mapmarkerexclamation = 0xf608, + mapmarkerminus = 0xf609, + mapmarkerplus = 0xf60a, + mapmarkerquestion = 0xf60b, + mapmarkerslash = 0xf60c, + mapmarkersmile = 0xf60d, + mapmarkertimes = 0xf60e, + meat = 0xf814, + megaphone = 0xf675, + mindshare = 0xf677, + minushexagon = 0xf307, + minusoctagon = 0xf308, + mistletoe = 0xf7b4, + mobileandroid = 0xf3ce, + mobileandroidalt = 0xf3cf, + moneycheckedit = 0xf872, + moneycheckeditalt = 0xf873, + monitorheartrate = 0xf611, + monkey = 0xf6fb, + mooncloud = 0xf754, + moonstars = 0xf755, + mountains = 0xf6fd, + mug = 0xf874, + mugmarshmallows = 0xf7b7, + mugtea = 0xf875, + narwhal = 0xf6fe, + octagon = 0xf306, + oiltemp = 0xf614, + omega = 0xf67a, + ornament = 0xf7b8, + overline = 0xf876, + pagebreak = 0xf877, + paintbrushalt = 0xf5a9, + palletalt = 0xf483, + paragraphrtl = 0xf878, + parkingcircle = 0xf615, + parkingcircleslash = 0xf616, + parkingslash = 0xf617, + pawalt = 0xf701, + pawclaws = 0xf702, + pegasus = 0xf703, + pencil = 0xf040, + pencilpaintbrush = 0xf618, + pennant = 0xf456, + personcarry = 0xf4cf, + persondolly = 0xf4d0, + persondollyempty = 0xf4d1, + personsign = 0xf757, + phonelaptop = 0xf87a, + phoneoffice = 0xf67d, + phoneplus = 0xf4d2, + pi = 0xf67e, + pie = 0xf705, + pig = 0xf706, + pizza = 0xf817, + planealt = 0xf3de, + plushexagon = 0xf300, + plusoctagon = 0xf301, + podium = 0xf680, + podiumstar = 0xf758, + pollpeople = 0xf759, + popcorn = 0xf819, + presentation = 0xf685, + printsearch = 0xf81a, + printslash = 0xf686, + pumpkin = 0xf707, + questionsquare = 0xf2fd, + rabbit = 0xf708, + rabbitfast = 0xf709, + racquet = 0xf45a, + raindrops = 0xf75c, + ram = 0xf70a, + ramploading = 0xf4d4, + rectanglelandscape = 0xf2fa, + rectangleportrait = 0xf2fb, + rectanglewide = 0xf2fc, + repeat = 0xf363, + repeat1 = 0xf365, + repeat1alt = 0xf366, + repeatalt = 0xf364, + retweetalt = 0xf361, + ringswedding = 0xf81b, + routehighway = 0xf61a, + routeinterstate = 0xf61b, + rulertriangle = 0xf61c, + rv = 0xf7be, + sack = 0xf81c, + sackdollar = 0xf81d, + salad = 0xf81e, + sandwich = 0xf81f, + sausage = 0xf820, + scalpel = 0xf61d, + scalpelpath = 0xf61e, + scanner = 0xf488, + scannerkeyboard = 0xf489, + scannertouchscreen = 0xf48a, + scarecrow = 0xf70d, + scarf = 0xf7c1, + scrollold = 0xf70f, + scrubber = 0xf2f8, + scythe = 0xf710, + sendback = 0xf87e, + sendbackward = 0xf87f, + shareall = 0xf367, + sheep = 0xf711, + shield = 0xf132, + shieldcheck = 0xf2f7, + shieldcross = 0xf712, + shippingtimed = 0xf48c, + shishkebab = 0xf821, + shovel = 0xf713, + shovelsnow = 0xf7c3, + shredder = 0xf68a, + shuttlecock = 0xf45b, + sickle = 0xf822, + sigma = 0xf68b, + signal1 = 0xf68c, + signal2 = 0xf68d, + signal3 = 0xf68e, + signal4 = 0xf68f, + signalalt = 0xf690, + signalalt1 = 0xf691, + signalalt2 = 0xf692, + signalalt3 = 0xf693, + signalaltslash = 0xf694, + signalslash = 0xf695, + signin = 0xf090, + signout = 0xf08b, + skeleton = 0xf620, + skijump = 0xf7c7, + skilift = 0xf7c8, + sledding = 0xf7cb, + slidershsquare = 0xf3f0, + slidersv = 0xf3f1, + slidersvsquare = 0xf3f2, + smileplus = 0xf5b9, + smoke = 0xf760, + snake = 0xf716, + snooze = 0xf880, + snowblowing = 0xf761, + snowflakes = 0xf7cf, + snowmobile = 0xf7d1, + sortalt = 0xf883, + sortshapesdown = 0xf888, + sortshapesdownalt = 0xf889, + sortshapesup = 0xf88a, + sortshapesupalt = 0xf88b, + sortsizedown = 0xf88c, + sortsizedownalt = 0xf88d, + sortsizeup = 0xf88e, + sortsizeupalt = 0xf88f, + soup = 0xf823, + spade = 0xf2f4, + sparkles = 0xf890, + spiderblackwidow = 0xf718, + spiderweb = 0xf719, + spinnerthird = 0xf3f4, + squareroot = 0xf697, + squirrel = 0xf71a, + staff = 0xf71b, + starchristmas = 0xf7d4, + starexclamation = 0xf2f3, + stars = 0xf762, + steak = 0xf824, + steeringwheel = 0xf622, + stocking = 0xf7d5, + stomach = 0xf623, + stretcher = 0xf825, + suncloud = 0xf763, + sundust = 0xf764, + sunglasses = 0xf892, + sunhaze = 0xf765, + sunrise = 0xf766, + sunset = 0xf767, + sword = 0xf71c, + swords = 0xf71d, + tabletandroid = 0xf3fb, + tabletandroidalt = 0xf3fc, + tabletrugged = 0xf48f, + tachometer = 0xf0e4, + tachometeraltaverage = 0xf624, + tachometeraltfast = 0xf625, + tachometeraltfastest = 0xf626, + tachometeraltslow = 0xf627, + tachometeraltslowest = 0xf628, + tachometeraverage = 0xf629, + tachometerfast = 0xf62a, + tachometerfastest = 0xf62b, + tachometerslow = 0xf62c, + tachometerslowest = 0xf62d, + taco = 0xf826, + tally = 0xf69c, + tanakh = 0xf827, + tasksalt = 0xf828, + temperaturefrigid = 0xf768, + temperaturehot = 0xf76a, + tennisball = 0xf45e, + text = 0xf893, + textsize = 0xf894, + theta = 0xf69e, + thunderstorm = 0xf76c, + thunderstormmoon = 0xf76d, + thunderstormsun = 0xf76e, + ticket = 0xf145, + tilde = 0xf69f, + timeshexagon = 0xf2ee, + timesoctagon = 0xf2f0, + timessquare = 0xf2d3, + tire = 0xf631, + tireflat = 0xf632, + tirepressurewarning = 0xf633, + tirerugged = 0xf634, + toiletpaperalt = 0xf71f, + tombstone = 0xf720, + tombstonealt = 0xf721, + toothbrush = 0xf635, + tornado = 0xf76f, + trafficcone = 0xf636, + trafficlightgo = 0xf638, + trafficlightslow = 0xf639, + trafficlightstop = 0xf63a, + trashundo = 0xf895, + trashundoalt = 0xf896, + treasurechest = 0xf723, + treealt = 0xf400, + treechristmas = 0xf7db, + treedecorated = 0xf7dc, + treelarge = 0xf7dd, + treepalm = 0xf82b, + trees = 0xf724, + triangle = 0xf2ec, + trophyalt = 0xf2eb, + truckcontainer = 0xf4dc, + truckcouch = 0xf4dd, + truckplow = 0xf7de, + truckramp = 0xf4e0, + turkey = 0xf725, + turtle = 0xf726, + tvretro = 0xf401, + unicorn = 0xf727, + unionp = 0xf6a2, + usdcircle = 0xf2e8, + usdsquare = 0xf2e9, + userchart = 0xf6a3, + usercrown = 0xf6a4, + userhardhat = 0xf82c, + userheadset = 0xf82d, + usermdchat = 0xf82e, + usersclass = 0xf63d, + userscrown = 0xf6a5, + usersmedical = 0xf830, + utensilfork = 0xf2e3, + utensilknife = 0xf2e4, + utensilsalt = 0xf2e6, + valueabsolute = 0xf6a6, + videoplus = 0xf4e1, + volcano = 0xf770, + volume = 0xf6a8, + volumeslash = 0xf2e2, + votenay = 0xf771, + walker = 0xf831, + wand = 0xf72a, + wandmagic = 0xf72b, + warehousealt = 0xf495, + washer = 0xf898, + watch = 0xf2e1, + watchfitness = 0xf63e, + waterlower = 0xf774, + waterrise = 0xf775, + wavesine = 0xf899, + wavetriangle = 0xf89a, + webcam = 0xf832, + webcamslash = 0xf833, + whale = 0xf72c, + wheat = 0xf72d, + whistle = 0xf460, + wifi1 = 0xf6aa, + wifi2 = 0xf6ab, + wifislash = 0xf6ac, + window = 0xf40e, + windowalt = 0xf40f, + windsock = 0xf777, + windturbine = 0xf89b, + windwarning = 0xf776, + wreath = 0xf7e2 + }; +#endif + + enum brands { + fa_500px = 0xf26e, + accessibleicon = 0xf368, + accusoft = 0xf369, + acquisitionsincorporated = 0xf6af, + adn = 0xf170, + adobe = 0xf778, + adversal = 0xf36a, + affiliatetheme = 0xf36b, + airbnb = 0xf834, + algolia = 0xf36c, + alipay = 0xf642, + amazon = 0xf270, + amazonpay = 0xf42c, + amilia = 0xf36d, + android = 0xf17b, + angellist = 0xf209, + angrycreative = 0xf36e, + angular = 0xf420, + appstore = 0xf36f, + appstoreios = 0xf370, + apper = 0xf371, + apple = 0xf179, + applepay = 0xf415, + artstation = 0xf77a, + asymmetrik = 0xf372, + atlassian = 0xf77b, + audible = 0xf373, + autoprefixer = 0xf41c, + avianex = 0xf374, + aviato = 0xf421, + aws = 0xf375, + bandcamp = 0xf2d5, + battlenet = 0xf835, + behance = 0xf1b4, + behancesquare = 0xf1b5, + bimobject = 0xf378, + bitbucket = 0xf171, + bitcoin = 0xf379, + bity = 0xf37a, + blacktie = 0xf27e, + blackberry = 0xf37b, + blogger = 0xf37c, + bloggerb = 0xf37d, + bluetooth = 0xf293, + bluetoothb = 0xf294, + bootstrap = 0xf836, + btc = 0xf15a, + buffer = 0xf837, + buromobelexperte = 0xf37f, + buysellads = 0xf20d, + canadianmapleleaf = 0xf785, + ccamazonpay = 0xf42d, + ccamex = 0xf1f3, + ccapplepay = 0xf416, + ccdinersclub = 0xf24c, + ccdiscover = 0xf1f2, + ccjcb = 0xf24b, + ccmastercard = 0xf1f1, + ccpaypal = 0xf1f4, + ccstripe = 0xf1f5, + ccvisa = 0xf1f0, + centercode = 0xf380, + centos = 0xf789, + chrome = 0xf268, + chromecast = 0xf838, + cloudscale = 0xf383, + cloudsmith = 0xf384, + cloudversify = 0xf385, + codepen = 0xf1cb, + codiepie = 0xf284, + confluence = 0xf78d, + connectdevelop = 0xf20e, + contao = 0xf26d, + cottonbureau = 0xf89e, + cpanel = 0xf388, + creativecommons = 0xf25e, + creativecommonsby = 0xf4e7, + creativecommonsnc = 0xf4e8, + creativecommonsnceu = 0xf4e9, + creativecommonsncjp = 0xf4ea, + creativecommonsnd = 0xf4eb, + creativecommonspd = 0xf4ec, + creativecommonspdalt = 0xf4ed, + creativecommonsremix = 0xf4ee, + creativecommonssa = 0xf4ef, + creativecommonssampling = 0xf4f0, + creativecommonssamplingplus = 0xf4f1, + creativecommonsshare = 0xf4f2, + creativecommonszero = 0xf4f3, + criticalrole = 0xf6c9, + css3 = 0xf13c, + css3alt = 0xf38b, + cuttlefish = 0xf38c, + dandd = 0xf38d, + danddbeyond = 0xf6ca, + dashcube = 0xf210, + delicious = 0xf1a5, + deploydog = 0xf38e, + deskpro = 0xf38f, + dev = 0xf6cc, + deviantart = 0xf1bd, + dhl = 0xf790, + diaspora = 0xf791, + digg = 0xf1a6, + digitalocean = 0xf391, + discord = 0xf392, + discourse = 0xf393, + dochub = 0xf394, + docker = 0xf395, + draft2digital = 0xf396, + dribbble = 0xf17d, + dribbblesquare = 0xf397, + dropbox = 0xf16b, + drupal = 0xf1a9, + dyalog = 0xf399, + earlybirds = 0xf39a, + ebay = 0xf4f4, + edge = 0xf282, + elementor = 0xf430, + ello = 0xf5f1, + ember = 0xf423, + empire = 0xf1d1, + envira = 0xf299, + erlang = 0xf39d, + ethereum = 0xf42e, + etsy = 0xf2d7, + evernote = 0xf839, + expeditedssl = 0xf23e, + facebook = 0xf09a, + facebookf = 0xf39e, + facebookmessenger = 0xf39f, + facebooksquare = 0xf082, + fantasyflightgames = 0xf6dc, + fedex = 0xf797, + fedora = 0xf798, + figma = 0xf799, + firefox = 0xf269, + firstorder = 0xf2b0, + firstorderalt = 0xf50a, + firstdraft = 0xf3a1, + flickr = 0xf16e, + flipboard = 0xf44d, + fly = 0xf417, + fontawesome = 0xf2b4, + fontawesomealt = 0xf35c, + fontawesomeflag = 0xf425, + fonticons = 0xf280, + fonticonsfi = 0xf3a2, + fortawesome = 0xf286, + fortawesomealt = 0xf3a3, + forumbee = 0xf211, + foursquare = 0xf180, + freecodecamp = 0xf2c5, + freebsd = 0xf3a4, + fulcrum = 0xf50b, + galacticrepublic = 0xf50c, + galacticsenate = 0xf50d, + getpocket = 0xf265, + gg = 0xf260, + ggcircle = 0xf261, + git = 0xf1d3, + gitalt = 0xf841, + gitsquare = 0xf1d2, + github = 0xf09b, + githubalt = 0xf113, + githubsquare = 0xf092, + gitkraken = 0xf3a6, + gitlab = 0xf296, + gitter = 0xf426, + glide = 0xf2a5, + glideg = 0xf2a6, + gofore = 0xf3a7, + goodreads = 0xf3a8, + goodreadsg = 0xf3a9, + google = 0xf1a0, + googledrive = 0xf3aa, + googleplay = 0xf3ab, + googleplus = 0xf2b3, + googleplusg = 0xf0d5, + googleplussquare = 0xf0d4, + googlewallet = 0xf1ee, + gratipay = 0xf184, + grav = 0xf2d6, + gripfire = 0xf3ac, + grunt = 0xf3ad, + gulp = 0xf3ae, + hackernews = 0xf1d4, + hackernewssquare = 0xf3af, + hackerrank = 0xf5f7, + hips = 0xf452, + hireahelper = 0xf3b0, + hooli = 0xf427, + hornbill = 0xf592, + hotjar = 0xf3b1, + houzz = 0xf27c, + html5 = 0xf13b, + hubspot = 0xf3b2, + imdb = 0xf2d8, + instagram = 0xf16d, + intercom = 0xf7af, + internetexplorer = 0xf26b, + invision = 0xf7b0, + ioxhost = 0xf208, + itchio = 0xf83a, + itunes = 0xf3b4, + itunesnote = 0xf3b5, + java = 0xf4e4, + jediorder = 0xf50e, + jenkins = 0xf3b6, + jira = 0xf7b1, + joget = 0xf3b7, + joomla = 0xf1aa, + js = 0xf3b8, + jssquare = 0xf3b9, + jsfiddle = 0xf1cc, + kaggle = 0xf5fa, + keybase = 0xf4f5, + keycdn = 0xf3ba, + kickstarter = 0xf3bb, + kickstarterk = 0xf3bc, + korvue = 0xf42f, + laravel = 0xf3bd, + lastfm = 0xf202, + lastfmsquare = 0xf203, + leanpub = 0xf212, + less = 0xf41d, + line = 0xf3c0, + linkedin = 0xf08c, + linkedinin = 0xf0e1, + linode = 0xf2b8, + linux = 0xf17c, + lyft = 0xf3c3, + magento = 0xf3c4, + mailchimp = 0xf59e, + mandalorian = 0xf50f, + markdown = 0xf60f, + mastodon = 0xf4f6, + maxcdn = 0xf136, + medapps = 0xf3c6, + medium = 0xf23a, + mediumm = 0xf3c7, + medrt = 0xf3c8, + meetup = 0xf2e0, + megaport = 0xf5a3, + mendeley = 0xf7b3, + microsoft = 0xf3ca, + mix = 0xf3cb, + mixcloud = 0xf289, + mizuni = 0xf3cc, + modx = 0xf285, + monero = 0xf3d0, + napster = 0xf3d2, + neos = 0xf612, + nimblr = 0xf5a8, + node = 0xf419, + nodejs = 0xf3d3, + npm = 0xf3d4, + ns8 = 0xf3d5, + nutritionix = 0xf3d6, + odnoklassniki = 0xf263, + odnoklassnikisquare = 0xf264, + oldrepublic = 0xf510, + opencart = 0xf23d, + openid = 0xf19b, + opera = 0xf26a, + optinmonster = 0xf23c, + osi = 0xf41a, + page4 = 0xf3d7, + pagelines = 0xf18c, + palfed = 0xf3d8, + patreon = 0xf3d9, + paypal = 0xf1ed, + pennyarcade = 0xf704, + periscope = 0xf3da, + phabricator = 0xf3db, + phoenixframework = 0xf3dc, + phoenixsquadron = 0xf511, + php = 0xf457, + piedpiper = 0xf2ae, + piedpiperalt = 0xf1a8, + piedpiperhat = 0xf4e5, + piedpiperpp = 0xf1a7, + pinterest = 0xf0d2, + pinterestp = 0xf231, + pinterestsquare = 0xf0d3, + playstation = 0xf3df, + producthunt = 0xf288, + pushed = 0xf3e1, + python = 0xf3e2, + qq = 0xf1d6, + quinscape = 0xf459, + quora = 0xf2c4, + rproject = 0xf4f7, + raspberrypi = 0xf7bb, + ravelry = 0xf2d9, + react = 0xf41b, + reacteurope = 0xf75d, + readme = 0xf4d5, + rebel = 0xf1d0, + redriver = 0xf3e3, + reddit = 0xf1a1, + redditalien = 0xf281, + redditsquare = 0xf1a2, + redhat = 0xf7bc, + renren = 0xf18b, + replyd = 0xf3e6, + researchgate = 0xf4f8, + resolving = 0xf3e7, + rev = 0xf5b2, + rocketchat = 0xf3e8, + rockrms = 0xf3e9, + safari = 0xf267, + salesforce = 0xf83b, + sass = 0xf41e, + schlix = 0xf3ea, + scribd = 0xf28a, + searchengin = 0xf3eb, + sellcast = 0xf2da, + sellsy = 0xf213, + servicestack = 0xf3ec, + shirtsinbulk = 0xf214, + shopware = 0xf5b5, + simplybuilt = 0xf215, + sistrix = 0xf3ee, + sith = 0xf512, + sketch = 0xf7c6, + skyatlas = 0xf216, + skype = 0xf17e, + slack = 0xf198, + slackhash = 0xf3ef, + slideshare = 0xf1e7, + snapchat = 0xf2ab, + snapchatghost = 0xf2ac, + snapchatsquare = 0xf2ad, + soundcloud = 0xf1be, + sourcetree = 0xf7d3, + speakap = 0xf3f3, + speakerdeck = 0xf83c, + spotify = 0xf1bc, + squarespace = 0xf5be, + stackexchange = 0xf18d, + stackoverflow = 0xf16c, + stackpath = 0xf842, + staylinked = 0xf3f5, + steam = 0xf1b6, + steamsquare = 0xf1b7, + steamsymbol = 0xf3f6, + stickermule = 0xf3f7, + strava = 0xf428, + stripe = 0xf429, + stripes = 0xf42a, + studiovinari = 0xf3f8, + stumbleupon = 0xf1a4, + stumbleuponcircle = 0xf1a3, + superpowers = 0xf2dd, + supple = 0xf3f9, + suse = 0xf7d6, + symfony = 0xf83d, + teamspeak = 0xf4f9, + telegram = 0xf2c6, + telegramplane = 0xf3fe, + tencentweibo = 0xf1d5, + theredyeti = 0xf69d, + themeco = 0xf5c6, + themeisle = 0xf2b2, + thinkpeaks = 0xf731, + tradefederation = 0xf513, + trello = 0xf181, + tripadvisor = 0xf262, + tumblr = 0xf173, + tumblrsquare = 0xf174, + twitch = 0xf1e8, + twitter = 0xf099, + twittersquare = 0xf081, + typo3 = 0xf42b, + uber = 0xf402, + ubuntu = 0xf7df, + uikit = 0xf403, + uniregistry = 0xf404, + untappd = 0xf405, + ups = 0xf7e0, + usb = 0xf287, + usps = 0xf7e1, + ussunnah = 0xf407, + vaadin = 0xf408, + viacoin = 0xf237, + viadeo = 0xf2a9, + viadeosquare = 0xf2aa, + viber = 0xf409, + vimeo = 0xf40a, + vimeosquare = 0xf194, + vimeov = 0xf27d, + vine = 0xf1ca, + vk = 0xf189, + vnv = 0xf40b, + vuejs = 0xf41f, + waze = 0xf83f, + weebly = 0xf5cc, + weibo = 0xf18a, + weixin = 0xf1d7, + whatsapp = 0xf232, + whatsappsquare = 0xf40c, + whmcs = 0xf40d, + wikipediaw = 0xf266, + windows = 0xf17a, + wix = 0xf5cf, + wizardsofthecoast = 0xf730, + wolfpackbattalion = 0xf514, + wordpress = 0xf19a, + wordpresssimple = 0xf411, + wpbeginner = 0xf297, + wpexplorer = 0xf2de, + wpforms = 0xf298, + wpressr = 0xf3e4, + xbox = 0xf412, + xing = 0xf168, + xingsquare = 0xf169, + ycombinator = 0xf23b, + yahoo = 0xf19e, + yammer = 0xf840, + yandex = 0xf413, + yandexinternational = 0xf414, + yarn = 0xf7e3, + yelp = 0xf1e9, + yoast = 0xf2b1, + youtube = 0xf167, + youtubesquare = 0xf431, + zhihu = 0xf63f }; } @@ -822,40 +2139,75 @@ class QtAwesomeIconPainter; /// This class requires a 2-phase construction. You must first create the class and then initialize it via an init* method class QtAwesome : public QObject { -Q_OBJECT + Q_OBJECT +public: + static const QString FAB_FONT_FILENAME; + static const QString FAR_FONT_FILENAME; + static const QString FAS_FONT_FILENAME; +#ifdef FONT_AWESOME_PRO + static const QString FAL_FONT_FILENAME; + static const QString FAD_FONT_FILENAME; + static const int DUOTONE_HEX_ICON_VALUE = 0x100000; +#else + static const int FREE_REGULAR_ICON_SIZE = 151; +#endif public: - explicit QtAwesome(QObject *parent = 0); + explicit QtAwesome(QObject *parent = nullptr); virtual ~QtAwesome(); - void init( const QString& fontname ); bool initFontAwesome(); - void addNamedCodepoint( const QString& name, int codePoint ); - QHash namedCodePoints() { return namedCodepoints_; } + const QHash namedCodePoints(style::styles st) const; - void setDefaultOption( const QString& name, const QVariant& value ); + void setDefaultOption( const QString& name, const QVariant& value ); QVariant defaultOption( const QString& name ); - QIcon icon( int character, const QVariantMap& options = QVariantMap() ); - QIcon icon( const QString& name, const QVariantMap& options = QVariantMap() ); + QIcon icon(int st, int character, const QVariantMap& options = QVariantMap() ); + QIcon icon(const QString& name, const QVariantMap& options = QVariantMap() ); QIcon icon(QtAwesomeIconPainter* painter, const QVariantMap& optionMap = QVariantMap() ); void give( const QString& name, QtAwesomeIconPainter* painter ); - QFont font( int size ); + QFont font(style::styles st, int size ) const; /// Returns the font-name that is used as icon-map - QString fontName() { return fontName_ ; } + QString fontName(style::styles st) const; private: - QString fontName_; ///< The font name used for this map - QHash namedCodepoints_; ///< A map with names mapped to code-points + int stringToStyleEnum(const QString st) const; + const QString styleEnumToString(int st) const; - QHash painterMap_; ///< A map of custom painters - QVariantMap defaultOptions_; ///< The default icon options - QtAwesomeIconPainter* fontIconPainter_; ///< A special painter fo painting codepoints +private: + class FontData{ + private: + QString _fontFamily; + QString _fontFilename; + int _fontId; + + public: + FontData() : FontData(QString()){ + + } + FontData(const QString &fontFileName){ + _fontFilename = fontFileName; + _fontFamily = QString(); + _fontId = -1; + } + const QString& fontFamily() const { return _fontFamily; } + void setFontFamily(const QString &family) { _fontFamily = family; } + const QString& fontFilename() const { return _fontFilename; } + int fontId() const { return _fontId; } + void setFontId(int id) { _fontId = id; } + }; + + QHash _fontDetails; ///< The fonts name used for each style + QHash*> _namedCodepoints; ///< A map with names mapped to code-points for each style + + QHash _painterMap; ///< A map of custom painters + QVariantMap _defaultOptions; ///< The default icon options + QtAwesomeIconPainter* _fontIconPainter; ///< A special painter fo painting codepoints }; @@ -867,7 +2219,7 @@ private: class QtAwesomeIconPainter { public: - virtual ~QtAwesomeIconPainter() {} + virtual ~QtAwesomeIconPainter(); virtual void paint( QtAwesome* awesome, QPainter* painter, const QRect& rect, QIcon::Mode mode, QIcon::State state, const QVariantMap& options ) = 0; }; diff --git a/QtAwesome/QtAwesome.pri b/QtAwesome/QtAwesome.pri index caef09b..e0d16ac 100644 --- a/QtAwesome/QtAwesome.pri +++ b/QtAwesome/QtAwesome.pri @@ -1,3 +1,10 @@ +defineReplace( resourcesForConfig ){ + return($$PWD/QtAwesome$$eval($$1).qrc) +} + +options = $$find(CONFIG, fontAwesomePro) $$find(CONFIG, fontAwesomeFree) +count(options, 0) { error("fontAwesomePro or fontAwesomeFree should be defined") } +count(options, 2) { error("fontAwesomePro and fontAwesomeFree were defined, only one config is accepted") } INCLUDEPATH += $$PWD @@ -6,7 +13,18 @@ SOURCES += $$PWD/QtAwesome.cpp \ HEADERS += $$PWD/QtAwesome.h \ $$PWD/QtAwesomeAnim.h - -RESOURCES += $$PWD/QtAwesome.qrc + +CONFIG( fontAwesomePro ){ + config = Pro + RESOURCES += $$resourcesForConfig(config) + DEFINES += FONT_AWESOME_PRO=1 + !build_pass:message(using font awesome pro) +} + +CONFIG( fontAwesomeFree ){ + config = Free + RESOURCES += $$resourcesForConfig(config) + !build_pass:message(using font awesome free) +} diff --git a/QtAwesome/QtAwesome.pro b/QtAwesome/QtAwesome.pro index 4bf64d6..b89fe19 100644 --- a/QtAwesome/QtAwesome.pro +++ b/QtAwesome/QtAwesome.pro @@ -9,8 +9,10 @@ TEMPLATE = lib CONFIG += staticlib c++11 QT += widgets -SOURCES += QtAwesome.cpp QtAwesomeAnim.cpp -HEADERS += QtAwesome.h QtAwesomeAnim.h +# only one option must be enabled +#CONFIG += fontAwesomePro +CONFIG += fontAwesomeFree +include(QtAwesome.pri) isEmpty(PREFIX) { unix { @@ -24,6 +26,3 @@ install_headers.files = QtAwesome.h QtAwesomeAnim.h install_headers.path = $$PREFIX/include target.path = $$PREFIX/lib INSTALLS += install_headers target - -RESOURCES += \ - QtAwesome.qrc diff --git a/QtAwesome/QtAwesome.qrc b/QtAwesome/QtAwesome.qrc deleted file mode 100644 index db80a8e..0000000 --- a/QtAwesome/QtAwesome.qrc +++ /dev/null @@ -1,5 +0,0 @@ - - - fonts/fontawesome-4.7.0.ttf - - diff --git a/QtAwesome/QtAwesomeAnim.cpp b/QtAwesome/QtAwesomeAnim.cpp index 8ad44b6..fb593f9 100644 --- a/QtAwesome/QtAwesomeAnim.cpp +++ b/QtAwesome/QtAwesomeAnim.cpp @@ -9,7 +9,7 @@ QtAwesomeAnimation::QtAwesomeAnimation(QWidget *parentWidget, int interval, int step) : parentWidgetRef_( parentWidget ) - , timer_( 0 ) + , timer_( nullptr ) , interval_( interval ) , step_( step ) , angle_( 0.0f ) @@ -29,11 +29,11 @@ void QtAwesomeAnimation::setup( QPainter &painter, const QRect &rect) else { //timer, angle, self.step = self.info[self.parent_widget] - float x_center = rect.width() * 0.5; - float y_center = rect.height() * 0.5; - painter.translate(x_center, y_center); - painter.rotate(angle_); - painter.translate(-x_center, -y_center); + float x_center = rect.width() * 0.5f; + float y_center = rect.height() * 0.5f; + painter.translate(static_cast(x_center), static_cast(y_center)); + painter.rotate(static_cast(angle_)); + painter.translate(static_cast(-x_center), -static_cast(y_center)); } } @@ -41,6 +41,6 @@ void QtAwesomeAnimation::setup( QPainter &painter, const QRect &rect) void QtAwesomeAnimation::update() { angle_ += step_; - angle_ = std::fmod( angle_, 360); + angle_ = std::fmod( static_cast(angle_), 360.0f); parentWidgetRef_->update(); } diff --git a/QtAwesome/QtAwesomeFree.qrc b/QtAwesome/QtAwesomeFree.qrc new file mode 100644 index 0000000..90a45dd --- /dev/null +++ b/QtAwesome/QtAwesomeFree.qrc @@ -0,0 +1,7 @@ + + + fonts/Font Awesome 5 Brands-Regular-400.otf + fonts/Font Awesome 5 Free-Regular-400.otf + fonts/Font Awesome 5 Free-Solid-900.otf + + diff --git a/QtAwesome/QtAwesomePro.qrc b/QtAwesome/QtAwesomePro.qrc new file mode 100644 index 0000000..e0bfaf7 --- /dev/null +++ b/QtAwesome/QtAwesomePro.qrc @@ -0,0 +1,9 @@ + + + fonts/Font Awesome 5 Brands-Regular-400.otf + fonts/Font Awesome 5 Duotone-Solid-900.otf + fonts/Font Awesome 5 Pro-Light-300.otf + fonts/Font Awesome 5 Pro-Regular-400.otf + fonts/Font Awesome 5 Pro-Solid-900.otf + + diff --git a/QtAwesome/fonts/Font Awesome 5 Brands-Regular-400.otf b/QtAwesome/fonts/Font Awesome 5 Brands-Regular-400.otf new file mode 100644 index 0000000..6bf2947 Binary files /dev/null and b/QtAwesome/fonts/Font Awesome 5 Brands-Regular-400.otf differ diff --git a/QtAwesome/fonts/Font Awesome 5 Free-Regular-400.otf b/QtAwesome/fonts/Font Awesome 5 Free-Regular-400.otf new file mode 100644 index 0000000..dafeeef Binary files /dev/null and b/QtAwesome/fonts/Font Awesome 5 Free-Regular-400.otf differ diff --git a/QtAwesome/fonts/Font Awesome 5 Free-Solid-900.otf b/QtAwesome/fonts/Font Awesome 5 Free-Solid-900.otf new file mode 100644 index 0000000..cfc57ff Binary files /dev/null and b/QtAwesome/fonts/Font Awesome 5 Free-Solid-900.otf differ diff --git a/QtAwesome/fonts/fontawesome-4.7.0.ttf b/QtAwesome/fonts/fontawesome-4.7.0.ttf deleted file mode 100644 index 35acda2..0000000 Binary files a/QtAwesome/fonts/fontawesome-4.7.0.ttf and /dev/null differ diff --git a/QtAwesomeSample/QtAwesomeSample.pro b/QtAwesomeSample/QtAwesomeSample.pro index 3f9082a..67dcb71 100644 --- a/QtAwesomeSample/QtAwesomeSample.pro +++ b/QtAwesomeSample/QtAwesomeSample.pro @@ -11,10 +11,17 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = QtAwesomeSample TEMPLATE = app +SOURCES += main.cpp \ + mainwindow.cpp -SOURCES += main.cpp - -HEADERS += +HEADERS += \ + mainwindow.h +# only one option must be enabled +#CONFIG += fontAwesomePro +CONFIG += fontAwesomeFree include(../QtAwesome/QtAwesome.pri) + +FORMS += \ + mainwindow.ui diff --git a/QtAwesomeSample/main.cpp b/QtAwesomeSample/main.cpp index 1c4be1d..5a5998f 100644 --- a/QtAwesomeSample/main.cpp +++ b/QtAwesomeSample/main.cpp @@ -12,52 +12,13 @@ #include #include #include +#include "mainwindow.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); - QMainWindow w; + MainWindow w; - QtAwesome* awesome = new QtAwesome(&w); - awesome->initFontAwesome(); - - QVBoxLayout* layout = new QVBoxLayout(); - - // a simple beer button - //===================== - { - QPushButton* beerButton = new QPushButton( "Cheers!"); - - QVariantMap options; - options.insert("anim", qVariantFromValue( new QtAwesomeAnimation(beerButton) ) ); - beerButton->setIcon( awesome->icon( fa::beer, options ) ); - - layout->addWidget(beerButton); - } - - // a simple beer checkbox button - //============================== - { - QPushButton* toggleButton = new QPushButton("Toggle Me"); - toggleButton->setCheckable(true); - - QVariantMap options; - options.insert("color", QColor(Qt::green) ); - options.insert("text-off", QString(fa::squareo) ); - options.insert("color-off", QColor(Qt::red) ); - toggleButton->setIcon( awesome->icon( fa::checksquareo, options )); - - - layout->addWidget(toggleButton); - } - - - // add the samples - QWidget* samples = new QWidget(); - samples->setLayout(layout); - w.setCentralWidget(samples); - - w.show(); - + w.show(); return app.exec(); } diff --git a/QtAwesomeSample/mainwindow.cpp b/QtAwesomeSample/mainwindow.cpp new file mode 100644 index 0000000..c10f14c --- /dev/null +++ b/QtAwesomeSample/mainwindow.cpp @@ -0,0 +1,89 @@ +#include "mainwindow.h" +#include "ui_mainwindow.h" +#include "QtAwesome.h" +#include +#include + +MainWindow::MainWindow(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::MainWindow) +{ + ui->setupUi(this); + awesome = new QtAwesome(this); + awesome->initFontAwesome(); + + for(int st=style::fas; st<=style::fab; st++){ + switch(st){ + case style::fab: + ui->comboBox->insertItem(style::fab, "Brands", style::fab); + break; + case style::far: + ui->comboBox->insertItem(style::far, "Regular", style::far); + break; + case style::fas: + ui->comboBox->insertItem(style::fas, "Solid", style::fas); + break; +#ifdef FONT_AWESOME_PRO + case style::fal: + ui->comboBox->insertItem(style::fal, "Light", style::fal); + break; + case style::fad: + ui->comboBox->insertItem(style::fad, "Duotone", style::fad); + break; +#endif + } + } + + // a simple beer button + //===================== + { + QPushButton* beerButton = ui->beerButton; + + QVariantMap options; + options.insert("anim", qVariantFromValue( new QtAwesomeAnimation(beerButton) ) ); + beerButton->setIcon( awesome->icon( "fas beer", options ) ); + } + + // a simple beer checkbox button + //============================== + { + QPushButton* toggleButton = ui->toggleButton; + toggleButton->setCheckable(true); + + QVariantMap options; + options.insert("color", QColor(Qt::green) ); + options.insert("text-off", QString(fa::square) ); + options.insert("color-off", QColor(Qt::red) ); + toggleButton->setIcon( awesome->icon( "far check-square", options )); + } + + QStandardItemModel *model = new QStandardItemModel(this); + ui->listView->setModel(model); + + connect(ui->comboBox, SIGNAL(activated(int)), this, SLOT(styleChanged(int))); + ui->comboBox->setCurrentIndex(style::fab); + styleChanged(style::fab); +} + +MainWindow::~MainWindow() +{ + delete ui; +} + +void MainWindow::styleChanged(int index) +{ + + QHash iconset = awesome->namedCodePoints(static_cast(index)); + + QStandardItemModel *model = dynamic_cast(ui->listView->model()); + model->clear(); + + for(QHash::iterator i=iconset.begin();i!=iconset.end();++i) + { + QString name = i.key(); + int ic = i.value(); + + model->appendRow(new QStandardItem(awesome->icon(index, ic), name)); + } + model->sort(0); +} diff --git a/QtAwesomeSample/mainwindow.h b/QtAwesomeSample/mainwindow.h new file mode 100644 index 0000000..11ed2cb --- /dev/null +++ b/QtAwesomeSample/mainwindow.h @@ -0,0 +1,27 @@ +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include +#include "QtAwesome.h" + +namespace Ui { +class MainWindow; +} + +class MainWindow : public QMainWindow +{ + Q_OBJECT + +public: + explicit MainWindow(QWidget *parent = nullptr); + ~MainWindow(); + +public slots: + void styleChanged(int index); + +private: + Ui::MainWindow *ui; + QtAwesome* awesome; +}; + +#endif // MAINWINDOW_H diff --git a/QtAwesomeSample/mainwindow.ui b/QtAwesomeSample/mainwindow.ui new file mode 100644 index 0000000..d99134a --- /dev/null +++ b/QtAwesomeSample/mainwindow.ui @@ -0,0 +1,86 @@ + + + MainWindow + + + + 0 + 0 + 750 + 433 + + + + + 0 + 0 + + + + MainWindow + + + + + + + + + + + + + QListView::IconMode + + + + + + + + 0 + 50 + + + + + + + + 0 + 30 + + + + Cheers! + + + + + + + + 0 + 30 + + + + Toggle Me! + + + true + + + + + + + + + + + + + + +