Преглед на файлове

Merge branch 'master' of ssh://git.davidventura.com.ar:443/tati/Autismify

David преди 11 години
родител
ревизия
df697f5d81
променени са 100 файла, в които са добавени 49143 реда и са изтрити 0 реда
  1. 13 0
      frontend/app.js
  2. 6590 0
      frontend/css/bootstrap.css
  3. 5 0
      frontend/css/bootstrap.min.css
  4. 4 0
      frontend/css/font-awesome.min.css
  5. BIN
      frontend/css/fonts/FontAwesome.otf
  6. BIN
      frontend/css/fonts/fontawesome-webfont.eot
  7. 565 0
      frontend/css/fonts/fontawesome-webfont.svg
  8. BIN
      frontend/css/fonts/fontawesome-webfont.ttf
  9. BIN
      frontend/css/fonts/fontawesome-webfont.woff
  10. BIN
      frontend/css/fonts/fontawesome-webfont.woff2
  11. 4 0
      frontend/css/fonts/ionicons-2.0.1/.gitignore
  12. 21 0
      frontend/css/fonts/ionicons-2.0.1/LICENSE
  13. 31 0
      frontend/css/fonts/ionicons-2.0.1/bower.json
  14. 2940 0
      frontend/css/fonts/ionicons-2.0.1/builder/build_data.json
  15. 38 0
      frontend/css/fonts/ionicons-2.0.1/builder/cheatsheet/icon-row.html
  16. 156 0
      frontend/css/fonts/ionicons-2.0.1/builder/cheatsheet/template.html
  17. 318 0
      frontend/css/fonts/ionicons-2.0.1/builder/generate.py
  18. 2940 0
      frontend/css/fonts/ionicons-2.0.1/builder/manifest.json
  19. 466 0
      frontend/css/fonts/ionicons-2.0.1/builder/scripts/eotlitetool.py
  20. 173 0
      frontend/css/fonts/ionicons-2.0.1/builder/scripts/generate_font.py
  21. BIN
      frontend/css/fonts/ionicons-2.0.1/builder/scripts/sfnt2woff
  22. 28009 0
      frontend/css/fonts/ionicons-2.0.1/cheatsheet.html
  23. 19 0
      frontend/css/fonts/ionicons-2.0.1/component.json
  24. 36 0
      frontend/css/fonts/ionicons-2.0.1/composer.json
  25. 1480 0
      frontend/css/fonts/ionicons-2.0.1/css/ionicons.css
  26. 11 0
      frontend/css/fonts/ionicons-2.0.1/css/ionicons.min.css
  27. BIN
      frontend/css/fonts/ionicons-2.0.1/fonts/ionicons.eot
  28. 2230 0
      frontend/css/fonts/ionicons-2.0.1/fonts/ionicons.svg
  29. BIN
      frontend/css/fonts/ionicons-2.0.1/fonts/ionicons.ttf
  30. BIN
      frontend/css/fonts/ionicons-2.0.1/fonts/ionicons.woff
  31. 60 0
      frontend/css/fonts/ionicons-2.0.1/readme.md
  32. 27 0
      frontend/css/fonts/ionicons-2.0.1/scss/_ionicons-font.scss
  33. 1473 0
      frontend/css/fonts/ionicons-2.0.1/scss/_ionicons-icons.scss
  34. 741 0
      frontend/css/fonts/ionicons-2.0.1/scss/_ionicons-variables.scss
  35. 15 0
      frontend/css/fonts/ionicons-2.0.1/scss/ionicons.scss
  36. 11 0
      frontend/css/fonts/ionicons-2.0.1/src/alert-circled.svg
  37. 9 0
      frontend/css/fonts/ionicons-2.0.1/src/alert.svg
  38. 12 0
      frontend/css/fonts/ionicons-2.0.1/src/android-add-circle.svg
  39. 11 0
      frontend/css/fonts/ionicons-2.0.1/src/android-add.svg
  40. 15 0
      frontend/css/fonts/ionicons-2.0.1/src/android-alarm-clock.svg
  41. 12 0
      frontend/css/fonts/ionicons-2.0.1/src/android-alert.svg
  42. 12 0
      frontend/css/fonts/ionicons-2.0.1/src/android-apps.svg
  43. 12 0
      frontend/css/fonts/ionicons-2.0.1/src/android-archive.svg
  44. 11 0
      frontend/css/fonts/ionicons-2.0.1/src/android-arrow-back.svg
  45. 11 0
      frontend/css/fonts/ionicons-2.0.1/src/android-arrow-down.svg
  46. 10 0
      frontend/css/fonts/ionicons-2.0.1/src/android-arrow-dropdown-circle.svg
  47. 9 0
      frontend/css/fonts/ionicons-2.0.1/src/android-arrow-dropdown.svg
  48. 10 0
      frontend/css/fonts/ionicons-2.0.1/src/android-arrow-dropleft-circle.svg
  49. 9 0
      frontend/css/fonts/ionicons-2.0.1/src/android-arrow-dropleft.svg
  50. 10 0
      frontend/css/fonts/ionicons-2.0.1/src/android-arrow-dropright-circle.svg
  51. 9 0
      frontend/css/fonts/ionicons-2.0.1/src/android-arrow-dropright.svg
  52. 10 0
      frontend/css/fonts/ionicons-2.0.1/src/android-arrow-dropup-circle.svg
  53. 9 0
      frontend/css/fonts/ionicons-2.0.1/src/android-arrow-dropup.svg
  54. 11 0
      frontend/css/fonts/ionicons-2.0.1/src/android-arrow-forward.svg
  55. 11 0
      frontend/css/fonts/ionicons-2.0.1/src/android-arrow-up.svg
  56. 15 0
      frontend/css/fonts/ionicons-2.0.1/src/android-attach.svg
  57. 12 0
      frontend/css/fonts/ionicons-2.0.1/src/android-bar.svg
  58. 19 0
      frontend/css/fonts/ionicons-2.0.1/src/android-bicycle.svg
  59. 16 0
      frontend/css/fonts/ionicons-2.0.1/src/android-boat.svg
  60. 7 0
      frontend/css/fonts/ionicons-2.0.1/src/android-bookmark.svg
  61. 18 0
      frontend/css/fonts/ionicons-2.0.1/src/android-bulb.svg
  62. 18 0
      frontend/css/fonts/ionicons-2.0.1/src/android-bus.svg
  63. 11 0
      frontend/css/fonts/ionicons-2.0.1/src/android-calendar.svg
  64. 10 0
      frontend/css/fonts/ionicons-2.0.1/src/android-call.svg
  65. 12 0
      frontend/css/fonts/ionicons-2.0.1/src/android-camera.svg
  66. 11 0
      frontend/css/fonts/ionicons-2.0.1/src/android-cancel.svg
  67. 15 0
      frontend/css/fonts/ionicons-2.0.1/src/android-car.svg
  68. 14 0
      frontend/css/fonts/ionicons-2.0.1/src/android-cart.svg
  69. 12 0
      frontend/css/fonts/ionicons-2.0.1/src/android-chat.svg
  70. 12 0
      frontend/css/fonts/ionicons-2.0.1/src/android-checkbox-blank.svg
  71. 13 0
      frontend/css/fonts/ionicons-2.0.1/src/android-checkbox-outline-blank.svg
  72. 13 0
      frontend/css/fonts/ionicons-2.0.1/src/android-checkbox-outline.svg
  73. 13 0
      frontend/css/fonts/ionicons-2.0.1/src/android-checkbox.svg
  74. 9 0
      frontend/css/fonts/ionicons-2.0.1/src/android-checkmark-circle.svg
  75. 10 0
      frontend/css/fonts/ionicons-2.0.1/src/android-clipboard.svg
  76. 12 0
      frontend/css/fonts/ionicons-2.0.1/src/android-close.svg
  77. 16 0
      frontend/css/fonts/ionicons-2.0.1/src/android-cloud-circle.svg
  78. 12 0
      frontend/css/fonts/ionicons-2.0.1/src/android-cloud-done.svg
  79. 16 0
      frontend/css/fonts/ionicons-2.0.1/src/android-cloud-outline.svg
  80. 9 0
      frontend/css/fonts/ionicons-2.0.1/src/android-cloud.svg
  81. 17 0
      frontend/css/fonts/ionicons-2.0.1/src/android-color-palette.svg
  82. 9 0
      frontend/css/fonts/ionicons-2.0.1/src/android-compass.svg
  83. 15 0
      frontend/css/fonts/ionicons-2.0.1/src/android-contact.svg
  84. 26 0
      frontend/css/fonts/ionicons-2.0.1/src/android-contacts.svg
  85. 12 0
      frontend/css/fonts/ionicons-2.0.1/src/android-contract.svg
  86. 13 0
      frontend/css/fonts/ionicons-2.0.1/src/android-create.svg
  87. 10 0
      frontend/css/fonts/ionicons-2.0.1/src/android-delete.svg
  88. 13 0
      frontend/css/fonts/ionicons-2.0.1/src/android-desktop.svg
  89. 10 0
      frontend/css/fonts/ionicons-2.0.1/src/android-document.svg
  90. 13 0
      frontend/css/fonts/ionicons-2.0.1/src/android-done-all.svg
  91. 13 0
      frontend/css/fonts/ionicons-2.0.1/src/android-done.svg
  92. 9 0
      frontend/css/fonts/ionicons-2.0.1/src/android-download.svg
  93. 15 0
      frontend/css/fonts/ionicons-2.0.1/src/android-drafts.svg
  94. 9 0
      frontend/css/fonts/ionicons-2.0.1/src/android-exit.svg
  95. 12 0
      frontend/css/fonts/ionicons-2.0.1/src/android-expand.svg
  96. 13 0
      frontend/css/fonts/ionicons-2.0.1/src/android-favorite-outline.svg
  97. 11 0
      frontend/css/fonts/ionicons-2.0.1/src/android-favorite.svg
  98. 9 0
      frontend/css/fonts/ionicons-2.0.1/src/android-film.svg
  99. 10 0
      frontend/css/fonts/ionicons-2.0.1/src/android-folder-open.svg
  100. 0 0
      frontend/css/fonts/ionicons-2.0.1/src/android-folder.svg

+ 13 - 0
frontend/app.js

@@ -0,0 +1,13 @@
+var app = angular.module('app', ['ngRoute', 'ngSanitize', 'ngResource', 'ui.bootstrap']);
+
+app.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
+    $locationProvider.html5Mode(true);
+    $routeProvider
+	.when('/', {
+		templateUrl: 'modules/main/main.html',
+		controller: 'mainCtrl'
+	})
+	.otherwise({
+		redirectTo: '/'
+	});
+}]);

Файловите разлики са ограничени, защото са твърде много
+ 6590 - 0
frontend/css/bootstrap.css


Файловите разлики са ограничени, защото са твърде много
+ 5 - 0
frontend/css/bootstrap.min.css


Файловите разлики са ограничени, защото са твърде много
+ 4 - 0
frontend/css/font-awesome.min.css


BIN
frontend/css/fonts/FontAwesome.otf


BIN
frontend/css/fonts/fontawesome-webfont.eot


Файловите разлики са ограничени, защото са твърде много
+ 565 - 0
frontend/css/fonts/fontawesome-webfont.svg


BIN
frontend/css/fonts/fontawesome-webfont.ttf


BIN
frontend/css/fonts/fontawesome-webfont.woff


BIN
frontend/css/fonts/fontawesome-webfont.woff2


+ 4 - 0
frontend/css/fonts/ionicons-2.0.1/.gitignore

@@ -0,0 +1,4 @@
+_site
+.sass-cache
+*.scssc
+*.swp

+ 21 - 0
frontend/css/fonts/ionicons-2.0.1/LICENSE

