Просмотр исходного кода

Refactor icon usage (#192)

You must now use eg. class="ico ico-square" to display a square icon
Made new... context menus show icons when available
Leonardo Jeanteur 4 лет назад
Родитель
Сommit
e0b3ca3728

+ 1 - 1
bin/app.html

@@ -9,7 +9,7 @@
 <link rel="stylesheet" type="text/css" href="style.css"/>
 <link rel="stylesheet" type="text/css" href="style.css"/>
 <link rel="stylesheet" type="text/css" href="cdb.css"/>
 <link rel="stylesheet" type="text/css" href="cdb.css"/>
 <link rel="stylesheet" type="text/css" href="libs/jstree/default-dark/style.css"/>
 <link rel="stylesheet" type="text/css" href="libs/jstree/default-dark/style.css"/>
-<link rel="stylesheet" type="text/css" href="libs/font-awesome.css"/>
+<link rel="stylesheet" type="text/css" href="icons.css"/>
 <link rel="stylesheet" type="text/css" href="libs/spectrum.css"/>
 <link rel="stylesheet" type="text/css" href="libs/spectrum.css"/>
 <link rel="stylesheet" type="text/css" href="libs/select2.css"/>
 <link rel="stylesheet" type="text/css" href="libs/select2.css"/>
 <link rel="stylesheet" data-name="vs/editor/editor.main" href="libs/monaco/vs/editor/editor.main.css">
 <link rel="stylesheet" data-name="vs/editor/editor.main" href="libs/monaco/vs/editor/editor.main.css">

+ 3156 - 0
bin/icons.css

@@ -0,0 +1,3156 @@
+/**
+    Imports all fontawesome icons into the custom icon system for hide
+    Icons available as fa-iconname are now available as ico-iconname
+    This was generated manually using multi-edit.
+**/
+/*!
+ *  Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
+ *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */
+/* FONT PATH
+ * -------------------------- */
+@font-face {
+  font-family: 'FontAwesome';
+  src: url('libs/fontawesome-webfont.eot?v=4.7.0');
+  src: url('libs/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('libs/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('libs/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('libs/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('libs/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');
+  font-weight: normal;
+  font-style: normal;
+}
+.fa,
+.ico {
+  display: inline-block;
+  font: normal normal normal 14px/1 FontAwesome;
+  font-size: inherit;
+  text-rendering: auto;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+/* makes the font 33% larger relative to the icon container */
+.fa-lg {
+  font-size: 1.33333333em;
+  line-height: 0.75em;
+  vertical-align: -15%;
+}
+.fa-2x {
+  font-size: 2em;
+}
+.fa-3x {
+  font-size: 3em;
+}
+.fa-4x {
+  font-size: 4em;
+}
+.fa-5x {
+  font-size: 5em;
+}
+.fa-fw {
+  width: 1.28571429em;
+  text-align: center;
+}
+.fa-ul {
+  padding-left: 0;
+  margin-left: 2.14285714em;
+  list-style-type: none;
+}
+.fa-ul > li {
+  position: relative;
+}
+.fa-li {
+  position: absolute;
+  left: -2.14285714em;
+  width: 2.14285714em;
+  top: 0.14285714em;
+  text-align: center;
+}
+.fa-li.fa-lg {
+  left: -1.85714286em;
+}
+.fa-border {
+  padding: 0.2em 0.25em 0.15em;
+  border: solid 0.08em #eeeeee;
+  border-radius: 0.1em;
+}
+.fa-pull-left {
+  float: left;
+}
+.fa-pull-right {
+  float: right;
+}
+.fa.fa-pull-left {
+  margin-right: 0.3em;
+}
+.fa.fa-pull-right {
+  margin-left: 0.3em;
+}
+/* Deprecated as of 4.4.0 */
+.pull-right {
+  float: right;
+}
+.pull-left {
+  float: left;
+}
+.fa.pull-left {
+  margin-right: 0.3em;
+}
+.fa.pull-right {
+  margin-left: 0.3em;
+}
+.fa-spin {
+  -webkit-animation: fa-spin 2s infinite linear;
+  animation: fa-spin 2s infinite linear;
+}
+.fa-pulse {
+  -webkit-animation: fa-spin 1s infinite steps(8);
+  animation: fa-spin 1s infinite steps(8);
+}
+@-webkit-keyframes fa-spin {
+  0% {
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+  100% {
+    -webkit-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}
+@keyframes fa-spin {
+  0% {
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+  100% {
+    -webkit-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}
+.fa-rotate-90 {
+  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
+  -webkit-transform: rotate(90deg);
+  -ms-transform: rotate(90deg);
+  transform: rotate(90deg);
+}
+.fa-rotate-180 {
+  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
+  -webkit-transform: rotate(180deg);
+  -ms-transform: rotate(180deg);
+  transform: rotate(180deg);
+}
+.fa-rotate-270 {
+  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
+  -webkit-transform: rotate(270deg);
+  -ms-transform: rotate(270deg);
+  transform: rotate(270deg);
+}
+.fa-flip-horizontal {
+  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
+  -webkit-transform: scale(-1, 1);
+  -ms-transform: scale(-1, 1);
+  transform: scale(-1, 1);
+}
+.fa-flip-vertical {
+  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
+  -webkit-transform: scale(1, -1);
+  -ms-transform: scale(1, -1);
+  transform: scale(1, -1);
+}
+:root .fa-rotate-90,
+:root .fa-rotate-180,
+:root .fa-rotate-270,
+:root .fa-flip-horizontal,
+:root .fa-flip-vertical {
+  filter: none;
+}
+.fa-stack {
+  position: relative;
+  display: inline-block;
+  width: 2em;
+  height: 2em;
+  line-height: 2em;
+  vertical-align: middle;
+}
+.fa-stack-1x,
+.fa-stack-2x {
+  position: absolute;
+  left: 0;
+  width: 100%;
+  text-align: center;
+}
+.fa-stack-1x {
+  line-height: inherit;
+}
+.fa-stack-2x {
+  font-size: 2em;
+}
+.fa-inverse {
+  color: #ffffff;
+}
+/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
+   readers do not read off random characters that represent icons */
+.fa-glass:before,
+.ico-glass:before {
+  content: "\f000";
+}
+.fa-music:before,
+.ico-music:before {
+  content: "\f001";
+}
+.fa-search:before,
+.ico-search:before {
+  content: "\f002";
+}
+.fa-envelope-o:before,
+.ico-envelope-o:before {
+  content: "\f003";
+}
+.fa-heart:before,
+.ico-heart:before {
+  content: "\f004";
+}
+.fa-star:before,
+.ico-star:before {
+  content: "\f005";
+}
+.fa-star-o:before,
+.ico-star-o:before {
+  content: "\f006";
+}
+.fa-user:before,
+.ico-user:before {
+  content: "\f007";
+}
+.fa-film:before,
+.ico-film:before {
+  content: "\f008";
+}
+.fa-th-large:before,
+.ico-th-large:before {
+  content: "\f009";
+}
+.fa-th:before,
+.ico-th:before {
+  content: "\f00a";
+}
+.fa-th-list:before,
+.ico-th-list:before {
+  content: "\f00b";
+}
+.fa-check:before,
+.ico-check:before {
+  content: "\f00c";
+}
+.fa-remove:before,
+.fa-close:before,
+.fa-times:before,
+.ico-remove:before,
+.ico-close:before,
+.ico-times:before {
+  content: "\f00d";
+}
+.fa-search-plus:before,
+.ico-search-plus:before {
+  content: "\f00e";
+}
+.fa-search-minus:before,
+.ico-search-minus:before {
+  content: "\f010";
+}
+.fa-power-off:before,
+.ico-power-off:before {
+  content: "\f011";
+}
+.fa-signal:before,
+.ico-signal:before {
+  content: "\f012";
+}
+.fa-gear:before,
+.fa-cog:before,
+.ico-gear:before,
+.ico-cog:before {
+  content: "\f013";
+}
+.fa-trash-o:before,
+.ico-trash-o:before {
+  content: "\f014";
+}
+.fa-home:before,
+.ico-home:before {
+  content: "\f015";
+}
+.fa-file-o:before,
+.ico-file-o:before {
+  content: "\f016";
+}
+.fa-clock-o:before,
+.ico-clock-o:before {
+  content: "\f017";
+}
+.fa-road:before,
+.ico-road:before {
+  content: "\f018";
+}
+.fa-download:before,
+.ico-download:before {
+  content: "\f019";
+}
+.fa-arrow-circle-o-down:before,
+.ico-arrow-circle-o-down:before {
+  content: "\f01a";
+}
+.fa-arrow-circle-o-up:before,
+.ico-arrow-circle-o-up:before {
+  content: "\f01b";
+}
+.fa-inbox:before,
+.ico-inbox:before {
+  content: "\f01c";
+}
+.fa-play-circle-o:before,
+.ico-play-circle-o:before {
+  content: "\f01d";
+}
+.fa-rotate-right:before,
+.fa-repeat:before,
+.ico-rotate-right:before,
+.ico-repeat:before {
+  content: "\f01e";
+}
+.fa-refresh:before,
+.ico-refresh:before {
+  content: "\f021";
+}
+.fa-list-alt:before,
+.ico-list-alt:before {
+  content: "\f022";
+}
+.fa-lock:before,
+.ico-lock:before {
+  content: "\f023";
+}
+.fa-flag:before,
+.ico-flag:before {
+  content: "\f024";
+}
+.fa-headphones:before,
+.ico-headphones:before {
+  content: "\f025";
+}
+.fa-volume-off:before,
+.ico-volume-off:before {
+  content: "\f026";
+}
+.fa-volume-down:before,
+.ico-volume-down:before {
+  content: "\f027";
+}
+.fa-volume-up:before,
+.ico-volume-up:before {
+  content: "\f028";
+}
+.fa-qrcode:before,
+.ico-qrcode:before {
+  content: "\f029";
+}
+.fa-barcode:before,
+.ico-barcode:before {
+  content: "\f02a";
+}
+.fa-tag:before,
+.ico-tag:before {
+  content: "\f02b";
+}
+.fa-tags:before,
+.ico-tags:before {
+  content: "\f02c";
+}
+.fa-book:before,
+.ico-book:before {
+  content: "\f02d";
+}
+.fa-bookmark:before,
+.ico-bookmark:before {
+  content: "\f02e";
+}
+.fa-print:before,
+.ico-print:before {
+  content: "\f02f";
+}
+.fa-camera:before,
+.ico-camera:before {
+  content: "\f030";
+}
+.fa-font:before,
+.ico-font:before {
+  content: "\f031";
+}
+.fa-bold:before,
+.ico-bold:before {
+  content: "\f032";
+}
+.fa-italic:before,
+.ico-italic:before {
+  content: "\f033";
+}
+.fa-text-height:before,
+.ico-text-height:before {
+  content: "\f034";
+}
+.fa-text-width:before,
+.ico-text-width:before {
+  content: "\f035";
+}
+.fa-align-left:before,
+.ico-align-left:before {
+  content: "\f036";
+}
+.fa-align-center:before,
+.ico-align-center:before {
+  content: "\f037";
+}
+.fa-align-right:before,
+.ico-align-right:before {
+  content: "\f038";
+}
+.fa-align-justify:before,
+.ico-align-justify:before {
+  content: "\f039";
+}
+.fa-list:before,
+.ico-list:before {
+  content: "\f03a";
+}
+.fa-dedent:before,
+.fa-outdent:before,
+.ico-dedent:before,
+.ico-outdent:before {
+  content: "\f03b";
+}
+.fa-indent:before,
+.ico-indent:before {
+  content: "\f03c";
+}
+.fa-video-camera:before,
+.ico-video-camera:before {
+  content: "\f03d";
+}
+.fa-photo:before,
+.fa-image:before,
+.fa-picture-o:before,
+.ico-photo:before,
+.ico-image:before,
+.ico-picture-o:before {
+  content: "\f03e";
+}
+.fa-pencil:before,
+.ico-pencil:before {
+  content: "\f040";
+}
+.fa-map-marker:before,
+.ico-map-marker:before {
+  content: "\f041";
+}
+.fa-adjust:before,
+.ico-adjust:before {
+  content: "\f042";
+}
+.fa-tint:before,
+.ico-tint:before {
+  content: "\f043";
+}
+.fa-edit:before,
+.fa-pencil-square-o:before,
+.ico-edit:before,
+.ico-pencil-square-o:before {
+  content: "\f044";
+}
+.fa-share-square-o:before,
+.ico-share-square-o:before {
+  content: "\f045";
+}
+.fa-check-square-o:before,
+.ico-check-square-o:before {
+  content: "\f046";
+}
+.fa-arrows:before,
+.ico-arrows:before {
+  content: "\f047";
+}
+.fa-step-backward:before,
+.ico-step-backward:before {
+  content: "\f048";
+}
+.fa-fast-backward:before,
+.ico-fast-backward:before {
+  content: "\f049";
+}
+.fa-backward:before,
+.ico-backward:before {
+  content: "\f04a";
+}
+.fa-play:before,
+.ico-play:before {
+  content: "\f04b";
+}
+.fa-pause:before,
+.ico-pause:before {
+  content: "\f04c";
+}
+.fa-stop:before,
+.ico-stop:before {
+  content: "\f04d";
+}
+.fa-forward:before,
+.ico-forward:before {
+  content: "\f04e";
+}
+.fa-fast-forward:before,
+.ico-fast-forward:before {
+  content: "\f050";
+}
+.fa-step-forward:before,
+.ico-step-forward:before {
+  content: "\f051";
+}
+.fa-eject:before,
+.ico-eject:before {
+  content: "\f052";
+}
+.fa-chevron-left:before,
+.ico-chevron-left:before {
+  content: "\f053";
+}
+.fa-chevron-right:before,
+.ico-chevron-right:before {
+  content: "\f054";
+}
+.fa-plus-circle:before,
+.ico-plus-circle:before {
+  content: "\f055";
+}
+.fa-minus-circle:before,
+.ico-minus-circle:before {
+  content: "\f056";
+}
+.fa-times-circle:before,
+.ico-times-circle:before {
+  content: "\f057";
+}
+.fa-check-circle:before,
+.ico-check-circle:before {
+  content: "\f058";
+}
+.fa-question-circle:before,
+.ico-question-circle:before {
+  content: "\f059";
+}
+.fa-info-circle:before,
+.ico-info-circle:before {
+  content: "\f05a";
+}
+.fa-crosshairs:before,
+.ico-crosshairs:before {
+  content: "\f05b";
+}
+.fa-times-circle-o:before,
+.ico-times-circle-o:before {
+  content: "\f05c";
+}
+.fa-check-circle-o:before,
+.ico-check-circle-o:before {
+  content: "\f05d";
+}
+.fa-ban:before,
+.ico-ban:before {
+  content: "\f05e";
+}
+.fa-arrow-left:before,
+.ico-arrow-left:before {
+  content: "\f060";
+}
+.fa-arrow-right:before,
+.ico-arrow-right:before {
+  content: "\f061";
+}
+.fa-arrow-up:before,
+.ico-arrow-up:before {
+  content: "\f062";
+}
+.fa-arrow-down:before,
+.ico-arrow-down:before {
+  content: "\f063";
+}
+.fa-mail-forward:before,
+.fa-share:before,
+.ico-mail-forward:before,
+.ico-share:before {
+  content: "\f064";
+}
+.fa-expand:before,
+.ico-expand:before {
+  content: "\f065";
+}
+.fa-compress:before,
+.ico-compress:before {
+  content: "\f066";
+}
+.fa-plus:before,
+.ico-plus:before {
+  content: "\f067";
+}
+.fa-minus:before,
+.ico-minus:before {
+  content: "\f068";
+}
+.fa-asterisk:before,
+.ico-asterisk:before {
+  content: "\f069";
+}
+.fa-exclamation-circle:before,
+.ico-exclamation-circle:before {
+  content: "\f06a";
+}
+.fa-gift:before,
+.ico-gift:before {
+  content: "\f06b";
+}
+.fa-leaf:before,
+.ico-leaf:before {
+  content: "\f06c";
+}
+.fa-fire:before,
+.ico-fire:before {
+  content: "\f06d";
+}
+.fa-eye:before,
+.ico-eye:before {
+  content: "\f06e";
+}
+.fa-eye-slash:before,
+.ico-eye-slash:before {
+  content: "\f070";
+}
+.fa-warning:before,
+.fa-exclamation-triangle:before,
+.ico-warning:before,
+.ico-exclamation-triangle:before {
+  content: "\f071";
+}
+.fa-plane:before,
+.ico-plane:before {
+  content: "\f072";
+}
+.fa-calendar:before,
+.ico-calendar:before {
+  content: "\f073";
+}
+.fa-random:before,
+.ico-random:before {
+  content: "\f074";
+}
+.fa-comment:before,
+.ico-comment:before {
+  content: "\f075";
+}
+.fa-magnet:before,
+.ico-magnet:before {
+  content: "\f076";
+}
+.fa-chevron-up:before,
+.ico-chevron-up:before {
+  content: "\f077";
+}
+.fa-chevron-down:before,
+.ico-chevron-down:before {
+  content: "\f078";
+}
+.fa-retweet:before,
+.ico-retweet:before {
+  content: "\f079";
+}
+.fa-shopping-cart:before,
+.ico-shopping-cart:before {
+  content: "\f07a";
+}
+.fa-folder:before,
+.ico-folder:before {
+  content: "\f07b";
+}
+.fa-folder-open:before,
+.ico-folder-open:before {
+  content: "\f07c";
+}
+.fa-arrows-v:before,
+.ico-arrows-v:before {
+  content: "\f07d";
+}
+.fa-arrows-h:before,
+.ico-arrows-h:before {
+  content: "\f07e";
+}
+.fa-bar-chart-o:before,
+.fa-bar-chart:before,
+.ico-bar-chart-o:before,
+.ico-bar-chart:before {
+  content: "\f080";
+}
+.fa-twitter-square:before,
+.ico-twitter-square:before {
+  content: "\f081";
+}
+.fa-facebook-square:before,
+.ico-facebook-square:before {
+  content: "\f082";
+}
+.fa-camera-retro:before,
+.ico-camera-retro:before {
+  content: "\f083";
+}
+.fa-key:before,
+.ico-key:before {
+  content: "\f084";
+}
+.fa-gears:before,
+.fa-cogs:before,
+.ico-gears:before,
+.ico-cogs:before {
+  content: "\f085";
+}
+.fa-comments:before,
+.ico-comments:before {
+  content: "\f086";
+}
+.fa-thumbs-o-up:before,
+.ico-thumbs-o-up:before {
+  content: "\f087";
+}
+.fa-thumbs-o-down:before,
+.ico-thumbs-o-down:before {
+  content: "\f088";
+}
+.fa-star-half:before,
+.ico-star-half:before {
+  content: "\f089";
+}
+.fa-heart-o:before,
+.ico-heart-o:before {
+  content: "\f08a";
+}
+.fa-sign-out:before,
+.ico-sign-out:before {
+  content: "\f08b";
+}
+.fa-linkedin-square:before,
+.ico-linkedin-square:before {
+  content: "\f08c";
+}
+.fa-thumb-tack:before,
+.ico-thumb-tack:before {
+  content: "\f08d";
+}
+.fa-external-link:before,
+.ico-external-link:before {
+  content: "\f08e";
+}
+.fa-sign-in:before,
+.ico-sign-in:before {
+  content: "\f090";
+}
+.fa-trophy:before,
+.ico-trophy:before {
+  content: "\f091";
+}
+.fa-github-square:before,
+.ico-github-square:before {
+  content: "\f092";
+}
+.fa-upload:before,
+.ico-upload:before {
+  content: "\f093";
+}
+.fa-lemon-o:before,
+.ico-lemon-o:before {
+  content: "\f094";
+}
+.fa-phone:before,
+.ico-phone:before {
+  content: "\f095";
+}
+.fa-square-o:before,
+.ico-square-o:before {
+  content: "\f096";
+}
+.fa-bookmark-o:before,
+.ico-bookmark-o:before {
+  content: "\f097";
+}
+.fa-phone-square:before,
+.ico-phone-square:before {
+  content: "\f098";
+}
+.fa-twitter:before,
+.ico-twitter:before {
+  content: "\f099";
+}
+.fa-facebook-f:before,
+.fa-facebook:before,
+.ico-facebook-f:before,
+.ico-facebook:before {
+  content: "\f09a";
+}
+.fa-github:before,
+.ico-github:before {
+  content: "\f09b";
+}
+.fa-unlock:before,
+.ico-unlock:before {
+  content: "\f09c";
+}
+.fa-credit-card:before,
+.ico-credit-card:before {
+  content: "\f09d";
+}
+.fa-feed:before,
+.fa-rss:before,
+.ico-feed:before,
+.ico-rss:before {
+  content: "\f09e";
+}
+.fa-hdd-o:before,
+.ico-hdd-o:before {
+  content: "\f0a0";
+}
+.fa-bullhorn:before,
+.ico-bullhorn:before {
+  content: "\f0a1";
+}
+.fa-bell:before,
+.ico-bell:before {
+  content: "\f0f3";
+}
+.fa-certificate:before,
+.ico-certificate:before {
+  content: "\f0a3";
+}
+.fa-hand-o-right:before,
+.ico-hand-o-right:before {
+  content: "\f0a4";
+}
+.fa-hand-o-left:before,
+.ico-hand-o-left:before {
+  content: "\f0a5";
+}
+.fa-hand-o-up:before,
+.ico-hand-o-up:before {
+  content: "\f0a6";
+}
+.fa-hand-o-down:before,
+.ico-hand-o-down:before {
+  content: "\f0a7";
+}
+.fa-arrow-circle-left:before,
+.ico-arrow-circle-left:before {
+  content: "\f0a8";
+}
+.fa-arrow-circle-right:before,
+.ico-arrow-circle-right:before {
+  content: "\f0a9";
+}
+.fa-arrow-circle-up:before,
+.ico-arrow-circle-up:before {
+  content: "\f0aa";
+}
+.fa-arrow-circle-down:before,
+.ico-arrow-circle-down:before {
+  content: "\f0ab";
+}
+.fa-globe:before,
+.ico-globe:before {
+  content: "\f0ac";
+}
+.fa-wrench:before,
+.ico-wrench:before {
+  content: "\f0ad";
+}
+.fa-tasks:before,
+.ico-tasks:before {
+  content: "\f0ae";
+}
+.fa-filter:before,
+.ico-filter:before {
+  content: "\f0b0";
+}
+.fa-briefcase:before,
+.ico-briefcase:before {
+  content: "\f0b1";
+}
+.fa-arrows-alt:before,
+.ico-arrows-alt:before {
+  content: "\f0b2";
+}
+.fa-group:before,
+.fa-users:before,
+.ico-group:before,
+.ico-users:before {
+  content: "\f0c0";
+}
+.fa-chain:before,
+.fa-link:before,
+.ico-chain:before,
+.ico-link:before {
+  content: "\f0c1";
+}
+.fa-cloud:before,
+.ico-cloud:before {
+  content: "\f0c2";
+}
+.fa-flask:before,
+.ico-flask:before {
+  content: "\f0c3";
+}
+.fa-cut:before,
+.fa-scissors:before,
+.ico-cut:before,
+.ico-scissors:before {
+  content: "\f0c4";
+}
+.fa-copy:before,
+.fa-files-o:before,
+.ico-copy:before,
+.ico-files-o:before {
+  content: "\f0c5";
+}
+.fa-paperclip:before,
+.ico-paperclip:before {
+  content: "\f0c6";
+}
+.fa-save:before,
+.fa-floppy-o:before,
+.ico-save:before,
+.ico-floppy-o:before {
+  content: "\f0c7";
+}
+.fa-square:before,
+.ico-square:before {
+  content: "\f0c8";
+}
+.fa-navicon:before,
+.fa-reorder:before,
+.fa-bars:before,
+.ico-navicon:before,
+.ico-reorder:before,
+.ico-bars:before {
+  content: "\f0c9";
+}
+.fa-list-ul:before,
+.ico-list-ul:before {
+  content: "\f0ca";
+}
+.fa-list-ol:before,
+.ico-list-ol:before {
+  content: "\f0cb";
+}
+.fa-strikethrough:before,
+.ico-strikethrough:before {
+  content: "\f0cc";
+}
+.fa-underline:before,
+.ico-underline:before {
+  content: "\f0cd";
+}
+.fa-table:before,
+.ico-table:before {
+  content: "\f0ce";
+}
+.fa-magic:before,
+.ico-magic:before {
+  content: "\f0d0";
+}
+.fa-truck:before,
+.ico-truck:before {
+  content: "\f0d1";
+}
+.fa-pinterest:before,
+.ico-pinterest:before {
+  content: "\f0d2";
+}
+.fa-pinterest-square:before,
+.ico-pinterest-square:before {
+  content: "\f0d3";
+}
+.fa-google-plus-square:before,
+.ico-google-plus-square:before {
+  content: "\f0d4";
+}
+.fa-google-plus:before,
+.ico-google-plus:before {
+  content: "\f0d5";
+}
+.fa-money:before,
+.ico-money:before {
+  content: "\f0d6";
+}
+.fa-caret-down:before,
+.ico-caret-down:before {
+  content: "\f0d7";
+}
+.fa-caret-up:before,
+.ico-caret-up:before {
+  content: "\f0d8";
+}
+.fa-caret-left:before,
+.ico-caret-left:before {
+  content: "\f0d9";
+}
+.fa-caret-right:before,
+.ico-caret-right:before {
+  content: "\f0da";
+}
+.fa-columns:before,
+.ico-columns:before {
+  content: "\f0db";
+}
+.fa-unsorted:before,
+.fa-sort:before,
+.ico-unsorted:before,
+.ico-sort:before {
+  content: "\f0dc";
+}
+.fa-sort-down:before,
+.fa-sort-desc:before,
+.ico-sort-down:before,
+.ico-sort-desc:before {
+  content: "\f0dd";
+}
+.fa-sort-up:before,
+.fa-sort-asc:before,
+.ico-sort-up:before,
+.ico-sort-asc:before {
+  content: "\f0de";
+}
+.fa-envelope:before,
+.ico-envelope:before {
+  content: "\f0e0";
+}
+.fa-linkedin:before,
+.ico-linkedin:before {
+  content: "\f0e1";
+}
+.fa-rotate-left:before,
+.fa-undo:before,
+.ico-rotate-left:before,
+.ico-undo:before {
+  content: "\f0e2";
+}
+.fa-legal:before,
+.fa-gavel:before,
+.ico-legal:before,
+.ico-gavel:before {
+  content: "\f0e3";
+}
+.fa-dashboard:before,
+.fa-tachometer:before,
+.ico-dashboard:before,
+.ico-tachometer:before {
+  content: "\f0e4";
+}
+.fa-comment-o:before,
+.ico-comment-o:before {
+  content: "\f0e5";
+}
+.fa-comments-o:before,
+.ico-comments-o:before {
+  content: "\f0e6";
+}
+.fa-flash:before,
+.fa-bolt:before,
+.ico-flash:before,
+.ico-bolt:before {
+  content: "\f0e7";
+}
+.fa-sitemap:before,
+.ico-sitemap:before {
+  content: "\f0e8";
+}
+.fa-umbrella:before,
+.ico-umbrella:before {
+  content: "\f0e9";
+}
+.fa-paste:before,
+.fa-clipboard:before,
+.ico-paste:before,
+.ico-clipboard:before {
+  content: "\f0ea";
+}
+.fa-lightbulb-o:before,
+.ico-lightbulb-o:before {
+  content: "\f0eb";
+}
+.fa-exchange:before,
+.ico-exchange:before {
+  content: "\f0ec";
+}
+.fa-cloud-download:before,
+.ico-cloud-download:before {
+  content: "\f0ed";
+}
+.fa-cloud-upload:before,
+.ico-cloud-upload:before {
+  content: "\f0ee";
+}
+.fa-user-md:before,
+.ico-user-md:before {
+  content: "\f0f0";
+}
+.fa-stethoscope:before,
+.ico-stethoscope:before {
+  content: "\f0f1";
+}
+.fa-suitcase:before,
+.ico-suitcase:before {
+  content: "\f0f2";
+}
+.fa-bell-o:before,
+.ico-bell-o:before {
+  content: "\f0a2";
+}
+.fa-coffee:before,
+.ico-coffee:before {
+  content: "\f0f4";
+}
+.fa-cutlery:before,
+.ico-cutlery:before {
+  content: "\f0f5";
+}
+.fa-file-text-o:before,
+.ico-file-text-o:before {
+  content: "\f0f6";
+}
+.fa-building-o:before,
+.ico-building-o:before {
+  content: "\f0f7";
+}
+.fa-hospital-o:before,
+.ico-hospital-o:before {
+  content: "\f0f8";
+}
+.fa-ambulance:before,
+.ico-ambulance:before {
+  content: "\f0f9";
+}
+.fa-medkit:before,
+.ico-medkit:before {
+  content: "\f0fa";
+}
+.fa-fighter-jet:before,
+.ico-fighter-jet:before {
+  content: "\f0fb";
+}
+.fa-beer:before,
+.ico-beer:before {
+  content: "\f0fc";
+}
+.fa-h-square:before,
+.ico-h-square:before {
+  content: "\f0fd";
+}
+.fa-plus-square:before,
+.ico-plus-square:before {
+  content: "\f0fe";
+}
+.fa-angle-double-left:before,
+.ico-angle-double-left:before {
+  content: "\f100";
+}
+.fa-angle-double-right:before,
+.ico-angle-double-right:before {
+  content: "\f101";
+}
+.fa-angle-double-up:before,
+.ico-angle-double-up:before {
+  content: "\f102";
+}
+.fa-angle-double-down:before,
+.ico-angle-double-down:before {
+  content: "\f103";
+}
+.fa-angle-left:before,
+.ico-angle-left:before {
+  content: "\f104";
+}
+.fa-angle-right:before,
+.ico-angle-right:before {
+  content: "\f105";
+}
+.fa-angle-up:before,
+.ico-angle-up:before {
+  content: "\f106";
+}
+.fa-angle-down:before,
+.ico-angle-down:before {
+  content: "\f107";
+}
+.fa-desktop:before,
+.ico-desktop:before {
+  content: "\f108";
+}
+.fa-laptop:before,
+.ico-laptop:before {
+  content: "\f109";
+}
+.fa-tablet:before,
+.ico-tablet:before {
+  content: "\f10a";
+}
+.fa-mobile-phone:before,
+.fa-mobile:before,
+.ico-mobile-phone:before,
+.ico-mobile:before {
+  content: "\f10b";
+}
+.fa-circle-o:before,
+.ico-circle-o:before {
+  content: "\f10c";
+}
+.fa-quote-left:before,
+.ico-quote-left:before {
+  content: "\f10d";
+}
+.fa-quote-right:before,
+.ico-quote-right:before {
+  content: "\f10e";
+}
+.fa-spinner:before,
+.ico-spinner:before {
+  content: "\f110";
+}
+.fa-circle:before,
+.ico-circle:before {
+  content: "\f111";
+}
+.fa-mail-reply:before,
+.fa-reply:before,
+.ico-mail-reply:before,
+.ico-reply:before {
+  content: "\f112";
+}
+.fa-github-alt:before,
+.ico-github-alt:before {
+  content: "\f113";
+}
+.fa-folder-o:before,
+.ico-folder-o:before {
+  content: "\f114";
+}
+.fa-folder-open-o:before,
+.ico-folder-open-o:before {
+  content: "\f115";
+}
+.fa-smile-o:before,
+.ico-smile-o:before {
+  content: "\f118";
+}
+.fa-frown-o:before,
+.ico-frown-o:before {
+  content: "\f119";
+}
+.fa-meh-o:before,
+.ico-meh-o:before {
+  content: "\f11a";
+}
+.fa-gamepad:before,
+.ico-gamepad:before {
+  content: "\f11b";
+}
+.fa-keyboard-o:before,
+.ico-keyboard-o:before {
+  content: "\f11c";
+}
+.fa-flag-o:before,
+.ico-flag-o:before {
+  content: "\f11d";
+}
+.fa-flag-checkered:before,
+.ico-flag-checkered:before {
+  content: "\f11e";
+}
+.fa-terminal:before,
+.ico-terminal:before {
+  content: "\f120";
+}
+.fa-code:before,
+.ico-code:before {
+  content: "\f121";
+}
+.fa-mail-reply-all:before,
+.fa-reply-all:before,
+.ico-mail-reply-all:before,
+.ico-reply-all:before {
+  content: "\f122";
+}
+.fa-star-half-empty:before,
+.fa-star-half-full:before,
+.fa-star-half-o:before,
+.ico-star-half-empty:before,
+.ico-star-half-full:before,
+.ico-star-half-o:before {
+  content: "\f123";
+}
+.fa-location-arrow:before,
+.ico-location-arrow:before {
+  content: "\f124";
+}
+.fa-crop:before,
+.ico-crop:before {
+  content: "\f125";
+}
+.fa-code-fork:before,
+.ico-code-fork:before {
+  content: "\f126";
+}
+.fa-unlink:before,
+.fa-chain-broken:before,
+.ico-unlink:before,
+.ico-chain-broken:before {
+  content: "\f127";
+}
+.fa-question:before,
+.ico-question:before {
+  content: "\f128";
+}
+.fa-info:before,
+.ico-info:before {
+  content: "\f129";
+}
+.fa-exclamation:before,
+.ico-exclamation:before {
+  content: "\f12a";
+}
+.fa-superscript:before,
+.ico-superscript:before {
+  content: "\f12b";
+}
+.fa-subscript:before,
+.ico-subscript:before {
+  content: "\f12c";
+}
+.fa-eraser:before,
+.ico-eraser:before {
+  content: "\f12d";
+}
+.fa-puzzle-piece:before,
+.ico-puzzle-piece:before {
+  content: "\f12e";
+}
+.fa-microphone:before,
+.ico-microphone:before {
+  content: "\f130";
+}
+.fa-microphone-slash:before,
+.ico-microphone-slash:before {
+  content: "\f131";
+}
+.fa-shield:before,
+.ico-shield:before {
+  content: "\f132";
+}
+.fa-calendar-o:before,
+.ico-calendar-o:before {
+  content: "\f133";
+}
+.fa-fire-extinguisher:before,
+.ico-fire-extinguisher:before {
+  content: "\f134";
+}
+.fa-rocket:before,
+.ico-rocket:before {
+  content: "\f135";
+}
+.fa-maxcdn:before,
+.ico-maxcdn:before {
+  content: "\f136";
+}
+.fa-chevron-circle-left:before,
+.ico-chevron-circle-left:before {
+  content: "\f137";
+}
+.fa-chevron-circle-right:before,
+.ico-chevron-circle-right:before {
+  content: "\f138";
+}
+.fa-chevron-circle-up:before,
+.ico-chevron-circle-up:before {
+  content: "\f139";
+}
+.fa-chevron-circle-down:before,
+.ico-chevron-circle-down:before {
+  content: "\f13a";
+}
+.fa-html5:before,
+.ico-html5:before {
+  content: "\f13b";
+}
+.fa-css3:before,
+.ico-css3:before {
+  content: "\f13c";
+}
+.fa-anchor:before,
+.ico-anchor:before {
+  content: "\f13d";
+}
+.fa-unlock-alt:before,
+.ico-unlock-alt:before {
+  content: "\f13e";
+}
+.fa-bullseye:before,
+.ico-bullseye:before {
+  content: "\f140";
+}
+.fa-ellipsis-h:before,
+.ico-ellipsis-h:before {
+  content: "\f141";
+}
+.fa-ellipsis-v:before,
+.ico-ellipsis-v:before {
+  content: "\f142";
+}
+.fa-rss-square:before,
+.ico-rss-square:before {
+  content: "\f143";
+}
+.fa-play-circle:before,
+.ico-play-circle:before {
+  content: "\f144";
+}
+.fa-ticket:before,
+.ico-ticket:before {
+  content: "\f145";
+}
+.fa-minus-square:before,
+.ico-minus-square:before {
+  content: "\f146";
+}
+.fa-minus-square-o:before,
+.ico-minus-square-o:before {
+  content: "\f147";
+}
+.fa-level-up:before,
+.ico-level-up:before {
+  content: "\f148";
+}
+.fa-level-down:before,
+.ico-level-down:before {
+  content: "\f149";
+}
+.fa-check-square:before,
+.ico-check-square:before {
+  content: "\f14a";
+}
+.fa-pencil-square:before,
+.ico-pencil-square:before {
+  content: "\f14b";
+}
+.fa-external-link-square:before,
+.ico-external-link-square:before {
+  content: "\f14c";
+}
+.fa-share-square:before,
+.ico-share-square:before {
+  content: "\f14d";
+}
+.fa-compass:before,
+.ico-compass:before {
+  content: "\f14e";
+}
+.fa-toggle-down:before,
+.fa-caret-square-o-down:before,
+.ico-toggle-down:before,
+.ico-caret-square-o-down:before {
+  content: "\f150";
+}
+.fa-toggle-up:before,
+.fa-caret-square-o-up:before,
+.ico-toggle-up:before,
+.ico-caret-square-o-up:before {
+  content: "\f151";
+}
+.fa-toggle-right:before,
+.fa-caret-square-o-right:before,
+.ico-toggle-right:before,
+.ico-caret-square-o-right:before {
+  content: "\f152";
+}
+.fa-euro:before,
+.fa-eur:before,
+.ico-euro:before,
+.ico-eur:before {
+  content: "\f153";
+}
+.fa-gbp:before,
+.ico-gbp:before {
+  content: "\f154";
+}
+.fa-dollar:before,
+.fa-usd:before,
+.ico-dollar:before,
+.ico-usd:before {
+  content: "\f155";
+}
+.fa-rupee:before,
+.fa-inr:before,
+.ico-rupee:before,
+.ico-inr:before {
+  content: "\f156";
+}
+.fa-cny:before,
+.fa-rmb:before,
+.fa-yen:before,
+.fa-jpy:before,
+.ico-cny:before,
+.ico-rmb:before,
+.ico-yen:before,
+.ico-jpy:before {
+  content: "\f157";
+}
+.fa-ruble:before,
+.fa-rouble:before,
+.fa-rub:before,
+.ico-ruble:before,
+.ico-rouble:before,
+.ico-rub:before {
+  content: "\f158";
+}
+.fa-won:before,
+.fa-krw:before,
+.ico-won:before,
+.ico-krw:before {
+  content: "\f159";
+}
+.fa-bitcoin:before,
+.fa-btc:before,
+.ico-bitcoin:before,
+.ico-btc:before {
+  content: "\f15a";
+}
+.fa-file:before,
+.ico-file:before {
+  content: "\f15b";
+}
+.fa-file-text:before,
+.ico-file-text:before {
+  content: "\f15c";
+}
+.fa-sort-alpha-asc:before,
+.ico-sort-alpha-asc:before {
+  content: "\f15d";
+}
+.fa-sort-alpha-desc:before,
+.ico-sort-alpha-desc:before {
+  content: "\f15e";
+}
+.fa-sort-amount-asc:before,
+.ico-sort-amount-asc:before {
+  content: "\f160";
+}
+.fa-sort-amount-desc:before,
+.ico-sort-amount-desc:before {
+  content: "\f161";
+}
+.fa-sort-numeric-asc:before,
+.ico-sort-numeric-asc:before {
+  content: "\f162";
+}
+.fa-sort-numeric-desc:before,
+.ico-sort-numeric-desc:before {
+  content: "\f163";
+}
+.fa-thumbs-up:before,
+.ico-thumbs-up:before {
+  content: "\f164";
+}
+.fa-thumbs-down:before,
+.ico-thumbs-down:before {
+  content: "\f165";
+}
+.fa-youtube-square:before,
+.ico-youtube-square:before {
+  content: "\f166";
+}
+.fa-youtube:before,
+.ico-youtube:before {
+  content: "\f167";
+}
+.fa-xing:before,
+.ico-xing:before {
+  content: "\f168";
+}
+.fa-xing-square:before,
+.ico-xing-square:before {
+  content: "\f169";
+}
+.fa-youtube-play:before,
+.ico-youtube-play:before {
+  content: "\f16a";
+}
+.fa-dropbox:before,
+.ico-dropbox:before {
+  content: "\f16b";
+}
+.fa-stack-overflow:before,
+.ico-stack-overflow:before {
+  content: "\f16c";
+}
+.fa-instagram:before,
+.ico-instagram:before {
+  content: "\f16d";
+}
+.fa-flickr:before,
+.ico-flickr:before {
+  content: "\f16e";
+}
+.fa-adn:before,
+.ico-adn:before {
+  content: "\f170";
+}
+.fa-bitbucket:before,
+.ico-bitbucket:before {
+  content: "\f171";
+}
+.fa-bitbucket-square:before,
+.ico-bitbucket-square:before {
+  content: "\f172";
+}
+.fa-tumblr:before,
+.ico-tumblr:before {
+  content: "\f173";
+}
+.fa-tumblr-square:before,
+.ico-tumblr-square:before {
+  content: "\f174";
+}
+.fa-long-arrow-down:before,
+.ico-long-arrow-down:before {
+  content: "\f175";
+}
+.fa-long-arrow-up:before,
+.ico-long-arrow-up:before {
+  content: "\f176";
+}
+.fa-long-arrow-left:before,
+.ico-long-arrow-left:before {
+  content: "\f177";
+}
+.fa-long-arrow-right:before,
+.ico-long-arrow-right:before {
+  content: "\f178";
+}
+.fa-apple:before,
+.ico-apple:before {
+  content: "\f179";
+}
+.fa-windows:before,
+.ico-windows:before {
+  content: "\f17a";
+}
+.fa-android:before,
+.ico-android:before {
+  content: "\f17b";
+}
+.fa-linux:before,
+.ico-linux:before {
+  content: "\f17c";
+}
+.fa-dribbble:before,
+.ico-dribbble:before {
+  content: "\f17d";
+}
+.fa-skype:before,
+.ico-skype:before {
+  content: "\f17e";
+}
+.fa-foursquare:before,
+.ico-foursquare:before {
+  content: "\f180";
+}
+.fa-trello:before,
+.ico-trello:before {
+  content: "\f181";
+}
+.fa-female:before,
+.ico-female:before {
+  content: "\f182";
+}
+.fa-male:before,
+.ico-male:before {
+  content: "\f183";
+}
+.fa-gittip:before,
+.fa-gratipay:before,
+.ico-gittip:before,
+.ico-gratipay:before {
+  content: "\f184";
+}
+.fa-sun-o:before,
+.ico-sun-o:before {
+  content: "\f185";
+}
+.fa-moon-o:before,
+.ico-moon-o:before {
+  content: "\f186";
+}
+.fa-archive:before,
+.ico-archive:before {
+  content: "\f187";
+}
+.fa-bug:before,
+.ico-bug:before {
+  content: "\f188";
+}
+.fa-vk:before,
+.ico-vk:before {
+  content: "\f189";
+}
+.fa-weibo:before,
+.ico-weibo:before {
+  content: "\f18a";
+}
+.fa-renren:before,
+.ico-renren:before {
+  content: "\f18b";
+}
+.fa-pagelines:before,
+.ico-pagelines:before {
+  content: "\f18c";
+}
+.fa-stack-exchange:before,
+.ico-stack-exchange:before {
+  content: "\f18d";
+}
+.fa-arrow-circle-o-right:before,
+.ico-arrow-circle-o-right:before {
+  content: "\f18e";
+}
+.fa-arrow-circle-o-left:before,
+.ico-arrow-circle-o-left:before {
+  content: "\f190";
+}
+.fa-toggle-left:before,
+.fa-caret-square-o-left:before,
+.ico-toggle-left:before,
+.ico-caret-square-o-left:before {
+  content: "\f191";
+}
+.fa-dot-circle-o:before,
+.ico-dot-circle-o:before {
+  content: "\f192";
+}
+.fa-wheelchair:before,
+.ico-wheelchair:before {
+  content: "\f193";
+}
+.fa-vimeo-square:before,
+.ico-vimeo-square:before {
+  content: "\f194";
+}
+.fa-turkish-lira:before,
+.fa-try:before,
+.ico-turkish-lira:before,
+.ico-try:before {
+  content: "\f195";
+}
+.fa-plus-square-o:before,
+.ico-plus-square-o:before {
+  content: "\f196";
+}
+.fa-space-shuttle:before,
+.ico-space-shuttle:before {
+  content: "\f197";
+}
+.fa-slack:before,
+.ico-slack:before {
+  content: "\f198";
+}
+.fa-envelope-square:before,
+.ico-envelope-square:before {
+  content: "\f199";
+}
+.fa-wordpress:before,
+.ico-wordpress:before {
+  content: "\f19a";
+}
+.fa-openid:before,
+.ico-openid:before {
+  content: "\f19b";
+}
+.fa-institution:before,
+.fa-bank:before,
+.fa-university:before,
+.ico-institution:before,
+.ico-bank:before,
+.ico-university:before {
+  content: "\f19c";
+}
+.fa-mortar-board:before,
+.fa-graduation-cap:before,
+.ico-mortar-board:before,
+.ico-graduation-cap:before {
+  content: "\f19d";
+}
+.fa-yahoo:before,
+.ico-yahoo:before {
+  content: "\f19e";
+}
+.fa-google:before,
+.ico-google:before {
+  content: "\f1a0";
+}
+.fa-reddit:before,
+.ico-reddit:before {
+  content: "\f1a1";
+}
+.fa-reddit-square:before,
+.ico-reddit-square:before {
+  content: "\f1a2";
+}
+.fa-stumbleupon-circle:before,
+.ico-stumbleupon-circle:before {
+  content: "\f1a3";
+}
+.fa-stumbleupon:before,
+.ico-stumbleupon:before {
+  content: "\f1a4";
+}
+.fa-delicious:before,
+.ico-delicious:before {
+  content: "\f1a5";
+}
+.fa-digg:before,
+.ico-digg:before {
+  content: "\f1a6";
+}
+.fa-pied-piper-pp:before,
+.ico-pied-piper-pp:before {
+  content: "\f1a7";
+}
+.fa-pied-piper-alt:before,
+.ico-pied-piper-alt:before {
+  content: "\f1a8";
+}
+.fa-drupal:before,
+.ico-drupal:before {
+  content: "\f1a9";
+}
+.fa-joomla:before,
+.ico-joomla:before {
+  content: "\f1aa";
+}
+.fa-language:before,
+.ico-language:before {
+  content: "\f1ab";
+}
+.fa-fax:before,
+.ico-fax:before {
+  content: "\f1ac";
+}
+.fa-building:before,
+.ico-building:before {
+  content: "\f1ad";
+}
+.fa-child:before,
+.ico-child:before {
+  content: "\f1ae";
+}
+.fa-paw:before,
+.ico-paw:before {
+  content: "\f1b0";
+}
+.fa-spoon:before,
+.ico-spoon:before {
+  content: "\f1b1";
+}
+.fa-cube:before,
+.ico-cube:before {
+  content: "\f1b2";
+}
+.fa-cubes:before,
+.ico-cubes:before {
+  content: "\f1b3";
+}
+.fa-behance:before,
+.ico-behance:before {
+  content: "\f1b4";
+}
+.fa-behance-square:before,
+.ico-behance-square:before {
+  content: "\f1b5";
+}
+.fa-steam:before,
+.ico-steam:before {
+  content: "\f1b6";
+}
+.fa-steam-square:before,
+.ico-steam-square:before {
+  content: "\f1b7";
+}
+.fa-recycle:before,
+.ico-recycle:before {
+  content: "\f1b8";
+}
+.fa-automobile:before,
+.fa-car:before,
+.ico-automobile:before,
+.ico-car:before {
+  content: "\f1b9";
+}
+.fa-cab:before,
+.fa-taxi:before,
+.ico-cab:before,
+.ico-taxi:before {
+  content: "\f1ba";
+}
+.fa-tree:before,
+.ico-tree:before {
+  content: "\f1bb";
+}
+.fa-spotify:before,
+.ico-spotify:before {
+  content: "\f1bc";
+}
+.fa-deviantart:before,
+.ico-deviantart:before {
+  content: "\f1bd";
+}
+.fa-soundcloud:before,
+.ico-soundcloud:before {
+  content: "\f1be";
+}
+.fa-database:before,
+.ico-database:before {
+  content: "\f1c0";
+}
+.fa-file-pdf-o:before,
+.ico-file-pdf-o:before {
+  content: "\f1c1";
+}
+.fa-file-word-o:before,
+.ico-file-word-o:before {
+  content: "\f1c2";
+}
+.fa-file-excel-o:before,
+.ico-file-excel-o:before {
+  content: "\f1c3";
+}
+.fa-file-powerpoint-o:before,
+.ico-file-powerpoint-o:before {
+  content: "\f1c4";
+}
+.fa-file-photo-o:before,
+.fa-file-picture-o:before,
+.fa-file-image-o:before,
+.ico-file-photo-o:before,
+.ico-file-picture-o:before,
+.ico-file-image-o:before {
+  content: "\f1c5";
+}
+.fa-file-zip-o:before,
+.fa-file-archive-o:before,
+.ico-file-zip-o:before,
+.ico-file-archive-o:before {
+  content: "\f1c6";
+}
+.fa-file-sound-o:before,
+.fa-file-audio-o:before,
+.ico-file-sound-o:before,
+.ico-file-audio-o:before {
+  content: "\f1c7";
+}
+.fa-file-movie-o:before,
+.fa-file-video-o:before,
+.ico-file-movie-o:before,
+.ico-file-video-o:before {
+  content: "\f1c8";
+}
+.fa-file-code-o:before,
+.ico-file-code-o:before {
+  content: "\f1c9";
+}
+.fa-vine:before,
+.ico-vine:before {
+  content: "\f1ca";
+}
+.fa-codepen:before,
+.ico-codepen:before {
+  content: "\f1cb";
+}
+.fa-jsfiddle:before,
+.ico-jsfiddle:before {
+  content: "\f1cc";
+}
+.fa-life-bouy:before,
+.fa-life-buoy:before,
+.fa-life-saver:before,
+.fa-support:before,
+.fa-life-ring:before,
+.ico-life-bouy:before,
+.ico-life-buoy:before,
+.ico-life-saver:before,
+.ico-support:before,
+.ico-life-ring:before {
+  content: "\f1cd";
+}
+.fa-circle-o-notch:before,
+.ico-circle-o-notch:before {
+  content: "\f1ce";
+}
+.fa-ra:before,
+.fa-resistance:before,
+.fa-rebel:before,
+.ico-ra:before,
+.ico-resistance:before,
+.ico-rebel:before {
+  content: "\f1d0";
+}
+.fa-ge:before,
+.fa-empire:before,
+.ico-ge:before,
+.ico-empire:before {
+  content: "\f1d1";
+}
+.fa-git-square:before,
+.ico-git-square:before {
+  content: "\f1d2";
+}
+.fa-git:before,
+.ico-git:before {
+  content: "\f1d3";
+}
+.fa-y-combinator-square:before,
+.fa-yc-square:before,
+.fa-hacker-news:before,
+.ico-y-combinator-square:before,
+.ico-yc-square:before,
+.ico-hacker-news:before {
+  content: "\f1d4";
+}
+.fa-tencent-weibo:before,
+.ico-tencent-weibo:before {
+  content: "\f1d5";
+}
+.fa-qq:before,
+.ico-qq:before {
+  content: "\f1d6";
+}
+.fa-wechat:before,
+.fa-weixin:before,
+.ico-wechat:before,
+.ico-weixin:before {
+  content: "\f1d7";
+}
+.fa-send:before,
+.fa-paper-plane:before,
+.ico-send:before,
+.ico-paper-plane:before {
+  content: "\f1d8";
+}
+.fa-send-o:before,
+.fa-paper-plane-o:before,
+.ico-send-o:before,
+.ico-paper-plane-o:before {
+  content: "\f1d9";
+}
+.fa-history:before,
+.ico-history:before {
+  content: "\f1da";
+}
+.fa-circle-thin:before,
+.ico-circle-thin:before {
+  content: "\f1db";
+}
+.fa-header:before,
+.ico-header:before {
+  content: "\f1dc";
+}
+.fa-paragraph:before,
+.ico-paragraph:before {
+  content: "\f1dd";
+}
+.fa-sliders:before,
+.ico-sliders:before {
+  content: "\f1de";
+}
+.fa-share-alt:before,
+.ico-share-alt:before {
+  content: "\f1e0";
+}
+.fa-share-alt-square:before,
+.ico-share-alt-square:before {
+  content: "\f1e1";
+}
+.fa-bomb:before,
+.ico-bomb:before {
+  content: "\f1e2";
+}
+.fa-soccer-ball-o:before,
+.fa-futbol-o:before,
+.ico-soccer-ball-o:before,
+.ico-futbol-o:before {
+  content: "\f1e3";
+}
+.fa-tty:before,
+.ico-tty:before {
+  content: "\f1e4";
+}
+.fa-binoculars:before,
+.ico-binoculars:before {
+  content: "\f1e5";
+}
+.fa-plug:before,
+.ico-plug:before {
+  content: "\f1e6";
+}
+.fa-slideshare:before,
+.ico-slideshare:before {
+  content: "\f1e7";
+}
+.fa-twitch:before,
+.ico-twitch:before {
+  content: "\f1e8";
+}
+.fa-yelp:before,
+.ico-yelp:before {
+  content: "\f1e9";
+}
+.fa-newspaper-o:before,
+.ico-newspaper-o:before {
+  content: "\f1ea";
+}
+.fa-wifi:before,
+.ico-wifi:before {
+  content: "\f1eb";
+}
+.fa-calculator:before,
+.ico-calculator:before {
+  content: "\f1ec";
+}
+.fa-paypal:before,
+.ico-paypal:before {
+  content: "\f1ed";
+}
+.fa-google-wallet:before,
+.ico-google-wallet:before {
+  content: "\f1ee";
+}
+.fa-cc-visa:before,
+.ico-cc-visa:before {
+  content: "\f1f0";
+}
+.fa-cc-mastercard:before,
+.ico-cc-mastercard:before {
+  content: "\f1f1";
+}
+.fa-cc-discover:before,
+.ico-cc-discover:before {
+  content: "\f1f2";
+}
+.fa-cc-amex:before,
+.ico-cc-amex:before {
+  content: "\f1f3";
+}
+.fa-cc-paypal:before,
+.ico-cc-paypal:before {
+  content: "\f1f4";
+}
+.fa-cc-stripe:before,
+.ico-cc-stripe:before {
+  content: "\f1f5";
+}
+.fa-bell-slash:before,
+.ico-bell-slash:before {
+  content: "\f1f6";
+}
+.fa-bell-slash-o:before,
+.ico-bell-slash-o:before {
+  content: "\f1f7";
+}
+.fa-trash:before,
+.ico-trash:before {
+  content: "\f1f8";
+}
+.fa-copyright:before,
+.ico-copyright:before {
+  content: "\f1f9";
+}
+.fa-at:before,
+.ico-at:before {
+  content: "\f1fa";
+}
+.fa-eyedropper:before,
+.ico-eyedropper:before {
+  content: "\f1fb";
+}
+.fa-paint-brush:before,
+.ico-paint-brush:before {
+  content: "\f1fc";
+}
+.fa-birthday-cake:before,
+.ico-birthday-cake:before {
+  content: "\f1fd";
+}
+.fa-area-chart:before,
+.ico-area-chart:before {
+  content: "\f1fe";
+}
+.fa-pie-chart:before,
+.ico-pie-chart:before {
+  content: "\f200";
+}
+.fa-line-chart:before,
+.ico-line-chart:before {
+  content: "\f201";
+}
+.fa-lastfm:before,
+.ico-lastfm:before {
+  content: "\f202";
+}
+.fa-lastfm-square:before,
+.ico-lastfm-square:before {
+  content: "\f203";
+}
+.fa-toggle-off:before,
+.ico-toggle-off:before {
+  content: "\f204";
+}
+.fa-toggle-on:before,
+.ico-toggle-on:before {
+  content: "\f205";
+}
+.fa-bicycle:before,
+.ico-bicycle:before {
+  content: "\f206";
+}
+.fa-bus:before,
+.ico-bus:before {
+  content: "\f207";
+}
+.fa-ioxhost:before,
+.ico-ioxhost:before {
+  content: "\f208";
+}
+.fa-angellist:before,
+.ico-angellist:before {
+  content: "\f209";
+}
+.fa-cc:before,
+.ico-cc:before {
+  content: "\f20a";
+}
+.fa-shekel:before,
+.fa-sheqel:before,
+.fa-ils:before,
+.ico-shekel:before,
+.ico-sheqel:before,
+.ico-ils:before {
+  content: "\f20b";
+}
+.fa-meanpath:before,
+.ico-meanpath:before {
+  content: "\f20c";
+}
+.fa-buysellads:before,
+.ico-buysellads:before {
+  content: "\f20d";
+}
+.fa-connectdevelop:before,
+.ico-connectdevelop:before {
+  content: "\f20e";
+}
+.fa-dashcube:before,
+.ico-dashcube:before {
+  content: "\f210";
+}
+.fa-forumbee:before,
+.ico-forumbee:before {
+  content: "\f211";
+}
+.fa-leanpub:before,
+.ico-leanpub:before {
+  content: "\f212";
+}
+.fa-sellsy:before,
+.ico-sellsy:before {
+  content: "\f213";
+}
+.fa-shirtsinbulk:before,
+.ico-shirtsinbulk:before {
+  content: "\f214";
+}
+.fa-simplybuilt:before,
+.ico-simplybuilt:before {
+  content: "\f215";
+}
+.fa-skyatlas:before,
+.ico-skyatlas:before {
+  content: "\f216";
+}
+.fa-cart-plus:before,
+.ico-cart-plus:before {
+  content: "\f217";
+}
+.fa-cart-arrow-down:before,
+.ico-cart-arrow-down:before {
+  content: "\f218";
+}
+.fa-diamond:before,
+.ico-diamond:before {
+  content: "\f219";
+}
+.fa-ship:before,
+.ico-ship:before {
+  content: "\f21a";
+}
+.fa-user-secret:before,
+.ico-user-secret:before {
+  content: "\f21b";
+}
+.fa-motorcycle:before,
+.ico-motorcycle:before {
+  content: "\f21c";
+}
+.fa-street-view:before,
+.ico-street-view:before {
+  content: "\f21d";
+}
+.fa-heartbeat:before,
+.ico-heartbeat:before {
+  content: "\f21e";
+}
+.fa-venus:before,
+.ico-venus:before {
+  content: "\f221";
+}
+.fa-mars:before,
+.ico-mars:before {
+  content: "\f222";
+}
+.fa-mercury:before,
+.ico-mercury:before {
+  content: "\f223";
+}
+.fa-intersex:before,
+.fa-transgender:before,
+.ico-intersex:before,
+.ico-transgender:before {
+  content: "\f224";
+}
+.fa-transgender-alt:before,
+.ico-transgender-alt:before {
+  content: "\f225";
+}
+.fa-venus-double:before,
+.ico-venus-double:before {
+  content: "\f226";
+}
+.fa-mars-double:before,
+.ico-mars-double:before {
+  content: "\f227";
+}
+.fa-venus-mars:before,
+.ico-venus-mars:before {
+  content: "\f228";
+}
+.fa-mars-stroke:before,
+.ico-mars-stroke:before {
+  content: "\f229";
+}
+.fa-mars-stroke-v:before,
+.ico-mars-stroke-v:before {
+  content: "\f22a";
+}
+.fa-mars-stroke-h:before,
+.ico-mars-stroke-h:before {
+  content: "\f22b";
+}
+.fa-neuter:before,
+.ico-neuter:before {
+  content: "\f22c";
+}
+.fa-genderless:before,
+.ico-genderless:before {
+  content: "\f22d";
+}
+.fa-facebook-official:before,
+.ico-facebook-official:before {
+  content: "\f230";
+}
+.fa-pinterest-p:before,
+.ico-pinterest-p:before {
+  content: "\f231";
+}
+.fa-whatsapp:before,
+.ico-whatsapp:before {
+  content: "\f232";
+}
+.fa-server:before,
+.ico-server:before {
+  content: "\f233";
+}
+.fa-user-plus:before,
+.ico-user-plus:before {
+  content: "\f234";
+}
+.fa-user-times:before,
+.ico-user-times:before {
+  content: "\f235";
+}
+.fa-hotel:before,
+.fa-bed:before,
+.ico-hotel:before,
+.ico-bed:before {
+  content: "\f236";
+}
+.fa-viacoin:before,
+.ico-viacoin:before {
+  content: "\f237";
+}
+.fa-train:before,
+.ico-train:before {
+  content: "\f238";
+}
+.fa-subway:before,
+.ico-subway:before {
+  content: "\f239";
+}
+.fa-medium:before,
+.ico-medium:before {
+  content: "\f23a";
+}
+.fa-yc:before,
+.fa-y-combinator:before,
+.ico-yc:before,
+.ico-y-combinator:before {
+  content: "\f23b";
+}
+.fa-optin-monster:before,
+.ico-optin-monster:before {
+  content: "\f23c";
+}
+.fa-opencart:before,
+.ico-opencart:before {
+  content: "\f23d";
+}
+.fa-expeditedssl:before,
+.ico-expeditedssl:before {
+  content: "\f23e";
+}
+.fa-battery-4:before,
+.fa-battery:before,
+.fa-battery-full:before,
+.ico-battery-4:before,
+.ico-battery:before,
+.ico-battery-full:before {
+  content: "\f240";
+}
+.fa-battery-3:before,
+.fa-battery-three-quarters:before,
+.ico-battery-3:before,
+.ico-battery-three-quarters:before {
+  content: "\f241";
+}
+.fa-battery-2:before,
+.fa-battery-half:before,
+.ico-battery-2:before,
+.ico-battery-half:before {
+  content: "\f242";
+}
+.fa-battery-1:before,
+.fa-battery-quarter:before,
+.ico-battery-1:before,
+.ico-battery-quarter:before {
+  content: "\f243";
+}
+.fa-battery-0:before,
+.fa-battery-empty:before,
+.ico-battery-0:before,
+.ico-battery-empty:before {
+  content: "\f244";
+}
+.fa-mouse-pointer:before,
+.ico-mouse-pointer:before {
+  content: "\f245";
+}
+.fa-i-cursor:before,
+.ico-i-cursor:before {
+  content: "\f246";
+}
+.fa-object-group:before,
+.ico-object-group:before {
+  content: "\f247";
+}
+.fa-object-ungroup:before,
+.ico-object-ungroup:before {
+  content: "\f248";
+}
+.fa-sticky-note:before,
+.ico-sticky-note:before {
+  content: "\f249";
+}
+.fa-sticky-note-o:before,
+.ico-sticky-note-o:before {
+  content: "\f24a";
+}
+.fa-cc-jcb:before,
+.ico-cc-jcb:before {
+  content: "\f24b";
+}
+.fa-cc-diners-club:before,
+.ico-cc-diners-club:before {
+  content: "\f24c";
+}
+.fa-clone:before,
+.ico-clone:before {
+  content: "\f24d";
+}
+.fa-balance-scale:before,
+.ico-balance-scale:before {
+  content: "\f24e";
+}
+.fa-hourglass-o:before,
+.ico-hourglass-o:before {
+  content: "\f250";
+}
+.fa-hourglass-1:before,
+.fa-hourglass-start:before,
+.ico-hourglass-1:before,
+.ico-hourglass-start:before {
+  content: "\f251";
+}
+.fa-hourglass-2:before,
+.fa-hourglass-half:before,
+.ico-hourglass-2:before,
+.ico-hourglass-half:before {
+  content: "\f252";
+}
+.fa-hourglass-3:before,
+.fa-hourglass-end:before,
+.ico-hourglass-3:before,
+.ico-hourglass-end:before {
+  content: "\f253";
+}
+.fa-hourglass:before,
+.ico-hourglass:before {
+  content: "\f254";
+}
+.fa-hand-grab-o:before,
+.fa-hand-rock-o:before,
+.ico-hand-grab-o:before,
+.ico-hand-rock-o:before {
+  content: "\f255";
+}
+.fa-hand-stop-o:before,
+.fa-hand-paper-o:before,
+.ico-hand-stop-o:before,
+.ico-hand-paper-o:before {
+  content: "\f256";
+}
+.fa-hand-scissors-o:before,
+.ico-hand-scissors-o:before {
+  content: "\f257";
+}
+.fa-hand-lizard-o:before,
+.ico-hand-lizard-o:before {
+  content: "\f258";
+}
+.fa-hand-spock-o:before,
+.ico-hand-spock-o:before {
+  content: "\f259";
+}
+.fa-hand-pointer-o:before,
+.ico-hand-pointer-o:before {
+  content: "\f25a";
+}
+.fa-hand-peace-o:before,
+.ico-hand-peace-o:before {
+  content: "\f25b";
+}
+.fa-trademark:before,
+.ico-trademark:before {
+  content: "\f25c";
+}
+.fa-registered:before,
+.ico-registered:before {
+  content: "\f25d";
+}
+.fa-creative-commons:before,
+.ico-creative-commons:before {
+  content: "\f25e";
+}
+.fa-gg:before,
+.ico-gg:before {
+  content: "\f260";
+}
+.fa-gg-circle:before,
+.ico-gg-circle:before {
+  content: "\f261";
+}
+.fa-tripadvisor:before,
+.ico-tripadvisor:before {
+  content: "\f262";
+}
+.fa-odnoklassniki:before,
+.ico-odnoklassniki:before {
+  content: "\f263";
+}
+.fa-odnoklassniki-square:before,
+.ico-odnoklassniki-square:before {
+  content: "\f264";
+}
+.fa-get-pocket:before,
+.ico-get-pocket:before {
+  content: "\f265";
+}
+.fa-wikipedia-w:before,
+.ico-wikipedia-w:before {
+  content: "\f266";
+}
+.fa-safari:before,
+.ico-safari:before {
+  content: "\f267";
+}
+.fa-chrome:before,
+.ico-chrome:before {
+  content: "\f268";
+}
+.fa-firefox:before,
+.ico-firefox:before {
+  content: "\f269";
+}
+.fa-opera:before,
+.ico-opera:before {
+  content: "\f26a";
+}
+.fa-internet-explorer:before,
+.ico-internet-explorer:before {
+  content: "\f26b";
+}
+.fa-tv:before,
+.fa-television:before,
+.ico-tv:before,
+.ico-television:before {
+  content: "\f26c";
+}
+.fa-contao:before,
+.ico-contao:before {
+  content: "\f26d";
+}
+.fa-500px:before,
+.ico-500px:before {
+  content: "\f26e";
+}
+.fa-amazon:before,
+.ico-amazon:before {
+  content: "\f270";
+}
+.fa-calendar-plus-o:before,
+.ico-calendar-plus-o:before {
+  content: "\f271";
+}
+.fa-calendar-minus-o:before,
+.ico-calendar-minus-o:before {
+  content: "\f272";
+}
+.fa-calendar-times-o:before,
+.ico-calendar-times-o:before {
+  content: "\f273";
+}
+.fa-calendar-check-o:before,
+.ico-calendar-check-o:before {
+  content: "\f274";
+}
+.fa-industry:before,
+.ico-industry:before {
+  content: "\f275";
+}
+.fa-map-pin:before,
+.ico-map-pin:before {
+  content: "\f276";
+}
+.fa-map-signs:before,
+.ico-map-signs:before {
+  content: "\f277";
+}
+.fa-map-o:before,
+.ico-map-o:before {
+  content: "\f278";
+}
+.fa-map:before,
+.ico-map:before {
+  content: "\f279";
+}
+.fa-commenting:before,
+.ico-commenting:before {
+  content: "\f27a";
+}
+.fa-commenting-o:before,
+.ico-commenting-o:before {
+  content: "\f27b";
+}
+.fa-houzz:before,
+.ico-houzz:before {
+  content: "\f27c";
+}
+.fa-vimeo:before,
+.ico-vimeo:before {
+  content: "\f27d";
+}
+.fa-black-tie:before,
+.ico-black-tie:before {
+  content: "\f27e";
+}
+.fa-fonticons:before,
+.ico-fonticons:before {
+  content: "\f280";
+}
+.fa-reddit-alien:before,
+.ico-reddit-alien:before {
+  content: "\f281";
+}
+.fa-edge:before,
+.ico-edge:before {
+  content: "\f282";
+}
+.fa-credit-card-alt:before,
+.ico-credit-card-alt:before {
+  content: "\f283";
+}
+.fa-codiepie:before,
+.ico-codiepie:before {
+  content: "\f284";
+}
+.fa-modx:before,
+.ico-modx:before {
+  content: "\f285";
+}
+.fa-fort-awesome:before,
+.ico-fort-awesome:before {
+  content: "\f286";
+}
+.fa-usb:before,
+.ico-usb:before {
+  content: "\f287";
+}
+.fa-product-hunt:before,
+.ico-product-hunt:before {
+  content: "\f288";
+}
+.fa-mixcloud:before,
+.ico-mixcloud:before {
+  content: "\f289";
+}
+.fa-scribd:before,
+.ico-scribd:before {
+  content: "\f28a";
+}
+.fa-pause-circle:before,
+.ico-pause-circle:before {
+  content: "\f28b";
+}
+.fa-pause-circle-o:before,
+.ico-pause-circle-o:before {
+  content: "\f28c";
+}
+.fa-stop-circle:before,
+.ico-stop-circle:before {
+  content: "\f28d";
+}
+.fa-stop-circle-o:before,
+.ico-stop-circle-o:before {
+  content: "\f28e";
+}
+.fa-shopping-bag:before,
+.ico-shopping-bag:before {
+  content: "\f290";
+}
+.fa-shopping-basket:before,
+.ico-shopping-basket:before {
+  content: "\f291";
+}
+.fa-hashtag:before,
+.ico-hashtag:before {
+  content: "\f292";
+}
+.fa-bluetooth:before,
+.ico-bluetooth:before {
+  content: "\f293";
+}
+.fa-bluetooth-b:before,
+.ico-bluetooth-b:before {
+  content: "\f294";
+}
+.fa-percent:before,
+.ico-percent:before {
+  content: "\f295";
+}
+.fa-gitlab:before,
+.ico-gitlab:before {
+  content: "\f296";
+}
+.fa-wpbeginner:before,
+.ico-wpbeginner:before {
+  content: "\f297";
+}
+.fa-wpforms:before,
+.ico-wpforms:before {
+  content: "\f298";
+}
+.fa-envira:before,
+.ico-envira:before {
+  content: "\f299";
+}
+.fa-universal-access:before,
+.ico-universal-access:before {
+  content: "\f29a";
+}
+.fa-wheelchair-alt:before,
+.ico-wheelchair-alt:before {
+  content: "\f29b";
+}
+.fa-question-circle-o:before,
+.ico-question-circle-o:before {
+  content: "\f29c";
+}
+.fa-blind:before,
+.ico-blind:before {
+  content: "\f29d";
+}
+.fa-audio-description:before,
+.ico-audio-description:before {
+  content: "\f29e";
+}
+.fa-volume-control-phone:before,
+.ico-volume-control-phone:before {
+  content: "\f2a0";
+}
+.fa-braille:before,
+.ico-braille:before {
+  content: "\f2a1";
+}
+.fa-assistive-listening-systems:before,
+.ico-assistive-listening-systems:before {
+  content: "\f2a2";
+}
+.fa-asl-interpreting:before,
+.fa-american-sign-language-interpreting:before,
+.ico-asl-interpreting:before,
+.ico-american-sign-language-interpreting:before {
+  content: "\f2a3";
+}
+.fa-deafness:before,
+.fa-hard-of-hearing:before,
+.fa-deaf:before,
+.ico-deafness:before,
+.ico-hard-of-hearing:before,
+.ico-deaf:before {
+  content: "\f2a4";
+}
+.fa-glide:before,
+.ico-glide:before {
+  content: "\f2a5";
+}
+.fa-glide-g:before,
+.ico-glide-g:before {
+  content: "\f2a6";
+}
+.fa-signing:before,
+.fa-sign-language:before,
+.ico-signing:before,
+.ico-sign-language:before {
+  content: "\f2a7";
+}
+.fa-low-vision:before,
+.ico-low-vision:before {
+  content: "\f2a8";
+}
+.fa-viadeo:before,
+.ico-viadeo:before {
+  content: "\f2a9";
+}
+.fa-viadeo-square:before,
+.ico-viadeo-square:before {
+  content: "\f2aa";
+}
+.fa-snapchat:before,
+.ico-snapchat:before {
+  content: "\f2ab";
+}
+.fa-snapchat-ghost:before,
+.ico-snapchat-ghost:before {
+  content: "\f2ac";
+}
+.fa-snapchat-square:before,
+.ico-snapchat-square:before {
+  content: "\f2ad";
+}
+.fa-pied-piper:before,
+.ico-pied-piper:before {
+  content: "\f2ae";
+}
+.fa-first-order:before,
+.ico-first-order:before {
+  content: "\f2b0";
+}
+.fa-yoast:before,
+.ico-yoast:before {
+  content: "\f2b1";
+}
+.fa-themeisle:before,
+.ico-themeisle:before {
+  content: "\f2b2";
+}
+.fa-google-plus-circle:before,
+.fa-google-plus-official:before,
+.ico-google-plus-circle:before,
+.ico-google-plus-official:before {
+  content: "\f2b3";
+}
+.fa-fa:before,
+.fa-font-awesome:before,
+.ico-fa:before,
+.ico-font-awesome:before {
+  content: "\f2b4";
+}
+.fa-handshake-o:before,
+.ico-handshake-o:before {
+  content: "\f2b5";
+}
+.fa-envelope-open:before,
+.ico-envelope-open:before {
+  content: "\f2b6";
+}
+.fa-envelope-open-o:before,
+.ico-envelope-open-o:before {
+  content: "\f2b7";
+}
+.fa-linode:before,
+.ico-linode:before {
+  content: "\f2b8";
+}
+.fa-address-book:before,
+.ico-address-book:before {
+  content: "\f2b9";
+}
+.fa-address-book-o:before,
+.ico-address-book-o:before {
+  content: "\f2ba";
+}
+.fa-vcard:before,
+.fa-address-card:before,
+.ico-vcard:before,
+.ico-address-card:before {
+  content: "\f2bb";
+}
+.fa-vcard-o:before,
+.fa-address-card-o:before,
+.ico-vcard-o:before,
+.ico-address-card-o:before {
+  content: "\f2bc";
+}
+.fa-user-circle:before,
+.ico-user-circle:before {
+  content: "\f2bd";
+}
+.fa-user-circle-o:before,
+.ico-user-circle-o:before {
+  content: "\f2be";
+}
+.fa-user-o:before,
+.ico-user-o:before {
+  content: "\f2c0";
+}
+.fa-id-badge:before,
+.ico-id-badge:before {
+  content: "\f2c1";
+}
+.fa-drivers-license:before,
+.fa-id-card:before,
+.ico-drivers-license:before,
+.ico-id-card:before {
+  content: "\f2c2";
+}
+.fa-drivers-license-o:before,
+.fa-id-card-o:before,
+.ico-drivers-license-o:before,
+.ico-id-card-o:before {
+  content: "\f2c3";
+}
+.fa-quora:before,
+.ico-quora:before {
+  content: "\f2c4";
+}
+.fa-free-code-camp:before,
+.ico-free-code-camp:before {
+  content: "\f2c5";
+}
+.fa-telegram:before,
+.ico-telegram:before {
+  content: "\f2c6";
+}
+.fa-thermometer-4:before,
+.fa-thermometer:before,
+.fa-thermometer-full:before,
+.ico-thermometer-4:before,
+.ico-thermometer:before,
+.ico-thermometer-full:before {
+  content: "\f2c7";
+}
+.fa-thermometer-3:before,
+.fa-thermometer-three-quarters:before,
+.ico-thermometer-3:before,
+.ico-thermometer-three-quarters:before {
+  content: "\f2c8";
+}
+.fa-thermometer-2:before,
+.fa-thermometer-half:before,
+.ico-thermometer-2:before,
+.ico-thermometer-half:before {
+  content: "\f2c9";
+}
+.fa-thermometer-1:before,
+.fa-thermometer-quarter:before,
+.ico-thermometer-1:before,
+.ico-thermometer-quarter:before {
+  content: "\f2ca";
+}
+.fa-thermometer-0:before,
+.fa-thermometer-empty:before,
+.ico-thermometer-0:before,
+.ico-thermometer-empty:before {
+  content: "\f2cb";
+}
+.fa-shower:before,
+.ico-shower:before {
+  content: "\f2cc";
+}
+.fa-bathtub:before,
+.fa-s15:before,
+.fa-bath:before,
+.ico-bathtub:before,
+.ico-s15:before,
+.ico-bath:before {
+  content: "\f2cd";
+}
+.fa-podcast:before,
+.ico-podcast:before {
+  content: "\f2ce";
+}
+.fa-window-maximize:before,
+.ico-window-maximize:before {
+  content: "\f2d0";
+}
+.fa-window-minimize:before,
+.ico-window-minimize:before {
+  content: "\f2d1";
+}
+.fa-window-restore:before,
+.ico-window-restore:before {
+  content: "\f2d2";
+}
+.fa-times-rectangle:before,
+.fa-window-close:before,
+.ico-times-rectangle:before,
+.ico-window-close:before {
+  content: "\f2d3";
+}
+.fa-times-rectangle-o:before,
+.fa-window-close-o:before,
+.ico-times-rectangle-o:before,
+.ico-window-close-o:before {
+  content: "\f2d4";
+}
+.fa-bandcamp:before,
+.ico-bandcamp:before {
+  content: "\f2d5";
+}
+.fa-grav:before,
+.ico-grav:before {
+  content: "\f2d6";
+}
+.fa-etsy:before,
+.ico-etsy:before {
+  content: "\f2d7";
+}
+.fa-imdb:before,
+.ico-imdb:before {
+  content: "\f2d8";
+}
+.fa-ravelry:before,
+.ico-ravelry:before {
+  content: "\f2d9";
+}
+.fa-eercast:before,
+.ico-eercast:before {
+  content: "\f2da";
+}
+.fa-microchip:before,
+.ico-microchip:before {
+  content: "\f2db";
+}
+.fa-snowflake-o:before,
+.ico-snowflake-o:before {
+  content: "\f2dc";
+}
+.fa-superpowers:before,
+.ico-superpowers:before {
+  content: "\f2dd";
+}
+.fa-wpexplorer:before,
+.ico-wpexplorer:before {
+  content: "\f2de";
+}
+.fa-meetup:before,
+.ico-meetup:before {
+  content: "\f2e0";
+}
+.sr-only {
+  position: absolute;
+  width: 1px;
+  height: 1px;
+  padding: 0;
+  margin: -1px;
+  overflow: hidden;
+  clip: rect(0, 0, 0, 0);
+  border: 0;
+}
+.sr-only-focusable:active,
+.sr-only-focusable:focus {
+  position: static;
+  width: auto;
+  height: auto;
+  margin: 0;
+  overflow: visible;
+  clip: auto;
+}
+.ico-custom {
+  background-size: 100%;
+  height: 1em;
+  width: 1em;
+}
+.context-menu-item .context-icon {
+  position: absolute;
+  top: 50%;
+  left: 0;
+  width: 2em;
+  line-height: 1;
+  color: #2980b9;
+  text-align: center;
+  transform: translateY(-50%);
+}
+.context-menu-item .context-icon > .ico {
+  margin-top: 0.2em;
+}
+.context-menu-item.context-menu-hover > span > .context-icon {
+  color: #fff;
+}
+.ico-hide {
+  background: url(res/hide.ico);
+  background-size: 100%;
+  height: 1em;
+  width: 1em;
+}

+ 38 - 0
bin/icons.less

@@ -0,0 +1,38 @@
+
+@import "libs/font-awesome-imports.less";
+
+.ico {
+    &:extend(.fa);
+}
+
+.ico-custom {
+    background-size: 100%;
+    height: 1em;
+    width: 1em;
+}
+
+.context-menu-item {
+    .context-icon {
+        position: absolute;
+        top: 50%;
+        left: 0;
+        width: 2em;
+        line-height: 1;
+        color: #2980b9;
+        text-align: center;
+        transform: translateY(-50%);
+
+        & > .ico {
+            margin-top: 0.2em;
+        }
+    }
+
+    &.context-menu-hover > span > .context-icon {
+        color: #fff;
+    }
+}
+
+.ico-hide {
+    background: url(res/hide.ico);
+    .ico-custom;
+}

+ 2365 - 0
bin/libs/font-awesome-imports.less

@@ -0,0 +1,2365 @@
+/**
+    Imports all fontawesome icons into the custom icon system for hide
+    Icons available as fa-iconname are now available as ico-iconname
+    This was generated manually using multi-edit.
+**/
+
+@import (less) "font-awesome.css";
+.ico-glass {
+    &:extend(.fa-glass all);
+}
+.ico-music {
+    &:extend(.fa-music all);
+}
+.ico-search {
+    &:extend(.fa-search all);
+}
+.ico-envelope-o {
+    &:extend(.fa-envelope-o all);
+}
+.ico-heart {
+    &:extend(.fa-heart all);
+}
+.ico-star {
+    &:extend(.fa-star all);
+}
+.ico-star-o {
+    &:extend(.fa-star-o all);
+}
+.ico-user {
+    &:extend(.fa-user all);
+}
+.ico-film {
+    &:extend(.fa-film all);
+}
+.ico-th-large {
+    &:extend(.fa-th-large all);
+}
+.ico-th {
+    &:extend(.fa-th all);
+}
+.ico-th-list {
+    &:extend(.fa-th-list all);
+}
+.ico-check {
+    &:extend(.fa-check all);
+}
+.ico-remove {
+    &:extend(.fa-remove all);
+}
+.ico-close {
+    &:extend(.fa-close all);
+}
+.ico-times {
+    &:extend(.fa-times all);
+}
+.ico-search-plus {
+    &:extend(.fa-search-plus all);
+}
+.ico-search-minus {
+    &:extend(.fa-search-minus all);
+}
+.ico-power-off {
+    &:extend(.fa-power-off all);
+}
+.ico-signal {
+    &:extend(.fa-signal all);
+}
+.ico-gear {
+    &:extend(.fa-gear all);
+}
+.ico-cog {
+    &:extend(.fa-cog all);
+}
+.ico-trash-o {
+    &:extend(.fa-trash-o all);
+}
+.ico-home {
+    &:extend(.fa-home all);
+}
+.ico-file-o {
+    &:extend(.fa-file-o all);
+}
+.ico-clock-o {
+    &:extend(.fa-clock-o all);
+}
+.ico-road {
+    &:extend(.fa-road all);
+}
+.ico-download {
+    &:extend(.fa-download all);
+}
+.ico-arrow-circle-o-down {
+    &:extend(.fa-arrow-circle-o-down all);
+}
+.ico-arrow-circle-o-up {
+    &:extend(.fa-arrow-circle-o-up all);
+}
+.ico-inbox {
+    &:extend(.fa-inbox all);
+}
+.ico-play-circle-o {
+    &:extend(.fa-play-circle-o all);
+}
+.ico-rotate-right {
+    &:extend(.fa-rotate-right all);
+}
+.ico-repeat {
+    &:extend(.fa-repeat all);
+}
+.ico-refresh {
+    &:extend(.fa-refresh all);
+}
+.ico-list-alt {
+    &:extend(.fa-list-alt all);
+}
+.ico-lock {
+    &:extend(.fa-lock all);
+}
+.ico-flag {
+    &:extend(.fa-flag all);
+}
+.ico-headphones {
+    &:extend(.fa-headphones all);
+}
+.ico-volume-off {
+    &:extend(.fa-volume-off all);
+}
+.ico-volume-down {
+    &:extend(.fa-volume-down all);
+}
+.ico-volume-up {
+    &:extend(.fa-volume-up all);
+}
+.ico-qrcode {
+    &:extend(.fa-qrcode all);
+}
+.ico-barcode {
+    &:extend(.fa-barcode all);
+}
+.ico-tag {
+    &:extend(.fa-tag all);
+}
+.ico-tags {
+    &:extend(.fa-tags all);
+}
+.ico-book {
+    &:extend(.fa-book all);
+}
+.ico-bookmark {
+    &:extend(.fa-bookmark all);
+}
+.ico-print {
+    &:extend(.fa-print all);
+}
+.ico-camera {
+    &:extend(.fa-camera all);
+}
+.ico-font {
+    &:extend(.fa-font all);
+}
+.ico-bold {
+    &:extend(.fa-bold all);
+}
+.ico-italic {
+    &:extend(.fa-italic all);
+}
+.ico-text-height {
+    &:extend(.fa-text-height all);
+}
+.ico-text-width {
+    &:extend(.fa-text-width all);
+}
+.ico-align-left {
+    &:extend(.fa-align-left all);
+}
+.ico-align-center {
+    &:extend(.fa-align-center all);
+}
+.ico-align-right {
+    &:extend(.fa-align-right all);
+}
+.ico-align-justify {
+    &:extend(.fa-align-justify all);
+}
+.ico-list {
+    &:extend(.fa-list all);
+}
+.ico-dedent {
+    &:extend(.fa-dedent all);
+}
+.ico-outdent {
+    &:extend(.fa-outdent all);
+}
+.ico-indent {
+    &:extend(.fa-indent all);
+}
+.ico-video-camera {
+    &:extend(.fa-video-camera all);
+}
+.ico-photo {
+    &:extend(.fa-photo all);
+}
+.ico-image {
+    &:extend(.fa-image all);
+}
+.ico-picture-o {
+    &:extend(.fa-picture-o all);
+}
+.ico-pencil {
+    &:extend(.fa-pencil all);
+}
+.ico-map-marker {
+    &:extend(.fa-map-marker all);
+}
+.ico-adjust {
+    &:extend(.fa-adjust all);
+}
+.ico-tint {
+    &:extend(.fa-tint all);
+}
+.ico-edit {
+    &:extend(.fa-edit all);
+}
+.ico-pencil-square-o {
+    &:extend(.fa-pencil-square-o all);
+}
+.ico-share-square-o {
+    &:extend(.fa-share-square-o all);
+}
+.ico-check-square-o {
+    &:extend(.fa-check-square-o all);
+}
+.ico-arrows {
+    &:extend(.fa-arrows all);
+}
+.ico-step-backward {
+    &:extend(.fa-step-backward all);
+}
+.ico-fast-backward {
+    &:extend(.fa-fast-backward all);
+}
+.ico-backward {
+    &:extend(.fa-backward all);
+}
+.ico-play {
+    &:extend(.fa-play all);
+}
+.ico-pause {
+    &:extend(.fa-pause all);
+}
+.ico-stop {
+    &:extend(.fa-stop all);
+}
+.ico-forward {
+    &:extend(.fa-forward all);
+}
+.ico-fast-forward {
+    &:extend(.fa-fast-forward all);
+}
+.ico-step-forward {
+    &:extend(.fa-step-forward all);
+}
+.ico-eject {
+    &:extend(.fa-eject all);
+}
+.ico-chevron-left {
+    &:extend(.fa-chevron-left all);
+}
+.ico-chevron-right {
+    &:extend(.fa-chevron-right all);
+}
+.ico-plus-circle {
+    &:extend(.fa-plus-circle all);
+}
+.ico-minus-circle {
+    &:extend(.fa-minus-circle all);
+}
+.ico-times-circle {
+    &:extend(.fa-times-circle all);
+}
+.ico-check-circle {
+    &:extend(.fa-check-circle all);
+}
+.ico-question-circle {
+    &:extend(.fa-question-circle all);
+}
+.ico-info-circle {
+    &:extend(.fa-info-circle all);
+}
+.ico-crosshairs {
+    &:extend(.fa-crosshairs all);
+}
+.ico-times-circle-o {
+    &:extend(.fa-times-circle-o all);
+}
+.ico-check-circle-o {
+    &:extend(.fa-check-circle-o all);
+}
+.ico-ban {
+    &:extend(.fa-ban all);
+}
+.ico-arrow-left {
+    &:extend(.fa-arrow-left all);
+}
+.ico-arrow-right {
+    &:extend(.fa-arrow-right all);
+}
+.ico-arrow-up {
+    &:extend(.fa-arrow-up all);
+}
+.ico-arrow-down {
+    &:extend(.fa-arrow-down all);
+}
+.ico-mail-forward {
+    &:extend(.fa-mail-forward all);
+}
+.ico-share {
+    &:extend(.fa-share all);
+}
+.ico-expand {
+    &:extend(.fa-expand all);
+}
+.ico-compress {
+    &:extend(.fa-compress all);
+}
+.ico-plus {
+    &:extend(.fa-plus all);
+}
+.ico-minus {
+    &:extend(.fa-minus all);
+}
+.ico-asterisk {
+    &:extend(.fa-asterisk all);
+}
+.ico-exclamation-circle {
+    &:extend(.fa-exclamation-circle all);
+}
+.ico-gift {
+    &:extend(.fa-gift all);
+}
+.ico-leaf {
+    &:extend(.fa-leaf all);
+}
+.ico-fire {
+    &:extend(.fa-fire all);
+}
+.ico-eye {
+    &:extend(.fa-eye all);
+}
+.ico-eye-slash {
+    &:extend(.fa-eye-slash all);
+}
+.ico-warning {
+    &:extend(.fa-warning all);
+}
+.ico-exclamation-triangle {
+    &:extend(.fa-exclamation-triangle all);
+}
+.ico-plane {
+    &:extend(.fa-plane all);
+}
+.ico-calendar {
+    &:extend(.fa-calendar all);
+}
+.ico-random {
+    &:extend(.fa-random all);
+}
+.ico-comment {
+    &:extend(.fa-comment all);
+}
+.ico-magnet {
+    &:extend(.fa-magnet all);
+}
+.ico-chevron-up {
+    &:extend(.fa-chevron-up all);
+}
+.ico-chevron-down {
+    &:extend(.fa-chevron-down all);
+}
+.ico-retweet {
+    &:extend(.fa-retweet all);
+}
+.ico-shopping-cart {
+    &:extend(.fa-shopping-cart all);
+}
+.ico-folder {
+    &:extend(.fa-folder all);
+}
+.ico-folder-open {
+    &:extend(.fa-folder-open all);
+}
+.ico-arrows-v {
+    &:extend(.fa-arrows-v all);
+}
+.ico-arrows-h {
+    &:extend(.fa-arrows-h all);
+}
+.ico-bar-chart-o {
+    &:extend(.fa-bar-chart-o all);
+}
+.ico-bar-chart {
+    &:extend(.fa-bar-chart all);
+}
+.ico-twitter-square {
+    &:extend(.fa-twitter-square all);
+}
+.ico-facebook-square {
+    &:extend(.fa-facebook-square all);
+}
+.ico-camera-retro {
+    &:extend(.fa-camera-retro all);
+}
+.ico-key {
+    &:extend(.fa-key all);
+}
+.ico-gears {
+    &:extend(.fa-gears all);
+}
+.ico-cogs {
+    &:extend(.fa-cogs all);
+}
+.ico-comments {
+    &:extend(.fa-comments all);
+}
+.ico-thumbs-o-up {
+    &:extend(.fa-thumbs-o-up all);
+}
+.ico-thumbs-o-down {
+    &:extend(.fa-thumbs-o-down all);
+}
+.ico-star-half {
+    &:extend(.fa-star-half all);
+}
+.ico-heart-o {
+    &:extend(.fa-heart-o all);
+}
+.ico-sign-out {
+    &:extend(.fa-sign-out all);
+}
+.ico-linkedin-square {
+    &:extend(.fa-linkedin-square all);
+}
+.ico-thumb-tack {
+    &:extend(.fa-thumb-tack all);
+}
+.ico-external-link {
+    &:extend(.fa-external-link all);
+}
+.ico-sign-in {
+    &:extend(.fa-sign-in all);
+}
+.ico-trophy {
+    &:extend(.fa-trophy all);
+}
+.ico-github-square {
+    &:extend(.fa-github-square all);
+}
+.ico-upload {
+    &:extend(.fa-upload all);
+}
+.ico-lemon-o {
+    &:extend(.fa-lemon-o all);
+}
+.ico-phone {
+    &:extend(.fa-phone all);
+}
+.ico-square-o {
+    &:extend(.fa-square-o all);
+}
+.ico-bookmark-o {
+    &:extend(.fa-bookmark-o all);
+}
+.ico-phone-square {
+    &:extend(.fa-phone-square all);
+}
+.ico-twitter {
+    &:extend(.fa-twitter all);
+}
+.ico-facebook-f {
+    &:extend(.fa-facebook-f all);
+}
+.ico-facebook {
+    &:extend(.fa-facebook all);
+}
+.ico-github {
+    &:extend(.fa-github all);
+}
+.ico-unlock {
+    &:extend(.fa-unlock all);
+}
+.ico-credit-card {
+    &:extend(.fa-credit-card all);
+}
+.ico-feed {
+    &:extend(.fa-feed all);
+}
+.ico-rss {
+    &:extend(.fa-rss all);
+}
+.ico-hdd-o {
+    &:extend(.fa-hdd-o all);
+}
+.ico-bullhorn {
+    &:extend(.fa-bullhorn all);
+}
+.ico-bell {
+    &:extend(.fa-bell all);
+}
+.ico-certificate {
+    &:extend(.fa-certificate all);
+}
+.ico-hand-o-right {
+    &:extend(.fa-hand-o-right all);
+}
+.ico-hand-o-left {
+    &:extend(.fa-hand-o-left all);
+}
+.ico-hand-o-up {
+    &:extend(.fa-hand-o-up all);
+}
+.ico-hand-o-down {
+    &:extend(.fa-hand-o-down all);
+}
+.ico-arrow-circle-left {
+    &:extend(.fa-arrow-circle-left all);
+}
+.ico-arrow-circle-right {
+    &:extend(.fa-arrow-circle-right all);
+}
+.ico-arrow-circle-up {
+    &:extend(.fa-arrow-circle-up all);
+}
+.ico-arrow-circle-down {
+    &:extend(.fa-arrow-circle-down all);
+}
+.ico-globe {
+    &:extend(.fa-globe all);
+}
+.ico-wrench {
+    &:extend(.fa-wrench all);
+}
+.ico-tasks {
+    &:extend(.fa-tasks all);
+}
+.ico-filter {
+    &:extend(.fa-filter all);
+}
+.ico-briefcase {
+    &:extend(.fa-briefcase all);
+}
+.ico-arrows-alt {
+    &:extend(.fa-arrows-alt all);
+}
+.ico-group {
+    &:extend(.fa-group all);
+}
+.ico-users {
+    &:extend(.fa-users all);
+}
+.ico-chain {
+    &:extend(.fa-chain all);
+}
+.ico-link {
+    &:extend(.fa-link all);
+}
+.ico-cloud {
+    &:extend(.fa-cloud all);
+}
+.ico-flask {
+    &:extend(.fa-flask all);
+}
+.ico-cut {
+    &:extend(.fa-cut all);
+}
+.ico-scissors {
+    &:extend(.fa-scissors all);
+}
+.ico-copy {
+    &:extend(.fa-copy all);
+}
+.ico-files-o {
+    &:extend(.fa-files-o all);
+}
+.ico-paperclip {
+    &:extend(.fa-paperclip all);
+}
+.ico-save {
+    &:extend(.fa-save all);
+}
+.ico-floppy-o {
+    &:extend(.fa-floppy-o all);
+}
+.ico-square {
+    &:extend(.fa-square all);
+}
+.ico-navicon {
+    &:extend(.fa-navicon all);
+}
+.ico-reorder {
+    &:extend(.fa-reorder all);
+}
+.ico-bars {
+    &:extend(.fa-bars all);
+}
+.ico-list-ul {
+    &:extend(.fa-list-ul all);
+}
+.ico-list-ol {
+    &:extend(.fa-list-ol all);
+}
+.ico-strikethrough {
+    &:extend(.fa-strikethrough all);
+}
+.ico-underline {
+    &:extend(.fa-underline all);
+}
+.ico-table {
+    &:extend(.fa-table all);
+}
+.ico-magic {
+    &:extend(.fa-magic all);
+}
+.ico-truck {
+    &:extend(.fa-truck all);
+}
+.ico-pinterest {
+    &:extend(.fa-pinterest all);
+}
+.ico-pinterest-square {
+    &:extend(.fa-pinterest-square all);
+}
+.ico-google-plus-square {
+    &:extend(.fa-google-plus-square all);
+}
+.ico-google-plus {
+    &:extend(.fa-google-plus all);
+}
+.ico-money {
+    &:extend(.fa-money all);
+}
+.ico-caret-down {
+    &:extend(.fa-caret-down all);
+}
+.ico-caret-up {
+    &:extend(.fa-caret-up all);
+}
+.ico-caret-left {
+    &:extend(.fa-caret-left all);
+}
+.ico-caret-right {
+    &:extend(.fa-caret-right all);
+}
+.ico-columns {
+    &:extend(.fa-columns all);
+}
+.ico-unsorted {
+    &:extend(.fa-unsorted all);
+}
+.ico-sort {
+    &:extend(.fa-sort all);
+}
+.ico-sort-down {
+    &:extend(.fa-sort-down all);
+}
+.ico-sort-desc {
+    &:extend(.fa-sort-desc all);
+}
+.ico-sort-up {
+    &:extend(.fa-sort-up all);
+}
+.ico-sort-asc {
+    &:extend(.fa-sort-asc all);
+}
+.ico-envelope {
+    &:extend(.fa-envelope all);
+}
+.ico-linkedin {
+    &:extend(.fa-linkedin all);
+}
+.ico-rotate-left {
+    &:extend(.fa-rotate-left all);
+}
+.ico-undo {
+    &:extend(.fa-undo all);
+}
+.ico-legal {
+    &:extend(.fa-legal all);
+}
+.ico-gavel {
+    &:extend(.fa-gavel all);
+}
+.ico-dashboard {
+    &:extend(.fa-dashboard all);
+}
+.ico-tachometer {
+    &:extend(.fa-tachometer all);
+}
+.ico-comment-o {
+    &:extend(.fa-comment-o all);
+}
+.ico-comments-o {
+    &:extend(.fa-comments-o all);
+}
+.ico-flash {
+    &:extend(.fa-flash all);
+}
+.ico-bolt {
+    &:extend(.fa-bolt all);
+}
+.ico-sitemap {
+    &:extend(.fa-sitemap all);
+}
+.ico-umbrella {
+    &:extend(.fa-umbrella all);
+}
+.ico-paste {
+    &:extend(.fa-paste all);
+}
+.ico-clipboard {
+    &:extend(.fa-clipboard all);
+}
+.ico-lightbulb-o {
+    &:extend(.fa-lightbulb-o all);
+}
+.ico-exchange {
+    &:extend(.fa-exchange all);
+}
+.ico-cloud-download {
+    &:extend(.fa-cloud-download all);
+}
+.ico-cloud-upload {
+    &:extend(.fa-cloud-upload all);
+}
+.ico-user-md {
+    &:extend(.fa-user-md all);
+}
+.ico-stethoscope {
+    &:extend(.fa-stethoscope all);
+}
+.ico-suitcase {
+    &:extend(.fa-suitcase all);
+}
+.ico-bell-o {
+    &:extend(.fa-bell-o all);
+}
+.ico-coffee {
+    &:extend(.fa-coffee all);
+}
+.ico-cutlery {
+    &:extend(.fa-cutlery all);
+}
+.ico-file-text-o {
+    &:extend(.fa-file-text-o all);
+}
+.ico-building-o {
+    &:extend(.fa-building-o all);
+}
+.ico-hospital-o {
+    &:extend(.fa-hospital-o all);
+}
+.ico-ambulance {
+    &:extend(.fa-ambulance all);
+}
+.ico-medkit {
+    &:extend(.fa-medkit all);
+}
+.ico-fighter-jet {
+    &:extend(.fa-fighter-jet all);
+}
+.ico-beer {
+    &:extend(.fa-beer all);
+}
+.ico-h-square {
+    &:extend(.fa-h-square all);
+}
+.ico-plus-square {
+    &:extend(.fa-plus-square all);
+}
+.ico-angle-double-left {
+    &:extend(.fa-angle-double-left all);
+}
+.ico-angle-double-right {
+    &:extend(.fa-angle-double-right all);
+}
+.ico-angle-double-up {
+    &:extend(.fa-angle-double-up all);
+}
+.ico-angle-double-down {
+    &:extend(.fa-angle-double-down all);
+}
+.ico-angle-left {
+    &:extend(.fa-angle-left all);
+}
+.ico-angle-right {
+    &:extend(.fa-angle-right all);
+}
+.ico-angle-up {
+    &:extend(.fa-angle-up all);
+}
+.ico-angle-down {
+    &:extend(.fa-angle-down all);
+}
+.ico-desktop {
+    &:extend(.fa-desktop all);
+}
+.ico-laptop {
+    &:extend(.fa-laptop all);
+}
+.ico-tablet {
+    &:extend(.fa-tablet all);
+}
+.ico-mobile-phone {
+    &:extend(.fa-mobile-phone all);
+}
+.ico-mobile {
+    &:extend(.fa-mobile all);
+}
+.ico-circle-o {
+    &:extend(.fa-circle-o all);
+}
+.ico-quote-left {
+    &:extend(.fa-quote-left all);
+}
+.ico-quote-right {
+    &:extend(.fa-quote-right all);
+}
+.ico-spinner {
+    &:extend(.fa-spinner all);
+}
+.ico-circle {
+    &:extend(.fa-circle all);
+}
+.ico-mail-reply {
+    &:extend(.fa-mail-reply all);
+}
+.ico-reply {
+    &:extend(.fa-reply all);
+}
+.ico-github-alt {
+    &:extend(.fa-github-alt all);
+}
+.ico-folder-o {
+    &:extend(.fa-folder-o all);
+}
+.ico-folder-open-o {
+    &:extend(.fa-folder-open-o all);
+}
+.ico-smile-o {
+    &:extend(.fa-smile-o all);
+}
+.ico-frown-o {
+    &:extend(.fa-frown-o all);
+}
+.ico-meh-o {
+    &:extend(.fa-meh-o all);
+}
+.ico-gamepad {
+    &:extend(.fa-gamepad all);
+}
+.ico-keyboard-o {
+    &:extend(.fa-keyboard-o all);
+}
+.ico-flag-o {
+    &:extend(.fa-flag-o all);
+}
+.ico-flag-checkered {
+    &:extend(.fa-flag-checkered all);
+}
+.ico-terminal {
+    &:extend(.fa-terminal all);
+}
+.ico-code {
+    &:extend(.fa-code all);
+}
+.ico-mail-reply-all {
+    &:extend(.fa-mail-reply-all all);
+}
+.ico-reply-all {
+    &:extend(.fa-reply-all all);
+}
+.ico-star-half-empty {
+    &:extend(.fa-star-half-empty all);
+}
+.ico-star-half-full {
+    &:extend(.fa-star-half-full all);
+}
+.ico-star-half-o {
+    &:extend(.fa-star-half-o all);
+}
+.ico-location-arrow {
+    &:extend(.fa-location-arrow all);
+}
+.ico-crop {
+    &:extend(.fa-crop all);
+}
+.ico-code-fork {
+    &:extend(.fa-code-fork all);
+}
+.ico-unlink {
+    &:extend(.fa-unlink all);
+}
+.ico-chain-broken {
+    &:extend(.fa-chain-broken all);
+}
+.ico-question {
+    &:extend(.fa-question all);
+}
+.ico-info {
+    &:extend(.fa-info all);
+}
+.ico-exclamation {
+    &:extend(.fa-exclamation all);
+}
+.ico-superscript {
+    &:extend(.fa-superscript all);
+}
+.ico-subscript {
+    &:extend(.fa-subscript all);
+}
+.ico-eraser {
+    &:extend(.fa-eraser all);
+}
+.ico-puzzle-piece {
+    &:extend(.fa-puzzle-piece all);
+}
+.ico-microphone {
+    &:extend(.fa-microphone all);
+}
+.ico-microphone-slash {
+    &:extend(.fa-microphone-slash all);
+}
+.ico-shield {
+    &:extend(.fa-shield all);
+}
+.ico-calendar-o {
+    &:extend(.fa-calendar-o all);
+}
+.ico-fire-extinguisher {
+    &:extend(.fa-fire-extinguisher all);
+}
+.ico-rocket {
+    &:extend(.fa-rocket all);
+}
+.ico-maxcdn {
+    &:extend(.fa-maxcdn all);
+}
+.ico-chevron-circle-left {
+    &:extend(.fa-chevron-circle-left all);
+}
+.ico-chevron-circle-right {
+    &:extend(.fa-chevron-circle-right all);
+}
+.ico-chevron-circle-up {
+    &:extend(.fa-chevron-circle-up all);
+}
+.ico-chevron-circle-down {
+    &:extend(.fa-chevron-circle-down all);
+}
+.ico-html5 {
+    &:extend(.fa-html5 all);
+}
+.ico-css3 {
+    &:extend(.fa-css3 all);
+}
+.ico-anchor {
+    &:extend(.fa-anchor all);
+}
+.ico-unlock-alt {
+    &:extend(.fa-unlock-alt all);
+}
+.ico-bullseye {
+    &:extend(.fa-bullseye all);
+}
+.ico-ellipsis-h {
+    &:extend(.fa-ellipsis-h all);
+}
+.ico-ellipsis-v {
+    &:extend(.fa-ellipsis-v all);
+}
+.ico-rss-square {
+    &:extend(.fa-rss-square all);
+}
+.ico-play-circle {
+    &:extend(.fa-play-circle all);
+}
+.ico-ticket {
+    &:extend(.fa-ticket all);
+}
+.ico-minus-square {
+    &:extend(.fa-minus-square all);
+}
+.ico-minus-square-o {
+    &:extend(.fa-minus-square-o all);
+}
+.ico-level-up {
+    &:extend(.fa-level-up all);
+}
+.ico-level-down {
+    &:extend(.fa-level-down all);
+}
+.ico-check-square {
+    &:extend(.fa-check-square all);
+}
+.ico-pencil-square {
+    &:extend(.fa-pencil-square all);
+}
+.ico-external-link-square {
+    &:extend(.fa-external-link-square all);
+}
+.ico-share-square {
+    &:extend(.fa-share-square all);
+}
+.ico-compass {
+    &:extend(.fa-compass all);
+}
+.ico-toggle-down {
+    &:extend(.fa-toggle-down all);
+}
+.ico-caret-square-o-down {
+    &:extend(.fa-caret-square-o-down all);
+}
+.ico-toggle-up {
+    &:extend(.fa-toggle-up all);
+}
+.ico-caret-square-o-up {
+    &:extend(.fa-caret-square-o-up all);
+}
+.ico-toggle-right {
+    &:extend(.fa-toggle-right all);
+}
+.ico-caret-square-o-right {
+    &:extend(.fa-caret-square-o-right all);
+}
+.ico-euro {
+    &:extend(.fa-euro all);
+}
+.ico-eur {
+    &:extend(.fa-eur all);
+}
+.ico-gbp {
+    &:extend(.fa-gbp all);
+}
+.ico-dollar {
+    &:extend(.fa-dollar all);
+}
+.ico-usd {
+    &:extend(.fa-usd all);
+}
+.ico-rupee {
+    &:extend(.fa-rupee all);
+}
+.ico-inr {
+    &:extend(.fa-inr all);
+}
+.ico-cny {
+    &:extend(.fa-cny all);
+}
+.ico-rmb {
+    &:extend(.fa-rmb all);
+}
+.ico-yen {
+    &:extend(.fa-yen all);
+}
+.ico-jpy {
+    &:extend(.fa-jpy all);
+}
+.ico-ruble {
+    &:extend(.fa-ruble all);
+}
+.ico-rouble {
+    &:extend(.fa-rouble all);
+}
+.ico-rub {
+    &:extend(.fa-rub all);
+}
+.ico-won {
+    &:extend(.fa-won all);
+}
+.ico-krw {
+    &:extend(.fa-krw all);
+}
+.ico-bitcoin {
+    &:extend(.fa-bitcoin all);
+}
+.ico-btc {
+    &:extend(.fa-btc all);
+}
+.ico-file {
+    &:extend(.fa-file all);
+}
+.ico-file-text {
+    &:extend(.fa-file-text all);
+}
+.ico-sort-alpha-asc {
+    &:extend(.fa-sort-alpha-asc all);
+}
+.ico-sort-alpha-desc {
+    &:extend(.fa-sort-alpha-desc all);
+}
+.ico-sort-amount-asc {
+    &:extend(.fa-sort-amount-asc all);
+}
+.ico-sort-amount-desc {
+    &:extend(.fa-sort-amount-desc all);
+}
+.ico-sort-numeric-asc {
+    &:extend(.fa-sort-numeric-asc all);
+}
+.ico-sort-numeric-desc {
+    &:extend(.fa-sort-numeric-desc all);
+}
+.ico-thumbs-up {
+    &:extend(.fa-thumbs-up all);
+}
+.ico-thumbs-down {
+    &:extend(.fa-thumbs-down all);
+}
+.ico-youtube-square {
+    &:extend(.fa-youtube-square all);
+}
+.ico-youtube {
+    &:extend(.fa-youtube all);
+}
+.ico-xing {
+    &:extend(.fa-xing all);
+}
+.ico-xing-square {
+    &:extend(.fa-xing-square all);
+}
+.ico-youtube-play {
+    &:extend(.fa-youtube-play all);
+}
+.ico-dropbox {
+    &:extend(.fa-dropbox all);
+}
+.ico-stack-overflow {
+    &:extend(.fa-stack-overflow all);
+}
+.ico-instagram {
+    &:extend(.fa-instagram all);
+}
+.ico-flickr {
+    &:extend(.fa-flickr all);
+}
+.ico-adn {
+    &:extend(.fa-adn all);
+}
+.ico-bitbucket {
+    &:extend(.fa-bitbucket all);
+}
+.ico-bitbucket-square {
+    &:extend(.fa-bitbucket-square all);
+}
+.ico-tumblr {
+    &:extend(.fa-tumblr all);
+}
+.ico-tumblr-square {
+    &:extend(.fa-tumblr-square all);
+}
+.ico-long-arrow-down {
+    &:extend(.fa-long-arrow-down all);
+}
+.ico-long-arrow-up {
+    &:extend(.fa-long-arrow-up all);
+}
+.ico-long-arrow-left {
+    &:extend(.fa-long-arrow-left all);
+}
+.ico-long-arrow-right {
+    &:extend(.fa-long-arrow-right all);
+}
+.ico-apple {
+    &:extend(.fa-apple all);
+}
+.ico-windows {
+    &:extend(.fa-windows all);
+}
+.ico-android {
+    &:extend(.fa-android all);
+}
+.ico-linux {
+    &:extend(.fa-linux all);
+}
+.ico-dribbble {
+    &:extend(.fa-dribbble all);
+}
+.ico-skype {
+    &:extend(.fa-skype all);
+}
+.ico-foursquare {
+    &:extend(.fa-foursquare all);
+}
+.ico-trello {
+    &:extend(.fa-trello all);
+}
+.ico-female {
+    &:extend(.fa-female all);
+}
+.ico-male {
+    &:extend(.fa-male all);
+}
+.ico-gittip {
+    &:extend(.fa-gittip all);
+}
+.ico-gratipay {
+    &:extend(.fa-gratipay all);
+}
+.ico-sun-o {
+    &:extend(.fa-sun-o all);
+}
+.ico-moon-o {
+    &:extend(.fa-moon-o all);
+}
+.ico-archive {
+    &:extend(.fa-archive all);
+}
+.ico-bug {
+    &:extend(.fa-bug all);
+}
+.ico-vk {
+    &:extend(.fa-vk all);
+}
+.ico-weibo {
+    &:extend(.fa-weibo all);
+}
+.ico-renren {
+    &:extend(.fa-renren all);
+}
+.ico-pagelines {
+    &:extend(.fa-pagelines all);
+}
+.ico-stack-exchange {
+    &:extend(.fa-stack-exchange all);
+}
+.ico-arrow-circle-o-right {
+    &:extend(.fa-arrow-circle-o-right all);
+}
+.ico-arrow-circle-o-left {
+    &:extend(.fa-arrow-circle-o-left all);
+}
+.ico-toggle-left {
+    &:extend(.fa-toggle-left all);
+}
+.ico-caret-square-o-left {
+    &:extend(.fa-caret-square-o-left all);
+}
+.ico-dot-circle-o {
+    &:extend(.fa-dot-circle-o all);
+}
+.ico-wheelchair {
+    &:extend(.fa-wheelchair all);
+}
+.ico-vimeo-square {
+    &:extend(.fa-vimeo-square all);
+}
+.ico-turkish-lira {
+    &:extend(.fa-turkish-lira all);
+}
+.ico-try {
+    &:extend(.fa-try all);
+}
+.ico-plus-square-o {
+    &:extend(.fa-plus-square-o all);
+}
+.ico-space-shuttle {
+    &:extend(.fa-space-shuttle all);
+}
+.ico-slack {
+    &:extend(.fa-slack all);
+}
+.ico-envelope-square {
+    &:extend(.fa-envelope-square all);
+}
+.ico-wordpress {
+    &:extend(.fa-wordpress all);
+}
+.ico-openid {
+    &:extend(.fa-openid all);
+}
+.ico-institution {
+    &:extend(.fa-institution all);
+}
+.ico-bank {
+    &:extend(.fa-bank all);
+}
+.ico-university {
+    &:extend(.fa-university all);
+}
+.ico-mortar-board {
+    &:extend(.fa-mortar-board all);
+}
+.ico-graduation-cap {
+    &:extend(.fa-graduation-cap all);
+}
+.ico-yahoo {
+    &:extend(.fa-yahoo all);
+}
+.ico-google {
+    &:extend(.fa-google all);
+}
+.ico-reddit {
+    &:extend(.fa-reddit all);
+}
+.ico-reddit-square {
+    &:extend(.fa-reddit-square all);
+}
+.ico-stumbleupon-circle {
+    &:extend(.fa-stumbleupon-circle all);
+}
+.ico-stumbleupon {
+    &:extend(.fa-stumbleupon all);
+}
+.ico-delicious {
+    &:extend(.fa-delicious all);
+}
+.ico-digg {
+    &:extend(.fa-digg all);
+}
+.ico-pied-piper-pp {
+    &:extend(.fa-pied-piper-pp all);
+}
+.ico-pied-piper-alt {
+    &:extend(.fa-pied-piper-alt all);
+}
+.ico-drupal {
+    &:extend(.fa-drupal all);
+}
+.ico-joomla {
+    &:extend(.fa-joomla all);
+}
+.ico-language {
+    &:extend(.fa-language all);
+}
+.ico-fax {
+    &:extend(.fa-fax all);
+}
+.ico-building {
+    &:extend(.fa-building all);
+}
+.ico-child {
+    &:extend(.fa-child all);
+}
+.ico-paw {
+    &:extend(.fa-paw all);
+}
+.ico-spoon {
+    &:extend(.fa-spoon all);
+}
+.ico-cube {
+    &:extend(.fa-cube all);
+}
+.ico-cubes {
+    &:extend(.fa-cubes all);
+}
+.ico-behance {
+    &:extend(.fa-behance all);
+}
+.ico-behance-square {
+    &:extend(.fa-behance-square all);
+}
+.ico-steam {
+    &:extend(.fa-steam all);
+}
+.ico-steam-square {
+    &:extend(.fa-steam-square all);
+}
+.ico-recycle {
+    &:extend(.fa-recycle all);
+}
+.ico-automobile {
+    &:extend(.fa-automobile all);
+}
+.ico-car {
+    &:extend(.fa-car all);
+}
+.ico-cab {
+    &:extend(.fa-cab all);
+}
+.ico-taxi {
+    &:extend(.fa-taxi all);
+}
+.ico-tree {
+    &:extend(.fa-tree all);
+}
+.ico-spotify {
+    &:extend(.fa-spotify all);
+}
+.ico-deviantart {
+    &:extend(.fa-deviantart all);
+}
+.ico-soundcloud {
+    &:extend(.fa-soundcloud all);
+}
+.ico-database {
+    &:extend(.fa-database all);
+}
+.ico-file-pdf-o {
+    &:extend(.fa-file-pdf-o all);
+}
+.ico-file-word-o {
+    &:extend(.fa-file-word-o all);
+}
+.ico-file-excel-o {
+    &:extend(.fa-file-excel-o all);
+}
+.ico-file-powerpoint-o {
+    &:extend(.fa-file-powerpoint-o all);
+}
+.ico-file-photo-o {
+    &:extend(.fa-file-photo-o all);
+}
+.ico-file-picture-o {
+    &:extend(.fa-file-picture-o all);
+}
+.ico-file-image-o {
+    &:extend(.fa-file-image-o all);
+}
+.ico-file-zip-o {
+    &:extend(.fa-file-zip-o all);
+}
+.ico-file-archive-o {
+    &:extend(.fa-file-archive-o all);
+}
+.ico-file-sound-o {
+    &:extend(.fa-file-sound-o all);
+}
+.ico-file-audio-o {
+    &:extend(.fa-file-audio-o all);
+}
+.ico-file-movie-o {
+    &:extend(.fa-file-movie-o all);
+}
+.ico-file-video-o {
+    &:extend(.fa-file-video-o all);
+}
+.ico-file-code-o {
+    &:extend(.fa-file-code-o all);
+}
+.ico-vine {
+    &:extend(.fa-vine all);
+}
+.ico-codepen {
+    &:extend(.fa-codepen all);
+}
+.ico-jsfiddle {
+    &:extend(.fa-jsfiddle all);
+}
+.ico-life-bouy {
+    &:extend(.fa-life-bouy all);
+}
+.ico-life-buoy {
+    &:extend(.fa-life-buoy all);
+}
+.ico-life-saver {
+    &:extend(.fa-life-saver all);
+}
+.ico-support {
+    &:extend(.fa-support all);
+}
+.ico-life-ring {
+    &:extend(.fa-life-ring all);
+}
+.ico-circle-o-notch {
+    &:extend(.fa-circle-o-notch all);
+}
+.ico-ra {
+    &:extend(.fa-ra all);
+}
+.ico-resistance {
+    &:extend(.fa-resistance all);
+}
+.ico-rebel {
+    &:extend(.fa-rebel all);
+}
+.ico-ge {
+    &:extend(.fa-ge all);
+}
+.ico-empire {
+    &:extend(.fa-empire all);
+}
+.ico-git-square {
+    &:extend(.fa-git-square all);
+}
+.ico-git {
+    &:extend(.fa-git all);
+}
+.ico-y-combinator-square {
+    &:extend(.fa-y-combinator-square all);
+}
+.ico-yc-square {
+    &:extend(.fa-yc-square all);
+}
+.ico-hacker-news {
+    &:extend(.fa-hacker-news all);
+}
+.ico-tencent-weibo {
+    &:extend(.fa-tencent-weibo all);
+}
+.ico-qq {
+    &:extend(.fa-qq all);
+}
+.ico-wechat {
+    &:extend(.fa-wechat all);
+}
+.ico-weixin {
+    &:extend(.fa-weixin all);
+}
+.ico-send {
+    &:extend(.fa-send all);
+}
+.ico-paper-plane {
+    &:extend(.fa-paper-plane all);
+}
+.ico-send-o {
+    &:extend(.fa-send-o all);
+}
+.ico-paper-plane-o {
+    &:extend(.fa-paper-plane-o all);
+}
+.ico-history {
+    &:extend(.fa-history all);
+}
+.ico-circle-thin {
+    &:extend(.fa-circle-thin all);
+}
+.ico-header {
+    &:extend(.fa-header all);
+}
+.ico-paragraph {
+    &:extend(.fa-paragraph all);
+}
+.ico-sliders {
+    &:extend(.fa-sliders all);
+}
+.ico-share-alt {
+    &:extend(.fa-share-alt all);
+}
+.ico-share-alt-square {
+    &:extend(.fa-share-alt-square all);
+}
+.ico-bomb {
+    &:extend(.fa-bomb all);
+}
+.ico-soccer-ball-o {
+    &:extend(.fa-soccer-ball-o all);
+}
+.ico-futbol-o {
+    &:extend(.fa-futbol-o all);
+}
+.ico-tty {
+    &:extend(.fa-tty all);
+}
+.ico-binoculars {
+    &:extend(.fa-binoculars all);
+}
+.ico-plug {
+    &:extend(.fa-plug all);
+}
+.ico-slideshare {
+    &:extend(.fa-slideshare all);
+}
+.ico-twitch {
+    &:extend(.fa-twitch all);
+}
+.ico-yelp {
+    &:extend(.fa-yelp all);
+}
+.ico-newspaper-o {
+    &:extend(.fa-newspaper-o all);
+}
+.ico-wifi {
+    &:extend(.fa-wifi all);
+}
+.ico-calculator {
+    &:extend(.fa-calculator all);
+}
+.ico-paypal {
+    &:extend(.fa-paypal all);
+}
+.ico-google-wallet {
+    &:extend(.fa-google-wallet all);
+}
+.ico-cc-visa {
+    &:extend(.fa-cc-visa all);
+}
+.ico-cc-mastercard {
+    &:extend(.fa-cc-mastercard all);
+}
+.ico-cc-discover {
+    &:extend(.fa-cc-discover all);
+}
+.ico-cc-amex {
+    &:extend(.fa-cc-amex all);
+}
+.ico-cc-paypal {
+    &:extend(.fa-cc-paypal all);
+}
+.ico-cc-stripe {
+    &:extend(.fa-cc-stripe all);
+}
+.ico-bell-slash {
+    &:extend(.fa-bell-slash all);
+}
+.ico-bell-slash-o {
+    &:extend(.fa-bell-slash-o all);
+}
+.ico-trash {
+    &:extend(.fa-trash all);
+}
+.ico-copyright {
+    &:extend(.fa-copyright all);
+}
+.ico-at {
+    &:extend(.fa-at all);
+}
+.ico-eyedropper {
+    &:extend(.fa-eyedropper all);
+}
+.ico-paint-brush {
+    &:extend(.fa-paint-brush all);
+}
+.ico-birthday-cake {
+    &:extend(.fa-birthday-cake all);
+}
+.ico-area-chart {
+    &:extend(.fa-area-chart all);
+}
+.ico-pie-chart {
+    &:extend(.fa-pie-chart all);
+}
+.ico-line-chart {
+    &:extend(.fa-line-chart all);
+}
+.ico-lastfm {
+    &:extend(.fa-lastfm all);
+}
+.ico-lastfm-square {
+    &:extend(.fa-lastfm-square all);
+}
+.ico-toggle-off {
+    &:extend(.fa-toggle-off all);
+}
+.ico-toggle-on {
+    &:extend(.fa-toggle-on all);
+}
+.ico-bicycle {
+    &:extend(.fa-bicycle all);
+}
+.ico-bus {
+    &:extend(.fa-bus all);
+}
+.ico-ioxhost {
+    &:extend(.fa-ioxhost all);
+}
+.ico-angellist {
+    &:extend(.fa-angellist all);
+}
+.ico-cc {
+    &:extend(.fa-cc all);
+}
+.ico-shekel {
+    &:extend(.fa-shekel all);
+}
+.ico-sheqel {
+    &:extend(.fa-sheqel all);
+}
+.ico-ils {
+    &:extend(.fa-ils all);
+}
+.ico-meanpath {
+    &:extend(.fa-meanpath all);
+}
+.ico-buysellads {
+    &:extend(.fa-buysellads all);
+}
+.ico-connectdevelop {
+    &:extend(.fa-connectdevelop all);
+}
+.ico-dashcube {
+    &:extend(.fa-dashcube all);
+}
+.ico-forumbee {
+    &:extend(.fa-forumbee all);
+}
+.ico-leanpub {
+    &:extend(.fa-leanpub all);
+}
+.ico-sellsy {
+    &:extend(.fa-sellsy all);
+}
+.ico-shirtsinbulk {
+    &:extend(.fa-shirtsinbulk all);
+}
+.ico-simplybuilt {
+    &:extend(.fa-simplybuilt all);
+}
+.ico-skyatlas {
+    &:extend(.fa-skyatlas all);
+}
+.ico-cart-plus {
+    &:extend(.fa-cart-plus all);
+}
+.ico-cart-arrow-down {
+    &:extend(.fa-cart-arrow-down all);
+}
+.ico-diamond {
+    &:extend(.fa-diamond all);
+}
+.ico-ship {
+    &:extend(.fa-ship all);
+}
+.ico-user-secret {
+    &:extend(.fa-user-secret all);
+}
+.ico-motorcycle {
+    &:extend(.fa-motorcycle all);
+}
+.ico-street-view {
+    &:extend(.fa-street-view all);
+}
+.ico-heartbeat {
+    &:extend(.fa-heartbeat all);
+}
+.ico-venus {
+    &:extend(.fa-venus all);
+}
+.ico-mars {
+    &:extend(.fa-mars all);
+}
+.ico-mercury {
+    &:extend(.fa-mercury all);
+}
+.ico-intersex {
+    &:extend(.fa-intersex all);
+}
+.ico-transgender {
+    &:extend(.fa-transgender all);
+}
+.ico-transgender-alt {
+    &:extend(.fa-transgender-alt all);
+}
+.ico-venus-double {
+    &:extend(.fa-venus-double all);
+}
+.ico-mars-double {
+    &:extend(.fa-mars-double all);
+}
+.ico-venus-mars {
+    &:extend(.fa-venus-mars all);
+}
+.ico-mars-stroke {
+    &:extend(.fa-mars-stroke all);
+}
+.ico-mars-stroke-v {
+    &:extend(.fa-mars-stroke-v all);
+}
+.ico-mars-stroke-h {
+    &:extend(.fa-mars-stroke-h all);
+}
+.ico-neuter {
+    &:extend(.fa-neuter all);
+}
+.ico-genderless {
+    &:extend(.fa-genderless all);
+}
+.ico-facebook-official {
+    &:extend(.fa-facebook-official all);
+}
+.ico-pinterest-p {
+    &:extend(.fa-pinterest-p all);
+}
+.ico-whatsapp {
+    &:extend(.fa-whatsapp all);
+}
+.ico-server {
+    &:extend(.fa-server all);
+}
+.ico-user-plus {
+    &:extend(.fa-user-plus all);
+}
+.ico-user-times {
+    &:extend(.fa-user-times all);
+}
+.ico-hotel {
+    &:extend(.fa-hotel all);
+}
+.ico-bed {
+    &:extend(.fa-bed all);
+}
+.ico-viacoin {
+    &:extend(.fa-viacoin all);
+}
+.ico-train {
+    &:extend(.fa-train all);
+}
+.ico-subway {
+    &:extend(.fa-subway all);
+}
+.ico-medium {
+    &:extend(.fa-medium all);
+}
+.ico-yc {
+    &:extend(.fa-yc all);
+}
+.ico-y-combinator {
+    &:extend(.fa-y-combinator all);
+}
+.ico-optin-monster {
+    &:extend(.fa-optin-monster all);
+}
+.ico-opencart {
+    &:extend(.fa-opencart all);
+}
+.ico-expeditedssl {
+    &:extend(.fa-expeditedssl all);
+}
+.ico-battery-4 {
+    &:extend(.fa-battery-4 all);
+}
+.ico-battery {
+    &:extend(.fa-battery all);
+}
+.ico-battery-full {
+    &:extend(.fa-battery-full all);
+}
+.ico-battery-3 {
+    &:extend(.fa-battery-3 all);
+}
+.ico-battery-three-quarters {
+    &:extend(.fa-battery-three-quarters all);
+}
+.ico-battery-2 {
+    &:extend(.fa-battery-2 all);
+}
+.ico-battery-half {
+    &:extend(.fa-battery-half all);
+}
+.ico-battery-1 {
+    &:extend(.fa-battery-1 all);
+}
+.ico-battery-quarter {
+    &:extend(.fa-battery-quarter all);
+}
+.ico-battery-0 {
+    &:extend(.fa-battery-0 all);
+}
+.ico-battery-empty {
+    &:extend(.fa-battery-empty all);
+}
+.ico-mouse-pointer {
+    &:extend(.fa-mouse-pointer all);
+}
+.ico-i-cursor {
+    &:extend(.fa-i-cursor all);
+}
+.ico-object-group {
+    &:extend(.fa-object-group all);
+}
+.ico-object-ungroup {
+    &:extend(.fa-object-ungroup all);
+}
+.ico-sticky-note {
+    &:extend(.fa-sticky-note all);
+}
+.ico-sticky-note-o {
+    &:extend(.fa-sticky-note-o all);
+}
+.ico-cc-jcb {
+    &:extend(.fa-cc-jcb all);
+}
+.ico-cc-diners-club {
+    &:extend(.fa-cc-diners-club all);
+}
+.ico-clone {
+    &:extend(.fa-clone all);
+}
+.ico-balance-scale {
+    &:extend(.fa-balance-scale all);
+}
+.ico-hourglass-o {
+    &:extend(.fa-hourglass-o all);
+}
+.ico-hourglass-1 {
+    &:extend(.fa-hourglass-1 all);
+}
+.ico-hourglass-start {
+    &:extend(.fa-hourglass-start all);
+}
+.ico-hourglass-2 {
+    &:extend(.fa-hourglass-2 all);
+}
+.ico-hourglass-half {
+    &:extend(.fa-hourglass-half all);
+}
+.ico-hourglass-3 {
+    &:extend(.fa-hourglass-3 all);
+}
+.ico-hourglass-end {
+    &:extend(.fa-hourglass-end all);
+}
+.ico-hourglass {
+    &:extend(.fa-hourglass all);
+}
+.ico-hand-grab-o {
+    &:extend(.fa-hand-grab-o all);
+}
+.ico-hand-rock-o {
+    &:extend(.fa-hand-rock-o all);
+}
+.ico-hand-stop-o {
+    &:extend(.fa-hand-stop-o all);
+}
+.ico-hand-paper-o {
+    &:extend(.fa-hand-paper-o all);
+}
+.ico-hand-scissors-o {
+    &:extend(.fa-hand-scissors-o all);
+}
+.ico-hand-lizard-o {
+    &:extend(.fa-hand-lizard-o all);
+}
+.ico-hand-spock-o {
+    &:extend(.fa-hand-spock-o all);
+}
+.ico-hand-pointer-o {
+    &:extend(.fa-hand-pointer-o all);
+}
+.ico-hand-peace-o {
+    &:extend(.fa-hand-peace-o all);
+}
+.ico-trademark {
+    &:extend(.fa-trademark all);
+}
+.ico-registered {
+    &:extend(.fa-registered all);
+}
+.ico-creative-commons {
+    &:extend(.fa-creative-commons all);
+}
+.ico-gg {
+    &:extend(.fa-gg all);
+}
+.ico-gg-circle {
+    &:extend(.fa-gg-circle all);
+}
+.ico-tripadvisor {
+    &:extend(.fa-tripadvisor all);
+}
+.ico-odnoklassniki {
+    &:extend(.fa-odnoklassniki all);
+}
+.ico-odnoklassniki-square {
+    &:extend(.fa-odnoklassniki-square all);
+}
+.ico-get-pocket {
+    &:extend(.fa-get-pocket all);
+}
+.ico-wikipedia-w {
+    &:extend(.fa-wikipedia-w all);
+}
+.ico-safari {
+    &:extend(.fa-safari all);
+}
+.ico-chrome {
+    &:extend(.fa-chrome all);
+}
+.ico-firefox {
+    &:extend(.fa-firefox all);
+}
+.ico-opera {
+    &:extend(.fa-opera all);
+}
+.ico-internet-explorer {
+    &:extend(.fa-internet-explorer all);
+}
+.ico-tv {
+    &:extend(.fa-tv all);
+}
+.ico-television {
+    &:extend(.fa-television all);
+}
+.ico-contao {
+    &:extend(.fa-contao all);
+}
+.ico-500px {
+    &:extend(.fa-500px all);
+}
+.ico-amazon {
+    &:extend(.fa-amazon all);
+}
+.ico-calendar-plus-o {
+    &:extend(.fa-calendar-plus-o all);
+}
+.ico-calendar-minus-o {
+    &:extend(.fa-calendar-minus-o all);
+}
+.ico-calendar-times-o {
+    &:extend(.fa-calendar-times-o all);
+}
+.ico-calendar-check-o {
+    &:extend(.fa-calendar-check-o all);
+}
+.ico-industry {
+    &:extend(.fa-industry all);
+}
+.ico-map-pin {
+    &:extend(.fa-map-pin all);
+}
+.ico-map-signs {
+    &:extend(.fa-map-signs all);
+}
+.ico-map-o {
+    &:extend(.fa-map-o all);
+}
+.ico-map {
+    &:extend(.fa-map all);
+}
+.ico-commenting {
+    &:extend(.fa-commenting all);
+}
+.ico-commenting-o {
+    &:extend(.fa-commenting-o all);
+}
+.ico-houzz {
+    &:extend(.fa-houzz all);
+}
+.ico-vimeo {
+    &:extend(.fa-vimeo all);
+}
+.ico-black-tie {
+    &:extend(.fa-black-tie all);
+}
+.ico-fonticons {
+    &:extend(.fa-fonticons all);
+}
+.ico-reddit-alien {
+    &:extend(.fa-reddit-alien all);
+}
+.ico-edge {
+    &:extend(.fa-edge all);
+}
+.ico-credit-card-alt {
+    &:extend(.fa-credit-card-alt all);
+}
+.ico-codiepie {
+    &:extend(.fa-codiepie all);
+}
+.ico-modx {
+    &:extend(.fa-modx all);
+}
+.ico-fort-awesome {
+    &:extend(.fa-fort-awesome all);
+}
+.ico-usb {
+    &:extend(.fa-usb all);
+}
+.ico-product-hunt {
+    &:extend(.fa-product-hunt all);
+}
+.ico-mixcloud {
+    &:extend(.fa-mixcloud all);
+}
+.ico-scribd {
+    &:extend(.fa-scribd all);
+}
+.ico-pause-circle {
+    &:extend(.fa-pause-circle all);
+}
+.ico-pause-circle-o {
+    &:extend(.fa-pause-circle-o all);
+}
+.ico-stop-circle {
+    &:extend(.fa-stop-circle all);
+}
+.ico-stop-circle-o {
+    &:extend(.fa-stop-circle-o all);
+}
+.ico-shopping-bag {
+    &:extend(.fa-shopping-bag all);
+}
+.ico-shopping-basket {
+    &:extend(.fa-shopping-basket all);
+}
+.ico-hashtag {
+    &:extend(.fa-hashtag all);
+}
+.ico-bluetooth {
+    &:extend(.fa-bluetooth all);
+}
+.ico-bluetooth-b {
+    &:extend(.fa-bluetooth-b all);
+}
+.ico-percent {
+    &:extend(.fa-percent all);
+}
+.ico-gitlab {
+    &:extend(.fa-gitlab all);
+}
+.ico-wpbeginner {
+    &:extend(.fa-wpbeginner all);
+}
+.ico-wpforms {
+    &:extend(.fa-wpforms all);
+}
+.ico-envira {
+    &:extend(.fa-envira all);
+}
+.ico-universal-access {
+    &:extend(.fa-universal-access all);
+}
+.ico-wheelchair-alt {
+    &:extend(.fa-wheelchair-alt all);
+}
+.ico-question-circle-o {
+    &:extend(.fa-question-circle-o all);
+}
+.ico-blind {
+    &:extend(.fa-blind all);
+}
+.ico-audio-description {
+    &:extend(.fa-audio-description all);
+}
+.ico-volume-control-phone {
+    &:extend(.fa-volume-control-phone all);
+}
+.ico-braille {
+    &:extend(.fa-braille all);
+}
+.ico-assistive-listening-systems {
+    &:extend(.fa-assistive-listening-systems all);
+}
+.ico-asl-interpreting {
+    &:extend(.fa-asl-interpreting all);
+}
+.ico-american-sign-language-interpreting {
+    &:extend(.fa-american-sign-language-interpreting all);
+}
+.ico-deafness {
+    &:extend(.fa-deafness all);
+}
+.ico-hard-of-hearing {
+    &:extend(.fa-hard-of-hearing all);
+}
+.ico-deaf {
+    &:extend(.fa-deaf all);
+}
+.ico-glide {
+    &:extend(.fa-glide all);
+}
+.ico-glide-g {
+    &:extend(.fa-glide-g all);
+}
+.ico-signing {
+    &:extend(.fa-signing all);
+}
+.ico-sign-language {
+    &:extend(.fa-sign-language all);
+}
+.ico-low-vision {
+    &:extend(.fa-low-vision all);
+}
+.ico-viadeo {
+    &:extend(.fa-viadeo all);
+}
+.ico-viadeo-square {
+    &:extend(.fa-viadeo-square all);
+}
+.ico-snapchat {
+    &:extend(.fa-snapchat all);
+}
+.ico-snapchat-ghost {
+    &:extend(.fa-snapchat-ghost all);
+}
+.ico-snapchat-square {
+    &:extend(.fa-snapchat-square all);
+}
+.ico-pied-piper {
+    &:extend(.fa-pied-piper all);
+}
+.ico-first-order {
+    &:extend(.fa-first-order all);
+}
+.ico-yoast {
+    &:extend(.fa-yoast all);
+}
+.ico-themeisle {
+    &:extend(.fa-themeisle all);
+}
+.ico-google-plus-circle {
+    &:extend(.fa-google-plus-circle all);
+}
+.ico-google-plus-official {
+    &:extend(.fa-google-plus-official all);
+}
+.ico-fa {
+    &:extend(.fa-fa all);
+}
+.ico-font-awesome {
+    &:extend(.fa-font-awesome all);
+}
+.ico-handshake-o {
+    &:extend(.fa-handshake-o all);
+}
+.ico-envelope-open {
+    &:extend(.fa-envelope-open all);
+}
+.ico-envelope-open-o {
+    &:extend(.fa-envelope-open-o all);
+}
+.ico-linode {
+    &:extend(.fa-linode all);
+}
+.ico-address-book {
+    &:extend(.fa-address-book all);
+}
+.ico-address-book-o {
+    &:extend(.fa-address-book-o all);
+}
+.ico-vcard {
+    &:extend(.fa-vcard all);
+}
+.ico-address-card {
+    &:extend(.fa-address-card all);
+}
+.ico-vcard-o {
+    &:extend(.fa-vcard-o all);
+}
+.ico-address-card-o {
+    &:extend(.fa-address-card-o all);
+}
+.ico-user-circle {
+    &:extend(.fa-user-circle all);
+}
+.ico-user-circle-o {
+    &:extend(.fa-user-circle-o all);
+}
+.ico-user-o {
+    &:extend(.fa-user-o all);
+}
+.ico-id-badge {
+    &:extend(.fa-id-badge all);
+}
+.ico-drivers-license {
+    &:extend(.fa-drivers-license all);
+}
+.ico-id-card {
+    &:extend(.fa-id-card all);
+}
+.ico-drivers-license-o {
+    &:extend(.fa-drivers-license-o all);
+}
+.ico-id-card-o {
+    &:extend(.fa-id-card-o all);
+}
+.ico-quora {
+    &:extend(.fa-quora all);
+}
+.ico-free-code-camp {
+    &:extend(.fa-free-code-camp all);
+}
+.ico-telegram {
+    &:extend(.fa-telegram all);
+}
+.ico-thermometer-4 {
+    &:extend(.fa-thermometer-4 all);
+}
+.ico-thermometer {
+    &:extend(.fa-thermometer all);
+}
+.ico-thermometer-full {
+    &:extend(.fa-thermometer-full all);
+}
+.ico-thermometer-3 {
+    &:extend(.fa-thermometer-3 all);
+}
+.ico-thermometer-three-quarters {
+    &:extend(.fa-thermometer-three-quarters all);
+}
+.ico-thermometer-2 {
+    &:extend(.fa-thermometer-2 all);
+}
+.ico-thermometer-half {
+    &:extend(.fa-thermometer-half all);
+}
+.ico-thermometer-1 {
+    &:extend(.fa-thermometer-1 all);
+}
+.ico-thermometer-quarter {
+    &:extend(.fa-thermometer-quarter all);
+}
+.ico-thermometer-0 {
+    &:extend(.fa-thermometer-0 all);
+}
+.ico-thermometer-empty {
+    &:extend(.fa-thermometer-empty all);
+}
+.ico-shower {
+    &:extend(.fa-shower all);
+}
+.ico-bathtub {
+    &:extend(.fa-bathtub all);
+}
+.ico-s15 {
+    &:extend(.fa-s15 all);
+}
+.ico-bath {
+    &:extend(.fa-bath all);
+}
+.ico-podcast {
+    &:extend(.fa-podcast all);
+}
+.ico-window-maximize {
+    &:extend(.fa-window-maximize all);
+}
+.ico-window-minimize {
+    &:extend(.fa-window-minimize all);
+}
+.ico-window-restore {
+    &:extend(.fa-window-restore all);
+}
+.ico-times-rectangle {
+    &:extend(.fa-times-rectangle all);
+}
+.ico-window-close {
+    &:extend(.fa-window-close all);
+}
+.ico-times-rectangle-o {
+    &:extend(.fa-times-rectangle-o all);
+}
+.ico-window-close-o {
+    &:extend(.fa-window-close-o all);
+}
+.ico-bandcamp {
+    &:extend(.fa-bandcamp all);
+}
+.ico-grav {
+    &:extend(.fa-grav all);
+}
+.ico-etsy {
+    &:extend(.fa-etsy all);
+}
+.ico-imdb {
+    &:extend(.fa-imdb all);
+}
+.ico-ravelry {
+    &:extend(.fa-ravelry all);
+}
+.ico-eercast {
+    &:extend(.fa-eercast all);
+}
+.ico-microchip {
+    &:extend(.fa-microchip all);
+}
+.ico-snowflake-o {
+    &:extend(.fa-snowflake-o all);
+}
+.ico-superpowers {
+    &:extend(.fa-superpowers all);
+}
+.ico-wpexplorer {
+    &:extend(.fa-wpexplorer all);
+}
+.ico-meetup {
+    &:extend(.fa-meetup all);
+}

+ 2 - 2
bin/libs/font-awesome.css

@@ -6,8 +6,8 @@
  * -------------------------- */
  * -------------------------- */
 @font-face {
 @font-face {
   font-family: 'FontAwesome';
   font-family: 'FontAwesome';
-  src: url('fontawesome-webfont.eot?v=4.7.0');
-  src: url('fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('fontawesome-webfont.woff?v=4.7.0') format('woff'), url('fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');
+  src: url('libs/fontawesome-webfont.eot?v=4.7.0');
+  src: url('libs/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('libs/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('libs/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('libs/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('libs/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');
   font-weight: normal;
   font-weight: normal;
   font-style: normal;
   font-style: normal;
 }
 }

+ 2 - 5
bin/style.css

@@ -390,7 +390,8 @@ input[type=checkbox]:checked:after {
 }
 }
 .hide-toolbar .toolbar-label > .icon,
 .hide-toolbar .toolbar-label > .icon,
 .hide-toolbar .menu > .icon {
 .hide-toolbar .menu > .icon {
-  vertical-align: center;
+  vertical-align: middle;
+  margin-bottom: 2px;
 }
 }
 .hide-toolbar .menu {
 .hide-toolbar .menu {
   user-select: none;
   user-select: none;
@@ -415,10 +416,6 @@ input[type=checkbox]:checked:after {
   font-size: 16px;
   font-size: 16px;
   vertical-align: middle;
   vertical-align: middle;
 }
 }
-.hide-toolbar .button > .icon,
-.hide-toolbar .toggle > .icon {
-  vertical-align: center;
-}
 .hide-toolbar .button:hover,
 .hide-toolbar .button:hover,
 .hide-toolbar .toggle:hover,
 .hide-toolbar .toggle:hover,
 .scene-partition .show-cols-btn:hover {
 .scene-partition .show-cols-btn:hover {

+ 2 - 4
bin/style.less

@@ -443,7 +443,8 @@ input[type=checkbox] {
 		text-align: center;
 		text-align: center;
 		text-shadow: 1px 2px 2px black;
 		text-shadow: 1px 2px 2px black;
 		>.icon {
 		>.icon {
-			vertical-align: center;
+			vertical-align: middle;
+			margin-bottom: 2px;
 		}
 		}
 	}
 	}
 
 
@@ -468,9 +469,6 @@ input[type=checkbox] {
 		cursor : pointer;
 		cursor : pointer;
 		font-size: 16px;
 		font-size: 16px;
 		vertical-align: middle;
 		vertical-align: middle;
-		>.icon {
-			vertical-align: center;
-		}
 		&:hover {
 		&:hover {
 			color : white;
 			color : white;
 			border-color : white;
 			border-color : white;

+ 4 - 2
hide/comp/ContextMenu.hx

@@ -71,7 +71,10 @@ class ContextMenu {
 				type: "cm_separator",
 				type: "cm_separator",
 			};
 			};
 		}
 		}
-		var name = i.label;
+		var name = "";
+		if( i.icon != null && i.checked == null)
+			name += '<span class="context-icon"><span class="ico ico-${i.icon}"></span></span>';
+		name += i.label;
 		if( i.keys != null ) {
 		if( i.keys != null ) {
 			name += '<span class="contextmenu-keys">' + toKeyString(i.keys) + "</span>";
 			name += '<span class="contextmenu-keys">' + toKeyString(i.keys) + "</span>";
 		}
 		}
@@ -79,7 +82,6 @@ class ContextMenu {
 		var ret : Dynamic = {
 		var ret : Dynamic = {
 			name : name,
 			name : name,
 			isHtmlName : true,
 			isHtmlName : true,
-			icon : i.icon, // is currently overridden by checkboxes or radio buttons
 			callback : function(itemKey, opt, rootMenu, originalEvent) {
 			callback : function(itemKey, opt, rootMenu, originalEvent) {
 				i.click();
 				i.click();
 				return autoclose;
 				return autoclose;

+ 1 - 1
hide/comp/IconTree.hx

@@ -364,7 +364,7 @@ class IconTree<T:{}> extends Component {
 				var val = elt.val();
 				var val = elt.val();
 				haxe.Timer.delay(filter, val.length == 1 ? 500 : 100);
 				haxe.Timer.delay(filter, val.length == 1 ? 500 : 100);
 			});
 			});
-			new Element("<i>").addClass("fa fa-times-circle").appendTo(searchBox).click(function(_) {
+			new Element("<i>").addClass("ico ico-times-circle").appendTo(searchBox).click(function(_) {
 				closeFilter();
 				closeFilter();
 			});
 			});
 		}
 		}

+ 6 - 5
hide/comp/SceneEditor.hx

@@ -451,7 +451,7 @@ class SceneEditor {
 			var r : hide.comp.IconTree.IconTreeItem<PrefabElement> = {
 			var r : hide.comp.IconTree.IconTreeItem<PrefabElement> = {
 				value : o,
 				value : o,
 				text : o.name,
 				text : o.name,
-				icon : "fa fa-"+icon,
+				icon : "ico ico-"+icon,
 				children : o.children.length > 0 || (ref != null && @:privateAccess ref.editMode),
 				children : o.children.length > 0 || (ref != null && @:privateAccess ref.editMode),
 				state: state
 				state: state
 			};
 			};
@@ -1203,7 +1203,7 @@ class SceneEditor {
 
 
 			var visTog = el.find(".visibility-toggle").first();
 			var visTog = el.find(".visibility-toggle").first();
 			if(visTog.length == 0) {
 			if(visTog.length == 0) {
-				visTog = new Element('<i class="fa fa-eye visibility-toggle" title = "Hide (${view.config.get("key.sceneeditor.hide")})"/>').insertAfter(el.find("a.jstree-anchor").first());
+				visTog = new Element('<i class="ico ico-eye visibility-toggle" title = "Hide (${view.config.get("key.sceneeditor.hide")})"/>').insertAfter(el.find("a.jstree-anchor").first());
 				visTog.click(function(e) {
 				visTog.click(function(e) {
 					if(curEdit.elements.indexOf(obj3d) >= 0)
 					if(curEdit.elements.indexOf(obj3d) >= 0)
 						setVisible(curEdit.elements, isHidden(obj3d));
 						setVisible(curEdit.elements, isHidden(obj3d));
@@ -1220,7 +1220,7 @@ class SceneEditor {
 			}
 			}
 			var lockTog = el.find(".lock-toggle").first();
 			var lockTog = el.find(".lock-toggle").first();
 			if(lockTog.length == 0) {
 			if(lockTog.length == 0) {
-				lockTog = new Element('<i class="fa fa-lock lock-toggle"/>').insertAfter(el.find("a.jstree-anchor").first());
+				lockTog = new Element('<i class="ico ico-lock lock-toggle"/>').insertAfter(el.find("a.jstree-anchor").first());
 				lockTog.click(function(e) {
 				lockTog.click(function(e) {
 					if(curEdit.elements.indexOf(obj3d) >= 0)
 					if(curEdit.elements.indexOf(obj3d) >= 0)
 						setLock(curEdit.elements, !obj3d.locked);
 						setLock(curEdit.elements, !obj3d.locked);
@@ -1410,7 +1410,7 @@ class SceneEditor {
 			<div class="group" name="CDB">
 			<div class="group" name="CDB">
 				<dl>
 				<dl>
 				<dt>
 				<dt>
-					<div class="btn-cdb-large fa fa-file-text"></div>
+					<div class="btn-cdb-large ico ico-file-text"></div>
 					Type
 					Type
 				</dt>
 				</dt>
 				<dd><select><option value="">- No props -</option></select></dd>
 				<dd><select><option value="">- No props -</option></select></dd>
@@ -2352,7 +2352,8 @@ class SceneEditor {
 					});
 					});
 				else
 				else
 					addElements([make()]);
 					addElements([make()]);
-			}
+			},
+			icon : pmodel.inf.icon,
 		};
 		};
 	}
 	}
 
 

+ 6 - 6
hide/comp/SceneTree.hx

@@ -53,8 +53,8 @@ class SceneTree extends IconTree<String> {
 		var obj = Std.downcast(v, h3d.scene.Object);
 		var obj = Std.downcast(v, h3d.scene.Object);
 		if( obj == null || Std.is(obj,h3d.scene.Skin.Joint) ) return;
 		if( obj == null || Std.is(obj,h3d.scene.Skin.Joint) ) return;
 
 
-		if (el.find(".fa-eye").length == 0) {
-			var visibilityToggle = new Element('<i class="fa fa-eye visibility-large-toggle"/>').appendTo(el.find(".jstree-anchor").first());
+		if (el.find(".ico-eye").length == 0) {
+			var visibilityToggle = new Element('<i class="ico ico-eye visibility-large-toggle"/>').appendTo(el.find(".jstree-anchor").first());
 			visibilityToggle.click(function (e) {
 			visibilityToggle.click(function (e) {
 				obj.visible = !obj.visible;
 				obj.visible = !obj.visible;
 				el.toggleClass("hidden", !obj.visible);
 				el.toggleClass("hidden", !obj.visible);
@@ -96,7 +96,7 @@ class SceneTree extends IconTree<String> {
 				{
 				{
 					value :path+i,
 					value :path+i,
 					text : getObjectName(c),
 					text : getObjectName(c),
-					icon : "fa fa-" + getIcon(c),
+					icon : "ico ico-" + getIcon(c),
 					children : c.isMesh() || c.numChildren > 0,
 					children : c.isMesh() || c.numChildren > 0,
 					state : { opened : c.numChildren > 0 && c.numChildren < 10 }
 					state : { opened : c.numChildren > 0 && c.numChildren < 10 }
 				}
 				}
@@ -109,7 +109,7 @@ class SceneTree extends IconTree<String> {
 				elements.push({
 				elements.push({
 					value :path+"mat:"+i,
 					value :path+"mat:"+i,
 					text : m.name == null ? "Material@"+i : m.name,
 					text : m.name == null ? "Material@"+i : m.name,
-					icon : "fa fa-photo",
+					icon : "ico ico-photo",
 				});
 				});
 			}
 			}
 			var sk = Std.downcast(root,h3d.scene.Skin);
 			var sk = Std.downcast(root,h3d.scene.Skin);
@@ -118,7 +118,7 @@ class SceneTree extends IconTree<String> {
 					elements.push({
 					elements.push({
 						value: path+"joint:"+j.name,
 						value: path+"joint:"+j.name,
 						text : j.name,
 						text : j.name,
-						icon : "fa fa-gg",
+						icon : "ico ico-gg",
 						children : j.subs.length > 0,
 						children : j.subs.length > 0,
 					});
 					});
 			}
 			}
@@ -130,7 +130,7 @@ class SceneTree extends IconTree<String> {
 				elements.push({
 				elements.push({
 					value: path+"joint:"+j.name,
 					value: path+"joint:"+j.name,
 					text : j.name,
 					text : j.name,
-					icon : "fa fa-gg",
+					icon : "ico ico-gg",
 					children : j.subs.length > 0,
 					children : j.subs.length > 0,
 				});
 				});
 		}
 		}

+ 1 - 1
hide/comp/Tabs.hx

@@ -65,7 +65,7 @@ class Tabs extends Component {
 			var icon = t.attr("icon");
 			var icon = t.attr("icon");
 			var name = t.attr("name");
 			var name = t.attr("name");
 			var index = index++;
 			var index = index++;
-			var tab = new Element("<div>").html( (icon != null ? '<div class="fa fa-$icon"></div> ' : '') + (name != null ? name : '') );
+			var tab = new Element("<div>").html( (icon != null ? '<div class="ico ico-$icon"></div> ' : '') + (name != null ? name : '') );
 			t.attr("index", index);
 			t.attr("index", index);
 			tab.attr("index", index);
 			tab.attr("index", index);
 			tab.appendTo(header);
 			tab.appendTo(header);

+ 4 - 4
hide/comp/Toolbar.hx

@@ -44,14 +44,14 @@ class Toolbar extends Component {
 	}
 	}
 
 
 	public function addButton( icon : String, ?label : String, ?onClick : Void -> Void ) {
 	public function addButton( icon : String, ?label : String, ?onClick : Void -> Void ) {
-		var e = new Element('<div class="button" title="${label==null ? "" : label}"><div class="icon fa fa-$icon"/></div>');
+		var e = new Element('<div class="button" title="${label==null ? "" : label}"><div class="icon ico ico-$icon"/></div>');
 		if( onClick != null ) e.click(function(_) onClick());
 		if( onClick != null ) e.click(function(_) onClick());
 		e.appendTo(element);
 		e.appendTo(element);
 		return e;
 		return e;
 	}
 	}
 
 
 	public function addToggle( icon : String, ?title : String, ?label : String, ?onToggle : Bool -> Void, ?defValue = false ) : ToolToggle {
 	public function addToggle( icon : String, ?title : String, ?label : String, ?onToggle : Bool -> Void, ?defValue = false ) : ToolToggle {
-		var e = new Element('<div class="toggle" title="${title==null ? "" : title}"><div class="icon fa fa-$icon"/></div>');
+		var e = new Element('<div class="toggle" title="${title==null ? "" : title}"><div class="icon ico ico-$icon"/></div>');
 		if(label != null) {
 		if(label != null) {
 			new Element('<label>$label</label>').appendTo(e);
 			new Element('<label>$label</label>').appendTo(e);
 		}
 		}
@@ -94,7 +94,7 @@ class Toolbar extends Component {
 	}
 	}
 
 
 	public function addSelect<T>( icon : String, ?label : String ) : ToolSelect<T> {
 	public function addSelect<T>( icon : String, ?label : String ) : ToolSelect<T> {
-		var e = new Element('<div class="select" title="${label==null ? "" : label}"><div class="icon fa fa-$icon"/><select/></div>');
+		var e = new Element('<div class="select" title="${label==null ? "" : label}"><div class="icon ico ico-$icon"/><select/></div>');
 		var content : Array<{ label : String, value : T }> = [];
 		var content : Array<{ label : String, value : T }> = [];
 		var select = e.find("select");
 		var select = e.find("select");
 		var tool : ToolSelect<T> = {
 		var tool : ToolSelect<T> = {
@@ -113,7 +113,7 @@ class Toolbar extends Component {
 	}
 	}
 
 
 	public function addMenu<T>( icon : String, label : String ) : ToolMenu<T> {
 	public function addMenu<T>( icon : String, label : String ) : ToolMenu<T> {
-		var e = new Element('<div class="menu"><div class="icon fa fa-$icon"/>${label==null ? "" : label}</div>');
+		var e = new Element('<div class="menu"><div class="icon ico ico-$icon"/>${label==null ? "" : label}</div>');
 		var menuItems : Array<hide.comp.ContextMenu.ContextMenuItem> = [];
 		var menuItems : Array<hide.comp.ContextMenu.ContextMenuItem> = [];
 		var tool : ToolMenu<T> = {
 		var tool : ToolMenu<T> = {
 			element : e,
 			element : e,

+ 1 - 1
hide/comp/cdb/Editor.hx

@@ -795,7 +795,7 @@ class Editor extends Component {
 		}).keyup(function(e) {
 		}).keyup(function(e) {
 			searchFilter(e.getThis().val());
 			searchFilter(e.getThis().val());
 		});
 		});
-		new Element("<i>").addClass("fa fa-times-circle").appendTo(searchBox).click(function(_) {
+		new Element("<i>").addClass("ico ico-times-circle").appendTo(searchBox).click(function(_) {
 			searchFilter(null);
 			searchFilter(null);
 			searchBox.toggle();
 			searchBox.toggle();
 			var c = cursor.save();
 			var c = cursor.save();

+ 2 - 2
hide/comp/cdb/Table.hx

@@ -152,7 +152,7 @@ class Table extends Component {
 
 
 			if( c.documentation != null ) {
 			if( c.documentation != null ) {
 				col.attr("title", c.documentation);
 				col.attr("title", c.documentation);
-				new Element('<i style="margin-left: 5px" class="fa fa-book"/>').appendTo(col);
+				new Element('<i style="margin-left: 5px" class="ico ico-book"/>').appendTo(col);
 			}
 			}
 			if( sheet.props.displayColumn == c.name )
 			if( sheet.props.displayColumn == c.name )
 				col.addClass("display");
 				col.addClass("display");
@@ -325,7 +325,7 @@ class Table extends Component {
 
 
 			if( c.documentation != null ) {
 			if( c.documentation != null ) {
 				th.attr("title", c.documentation);
 				th.attr("title", c.documentation);
-				new Element('<i style="margin-left: 5px" class="fa fa-book"/>').appendTo(th);
+				new Element('<i style="margin-left: 5px" class="ico ico-book"/>').appendTo(th);
 			}
 			}
 
 
 			var line = new Line(this, [c], lines.length, l);
 			var line = new Line(this, [c], lines.length, l);

+ 6 - 6
hide/view/FXEditor.hx

@@ -337,7 +337,7 @@ class FXEditor extends FileView {
 						<div class="flex vertical">
 						<div class="flex vertical">
 							<div class="hide-toolbar" style="zoom: 80%">
 							<div class="hide-toolbar" style="zoom: 80%">
 								<div class="button collapse-btn" title="Collapse all">
 								<div class="button collapse-btn" title="Collapse all">
-									<div class="icon fa fa-reply-all"></div>
+									<div class="icon ico ico-reply-all"></div>
 								</div>
 								</div>
 							</div>
 							</div>
 							<div class="hide-scenetree"></div>
 							<div class="hide-scenetree"></div>
@@ -914,7 +914,7 @@ class FXEditor extends FileView {
 			<div class="track-header">
 			<div class="track-header">
 				<div class="track-prop">
 				<div class="track-prop">
 					<label>${upperCase(trackName)}</label>
 					<label>${upperCase(trackName)}</label>
-					<div class="track-toggle"><div class="icon fa"></div></div>
+					<div class="track-toggle"><div class="icon ico"></div></div>
 				</div>
 				</div>
 				<div class="dopesheet"></div>
 				<div class="dopesheet"></div>
 			</div>
 			</div>
@@ -934,9 +934,9 @@ class FXEditor extends FileView {
 		function updateExpanded() {
 		function updateExpanded() {
 			var icon = trackToggle.find(".icon");
 			var icon = trackToggle.find(".icon");
 			if(expand)
 			if(expand)
-				icon.removeClass("fa-angle-right").addClass("fa-angle-down");
+				icon.removeClass("ico-angle-right").addClass("ico-angle-down");
 			else
 			else
-				icon.removeClass("fa-angle-down").addClass("fa-angle-right");
+				icon.removeClass("ico-angle-down").addClass("ico-angle-right");
 			curvesContainer.toggleClass("hidden", !expand);
 			curvesContainer.toggleClass("hidden", !expand);
 			for(c in trackEdits)
 			for(c in trackEdits)
 				c.refresh();
 				c.refresh();
@@ -1214,7 +1214,7 @@ class FXEditor extends FileView {
 		for(event in events) {
 		for(event in events) {
 			var info = event.getDisplayInfo(sceneEditor.curEdit);
 			var info = event.getDisplayInfo(sceneEditor.curEdit);
 			var evtEl = new Element('<div class="event">
 			var evtEl = new Element('<div class="event">
-				<i class="icon fa fa-play-circle"></i><label></label>
+				<i class="icon ico ico-play-circle"></i><label></label>
 			</div>').appendTo(eventsEl);
 			</div>').appendTo(eventsEl);
 			items.push({el: evtEl, event: event });
 			items.push({el: evtEl, event: event });
 
 
@@ -1307,7 +1307,7 @@ class FXEditor extends FileView {
 		for(sec in sections) {
 		for(sec in sections) {
 			var objPanel = new Element('<div>
 			var objPanel = new Element('<div>
 				<div class="tracks-header">
 				<div class="tracks-header">
-					<label class="name">${upperCase(sec.elt.name)}</label> <div class="addtrack fa fa-plus-circle"></div>
+					<label class="name">${upperCase(sec.elt.name)}</label> <div class="addtrack ico ico-plus-circle"></div>
 					<label class="abspath">${sec.elt.getAbsPath(true)}</label>
 					<label class="abspath">${sec.elt.getAbsPath(true)}</label>
 				</div>
 				</div>
 				<div class="tracks"></div>
 				<div class="tracks"></div>

+ 11 - 3
hide/view/FileTree.hx

@@ -93,7 +93,7 @@ class FileTree extends FileView {
 				content.push({
 				content.push({
 					value : id,
 					value : id,
 					text : c,
 					text : c,
-					icon : "fa fa-" + (isDir ? "folder" : (ext != null && ext.options.icon != null ? ext.options.icon : "file-text")),
+					icon : "ico ico-" + (isDir ? "folder" : (ext != null && ext.options.icon != null ? ext.options.icon : "file-text")),
 					children : isDir,
 					children : isDir,
 				});
 				});
 			}
 			}
@@ -111,9 +111,17 @@ class FileTree extends FileView {
 			e.preventDefault();
 			e.preventDefault();
 			var allowedNew : Array<String> = config.get("filetree.allowednew");
 			var allowedNew : Array<String> = config.get("filetree.allowednew");
 			function allowed( ext : String ) return allowedNew.indexOf(ext) >= 0 || allowedNew.indexOf("*") >= 0;
 			function allowed( ext : String ) return allowedNew.indexOf(ext) >= 0 || allowedNew.indexOf("*") >= 0;
-			var newMenu = [for( e in EXTENSIONS ) if( e.options.createNew != null && Lambda.exists(e.extensions, allowed) ) { label : e.options.createNew, click : createNew.bind(current, e) }];
+			var newMenu = [for( e in EXTENSIONS ) if( e.options.createNew != null && Lambda.exists(e.extensions, allowed) ) {
+				label : e.options.createNew,
+				click : createNew.bind(current, e),
+				icon : e.options.icon,
+			}];
 			if( allowed("dir") )
 			if( allowed("dir") )
-				newMenu.unshift({ label : "Directory", click : createNew.bind(current, { options : { createNew : "Directory" }, extensions : null, component : null }) });
+				newMenu.unshift({
+					label : "Directory",
+					click : createNew.bind(current, { options : { createNew : "Directory" }, extensions : null, component : null }),
+					icon : "folder",
+				});
 			new hide.comp.ContextMenu([
 			new hide.comp.ContextMenu([
 				{ label : "New..", menu:newMenu },
 				{ label : "New..", menu:newMenu },
 				{ label : "", isSeparator: true },
 				{ label : "", isSeparator: true },

+ 7 - 7
hide/view/Prefab.hx

@@ -196,25 +196,25 @@ class Prefab extends FileView {
 						<div class="flex vertical">
 						<div class="flex vertical">
 							<div class="hide-toolbar">
 							<div class="hide-toolbar">
 								<div class="toolbar-label">
 								<div class="toolbar-label">
-									<div class="icon fa fa-sitemap"></div>
+									<div class="icon ico ico-sitemap"></div>
 									Scene
 									Scene
 								</div>
 								</div>
 								<div class="button collapse-btn" title="Collapse all">
 								<div class="button collapse-btn" title="Collapse all">
-									<div class="icon fa fa-reply-all"></div>
+									<div class="icon ico ico-reply-all"></div>
 								</div>
 								</div>
 
 
 								<div class="button combine-btn layout-btn" title="Toggle columns layout">
 								<div class="button combine-btn layout-btn" title="Toggle columns layout">
-									<div class="icon fa fa-compress"></div>
+									<div class="icon ico ico-compress"></div>
 								</div>
 								</div>
 								<div class="button separate-btn layout-btn" title="Toggle columns layout">
 								<div class="button separate-btn layout-btn" title="Toggle columns layout">
-									<div class="icon fa fa-expand"></div>
+									<div class="icon ico ico-expand"></div>
 								</div>
 								</div>
 
 
 								<div
 								<div
 									class="button hide-cols-btn close-btn"
 									class="button hide-cols-btn close-btn"
 									title="Hide Tree & Props (${config.get("key.sceneeditor.toggleLayout")})"
 									title="Hide Tree & Props (${config.get("key.sceneeditor.toggleLayout")})"
 								>
 								>
-									<div class="icon fa fa-chevron-right"></div>
+									<div class="icon ico ico-chevron-right"></div>
 								</div>
 								</div>
 							</div>
 							</div>
 
 
@@ -225,7 +225,7 @@ class Prefab extends FileView {
 					<div class="props-column">
 					<div class="props-column">
 						<div class="hide-toolbar">
 						<div class="hide-toolbar">
 							<div class="toolbar-label">
 							<div class="toolbar-label">
-								<div class="icon fa fa-sitemap"></div>
+								<div class="icon ico ico-sitemap"></div>
 								Properties
 								Properties
 							</div>
 							</div>
 						</div>
 						</div>
@@ -236,7 +236,7 @@ class Prefab extends FileView {
 						class="button show-cols-btn close-btn"
 						class="button show-cols-btn close-btn"
 						title="Show Tree & Props (${config.get("key.sceneeditor.toggleLayout")})"
 						title="Show Tree & Props (${config.get("key.sceneeditor.toggleLayout")})"
 					>
 					>
-						<div class="icon fa fa-chevron-left"></div>
+						<div class="icon ico ico-chevron-left"></div>
 					</div>
 					</div>
 				</div>
 				</div>
 			</div>
 			</div>

+ 15 - 15
hide/view/shadereditor/ShaderEditor.hx

@@ -527,7 +527,7 @@ class ShaderEditor extends hide.view.Graph {
 
 
 		var header = new Element('<div class="header">
 		var header = new Element('<div class="header">
 									<div class="title">
 									<div class="title">
-										<i class="fa fa-chevron-right" ></i>
+										<i class="ico ico-chevron-right" ></i>
 										<input class="input-title" type="input" value="${name}" />
 										<input class="input-title" type="input" value="${name}" />
 									</div>
 									</div>
 									<div class="type">
 									<div class="type">
@@ -622,24 +622,24 @@ class ShaderEditor extends hide.view.Graph {
 		if (b != null) {
 		if (b != null) {
 			if (b) {
 			if (b) {
 				elt.find(".content").show();
 				elt.find(".content").show();
-				var icon = elt.find(".fa");
-				icon.removeClass("fa-chevron-right");
-				icon.addClass("fa-chevron-down");
+				var icon = elt.find(".ico");
+				icon.removeClass("ico-chevron-right");
+				icon.addClass("ico-chevron-down");
 			} else {
 			} else {
 				elt.find(".content").hide();
 				elt.find(".content").hide();
-				var icon = elt.find(".fa");
-				icon.addClass("fa-chevron-right");
-				icon.removeClass("fa-chevron-down");
+				var icon = elt.find(".ico");
+				icon.addClass("ico-chevron-right");
+				icon.removeClass("ico-chevron-down");
 			}
 			}
 		} else {
 		} else {
 			elt.find(".content").toggle();
 			elt.find(".content").toggle();
-			var icon = elt.find(".fa");
-			if (icon.hasClass("fa-chevron-right")) {
-				icon.removeClass("fa-chevron-right");
-				icon.addClass("fa-chevron-down");
+			var icon = elt.find(".ico");
+			if (icon.hasClass("ico-chevron-right")) {
+				icon.removeClass("ico-chevron-right");
+				icon.addClass("ico-chevron-down");
 			} else {
 			} else {
-				icon.addClass("fa-chevron-right");
-				icon.removeClass("fa-chevron-down");
+				icon.addClass("ico-chevron-right");
+				icon.removeClass("ico-chevron-down");
 			}
 			}
 		}
 		}
 	}
 	}
@@ -864,7 +864,7 @@ class ShaderEditor extends hide.view.Graph {
 		<div id="add-menu">
 		<div id="add-menu">
 			<div class="search-container">
 			<div class="search-container">
 				<div class="icon" >
 				<div class="icon" >
-					<i class="fa fa-search"></i>
+					<i class="ico ico-search"></i>
 				</div>
 				</div>
 				<div class="search-bar" >
 				<div class="search-bar" >
 					<input type="text" id="search-input" autocomplete="off" >
 					<input type="text" id="search-input" autocomplete="off" >
@@ -1040,7 +1040,7 @@ class ShaderEditor extends hide.view.Graph {
 			var group = new Element('<div> ${key} </div>');
 			var group = new Element('<div> ${key} </div>');
 			group.on("click", function(e) {
 			group.on("click", function(e) {
 				var eltsGroup = [];
 				var eltsGroup = [];
-				var goBack = new Element("<div class='grey-item' > <i class='fa fa-chevron-left' /> Go back </div>");
+				var goBack = new Element("<div class='grey-item' > <i class='ico ico-chevron-left' /> Go back </div>");
 				goBack.on("click", function(e) {
 				goBack.on("click", function(e) {
 					contextMenuAddNode(Std.parseInt(contextMenu.css("left")), Std.parseInt(contextMenu.css("top")));
 					contextMenuAddNode(Std.parseInt(contextMenu.css("left")), Std.parseInt(contextMenu.css("top")));
 				});
 				});

+ 1 - 1
hrt/prefab/l3d/Camera.hx

@@ -216,7 +216,7 @@ class Camera extends Object3D {
 	}
 	}
 
 
 	override function getHideProps() : hide.prefab.HideProps {
 	override function getHideProps() : hide.prefab.HideProps {
-		return { icon : "cogs", name : "Camera" };
+		return { icon : "video-camera", name : "Camera" };
 	}
 	}
 	#end
 	#end