Slack integration

closes #6584
- Frontend Changes:
	- adds 'Apps' to Navigation Menu
	- adds 'Slack' as nested page to Apps
	- adds `apps.css`
	- adds `slack-integration` model and uses `slack-settings` custom transform to parse JSON file
	- adds validation for `slack` model
	- adds fixtures and `slack/test` API endpoint to Mirage
	- adds acceptance tests for `apps-test` and `slack-test`
	- adds unit tests for `slack-settings` and `slack-integration`
- Backend Changes:
	- adds API endpoint `slack/test` to send Test Notification
	- adds default-values for slack model
	- sends payload to slack:
		- text: the url of the blogpost / test message
		- icon_url: url to ghost logo
		- username: Ghost
	- adds `slack/index.js` to send webhook to slack if
		- a new post is published (if slack webhook url is saved in settings)
		- user clicks on 'Send Test Notification' in UI
	- adds `slack.init()` to `server.index.js` to add event listener
	- adds unit test for `slack/index`
This commit is contained in:
Aileen Nowak 2016-03-29 10:40:44 +02:00
parent ab2e985fda
commit e99569b6f4
33 changed files with 996 additions and 102 deletions

View File

@ -0,0 +1,14 @@
import Ember from 'ember';
const {
computed,
inject: {controller}
} = Ember;
const {alias} = computed;
export default Ember.Controller.extend({
appsController: controller('settings.apps'),
slack: alias('appsController.model.slack.firstObject')
});

View File

@ -0,0 +1,75 @@
import Ember from 'ember';
import { invoke } from 'ember-invoke-action';
const {
Controller,
computed: {empty},
inject: {service}
} = Ember;
export default Controller.extend({
ghostPaths: service(),
ajax: service(),
notifications: service(),
// will be set by route
settings: null,
isSaving: false,
savePromise: null,
isSendingTest: false,
testNotificationDisabled: empty('model.url'),
actions: {
sendTestNotification() {
let notifications = this.get('notifications');
let slackApi = this.get('ghostPaths.url').api('slack', 'test');
if (this.get('isSendingTest')) {
return;
}
this.set('isSendingTest', true);
invoke(this, 'save').then(() => {
this.get('ajax').post(slackApi).then(() => {
notifications.showAlert('Check your slack channel test message.', {type: 'info', key: 'slack-test.send.success'});
}).catch((error) => {
notifications.showAPIError(error, {key: 'slack-test:send'});
});
}).catch(() => {
// noop - error already handled in .save
}).finally(() => {
this.set('isSendingTest', false);
});
},
updateURL(value) {
this.set('model.url', value);
this.get('model.errors').clear();
},
save() {
let slack = this.get('model');
let settings = this.get('settings');
if (this.get('isSaving')) {
return;
}
return slack.validate().then(() => {
settings.get('slack').clear().pushObject(slack);
this.set('isSaving', true);
return settings.save().catch((err) => {
this.get('notifications').showErrors(err);
throw err;
}).finally(() => {
this.set('isSaving', false);
});
});
}
}
});

View File

@ -47,8 +47,8 @@
<li><a id="ember800" class="ember-view gh-nav-settings-navigation" href="/ghost/settings/navigation/"><i class="icon-compass"></i>Navigation</a></li>
<li><a id="ember801" class="ember-view gh-nav-settings-tags" href="/ghost/settings/tags/"><i class="icon-tag"></i>Tags</a></li>
<li><a id="ember802" class="ember-view gh-nav-settings-code-injection" href="/ghost/settings/code-injection/"><i class="icon-code"></i>Code Injection</a></li>
<li><a id="ember803" class="ember-view gh-nav-settings-labs" href="/ghost/settings/labs/"><i class="icon-apps"></i>Labs</a></li>
<li><a id="ember804" class="ember-view gh-nav-settings-apps active" href="/ghost/settings/apps/"><i class="icon-box"></i>Apps</a></li>
<li><a id="ember803" class="ember-view gh-nav-settings-labs" href="/ghost/settings/labs/"><i class="icon-labs"></i>Labs</a></li>
<li><a id="ember804" class="ember-view gh-nav-settings-apps active" href="/ghost/settings/apps/"><i class="icon-apps"></i>Apps</a></li>
</ul>
</section>
<footer class="gh-nav-footer">

View File

@ -47,7 +47,7 @@
<li><a id="ember800" class="ember-view gh-nav-settings-navigation" href="/ghost/settings/navigation/"><i class="icon-compass"></i>Navigation</a></li>
<li><a id="ember801" class="ember-view gh-nav-settings-tags" href="/ghost/settings/tags/"><i class="icon-tag"></i>Tags</a></li>
<li><a id="ember802" class="ember-view gh-nav-settings-code-injection" href="/ghost/settings/code-injection/"><i class="icon-code"></i>Code Injection</a></li>
<li><a id="ember803" class="ember-view gh-nav-settings-labs" href="/ghost/settings/labs/"><i class="icon-apps"></i>Labs</a></li>
<li><a id="ember803" class="ember-view gh-nav-settings-labs" href="/ghost/settings/labs/"><i class="icon-labs"></i>Labs</a></li>
<li><a id="ember804" class="ember-view gh-nav-settings-apps active" href="/ghost/settings/apps/"><i class="icon-design"></i>Themes</a></li>
</ul>
</section>

View File