@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Drifty (http://drifty.com/)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.

+ 31 - 0
frontend/css/fonts/ionicons-2.0.1/bower.json

@@ -0,0 +1,31 @@
+{
+    "ignore": [
+        "**/.*",
+        "builder",
+        "node_modules",
+        "bower_components",
+        "test",
+        "tests"
+    ],
+    "version": "2.0.0",
+    "name": "Ionicons",
+    "license": "MIT",
+    "authors": [
+        "Ben Sperry <ben@drifty.com>",
+        "Adam Bradley <adam@drifty.com>",
+        "Max Lynch <max@drifty.com>"
+    ],
+    "keywords": [
+        "fonts",
+        "icon font",
+        "icons",
+        "ionic",
+        "web font"
+    ],
+    "main": [
+        "css/ionicons.css",
+        "fonts/*"
+    ],
+    "homepage": "https://github.com/driftyco/ionicons",
+    "description": "Ionicons - free and beautiful icons from the creators of Ionic Framework"
+}

Файловите разлики са ограничени, защото са твърде много
+ 2940 - 0
frontend/css/fonts/ionicons-2.0.1/builder/build_data.json


+ 38 - 0
frontend/css/fonts/ionicons-2.0.1/builder/cheatsheet/icon-row.html

@@ -0,0 +1,38 @@
+<div class="icon-row">
+  <div class="preview-icon"><span class="step size-12">
+      <i class="icon {{prefix}}{{name}}"></i>
+    </span><span class="step size-14">
+      <i class="icon {{prefix}}{{name}}"></i>
+    </span><span class="step size-16">
+      <i class="icon {{prefix}}{{name}}"></i>
+    </span><span class="step size-18">
+      <i class="icon {{prefix}}{{name}}"></i>
+    </span><span class="step size-21">
+      <i class="icon {{prefix}}{{name}}"></i>
+    </span><span class="step size-24">
+      <i class="icon {{prefix}}{{name}}"></i>
+    </span><span class="step size-32">
+      <i class="icon {{prefix}}{{name}}"></i>
+    </span><span class="step size-48">
+      <i class="icon {{prefix}}{{name}}"></i>
+    </span><span class="step size-64">
+      <i class="icon {{prefix}}{{name}}"></i>
+    </span><span class="step size-96">
+      <i class="icon {{prefix}}{{name}}"></i>
+    </span>
+  </div>
+  <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div>
+  <div class="usage">
+    <label>Classname:</label>
+    <input class="name" type="text" readonly="readonly" onClick="this.select();" value="{{prefix}}{{name}}" />
+
+    <label>Selectable:</label>
+    <span class="ion">{{html_code}}</span>
+
+    <label>Escaped HTML:</label>
+    <input class="html" type="text" readonly="readonly" onClick="this.select();" value="{{escaped_html_code}}" />
+
+    <label>CSS Content:</label>
+    <input class="css" type="text" readonly="readonly" onClick="this.select();" value="{{css_code}}" />
+  </div>
+</div>

+ 156 - 0
frontend/css/fonts/ionicons-2.0.1/builder/cheatsheet/template.html

@@ -0,0 +1,156 @@
+<!DOCTYPE html>
+<html>
+<head>
+  <title>{{font_name}} v{{font_version}} Cheatsheet</title>
+  <style>
+    * {
+      -moz-box-sizing: border-box;
+      -webkit-box-sizing: border-box;
+      box-sizing: border-box;
+      margin: 0;
+      padding: 0;
+      -webkit-touch-callout: none;
+      -webkit-user-select: none;
+      -khtml-user-select: none;
+      -moz-user-select: none;
+      -ms-user-select: none;
+      user-select: none;
+    }
+
+    body {
+      background: #fff;
+      color: #444;
+      font: 16px/1.5 "Helvetica Neue", Helvetica, Arial, sans-serif;
+    }
+
+    a, a:visited {
+      color: #888;
+      text-decoration: underline;
+    }
+    a:hover, a:focus { color: #000; }
+
+    header {
+      border-bottom: 2px solid #ddd;
+      margin-bottom: 20px;
+      overflow: hidden;
+      padding: 20px 0;
+    }
+
+    header h1 {
+      color: #888;
+      float: left;
+      font-size: 36px;
+      font-weight: 300;
+    }
+
+    header a {
+      float: right;
+      font-size: 14px;
+    }
+
+    .container {
+      margin: 0 auto;
+      max-width: 1200px;
+      min-width: 960px;
+      padding: 0 20px;
+      width: 95%;
+    }
+
+    .icon-row {
+      border-bottom: 1px dotted #ccc;
+      padding: 10px 0 20px;
+      margin-bottom: 20px;
+    }
+    .ion {
+      -webkit-touch-callout: text;
+      -webkit-user-select: text;
+      -khtml-user-select: text;
+      -moz-user-select: text;
+      -ms-user-select: text;
+      user-select: text;
+    }
+
+    .preview-icon { vertical-align: bottom; }
+
+    .preview-scale {
+      color: #888;
+      font-size: 12px;
+      margin-top: 5px;
+    }
+
+    .step {
+      display: inline-block;
+      line-height: 1;
+      position: relative;
+      width: 10%;
+    }
+
+    .step i {
+      -webkit-transition: opacity .3s;
+      -moz-transition: opacity .3s;
+      -ms-transition: opacity .3s;
+      -o-transition: opacity .3s;
+      transition: opacity .3s;
+    }
+
+    .step:hover i { opacity: .3; }
+    
+    .size-12 { font-size: 12px; }
+    .size-14 { font-size: 14px; }
+    .size-16 { font-size: 16px; }
+    .size-18 { font-size: 18px; }
+    .size-21 { font-size: 21px; }
+    .size-24 { font-size: 24px; }
+    .size-32 { font-size: 32px; }
+    .size-48 { font-size: 48px; }
+    .size-64 { font-size: 64px; }
+    .size-96 { font-size: 96px; }
+    
+    .usage { margin-top: 10px; }
+    .usage input {
+      font-family: monospace;
+      margin-right: 3px;
+      padding: 2px 5px;
+      text-align: center;
+      -webkit-touch-callout: text;
+      -webkit-user-select: text;
+      -khtml-user-select: text;
+      -moz-user-select: text;
+      -ms-user-select: text;
+      user-select: text;
+    }
+
+    .usage label { 
+      font-size: 12px; 
+      text-align: right; 
+      padding: 0 3px 0 60px;
+    }
+    .usage label:first-child { padding-left: 0; }
+    .usage .name { width: 180px; }
+    .usage .html { width: 80px; }
+    .usage .css { width: 80px; }
+
+    footer {
+      color: #888;
+      font-size: 12px;
+      padding: 20px 0;
+    }
+  </style>
+  <link href="css/ionicons.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+  <div class="container">
+    <header>
+      <h1>{{font_name}} v{{font_version}} Cheatsheet, {{icon_count}} icons:</h1>
+      <p><a href="http://ionicons.com/">Ionicons Homepage</a></p>
+    </header>
+    <div class="content">
+      {{content}}
+    </div>
+    <footer>
+      Made with love by the <a href="http://ionicframework.com/">Ionic Framework</a>
+    </footer>
+  </div>
+</body>
+</html>

+ 318 - 0
frontend/css/fonts/ionicons-2.0.1/builder/generate.py

@@ -0,0 +1,318 @@
+from subprocess import call
+import os
+import json
+
+
+BUILDER_PATH = os.path.dirname(os.path.abspath(__file__))
+ROOT_PATH = os.path.join(BUILDER_PATH, '..')
+FONTS_FOLDER_PATH = os.path.join(ROOT_PATH, 'fonts')
+CSS_FOLDER_PATH = os.path.join(ROOT_PATH, 'css')
+SCSS_FOLDER_PATH = os.path.join(ROOT_PATH, 'scss')
+LESS_FOLDER_PATH = os.path.join(ROOT_PATH, 'less')
+
+
+def main():
+  generate_font_files()
+
+  data = get_build_data()
+
+  rename_svg_glyph_names(data)
+  generate_scss(data)
+  generate_less(data)
+  generate_cheatsheet(data)
+  generate_component_json(data)
+  generate_composer_json(data)
+  generate_bower_json(data)
+
+
+def generate_font_files():
+  print "Generate Fonts"
+  cmd = "fontforge -script %s/scripts/generate_font.py" % (BUILDER_PATH)
+  call(cmd, shell=True)
+
+
+def rename_svg_glyph_names(data):
+  # hacky and slow (but safe) way to rename glyph-name attributes
+  svg_path = os.path.join(FONTS_FOLDER_PATH, 'ionicons.svg')
+  svg_file = open(svg_path, 'r+')
+  svg_text = svg_file.read()
+  svg_file.seek(0)
+
+  for ionicon in data['icons']:
+    # uniF2CA
+    org_name = 'uni%s' % (ionicon['code'].replace('0x', '').upper())
+    ion_name = 'ion-%s' % (ionicon['name'])
+    svg_text = svg_text.replace(org_name, ion_name)
+
+  svg_file.write(svg_text)
+  svg_file.close()
+
+
+def generate_less(data):
+  print "Generate LESS"
+  font_name = data['name']
+  font_version = data['version']
+  css_prefix = data['prefix']
+  variables_file_path = os.path.join(LESS_FOLDER_PATH, '_ionicons-variables.less')
+  icons_file_path = os.path.join(LESS_FOLDER_PATH, '_ionicons-icons.less')
+
+  d = []
+  d.append('/*!');
+  d.append('Ionicons, v%s' % (font_version) );
+  d.append('Created by Ben Sperry for the Ionic Framework, http://ionicons.com/');
+  d.append('https://twitter.com/benjsperry  https://twitter.com/ionicframework');
+  d.append('MIT License: https://github.com/driftyco/ionicons');
+  d.append('*/');
+  d.append('// Ionicons Variables')
+  d.append('// --------------------------\n')
+  d.append('@ionicons-font-path: "../fonts";')
+  d.append('@ionicons-font-family: "%s";' % (font_name) )
+  d.append('@ionicons-version: "%s";' % (font_version) )
+  d.append('@ionicons-prefix: %s;' % (css_prefix) )
+  d.append('')
+  for ionicon in data['icons']:
+    chr_code = ionicon['code'].replace('0x', '\\')
+    d.append('@ionicon-var-%s: "%s";' % (ionicon['name'], chr_code) )
+  f = open(variables_file_path, 'w')
+  f.write( '\n'.join(d) )
+  f.close()
+
+  d = []
+  d.append('// Ionicons Icons')
+  d.append('// --------------------------\n')
+
+  group = [ '.%s' % (data['name'].lower()) ]
+  for ionicon in data['icons']:
+    group.append('.@{ionicons-prefix}%s:before' % (ionicon['name']) )
+
+  d.append( ',\n'.join(group) )
+
+  d.append('{')
+  d.append('  &:extend(.ion);')
+  d.append('}')
+
+  for ionicon in data['icons']:
+    chr_code = ionicon['code'].replace('0x', '\\')
+    d.append('.@{ionicons-prefix}%s:before { content: @ionicon-var-%s; }' % (ionicon['name'], ionicon['name']) )
+
+  f = open(icons_file_path, 'w')
+  f.write( '\n'.join(d) )
+  f.close()
+
+
+def generate_scss(data):
+  print "Generate SCSS"
+  font_name = data['name']
+  font_version = data['version']
+  css_prefix = data['prefix']
+  variables_file_path = os.path.join(SCSS_FOLDER_PATH, '_ionicons-variables.scss')
+  icons_file_path = os.path.join(SCSS_FOLDER_PATH, '_ionicons-icons.scss')
+
+  d = []
+  d.append('// Ionicons Variables')
+  d.append('// --------------------------\n')
+  d.append('$ionicons-font-path: "../fonts" !default;')
+  d.append('$ionicons-font-family: "%s" !default;' % (font_name) )
+  d.append('$ionicons-version: "%s" !default;' % (font_version) )
+  d.append('$ionicons-prefix: %s !default;' % (css_prefix) )
+  d.append('')
+  for ionicon in data['icons']:
+    chr_code = ionicon['code'].replace('0x', '\\')
+    d.append('$ionicon-var-%s: "%s";' % (ionicon['name'], chr_code) )
+  f = open(variables_file_path, 'w')
+  f.write( '\n'.join(d) )
+  f.close()
+
+  d = []
+  d.append('// Ionicons Icons')
+  d.append('// --------------------------\n')
+
+  group = [ '.%s' % (data['name'].lower()) ]
+  for ionicon in data['icons']:
+    group.append('.#{$ionicons-prefix}%s:before' % (ionicon['name']) )
+
+  d.append( ',\n'.join(group) )
+
+  d.append('{')
+  d.append('  @extend .ion;')
+  d.append('}')
+
+  for ionicon in data['icons']:
+    chr_code = ionicon['code'].replace('0x', '\\')
+    d.append('.#{$ionicons-prefix}%s:before { content: $ionicon-var-%s; }' % (ionicon['name'], ionicon['name']) )
+
+  f = open(icons_file_path, 'w')
+  f.write( '\n'.join(d) )
+  f.close()
+
+  generate_css_from_scss(data)
+
+
+def generate_css_from_scss(data):
+  print "Generate CSS From SCSS"
+
+  scss_file_path = os.path.join(SCSS_FOLDER_PATH, 'ionicons.scss')
+  css_file_path = os.path.join(CSS_FOLDER_PATH, 'ionicons.css')
+  css_min_file_path = os.path.join(CSS_FOLDER_PATH, 'ionicons.min.css')
+
+  cmd = "sass %s %s --style compact" % (scss_file_path, css_file_path)
+  call(cmd, shell=True)
+
+  print "Generate Minified CSS From SCSS"
+  cmd = "sass %s %s --style compressed" % (scss_file_path, css_min_file_path)
+  call(cmd, shell=True)
+
+
+def generate_cheatsheet(data):
+  print "Generate Cheatsheet"
+
+  cheatsheet_file_path = os.path.join(ROOT_PATH, 'cheatsheet.html')
+  template_path = os.path.join(BUILDER_PATH, 'cheatsheet', 'template.html')
+  icon_row_path = os.path.join(BUILDER_PATH, 'cheatsheet', 'icon-row.html')
+
+  f = open(template_path, 'r')
+  template_html = f.read()
+  f.close()
+
+  f = open(icon_row_path, 'r')
+  icon_row_template = f.read()
+  f.close()
+
+  content = []
+
+  for ionicon in data['icons']:
+    css_code = ionicon['code'].replace('0x', '\\')
+    escaped_html_code = ionicon['code'].replace('0x', '&amp;#x') + ';'
+    html_code = ionicon['code'].replace('0x', '&#x') + ';'
+    item_row = icon_row_template
+
+    item_row = item_row.replace('{{name}}', ionicon['name'])
+    item_row = item_row.replace('{{prefix}}', data['prefix'])
+    item_row = item_row.replace('{{css_code}}', css_code)
+    item_row = item_row.replace('{{escaped_html_code}}', escaped_html_code)
+    item_row = item_row.replace('{{html_code}}', html_code)
+
+    content.append(item_row)
+
+  template_html = template_html.replace("{{font_name}}", data["name"])
+  template_html = template_html.replace("{{font_version}}", data["version"])
+  template_html = template_html.replace("{{icon_count}}", str(len(data["icons"])) )
+  template_html = template_html.replace("{{content}}", '\n'.join(content) )
+
+  f = open(cheatsheet_file_path, 'w')
+  f.write(template_html)
+  f.close()
+
+
+def generate_component_json(data):
+  print "Generate component.json"
+  d = {
+    "name": data['name'],
+    "repo": "driftyco/ionicons",
+    "description": "The premium icon font for Ionic Framework.",
+    "version": data['version'],
+    "keywords": [],
+    "dependencies": {},
+    "development": {},
+    "license": "MIT",
+    "styles": [
+      "css/%s.css" % (data['name'].lower())
+    ],
+    "fonts": [
+      "fonts/%s.eot" % (data['name'].lower()),
+      "fonts/%s.svg" % (data['name'].lower()),
+      "fonts/%s.ttf" % (data['name'].lower()),
+      "fonts/%s.woff" % (data['name'].lower())
+    ]
+  }
+  txt = json.dumps(d, indent=4, separators=(',', ': '))
+
+  component_file_path = os.path.join(ROOT_PATH, 'component.json')
+  f = open(component_file_path, 'w')
+  f.write(txt)
+  f.close()
+
+
+def generate_composer_json(data):
+  print "Generate composer.json"
+  d = {
+    "name": "driftyco/ionicons",
+    "description": "The premium icon font for Ionic Framework.",
+    "keywords": [ "fonts", "icon font", "icons", "ionic", "web font"],
+    "homepage": "http://ionicons.com/",
+    "authors": [
+      {
+        "name": "Ben Sperry",
+        "email": "ben@drifty.com",
+        "role": "Designer",
+        "homepage": "https://twitter.com/benjsperry"
+      },
+      {
+        "name": "Adam Bradley",
+        "email": "adam@drifty.com",
+        "role": "Developer",
+        "homepage": "https://twitter.com/adamdbradley"
+      },
+      {
+        "name": "Max Lynch",
+        "email": "max@drifty.com",
+        "role": "Developer",
+        "homepage": "https://twitter.com/maxlynch"
+      }
+    ],
+    "extra": {},
+    "license": [ "MIT" ]
+  }
+  txt = json.dumps(d, indent=4, separators=(',', ': '))
+
+  composer_file_path = os.path.join(ROOT_PATH, 'composer.json')
+  f = open(composer_file_path, 'w')
+  f.write(txt)
+  f.close()
+
+
+def generate_bower_json(data):
+  print "Generate bower.json"
+  d = {
+    "name": data['name'],
+    "version": data['version'],
+    "homepage": "https://github.com/driftyco/ionicons",
+    "authors": [
+      "Ben Sperry <ben@drifty.com>",
+      "Adam Bradley <adam@drifty.com>",
+      "Max Lynch <max@drifty.com>"
+    ],
+    "description": "Ionicons - free and beautiful icons from the creators of Ionic Framework",
+    "main": [
+      "css/%s.css" % (data['name'].lower()),
+      "fonts/*"
+    ],
+    "keywords": [ "fonts", "icon font", "icons", "ionic", "web font"],
+    "license": "MIT",
+    "ignore": [
+      "**/.*",
+      "builder",
+      "node_modules",
+      "bower_components",
+      "test",
+      "tests"
+    ]
+  }
+  txt = json.dumps(d, indent=4, separators=(',', ': '))
+
+  bower_file_path = os.path.join(ROOT_PATH, 'bower.json')
+  f = open(bower_file_path, 'w')
+  f.write(txt)
+  f.close()
+
+
+def get_build_data():
+  build_data_path = os.path.join(BUILDER_PATH, 'build_data.json')
+  f = open(build_data_path, 'r')
+  data = json.loads(f.read())
+  f.close()
+  return data
+
+
+if __name__ == "__main__":
+  main()

Файловите разлики са ограничени, защото са твърде много
+ 2940 - 0
frontend/css/fonts/ionicons-2.0.1/builder/manifest.json


+ 466 - 0
frontend/css/fonts/ionicons-2.0.1/builder/scripts/eotlitetool.py

@@ -0,0 +1,466 @@
+#!/usr/bin/env python
+# ***** BEGIN LICENSE BLOCK *****
+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Original Code is font utility code.
+#
+# The Initial Developer of the Original Code is Mozilla Corporation.
+# Portions created by the Initial Developer are Copyright (C) 2009
+# the Initial Developer. All Rights Reserved.
+#
+# Contributor(s):
+#   John Daggett <jdaggett@mozilla.com>
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 2 or later (the "GPL"), or
+# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+# in which case the provisions of the GPL or the LGPL are applicable instead
+# of those above. If you wish to allow use of your version of this file only
+# under the terms of either the GPL or the LGPL, and not to allow others to
+# use your version of this file under the terms of the MPL, indicate your
+# decision by deleting the provisions above and replace them with the notice
+# and other provisions required by the GPL or the LGPL. If you do not delete
+# the provisions above, a recipient may use your version of this file under
+# the terms of any one of the MPL, the GPL or the LGPL.
+#
+# ***** END LICENSE BLOCK ***** */
+
+# eotlitetool.py - create EOT version of OpenType font for use with IE
+#
+# Usage: eotlitetool.py [-o output-filename] font1 [font2 ...]
+#
+
+# OpenType file structure
+# http://www.microsoft.com/typography/otspec/otff.htm
+# 
+# Types:
+# 
+# BYTE            8-bit unsigned integer.
+# CHAR            8-bit signed integer.
+# USHORT          16-bit unsigned integer.
+# SHORT           16-bit signed integer.
+# ULONG           32-bit unsigned integer.
+# Fixed           32-bit signed fixed-point number (16.16)
+# LONGDATETIME    Date represented in number of seconds since 12:00 midnight, January 1, 1904. The value is represented as a signed 64-bit integer.
+# 
+# SFNT Header
+# 
+# Fixed   sfnt version         // 0x00010000 for version 1.0.
+# USHORT  numTables            // Number of tables.
+# USHORT  searchRange          // (Maximum power of 2 <= numTables) x 16.
+# USHORT  entrySelector        // Log2(maximum power of 2 <= numTables).
+# USHORT  rangeShift           // NumTables x 16-searchRange.
+# 
+# Table Directory
+# 
+# ULONG   tag                  // 4-byte identifier.
+# ULONG   checkSum             // CheckSum for this table.
+# ULONG   offset               // Offset from beginning of TrueType font file.
+# ULONG   length               // Length of this table.
+# 
+# OS/2 Table (Version 4)
+# 
+# USHORT  version              // 0x0004
+# SHORT   xAvgCharWidth 
+# USHORT  usWeightClass    
+# USHORT  usWidthClass     
+# USHORT  fsType   
+# SHORT   ySubscriptXSize      
+# SHORT   ySubscriptYSize      
+# SHORT   ySubscriptXOffset    
+# SHORT   ySubscriptYOffset    
+# SHORT   ySuperscriptXSize    
+# SHORT   ySuperscriptYSize    
+# SHORT   ySuperscriptXOffset      
+# SHORT   ySuperscriptYOffset      
+# SHORT   yStrikeoutSize   
+# SHORT   yStrikeoutPosition   
+# SHORT   sFamilyClass     
+# BYTE    panose[10]   
+# ULONG   ulUnicodeRange1      // Bits 0-31
+# ULONG   ulUnicodeRange2      // Bits 32-63
+# ULONG   ulUnicodeRange3      // Bits 64-95
+# ULONG   ulUnicodeRange4      // Bits 96-127
+# CHAR    achVendID[4]     
+# USHORT  fsSelection      
+# USHORT  usFirstCharIndex     
+# USHORT  usLastCharIndex      
+# SHORT   sTypoAscender    
+# SHORT   sTypoDescender   
+# SHORT   sTypoLineGap     
+# USHORT  usWinAscent      
+# USHORT  usWinDescent     
+# ULONG   ulCodePageRange1      // Bits 0-31
+# ULONG   ulCodePageRange2      // Bits 32-63
+# SHORT   sxHeight     
+# SHORT   sCapHeight   
+# USHORT  usDefaultChar    
+# USHORT  usBreakChar      
+# USHORT  usMaxContext     
+# 
+# 
+# The Naming Table is organized as follows:
+# 
+# [name table header]
+# [name records]
+# [string data]
+# 
+# Name Table Header
+# 
+# USHORT  format               // Format selector (=0).
+# USHORT  count                // Number of name records.
+# USHORT  stringOffset         // Offset to start of string storage (from start of table).
+# 
+# Name Record
+# 
+# USHORT  platformID           // Platform ID.
+# USHORT  encodingID           // Platform-specific encoding ID.
+# USHORT  languageID           // Language ID.
+# USHORT  nameID               // Name ID.
+# USHORT  length               // String length (in bytes).
+# USHORT  offset               // String offset from start of storage area (in bytes).
+# 
+# head Table
+# 
+# Fixed   tableVersion         // Table version number     0x00010000 for version 1.0.
+# Fixed   fontRevision         // Set by font manufacturer.
+# ULONG   checkSumAdjustment   // To compute: set it to 0, sum the entire font as ULONG, then store 0xB1B0AFBA - sum.
+# ULONG   magicNumber          // Set to 0x5F0F3CF5.
+# USHORT  flags   
+# USHORT  unitsPerEm           // Valid range is from 16 to 16384. This value should be a power of 2 for fonts that have TrueType outlines.
+# LONGDATETIME    created      // Number of seconds since 12:00 midnight, January 1, 1904. 64-bit integer
+# LONGDATETIME    modified     // Number of seconds since 12:00 midnight, January 1, 1904. 64-bit integer
+# SHORT   xMin                 // For all glyph bounding boxes.
+# SHORT   yMin    
+# SHORT   xMax    
+# SHORT   yMax    
+# USHORT  macStyle
+# USHORT  lowestRecPPEM        // Smallest readable size in pixels.
+# SHORT   fontDirectionHint
+# SHORT   indexToLocFormat     // 0 for short offsets, 1 for long.
+# SHORT   glyphDataFormat      // 0 for current format.
+# 
+# 
+# 
+# Embedded OpenType (EOT) file format
+# http://www.w3.org/Submission/EOT/
+# 
+# EOT version 0x00020001
+# 
+# An EOT font consists of a header with the original OpenType font
+# appended at the end.  Most of the data in the EOT header is simply a
+# copy of data from specific tables within the font data.  The exceptions
+# are the 'Flags' field and the root string name field.  The root string
+# is a set of names indicating domains for which the font data can be
+# used.  A null root string implies the font data can be used anywhere.
+# The EOT header is in little-endian byte order but the font data remains
+# in big-endian order as specified by the OpenType spec.
+# 
+# Overall structure:
+# 
+#   [EOT header]
+#   [EOT name records]
+#   [font data]
+# 
+# EOT header
+# 
+# ULONG   eotSize              // Total structure length in bytes (including string and font data)
+# ULONG   fontDataSize         // Length of the OpenType font (FontData) in bytes
+# ULONG   version              // Version number of this format - 0x00020001
+# ULONG   flags                // Processing Flags (0 == no special processing)
+# BYTE    fontPANOSE[10]       // OS/2 Table panose
+# BYTE    charset              // DEFAULT_CHARSET (0x01)
+# BYTE    italic               // 0x01 if ITALIC in OS/2 Table fsSelection is set, 0 otherwise
+# ULONG   weight               // OS/2 Table usWeightClass
+# USHORT  fsType               // OS/2 Table fsType (specifies embedding permission flags)
+# USHORT  magicNumber          // Magic number for EOT file - 0x504C.
+# ULONG   unicodeRange1        // OS/2 Table ulUnicodeRange1
+# ULONG   unicodeRange2        // OS/2 Table ulUnicodeRange2
+# ULONG   unicodeRange3        // OS/2 Table ulUnicodeRange3
+# ULONG   unicodeRange4        // OS/2 Table ulUnicodeRange4
+# ULONG   codePageRange1       // OS/2 Table ulCodePageRange1
+# ULONG   codePageRange2       // OS/2 Table ulCodePageRange2
+# ULONG   checkSumAdjustment   // head Table CheckSumAdjustment
+# ULONG   reserved[4]          // Reserved - must be 0
+# USHORT  padding1             // Padding - must be 0
+# 
+# EOT name records
+# 
+# USHORT  FamilyNameSize       // Font family name size in bytes
+# BYTE    FamilyName[FamilyNameSize] // Font family name (name ID = 1), little-endian UTF-16
+# USHORT  Padding2             // Padding - must be 0
+# 
+# USHORT  StyleNameSize        // Style name size in bytes
+# BYTE    StyleName[StyleNameSize]  // Style name (name ID = 2), little-endian UTF-16
+# USHORT  Padding3             // Padding - must be 0
+# 
+# USHORT  VersionNameSize      // Version name size in bytes
+# bytes   VersionName[VersionNameSize]  // Version name (name ID = 5), little-endian UTF-16
+# USHORT  Padding4             // Padding - must be 0
+# 
+# USHORT  FullNameSize         // Full name size in bytes
+# BYTE    FullName[FullNameSize]  // Full name (name ID = 4), little-endian UTF-16
+# USHORT  Padding5             // Padding - must be 0
+# 
+# USHORT  RootStringSize       // Root string size in bytes
+# BYTE    RootString[RootStringSize]  // Root string, little-endian UTF-16
+
+
+
+import optparse
+import struct
+
+class FontError(Exception):
+    """Error related to font handling"""
+    pass
+
+def multichar(str):
+    vals = struct.unpack('4B', str[:4])
+    return (vals[0] << 24) + (vals[1] << 16) + (vals[2] << 8) + vals[3]
+
+def multicharval(v):
+    return struct.pack('4B', (v >> 24) & 0xFF, (v >> 16) & 0xFF, (v >> 8) & 0xFF, v & 0xFF)
+
+class EOT:
+    EOT_VERSION = 0x00020001
+    EOT_MAGIC_NUMBER = 0x504c
+    EOT_DEFAULT_CHARSET = 0x01
+    EOT_FAMILY_NAME_INDEX = 0    # order of names in variable portion of EOT header
+    EOT_STYLE_NAME_INDEX = 1
+    EOT_VERSION_NAME_INDEX = 2
+    EOT_FULL_NAME_INDEX = 3
+    EOT_NUM_NAMES = 4
+    
+    EOT_HEADER_PACK = '<4L10B2BL2H7L18x'
+
+class OpenType:
+    SFNT_CFF = multichar('OTTO')            # Postscript CFF SFNT version
+    SFNT_TRUE = 0x10000                     # Standard TrueType version
+    SFNT_APPLE = multichar('true')          # Apple TrueType version
+    
+    SFNT_UNPACK = '>I4H'
+    TABLE_DIR_UNPACK = '>4I'
+    
+    TABLE_HEAD = multichar('head')          # TrueType table tags
+    TABLE_NAME = multichar('name')
+    TABLE_OS2 = multichar('OS/2')
+    TABLE_GLYF = multichar('glyf')
+    TABLE_CFF = multichar('CFF ')
+    
+    OS2_FSSELECTION_ITALIC = 0x1
+    OS2_UNPACK = '>4xH2xH22x10B4L4xH14x2L'
+    
+    HEAD_UNPACK = '>8xL'
+    
+    NAME_RECORD_UNPACK = '>6H'
+    NAME_ID_FAMILY = 1
+    NAME_ID_STYLE = 2
+    NAME_ID_UNIQUE = 3
+    NAME_ID_FULL = 4
+    NAME_ID_VERSION = 5
+    NAME_ID_POSTSCRIPT = 6
+    PLATFORM_ID_UNICODE = 0                 # Mac OS uses this typically
+    PLATFORM_ID_MICROSOFT = 3
+    ENCODING_ID_MICROSOFT_UNICODEBMP = 1    # with Microsoft platformID BMP-only Unicode encoding
+    LANG_ID_MICROSOFT_EN_US = 0x0409         # with Microsoft platformID EN US lang code
+
+def eotname(ttf):
+    i = ttf.rfind('.')
+    if i != -1:
+        ttf = ttf[:i]
+    return ttf + '.eotlite'
+
+def readfont(f):
+    data = open(f, 'rb').read()
+    return data
+
+def get_table_directory(data):
+    """read the SFNT header and table directory"""
+    datalen = len(data)
+    sfntsize = struct.calcsize(OpenType.SFNT_UNPACK)
+    if sfntsize > datalen:
+        raise FontError, 'truncated font data'
+    sfntvers, numTables = struct.unpack(OpenType.SFNT_UNPACK, data[:sfntsize])[:2]
+    if sfntvers != OpenType.SFNT_CFF and sfntvers != OpenType.SFNT_TRUE:
+        raise FontError, 'invalid font type';
+    
+    font = {}
+    font['version'] = sfntvers
+    font['numTables'] = numTables
+    
+    # create set of offsets, lengths for tables
+    table_dir_size = struct.calcsize(OpenType.TABLE_DIR_UNPACK)
+    if sfntsize + table_dir_size * numTables > datalen:
+        raise FontError, 'truncated font data, table directory extends past end of data'
+    table_dir = {}
+    for i in range(0, numTables):
+        start = sfntsize + i * table_dir_size
+        end = start + table_dir_size
+        tag, check, bongo, dirlen = struct.unpack(OpenType.TABLE_DIR_UNPACK, data[start:end])
+        table_dir[tag] = {'offset': bongo, 'length': dirlen, 'checksum': check}
+    
+    font['tableDir'] = table_dir
+    
+    return font
+
+def get_name_records(nametable):
+    """reads through the name records within name table"""
+    name = {}
+    # read the header
+    headersize = 6
+    count, strOffset = struct.unpack('>2H', nametable[2:6])
+    namerecsize = struct.calcsize(OpenType.NAME_RECORD_UNPACK)
+    if count * namerecsize + headersize > len(nametable):
+        raise FontError, 'names exceed size of name table'
+    name['count'] = count
+    name['strOffset'] = strOffset
+    
+    # read through the name records
+    namerecs = {}
+    for i in range(0, count):
+        start = headersize + i * namerecsize
+        end = start + namerecsize
+        platformID, encodingID, languageID, nameID, namelen, offset = struct.unpack(OpenType.NAME_RECORD_UNPACK, nametable[start:end])
+        if platformID != OpenType.PLATFORM_ID_MICROSOFT or \
+           encodingID != OpenType.ENCODING_ID_MICROSOFT_UNICODEBMP or \
+           languageID != OpenType.LANG_ID_MICROSOFT_EN_US:
+            continue
+        namerecs[nameID] = {'offset': offset, 'length': namelen}
+        
+    name['namerecords'] = namerecs
+    return name
+
+def make_eot_name_headers(fontdata, nameTableDir):
+    """extracts names from the name table and generates the names header portion of the EOT header"""
+    nameoffset = nameTableDir['offset']
+    namelen = nameTableDir['length']
+    name = get_name_records(fontdata[nameoffset : nameoffset + namelen])
+    namestroffset = name['strOffset']
+    namerecs = name['namerecords']
+    
+    eotnames = (OpenType.NAME_ID_FAMILY, OpenType.NAME_ID_STYLE, OpenType.NAME_ID_VERSION, OpenType.NAME_ID_FULL)
+    nameheaders = []
+    for nameid in eotnames:
+        if nameid in namerecs:
+            namerecord = namerecs[nameid]
+            noffset = namerecord['offset']
+            nlen = namerecord['length']
+            nformat = '%dH' % (nlen / 2)		# length is in number of bytes
+            start = nameoffset + namestroffset + noffset
+            end = start + nlen
+            nstr = struct.unpack('>' + nformat, fontdata[start:end])
+            nameheaders.append(struct.pack('<H' + nformat + '2x', nlen, *nstr))
+        else:
+            nameheaders.append(struct.pack('4x'))  # len = 0, padding = 0
+    
+    return ''.join(nameheaders)
+
+# just return a null-string (len = 0)
+def make_root_string():
+    return struct.pack('2x')
+
+def make_eot_header(fontdata):
+    """given ttf font data produce an EOT header"""
+    fontDataSize = len(fontdata)
+    font = get_table_directory(fontdata)
+    
+    # toss out .otf fonts, t2embed library doesn't support these
+    tableDir = font['tableDir']
+    
+    # check for required tables
+    required = (OpenType.TABLE_HEAD, OpenType.TABLE_NAME, OpenType.TABLE_OS2)
+    for table in required:
+        if not (table in tableDir):
+            raise FontError, 'missing required table ' + multicharval(table)
+            
+    # read name strings
+    
+    # pull out data from individual tables to construct fixed header portion
+    # need to calculate eotSize before packing
+    version = EOT.EOT_VERSION
+    flags = 0
+    charset = EOT.EOT_DEFAULT_CHARSET
+    magicNumber = EOT.EOT_MAGIC_NUMBER
+    
+    # read values from OS/2 table
+    os2Dir = tableDir[OpenType.TABLE_OS2]
+    os2offset = os2Dir['offset']
+    os2size = struct.calcsize(OpenType.OS2_UNPACK)
+    
+    if os2size > os2Dir['length']:
+        raise FontError, 'OS/2 table invalid length'
+    
+    os2fields = struct.unpack(OpenType.OS2_UNPACK, fontdata[os2offset : os2offset + os2size])
+    
+    panose = []
+    urange = []
+    codepage = []
+    
+    weight, fsType = os2fields[:2]
+    panose[:10] = os2fields[2:12]
+    urange[:4] = os2fields[12:16]
+    fsSelection = os2fields[16]
+    codepage[:2] = os2fields[17:19]
+    
+    italic = fsSelection & OpenType.OS2_FSSELECTION_ITALIC
+    
+    # read in values from head table
+    headDir = tableDir[OpenType.TABLE_HEAD]
+    headoffset = headDir['offset']
+    headsize = struct.calcsize(OpenType.HEAD_UNPACK)
+    
+    if headsize > headDir['length']:
+        raise FontError, 'head table invalid length'
+        
+    headfields = struct.unpack(OpenType.HEAD_UNPACK, fontdata[headoffset : headoffset + headsize])
+    checkSumAdjustment = headfields[0]
+    
+    # make name headers
+    nameheaders = make_eot_name_headers(fontdata, tableDir[OpenType.TABLE_NAME])
+    rootstring = make_root_string()
+    
+    # calculate the total eot size
+    eotSize = struct.calcsize(EOT.EOT_HEADER_PACK) + len(nameheaders) + len(rootstring) + fontDataSize
+    fixed = struct.pack(EOT.EOT_HEADER_PACK,
+                        *([eotSize, fontDataSize, version, flags] + panose + [charset, italic] +
+                          [weight, fsType, magicNumber] + urange + codepage + [checkSumAdjustment]))
+    
+    return ''.join((fixed, nameheaders, rootstring))
+ 
+    
+def write_eot_font(eot, header, data):
+    open(eot,'wb').write(''.join((header, data)))
+    return
+
+def main():
+
+    # deal with options
+    p = optparse.OptionParser()
+    p.add_option('--output', '-o', default="world")
+    options, args = p.parse_args()
+    
+    # iterate over font files
+    for f in args:
+        data = readfont(f)
+        if len(data) == 0:
+            print 'Error reading %s' % f
+        else:
+            eot = eotname(f)
+            header = make_eot_header(data)
+            write_eot_font(eot, header, data)
+        
+
+if __name__ == '__main__':
+    main()
+    
+    

+ 173 - 0
frontend/css/fonts/ionicons-2.0.1/builder/scripts/generate_font.py

@@ -0,0 +1,173 @@
+# Font generation script from FontCustom
+# https://github.com/FontCustom/fontcustom/
+# http://fontcustom.com/
+
+import fontforge
+import os
+import md5
+import subprocess
+import tempfile
+import json
+import copy
+
+SCRIPT_PATH = os.path.dirname(os.path.abspath(__file__))
+INPUT_SVG_DIR = os.path.join(SCRIPT_PATH, '..', '..', 'src')
+OUTPUT_FONT_DIR = os.path.join(SCRIPT_PATH, '..', '..', 'fonts')
+MANIFEST_PATH = os.path.join(SCRIPT_PATH, '..', 'manifest.json')
+BUILD_DATA_PATH = os.path.join(SCRIPT_PATH, '..', 'build_data.json')
+AUTO_WIDTH = True
+KERNING = 15
+
+cp = 0xf100
+m = md5.new()
+
+f = fontforge.font()
+f.encoding = 'UnicodeFull'
+f.design_size = 16
+f.em = 512
+f.ascent = 448
+f.descent = 64
+
+manifest_file = open(MANIFEST_PATH, 'r')
+manifest_data = json.loads(manifest_file.read())
+manifest_file.close()
+print "Load Manifest, Icons: %s" % ( len(manifest_data['icons']) )
+
+build_data = copy.deepcopy(manifest_data)
+build_data['icons'] = []
+
+font_name = manifest_data['name']
+m.update(font_name + ';')
+m.update(manifest_data['prefix'] + ';')
+
+for dirname, dirnames, filenames in os.walk(INPUT_SVG_DIR):
+  for filename in filenames:
+    name, ext = os.path.splitext(filename)
+    filePath = os.path.join(dirname, filename)
+    size = os.path.getsize(filePath)
+
+    if ext in ['.svg', '.eps']:
+
+      # see if this file is already in the manifest
+      chr_code = None
+      for ionicon in manifest_data['icons']:
+        if ionicon['name'] == name:
+          chr_code = ionicon['code']
+          break
+
+      if chr_code is None:
+        # this is a new src icon
+        print 'New Icon: \n - %s' % (name)
+
+        while True:
+          chr_code = '0x%x' % (cp)
+          already_exists = False
+          for ionicon in manifest_data['icons']:
+            if ionicon.get('code') == chr_code:
+              already_exists = True
+              cp += 1
+              chr_code = '0x%x' % (cp)
+              continue
+          if not already_exists:
+            break
+
+        print ' - %s' % chr_code
+        manifest_data['icons'].append({
+          'name': name,
+          'code': chr_code
+        })
+
+      build_data['icons'].append({
+        'name': name,
+        'code': chr_code
+      })
+
+      if ext in ['.svg']:
+        # hack removal of <switch> </switch> tags
+        svgfile = open(filePath, 'r+')
+        tmpsvgfile = tempfile.NamedTemporaryFile(suffix=ext, delete=False)
+        svgtext = svgfile.read()
+        svgfile.seek(0)
+
+        # replace the <switch> </switch> tags with 'nothing'
+        svgtext = svgtext.replace('<switch>', '')
+        svgtext = svgtext.replace('</switch>', '')
+
+        tmpsvgfile.file.write(svgtext)
+
+        svgfile.close()
+        tmpsvgfile.file.close()
+
+        filePath = tmpsvgfile.name
+        # end hack
+
+      m.update(name + str(size) + ';')
+      glyph = f.createChar( int(chr_code, 16) )
+      glyph.importOutlines(filePath)
+
+      # if we created a temporary file, let's clean it up
+      if tmpsvgfile:
+        os.unlink(tmpsvgfile.name)
+
+      # set glyph size explicitly or automatically depending on autowidth
+      if AUTO_WIDTH:
+        glyph.left_side_bearing = glyph.right_side_bearing = 0
+        glyph.round()
+
+    # resize glyphs if autowidth is enabled
+    if AUTO_WIDTH:
+      f.autoWidth(0, 0, 512)
+
+  fontfile = '%s/ionicons' % (OUTPUT_FONT_DIR)
+
+build_hash = m.hexdigest()
+
+if build_hash == manifest_data.get('build_hash'):
+  print "Source files unchanged, did not rebuild fonts"
+
+else:
+  manifest_data['build_hash'] = build_hash
+
+  f.fontname = font_name
+  f.familyname = font_name
+  f.fullname = font_name
+  f.generate(fontfile + '.ttf')
+  f.generate(fontfile + '.svg')
+
+  # Fix SVG header for webkit
+  # from: https://github.com/fontello/font-builder/blob/master/bin/fontconvert.py
+  svgfile = open(fontfile + '.svg', 'r+')
+  svgtext = svgfile.read()
+  svgfile.seek(0)
+  svgfile.write(svgtext.replace('''<svg>''', '''<svg xmlns="http://www.w3.org/2000/svg">'''))
+  svgfile.close()
+
+  scriptPath = os.path.dirname(os.path.realpath(__file__))
+  try:
+    subprocess.Popen([scriptPath + '/sfnt2woff', fontfile + '.ttf'], stdout=subprocess.PIPE)
+  except OSError:
+    # If the local version of sfnt2woff fails (i.e., on Linux), try to use the
+    # global version. This allows us to avoid forcing OS X users to compile
+    # sfnt2woff from source, simplifying install.
+    subprocess.call(['sfnt2woff', fontfile + '.ttf'])
+
+  # eotlitetool.py script to generate IE7-compatible .eot fonts
+  subprocess.call('python ' + scriptPath + '/eotlitetool.py ' + fontfile + '.ttf -o ' + fontfile + '.eot', shell=True)
+  subprocess.call('mv ' + fontfile + '.eotlite ' + fontfile + '.eot', shell=True)
+
+  # Hint the TTF file
+  subprocess.call('ttfautohint -s -f -n ' + fontfile + '.ttf ' + fontfile + '-hinted.ttf > /dev/null 2>&1 && mv ' + fontfile + '-hinted.ttf ' + fontfile + '.ttf', shell=True)
+
+  manifest_data['icons'] = sorted(manifest_data['icons'], key=lambda k: k['name'])
+  build_data['icons'] = sorted(build_data['icons'], key=lambda k: k['name'])
+
+  print "Save Manifest, Icons: %s" % ( len(manifest_data['icons']) )
+  f = open(MANIFEST_PATH, 'w')
+  f.write( json.dumps(manifest_data, indent=2, separators=(',', ': ')) )
+  f.close()
+
+  print "Save Build, Icons: %s" % ( len(build_data['icons']) )
+  f = open(BUILD_DATA_PATH, 'w')
+  f.write( json.dumps(build_data, indent=2, separators=(',', ': ')) )
+  f.close()
+

BIN
frontend/css/fonts/ionicons-2.0.1/builder/scripts/sfnt2woff


Файловите разлики са ограничени, защото са твърде много
+ 28009 - 0
frontend/css/fonts/ionicons-2.0.1/cheatsheet.html


+ 19 - 0
frontend/css/fonts/ionicons-2.0.1/component.json

@@ -0,0 +1,19 @@
+{
+    "repo": "driftyco/ionicons",
+    "development": {},
+    "version": "2.0.0",
+    "styles": [
+        "css/ionicons.css"
+    ],
+    "name": "Ionicons",
+    "dependencies": {},
+    "keywords": [],
+    "license": "MIT",
+    "fonts": [
+        "fonts/ionicons.eot",
+        "fonts/ionicons.svg",
+        "fonts/ionicons.ttf",
+        "fonts/ionicons.woff"
+    ],
+    "description": "The premium icon font for Ionic Framework."
+}

+ 36 - 0
frontend/css/fonts/ionicons-2.0.1/composer.json

@@ -0,0 +1,36 @@
+{
+    "name": "driftyco/ionicons",
+    "license": [
+        "MIT"
+    ],
+    "extra": {},
+    "authors": [
+        {
+            "homepage": "https://twitter.com/benjsperry",
+            "role": "Designer",
+            "name": "Ben Sperry",
+            "email": "ben@drifty.com"
+        },
+        {
+            "homepage": "https://twitter.com/adamdbradley",
+            "role": "Developer",
+            "name": "Adam Bradley",
+            "email": "adam@drifty.com"
+        },
+        {
+            "homepage": "https://twitter.com/maxlynch",
+            "role": "Developer",
+            "name": "Max Lynch",
+            "email": "max@drifty.com"
+        }
+    ],
+    "keywords": [
+        "fonts",
+        "icon font",
+        "icons",
+        "ionic",
+        "web font"
+    ],
+    "homepage": "http://ionicons.com/",
+    "description": "The premium icon font for Ionic Framework."
+}

Файловите разлики са ограничени, защото са твърде много
+ 1480 - 0
frontend/css/fonts/ionicons-2.0.1/css/ionicons.css


Файловите разлики са ограничени, защото са твърде много
+ 11 - 0
frontend/css/fonts/ionicons-2.0.1/css/ionicons.min.css


BIN
frontend/css/fonts/ionicons-2.0.1/fonts/ionicons.eot


Файловите разлики са ограничени, защото са твърде много
+ 2230 - 0
frontend/css/fonts/ionicons-2.0.1/fonts/ionicons.svg


BIN
frontend/css/fonts/ionicons-2.0.1/fonts/ionicons.ttf


BIN
frontend/css/fonts/ionicons-2.0.1/fonts/ionicons.woff


+ 60 - 0
frontend/css/fonts/ionicons-2.0.1/readme.md

@@ -0,0 +1,60 @@
+# Ionicons
+
+
+The premium icon font for [Ionic](http://ionicframework.com/). Designed by [@benjsperry](https://twitter.com/benjsperry).
+
+Note: All brand icons are trademarks of their respective owners. The use of these trademarks does not indicate endorsement of the trademark holder by Drifty, nor vice versa.
+
+Visit [ionicons.com](http://ionicons.com) and  check out the search feature, which has keywords identifying common icon names and styles. For example, if you search for “arrow” we call up every icon that could possibly be used as an arrow. We’ve also included each icon’s class name for easy copy/pasting when you’re developing!
+
+We intend for this icon pack to be used with [Ionic](http://ionicframework.com/), but it’s by no means limited to it. Use them wherever you see fit, personal or commercial. They are free to use and licensed under [MIT](http://opensource.org/licenses/MIT).
+
+
+## Getting Started
+
+ 1. Download and extract the font pack
+ 2. Copy the `ionicons.css` to your project
+ 3. Copy the `fonts` folder to your project
+ 4. Ensure the font urls within `ionicons.css` properly reference the `fonts` path within your project.
+ 5. Include a reference to the `ionicons.css` file from every webpage you need to use it.
+
+Or install with [component](https://github.com/component/component):
+
+    $ component install driftyco/ionicons
+    
+Or perhaps you're known to use [bower](http://bower.io/)?
+   
+    $ bower install ionicons
+
+
+## HTML Example
+
+You can use [ionicons.com](http://ionicons.com) to easily find the icon you want to use. Once you've copied the desired icon's CSS classname, simply add the `icon` and icon's classname, such as `ion-home` to an HTML element.
+
+    <i class="icon ion-home"></i>
+
+
+## Build Instructions
+
+This repo already comes with all the files built and ready to go, but can also build the fonts from the source. Requires Python, FontForge and Sass:
+
+1) Install FontForge, which is the program that creates the font files from the SVG files:
+
+    $ brew install fontforge ttfautohint
+
+2) Install [Sass](http://sass-lang.com/)
+
+    $ gem install sass
+
+3) Add or subtract files from the `src/` folder you'd like to be apart of the font files.
+
+4) Modify any settings in the `builder/manifest.json` file. You can change the name of the font-family and CSS classname prefix.
+
+5) Run the build command:
+
+    python ./builder/generate.py
+
+
+## License
+
+Ionicons is licensed under the [MIT license](http://opensource.org/licenses/MIT).

+ 27 - 0
frontend/css/fonts/ionicons-2.0.1/scss/_ionicons-font.scss

@@ -0,0 +1,27 @@
+// Ionicons Font Path
+// --------------------------
+
+@font-face {
+ font-family: $ionicons-font-family;
+ src:url("#{$ionicons-font-path}/ionicons.eot?v=#{$ionicons-version}");
+ src:url("#{$ionicons-font-path}/ionicons.eot?v=#{$ionicons-version}#iefix") format("embedded-opentype"),
+  url("#{$ionicons-font-path}/ionicons.ttf?v=#{$ionicons-version}") format("truetype"),
+  url("#{$ionicons-font-path}/ionicons.woff?v=#{$ionicons-version}") format("woff"),
+  url("#{$ionicons-font-path}/ionicons.svg?v=#{$ionicons-version}#Ionicons") format("svg");
+ font-weight: normal;
+ font-style: normal;
+}
+
+.ion {
+  display: inline-block;
+  font-family: $ionicons-font-family;
+  speak: none;
+  font-style: normal;
+  font-weight: normal;
+  font-variant: normal;
+  text-transform: none;
+  text-rendering: auto;
+  line-height: 1;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}

Файловите разлики са ограничени, защото са твърде много
+ 1473 - 0
frontend/css/fonts/ionicons-2.0.1/scss/_ionicons-icons.scss


+ 741 - 0
frontend/css/fonts/ionicons-2.0.1/scss/_ionicons-variables.scss

@@ -0,0 +1,741 @@
+// Ionicons Variables
+// --------------------------
+
+$ionicons-font-path: "../fonts" !default;
+$ionicons-font-family: "Ionicons" !default;
+$ionicons-version: "2.0.0" !default;
+$ionicons-prefix: ion- !default;
+
+$ionicon-var-alert: "\f101";
+$ionicon-var-alert-circled: "\f100";
+$ionicon-var-android-add: "\f2c7";
+$ionicon-var-android-add-circle: "\f359";
+$ionicon-var-android-alarm-clock: "\f35a";
+$ionicon-var-android-alert: "\f35b";
+$ionicon-var-android-apps: "\f35c";
+$ionicon-var-android-archive: "\f2c9";
+$ionicon-var-android-arrow-back: "\f2ca";
+$ionicon-var-android-arrow-down: "\f35d";
+$ionicon-var-android-arrow-dropdown: "\f35f";
+$ionicon-var-android-arrow-dropdown-circle: "\f35e";
+$ionicon-var-android-arrow-dropleft: "\f361";
+$ionicon-var-android-arrow-dropleft-circle: "\f360";
+$ionicon-var-android-arrow-dropright: "\f363";
+$ionicon-var-android-arrow-dropright-circle: "\f362";
+$ionicon-var-android-arrow-dropup: "\f365";
+$ionicon-var-android-arrow-dropup-circle: "\f364";
+$ionicon-var-android-arrow-forward: "\f30f";
+$ionicon-var-android-arrow-up: "\f366";
+$ionicon-var-android-attach: "\f367";
+$ionicon-var-android-bar: "\f368";
+$ionicon-var-android-bicycle: "\f369";
+$ionicon-var-android-boat: "\f36a";
+$ionicon-var-android-bookmark: "\f36b";
+$ionicon-var-android-bulb: "\f36c";
+$ionicon-var-android-bus: "\f36d";
+$ionicon-var-android-calendar: "\f2d1";
+$ionicon-var-android-call: "\f2d2";
+$ionicon-var-android-camera: "\f2d3";
+$ionicon-var-android-cancel: "\f36e";
+$ionicon-var-android-car: "\f36f";
+$ionicon-var-android-cart: "\f370";
+$ionicon-var-android-chat: "\f2d4";
+$ionicon-var-android-checkbox: "\f374";
+$ionicon-var-android-checkbox-blank: "\f371";
+$ionicon-var-android-checkbox-outline: "\f373";
+$ionicon-var-android-checkbox-outline-blank: "\f372";
+$ionicon-var-android-checkmark-circle: "\f375";
+$ionicon-var-android-clipboard: "\f376";
+$ionicon-var-android-close: "\f2d7";
+$ionicon-var-android-cloud: "\f37a";
+$ionicon-var-android-cloud-circle: "\f377";
+$ionicon-var-android-cloud-done: "\f378";
+$ionicon-var-android-cloud-outline: "\f379";
+$ionicon-var-android-color-palette: "\f37b";
+$ionicon-var-android-compass: "\f37c";
+$ionicon-var-android-contact: "\f2d8";
+$ionicon-var-android-contacts: "\f2d9";
+$ionicon-var-android-contract: "\f37d";
+$ionicon-var-android-create: "\f37e";
+$ionicon-var-android-delete: "\f37f";
+$ionicon-var-android-desktop: "\f380";
+$ionicon-var-android-document: "\f381";
+$ionicon-var-android-done: "\f383";
+$ionicon-var-android-done-all: "\f382";
+$ionicon-var-android-download: "\f2dd";
+$ionicon-var-android-drafts: "\f384";
+$ionicon-var-android-exit: "\f385";
+$ionicon-var-android-expand: "\f386";
+$ionicon-var-android-favorite: "\f388";
+$ionicon-var-android-favorite-outline: "\f387";
+$ionicon-var-android-film: "\f389";
+$ionicon-var-android-folder: "\f2e0";
+$ionicon-var-android-folder-open: "\f38a";
+$ionicon-var-android-funnel: "\f38b";
+$ionicon-var-android-globe: "\f38c";
+$ionicon-var-android-hand: "\f2e3";
+$ionicon-var-android-hangout: "\f38d";
+$ionicon-var-android-happy: "\f38e";
+$ionicon-var-android-home: "\f38f";
+$ionicon-var-android-image: "\f2e4";
+$ionicon-var-android-laptop: "\f390";
+$ionicon-var-android-list: "\f391";
+$ionicon-var-android-locate: "\f2e9";
+$ionicon-var-android-lock: "\f392";
+$ionicon-var-android-mail: "\f2eb";
+$ionicon-var-android-map: "\f393";
+$ionicon-var-android-menu: "\f394";
+$ionicon-var-android-microphone: "\f2ec";
+$ionicon-var-android-microphone-off: "\f395";
+$ionicon-var-android-more-horizontal: "\f396";
+$ionicon-var-android-more-vertical: "\f397";
+$ionicon-var-android-navigate: "\f398";
+$ionicon-var-android-notifications: "\f39b";
+$ionicon-var-android-notifications-none: "\f399";
+$ionicon-var-android-notifications-off: "\f39a";
+$ionicon-var-android-open: "\f39c";
+$ionicon-var-android-options: "\f39d";
+$ionicon-var-android-people: "\f39e";
+$ionicon-var-android-person: "\f3a0";
+$ionicon-var-android-person-add: "\f39f";
+$ionicon-var-android-phone-landscape: "\f3a1";
+$ionicon-var-android-phone-portrait: "\f3a2";
+$ionicon-var-android-pin: "\f3a3";
+$ionicon-var-android-plane: "\f3a4";
+$ionicon-var-android-playstore: "\f2f0";
+$ionicon-var-android-print: "\f3a5";
+$ionicon-var-android-radio-button-off: "\f3a6";
+$ionicon-var-android-radio-button-on: "\f3a7";
+$ionicon-var-android-refresh: "\f3a8";
+$ionicon-var-android-remove: "\f2f4";
+$ionicon-var-android-remove-circle: "\f3a9";
+$ionicon-var-android-restaurant: "\f3aa";
+$ionicon-var-android-sad: "\f3ab";
+$ionicon-var-android-search: "\f2f5";
+$ionicon-var-android-send: "\f2f6";
+$ionicon-var-android-settings: "\f2f7";
+$ionicon-var-android-share: "\f2f8";
+$ionicon-var-android-share-alt: "\f3ac";
+$ionicon-var-android-star: "\f2fc";
+$ionicon-var-android-star-half: "\f3ad";
+$ionicon-var-android-star-outline: "\f3ae";
+$ionicon-var-android-stopwatch: "\f2fd";
+$ionicon-var-android-subway: "\f3af";
+$ionicon-var-android-sunny: "\f3b0";
+$ionicon-var-android-sync: "\f3b1";
+$ionicon-var-android-textsms: "\f3b2";
+$ionicon-var-android-time: "\f3b3";
+$ionicon-var-android-train: "\f3b4";
+$ionicon-var-android-unlock: "\f3b5";
+$ionicon-var-android-upload: "\f3b6";
+$ionicon-var-android-volume-down: "\f3b7";
+$ionicon-var-android-volume-mute: "\f3b8";
+$ionicon-var-android-volume-off: "\f3b9";
+$ionicon-var-android-volume-up: "\f3ba";
+$ionicon-var-android-walk: "\f3bb";
+$ionicon-var-android-warning: "\f3bc";
+$ionicon-var-android-watch: "\f3bd";
+$ionicon-var-android-wifi: "\f305";
+$ionicon-var-aperture: "\f313";
+$ionicon-var-archive: "\f102";
+$ionicon-var-arrow-down-a: "\f103";
+$ionicon-var-arrow-down-b: "\f104";
+$ionicon-var-arrow-down-c: "\f105";
+$ionicon-var-arrow-expand: "\f25e";
+$ionicon-var-arrow-graph-down-left: "\f25f";
+$ionicon-var-arrow-graph-down-right: "\f260";
+$ionicon-var-arrow-graph-up-left: "\f261";
+$ionicon-var-arrow-graph-up-right: "\f262";
+$ionicon-var-arrow-left-a: "\f106";
+$ionicon-var-arrow-left-b: "\f107";
+$ionicon-var-arrow-left-c: "\f108";
+$ionicon-var-arrow-move: "\f263";
+$ionicon-var-arrow-resize: "\f264";
+$ionicon-var-arrow-return-left: "\f265";
+$ionicon-var-arrow-return-right: "\f266";
+$ionicon-var-arrow-right-a: "\f109";
+$ionicon-var-arrow-right-b: "\f10a";
+$ionicon-var-arrow-right-c: "\f10b";
+$ionicon-var-arrow-shrink: "\f267";
+$ionicon-var-arrow-swap: "\f268";
+$ionicon-var-arrow-up-a: "\f10c";
+$ionicon-var-arrow-up-b: "\f10d";
+$ionicon-var-arrow-up-c: "\f10e";
+$ionicon-var-asterisk: "\f314";
+$ionicon-var-at: "\f10f";
+$ionicon-var-backspace: "\f3bf";
+$ionicon-var-backspace-outline: "\f3be";
+$ionicon-var-bag: "\f110";
+$ionicon-var-battery-charging: "\f111";
+$ionicon-var-battery-empty: "\f112";
+$ionicon-var-battery-full: "\f113";
+$ionicon-var-battery-half: "\f114";
+$ionicon-var-battery-low: "\f115";
+$ionicon-var-beaker: "\f269";
+$ionicon-var-beer: "\f26a";
+$ionicon-var-bluetooth: "\f116";
+$ionicon-var-bonfire: "\f315";
+$ionicon-var-bookmark: "\f26b";
+$ionicon-var-bowtie: "\f3c0";
+$ionicon-var-briefcase: "\f26c";
+$ionicon-var-bug: "\f2be";
+$ionicon-var-calculator: "\f26d";
+$ionicon-var-calendar: "\f117";
+$ionicon-var-camera: "\f118";
+$ionicon-var-card: "\f119";
+$ionicon-var-cash: "\f316";
+$ionicon-var-chatbox: "\f11b";
+$ionicon-var-chatbox-working: "\f11a";
+$ionicon-var-chatboxes: "\f11c";
+$ionicon-var-chatbubble: "\f11e";
+$ionicon-var-chatbubble-working: "\f11d";
+$ionicon-var-chatbubbles: "\f11f";
+$ionicon-var-checkmark: "\f122";
+$ionicon-var-checkmark-circled: "\f120";
+$ionicon-var-checkmark-round: "\f121";
+$ionicon-var-chevron-down: "\f123";
+$ionicon-var-chevron-left: "\f124";
+$ionicon-var-chevron-right: "\f125";
+$ionicon-var-chevron-up: "\f126";
+$ionicon-var-clipboard: "\f127";
+$ionicon-var-clock: "\f26e";
+$ionicon-var-close: "\f12a";
+$ionicon-var-close-circled: "\f128";
+$ionicon-var-close-round: "\f129";
+$ionicon-var-closed-captioning: "\f317";
+$ionicon-var-cloud: "\f12b";
+$ionicon-var-code: "\f271";
+$ionicon-var-code-download: "\f26f";
+$ionicon-var-code-working: "\f270";
+$ionicon-var-coffee: "\f272";
+$ionicon-var-compass: "\f273";
+$ionicon-var-compose: "\f12c";
+$ionicon-var-connection-bars: "\f274";
+$ionicon-var-contrast: "\f275";
+$ionicon-var-crop: "\f3c1";
+$ionicon-var-cube: "\f318";
+$ionicon-var-disc: "\f12d";
+$ionicon-var-document: "\f12f";
+$ionicon-var-document-text: "\f12e";
+$ionicon-var-drag: "\f130";
+$ionicon-var-earth: "\f276";
+$ionicon-var-easel: "\f3c2";
+$ionicon-var-edit: "\f2bf";
+$ionicon-var-egg: "\f277";
+$ionicon-var-eject: "\f131";
+$ionicon-var-email: "\f132";
+$ionicon-var-email-unread: "\f3c3";
+$ionicon-var-erlenmeyer-flask: "\f3c5";
+$ionicon-var-erlenmeyer-flask-bubbles: "\f3c4";
+$ionicon-var-eye: "\f133";
+$ionicon-var-eye-disabled: "\f306";
+$ionicon-var-female: "\f278";
+$ionicon-var-filing: "\f134";
+$ionicon-var-film-marker: "\f135";
+$ionicon-var-fireball: "\f319";
+$ionicon-var-flag: "\f279";
+$ionicon-var-flame: "\f31a";
+$ionicon-var-flash: "\f137";
+$ionicon-var-flash-off: "\f136";
+$ionicon-var-folder: "\f139";
+$ionicon-var-fork: "\f27a";
+$ionicon-var-fork-repo: "\f2c0";
+$ionicon-var-forward: "\f13a";
+$ionicon-var-funnel: "\f31b";
+$ionicon-var-gear-a: "\f13d";
+$ionicon-var-gear-b: "\f13e";
+$ionicon-var-grid: "\f13f";
+$ionicon-var-hammer: "\f27b";
+$ionicon-var-happy: "\f31c";
+$ionicon-var-happy-outline: "\f3c6";
+$ionicon-var-headphone: "\f140";
+$ionicon-var-heart: "\f141";
+$ionicon-var-heart-broken: "\f31d";
+$ionicon-var-help: "\f143";
+$ionicon-var-help-buoy: "\f27c";
+$ionicon-var-help-circled: "\f142";
+$ionicon-var-home: "\f144";
+$ionicon-var-icecream: "\f27d";
+$ionicon-var-image: "\f147";
+$ionicon-var-images: "\f148";
+$ionicon-var-information: "\f14a";
+$ionicon-var-information-circled: "\f149";
+$ionicon-var-ionic: "\f14b";
+$ionicon-var-ios-alarm: "\f3c8";
+$ionicon-var-ios-alarm-outline: "\f3c7";
+$ionicon-var-ios-albums: "\f3ca";
+$ionicon-var-ios-albums-outline: "\f3c9";
+$ionicon-var-ios-americanfootball: "\f3cc";
+$ionicon-var-ios-americanfootball-outline: "\f3cb";
+$ionicon-var-ios-analytics: "\f3ce";
+$ionicon-var-ios-analytics-outline: "\f3cd";
+$ionicon-var-ios-arrow-back: "\f3cf";
+$ionicon-var-ios-arrow-down: "\f3d0";
+$ionicon-var-ios-arrow-forward: "\f3d1";
+$ionicon-var-ios-arrow-left: "\f3d2";
+$ionicon-var-ios-arrow-right: "\f3d3";
+$ionicon-var-ios-arrow-thin-down: "\f3d4";
+$ionicon-var-ios-arrow-thin-left: "\f3d5";
+$ionicon-var-ios-arrow-thin-right: "\f3d6";
+$ionicon-var-ios-arrow-thin-up: "\f3d7";
+$ionicon-var-ios-arrow-up: "\f3d8";
+$ionicon-var-ios-at: "\f3da";
+$ionicon-var-ios-at-outline: "\f3d9";
+$ionicon-var-ios-barcode: "\f3dc";
+$ionicon-var-ios-barcode-outline: "\f3db";
+$ionicon-var-ios-baseball: "\f3de";
+$ionicon-var-ios-baseball-outline: "\f3dd";
+$ionicon-var-ios-basketball: "\f3e0";
+$ionicon-var-ios-basketball-outline: "\f3df";
+$ionicon-var-ios-bell: "\f3e2";
+$ionicon-var-ios-bell-outline: "\f3e1";
+$ionicon-var-ios-body: "\f3e4";
+$ionicon-var-ios-body-outline: "\f3e3";
+$ionicon-var-ios-bolt: "\f3e6";
+$ionicon-var-ios-bolt-outline: "\f3e5";
+$ionicon-var-ios-book: "\f3e8";
+$ionicon-var-ios-book-outline: "\f3e7";
+$ionicon-var-ios-bookmarks: "\f3ea";
+$ionicon-var-ios-bookmarks-outline: "\f3e9";
+$ionicon-var-ios-box: "\f3ec";
+$ionicon-var-ios-box-outline: "\f3eb";
+$ionicon-var-ios-briefcase: "\f3ee";
+$ionicon-var-ios-briefcase-outline: "\f3ed";
+$ionicon-var-ios-browsers: "\f3f0";
+$ionicon-var-ios-browsers-outline: "\f3ef";
+$ionicon-var-ios-calculator: "\f3f2";
+$ionicon-var-ios-calculator-outline: "\f3f1";
+$ionicon-var-ios-calendar: "\f3f4";
+$ionicon-var-ios-calendar-outline: "\f3f3";
+$ionicon-var-ios-camera: "\f3f6";
+$ionicon-var-ios-camera-outline: "\f3f5";
+$ionicon-var-ios-cart: "\f3f8";
+$ionicon-var-ios-cart-outline: "\f3f7";
+$ionicon-var-ios-chatboxes: "\f3fa";
+$ionicon-var-ios-chatboxes-outline: "\f3f9";
+$ionicon-var-ios-chatbubble: "\f3fc";
+$ionicon-var-ios-chatbubble-outline: "\f3fb";
+$ionicon-var-ios-checkmark: "\f3ff";
+$ionicon-var-ios-checkmark-empty: "\f3fd";
+$ionicon-var-ios-checkmark-outline: "\f3fe";
+$ionicon-var-ios-circle-filled: "\f400";
+$ionicon-var-ios-circle-outline: "\f401";
+$ionicon-var-ios-clock: "\f403";
+$ionicon-var-ios-clock-outline: "\f402";
+$ionicon-var-ios-close: "\f406";
+$ionicon-var-ios-close-empty: "\f404";
+$ionicon-var-ios-close-outline: "\f405";
+$ionicon-var-ios-cloud: "\f40c";
+$ionicon-var-ios-cloud-download: "\f408";
+$ionicon-var-ios-cloud-download-outline: "\f407";
+$ionicon-var-ios-cloud-outline: "\f409";
+$ionicon-var-ios-cloud-upload: "\f40b";
+$ionicon-var-ios-cloud-upload-outline: "\f40a";
+$ionicon-var-ios-cloudy: "\f410";
+$ionicon-var-ios-cloudy-night: "\f40e";
+$ionicon-var-ios-cloudy-night-outline: "\f40d";
+$ionicon-var-ios-cloudy-outline: "\f40f";
+$ionicon-var-ios-cog: "\f412";
+$ionicon-var-ios-cog-outline: "\f411";
+$ionicon-var-ios-color-filter: "\f414";
+$ionicon-var-ios-color-filter-outline: "\f413";
+$ionicon-var-ios-color-wand: "\f416";
+$ionicon-var-ios-color-wand-outline: "\f415";
+$ionicon-var-ios-compose: "\f418";
+$ionicon-var-ios-compose-outline: "\f417";
+$ionicon-var-ios-contact: "\f41a";
+$ionicon-var-ios-contact-outline: "\f419";
+$ionicon-var-ios-copy: "\f41c";
+$ionicon-var-ios-copy-outline: "\f41b";
+$ionicon-var-ios-crop: "\f41e";
+$ionicon-var-ios-crop-strong: "\f41d";
+$ionicon-var-ios-download: "\f420";
+$ionicon-var-ios-download-outline: "\f41f";
+$ionicon-var-ios-drag: "\f421";
+$ionicon-var-ios-email: "\f423";
+$ionicon-var-ios-email-outline: "\f422";
+$ionicon-var-ios-eye: "\f425";
+$ionicon-var-ios-eye-outline: "\f424";
+$ionicon-var-ios-fastforward: "\f427";
+$ionicon-var-ios-fastforward-outline: "\f426";
+$ionicon-var-ios-filing: "\f429";
+$ionicon-var-ios-filing-outline: "\f428";
+$ionicon-var-ios-film: "\f42b";
+$ionicon-var-ios-film-outline: "\f42a";
+$ionicon-var-ios-flag: "\f42d";
+$ionicon-var-ios-flag-outline: "\f42c";
+$ionicon-var-ios-flame: "\f42f";
+$ionicon-var-ios-flame-outline: "\f42e";
+$ionicon-var-ios-flask: "\f431";
+$ionicon-var-ios-flask-outline: "\f430";
+$ionicon-var-ios-flower: "\f433";
+$ionicon-var-ios-flower-outline: "\f432";
+$ionicon-var-ios-folder: "\f435";
+$ionicon-var-ios-folder-outline: "\f434";
+$ionicon-var-ios-football: "\f437";
+$ionicon-var-ios-football-outline: "\f436";
+$ionicon-var-ios-game-controller-a: "\f439";
+$ionicon-var-ios-game-controller-a-outline: "\f438";
+$ionicon-var-ios-game-controller-b: "\f43b";
+$ionicon-var-ios-game-controller-b-outline: "\f43a";
+$ionicon-var-ios-gear: "\f43d";
+$ionicon-var-ios-gear-outline: "\f43c";
+$ionicon-var-ios-glasses: "\f43f";
+$ionicon-var-ios-glasses-outline: "\f43e";
+$ionicon-var-ios-grid-view: "\f441";
+$ionicon-var-ios-grid-view-outline: "\f440";
+$ionicon-var-ios-heart: "\f443";
+$ionicon-var-ios-heart-outline: "\f442";
+$ionicon-var-ios-help: "\f446";
+$ionicon-var-ios-help-empty: "\f444";
+$ionicon-var-ios-help-outline: "\f445";
+$ionicon-var-ios-home: "\f448";
+$ionicon-var-ios-home-outline: "\f447";
+$ionicon-var-ios-infinite: "\f44a";
+$ionicon-var-ios-infinite-outline: "\f449";
+$ionicon-var-ios-information: "\f44d";
+$ionicon-var-ios-information-empty: "\f44b";
+$ionicon-var-ios-information-outline: "\f44c";
+$ionicon-var-ios-ionic-outline: "\f44e";
+$ionicon-var-ios-keypad: "\f450";
+$ionicon-var-ios-keypad-outline: "\f44f";
+$ionicon-var-ios-lightbulb: "\f452";
+$ionicon-var-ios-lightbulb-outline: "\f451";
+$ionicon-var-ios-list: "\f454";
+$ionicon-var-ios-list-outline: "\f453";
+$ionicon-var-ios-location: "\f456";
+$ionicon-var-ios-location-outline: "\f455";
+$ionicon-var-ios-locked: "\f458";
+$ionicon-var-ios-locked-outline: "\f457";
+$ionicon-var-ios-loop: "\f45a";
+$ionicon-var-ios-loop-strong: "\f459";
+$ionicon-var-ios-medical: "\f45c";
+$ionicon-var-ios-medical-outline: "\f45b";
+$ionicon-var-ios-medkit: "\f45e";
+$ionicon-var-ios-medkit-outline: "\f45d";
+$ionicon-var-ios-mic: "\f461";
+$ionicon-var-ios-mic-off: "\f45f";
+$ionicon-var-ios-mic-outline: "\f460";
+$ionicon-var-ios-minus: "\f464";
+$ionicon-var-ios-minus-empty: "\f462";
+$ionicon-var-ios-minus-outline: "\f463";
+$ionicon-var-ios-monitor: "\f466";
+$ionicon-var-ios-monitor-outline: "\f465";
+$ionicon-var-ios-moon: "\f468";
+$ionicon-var-ios-moon-outline: "\f467";
+$ionicon-var-ios-more: "\f46a";
+$ionicon-var-ios-more-outline: "\f469";
+$ionicon-var-ios-musical-note: "\f46b";
+$ionicon-var-ios-musical-notes: "\f46c";
+$ionicon-var-ios-navigate: "\f46e";
+$ionicon-var-ios-navigate-outline: "\f46d";
+$ionicon-var-ios-nutrition: "\f470";
+$ionicon-var-ios-nutrition-outline: "\f46f";
+$ionicon-var-ios-paper: "\f472";
+$ionicon-var-ios-paper-outline: "\f471";
+$ionicon-var-ios-paperplane: "\f474";
+$ionicon-var-ios-paperplane-outline: "\f473";
+$ionicon-var-ios-partlysunny: "\f476";
+$ionicon-var-ios-partlysunny-outline: "\f475";
+$ionicon-var-ios-pause: "\f478";
+$ionicon-var-ios-pause-outline: "\f477";
+$ionicon-var-ios-paw: "\f47a";
+$ionicon-var-ios-paw-outline: "\f479";
+$ionicon-var-ios-people: "\f47c";
+$ionicon-var-ios-people-outline: "\f47b";
+$ionicon-var-ios-person: "\f47e";
+$ionicon-var-ios-person-outline: "\f47d";
+$ionicon-var-ios-personadd: "\f480";
+$ionicon-var-ios-personadd-outline: "\f47f";
+$ionicon-var-ios-photos: "\f482";
+$ionicon-var-ios-photos-outline: "\f481";
+$ionicon-var-ios-pie: "\f484";
+$ionicon-var-ios-pie-outline: "\f483";
+$ionicon-var-ios-pint: "\f486";
+$ionicon-var-ios-pint-outline: "\f485";
+$ionicon-var-ios-play: "\f488";
+$ionicon-var-ios-play-outline: "\f487";
+$ionicon-var-ios-plus: "\f48b";
+$ionicon-var-ios-plus-empty: "\f489";
+$ionicon-var-ios-plus-outline: "\f48a";
+$ionicon-var-ios-pricetag: "\f48d";
+$ionicon-var-ios-pricetag-outline: "\f48c";
+$ionicon-var-ios-pricetags: "\f48f";
+$ionicon-var-ios-pricetags-outline: "\f48e";
+$ionicon-var-ios-printer: "\f491";
+$ionicon-var-ios-printer-outline: "\f490";
+$ionicon-var-ios-pulse: "\f493";
+$ionicon-var-ios-pulse-strong: "\f492";
+$ionicon-var-ios-rainy: "\f495";
+$ionicon-var-ios-rainy-outline: "\f494";
+$ionicon-var-ios-recording: "\f497";
+$ionicon-var-ios-recording-outline: "\f496";
+$ionicon-var-ios-redo: "\f499";
+$ionicon-var-ios-redo-outline: "\f498";
+$ionicon-var-ios-refresh: "\f49c";
+$ionicon-var-ios-refresh-empty: "\f49a";
+$ionicon-var-ios-refresh-outline: "\f49b";
+$ionicon-var-ios-reload: "\f49d";
+$ionicon-var-ios-reverse-camera: "\f49f";
+$ionicon-var-ios-reverse-camera-outline: "\f49e";
+$ionicon-var-ios-rewind: "\f4a1";
+$ionicon-var-ios-rewind-outline: "\f4a0";
+$ionicon-var-ios-rose: "\f4a3";
+$ionicon-var-ios-rose-outline: "\f4a2";
+$ionicon-var-ios-search: "\f4a5";
+$ionicon-var-ios-search-strong: "\f4a4";
+$ionicon-var-ios-settings: "\f4a7";
+$ionicon-var-ios-settings-strong: "\f4a6";
+$ionicon-var-ios-shuffle: "\f4a9";
+$ionicon-var-ios-shuffle-strong: "\f4a8";
+$ionicon-var-ios-skipbackward: "\f4ab";
+$ionicon-var-ios-skipbackward-outline: "\f4aa";
+$ionicon-var-ios-skipforward: "\f4ad";
+$ionicon-var-ios-skipforward-outline: "\f4ac";
+$ionicon-var-ios-snowy: "\f4ae";
+$ionicon-var-ios-speedometer: "\f4b0";
+$ionicon-var-ios-speedometer-outline: "\f4af";
+$ionicon-var-ios-star: "\f4b3";
+$ionicon-var-ios-star-half: "\f4b1";
+$ionicon-var-ios-star-outline: "\f4b2";
+$ionicon-var-ios-stopwatch: "\f4b5";
+$ionicon-var-ios-stopwatch-outline: "\f4b4";
+$ionicon-var-ios-sunny: "\f4b7";
+$ionicon-var-ios-sunny-outline: "\f4b6";
+$ionicon-var-ios-telephone: "\f4b9";
+$ionicon-var-ios-telephone-outline: "\f4b8";
+$ionicon-var-ios-tennisball: "\f4bb";
+$ionicon-var-ios-tennisball-outline: "\f4ba";
+$ionicon-var-ios-thunderstorm: "\f4bd";
+$ionicon-var-ios-thunderstorm-outline: "\f4bc";
+$ionicon-var-ios-time: "\f4bf";
+$ionicon-var-ios-time-outline: "\f4be";
+$ionicon-var-ios-timer: "\f4c1";
+$ionicon-var-ios-timer-outline: "\f4c0";
+$ionicon-var-ios-toggle: "\f4c3";
+$ionicon-var-ios-toggle-outline: "\f4c2";
+$ionicon-var-ios-trash: "\f4c5";
+$ionicon-var-ios-trash-outline: "\f4c4";
+$ionicon-var-ios-undo: "\f4c7";
+$ionicon-var-ios-undo-outline: "\f4c6";
+$ionicon-var-ios-unlocked: "\f4c9";
+$ionicon-var-ios-unlocked-outline: "\f4c8";
+$ionicon-var-ios-upload: "\f4cb";
+$ionicon-var-ios-upload-outline: "\f4ca";
+$ionicon-var-ios-videocam: "\f4cd";
+$ionicon-var-ios-videocam-outline: "\f4cc";
+$ionicon-var-ios-volume-high: "\f4ce";
+$ionicon-var-ios-volume-low: "\f4cf";
+$ionicon-var-ios-wineglass: "\f4d1";
+$ionicon-var-ios-wineglass-outline: "\f4d0";
+$ionicon-var-ios-world: "\f4d3";
+$ionicon-var-ios-world-outline: "\f4d2";
+$ionicon-var-ipad: "\f1f9";
+$ionicon-var-iphone: "\f1fa";
+$ionicon-var-ipod: "\f1fb";
+$ionicon-var-jet: "\f295";
+$ionicon-var-key: "\f296";
+$ionicon-var-knife: "\f297";
+$ionicon-var-laptop: "\f1fc";
+$ionicon-var-leaf: "\f1fd";
+$ionicon-var-levels: "\f298";
+$ionicon-var-lightbulb: "\f299";
+$ionicon-var-link: "\f1fe";
+$ionicon-var-load-a: "\f29a";
+$ionicon-var-load-b: "\f29b";
+$ionicon-var-load-c: "\f29c";
+$ionicon-var-load-d: "\f29d";
+$ionicon-var-location: "\f1ff";
+$ionicon-var-lock-combination: "\f4d4";
+$ionicon-var-locked: "\f200";
+$ionicon-var-log-in: "\f29e";
+$ionicon-var-log-out: "\f29f";
+$ionicon-var-loop: "\f201";
+$ionicon-var-magnet: "\f2a0";
+$ionicon-var-male: "\f2a1";
+$ionicon-var-man: "\f202";
+$ionicon-var-map: "\f203";
+$ionicon-var-medkit: "\f2a2";
+$ionicon-var-merge: "\f33f";
+$ionicon-var-mic-a: "\f204";
+$ionicon-var-mic-b: "\f205";
+$ionicon-var-mic-c: "\f206";
+$ionicon-var-minus: "\f209";
+$ionicon-var-minus-circled: "\f207";
+$ionicon-var-minus-round: "\f208";
+$ionicon-var-model-s: "\f2c1";
+$ionicon-var-monitor: "\f20a";
+$ionicon-var-more: "\f20b";
+$ionicon-var-mouse: "\f340";
+$ionicon-var-music-note: "\f20c";
+$ionicon-var-navicon: "\f20e";
+$ionicon-var-navicon-round: "\f20d";
+$ionicon-var-navigate: "\f2a3";
+$ionicon-var-network: "\f341";
+$ionicon-var-no-smoking: "\f2c2";
+$ionicon-var-nuclear: "\f2a4";
+$ionicon-var-outlet: "\f342";
+$ionicon-var-paintbrush: "\f4d5";
+$ionicon-var-paintbucket: "\f4d6";
+$ionicon-var-paper-airplane: "\f2c3";
+$ionicon-var-paperclip: "\f20f";
+$ionicon-var-pause: "\f210";
+$ionicon-var-person: "\f213";
+$ionicon-var-person-add: "\f211";
+$ionicon-var-person-stalker: "\f212";
+$ionicon-var-pie-graph: "\f2a5";
+$ionicon-var-pin: "\f2a6";
+$ionicon-var-pinpoint: "\f2a7";
+$ionicon-var-pizza: "\f2a8";
+$ionicon-var-plane: "\f214";
+$ionicon-var-planet: "\f343";
+$ionicon-var-play: "\f215";
+$ionicon-var-playstation: "\f30a";
+$ionicon-var-plus: "\f218";
+$ionicon-var-plus-circled: "\f216";
+$ionicon-var-plus-round: "\f217";
+$ionicon-var-podium: "\f344";
+$ionicon-var-pound: "\f219";
+$ionicon-var-power: "\f2a9";
+$ionicon-var-pricetag: "\f2aa";
+$ionicon-var-pricetags: "\f2ab";
+$ionicon-var-printer: "\f21a";
+$ionicon-var-pull-request: "\f345";
+$ionicon-var-qr-scanner: "\f346";
+$ionicon-var-quote: "\f347";
+$ionicon-var-radio-waves: "\f2ac";
+$ionicon-var-record: "\f21b";
+$ionicon-var-refresh: "\f21c";
+$ionicon-var-reply: "\f21e";
+$ionicon-var-reply-all: "\f21d";
+$ionicon-var-ribbon-a: "\f348";
+$ionicon-var-ribbon-b: "\f349";
+$ionicon-var-sad: "\f34a";
+$ionicon-var-sad-outline: "\f4d7";
+$ionicon-var-scissors: "\f34b";
+$ionicon-var-search: "\f21f";
+$ionicon-var-settings: "\f2ad";
+$ionicon-var-share: "\f220";
+$ionicon-var-shuffle: "\f221";
+$ionicon-var-skip-backward: "\f222";
+$ionicon-var-skip-forward: "\f223";
+$ionicon-var-social-android: "\f225";
+$ionicon-var-social-android-outline: "\f224";
+$ionicon-var-social-angular: "\f4d9";
+$ionicon-var-social-angular-outline: "\f4d8";
+$ionicon-var-social-apple: "\f227";
+$ionicon-var-social-apple-outline: "\f226";
+$ionicon-var-social-bitcoin: "\f2af";
+$ionicon-var-social-bitcoin-outline: "\f2ae";
+$ionicon-var-social-buffer: "\f229";
+$ionicon-var-social-buffer-outline: "\f228";
+$ionicon-var-social-chrome: "\f4db";
+$ionicon-var-social-chrome-outline: "\f4da";
+$ionicon-var-social-codepen: "\f4dd";
+$ionicon-var-social-codepen-outline: "\f4dc";
+$ionicon-var-social-css3: "\f4df";
+$ionicon-var-social-css3-outline: "\f4de";
+$ionicon-var-social-designernews: "\f22b";
+$ionicon-var-social-designernews-outline: "\f22a";
+$ionicon-var-social-dribbble: "\f22d";
+$ionicon-var-social-dribbble-outline: "\f22c";
+$ionicon-var-social-dropbox: "\f22f";
+$ionicon-var-social-dropbox-outline: "\f22e";
+$ionicon-var-social-euro: "\f4e1";
+$ionicon-var-social-euro-outline: "\f4e0";
+$ionicon-var-social-facebook: "\f231";
+$ionicon-var-social-facebook-outline: "\f230";
+$ionicon-var-social-foursquare: "\f34d";
+$ionicon-var-social-foursquare-outline: "\f34c";
+$ionicon-var-social-freebsd-devil: "\f2c4";
+$ionicon-var-social-github: "\f233";
+$ionicon-var-social-github-outline: "\f232";
+$ionicon-var-social-google: "\f34f";
+$ionicon-var-social-google-outline: "\f34e";
+$ionicon-var-social-googleplus: "\f235";
+$ionicon-var-social-googleplus-outline: "\f234";
+$ionicon-var-social-hackernews: "\f237";
+$ionicon-var-social-hackernews-outline: "\f236";
+$ionicon-var-social-html5: "\f4e3";
+$ionicon-var-social-html5-outline: "\f4e2";
+$ionicon-var-social-instagram: "\f351";
+$ionicon-var-social-instagram-outline: "\f350";
+$ionicon-var-social-javascript: "\f4e5";
+$ionicon-var-social-javascript-outline: "\f4e4";
+$ionicon-var-social-linkedin: "\f239";
+$ionicon-var-social-linkedin-outline: "\f238";
+$ionicon-var-social-markdown: "\f4e6";
+$ionicon-var-social-nodejs: "\f4e7";
+$ionicon-var-social-octocat: "\f4e8";
+$ionicon-var-social-pinterest: "\f2b1";
+$ionicon-var-social-pinterest-outline: "\f2b0";
+$ionicon-var-social-python: "\f4e9";
+$ionicon-var-social-reddit: "\f23b";
+$ionicon-var-social-reddit-outline: "\f23a";
+$ionicon-var-social-rss: "\f23d";
+$ionicon-var-social-rss-outline: "\f23c";
+$ionicon-var-social-sass: "\f4ea";
+$ionicon-var-social-skype: "\f23f";
+$ionicon-var-social-skype-outline: "\f23e";
+$ionicon-var-social-snapchat: "\f4ec";
+$ionicon-var-social-snapchat-outline: "\f4eb";
+$ionicon-var-social-tumblr: "\f241";
+$ionicon-var-social-tumblr-outline: "\f240";
+$ionicon-var-social-tux: "\f2c5";
+$ionicon-var-social-twitch: "\f4ee";
+$ionicon-var-social-twitch-outline: "\f4ed";
+$ionicon-var-social-twitter: "\f243";
+$ionicon-var-social-twitter-outline: "\f242";
+$ionicon-var-social-usd: "\f353";
+$ionicon-var-social-usd-outline: "\f352";
+$ionicon-var-social-vimeo: "\f245";
+$ionicon-var-social-vimeo-outline: "\f244";
+$ionicon-var-social-whatsapp: "\f4f0";
+$ionicon-var-social-whatsapp-outline: "\f4ef";
+$ionicon-var-social-windows: "\f247";
+$ionicon-var-social-windows-outline: "\f246";
+$ionicon-var-social-wordpress: "\f249";
+$ionicon-var-social-wordpress-outline: "\f248";
+$ionicon-var-social-yahoo: "\f24b";
+$ionicon-var-social-yahoo-outline: "\f24a";
+$ionicon-var-social-yen: "\f4f2";
+$ionicon-var-social-yen-outline: "\f4f1";
+$ionicon-var-social-youtube: "\f24d";
+$ionicon-var-social-youtube-outline: "\f24c";
+$ionicon-var-soup-can: "\f4f4";
+$ionicon-var-soup-can-outline: "\f4f3";
+$ionicon-var-speakerphone: "\f2b2";
+$ionicon-var-speedometer: "\f2b3";
+$ionicon-var-spoon: "\f2b4";
+$ionicon-var-star: "\f24e";
+$ionicon-var-stats-bars: "\f2b5";
+$ionicon-var-steam: "\f30b";
+$ionicon-var-stop: "\f24f";
+$ionicon-var-thermometer: "\f2b6";
+$ionicon-var-thumbsdown: "\f250";
+$ionicon-var-thumbsup: "\f251";
+$ionicon-var-toggle: "\f355";
+$ionicon-var-toggle-filled: "\f354";
+$ionicon-var-transgender: "\f4f5";
+$ionicon-var-trash-a: "\f252";
+$ionicon-var-trash-b: "\f253";
+$ionicon-var-trophy: "\f356";
+$ionicon-var-tshirt: "\f4f7";
+$ionicon-var-tshirt-outline: "\f4f6";
+$ionicon-var-umbrella: "\f2b7";
+$ionicon-var-university: "\f357";
+$ionicon-var-unlocked: "\f254";
+$ionicon-var-upload: "\f255";
+$ionicon-var-usb: "\f2b8";
+$ionicon-var-videocamera: "\f256";
+$ionicon-var-volume-high: "\f257";
+$ionicon-var-volume-low: "\f258";
+$ionicon-var-volume-medium: "\f259";
+$ionicon-var-volume-mute: "\f25a";
+$ionicon-var-wand: "\f358";
+$ionicon-var-waterdrop: "\f25b";
+$ionicon-var-wifi: "\f25c";
+$ionicon-var-wineglass: "\f2b9";
+$ionicon-var-woman: "\f25d";
+$ionicon-var-wrench: "\f2ba";
+$ionicon-var-xbox: "\f30c";

+ 15 - 0
frontend/css/fonts/ionicons-2.0.1/scss/ionicons.scss

@@ -0,0 +1,15 @@
+@import "ionicons-variables";
+/*!
+  Ionicons, v#{$ionicons-version}
+  Created by Ben Sperry for the Ionic Framework, http://ionicons.com/
+  https://twitter.com/benjsperry  https://twitter.com/ionicframework
+  MIT License: https://github.com/driftyco/ionicons
+
+  Android-style icons originally built by Google’s
+  Material Design Icons: https://github.com/google/material-design-icons
+  used under CC BY http://creativecommons.org/licenses/by/4.0/
+  Modified icons to fit ionicon’s grid from original.
+*/
+
+@import "ionicons-font";
+@import "ionicons-icons";

+ 11 - 0
frontend/css/fonts/ionicons-2.0.1/src/alert-circled.svg

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
+<g>
+	<path d="M476.7,422.2L270.1,72.7c-2.9-5-8.3-8.7-14.1-8.7c-5.9,0-11.3,3.7-14.1,8.7L35.3,422.2c-2.8,5-4.8,13-1.9,17.9
+		c2.9,4.9,8.2,7.9,14,7.9h417.1c5.8,0,11.1-3,14-7.9C481.5,435.2,479.5,427.1,476.7,422.2z M288,400h-64v-48h64V400z M288,320h-64
+		V176h64V320z"/>
+</g>
+</svg>

+ 9 - 0
frontend/css/fonts/ionicons-2.0.1/src/alert.svg

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
+<g>
+	<path d="M320,480H192v-96h128V480z M304,320h-96L192,32h128L304,320z"/>
+</g>
+</svg>

+ 12 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-add-circle.svg

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g>
+	<g>
+		<path d="M256,48C141.125,48,48,141.125,48,256s93.125,208,208,208s208-93.125,208-208S370.875,48,256,48z M363,277h-86v86h-42v-86
+			h-86v-42h86v-86h42v86h86V277z"/>
+	</g>
+</g>
+</svg>

+ 11 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-add.svg

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_7_">
+	<g>
+		<path d="M416,277.333H277.333V416h-42.666V277.333H96v-42.666h138.667V96h42.666v138.667H416V277.333z"/>
+	</g>
+</g>
+</svg>

+ 15 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-alarm-clock.svg

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_2_">
+	<g>
+		<path d="M470,124.837l-98.443-81.78l-27.814,32.931l98.442,81.769L470,124.837z M167.192,74.919L139.366,42L42,124.837
+			l27.814,32.919L167.192,74.919z M266.701,172.628h-32.101v127.446l101.649,60.539l16.051-26.553l-85.6-49.917V172.628z
+			 M256,87.665c-107,0-192.601,86.021-192.601,191.166C63.399,383.98,149,470,256,470c105.936,0,192.601-86.02,192.601-191.169
+			C448.601,173.687,361.936,87.665,256,87.665z M256,427.52c-82.393,0-149.8-66.906-149.8-148.688
+			c0-81.777,67.407-148.684,149.8-148.684c82.394,0,149.8,66.906,149.8,148.684C405.8,361.671,338.394,427.52,256,427.52z"/>
+	</g>
+</g>
+</svg>

+ 12 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-alert.svg

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_30_">
+	<g>
+		<path d="M256,48C141.6,48,48,141.601,48,256s93.6,208,208,208c114.4,0,208-93.601,208-208S370.4,48,256,48z M280,360h-48v-40h48
+			V360z M280,272h-48V144h48V272z"/>
+	</g>
+</g>
+</svg>

+ 12 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-apps.svg

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon">
+	<g>
+		<path d="M96,176h80V96H96V176z M216,416h80v-80h-80V416z M96,416h80v-80H96V416z M96,296h80v-80H96V296z M216,296h80v-80h-80V296z
+			 M336,96v80h80V96H336z M216,176h80V96h-80V176z M336,296h80v-80h-80V296z M336,416h80v-80h-80V416z"/>
+	</g>
+</g>
+</svg>

+ 12 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-archive.svg

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g>
+	<path d="M453.594,100.001l-32.353-39.299C415.469,52.627,405.083,48,394.664,48H117.335c-10.416,0-20.801,4.627-26.576,12.702
+		l-32.351,39.299C51.468,106.923,48,117.335,48,128.886v288.89C48,443.2,68.8,464,94.225,464h323.553
+		C443.202,464,464,443.2,464,417.775v-288.89C464,117.335,460.537,106.923,453.594,100.001z M256,383.109L128.89,256h80.89v-46.224
+		h92.443V256h80.89L256,383.109z M96.534,94.221l18.486-23.111h277.331l21.965,23.111H96.534z"/>
+</g>
+</svg>

+ 11 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-arrow-back.svg

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_8_">
+	<g>
+		<path d="M427,234.625H167.296l119.702-119.702L256,85L85,256l171,171l29.922-29.924L167.296,277.375H427V234.625z"/>
+	</g>
+</g>
+</svg>

+ 11 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-arrow-down.svg

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_8_">
+	<g>
+		<path d="M277.375,85v259.704l119.702-119.702L427,256L256,427L85,256l29.924-29.922l119.701,118.626V85H277.375z"/>
+	</g>
+</g>
+</svg>

+ 10 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-arrow-dropdown-circle.svg

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g>
+	<path d="M256,48C141.125,48,48,141.125,48,256s93.125,208,208,208s208-93.125,208-208S370.875,48,256,48z M256,320l-96-96h192
+		L256,320z"/>
+</g>
+</svg>

+ 9 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-arrow-dropdown.svg

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g>
+	<polygon points="128,192 256,320 384,192 	"/>
+</g>
+</svg>

+ 10 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-arrow-dropleft-circle.svg

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g>
+	<path d="M464,256c0-114.875-93.125-208-208-208S48,141.125,48,256s93.125,208,208,208S464,370.875,464,256z M192,256l96-96v192
+		L192,256z"/>
+</g>
+</svg>

+ 9 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-arrow-dropleft.svg

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g>
+	<polygon points="320,128 192,256 320,384 	"/>
+</g>
+</svg>

+ 10 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-arrow-dropright-circle.svg

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g>
+	<path d="M256,464c114.875,0,208-93.125,208-208S370.875,48,256,48S48,141.125,48,256S141.125,464,256,464z M224,352V160l96,96
+		L224,352z"/>
+</g>
+</svg>

+ 9 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-arrow-dropright.svg

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g>
+	<polygon points="192,128 320,256 192,384 	"/>
+</g>
+</svg>

+ 10 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-arrow-dropup-circle.svg

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g>
+	<path d="M464,256c0-114.875-93.125-208-208-208S48,141.125,48,256s93.125,208,208,208S464,370.875,464,256z M352,288H160l96-96
+		L352,288z"/>
+</g>
+</svg>

+ 9 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-arrow-dropup.svg

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g>
+	<polygon points="128,320 256,192 384,320 	"/>
+</g>
+</svg>

+ 11 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-arrow-forward.svg

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_8_">
+	<g>
+		<path d="M85,277.375h259.704L225.002,397.077L256,427l171-171L256,85l-29.922,29.924l118.626,119.701H85V277.375z"/>
+	</g>
+</g>
+</svg>

+ 11 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-arrow-up.svg

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_8_">
+	<g>
+		<path d="M277.375,427V167.296l119.702,119.702L427,256L256,85L85,256l29.924,29.922l119.701-118.626V427H277.375z"/>
+	</g>
+</g>
+</svg>

+ 15 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-attach.svg

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_3_">
+	<g>
+		<path d="M341.334,128v234.666C341.334,409.604,302.938,448,256,448c-46.937,0-85.333-38.396-85.333-85.334V117.334
+			C170.667,87.469,194.135,64,224,64c29.864,0,53.333,23.469,53.333,53.334v245.333c0,11.729-9.605,21.333-21.334,21.333
+			c-11.729,0-21.333-9.604-21.333-21.333V160h-32v202.667C202.667,392.531,226.135,416,256,416
+			c29.865,0,53.334-23.469,53.334-53.333V117.334C309.334,70.401,270.938,32,224,32c-46.938,0-85.334,38.401-85.334,85.334v245.332
+			C138.667,427.729,190.938,480,256,480c65.062,0,117.334-52.271,117.334-117.334V128H341.334z"/>
+	</g>
+</g>
+</svg>

+ 12 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-bar.svg

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_37_">
+	<g>
+		<path d="M234.667,277.333V408H128v40h256v-40H277.333V277.333L448,106.667V64H64v42.667L234.667,277.333z M160,149.333
+			l-42.667-42.666h277.334L352,149.333H160z"/>
+	</g>
+</g>
+</svg>

+ 19 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-bicycle.svg

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_13_">
+	<g>
+		<path d="M330.666,131.202c18.668,0,33.598-14.935,33.598-33.601S349.334,64,330.666,64C312,64,297.07,78.935,297.07,97.601
+			S312,131.202,330.666,131.202z M386.666,261.334c-51.332,0-93.332,42-93.332,93.333s42,93.333,93.332,93.333
+			C438,448,480,406,480,354.667S438,261.334,386.666,261.334z M386.666,420c-36.402,0-65.332-28.93-65.332-65.333
+			s28.93-65.333,65.332-65.333c36.404,0,65.334,28.93,65.334,65.333S423.07,420,386.666,420z M305.597,224H384v-32h-58.845
+			l-34.62-60.134c-5.605-9.333-15.869-15.864-27.07-15.864c-8.399,0-16.798,3.732-22.399,9.333l-71.732,69.065
+			c-5.601,5.601-9.333,14-9.333,22.399c0,12.131,9.202,21.465,18.535,27.065L240,282.134V368h32V256l-39.333-32l42.929-44.533
+			L305.597,224z M125.333,261.334C74,261.334,32,303.334,32,354.667S74,448,125.333,448c51.333,0,93.333-42,93.333-93.333
+			S176.667,261.334,125.333,261.334z M125.333,420C88.934,420,60,391.07,60,354.667s28.934-65.333,65.333-65.333
+			c36.399,0,65.333,28.93,65.333,65.333S161.732,420,125.333,420z"/>
+	</g>
+</g>
+</svg>

+ 16 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-boat.svg

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g>
+	<path d="M84.255,413h1.063c34.123,0,63.977-19.021,85.305-42.494c21.325,23.473,51.18,42.762,85.304,42.762
+		s63.979-19.334,85.305-42.806C362.559,393.934,392.412,413,426.535,413h1.062l51.253-138.78c2.126-5.329,1.063-11.641-1.07-16.976
+		c-2.136-5.333-7.237-8.487-12.567-10.623L427,234.133v-98.15C427,112.51,407.344,93,383.884,93h-63.979l-15.993-53h-95.969
+		l-15.995,53h-63.979C104.511,93,85,112.51,85,135.982v98.15l-38.074,12.533c-5.33,2.136-10.582,5.334-12.718,10.667
+		c-2.135,5.335-3.158,10.49-1.031,16.887L84.255,413z M128,136h256v84.261l-128-41.605l-128,41.605V136z"/>
+	<path d="M341.231,408.007c-52.253,36.267-118.356,36.258-170.608-0.009c0,0-57.638,64.002-106.632,64.002h21.327
+		c29.854,0,58.646-11.726,85.305-25.594c53.315,27.734,117.293,27.728,170.608-0.007C367.89,460.268,396.681,472,426.535,472h21.328
+		C400.212,472,341.231,408.007,341.231,408.007z"/>
+</g>
+</svg>

+ 7 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-bookmark.svg

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<path d="M360,64H152c-22.002,0-40,17.998-40,40v344l144-64l144,64V104C400,81.998,382.002,64,360,64z"/>
+</svg>

+ 18 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-bulb.svg

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_26_">
+	<g>
+		<path d="M256,170.136c25.499,0,49.567,10.025,67.771,28.229C341.975,216.568,352,240.637,352,266.136
+			c0,17.621-4.422,34.031-13.144,48.773c-8.339,14.098-20.437,26.036-34.985,34.526L288,358.697v18.376V448h-64v-70.927v-18.376
+			l-15.871-9.262C178.442,332.111,160,300.192,160,266.136c0-25.499,10.025-49.567,28.229-67.771
+			C206.433,180.161,230.501,170.136,256,170.136 M277.333,32c-6.396,0-42.666,0-42.666,0v64h42.666V32L277.333,32z M406.396,85.864
+			L368,124.271l29.864,29.865l38.406-38.396L406.396,85.864L406.396,85.864z M105.604,85.864l-29.875,29.875l38.406,38.396
+			L144,124.271L105.604,85.864L105.604,85.864z M256,138.136c-70.396,0-128,57.604-128,128c0,46.938,25.604,88.531,64,110.938V480
+			h128V377.073c38.396-22.406,64-62.938,64-110.938C384,195.739,326.396,138.136,256,138.136L256,138.136z M480,244.802h-64v42.667
+			h64V244.802L480,244.802z M96,244.802H32v42.667h64V244.802L96,244.802z"/>
+	</g>
+</g>
+</svg>

+ 18 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-bus.svg

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_14_">
+	<g>
+		<g>
+			<path d="M80,352c0,19.198,13.864,24.531,26.667,36.271v38.396c0,11.729,9.599,21.334,21.333,21.334h21.333
+				c11.734,0,21.334-9.604,21.334-21.334v-21.333h170.666v21.333c0,11.729,9.604,21.334,21.334,21.334H384
+				c11.729,0,21.333-9.604,21.333-21.334v-38.396C418.136,376.531,432,370.136,432,352V148.334C432,73.667,349.864,64,256,64
+				S80,73.667,80,148.334V352z M160,367.989c-18.136,0-32-13.864-32-32c0-18.135,13.864-32,32-32s32,13.865,32,32
+				C192,354.125,178.136,367.989,160,367.989z M352,367.989c-18.136,0-32-13.864-32-32c0-18.135,13.864-32,32-32s32,13.865,32,32
+				C384,354.125,370.136,367.989,352,367.989z M384,245.333H128V138.667h256V245.333z"/>
+		</g>
+	</g>
+</g>
+</svg>

+ 11 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-calendar.svg

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g>
+	<path d="M368.005,272h-96v96h96V272z M336.005,64v32h-160V64h-48v32h-24.01c-22.002,0-40,17.998-40,40v272
+		c0,22.002,17.998,40,40,40h304.01c22.002,0,40-17.998,40-40V136c0-22.002-17.998-40-40-40h-24V64H336.005z M408.005,408h-304.01
+		V196h304.01V408z"/>
+</g>
+</svg>

+ 10 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-call.svg

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<path d="M426.666,330.667c-26.666,0-52.271-4.271-75.729-11.729c-7.469-2.136-16-1.073-21.332,5.333l-46.939,46.928
+	c-60.802-30.928-109.864-80-140.802-140.803l46.939-46.927c5.332-5.333,7.462-13.864,5.332-21.333
+	c-8.537-24.531-12.802-50.136-12.802-76.803C181.333,73.604,171.734,64,160,64H85.333C73.599,64,64,73.604,64,85.333
+	C64,285.864,226.136,448,426.666,448c11.73,0,21.334-9.604,21.334-21.333V352C448,340.271,438.396,330.667,426.666,330.667z"/>
+</svg>

+ 12 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-camera.svg

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g>
+	<circle cx="256" cy="280" r="63"/>
+	<path d="M440,96h-88l-32-32H192l-32,32H72c-22.092,0-40,17.908-40,40v272c0,22.092,17.908,40,40,40h368c22.092,0,40-17.908,40-40
+		V136C480,113.908,462.092,96,440,96z M256,392c-61.855,0-112-50.145-112-112s50.145-112,112-112s112,50.145,112,112
+		S317.855,392,256,392z"/>
+</g>
+</svg>

+ 11 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-cancel.svg

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g>
+	<path d="M256,48C140.559,48,48,140.559,48,256c0,115.436,92.559,208,208,208c115.435,0,208-92.564,208-208
+		C464,140.559,371.436,48,256,48z M360.002,330.881l-29.12,29.117L256,285.117l-74.881,74.881l-29.121-29.117L226.881,256
+		l-74.883-74.881l29.121-29.116L256,226.881l74.881-74.878l29.12,29.116L285.119,256L360.002,330.881z"/>
+</g>
+</svg>

+ 15 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-car.svg

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_15_">
+	<g>
+		<path d="M403.208,117.333c-4.271-12.802-16-21.333-29.875-21.333H138.667c-13.875,0-25.604,8.531-29.875,21.333L64,234.667v160
+			C64,406.396,73.604,416,85.333,416h21.334c11.729,0,21.333-9.604,21.333-21.333V384h256v10.667
+			c0,11.729,9.604,21.333,21.333,21.333h21.334c11.729,0,21.333-9.604,21.333-21.333v-160L403.208,117.333z M138.667,320
+			c-18.125,0-32-13.865-32-32s13.875-32,32-32s32,13.866,32,32S156.792,320,138.667,320z M373.333,320c-18.125,0-32-13.865-32-32
+			s13.875-32,32-32s32,13.866,32,32S391.458,320,373.333,320z M106.667,213.333l32-85.333h234.666l32,85.333H106.667z"/>
+	</g>
+</g>
+</svg>

+ 14 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-cart.svg

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g>
+	<path fill="#010101" d="M169.6,377.6c-22.882,0-41.6,18.718-41.6,41.601c0,22.882,18.718,41.6,41.6,41.6s41.601-18.718,41.601-41.6
+		C211.2,396.317,192.481,377.6,169.6,377.6z M48,51.2v41.6h41.6l74.883,151.682l-31.308,50.954c-3.118,5.2-5.2,12.482-5.2,19.765
+		c0,27.85,19.025,41.6,44.825,41.6H416v-40H177.893c-3.118,0-5.2-2.082-5.2-5.2c0-1.036,2.207-5.2,2.207-5.2l20.782-32.8h154.954
+		c15.601,0,29.128-8.317,36.4-21.836l74.882-128.8c1.237-2.461,2.082-6.246,2.082-10.399c0-11.446-9.364-19.765-20.8-19.765H135.364
+		L115.6,51.2H48z M374.399,377.6c-22.882,0-41.6,18.718-41.6,41.601c0,22.882,18.718,41.6,41.6,41.6S416,442.082,416,419.2
+		C416,396.317,397.281,377.6,374.399,377.6z"/>
+</g>
+</svg>

+ 12 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-chat.svg

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g>
+	<path d="M391.553,64H57.607C53.131,64,48,67.745,48,72.159v214.217c0,4.413,5.131,8.624,9.607,8.624H115v88.894L205.128,295
+		h186.425c4.477,0,7.447-4.211,7.447-8.624V72.159C399,67.745,396.029,64,391.553,64z"/>
+	<path d="M456.396,127H424v166.57c0,15.987-6.915,26.43-25.152,26.43H218.096l-38.905,39h129.688L399,448v-89h57.396
+		c4.478,0,7.604-4.262,7.604-8.682V136.103C464,131.689,460.874,127,456.396,127z"/>
+</g>
+</svg>

+ 12 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-checkbox-blank.svg

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_23_">
+	<g>
+		<path d="M405.333,64H106.667C83.198,64,64,83.198,64,106.667v298.666C64,428.802,83.198,448,106.667,448h298.666
+			C428.802,448,448,428.802,448,405.333V106.667C448,83.198,428.802,64,405.333,64z"/>
+	</g>
+</g>
+</svg>

+ 13 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-checkbox-outline-blank.svg

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_25_">
+	<g>
+		<path d="M405.333,106.667v298.666H106.667V106.667H405.333 M405.333,64H106.667C83.198,64,64,83.198,64,106.667v298.666
+			C64,428.802,83.198,448,106.667,448h298.666C428.802,448,448,428.802,448,405.333V106.667C448,83.198,428.802,64,405.333,64
+			L405.333,64z"/>
+	</g>
+</g>
+</svg>

+ 13 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-checkbox-outline.svg

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_24_">
+	<g>
+		<path d="M168.531,215.469l-29.864,29.864l96,96L448,128l-29.864-29.864L234.667,280.531L168.531,215.469z M405.333,405.333
+			H106.667V106.667H320V64H106.667C83.198,64,64,83.198,64,106.667v298.666C64,428.802,83.198,448,106.667,448h298.666
+			C428.802,448,448,428.802,448,405.333V234.667h-42.667V405.333z"/>
+	</g>
+</g>
+</svg>

+ 13 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-checkbox.svg

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_22_">
+	<g>
+		<path d="M405.333,64H106.667C83.198,64,64,83.198,64,106.667v298.666C64,428.802,83.198,448,106.667,448h298.666
+			C428.802,448,448,428.802,448,405.333V106.667C448,83.198,428.802,64,405.333,64z M213.333,362.667L106.667,256l29.864-29.864
+			l76.802,76.802l162.136-162.136l29.864,29.865L213.333,362.667z"/>
+	</g>
+</g>
+</svg>

+ 9 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-checkmark-circle.svg

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<path d="M170.718,216.482L141.6,245.6L235.2,339.2l208-208l-29.118-29.118L235.2,279.918L170.718,216.482z M422.4,256
+	c0,91.518-74.883,166.4-166.4,166.4S89.6,347.518,89.6,256S164.482,89.6,256,89.6c15.6,0,31.2,2.082,45.764,6.241L334,63.6
+	C310.082,53.2,284.082,48,256,48C141.6,48,48,141.6,48,256s93.6,208,208,208s208-93.6,208-208H422.4z"/>
+</svg>

+ 10 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-clipboard.svg

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<path d="M405.333,80h-87.35C310.879,52.396,285.821,32,256,32s-54.879,20.396-61.983,48h-87.35C83.198,80,64,99.198,64,122.667
+	v314.665C64,460.801,83.198,480,106.667,480h298.666C428.802,480,448,460.801,448,437.332V122.667C448,99.198,428.802,80,405.333,80
+	z M256,80c11.729,0,21.333,9.599,21.333,21.333s-9.604,21.334-21.333,21.334s-21.333-9.6-21.333-21.334S244.271,80,256,80z M408,440
+	H104V120h40v72h224v-72h40V440z"/>
+</svg>

+ 12 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-close.svg

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_5_">
+	<g>
+		<polygon points="405,136.798 375.202,107 256,226.202 136.798,107 107,136.798 226.202,256 107,375.202 136.798,405 256,285.798 
+			375.202,405 405,375.202 285.798,256 		"/>
+	</g>
+</g>
+</svg>

+ 16 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-cloud-circle.svg

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_32_">
+	<g>
+		<g>
+			<path d="M256,48C141.6,48,48,141.6,48,256s93.6,208,208,208c114.4,0,208-93.6,208-208S370.4,48,256,48z M349.6,339.2
+				c0,0-175.759,0-176.799,0c-34.318,0-62.4-28.082-62.4-62.399c0-34.319,28.082-62.4,62.4-62.4c1.041,0,2.082,0,3.117,0
+				c9.364-36.4,41.601-62.399,80.083-62.399c45.764,0,83.199,37.435,83.199,83.198h10.4c29.118,0,52,22.882,52,52.001
+				C401.6,316.318,378.718,339.2,349.6,339.2z"/>
+		</g>
+	</g>
+</g>
+</svg>

+ 12 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-cloud-done.svg

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g>
+	<path d="M403.002,217.001C388.998,148.002,328.998,96,256,96c-57.998,0-107.998,32.998-132.998,81.001
+		C63.002,183.002,16,233.998,16,296c0,65.996,53.999,120,120,120h260c55,0,100-45,100-100
+		C496,263.002,455.004,219.999,403.002,217.001z M213.333,362.667L138.667,288l29.864-29.864l44.802,44.802L324.271,192
+		l29.865,29.864L213.333,362.667z"/>
+</g>
+</svg>

+ 16 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-cloud-outline.svg

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_9_">
+	<g>
+		<g>
+			<path d="M403.001,217.001C388.997,148.002,328.998,96,256,96c-57.998,0-107.999,32.998-132.997,81
+				C63.002,183.002,16,233.998,16,296c0,65.996,54.004,120,120,120h260c55,0,100-45,100-100.001
+				C496,263.002,455.003,220,403.001,217.001z M396,376H136c-44.004,0-80-35.996-80-80c0-44,35.996-80,80-80h14.004
+				c12.998-46,55-80,105.996-80c60.996,0,110,49,110,110v10h30c32.998,0,60,27.003,60,60C456,348.998,428.998,376,396,376z"/>
+		</g>
+	</g>
+</g>
+</svg>

+ 9 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-cloud.svg

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<path d="M403.002,217.001C388.998,148.002,328.998,96,256,96c-57.998,0-107.998,32.998-132.998,81.001
+	C63.002,183.002,16,233.998,16,296c0,65.996,53.999,120,120,120h260c55,0,100-45,100-100
+	C496,263.002,455.004,219.999,403.002,217.001z"/>
+</svg>

+ 17 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-color-palette.svg

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_12_">
+	<g>
+		<path d="M256,64C150.401,64,64,150.401,64,256c0,105.604,86.401,192,192,192c18.136,0,32-13.864,32-32
+			c0-8.531-3.198-16-8.531-21.333c-5.333-5.334-8.531-12.803-8.531-21.334c0-18.135,13.864-32,32-32h38.396
+			c58.667,0,106.667-48,106.667-106.666C448,140.802,361.604,64,256,64z M138.667,256c-18.136,0-32-13.864-32-32s13.864-32,32-32
+			c18.135,0,32,13.864,32,32S156.802,256,138.667,256z M202.667,170.667c-18.136,0-32-13.865-32-32c0-18.136,13.864-32,32-32
+			c18.135,0,32,13.864,32,32C234.667,156.802,220.802,170.667,202.667,170.667z M309.333,170.667c-18.135,0-32-13.865-32-32
+			c0-18.136,13.865-32,32-32c18.136,0,32,13.864,32,32C341.333,156.802,327.469,170.667,309.333,170.667z M373.333,256
+			c-18.135,0-32-13.864-32-32s13.865-32,32-32c18.136,0,32,13.864,32,32S391.469,256,373.333,256z"/>
+	</g>
+</g>
+</svg>

+ 9 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-compass.svg

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<path d="M256,231.358c-13.442,0-24.643,11.2-24.643,24.642s11.2,24.643,24.643,24.643s24.643-11.2,24.643-24.643
+	S269.442,231.358,256,231.358z M256,32C132.8,32,32,132.8,32,256s100.8,224,224,224s224-100.8,224-224S379.2,32,256,32z
+	 M305.284,305.284L121.6,390.4l85.116-183.679L390.4,121.6L305.284,305.284z"/>
+</svg>

+ 15 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-contact.svg

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g>
+	<path d="M331.08,338.205c-22.156,12.594-47.777,19.783-75.084,19.783c-27.302,0-52.919-7.182-75.073-19.771
+		C122.153,356.152,77.262,396,64,448h384C434.745,396,389.854,356.131,331.08,338.205z"/>
+	<g>
+		<path d="M255.996,64c-72.871,0-131.945,59.127-131.945,132.013c0,72.887,59.074,131.972,131.945,131.972
+			s131.945-59.085,131.945-131.972C387.941,123.127,328.867,64,255.996,64z M255.996,294.986c-41.958,0-77.813-25.986-92.209-62.986
+			h184.418C333.809,269,297.953,294.986,255.996,294.986z"/>
+	</g>
+</g>
+</svg>

+ 26 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-contacts.svg

@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g>
+	<g>
+		<path d="M239.208,343.937c-17.78,10.103-38.342,15.876-60.255,15.876c-21.909,0-42.467-5.771-60.246-15.87
+			C71.544,358.331,42.643,406,32,448h293.912C315.273,406,286.375,358.317,239.208,343.937z"/>
+		<g>
+			<path d="M178.953,120.035c-58.479,0-105.886,47.394-105.886,105.858c0,58.464,47.407,105.857,105.886,105.857
+				c58.479,0,105.886-47.394,105.886-105.857C284.839,167.429,237.431,120.035,178.953,120.035z M178.953,306.523
+				c-33.671,0-62.445-22.513-73.997-50.523H252.95C241.396,284.011,212.624,306.523,178.953,306.523z"/>
+		</g>
+	</g>
+	<g>
+		<g>
+			<path d="M322.602,384H480c-10.638-42-39.537-81.691-86.703-96.072c-17.781,10.104-38.343,15.873-60.256,15.873
+				c-14.823,0-29.024-2.654-42.168-7.49c-7.445,12.47-16.927,25.592-27.974,34.906C289.245,341.354,309.146,364,322.602,384z"/>
+		</g>
+		<path d="M306.545,200h100.493c-11.554,28-40.327,50.293-73.997,50.293c-8.875,0-17.404-1.692-25.375-4.51
+			c-1.338,8.709-3.543,17.07-6.52,25.118c10.066,3.174,20.779,4.862,31.895,4.862c58.479,0,105.886-47.41,105.886-105.872
+			c0-58.465-47.407-105.866-105.886-105.866c-37.49,0-70.427,19.703-89.243,49.09C275.607,131.383,298.961,163,306.545,200z"/>
+	</g>
+</g>
+</svg>

+ 12 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-contract.svg

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_2_">
+	<g>
+		<path d="M64,371.2h76.795V448H192V320H64V371.2z M140.795,140.8H64V192h128V64h-51.205V140.8z M320,448h51.2v-76.8H448V320H320
+			V448z M371.2,140.8V64H320v128h128v-51.2H371.2z"/>
+	</g>
+</g>
+</svg>

+ 13 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-create.svg

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_6_">
+	<g>
+		<path fill="#010101" d="M64,368v80h80l235.727-235.729l-79.999-79.998L64,368z M441.602,150.398
+			c8.531-8.531,8.531-21.334,0-29.865l-50.135-50.135c-8.531-8.531-21.334-8.531-29.865,0l-39.468,39.469l79.999,79.998
+			L441.602,150.398z"/>
+	</g>
+</g>
+</svg>

+ 10 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-delete.svg

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g>
+	<path d="M128,405.429C128,428.846,147.198,448,170.667,448h170.667C364.802,448,384,428.846,384,405.429V160H128V405.429z M416,96
+		h-80l-26.785-32H202.786L176,96H96v32h320V96z"/>
+</g>
+</svg>

+ 13 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-desktop.svg

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_28_">
+	<g>
+		<path d="M437.333,32H74.667C51.198,32,32,51.197,32,74.666v282.667C32,380.802,51.198,400,74.667,400h138.666l-42.666,48v32
+			h170.666v-32l-42.666-48h138.666C460.802,400,480,380.802,480,357.333V74.666C480,51.197,460.802,32,437.333,32z M437.333,320
+			H74.667V74.666h362.666V320z"/>
+	</g>
+</g>
+</svg>

+ 10 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-document.svg

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g>
+	<path d="M288,48H136c-22.092,0-40,17.908-40,40v336c0,22.092,17.908,40,40,40h240c22.092,0,40-17.908,40-40V176L288,48z M272,192
+		V80l112,112H272z"/>
+</g>
+</svg>

+ 13 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-done-all.svg

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_4_">
+	<g>
+		<path d="M387.581,139.712L356.755,109L216.913,248.319l30.831,30.719L387.581,139.712z M481.172,109L247.744,340.469
+			l-91.39-91.051l-30.827,30.715L247.744,403L512,139.712L481.172,109z M0,280.133L123.321,403l30.829-30.713L31.934,249.418
+			L0,280.133z"/>
+	</g>
+</g>
+</svg>

+ 13 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-done.svg

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_1_">
+	<g>
+		<g>
+			<polygon points="186.301,339.893 96,249.461 64,279.968 186.301,402 448,140.506 416,110 			"/>
+		</g>
+	</g>
+</g>
+</svg>

+ 9 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-download.svg

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<path d="M403.002,217.001C388.998,148.002,328.998,96,256,96c-57.998,0-107.998,32.998-132.998,81.001
+	C63.002,183.002,16,233.998,16,296c0,65.996,53.999,120,120,120h260c55,0,100-45,100-100
+	C496,263.002,455.004,219.999,403.002,217.001z M224,268v-76h64v76h68L256,368L156,268H224z"/>
+</svg>

+ 15 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-drafts.svg

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_18_">
+	<g>
+		<g>
+			<path d="M480,201.667c0-14.933-7.469-28.803-20.271-36.266L256,64L52.271,165.401C40.531,172.864,32,186.734,32,201.667v203.666
+				C32,428.802,51.197,448,74.666,448h362.668C460.803,448,480,428.802,480,405.333V201.667z M256,304L84.631,192L256,106.667
+				L427.369,192L256,304z"/>
+		</g>
+	</g>
+</g>
+</svg>

+ 9 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-exit.svg

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<path d="M215.469,332.802l29.863,29.864L352,256L245.332,149.333l-29.863,29.865l55.469,55.469H64v42.666h205.864L215.469,332.802z
+	 M405.334,64H106.666C83.198,64,64,83.198,64,106.666V192h42.666v-85.333h298.668v298.668H106.666V320H64v85.334
+	C64,428.802,83.198,448,106.666,448h298.668C428.802,448,448,428.802,448,405.334V106.666C448,83.198,428.802,64,405.334,64z"/>
+</svg>

+ 12 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-expand.svg

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g>
+	<polygon points="396.795,396.8 320,396.8 320,448 448,448 448,320 396.795,320 	"/>
+	<polygon points="396.8,115.205 396.8,192 448,192 448,64 320,64 320,115.205 	"/>
+	<polygon points="115.205,115.2 192,115.2 192,64 64,64 64,192 115.205,192 	"/>
+	<polygon points="115.2,396.795 115.2,320 64,320 64,448 192,448 192,396.795 	"/>
+</g>
+</svg>

+ 13 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-favorite-outline.svg

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<path d="M349.6,64c-36.4,0-70.718,16.742-93.6,43.947C233.117,80.742,198.8,64,162.4,64C97.918,64,48,114.221,48,179.095
+	c0,79.516,70.718,143.348,177.836,241.694L256,448l30.164-27.211C393.281,322.442,464,258.61,464,179.095
+	C464,114.221,414.082,64,349.6,64z M268.836,393.257l-4.219,3.873L256,404.903l-8.616-7.772l-4.214-3.869
+	c-50.418-46.282-93.961-86.254-122.746-121.994C92.467,236.555,80,208.128,80,179.095c0-22.865,8.422-43.931,23.715-59.316
+	C118.957,104.445,139.798,96,162.4,96c26.134,0,51.97,12.167,69.11,32.545L256,157.661l24.489-29.116
+	C297.63,108.167,323.465,96,349.6,96c22.603,0,43.443,8.445,58.686,23.778C423.578,135.164,432,156.229,432,179.095
+	c0,29.033-12.467,57.459-40.422,92.171C362.794,307.006,319.253,346.975,268.836,393.257z"/>
+</svg>

+ 11 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-favorite.svg

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g>
+	<path d="M256,448l-30.164-27.211C118.718,322.442,48,258.61,48,179.095C48,114.221,97.918,64,162.4,64
+		c36.399,0,70.717,16.742,93.6,43.947C278.882,80.742,313.199,64,349.6,64C414.082,64,464,114.221,464,179.095
+		c0,79.516-70.719,143.348-177.836,241.694L256,448z"/>
+</g>
+</svg>

+ 9 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-film.svg

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<path fill="#010101" d="M376,64v42.667h-40V64H176v42.667h-40V64H96v384h40v-42.666h40V448h160v-42.666h40V448h40V64H376z
+	 M176,362.667h-40V320h40V362.667z M176,277.334h-40v-42.667h40V277.334z M176,192h-40v-42.666h40V192z M376,362.667h-40V320h40
+	V362.667z M376,277.334h-40v-42.667h40V277.334z M376,192h-40v-42.666h40V192z"/>
+</svg>

+ 10 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-folder-open.svg

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<path d="M437.334,144H256.006l-42.668-48H74.666C51.197,96,32,115.198,32,138.667v234.666C32,396.802,51.197,416,74.666,416h362.668
+	C460.803,416,480,396.802,480,373.333V186.667C480,163.198,460.803,144,437.334,144z M448,373.333
+	c0,5.782-4.885,10.667-10.666,10.667H74.666C68.884,384,64,379.115,64,373.333V176h373.334c5.781,0,10.666,4.885,10.666,10.667
+	V373.333z"/>
+</svg>

+ 0 - 0
frontend/css/fonts/ionicons-2.0.1/src/android-folder.svg


Някои файлове не бяха показани, защото твърде много файлове са промени