Repository: yonatanmgr/mathberet
Branch: master
Commit: 818c54c51df9
Files: 101
Total size: 294.4 KB
Directory structure:
gitextract_iwhcz0fy/
├── .eslintrc
├── .gitattributes
├── .github/
│ └── ISSUE_TEMPLATE/
│ ├── bug_report.md
│ └── feature_request.md
├── .gitignore
├── .hintrc
├── .prettierrc
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── assets/
│ ├── icons/
│ │ └── uicons.css
│ └── webfonts/
│ └── OFL.txt
├── misc/
│ └── window/
│ ├── LICENSE
│ ├── components/
│ │ ├── ControlButton.tsx
│ │ ├── Titlebar.less
│ │ ├── Titlebar.tsx
│ │ ├── WindowControls.tsx
│ │ └── WindowFrame.tsx
│ ├── titlebarContext.ts
│ ├── titlebarContextApi.ts
│ ├── titlebarIPC.ts
│ ├── titlebarMenus.ts
│ └── windowPreload.ts
├── package.json
├── src/
│ ├── common/
│ │ ├── helpers.ts
│ │ ├── i18n.ts
│ │ ├── keybindings.ts
│ │ ├── locals/
│ │ │ ├── ar.ts
│ │ │ ├── en.ts
│ │ │ ├── es.ts
│ │ │ ├── fr.ts
│ │ │ ├── he.ts
│ │ │ ├── hi.ts
│ │ │ ├── ru.ts
│ │ │ └── zh.ts
│ │ └── shortcuts.ts
│ ├── main/
│ │ ├── Onboarding.js
│ │ ├── app.ts
│ │ └── appWindow.ts
│ ├── renderer/
│ │ ├── app.html
│ │ ├── appPreload.tsx
│ │ ├── appRenderer.tsx
│ │ ├── common/
│ │ │ └── types.ts
│ │ ├── components/
│ │ │ ├── Application.scss
│ │ │ ├── Application.tsx
│ │ │ ├── CommandBar/
│ │ │ │ ├── CommandBar.scss
│ │ │ │ └── CommandBar.tsx
│ │ │ ├── FilesSidebar/
│ │ │ │ ├── FileSystem.scss
│ │ │ │ ├── FileSystem.tsx
│ │ │ │ ├── FileSystemHelpers.ts
│ │ │ │ ├── FilesSidebar.scss
│ │ │ │ ├── FilesSidebar.tsx
│ │ │ │ ├── SidebarButton.tsx
│ │ │ │ └── types.ts
│ │ │ ├── Fonts.css
│ │ │ ├── GeneralContext.tsx
│ │ │ ├── Header/
│ │ │ │ ├── AddTag.tsx
│ │ │ │ ├── FilePath.tsx
│ │ │ │ ├── Header.scss
│ │ │ │ ├── Header.tsx
│ │ │ │ └── Tag.tsx
│ │ │ ├── Icons.tsx
│ │ │ ├── MathSidebar/
│ │ │ │ ├── ActionsGroup.tsx
│ │ │ │ ├── MathSidebar.scss
│ │ │ │ └── MathSidebar.tsx
│ │ │ ├── Page/
│ │ │ │ ├── Grid/
│ │ │ │ │ ├── Blocks/
│ │ │ │ │ │ ├── Blocks.scss
│ │ │ │ │ │ ├── DrawBlock.tsx
│ │ │ │ │ │ ├── GraphBlock.tsx
│ │ │ │ │ │ ├── MathBlock.tsx
│ │ │ │ │ │ └── TextBlock.tsx
│ │ │ │ │ ├── Grid.scss
│ │ │ │ │ ├── Grid.tsx
│ │ │ │ │ └── GridElement.tsx
│ │ │ │ ├── Page.scss
│ │ │ │ ├── Page.tsx
│ │ │ │ ├── PagePlaceholder.tsx
│ │ │ │ └── ToolsPanel/
│ │ │ │ ├── Tool.tsx
│ │ │ │ ├── ToolsPanel.scss
│ │ │ │ └── ToolsPanel.tsx
│ │ │ ├── Theme.scss
│ │ │ └── common/
│ │ │ ├── Modals/
│ │ │ │ ├── ConfirmModal.scss
│ │ │ │ ├── ConfirmModal.tsx
│ │ │ │ ├── ErrorModal.scss
│ │ │ │ └── ErrorModal.tsx
│ │ │ ├── Notification.scss
│ │ │ ├── Notification.tsx
│ │ │ └── Shortcut.tsx
│ │ └── hooks/
│ │ ├── useAddBlock.tsx
│ │ ├── useDialog.tsx
│ │ ├── useFileSaveLoad.tsx
│ │ └── useSettings.tsx
│ └── typings/
│ └── index.d.ts
├── tools/
│ ├── forge/
│ │ └── forge.config.js
│ └── webpack/
│ ├── webpack.aliases.js
│ ├── webpack.helpers.js
│ ├── webpack.main.js
│ ├── webpack.plugins.js
│ ├── webpack.renderer.js
│ └── webpack.rules.js
└── tsconfig.json
================================================
FILE CONTENTS
================================================
================================================
FILE: .eslintrc
================================================
{
"env": {
"browser": true,
"es6": true,
"node": true
},
"extends": [
"eslint:recommended",
"plugin:react/recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
"plugin:import/errors",
"plugin:import/warnings"
],
"parser": "@typescript-eslint/parser",
"settings": {
"import/resolver": {
"node": {
"extensions": [".js", ".jsx", ".ts", ".tsx"]
},
"alias": {
"map": [
["@renderer", "./src/renderer"],
["@components", "./src/renderer/components"],
["@common", "./src/common"],
["@main", "./src/main"],
["@src", "./src"],
["@misc", "./misc"],
["@assets", "./assets"]
],
"extensions": [".js", ".jsx", ".ts", ".tsx"]
}
},
"react": {
"version": "latest"
}
},
"rules": {
"react/prop-types": "off",
"@typescript-eslint/no-var-requires": "off"
}
}
================================================
FILE: .gitattributes
================================================
*.scss linguist-detectable=false
*.sass linguist-detectable=false
================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: bug
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Desktop (please complete the following information):**
- OS: [e.g. Windows, macOS, Linux]
**Additional context**
Add any other context about the problem here.
================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: enhancement
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
================================================
FILE: .gitignore
================================================
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
.DS_Store
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
.env.test
# parcel-bundler cache (https://parceljs.org/)
.cache
# next.js build output
.next
# nuxt.js build output
.nuxt
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# Webpack
.webpack/
# Electron-Forge
out/
================================================
FILE: .hintrc
================================================
{
"extends": [
"development"
],
"hints": {
"axe/text-alternatives": [
"default",
{
"image-alt": "off"
}
],
"meta-viewport": "off",
"no-inline-styles": "off",
"axe/name-role-value": [
"default",
{
"button-name": "off"
}
],
"typescript-config/strict": "off"
},
"browserslist": [
"defaults",
"not ie 11",
"not and_ff <= 107",
"not firefox <= 109",
"not ios_saf <= 16.2",
"not safari <= 16.2"
]
}
================================================
FILE: .prettierrc
================================================
{
"singleQuote": true,
"trailingComma": "all",
"jsxSingleQuote": true
}
================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
Repository Discussions.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.
================================================
FILE: CONTRIBUTING.md
================================================
# Contributing to Mathberet
Thank you for investing your time in contributing to our project!
Read our [Code of Conduct](./CODE_OF_CONDUCT.md) to keep our community approachable and respectable.
## How to Contribute?
You can contribute to our project by providing `features/bugfixes/improvements` related Pull Requests.
Just make sure to test all the changes you provide before submission anything into this project.
================================================
FILE: LICENSE
================================================
MIT License
Copyright (c) 2023 Mathberet
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: README.md
================================================
📝 Mathberet (Hebrew: מַתְבֶּרֶת) - A self-hosted digital mathematics notebook, written in React and built with Electron
🚧 In active development, open for contributions! 🚧
---
> Currently works in Hebrew, English, Arabic, Russian and Spanish, localized using [i18next](https://github.com/i18next/i18next). Still buggy.
## :white_check_mark: Features
- [x] Block based drag-n-drop editor
- [x] Text, Math, Graph and Drawing blocks are currently available
- [x] LaTeX shortcuts and snippets
- [x] Local files can be saved and loaded from the file system
- [x] File tags (currently useless)
- [x] Command bar (currently only used for user preferences)
- [x] 6 color themes and light/dark theme
- [ ] Customize LaTeX shortcuts
- [ ] Shortcuts help menu
- [ ] Searching from command bar
- [ ] Adding points and polygons to graph blocks
- [ ] Math memory sidebar (for variable assignments and quick functions)
- [ ] Archive
## :camera_flash: Screenshots
### Hebrew

### English
Dark theme and purple accent color

Light theme and green accent color

Command bar (Ctrl+Shift+P)

## :bricks: Built With
- [ERWT](https://github.com/codesbiome/electron-react-webpack-typescript-2023): Electron + React apps boilerplate
- [react-grid-layout](https://github.com/react-grid-layout/react-grid-layout): Grid layout for the blocks
- [slate](https://github.com/ianstormtaylor/slate): Text block component
- [MathLive](https://cortexjs.io/mathlive/) ([react-math-view](https://github.com/arnog/react-mathlive)): Math block component
- [Mafs](https://mafs.dev/): Graph block component
- [tldraw](https://github.com/tldraw/tldraw): Drawing block component
- [kbar](https://kbar.vercel.app/): Command bar
- [react-complex-tree](https://rct.lukasbach.com/): Used for displaying the file system
- [UIcons](https://github.com/freepik-company/flaticon-uicons): App icons
## :building_construction: Building from source
1. Clone the repository to a folder on your machine:
```bash
git clone https://github.com/yonatanmgr/mathberet.git
```
2. Run `npm install` in the project root folder
3. Run `npm start` in the project root folder
## :handshake: Contributing
We welcome any positive contribution towards our project's growth! Whether you choose to work on a [listed feature](https://github.com/yonatanmgr/mathberet#white_check_mark-features) or create a new one, your help is appreciated. Simply submit a Pull Request after adding your code. To ensure a smooth process, please review our `CODE OF CONDUCT` and read the `CONTRIBUTING` guidelines for further details on submitting pull requests.
Make sure to visit Mathberet's [project](https://github.com/users/yonatanmgr/projects/2) to view our roadmap and plans, and our [wiki](https://github.com/yonatanmgr/mathberet/wiki/%F0%9F%8F%A0-Home) to read the documentation!
## :balance_scale: Liscense
This project is licensed under the MIT License - see the `LICENSE` file for details.
## :technologist: Contributors
================================================
FILE: assets/icons/uicons.css
================================================
@font-face{font-family:uicons-regular-rounded;src:url(../webfonts/uicons-regular-rounded-BG3GDTFR.eot) format("embedded-opentype"),url(../webfonts/uicons-regular-rounded-3OJX2N3K.woff2) format("woff2"),url(../webfonts/uicons-regular-rounded-ATYWIXGY.woff) format("woff")}i[class^=fi-rr-]:before,i[class*=" fi-rr-"]:before,span[class^=fi-rr-]:before,span[class*=fi-rr-]:before{font-family:uicons-regular-rounded!important;font-style:normal;font-weight:400!important;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fi-rr-0:before{content:"\f101"}.fi-rr-1:before{content:"\f102"}.fi-rr-2:before{content:"\f103"}.fi-rr-3:before{content:"\f104"}.fi-rr-4:before{content:"\f105"}.fi-rr-5:before{content:"\f106"}.fi-rr-6:before{content:"\f107"}.fi-rr-7:before{content:"\f108"}.fi-rr-8:before{content:"\f109"}.fi-rr-9:before{content:"\f10a"}.fi-rr-a:before{content:"\f10b"}.fi-rr-acorn:before{content:"\f10c"}.fi-rr-ad:before{content:"\f10d"}.fi-rr-add-document:before{content:"\f10e"}.fi-rr-add-folder:before{content:"\f10f"}.fi-rr-add:before{content:"\f110"}.fi-rr-address-book:before{content:"\f111"}.fi-rr-air-conditioner:before{content:"\f112"}.fi-rr-air-freshener:before{content:"\f113"}.fi-rr-alarm-clock:before{content:"\f114"}.fi-rr-alarm-exclamation:before{content:"\f115"}.fi-rr-alarm-plus:before{content:"\f116"}.fi-rr-alarm-snooze:before{content:"\f117"}.fi-rr-album-circle-plus:before{content:"\f118"}.fi-rr-album-circle-user:before{content:"\f119"}.fi-rr-album-collection:before{content:"\f11a"}.fi-rr-album:before{content:"\f11b"}.fi-rr-align-justify:before{content:"\f11c"}.fi-rr-align-left:before{content:"\f11d"}.fi-rr-ambulance:before{content:"\f11e"}.fi-rr-angle-circle-down:before{content:"\f11f"}.fi-rr-angle-circle-left:before{content:"\f120"}.fi-rr-angle-circle-right:before{content:"\f121"}.fi-rr-angle-circle-up:before{content:"\f122"}.fi-rr-angle-double-left:before{content:"\f123"}.fi-rr-angle-double-right:before{content:"\f124"}.fi-rr-angle-double-small-down:before{content:"\f125"}.fi-rr-angle-double-small-left:before{content:"\f126"}.fi-rr-angle-double-small-right:before{content:"\f127"}.fi-rr-angle-double-small-up:before{content:"\f128"}.fi-rr-angle-down:before{content:"\f129"}.fi-rr-angle-left:before{content:"\f12a"}.fi-rr-angle-right:before{content:"\f12b"}.fi-rr-angle-small-down:before{content:"\f12c"}.fi-rr-angle-small-left:before{content:"\f12d"}.fi-rr-angle-small-right:before{content:"\f12e"}.fi-rr-angle-small-up:before{content:"\f12f"}.fi-rr-angle-square-down:before{content:"\f130"}.fi-rr-angle-square-left:before{content:"\f131"}.fi-rr-angle-square-right:before{content:"\f132"}.fi-rr-angle-square-up:before{content:"\f133"}.fi-rr-angle-up:before{content:"\f134"}.fi-rr-angry:before{content:"\f135"}.fi-rr-animated-icon:before{content:"\f136"}.fi-rr-apartment:before{content:"\f137"}.fi-rr-api:before{content:"\f138"}.fi-rr-apple-crate:before{content:"\f139"}.fi-rr-apple-whole:before{content:"\f13a"}.fi-rr-apps-add:before{content:"\f13b"}.fi-rr-apps-delete:before{content:"\f13c"}.fi-rr-apps-sort:before{content:"\f13d"}.fi-rr-apps:before{content:"\f13e"}.fi-rr-archive:before{content:"\f13f"}.fi-rr-archway:before{content:"\f140"}.fi-rr-arrow-alt-circle-down:before{content:"\f141"}.fi-rr-arrow-alt-circle-left:before{content:"\f142"}.fi-rr-arrow-alt-circle-right:before{content:"\f143"}.fi-rr-arrow-alt-circle-up:before{content:"\f144"}.fi-rr-arrow-alt-down:before{content:"\f145"}.fi-rr-arrow-alt-from-bottom:before{content:"\f146"}.fi-rr-arrow-alt-from-left:before{content:"\f147"}.fi-rr-arrow-alt-from-right:before{content:"\f148"}.fi-rr-arrow-alt-from-top:before{content:"\f149"}.fi-rr-arrow-alt-left:before{content:"\f14a"}.fi-rr-arrow-alt-right:before{content:"\f14b"}.fi-rr-arrow-alt-square-down:before{content:"\f14c"}.fi-rr-arrow-alt-square-left:before{content:"\f14d"}.fi-rr-arrow-alt-square-right:before{content:"\f14e"}.fi-rr-arrow-alt-square-up:before{content:"\f14f"}.fi-rr-arrow-alt-to-bottom:before{content:"\f150"}.fi-rr-arrow-alt-to-left:before{content:"\f151"}.fi-rr-arrow-alt-to-right:before{content:"\f152"}.fi-rr-arrow-alt-to-top:before{content:"\f153"}.fi-rr-arrow-alt-up:before{content:"\f154"}.fi-rr-arrow-circle-down:before{content:"\f155"}.fi-rr-arrow-circle-left:before{content:"\f156"}.fi-rr-arrow-circle-right:before{content:"\f157"}.fi-rr-arrow-circle-up:before{content:"\f158"}.fi-rr-arrow-down-from-dotted-line:before{content:"\f159"}.fi-rr-arrow-down-small-big:before{content:"\f15a"}.fi-rr-arrow-down-to-dotted-line:before{content:"\f15b"}.fi-rr-arrow-down-to-square:before{content:"\f15c"}.fi-rr-arrow-down-triangle-square:before{content:"\f15d"}.fi-rr-arrow-down:before{content:"\f15e"}.fi-rr-arrow-from-bottom:before{content:"\f15f"}.fi-rr-arrow-from-left:before{content:"\f160"}.fi-rr-arrow-from-right:before{content:"\f161"}.fi-rr-arrow-from-top:before{content:"\f162"}.fi-rr-arrow-left-from-line:before{content:"\f163"}.fi-rr-arrow-left:before{content:"\f164"}.fi-rr-arrow-right-to-bracket:before{content:"\f165"}.fi-rr-arrow-right:before{content:"\f166"}.fi-rr-arrow-small-down:before{content:"\f167"}.fi-rr-arrow-small-left:before{content:"\f168"}.fi-rr-arrow-small-right:before{content:"\f169"}.fi-rr-arrow-small-up:before{content:"\f16a"}.fi-rr-arrow-square-down:before{content:"\f16b"}.fi-rr-arrow-square-left:before{content:"\f16c"}.fi-rr-arrow-square-right:before{content:"\f16d"}.fi-rr-arrow-square-up:before{content:"\f16e"}.fi-rr-arrow-to-bottom:before{content:"\f16f"}.fi-rr-arrow-to-left:before{content:"\f170"}.fi-rr-arrow-to-right:before{content:"\f171"}.fi-rr-arrow-to-top:before{content:"\f172"}.fi-rr-arrow-trend-down:before{content:"\f173"}.fi-rr-arrow-trend-up:before{content:"\f174"}.fi-rr-arrow-turn-down-left:before{content:"\f175"}.fi-rr-arrow-turn-down-right:before{content:"\f176"}.fi-rr-arrow-up-from-dotted-line:before{content:"\f177"}.fi-rr-arrow-up-from-square:before{content:"\f178"}.fi-rr-arrow-up-left-from-circle:before{content:"\f179"}.fi-rr-arrow-up-left:before{content:"\f17a"}.fi-rr-arrow-up-right-and-arrow-down-left-from-center:before{content:"\f17b"}.fi-rr-arrow-up-right-from-square:before{content:"\f17c"}.fi-rr-arrow-up-right:before{content:"\f17d"}.fi-rr-arrow-up-small-big:before{content:"\f17e"}.fi-rr-arrow-up-square-triangle:before{content:"\f17f"}.fi-rr-arrow-up-to-dotted-line:before{content:"\f180"}.fi-rr-arrow-up:before{content:"\f181"}.fi-rr-arrows-alt-h:before{content:"\f182"}.fi-rr-arrows-alt-v:before{content:"\f183"}.fi-rr-arrows-alt:before{content:"\f184"}.fi-rr-arrows-cross:before{content:"\f185"}.fi-rr-arrows-from-dotted-line:before{content:"\f186"}.fi-rr-arrows-from-line:before{content:"\f187"}.fi-rr-arrows-h-copy:before{content:"\f188"}.fi-rr-arrows-h:before{content:"\f189"}.fi-rr-arrows-repeat-1:before{content:"\f18a"}.fi-rr-arrows-repeat:before{content:"\f18b"}.fi-rr-arrows-retweet:before{content:"\f18c"}.fi-rr-arrows-to-dotted-line:before{content:"\f18d"}.fi-rr-arrows-to-line:before{content:"\f18e"}.fi-rr-arrows:before{content:"\f18f"}.fi-rr-assept-document:before{content:"\f190"}.fi-rr-assistive-listening-systems:before{content:"\f191"}.fi-rr-asterik:before{content:"\f192"}.fi-rr-at:before{content:"\f193"}.fi-rr-attribution-pen:before{content:"\f194"}.fi-rr-attribution-pencil:before{content:"\f195"}.fi-rr-aubergine:before{content:"\f196"}.fi-rr-audio-description-slash:before{content:"\f197"}.fi-rr-avocado:before{content:"\f198"}.fi-rr-b:before{content:"\f199"}.fi-rr-baby-carriage:before{content:"\f19a"}.fi-rr-background:before{content:"\f19b"}.fi-rr-backpack:before{content:"\f19c"}.fi-rr-bacon:before{content:"\f19d"}.fi-rr-badge-check:before{content:"\f19e"}.fi-rr-badge-dollar:before{content:"\f19f"}.fi-rr-badge-percent:before{content:"\f1a0"}.fi-rr-badge-sheriff:before{content:"\f1a1"}.fi-rr-badge:before{content:"\f1a2"}.fi-rr-bags-shopping:before{content:"\f1a3"}.fi-rr-bahai:before{content:"\f1a4"}.fi-rr-balance-scale-left:before{content:"\f1a5"}.fi-rr-balance-scale-right:before{content:"\f1a6"}.fi-rr-ball:before{content:"\f1a7"}.fi-rr-balloons:before{content:"\f1a8"}.fi-rr-ballot:before{content:"\f1a9"}.fi-rr-ban-bug:before{content:"\f1aa"}.fi-rr-ban:before{content:"\f1ab"}.fi-rr-band-aid:before{content:"\f1ac"}.fi-rr-bank:before{content:"\f1ad"}.fi-rr-barber-shop:before{content:"\f1ae"}.fi-rr-barcode-read:before{content:"\f1af"}.fi-rr-barcode-scan:before{content:"\f1b0"}.fi-rr-barcode:before{content:"\f1b1"}.fi-rr-bars-filter:before{content:"\f1b2"}.fi-rr-bars-progress:before{content:"\f1b3"}.fi-rr-bars-sort:before{content:"\f1b4"}.fi-rr-baseball-alt:before{content:"\f1b5"}.fi-rr-baseball:before{content:"\f1b6"}.fi-rr-basket:before{content:"\f1b7"}.fi-rr-basketball:before{content:"\f1b8"}.fi-rr-battery-bolt:before{content:"\f1b9"}.fi-rr-battery-empty:before{content:"\f1ba"}.fi-rr-battery-full:before{content:"\f1bb"}.fi-rr-battery-half:before{content:"\f1bc"}.fi-rr-battery-quarter:before{content:"\f1bd"}.fi-rr-battery-slash:before{content:"\f1be"}.fi-rr-battery-three-quarters:before{content:"\f1bf"}.fi-rr-beacon:before{content:"\f1c0"}.fi-rr-bed-alt:before{content:"\f1c1"}.fi-rr-bed:before{content:"\f1c2"}.fi-rr-beer:before{content:"\f1c3"}.fi-rr-bell-ring:before{content:"\f1c4"}.fi-rr-bell-school:before{content:"\f1c5"}.fi-rr-bell:before{content:"\f1c6"}.fi-rr-bells:before{content:"\f1c7"}.fi-rr-bench-tree:before{content:"\f1c8"}.fi-rr-betamax:before{content:"\f1c9"}.fi-rr-bike:before{content:"\f1ca"}.fi-rr-biking-mountain:before{content:"\f1cb"}.fi-rr-biking:before{content:"\f1cc"}.fi-rr-billiard:before{content:"\f1cd"}.fi-rr-binary-circle-check:before{content:"\f1ce"}.fi-rr-binary-lock:before{content:"\f1cf"}.fi-rr-binary-slash:before{content:"\f1d0"}.fi-rr-binary:before{content:"\f1d1"}.fi-rr-binoculars:before{content:"\f1d2"}.fi-rr-blinds-open:before{content:"\f1d3"}.fi-rr-blinds-raised:before{content:"\f1d4"}.fi-rr-blinds:before{content:"\f1d5"}.fi-rr-block-brick:before{content:"\f1d6"}.fi-rr-block:before{content:"\f1d7"}.fi-rr-blog-pencil:before{content:"\f1d8"}.fi-rr-blog-text:before{content:"\f1d9"}.fi-rr-bold:before{content:"\f1da"}.fi-rr-bolt:before{content:"\f1db"}.fi-rr-bomb:before{content:"\f1dc"}.fi-rr-bone:before{content:"\f1dd"}.fi-rr-book-alt:before{content:"\f1de"}.fi-rr-book-arrow-right:before{content:"\f1df"}.fi-rr-book-arrow-up:before{content:"\f1e0"}.fi-rr-book-atlas:before{content:"\f1e1"}.fi-rr-book-bookmark:before{content:"\f1e2"}.fi-rr-book-font:before{content:"\f1e3"}.fi-rr-book-open-cover:before{content:"\f1e4"}.fi-rr-book-open-reader:before{content:"\f1e5"}.fi-rr-book:before{content:"\f1e6"}.fi-rr-bookmark:before{content:"\f1e7"}.fi-rr-books:before{content:"\f1e8"}.fi-rr-border-all:before{content:"\f1e9"}.fi-rr-border-bottom:before{content:"\f1ea"}.fi-rr-border-center-h:before{content:"\f1eb"}.fi-rr-border-center-v:before{content:"\f1ec"}.fi-rr-border-inner:before{content:"\f1ed"}.fi-rr-border-left:before{content:"\f1ee"}.fi-rr-border-none:before{content:"\f1ef"}.fi-rr-border-outer:before{content:"\f1f0"}.fi-rr-border-right:before{content:"\f1f1"}.fi-rr-border-style-alt:before{content:"\f1f2"}.fi-rr-border-style:before{content:"\f1f3"}.fi-rr-border-top:before{content:"\f1f4"}.fi-rr-bottle:before{content:"\f1f5"}.fi-rr-bow-arrow:before{content:"\f1f6"}.fi-rr-bowling-ball:before{content:"\f1f7"}.fi-rr-bowling-pins:before{content:"\f1f8"}.fi-rr-bowling:before{content:"\f1f9"}.fi-rr-box-alt:before{content:"\f1fa"}.fi-rr-box-ballot:before{content:"\f1fb"}.fi-rr-box-check:before{content:"\f1fc"}.fi-rr-box-fragile:before{content:"\f1fd"}.fi-rr-box-open-full:before{content:"\f1fe"}.fi-rr-box-open:before{content:"\f1ff"}.fi-rr-box-tissue:before{content:"\f200"}.fi-rr-box-up:before{content:"\f201"}.fi-rr-box:before{content:"\f202"}.fi-rr-boxes:before{content:"\f203"}.fi-rr-boxing-glove:before{content:"\f204"}.fi-rr-bracket-curly-right:before{content:"\f205"}.fi-rr-bracket-curly:before{content:"\f206"}.fi-rr-bracket-round-right:before{content:"\f207"}.fi-rr-bracket-round:before{content:"\f208"}.fi-rr-bracket-square-right:before{content:"\f209"}.fi-rr-bracket-square:before{content:"\f20a"}.fi-rr-brackets-curly:before{content:"\f20b"}.fi-rr-brackets-round:before{content:"\f20c"}.fi-rr-brackets-square:before{content:"\f20d"}.fi-rr-braille:before{content:"\f20e"}.fi-rr-brain-circuit:before{content:"\f20f"}.fi-rr-brain:before{content:"\f210"}.fi-rr-bread-loaf:before{content:"\f211"}.fi-rr-bread-slice:before{content:"\f212"}.fi-rr-bread:before{content:"\f213"}.fi-rr-briefcase:before{content:"\f214"}.fi-rr-brightness-low:before{content:"\f215"}.fi-rr-brightness:before{content:"\f216"}.fi-rr-bring-forward:before{content:"\f217"}.fi-rr-bring-front:before{content:"\f218"}.fi-rr-broccoli:before{content:"\f219"}.fi-rr-broken-image:before{content:"\f21a"}.fi-rr-broom:before{content:"\f21b"}.fi-rr-browser:before{content:"\f21c"}.fi-rr-browsers:before{content:"\f21d"}.fi-rr-brush:before{content:"\f21e"}.fi-rr-bug-slash:before{content:"\f21f"}.fi-rr-bug:before{content:"\f220"}.fi-rr-building:before{content:"\f221"}.fi-rr-bulb:before{content:"\f222"}.fi-rr-bullet:before{content:"\f223"}.fi-rr-bullseye-pointer:before{content:"\f224"}.fi-rr-bullseye:before{content:"\f225"}.fi-rr-burger-alt:before{content:"\f226"}.fi-rr-burger-fries:before{content:"\f227"}.fi-rr-burger-glass:before{content:"\f228"}.fi-rr-burrito:before{content:"\f229"}.fi-rr-bus-alt:before{content:"\f22a"}.fi-rr-bus:before{content:"\f22b"}.fi-rr-business-time:before{content:"\f22c"}.fi-rr-butterfly:before{content:"\f22d"}.fi-rr-c:before{content:"\f22e"}.fi-rr-cabin:before{content:"\f22f"}.fi-rr-cake-birthday:before{content:"\f230"}.fi-rr-cake-wedding:before{content:"\f231"}.fi-rr-calculator:before{content:"\f232"}.fi-rr-calendar-check:before{content:"\f233"}.fi-rr-calendar-clock:before{content:"\f234"}.fi-rr-calendar-exclamation:before{content:"\f235"}.fi-rr-calendar-lines-pen:before{content:"\f236"}.fi-rr-calendar-lines:before{content:"\f237"}.fi-rr-calendar-minus:before{content:"\f238"}.fi-rr-calendar-pen:before{content:"\f239"}.fi-rr-calendar-plus:before{content:"\f23a"}.fi-rr-calendar:before{content:"\f23b"}.fi-rr-calendars:before{content:"\f23c"}.fi-rr-call-history:before{content:"\f23d"}.fi-rr-call-incoming:before{content:"\f23e"}.fi-rr-call-missed:before{content:"\f23f"}.fi-rr-call-outgoing:before{content:"\f240"}.fi-rr-camcorder:before{content:"\f241"}.fi-rr-camera:before{content:"\f242"}.fi-rr-camping:before{content:"\f243"}.fi-rr-candy-alt:before{content:"\f244"}.fi-rr-candy-cane:before{content:"\f245"}.fi-rr-candy-corn:before{content:"\f246"}.fi-rr-candy:before{content:"\f247"}.fi-rr-canned-food:before{content:"\f248"}.fi-rr-car-alt:before{content:"\f249"}.fi-rr-car-battery:before{content:"\f24a"}.fi-rr-car-bolt:before{content:"\f24b"}.fi-rr-car-building:before{content:"\f24c"}.fi-rr-car-bump:before{content:"\f24d"}.fi-rr-car-bus:before{content:"\f24e"}.fi-rr-car-circle-bolt:before{content:"\f24f"}.fi-rr-car-crash:before{content:"\f250"}.fi-rr-car-garage:before{content:"\f251"}.fi-rr-car-mechanic:before{content:"\f252"}.fi-rr-car-side-bolt:before{content:"\f253"}.fi-rr-car-side:before{content:"\f254"}.fi-rr-car-tilt:before{content:"\f255"}.fi-rr-car-wash:before{content:"\f256"}.fi-rr-car:before{content:"\f257"}.fi-rr-caravan-alt:before{content:"\f258"}.fi-rr-caravan:before{content:"\f259"}.fi-rr-caret-circle-down:before{content:"\f25a"}.fi-rr-caret-circle-right:before{content:"\f25b"}.fi-rr-caret-circle-up:before{content:"\f25c"}.fi-rr-caret-down:before{content:"\f25d"}.fi-rr-caret-left:before{content:"\f25e"}.fi-rr-caret-quare-up:before{content:"\f25f"}.fi-rr-caret-right:before{content:"\f260"}.fi-rr-caret-square-down:before{content:"\f261"}.fi-rr-caret-square-left_1:before{content:"\f262"}.fi-rr-caret-square-left:before{content:"\f263"}.fi-rr-caret-square-right:before{content:"\f264"}.fi-rr-caret-up:before{content:"\f265"}.fi-rr-carrot:before{content:"\f266"}.fi-rr-cars:before{content:"\f267"}.fi-rr-cash-register:before{content:"\f268"}.fi-rr-cassette-tape:before{content:"\f269"}.fi-rr-cassette-vhs:before{content:"\f26a"}.fi-rr-castle:before{content:"\f26b"}.fi-rr-chair-office:before{content:"\f26c"}.fi-rr-chair:before{content:"\f26d"}.fi-rr-charging-station:before{content:"\f26e"}.fi-rr-chart-area:before{content:"\f26f"}.fi-rr-chart-bullet:before{content:"\f270"}.fi-rr-chart-candlestick:before{content:"\f271"}.fi-rr-chart-connected:before{content:"\f272"}.fi-rr-chart-gantt:before{content:"\f273"}.fi-rr-chart-histogram:before{content:"\f274"}.fi-rr-chart-line-up:before{content:"\f275"}.fi-rr-chart-mixed:before{content:"\f276"}.fi-rr-chart-network:before{content:"\f277"}.fi-rr-chart-pie-alt:before{content:"\f278"}.fi-rr-chart-pie:before{content:"\f279"}.fi-rr-chart-pyramid:before{content:"\f27a"}.fi-rr-chart-radar:before{content:"\f27b"}.fi-rr-chart-scatter-3d:before{content:"\f27c"}.fi-rr-chart-scatter-bubble:before{content:"\f27d"}.fi-rr-chart-scatter:before{content:"\f27e"}.fi-rr-chart-set-theory:before{content:"\f27f"}.fi-rr-chart-tree:before{content:"\f280"}.fi-rr-chart-waterfall:before{content:"\f281"}.fi-rr-chat-arrow-down:before{content:"\f282"}.fi-rr-chat-arrow-grow:before{content:"\f283"}.fi-rr-check:before{content:"\f284"}.fi-rr-checkbox:before{content:"\f285"}.fi-rr-cheese-alt:before{content:"\f286"}.fi-rr-cheese:before{content:"\f287"}.fi-rr-cherry:before{content:"\f288"}.fi-rr-chess-bishop:before{content:"\f289"}.fi-rr-chess-board:before{content:"\f28a"}.fi-rr-chess-clock-alt:before{content:"\f28b"}.fi-rr-chess-clock:before{content:"\f28c"}.fi-rr-chess-king-alt:before{content:"\f28d"}.fi-rr-chess-king:before{content:"\f28e"}.fi-rr-chess-knight-alt:before{content:"\f28f"}.fi-rr-chess-knight:before{content:"\f290"}.fi-rr-chess-pawn-alt:before{content:"\f291"}.fi-rr-chess-piece:before{content:"\f292"}.fi-rr-chess-queen-alt:before{content:"\f293"}.fi-rr-chess-queen:before{content:"\f294"}.fi-rr-chess-rook-alt:before{content:"\f295"}.fi-rr-chess-rook:before{content:"\f296"}.fi-rr-chess:before{content:"\f297"}.fi-rr-chevron-double-down:before{content:"\f298"}.fi-rr-chevron-double-up:before{content:"\f299"}.fi-rr-child-head:before{content:"\f29a"}.fi-rr-chocolate:before{content:"\f29b"}.fi-rr-circle-0:before{content:"\f29c"}.fi-rr-circle-1:before{content:"\f29d"}.fi-rr-circle-2:before{content:"\f29e"}.fi-rr-circle-3:before{content:"\f29f"}.fi-rr-circle-4:before{content:"\f2a0"}.fi-rr-circle-5:before{content:"\f2a1"}.fi-rr-circle-6:before{content:"\f2a2"}.fi-rr-circle-7:before{content:"\f2a3"}.fi-rr-circle-8:before{content:"\f2a4"}.fi-rr-circle-9:before{content:"\f2a5"}.fi-rr-circle-dashed:before{content:"\f2a6"}.fi-rr-circle-envelope:before{content:"\f2a7"}.fi-rr-circle-half-stroke:before{content:"\f2a8"}.fi-rr-circle-heart:before{content:"\f2a9"}.fi-rr-circle-phone-flip:before{content:"\f2aa"}.fi-rr-circle-phone-hangup:before{content:"\f2ab"}.fi-rr-circle-phone:before{content:"\f2ac"}.fi-rr-circle-small:before{content:"\f2ad"}.fi-rr-circle:before{content:"\f2ae"}.fi-rr-city:before{content:"\f2af"}.fi-rr-clip:before{content:"\f2b0"}.fi-rr-clipboard-list-check:before{content:"\f2b1"}.fi-rr-clipboard-list:before{content:"\f2b2"}.fi-rr-clock-eight-thirty:before{content:"\f2b3"}.fi-rr-clock-eleven-thirty:before{content:"\f2b4"}.fi-rr-clock-eleven:before{content:"\f2b5"}.fi-rr-clock-five-thirty:before{content:"\f2b6"}.fi-rr-clock-five:before{content:"\f2b7"}.fi-rr-clock-four-thirty:before{content:"\f2b8"}.fi-rr-clock-nine-thirty:before{content:"\f2b9"}.fi-rr-clock-nine:before{content:"\f2ba"}.fi-rr-clock-one-thirty:before{content:"\f2bb"}.fi-rr-clock-one:before{content:"\f2bc"}.fi-rr-clock-seven-thirty:before{content:"\f2bd"}.fi-rr-clock-seven:before{content:"\f2be"}.fi-rr-clock-six-thirty:before{content:"\f2bf"}.fi-rr-clock-six:before{content:"\f2c0"}.fi-rr-clock-ten-thirty:before{content:"\f2c1"}.fi-rr-clock-ten:before{content:"\f2c2"}.fi-rr-clock-three-thirty:before{content:"\f2c3"}.fi-rr-clock-three:before{content:"\f2c4"}.fi-rr-clock-twelve-thirty:before{content:"\f2c5"}.fi-rr-clock-twelve:before{content:"\f2c6"}.fi-rr-clock-two-thirty:before{content:"\f2c7"}.fi-rr-clock-two:before{content:"\f2c8"}.fi-rr-clock:before{content:"\f2c9"}.fi-rr-closed-captioning-slash:before{content:"\f2ca"}.fi-rr-cloud-check:before{content:"\f2cb"}.fi-rr-cloud-disabled:before{content:"\f2cc"}.fi-rr-cloud-download-alt:before{content:"\f2cd"}.fi-rr-cloud-download:before{content:"\f2ce"}.fi-rr-cloud-drizzle:before{content:"\f2cf"}.fi-rr-cloud-hail-mixed:before{content:"\f2d0"}.fi-rr-cloud-hail:before{content:"\f2d1"}.fi-rr-cloud-moon-rain:before{content:"\f2d2"}.fi-rr-cloud-moon:before{content:"\f2d3"}.fi-rr-cloud-rain:before{content:"\f2d4"}.fi-rr-cloud-rainbow:before{content:"\f2d5"}.fi-rr-cloud-share:before{content:"\f2d6"}.fi-rr-cloud-showers-heavy:before{content:"\f2d7"}.fi-rr-cloud-showers:before{content:"\f2d8"}.fi-rr-cloud-sleet:before{content:"\f2d9"}.fi-rr-cloud-snow:before{content:"\f2da"}.fi-rr-cloud-sun-rain:before{content:"\f2db"}.fi-rr-cloud-sun:before{content:"\f2dc"}.fi-rr-cloud-upload-alt:before{content:"\f2dd"}.fi-rr-cloud-upload:before{content:"\f2de"}.fi-rr-cloud:before{content:"\f2df"}.fi-rr-clouds-moon:before{content:"\f2e0"}.fi-rr-clouds-sun:before{content:"\f2e1"}.fi-rr-clouds:before{content:"\f2e2"}.fi-rr-club:before{content:"\f2e3"}.fi-rr-cocktail-alt:before{content:"\f2e4"}.fi-rr-cocktail:before{content:"\f2e5"}.fi-rr-code-branch:before{content:"\f2e6"}.fi-rr-code-commit:before{content:"\f2e7"}.fi-rr-code-compare:before{content:"\f2e8"}.fi-rr-code-fork:before{content:"\f2e9"}.fi-rr-code-merge:before{content:"\f2ea"}.fi-rr-code-pull-request-closed:before{content:"\f2eb"}.fi-rr-code-pull-request-draft:before{content:"\f2ec"}.fi-rr-code-pull-request:before{content:"\f2ed"}.fi-rr-code-simple:before{content:"\f2ee"}.fi-rr-coffee-pot:before{content:"\f2ef"}.fi-rr-coffee:before{content:"\f2f0"}.fi-rr-coin:before{content:"\f2f1"}.fi-rr-coins:before{content:"\f2f2"}.fi-rr-comet:before{content:"\f2f3"}.fi-rr-comment-alt-middle-top:before{content:"\f2f4"}.fi-rr-comment-alt-middle:before{content:"\f2f5"}.fi-rr-comment-alt:before{content:"\f2f6"}.fi-rr-comment-arrow-down:before{content:"\f2f7"}.fi-rr-comment-arrow-up-right:before{content:"\f2f8"}.fi-rr-comment-arrow-up:before{content:"\f2f9"}.fi-rr-comment-check:before{content:"\f2fa"}.fi-rr-comment-code:before{content:"\f2fb"}.fi-rr-comment-dollar:before{content:"\f2fc"}.fi-rr-comment-exclamation:before{content:"\f2fd"}.fi-rr-comment-heart:before{content:"\f2fe"}.fi-rr-comment-image:before{content:"\f2ff"}.fi-rr-comment-info:before{content:"\f300"}.fi-rr-comment-pen:before{content:"\f301"}.fi-rr-comment-question:before{content:"\f302"}.fi-rr-comment-quote:before{content:"\f303"}.fi-rr-comment-slash:before{content:"\f304"}.fi-rr-comment-sms:before{content:"\f305"}.fi-rr-comment-text:before{content:"\f306"}.fi-rr-comment-user:before{content:"\f307"}.fi-rr-comment-xmark:before{content:"\f308"}.fi-rr-comment:before{content:"\f309"}.fi-rr-comments-dollar:before{content:"\f30a"}.fi-rr-comments-question-check:before{content:"\f30b"}.fi-rr-comments-question:before{content:"\f30c"}.fi-rr-comments:before{content:"\f30d"}.fi-rr-compress-alt:before{content:"\f30e"}.fi-rr-compress:before{content:"\f30f"}.fi-rr-computer:before{content:"\f310"}.fi-rr-concierge-bell:before{content:"\f311"}.fi-rr-confetti:before{content:"\f312"}.fi-rr-cookie:before{content:"\f313"}.fi-rr-copy-alt:before{content:"\f314"}.fi-rr-copy-image:before{content:"\f315"}.fi-rr-copy:before{content:"\f316"}.fi-rr-copyright:before{content:"\f317"}.fi-rr-corn:before{content:"\f318"}.fi-rr-cow:before{content:"\f319"}.fi-rr-cowbell-more:before{content:"\f31a"}.fi-rr-cowbell:before{content:"\f31b"}.fi-rr-cream:before{content:"\f31c"}.fi-rr-credit-card:before{content:"\f31d"}.fi-rr-cricket:before{content:"\f31e"}.fi-rr-croissant:before{content:"\f31f"}.fi-rr-cross-circle:before{content:"\f320"}.fi-rr-cross-religion:before{content:"\f321"}.fi-rr-cross-small:before{content:"\f322"}.fi-rr-cross:before{content:"\f323"}.fi-rr-crown:before{content:"\f324"}.fi-rr-crystal-ball:before{content:"\f325"}.fi-rr-cube:before{content:"\f326"}.fi-rr-cubes:before{content:"\f327"}.fi-rr-cupcake:before{content:"\f328"}.fi-rr-curling:before{content:"\f329"}.fi-rr-cursor-finger:before{content:"\f32a"}.fi-rr-cursor-plus:before{content:"\f32b"}.fi-rr-cursor-text-alt:before{content:"\f32c"}.fi-rr-cursor-text:before{content:"\f32d"}.fi-rr-cursor:before{content:"\f32e"}.fi-rr-d:before{content:"\f32f"}.fi-rr-dart:before{content:"\f330"}.fi-rr-dashboard:before{content:"\f331"}.fi-rr-data-transfer:before{content:"\f332"}.fi-rr-database:before{content:"\f333"}.fi-rr-delete-document:before{content:"\f334"}.fi-rr-delete-user:before{content:"\f335"}.fi-rr-delete:before{content:"\f336"}.fi-rr-democrat:before{content:"\f337"}.fi-rr-desktop-wallpaper:before{content:"\f338"}.fi-rr-devices:before{content:"\f339"}.fi-rr-dewpoint:before{content:"\f33a"}.fi-rr-diagram-cells:before{content:"\f33b"}.fi-rr-diagram-lean-canvas:before{content:"\f33c"}.fi-rr-diagram-nested:before{content:"\f33d"}.fi-rr-diagram-next:before{content:"\f33e"}.fi-rr-diagram-predecessor:before{content:"\f33f"}.fi-rr-diagram-previous:before{content:"\f340"}.fi-rr-diagram-project:before{content:"\f341"}.fi-rr-diagram-sankey:before{content:"\f342"}.fi-rr-diagram-subtask:before{content:"\f343"}.fi-rr-diagram-successor:before{content:"\f344"}.fi-rr-diamond-turn-right:before{content:"\f345"}.fi-rr-diamond:before{content:"\f346"}.fi-rr-dice-alt:before{content:"\f347"}.fi-rr-dice-d10:before{content:"\f348"}.fi-rr-dice-d12:before{content:"\f349"}.fi-rr-dice-d20:before{content:"\f34a"}.fi-rr-dice-d4:before{content:"\f34b"}.fi-rr-dice-d6:before{content:"\f34c"}.fi-rr-dice-d8:before{content:"\f34d"}.fi-rr-dice-four:before{content:"\f34e"}.fi-rr-dice-one:before{content:"\f34f"}.fi-rr-dice-six:before{content:"\f350"}.fi-rr-dice-three:before{content:"\f351"}.fi-rr-dice-two:before{content:"\f352"}.fi-rr-dice:before{content:"\f353"}.fi-rr-diploma:before{content:"\f354"}.fi-rr-disco-ball:before{content:"\f355"}.fi-rr-disk:before{content:"\f356"}.fi-rr-display-code:before{content:"\f357"}.fi-rr-distribute-spacing-horizontal:before{content:"\f358"}.fi-rr-distribute-spacing-vertical:before{content:"\f359"}.fi-rr-dizzy:before{content:"\f35a"}.fi-rr-doctor:before{content:"\f35b"}.fi-rr-document-signed:before{content:"\f35c"}.fi-rr-document:before{content:"\f35d"}.fi-rr-dollar:before{content:"\f35e"}.fi-rr-donate:before{content:"\f35f"}.fi-rr-door-closed:before{content:"\f360"}.fi-rr-door-open:before{content:"\f361"}.fi-rr-down-left-and-up-right-to-center:before{content:"\f362"}.fi-rr-down-left:before{content:"\f363"}.fi-rr-down-right:before{content:"\f364"}.fi-rr-down-to-line:before{content:"\f365"}.fi-rr-down:before{content:"\f366"}.fi-rr-download:before{content:"\f367"}.fi-rr-drafting-compass:before{content:"\f368"}.fi-rr-dreidel:before{content:"\f369"}.fi-rr-drink-alt:before{content:"\f36a"}.fi-rr-drumstick:before{content:"\f36b"}.fi-rr-dungeon:before{content:"\f36c"}.fi-rr-duplicate:before{content:"\f36d"}.fi-rr-e-learning:before{content:"\f36e"}.fi-rr-e:before{content:"\f36f"}.fi-rr-ear-deaf:before{content:"\f370"}.fi-rr-earnings:before{content:"\f371"}.fi-rr-eclipse-alt:before{content:"\f372"}.fi-rr-eclipse:before{content:"\f373"}.fi-rr-edit-alt:before{content:"\f374"}.fi-rr-edit:before{content:"\f375"}.fi-rr-egg-fried:before{content:"\f376"}.fi-rr-egg:before{content:"\f377"}.fi-rr-engine-warning:before{content:"\f378"}.fi-rr-enter:before{content:"\f379"}.fi-rr-envelope-ban:before{content:"\f37a"}.fi-rr-envelope-bulk:before{content:"\f37b"}.fi-rr-envelope-download:before{content:"\f37c"}.fi-rr-envelope-marker:before{content:"\f37d"}.fi-rr-envelope-open-dollar:before{content:"\f37e"}.fi-rr-envelope-open-text:before{content:"\f37f"}.fi-rr-envelope-open:before{content:"\f380"}.fi-rr-envelope-plus:before{content:"\f381"}.fi-rr-envelope:before{content:"\f382"}.fi-rr-equality:before{content:"\f383"}.fi-rr-euro:before{content:"\f384"}.fi-rr-exchange-alt:before{content:"\f385"}.fi-rr-exchange:before{content:"\f386"}.fi-rr-exclamation:before{content:"\f387"}.fi-rr-exit:before{content:"\f388"}.fi-rr-expand-arrows-alt:before{content:"\f389"}.fi-rr-expand-arrows:before{content:"\f38a"}.fi-rr-expand:before{content:"\f38b"}.fi-rr-eye-crossed:before{content:"\f38c"}.fi-rr-eye-dropper:before{content:"\f38d"}.fi-rr-eye:before{content:"\f38e"}.fi-rr-f:before{content:"\f38f"}.fi-rr-face-awesome:before{content:"\f390"}.fi-rr-face-head-bandage:before{content:"\f391"}.fi-rr-farm:before{content:"\f392"}.fi-rr-feather:before{content:"\f393"}.fi-rr-fence:before{content:"\f394"}.fi-rr-ferris-wheel:before{content:"\f395"}.fi-rr-fighter-jet:before{content:"\f396"}.fi-rr-file-ai:before{content:"\f397"}.fi-rr-file-binary:before{content:"\f398"}.fi-rr-file-chart-line:before{content:"\f399"}.fi-rr-file-chart-pie:before{content:"\f39a"}.fi-rr-file-code:before{content:"\f39b"}.fi-rr-file-eps:before{content:"\f39c"}.fi-rr-file-excel:before{content:"\f39d"}.fi-rr-file-export:before{content:"\f39e"}.fi-rr-file-invoice-dollar:before{content:"\f39f"}.fi-rr-file-invoice:before{content:"\f3a0"}.fi-rr-file-pdf:before{content:"\f3a1"}.fi-rr-file-powerpoint:before{content:"\f3a2"}.fi-rr-file-psd:before{content:"\f3a3"}.fi-rr-file-spreadsheet:before{content:"\f3a4"}.fi-rr-file-video:before{content:"\f3a5"}.fi-rr-file-word:before{content:"\f3a6"}.fi-rr-file:before{content:"\f3a7"}.fi-rr-fill:before{content:"\f3a8"}.fi-rr-film-slash:before{content:"\f3a9"}.fi-rr-film:before{content:"\f3aa"}.fi-rr-filter-slash:before{content:"\f3ab"}.fi-rr-filter:before{content:"\f3ac"}.fi-rr-filters:before{content:"\f3ad"}.fi-rr-fingerprint:before{content:"\f3ae"}.fi-rr-fire-flame-curved:before{content:"\f3af"}.fi-rr-fire-smoke:before{content:"\f3b0"}.fi-rr-fish:before{content:"\f3b1"}.fi-rr-fishing-rod:before{content:"\f3b2"}.fi-rr-flag-alt:before{content:"\f3b3"}.fi-rr-flag-checkered:before{content:"\f3b4"}.fi-rr-flag-usa:before{content:"\f3b5"}.fi-rr-flag:before{content:"\f3b6"}.fi-rr-flame:before{content:"\f3b7"}.fi-rr-flip-horizontal:before{content:"\f3b8"}.fi-rr-flower-bouquet:before{content:"\f3b9"}.fi-rr-flower-tulip:before{content:"\f3ba"}.fi-rr-flower:before{content:"\f3bb"}.fi-rr-flushed:before{content:"\f3bc"}.fi-rr-fog:before{content:"\f3bd"}.fi-rr-folder-download:before{content:"\f3be"}.fi-rr-folder-minus:before{content:"\f3bf"}.fi-rr-folder-times:before{content:"\f3c0"}.fi-rr-folder-tree:before{content:"\f3c1"}.fi-rr-folder-upload:before{content:"\f3c2"}.fi-rr-folder:before{content:"\f3c3"}.fi-rr-folders:before{content:"\f3c4"}.fi-rr-follow-folder:before{content:"\f3c5"}.fi-rr-followcollection:before{content:"\f3c6"}.fi-rr-following:before{content:"\f3c7"}.fi-rr-football:before{content:"\f3c8"}.fi-rr-fork:before{content:"\f3c9"}.fi-rr-form:before{content:"\f3ca"}.fi-rr-fort:before{content:"\f3cb"}.fi-rr-forward:before{content:"\f3cc"}.fi-rr-fox:before{content:"\f3cd"}.fi-rr-french-fries:before{content:"\f3ce"}.fi-rr-frown:before{content:"\f3cf"}.fi-rr-ftp:before{content:"\f3d0"}.fi-rr-funnel-dollar:before{content:"\f3d1"}.fi-rr-g:before{content:"\f3d2"}.fi-rr-gallery-thumbnails:before{content:"\f3d3"}.fi-rr-gallery:before{content:"\f3d4"}.fi-rr-game-board-alt:before{content:"\f3d5"}.fi-rr-gamepad:before{content:"\f3d6"}.fi-rr-garage-car:before{content:"\f3d7"}.fi-rr-garage-open:before{content:"\f3d8"}.fi-rr-garage:before{content:"\f3d9"}.fi-rr-garlic:before{content:"\f3da"}.fi-rr-gas-pump-alt:before{content:"\f3db"}.fi-rr-gas-pump-slash:before{content:"\f3dc"}.fi-rr-gas-pump:before{content:"\f3dd"}.fi-rr-gavel:before{content:"\f3de"}.fi-rr-gears:before{content:"\f3df"}.fi-rr-gem:before{content:"\f3e0"}.fi-rr-gif:before{content:"\f3e1"}.fi-rr-gift-card:before{content:"\f3e2"}.fi-rr-gift:before{content:"\f3e3"}.fi-rr-gifts:before{content:"\f3e4"}.fi-rr-gingerbread-man:before{content:"\f3e5"}.fi-rr-glass-cheers:before{content:"\f3e6"}.fi-rr-glass:before{content:"\f3e7"}.fi-rr-glasses:before{content:"\f3e8"}.fi-rr-globe-alt:before{content:"\f3e9"}.fi-rr-globe:before{content:"\f3ea"}.fi-rr-golf-ball:before{content:"\f3eb"}.fi-rr-golf:before{content:"\f3ec"}.fi-rr-graduation-cap:before{content:"\f3ed"}.fi-rr-grape:before{content:"\f3ee"}.fi-rr-graphic-style:before{content:"\f3ef"}.fi-rr-graphic-tablet:before{content:"\f3f0"}.fi-rr-grid-alt:before{content:"\f3f1"}.fi-rr-grid-dividers:before{content:"\f3f2"}.fi-rr-grid:before{content:"\f3f3"}.fi-rr-grill:before{content:"\f3f4"}.fi-rr-grimace:before{content:"\f3f5"}.fi-rr-grin-alt:before{content:"\f3f6"}.fi-rr-grin-beam-sweat:before{content:"\f3f7"}.fi-rr-grin-beam:before{content:"\f3f8"}.fi-rr-grin-hearts:before{content:"\f3f9"}.fi-rr-grin-squint-tears:before{content:"\f3fa"}.fi-rr-grin-squint:before{content:"\f3fb"}.fi-rr-grin-stars:before{content:"\f3fc"}.fi-rr-grin-tears:before{content:"\f3fd"}.fi-rr-grin-tongue-squint:before{content:"\f3fe"}.fi-rr-grin-tongue-wink:before{content:"\f3ff"}.fi-rr-grin-tongue:before{content:"\f400"}.fi-rr-grin-wink:before{content:"\f401"}.fi-rr-grin:before{content:"\f402"}.fi-rr-guitar:before{content:"\f403"}.fi-rr-gym:before{content:"\f404"}.fi-rr-h:before{content:"\f405"}.fi-rr-hamburger-soda:before{content:"\f406"}.fi-rr-hamburger:before{content:"\f407"}.fi-rr-hammer-crash:before{content:"\f408"}.fi-rr-hammer-war:before{content:"\f409"}.fi-rr-hammer:before{content:"\f40a"}.fi-rr-hand-holding-box:before{content:"\f40b"}.fi-rr-hand-holding-heart:before{content:"\f40c"}.fi-rr-hand-holding-seeding:before{content:"\f40d"}.fi-rr-hand-horns:before{content:"\f40e"}.fi-rr-hand-lizard:before{content:"\f40f"}.fi-rr-hand-peace:before{content:"\f410"}.fi-rr-hand:before{content:"\f411"}.fi-rr-hands-clapping:before{content:"\f412"}.fi-rr-handshake-angle:before{content:"\f413"}.fi-rr-handshake:before{content:"\f414"}.fi-rr-hastag:before{content:"\f415"}.fi-rr-hat-birthday:before{content:"\f416"}.fi-rr-hat-chef:before{content:"\f417"}.fi-rr-hdd:before{content:"\f418"}.fi-rr-head-side-brain:before{content:"\f419"}.fi-rr-head-side-cough-slash:before{content:"\f41a"}.fi-rr-head-side-cough:before{content:"\f41b"}.fi-rr-head-side-heart:before{content:"\f41c"}.fi-rr-head-side-mask:before{content:"\f41d"}.fi-rr-head-side-medical:before{content:"\f41e"}.fi-rr-head-side-thinking:before{content:"\f41f"}.fi-rr-head-side-virus:before{content:"\f420"}.fi-rr-head-side:before{content:"\f421"}.fi-rr-head-vr:before{content:"\f422"}.fi-rr-headphones:before{content:"\f423"}.fi-rr-headset:before{content:"\f424"}.fi-rr-heart-arrow:before{content:"\f425"}.fi-rr-heart-crack:before{content:"\f426"}.fi-rr-heart:before{content:"\f427"}.fi-rr-heat:before{content:"\f428"}.fi-rr-helicopter-side:before{content:"\f429"}.fi-rr-highlighter-line:before{content:"\f42a"}.fi-rr-highlighter:before{content:"\f42b"}.fi-rr-hiking:before{content:"\f42c"}.fi-rr-hockey-puck:before{content:"\f42d"}.fi-rr-hockey-sticks:before{content:"\f42e"}.fi-rr-home-location-alt:before{content:"\f42f"}.fi-rr-home-location:before{content:"\f430"}.fi-rr-home:before{content:"\f431"}.fi-rr-horizontal-rule:before{content:"\f432"}.fi-rr-hot-tub:before{content:"\f433"}.fi-rr-hotdog:before{content:"\f434"}.fi-rr-hotel:before{content:"\f435"}.fi-rr-hourglass-end:before{content:"\f436"}.fi-rr-hourglass:before{content:"\f437"}.fi-rr-house-blank:before{content:"\f438"}.fi-rr-house-building:before{content:"\f439"}.fi-rr-house-chimney-blank:before{content:"\f43a"}.fi-rr-house-chimney-crack:before{content:"\f43b"}.fi-rr-house-chimney-medical:before{content:"\f43c"}.fi-rr-house-chimney-window:before{content:"\f43d"}.fi-rr-house-chimney:before{content:"\f43e"}.fi-rr-house-crack:before{content:"\f43f"}.fi-rr-house-flood:before{content:"\f440"}.fi-rr-house-medical:before{content:"\f441"}.fi-rr-house-tree:before{content:"\f442"}.fi-rr-house-turret:before{content:"\f443"}.fi-rr-house-window:before{content:"\f444"}.fi-rr-hryvnia:before{content:"\f445"}.fi-rr-humidity:before{content:"\f446"}.fi-rr-hurricane:before{content:"\f447"}.fi-rr-i:before{content:"\f448"}.fi-rr-ice-cream:before{content:"\f449"}.fi-rr-ice-skate:before{content:"\f44a"}.fi-rr-icon-star:before{content:"\f44b"}.fi-rr-id-badge:before{content:"\f44c"}.fi-rr-igloo:before{content:"\f44d"}.fi-rr-images:before{content:"\f44e"}.fi-rr-inbox-in:before{content:"\f44f"}.fi-rr-inbox-out:before{content:"\f450"}.fi-rr-inbox:before{content:"\f451"}.fi-rr-incognito:before{content:"\f452"}.fi-rr-indent:before{content:"\f453"}.fi-rr-industry-windows:before{content:"\f454"}.fi-rr-infinity:before{content:"\f455"}.fi-rr-info:before{content:"\f456"}.fi-rr-interactive:before{content:"\f457"}.fi-rr-interlining:before{content:"\f458"}.fi-rr-interrogation:before{content:"\f459"}.fi-rr-island-tropical:before{content:"\f45a"}.fi-rr-italic:before{content:"\f45b"}.fi-rr-j:before{content:"\f45c"}.fi-rr-jam:before{content:"\f45d"}.fi-rr-jpg:before{content:"\f45e"}.fi-rr-jug:before{content:"\f45f"}.fi-rr-k:before{content:"\f460"}.fi-rr-kerning:before{content:"\f461"}.fi-rr-key-skeleton-left-right:before{content:"\f462"}.fi-rr-key:before{content:"\f463"}.fi-rr-keyboard-brightness-low:before{content:"\f464"}.fi-rr-keyboard-brightness:before{content:"\f465"}.fi-rr-keyboard:before{content:"\f466"}.fi-rr-keynote:before{content:"\f467"}.fi-rr-kiss-beam:before{content:"\f468"}.fi-rr-kiss-wink-heart:before{content:"\f469"}.fi-rr-kiss:before{content:"\f46a"}.fi-rr-kite:before{content:"\f46b"}.fi-rr-knife:before{content:"\f46c"}.fi-rr-l:before{content:"\f46d"}.fi-rr-label:before{content:"\f46e"}.fi-rr-landmark-alt:before{content:"\f46f"}.fi-rr-laptop-code:before{content:"\f470"}.fi-rr-laptop-mobile:before{content:"\f471"}.fi-rr-laptop:before{content:"\f472"}.fi-rr-lasso-sparkles:before{content:"\f473"}.fi-rr-lasso:before{content:"\f474"}.fi-rr-laugh-beam:before{content:"\f475"}.fi-rr-laugh-squint:before{content:"\f476"}.fi-rr-laugh-wink:before{content:"\f477"}.fi-rr-laugh:before{content:"\f478"}.fi-rr-layer-minus:before{content:"\f479"}.fi-rr-layer-plus:before{content:"\f47a"}.fi-rr-layers:before{content:"\f47b"}.fi-rr-layout-fluid:before{content:"\f47c"}.fi-rr-leaf:before{content:"\f47d"}.fi-rr-lemon:before{content:"\f47e"}.fi-rr-letter-case:before{content:"\f47f"}.fi-rr-lettuce:before{content:"\f480"}.fi-rr-level-down-alt:before{content:"\f481"}.fi-rr-level-down:before{content:"\f482"}.fi-rr-level-up-alt:before{content:"\f483"}.fi-rr-level-up:before{content:"\f484"}.fi-rr-license:before{content:"\f485"}.fi-rr-life-ring:before{content:"\f486"}.fi-rr-light-switch-off:before{content:"\f487"}.fi-rr-light-switch-on:before{content:"\f488"}.fi-rr-light-switch:before{content:"\f489"}.fi-rr-lightbulb-dollar:before{content:"\f48a"}.fi-rr-line-width:before{content:"\f48b"}.fi-rr-link-alt:before{content:"\f48c"}.fi-rr-link-horizontal-slash:before{content:"\f48d"}.fi-rr-link-horizontal:before{content:"\f48e"}.fi-rr-link-slash-alt:before{content:"\f48f"}.fi-rr-link-slash:before{content:"\f490"}.fi-rr-link:before{content:"\f491"}.fi-rr-lipstick:before{content:"\f492"}.fi-rr-lira-sign:before{content:"\f493"}.fi-rr-list-check:before{content:"\f494"}.fi-rr-list:before{content:"\f495"}.fi-rr-loading:before{content:"\f496"}.fi-rr-location-alt:before{content:"\f497"}.fi-rr-location-crosshairs-slash:before{content:"\f498"}.fi-rr-location-crosshairs:before{content:"\f499"}.fi-rr-location-dot-slash:before{content:"\f49a"}.fi-rr-lock-alt:before{content:"\f49b"}.fi-rr-lock:before{content:"\f49c"}.fi-rr-luchador:before{content:"\f49d"}.fi-rr-luggage-cart:before{content:"\f49e"}.fi-rr-luggage-rolling:before{content:"\f49f"}.fi-rr-m:before{content:"\f4a0"}.fi-rr-magic-wand:before{content:"\f4a1"}.fi-rr-mailbox:before{content:"\f4a2"}.fi-rr-makeup-brush:before{content:"\f4a3"}.fi-rr-man-head:before{content:"\f4a4"}.fi-rr-map-marker-check:before{content:"\f4a5"}.fi-rr-map-marker-cross:before{content:"\f4a6"}.fi-rr-map-marker-edit:before{content:"\f4a7"}.fi-rr-map-marker-home:before{content:"\f4a8"}.fi-rr-map-marker-minus:before{content:"\f4a9"}.fi-rr-map-marker-plus:before{content:"\f4aa"}.fi-rr-map-marker-question:before{content:"\f4ab"}.fi-rr-map-marker-slash:before{content:"\f4ac"}.fi-rr-map-marker-smile:before{content:"\f4ad"}.fi-rr-map-marker:before{content:"\f4ae"}.fi-rr-map-pin:before{content:"\f4af"}.fi-rr-map:before{content:"\f4b0"}.fi-rr-marker-time:before{content:"\f4b1"}.fi-rr-marker:before{content:"\f4b2"}.fi-rr-mars-double:before{content:"\f4b3"}.fi-rr-mars:before{content:"\f4b4"}.fi-rr-mask-carnival:before{content:"\f4b5"}.fi-rr-mask:before{content:"\f4b6"}.fi-rr-medicine:before{content:"\f4b7"}.fi-rr-megaphone:before{content:"\f4b8"}.fi-rr-meh-blank:before{content:"\f4b9"}.fi-rr-meh-rolling-eyes:before{content:"\f4ba"}.fi-rr-meh:before{content:"\f4bb"}.fi-rr-melon:before{content:"\f4bc"}.fi-rr-memory:before{content:"\f4bd"}.fi-rr-menu-burger:before{content:"\f4be"}.fi-rr-menu-dots-vertical:before{content:"\f4bf"}.fi-rr-menu-dots:before{content:"\f4c0"}.fi-rr-message-code:before{content:"\f4c1"}.fi-rr-meteor:before{content:"\f4c2"}.fi-rr-microchip:before{content:"\f4c3"}.fi-rr-microphone-alt:before{content:"\f4c4"}.fi-rr-microphone:before{content:"\f4c5"}.fi-rr-mind-share:before{content:"\f4c6"}.fi-rr-minus-small:before{content:"\f4c7"}.fi-rr-minus:before{content:"\f4c8"}.fi-rr-mobile-button:before{content:"\f4c9"}.fi-rr-mobile-notch:before{content:"\f4ca"}.fi-rr-mobile:before{content:"\f4cb"}.fi-rr-mockup:before{content:"\f4cc"}.fi-rr-mode-landscape:before{content:"\f4cd"}.fi-rr-mode-portrait:before{content:"\f4ce"}.fi-rr-money-bill-wave-alt:before{content:"\f4cf"}.fi-rr-money-bill-wave:before{content:"\f4d0"}.fi-rr-money-check-edit-alt:before{content:"\f4d1"}.fi-rr-money-check-edit:before{content:"\f4d2"}.fi-rr-money-check:before{content:"\f4d3"}.fi-rr-money:before{content:"\f4d4"}.fi-rr-monument:before{content:"\f4d5"}.fi-rr-moon-stars:before{content:"\f4d6"}.fi-rr-moon:before{content:"\f4d7"}.fi-rr-motorcycle:before{content:"\f4d8"}.fi-rr-mountains:before{content:"\f4d9"}.fi-rr-mouse:before{content:"\f4da"}.fi-rr-move-to-folder-2:before{content:"\f4db"}.fi-rr-move-to-folder:before{content:"\f4dc"}.fi-rr-mug-alt:before{content:"\f4dd"}.fi-rr-mug-hot-alt:before{content:"\f4de"}.fi-rr-mug-hot:before{content:"\f4df"}.fi-rr-mug-tea:before{content:"\f4e0"}.fi-rr-mug:before{content:"\f4e1"}.fi-rr-mushroom:before{content:"\f4e2"}.fi-rr-music-alt:before{content:"\f4e3"}.fi-rr-music-file:before{content:"\f4e4"}.fi-rr-music:before{content:"\f4e5"}.fi-rr-n:before{content:"\f4e6"}.fi-rr-navigation:before{content:"\f4e7"}.fi-rr-network-cloud:before{content:"\f4e8"}.fi-rr-network:before{content:"\f4e9"}.fi-rr-no-people:before{content:"\f4ea"}.fi-rr-noodles:before{content:"\f4eb"}.fi-rr-notdef:before{content:"\f4ec"}.fi-rr-notebook:before{content:"\f4ed"}.fi-rr-o:before{content:"\f4ee"}.fi-rr-object-exclude:before{content:"\f4ef"}.fi-rr-object-intersect:before{content:"\f4f0"}.fi-rr-object-subtract:before{content:"\f4f1"}.fi-rr-object-union:before{content:"\f4f2"}.fi-rr-octagon:before{content:"\f4f3"}.fi-rr-oil-can:before{content:"\f4f4"}.fi-rr-oil-temp:before{content:"\f4f5"}.fi-rr-olive-oil:before{content:"\f4f6"}.fi-rr-olives:before{content:"\f4f7"}.fi-rr-onion:before{content:"\f4f8"}.fi-rr-opacity:before{content:"\f4f9"}.fi-rr-overline:before{content:"\f4fa"}.fi-rr-p:before{content:"\f4fb"}.fi-rr-package:before{content:"\f4fc"}.fi-rr-page-break:before{content:"\f4fd"}.fi-rr-paint-brush:before{content:"\f4fe"}.fi-rr-paint-roller:before{content:"\f4ff"}.fi-rr-palette:before{content:"\f500"}.fi-rr-pan:before{content:"\f501"}.fi-rr-paper-plane:before{content:"\f502"}.fi-rr-parking-circle-slash:before{content:"\f503"}.fi-rr-parking-circle:before{content:"\f504"}.fi-rr-parking-slash:before{content:"\f505"}.fi-rr-parking:before{content:"\f506"}.fi-rr-passport:before{content:"\f507"}.fi-rr-password:before{content:"\f508"}.fi-rr-paste:before{content:"\f509"}.fi-rr-pattern:before{content:"\f50a"}.fi-rr-pause:before{content:"\f50b"}.fi-rr-paw:before{content:"\f50c"}.fi-rr-peach:before{content:"\f50d"}.fi-rr-pencil-ruler:before{content:"\f50e"}.fi-rr-pencil:before{content:"\f50f"}.fi-rr-pennant:before{content:"\f510"}.fi-rr-people-arrows-left-right:before{content:"\f511"}.fi-rr-people-carry-box:before{content:"\f512"}.fi-rr-people-dress:before{content:"\f513"}.fi-rr-people-pants:before{content:"\f514"}.fi-rr-people-poll:before{content:"\f515"}.fi-rr-people:before{content:"\f516"}.fi-rr-pepper-hot:before{content:"\f517"}.fi-rr-pepper:before{content:"\f518"}.fi-rr-percentage:before{content:"\f519"}.fi-rr-person-walking-with-cane:before{content:"\f51a"}.fi-rr-pharmacy:before{content:"\f51b"}.fi-rr-phone-call:before{content:"\f51c"}.fi-rr-phone-cross:before{content:"\f51d"}.fi-rr-phone-office:before{content:"\f51e"}.fi-rr-phone-pause:before{content:"\f51f"}.fi-rr-phone-slash:before{content:"\f520"}.fi-rr-photo-film-music:before{content:"\f521"}.fi-rr-photo-video:before{content:"\f522"}.fi-rr-physics:before{content:"\f523"}.fi-rr-picnic:before{content:"\f524"}.fi-rr-picpeople-filled:before{content:"\f525"}.fi-rr-picpeople:before{content:"\f526"}.fi-rr-picture:before{content:"\f527"}.fi-rr-pie:before{content:"\f528"}.fi-rr-piece:before{content:"\f529"}.fi-rr-piggy-bank:before{content:"\f52a"}.fi-rr-pineapple:before{content:"\f52b"}.fi-rr-ping-pong:before{content:"\f52c"}.fi-rr-pizza-slice:before{content:"\f52d"}.fi-rr-plane-alt:before{content:"\f52e"}.fi-rr-plane-arrival:before{content:"\f52f"}.fi-rr-plane-departure:before{content:"\f530"}.fi-rr-plane-prop:before{content:"\f531"}.fi-rr-plane-tail:before{content:"\f532"}.fi-rr-plane:before{content:"\f533"}.fi-rr-plate:before{content:"\f534"}.fi-rr-play-alt:before{content:"\f535"}.fi-rr-play-pause:before{content:"\f536"}.fi-rr-play:before{content:"\f537"}.fi-rr-playing-cards:before{content:"\f538"}.fi-rr-plus-small:before{content:"\f539"}.fi-rr-plus:before{content:"\f53a"}.fi-rr-podium-star:before{content:"\f53b"}.fi-rr-podium:before{content:"\f53c"}.fi-rr-poker-chip:before{content:"\f53d"}.fi-rr-poo:before{content:"\f53e"}.fi-rr-popcorn:before{content:"\f53f"}.fi-rr-portrait:before{content:"\f540"}.fi-rr-pot:before{content:"\f541"}.fi-rr-pound:before{content:"\f542"}.fi-rr-power:before{content:"\f543"}.fi-rr-presentation:before{content:"\f544"}.fi-rr-print:before{content:"\f545"}.fi-rr-projector:before{content:"\f546"}.fi-rr-protractor:before{content:"\f547"}.fi-rr-pulse:before{content:"\f548"}.fi-rr-pumpkin:before{content:"\f549"}.fi-rr-puzzle:before{content:"\f54a"}.fi-rr-pyramid:before{content:"\f54b"}.fi-rr-q:before{content:"\f54c"}.fi-rr-qrcode:before{content:"\f54d"}.fi-rr-question-square:before{content:"\f54e"}.fi-rr-question:before{content:"\f54f"}.fi-rr-quote-right:before{content:"\f550"}.fi-rr-r:before{content:"\f551"}.fi-rr-racquet:before{content:"\f552"}.fi-rr-radish:before{content:"\f553"}.fi-rr-rainbow:before{content:"\f554"}.fi-rr-raindrops:before{content:"\f555"}.fi-rr-ramp-loading:before{content:"\f556"}.fi-rr-rec:before{content:"\f557"}.fi-rr-receipt:before{content:"\f558"}.fi-rr-record-vinyl:before{content:"\f559"}.fi-rr-rectabgle-vertical:before{content:"\f55a"}.fi-rr-rectangle-barcode:before{content:"\f55b"}.fi-rr-rectangle-code:before{content:"\f55c"}.fi-rr-rectangle-horizontal:before{content:"\f55d"}.fi-rr-rectangle-panoramic:before{content:"\f55e"}.fi-rr-rectangle-xmark:before{content:"\f55f"}.fi-rr-recycle:before{content:"\f560"}.fi-rr-redo-alt:before{content:"\f561"}.fi-rr-redo:before{content:"\f562"}.fi-rr-reflect-horizontal:before{content:"\f563"}.fi-rr-reflect-vertical:before{content:"\f564"}.fi-rr-reflect:before{content:"\f565"}.fi-rr-refresh:before{content:"\f566"}.fi-rr-registered:before{content:"\f567"}.fi-rr-remove-folder:before{content:"\f568"}.fi-rr-remove-user:before{content:"\f569"}.fi-rr-replace:before{content:"\f56a"}.fi-rr-reply-all:before{content:"\f56b"}.fi-rr-republican:before{content:"\f56c"}.fi-rr-resize:before{content:"\f56d"}.fi-rr-resources:before{content:"\f56e"}.fi-rr-restaurant:before{content:"\f56f"}.fi-rr-rewind:before{content:"\f570"}.fi-rr-rhombus:before{content:"\f571"}.fi-rr-rings-wedding:before{content:"\f572"}.fi-rr-road:before{content:"\f573"}.fi-rr-rocket-lunch:before{content:"\f574"}.fi-rr-rocket:before{content:"\f575"}.fi-rr-roller-coaster:before{content:"\f576"}.fi-rr-room-service:before{content:"\f577"}.fi-rr-rotate-left:before{content:"\f578"}.fi-rr-rotate-right:before{content:"\f579"}.fi-rr-route-highway:before{content:"\f57a"}.fi-rr-route-interstate:before{content:"\f57b"}.fi-rr-route:before{content:"\f57c"}.fi-rr-ruble-sign:before{content:"\f57d"}.fi-rr-rugby:before{content:"\f57e"}.fi-rr-ruler-combined:before{content:"\f57f"}.fi-rr-ruler-horizontal:before{content:"\f580"}.fi-rr-ruler-triangle:before{content:"\f581"}.fi-rr-ruler-vertical:before{content:"\f582"}.fi-rr-running:before{content:"\f583"}.fi-rr-rupee-sign:before{content:"\f584"}.fi-rr-rv:before{content:"\f585"}.fi-rr-s:before{content:"\f586"}.fi-rr-sack-dollar:before{content:"\f587"}.fi-rr-sack:before{content:"\f588"}.fi-rr-sad-cry:before{content:"\f589"}.fi-rr-sad-tear:before{content:"\f58a"}.fi-rr-sad:before{content:"\f58b"}.fi-rr-salad:before{content:"\f58c"}.fi-rr-salt-pepper:before{content:"\f58d"}.fi-rr-sandwich:before{content:"\f58e"}.fi-rr-sauce:before{content:"\f58f"}.fi-rr-sausage:before{content:"\f590"}.fi-rr-scale:before{content:"\f591"}.fi-rr-school-bus:before{content:"\f592"}.fi-rr-school:before{content:"\f593"}.fi-rr-scissors:before{content:"\f594"}.fi-rr-screen:before{content:"\f595"}.fi-rr-search-alt:before{content:"\f596"}.fi-rr-search-dollar:before{content:"\f597"}.fi-rr-search-heart:before{content:"\f598"}.fi-rr-search-location:before{content:"\f599"}.fi-rr-search:before{content:"\f59a"}.fi-rr-seat-airline:before{content:"\f59b"}.fi-rr-security:before{content:"\f59c"}.fi-rr-sensor-alert:before{content:"\f59d"}.fi-rr-sensor-fire:before{content:"\f59e"}.fi-rr-sensor-on:before{content:"\f59f"}.fi-rr-sensor-smoke:before{content:"\f5a0"}.fi-rr-sensor:before{content:"\f5a1"}.fi-rr-settings-sliders:before{content:"\f5a2"}.fi-rr-settings:before{content:"\f5a3"}.fi-rr-share:before{content:"\f5a4"}.fi-rr-shekel-sign:before{content:"\f5a5"}.fi-rr-shield-check:before{content:"\f5a6"}.fi-rr-shield-exclamation:before{content:"\f5a7"}.fi-rr-shield-interrogation:before{content:"\f5a8"}.fi-rr-shield-plus:before{content:"\f5a9"}.fi-rr-shield:before{content:"\f5aa"}.fi-rr-ship-side:before{content:"\f5ab"}.fi-rr-ship:before{content:"\f5ac"}.fi-rr-shoe-prints:before{content:"\f5ad"}.fi-rr-shop-lock:before{content:"\f5ae"}.fi-rr-shop:before{content:"\f5af"}.fi-rr-shopping-bag-add:before{content:"\f5b0"}.fi-rr-shopping-bag:before{content:"\f5b1"}.fi-rr-shopping-basket:before{content:"\f5b2"}.fi-rr-shopping-cart-add:before{content:"\f5b3"}.fi-rr-shopping-cart-check:before{content:"\f5b4"}.fi-rr-shopping-cart:before{content:"\f5b5"}.fi-rr-shrimp:before{content:"\f5b6"}.fi-rr-shuffle:before{content:"\f5b7"}.fi-rr-shuttle-van:before{content:"\f5b8"}.fi-rr-shuttlecock:before{content:"\f5b9"}.fi-rr-sidebar-flip:before{content:"\f5ba"}.fi-rr-sidebar:before{content:"\f5bb"}.fi-rr-sign-hanging:before{content:"\f5bc"}.fi-rr-sign-in-alt:before{content:"\f5bd"}.fi-rr-sign-out-alt:before{content:"\f5be"}.fi-rr-signal-alt-1:before{content:"\f5bf"}.fi-rr-signal-alt-2:before{content:"\f5c0"}.fi-rr-signal-alt:before{content:"\f5c1"}.fi-rr-signal-stream-slash:before{content:"\f5c2"}.fi-rr-signal-stream:before{content:"\f5c3"}.fi-rr-sitemap:before{content:"\f5c4"}.fi-rr-skateboard:before{content:"\f5c5"}.fi-rr-skating:before{content:"\f5c6"}.fi-rr-skewer:before{content:"\f5c7"}.fi-rr-ski-jump:before{content:"\f5c8"}.fi-rr-ski-lift:before{content:"\f5c9"}.fi-rr-skiing-nordic:before{content:"\f5ca"}.fi-rr-skiing:before{content:"\f5cb"}.fi-rr-slash:before{content:"\f5cc"}.fi-rr-sledding:before{content:"\f5cd"}.fi-rr-sleigh:before{content:"\f5ce"}.fi-rr-smartphone:before{content:"\f5cf"}.fi-rr-smile-beam:before{content:"\f5d0"}.fi-rr-smile-wink:before{content:"\f5d1"}.fi-rr-smile:before{content:"\f5d2"}.fi-rr-smiley-comment-alt:before{content:"\f5d3"}.fi-rr-smog:before{content:"\f5d4"}.fi-rr-smoke:before{content:"\f5d5"}.fi-rr-snow-blowing:before{content:"\f5d6"}.fi-rr-snowboarding:before{content:"\f5d7"}.fi-rr-snowflake:before{content:"\f5d8"}.fi-rr-snowflakes:before{content:"\f5d9"}.fi-rr-snowmobile:before{content:"\f5da"}.fi-rr-snowplow:before{content:"\f5db"}.fi-rr-soap:before{content:"\f5dc"}.fi-rr-social-network:before{content:"\f5dd"}.fi-rr-sort-alpha-down-alt:before{content:"\f5de"}.fi-rr-sort-alpha-down:before{content:"\f5df"}.fi-rr-sort-alpha-up-alt:before{content:"\f5e0"}.fi-rr-sort-alpha-up:before{content:"\f5e1"}.fi-rr-sort-alt:before{content:"\f5e2"}.fi-rr-sort-amount-down-alt:before{content:"\f5e3"}.fi-rr-sort-amount-down:before{content:"\f5e4"}.fi-rr-sort-amount-up-alt:before{content:"\f5e5"}.fi-rr-sort-amount-up:before{content:"\f5e6"}.fi-rr-sort-down:before{content:"\f5e7"}.fi-rr-sort-numeric-down-alt:before{content:"\f5e8"}.fi-rr-sort-numeric-down:before{content:"\f5e9"}.fi-rr-sort-shapes-down:before{content:"\f5ea"}.fi-rr-sort-shapes-up:before{content:"\f5eb"}.fi-rr-sort-size-down:before{content:"\f5ec"}.fi-rr-sort-size-up:before{content:"\f5ed"}.fi-rr-sort:before{content:"\f5ee"}.fi-rr-soup:before{content:"\f5ef"}.fi-rr-spa:before{content:"\f5f0"}.fi-rr-space-shuttle:before{content:"\f5f1"}.fi-rr-spade:before{content:"\f5f2"}.fi-rr-sparkles:before{content:"\f5f3"}.fi-rr-speaker:before{content:"\f5f4"}.fi-rr-sphere:before{content:"\f5f5"}.fi-rr-spinner:before{content:"\f5f6"}.fi-rr-spoon:before{content:"\f5f7"}.fi-rr-sport:before{content:"\f5f8"}.fi-rr-square-0:before{content:"\f5f9"}.fi-rr-square-1:before{content:"\f5fa"}.fi-rr-square-2:before{content:"\f5fb"}.fi-rr-square-3:before{content:"\f5fc"}.fi-rr-square-4:before{content:"\f5fd"}.fi-rr-square-5:before{content:"\f5fe"}.fi-rr-square-6:before{content:"\f5ff"}.fi-rr-square-7:before{content:"\f600"}.fi-rr-square-8:before{content:"\f601"}.fi-rr-square-9:before{content:"\f602"}.fi-rr-square-code:before{content:"\f603"}.fi-rr-square-heart:before{content:"\f604"}.fi-rr-square-info:before{content:"\f605"}.fi-rr-square-plus:before{content:"\f606"}.fi-rr-square-root:before{content:"\f607"}.fi-rr-square-terminal:before{content:"\f608"}.fi-rr-square:before{content:"\f609"}.fi-rr-squircle:before{content:"\f60a"}.fi-rr-stamp:before{content:"\f60b"}.fi-rr-star-comment-alt:before{content:"\f60c"}.fi-rr-star-octogram:before{content:"\f60d"}.fi-rr-star:before{content:"\f60e"}.fi-rr-starfighter:before{content:"\f60f"}.fi-rr-stars:before{content:"\f610"}.fi-rr-stats:before{content:"\f611"}.fi-rr-steak:before{content:"\f612"}.fi-rr-steering-wheel:before{content:"\f613"}.fi-rr-stethoscope:before{content:"\f614"}.fi-rr-sticker:before{content:"\f615"}.fi-rr-stop:before{content:"\f616"}.fi-rr-stopwatch:before{content:"\f617"}.fi-rr-store-alt:before{content:"\f618"}.fi-rr-store-lock:before{content:"\f619"}.fi-rr-strawberry:before{content:"\f61a"}.fi-rr-street-view:before{content:"\f61b"}.fi-rr-subtitles:before{content:"\f61c"}.fi-rr-subway:before{content:"\f61d"}.fi-rr-suitcase-alt:before{content:"\f61e"}.fi-rr-summer:before{content:"\f61f"}.fi-rr-sun:before{content:"\f620"}.fi-rr-sunrise-alt:before{content:"\f621"}.fi-rr-sunrise:before{content:"\f622"}.fi-rr-sunset:before{content:"\f623"}.fi-rr-surfing:before{content:"\f624"}.fi-rr-surprise:before{content:"\f625"}.fi-rr-sushi:before{content:"\f626"}.fi-rr-swimmer:before{content:"\f627"}.fi-rr-sword:before{content:"\f628"}.fi-rr-symbol:before{content:"\f629"}.fi-rr-syringe:before{content:"\f62a"}.fi-rr-t:before{content:"\f62b"}.fi-rr-table-columns:before{content:"\f62c"}.fi-rr-table-layout:before{content:"\f62d"}.fi-rr-table-picnic:before{content:"\f62e"}.fi-rr-table-pivot:before{content:"\f62f"}.fi-rr-table-rows:before{content:"\f630"}.fi-rr-table-tree:before{content:"\f631"}.fi-rr-tablet:before{content:"\f632"}.fi-rr-tachometer-alt-average:before{content:"\f633"}.fi-rr-tachometer-alt-fastest:before{content:"\f634"}.fi-rr-tachometer-alt-slow:before{content:"\f635"}.fi-rr-tachometer-alt-slowest:before{content:"\f636"}.fi-rr-tachometer-average:before{content:"\f637"}.fi-rr-tachometer-fast:before{content:"\f638"}.fi-rr-tachometer-fastest:before{content:"\f639"}.fi-rr-tachometer-slow:before{content:"\f63a"}.fi-rr-tachometer-slowest:before{content:"\f63b"}.fi-rr-tachometer:before{content:"\f63c"}.fi-rr-taco:before{content:"\f63d"}.fi-rr-tags:before{content:"\f63e"}.fi-rr-tally:before{content:"\f63f"}.fi-rr-target:before{content:"\f640"}.fi-rr-taxi-bus:before{content:"\f641"}.fi-rr-taxi:before{content:"\f642"}.fi-rr-temperature-down:before{content:"\f643"}.fi-rr-temperature-frigid:before{content:"\f644"}.fi-rr-temperature-high:before{content:"\f645"}.fi-rr-temperature-low:before{content:"\f646"}.fi-rr-temperature-up:before{content:"\f647"}.fi-rr-template-alt:before{content:"\f648"}.fi-rr-template:before{content:"\f649"}.fi-rr-tenge:before{content:"\f64a"}.fi-rr-tennis:before{content:"\f64b"}.fi-rr-terminal:before{content:"\f64c"}.fi-rr-terrace:before{content:"\f64d"}.fi-rr-test-tube:before{content:"\f64e"}.fi-rr-test:before{content:"\f64f"}.fi-rr-text-check:before{content:"\f650"}.fi-rr-text-height:before{content:"\f651"}.fi-rr-text-shadow:before{content:"\f652"}.fi-rr-text-size:before{content:"\f653"}.fi-rr-text-slash:before{content:"\f654"}.fi-rr-text-width:before{content:"\f655"}.fi-rr-text:before{content:"\f656"}.fi-rr-thermometer-half:before{content:"\f657"}.fi-rr-thumbtack:before{content:"\f658"}.fi-rr-thunderstorm-moon:before{content:"\f659"}.fi-rr-thunderstorm-sun:before{content:"\f65a"}.fi-rr-thunderstorm:before{content:"\f65b"}.fi-rr-ticket-alt:before{content:"\f65c"}.fi-rr-ticket:before{content:"\f65d"}.fi-rr-time-add:before{content:"\f65e"}.fi-rr-time-check:before{content:"\f65f"}.fi-rr-time-delete:before{content:"\f660"}.fi-rr-time-fast:before{content:"\f661"}.fi-rr-time-forward-sixty:before{content:"\f662"}.fi-rr-time-forward-ten:before{content:"\f663"}.fi-rr-time-forward:before{content:"\f664"}.fi-rr-time-half-past:before{content:"\f665"}.fi-rr-time-oclock:before{content:"\f666"}.fi-rr-time-past:before{content:"\f667"}.fi-rr-time-quarter-past:before{content:"\f668"}.fi-rr-time-quarter-to:before{content:"\f669"}.fi-rr-time-twenty-four:before{content:"\f66a"}.fi-rr-tire-flat:before{content:"\f66b"}.fi-rr-tire-pressure-warning:before{content:"\f66c"}.fi-rr-tire-rugged:before{content:"\f66d"}.fi-rr-tire:before{content:"\f66e"}.fi-rr-tired:before{content:"\f66f"}.fi-rr-toilet-paper-blank:before{content:"\f670"}.fi-rr-tomato:before{content:"\f671"}.fi-rr-tool-box:before{content:"\f672"}.fi-rr-tool-crop:before{content:"\f673"}.fi-rr-tool-marquee:before{content:"\f674"}.fi-rr-tooth:before{content:"\f675"}.fi-rr-tornado:before{content:"\f676"}.fi-rr-tower-control:before{content:"\f677"}.fi-rr-tractor:before{content:"\f678"}.fi-rr-traffic-light-go:before{content:"\f679"}.fi-rr-traffic-light-slow:before{content:"\f67a"}.fi-rr-traffic-light-stop:before{content:"\f67b"}.fi-rr-traffic-light:before{content:"\f67c"}.fi-rr-trailer:before{content:"\f67d"}.fi-rr-train-side:before{content:"\f67e"}.fi-rr-train-subway-tunnel:before{content:"\f67f"}.fi-rr-train-tram:before{content:"\f680"}.fi-rr-train:before{content:"\f681"}.fi-rr-tram:before{content:"\f682"}.fi-rr-transform:before{content:"\f683"}.fi-rr-trash:before{content:"\f684"}.fi-rr-treasure-chest:before{content:"\f685"}.fi-rr-treatment:before{content:"\f686"}.fi-rr-tree-christmas:before{content:"\f687"}.fi-rr-tree-deciduous:before{content:"\f688"}.fi-rr-tree:before{content:"\f689"}.fi-rr-triangle-warning:before{content:"\f68a"}.fi-rr-triangle:before{content:"\f68b"}.fi-rr-trophy-star:before{content:"\f68c"}.fi-rr-trophy:before{content:"\f68d"}.fi-rr-truck-container:before{content:"\f68e"}.fi-rr-truck-couch:before{content:"\f68f"}.fi-rr-truck-loading:before{content:"\f690"}.fi-rr-truck-monster:before{content:"\f691"}.fi-rr-truck-moving:before{content:"\f692"}.fi-rr-truck-pickup:before{content:"\f693"}.fi-rr-truck-plow:before{content:"\f694"}.fi-rr-truck-ramp:before{content:"\f695"}.fi-rr-truck-side:before{content:"\f696"}.fi-rr-tty:before{content:"\f697"}.fi-rr-turkey:before{content:"\f698"}.fi-rr-tv-music:before{content:"\f699"}.fi-rr-typewriter:before{content:"\f69a"}.fi-rr-u:before{content:"\f69b"}.fi-rr-umbrella-beach:before{content:"\f69c"}.fi-rr-umbrella:before{content:"\f69d"}.fi-rr-underline:before{content:"\f69e"}.fi-rr-undo-alt:before{content:"\f69f"}.fi-rr-undo:before{content:"\f6a0"}.fi-rr-universal-access:before{content:"\f6a1"}.fi-rr-unlock:before{content:"\f6a2"}.fi-rr-up-left:before{content:"\f6a3"}.fi-rr-up-right:before{content:"\f6a4"}.fi-rr-up:before{content:"\f6a5"}.fi-rr-upload:before{content:"\f6a6"}.fi-rr-usb-pendrive:before{content:"\f6a7"}.fi-rr-usd-circle:before{content:"\f6a8"}.fi-rr-usd-square:before{content:"\f6a9"}.fi-rr-user-add:before{content:"\f6aa"}.fi-rr-user-time:before{content:"\f6ab"}.fi-rr-user:before{content:"\f6ac"}.fi-rr-users-alt:before{content:"\f6ad"}.fi-rr-users:before{content:"\f6ae"}.fi-rr-utensils:before{content:"\f6af"}.fi-rr-v:before{content:"\f6b0"}.fi-rr-vector-alt:before{content:"\f6b1"}.fi-rr-vector:before{content:"\f6b2"}.fi-rr-venus-double:before{content:"\f6b3"}.fi-rr-venus-mars:before{content:"\f6b4"}.fi-rr-venus:before{content:"\f6b5"}.fi-rr-vest-patches:before{content:"\f6b6"}.fi-rr-vest:before{content:"\f6b7"}.fi-rr-video-arrow-down-left:before{content:"\f6b8"}.fi-rr-video-arrow-up-right:before{content:"\f6b9"}.fi-rr-video-camera-alt:before{content:"\f6ba"}.fi-rr-video-camera:before{content:"\f6bb"}.fi-rr-video-plus:before{content:"\f6bc"}.fi-rr-video-slash:before{content:"\f6bd"}.fi-rr-volcano:before{content:"\f6be"}.fi-rr-volleyball:before{content:"\f6bf"}.fi-rr-volume:before{content:"\f6c0"}.fi-rr-w:before{content:"\f6c1"}.fi-rr-wagon-covered:before{content:"\f6c2"}.fi-rr-wallet:before{content:"\f6c3"}.fi-rr-warehouse-alt:before{content:"\f6c4"}.fi-rr-water-bottle:before{content:"\f6c5"}.fi-rr-water-lower:before{content:"\f6c6"}.fi-rr-water-rise:before{content:"\f6c7"}.fi-rr-water:before{content:"\f6c8"}.fi-rr-watermelon:before{content:"\f6c9"}.fi-rr-wheat:before{content:"\f6ca"}.fi-rr-wheelchair-move:before{content:"\f6cb"}.fi-rr-wheelchair:before{content:"\f6cc"}.fi-rr-whistle:before{content:"\f6cd"}.fi-rr-wifi-1:before{content:"\f6ce"}.fi-rr-wifi-2:before{content:"\f6cf"}.fi-rr-wifi-alt:before{content:"\f6d0"}.fi-rr-wifi-exclamation:before{content:"\f6d1"}.fi-rr-wifi-slash:before{content:"\f6d2"}.fi-rr-wifi:before{content:"\f6d3"}.fi-rr-wind-warning:before{content:"\f6d4"}.fi-rr-wind:before{content:"\f6d5"}.fi-rr-window-alt:before{content:"\f6d6"}.fi-rr-window-maximize:before{content:"\f6d7"}.fi-rr-window-minimize:before{content:"\f6d8"}.fi-rr-window-restore:before{content:"\f6d9"}.fi-rr-windsock:before{content:"\f6da"}.fi-rr-wine-glass-crack:before{content:"\f6db"}.fi-rr-woman-head:before{content:"\f6dc"}.fi-rr-world:before{content:"\f6dd"}.fi-rr-wrench-simple:before{content:"\f6de"}.fi-rr-x:before{content:"\f6df"}.fi-rr-y:before{content:"\f6e0"}.fi-rr-yen:before{content:"\f6e1"}.fi-rr-yin-yang:before{content:"\f6e2"}.fi-rr-z:before{content:"\f6e3"}.fi-rr-zoom-in:before{content:"\f6e4"}.fi-rr-zoom-out:before{content:"\f6e5"}
/*# sourceMappingURL=rounded.css.map */
================================================
FILE: assets/webfonts/OFL.txt
================================================
Copyright 2019 The Baloo 2 Project Authors (https://github.com/EkType/Baloo2)
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
================================================
FILE: misc/window/LICENSE
================================================
Copyright (c) 2021-2022 Guasam
This software is provided "as-is", without any express or implied warranty. In no event
will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose, including commercial
applications, and to alter it and redistribute it freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not claim that you
wrote the original software. If you use this software in a product, an acknowledgment
in the product documentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be misrepresented
as being the original software.
3. This notice may not be removed or altered from any source distribution.
================================================
FILE: misc/window/components/ControlButton.tsx
================================================
import classNames from 'classnames';
import React from 'react';
interface IControlButtonProps {
readonly name: string;
readonly path: string;
readonly title: string;
}
const ControlButton: React.FC<
IControlButtonProps & React.HTMLAttributes
> = (props) => {
const { name, path, title, ...rest } = props;
const { onClick } = rest;
const className = classNames('control', name);
return (
);
};
export default ControlButton;
================================================
FILE: misc/window/components/Titlebar.less
================================================
/**
* Copyright (c) 2021, Guasam
*
* This software is provided "as-is", without any express or implied warranty. In no event
* will the authors be held liable for any damages arising from the use of this software.
* Read the LICENSE file for more details.
*
* @author : guasam
* @project : Electron Window
* @package : Window Components Stylesheet
*/
// @import '/src/renderer/components/Theme.scss';
@titlebar-baseSize: 16px;
@titlebar-height: 28px;
@titlebar-bg: #171b21;
@titlebar-iconSize: 16px;
@em: @titlebar-baseSize*1em;
//-----------------------------------------
// Mixins
//-----------------------------------------
.flex-strech() {
display: flex;
align-items: stretch;
}
.flex-align-center() {
display: flex;
align-items: center;
}
//-----------------------------------------
// Stylesheet
//-----------------------------------------
.window-content {
position: relative;
overflow: auto;
flex: 1;
}
.window-titlebar {
.flex-strech();
display: none;
font-size: @titlebar-baseSize;
height: @titlebar-height;
background: @titlebar-bg;
// -webkit-app-region: drag; // Draggable
user-select: none;
position: relative;
& > section {
.flex-align-center();
}
&-content {
flex: 1;
font-size: calc(@titlebar-baseSize - 3px);
color: #a9b0bb;
&.centered {
width: 100%;
height: 100%;
position: absolute;
justify-content: center;
}
}
// Titlebar icon
&-icon {
padding: 0 0.75em;
img {
width: @titlebar-iconSize;
height: @titlebar-iconSize;
}
}
// Titlebar Menu
&-menu {
flex: 1;
}
.menu {
&-item {
position: relative;
}
&-item.active {
.menu-title {
background: #3c4043;
color: #bfbfbf;
}
}
&-title {
padding: 4px 10px;
font-size: 0.8125rem;
text-shadow: 0px 1px 1px black;
-webkit-app-region: no-drag;
color: #97a0b1;
&:hover {
background-color: #1f252c;
}
}
&-popup {
display: none;
position: fixed;
background: #292a2d;
min-width: 70px;
border: 1px solid #3c4043;
padding: 0.25rem 0;
box-shadow: 2px 1px 4px hsla(0, 0%, 0%, 0.5);
z-index: 10000;
&.active {
display: block;
}
&-item {
display: flex;
justify-content: space-between;
font-size: 0.8125rem;
text-shadow: 0px 1px 1px black;
padding: 0.375rem 1rem;
&:hover {
background: #1761cb;
.popup-item-shortcut {
color: #8cbbff;
}
}
}
}
}
.popup-item {
&-name {
padding-right: 2rem;
color: #d8d8d8;
}
&-shortcut {
color: #73757c;
text-shadow: none;
}
&-separator {
height: 1px;
background: #3c4043;
margin: 4px 0;
}
}
// Titlebar controls
&-controls {
.flex-strech();
position: absolute;
right: 0;
top: 0;
bottom: 0;
color: hsla(var(--app-text-color), 0.5);
&.type-windows {
.control {
padding: 0 1.15em;
font-size: 0.875em;
display: flex;
height: 100%;
align-items: center;
-webkit-app-region: no-drag;
}
}
&.type-mac {
display: none !important;
.control {
width: 16px;
height: 16px;
background: #0e0e0e99;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
margin-right: 0.675rem;
color: transparent;
-webkit-app-region: no-drag;
opacity: 0.8;
&:hover {
opacity: 1;
}
}
.control.close {
background: #f46d60;
}
.control.maximize {
background: #59ca56;
}
.control.minimize {
background: #f9c04e;
}
}
}
}
================================================
FILE: misc/window/components/Titlebar.tsx
================================================
/**
* Copyright (c) 2021, Guasam
*
* This software is provided "as-is", without any express or implied warranty. In no event
* will the authors be held liable for any damages arising from the use of this software.
* Read the LICENSE file for more details.
*
* @author : guasam
* @project : Electron Window
* @package : Window Titlebar (Component)
*/
import React, { createRef, useContext, useEffect, useRef, useState } from 'react';
import titlebarMenus from '../titlebarMenus';
import classNames from 'classnames';
import WindowControls from './WindowControls';
import context from '../titlebarContextApi';
import { WindowContext } from './WindowFrame';
import './Titlebar.less';
type Props = {
title: string;
mode: 'centered-title';
icon?: string;
};
const Titlebar: React.FC = (props) => {
const activeMenuIndex = useRef(null);
const menusRef = titlebarMenus.map(() => createRef());
const [menusVisible, setMenusVisible] = useState(true);
const windowContext = useContext(WindowContext);
useEffect(() => {
const handleKeyDown = (e: KeyboardEvent) => {
if (e.repeat) return; // Prevent repeatation of toggle when key holding
if (e.altKey && e.ctrlKey) {
// Hiding menus? close active menu popup
if (menusVisible) {
closeActiveMenu();
}
setMenusVisible(!menusVisible);
}
};
document.addEventListener('keydown', handleKeyDown);
return () => {
document.removeEventListener('keydown', handleKeyDown);
};
}, [menusVisible, menusRef]);
useEffect(() => {
function handleClickOutside(event: MouseEvent) {
if (activeMenuIndex.current != null) {
if (
menusRef[activeMenuIndex.current].current &&
!menusRef[activeMenuIndex.current].current?.contains(event.target as Node)
) {
// console.log('You clicked outside of me!');
closeActiveMenu();
}
}
}
if (activeMenuIndex != null) {
document.addEventListener('mousedown', handleClickOutside);
// console.log('added event');
}
return () => {
document.removeEventListener('mousedown', handleClickOutside);
// console.log('remove event');
};
}, [activeMenuIndex, menusRef]);
function showMenu(index: number, e: React.MouseEvent) {
e.stopPropagation();
e.preventDefault();
if (menusRef[index].current?.classList.contains('active')) {
// close..
closeActiveMenu();
} else {
// open..
menusRef[index].current?.classList.add('active');
activeMenuIndex.current = index;
menusRef[index].current?.parentElement?.classList.add('active');
}
}
function onMenuHover(index: number) {
if (activeMenuIndex.current != null) {
menusRef[activeMenuIndex.current].current?.classList.toggle('active');
menusRef[index].current?.classList.toggle('active');
menusRef[index].current?.parentElement?.classList.toggle('active');
menusRef[activeMenuIndex.current].current?.parentElement?.classList.toggle(
'active',
);
activeMenuIndex.current = index;
}
}
function closeActiveMenu() {
if (activeMenuIndex.current != null) {
menusRef[activeMenuIndex.current].current?.classList.remove('active');
menusRef[activeMenuIndex.current]?.current?.parentElement?.classList.remove('active');
activeMenuIndex.current = null;
}
}
function handleAction(action?: string, value?: string | number) {
closeActiveMenu();
const c: Record = context;
if (action) {
if (typeof c[action] === 'function') {
c[action](value);
} else {
console.log(`action [${action}] is not available in titlebar context`);
}
}
}
return (