@ -192,6 +192,12 @@ export function testConfig() {
};
});
/* Apps - Slack Test Notification --------------------------------------------------------- */
this.post('/slack/test', function () {
return {};
});
/* Slugs ---------------------------------------------------------------- */
this.get('/slugs/post/:slug/', function (db, request) {

View File

@ -168,6 +168,17 @@ export default [
uuid: 'f8e8cbda-d079-11e5-ab30-625662870761',
value: ''
},
{
created_at: '2016-05-05T15:04:03.115Z',
created_by: 1,
id: 17,
key: 'slack',
type: 'blog',
updated_at: '2016-05-05T18:33:09.168Z',
updated_by: 1,
uuid: 'dd4ebaa8-dedb-40ff-a663-ec64a92d4111',
value: '[{"url":""}]'
},
{
key: 'availableThemes',
value: [

View File

@ -14,6 +14,7 @@ import UserValidator from 'ghost/validators/user';
import TagSettingsValidator from 'ghost/validators/tag-settings';
import NavItemValidator from 'ghost/validators/nav-item';
import InviteUserValidator from 'ghost/validators/invite-user';
import SlackIntegrationValidator from 'ghost/validators/slack-integration';
const {Mixin, RSVP, isArray} = Ember;
const {Errors} = DS;
@ -44,7 +45,8 @@ export default Mixin.create({
user: UserValidator,
tag: TagSettingsValidator,
navItem: NavItemValidator,
inviteUser: InviteUserValidator
inviteUser: InviteUserValidator,
slackIntegration: SlackIntegrationValidator
},
// This adds the Errors object to the validation engine, and shouldn't affect

View File

@ -21,5 +21,6 @@ export default Model.extend(ValidationEngine, {
labs: attr('string'),
navigation: attr('navigation-settings'),
isPrivate: attr('boolean'),
password: attr('string')
password: attr('string'),
slack: attr('slack-settings')
});

View File

@ -0,0 +1,19 @@
import Ember from 'ember';
import ValidationEngine from 'ghost/mixins/validation-engine';
const {
computed,
isBlank
} = Ember;
export default Ember.Object.extend(ValidationEngine, {
// values entered here will act as defaults
url: '',
validationType: 'slackIntegration',
isActive: computed('url', function () {
let url = this.get('url');
return !isBlank(url);
})
});

View File

@ -55,6 +55,9 @@ Router.map(function () {
this.route('settings.labs', {path: '/settings/labs'});
this.route('settings.code-injection', {path: '/settings/code-injection'});
this.route('settings.navigation', {path: '/settings/navigation'});
this.route('settings.apps', {path: '/settings/apps'}, function () {
this.route('slack', {path: 'slack'});
});
this.route('error404', {path: '/*path'});
});

View File

@ -0,0 +1,20 @@
import AuthenticatedRoute from 'ghost/routes/authenticated';
import CurrentUserSettings from 'ghost/mixins/current-user-settings';
import styleBody from 'ghost/mixins/style-body';
export default AuthenticatedRoute.extend(styleBody, CurrentUserSettings, {
titleToken: 'Settings - Apps',
classNames: ['settings-view-apps'],
beforeModel() {
this._super(...arguments);
return this.get('session.user')
.then(this.transitionAuthor())
.then(this.transitionEditor());
},
model() {
return this.store.queryRecord('setting', {type: 'blog,theme,private'});
}
});

View File

@ -0,0 +1,19 @@
import AuthenticatedRoute from 'ghost/routes/authenticated';
import CurrentUserSettings from 'ghost/mixins/current-user-settings';
import styleBody from 'ghost/mixins/style-body';
export default AuthenticatedRoute.extend(styleBody, CurrentUserSettings, {
titleToken: 'Settings - Apps - Slack',
classNames: ['settings-view-apps-slack'],
model() {
return this.modelFor('settings.apps').get('slack.firstObject');
},
setupController(controller) {
this._super(...arguments);
controller.set('settings', this.modelFor('settings.apps'));
}
});

View File

@ -43,4 +43,5 @@
@import "layouts/about.css";
@import "layouts/tags.css";
@import "layouts/error.css";
@import "layouts/apps.css";
@import "layouts/packages.css";

View File

@ -4,6 +4,10 @@
color: #666;
}
.ember-power-select-search {
padding: 2px 0 3px 0 !important;
}
.ember-basic-dropdown--opened > .ember-power-select-trigger,
.ember-power-select-trigger[aria-expanded="true"],
.ember-power-select-search input {
@ -106,3 +110,14 @@
background: color(var(--blue) alpha(-85%));
color: var(--darkgrey);
}
/*
HACK: ember-power-select has no separate class for the loading message
Issue: https://github.com/cibernox/ember-power-select/issues/479
*/
.ember-power-select-dropdown > .ember-power-select-options > .ember-power-select-option:first-of-type,
.ember-power-select-option--no-matches-message {
padding: 7px 8px;
color: var(--midgrey);
font-size: 0.9em;
}

252
app/styles/layouts/apps.css Normal file
View File

@ -0,0 +1,252 @@
/* Apps
/* ---------------------------------------------------------- */
.apps-filter {
border-radius: 5px;
}
@media (max-width: 1460px) {
.apps-filter {
max-width: 700px;
}
}
/* Main Layout
/* ---------------------------------------------------------- */
.apps-grid-title {
display: block;
margin-bottom: 5px;
color: var(--midgrey);
}
.apps-grid {
display: flex;
flex-flow: row wrap;
align-items: flex-start;
max-width: 1200px;
border: rgba(0,0,0,0.1) 1px solid;
border-radius: 5px;
}
.apps-grid-note {
display: block;
margin-top: 5px;
color: var(--midgrey);
font-size: 1.2rem;
font-style: italic;
}
/* Apps Card
/* ---------------------------------------------------------- */
.apps-grid-cell {
flex: 1 1 100%;
}
.apps-grid-cell:hover {
background: #f5f7f8;
}
.apps-card-app {
overflow: hidden;
padding: 14px;
height: 75px;
border-top: rgba(0,0,0,0.1) 1px solid;
transition: background 0.3s ease;
}
.apps-card-app:first-of-type {
border-top: none;
}
.apps-card-content {
position: relative;
display: flex;
}
.apps-card-content > .btn {
position: absolute;
top: 5px;
right: 20px;
}
.apps-card-content > .apps-configured {
position: absolute;
top: 13px;
right: 29px;
display: flex;
color: var(--midgrey);
white-space: nowrap;
}
.apps-configured > span {
padding-right: 14px;
font-size: 1.3rem;
}
.apps-configured > i {
position: absolute;
top: 2px;
font-size: 1.1rem;
}
.apps-card-app-icon {
flex: 0 0 47px;
margin: 0 15px 0 0;
width: 47px;
height: 47px;
background-position: center center;
background-size: cover;
border-radius: 15%;
}
.apps-card-meta {
position: relative;
display: flex;
flex-direction: column;
}
.apps-card-app-title {
overflow: hidden;
margin: 4px 0 0 0;
padding: 0 70px 0 0;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 1.7rem;
line-height: 1.15em;
font-weight: bold;
}
/* Apps Card Meta
/* ---------------------------------------------------------- */
.apps-card-app-desc {
display: -webkit-box;
overflow: hidden;
margin: 0;
padding: 0;
max-height: 4.2rem;
color: var(--midgrey);
text-overflow: ellipsis;
font-size: 1.4rem;
line-height: 1.3em;
font-weight: 200;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
@media (min-width: 600px) and (max-width: 1460px) {
.apps-card-app-desc {
padding-right: 80px;
}
}
/* Apps Card Footer
/* ---------------------------------------------------------- */
.apps-card-footer {
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 15px;
width: 100%;
}
/* Slack
/* ---------------------------------------------------------- */
.app-grid {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
align-items: center;
align-content: flex-start;
margin-bottom: 30px;
}
.app-icon {
position: relative;
flex: 0 0 60px;
margin: 0 15px 0 0;
width: 60px;
height: 60px;
background-position: center center;
background-size: cover;
border-radius: 10%;
}
.app-cell h3 {
margin: 0;
color: #393939;
font-size: 2.4rem;
}
.app-cell p {
margin: 0;
margin-bottom: 5px;
color: #a3a3a3;
font-size: 1.6rem;
line-height: 1.4em;
}
.app-subtitle {
max-width: 550px;
color: #666363;
font-size: 1.6rem;
}
.app-config-form .btn-grey {
margin-top: 1.6em;
background-color: #e8e8e8;
box-shadow: none;
font-size: 1.1rem;
}
.app-config-form > .btn-grey:hover,
.app-config-form > .btn-grey:focus {
border-color: rgb(223, 225, 227);
}
/* Media Queries
/* ---------------------------------------------------------- */
@media (max-width: 800px) {
.apps-grid-apps {
overflow: hidden;
margin: 0 0 4vw 0;
border: #dfe1e3 1px solid;
border-radius: 5px;
}
.apps-card-app {
margin: 0;
border: none;
border-top: #dfe1e3 1px solid;
border-radius: 0;
}
.apps-grid-cell:first-of-type .apps-card-app {
border-top: none;
}
}
@media (max-width: 760px) {
.apps-card-app {
padding: 15px;
}
.apps-card-app .apps-card-footer {
justify-content: flex-end;
}
.apps-card-theme .apps-card-footer {
margin: 0;
padding: 15px;
}
}
@media (max-width: 540px) {
.apps-card-footer {
justify-content: flex-end;
}
.apps-card-app .apps-card-footer {
flex-direction: column;
align-items: flex-start;
}
.apps-card-content > .apps-configured {
right: 15px;
}
}

View File

@ -75,10 +75,6 @@ body > .ember-view:not(.liquid-target-container) {
transition: margin-top 0.2s ease;
}
.gh-nav-menu:hover i {
margin-top: 5px;
}
.gh-nav-menu-icon {
flex-shrink: 0;
margin-right: 10px;
@ -221,6 +217,7 @@ body > .ember-view:not(.liquid-target-container) {
color: rgba(0,0,0,0.6);
text-align: center;
font-size: 15px;
line-height: 1;
}
.gh-nav-list .active i {

View File

@ -30,7 +30,7 @@
/* 2 col themes */
@media (max-width: 1240px) {
.package-grid-themes .package-grid-cell {
flex: 0 0 50%;
flex: 0 0 100%;
}
}
@ -43,7 +43,7 @@
/* 2 col apps */
.package-grid-apps .package-grid-cell {
flex: 0 0 50%;
flex: 0 0 100%;
}
/* 1 col apps */
@ -126,8 +126,9 @@
.package-card-app {
overflow: hidden;
margin: 10px;
padding: 20px;
max-width: 700px;
padding: 14px;
height: 75px;
/*max-width: 700px;*/
border: rgba(0,0,0,0.1) 1px solid;
border-radius: 5px;
transition: background 0.3s ease;
@ -140,14 +141,20 @@
}
.package-card-content {
position: relative;
display: flex;
}
.package-card-content .btn {
position: absolute;
right: 20px;
}
.package-card-app-icon {
flex: 0 0 60px;
flex: 0 0 47px;
margin: 0 15px 0 0;
width: 60px;
height: 60px;
width: 47px;
height: 47px;
background-position: center center;
background-size: cover;
border-radius: 15%;
@ -165,7 +172,7 @@
padding: 0 70px 0 0;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 1.9rem;
font-size: 1.7rem;
font-weight: normal;
}
@ -211,7 +218,6 @@
margin: 0;
padding: 0;
max-height: 4.2rem;
height: 38px;
color: var(--midgrey);
text-overflow: ellipsis;
font-size: 1.4rem;

View File

@ -1,5 +1,7 @@
/* Icons
/* ---------------------------------------------------------- */
/* CUSTOM GENERATED FILE */
/* DO NOT UPDATE WITHOUT TALKING TO @JOHNONOLAN FIRST */
@font-face {
font-family: "ghosticons";
@ -58,7 +60,7 @@
.icon-add:before {
content: "\e006";
}
.icon-apps:before {
.icon-labs:before {
content: "\e007";
}
.icon-settings:before {
@ -202,9 +204,6 @@
.icon-error:before {
content: "\e035";
}
.icon-power:before {
content: "\e036";
}
.icon-markdown:before {
content: "\e037";
}

View File

@ -34,7 +34,8 @@
<li>{{#link-to "settings.navigation" classNames="gh-nav-settings-navigation"}}<i class="icon-compass"></i>Navigation{{/link-to}}</li>
<li>{{#link-to "settings.tags" classNames="gh-nav-settings-tags"}}<i class="icon-tag"></i>Tags{{/link-to}}</li>
<li>{{#link-to "settings.code-injection" classNames="gh-nav-settings-code-injection"}}<i class="icon-code"></i>Code Injection{{/link-to}}</li>
<li>{{#link-to "settings.labs" classNames="gh-nav-settings-labs"}}<i class="icon-apps"></i>Labs{{/link-to}}</li>
<li>{{#link-to "settings.apps" classNames="gh-nav-settings-apps"}}<i class="icon-box"></i>Apps{{/link-to}}</li>
<li>{{#link-to "settings.labs" classNames="gh-nav-settings-labs"}}<i class="icon-labs"></i>Labs{{/link-to}}</li>
</ul>
{{/if}}
</section>

View File

@ -0,0 +1,3 @@
<section class="gh-view">
{{outlet}}
</section>

View File

@ -0,0 +1,33 @@
<header class="view-header">
{{#gh-view-title openMobileMenu="openMobileMenu"}}<span style="padding-left:1px">Apps</span>{{/gh-view-title}}
</header>
<section class="view-container">
<section class="view-content">
<span class="apps-grid-title">Available integrations</span>
<div class="apps-grid">
<div class="apps-grid-cell">
{{#link-to "settings.apps.slack" id="slack-link"}}
<article class="apps-card-app">
<div class="apps-card-content">
<figure class="apps-card-app-icon" style="background-image:url({{gh-path 'admin' '/img/slackicon.png'}})"></figure>
<div class="apps-card-meta">
<h3 class="apps-card-app-title">Slack</h3>
<p class="apps-card-app-desc">A team communication tool</p>
</div>
<div class="apps-configured">
{{#if slack.isActive}}
<span class="green">Active</span>
{{else}}
<span>Configure</span>
{{/if}}
<i class="icon-arrow-right"></i>
</div>
</div>
</article>
{{/link-to}}
</div>
</div>
<p class="apps-grid-note">(More coming soon!)</p>
</section>
</section>

View File

@ -0,0 +1,42 @@
<header class="view-header">
{{#gh-view-title openMobileMenu="openMobileMenu"}}<span style="padding-left:1px">{{#link-to "settings.apps.index"}}Apps{{/link-to}} <i class="icon-arrow-right" style="display:inline"></i> Slack</span>{{/gh-view-title}}
<section class="view-actions">
{{#gh-spin-button id="saveSlackIntegration" class="btn btn-green" action=(action "save") submitting=isSaving}}
Save
{{/gh-spin-button}}
</section>
</header>
<section class="view-container">
<section class="view-content">
<section class="app-grid">
<div class="app-cell">
<img class="app-icon" src="{{gh-path 'admin' '/img/slackicon.png'}}" />
</div>
<div class="app-cell">
<h3>Slack</h3>
<p>A messaging app for teams</p>
</div>
</section>
<section class="app-subtitle">
<p>Automatically send newly published posts to a channel in Slack.</p>
</section>
<form class="app-config-form" id="slack-settings" novalidate="novalidate" {{action "save" on="submit"}}>
{{#gh-form-group errors=model.errors hasValidated=model.hasValidated property="url"}}
<label for="url">Webhook URL</label>
{{one-way-input model.url class="gh-input" name="slack[url]" update=(action "updateURL") onenter=(action "save") placeholder="https://hooks.slack.com/services/..."}}
{{#unless model.errors.url}}
<p>Set up a new incoming webhook <a href="https://my.slack.com/apps/new/A0F7XDUAZ-incoming-webhooks" target="_blank">here</a>, and grab the URL.</p>
{{else}}
{{gh-error-message errors=model.errors property="url"}}
{{/unless}}
{{/gh-form-group}}
</form>
<form class="app-config-form">
{{#gh-spin-button id="sendTestNotification" class="btn btn-grey" disabled=testNotificationDisabled action=(action "sendTestNotification") submitting=isSendingTest}}
Send Test Notification
{{/gh-spin-button}}
</form>
</section>
</section>

View File

@ -0,0 +1,37 @@
/* jscs:disable requireCamelCaseOrUpperCaseIdentifiers */
import Ember from 'ember';
import Transform from 'ember-data/transform';
import SlackObject from 'ghost/models/slack-integration';
const {isArray} = Ember;
const emberA = Ember.A;
export default Transform.extend({
deserialize(serialized) {
let slackObj, settingsArray;
try {
settingsArray = JSON.parse(serialized) || [];
} catch (e) {
settingsArray = [];
}
slackObj = settingsArray.map((itemDetails) => {
return SlackObject.create(itemDetails);
});
return emberA(slackObj);
},
serialize(deserialized) {
let settingsArray;
if (isArray(deserialized)) {
settingsArray = deserialized.map((item) => {
let url = (item.get('url') || '').trim();
return {url};
}).compact();
} else {
settingsArray = [];
}
return JSON.stringify(settingsArray);
}
});

View File

@ -0,0 +1,24 @@
import BaseValidator from './base';
export default BaseValidator.create({
properties: ['url'],
url(model) {
let url = model.get('url');
let hasValidated = model.get('hasValidated');
let urlRegex = new RegExp(/(^https:\/\/hooks\.slack\.com\/services\/)(\S+)/);
if (!validator.empty(url) && !url.match(urlRegex)) {
model.get('errors').add(
'url',
'The URL must be in a format like ' +
'https://hooks.slack.com/services/<your personal key>'
);
this.invalidate();
}
hasValidated.addObject('url');
}
});

BIN
public/assets/fonts/ghosticons.eot Normal file → Executable file

Binary file not shown.

159
public/assets/fonts/ghosticons.svg Normal file → Executable file
View File

@ -1,82 +1,83 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Generated by Fontastic.me</metadata>
<metadata>Generated by IcoMoon</metadata>
<defs>
<font id="ghosticons" horiz-adv-x="512">
<font-face font-family="ghosticons" units-per-em="512" ascent="480" descent="-32"/>
<missing-glyph horiz-adv-x="512" />
<glyph unicode="&#57344;" d="M256 512c-141 0-256-115-256-256 0-68 26-132 74-180 49-49 113-76 182-76 69 0 134 27 182 76 0 0 0 0 0 0 48 48 74 112 74 180 0 141-115 256-256 256z m0-491c-59 0-114 22-157 61 22 12 54 23 86 35 11 4 22 8 32 12 4 1 7 5 7 10l0 53c0 5-3 9-7 10-1 0-25 10-25 54 0 6-4 11-10 11-1 0-3 4-3 10 0 6 2 10 2 11 6 0 11 5 11 11 0 2-1 5-3 11-3 11-11 41-4 51 1 1 3 3 8 3 3 0 5-1 8-1 5-1 11 2 12 8 3 14 28 24 59 24 31 0 56-10 59-24 5-20-4-47-8-60-2-6-3-9-3-12 0-6 4-11 10-11 1-1 3-5 3-11 0-6-2-10-2-10-6 0-11-5-11-11 0-44-24-54-25-54-4-1-7-5-7-10l0-53c0-5 3-9 7-10 11-5 23-9 34-13 32-12 63-23 84-34-43-39-98-61-157-61z m173 76c-22 14-55 26-92 39-9 3-19 7-28 10l0 39c11 7 30 24 32 63 8 5 14 16 14 29 0 13-5 23-12 28 6 16 15 46 9 71-8 30-48 40-80 40-29 0-64-8-76-31-15 1-23-6-28-11-13-18-4-51 1-69-7-5-12-15-12-28 0-13 6-24 14-29 2-39 21-56 32-63l0-39c-9-3-17-6-25-9-35-13-71-26-95-40-40 44-62 100-62 159 0 129 106 235 235 235 129 0 235-106 235-235 0-59-22-115-62-159z"/>
<glyph unicode="&#57345;" d="M509 18l-192 192c0 0 0 0 0 0 28 32 46 74 46 121 0 100-82 181-182 181-100 0-181-81-181-181 0-100 81-182 181-182 47 0 89 18 121 46 0 0 0 0 0 0l192-192c2-2 5-3 7-3 3 0 6 1 8 3 4 4 4 11 0 15z m-328 153c-88 0-160 71-160 160 0 88 72 160 160 160 89 0 160-72 160-160 0-89-71-160-160-160z"/>
<glyph unicode="&#57347;" d="M437 416c-48 48-113 75-181 75-68 0-133-27-181-75-100-100-100-263 0-362 10-10 23-16 38-16 14 0 27 6 37 16 21 20 21 54 0 75-2 2-3 5-3 8 0 2 1 5 3 7 4 4 11 4 15 0l91-90c24-25 56-38 91-38 34 0 66 13 90 38 100 99 100 262 0 362z m-15-347c-20-20-47-32-75-32-29 0-56 12-76 32l-90 90c-6 6-14 10-23 10-9 0-17-4-23-10-6-6-9-14-9-22 0-9 3-17 9-23 13-12 13-33 0-45-12-12-33-12-45 0-91 91-91 240 0 332 44 44 103 68 166 68 63 0 122-24 166-68 91-92 91-241 0-332z m-75 229c11 0 22 4 30 12 8 8 12 19 12 30 0 12-4 22-12 30-16 17-45 17-61 0-8-8-12-18-12-30 0-11 4-22 12-30 8-8 19-12 31-12z m-16 57c4 4 10 7 16 7 5 0 11-3 15-7 4-4 6-9 6-15 0-5-2-11-6-15-8-8-23-8-31 0-4 4-6 10-6 15 0 6 2 11 6 15z m97-98c-12 12-33 12-45 0-13-12-13-32 0-45 6-6 14-9 22-9 9 0 17 3 23 9 6 6 9 14 9 23 0 8-3 16-9 22z m-15-30c-4-4-11-4-15 0-4 4-4 11 0 15 2 2 4 3 7 3 3 0 6-1 8-3 2-2 3-4 3-7 0-3-1-6-3-8z m-67-45c-14 0-27-5-37-15-10-10-16-24-16-38 0-14 6-28 16-38 10-10 23-15 38-15 14 0 27 5 37 15 10 10 16 24 16 38 0 14-6 28-16 38-10 10-23 15-38 15z m23-76c-12-12-33-12-45 0-6 6-9 15-9 23 0 9 3 17 9 23 6 6 14 9 23 9 8 0 16-3 22-9 6-6 10-14 10-23 0-8-4-17-10-23z m-181 287c-8-8-12-19-12-30 0-12 4-22 12-30 8-8 19-13 30-13 12 0 22 5 30 13 9 8 13 19 13 30 0 11-5 22-13 30-16 16-44 16-60 0z m45-45c-8-8-22-8-30 0-4 4-6 9-6 15 0 6 2 11 6 15 4 4 10 6 15 6 6 0 11-2 15-6 4-4 7-9 7-15 0-6-3-11-7-15z"/>
<glyph unicode="&#57348;" d="M459 512l-406 0c-6 0-10-5-10-11l0-490c0-6 4-11 10-11l406 0c6 0 10 5 10 11l0 490c0 6-4 11-10 11z m-11-491l-384 0 0 470 53 0 0-22-10 0 0-42 42 0 0 42-10 0 0 22 64 0 0-22-11 0 0-42 43 0 0 42-11 0 0 22 64 0 0-22-11 0 0-42 43 0 0 42-11 0 0 22 64 0 0-22-10 0 0-42 42 0 0 42-10 0 0 22 53 0z m-75 342l-234 0c-6 0-11-5-11-11 0-6 5-11 11-11l234 0c6 0 11 5 11 11 0 6-5 11-11 11z m0-64l-234 0c-6 0-11-5-11-11 0-6 5-11 11-11l234 0c6 0 11 5 11 11 0 6-5 11-11 11z m0-64l-234 0c-6 0-11-5-11-11 0-6 5-11 11-11l234 0c6 0 11 5 11 11 0 6-5 11-11 11z m0-64l-234 0c-6 0-11-5-11-11 0-6 5-11 11-11l234 0c6 0 11 5 11 11 0 6-5 11-11 11z m0-64l-234 0c-6 0-11-5-11-11 0-6 5-11 11-11l234 0c6 0 11 5 11 11 0 6-5 11-11 11z"/>
<glyph unicode="&#57349;" d="M271 256l238 237c5 4 5 11 0 15-4 5-11 5-15 0l-238-237-237 238c-4 5-11 5-15 0-5-4-5-11 0-15l237-238-238-237c-5-4-5-11 0-15 2-2 4-4 7-4 3 0 6 2 8 4l238 237 237-238c2-2 5-3 8-3 3 0 5 1 7 3 5 4 5 11 0 15z"/>
<glyph unicode="&#57350;" d="M480 277l-224 0 0 224c0 6-4 11-10 11 0 0 0 0 0 0-6 0-11-5-11-11l0-224-224 0c-6 0-11-4-11-10 0-6 5-11 11-11l224 0 0-224c0-6 4-11 10-11 6 0 11 5 11 11l0 224 224 0c6 0 11 5 11 11 0 6-5 10-11 10z"/>
<glyph unicode="&#57351;" d="M481 164c-26 26-64 35-99 23l-67 67 67 68c10-3 20-5 31-5 26 0 50 10 68 28 28 28 35 68 20 104-1 3-4 5-8 6-3 1-7 0-9-3l-38-39-30 0 0 33 38 38c2 2 3 6 3 9-1 4-3 7-7 8-12 5-24 8-37 8-26 0-50-10-68-28-26-26-35-64-23-99l-68-67-67 67c12 35 3 73-23 99-28 28-68 36-104 20-3-1-6-4-6-8-1-3 0-7 3-9l39-38 0-33-33 0-38 39c-2 3-6 4-10 3-3-1-6-3-7-6-16-36-8-77 20-105 26-26 64-34 99-22l67-68-67-67c-10 3-21 5-31 5-26 0-50-10-68-28-28-28-36-69-20-105 1-4 4-6 7-7 4 0 7 1 10 3l38 38 33 0 0-30-39-38c-3-2-4-6-3-10 0-3 3-6 6-7 12-5 25-8 37-8 26 0 50 10 68 28 25 26 34 64 22 99l67 67 68-67c-12-35-3-73 23-99 18-18 43-28 68-28 12 0 25 2 37 8 4 1 6 4 7 7 0 4-1 7-3 10l-38 38 0 30 30 0 38-38c2-2 6-3 9-3 4 1 7 3 8 7 16 36 8 77-20 105z m-344 178c-3 3-8 3-12 2-28-12-60-6-82 15-17 18-25 42-21 65l29-29c2-2 4-3 7-3l49 0c6 0 10 4 10 10l0 49c0 2-1 5-3 7l-29 28c23 4 46-3 64-20 21-22 28-54 16-82-2-4-1-9 2-12l72-72-30-31z m28-217c12-28 6-61-15-82-18-17-42-25-65-21l29 29c2 2 3 4 3 7l0 45c0 6-4 11-10 11l-49 0c-3 0-5-1-7-3l-29-28c-4 24 4 48 21 66 14 14 33 22 53 22 10 0 20-2 29-6 4-2 9-1 12 2l205 205c3 3 4 8 2 12-12 28-6 60 16 82 14 14 33 21 53 21 4 0 9 0 13-1l-28-28c-2-2-3-5-3-7l0-49c0-6 4-10 10-10l46 0c2 0 5 1 7 3l28 29c4-23-3-46-20-64-14-14-33-22-53-22-10 0-20 2-29 6-4 2-9 1-12-2l-205-205c-3-3-4-8-2-12z m321-42l-28 28c-2 2-5 3-7 3l-46 0c-6 0-10-5-10-11l0-45c0-3 1-5 3-7l28-29c-24-4-48 4-66 21-22 22-28 54-16 82 2 4 1 9-2 12l-73 72 31 30 72-72c3-3 8-4 12-2 28 12 60 5 82-16 17-18 25-42 20-66z"/>
<glyph unicode="&#57352;" d="M501 299l-61 0c-4 17-9 35-16 49l43 44c2 2 3 4 3 7 0 3-1 6-3 8l-60 60c-4 4-11 4-15 0l-44-43c-14 7-32 12-49 16l0 61c0 6-5 11-11 11l-64 0c-6 0-11-5-11-11l0-61c-17-4-35-9-49-16l-44 43c-4 4-11 4-15 0l-60-60c-4-4-4-11 0-15l43-44c-7-14-12-32-16-49l-61 0c-6 0-11-5-11-11l0-64c0-6 5-11 11-11l61 0c4-17 9-35 16-49l-43-44c-2-2-3-4-3-7 0-3 1-6 3-8l60-60c4-4 11-4 15 0l44 43c14-7 32-12 49-16l0-61c0-6 5-11 11-11l64 0c6 0 11 5 11 11l0 61c17 4 35 9 49 16l44-43c4-4 11-4 15 0l60 60c4 4 4 11 0 15l-43 44c7 14 12 32 16 49l61 0c6 0 11 5 11 11l0 64c0 6-5 11-11 11z m-10-64l-59 0c-5 0-9-4-10-8-3-12-11-44-20-60-3-4-2-9 1-13l42-41-46-46-41 42c-4 3-9 4-13 1-16-9-48-17-60-20-4-1-8-5-8-10l0-59-42 0 0 59c0 5-4 9-8 10-12 3-44 11-60 20-4 3-9 2-13-1l-41-42-46 46 42 41c3 4 4 9 1 13-9 16-17 48-20 60-1 4-5 8-10 8l-59 0 0 42 59 0c5 0 9 4 10 8 3 12 11 44 20 60 3 4 2 9-1 13l-42 41 46 46 41-42c4-3 9-4 13-1 16 9 48 17 59 20 5 1 9 5 9 10l0 59 42 0 0-59c0-5 4-9 8-10 19-5 46-12 60-20 4-3 9-2 13 1l41 42 46-46-42-41c-3-4-4-9-1-13 9-16 17-48 20-59 1-5 5-9 10-9l59 0z m-235 128c-59 0-107-48-107-107 0-59 48-107 107-107 59 0 107 48 107 107 0 59-48 107-107 107z m0-192c-47 0-85 38-85 85 0 47 38 85 85 85 47 0 85-38 85-85 0-47-38-85-85-85z"/>
<glyph unicode="&#57354;" d="M501 448l-490 0c-6 0-11-5-11-11l0-384c0-6 5-10 11-10l490 0c6 0 11 4 11 10l0 384c0 6-5 11-11 11z m-10-384l-470 0 0 363 470 0z m-438 235l406 0c6 0 10 4 10 10l0 64c0 6-4 11-10 11l-406 0c-6 0-10-5-10-11l0-64c0-6 4-10 10-10z m11 64l384 0 0-43-384 0z m160-107l-128 0c-6 0-11-5-11-11 0-6 5-10 11-10l128 0c6 0 11 4 11 10 0 6-5 11-11 11z m0-43l-149 0c-6 0-11-4-11-10 0-6 5-11 11-11l149 0c6 0 11 5 11 11 0 6-5 10-11 10z m0-42l-149 0c-6 0-11-5-11-11 0-6 5-11 11-11l149 0c6 0 11 5 11 11 0 6-5 11-11 11z m0-43l-149 0c-6 0-11-5-11-11 0-6 5-10 11-10l149 0c6 0 11 4 11 10 0 6-5 11-11 11z m213 128l-149 0c-6 0-11-5-11-11 0-6 5-10 11-10l149 0c6 0 11 4 11 10 0 6-5 11-11 11z m0-43l-149 0c-6 0-11-4-11-10 0-6 5-11 11-11l149 0c6 0 11 5 11 11 0 6-5 10-11 10z m0-42l-149 0c-6 0-11-5-11-11 0-6 5-11 11-11l149 0c6 0 11 5 11 11 0 6-5 11-11 11z m-21-43l-128 0c-6 0-11-5-11-11 0-6 5-10 11-10l128 0c6 0 11 4 11 10 0 6-5 11-11 11z"/>
<glyph unicode="&#57355;" d="M256 512c-141 0-256-115-256-256 0-141 115-256 256-256 141 0 256 115 256 256 0 141-115 256-256 256z m0-491c-129 0-235 106-235 235 0 129 106 235 235 235 129 0 235-106 235-235 0-129-106-235-235-235z m136 371c-4 4-11 4-15 0l-99-99c-7 3-14 6-22 6-24 0-43-19-43-43 0-24 19-43 43-43 24 0 43 19 43 43 0 8-3 15-6 22l99 99c4 4 4 11 0 15z m-136-157c-12 0-21 9-21 21 0 12 9 21 21 21 12 0 21-9 21-21 0-12-9-21-21-21z m-151 17c0 6-4 11-10 11l-43 0c-6 0-11-5-11-11 0-6 5-11 11-11l43 0c6 0 10 5 10 11z m-1-47l-39-17c-6-2-8-8-6-14 2-4 6-6 10-6 1 0 2 0 4 1l39 16c6 2 8 8 6 14-2 5-8 8-14 6z m343-17l-39 17c-6 2-12-1-14-6-2-6 0-12 6-14l39-16c1-1 3-1 4-1 4 0 8 2 10 6 2 6 0 12-6 14z m12 79l-43 0c0 0 0 0 0 0-6 0-11-5-11-11 0-6 5-11 11-11l43 0c6 0 10 5 10 11 0 6-4 11-10 11z m-55 40c1 0 3 0 4 0l39 17c6 2 8 8 6 14-2 5-8 8-14 5l-39-16c-6-2-8-8-6-14 2-4 6-6 10-6z m-91 87c1-1 3-1 4-1 4 0 8 3 10 7l16 39c3 6 0 12-5 14-6 2-12 0-14-6l-17-39c-2-6 1-12 6-14z m-58 7c6 0 10 5 10 11l0 43c0 6-4 10-10 10-6 0-11-4-11-10l0-43c0-6 5-11 11-11z m-70-1c2-4 6-7 10-7 1 0 3 0 4 1 5 2 8 8 6 14l-17 39c-2 6-8 8-14 6-5-2-8-8-5-14z m-35-23l-30 30c-4 4-11 4-15 0-4-4-4-11 0-15l30-30c2-2 5-4 8-4 3 0 5 2 7 4 5 4 5 10 0 15z m-38-50l-39 16c-6 3-12 0-14-5-2-6 0-12 6-14l39-17c1 0 3 0 4 0 4 0 8 2 10 6 2 6 0 12-6 14z m240-156l-192 0c-6 0-11-5-11-11l0-64c0-6 5-11 11-11l192 0c6 0 11 5 11 11l0 64c0 6-5 11-11 11z m-11-64l-170 0 0 42 170 0z"/>
<glyph unicode="&#57353;" d="M509 199l-310 310c-2 2-4 3-7 3l-181 0 0 0c-3 0-6-1-8-3-2-2-3-5-3-8l0-181c0-3 1-5 3-7l310-310c2-2 5-3 7-3 1 0 2 0 3 0 4 1 6 4 8 8l40 133 133 40c4 2 7 4 8 8 1 4 0 8-3 10z m-149-39c-4-2-7-4-8-8l-37-121-294 294 0 166 166 0 294-294z m-243 288c-29 0-53-24-53-53 0-30 24-54 53-54 30 0 54 24 54 54 0 29-24 53-54 53z m0-85c-17 0-32 14-32 32 0 17 15 32 32 32 18 0 32-15 32-32 0-18-14-32-32-32z"/>
<glyph unicode="&#57346;" d="M358 372l-267-139c-4-2-7-7-5-12 1-4 5-8 10-8l117 0 0-117c0-5 4-9 8-10 1-1 2-1 3-1 4 0 8 2 9 6l139 267c2 4 2 9-2 12-3 4-8 4-12 2z m-123-232l0 84c0 6-5 11-11 11l-84 0 198 103z m21 372c-141 0-256-115-256-256 0-141 115-256 256-256 141 0 256 115 256 256 0 141-115 256-256 256z m0-491c-129 0-235 106-235 235 0 129 106 235 235 235 129 0 235-106 235-235 0-129-106-235-235-235z"/>
<glyph unicode="&#57356;" d="M200 445c-5 4-11 4-16 0l-181-181c-4-5-4-11 0-16l181-181c3-2 5-3 8-3 3 0 5 1 8 3 4 4 4 11 0 15l-174 174 174 174c4 4 4 11 0 15z m309-181l-181 181c-5 4-11 4-16 0-4-4-4-11 0-15l174-174-174-174c-4-4-4-11 0-15 3-2 5-3 8-3 3 0 5 1 8 3l181 181c4 5 4 11 0 16z"/>
<glyph unicode="&#57357;" d="M128 277l107 0 0 22c0 16-13 33-29 37l-46 13 0 17c19 14 32 38 32 66 0 44-33 80-75 80-41 0-74-36-74-80 0-28 12-52 32-66l0-17-47-13c-16-4-28-21-28-37l0-22z m-11 214c24 0 45-18 51-42-3-1-7-2-12-1-5 1-14 3-19 12-1 3-4 5-7 6-4 0-7-1-10-3-15-16-39-17-53-12 8 23 27 40 50 40z m-53-61c19-6 43-4 62 10 7-7 16-12 27-13 2-1 5-1 8-1 3 0 6 1 9 1-1-30-25-55-53-55-29 0-52 26-53 58z m-30-114l62 17 0 21c7-2 14-3 21-3 8 0 15 1 22 3l0-21 62-17c6-2 12-10 12-17l-192 0c0 7 6 15 13 17z m450 20l-47 13 0 17c20 14 32 38 32 66 0 44-33 80-74 80-42 0-75-36-75-80 0-28 13-52 32-66l0-17-46-13c-16-4-29-21-29-37l0-22 235 0 0 22c0 16-12 33-28 37z m-89 155c24 0 44-18 51-42-4-1-8-2-13-1-5 1-14 3-18 12-2 3-5 5-8 6-3 0-7-1-9-3-16-16-39-17-54-12 8 23 28 40 51 40z m-54-61c19-6 43-4 63 10 6-7 16-12 26-13 3 0 5-1 8-1 3 0 7 1 10 2-2-31-25-56-53-56-29 0-53 26-54 58z m64-131l-106 0c0 7 6 15 12 17l62 17 0 21c7-2 14-3 22-3 7 0 14 1 21 3l0-21 62-17c7-2 13-10 13-17z m-60-240l-46 13 0 16c19 15 32 39 32 66 0 45-34 81-75 81-41 0-75-36-75-81 0-27 13-51 32-66l0-16-46-13c-16-5-28-21-28-38l0-21 234 0 0 21c0 17-12 33-28 38z m-89 154c24 0 44-17 51-41-4-1-8-2-13-1-5 1-13 3-18 12-2 3-4 5-8 5-3 1-6 0-9-3-15-15-39-17-53-11 7 23 27 39 50 39z m-53-60c19-6 43-4 62 9 7-6 16-11 26-12 2 0 5-1 7-1 4 0 8 1 11 2-1-31-25-56-53-56-29 0-52 26-53 58z m64-132l-107 0c0 7 6 15 13 17l62 18 0 21c6-2 14-3 21-3 7 0 15 1 21 3l0-21 62-18c7-2 13-10 13-17z m-121 163c4 5 4 11 0 16l-53 53c-4 4-11 4-15 0-4-4-4-11 0-15l53-54c2-2 5-3 8-3 2 0 5 1 7 3z m273 69l-53-53c-4-5-4-11 0-16 2-2 5-3 7-3 3 0 6 1 8 3l53 54c4 4 4 11 0 15-4 4-11 4-15 0z"/>
<glyph unicode="&#57358;" d="M256 405c-76 0-139-62-139-138 0-61 39-114 96-132l0-18c0-6 5-10 11-10l64 0c6 0 11 4 11 10l0 18c57 18 96 71 96 132 0 76-63 138-139 138z m29-252c-4-1-8-5-8-10l0-15-42 0 0 15c0 5-4 9-8 10-52 14-88 60-88 114 0 64 52 117 117 117 65 0 117-53 117-117 0-54-36-100-88-114z m-18-110l-22 0c-6 0-10-5-10-11 0-6 4-11 10-11l22 0c6 0 10 5 10 11 0 6-4 11-10 11z m21 42l-64 0c-6 0-11-4-11-10 0-6 5-11 11-11l64 0c6 0 11 5 11 11 0 6-5 10-11 10z m-32 342c6 0 11 4 11 10l0 43c0 6-5 11-11 11-6 0-11-5-11-11l0-43c0-6 5-10 11-10z m213-150l-42 0c-6 0-11-4-11-10 0-6 5-11 11-11l42 0c6 0 11 5 11 11 0 6-5 10-11 10z m-384 0l-42 0c-6 0-11-4-11-10 0-6 5-11 11-11l42 0c6 0 11 5 11 11 0 6-5 10-11 10z m43 103c2-2 5-3 7-3 3 0 6 1 8 3 4 4 4 11 0 15l-45 45c-5 4-11 4-16 0-4-4-4-11 0-15z m249-3c2 0 5 1 7 3l45 45c5 4 5 11 0 15-4 4-10 4-15 0l-45-45c-4-4-4-11 0-15 2-2 5-3 8-3z"/>
<glyph unicode="&#57359;" d="M508 404c-4 4-11 4-15-1l-237-271-237 271c-4 5-11 5-15 1-5-4-5-10-1-15l245-280c2-3 5-4 8-4 3 0 6 1 8 4l245 280c4 5 4 11-1 15z"/>
<glyph unicode="&#57360;" d="M456 395l-61 61c-4 4-11 4-15 0l-8-9c-9 6-19 9-29 9-15 0-28-5-38-15l-121-121c-4-4-4-11 0-15 2-2 5-3 8-3 2 0 5 1 7 3l121 120c9 10 24 12 36 7l-96-97-212-211c0 0 0 0 0-1-1 0-1-1-2-3l-45-105c-2-4-1-9 2-12 2-2 5-3 8-3 1 0 3 0 4 1l105 45c0 0 0 0 0 0l0 0c2 1 3 1 3 2 1 0 1 0 1 0l211 212 121 120c2 2 3 5 3 8 0 3-1 5-3 7z m-425-364l29 67 38-38z m85 40l-45 45 196 196 45-45z m211 211l-45 45 98 99 8 7 45-45z"/>
<glyph unicode="&#57361;" d="M465 421c-24 24-56 38-90 38-35 0-67-14-91-38l-256-256c-37-37-37-98 0-136 19-18 43-28 68-28 25 0 49 10 68 28l245 246c10 10 15 24 15 38 0 14-5 27-15 38-10 10-24 15-38 15-14 0-28-5-38-15l-181-182c-4-4-4-11 0-15 4-4 11-4 15 0l182 181c12 13 33 13 45 0 6-6 9-14 9-22 0-9-3-17-9-23l-245-246c-29-29-77-29-106 0-29 30-29 77 0 106l256 256c20 20 47 31 76 31 28 0 55-11 75-31 42-42 42-109 0-151l-181-181c-4-4-4-11 0-15 4-4 11-4 15 0l181 181c50 50 50 131 0 181z"/>
<glyph unicode="&#57362;" d="M491 448l-139 0 0 53c0 6-5 11-11 11l-170 0c-6 0-11-5-11-11l0-53-139 0c-6 0-10-5-10-11 0-6 4-10 10-10l54 0 0-416c0-6 4-11 10-11l342 0c6 0 10 5 10 11l0 416 54 0c6 0 10 4 10 10 0 6-4 11-10 11z m-310 43l150 0 0-43-150 0z m235-470l-320 0 0 406 320 0z m-245 342c-6 0-11-5-11-11l0-245c0-6 5-11 11-11 6 0 10 5 10 11l0 245c0 6-4 11-10 11z m85 0c-6 0-11-5-11-11l0-245c0-6 5-11 11-11 6 0 11 5 11 11l0 245c0 6-5 11-11 11z m75-11l0-245c0-6 4-11 10-11 6 0 11 5 11 11l0 245c0 6-5 11-11 11-6 0-10-5-10-11z"/>
<glyph unicode="&#57363;" d="M416 288c-6 0-11-5-11-11l0-256-384 0 0 427 331 0c6 0 11 5 11 11 0 6-5 10-11 10l-341 0c-6 0-11-4-11-10l0-448c0-6 5-11 11-11l405 0c6 0 11 5 11 11l0 266c0 6-5 11-11 11z m94 203c-6 13-18 21-31 21-8 0-16-3-22-10l-204-203c0-1-1-2-2-3l-30-60c-2-5-1-10 2-13 2-2 5-3 8-3 1 0 3 0 5 1l60 30c1 1 2 2 3 2l173 174c0 0 0 0 0 0 0 0 0 0 0 0l30 30c10 10 13 22 8 34z m-225-221l-30-15 15 30 164 165 16-16z m202 202l-22-22-15 15 22 22c6 6 15 3 18-4 2-4 1-7-3-11z"/>
<glyph unicode="&#57364;" d="M424 363l-61 61c-2 2-5 3-7 3-3 0-6-1-8-3l-188-189c0 0 0 0 0 0-1 0-1-1-1-1-1-1-1-1-2-2l0-1c0 0 0 0 0 0l-45-105c-2-4-1-9 2-12 2-2 5-3 8-3 1 0 3 0 4 1l105 45c0 0 0 0 0 0l1 0c1 1 2 2 3 3l149 149c0 0 0 0 0 0 0 0 0 0 0 0l40 39c4 4 4 11 0 15z m-197-181l-45 45 135 135 45-46z m-56 27l38-38-67-29z m206 123l-45 45 24 24 45-45z m-121 180c-141 0-256-115-256-256 0-141 115-256 256-256 141 0 256 115 256 256 0 141-115 256-256 256z m0-491c-129 0-235 106-235 235 0 129 106 235 235 235 129 0 235-106 235-235 0-129-106-235-235-235z"/>
<glyph unicode="&#57365;" d="M256 213c-12 0-21-9-21-21 0-8 4-15 10-18l0-57c0-6 5-10 11-10 6 0 11 4 11 10l0 57c6 3 10 10 10 18 0 12-9 21-21 21z m128 107l0 64c0 71-57 128-128 128-71 0-128-57-128-128l0-64-64 0 0-320 384 0 0 320z m-235 64c0 59 48 107 107 107 59 0 107-48 107-107l0-64-214 0z m278-363l-342 0 0 278 342 0z"/>
<glyph unicode="&#57366;" d="M341 205c-14 0-27 6-37 16l-2 2c-4 4-4 11 0 15 4 4 11 4 15 0l2-2c12-12 33-12 45 0l85 85c20 20 20 54 0 75l-38 37c-10 10-23 16-38 16-14 0-27-6-37-16l-85-84c-12-13-12-33 0-45l2-2c4-4 4-11 0-15-4-4-11-4-15 0l-2 2c-21 20-21 54 0 75l85 85c14 14 32 21 52 21 20 0 39-7 53-21l38-38c29-29 29-76 0-106l-85-84c-10-10-23-16-38-16z m-202-193c-20 0-39 7-53 21l-38 38c-29 29-29 76 0 105l85 85c10 10 23 16 38 16 14 0 27-6 37-16l2-2c4-4 4-11 0-15-4-4-11-4-15 0l-2 2c-12 12-33 12-45 0l-85-85c-20-21-20-54 0-75l38-38c10-10 23-15 38-15 14 0 27 5 37 15l85 85c12 12 12 33 0 45l-2 2c-4 4-4 11 0 15 4 4 11 4 15 0l2-2c21-21 21-54 0-75l-85-85c-14-14-32-21-52-21z m34 135c-3 0-5 1-8 3-4 5-4 11 0 15l166 166c5 5 11 5 16 0 4-4 4-10 0-15l-166-166c-3-2-5-3-8-3z"/>
<glyph unicode="&#57367;" d="M124 223l-78-31 27 48c3 5 2 10-2 14-32 25-50 61-50 99 0 76 77 138 171 138 94 0 171-62 171-138l21 0c0 88-86 159-192 159-106 0-192-71-192-159 0-41 18-81 50-110l-38-67c-2-4-2-9 1-12 2-3 5-4 8-4 2 0 3 0 4 1l104 41c9-3 18-5 28-6l3 21c-10 2-20 4-29 7-2 0-5 0-7-1z m348-140c26 23 40 54 40 88 0 75-73 138-160 138-87 0-160-63-160-138 0-77 70-141 153-141 0 0 0 0 0 0 21 0 41 4 61 12l81-31c1 0 2 0 4 0 3 0 6 1 8 3 3 3 3 8 1 12z m-63-20c-1 1-2 1-4 1-1 0-3 0-4-1-18-8-37-12-56-12 0 0 0 0 0 0-71 0-132 55-132 120 0 63 64 117 139 117 75 0 139-54 139-117 0-31-13-57-39-77-4-3-5-9-3-13l20-40z"/>
<glyph unicode="&#57368;" d="M256 512c-141 0-256-115-256-256 0-141 115-256 256-256 141 0 256 115 256 256 0 141-115 256-256 256z m0-491c-129 0-235 106-235 235 0 129 106 235 235 235 129 0 235-106 235-235 0-129-106-235-235-235z m160 224c-6 0-11-4-11-10 0-83-67-150-149-150-82 0-149 67-149 150 0 6-5 10-11 10-6 0-11-4-11-10 0-94 77-171 171-171 94 0 171 77 171 171 0 6-5 10-11 10z m-299 43c6 0 11 5 11 11 0 17 14 32 32 32 18 0 32-15 32-32 0-6 5-11 11-11 6 0 10 5 10 11 0 29-24 53-53 53-29 0-53-24-53-53 0-6 4-11 10-11z m192 0c6 0 11 5 11 11 0 17 14 32 32 32 18 0 32-15 32-32 0-6 5-11 11-11 6 0 10 5 10 11 0 29-24 53-53 53-29 0-53-24-53-53 0-6 4-11 10-11z"/>
<glyph unicode="&#57369;" d="M511 323c-1 5-5 8-10 8l-173 0-62 174c-1 4-5 7-10 7-5 0-9-3-10-7l-62-174-173 0c-5 0-9-3-10-8-2-4 0-9 3-11l144-113-62-185c-2-4 0-9 4-12 3-3 9-3 12 0l154 113 154-113c2-1 4-2 6-2 2 0 4 1 6 2 4 3 6 8 4 12l-62 185 144 113c4 2 5 7 3 11z m-166-112c-3-3-5-7-3-12l53-160-133 98c-2 1-4 2-6 2-2 0-4-1-6-2l-133-98 53 160c2 5 0 9-3 12l-125 98 150 0c5 0 9 3 10 7l54 153 54-153c1-4 5-7 10-7l150 0z"/>
<glyph unicode="&#57371;" d="M0 320l0-21c165 0 299-134 299-299l21 0c0 176-144 320-320 320z m0 192l0-21c271 0 491-220 491-491l21 0c0 282-230 512-512 512z m64-384c-35 0-64-29-64-64 0-35 29-64 64-64 35 0 64 29 64 64 0 35-29 64-64 64z m0-107c-24 0-43 19-43 43 0 24 19 43 43 43 24 0 43-19 43-43 0-24-19-43-43-43z"/>
<glyph unicode="&#57373;" d="M437 469c-4 4-11 4-15 0-4-4-4-11 0-15 44-44 69-103 69-166 0-63-25-122-69-166-4-4-4-11 0-15 2-2 5-3 7-3 3 0 6 1 8 3 48 48 75 113 75 181 0 68-27 133-75 181z m-60-60c-4 4-11 4-15 0-5-5-5-11 0-15 28-29 43-66 43-106 0-40-15-77-43-106-5-4-5-11 0-15 2-2 4-3 7-3 3 0 6 1 8 3 32 33 50 75 50 121 0 46-18 88-50 121z m-356-121c0 63 25 122 69 166 4 4 4 11 0 15-4 4-11 4-15 0-48-48-75-113-75-181 0-68 27-133 75-181 2-2 5-3 8-3 2 0 5 1 7 3 4 4 4 11 0 15-44 44-69 103-69 166z m86 0c0 40 15 77 43 106 5 4 5 11 0 15-4 4-11 4-15 0-32-33-50-75-50-121 0-46 18-88 50-121 2-2 5-3 8-3 3 0 5 1 7 3 5 4 5 11 0 15-28 29-43 66-43 106z m149 75c-41 0-75-34-75-75 0-38 28-69 64-74l0-171c0-6 5-11 11-11 6 0 11 5 11 11l0 171c36 5 64 36 64 74 0 41-34 75-75 75z m0-128c-29 0-53 24-53 53 0 29 24 53 53 53 29 0 53-24 53-53 0-29-24-53-53-53z"/>
<glyph unicode="&#57374;" d="M448 405l-384 0c-24 0-43-19-43-42l0-235c0-24 19-43 43-43l384 0c24 0 43 19 43 43l0 235c0 23-19 42-43 42z m0-21c1 0 3 0 4 0l-196-157-196 157c1 0 3 0 4 0z m21-256c0-12-9-21-21-21l-384 0c-12 0-21 9-21 21l0 235c0 2 0 4 1 6l205-164c2-2 5-2 7-2 2 0 5 0 7 2l205 164c1-2 1-4 1-6z"/>
<glyph unicode="&#57375;" d="M271 490c-4 2-9 1-12-2l-146-147-70 0c-24 0-43-19-43-42l0-64c0-24 19-43 43-43l70 0 146-146c2-2 5-3 8-3 1 0 2 0 4 0 4 2 6 6 6 10l0 427c0 4-2 8-6 10z m-15-411l-131 131c-2 2-5 3-8 3l-74 0c-12 0-22 10-22 22l0 64c0 11 10 21 22 21l74 0c3 0 6 1 8 3l131 131z m124 324c-4 4-11 3-15-2-4-4-3-11 2-15 36-30 60-77 60-119 0-43-24-90-60-120-5-4-6-11-2-15 2-3 5-4 8-4 3 0 5 1 7 2 41 35 68 88 68 137 0 48-27 102-68 136z m-43-53c-5 3-11 2-15-2-3-5-2-12 2-15 18-13 39-35 39-66 0-32-21-54-39-66-4-4-5-11-2-15 2-3 5-5 9-5 2 0 4 1 6 2 30 22 47 52 47 84 0 31-17 61-47 83z"/>
<glyph unicode="&#57376;" d="M117 192c6 0 11 5 11 11 0 6-5 10-11 10l-53 0c-12 0-21 10-21 22l0 64c0 11 9 21 21 21l75 0c2 0 5 1 7 3l131 131 0-91c0-6 5-11 11-11 6 0 11 5 11 11l0 117c0 4-3 8-7 10-4 2-8 1-12-2l-146-147-70 0c-24 0-43-19-43-42l0-64c0-24 19-43 43-43z m235 85c-6 0-11-4-11-10 0-24-19-43-42-43l0 11c0 6-5 10-11 10-6 0-11-4-11-10l0-156-56 57c-4 4-11 4-15 0-4-5-4-11 0-16l74-74c2-2 5-3 8-3 1 0 3 0 4 0 4 2 7 6 7 10l0 150c35 0 64 28 64 64 0 6-5 10-11 10z m136 211c-5 4-11 4-16 0l-426-427c-4-4-4-11 0-15 2-2 5-3 7-3 3 0 6 1 8 3l427 426c4 5 4 11 0 16z"/>
<glyph unicode="&#57377;" d="M456 318c-20 19-47 30-75 31-27 50-79 82-136 82-77 0-141-58-152-133-22 2-43-5-61-19-20-17-32-42-32-68 0-25 8-46 23-61 26-25 64-26 69-26 0 0 0 0 0 0l41 0c6 0 11 5 11 10 0 6-5 11-11 11l-41 0c0 0-33 0-54 20-11 11-17 27-17 46 0 20 9 39 25 51 15 13 35 18 55 13l12-2 1 12c4 70 62 125 131 125 51 0 98-30 120-76l3-7 7 1c25 1 48-8 66-26 18-17 28-40 28-65 0-77-73-91-82-92l-30 0c-6 0-11-5-11-11 0-5 5-10 11-10l31 0 2 0c1 0 101 14 101 113 0 30-13 59-35 81z m-154-225l-46-46 0 188c0 6-5 10-11 10-6 0-10-4-10-10l0-188-46 46c-4 4-11 4-15 0-4-4-4-11 0-15l64-64c1-1 2-2 3-3 2 0 3 0 4 0 2 0 3 0 4 0 2 1 3 2 4 3l64 64c4 4 4 11 0 15-4 4-11 4-15 0z"/>
<glyph unicode="&#57378;" d="M456 318c-20 19-47 30-75 31-27 50-79 82-136 82-77 0-141-58-152-133-22 2-43-5-61-19-20-17-32-42-32-68 0-25 8-46 23-61 26-25 64-26 69-26 0 0 0 0 0 0l61 0c6 0 11 5 11 10 0 6-5 11-11 11l-61 0c0 0-33 0-54 20-11 11-17 27-17 46 0 20 9 39 25 51 15 13 35 18 55 13l12-2 1 12c4 70 62 125 131 125 51 0 98-30 120-76l3-7 7 1c25 1 48-8 66-26 18-17 28-40 28-65 0-77-73-91-82-92l-50 0c-6 0-11-5-11-11 0-5 5-10 11-10l51 0 2 0c1 0 101 14 101 113 0 30-13 59-35 81z m-203-54c-1 1-2 1-4 2-2 1-5 1-8 0-1-1-2-1-3-2l-64-64c-4-5-4-11 0-16 4-4 11-4 15 0l46 46 0-209c0-6 4-10 10-10 6 0 11 4 11 10l0 209 46-46c2-2 5-3 7-3 3 0 6 1 8 3 4 5 4 11 0 16z"/>
<glyph unicode="&#57379;" d="M501 85c-29 0-53 24-53 54l0 117c0 78-48 148-120 178-8 33-37 57-72 57-34 0-65-24-73-57-71-30-119-100-119-178l0-117c0-30-24-54-53-54-6 0-11-4-11-10 0-6 5-11 11-11l171 0c5-36 36-64 74-64 38 0 69 28 74 64l171 0c6 0 11 5 11 11 0 6-5 10-11 10z m-245-64c-26 0-47 19-52 43l104 0c-5-24-26-43-52-43z m-193 64c14 14 22 33 22 54l0 117c0 71 45 135 112 160 3 1 6 4 6 8 4 26 27 45 53 45 26 0 49-19 53-45 0-4 3-7 6-8 67-25 112-89 112-160l0-117c0-21 8-40 22-54z"/>
<glyph unicode="&#57372;" d="M267 213l-171 0c-6 0-11-4-11-10l0-128c0-6 5-11 11-11l171 0c6 0 10 5 10 11l0 128c0 6-4 10-10 10z m-11-128l-149 0 0 107 149 0z m256 267c0 2 0 3-1 4 0 0 0 0 0 0 0 1 0 1 0 1l-43 85c-2 4-5 6-9 6l-406 0c-4 0-7-2-9-6l-43-85c0 0 0-1 0-1 0 0 0 0 0 0-1-1-1-3-1-4 0 0 0 0 0 0l0-21c0-30 17-56 43-68l0-252c0-6 4-11 10-11l406 0c6 0 10 5 10 11l0 252c26 12 43 38 43 68l0 21c0 0 0 0 0 0z m-28 11l-81 0-16 64 65 0z m-100-72c-14-21-40-35-64-35-20 0-39 8-53 23l0 62 117 0z m-256 50l117 0 0-62c-14-15-33-23-53-23-24 0-50 14-64 35z m117 86l0-64-114 0 16 64z m120 0l16-64-114 0 0 64z m-305 0l65 0-16-64-81 0z m-39-96l0 10 86 0 0-48c-12-11-22-16-32-16-30 0-54 24-54 54z m299-310l0 171 85 0 0-171z m128 0l-21 0 0 182c0 6-5 10-11 10l-107 0c-6 0-10-4-10-10l0-182-235 0 0 236c4-1 7-1 11-1 17 0 31 8 41 16 19-23 48-37 76-37 24 0 46 9 64 24 18-15 40-24 64-24 28 0 57 14 76 37 11-8 24-16 41-16 4 0 8 0 11 1z m43 310c0-30-24-54-54-54-10 0-20 5-32 16l0 48 86 0z m-107-235c0-6-5-11-11-11-6 0-10 5-10 11 0 6 4 11 10 11 6 0 11-5 11-11z"/>
<glyph unicode="&#57380;" d="M512 395l0 0c0 1 0 2-1 3 0 0 0 1 0 1 0 1-1 2-2 3 0 0 0 0 0 0-1 1-1 1-2 2 0 0-1 0-1 0 0 0 0 0 0 0l-246 107c-2 1-6 1-8 0l-246-107c0 0 0 0 0 0 0 0-1 0-1 0-1-1-1-1-2-2 0 0 0 0 0 0-1-1-2-2-2-3 0 0 0-1 0-1-1-1-1-2-1-3l0 0c0 0 0 0 0 0l0-278c0-4 3-8 6-9l246-107c0 0 0 0 0 0 1-1 3-1 4-1 1 0 3 0 4 1 0 0 0 0 0 0l246 107c3 1 6 5 6 9l0 278c0 0 0 0 0 0z m-256 95l219-95-99-43-198 104z m0-190l-219 95 116 50 198-104z m-235 78l224-97 0-254-224 97z m470-254l-224-97 0 254 224 97z m-295 131l-117 53c-3 2-7 2-10 0-3-2-5-6-5-9l0-107c0-4 2-8 6-10l118-53c1-1 2-1 4-1 2 0 4 1 6 2 3 2 5 5 5 9l0 106c0 5-3 8-7 10z m-15-100l-96 44 0 83 96-44z"/>
<glyph unicode="&#57381;" d="M469 245c-14 0-28-7-35-19l-58 24c5 12 8 25 8 38 0 23-8 43-21 60l85 85c6-4 13-6 21-6 24 0 43 19 43 42 0 24-19 43-43 43-23 0-42-19-42-43 0-8 2-15 6-21l-85-85c-17 13-37 21-60 21-36 0-67-20-83-49l-120 52c0 2 0 5 0 8 0 23-19 42-42 42-24 0-43-19-43-42 0-24 19-43 43-43 13 0 24 6 32 16l121-52c-3-9-4-18-4-28 0-23 8-44 21-60l-149-149c-6 4-13 6-21 6-24 0-43-19-43-42 0-24 19-43 43-43 23 0 42 19 42 43 0 8-2 15-6 21l149 149c14-11 31-18 49-20l0-109c-18-5-32-22-32-41 0-24 19-43 43-43 24 0 43 19 43 43 0 19-14 36-32 41l0 109c27 3 51 17 66 38l62-25c0-1 0-2 0-3 0-24 19-43 42-43 24 0 43 19 43 43 0 23-19 42-43 42z m-426 128c-12 0-22 10-22 22 0 11 10 21 22 21 11 0 21-10 21-21 0-12-10-22-21-22z m426 118c12 0 22-10 22-22 0-11-10-21-22-21-11 0-21 10-21 21 0 12 10 22 21 22z m-426-470c-12 0-22 10-22 22 0 11 10 21 22 21 11 0 21-10 21-21 0-12-10-22-21-22z m266 22c0-12-9-22-21-22-12 0-21 10-21 22 0 11 9 21 21 21 12 0 21-10 21-21z m-21 170c-41 0-75 34-75 75 0 41 34 75 75 75 41 0 75-34 75-75 0-41-34-75-75-75z m181-32c-11 0-21 10-21 22 0 11 10 21 21 21 12 0 22-10 22-21 0-12-10-22-22-22z"/>
<glyph unicode="&#57370;" d="M403 264l-280 245c-5 4-11 4-15-1-4-4-4-11 1-15l271-237-271-237c-5-4-5-11-1-15 2-3 5-4 8-4 2 0 5 1 7 3l280 245c3 2 4 5 4 8 0 3-1 6-4 8z"/>
<glyph unicode="&#57382;" d="M403 19l-271 237 271 237c5 4 5 11 1 15-4 5-10 5-15 1l-280-245c-3-2-4-5-4-8 0-3 1-6 4-8l280-245c2-2 5-3 7-3 3 0 6 1 8 4 4 4 4 11-1 15z"/>
<glyph unicode="&#57383;" d="M509 123l-245 280c-4 5-12 5-16 0l-245-280c-4-5-4-11 1-15 4-4 11-4 15 1l237 271 237-271c2-3 5-4 8-4 3 0 5 1 7 3 5 4 5 10 1 15z"/>
<glyph unicode="&#57384;" d="M256 512c-106 0-192-86-192-192l0-288c0-18 14-32 32-32l11 0c17 0 32 14 32 32 0 6 4 11 10 11 6 0 11-5 11-11 0-18 14-32 32-32l21 0c18 0 32 14 32 32 0 6 5 11 11 11 6 0 11-5 11-11 0-18 14-32 32-32l21 0c18 0 32 14 32 32 0 6 5 11 11 11 6 0 10-5 10-11 0-18 15-32 32-32l11 0c18 0 32 14 32 32l0 288c0 106-86 192-192 192z m171-480c0-6-5-11-11-11l-11 0c-6 0-10 5-10 11 0 18-15 32-32 32-18 0-32-14-32-32 0-6-5-11-11-11l-21 0c-6 0-11 5-11 11 0 18-14 32-32 32-18 0-32-14-32-32 0-6-5-11-11-11l-21 0c-6 0-11 5-11 11 0 18-14 32-32 32-17 0-32-14-32-32 0-6-4-11-10-11l-11 0c-6 0-11 5-11 11l0 288c0 94 77 171 171 171 94 0 171-77 171-171z m-107 331c-24 0-43-19-43-43l0-64c0-24 19-43 43-43 24 0 43 19 43 43l0 64c0 24-19 43-43 43z m21-107c0-12-9-21-21-21-12 0-21 9-21 21 11 0 21 10 21 21 0 12-10 22-21 22l0 21c0 12 9 21 21 21 12 0 21-9 21-21z m-149 107c-24 0-43-19-43-43l0-64c0-24 19-43 43-43 24 0 43 19 43 43l0 64c0 24-19 43-43 43z m21-107c0-12-9-21-21-21-12 0-21 9-21 21 11 0 21 10 21 21 0 12-10 22-21 22l0 21c0 12 9 21 21 21 12 0 21-9 21-21z"/>
<glyph unicode="&#57385;" d="M181 320c-11 0-21-10-21-21 0-12 10-22 21-22 12 0 22 10 22 22 0 11-10 21-22 21z m107-171c0-11-10-21-21-21-12 0-22 10-22 21 0 12 10 22 22 22 11 0 21-10 21-22z m-139-53c0-12-9-21-21-21-12 0-21 9-21 21 0 12 9 21 21 21 12 0 21-9 21-21z m-64 107c0-12-9-22-21-22-12 0-21 10-21 22 0 11 9 21 21 21 12 0 21-10 21-21z m171-107c0-12-10-21-21-21-12 0-22 9-22 21 0 12 10 21 22 21 11 0 21-9 21-21z m64 107c0-12-10-22-21-22-12 0-22 10-22 22 0 11 10 21 22 21 11 0 21-10 21-21z m107 170c0-11-10-21-22-21-11 0-21 10-21 21 0 12 10 22 21 22 12 0 22-10 22-22z m0-106c0-12-10-22-22-22-11 0-21 10-21 22 0 11 10 21 21 21 12 0 22-10 22-21z m42 182c0 0 0 0 0 0 0 3-1 5-3 7 0 0-1 0-1 0 0 0 0 1 0 1-1 0-2 1-3 1 0 0 0 0 0 0l-171 54c-2 0-4 0-6 0l-171-54c0 0 0 0 0 0-1 0-2-1-3-1 0 0 0-1 0-1-1 0-1 0-1 0-2-2-3-4-3-7 0 0 0 0 0 0 0-1 0-1 0-1l0-108-100-31c0 0 0 0 0 0-1-1-2-1-2-2-1 0-1 0-1 0 0 0 0 0 0 0-2-2-3-4-4-7 0 0 0 0 0-1 0 0 0 0 0 0l0-214c0-4 3-8 6-9l171-75c0 0 0 0 1 0 1-1 2-1 3-1 2 0 3 0 4 1 0 0 0 0 1 0l170 75c4 1 7 5 7 9l0 100 100 40c4 1 6 5 6 10l0 213c0 0 0 0 0 1z m-181 41l138-43-138-52-138 52z m-107-244l-137 52 137 43 138-43z m-53 187l149-56 0-44-92 29c-3 1-5 1-7 0l-50-15z m-107-150l150-56 0-200-150 65z m320-191l-149-65 0 200 149 56z m107 150l-85-34 0 91c0 0 0 0 0 0 0 1 0 1-1 1 0 3-1 5-3 7 0 0 0 0 0 0-1 0-1 0-1 0-1 1-2 1-3 2 0 0 0 0 0 0l-56 17 0 51 149 56z m-160 185c12 0 21 9 21 21 0 12-9 21-21 21-12 0-21-9-21-21 0-12 9-21 21-21z"/>
<glyph unicode="&#57386;" d="M501 363l-202 0 0 10c0 30-24 54-54 54-29 0-53-24-53-54l0-53-85 0c-4 0-8-2-10-5l-52-95-42-42c-2-2-3-5-3-7l0-118c0-6 5-10 11-10l43 0c5-25 27-43 53-43 25 0 47 18 52 43l194 0c5-25 27-43 52-43 26 0 48 18 53 43l43 0c6 0 11 4 11 10l0 299c0 6-5 11-11 11z m-10-256l-278 0 0 234 278 0z m-138-43l-194 0c-2 8-5 15-10 21l214 0c-5-6-8-13-10-21z m-140 309c0 18 15 32 32 32 18 0 32-14 32-32l0-10-64 0z m-152-167c1 0 1 1 2 2l50 91 79 0 0-192-171 0 0 59z m-40-121l43 0c-4-6-8-13-10-21l-33 0z m86-64c-18 0-32 15-32 32 0 18 14 32 32 32 17 0 32-14 32-32 0-17-15-32-32-32z m298 0c-17 0-32 15-32 32 0 18 15 32 32 32 18 0 32-14 32-32 0-17-14-32-32-32z m53 43c-2 8-6 15-10 21l43 0 0-21z m-367 129c2-1 3-1 5-1 4 0 8 2 10 6l29 58 25 0c6 0 11 5 11 11 0 6-5 10-11 10l-32 0c-4 0-8-2-10-6l-32-64c-2-5 0-11 5-14z m186 52l0-42c0-6 5-11 11-11l32 0 0-32c0-6 5-11 11-11l42 0c6 0 11 5 11 11l0 32 32 0c6 0 11 5 11 11l0 42c0 6-5 11-11 11l-32 0 0 32c0 6-5 11-11 11l-42 0c-6 0-11-5-11-11l0-32-32 0c-6 0-11-5-11-11z m22-10l32 0c6 0 10 4 10 10l0 32 22 0 0-32c0-6 4-10 10-10l32 0 0-22-32 0c-6 0-10-4-10-10l0-32-22 0 0 32c0 6-4 10-10 10l-32 0z"/>
<glyph unicode="&#57387;" d="M501 469l-74 0 0 32c0 6-5 11-11 11l-64 0c-6 0-11-5-11-11l0-32-170 0 0 32c0 6-5 11-11 11l-64 0c-6 0-11-5-11-11l0-32-74 0c-6 0-11-4-11-10l0-448c0-6 5-11 11-11l490 0c6 0 11 5 11 11l0 448c0 6-5 10-11 10z m-138 22l42 0 0-64-42 0z m-256 0l42 0 0-64-42 0z m-22-43l0-32c0-6 5-11 11-11l64 0c6 0 11 5 11 11l0 32 170 0 0-32c0-6 5-11 11-11l64 0c6 0 11 5 11 11l0 32 64 0 0-85-470 0 0 85z m-64-427l0 320 470 0 0-320z m438 235c6 0 10 5 10 11 0 6-4 10-10 10l-75 0 0 32c0 6-5 11-11 11-6 0-10-5-10-11l0-32-96 0 0 32c0 6-5 11-11 11-6 0-11-5-11-11l0-32-96 0 0 32c0 6-4 11-10 11-6 0-11-5-11-11l0-32-75 0c-6 0-10-4-10-10 0-6 4-11 10-11l75 0 0-64-75 0c-6 0-10-5-10-11 0-6 4-10 10-10l75 0 0-64-75 0c-6 0-10-5-10-11 0-6 4-11 10-11l75 0 0-32c0-6 5-10 11-10 6 0 10 4 10 10l0 32 96 0 0-32c0-6 5-10 11-10 6 0 11 4 11 10l0 32 96 0 0-32c0-6 4-10 10-10 6 0 11 4 11 10l0 32 75 0c6 0 10 5 10 11 0 6-4 11-10 11l-75 0 0 64 75 0c6 0 10 4 10 10 0 6-4 11-10 11l-75 0 0 64z m-310 0l96 0 0-64-96 0z m0-149l0 64 96 0 0-64z m214 0l-96 0 0 64 96 0z m0 85l-96 0 0 64 96 0z"/>
<glyph unicode="&#57388;" d="M501 384l-53 0 0 32c0 6-5 11-11 11l-266 0 0 32c0 6-5 10-11 10l-149 0c-6 0-11-4-11-10l0-352c0-36 29-64 64-64l373 0c42 0 75 33 75 74l0 256c0 6-5 11-11 11z m-394-11l0-266c0-24-19-43-43-43-24 0-43 19-43 43l0 341 128 0 0-32c0-6 5-11 11-11l267 0 0-21-310 0c-6 0-10-5-10-11z m384-256c0-29-24-53-54-53l-325 0c10 11 16 26 16 43l0 256 363 0z"/>
<glyph unicode="&#57389;" d="M501 235l-120 0-40 100c-2 4-7 7-11 6-5 0-9-4-10-8l-52-243-55 349c-1 5-5 9-10 9-5 0-9-3-11-8l-61-205-120 0c-6 0-11-5-11-11 0-6 5-11 11-11l128 0c4 0 9 3 10 8l50 168 57-359c1-5 5-9 10-9 0 0 1 0 1 0 5 0 9 4 10 9l57 264 29-74c2-4 6-7 10-7l128 0c6 0 11 5 11 11 0 6-5 11-11 11z"/>
<glyph unicode="&#57390;" d="M405 491l-384 0 0-384 384 0z m-21-22l0-277-46 0-61 153c-2 4-6 7-10 7-4 0-8-2-10-6l-46-102-43 51c-2 2-5 4-9 4-3-1-6-3-8-6l-61-101-47 0 0 277z m-69-277l-200 0 46 78 44-53c2-3 6-4 10-4 3 1 7 3 8 7l43 94z m-272-64l0 43 341 0 0-43z m395 237c-5 1-11-4-11-9-1-6 4-12 10-12l31-3-27-297-308 28c-6 0-11-4-11-10-1-6 3-11 9-12l330-30 31 340z m-310-24c24 0 43 19 43 43 0 24-19 43-43 43-24 0-43-19-43-43 0-24 19-43 43-43z m0 64c12 0 21-9 21-21 0-12-9-21-21-21-12 0-21 9-21 21 0 12 9 21 21 21z"/>
<glyph unicode="&#57391;" d="M512 205c-1 1-1 1-1 2 0 0 0 0 0 0l-68 156 16 0c6 0 10 4 10 10 0 6-4 11-10 11l-173 0c-4 18-21 32-41 32-19 0-36-14-41-32l-151 0c-6 0-10-5-10-11 0-6 4-10 10-10l16 0-68-156c0 0 0 0 0 0 0-1 0-1-1-2 0-1 0-2 0-2 0 0 0 0 0 0 0-47 38-86 85-86 47 0 86 39 86 86 0 0 0 0 0 0 0 0-1 1-1 2 0 1 0 1 0 2 0 0 0 0 0 0l-68 156 102 0c4-15 16-27 31-31l0-311-54 0c-6 0-10-4-10-10 0-6 4-11 10-11l150 0c6 0 10 5 10 11 0 6-4 10-10 10l-75 0 0 311c15 4 27 16 30 31l124 0-68-156c0 0 0 0 0 0 0-1 0-1 0-2 0-1-1-2-1-2 0 0 0 0 0 0 0-47 39-86 86-86 47 0 85 39 85 86 0 0 0 0 0 0 0 0 0 1 0 2z m-427 142l59-134-117 0z m0-208c-31 0-58 23-63 53l126 0c-5-30-31-53-63-53z m160 213c-11 0-21 10-21 21 0 12 10 22 21 22 12 0 22-10 22-22 0-11-10-21-22-21z m240-139l-117 0 59 134z m-58-74c-32 0-58 23-63 53l126 0c-5-30-32-53-63-53z"/>
<glyph unicode="&#57392;" d="M507 371c-6 8-16 13-27 13l-256 0c-22 0-46-17-55-39l-60-149c-5-12-4-24 2-33 6-9 16-14 27-14l256 0c22 0 46 17 55 39l60 149c5 13 4 25-2 34z m-18-26l-60-149c-5-14-21-25-35-25l-256 0c-3 0-7 0-9 4-2 3-2 8 0 13l60 149c5 14 21 26 35 26l256 0c3 0 7-1 9-4 2-3 2-8 0-14z m-42-5l-145-81-77 79c-4 4-11 4-15 0-4-4-4-11 0-15l83-85c2-2 5-3 7-3 2 0 4 0 6 1l151 85c5 3 7 10 4 15-3 5-9 7-14 4z m-217-86l-74-53c-5-4-6-10-3-15 2-3 5-5 9-5 2 0 4 1 6 2l75 54c4 3 6 10 2 15-3 4-10 5-15 2z m144-3c-3 5-10 7-15 3-5-3-7-9-4-14l32-53c2-4 6-6 9-6 2 0 4 1 6 2 5 3 7 9 4 14z m-363 112l106 0c6 0 11 4 11 10 0 6-5 11-11 11l-106 0c-6 0-11-5-11-11 0-6 5-10 11-10z m42-171l-42 0c-6 0-11-5-11-11 0-6 5-10 11-10l42 0c6 0 11 4 11 10 0 6-5 11-11 11z m22 107l-64 0c-6 0-11-5-11-11 0-6 5-11 11-11l64 0c6 0 10 5 10 11 0 6-4 11-10 11z"/>
<glyph unicode="&#57393;" d="M309 491l-128 0c-6 0-10-5-10-11l0-128c0-6 4-11 10-11l128 0c6 0 11 5 11 11l0 128c0 6-5 11-11 11z m-10-128l-107 0 0 106 107 0z m-160 128l-128 0c-6 0-11-5-11-11l0-128c0-6 5-11 11-11l128 0c6 0 10 5 10 11l0 128c0 6-4 11-10 11z m-11-128l-107 0 0 106 107 0z m352 128l-128 0c-6 0-11-5-11-11l0-128c0-6 5-11 11-11l128 0c6 0 11 5 11 11l0 128c0 6-5 11-11 11z m-11-128l-106 0 0 106 106 0z m-160-43l-128 0c-6 0-10-5-10-11l0-128c0-6 4-10 10-10l128 0c6 0 11 4 11 10l0 128c0 6-5 11-11 11z m-10-128l-107 0 0 107 107 0z m-160 128l-128 0c-6 0-11-5-11-11l0-128c0-6 5-10 11-10l128 0c6 0 10 4 10 10l0 128c0 6-4 11-10 11z m-11-128l-107 0 0 107 107 0z m352 128l-128 0c-6 0-11-5-11-11l0-128c0-6 5-10 11-10l128 0c6 0 11 4 11 10l0 128c0 6-5 11-11 11z m-11-128l-106 0 0 107 106 0z m-160-43l-128 0c-6 0-10-4-10-10l0-128c0-6 4-11 10-11l128 0c6 0 11 5 11 11l0 128c0 6-5 10-11 10z m-10-128l-107 0 0 107 107 0z m-160 128l-128 0c-6 0-11-4-11-10l0-128c0-6 5-11 11-11l128 0c6 0 10 5 10 11l0 128c0 6-4 10-10 10z m-11-128l-107 0 0 107 107 0z m352 128l-128 0c-6 0-11-4-11-10l0-128c0-6 5-11 11-11l128 0c6 0 11 5 11 11l0 128c0 6-5 10-11 10z m-11-128l-106 0 0 107 106 0z"/>
<glyph unicode="&#57394;" d="M501 491l-490 0c-6 0-11-5-11-11l0-107c0-6 5-10 11-10l490 0c6 0 11 4 11 10l0 107c0 6-5 11-11 11z m-10-107l-470 0 0 85 470 0z m10-64l-490 0c-6 0-11-5-11-11l0-106c0-6 5-11 11-11l490 0c6 0 11 5 11 11l0 106c0 6-5 11-11 11z m-10-107l-470 0 0 86 470 0z m10-64l-490 0c-6 0-11-4-11-10l0-107c0-6 5-11 11-11l490 0c6 0 11 5 11 11l0 107c0 6-5 10-11 10z m-10-106l-470 0 0 85 470 0z"/>
<glyph unicode="&#57395;" d="M501 512l-490 0c-6 0-11-5-11-11l0-490c0-6 5-11 11-11l490 0c6 0 11 5 11 11l0 490c0 6-5 11-11 11z m-10-491l-470 0 0 470 470 0z m-203 342l149 0c6 0 11 4 11 10 0 6-5 11-11 11l-149 0c-6 0-11-5-11-11 0-6 5-10 11-10z m-64-64l213 0c6 0 11 4 11 10 0 6-5 11-11 11l-213 0c-6 0-11-5-11-11 0-6 5-10 11-10z m0-64l213 0c6 0 11 4 11 10 0 6-5 11-11 11l-213 0c-6 0-11-5-11-11 0-6 5-10 11-10z m0-64l213 0c6 0 11 4 11 10 0 6-5 11-11 11l-213 0c-6 0-11-5-11-11 0-6 5-10 11-10z m0-64l149 0c6 0 11 4 11 10 0 6-5 11-11 11l-149 0c-6 0-11-5-11-11 0-6 5-10 11-10z m-149 234l85 0c6 0 11 5 11 11l0 85c0 6-5 11-11 11l-85 0c-6 0-11-5-11-11l0-85c0-6 5-11 11-11z m10 86l64 0 0-64-64 0z m-10-235l85 0c6 0 11 5 11 11l0 106c0 6-5 11-11 11l-85 0c-6 0-11-5-11-11l0-106c0-6 5-11 11-11z m10 107l64 0 0-86-64 0z m-10-235l85 0c6 0 11 5 11 11l0 85c0 6-5 11-11 11l-85 0c-6 0-11-5-11-11l0-85c0-6 5-11 11-11z m10 85l64 0 0-64-64 0z"/>
<glyph unicode="&#57396;" d="M277 128c0-12-9-21-21-21-12 0-21 9-21 21 0 12 9 21 21 21 12 0 21-9 21-21z m-21 384c-141 0-256-115-256-256 0-141 115-256 256-256 141 0 256 115 256 256 0 141-115 256-256 256z m0-491c-129 0-235 106-235 235 0 129 106 235 235 235 129 0 235-106 235-235 0-129-106-235-235-235z m0 363c-41 0-75-33-75-75 0-6 5-10 11-10 6 0 11 4 11 10 0 30 24 54 53 54 29 0 53-24 53-54 0-29-24-53-53-53-6 0-11-5-11-11l0-64c0-6 5-10 11-10 6 0 11 4 11 10l0 54c36 6 64 37 64 74 0 42-34 75-75 75z"/>
<glyph unicode="&#57397;" d="M249 512l-4 0c-137-2-247-114-245-250 2-135 108-241 241-241l5 0c65 1 127 28 174 75 47 47 72 110 71 175-3 135-109 241-242 241z m156-401c-43-43-100-67-160-68l-4 0c-121 0-217 96-220 220-2 123 99 225 225 228l3 0c122 0 218-97 220-220 1-60-22-117-64-160z m-160 113c6 0 11 5 11 11l0 149c0 6-5 11-11 11-6 0-10-5-10-11l0-149c0-6 4-11 10-11z m0-43c0 0 0 0 0 0-12 0-21-10-21-21 0-12 10-21 21-21 0 0 1 0 1 0 11 0 21 10 21 21-1 12-10 21-22 21z"/>
<glyph unicode="&#57399;" d="M475 416l-438 0c-20 0-37-17-37-37l0-246c0-20 17-37 37-37l438 0c20 0 37 17 37 37l0 246c0 20-17 37-37 37z m-187-256l-64 0 0 96-48-62-48 62 0-96-64 0 0 192 64 0 48-64 48 64 64 0z m96-16l-80 112 48 0 0 96 64 0 0-96 48 0z"/>
<glyph unicode="&#57400;" d="M384 128l-256 0 0 255 64 1 0 64-128 0 0-384 384 0 0 160-64 0z m-128 320l64-64-96-96 64-64 96 96 64-64 0 192z"/>
<glyph unicode="&#57401;" d="M504 413c-9 7-22 6-30-3l-218-261-218 261c-8 9-21 10-30 3-9-8-11-21-3-30l235-281c4-5 10-8 16-8 6 0 12 3 16 8l235 281c8 9 6 22-3 30z"/>
<glyph unicode="&#57402;" d="M507 130l-235 280c-8 10-24 10-32 0l-235-280c-8-9-6-23 3-30 9-8 22-7 30 2l218 261 218-261c5-5 11-7 17-7 5 0 9 1 13 5 9 7 11 21 3 30z"/>
<glyph unicode="&#57403;" d="M149 256l261 218c9 8 10 21 3 30-8 9-21 11-30 3l-281-235c-5-4-8-10-8-16 0-6 3-12 8-16l280-235c4-3 9-5 14-5 6 0 12 3 17 8 7 9 6 22-3 30z"/>
<glyph unicode="&#57404;" d="M410 272l-281 235c-9 8-22 6-30-3-7-9-6-22 3-30l261-218-261-218c-9-8-10-21-3-30 5-5 11-8 17-8 5 0 10 2 13 5l281 235c5 4 8 10 8 16 0 6-3 12-8 16z"/>
<glyph unicode="&#57405;" d="M286 256l220 220c8 8 8 21 0 30-9 8-22 8-30 0l-220-220-220 220c-8 8-21 8-30 0-8-9-8-22 0-30l220-220-220-220c-8-8-8-21 0-30 4-4 10-6 15-6 6 0 11 2 15 6l220 220 220-220c4-4 9-6 15-6 5 0 11 2 15 6 8 9 8 22 0 30z"/>
<glyph unicode="&#57406;" d="M19 512l260 0c10 0 19-9 19-19l0-65c0-11-9-20-19-20l-260 0c-10 0-19 9-19 20l0 65c0 10 9 19 19 19z m0-207l474 0c10 0 19-9 19-20l0-65c0-10-9-19-19-19l-474 0c-10 0-19 9-19 19l0 65c0 11 9 20 19 20z m408 207l65 0c10 0 19-9 19-19l0-65c0-11-9-20-19-20l-65 0c-11 0-20 9-20 20l0 65c0 10 9 19 20 19z m-408-408l162 0c11 0 20-9 20-20l0-65c0-10-9-19-20-19l-162 0c-10 0-19 9-19 19l0 65c0 11 9 20 19 20z m311 1l162 0c10 0 19-9 19-20l0-65c0-10-9-19-19-19l-162 0c-11 0-20 9-20 19l0 65c0 11 9 20 20 20z"/>
<glyph unicode="&#57398;" d="M288 127c0 0 0 0 0 0-6 0-10-4-10-10l-1-75-256 1 0 426 257 0 0-75c0-6 5-11 11-11 0 0 0 0 0 0 6 0 10 5 10 11l1 85c0 6-5 11-11 11l-278 1c0 0 0 0 0 0-3 0-6-1-8-3-2-2-3-5-3-8l0-448c0-6 5-11 11-11l277 0 0 0c6 0 11 5 11 10l0 86c0 6-5 10-11 10z m223 122c-1 2-2 4-4 5l-104 105c-4 4-11 4-15 0-4-4-4-11 0-15l87-88-357 0c-6 0-11-5-11-11 0-6 5-11 11-11l359 1-90-90c-4-4-4-10 0-15 2-2 5-3 8-3 3 0 5 1 7 3l107 107c2 2 3 5 3 7 0 2 0 4-1 5z"/>
<glyph unicode="&#57407;" d="M501 277l-337 0 68 67c4 5 4 11 0 16-5 4-11 4-16 0l-85-86c-1-1-2-2-2-3-1-3-1-6 0-8 0-2 1-3 2-4l85-85c3-2 5-3 8-3 3 0 5 1 8 3 4 4 4 11 0 15l-68 67 337 0c6 0 11 5 11 11 0 6-5 10-11 10z m-490 235c-6 0-11-5-11-11l0-490c0-6 5-11 11-11 6 0 10 5 10 11l0 490c0 6-4 11-10 11z"/>
<glyph unicode="&#57408;" d="M511 249c0 2-1 3-2 4l-85 85c-5 4-11 4-16 0-4-4-4-11 0-15l68-67-209 0c-6 0-11-5-11-11 0-6 5-10 11-10l209 0-68-67c-4-5-4-11 0-16 3-2 5-3 8-3 3 0 5 1 8 3l85 86c1 1 2 2 2 3 1 3 1 6 0 8z m-351 263l-149 0c-6 0-11-5-11-11l0-490c0-6 5-11 11-11l149 0c6 0 11 5 11 11l0 490c0 6-5 11-11 11z m-11-491l-128 0 0 470 128 0z"/>
<glyph unicode="&#57409;" d="M501 427l-32 0 0 32c0 6-4 10-10 10l-128 0c-31 0-52-10-64-29-12 19-34 29-64 29l-128 0c-6 0-11-4-11-10l0-32-32 0c-6 0-11-5-11-11l0-341c0-6 5-11 11-11l128 0c19 0 64-5 64-53 0-6 5-11 11-11l64 0c6 0 10 5 10 11 0 48 45 53 64 53l128 0c6 0 11 5 11 11l0 341c0 6-5 11-11 11z m-170 21l117 0 0-320-117 0c-23 0-41-6-54-17l0 284c0 37 17 53 54 53z m-246 0l118 0c37 0 53-16 53-53l0-284c-12 11-30 17-53 17l-118 0z m406-363l-118 0c-47 0-79-24-84-64l-44 0c-5 40-37 64-85 64l-117 0 0 320 21 0 0-288c0-6 5-10 11-10l128 0c37 0 53-17 53-54 0-6 5-10 11-10 6 0 10 4 10 10 0 37 17 54 54 54l128 0c6 0 10 4 10 10l0 288 22 0z"/>
<glyph unicode="&#57410;" d="M481 395c-13-18-28-34-46-47 0-3 0-7 0-12 0-25-3-50-11-74-7-25-18-49-33-71-14-23-32-43-52-61-21-17-45-31-74-41-29-11-60-16-92-16-52 0-99 14-142 42 7-1 14-2 22-2 43 0 81 14 115 40-20 0-38 6-54 18-16 12-27 27-33 46 7-1 13-2 18-2 8 0 16 1 24 4-21 4-39 15-53 31-14 17-21 37-21 59l0 1c13-7 27-11 42-11-13 8-23 19-30 32-8 14-11 29-11 44 0 17 4 33 12 47 23-28 51-51 84-68 33-17 69-27 107-29-2 8-3 15-3 22 0 25 9 47 27 65 18 18 40 27 66 27 26 0 49-10 67-29 21 4 40 11 59 22-7-22-21-39-41-51 18 2 35 7 53 14z"/>
<glyph unicode="&#57411;" d="M355 338l-152-142-46 46c-4 4-11 4-15 0-4-4-4-11 0-15l53-53c2-2 5-3 8-3 2 0 5 1 7 3l160 149c4 4 4 11 0 15-4 4-10 4-15 0z m-99 174c-141 0-256-115-256-256 0-141 115-256 256-256 141 0 256 115 256 256 0 141-115 256-256 256z m0-491c-129 0-235 106-235 235 0 129 106 235 235 235 129 0 235-106 235-235 0-129-106-235-235-235z"/>
<glyph unicode="&#57412;" d="M146 73l73 0 0-73-73 0z m147 0l73 0 0-73-73 0z m-147 146l73 0 0-73-73 0z m147 0l73 0 0-73-73 0z m-147 147l73 0 0-73-73 0z m147 0l73 0 0-73-73 0z m-147 146l73 0 0-73-73 0z m147 0l73 0 0-73-73 0z"/>
<glyph unicode="&#57413;" d="M491 277l-213 0 0 214c0 11-10 21-21 21 0 0 0 0 0 0-12 0-22-10-22-21l0-214-214 0c-11 0-21-9-21-21 0-12 10-21 21-21l214 0 0-214c0-11 9-21 21-21l0 0c12 0 21 10 21 21l1 214 213 0c12 0 21 9 21 21 0 12-9 21-21 21z"/>
<glyph unicode="&#57414;" d="M224 512l-107 0c-6 0-10-5-10-11l0-490c0-6 4-11 10-11l107 0c6 0 11 5 11 11l0 490c0 6-5 11-11 11z m-11-491l-85 0 0 470 85 0z m182 491l-107 0c-6 0-11-5-11-11l0-490c0-6 5-11 11-11l107 0c6 0 10 5 10 11l0 490c0 6-4 11-10 11z m-11-491l-85 0 0 470 85 0z"/>
<glyph unicode="&#57415;" d="M506 266l-491 245c-3 2-7 1-10-1-3-2-5-5-5-9l0-490c0-4 2-7 5-9 2-1 4-2 6-2 1 0 3 0 4 1l491 245c4 2 6 6 6 10 0 4-2 8-6 10z m-485-238l0 456 456-228z"/>
</font></defs></svg>
<font id="icomoon" horiz-adv-x="1024">
<font-face units-per-em="1024" ascent="960" descent="-64" />
<missing-glyph horiz-adv-x="1024" />
<glyph unicode="&#x20;" d="" />
<glyph unicode="&#xe000;" glyph-name="uniE000" d="M512 960c-282 0-512-230-512-512 0-136 52-264 148-360 98-98 226-152 364-152s268 54 364 152c0 0 0 0 0 0 96 96 148 224 148 360 0 282-230 512-512 512zM512-22c-118 0-228 44-314 122 44 24 108 46 172 70 22 8 44 16 64 24 8 2 14 10 14 20v106c0 10-6 18-14 20-2 0-50 20-50 108 0 12-8 22-20 22-2 0-6 8-6 20s4 20 4 22c12 0 22 10 22 22 0 4-2 10-6 22-6 22-22 82-8 102 2 2 6 6 16 6 6 0 10-2 16-2 10-2 22 4 24 16 6 28 56 48 118 48s112-20 118-48c10-40-8-94-16-120-4-12-6-18-6-24 0-12 8-22 20-22 2-2 6-10 6-22s-4-20-4-20c-12 0-22-10-22-22 0-88-48-108-50-108-8-2-14-10-14-20v-106c0-10 6-18 14-20 22-10 46-18 68-26 64-24 126-46 168-68-86-78-196-122-314-122zM858 130c-44 28-110 52-184 78-18 6-38 14-56 20v78c22 14 60 48 64 126 16 10 28 32 28 58s-10 46-24 56c12 32 30 92 18 142-16 60-96 80-160 80-58 0-128-16-152-62-30 2-46-12-56-22-26-36-8-102 2-138-14-10-24-30-24-56s12-48 28-58c4-78 42-112 64-126v-78c-18-6-34-12-50-18-70-26-142-52-190-80-80 88-124 200-124 318 0 258 212 470 470 470s470-212 470-470c0-118-44-230-124-318z" />
<glyph unicode="&#xe001;" glyph-name="uniE001" d="M1018-28l-384 384c0 0 0 0 0 0 56 64 92 148 92 242 0 200-164 362-364 362s-362-162-362-362c0-200 162-364 362-364 94 0 178 36 242 92 0 0 0 0 0 0l384-384c4-4 10-6 14-6 6 0 12 2 16 6 8 8 8 22 0 30zM362 278c-176 0-320 142-320 320 0 176 144 320 320 320 178 0 320-144 320-320 0-178-142-320-320-320z" />
<glyph unicode="&#xe002;" glyph-name="uniE002" d="M716 680l-534-278c-8-4-14-14-10-24 2-8 10-16 20-16h234v-234c0-10 8-18 16-20 2-2 4-2 6-2 8 0 16 4 18 12l278 534c4 8 4 18-4 24-6 8-16 8-24 4zM470 216v168c0 12-10 22-22 22h-168l396 206zM512 960c-282 0-512-230-512-512s230-512 512-512c282 0 512 230 512 512s-230 512-512 512zM512-22c-258 0-470 212-470 470s212 470 470 470c258 0 470-212 470-470s-212-470-470-470z" />
<glyph unicode="&#xe003;" glyph-name="uniE003" d="M874 768c-96 96-226 150-362 150s-266-54-362-150c-200-200-200-526 0-724 20-20 46-32 76-32 28 0 54 12 74 32 42 40 42 108 0 150-4 4-6 10-6 16 0 4 2 10 6 14 8 8 22 8 30 0l182-180c48-50 112-76 182-76 68 0 132 26 180 76 200 198 200 524 0 724zM844 74c-40-40-94-64-150-64-58 0-112 24-152 64l-180 180c-12 12-28 20-46 20s-34-8-46-20c-12-12-18-28-18-44 0-18 6-34 18-46 26-24 26-66 0-90-24-24-66-24-90 0-182 182-182 480 0 664 88 88 206 136 332 136s244-48 332-136c182-184 182-482 0-664zM694 532c22 0 44 8 60 24s24 38 24 60c0 24-8 44-24 60-32 34-90 34-122 0-16-16-24-36-24-60 0-22 8-44 24-60s38-24 62-24zM662 646c8 8 20 14 32 14 10 0 22-6 30-14s12-18 12-30c0-10-4-22-12-30-16-16-46-16-62 0-8 8-12 20-12 30 0 12 4 22 12 30zM856 450c-24 24-66 24-90 0-26-24-26-64 0-90 12-12 28-18 44-18 18 0 34 6 46 18s18 28 18 46c0 16-6 32-18 44zM826 390c-8-8-22-8-30 0s-8 22 0 30c4 4 8 6 14 6s12-2 16-6c4-4 6-8 6-14s-2-12-6-16zM692 300c-28 0-54-10-74-30s-32-48-32-76c0-28 12-56 32-76s46-30 76-30c28 0 54 10 74 30s32 48 32 76c0 28-12 56-32 76s-46 30-76 30zM738 148c-24-24-66-24-90 0-12 12-18 30-18 46 0 18 6 34 18 46s28 18 46 18c16 0 32-6 44-18s20-28 20-46c0-16-8-34-20-46zM376 722c-16-16-24-38-24-60 0-24 8-44 24-60s38-26 60-26c24 0 44 10 60 26 18 16 26 38 26 60s-10 44-26 60c-32 32-88 32-120 0zM466 632c-16-16-44-16-60 0-8 8-12 18-12 30s4 22 12 30c8 8 20 12 30 12 12 0 22-4 30-12s14-18 14-30c0-12-6-22-14-30z" />
<glyph unicode="&#xe004;" glyph-name="uniE004" d="M918 960h-812c-12 0-20-10-20-22v-980c0-12 8-22 20-22h812c12 0 20 10 20 22v980c0 12-8 22-20 22zM896-22h-768v940h106v-44h-20v-84h84v84h-20v44h128v-44h-22v-84h86v84h-22v44h128v-44h-22v-84h86v84h-22v44h128v-44h-20v-84h84v84h-20v44h106zM746 662h-468c-12 0-22-10-22-22s10-22 22-22h468c12 0 22 10 22 22s-10 22-22 22zM746 534h-468c-12 0-22-10-22-22s10-22 22-22h468c12 0 22 10 22 22s-10 22-22 22zM746 406h-468c-12 0-22-10-22-22s10-22 22-22h468c12 0 22 10 22 22s-10 22-22 22zM746 278h-468c-12 0-22-10-22-22s10-22 22-22h468c12 0 22 10 22 22s-10 22-22 22zM746 150h-468c-12 0-22-10-22-22s10-22 22-22h468c12 0 22 10 22 22s-10 22-22 22z" />
<glyph unicode="&#xe005;" glyph-name="uniE005" d="M542 448l476 474c10 8 10 22 0 30-8 10-22 10-30 0l-476-474-474 476c-8 10-22 10-30 0-10-8-10-22 0-30l474-476-476-474c-10-8-10-22 0-30 4-4 8-8 14-8s12 4 16 8l476 474 474-476c4-4 10-6 16-6s10 2 14 6c10 8 10 22 0 30z" />
<glyph unicode="&#xe006;" glyph-name="uniE006" d="M960 490h-448v448c0 12-8 22-20 22 0 0 0 0 0 0-12 0-22-10-22-22v-448h-448c-12 0-22-8-22-20s10-22 22-22h448v-448c0-12 8-22 20-22s22 10 22 22v448h448c12 0 22 10 22 22s-10 20-22 20z" />
<glyph unicode="&#xe007;" glyph-name="uniE007" d="M962 264c-52 52-128 70-198 46l-134 134 134 136c20-6 40-10 62-10 52 0 100 20 136 56 56 56 70 136 40 208-2 6-8 10-16 12-6 2-14 0-18-6l-76-78h-60v66l76 76c4 4 6 12 6 18-2 8-6 14-14 16-24 10-48 16-74 16-52 0-100-20-136-56-52-52-70-128-46-198l-136-134-134 134c24 70 6 146-46 198-56 56-136 72-208 40-6-2-12-8-12-16-2-6 0-14 6-18l78-76v-66h-66l-76 78c-4 6-12 8-20 6-6-2-12-6-14-12-32-72-16-154 40-210 52-52 128-68 198-44l134-136-134-134c-20 6-42 10-62 10-52 0-100-20-136-56-56-56-72-138-40-210 2-8 8-12 14-14 8 0 14 2 20 6l76 76h66v-60l-78-76c-6-4-8-12-6-20 0-6 6-12 12-14 24-10 50-16 74-16 52 0 100 20 136 56 50 52 68 128 44 198l134 134 136-134c-24-70-6-146 46-198 36-36 86-56 136-56 24 0 50 4 74 16 8 2 12 8 14 14 0 8-2 14-6 20l-76 76v60h60l76-76c4-4 12-6 18-6 8 2 14 6 16 14 32 72 16 154-40 210zM274 620c-6 6-16 6-24 4-56-24-120-12-164 30-34 36-50 84-42 130l58-58c4-4 8-6 14-6h98c12 0 20 8 20 20v98c0 4-2 10-6 14l-58 56c46 8 92-6 128-40 42-44 56-108 32-164-4-8-2-18 4-24l144-144-60-62zM330 186c24-56 12-122-30-164-36-34-84-50-130-42l58 58c4 4 6 8 6 14v90c0 12-8 22-20 22h-98c-6 0-10-2-14-6l-58-56c-8 48 8 96 42 132 28 28 66 44 106 44 20 0 40-4 58-12 8-4 18-2 24 4l410 410c6 6 8 16 4 24-24 56-12 120 32 164 28 28 66 42 106 42 8 0 18 0 26-2l-56-56c-4-4-6-10-6-14v-98c0-12 8-20 20-20h92c4 0 10 2 14 6l56 58c8-46-6-92-40-128-28-28-66-44-106-44-20 0-40 4-58 12-8 4-18 2-24-4l-410-410c-6-6-8-16-4-24zM972 102l-56 56c-4 4-10 6-14 6h-92c-12 0-20-10-20-22v-90c0-6 2-10 6-14l56-58c-48-8-96 8-132 42-44 44-56 108-32 164 4 8 2 18-4 24l-146 144 62 60 144-144c6-6 16-8 24-4 56 24 120 10 164-32 34-36 50-84 40-132z" />
<glyph unicode="&#xe008;" glyph-name="uniE008" d="M1002 534h-122c-8 34-18 70-32 98l86 88c4 4 6 8 6 14s-2 12-6 16l-120 120c-8 8-22 8-30 0l-88-86c-28 14-64 24-98 32v122c0 12-10 22-22 22h-128c-12 0-22-10-22-22v-122c-34-8-70-18-98-32l-88 86c-8 8-22 8-30 0l-120-120c-8-8-8-22 0-30l86-88c-14-28-24-64-32-98h-122c-12 0-22-10-22-22v-128c0-12 10-22 22-22h122c8-34 18-70 32-98l-86-88c-4-4-6-8-6-14s2-12 6-16l120-120c8-8 22-8 30 0l88 86c28-14 64-24 98-32v-122c0-12 10-22 22-22h128c12 0 22 10 22 22v122c34 8 70 18 98 32l88-86c8-8 22-8 30 0l120 120c8 8 8 22 0 30l-86 88c14 28 24 64 32 98h122c12 0 22 10 22 22v128c0 12-10 22-22 22zM982 406h-118c-10 0-18-8-20-16-6-24-22-88-40-120-6-8-4-18 2-26l84-82-92-92-82 84c-8 6-18 8-26 2-32-18-96-34-120-40-8-2-16-10-16-20v-118h-84v118c0 10-8 18-16 20-24 6-88 22-120 40-8 6-18 4-26-2l-82-84-92 92 84 82c6 8 8 18 2 26-18 32-34 96-40 120-2 8-10 16-20 16h-118v84h118c10 0 18 8 20 16 6 24 22 88 40 120 6 8 4 18-2 26l-84 82 92 92 82-84c8-6 18-8 26-2 32 18 96 34 118 40 10 2 18 10 18 20v118h84v-118c0-10 8-18 16-20 38-10 92-24 120-40 8-6 18-4 26 2l82 84 92-92-84-82c-6-8-8-18-2-26 18-32 34-96 40-118 2-10 10-18 20-18h118zM512 662c-118 0-214-96-214-214s96-214 214-214c118 0 214 96 214 214s-96 214-214 214zM512 278c-94 0-170 76-170 170s76 170 170 170c94 0 170-76 170-170s-76-170-170-170z" />
<glyph unicode="&#xe009;" glyph-name="uniE009" d="M1018 334l-620 620c-4 4-8 6-14 6h-362c-6 0-12-2-16-6s-6-10-6-16v-362c0-6 2-10 6-14l620-620c4-4 10-6 14-6 2 0 4 0 6 0 8 2 12 8 16 16l80 266 266 80c8 4 14 8 16 16s0 16-6 20zM720 256c-8-4-14-8-16-16l-74-242-588 588v332h332l588-588zM234 832c-58 0-106-48-106-106 0-60 48-108 106-108 60 0 108 48 108 108 0 58-48 106-108 106zM234 662c-34 0-64 28-64 64 0 34 30 64 64 64 36 0 64-30 64-64 0-36-28-64-64-64z" />
<glyph unicode="&#xe00a;" glyph-name="uniE00A" d="M1002 832h-980c-12 0-22-10-22-22v-768c0-12 10-20 22-20h980c12 0 22 8 22 20v768c0 12-10 22-22 22zM982 64h-940v726h940zM106 534h812c12 0 20 8 20 20v128c0 12-8 22-20 22h-812c-12 0-20-10-20-22v-128c0-12 8-20 20-20zM128 662h768v-86h-768zM448 448h-256c-12 0-22-10-22-22s10-20 22-20h256c12 0 22 8 22 20s-10 22-22 22zM448 362h-298c-12 0-22-8-22-20s10-22 22-22h298c12 0 22 10 22 22s-10 20-22 20zM448 278h-298c-12 0-22-10-22-22s10-22 22-22h298c12 0 22 10 22 22s-10 22-22 22zM448 192h-298c-12 0-22-10-22-22s10-20 22-20h298c12 0 22 8 22 20s-10 22-22 22zM874 448h-298c-12 0-22-10-22-22s10-20 22-20h298c12 0 22 8 22 20s-10 22-22 22zM874 362h-298c-12 0-22-8-22-20s10-22 22-22h298c12 0 22 10 22 22s-10 20-22 20zM874 278h-298c-12 0-22-10-22-22s10-22 22-22h298c12 0 22 10 22 22s-10 22-22 22zM832 192h-256c-12 0-22-10-22-22s10-20 22-20h256c12 0 22 8 22 20s-10 22-22 22z" />
<glyph unicode="&#xe00b;" glyph-name="uniE00B" d="M512 960c-282 0-512-230-512-512s230-512 512-512c282 0 512 230 512 512s-230 512-512 512zM512-22c-258 0-470 212-470 470s212 470 470 470c258 0 470-212 470-470s-212-470-470-470zM784 720c-8 8-22 8-30 0l-198-198c-14 6-28 12-44 12-48 0-86-38-86-86s38-86 86-86c48 0 86 38 86 86 0 16-6 30-12 44l198 198c8 8 8 22 0 30zM512 406c-24 0-42 18-42 42s18 42 42 42c24 0 42-18 42-42s-18-42-42-42zM210 440c0 12-8 22-20 22h-86c-12 0-22-10-22-22s10-22 22-22h86c12 0 20 10 20 22zM208 346l-78-34c-12-4-16-16-12-28 4-8 12-12 20-12 2 0 4 0 8 2l78 32c12 4 16 16 12 28-4 10-16 16-28 12zM894 312l-78 34c-12 4-24-2-28-12-4-12 0-24 12-28l78-32c2-2 6-2 8-2 8 0 16 4 20 12 4 12 0 24-12 28zM918 470h-86c0 0 0 0 0 0-12 0-22-10-22-22s10-22 22-22h86c12 0 20 10 20 22s-8 22-20 22zM808 550c2 0 6 0 8 0l78 34c12 4 16 16 12 28-4 10-16 16-28 10l-78-32c-12-4-16-16-12-28 4-8 12-12 20-12zM626 724c2-2 6-2 8-2 8 0 16 6 20 14l32 78c6 12 0 24-10 28-12 4-24 0-28-12l-34-78c-4-12 2-24 12-28zM510 738c12 0 20 10 20 22v86c0 12-8 20-20 20s-22-8-22-20v-86c0-12 10-22 22-22zM370 736c4-8 12-14 20-14 2 0 6 0 8 2 10 4 16 16 12 28l-34 78c-4 12-16 16-28 12-10-4-16-16-10-28zM300 690l-60 60c-8 8-22 8-30 0s-8-22 0-30l60-60c4-4 10-8 16-8s10 4 14 8c10 8 10 20 0 30zM224 590l-78 32c-12 6-24 0-28-10-4-12 0-24 12-28l78-34c2 0 6 0 8 0 8 0 16 4 20 12 4 12 0 24-12 28zM704 278h-384c-12 0-22-10-22-22v-128c0-12 10-22 22-22h384c12 0 22 10 22 22v128c0 12-10 22-22 22zM682 150h-340v84h340z" />
<glyph unicode="&#xe00c;" glyph-name="uniE00C" d="M400 826c-10 8-22 8-32 0l-362-362c-8-10-8-22 0-32l362-362c6-4 10-6 16-6s10 2 16 6c8 8 8 22 0 30l-348 348 348 348c8 8 8 22 0 30zM1018 464l-362 362c-10 8-22 8-32 0-8-8-8-22 0-30l348-348-348-348c-8-8-8-22 0-30 6-4 10-6 16-6s10 2 16 6l362 362c8 10 8 22 0 32z" />
<glyph unicode="&#xe00d;" glyph-name="uniE00D" d="M256 490h214v44c0 32-26 66-58 74l-92 26v34c38 28 64 76 64 132 0 88-66 160-150 160-82 0-148-72-148-160 0-56 24-104 64-132v-34l-94-26c-32-8-56-42-56-74v-44zM234 918c48 0 90-36 102-84-6-2-14-4-24-2s-28 6-38 24c-2 6-8 10-14 12-8 0-14-2-20-6-30-32-78-34-106-24 16 46 54 80 100 80zM128 796c38-12 86-8 124 20 14-14 32-24 54-26 4-2 10-2 16-2s12 2 18 2c-2-60-50-110-106-110-58 0-104 52-106 116zM68 568l124 34v42c14-4 28-6 42-6 16 0 30 2 44 6v-42l124-34c12-4 24-20 24-34h-384c0 14 12 30 26 34zM968 608l-94 26v34c40 28 64 76 64 132 0 88-66 160-148 160-84 0-150-72-150-160 0-56 26-104 64-132v-34l-92-26c-32-8-58-42-58-74v-44h470v44c0 32-24 66-56 74zM790 918c48 0 88-36 102-84-8-2-16-4-26-2s-28 6-36 24c-4 6-10 10-16 12-6 0-14-2-18-6-32-32-78-34-108-24 16 46 56 80 102 80zM682 796c38-12 86-8 126 20 12-14 32-24 52-26 6 0 10-2 16-2s14 2 20 4c-4-62-50-112-106-112-58 0-106 52-108 116zM810 534h-212c0 14 12 30 24 34l124 34v42c14-4 28-6 44-6 14 0 28 2 42 6v-42l124-34c14-4 26-20 26-34zM690 54l-92 26v32c38 30 64 78 64 132 0 90-68 162-150 162s-150-72-150-162c0-54 26-102 64-132v-32l-92-26c-32-10-56-42-56-76v-42h468v42c0 34-24 66-56 76zM512 362c48 0 88-34 102-82-8-2-16-4-26-2s-26 6-36 24c-4 6-8 10-16 10-6 2-12 0-18-6-30-30-78-34-106-22 14 46 54 78 100 78zM406 242c38-12 86-8 124 18 14-12 32-22 52-24 4 0 10-2 14-2 8 0 16 2 22 4-2-62-50-112-106-112-58 0-104 52-106 116zM534-22h-214c0 14 12 30 26 34l124 36v42c12-4 28-6 42-6s30 2 42 6v-42l124-36c14-4 26-20 26-34zM292 304c8 10 8 22 0 32l-106 106c-8 8-22 8-30 0s-8-22 0-30l106-108c4-4 10-6 16-6 4 0 10 2 14 6zM838 442l-106-106c-8-10-8-22 0-32 4-4 10-6 14-6 6 0 12 2 16 6l106 108c8 8 8 22 0 30s-22 8-30 0z" />
<glyph unicode="&#xe00e;" glyph-name="uniE00E" d="M512 746c-152 0-278-124-278-276 0-122 78-228 192-264v-36c0-12 10-20 22-20h128c12 0 22 8 22 20v36c114 36 192 142 192 264 0 152-126 276-278 276zM570 242c-8-2-16-10-16-20v-30h-84v30c0 10-8 18-16 20-104 28-176 120-176 228 0 128 104 234 234 234s234-106 234-234c0-108-72-200-176-228zM534 22h-44c-12 0-20-10-20-22s8-22 20-22h44c12 0 20 10 20 22s-8 22-20 22zM576 106h-128c-12 0-22-8-22-20s10-22 22-22h128c12 0 22 10 22 22s-10 20-22 20zM512 790c12 0 22 8 22 20v86c0 12-10 22-22 22s-22-10-22-22v-86c0-12 10-20 22-20zM938 490h-84c-12 0-22-8-22-20s10-22 22-22h84c12 0 22 10 22 22s-10 20-22 20zM170 490h-84c-12 0-22-8-22-20s10-22 22-22h84c12 0 22 10 22 22s-10 20-22 20zM256 696c4-4 10-6 14-6 6 0 12 2 16 6 8 8 8 22 0 30l-90 90c-10 8-22 8-32 0-8-8-8-22 0-30zM754 690c4 0 10 2 14 6l90 90c10 8 10 22 0 30-8 8-20 8-30 0l-90-90c-8-8-8-22 0-30 4-4 10-6 16-6z" />
<glyph unicode="&#xe00f;" glyph-name="uniE00F" d="M1016 744c-8 8-22 8-30-2l-474-542-474 542c-8 10-22 10-30 2-10-8-10-20-2-30l490-560c4-6 10-8 16-8s12 2 16 8l490 560c8 10 8 22-2 30z" />
<glyph unicode="&#xe010;" glyph-name="uniE010" d="M912 726l-122 122c-8 8-22 8-30 0l-16-18c-18 12-38 18-58 18-30 0-56-10-76-30l-242-242c-8-8-8-22 0-30 4-4 10-6 16-6 4 0 10 2 14 6l242 240c18 20 48 24 72 14l-192-194-424-422c0 0 0 0 0-2-2 0-2-2-4-6l-90-210c-4-8-2-18 4-24 4-4 10-6 16-6 2 0 6 0 8 2l210 90c0 0 0 0 0 0v0c4 2 6 2 6 4 2 0 2 0 2 0l422 424 242 240c4 4 6 10 6 16s-2 10-6 14zM62-2l58 134 76-76zM232 78l-90 90 392 392 90-90zM654 500l-90 90 196 198 16 14 90-90z" />
<glyph unicode="&#xe011;" glyph-name="uniE011" d="M930 778c-48 48-112 76-180 76-70 0-134-28-182-76l-512-512c-74-74-74-196 0-272 38-36 86-56 136-56s98 20 136 56l490 492c20 20 30 48 30 76s-10 54-30 76c-20 20-48 30-76 30s-56-10-76-30l-362-364c-8-8-8-22 0-30s22-8 30 0l364 362c24 26 66 26 90 0 12-12 18-28 18-44 0-18-6-34-18-46l-490-492c-58-58-154-58-212 0-58 60-58 154 0 212l512 512c40 40 94 62 152 62 56 0 110-22 150-62 84-84 84-218 0-302l-362-362c-8-8-8-22 0-30s22-8 30 0l362 362c100 100 100 262 0 362z" />
<glyph unicode="&#xe012;" glyph-name="uniE012" d="M982 832h-278v106c0 12-10 22-22 22h-340c-12 0-22-10-22-22v-106h-278c-12 0-20-10-20-22s8-20 20-20h108v-832c0-12 8-22 20-22h684c12 0 20 10 20 22v832h108c12 0 20 8 20 20s-8 22-20 22zM362 918h300v-86h-300zM832-22h-640v812h640zM342 662c-12 0-22-10-22-22v-490c0-12 10-22 22-22s20 10 20 22v490c0 12-8 22-20 22zM512 662c-12 0-22-10-22-22v-490c0-12 10-22 22-22s22 10 22 22v490c0 12-10 22-22 22zM662 640v-490c0-12 8-22 20-22s22 10 22 22v490c0 12-10 22-22 22s-20-10-20-22z" />
<glyph unicode="&#xe013;" glyph-name="uniE013" d="M832 512c-12 0-22-10-22-22v-512h-768v854h662c12 0 22 10 22 22s-10 20-22 20h-682c-12 0-22-8-22-20v-896c0-12 10-22 22-22h810c12 0 22 10 22 22v532c0 12-10 22-22 22zM1020 918c-12 26-36 42-62 42-16 0-32-6-44-20l-408-406c0-2-2-4-4-6l-60-120c-4-10-2-20 4-26 4-4 10-6 16-6 2 0 6 0 10 2l120 60c2 2 4 4 6 4l346 348c0 0 0 0 0 0s0 0 0 0l60 60c20 20 26 44 16 68zM570 476l-60-30 30 60 328 330 32-32zM974 880l-44-44-30 30 44 44c12 12 30 6 36-8 4-8 2-14-6-22z" />
<glyph unicode="&#xe014;" glyph-name="uniE014" d="M848 662l-122 122c-4 4-10 6-14 6-6 0-12-2-16-6l-376-378c0 0 0 0 0 0-2 0-2-2-2-2-2-2-2-2-4-4v-2c0 0 0 0 0 0l-90-210c-4-8-2-18 4-24 4-4 10-6 16-6 2 0 6 0 8 2l210 90c0 0 0 0 0 0h2c2 2 4 4 6 6l298 298c0 0 0 0 0 0s0 0 0 0l80 78c8 8 8 22 0 30zM454 300l-90 90 270 270 90-92zM342 354l76-76-134-58zM754 600l-90 90 48 48 90-90zM512 960c-282 0-512-230-512-512s230-512 512-512c282 0 512 230 512 512s-230 512-512 512zM512-22c-258 0-470 212-470 470s212 470 470 470c258 0 470-212 470-470s-212-470-470-470z" />
<glyph unicode="&#xe015;" glyph-name="uniE015" d="M512 362c-24 0-42-18-42-42 0-16 8-30 20-36v-114c0-12 10-20 22-20s22 8 22 20v114c12 6 20 20 20 36 0 24-18 42-42 42zM768 576v128c0 142-114 256-256 256s-256-114-256-256v-128h-128v-640h768v640zM298 704c0 118 96 214 214 214s214-96 214-214v-128h-428zM854-22h-684v556h684z" />
<glyph unicode="&#xe016;" glyph-name="uniE016" d="M682 346c-28 0-54 12-74 32l-4 4c-8 8-8 22 0 30s22 8 30 0l4-4c24-24 66-24 90 0l170 170c40 40 40 108 0 150l-76 74c-20 20-46 32-76 32-28 0-54-12-74-32l-170-168c-24-26-24-66 0-90l4-4c8-8 8-22 0-30s-22-8-30 0l-4 4c-42 40-42 108 0 150l170 170c28 28 64 42 104 42s78-14 106-42l76-76c58-58 58-152 0-212l-170-168c-20-20-46-32-76-32zM278-40c-40 0-78 14-106 42l-76 76c-58 58-58 152 0 210l170 170c20 20 46 32 76 32 28 0 54-12 74-32l4-4c8-8 8-22 0-30s-22-8-30 0l-4 4c-24 24-66 24-90 0l-170-170c-40-42-40-108 0-150l76-76c20-20 46-30 76-30 28 0 54 10 74 30l170 170c24 24 24 66 0 90l-4 4c-8 8-8 22 0 30s22 8 30 0l4-4c42-42 42-108 0-150l-170-170c-28-28-64-42-104-42zM346 230c-6 0-10 2-16 6-8 10-8 22 0 30l332 332c10 10 22 10 32 0 8-8 8-20 0-30l-332-332c-6-4-10-6-16-6z" />
<glyph unicode="&#xe017;" glyph-name="uniE017" d="M248 382l-156-62 54 96c6 10 4 20-4 28-64 50-100 122-100 198 0 152 154 276 342 276s342-124 342-276h42c0 176-172 318-384 318s-384-142-384-318c0-82 36-162 100-220l-76-134c-4-8-4-18 2-24 4-6 10-8 16-8 4 0 6 0 8 2l208 82c18-6 36-10 56-12l6 42c-20 4-40 8-58 14-4 0-10 0-14-2zM944 102c52 46 80 108 80 176 0 150-146 276-320 276s-320-126-320-276c0-154 140-282 306-282 0 0 0 0 0 0 42 0 82 8 122 24l162-62c2 0 4 0 8 0 6 0 12 2 16 6 6 6 6 16 2 24zM818 62c-2 2-4 2-8 2-2 0-6 0-8-2-36-16-74-24-112-24 0 0 0 0 0 0-142 0-264 110-264 240 0 126 128 234 278 234s278-108 278-234c0-62-26-114-78-154-8-6-10-18-6-26l40-80z" />
<glyph unicode="&#xe018;" glyph-name="uniE018" d="M512 960c-282 0-512-230-512-512s230-512 512-512c282 0 512 230 512 512s-230 512-512 512zM512-22c-258 0-470 212-470 470s212 470 470 470c258 0 470-212 470-470s-212-470-470-470zM832 426c-12 0-22-8-22-20 0-166-134-300-298-300s-298 134-298 300c0 12-10 20-22 20s-22-8-22-20c0-188 154-342 342-342s342 154 342 342c0 12-10 20-22 20zM234 512c12 0 22 10 22 22 0 34 28 64 64 64s64-30 64-64c0-12 10-22 22-22s20 10 20 22c0 58-48 106-106 106s-106-48-106-106c0-12 8-22 20-22zM618 512c12 0 22 10 22 22 0 34 28 64 64 64s64-30 64-64c0-12 10-22 22-22s20 10 20 22c0 58-48 106-106 106s-106-48-106-106c0-12 8-22 20-22z" />
<glyph unicode="&#xe019;" glyph-name="uniE019" d="M1022 582c-2 10-10 16-20 16h-346l-124 348c-2 8-10 14-20 14s-18-6-20-14l-124-348h-346c-10 0-18-6-20-16-4-8 0-18 6-22l288-226-124-370c-4-8 0-18 8-24 6-6 18-6 24 0l308 226 308-226c4-2 8-4 12-4s8 2 12 4c8 6 12 16 8 24l-124 370 288 226c8 4 10 14 6 22zM690 358c-6-6-10-14-6-24l106-320-266 196c-4 2-8 4-12 4s-8-2-12-4l-266-196 106 320c4 10 0 18-6 24l-250 196h300c10 0 18 6 20 14l108 306 108-306c2-8 10-14 20-14h300z" />
<glyph unicode="&#xe01a;" glyph-name="uniE01A" d="M806 464l-560 490c-10 8-22 8-30-2-8-8-8-22 2-30l542-474-542-474c-10-8-10-22-2-30 4-6 10-8 16-8 4 0 10 2 14 6l560 490c6 4 8 10 8 16s-2 12-8 16z" />
<glyph unicode="&#xe01b;" glyph-name="uniE01B" d="M0 576v-42c330 0 598-268 598-598h42c0 352-288 640-640 640zM0 960v-42c542 0 982-440 982-982h42c0 564-460 1024-1024 1024zM128 192c-70 0-128-58-128-128s58-128 128-128c70 0 128 58 128 128s-58 128-128 128zM128-22c-48 0-86 38-86 86s38 86 86 86c48 0 86-38 86-86s-38-86-86-86z" />
<glyph unicode="&#xe01c;" glyph-name="uniE01C" d="M534 362h-342c-12 0-22-8-22-20v-256c0-12 10-22 22-22h342c12 0 20 10 20 22v256c0 12-8 20-20 20zM512 106h-298v214h298zM1024 640c0 4 0 6-2 8 0 0 0 0 0 0 0 2 0 2 0 2l-86 170c-4 8-10 12-18 12h-812c-8 0-14-4-18-12l-86-170c0 0 0-2 0-2s0 0 0 0c-2-2-2-6-2-8 0 0 0 0 0 0v-42c0-60 34-112 86-136v-504c0-12 8-22 20-22h812c12 0 20 10 20 22v504c52 24 86 76 86 136v42c0 0 0 0 0 0zM968 662h-162l-32 128h130zM768 518c-28-42-80-70-128-70-40 0-78 16-106 46v124h234zM256 618h234v-124c-28-30-66-46-106-46-48 0-100 28-128 70zM490 790v-128h-228l32 128zM730 790l32-128h-228v128zM120 790h130l-32-128h-162zM42 598v20h172v-96c-24-22-44-32-64-32-60 0-108 48-108 108zM640-22v342h170v-342zM896-22h-42v364c0 12-10 20-22 20h-214c-12 0-20-8-20-20v-364h-470v472c8-2 14-2 22-2 34 0 62 16 82 32 38-46 96-74 152-74 48 0 92 18 128 48 36-30 80-48 128-48 56 0 114 28 152 74 22-16 48-32 82-32 8 0 16 0 22 2zM982 598c0-60-48-108-108-108-20 0-40 10-64 32v96h172zM768 128c0-12-10-22-22-22s-20 10-20 22c0 12 8 22 20 22s22-10 22-22z" />
<glyph unicode="&#xe01d;" glyph-name="uniE01D" d="M874 874c-8 8-22 8-30 0s-8-22 0-30c88-88 138-206 138-332s-50-244-138-332c-8-8-8-22 0-30 4-4 10-6 14-6 6 0 12 2 16 6 96 96 150 226 150 362s-54 266-150 362zM754 754c-8 8-22 8-30 0-10-10-10-22 0-30 56-58 86-132 86-212s-30-154-86-212c-10-8-10-22 0-30 4-4 8-6 14-6s12 2 16 6c64 66 100 150 100 242s-36 176-100 242zM42 512c0 126 50 244 138 332 8 8 8 22 0 30s-22 8-30 0c-96-96-150-226-150-362s54-266 150-362c4-4 10-6 16-6 4 0 10 2 14 6 8 8 8 22 0 30-88 88-138 206-138 332zM214 512c0 80 30 154 86 212 10 8 10 22 0 30-8 8-22 8-30 0-64-66-100-150-100-242s36-176 100-242c4-4 10-6 16-6s10 2 14 6c10 8 10 22 0 30-56 58-86 132-86 212zM512 662c-82 0-150-68-150-150 0-76 56-138 128-148v-342c0-12 10-22 22-22s22 10 22 22v342c72 10 128 72 128 148 0 82-68 150-150 150zM512 406c-58 0-106 48-106 106s48 106 106 106c58 0 106-48 106-106s-48-106-106-106z" />
<glyph unicode="&#xe01e;" glyph-name="uniE01E" d="M896 746h-768c-48 0-86-38-86-84v-470c0-48 38-86 86-86h768c48 0 86 38 86 86v470c0 46-38 84-86 84zM896 704c2 0 6 0 8 0l-392-314-392 314c2 0 6 0 8 0zM938 192c0-24-18-42-42-42h-768c-24 0-42 18-42 42v470c0 4 0 8 2 12l410-328c4-4 10-4 14-4s10 0 14 4l410 328c2-4 2-8 2-12z" />
<glyph unicode="&#xe01f;" glyph-name="uniE01F" d="M542 916c-8 4-18 2-24-4l-292-294h-140c-48 0-86-38-86-84v-128c0-48 38-86 86-86h140l292-292c4-4 10-6 16-6 2 0 4 0 8 0 8 4 12 12 12 20v854c0 8-4 16-12 20zM512 94l-262 262c-4 4-10 6-16 6h-148c-24 0-44 20-44 44v128c0 22 20 42 44 42h148c6 0 12 2 16 6l262 262zM760 742c-8 8-22 6-30-4-8-8-6-22 4-30 72-60 120-154 120-238 0-86-48-180-120-240-10-8-12-22-4-30 4-6 10-8 16-8s10 2 14 4c82 70 136 176 136 274 0 96-54 204-136 272zM674 636c-10 6-22 4-30-4-6-10-4-24 4-30 36-26 78-70 78-132 0-64-42-108-78-132-8-8-10-22-4-30 4-6 10-10 18-10 4 0 8 2 12 4 60 44 94 104 94 168 0 62-34 122-94 166z" />
<glyph unicode="&#xe020;" glyph-name="uniE020" d="M234 320c12 0 22 10 22 22s-10 20-22 20h-106c-24 0-42 20-42 44v128c0 22 18 42 42 42h150c4 0 10 2 14 6l262 262v-182c0-12 10-22 22-22s22 10 22 22v234c0 8-6 16-14 20s-16 2-24-4l-292-294h-140c-48 0-86-38-86-84v-128c0-48 38-86 86-86zM704 490c-12 0-22-8-22-20 0-48-38-86-84-86v22c0 12-10 20-22 20s-22-8-22-20v-312l-112 114c-8 8-22 8-30 0-8-10-8-22 0-32l148-148c4-4 10-6 16-6 2 0 6 0 8 0 8 4 14 12 14 20v300c70 0 128 56 128 128 0 12-10 20-22 20zM976 912c-10 8-22 8-32 0l-852-854c-8-8-8-22 0-30 4-4 10-6 14-6 6 0 12 2 16 6l854 852c8 10 8 22 0 32z" />
<glyph unicode="&#xe021;" glyph-name="uniE021" d="M912 572c-40 38-94 60-150 62-54 100-158 164-272 164-154 0-282-116-304-266-44 4-86-10-122-38-40-34-64-84-64-136 0-50 16-92 46-122 52-50 128-52 138-52 0 0 0 0 0 0h82c12 0 22 10 22 20 0 12-10 22-22 22h-82c0 0-66 0-108 40-22 22-34 54-34 92 0 40 18 78 50 102 30 26 70 36 110 26l24-4 2 24c8 140 124 250 262 250 102 0 196-60 240-152l6-14 14 2c50 2 96-16 132-52 36-34 56-80 56-130 0-154-146-182-164-184h-60c-12 0-22-10-22-22 0-10 10-20 22-20h66c2 0 202 28 202 226 0 60-26 118-70 162zM604 122l-92-92v376c0 12-10 20-22 20s-20-8-20-20v-376l-92 92c-8 8-22 8-30 0s-8-22 0-30l128-128c2-2 4-4 6-6 4 0 6 0 8 0 4 0 6 0 8 0 4 2 6 4 8 6l128 128c8 8 8 22 0 30s-22 8-30 0z" />
<glyph unicode="&#xe022;" glyph-name="uniE022" d="M912 572c-40 38-94 60-150 62-54 100-158 164-272 164-154 0-282-116-304-266-44 4-86-10-122-38-40-34-64-84-64-136 0-50 16-92 46-122 52-50 128-52 138-52 0 0 0 0 0 0h122c12 0 22 10 22 20 0 12-10 22-22 22h-122c0 0-66 0-108 40-22 22-34 54-34 92 0 40 18 78 50 102 30 26 70 36 110 26l24-4 2 24c8 140 124 250 262 250 102 0 196-60 240-152l6-14 14 2c50 2 96-16 132-52 36-34 56-80 56-130 0-154-146-182-164-184h-100c-12 0-22-10-22-22 0-10 10-20 22-20h106c2 0 202 28 202 226 0 60-26 118-70 162zM506 464c-2 2-4 2-8 4s-10 2-16 0c-2-2-4-2-6-4l-128-128c-8-10-8-22 0-32 8-8 22-8 30 0l92 92v-418c0-12 8-20 20-20s22 8 22 20v418l92-92c4-4 10-6 14-6 6 0 12 2 16 6 8 10 8 22 0 32z" />
<glyph unicode="&#xe023;" glyph-name="uniE023" d="M1002 106c-58 0-106 48-106 108v234c0 156-96 296-240 356-16 66-74 114-144 114-68 0-130-48-146-114-142-60-238-200-238-356v-234c0-60-48-108-106-108-12 0-22-8-22-20s10-22 22-22h342c10-72 72-128 148-128s138 56 148 128h342c12 0 22 10 22 22s-10 20-22 20zM512-22c-52 0-94 38-104 86h208c-10-48-52-86-104-86zM126 106c28 28 44 66 44 108v234c0 142 90 270 224 320 6 2 12 8 12 16 8 52 54 90 106 90s98-38 106-90c0-8 6-14 12-16 134-50 224-178 224-320v-234c0-42 16-80 44-108z" />
<glyph unicode="&#xe024;" glyph-name="uniE024" d="M1024 726v0c0 2 0 4-2 6 0 0 0 2 0 2 0 2-2 4-4 6 0 0 0 0 0 0-2 2-2 2-4 4 0 0-2 0-2 0s0 0 0 0l-492 214c-4 2-12 2-16 0l-492-214c0 0 0 0 0 0s-2 0-2 0c-2-2-2-2-4-4 0 0 0 0 0 0-2-2-4-4-4-6 0 0 0-2 0-2-2-2-2-4-2-6v0c0 0 0 0 0 0v-556c0-8 6-16 12-18l492-214c0 0 0 0 0 0 2-2 6-2 8-2s6 0 8 2c0 0 0 0 0 0l492 214c6 2 12 10 12 18v556c0 0 0 0 0 0zM512 916l438-190-198-86-396 208zM512 536l-438 190 232 100 396-208zM42 692l448-194v-508l-448 194zM982 184l-448-194v508l448 194zM392 446l-234 106c-6 4-14 4-20 0s-10-12-10-18v-214c0-8 4-16 12-20l236-106c2-2 4-2 8-2s8 2 12 4c6 4 10 10 10 18v212c0 10-6 16-14 20zM362 246l-192 88v166l192-88z" />
<glyph unicode="&#xe025;" glyph-name="uniE025" d="M938 426c-28 0-56-14-70-38l-116 48c10 24 16 50 16 76 0 46-16 86-42 120l170 170c12-8 26-12 42-12 48 0 86 38 86 84 0 48-38 86-86 86-46 0-84-38-84-86 0-16 4-30 12-42l-170-170c-34 26-74 42-120 42-72 0-134-40-166-98l-240 104c0 4 0 10 0 16 0 46-38 84-84 84-48 0-86-38-86-84 0-48 38-86 86-86 26 0 48 12 64 32l242-104c-6-18-8-36-8-56 0-46 16-88 42-120l-298-298c-12 8-26 12-42 12-48 0-86-38-86-84 0-48 38-86 86-86 46 0 84 38 84 86 0 16-4 30-12 42l298 298c28-22 62-36 98-40v-218c-36-10-64-44-64-82 0-48 38-86 86-86s86 38 86 86c0 38-28 72-64 82v218c54 6 102 34 132 76l124-50c0-2 0-4 0-6 0-48 38-86 84-86 48 0 86 38 86 86 0 46-38 84-86 84zM86 682c-24 0-44 20-44 44 0 22 20 42 44 42 22 0 42-20 42-42 0-24-20-44-42-44zM938 918c24 0 44-20 44-44 0-22-20-42-44-42-22 0-42 20-42 42 0 24 20 44 42 44zM86-22c-24 0-44 20-44 44 0 22 20 42 44 42 22 0 42-20 42-42 0-24-20-44-42-44zM618 22c0-24-18-44-42-44s-42 20-42 44c0 22 18 42 42 42s42-20 42-42zM576 362c-82 0-150 68-150 150s68 150 150 150c82 0 150-68 150-150s-68-150-150-150zM938 298c-22 0-42 20-42 44 0 22 20 42 42 42 24 0 44-20 44-42 0-24-20-44-44-44z" />
<glyph unicode="&#xe026;" glyph-name="uniE026" d="M806-26l-542 474 542 474c10 8 10 22 2 30-8 10-20 10-30 2l-560-490c-6-4-8-10-8-16s2-12 8-16l560-490c4-4 10-6 14-6 6 0 12 2 16 8 8 8 8 22-2 30z" />
<glyph unicode="&#xe027;" glyph-name="uniE027" d="M1018 182l-490 560c-8 10-24 10-32 0l-490-560c-8-10-8-22 2-30 8-8 22-8 30 2l474 542 474-542c4-6 10-8 16-8s10 2 14 6c10 8 10 20 2 30z" />
<glyph unicode="&#xe028;" glyph-name="uniE028" d="M512 960c-212 0-384-172-384-384v-576c0-36 28-64 64-64h22c34 0 64 28 64 64 0 12 8 22 20 22s22-10 22-22c0-36 28-64 64-64h42c36 0 64 28 64 64 0 12 10 22 22 22s22-10 22-22c0-36 28-64 64-64h42c36 0 64 28 64 64 0 12 10 22 22 22s20-10 20-22c0-36 30-64 64-64h22c36 0 64 28 64 64v576c0 212-172 384-384 384zM854 0c0-12-10-22-22-22h-22c-12 0-20 10-20 22 0 36-30 64-64 64-36 0-64-28-64-64 0-12-10-22-22-22h-42c-12 0-22 10-22 22 0 36-28 64-64 64s-64-28-64-64c0-12-10-22-22-22h-42c-12 0-22 10-22 22 0 36-28 64-64 64-34 0-64-28-64-64 0-12-8-22-20-22h-22c-12 0-22 10-22 22v576c0 188 154 342 342 342s342-154 342-342zM640 662c-48 0-86-38-86-86v-128c0-48 38-86 86-86s86 38 86 86v128c0 48-38 86-86 86zM682 448c0-24-18-42-42-42s-42 18-42 42c22 0 42 20 42 42 0 24-20 44-42 44v42c0 24 18 42 42 42s42-18 42-42zM384 662c-48 0-86-38-86-86v-128c0-48 38-86 86-86s86 38 86 86v128c0 48-38 86-86 86zM426 448c0-24-18-42-42-42s-42 18-42 42c22 0 42 20 42 42 0 24-20 44-42 44v42c0 24 18 42 42 42s42-18 42-42z" />
<glyph unicode="&#xe029;" glyph-name="uniE029" d="M362 576c-22 0-42-20-42-42 0-24 20-44 42-44 24 0 44 20 44 44 0 22-20 42-44 42zM576 234c0-22-20-42-42-42-24 0-44 20-44 42 0 24 20 44 44 44 22 0 42-20 42-44zM298 128c0-24-18-42-42-42s-42 18-42 42c0 24 18 42 42 42s42-18 42-42zM170 342c0-24-18-44-42-44s-42 20-42 44c0 22 18 42 42 42s42-20 42-42zM512 128c0-24-20-42-42-42-24 0-44 18-44 42s20 42 44 42c22 0 42-18 42-42zM640 342c0-24-20-44-42-44-24 0-44 20-44 44 0 22 20 42 44 42 22 0 42-20 42-42zM854 682c0-22-20-42-44-42-22 0-42 20-42 42 0 24 20 44 42 44 24 0 44-20 44-44zM854 470c0-24-20-44-44-44-22 0-42 20-42 44 0 22 20 42 42 42 24 0 44-20 44-42zM938 834c0 0 0 0 0 0 0 6-2 10-6 14 0 0-2 0-2 0s0 2 0 2c-2 0-4 2-6 2 0 0 0 0 0 0l-342 108c-4 0-8 0-12 0l-342-108c0 0 0 0 0 0-2 0-4-2-6-2 0 0 0-2 0-2-2 0-2 0-2 0-4-4-6-8-6-14 0 0 0 0 0 0 0-2 0-2 0-2v-216l-200-62c0 0 0 0 0 0-2-2-4-2-4-4-2 0-2 0-2 0s0 0 0 0c-4-4-6-8-8-14 0 0 0 0 0-2 0 0 0 0 0 0v-428c0-8 6-16 12-18l342-150c0 0 0 0 2 0 2-2 4-2 6-2 4 0 6 0 8 2 0 0 0 0 2 0l340 150c8 2 14 10 14 18v200l200 80c8 2 12 10 12 20v426c0 0 0 0 0 2zM576 916l276-86-276-104-276 104zM362 428l-274 104 274 86 276-86zM256 802l298-112v-88l-184 58c-6 2-10 2-14 0l-100-30zM42 502l300-112v-400l-300 130zM682 120l-298-130v400l298 112zM896 420l-170-68v182c0 0 0 0 0 0 0 2 0 2-2 2 0 6-2 10-6 14 0 0 0 0 0 0-2 0-2 0-2 0-2 2-4 2-6 4 0 0 0 0 0 0l-112 34v102l298 112zM576 790c24 0 42 18 42 42s-18 42-42 42c-24 0-42-18-42-42s18-42 42-42z" />
<glyph unicode="&#xe02a;" glyph-name="uniE02A" d="M1002 662h-404v20c0 60-48 108-108 108-58 0-106-48-106-108v-106h-170c-8 0-16-4-20-10l-104-190-84-84c-4-4-6-10-6-14v-236c0-12 10-20 22-20h86c10-50 54-86 106-86 50 0 94 36 104 86h388c10-50 54-86 104-86 52 0 96 36 106 86h86c12 0 22 8 22 20v598c0 12-10 22-22 22zM982 150h-556v468h556zM706 64h-388c-4 16-10 30-20 42h428c-10-12-16-26-20-42zM426 682c0 36 30 64 64 64 36 0 64-28 64-64v-20h-128zM122 348c2 0 2 2 4 4l100 182h158v-384h-342v118zM42 106h86c-8-12-16-26-20-42h-66zM214-22c-36 0-64 30-64 64 0 36 28 64 64 64 34 0 64-28 64-64 0-34-30-64-64-64zM810-22c-34 0-64 30-64 64 0 36 30 64 64 64 36 0 64-28 64-64 0-34-28-64-64-64zM916 64c-4 16-12 30-20 42h86v-42zM182 322c4-2 6-2 10-2 8 0 16 4 20 12l58 116h50c12 0 22 10 22 22s-10 20-22 20h-64c-8 0-16-4-20-12l-64-128c-4-10 0-22 10-28zM554 426v-84c0-12 10-22 22-22h64v-64c0-12 10-22 22-22h84c12 0 22 10 22 22v64h64c12 0 22 10 22 22v84c0 12-10 22-22 22h-64v64c0 12-10 22-22 22h-84c-12 0-22-10-22-22v-64h-64c-12 0-22-10-22-22zM598 406h64c12 0 20 8 20 20v64h44v-64c0-12 8-20 20-20h64v-44h-64c-12 0-20-8-20-20v-64h-44v64c0 12-8 20-20 20h-64z" />
<glyph unicode="&#xe02b;" glyph-name="uniE02B" d="M1002 874h-148v64c0 12-10 22-22 22h-128c-12 0-22-10-22-22v-64h-340v64c0 12-10 22-22 22h-128c-12 0-22-10-22-22v-64h-148c-12 0-22-8-22-20v-896c0-12 10-22 22-22h980c12 0 22 10 22 22v896c0 12-10 20-22 20zM726 918h84v-128h-84zM214 918h84v-128h-84zM170 832v-64c0-12 10-22 22-22h128c12 0 22 10 22 22v64h340v-64c0-12 10-22 22-22h128c12 0 22 10 22 22v64h128v-170h-940v170zM42-22v640h940v-640zM918 448c12 0 20 10 20 22s-8 20-20 20h-150v64c0 12-10 22-22 22s-20-10-20-22v-64h-192v64c0 12-10 22-22 22s-22-10-22-22v-64h-192v64c0 12-8 22-20 22s-22-10-22-22v-64h-150c-12 0-20-8-20-20s8-22 20-22h150v-128h-150c-12 0-20-10-20-22s8-20 20-20h150v-128h-150c-12 0-20-10-20-22s8-22 20-22h150v-64c0-12 10-20 22-20s20 8 20 20v64h192v-64c0-12 10-20 22-20s22 8 22 20v64h192v-64c0-12 8-20 20-20s22 8 22 20v64h150c12 0 20 10 20 22s-8 22-20 22h-150v128h150c12 0 20 8 20 20s-8 22-20 22h-150v128zM298 448h192v-128h-192zM298 150v128h192v-128zM726 150h-192v128h192zM726 320h-192v128h192z" />
<glyph unicode="&#xe02c;" glyph-name="uniE02C" d="M1002 704h-106v64c0 12-10 22-22 22h-532v64c0 12-10 20-22 20h-298c-12 0-22-8-22-20v-704c0-72 58-128 128-128h746c84 0 150 66 150 148v512c0 12-10 22-22 22zM214 682v-532c0-48-38-86-86-86s-86 38-86 86v682h256v-64c0-12 10-22 22-22h534v-42h-620c-12 0-20-10-20-22zM982 170c0-58-48-106-108-106h-650c20 22 32 52 32 86v512h726z" />
<glyph unicode="&#xe02d;" glyph-name="uniE02D" d="M1002 406h-240l-80 200c-4 8-14 14-22 12-10 0-18-8-20-16l-104-486-110 698c-2 10-10 18-20 18s-18-6-22-16l-122-410h-240c-12 0-22-10-22-22s10-22 22-22h256c8 0 18 6 20 16l100 336 114-718c2-10 10-18 20-18 0 0 2 0 2 0 10 0 18 8 20 18l114 528 58-148c4-8 12-14 20-14h256c12 0 22 10 22 22s-10 22-22 22z" />
<glyph unicode="&#xe02e;" glyph-name="uniE02E" d="M810 918h-768v-768h768zM768 874v-554h-92l-122 306c-4 8-12 14-20 14s-16-4-20-12l-92-204-86 102c-4 4-10 8-18 8-6-2-12-6-16-12l-122-202h-94v554zM630 320h-400l92 156 88-106c4-6 12-8 20-8 6 2 14 6 16 14l86 188zM86 192v86h682v-86zM876 666c-10 2-22-8-22-18-2-12 8-24 20-24l62-6-54-594-616 56c-12 0-22-8-22-20-2-12 6-22 18-24l660-60 62 680zM256 618c48 0 86 38 86 86s-38 86-86 86c-48 0-86-38-86-86s38-86 86-86zM256 746c24 0 42-18 42-42s-18-42-42-42c-24 0-42 18-42 42s18 42 42 42z" />
<glyph unicode="&#xe02f;" glyph-name="uniE02F" d="M1024 346c-2 2-2 2-2 4 0 0 0 0 0 0l-136 312h32c12 0 20 8 20 20s-8 22-20 22h-346c-8 36-42 64-82 64-38 0-72-28-82-64h-302c-12 0-20-10-20-22s8-20 20-20h32l-136-312c0 0 0 0 0 0 0-2 0-2-2-4 0-2 0-4 0-4s0 0 0 0c0-94 76-172 170-172s172 78 172 172c0 0 0 0 0 0s-2 2-2 4c0 2 0 2 0 4 0 0 0 0 0 0l-136 312h204c8-30 32-54 62-62v-622h-108c-12 0-20-8-20-20s8-22 20-22h300c12 0 20 10 20 22s-8 20-20 20h-150v622c30 8 54 32 60 62h248l-136-312c0 0 0 0 0 0 0-2 0-2 0-4s-2-4-2-4c0 0 0 0 0 0 0-94 78-172 172-172s170 78 170 172c0 0 0 0 0 0s0 2 0 4zM170 630l118-268h-234zM170 214c-62 0-116 46-126 106h252c-10-60-62-106-126-106zM490 640c-22 0-42 20-42 42 0 24 20 44 42 44 24 0 44-20 44-44 0-22-20-42-44-42zM970 362h-234l118 268zM854 214c-64 0-116 46-126 106h252c-10-60-64-106-126-106z" />
<glyph unicode="&#xe030;" glyph-name="uniE030" d="M1014 678c-12 16-32 26-54 26h-512c-44 0-92-34-110-78l-120-298c-10-24-8-48 4-66s32-28 54-28h512c44 0 92 34 110 78l120 298c10 26 8 50-4 68zM978 626l-120-298c-10-28-42-50-70-50h-512c-6 0-14 0-18 8-4 6-4 16 0 26l120 298c10 28 42 52 70 52h512c6 0 14-2 18-8s4-16 0-28zM894 616l-290-162-154 158c-8 8-22 8-30 0s-8-22 0-30l166-170c4-4 10-6 14-6s8 0 12 2l302 170c10 6 14 20 8 30s-18 14-28 8zM460 444l-148-106c-10-8-12-20-6-30 4-6 10-10 18-10 4 0 8 2 12 4l150 108c8 6 12 20 4 30-6 8-20 10-30 4zM748 438c-6 10-20 14-30 6-10-6-14-18-8-28l64-106c4-8 12-12 18-12 4 0 8 2 12 4 10 6 14 18 8 28zM22 662h212c12 0 22 8 22 20s-10 22-22 22h-212c-12 0-22-10-22-22s10-20 22-20zM106 320h-84c-12 0-22-10-22-22s10-20 22-20h84c12 0 22 8 22 20s-10 22-22 22zM150 534h-128c-12 0-22-10-22-22s10-22 22-22h128c12 0 20 10 20 22s-8 22-20 22z" />
<glyph unicode="&#xe031;" glyph-name="uniE031" d="M618 918h-256c-12 0-20-10-20-22v-256c0-12 8-22 20-22h256c12 0 22 10 22 22v256c0 12-10 22-22 22zM598 662h-214v212h214zM278 918h-256c-12 0-22-10-22-22v-256c0-12 10-22 22-22h256c12 0 20 10 20 22v256c0 12-8 22-20 22zM256 662h-214v212h214zM960 918h-256c-12 0-22-10-22-22v-256c0-12 10-22 22-22h256c12 0 22 10 22 22v256c0 12-10 22-22 22zM938 662h-212v212h212zM618 576h-256c-12 0-20-10-20-22v-256c0-12 8-20 20-20h256c12 0 22 8 22 20v256c0 12-10 22-22 22zM598 320h-214v214h214zM278 576h-256c-12 0-22-10-22-22v-256c0-12 10-20 22-20h256c12 0 20 8 20 20v256c0 12-8 22-20 22zM256 320h-214v214h214zM960 576h-256c-12 0-22-10-22-22v-256c0-12 10-20 22-20h256c12 0 22 8 22 20v256c0 12-10 22-22 22zM938 320h-212v214h212zM618 234h-256c-12 0-20-8-20-20v-256c0-12 8-22 20-22h256c12 0 22 10 22 22v256c0 12-10 20-22 20zM598-22h-214v214h214zM278 234h-256c-12 0-22-8-22-20v-256c0-12 10-22 22-22h256c12 0 20 10 20 22v256c0 12-8 20-20 20zM256-22h-214v214h214zM960 234h-256c-12 0-22-8-22-20v-256c0-12 10-22 22-22h256c12 0 22 10 22 22v256c0 12-10 20-22 20zM938-22h-212v214h212z" />
<glyph unicode="&#xe032;" glyph-name="uniE032" d="M1002 918h-980c-12 0-22-10-22-22v-214c0-12 10-20 22-20h980c12 0 22 8 22 20v214c0 12-10 22-22 22zM982 704h-940v170h940zM1002 576h-980c-12 0-22-10-22-22v-212c0-12 10-22 22-22h980c12 0 22 10 22 22v212c0 12-10 22-22 22zM982 362h-940v172h940zM1002 234h-980c-12 0-22-8-22-20v-214c0-12 10-22 22-22h980c12 0 22 10 22 22v214c0 12-10 20-22 20zM982 22h-940v170h940z" />
<glyph unicode="&#xe033;" glyph-name="uniE033" d="M1002 960h-980c-12 0-22-10-22-22v-980c0-12 10-22 22-22h980c12 0 22 10 22 22v980c0 12-10 22-22 22zM982-22h-940v940h940zM576 662h298c12 0 22 8 22 20s-10 22-22 22h-298c-12 0-22-10-22-22s10-20 22-20zM448 534h426c12 0 22 8 22 20s-10 22-22 22h-426c-12 0-22-10-22-22s10-20 22-20zM448 406h426c12 0 22 8 22 20s-10 22-22 22h-426c-12 0-22-10-22-22s10-20 22-20zM448 278h426c12 0 22 8 22 20s-10 22-22 22h-426c-12 0-22-10-22-22s10-20 22-20zM448 150h298c12 0 22 8 22 20s-10 22-22 22h-298c-12 0-22-10-22-22s10-20 22-20zM150 618h170c12 0 22 10 22 22v170c0 12-10 22-22 22h-170c-12 0-22-10-22-22v-170c0-12 10-22 22-22zM170 790h128v-128h-128zM150 320h170c12 0 22 10 22 22v212c0 12-10 22-22 22h-170c-12 0-22-10-22-22v-212c0-12 10-22 22-22zM170 534h128v-172h-128zM150 64h170c12 0 22 10 22 22v170c0 12-10 22-22 22h-170c-12 0-22-10-22-22v-170c0-12 10-22 22-22zM170 234h128v-128h-128z" />
<glyph unicode="&#xe034;" glyph-name="uniE034" d="M554 192c0-24-18-42-42-42s-42 18-42 42c0 24 18 42 42 42s42-18 42-42zM512 960c-282 0-512-230-512-512s230-512 512-512c282 0 512 230 512 512s-230 512-512 512zM512-22c-258 0-470 212-470 470s212 470 470 470c258 0 470-212 470-470s-212-470-470-470zM512 704c-82 0-150-66-150-150 0-12 10-20 22-20s22 8 22 20c0 60 48 108 106 108s106-48 106-108c0-58-48-106-106-106-12 0-22-10-22-22v-128c0-12 10-20 22-20s22 8 22 20v108c72 12 128 74 128 148 0 84-68 150-150 150z" />
<glyph unicode="&#xe035;" glyph-name="uniE035" d="M498 960h-8c-274-4-494-228-490-500 4-270 216-482 482-482h10c130 2 254 56 348 150s144 220 142 350c-6 270-218 482-484 482zM810 158c-86-86-200-134-320-136h-8c-242 0-434 192-440 440-4 246 198 450 450 456h6c244 0 436-194 440-440 2-120-44-234-128-320zM490 384c12 0 22 10 22 22v298c0 12-10 22-22 22s-20-10-20-22v-298c0-12 8-22 20-22zM490 298c0 0 0 0 0 0-24 0-42-20-42-42 0-24 20-42 42-42 0 0 2 0 2 0 22 0 42 20 42 42-2 24-20 42-44 42z" />
<glyph unicode="&#xe036;" glyph-name="uniE036" d="M576 190c0 0 0 0 0 0-12 0-20-8-20-20l-2-150-512 2v852h514v-150c0-12 10-22 22-22 0 0 0 0 0 0 12 0 20 10 20 22l2 170c0 12-10 22-22 22l-556 2c0 0 0 0 0 0-6 0-12-2-16-6s-6-10-6-16v-896c0-12 10-22 22-22h554c12 0 22 10 22 20v172c0 12-10 20-22 20zM1022 434c-2 4-4 8-8 10l-208 210c-8 8-22 8-30 0s-8-22 0-30l174-176h-714c-12 0-22-10-22-22s10-22 22-22l718 2-180-180c-8-8-8-20 0-30 4-4 10-6 16-6s10 2 14 6l214 214c4 4 6 10 6 14s0 8-2 10z" />
<glyph unicode="&#xe037;" glyph-name="uniE037" d="M950 768h-876c-40 0-74-34-74-74v-492c0-40 34-74 74-74h876c40 0 74 34 74 74v492c0 40-34 74-74 74zM576 256h-128v192l-96-124-96 124v-192h-128v384h128l96-128 96 128h128zM768 224l-160 224h96v192h128v-192h96z" />
<glyph unicode="&#xe038;" glyph-name="uniE038" d="M768 192h-512v510l128 2v128h-256v-768h768v320h-128zM512 832l128-128-192-192 128-128 192 192 128-128v384z" />
<glyph unicode="&#xe039;" glyph-name="uniE039" d="M1008 762c-18 14-44 12-60-6l-436-522-436 522c-16 18-42 20-60 6-18-16-22-42-6-60l470-562c8-10 20-16 32-16s24 6 32 16l470 562c16 18 12 44-6 60z" />
<glyph unicode="&#xe03a;" glyph-name="uniE03A" d="M1014 196l-470 560c-16 20-48 20-64 0l-470-560c-16-18-12-46 6-60 18-16 44-14 60 4l436 522 436-522c10-10 22-14 34-14 10 0 18 2 26 10 18 14 22 42 6 60z" />
<glyph unicode="&#xe03b;" glyph-name="uniE03B" d="M298 448l522 436c18 16 20 42 6 60-16 18-42 22-60 6l-562-470c-10-8-16-20-16-32s6-24 16-32l560-470c8-6 18-10 28-10 12 0 24 6 34 16 14 18 12 44-6 60z" />
<glyph unicode="&#xe03c;" glyph-name="uniE03C" d="M820 480l-562 470c-18 16-44 12-60-6-14-18-12-44 6-60l522-436-522-436c-18-16-20-42-6-60 10-10 22-16 34-16 10 0 20 4 26 10l562 470c10 8 16 20 16 32s-6 24-16 32z" />
<glyph unicode="&#xe03d;" glyph-name="uniE03D" d="M572 448l440 440c16 16 16 42 0 60-18 16-44 16-60 0l-440-440-440 440c-16 16-42 16-60 0-16-18-16-44 0-60l440-440-440-440c-16-16-16-42 0-60 8-8 20-12 30-12 12 0 22 4 30 12l440 440 440-440c8-8 18-12 30-12 10 0 22 4 30 12 16 18 16 44 0 60z" />
<glyph unicode="&#xe03e;" glyph-name="uniE03E" d="M38 960h520c20 0 38-18 38-38v-130c0-22-18-40-38-40h-520c-20 0-38 18-38 40v130c0 20 18 38 38 38zM38 546h948c20 0 38-18 38-40v-130c0-20-18-38-38-38h-948c-20 0-38 18-38 38v130c0 22 18 40 38 40zM854 960h130c20 0 38-18 38-38v-130c0-22-18-40-38-40h-130c-22 0-40 18-40 40v130c0 20 18 38 40 38zM38 144h324c22 0 40-18 40-40v-130c0-20-18-38-40-38h-324c-20 0-38 18-38 38v130c0 22 18 40 38 40zM660 146h324c20 0 38-18 38-40v-130c0-20-18-38-38-38h-324c-22 0-40 18-40 38v130c0 22 18 40 40 40z" />
<glyph unicode="&#xe03f;" glyph-name="uniE03F" d="M1002 490h-674l136 134c8 10 8 22 0 32-10 8-22 8-32 0l-170-172c-2-2-4-4-4-6-2-6-2-12 0-16 0-4 2-6 4-8l170-170c6-4 10-6 16-6s10 2 16 6c8 8 8 22 0 30l-136 134h674c12 0 22 10 22 22s-10 20-22 20zM22 960c-12 0-22-10-22-22v-980c0-12 10-22 22-22s20 10 20 22v980c0 12-8 22-20 22z" />
<glyph unicode="&#xe040;" glyph-name="uniE040" d="M1022 434c0 4-2 6-4 8l-170 170c-10 8-22 8-32 0-8-8-8-22 0-30l136-134h-418c-12 0-22-10-22-22s10-20 22-20h418l-136-134c-8-10-8-22 0-32 6-4 10-6 16-6s10 2 16 6l170 172c2 2 4 4 4 6 2 6 2 12 0 16zM320 960h-298c-12 0-22-10-22-22v-980c0-12 10-22 22-22h298c12 0 22 10 22 22v980c0 12-10 22-22 22zM298-22h-256v940h256z" />
<glyph unicode="&#xe041;" glyph-name="uniE041" d="M1002 790h-64v64c0 12-8 20-20 20h-256c-62 0-104-20-128-58-24 38-68 58-128 58h-256c-12 0-22-8-22-20v-64h-64c-12 0-22-10-22-22v-682c0-12 10-22 22-22h256c38 0 128-10 128-106 0-12 10-22 22-22h128c12 0 20 10 20 22 0 96 90 106 128 106h256c12 0 22 10 22 22v682c0 12-10 22-22 22zM662 832h234v-640h-234c-46 0-82-12-108-34v568c0 74 34 106 108 106zM170 832h236c74 0 106-32 106-106v-568c-24 22-60 34-106 34h-236zM982 106h-236c-94 0-158-48-168-128h-88c-10 80-74 128-170 128h-234v640h42v-576c0-12 10-20 22-20h256c74 0 106-34 106-108 0-12 10-20 22-20s20 8 20 20c0 74 34 108 108 108h256c12 0 20 8 20 20v576h44z" />
<glyph unicode="&#xe042;" glyph-name="uniE042" d="M962 726c-26-36-56-68-92-94 0-6 0-14 0-24 0-50-6-100-22-148-14-50-36-98-66-142-28-46-64-86-104-122-42-34-90-62-148-82-58-22-120-32-184-32-104 0-198 28-284 84 14-2 28-4 44-4 86 0 162 28 230 80-40 0-76 12-108 36s-54 54-66 92c14-2 26-4 36-4 16 0 32 2 48 8-42 8-78 30-106 62-28 34-42 74-42 118v2c26-14 54-22 84-22-26 16-46 38-60 64-16 28-22 58-22 88 0 34 8 66 24 94 46-56 102-102 168-136s138-54 214-58c-4 16-6 30-6 44 0 50 18 94 54 130s80 54 132 54c52 0 98-20 134-58 42 8 80 22 118 44-14-44-42-78-82-102 36 4 70 14 106 28z" />
<glyph unicode="&#xe043;" glyph-name="uniE043" d="M710 612l-304-284-92 92c-8 8-22 8-30 0s-8-22 0-30l106-106c4-4 10-6 16-6 4 0 10 2 14 6l320 298c8 8 8 22 0 30s-20 8-30 0zM512 960c-282 0-512-230-512-512s230-512 512-512c282 0 512 230 512 512s-230 512-512 512zM512-22c-258 0-470 212-470 470s212 470 470 470c258 0 470-212 470-470s-212-470-470-470z" />
<glyph unicode="&#xe044;" glyph-name="uniE044" d="M292 82h146v-146h-146zM586 82h146v-146h-146zM292 374h146v-146h-146zM586 374h146v-146h-146zM292 668h146v-146h-146zM586 668h146v-146h-146zM292 960h146v-146h-146zM586 960h146v-146h-146z" />
<glyph unicode="&#xe045;" glyph-name="uniE045" d="M982 490h-426v428c0 22-20 42-42 42 0 0 0 0 0 0-24 0-44-20-44-42v-428h-428c-22 0-42-18-42-42s20-42 42-42h428v-428c0-22 18-42 42-42v0c24 0 42 20 42 42l2 428h426c24 0 42 18 42 42s-18 42-42 42z" />
<glyph unicode="&#xe046;" glyph-name="uniE046" d="M448 960h-214c-12 0-20-10-20-22v-980c0-12 8-22 20-22h214c12 0 22 10 22 22v980c0 12-10 22-22 22zM426-22h-170v940h170zM790 960h-214c-12 0-22-10-22-22v-980c0-12 10-22 22-22h214c12 0 20 10 20 22v980c0 12-8 22-20 22zM768-22h-170v940h170z" />
<glyph unicode="&#xe047;" glyph-name="uniE047" d="M1012 468l-982 490c-6 4-14 2-20-2s-10-10-10-18v-980c0-8 4-14 10-18 4-2 8-4 12-4 2 0 6 0 8 2l982 490c8 4 12 12 12 20s-4 16-12 20zM42-8v912l912-456z" />
<glyph unicode="&#xe900;" glyph-name="uniE900" d="M153.425 390.755h-40.693v74.581h42.054v-73.614c3.128 2.261 6.242 4.437 9.3 6.485l2.665 8.249 20.466 63.303c4.026 12.43 9.679 24.007 16.622 34.603h-196.131v-255.644h37.453c18.53 61.98 66.462 111.63 108.263 142.037v0zM845.901 28.458c31.898 8.718 75.72-27.947 103.34-86.215l55.422 23.836c-21.869 59.776-17.885 116.551 9.398 134.628l-55.941 92.459h-153.768l41.549-164.708zM917.904 95.218c12.765 5.504 27.48-0.555 32.908-13.454 5.429-12.956-0.547-27.918-13.312-33.422-12.737-5.461-27.48 0.583-32.908 13.497-5.415 12.956 0.547 27.89 13.312 33.38v0zM662.044 897.536c-16.047 38.357-59.701 56.22-97.504 39.95-37.804-16.256-55.436-60.53-39.389-98.844l116.638-278.699h161.582l-141.326 337.593zM1016.292 248.732v255.644h-552.385l-10.436-32.284c10.044-29.17 10.464-60.956 0.743-91.108l-23.903-73.884-6.481-19.996c3.296-12.729 5.555-25.543 7.014-38.357l585.447-0.014zM911.227 465.337v-74.581h-42.026v74.581h42.026zM533.006 330.368h-42.026v134.969h42.026v-134.969zM659.084 390.755h-42.040v74.581h42.040v-74.581zM785.12 330.368h-41.998v134.969h41.998v-134.969zM354.858 287.843l0.786 2.432c-31.365 43.691-71.245 57.913-109.989 61.454-10.352 0.839-20.578 0.725-30.355 0.014-28.349-15.673-135.070-90.496-107.815-187.435 38.589-137.244-56.587-150.5-75.692-160.284-9.595-4.921 29.275-57.884 102.793-48.725 11.25 1.394 23.3 4.252 36.149 8.96 95.723 35.143 239.251 165.063 184.124 323.584v0zM295.382 496.569c-20.845-7.609-38.225-24.548-45.645-47.531l-20.494-63.36c6.186 0.028 12.512-0.142 18.965-0.64 39.796-2.745 83.996-18.475 119.584-57.159l23.889 73.884c7.477 23.040 3.395 47.047-8.935 65.749l134.93 416.939c7.911 24.491-5.19 50.816-29.345 58.837-6.635 2.204-13.396 2.802-19.919 2.005-17.127-2.133-32.347-14.009-38.098-31.758l-134.93-416.967z" />
</font></defs></svg>

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 45 KiB

BIN
public/assets/fonts/ghosticons.ttf Normal file → Executable file

Binary file not shown.

BIN
public/assets/fonts/ghosticons.woff Normal file → Executable file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -0,0 +1,89 @@
/* jshint expr:true */
import {
describe,
it,
beforeEach,
afterEach
} from 'mocha';
import { expect } from 'chai';
import Ember from 'ember';
import startApp from '../../helpers/start-app';
import destroyApp from '../../helpers/destroy-app';
import { invalidateSession, authenticateSession } from 'ghost/tests/helpers/ember-simple-auth';
const {run} = Ember;
describe('Acceptance: Settings - Apps', function () {
let application;
beforeEach(function() {
application = startApp();
});
afterEach(function() {
destroyApp(application);
});
it('redirects to signin when not authenticated', function () {
invalidateSession(application);
visit('/settings/apps');
andThen(function() {
expect(currentURL(), 'currentURL').to.equal('/signin');
});
});
it('redirects to team page when authenticated as author', function () {
let role = server.create('role', {name: 'Author'});
let user = server.create('user', {roles: [role], slug: 'test-user'});
authenticateSession(application);
visit('/settings/apps');
andThen(() => {
expect(currentURL(), 'currentURL').to.equal('/team/test-user');
});
});
it('redirects to team page when authenticated as editor', function () {
let role = server.create('role', {name: 'Editor'});
let user = server.create('user', {roles: [role], slug: 'test-user'});
authenticateSession(application);
visit('/settings/apps');
andThen(() => {
expect(currentURL(), 'currentURL').to.equal('/team');
});
});
describe('when logged in', function () {
beforeEach(function () {
let role = server.create('role', {name: 'Administrator'});
let user = server.create('user', {roles: [role]});
server.loadFixtures();
return authenticateSession(application);
});
it('it redirects to Slack when clicking on the grid', function () {
visit('/settings/apps');
andThen(() => {
// has correct url
expect(currentURL(), 'currentURL').to.equal('/settings/apps');
});
click('#slack-link');
andThen(() => {
// has correct url
expect(currentURL(), 'currentURL').to.equal('/settings/apps/slack');
});
});
});
});

View File

@ -0,0 +1,121 @@
/* jshint expr:true */
import {
describe,
it,
beforeEach,
afterEach
} from 'mocha';
import { expect } from 'chai';
import Ember from 'ember';
import startApp from '../../helpers/start-app';
import destroyApp from '../../helpers/destroy-app';
import Mirage from 'ember-cli-mirage';
import { invalidateSession, authenticateSession } from 'ghost/tests/helpers/ember-simple-auth';
const {run} = Ember;
describe('Acceptance: Settings - Apps - Slack', function () {
let application;
beforeEach(function() {
application = startApp();
});
afterEach(function() {
destroyApp(application);
});
it('redirects to signin when not authenticated', function () {
invalidateSession(application);
visit('/settings/apps/slack');
andThen(function() {
expect(currentURL(), 'currentURL').to.equal('/signin');
});
});
it('redirects to team page when authenticated as author', function () {
let role = server.create('role', {name: 'Author'});
let user = server.create('user', {roles: [role], slug: 'test-user'});
authenticateSession(application);
visit('/settings/apps/slack');
andThen(() => {
expect(currentURL(), 'currentURL').to.equal('/team/test-user');
});
});
it('redirects to team page when authenticated as editor', function () {
let role = server.create('role', {name: 'Editor'});
let user = server.create('user', {roles: [role], slug: 'test-user'});
authenticateSession(application);
visit('/settings/apps/slack');
andThen(() => {
expect(currentURL(), 'currentURL').to.equal('/team');
});
});
describe('when logged in', function () {
beforeEach(function () {
let role = server.create('role', {name: 'Administrator'});
let user = server.create('user', {roles: [role]});
server.loadFixtures();
return authenticateSession(application);
});
it('it validates and saves a slack url properly', function () {
visit('/settings/apps/slack');
andThen(() => {
// has correct url
expect(currentURL(), 'currentURL').to.equal('/settings/apps/slack');
});
fillIn('#slack-settings input[name="slack[url]"]', 'notacorrecturl');
click('#saveSlackIntegration');
andThen(() => {
expect(find('#slack-settings .error .response').text().trim(), 'inline validation response')
.to.equal('The URL must be in a format like https://hooks.slack.com/services/<your personal key>');
});
fillIn('#slack-settings input[name="slack[url]"]', 'https://hooks.slack.com/services/1275958430');
click('#sendTestNotification');
andThen(() => {
expect(find('.gh-alert-blue').length, 'modal element').to.equal(1);
expect(find('#slack-settings .error .response').text().trim(), 'inline validation response')
.to.equal('');
});
andThen(() => {
server.put('/settings/', function (db, request) {
return new Mirage.Response(402, {}, {
errors: [
{
errorType: 'ValidationError',
message: 'Test error'
}
]
});
});
});
click('.gh-alert-blue .gh-alert-close');
click('#sendTestNotification');
andThen(() => {
let [lastRequest] = server.pretender.handledRequests.slice(-1);
expect(lastRequest.url).to.not.match(/\/slack\/test/);
expect(find('.gh-alert-blue').length, 'check slack alert after api validation error').to.equal(0);
});
});
});
});

View File

@ -0,0 +1,37 @@
/* jshint expr:true */
import { expect } from 'chai';
import { describeModule, it } from 'ember-mocha';
import Ember from 'ember';
import SlackIntegration from 'ghost/models/slack-integration';
const emberA = Ember.A;
describeModule(
'transform:slack-settings',
'Unit: Transform: slack-settings',
{
// Specify the other units that are required for this test.
// needs: ['transform:foo']
},
function() {
it('deserializes settings json', function () {
let transform = this.subject();
let serialized = '[{"url":"http://myblog.com/blogpost1"}]';
let result = transform.deserialize(serialized);
expect(result.length).to.equal(1);
expect(result[0]).to.be.instanceof(SlackIntegration);
expect(result[0].get('url')).to.equal('http://myblog.com/blogpost1');
});
it('serializes array of Slack settings', function () {
let transform = this.subject();
let deserialized = emberA([
SlackIntegration.create({url: 'http://myblog.com/blogpost1'})
]);
let result = transform.serialize(deserialized);
expect(result).to.equal('[{"url":"http://myblog.com/blogpost1"}]');
});
}
);

View File

@ -0,0 +1,66 @@
/* jshint expr:true */
import { expect } from 'chai';
import {
describe,
it
} from 'mocha';
import validator from 'ghost/validators/slack-integration';
import SlackObject from 'ghost/models/slack-integration';
const testInvalidUrl = function (url) {
let slackObject = SlackObject.create({url});
validator.check(slackObject, 'url');
expect(validator.get('passed'), `"${url}" passed`).to.be.false;
expect(slackObject.get('errors').errorsFor('url')).to.deep.equal([{
attribute: 'url',
message: 'The URL must be in a format like https://hooks.slack.com/services/<your personal key>'
}]);
expect(slackObject.get('hasValidated')).to.include('url');
};
const testValidUrl = function (url) {
let slackObject = SlackObject.create({url});
validator.check(slackObject, 'url');
expect(validator.get('passed'), `"${url}" failed`).to.be.true;
expect(slackObject.get('hasValidated')).to.include('url');
};
describe('Unit: Validator: slack-integration', function () {
it('fails on invalid url values', function () {
let invalidUrls = [
'test@example.com',
'/has spaces',
'no-leading-slash',
'http://example.com/with spaces'
];
invalidUrls.forEach(function (url) {
testInvalidUrl(url);
});
});
it('passes on valid url values', function () {
let validUrls = [
'https://hooks.slack.com/services/;alskdjf',
'https://hooks.slack.com/services/123445678',
'https://hooks.slack.com/services/some_webhook'
];
validUrls.forEach(function (url) {
testValidUrl(url);
});
});
it('validates url by default', function () {
let slackObject = SlackObject.create();
validator.check(slackObject);
expect(slackObject.get('errors').errorsFor('url')).to.be.empty;
expect(validator.get('passed')).to.be.true;
});
});