master a7fbe14ed136 cached
99 files
2.1 MB
554.8k tokens
691 symbols
1 requests
Download .txt
Showing preview only (2,219K chars total). Download the full file or copy to clipboard to get everything.
Repository: lucasfrag/Kali-Linux-Tools-Interface
Branch: master
Commit: a7fbe14ed136
Files: 99
Total size: 2.1 MB

Directory structure:
gitextract__z4wb0uk/

├── .github/
│   └── ISSUE_TEMPLATE/
│       ├── bug_report.md
│       └── feature_request.md
├── CITATION.cff
├── LICENSE
├── README.md
├── assets/
│   ├── css/
│   │   ├── argon.css
│   │   ├── bootstrap.css
│   │   └── styles.css
│   ├── database.sql
│   ├── includes/
│   │   ├── config.php
│   │   ├── footer.php
│   │   ├── head.php
│   │   ├── header.php
│   │   ├── list-commands.php
│   │   └── tools-categories.php
│   ├── js/
│   │   ├── argon.js
│   │   └── bootstrap.js
│   ├── libraries/
│   │   └── phpseclib/
│   │       ├── Crypt/
│   │       │   ├── AES.php
│   │       │   ├── Base.php
│   │       │   ├── Blowfish.php
│   │       │   ├── DES.php
│   │       │   ├── Hash.php
│   │       │   ├── RC2.php
│   │       │   ├── RC4.php
│   │       │   ├── RSA.php
│   │       │   ├── Random.php
│   │       │   ├── Rijndael.php
│   │       │   ├── TripleDES.php
│   │       │   └── Twofish.php
│   │       ├── File/
│   │       │   ├── ANSI.php
│   │       │   ├── ASN1.php
│   │       │   └── X509.php
│   │       ├── Math/
│   │       │   └── BigInteger.php
│   │       ├── Net/
│   │       │   ├── SCP.php
│   │       │   ├── SFTP/
│   │       │   │   └── Stream.php
│   │       │   ├── SFTP.php
│   │       │   ├── SSH1.php
│   │       │   └── SSH2.php
│   │       ├── System/
│   │       │   ├── SSH/
│   │       │   │   └── Agent.php
│   │       │   └── SSH_Agent.php
│   │       ├── bootstrap.php
│   │       └── openssl.cnf
│   └── vendor/
│       ├── @fortawesome/
│       │   └── fontawesome-free/
│       │       └── LICENSE.txt
│       ├── anchor-js/
│       │   └── banner.js
│       ├── chart.js/
│       │   └── dist/
│       │       └── Chart.extension.js
│       ├── holderjs/
│       │   └── package.js
│       ├── jquery/
│       │   └── dist/
│       │       └── core.js
│       ├── jquery.scrollbar/
│       │   ├── index.js
│       │   ├── jquery.scrollbar.css
│       │   ├── license-gpl.txt
│       │   ├── license-mit.txt
│       │   ├── meteor/
│       │   │   └── tests.js
│       │   ├── package.js
│       │   ├── sass/
│       │   │   └── config.rb
│       │   └── scrollbar.jquery.json
│       ├── nucleo/
│       │   └── css/
│       │       ├── nucleo-svg.css
│       │       └── nucleo.css
│       ├── onscreen/
│       │   └── dist/
│       │       └── on-screen.es6.js
│       └── prismjs/
│           ├── components/
│           │   └── index.js
│           ├── components.js
│           ├── components.json
│           ├── plugins/
│           │   ├── autolinker/
│           │   │   └── prism-autolinker.css
│           │   ├── command-line/
│           │   │   └── prism-command-line.css
│           │   ├── line-highlight/
│           │   │   └── prism-line-highlight.css
│           │   ├── line-numbers/
│           │   │   └── prism-line-numbers.css
│           │   ├── previewers/
│           │   │   └── prism-previewers.css
│           │   ├── show-invisibles/
│           │   │   └── prism-show-invisibles.css
│           │   ├── toolbar/
│           │   │   └── prism-toolbar.css
│           │   ├── unescaped-markup/
│           │   │   └── prism-unescaped-markup.css
│           │   └── wpd/
│           │       └── prism-wpd.css
│           ├── prism.js
│           └── themes/
│               ├── prism-coy.css
│               ├── prism-dark.css
│               ├── prism-funky.css
│               ├── prism-okaidia.css
│               ├── prism-solarizedlight.css
│               ├── prism-tomorrow.css
│               ├── prism-twilight.css
│               └── prism.css
├── debian.php
├── delete-reports.php
├── gitbook/
│   ├── README.md
│   ├── arquitetura.md
│   ├── mapa-mental.md
│   ├── mvp-canvas.md
│   ├── personas.md
│   └── sprint-backlog.md
├── index.php
├── login-validation.php
├── login.php
├── logout.php
├── profile.php
├── reports.php
├── run.php
├── save-reports.php
├── selected-report.php
├── selected-tool.php
├── terminal.php
└── tools-list.php

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
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. iOS]
 - Browser [e.g. chrome, safari]
 - Version [e.g. 22]

**Smartphone (please complete the following information):**
 - Device: [e.g. iPhone6]
 - OS: [e.g. iOS8.1]
 - Browser [e.g. stock browser, safari]
 - Version [e.g. 22]

**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: ''
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: CITATION.cff
================================================
cff-version: 1.2.0
message: "If you use this repository in your research, please cite it as follows."
title: "Kali Linux Tools Interface: Graphical Web Interface for Security Tools"
version: "v2.0.0"
doi: "10.5281/zenodo.17298710"  # replace with the actual DOI after Zenodo integration
authors:
  - family-names: "Fraga"
    given-names: "Lucas"
    orcid: "https://orcid.org/0009-0004-5936-5482"  # optional, add if you have ORCID
repository-code:
  type: "GitHub"
  url: "https://github.com/lucasfrag/kali-linux-tools-interface"
date-released: "2025-10-08"
license: "MIT"


================================================
FILE: LICENSE
================================================
MIT License

Copyright (c) 2019 Lucas Fraga

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
================================================
<!-- TO DO PROJECT SHIELDS -->
<a href="https://doi.org/10.5281/zenodo.17298709"><img src="https://zenodo.org/badge/178942548.svg" alt="DOI"></a>
<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/lucasfrag/Kali-Linux-Tools-Interface.svg?style=flat-square">  <img alt="GitHub issues" src="https://img.shields.io/github/issues-raw/lucasfrag/Kali-Linux-Tools-Interface.svg?style=flat-square"> <img alt="GitHub closed issues" src="https://img.shields.io/github/issues-closed-raw/lucasfrag/Kali-Linux-Tools-Interface.svg?style=flat-square"> <img alt="GitHub" src="https://img.shields.io/github/license/lucasfrag/Kali-Linux-Tools-Interface.svg?style=flat-square">


<!-- LOGO -->
<p align="center">
  <img src="assets/img/logo.png" alt="Logo" width="80" height="80">
  <h3 align="center">Kali Linux Tools Interface</h3>
  
  <p align="center">A graphical interface to use information security tools by the browser.
    <br />
      <a href="https://medium.com/@ti.lucasfraga/documenta%C3%A7%C3%A3o-do-projeto-final-de-ads-f80a1117841f">
        <strong>
          Explore the article »
        </strong><br>
          (Available only in Brazilian Portuguese)
        </a>
      <br />
      <br />
      <!--<a href="https://docs.google.com/forms/d/e/1FAIpQLSd3GeoAqW05PDLmlyrCaeQu877HyRyzE8Sk0E5p9w2XWV1k0Q/viewform">Feedback</a>
      ·-->
      <a href="https://github.com/lucasfrag/Kali-Linux-Tools-Interface/issues">Report Bug</a>
      ·
      <a href="https://github.com/lucasfrag/Kali-Linux-Tools-Interface/issues">Request Feature</a>
  </p>
</p>

<p>
  <h3>⚠️ ALERT 🚧 </h3>
As I am involved in other projects, I am no longer supporting this project.
However, the code remains open to anyone who wants to download, test and modify. Thanks to everyone for your support! Enjoy 😉
</p>

## 🧩 Citation
If you use this repository in your research, please cite it as follows:

- BibTeX:
```
@software{Fraga_Kali_Linux_Tools_2025,
author = {Fraga, Lucas},
doi = {10.5281/zenodo.17298710},
license = {MIT},
month = oct,
title = {{Kali Linux Tools Interface: Graphical Web Interface for Security Tools}},
url = {{"type" => "GitHub", "url" => "https://github.com/lucasfrag/kali-linux-tools-interface"}},
version = {v2.0.0},
year = {2025}
}
```

<!-- GETTING STARTED -->
## Getting Started

Kali Linux Tools Interface is a graphical interface to use information security tools by the browser. The project uses the Kali Linux tools as a reference because it is the distribution that has the largest package of native tools.


### Prerequisites

- A Debian-based distribution (preferably [Kali Linux](https://www.kali.org/))
- The information security tools installed
- Apache / Nginx service running
- SSH Service running
- Shell In A Box (if you want to use the Terminal)
  - To install <b>Shell In A Box</b>, use the following command: `sudo apt-get install shellinabox`


### Installation

1. Extract the contents to the folder of your web server.
2. Create a database called `kali` in MySQL and import the file `assets/database.sql`.
3. Edit the file `assets/includes/config.php` and set yours settings.
4. Enjoy!

## Screenshots

### Dashboard
<img src="https://cdn-images-1.medium.com/max/800/1*hdhVWcYHeTAJDNy-Rc6oCg.png">

### Tools list
<img src="https://cdn-images-1.medium.com/max/800/1*-GHokqJ0OJMjHGlVuZvEfg.png">

### Choose and use!
<img src="https://cdn-images-1.medium.com/max/800/1*aE4IUekZ9SRg8HUCoFXAUA.png">

### More screenshots:
Check the <a href="https://medium.com/@ti.lucasfraga/documenta%C3%A7%C3%A3o-do-projeto-final-de-ads-f80a1117841f">article</a> for more screenshots!

## Built With
* [Argon Dashboard](https://demos.creative-tim.com/argon-dashboard/)
* [Bootstrap 4](https://getbootstrap.com)
* [PHP 7](https://php.net)
* [PHP Secure Communications Library](https://github.com/phpseclib/phpseclib)
* [JQuery](https://jquery.com)

## License
Distributed under the MIT License. See LICENSE for more information.






================================================
FILE: assets/css/argon.css
================================================
/*!

=========================================================
* Argon Dashboard - v1.0.0
=========================================================

* Product Page: https://www.creative-tim.com/product/argon-dashboard
* Copyright 2018 Creative Tim (https://www.creative-tim.com)
* Licensed under MIT (https://github.com/creativetimofficial/argon-dashboard/blob/master/LICENSE.md)

* Coded by Creative Tim

=========================================================

* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

*/
:root
{
    --blue: #5e72e4;
    --indigo: #5603ad;
    --purple: #8965e0;
    --pink: #f3a4b5;
    --red: #f5365c;
    --orange: #fb6340;
    --yellow: #ffd600;
    --green: #2dce89;
    --teal: #11cdef;
    --cyan: #2bffc6;
    --white: #fff;
    --gray: #8898aa;
    --gray-dark: #32325d;
    --light: #ced4da;
    --lighter: #e9ecef;
    --primary: #5e72e4;
    --secondary: #f7fafc;
    --success: #2dce89;
    --info: #11cdef;
    --warning: #fb6340;
    --danger: #f5365c;
    --light: #adb5bd;
    --dark: #212529;
    --default: #172b4d;
    --white: #fff;
    --neutral: #fff;
    --darker: black;
    --breakpoint-xs: 0;
    --breakpoint-sm: 576px;
    --breakpoint-md: 768px;
    --breakpoint-lg: 992px;
    --breakpoint-xl: 1200px;
    --font-family-sans-serif: Open Sans, sans-serif;
    --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
}

*,
*::before,
*::after
{
    box-sizing: border-box;
}

html
{
    font-family: sans-serif;
    line-height: 1.15;

    -webkit-text-size-adjust: 100%;
        -ms-text-size-adjust: 100%;
    -ms-overflow-style: scrollbar;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

@-ms-viewport
{
    width: device-width;
}

article,
aside,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section
{
    display: block;
}

body
{
    font-family: Open Sans, sans-serif;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;

    margin: 0;

    text-align: left;

    color: #525f7f;
    background-color: #f8f9fe;
}

[tabindex='-1']:focus
{
    outline: 0 !important;
}

hr
{
    overflow: visible; 

    box-sizing: content-box;
    height: 0;
}

h1,
h2,
h3,
h4,
h5,
h6
{
    margin-top: 0;
    margin-bottom: .5rem;
}

p
{
    margin-top: 0;
    margin-bottom: 1rem;
}

abbr[title],
abbr[data-original-title]
{
    cursor: help;
            text-decoration: underline;
            text-decoration: underline dotted;

    border-bottom: 0; 

    -webkit-text-decoration: underline dotted;
}

address
{
    font-style: normal;
    line-height: inherit; 

    margin-bottom: 1rem;
}

ol,
ul,
dl
{
    margin-top: 0;
    margin-bottom: 1rem;
}

ol ol,
ul ul,
ol ul,
ul ol
{
    margin-bottom: 0;
}

dt
{
    font-weight: 600;
}

dd
{
    margin-bottom: .5rem;
    margin-left: 0;
}

blockquote
{
    margin: 0 0 1rem;
}

dfn
{
    font-style: italic;
}

b,
strong
{
    font-weight: bolder;
}

small
{
    font-size: 80%;
}

sub,
sup
{
    font-size: 75%;
    line-height: 0;

    position: relative;

    vertical-align: baseline;
}

sub
{
    bottom: -.25em;
}

sup
{
    top: -.5em;
}

a
{
    text-decoration: none;

    color: #5e72e4;
    background-color: transparent;

    -webkit-text-decoration-skip: objects;
}
a:hover
{
    text-decoration: none; 

    color: #233dd2;
}

a:not([href]):not([tabindex])
{
    text-decoration: none; 

    color: inherit;
}
a:not([href]):not([tabindex]):hover,
a:not([href]):not([tabindex]):focus
{
    text-decoration: none; 

    color: inherit;
}
a:not([href]):not([tabindex]):focus
{
    outline: 0;
}

pre,
code,
kbd,
samp
{
    font-family: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
    font-size: 1em;
}

pre
{
    overflow: auto;

    margin-top: 0;
    margin-bottom: 1rem;

    -ms-overflow-style: scrollbar;
}

figure
{
    margin: 0 0 1rem;
}

img
{
    vertical-align: middle;

    border-style: none;
}

svg
{
    overflow: hidden;

    vertical-align: middle;
}

table
{
    border-collapse: collapse;
}

caption
{
    padding-top: 1rem;
    padding-bottom: 1rem;

    caption-side: bottom; 

    text-align: left;

    color: #8898aa;
}

th
{
    text-align: inherit;
}

label
{
    display: inline-block;

    margin-bottom: .5rem;
}

button
{
    border-radius: 0;
}

button:focus
{
    outline: 1px dotted;
    outline: 5px auto -webkit-focus-ring-color;
}

input,
button,
select,
optgroup,
textarea
{
    font-family: inherit;
    font-size: inherit;
    line-height: inherit; 

    margin: 0;
}

button,
input
{
    overflow: visible;
}

button,
select
{
    text-transform: none;
}

button,
html [type='button'],
[type='reset'],
[type='submit']
{
    -webkit-appearance: button;
}

button::-moz-focus-inner,
[type='button']::-moz-focus-inner,
[type='reset']::-moz-focus-inner,
[type='submit']::-moz-focus-inner
{
    padding: 0;

    border-style: none;
}

input[type='radio'],
input[type='checkbox']
{
    box-sizing: border-box;
    padding: 0;
}

input[type='date'],
input[type='time'],
input[type='datetime-local'],
input[type='month']
{
    -webkit-appearance: listbox;
}

textarea
{
    overflow: auto;

    resize: vertical;
}

fieldset
{
    min-width: 0;
    margin: 0;
    padding: 0;

    border: 0;
}

legend
{
    font-size: 1.5rem;
    line-height: inherit;

    display: block;

    width: 100%;
    max-width: 100%;
    margin-bottom: .5rem;
    padding: 0;

    white-space: normal; 

    color: inherit;
}

progress
{
    vertical-align: baseline;
}

[type='number']::-webkit-inner-spin-button,
[type='number']::-webkit-outer-spin-button
{
    height: auto;
}

[type='search']
{
    outline-offset: -2px;

    -webkit-appearance: none;
}

[type='search']::-webkit-search-cancel-button,
[type='search']::-webkit-search-decoration
{
    -webkit-appearance: none;
}

::-webkit-file-upload-button
{
    font: inherit;

    -webkit-appearance: button;
}

output
{
    display: inline-block;
}

summary
{
    display: list-item;

    cursor: pointer;
}

template
{
    display: none;
}

[hidden]
{
    display: none !important;
}

h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6
{
    font-family: inherit;
    font-weight: 600;
    line-height: 1.5;

    margin-bottom: .5rem;

    color: #32325d;
}

h1,
.h1
{
    font-size: 1.625rem;
}

h2,
.h2
{
    font-size: 1.25rem;
}

h3,
.h3
{
    font-size: 1.0625rem;
}

h4,
.h4
{
    font-size: .9375rem;
}

h5,
.h5
{
    font-size: .8125rem;
}

h6,
.h6
{
    font-size: .625rem;
}

.lead
{
    font-size: 1.25rem;
    font-weight: 300;
}

.display-1
{
    font-size: 3.3rem;
    font-weight: 600;
    line-height: 1.5;
}

.display-2
{
    font-size: 2.75rem;
    font-weight: 600;
    line-height: 1.5;
}

.display-3
{
    font-size: 2.1875rem;
    font-weight: 600;
    line-height: 1.5;
}

.display-4
{
    font-size: 1.6275rem;
    font-weight: 600;
    line-height: 1.5;
}

hr
{
    margin-top: 2rem;
    margin-bottom: 2rem;

    border: 0;
    border-top: 1px solid rgba(0, 0, 0, .1);
}

small,
.small
{
    font-size: 80%;
    font-weight: 400;
}

mark,
.mark
{
    padding: .2em;

    background-color: #fcf8e3;
}

.list-unstyled
{
    padding-left: 0;

    list-style: none;
}

.list-inline
{
    padding-left: 0;

    list-style: none;
}

.list-inline-item
{
    display: inline-block;
}
.list-inline-item:not(:last-child)
{
    margin-right: .5rem;
}

.initialism
{
    font-size: 90%;

    text-transform: uppercase;
}

.blockquote
{
    font-size: 1.25rem; 

    margin-bottom: 1rem;
}

.blockquote-footer
{
    font-size: 80%;

    display: block;

    color: #8898aa;
}
.blockquote-footer::before
{
    content: '\2014 \00A0';
}

.img-fluid
{
    max-width: 100%;
    height: auto;
}

.img-thumbnail
{
    max-width: 100%;
    height: auto; 
    padding: .25rem;

    border: 1px solid #dee2e6;
    border-radius: .375rem;
    background-color: #f8f9fe;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
}

.figure
{
    display: inline-block;
}

.figure-img
{
    line-height: 1; 

    margin-bottom: .5rem;
}

.figure-caption
{
    font-size: 90%;

    color: #8898aa;
}

code
{
    font-size: 87.5%;

    word-break: break-word; 

    color: #f3a4b5;
}
a > code
{
    color: inherit;
}

kbd
{
    font-size: 87.5%;

    padding: .2rem .4rem;

    color: #fff;
    border-radius: .25rem;
    background-color: #212529;
    box-shadow: inset 0 -.1rem 0 rgba(0, 0, 0, .25);
}
kbd kbd
{
    font-size: 100%;
    font-weight: 600;

    padding: 0;

    box-shadow: none;
}

pre
{
    font-size: 87.5%;

    display: block;

    color: #212529;
}
pre code
{
    font-size: inherit;

    word-break: normal; 

    color: inherit;
}

.pre-scrollable
{
    overflow-y: scroll; 

    max-height: 340px;
}

.container
{
    width: 100%;
    margin-right: auto;
    margin-left: auto; 
    padding-right: 15px;
    padding-left: 15px;
}
@media (min-width: 576px)
{
    .container
    {
        max-width: 540px;
    }
}
@media (min-width: 768px)
{
    .container
    {
        max-width: 720px;
    }
}
@media (min-width: 992px)
{
    .container
    {
        max-width: 960px;
    }
}
@media (min-width: 1200px)
{
    .container
    {
        max-width: 1140px;
    }
}

.container-fluid
{
    width: 100%;
    margin-right: auto;
    margin-left: auto; 
    padding-right: 15px;
    padding-left: 15px;
}

.row
{
    display: flex;

    margin-right: -15px;
    margin-left: -15px; 

    flex-wrap: wrap;
}

.no-gutters
{
    margin-right: 0;
    margin-left: 0;
}
.no-gutters > .col,
.no-gutters > [class*='col-']
{
    padding-right: 0;
    padding-left: 0;
}

.col-1,
.col-2,
.col-3,
.col-4,
.col-5,
.col-6,
.col-7,
.col-8,
.col-9,
.col-10,
.col-11,
.col-12,
.col,
.col-auto,
.col-sm-1,
.col-sm-2,
.col-sm-3,
.col-sm-4,
.col-sm-5,
.col-sm-6,
.col-sm-7,
.col-sm-8,
.col-sm-9,
.col-sm-10,
.col-sm-11,
.col-sm-12,
.col-sm,
.col-sm-auto,
.col-md-1,
.col-md-2,
.col-md-3,
.col-md-4,
.col-md-5,
.col-md-6,
.col-md-7,
.col-md-8,
.col-md-9,
.col-md-10,
.col-md-11,
.col-md-12,
.col-md,
.col-md-auto,
.col-lg-1,
.col-lg-2,
.col-lg-3,
.col-lg-4,
.col-lg-5,
.col-lg-6,
.col-lg-7,
.col-lg-8,
.col-lg-9,
.col-lg-10,
.col-lg-11,
.col-lg-12,
.col-lg,
.col-lg-auto,
.col-xl-1,
.col-xl-2,
.col-xl-3,
.col-xl-4,
.col-xl-5,
.col-xl-6,
.col-xl-7,
.col-xl-8,
.col-xl-9,
.col-xl-10,
.col-xl-11,
.col-xl-12,
.col-xl,
.col-xl-auto
{
    position: relative;

    width: 100%;
    min-height: 1px;
    padding-right: 15px;
    padding-left: 15px;
}

.col
{
    max-width: 100%; 

    flex-basis: 0;
    flex-grow: 1;
}

.col-auto
{
    width: auto;
    max-width: none; 

    flex: 0 0 auto;
}

.col-1
{
    max-width: 8.33333%; 

    flex: 0 0 8.33333%;
}

.col-2
{
    max-width: 16.66667%; 

    flex: 0 0 16.66667%;
}

.col-3
{
    max-width: 25%; 

    flex: 0 0 25%;
}

.col-4
{
    max-width: 33.33333%; 

    flex: 0 0 33.33333%;
}

.col-5
{
    max-width: 41.66667%; 

    flex: 0 0 41.66667%;
}

.col-6
{
    max-width: 50%; 

    flex: 0 0 50%;
}

.col-7
{
    max-width: 58.33333%; 

    flex: 0 0 58.33333%;
}

.col-8
{
    max-width: 66.66667%; 

    flex: 0 0 66.66667%;
}

.col-9
{
    max-width: 75%; 

    flex: 0 0 75%;
}

.col-10
{
    max-width: 83.33333%; 

    flex: 0 0 83.33333%;
}

.col-11
{
    max-width: 91.66667%; 

    flex: 0 0 91.66667%;
}

.col-12
{
    max-width: 100%; 

    flex: 0 0 100%;
}

.order-first
{
    order: -1;
}

.order-last
{
    order: 13;
}

.order-0
{
    order: 0;
}

.order-1
{
    order: 1;
}

.order-2
{
    order: 2;
}

.order-3
{
    order: 3;
}

.order-4
{
    order: 4;
}

.order-5
{
    order: 5;
}

.order-6
{
    order: 6;
}

.order-7
{
    order: 7;
}

.order-8
{
    order: 8;
}

.order-9
{
    order: 9;
}

.order-10
{
    order: 10;
}

.order-11
{
    order: 11;
}

.order-12
{
    order: 12;
}

.offset-1
{
    margin-left: 8.33333%;
}

.offset-2
{
    margin-left: 16.66667%;
}

.offset-3
{
    margin-left: 25%;
}

.offset-4
{
    margin-left: 33.33333%;
}

.offset-5
{
    margin-left: 41.66667%;
}

.offset-6
{
    margin-left: 50%;
}

.offset-7
{
    margin-left: 58.33333%;
}

.offset-8
{
    margin-left: 66.66667%;
}

.offset-9
{
    margin-left: 75%;
}

.offset-10
{
    margin-left: 83.33333%;
}

.offset-11
{
    margin-left: 91.66667%;
}

@media (min-width: 576px)
{
    .col-sm
    {
        max-width: 100%; 

        flex-basis: 0;
        flex-grow: 1;
    }
    .col-sm-auto
    {
        width: auto;
        max-width: none; 

        flex: 0 0 auto;
    }
    .col-sm-1
    {
        max-width: 8.33333%; 

        flex: 0 0 8.33333%;
    }
    .col-sm-2
    {
        max-width: 16.66667%; 

        flex: 0 0 16.66667%;
    }
    .col-sm-3
    {
        max-width: 25%; 

        flex: 0 0 25%;
    }
    .col-sm-4
    {
        max-width: 33.33333%; 

        flex: 0 0 33.33333%;
    }
    .col-sm-5
    {
        max-width: 41.66667%; 

        flex: 0 0 41.66667%;
    }
    .col-sm-6
    {
        max-width: 50%; 

        flex: 0 0 50%;
    }
    .col-sm-7
    {
        max-width: 58.33333%; 

        flex: 0 0 58.33333%;
    }
    .col-sm-8
    {
        max-width: 66.66667%; 

        flex: 0 0 66.66667%;
    }
    .col-sm-9
    {
        max-width: 75%; 

        flex: 0 0 75%;
    }
    .col-sm-10
    {
        max-width: 83.33333%; 

        flex: 0 0 83.33333%;
    }
    .col-sm-11
    {
        max-width: 91.66667%; 

        flex: 0 0 91.66667%;
    }
    .col-sm-12
    {
        max-width: 100%; 

        flex: 0 0 100%;
    }
    .order-sm-first
    {
        order: -1;
    }
    .order-sm-last
    {
        order: 13;
    }
    .order-sm-0
    {
        order: 0;
    }
    .order-sm-1
    {
        order: 1;
    }
    .order-sm-2
    {
        order: 2;
    }
    .order-sm-3
    {
        order: 3;
    }
    .order-sm-4
    {
        order: 4;
    }
    .order-sm-5
    {
        order: 5;
    }
    .order-sm-6
    {
        order: 6;
    }
    .order-sm-7
    {
        order: 7;
    }
    .order-sm-8
    {
        order: 8;
    }
    .order-sm-9
    {
        order: 9;
    }
    .order-sm-10
    {
        order: 10;
    }
    .order-sm-11
    {
        order: 11;
    }
    .order-sm-12
    {
        order: 12;
    }
    .offset-sm-0
    {
        margin-left: 0;
    }
    .offset-sm-1
    {
        margin-left: 8.33333%;
    }
    .offset-sm-2
    {
        margin-left: 16.66667%;
    }
    .offset-sm-3
    {
        margin-left: 25%;
    }
    .offset-sm-4
    {
        margin-left: 33.33333%;
    }
    .offset-sm-5
    {
        margin-left: 41.66667%;
    }
    .offset-sm-6
    {
        margin-left: 50%;
    }
    .offset-sm-7
    {
        margin-left: 58.33333%;
    }
    .offset-sm-8
    {
        margin-left: 66.66667%;
    }
    .offset-sm-9
    {
        margin-left: 75%;
    }
    .offset-sm-10
    {
        margin-left: 83.33333%;
    }
    .offset-sm-11
    {
        margin-left: 91.66667%;
    }
}

@media (min-width: 768px)
{
    .col-md
    {
        max-width: 100%; 

        flex-basis: 0;
        flex-grow: 1;
    }
    .col-md-auto
    {
        width: auto;
        max-width: none; 

        flex: 0 0 auto;
    }
    .col-md-1
    {
        max-width: 8.33333%; 

        flex: 0 0 8.33333%;
    }
    .col-md-2
    {
        max-width: 16.66667%; 

        flex: 0 0 16.66667%;
    }
    .col-md-3
    {
        max-width: 25%; 

        flex: 0 0 25%;
    }
    .col-md-4
    {
        max-width: 33.33333%; 

        flex: 0 0 33.33333%;
    }
    .col-md-5
    {
        max-width: 41.66667%; 

        flex: 0 0 41.66667%;
    }
    .col-md-6
    {
        max-width: 50%; 

        flex: 0 0 50%;
    }
    .col-md-7
    {
        max-width: 58.33333%; 

        flex: 0 0 58.33333%;
    }
    .col-md-8
    {
        max-width: 66.66667%; 

        flex: 0 0 66.66667%;
    }
    .col-md-9
    {
        max-width: 75%; 

        flex: 0 0 75%;
    }
    .col-md-10
    {
        max-width: 83.33333%; 

        flex: 0 0 83.33333%;
    }
    .col-md-11
    {
        max-width: 91.66667%; 

        flex: 0 0 91.66667%;
    }
    .col-md-12
    {
        max-width: 100%; 

        flex: 0 0 100%;
    }
    .order-md-first
    {
        order: -1;
    }
    .order-md-last
    {
        order: 13;
    }
    .order-md-0
    {
        order: 0;
    }
    .order-md-1
    {
        order: 1;
    }
    .order-md-2
    {
        order: 2;
    }
    .order-md-3
    {
        order: 3;
    }
    .order-md-4
    {
        order: 4;
    }
    .order-md-5
    {
        order: 5;
    }
    .order-md-6
    {
        order: 6;
    }
    .order-md-7
    {
        order: 7;
    }
    .order-md-8
    {
        order: 8;
    }
    .order-md-9
    {
        order: 9;
    }
    .order-md-10
    {
        order: 10;
    }
    .order-md-11
    {
        order: 11;
    }
    .order-md-12
    {
        order: 12;
    }
    .offset-md-0
    {
        margin-left: 0;
    }
    .offset-md-1
    {
        margin-left: 8.33333%;
    }
    .offset-md-2
    {
        margin-left: 16.66667%;
    }
    .offset-md-3
    {
        margin-left: 25%;
    }
    .offset-md-4
    {
        margin-left: 33.33333%;
    }
    .offset-md-5
    {
        margin-left: 41.66667%;
    }
    .offset-md-6
    {
        margin-left: 50%;
    }
    .offset-md-7
    {
        margin-left: 58.33333%;
    }
    .offset-md-8
    {
        margin-left: 66.66667%;
    }
    .offset-md-9
    {
        margin-left: 75%;
    }
    .offset-md-10
    {
        margin-left: 83.33333%;
    }
    .offset-md-11
    {
        margin-left: 91.66667%;
    }
}

@media (min-width: 992px)
{
    .col-lg
    {
        max-width: 100%; 

        flex-basis: 0;
        flex-grow: 1;
    }
    .col-lg-auto
    {
        width: auto;
        max-width: none; 

        flex: 0 0 auto;
    }
    .col-lg-1
    {
        max-width: 8.33333%; 

        flex: 0 0 8.33333%;
    }
    .col-lg-2
    {
        max-width: 16.66667%; 

        flex: 0 0 16.66667%;
    }
    .col-lg-3
    {
        max-width: 25%; 

        flex: 0 0 25%;
    }
    .col-lg-4
    {
        max-width: 33.33333%; 

        flex: 0 0 33.33333%;
    }
    .col-lg-5
    {
        max-width: 41.66667%; 

        flex: 0 0 41.66667%;
    }
    .col-lg-6
    {
        max-width: 50%; 

        flex: 0 0 50%;
    }
    .col-lg-7
    {
        max-width: 58.33333%; 

        flex: 0 0 58.33333%;
    }
    .col-lg-8
    {
        max-width: 66.66667%; 

        flex: 0 0 66.66667%;
    }
    .col-lg-9
    {
        max-width: 75%; 

        flex: 0 0 75%;
    }
    .col-lg-10
    {
        max-width: 83.33333%; 

        flex: 0 0 83.33333%;
    }
    .col-lg-11
    {
        max-width: 91.66667%; 

        flex: 0 0 91.66667%;
    }
    .col-lg-12
    {
        max-width: 100%; 

        flex: 0 0 100%;
    }
    .order-lg-first
    {
        order: -1;
    }
    .order-lg-last
    {
        order: 13;
    }
    .order-lg-0
    {
        order: 0;
    }
    .order-lg-1
    {
        order: 1;
    }
    .order-lg-2
    {
        order: 2;
    }
    .order-lg-3
    {
        order: 3;
    }
    .order-lg-4
    {
        order: 4;
    }
    .order-lg-5
    {
        order: 5;
    }
    .order-lg-6
    {
        order: 6;
    }
    .order-lg-7
    {
        order: 7;
    }
    .order-lg-8
    {
        order: 8;
    }
    .order-lg-9
    {
        order: 9;
    }
    .order-lg-10
    {
        order: 10;
    }
    .order-lg-11
    {
        order: 11;
    }
    .order-lg-12
    {
        order: 12;
    }
    .offset-lg-0
    {
        margin-left: 0;
    }
    .offset-lg-1
    {
        margin-left: 8.33333%;
    }
    .offset-lg-2
    {
        margin-left: 16.66667%;
    }
    .offset-lg-3
    {
        margin-left: 25%;
    }
    .offset-lg-4
    {
        margin-left: 33.33333%;
    }
    .offset-lg-5
    {
        margin-left: 41.66667%;
    }
    .offset-lg-6
    {
        margin-left: 50%;
    }
    .offset-lg-7
    {
        margin-left: 58.33333%;
    }
    .offset-lg-8
    {
        margin-left: 66.66667%;
    }
    .offset-lg-9
    {
        margin-left: 75%;
    }
    .offset-lg-10
    {
        margin-left: 83.33333%;
    }
    .offset-lg-11
    {
        margin-left: 91.66667%;
    }
}

@media (min-width: 1200px)
{
    .col-xl
    {
        max-width: 100%; 

        flex-basis: 0;
        flex-grow: 1;
    }
    .col-xl-auto
    {
        width: auto;
        max-width: none; 

        flex: 0 0 auto;
    }
    .col-xl-1
    {
        max-width: 8.33333%; 

        flex: 0 0 8.33333%;
    }
    .col-xl-2
    {
        max-width: 16.66667%; 

        flex: 0 0 16.66667%;
    }
    .col-xl-3
    {
        max-width: 25%; 

        flex: 0 0 25%;
    }
    .col-xl-4
    {
        max-width: 33.33333%; 

        flex: 0 0 33.33333%;
    }
    .col-xl-5
    {
        max-width: 41.66667%; 

        flex: 0 0 41.66667%;
    }
    .col-xl-6
    {
        max-width: 50%; 

        flex: 0 0 50%;
    }
    .col-xl-7
    {
        max-width: 58.33333%; 

        flex: 0 0 58.33333%;
    }
    .col-xl-8
    {
        max-width: 66.66667%; 

        flex: 0 0 66.66667%;
    }
    .col-xl-9
    {
        max-width: 75%; 

        flex: 0 0 75%;
    }
    .col-xl-10
    {
        max-width: 83.33333%; 

        flex: 0 0 83.33333%;
    }
    .col-xl-11
    {
        max-width: 91.66667%; 

        flex: 0 0 91.66667%;
    }
    .col-xl-12
    {
        max-width: 100%; 

        flex: 0 0 100%;
    }
    .order-xl-first
    {
        order: -1;
    }
    .order-xl-last
    {
        order: 13;
    }
    .order-xl-0
    {
        order: 0;
    }
    .order-xl-1
    {
        order: 1;
    }
    .order-xl-2
    {
        order: 2;
    }
    .order-xl-3
    {
        order: 3;
    }
    .order-xl-4
    {
        order: 4;
    }
    .order-xl-5
    {
        order: 5;
    }
    .order-xl-6
    {
        order: 6;
    }
    .order-xl-7
    {
        order: 7;
    }
    .order-xl-8
    {
        order: 8;
    }
    .order-xl-9
    {
        order: 9;
    }
    .order-xl-10
    {
        order: 10;
    }
    .order-xl-11
    {
        order: 11;
    }
    .order-xl-12
    {
        order: 12;
    }
    .offset-xl-0
    {
        margin-left: 0;
    }
    .offset-xl-1
    {
        margin-left: 8.33333%;
    }
    .offset-xl-2
    {
        margin-left: 16.66667%;
    }
    .offset-xl-3
    {
        margin-left: 25%;
    }
    .offset-xl-4
    {
        margin-left: 33.33333%;
    }
    .offset-xl-5
    {
        margin-left: 41.66667%;
    }
    .offset-xl-6
    {
        margin-left: 50%;
    }
    .offset-xl-7
    {
        margin-left: 58.33333%;
    }
    .offset-xl-8
    {
        margin-left: 66.66667%;
    }
    .offset-xl-9
    {
        margin-left: 75%;
    }
    .offset-xl-10
    {
        margin-left: 83.33333%;
    }
    .offset-xl-11
    {
        margin-left: 91.66667%;
    }
}

.table
{
    width: 100%;
    margin-bottom: 1rem;

    background-color: transparent;
}
.table th,
.table td
{
    padding: 1rem;

    vertical-align: top;

    border-top: 1px solid #e9ecef;
}
.table thead th
{
    vertical-align: bottom;

    border-bottom: 2px solid #e9ecef;
}
.table tbody + tbody
{
    border-top: 2px solid #e9ecef;
}
.table .table
{
    background-color: #f8f9fe;
}

.table-sm th,
.table-sm td
{
    padding: .5rem;
}

.table-bordered
{
    border: 1px solid #e9ecef;
}
.table-bordered th,
.table-bordered td
{
    border: 1px solid #e9ecef;
}
.table-bordered thead th,
.table-bordered thead td
{
    border-bottom-width: 2px;
}

.table-borderless th,
.table-borderless td,
.table-borderless thead th,
.table-borderless tbody + tbody
{
    border: 0;
}

.table-striped tbody tr:nth-of-type(odd)
{
    background-color: rgba(0, 0, 0, .05);
}

.table-hover tbody tr:hover
{
    background-color: #f6f9fc;
}

.table-primary,
.table-primary > th,
.table-primary > td
{
    background-color: #d2d8f7;
}

.table-hover .table-primary:hover
{
    background-color: #bcc5f3;
}
.table-hover .table-primary:hover > td,
.table-hover .table-primary:hover > th
{
    background-color: #bcc5f3;
}

.table-secondary,
.table-secondary > th,
.table-secondary > td
{
    background-color: #fdfefe;
}

.table-hover .table-secondary:hover
{
    background-color: #ecf6f6;
}
.table-hover .table-secondary:hover > td,
.table-hover .table-secondary:hover > th
{
    background-color: #ecf6f6;
}

.table-success,
.table-success > th,
.table-success > td
{
    background-color: #c4f1de;
}

.table-hover .table-success:hover
{
    background-color: #afecd2;
}
.table-hover .table-success:hover > td,
.table-hover .table-success:hover > th
{
    background-color: #afecd2;
}

.table-info,
.table-info > th,
.table-info > td
{
    background-color: #bcf1fb;
}

.table-hover .table-info:hover
{
    background-color: #a4ecfa;
}
.table-hover .table-info:hover > td,
.table-hover .table-info:hover > th
{
    background-color: #a4ecfa;
}

.table-warning,
.table-warning > th,
.table-warning > td
{
    background-color: #fed3ca;
}

.table-hover .table-warning:hover
{
    background-color: #febeb1;
}
.table-hover .table-warning:hover > td,
.table-hover .table-warning:hover > th
{
    background-color: #febeb1;
}

.table-danger,
.table-danger > th,
.table-danger > td
{
    background-color: #fcc7d1;
}

.table-hover .table-danger:hover
{
    background-color: #fbafbd;
}
.table-hover .table-danger:hover > td,
.table-hover .table-danger:hover > th
{
    background-color: #fbafbd;
}

.table-light,
.table-light > th,
.table-light > td
{
    background-color: #e8eaed;
}

.table-hover .table-light:hover
{
    background-color: #dadde2;
}
.table-hover .table-light:hover > td,
.table-hover .table-light:hover > th
{
    background-color: #dadde2;
}

.table-dark,
.table-dark > th,
.table-dark > td
{
    background-color: #c1c2c3;
}

.table-hover .table-dark:hover
{
    background-color: #b4b5b6;
}
.table-hover .table-dark:hover > td,
.table-hover .table-dark:hover > th
{
    background-color: #b4b5b6;
}

.table-default,
.table-default > th,
.table-default > td
{
    background-color: #bec4cd;
}

.table-hover .table-default:hover
{
    background-color: #b0b7c2;
}
.table-hover .table-default:hover > td,
.table-hover .table-default:hover > th
{
    background-color: #b0b7c2;
}

.table-white,
.table-white > th,
.table-white > td
{
    background-color: white;
}

.table-hover .table-white:hover
{
    background-color: #f2f2f2;
}
.table-hover .table-white:hover > td,
.table-hover .table-white:hover > th
{
    background-color: #f2f2f2;
}

.table-neutral,
.table-neutral > th,
.table-neutral > td
{
    background-color: white;
}

.table-hover .table-neutral:hover
{
    background-color: #f2f2f2;
}
.table-hover .table-neutral:hover > td,
.table-hover .table-neutral:hover > th
{
    background-color: #f2f2f2;
}

.table-darker,
.table-darker > th,
.table-darker > td
{
    background-color: #b8b8b8;
}

.table-hover .table-darker:hover
{
    background-color: #ababab;
}
.table-hover .table-darker:hover > td,
.table-hover .table-darker:hover > th
{
    background-color: #ababab;
}

.table-active,
.table-active > th,
.table-active > td
{
    background-color: #f6f9fc;
}

.table-hover .table-active:hover
{
    background-color: #e3ecf6;
}
.table-hover .table-active:hover > td,
.table-hover .table-active:hover > th
{
    background-color: #e3ecf6;
}

.table .thead-dark th
{
    color: #f8f9fe;
    border-color: #1f3a68; 
    background-color: #172b4d;
}

.table .thead-light th
{
    color: #8898aa;
    border-color: #e9ecef; 
    background-color: #f6f9fc;
}

.table-dark
{
    color: #f8f9fe;
    background-color: #172b4d;
}
.table-dark th,
.table-dark td,
.table-dark thead th
{
    border-color: #1f3a68;
}
.table-dark.table-bordered
{
    border: 0;
}
.table-dark.table-striped tbody tr:nth-of-type(odd)
{
    background-color: rgba(255, 255, 255, .05);
}
.table-dark.table-hover tbody tr:hover
{
    background-color: rgba(255, 255, 255, .075);
}

@media (max-width: 575.98px)
{
    .table-responsive-sm
    {
        display: block;
        overflow-x: auto;

        width: 100%;

        -webkit-overflow-scrolling: touch;
        -ms-overflow-style: -ms-autohiding-scrollbar;
    }
    .table-responsive-sm > .table-bordered
    {
        border: 0;
    }
}

@media (max-width: 767.98px)
{
    .table-responsive-md
    {
        display: block;
        overflow-x: auto;

        width: 100%;

        -webkit-overflow-scrolling: touch;
        -ms-overflow-style: -ms-autohiding-scrollbar;
    }
    .table-responsive-md > .table-bordered
    {
        border: 0;
    }
}

@media (max-width: 991.98px)
{
    .table-responsive-lg
    {
        display: block;
        overflow-x: auto;

        width: 100%;

        -webkit-overflow-scrolling: touch;
        -ms-overflow-style: -ms-autohiding-scrollbar;
    }
    .table-responsive-lg > .table-bordered
    {
        border: 0;
    }
}

@media (max-width: 1199.98px)
{
    .table-responsive-xl
    {
        display: block;
        overflow-x: auto;

        width: 100%;

        -webkit-overflow-scrolling: touch;
        -ms-overflow-style: -ms-autohiding-scrollbar;
    }
    .table-responsive-xl > .table-bordered
    {
        border: 0;
    }
}

.table-responsive
{
    display: block;
    overflow-x: auto;

    width: 100%;

    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: -ms-autohiding-scrollbar;
}
.table-responsive > .table-bordered
{
    border: 0;
}

.form-control
{
    font-size: 1rem;
    line-height: 1.5;

    display: block;

    width: 100%;
    height: calc(2.75rem + 2px);
    padding: .625rem .75rem;

    transition: all .2s cubic-bezier(.68, -.55, .265, 1.55); 

    color: #8898aa;
    border: 1px solid #cad1d7;
    border-radius: .375rem;
    background-color: #fff;
    background-clip: padding-box;
    box-shadow: none;
}
@media screen and (prefers-reduced-motion: reduce)
{
    .form-control
    {
        transition: none;
    }
}
.form-control::-ms-expand
{
    border: 0; 
    background-color: transparent;
}
.form-control:focus
{
    color: #8898aa;
    border-color: rgba(50, 151, 211, .25);
    outline: 0;
    background-color: #fff;
    box-shadow: none, none;
}
.form-control:-ms-input-placeholder
{
    opacity: 1; 
    color: #adb5bd;
}
.form-control::-ms-input-placeholder
{
    opacity: 1; 
    color: #adb5bd;
}
.form-control::placeholder
{
    opacity: 1; 
    color: #adb5bd;
}
.form-control:disabled,
.form-control[readonly]
{
    opacity: 1; 
    background-color: #e9ecef;
}

select.form-control:focus::-ms-value
{
    color: #8898aa;
    background-color: #fff;
}

.form-control-file,
.form-control-range
{
    display: block;

    width: 100%;
}

.col-form-label
{
    font-size: inherit;
    line-height: 1.5; 

    margin-bottom: 0;
    padding-top: calc(.625rem + 1px);
    padding-bottom: calc(.625rem + 1px);
}

.col-form-label-lg
{
    font-size: 1.25rem;
    line-height: 1.5; 

    padding-top: calc(.875rem + 1px);
    padding-bottom: calc(.875rem + 1px);
}

.col-form-label-sm
{
    font-size: .875rem;
    line-height: 1.5; 

    padding-top: calc(.25rem + 1px);
    padding-bottom: calc(.25rem + 1px);
}

.form-control-plaintext
{
    line-height: 1.5;

    display: block;

    width: 100%;
    margin-bottom: 0;
    padding-top: .625rem;
    padding-bottom: .625rem;

    color: #525f7f;
    border: solid transparent;
    border-width: 1px 0; 
    background-color: transparent;
}
.form-control-plaintext.form-control-sm,
.form-control-plaintext.form-control-lg
{
    padding-right: 0;
    padding-left: 0;
}

.form-control-sm
{
    font-size: .875rem;
    line-height: 1.5;

    height: calc(1.8125rem + 2px);
    padding: .25rem .5rem;

    border-radius: .25rem;
}

.form-control-lg
{
    font-size: 1.25rem;
    line-height: 1.5;

    height: calc(3.625rem + 2px);
    padding: .875rem 1rem;

    border-radius: .4375rem;
}

select.form-control[size],
select.form-control[multiple]
{
    height: auto;
}

textarea.form-control
{
    height: auto;
}

.form-group
{
    margin-bottom: 1.5rem;
}

.form-text
{
    display: block;

    margin-top: .25rem;
}

.form-row
{
    display: flex;

    margin-right: -5px;
    margin-left: -5px; 

    flex-wrap: wrap;
}
.form-row > .col,
.form-row > [class*='col-']
{
    padding-right: 5px;
    padding-left: 5px;
}

.form-check
{
    position: relative;

    display: block;

    padding-left: 1.25rem;
}

.form-check-input
{
    position: absolute;

    margin-top: .3rem;
    margin-left: -1.25rem;
}
.form-check-input:disabled ~ .form-check-label
{
    color: #8898aa;
}

.form-check-label
{
    margin-bottom: 0;
}

.form-check-inline
{
    display: inline-flex;

    margin-right: .75rem; 
    padding-left: 0;

    align-items: center;
}
.form-check-inline .form-check-input
{
    position: static;

    margin-top: 0;
    margin-right: .3125rem;
    margin-left: 0;
}

.valid-feedback
{
    font-size: 80%;

    display: none;

    width: 100%;
    margin-top: .25rem;

    color: #2dce89;
}

.valid-tooltip
{
    font-size: .875rem;
    line-height: 1;

    position: absolute;
    z-index: 5;
    top: 100%;

    display: none;

    max-width: 100%;
    margin-top: .1rem;
    padding: .5rem;

    color: #fff;
    border-radius: .2rem; 
    background-color: rgba(45, 206, 137, .8);
}

.was-validated .form-control:valid,
.form-control.is-valid,
.was-validated
.custom-select:valid,
.custom-select.is-valid
{
    border-color: #2dce89;
}
.was-validated .form-control:valid:focus,
.form-control.is-valid:focus,
.was-validated
  .custom-select:valid:focus,
.custom-select.is-valid:focus
{
    border-color: #2dce89;
}
.was-validated .form-control:valid ~ .valid-feedback,
.was-validated .form-control:valid ~ .valid-tooltip,
.form-control.is-valid ~ .valid-feedback,
.form-control.is-valid ~ .valid-tooltip,
.was-validated
  .custom-select:valid ~ .valid-feedback,
.was-validated
  .custom-select:valid ~ .valid-tooltip,
.custom-select.is-valid ~ .valid-feedback,
.custom-select.is-valid ~ .valid-tooltip
{
    display: block;
}

.was-validated .form-check-input:valid ~ .form-check-label,
.form-check-input.is-valid ~ .form-check-label
{
    color: #2dce89;
}

.was-validated .form-check-input:valid ~ .valid-feedback,
.was-validated .form-check-input:valid ~ .valid-tooltip,
.form-check-input.is-valid ~ .valid-feedback,
.form-check-input.is-valid ~ .valid-tooltip
{
    display: block;
}

.was-validated .custom-control-input:valid ~ .custom-control-label,
.custom-control-input.is-valid ~ .custom-control-label
{
    color: #2dce89;
}
.was-validated .custom-control-input:valid ~ .custom-control-label::before,
.custom-control-input.is-valid ~ .custom-control-label::before
{
    border-color: #93e7c3; 
    background-color: #93e7c3;
}

.was-validated .custom-control-input:valid ~ .valid-feedback,
.was-validated .custom-control-input:valid ~ .valid-tooltip,
.custom-control-input.is-valid ~ .valid-feedback,
.custom-control-input.is-valid ~ .valid-tooltip
{
    display: block;
}

.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before,
.custom-control-input.is-valid:checked ~ .custom-control-label::before
{
    border-color: #93e7c3; 
    background-color: #54daa1;
}

.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before,
.custom-control-input.is-valid:focus ~ .custom-control-label::before
{
    box-shadow: 0 0 0 1px #f8f9fe, 0 0 0 0 rgba(45, 206, 137, .25);
}

.was-validated .custom-file-input:valid ~ .custom-file-label,
.custom-file-input.is-valid ~ .custom-file-label
{
    border-color: #2dce89;
}
.was-validated .custom-file-input:valid ~ .custom-file-label::before,
.custom-file-input.is-valid ~ .custom-file-label::before
{
    border-color: inherit;
}

.was-validated .custom-file-input:valid ~ .valid-feedback,
.was-validated .custom-file-input:valid ~ .valid-tooltip,
.custom-file-input.is-valid ~ .valid-feedback,
.custom-file-input.is-valid ~ .valid-tooltip
{
    display: block;
}

.was-validated .custom-file-input:valid:focus ~ .custom-file-label,
.custom-file-input.is-valid:focus ~ .custom-file-label
{
    box-shadow: 0 0 0 0 rgba(45, 206, 137, .25);
}

.invalid-feedback
{
    font-size: 80%;

    display: none;

    width: 100%;
    margin-top: .25rem;

    color: #fb6340;
}

.invalid-tooltip
{
    font-size: .875rem;
    line-height: 1;

    position: absolute;
    z-index: 5;
    top: 100%;

    display: none;

    max-width: 100%;
    margin-top: .1rem;
    padding: .5rem;

    color: #fff;
    border-radius: .2rem; 
    background-color: rgba(251, 99, 64, .8);
}

.was-validated .form-control:invalid,
.form-control.is-invalid,
.was-validated
.custom-select:invalid,
.custom-select.is-invalid
{
    border-color: #fb6340;
}
.was-validated .form-control:invalid:focus,
.form-control.is-invalid:focus,
.was-validated
  .custom-select:invalid:focus,
.custom-select.is-invalid:focus
{
    border-color: #fb6340;
}
.was-validated .form-control:invalid ~ .invalid-feedback,
.was-validated .form-control:invalid ~ .invalid-tooltip,
.form-control.is-invalid ~ .invalid-feedback,
.form-control.is-invalid ~ .invalid-tooltip,
.was-validated
  .custom-select:invalid ~ .invalid-feedback,
.was-validated
  .custom-select:invalid ~ .invalid-tooltip,
.custom-select.is-invalid ~ .invalid-feedback,
.custom-select.is-invalid ~ .invalid-tooltip
{
    display: block;
}

.was-validated .form-check-input:invalid ~ .form-check-label,
.form-check-input.is-invalid ~ .form-check-label
{
    color: #fb6340;
}

.was-validated .form-check-input:invalid ~ .invalid-feedback,
.was-validated .form-check-input:invalid ~ .invalid-tooltip,
.form-check-input.is-invalid ~ .invalid-feedback,
.form-check-input.is-invalid ~ .invalid-tooltip
{
    display: block;
}

.was-validated .custom-control-input:invalid ~ .custom-control-label,
.custom-control-input.is-invalid ~ .custom-control-label
{
    color: #fb6340;
}
.was-validated .custom-control-input:invalid ~ .custom-control-label::before,
.custom-control-input.is-invalid ~ .custom-control-label::before
{
    border-color: #fec9bd; 
    background-color: #fec9bd;
}

.was-validated .custom-control-input:invalid ~ .invalid-feedback,
.was-validated .custom-control-input:invalid ~ .invalid-tooltip,
.custom-control-input.is-invalid ~ .invalid-feedback,
.custom-control-input.is-invalid ~ .invalid-tooltip
{
    display: block;
}

.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before,
.custom-control-input.is-invalid:checked ~ .custom-control-label::before
{
    border-color: #fec9bd; 
    background-color: #fc8c72;
}

.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before,
.custom-control-input.is-invalid:focus ~ .custom-control-label::before
{
    box-shadow: 0 0 0 1px #f8f9fe, 0 0 0 0 rgba(251, 99, 64, .25);
}

.was-validated .custom-file-input:invalid ~ .custom-file-label,
.custom-file-input.is-invalid ~ .custom-file-label
{
    border-color: #fb6340;
}
.was-validated .custom-file-input:invalid ~ .custom-file-label::before,
.custom-file-input.is-invalid ~ .custom-file-label::before
{
    border-color: inherit;
}

.was-validated .custom-file-input:invalid ~ .invalid-feedback,
.was-validated .custom-file-input:invalid ~ .invalid-tooltip,
.custom-file-input.is-invalid ~ .invalid-feedback,
.custom-file-input.is-invalid ~ .invalid-tooltip
{
    display: block;
}

.was-validated .custom-file-input:invalid:focus ~ .custom-file-label,
.custom-file-input.is-invalid:focus ~ .custom-file-label
{
    box-shadow: 0 0 0 0 rgba(251, 99, 64, .25);
}

.form-inline
{
    display: flex;

    flex-flow: row wrap;
    align-items: center;
}
.form-inline .form-check
{
    width: 100%;
}
@media (min-width: 576px)
{
    .form-inline label
    {
        display: flex;

        margin-bottom: 0; 

        align-items: center;
        justify-content: center;
    }
    .form-inline .form-group
    {
        display: flex;

        margin-bottom: 0; 

        flex: 0 0 auto;
        flex-flow: row wrap;
        align-items: center;
    }
    .form-inline .form-control
    {
        display: inline-block;

        width: auto;

        vertical-align: middle;
    }
    .form-inline .form-control-plaintext
    {
        display: inline-block;
    }
    .form-inline .input-group,
    .form-inline .custom-select
    {
        width: auto;
    }
    .form-inline .form-check
    {
        display: flex;

        width: auto;
        padding-left: 0; 

        align-items: center;
        justify-content: center;
    }
    .form-inline .form-check-input
    {
        position: relative;

        margin-top: 0;
        margin-right: .25rem;
        margin-left: 0;
    }
    .form-inline .custom-control
    {
        align-items: center;
        justify-content: center;
    }
    .form-inline .custom-control-label
    {
        margin-bottom: 0;
    }
}

.btn
{
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.5;

    display: inline-block;

    padding: .625rem 1.25rem;

    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out; 
    text-align: center;
    vertical-align: middle;
    white-space: nowrap;

    border: 1px solid transparent;
    border-radius: .375rem;
}
@media screen and (prefers-reduced-motion: reduce)
{
    .btn
    {
        transition: none;
    }
}
.btn:hover,
.btn:focus
{
    text-decoration: none;
}
.btn:focus,
.btn.focus
{
    outline: 0;
    box-shadow: 0 7px 14px rgba(50, 50, 93, .1), 0 3px 6px rgba(0, 0, 0, .08);
}
.btn.disabled,
.btn:disabled
{
    opacity: .65;
    box-shadow: none;
}
.btn:not(:disabled):not(.disabled)
{
    cursor: pointer;
}
.btn:not(:disabled):not(.disabled):active,
.btn:not(:disabled):not(.disabled).active
{
    box-shadow: none;
}
.btn:not(:disabled):not(.disabled):active:focus,
.btn:not(:disabled):not(.disabled).active:focus
{
    box-shadow: 0 7px 14px rgba(50, 50, 93, .1), 0 3px 6px rgba(0, 0, 0, .08), none;
}

a.btn.disabled,
fieldset:disabled a.btn
{
    pointer-events: none;
}

.btn-primary
{
    color: #fff;
    border-color: #5e72e4;
    background-color: #5e72e4;
    box-shadow: 0 4px 6px rgba(50, 50, 93, .11), 0 1px 3px rgba(0, 0, 0, .08);
}
.btn-primary:hover
{
    color: #fff;
    border-color: #5e72e4; 
    background-color: #5e72e4;
}
.btn-primary:focus,
.btn-primary.focus
{
    box-shadow: 0 4px 6px rgba(50, 50, 93, .11), 0 1px 3px rgba(0, 0, 0, .08), 0 0 0 0 rgba(94, 114, 228, .5);
}
.btn-primary.disabled,
.btn-primary:disabled
{
    color: #fff;
    border-color: #5e72e4; 
    background-color: #5e72e4;
}
.btn-primary:not(:disabled):not(.disabled):active,
.btn-primary:not(:disabled):not(.disabled).active,
.show > .btn-primary.dropdown-toggle
{
    color: #fff;
    border-color: #5e72e4; 
    background-color: #324cdd;
}
.btn-primary:not(:disabled):not(.disabled):active:focus,
.btn-primary:not(:disabled):not(.disabled).active:focus,
.show > .btn-primary.dropdown-toggle:focus
{
    box-shadow: none, 0 0 0 0 rgba(94, 114, 228, .5);
}

.btn-secondary
{
    color: #212529;
    border-color: #f7fafc;
    background-color: #f7fafc;
    box-shadow: 0 4px 6px rgba(50, 50, 93, .11), 0 1px 3px rgba(0, 0, 0, .08);
}
.btn-secondary:hover
{
    color: #212529;
    border-color: #f7fafc; 
    background-color: #f7fafc;
}
.btn-secondary:focus,
.btn-secondary.focus
{
    box-shadow: 0 4px 6px rgba(50, 50, 93, .11), 0 1px 3px rgba(0, 0, 0, .08), 0 0 0 0 rgba(247, 250, 252, .5);
}
.btn-secondary.disabled,
.btn-secondary:disabled
{
    color: #212529;
    border-color: #f7fafc; 
    background-color: #f7fafc;
}
.btn-secondary:not(:disabled):not(.disabled):active,
.btn-secondary:not(:disabled):not(.disabled).active,
.show > .btn-secondary.dropdown-toggle
{
    color: #212529;
    border-color: #f7fafc; 
    background-color: #d2e3ee;
}
.btn-secondary:not(:disabled):not(.disabled):active:focus,
.btn-secondary:not(:disabled):not(.disabled).active:focus,
.show > .btn-secondary.dropdown-toggle:focus
{
    box-shadow: none, 0 0 0 0 rgba(247, 250, 252, .5);
}

.btn-success
{
    color: #fff;
    border-color: #2dce89;
    background-color: #2dce89;
    box-shadow: 0 4px 6px rgba(50, 50, 93, .11), 0 1px 3px rgba(0, 0, 0, .08);
}
.btn-success:hover
{
    color: #fff;
    border-color: #2dce89; 
    background-color: #2dce89;
}
.btn-success:focus,
.btn-success.focus
{
    box-shadow: 0 4px 6px rgba(50, 50, 93, .11), 0 1px 3px rgba(0, 0, 0, .08), 0 0 0 0 rgba(45, 206, 137, .5);
}
.btn-success.disabled,
.btn-success:disabled
{
    color: #fff;
    border-color: #2dce89; 
    background-color: #2dce89;
}
.btn-success:not(:disabled):not(.disabled):active,
.btn-success:not(:disabled):not(.disabled).active,
.show > .btn-success.dropdown-toggle
{
    color: #fff;
    border-color: #2dce89; 
    background-color: #24a46d;
}
.btn-success:not(:disabled):not(.disabled):active:focus,
.btn-success:not(:disabled):not(.disabled).active:focus,
.show > .btn-success.dropdown-toggle:focus
{
    box-shadow: none, 0 0 0 0 rgba(45, 206, 137, .5);
}

.btn-info
{
    color: #fff;
    border-color: #11cdef;
    background-color: #11cdef;
    box-shadow: 0 4px 6px rgba(50, 50, 93, .11), 0 1px 3px rgba(0, 0, 0, .08);
}
.btn-info:hover
{
    color: #fff;
    border-color: #11cdef; 
    background-color: #11cdef;
}
.btn-info:focus,
.btn-info.focus
{
    box-shadow: 0 4px 6px rgba(50, 50, 93, .11), 0 1px 3px rgba(0, 0, 0, .08), 0 0 0 0 rgba(17, 205, 239, .5);
}
.btn-info.disabled,
.btn-info:disabled
{
    color: #fff;
    border-color: #11cdef; 
    background-color: #11cdef;
}
.btn-info:not(:disabled):not(.disabled):active,
.btn-info:not(:disabled):not(.disabled).active,
.show > .btn-info.dropdown-toggle
{
    color: #fff;
    border-color: #11cdef; 
    background-color: #0da5c0;
}
.btn-info:not(:disabled):not(.disabled):active:focus,
.btn-info:not(:disabled):not(.disabled).active:focus,
.show > .btn-info.dropdown-toggle:focus
{
    box-shadow: none, 0 0 0 0 rgba(17, 205, 239, .5);
}

.btn-warning
{
    color: #fff;
    border-color: #fb6340;
    background-color: #fb6340;
    box-shadow: 0 4px 6px rgba(50, 50, 93, .11), 0 1px 3px rgba(0, 0, 0, .08);
}
.btn-warning:hover
{
    color: #fff;
    border-color: #fb6340; 
    background-color: #fb6340;
}
.btn-warning:focus,
.btn-warning.focus
{
    box-shadow: 0 4px 6px rgba(50, 50, 93, .11), 0 1px 3px rgba(0, 0, 0, .08), 0 0 0 0 rgba(251, 99, 64, .5);
}
.btn-warning.disabled,
.btn-warning:disabled
{
    color: #fff;
    border-color: #fb6340; 
    background-color: #fb6340;
}
.btn-warning:not(:disabled):not(.disabled):active,
.btn-warning:not(:disabled):not(.disabled).active,
.show > .btn-warning.dropdown-toggle
{
    color: #fff;
    border-color: #fb6340; 
    background-color: #fa3a0e;
}
.btn-warning:not(:disabled):not(.disabled):active:focus,
.btn-warning:not(:disabled):not(.disabled).active:focus,
.show > .btn-warning.dropdown-toggle:focus
{
    box-shadow: none, 0 0 0 0 rgba(251, 99, 64, .5);
}

.btn-danger
{
    color: #fff;
    border-color: #f5365c;
    background-color: #f5365c;
    box-shadow: 0 4px 6px rgba(50, 50, 93, .11), 0 1px 3px rgba(0, 0, 0, .08);
}
.btn-danger:hover
{
    color: #fff;
    border-color: #f5365c; 
    background-color: #f5365c;
}
.btn-danger:focus,
.btn-danger.focus
{
    box-shadow: 0 4px 6px rgba(50, 50, 93, .11), 0 1px 3px rgba(0, 0, 0, .08), 0 0 0 0 rgba(245, 54, 92, .5);
}
.btn-danger.disabled,
.btn-danger:disabled
{
    color: #fff;
    border-color: #f5365c; 
    background-color: #f5365c;
}
.btn-danger:not(:disabled):not(.disabled):active,
.btn-danger:not(:disabled):not(.disabled).active,
.show > .btn-danger.dropdown-toggle
{
    color: #fff;
    border-color: #f5365c; 
    background-color: #ec0c38;
}
.btn-danger:not(:disabled):not(.disabled):active:focus,
.btn-danger:not(:disabled):not(.disabled).active:focus,
.show > .btn-danger.dropdown-toggle:focus
{
    box-shadow: none, 0 0 0 0 rgba(245, 54, 92, .5);
}

.btn-light
{
    color: #fff;
    border-color: #adb5bd;
    background-color: #adb5bd;
    box-shadow: 0 4px 6px rgba(50, 50, 93, .11), 0 1px 3px rgba(0, 0, 0, .08);
}
.btn-light:hover
{
    color: #fff;
    border-color: #adb5bd; 
    background-color: #adb5bd;
}
.btn-light:focus,
.btn-light.focus
{
    box-shadow: 0 4px 6px rgba(50, 50, 93, .11), 0 1px 3px rgba(0, 0, 0, .08), 0 0 0 0 rgba(173, 181, 189, .5);
}
.btn-light.disabled,
.btn-light:disabled
{
    color: #fff;
    border-color: #adb5bd; 
    background-color: #adb5bd;
}
.btn-light:not(:disabled):not(.disabled):active,
.btn-light:not(:disabled):not(.disabled).active,
.show > .btn-light.dropdown-toggle
{
    color: #fff;
    border-color: #adb5bd; 
    background-color: #919ca6;
}
.btn-light:not(:disabled):not(.disabled):active:focus,
.btn-light:not(:disabled):not(.disabled).active:focus,
.show > .btn-light.dropdown-toggle:focus
{
    box-shadow: none, 0 0 0 0 rgba(173, 181, 189, .5);
}

.btn-dark
{
    color: #fff;
    border-color: #212529;
    background-color: #212529;
    box-shadow: 0 4px 6px rgba(50, 50, 93, .11), 0 1px 3px rgba(0, 0, 0, .08);
}
.btn-dark:hover
{
    color: #fff;
    border-color: #212529; 
    background-color: #212529;
}
.btn-dark:focus,
.btn-dark.focus
{
    box-shadow: 0 4px 6px rgba(50, 50, 93, .11), 0 1px 3px rgba(0, 0, 0, .08), 0 0 0 0 rgba(33, 37, 41, .5);
}
.btn-dark.disabled,
.btn-dark:disabled
{
    color: #fff;
    border-color: #212529; 
    background-color: #212529;
}
.btn-dark:not(:disabled):not(.disabled):active,
.btn-dark:not(:disabled):not(.disabled).active,
.show > .btn-dark.dropdown-toggle
{
    color: #fff;
    border-color: #212529; 
    background-color: #0a0c0d;
}
.btn-dark:not(:disabled):not(.disabled):active:focus,
.btn-dark:not(:disabled):not(.disabled).active:focus,
.show > .btn-dark.dropdown-toggle:focus
{
    box-shadow: none, 0 0 0 0 rgba(33, 37, 41, .5);
}

.btn-default
{
    color: #fff;
    border-color: #172b4d;
    background-color: #172b4d;
    box-shadow: 0 4px 6px rgba(50, 50, 93, .11), 0 1px 3px rgba(0, 0, 0, .08);
}
.btn-default:hover
{
    color: #fff;
    border-color: #172b4d; 
    background-color: #172b4d;
}
.btn-default:focus,
.btn-default.focus
{
    box-shadow: 0 4px 6px rgba(50, 50, 93, .11), 0 1px 3px rgba(0, 0, 0, .08), 0 0 0 0 rgba(23, 43, 77, .5);
}
.btn-default.disabled,
.btn-default:disabled
{
    color: #fff;
    border-color: #172b4d; 
    background-color: #172b4d;
}
.btn-default:not(:disabled):not(.disabled):active,
.btn-default:not(:disabled):not(.disabled).active,
.show > .btn-default.dropdown-toggle
{
    color: #fff;
    border-color: #172b4d; 
    background-color: #0b1526;
}
.btn-default:not(:disabled):not(.disabled):active:focus,
.btn-default:not(:disabled):not(.disabled).active:focus,
.show > .btn-default.dropdown-toggle:focus
{
    box-shadow: none, 0 0 0 0 rgba(23, 43, 77, .5);
}

.btn-white
{
    color: #212529;
    border-color: #fff;
    background-color: #fff;
    box-shadow: 0 4px 6px rgba(50, 50, 93, .11), 0 1px 3px rgba(0, 0, 0, .08);
}
.btn-white:hover
{
    color: #212529;
    border-color: white; 
    background-color: white;
}
.btn-white:focus,
.btn-white.focus
{
    box-shadow: 0 4px 6px rgba(50, 50, 93, .11), 0 1px 3px rgba(0, 0, 0, .08), 0 0 0 0 rgba(255, 255, 255, .5);
}
.btn-white.disabled,
.btn-white:disabled
{
    color: #212529;
    border-color: #fff; 
    background-color: #fff;
}
.btn-white:not(:disabled):not(.disabled):active,
.btn-white:not(:disabled):not(.disabled).active,
.show > .btn-white.dropdown-toggle
{
    color: #212529;
    border-color: white; 
    background-color: #e6e6e6;
}
.btn-white:not(:disabled):not(.disabled):active:focus,
.btn-white:not(:disabled):not(.disabled).active:focus,
.show > .btn-white.dropdown-toggle:focus
{
    box-shadow: none, 0 0 0 0 rgba(255, 255, 255, .5);
}

.btn-neutral
{
    color: #212529;
    border-color: #fff;
    background-color: #fff;
    box-shadow: 0 4px 6px rgba(50, 50, 93, .11), 0 1px 3px rgba(0, 0, 0, .08);
}
.btn-neutral:hover
{
    color: #212529;
    border-color: white; 
    background-color: white;
}
.btn-neutral:focus,
.btn-neutral.focus
{
    box-shadow: 0 4px 6px rgba(50, 50, 93, .11), 0 1px 3px rgba(0, 0, 0, .08), 0 0 0 0 rgba(255, 255, 255, .5);
}
.btn-neutral.disabled,
.btn-neutral:disabled
{
    color: #212529;
    border-color: #fff; 
    background-color: #fff;
}
.btn-neutral:not(:disabled):not(.disabled):active,
.btn-neutral:not(:disabled):not(.disabled).active,
.show > .btn-neutral.dropdown-toggle
{
    color: #212529;
    border-color: white; 
    background-color: #e6e6e6;
}
.btn-neutral:not(:disabled):not(.disabled):active:focus,
.btn-neutral:not(:disabled):not(.disabled).active:focus,
.show > .btn-neutral.dropdown-toggle:focus
{
    box-shadow: none, 0 0 0 0 rgba(255, 255, 255, .5);
}

.btn-darker
{
    color: #fff;
    border-color: black;
    background-color: black;
    box-shadow: 0 4px 6px rgba(50, 50, 93, .11), 0 1px 3px rgba(0, 0, 0, .08);
}
.btn-darker:hover
{
    color: #fff;
    border-color: black; 
    background-color: black;
}
.btn-darker:focus,
.btn-darker.focus
{
    box-shadow: 0 4px 6px rgba(50, 50, 93, .11), 0 1px 3px rgba(0, 0, 0, .08), 0 0 0 0 rgba(0, 0, 0, .5);
}
.btn-darker.disabled,
.btn-darker:disabled
{
    color: #fff;
    border-color: black; 
    background-color: black;
}
.btn-darker:not(:disabled):not(.disabled):active,
.btn-darker:not(:disabled):not(.disabled).active,
.show > .btn-darker.dropdown-toggle
{
    color: #fff;
    border-color: black; 
    background-color: black;
}
.btn-darker:not(:disabled):not(.disabled):active:focus,
.btn-darker:not(:disabled):not(.disabled).active:focus,
.show > .btn-darker.dropdown-toggle:focus
{
    box-shadow: none, 0 0 0 0 rgba(0, 0, 0, .5);
}

.btn-outline-primary
{
    color: #5e72e4;
    border-color: #5e72e4; 
    background-color: transparent;
    background-image: none;
}
.btn-outline-primary:hover
{
    color: #fff;
    border-color: #5e72e4; 
    background-color: #5e72e4;
}
.btn-outline-primary:focus,
.btn-outline-primary.focus
{
    box-shadow: 0 0 0 0 rgba(94, 114, 228, .5);
}
.btn-outline-primary.disabled,
.btn-outline-primary:disabled
{
    color: #5e72e4;
    background-color: transparent;
}
.btn-outline-primary:not(:disabled):not(.disabled):active,
.btn-outline-primary:not(:disabled):not(.disabled).active,
.show > .btn-outline-primary.dropdown-toggle
{
    color: #fff;
    border-color: #5e72e4; 
    background-color: #5e72e4;
}
.btn-outline-primary:not(:disabled):not(.disabled):active:focus,
.btn-outline-primary:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-primary.dropdown-toggle:focus
{
    box-shadow: 0 0 0 0 rgba(94, 114, 228, .5);
}

.btn-outline-secondary
{
    color: #f7fafc;
    border-color: #f7fafc; 
    background-color: transparent;
    background-image: none;
}
.btn-outline-secondary:hover
{
    color: #212529;
    border-color: #f7fafc; 
    background-color: #f7fafc;
}
.btn-outline-secondary:focus,
.btn-outline-secondary.focus
{
    box-shadow: 0 0 0 0 rgba(247, 250, 252, .5);
}
.btn-outline-secondary.disabled,
.btn-outline-secondary:disabled
{
    color: #f7fafc;
    background-color: transparent;
}
.btn-outline-secondary:not(:disabled):not(.disabled):active,
.btn-outline-secondary:not(:disabled):not(.disabled).active,
.show > .btn-outline-secondary.dropdown-toggle
{
    color: #212529;
    border-color: #f7fafc; 
    background-color: #f7fafc;
}
.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,
.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-secondary.dropdown-toggle:focus
{
    box-shadow: 0 0 0 0 rgba(247, 250, 252, .5);
}

.btn-outline-success
{
    color: #2dce89;
    border-color: #2dce89; 
    background-color: transparent;
    background-image: none;
}
.btn-outline-success:hover
{
    color: #fff;
    border-color: #2dce89; 
    background-color: #2dce89;
}
.btn-outline-success:focus,
.btn-outline-success.focus
{
    box-shadow: 0 0 0 0 rgba(45, 206, 137, .5);
}
.btn-outline-success.disabled,
.btn-outline-success:disabled
{
    color: #2dce89;
    background-color: transparent;
}
.btn-outline-success:not(:disabled):not(.disabled):active,
.btn-outline-success:not(:disabled):not(.disabled).active,
.show > .btn-outline-success.dropdown-toggle
{
    color: #fff;
    border-color: #2dce89; 
    background-color: #2dce89;
}
.btn-outline-success:not(:disabled):not(.disabled):active:focus,
.btn-outline-success:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-success.dropdown-toggle:focus
{
    box-shadow: 0 0 0 0 rgba(45, 206, 137, .5);
}

.btn-outline-info
{
    color: #11cdef;
    border-color: #11cdef; 
    background-color: transparent;
    background-image: none;
}
.btn-outline-info:hover
{
    color: #fff;
    border-color: #11cdef; 
    background-color: #11cdef;
}
.btn-outline-info:focus,
.btn-outline-info.focus
{
    box-shadow: 0 0 0 0 rgba(17, 205, 239, .5);
}
.btn-outline-info.disabled,
.btn-outline-info:disabled
{
    color: #11cdef;
    background-color: transparent;
}
.btn-outline-info:not(:disabled):not(.disabled):active,
.btn-outline-info:not(:disabled):not(.disabled).active,
.show > .btn-outline-info.dropdown-toggle
{
    color: #fff;
    border-color: #11cdef; 
    background-color: #11cdef;
}
.btn-outline-info:not(:disabled):not(.disabled):active:focus,
.btn-outline-info:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-info.dropdown-toggle:focus
{
    box-shadow: 0 0 0 0 rgba(17, 205, 239, .5);
}

.btn-outline-warning
{
    color: #fb6340;
    border-color: #fb6340; 
    background-color: transparent;
    background-image: none;
}
.btn-outline-warning:hover
{
    color: #fff;
    border-color: #fb6340; 
    background-color: #fb6340;
}
.btn-outline-warning:focus,
.btn-outline-warning.focus
{
    box-shadow: 0 0 0 0 rgba(251, 99, 64, .5);
}
.btn-outline-warning.disabled,
.btn-outline-warning:disabled
{
    color: #fb6340;
    background-color: transparent;
}
.btn-outline-warning:not(:disabled):not(.disabled):active,
.btn-outline-warning:not(:disabled):not(.disabled).active,
.show > .btn-outline-warning.dropdown-toggle
{
    color: #fff;
    border-color: #fb6340; 
    background-color: #fb6340;
}
.btn-outline-warning:not(:disabled):not(.disabled):active:focus,
.btn-outline-warning:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-warning.dropdown-toggle:focus
{
    box-shadow: 0 0 0 0 rgba(251, 99, 64, .5);
}

.btn-outline-danger
{
    color: #f5365c;
    border-color: #f5365c; 
    background-color: transparent;
    background-image: none;
}
.btn-outline-danger:hover
{
    color: #fff;
    border-color: #f5365c; 
    background-color: #f5365c;
}
.btn-outline-danger:focus,
.btn-outline-danger.focus
{
    box-shadow: 0 0 0 0 rgba(245, 54, 92, .5);
}
.btn-outline-danger.disabled,
.btn-outline-danger:disabled
{
    color: #f5365c;
    background-color: transparent;
}
.btn-outline-danger:not(:disabled):not(.disabled):active,
.btn-outline-danger:not(:disabled):not(.disabled).active,
.show > .btn-outline-danger.dropdown-toggle
{
    color: #fff;
    border-color: #f5365c; 
    background-color: #f5365c;
}
.btn-outline-danger:not(:disabled):not(.disabled):active:focus,
.btn-outline-danger:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-danger.dropdown-toggle:focus
{
    box-shadow: 0 0 0 0 rgba(245, 54, 92, .5);
}

.btn-outline-light
{
    color: #adb5bd;
    border-color: #adb5bd; 
    background-color: transparent;
    background-image: none;
}
.btn-outline-light:hover
{
    color: #fff;
    border-color: #adb5bd; 
    background-color: #adb5bd;
}
.btn-outline-light:focus,
.btn-outline-light.focus
{
    box-shadow: 0 0 0 0 rgba(173, 181, 189, .5);
}
.btn-outline-light.disabled,
.btn-outline-light:disabled
{
    color: #adb5bd;
    background-color: transparent;
}
.btn-outline-light:not(:disabled):not(.disabled):active,
.btn-outline-light:not(:disabled):not(.disabled).active,
.show > .btn-outline-light.dropdown-toggle
{
    color: #fff;
    border-color: #adb5bd; 
    background-color: #adb5bd;
}
.btn-outline-light:not(:disabled):not(.disabled):active:focus,
.btn-outline-light:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-light.dropdown-toggle:focus
{
    box-shadow: 0 0 0 0 rgba(173, 181, 189, .5);
}

.btn-outline-dark
{
    color: #212529;
    border-color: #212529; 
    background-color: transparent;
    background-image: none;
}
.btn-outline-dark:hover
{
    color: #fff;
    border-color: #212529; 
    background-color: #212529;
}
.btn-outline-dark:focus,
.btn-outline-dark.focus
{
    box-shadow: 0 0 0 0 rgba(33, 37, 41, .5);
}
.btn-outline-dark.disabled,
.btn-outline-dark:disabled
{
    color: #212529;
    background-color: transparent;
}
.btn-outline-dark:not(:disabled):not(.disabled):active,
.btn-outline-dark:not(:disabled):not(.disabled).active,
.show > .btn-outline-dark.dropdown-toggle
{
    color: #fff;
    border-color: #212529; 
    background-color: #212529;
}
.btn-outline-dark:not(:disabled):not(.disabled):active:focus,
.btn-outline-dark:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-dark.dropdown-toggle:focus
{
    box-shadow: 0 0 0 0 rgba(33, 37, 41, .5);
}

.btn-outline-default
{
    color: #172b4d;
    border-color: #172b4d; 
    background-color: transparent;
    background-image: none;
}
.btn-outline-default:hover
{
    color: #fff;
    border-color: #172b4d; 
    background-color: #172b4d;
}
.btn-outline-default:focus,
.btn-outline-default.focus
{
    box-shadow: 0 0 0 0 rgba(23, 43, 77, .5);
}
.btn-outline-default.disabled,
.btn-outline-default:disabled
{
    color: #172b4d;
    background-color: transparent;
}
.btn-outline-default:not(:disabled):not(.disabled):active,
.btn-outline-default:not(:disabled):not(.disabled).active,
.show > .btn-outline-default.dropdown-toggle
{
    color: #fff;
    border-color: #172b4d; 
    background-color: #172b4d;
}
.btn-outline-default:not(:disabled):not(.disabled):active:focus,
.btn-outline-default:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-default.dropdown-toggle:focus
{
    box-shadow: 0 0 0 0 rgba(23, 43, 77, .5);
}

.btn-outline-white
{
    color: #fff;
    border-color: #fff; 
    background-color: transparent;
    background-image: none;
}
.btn-outline-white:hover
{
    color: #212529;
    border-color: #fff; 
    background-color: #fff;
}
.btn-outline-white:focus,
.btn-outline-white.focus
{
    box-shadow: 0 0 0 0 rgba(255, 255, 255, .5);
}
.btn-outline-white.disabled,
.btn-outline-white:disabled
{
    color: #fff;
    background-color: transparent;
}
.btn-outline-white:not(:disabled):not(.disabled):active,
.btn-outline-white:not(:disabled):not(.disabled).active,
.show > .btn-outline-white.dropdown-toggle
{
    color: #212529;
    border-color: #fff; 
    background-color: #fff;
}
.btn-outline-white:not(:disabled):not(.disabled):active:focus,
.btn-outline-white:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-white.dropdown-toggle:focus
{
    box-shadow: 0 0 0 0 rgba(255, 255, 255, .5);
}

.btn-outline-neutral
{
    color: #fff;
    border-color: #fff; 
    background-color: transparent;
    background-image: none;
}
.btn-outline-neutral:hover
{
    color: #212529;
    border-color: #fff; 
    background-color: #fff;
}
.btn-outline-neutral:focus,
.btn-outline-neutral.focus
{
    box-shadow: 0 0 0 0 rgba(255, 255, 255, .5);
}
.btn-outline-neutral.disabled,
.btn-outline-neutral:disabled
{
    color: #fff;
    background-color: transparent;
}
.btn-outline-neutral:not(:disabled):not(.disabled):active,
.btn-outline-neutral:not(:disabled):not(.disabled).active,
.show > .btn-outline-neutral.dropdown-toggle
{
    color: #212529;
    border-color: #fff; 
    background-color: #fff;
}
.btn-outline-neutral:not(:disabled):not(.disabled):active:focus,
.btn-outline-neutral:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-neutral.dropdown-toggle:focus
{
    box-shadow: 0 0 0 0 rgba(255, 255, 255, .5);
}

.btn-outline-darker
{
    color: black;
    border-color: black; 
    background-color: transparent;
    background-image: none;
}
.btn-outline-darker:hover
{
    color: #fff;
    border-color: black; 
    background-color: black;
}
.btn-outline-darker:focus,
.btn-outline-darker.focus
{
    box-shadow: 0 0 0 0 rgba(0, 0, 0, .5);
}
.btn-outline-darker.disabled,
.btn-outline-darker:disabled
{
    color: black;
    background-color: transparent;
}
.btn-outline-darker:not(:disabled):not(.disabled):active,
.btn-outline-darker:not(:disabled):not(.disabled).active,
.show > .btn-outline-darker.dropdown-toggle
{
    color: #fff;
    border-color: black; 
    background-color: black;
}
.btn-outline-darker:not(:disabled):not(.disabled):active:focus,
.btn-outline-darker:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-darker.dropdown-toggle:focus
{
    box-shadow: 0 0 0 0 rgba(0, 0, 0, .5);
}

.btn-link
{
    font-weight: 400;

    color: #5e72e4;
    background-color: transparent;
}
.btn-link:hover
{
    text-decoration: none;

    color: #233dd2;
    border-color: transparent; 
    background-color: transparent;
}
.btn-link:focus,
.btn-link.focus
{
    text-decoration: none;

    border-color: transparent;
    box-shadow: none;
}
.btn-link:disabled,
.btn-link.disabled
{
    pointer-events: none; 

    color: #8898aa;
}

.btn-lg,
.btn-group-lg > .btn
{
    font-size: 1.25rem;
    line-height: 1.5;

    padding: .875rem 1rem;

    border-radius: .4375rem;
}

.btn-sm,
.btn-group-sm > .btn
{
    font-size: .875rem;
    line-height: 1.5;

    padding: .25rem .5rem;

    border-radius: .375rem;
}

.btn-block
{
    display: block;

    width: 100%;
}
.btn-block + .btn-block
{
    margin-top: .5rem;
}

input[type='submit'].btn-block,
input[type='reset'].btn-block,
input[type='button'].btn-block
{
    width: 100%;
}

.fade
{
    transition: opacity .15s linear;
}
@media screen and (prefers-reduced-motion: reduce)
{
    .fade
    {
        transition: none;
    }
}
.fade:not(.show)
{
    opacity: 0;
}

.collapse:not(.show)
{
    display: none;
}

.collapsing
{
    position: relative;

    overflow: hidden;

    height: 0;

    transition: height .35s ease;
}
@media screen and (prefers-reduced-motion: reduce)
{
    .collapsing
    {
        transition: none;
    }
}

.dropup,
.dropright,
.dropdown,
.dropleft
{
    position: relative;
}

.dropdown-toggle::after
{
    display: inline-block;

    width: 0;
    height: 0;
    margin-left: .255em;

    content: '';
    vertical-align: .255em;

    border-top: .3em solid;
    border-right: .3em solid transparent;
    border-bottom: 0;
    border-left: .3em solid transparent;
}

.dropdown-toggle:empty::after
{
    margin-left: 0;
}

.dropdown-menu
{
    font-size: 1rem;

    position: absolute;
    z-index: 1000;
    top: 100%;
    left: 0;

    display: none;
    float: left;

    min-width: 10rem;
    margin: .125rem 0 0;
    padding: .5rem 0;

    list-style: none;

    text-align: left;

    color: #525f7f;
    border: 0 solid rgba(0, 0, 0, .15);
    border-radius: .4375rem;
    background-color: #fff;
    background-clip: padding-box;
    box-shadow: 0 50px 100px rgba(50, 50, 93, .1), 0 15px 35px rgba(50, 50, 93, .15), 0 5px 15px rgba(0, 0, 0, .1);
}

.dropdown-menu-right
{
    right: 0;
    left: auto;
}

.dropup .dropdown-menu
{
    top: auto;
    bottom: 100%;

    margin-top: 0;
    margin-bottom: .125rem;
}

.dropup .dropdown-toggle::after
{
    display: inline-block;

    width: 0;
    height: 0;
    margin-left: .255em;

    content: '';
    vertical-align: .255em;

    border-top: 0;
    border-right: .3em solid transparent;
    border-bottom: .3em solid;
    border-left: .3em solid transparent;
}

.dropup .dropdown-toggle:empty::after
{
    margin-left: 0;
}

.dropright .dropdown-menu
{
    top: 0;
    right: auto;
    left: 100%;

    margin-top: 0;
    margin-left: .125rem;
}

.dropright .dropdown-toggle::after
{
    display: inline-block;

    width: 0;
    height: 0;
    margin-left: .255em;

    content: '';
    vertical-align: .255em;

    border-top: .3em solid transparent;
    border-right: 0;
    border-bottom: .3em solid transparent;
    border-left: .3em solid;
}

.dropright .dropdown-toggle:empty::after
{
    margin-left: 0;
}

.dropright .dropdown-toggle::after
{
    vertical-align: 0;
}

.dropleft .dropdown-menu
{
    top: 0;
    right: 100%;
    left: auto;

    margin-top: 0;
    margin-right: .125rem;
}

.dropleft .dropdown-toggle::after
{
    display: inline-block;

    width: 0;
    height: 0;
    margin-left: .255em;

    content: ''; 
    vertical-align: .255em;
}

.dropleft .dropdown-toggle::after
{
    display: none;
}

.dropleft .dropdown-toggle::before
{
    display: inline-block;

    width: 0;
    height: 0;
    margin-right: .255em;

    content: '';
    vertical-align: .255em;

    border-top: .3em solid transparent;
    border-right: .3em solid;
    border-bottom: .3em solid transparent;
}

.dropleft .dropdown-toggle:empty::after
{
    margin-left: 0;
}

.dropleft .dropdown-toggle::before
{
    vertical-align: 0;
}

.dropdown-menu[x-placement^='top'],
.dropdown-menu[x-placement^='right'],
.dropdown-menu[x-placement^='bottom'],
.dropdown-menu[x-placement^='left']
{
    right: auto;
    bottom: auto;
}

.dropdown-divider
{
    overflow: hidden;

    height: 0;
    margin: .5rem 0;

    border-top: 1px solid #e9ecef;
}

.dropdown-item
{
    font-weight: 400;

    display: block;
    clear: both;

    width: 100%;
    padding: .25rem 1.5rem;

    text-align: inherit;
    white-space: nowrap;

    color: #212529;
    border: 0; 
    background-color: transparent;
}
.dropdown-item:hover,
.dropdown-item:focus
{
    text-decoration: none;

    color: #16181b;
    background-color: #f6f9fc;
}
.dropdown-item.active,
.dropdown-item:active
{
    text-decoration: none;

    color: #fff;
    background-color: #5e72e4;
}
.dropdown-item.disabled,
.dropdown-item:disabled
{
    color: #8898aa;
    background-color: transparent;
}

.dropdown-menu.show
{
    display: block;
}

.dropdown-header
{
    font-size: .875rem;

    display: block;

    margin-bottom: 0;
    padding: .5rem 1.5rem;

    white-space: nowrap; 

    color: #8898aa;
}

.dropdown-item-text
{
    display: block;

    padding: .25rem 1.5rem;

    color: #212529;
}

.btn-group,
.btn-group-vertical
{
    position: relative;

    display: inline-flex;

    vertical-align: middle;
}
.btn-group > .btn,
.btn-group-vertical > .btn
{
    position: relative;

    flex: 0 1 auto;
}
.btn-group > .btn:hover,
.btn-group-vertical > .btn:hover
{
    z-index: 1;
}
.btn-group > .btn:focus,
.btn-group > .btn:active,
.btn-group > .btn.active,
.btn-group-vertical > .btn:focus,
.btn-group-vertical > .btn:active,
.btn-group-vertical > .btn.active
{
    z-index: 1;
}
.btn-group .btn + .btn,
.btn-group .btn + .btn-group,
.btn-group .btn-group + .btn,
.btn-group .btn-group + .btn-group,
.btn-group-vertical .btn + .btn,
.btn-group-vertical .btn + .btn-group,
.btn-group-vertical .btn-group + .btn,
.btn-group-vertical .btn-group + .btn-group
{
    margin-left: -1px;
}

.btn-toolbar
{
    display: flex;

    flex-wrap: wrap;
    justify-content: flex-start;
}
.btn-toolbar .input-group
{
    width: auto;
}

.btn-group > .btn:first-child
{
    margin-left: 0;
}

.btn-group > .btn:not(:last-child):not(.dropdown-toggle),
.btn-group > .btn-group:not(:last-child) > .btn
{
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.btn-group > .btn:not(:first-child),
.btn-group > .btn-group:not(:first-child) > .btn
{
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.dropdown-toggle-split
{
    padding-right: .9375rem;
    padding-left: .9375rem;
}
.dropdown-toggle-split::after,
.dropup .dropdown-toggle-split::after,
.dropright .dropdown-toggle-split::after
{
    margin-left: 0;
}
.dropleft .dropdown-toggle-split::before
{
    margin-right: 0;
}

.btn-sm + .dropdown-toggle-split,
.btn-group-sm > .btn + .dropdown-toggle-split
{
    padding-right: .375rem;
    padding-left: .375rem;
}

.btn-lg + .dropdown-toggle-split,
.btn-group-lg > .btn + .dropdown-toggle-split
{
    padding-right: .75rem;
    padding-left: .75rem;
}

.btn-group.show .dropdown-toggle
{
    box-shadow: none;
}
.btn-group.show .dropdown-toggle.btn-link
{
    box-shadow: none;
}

.btn-group-vertical
{
    flex-direction: column;

    align-items: flex-start;
    justify-content: center;
}
.btn-group-vertical .btn,
.btn-group-vertical .btn-group
{
    width: 100%;
}
.btn-group-vertical > .btn + .btn,
.btn-group-vertical > .btn + .btn-group,
.btn-group-vertical > .btn-group + .btn,
.btn-group-vertical > .btn-group + .btn-group
{
    margin-top: -1px;
    margin-left: 0;
}
.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),
.btn-group-vertical > .btn-group:not(:last-child) > .btn
{
    border-bottom-right-radius: 0;
    border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn:not(:first-child),
.btn-group-vertical > .btn-group:not(:first-child) > .btn
{
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

.btn-group-toggle > .btn,
.btn-group-toggle > .btn-group > .btn
{
    margin-bottom: 0;
}
.btn-group-toggle > .btn input[type='radio'],
.btn-group-toggle > .btn input[type='checkbox'],
.btn-group-toggle > .btn-group > .btn input[type='radio'],
.btn-group-toggle > .btn-group > .btn input[type='checkbox']
{
    position: absolute;

    clip: rect(0, 0, 0, 0);

    pointer-events: none;
}

.input-group
{
    position: relative;

    display: flex;

    width: 100%; 

    flex-wrap: wrap;
    align-items: stretch;
}
.input-group > .form-control,
.input-group > .custom-select,
.input-group > .custom-file
{
    position: relative;

    width: 1%;
    margin-bottom: 0; 

    flex: 1 1 auto;
}
.input-group > .form-control + .form-control,
.input-group > .form-control + .custom-select,
.input-group > .form-control + .custom-file,
.input-group > .custom-select + .form-control,
.input-group > .custom-select + .custom-select,
.input-group > .custom-select + .custom-file,
.input-group > .custom-file + .form-control,
.input-group > .custom-file + .custom-select,
.input-group > .custom-file + .custom-file
{
    margin-left: -1px;
}
.input-group > .form-control:focus,
.input-group > .custom-select:focus,
.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label
{
    z-index: 3;
}
.input-group > .custom-file .custom-file-input:focus
{
    z-index: 4;
}
.input-group > .form-control:not(:last-child),
.input-group > .custom-select:not(:last-child)
{
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}
.input-group > .form-control:not(:first-child),
.input-group > .custom-select:not(:first-child)
{
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}
.input-group > .custom-file
{
    display: flex;

    align-items: center;
}
.input-group > .custom-file:not(:last-child) .custom-file-label,
.input-group > .custom-file:not(:last-child) .custom-file-label::after
{
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}
.input-group > .custom-file:not(:first-child) .custom-file-label
{
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.input-group-prepend,
.input-group-append
{
    display: flex;
}
.input-group-prepend .btn,
.input-group-append .btn
{
    position: relative;
    z-index: 2;
}
.input-group-prepend .btn + .btn,
.input-group-prepend .btn + .input-group-text,
.input-group-prepend .input-group-text + .input-group-text,
.input-group-prepend .input-group-text + .btn,
.input-group-append .btn + .btn,
.input-group-append .btn + .input-group-text,
.input-group-append .input-group-text + .input-group-text,
.input-group-append .input-group-text + .btn
{
    margin-left: -1px;
}

.input-group-prepend
{
    margin-right: -1px;
}

.input-group-append
{
    margin-left: -1px;
}

.input-group-text
{
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;

    display: flex;

    margin-bottom: 0;
    padding: .625rem .75rem;

    text-align: center;
    white-space: nowrap;

    color: #adb5bd;
    border: 1px solid #cad1d7;
    border-radius: .375rem; 
    background-color: #fff;

    align-items: center;
}
.input-group-text input[type='radio'],
.input-group-text input[type='checkbox']
{
    margin-top: 0;
}

.input-group-lg > .form-control,
.input-group-lg > .input-group-prepend > .input-group-text,
.input-group-lg > .input-group-append > .input-group-text,
.input-group-lg > .input-group-prepend > .btn,
.input-group-lg > .input-group-append > .btn
{
    font-size: 1.25rem;
    line-height: 1.5;

    height: calc(3.625rem + 2px);
    padding: .875rem 1rem;

    border-radius: .4375rem;
}

.input-group-sm > .form-control,
.input-group-sm > .input-group-prepend > .input-group-text,
.input-group-sm > .input-group-append > .input-group-text,
.input-group-sm > .input-group-prepend > .btn,
.input-group-sm > .input-group-append > .btn
{
    font-size: .875rem;
    line-height: 1.5;

    height: calc(1.8125rem + 2px);
    padding: .25rem .5rem;

    border-radius: .25rem;
}

.input-group > .input-group-prepend > .btn,
.input-group > .input-group-prepend > .input-group-text,
.input-group > .input-group-append:not(:last-child) > .btn,
.input-group > .input-group-append:not(:last-child) > .input-group-text,
.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),
.input-group > .input-group-append:last-child > .input-group-text:not(:last-child)
{
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.input-group > .input-group-append > .btn,
.input-group > .input-group-append > .input-group-text,
.input-group > .input-group-prepend:not(:first-child) > .btn,
.input-group > .input-group-prepend:not(:first-child) > .input-group-text,
.input-group > .input-group-prepend:first-child > .btn:not(:first-child),
.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child)
{
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.custom-control
{
    position: relative;

    display: block;

    min-height: 1.5rem;
    padding-left: 1.75rem;
}

.custom-control-inline
{
    display: inline-flex;

    margin-right: 1rem;
}

.custom-control-input
{
    position: absolute;
    z-index: -1;

    opacity: 0;
}
.custom-control-input:checked ~ .custom-control-label::before
{
    color: #fff;
    background-color: #5e72e4;
    box-shadow: none;
}
.custom-control-input:focus ~ .custom-control-label::before
{
    box-shadow: none;
}
.custom-control-input:active ~ .custom-control-label::before
{
    color: #fff;
    background-color: #5e72e4;
    box-shadow: none;
}
.custom-control-input:disabled ~ .custom-control-label
{
    color: #8898aa;
}
.custom-control-input:disabled ~ .custom-control-label::before
{
    background-color: #e9ecef;
}

.custom-control-label
{
    position: relative;

    margin-bottom: 0;
}
.custom-control-label::before
{
    position: absolute;
    top: .125rem;
    left: -1.75rem;

    display: block;

    width: 1.25rem;
    height: 1.25rem;

    content: '';
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    pointer-events: none;

    background-color: #fff;
    box-shadow: none;
}
.custom-control-label::after
{
    position: absolute;
    top: .125rem;
    left: -1.75rem;

    display: block;

    width: 1.25rem;
    height: 1.25rem;

    content: '';

    background-repeat: no-repeat;
    background-position: center center;
    background-size: 50% 50%;
}

.custom-checkbox .custom-control-label::before
{
    border-radius: .25rem;
}

.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before
{
    background-color: #5e72e4;
}

.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after
{
    background-image: url('data:image/svg+xml;charset=utf8,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 8 8\'%3E%3Cpath fill=\'%23fff\' d=\'M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z\'/%3E%3C/svg%3E');
}

.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before
{
    background-color: #5e72e4;
    box-shadow: none;
}

.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after
{
    background-image: url('data:image/svg+xml;charset=utf8,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 4 4\'%3E%3Cpath stroke=\'%23fff\' d=\'M0 2h4\'/%3E%3C/svg%3E');
}

.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before
{
    background-color: rgba(94, 114, 228, .5);
}

.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before
{
    background-color: rgba(94, 114, 228, .5);
}

.custom-radio .custom-control-label::before
{
    border-radius: 50%;
}

.custom-radio .custom-control-input:checked ~ .custom-control-label::before
{
    background-color: #5e72e4;
}

.custom-radio .custom-control-input:checked ~ .custom-control-label::after
{
    background-image: url('data:image/svg+xml;charset=utf8,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'-4 -4 8 8\'%3E%3Ccircle r=\'3\' fill=\'%23fff\'/%3E%3C/svg%3E');
}

.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before
{
    background-color: rgba(94, 114, 228, .5);
}

.custom-select
{
    line-height: 1.5;

    display: inline-block;

    width: 100%;
    height: calc(2.75rem + 2px);
    padding: .375rem 1.75rem .375rem .75rem;

    vertical-align: middle;

    color: #8898aa;
    border: 1px solid #cad1d7;
    border-radius: .375rem;
    background: #fff url('data:image/svg+xml;charset=utf8,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 4 5\'%3E%3Cpath fill=\'%2332325d\' d=\'M2 0L0 2h4zm0 5L0 3h4z\'/%3E%3C/svg%3E') no-repeat right .75rem center;
    background-size: 8px 10px;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075);

    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
}
.custom-select:focus
{
    border-color: rgba(50, 151, 211, .25);
    outline: 0;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075), 0 0 0 0 rgba(50, 151, 211, .5);
}
.custom-select:focus::-ms-value
{
    color: #8898aa;
    background-color: #fff;
}
.custom-select[multiple],
.custom-select[size]:not([size='1'])
{
    height: auto;
    padding-right: .75rem;

    background-image: none;
}
.custom-select:disabled
{
    color: #8898aa;
    background-color: #e9ecef;
}
.custom-select::-ms-expand
{
    opacity: 0;
}

.custom-select-sm
{
    font-size: 75%; 

    height: calc(1.8125rem + 2px);
    padding-top: .375rem;
    padding-bottom: .375rem;
}

.custom-select-lg
{
    font-size: 125%; 

    height: calc(3.625rem + 2px);
    padding-top: .375rem;
    padding-bottom: .375rem;
}

.custom-file
{
    position: relative;

    display: inline-block;

    width: 100%;
    height: calc(2.75rem + 2px);
    margin-bottom: 0;
}

.custom-file-input
{
    position: relative;
    z-index: 2;

    width: 100%;
    height: calc(2.75rem + 2px);
    margin: 0;

    opacity: 0;
}
.custom-file-input:focus ~ .custom-file-label
{
    border-color: rgba(50, 151, 211, .25);
    box-shadow: none;
}
.custom-file-input:focus ~ .custom-file-label::after
{
    border-color: rgba(50, 151, 211, .25);
}
.custom-file-input:disabled ~ .custom-file-label
{
    background-color: #e9ecef;
}
.custom-file-input:lang(en) ~ .custom-file-label::after
{
    content: 'Browse';
}

.custom-file-label
{
    line-height: 1.5;

    position: absolute;
    z-index: 1;
    top: 0;
    right: 0;
    left: 0;

    height: calc(2.75rem + 2px);
    padding: .625rem .75rem;

    color: #8898aa;
    border: 1px solid #cad1d7;
    border-radius: .375rem;
    background-color: #fff;
    box-shadow: none;
}
.custom-file-label::after
{
    line-height: 1.5;

    position: absolute;
    z-index: 3;
    top: 0;
    right: 0;
    bottom: 0;

    display: block;

    height: 2.75rem;
    padding: .625rem .75rem;

    content: 'Browse';

    color: #8898aa;
    border-left: 1px solid #cad1d7;
    border-radius: 0 .375rem .375rem 0; 
    background-color: #fff;
}

.custom-range
{
    width: 100%;
    padding-left: 0;

    background-color: transparent;

    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
}
.custom-range:focus
{
    outline: none;
}
.custom-range:focus::-webkit-slider-thumb
{
    box-shadow: 0 0 0 1px #f8f9fe, none;
}
.custom-range:focus::-moz-range-thumb
{
    box-shadow: 0 0 0 1px #f8f9fe, none;
}
.custom-range:focus::-ms-thumb
{
    box-shadow: 0 0 0 1px #f8f9fe, none;
}
.custom-range::-moz-focus-outer
{
    border: 0;
}
.custom-range::-webkit-slider-thumb
{
    width: 1rem;
    height: 1rem;
    margin-top: -.25rem;

    transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;

    border: 0;
    border-radius: 1rem;
    background-color: #5e72e4;
    box-shadow: 0 .1rem .25rem rgba(0, 0, 0, .1);

    -webkit-appearance: none;
            appearance: none;
}
@media screen and (prefers-reduced-motion: reduce)
{
    .custom-range::-webkit-slider-thumb
    {
        transition: none;
    }
}
.custom-range::-webkit-slider-thumb:active
{
    background-color: #f7f8fe;
}
.custom-range::-webkit-slider-runnable-track
{
    width: 100%;
    height: .5rem;

    cursor: pointer;

    color: transparent;
    border-color: transparent;
    border-radius: 1rem;
    background-color: #dee2e6;
    box-shadow: inset 0 .25rem .25rem rgba(0, 0, 0, .1);
}
.custom-range::-moz-range-thumb
{
    width: 1rem;
    height: 1rem;

    transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;

    border: 0;
    border-radius: 1rem;
    background-color: #5e72e4;
    box-shadow: 0 .1rem .25rem rgba(0, 0, 0, .1);

    -moz-appearance: none;
         appearance: none;
}
@media screen and (prefers-reduced-motion: reduce)
{
    .custom-range::-moz-range-thumb
    {
        transition: none;
    }
}
.custom-range::-moz-range-thumb:active
{
    background-color: #f7f8fe;
}
.custom-range::-moz-range-track
{
    width: 100%;
    height: .5rem;

    cursor: pointer;

    color: transparent;
    border-color: transparent;
    border-radius: 1rem;
    background-color: #dee2e6;
    box-shadow: inset 0 .25rem .25rem rgba(0, 0, 0, .1);
}
.custom-range::-ms-thumb
{
    width: 1rem;
    height: 1rem;
    margin-top: 0;
    margin-right: 0;
    margin-left: 0;

    transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;

    border: 0;
    border-radius: 1rem;
    background-color: #5e72e4;
    box-shadow: 0 .1rem .25rem rgba(0, 0, 0, .1);

    appearance: none;
}
@media screen and (prefers-reduced-motion: reduce)
{
    .custom-range::-ms-thumb
    {
        transition: none;
    }
}
.custom-range::-ms-thumb:active
{
    background-color: #f7f8fe;
}
.custom-range::-ms-track
{
    width: 100%;
    height: .5rem;

    cursor: pointer;

    color: transparent;
    border-width: .5rem;
    border-color: transparent;
    background-color: transparent;
    box-shadow: inset 0 .25rem .25rem rgba(0, 0, 0, .1);
}
.custom-range::-ms-fill-lower
{
    border-radius: 1rem; 
    background-color: #dee2e6;
}
.custom-range::-ms-fill-upper
{
    margin-right: 15px;

    border-radius: 1rem; 
    background-color: #dee2e6;
}

.custom-control-label::before,
.custom-file-label,
.custom-select
{
    transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;
}
@media screen and (prefers-reduced-motion: reduce)
{
    .custom-control-label::before,
    .custom-file-label,
    .custom-select
    {
        transition: none;
    }
}

.nav
{
    display: flex;

    margin-bottom: 0;
    padding-left: 0;

    list-style: none; 

    flex-wrap: wrap;
}

.nav-link
{
    display: block;

    padding: .25rem .75rem;
}
.nav-link:hover,
.nav-link:focus
{
    text-decoration: none;
}
.nav-link.disabled
{
    color: #8898aa;
}

.nav-tabs
{
    border-bottom: 1px solid #dee2e6;
}
.nav-tabs .nav-item
{
    margin-bottom: -1px;
}
.nav-tabs .nav-link
{
    border: 1px solid transparent;
    border-top-left-radius: .375rem;
    border-top-right-radius: .375rem;
}
.nav-tabs .nav-link:hover,
.nav-tabs .nav-link:focus
{
    border-color: #e9ecef #e9ecef #dee2e6;
}
.nav-tabs .nav-link.disabled
{
    color: #8898aa;
    border-color: transparent; 
    background-color: transparent;
}
.nav-tabs .nav-link.active,
.nav-tabs .nav-item.show .nav-link
{
    color: #525f7f;
    border-color: #dee2e6 #dee2e6 #f8f9fe; 
    background-color: #f8f9fe;
}
.nav-tabs .dropdown-menu
{
    margin-top: -1px;

    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

.nav-pills .nav-link
{
    border-radius: .375rem;
}

.nav-pills .nav-link.active,
.nav-pills .show > .nav-link
{
    color: #fff;
    background-color: #5e72e4;
}

.nav-fill .nav-item
{
    text-align: center; 

    flex: 1 1 auto;
}

.nav-justified .nav-item
{
    text-align: center; 

    flex-basis: 0;
    flex-grow: 1;
}

.tab-content > .tab-pane
{
    display: none;
}

.tab-content > .active
{
    display: block;
}

.navbar
{
    position: relative;

    display: flex;

    padding: 1rem 1rem; 

    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
}
.navbar > .container,
.navbar > .container-fluid
{
    display: flex;

    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
}

.navbar-brand
{
    font-size: 1.25rem;
    line-height: inherit;

    display: inline-block;

    margin-right: 1rem;
    padding-top: .0625rem;
    padding-bottom: .0625rem;

    white-space: nowrap;
}
.navbar-brand:hover,
.navbar-brand:focus
{
    text-decoration: none;
}

.navbar-nav
{
    display: flex;
    flex-direction: column;

    margin-bottom: 0;
    padding-left: 0;

    list-style: none;
}
.navbar-nav .nav-link
{
    padding-right: 0;
    padding-left: 0;
}
.navbar-nav .dropdown-menu
{
    position: static;

    float: none;
}

.navbar-text
{
    display: inline-block;

    padding-top: .25rem;
    padding-bottom: .25rem;
}

.navbar-collapse
{
    flex-basis: 100%;
    flex-grow: 1;
    align-items: center;
}

.navbar-toggler
{
    font-size: 1.25rem;
    line-height: 1;

    padding: .25rem .75rem;

    border: 1px solid transparent;
    border-radius: .375rem; 
    background-color: transparent;
}
.navbar-toggler:hover,
.navbar-toggler:focus
{
    text-decoration: none;
}
.navbar-toggler:not(:disabled):not(.disabled)
{
    cursor: pointer;
}

.navbar-toggler-icon
{
    display: inline-block;

    width: 1.5em;
    height: 1.5em;

    content: '';
    vertical-align: middle;

    background: no-repeat center center;
    background-size: 100% 100%;
}

@media (max-width: 575.98px)
{
    .navbar-expand-sm > .container,
    .navbar-expand-sm > .container-fluid
    {
        padding-right: 0;
        padding-left: 0;
    }
}

@media (min-width: 576px)
{
    .navbar-expand-sm
    {
        flex-flow: row nowrap;
        justify-content: flex-start;
    }
    .navbar-expand-sm .navbar-nav
    {
        flex-direction: row;
    }
    .navbar-expand-sm .navbar-nav .dropdown-menu
    {
        position: absolute;
    }
    .navbar-expand-sm .navbar-nav .nav-link
    {
        padding-right: 1rem;
        padding-left: 1rem;
    }
    .navbar-expand-sm > .container,
    .navbar-expand-sm > .container-fluid
    {
        flex-wrap: nowrap;
    }
    .navbar-expand-sm .navbar-collapse
    {
        display: flex !important;

        flex-basis: auto;
    }
    .navbar-expand-sm .navbar-toggler
    {
        display: none;
    }
}

@media (max-width: 767.98px)
{
    .navbar-expand-md > .container,
    .navbar-expand-md > .container-fluid
    {
        padding-right: 0;
        padding-left: 0;
    }
}

@media (min-width: 768px)
{
    .navbar-expand-md
    {
        flex-flow: row nowrap;
        justify-content: flex-start;
    }
    .navbar-expand-md .navbar-nav
    {
        flex-direction: row;
    }
    .navbar-expand-md .navbar-nav .dropdown-menu
    {
        position: absolute;
    }
    .navbar-expand-md .navbar-nav .nav-link
    {
        padding-right: 1rem;
        padding-left: 1rem;
    }
    .navbar-expand-md > .container,
    .navbar-expand-md > .container-fluid
    {
        flex-wrap: nowrap;
    }
    .navbar-expand-md .navbar-collapse
    {
        display: flex !important;

        flex-basis: auto;
    }
    .navbar-expand-md .navbar-toggler
    {
        display: none;
    }
}

@media (max-width: 991.98px)
{
    .navbar-expand-lg > .container,
    .navbar-expand-lg > .container-fluid
    {
        padding-right: 0;
        padding-left: 0;
    }
}

@media (min-width: 992px)
{
    .navbar-expand-lg
    {
        flex-flow: row nowrap;
        justify-content: flex-start;
    }
    .navbar-expand-lg .navbar-nav
    {
        flex-direction: row;
    }
    .navbar-expand-lg .navbar-nav .dropdown-menu
    {
        position: absolute;
    }
    .navbar-expand-lg .navbar-nav .nav-link
    {
        padding-right: 1rem;
        padding-left: 1rem;
    }
    .navbar-expand-lg > .container,
    .navbar-expand-lg > .container-fluid
    {
        flex-wrap: nowrap;
    }
    .navbar-expand-lg .navbar-collapse
    {
        display: flex !important;

        flex-basis: auto;
    }
    .navbar-expand-lg .navbar-toggler
    {
        display: none;
    }
}

@media (max-width: 1199.98px)
{
    .navbar-expand-xl > .container,
    .navbar-expand-xl > .container-fluid
    {
        padding-right: 0;
        padding-left: 0;
    }
}

@media (min-width: 1200px)
{
    .navbar-expand-xl
    {
        flex-flow: row nowrap;
        justify-content: flex-start;
    }
    .navbar-expand-xl .navbar-nav
    {
        flex-direction: row;
    }
    .navbar-expand-xl .navbar-nav .dropdown-menu
    {
        position: absolute;
    }
    .navbar-expand-xl .navbar-nav .nav-link
    {
        padding-right: 1rem;
        padding-left: 1rem;
    }
    .navbar-expand-xl > .container,
    .navbar-expand-xl > .container-fluid
    {
        flex-wrap: nowrap;
    }
    .navbar-expand-xl .navbar-collapse
    {
        display: flex !important;

        flex-basis: auto;
    }
    .navbar-expand-xl .navbar-toggler
    {
        display: none;
    }
}

.navbar-expand
{
    flex-flow: row nowrap;
    justify-content: flex-start;
}
.navbar-expand > .container,
.navbar-expand > .container-fluid
{
    padding-right: 0;
    padding-left: 0;
}
.navbar-expand .navbar-nav
{
    flex-direction: row;
}
.navbar-expand .navbar-nav .dropdown-menu
{
    position: absolute;
}
.navbar-expand .navbar-nav .nav-link
{
    padding-right: 1rem;
    padding-left: 1rem;
}
.navbar-expand > .container,
.navbar-expand > .container-fluid
{
    flex-wrap: nowrap;
}
.navbar-expand .navbar-collapse
{
    display: flex !important;

    flex-basis: auto;
}
.navbar-expand .navbar-toggler
{
    display: none;
}

.navbar-light .navbar-brand
{
    color: rgba(0, 0, 0, .9);
}
.navbar-light .navbar-brand:hover,
.navbar-light .navbar-brand:focus
{
    color: rgba(0, 0, 0, .9);
}

.navbar-light .navbar-nav .nav-link
{
    color: rgba(0, 0, 0, .5);
}
.navbar-light .navbar-nav .nav-link:hover,
.navbar-light .navbar-nav .nav-link:focus
{
    color: rgba(0, 0, 0, .7);
}
.navbar-light .navbar-nav .nav-link.disabled
{
    color: rgba(0, 0, 0, .3);
}

.navbar-light .navbar-nav .show > .nav-link,
.navbar-light .navbar-nav .active > .nav-link,
.navbar-light .navbar-nav .nav-link.show,
.navbar-light .navbar-nav .nav-link.active
{
    color: rgba(0, 0, 0, .9);
}

.navbar-light .navbar-toggler
{
    color: rgba(0, 0, 0, .5);
    border-color: transparent;
}

.navbar-light .navbar-toggler-icon
{
    background-image: url('data:image/svg+xml;charset=utf8,%3Csvg viewBox=\'0 0 30 30\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath stroke=\'rgba(0, 0, 0, 0.5)\' stroke-width=\'2\' stroke-linecap=\'round\' stroke-miterlimit=\'10\' d=\'M4 7h22M4 15h22M4 23h22\'/%3E%3C/svg%3E');
}

.navbar-light .navbar-text
{
    color: rgba(0, 0, 0, .5);
}
.navbar-light .navbar-text a
{
    color: rgba(0, 0, 0, .9);
}
.navbar-light .navbar-text a:hover,
.navbar-light .navbar-text a:focus
{
    color: rgba(0, 0, 0, .9);
}

.navbar-dark .navbar-brand
{
    color: rgba(255, 255, 255, .65);
}
.navbar-dark .navbar-brand:hover,
.navbar-dark .navbar-brand:focus
{
    color: rgba(255, 255, 255, .65);
}

.navbar-dark .navbar-nav .nav-link
{
    color: rgba(255, 255, 255, .95);
}
.navbar-dark .navbar-nav .nav-link:hover,
.navbar-dark .navbar-nav .nav-link:focus
{
    color: rgba(255, 255, 255, .65);
}
.navbar-dark .navbar-nav .nav-link.disabled
{
    color: rgba(255, 255, 255, .25);
}

.navbar-dark .navbar-nav .show > .nav-link,
.navbar-dark .navbar-nav .active > .nav-link,
.navbar-dark .navbar-nav .nav-link.show,
.navbar-dark .navbar-nav .nav-link.active
{
    color: rgba(255, 255, 255, .65);
}

.navbar-dark .navbar-toggler
{
    color: rgba(255, 255, 255, .95);
    border-color: transparent;
}

.navbar-dark .navbar-toggler-icon
{
    background-image: url('data:image/svg+xml;charset=utf8,%3Csvg viewBox=\'0 0 30 30\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath stroke=\'rgba(255, 255, 255, 0.95)\' stroke-width=\'2\' stroke-linecap=\'round\' stroke-miterlimit=\'10\' d=\'M4 7h22M4 15h22M4 23h22\'/%3E%3C/svg%3E');
}

.navbar-dark .navbar-text
{
    color: rgba(255, 255, 255, .95);
}
.navbar-dark .navbar-text a
{
    color: rgba(255, 255, 255, .65);
}
.navbar-dark .navbar-text a:hover,
.navbar-dark .navbar-text a:focus
{
    color: rgba(255, 255, 255, .65);
}

.card
{
    position: relative;

    display: flex;
    flex-direction: column;

    min-width: 0;

    word-wrap: break-word;

    border: 1px solid rgba(0, 0, 0, .05);
    border-radius: .375rem; 
    background-color: #fff;
    background-clip: border-box;
}
.card > hr
{
    margin-right: 0;
    margin-left: 0;
}
.card > .list-group:first-child .list-group-item:first-child
{
    border-top-left-radius: .375rem;
    border-top-right-radius: .375rem;
}
.card > .list-group:last-child .list-group-item:last-child
{
    border-bottom-right-radius: .375rem;
    border-bottom-left-radius: .375rem;
}

.card-body
{
    padding: 1.5rem; 

    flex: 1 1 auto;
}

.card-title
{
    margin-bottom: 1.25rem;
}

.card-subtitle
{
    margin-top: -.625rem;
    margin-bottom: 0;
}

.card-text:last-child
{
    margin-bottom: 0;
}

.card-link:hover
{
    text-decoration: none;
}

.card-link + .card-link
{
    margin-left: 1.5rem;
}

.card-header
{
    margin-bottom: 0;
    padding: 1.25rem 1.5rem;

    border-bottom: 1px solid rgba(0, 0, 0, .05); 
    background-color: #fff;
}
.card-header:first-child
{
    border-radius: calc(.375rem - 1px) calc(.375rem - 1px) 0 0;
}
.card-header + .list-group .list-group-item:first-child
{
    border-top: 0;
}

.card-footer
{
    padding: 1.25rem 1.5rem;

    border-top: 1px solid rgba(0, 0, 0, .05); 
    background-color: #fff;
}
.card-footer:last-child
{
    border-radius: 0 0 calc(.375rem - 1px) calc(.375rem - 1px);
}

.card-header-tabs
{
    margin-right: -.75rem;
    margin-bottom: -1.25rem;
    margin-left: -.75rem;

    border-bottom: 0;
}

.card-header-pills
{
    margin-right: -.75rem;
    margin-left: -.75rem;
}

.card-img-overlay
{
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;

    padding: 1.25rem;
}

.card-img
{
    width: 100%;

    border-radius: calc(.375rem - 1px);
}

.card-img-top
{
    width: 100%;

    border-top-left-radius: calc(.375rem - 1px);
    border-top-right-radius: calc(.375rem - 1px);
}

.card-img-bottom
{
    width: 100%;

    border-bottom-right-radius: calc(.375rem - 1px);
    border-bottom-left-radius: calc(.375rem - 1px);
}

.card-deck
{
    display: flex;
    flex-direction: column;
}
.card-deck .card
{
    margin-bottom: 15px;
}
@media (min-width: 576px)
{
    .card-deck
    {
        margin-right: -15px;
        margin-left: -15px; 

        flex-flow: row wrap;
    }
    .card-deck .card
    {
        display: flex;
        flex-direction: column;

        margin-right: 15px;
        margin-bottom: 0;
        margin-left: 15px; 

        flex: 1 0;
    }
}

.card-group
{
    display: flex;
    flex-direction: column;
}
.card-group > .card
{
    margin-bottom: 15px;
}
@media (min-width: 576px)
{
    .card-group
    {
        flex-flow: row wrap;
    }
    .card-group > .card
    {
        margin-bottom: 0; 

        flex: 1 0;
    }
    .card-group > .card + .card
    {
        margin-left: 0;

        border-left: 0;
    }
    .card-group > .card:first-child
    {
        border-top-right-radius: 0;
        border-bottom-right-radius: 0;
    }
    .card-group > .card:first-child .card-img-top,
    .card-group > .card:first-child .card-header
    {
        border-top-right-radius: 0;
    }
    .card-group > .card:first-child .card-img-bottom,
    .card-group > .card:first-child .card-footer
    {
        border-bottom-right-radius: 0;
    }
    .card-group > .card:last-child
    {
        border-top-left-radius: 0;
        border-bottom-left-radius: 0;
    }
    .card-group > .card:last-child .card-img-top,
    .card-group > .card:last-child .card-header
    {
        border-top-left-radius: 0;
    }
    .card-group > .card:last-child .card-img-bottom,
    .card-group > .card:last-child .card-footer
    {
        border-bottom-left-radius: 0;
    }
    .card-group > .card:only-child
    {
        border-radius: .375rem;
    }
    .card-group > .card:only-child .card-img-top,
    .card-group > .card:only-child .card-header
    {
        border-top-left-radius: .375rem;
        border-top-right-radius: .375rem;
    }
    .card-group > .card:only-child .card-img-bottom,
    .card-group > .card:only-child .card-footer
    {
        border-bottom-right-radius: .375rem;
        border-bottom-left-radius: .375rem;
    }
    .card-group > .card:not(:first-child):not(:last-child):not(:only-child)
    {
        border-radius: 0;
    }
    .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-top,
    .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,
    .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-header,
    .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-footer
    {
        border-radius: 0;
    }
}

.card-columns .card
{
    margin-bottom: 1.25rem;
}

@media (min-width: 576px)
{
    .card-columns
    {
        column-count: 3;
        column-gap: 1.25rem;
        orphans: 1;
        widows: 1;
    }
    .card-columns .card
    {
        display: inline-block;

        width: 100%;
    }
}

.accordion .card:not(:first-of-type):not(:last-of-type)
{
    border-bottom: 0;
    border-radius: 0;
}

.accordion .card:not(:first-of-type) .card-header:first-child
{
    border-radius: 0;
}

.accordion .card:first-of-type
{
    border-bottom: 0;
    border-bottom-right-radius: 0;
    border-bottom-left-radius: 0;
}

.accordion .card:last-of-type
{
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

.breadcrumb
{
    display: flex;

    margin-bottom: 1rem;
    padding: .75rem 1rem;

    list-style: none;

    border-radius: .375rem; 
    background-color: #e9ecef;

    flex-wrap: wrap;
}

.breadcrumb-item + .breadcrumb-item
{
    padding-left: .5rem;
}
.breadcrumb-item + .breadcrumb-item::before
{
    display: inline-block;

    padding-right: .5rem;

    content: '/'; 

    color: #8898aa;
}

.breadcrumb-item + .breadcrumb-item:hover::before
{
    text-decoration: underline;
}

.breadcrumb-item + .breadcrumb-item:hover::before
{
    text-decoration: none;
}

.breadcrumb-item.active
{
    color: #8898aa;
}

.pagination
{
    display: flex;

    padding-left: 0;

    list-style: none;

    border-radius: .375rem;
}

.page-link
{
    line-height: 1.25;

    position: relative;

    display: block;

    margin-left: -1px;
    padding: .5rem .75rem;

    color: #8898aa;
    border: 1px solid #dee2e6; 
    background-color: #fff;
}
.page-link:hover
{
    z-index: 2;

    text-decoration: none;

    color: #8898aa;
    border-color: #dee2e6; 
    background-color: #dee2e6;
}
.page-link:focus
{
    z-index: 2;

    outline: 0;
    box-shadow: none;
}
.page-link:not(:disabled):not(.disabled)
{
    cursor: pointer;
}

.page-item:first-child .page-link
{
    margin-left: 0;

    border-top-left-radius: .375rem;
    border-bottom-left-radius: .375rem;
}

.page-item:last-child .page-link
{
    border-top-right-radius: .375rem;
    border-bottom-right-radius: .375rem;
}

.page-item.active .page-link
{
    z-index: 1;

    color: #fff;
    border-color: #5e72e4; 
    background-color: #5e72e4;
}

.page-item.disabled .page-link
{
    cursor: auto;
    pointer-events: none;

    color: #8898aa;
    border-color: #dee2e6; 
    background-color: #fff;
}

.pagination-lg .page-link
{
    font-size: 1.25rem;
    line-height: 1.5; 

    padding: .75rem 1.5rem;
}

.pagination-lg .page-item:first-child .page-link
{
    border-top-left-radius: .4375rem;
    border-bottom-left-radius: .4375rem;
}

.pagination-lg .page-item:last-child .page-link
{
    border-top-right-radius: .4375rem;
    border-bottom-right-radius: .4375rem;
}

.pagination-sm .page-link
{
    font-size: .875rem;
    line-height: 1.5; 

    padding: .25rem .5rem;
}

.pagination-sm .page-item:first-child .page-link
{
    border-top-left-radius: .25rem;
    border-bottom-left-radius: .25rem;
}

.pagination-sm .page-item:last-child .page-link
{
    border-top-right-radius: .25rem;
    border-bottom-right-radius: .25rem;
}

.badge
{
    font-size: 66%;
    font-weight: 600;
    line-height: 1;

    display: inline-block;

    padding: .35rem .375rem;

    text-align: center;
    vertical-align: baseline;
    white-space: nowrap;

    border-radius: .375rem;
}
.badge:empty
{
    display: none;
}

.btn .badge
{
    position: relative;
    top: -1px;
}

.badge-pill
{
    padding-right: .875em;
    padding-left: .875em;

    border-radius: 10rem;
}

.badge-primary
{
    color: #2643e9;
    background-color: rgba(203, 210, 246, .5);
}
.badge-primary[href]:hover,
.badge-primary[href]:focus
{
    text-decoration: none;

    color: #fff;
    background-color: #324cdd;
}

.badge-secondary
{
    color: #cfe3f1;
    background-color: rgba(255, 255, 255, .5);
}
.badge-secondary[href]:hover,
.badge-secondary[href]:focus
{
    text-decoration: none;

    color: #212529;
    background-color: #d2e3ee;
}

.badge-success
{
    color: #1aae6f;
    background-color: rgba(147, 231, 195, .5);
}
.badge-success[href]:hover,
.badge-success[href]:focus
{
    text-decoration: none;

    color: #fff;
    background-color: #24a46d;
}

.badge-info
{
    color: #03acca;
    background-color: rgba(136, 230, 247, .5);
}
.badge-info[href]:hover,
.badge-info[href]:focus
{
    text-decoration: none;

    color: #fff;
    background-color: #0da5c0;
}

.badge-warning
{
    color: #ff3709;
    background-color: rgba(254, 201, 189, .5);
}
.badge-warning[href]:hover,
.badge-warning[href]:focus
{
    text-decoration: none;

    color: #fff;
    background-color: #fa3a0e;
}

.badge-danger
{
    color: #f80031;
    background-color: rgba(251, 175, 190, .5);
}
.badge-danger[href]:hover,
.badge-danger[href]:focus
{
    text-decoration: none;

    color: #fff;
    background-color: #ec0c38;
}

.badge-light
{
    color: #879cb0;
    background-color: rgba(244, 245, 246, .5);
}
.badge-light[href]:hover,
.badge-light[href]:focus
{
    text-decoration: none;

    color: #fff;
    background-color: #919ca6;
}

.badge-dark
{
    color: #090c0e;
    background-color: rgba(90, 101, 112, .5);
}
.badge-dark[href]:hover,
.badge-dark[href]:focus
{
    text-decoration: none;

    color: #fff;
    background-color: #0a0c0d;
}

.badge-default
{
    color: #091428;
    background-color: rgba(52, 98, 175, .5);
}
.badge-default[href]:hover,
.badge-default[href]:focus
{
    text-decoration: none;

    color: #fff;
    background-color: #0b1526;
}

.badge-white
{
    color: #e8e3e3;
    background-color: rgba(255, 255, 255, .5);
}
.badge-white[href]:hover,
.badge-white[href]:focus
{
    text-decoration: none;

    color: #212529;
    background-color: #e6e6e6;
}

.badge-neutral
{
    color: #e8e3e3;
    background-color: rgba(255, 255, 255, .5);
}
.badge-neutral[href]:hover,
.badge-neutral[href]:focus
{
    text-decoration: none;

    color: #212529;
    background-color: #e6e6e6;
}

.badge-darker
{
    color: black;
    background-color: rgba(64, 64, 64, .5);
}
.badge-darker[href]:hover,
.badge-darker[href]:focus
{
    text-decoration: none;

    color: #fff;
    background-color: black;
}

.jumbotron
{
    margin-bottom: 2rem;
    padding: 2rem 1rem;

    border-radius: .4375rem; 
    background-color: #e9ecef;
}
@media (min-width: 576px)
{
    .jumbotron
    {
        padding: 4rem 2rem;
    }
}

.jumbotron-fluid
{
    padding-right: 0;
    padding-left: 0;

    border-radius: 0;
}

.alert
{
    position: relative;

    margin-bottom: 1rem;
    padding: 1rem 1.5rem;

    border: 1px solid transparent;
    border-radius: .375rem;
}

.alert-heading
{
    color: inherit;
}

.alert-link
{
    font-weight: 600;
}

.alert-dismissible
{
    padding-right: 4.5rem;
}
.alert-dismissible .close
{
    position: absolute;
    top: 0;
    right: 0;

    padding: 1rem 1.5rem;

    color: inherit;
}

.alert-primary
{
    color: #fff;
    border-color: #7889e8; 
    background-color: #7889e8;
}
.alert-primary hr
{
    border-top-color: #6276e4;
}
.alert-primary .alert-link
{
    color: #324cdd;
}

.alert-secondary
{
    color: #212529;
    border-color: #f8fbfc; 
    background-color: #f8fbfc;
}
.alert-secondary hr
{
    border-top-color: #e6f1f4;
}
.alert-secondary .alert-link
{
    color: #d2e3ee;
}

.alert-success
{
    color: #fff;
    border-color: #4fd69c; 
    background-color: #4fd69c;
}
.alert-success hr
{
    border-top-color: #3ad190;
}
.alert-success .alert-link
{
    color: #24a46d;
}

.alert-info
{
    color: #fff;
    border-color: #37d5f2; 
    background-color: #37d5f2;
}
.alert-info hr
{
    border-top-color: #1fd0f0;
}
.alert-info .alert-link
{
    color: #0da5c0;
}

.alert-warning
{
    color: #fff;
    border-color: #fc7c5f; 
    background-color: #fc7c5f;
}
.alert-warning hr
{
    border-top-color: #fc6846;
}
.alert-warning .alert-link
{
    color: #fa3a0e;
}

.alert-danger
{
    color: #fff;
    border-color: #f75676; 
    background-color: #f75676;
}
.alert-danger hr
{
    border-top-color: #f63e62;
}
.alert-danger .alert-link
{
    color: #ec0c38;
}

.alert-light
{
    color: #fff;
    border-color: #bac1c8; 
    background-color: #bac1c8;
}
.alert-light hr
{
    border-top-color: #acb4bd;
}
.alert-light .alert-link
{
    color: #919ca6;
}

.alert-dark
{
    color: #fff;
    border-color: #45484b; 
    background-color: #45484b;
}
.alert-dark hr
{
    border-top-color: #393b3e;
}
.alert-dark .alert-link
{
    color: #0a0c0d;
}

.alert-default
{
    color: #fff;
    border-color: #3c4d69; 
    background-color: #3c4d69;
}
.alert-default hr
{
    border-top-color: #334159;
}
.alert-default .alert-link
{
    color: #0b1526;
}

.alert-white
{
    color: #212529;
    border-color: white; 
    background-color: white;
}
.alert-white hr
{
    border-top-color: #f2f2f2;
}
.alert-white .alert-link
{
    color: #e6e6e6;
}

.alert-neutral
{
    color: #212529;
    border-color: white; 
    background-color: white;
}
.alert-neutral hr
{
    border-top-color: #f2f2f2;
}
.alert-neutral .alert-link
{
    color: #e6e6e6;
}

.alert-darker
{
    color: #fff;
    border-color: #292929; 
    background-color: #292929;
}
.alert-darker hr
{
    border-top-color: #1c1c1c;
}
.alert-darker .alert-link
{
    color: black;
}

@keyframes progress-bar-stripes
{
    from
    {
        background-position: 1rem 0;
    }
    to
    {
        background-position: 0 0;
    }
}

.progress
{
    font-size: .75rem;

    display: flex;
    overflow: hidden;

    height: 1rem;

    border-radius: .375rem;
    background-color: #e9ecef;
    box-shadow: inset 0 .1rem .1rem rgba(0, 0, 0, .1);
}

.progress-bar
{
    display: flex;
    flex-direction: column;

    transition: width .6s ease; 
    text-align: center;
    white-space: nowrap;

    color: #fff;
    background-color: #5e72e4;

    justify-content: center;
}
@media screen and (prefers-reduced-motion: reduce)
{
    .progress-bar
    {
        transition: none;
    }
}

.progress-bar-striped
{
    background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
    background-size: 1rem 1rem;
}

.progress-bar-animated
{
    animation: progress-bar-stripes 1s linear infinite;
}

.media
{
    display: flex;

    align-items: flex-start;
}

.media-body
{
    flex: 1 1;
}

.list-group
{
    display: flex;
    flex-direction: column;

    margin-bottom: 0; 
    padding-left: 0;
}

.list-group-item-action
{
    width: 100%;

    text-align: inherit; 

    color: #525f7f;
}
.list-group-item-action:hover,
.list-group-item-action:focus
{
    text-decoration: none;

    color: #525f7f;
    background-color: #f6f9fc;
}
.list-group-item-action:active
{
    color: #525f7f;
    background-color: #e9ecef;
}

.list-group-item
{
    position: relative;

    display: block;

    margin-bottom: -1px;
    padding: 1rem 1rem;

    border: 1px solid #e9ecef; 
    background-color: #fff;
}
.list-group-item:first-child
{
    border-top-left-radius: .375rem;
    border-top-right-radius: .375rem;
}
.list-group-item:last-child
{
    margin-bottom: 0;

    border-bottom-right-radius: .375rem;
    border-bottom-left-radius: .375rem;
}
.list-group-item:hover,
.list-group-item:focus
{
    z-index: 1;

    text-decoration: none;
}
.list-group-item.disabled,
.list-group-item:disabled
{
    color: #8898aa;
    background-color: #fff;
}
.list-group-item.active
{
    z-index: 2;

    color: #fff;
    border-color: #5e72e4; 
    background-color: #5e72e4;
}

.list-group-flush .list-group-item
{
    border-right: 0;
    border-left: 0;
    border-radius: 0;
}

.list-group-flush:first-child .list-group-item:first-child
{
    border-top: 0;
}

.list-group-flush:last-child .list-group-item:last-child
{
    border-bottom: 0;
}

.list-group-item-primary
{
    color: #313b77;
    background-color: #d2d8f7;
}
.list-group-item-primary.list-group-item-action:hover,
.list-group-item-primary.list-group-item-action:focus
{
    color: #313b77;
    background-color: #bcc5f3;
}
.list-group-item-primary.list-group-item-action.active
{
    color: #fff;
    border-color: #313b77; 
    background-color: #313b77;
}

.list-group-item-secondary
{
    color: #808283;
    background-color: #fdfefe;
}
.list-group-item-secondary.list-group-item-action:hover,
.list-group-item-secondary.list-group-item-action:focus
{
    color: #808283;
    background-color: #ecf6f6;
}
.list-group-item-secondary.list-group-item-action.active
{
    color: #fff;
    border-color: #808283; 
    background-color: #808283;
}

.list-group-item-success
{
    color: #176b47;
    background-color: #c4f1de;
}
.list-group-item-success.list-group-item-action:hover,
.list-group-item-success.list-group-item-action:focus
{
    color: #176b47;
    background-color: #afecd2;
}
.list-group-item-success.list-group-item-action.active
{
    color: #fff;
    border-color: #176b47; 
    background-color: #176b47;
}

.list-group-item-info
{
    color: #096b7c;
    background-color: #bcf1fb;
}
.list-group-item-info.list-group-item-action:hover,
.list-group-item-info.list-group-item-action:focus
{
    color: #096b7c;
    background-color: #a4ecfa;
}
.list-group-item-info.list-group-item-action.active
{
    color: #fff;
    border-color: #096b7c; 
    background-color: #096b7c;
}

.list-group-item-warning
{
    color: #833321;
    background-color: #fed3ca;
}
.list-group-item-warning.list-group-item-action:hover,
.list-group-item-warning.list-group-item-action:focus
{
    color: #833321;
    background-color: #febeb1;
}
.list-group-item-warning.list-group-item-action.active
{
    color: #fff;
    border-color: #833321; 
    background-color: #833321;
}

.list-group-item-danger
{
    color: #7f1c30;
    background-color: #fcc7d1;
}
.list-group-item-danger.list-group-item-action:hover,
.list-group-item-danger.list-group-item-action:focus
{
    color: #7f1c30;
    background-color: #fbafbd;
}
.list-group-item-danger.list-group-item-action.active
{
    color: #fff;
    border-color: #7f1c30; 
    background-color: #7f1c30;
}

.list-group-item-light
{
    color: #5a5e62;
    background-color: #e8eaed;
}
.list-group-item-light.list-group-item-action:hover,
.list-group-item-light.list-group-item-action:focus
{
    color: #5a5e62;
    background-color: #dadde2;
}
.list-group-item-light.list-group-item-action.active
{
    color: #fff;
    border-color: #5a5e62; 
    background-color: #5a5e62;
}

.list-group-item-dark
{
    color: #111315;
    background-color: #c1c2c3;
}
.list-group-item-dark.list-group-item-action:hover,
.list-group-item-dark.list-group-item-action:focus
{
    color: #111315;
    background-color: #b4b5b6;
}
.list-group-item-dark.list-group-item-action.active
{
    color: #fff;
    border-color: #111315; 
    background-color: #111315;
}

.list-group-item-default
{
    color: #0c1628;
    background-color: #bec4cd;
}
.list-group-item-default.list-group-item-action:hover,
.list-group-item-default.list-group-item-action:focus
{
    color: #0c1628;
    background-color: #b0b7c2;
}
.list-group-item-default.list-group-item-action.active
{
    color: #fff;
    border-color: #0c1628; 
    background-color: #0c1628;
}

.list-group-item-white
{
    color: #858585;
    background-color: white;
}
.list-group-item-white.list-group-item-action:hover,
.list-group-item-white.list-group-item-action:focus
{
    color: #858585;
    background-color: #f2f2f2;
}
.list-group-item-white.list-group-item-action.active
{
    color: #fff;
    border-color: #858585; 
    background-color: #858585;
}

.list-group-item-neutral
{
    color: #858585;
    background-color: white;
}
.list-group-item-neutral.list-group-item-action:hover,
.list-group-item-neutral.list-group-item-action:focus
{
    color: #858585;
    background-color: #f2f2f2;
}
.list-group-item-neutral.list-group-item-action.active
{
    color: #fff;
    border-color: #858585; 
    background-color: #858585;
}

.list-group-item-darker
{
    color: black;
    background-color: #b8b8b8;
}
.list-group-item-darker.list-group-item-action:hover,
.list-group-item-darker.list-group-item-action:focus
{
    color: black;
    background-color: #ababab;
}
.list-group-item-darker.list-group-item-action.active
{
    color: #fff;
    border-color: black; 
    background-color: black;
}

.close
{
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1;

    float: right;

    opacity: .5; 
    color: rgba(0, 0, 0, .6);
    text-shadow: none;
}
.close:not(:disabled):not(.disabled)
{
    cursor: pointer;
}
.close:not(:disabled):not(.disabled):hover,
.close:not(:disabled):not(.disabled):focus
{
    text-decoration: none;

    opacity: .75; 
    color: rgba(0, 0, 0, .6);
}

button.close
{
    padding: 0;

    border: 0;
    background-color: transparent;

    -webkit-appearance: none;
}

.modal-open
{
    overflow: hidden;
}
.modal-open .modal
{
    overflow-x: hidden;
    overflow-y: auto;
}

.modal
{
    position: fixed;
    z-index: 1050;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;

    display: none;
    overflow: hidden;

    outline: 0;
}

.modal-dialog
{
    position: relative;

    width: auto;
    margin: .5rem;

    pointer-events: none;
}
.modal.fade .modal-dialog
{
    transition: transform .3s ease-out;
    transform: translate(0, -25%);
}
@media screen and (prefers-reduced-motion: reduce)
{
    .modal.fade .modal-dialog
    {
        transition: none;
    }
}
.modal.show .modal-dialog
{
    transform: translate(0, 0);
}

.modal-dialog-centered
{
    display: flex;

    min-height: calc(100% - (.5rem * 2)); 

    align-items: center;
}
.modal-dialog-centered::before
{
    display: block;

    height: calc(100vh - (.5rem * 2));

    content: '';
}

.modal-content
{
    position: relative;

    display: flex;
    flex-direction: column;

    width: 100%;

    pointer-events: auto;

    border: 0 solid rgba(0, 0, 0, .2);
    border-radius: .4375rem;
    outline: 0; 
    background-color: #fff;
    background-clip: padding-box;
    box-shadow: 0 15px 35px rgba(50, 50, 93, .2), 0 5px 15px rgba(0, 0, 0, .17);
}

.modal-backdrop
{
    position: fixed;
    z-index: 1040;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;

    background-color: #000;
}
.modal-backdrop.fade
{
    opacity: 0;
}
.modal-backdrop.show
{
    opacity: .16;
}

.modal-header
{
    display: flex;

    padding: 1.25rem;

    border-bottom: 0 solid #e9ecef;
    border-top-left-radius: .4375rem;
    border-top-right-radius: .4375rem; 

    align-items: flex-start;
    justify-content: space-between;
}
.modal-header .close
{
    margin: -1.25rem -1.25rem -1.25rem auto; 
    padding: 1.25rem;
}

.modal-title
{
    line-height: 1.1; 

    margin-bottom: 0;
}

.modal-body
{
    position: relative;

    padding: 1.5rem; 

    flex: 1 1 auto;
}

.modal-footer
{
    display: flex;

    padding: 1.5rem;

    border-top: 0 solid #e9ecef; 

    align-items: center;
    justify-content: flex-end;
}
.modal-footer > :not(:first-child)
{
    margin-left: .25rem;
}
.modal-footer > :not(:last-child)
{
    margin-right: .25rem;
}

.modal-scrollbar-measure
{
    position: absolute;
    top: -9999px;

    overflow: scroll; 

    width: 50px;
    height: 50px;
}

@media (min-width: 576px)
{
    .modal-dialog
    {
        max-width: 500px;
        margin: 1.75rem auto;
    }
    .modal-dialog-centered
    {
        min-height: calc(100% - (1.75rem * 2));
    }
    .modal-dialog-centered::before
    {
        height: calc(100vh - (1.75rem * 2));
    }
    .modal-content
    {
        box-shadow: 0 15px 35px rgba(50, 50, 93, .2), 0 5px 15px rgba(0, 0, 0, .17);
    }
    .modal-sm
    {
        max-width: 380px;
    }
}

@media (min-width: 992px)
{
    .modal-lg
    {
        max-width: 800px;
    }
}

.tooltip
{
    font-family: Open Sans, sans-serif;
    font-size: .875rem;
    font-weight: 400;
    font-style: normal;
    line-height: 1.5;

    position: absolute;
    z-index: 1070;

    display: block;

    margin: 0;

    text-align: left;
    text-align: start;
    white-space: normal;
    text-decoration: none;
    letter-spacing: normal;
    word-spacing: normal;
    text-transform: none;
    word-wrap: break-word;
    word-break: normal;

    opacity: 0; 
    text-shadow: none;

    line-break: auto;
}
.tooltip.show
{
    opacity: .9;
}
.tooltip .arrow
{
    position: absolute;

    display: block;

    width: .8rem;
    height: .4rem;
}
.tooltip .arrow::before
{
    position: absolute;

    content: '';

    border-style: solid; 
    border-color: transparent;
}

.bs-tooltip-top,
.bs-tooltip-auto[x-placement^='top']
{
    padding: .4rem 0;
}
.bs-tooltip-top .arrow,
.bs-tooltip-auto[x-placement^='top'] .arrow
{
    bottom: 0;
}
.bs-tooltip-top .arrow::before,
.bs-tooltip-auto[x-placement^='top'] .arrow::before
{
    top: 0;

    border-width: .4rem .4rem 0;
    border-top-color: #000;
}

.bs-tooltip-right,
.bs-tooltip-auto[x-placement^='right']
{
    padding: 0 .4rem;
}
.bs-tooltip-right .arrow,
.bs-tooltip-auto[x-placement^='right'] .arrow
{
    left: 0;

    width: .4rem;
    height: .8rem;
}
.bs-tooltip-right .arrow::before,
.bs-tooltip-auto[x-placement^='right'] .arrow::before
{
    right: 0;

    border-width: .4rem .4rem .4rem 0;
    border-right-color: #000;
}

.bs-tooltip-bottom,
.bs-tooltip-auto[x-placement^='bottom']
{
    padding: .4rem 0;
}
.bs-tooltip-bottom .arrow,
.bs-tooltip-auto[x-placement^='bottom'] .arrow
{
    top: 0;
}
.bs-tooltip-bottom .arrow::before,
.bs-tooltip-auto[x-placement^='bottom'] .arrow::before
{
    bottom: 0;

    border-width: 0 .4rem .4rem;
    border-bottom-color: #000;
}

.bs-tooltip-left,
.bs-tooltip-auto[x-placement^='left']
{
    padding: 0 .4rem;
}
.bs-tooltip-left .arrow,
.bs-tooltip-auto[x-placement^='left'] .arrow
{
    right: 0;

    width: .4rem;
    height: .8rem;
}
.bs-tooltip-left .arrow::before,
.bs-tooltip-auto[x-placement^='left'] .arrow::before
{
    left: 0;

    border-width: .4rem 0 .4rem .4rem;
    border-left-color: #000;
}

.tooltip-inner
{
    max-width: 200px;
    padding: .25rem .5rem;

    text-align: center;

    color: #fff;
    border-radius: .375rem; 
    background-color: #000;
}

.popover
{
    font-family: Open Sans, sans-serif;
    font-size: .875rem;
    font-weight: 400;
    font-style: normal;
    line-height: 1.5;

    position: absolute;
    z-index: 1060;
    top: 0;
    left: 0;

    display: block;

    max-width: 276px;

    text-align: left;
    text-align: start;
    white-space: normal;
    text-decoration: none;
    letter-spacing: normal;
    word-spacing: normal;
    text-transform: none;
    word-wrap: break-word;
    word-break: normal;

    border: 1px solid rgba(0, 0, 0, .05);
    border-radius: .4375rem;
    background-color: #fff;
    background-clip: padding-box;
    box-shadow: 0 .5rem 2rem 0 rgba(0, 0, 0, .2); 
    text-shadow: none;

    line-break: auto;
}
.popover .arrow
{
    position: absolute;

    display: block;

    width: 1.5rem;
    height: .75rem;
    margin: 0 .4375rem;
}
.popover .arrow::before,
.popover .arrow::after
{
    position: absolute;

    display: block;

    content: '';

    border-style: solid; 
    border-color: transparent;
}

.bs-popover-top,
.bs-popover-auto[x-placement^='top']
{
    margin-bottom: .75rem;
}
.bs-popover-top .arrow,
.bs-popover-auto[x-placement^='top'] .arrow
{
    bottom: calc((.75rem + 1px) * -1);
}
.bs-popover-top .arrow::before,
.bs-popover-auto[x-placement^='top'] .arrow::before,
.bs-popover-top .arrow::after,
.bs-popover-auto[x-placement^='top'] .arrow::after
{
    border-width: .75rem .75rem 0;
}
.bs-popover-top .arrow::before,
.bs-popover-auto[x-placement^='top'] .arrow::before
{
    bottom: 0;

    border-top-color: transparent;
}

.bs-popover-top .arrow::after,
.bs-popover-auto[x-placement^='top'] .arrow::after
{
    bottom: 1px;

    border-top-color: #fff;
}

.bs-popover-right,
.bs-popover-auto[x-placement^='right']
{
    margin-left: .75rem;
}
.bs-popover-right .arrow,
.bs-popover-auto[x-placement^='right'] .arrow
{
    left: calc((.75rem + 1px) * -1);

    width: .75rem;
    height: 1.5rem;
    margin: .4375rem 0;
}
.bs-popover-right .arrow::before,
.bs-popover-auto[x-placement^='right'] .arrow::before,
.bs-popover-right .arrow::after,
.bs-popover-auto[x-placement^='right'] .arrow::after
{
    border-width: .75rem .75rem .75rem 0;
}
.bs-popover-right .arrow::before,
.bs-popover-auto[x-placement^='right'] .arrow::before
{
    left: 0;

    border-right-color: transparent;
}

.bs-popover-right .arrow::after,
.bs-popover-auto[x-placement^='right'] .arrow::after
{
    left: 1px;

    border-right-color: #fff;
}

.bs-popover-bottom,
.bs-popover-auto[x-placement^='bottom']
{
    margin-top: .75rem;
}
.bs-popover-bottom .arrow,
.bs-popover-auto[x-placement^='bottom'] .arrow
{
    top: calc((.75rem + 1px) * -1);
}
.bs-popover-bottom .arrow::before,
.bs-popover-auto[x-placement^='bottom'] .arrow::before,
.bs-popover-bottom .arrow::after,
.bs-popover-auto[x-placement^='bottom'] .arrow::after
{
    border-width: 0 .75rem .75rem .75rem;
}
.bs-popover-bottom .arrow::before,
.bs-popover-auto[x-placement^='bottom'] .arrow::before
{
    top: 0;

    border-bottom-color: transparent;
}

.bs-popover-bottom .arrow::after,
.bs-popover-auto[x-placement^='bottom'] .arrow::after
{
    top: 1px;

    border-bottom-color: #fff;
}
.bs-popover-bottom .popover-header::before,
.bs-popover-auto[x-placement^='bottom'] .popover-header::before
{
    position: absolute;
    top: 0;
    left: 50%;

    display: block;

    width: 1.5rem;
    margin-left: -.75rem;

    content: '';

    border-bottom: 1px solid #fff;
}

.bs-popover-left,
.bs-popover-auto[x-placement^='left']
{
    margin-right: .75rem;
}
.bs-popover-left .arrow,
.bs-popover-auto[x-placement^='left'] .arrow
{
    right: calc((.75rem + 1px) * -1);

    width: .75rem;
    height: 1.5rem;
    margin: .4375rem 0;
}
.bs-popover-left .arrow::before,
.bs-popover-auto[x-placement^='left'] .arrow::before,
.bs-popover-left .arrow::after,
.bs-popover-auto[x-placement^='left'] .arrow::after
{
    border-width: .75rem 0 .75rem .75rem;
}
.bs-popover-left .arrow::before,
.bs-popover-auto[x-placement^='left'] .arrow::before
{
    right: 0;

    border-left-color: transparent;
}

.bs-popover-left .arrow::after,
.bs-popover-auto[x-placement^='left'] .arrow::after
{
    right: 1px;

    border-left-color: #fff;
}

.popover-header
{
    font-size: 1rem;

    margin-bottom: 0;
    padding: .5rem .95rem;

    color: #32325d;
    border-bottom: 1px solid #f2f2f2;
    border-top-left-radius: calc(.4375rem - 1px);
    border-top-right-radius: calc(.4375rem - 1px); 
    background-color: #fff;
}
.popover-header:empty
{
    display: none;
}

.popover-body
{
    padding: .5rem .95rem;

    color: #525f7f;
}

.carousel
{
    position: relative;
}

.carousel-inner
{
    position: relative;

    overflow: hidden; 

    width: 100%;
}

.carousel-item
{
    position: relative;

    display: none;

    width: 100%;

    align-items: center;
    -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
    perspective: 1000px;
}

.carousel-item.active,
.carousel-item-next,
.carousel-item-prev
{
    display: block;

    transition: transform .6s ease;
}
@media screen and (prefers-reduced-motion: reduce)
{
    .carousel-item.active,
    .carousel-item-next,
    .carousel-item-prev
    {
        transition: none;
    }
}

.carousel-item-next,
.carousel-item-prev
{
    position: absolute;
    top: 0;
}

.carousel-item-next.carousel-item-left,
.carousel-item-prev.carousel-item-right
{
    transform: translateX(0);
}
@supports (transform-style: preserve-3d)
{
    .carousel-item-next.carousel-item-left,
    .carousel-item-prev.carousel-item-right
    {
        transform: translate3d(0, 0, 0);
    }
}

.carousel-item-next,
.active.carousel-item-right
{
    transform: translateX(100%);
}
@supports (transform-style: preserve-3d)
{
    .carousel-item-next,
    .active.carousel-item-right
    {
        transform: translate3d(100%, 0, 0);
    }
}

.carousel-item-prev,
.active.carousel-item-left
{
    transform: translateX(-100%);
}
@supports (transform-style: preserve-3d)
{
    .carousel-item-prev,
    .active.carousel-item-left
    {
        transform: translate3d(-100%, 0, 0);
    }
}

.carousel-fade .carousel-item
{
    transition-duration: .6s;
    transition-property: opacity; 

    opacity: 0;
}

.carousel-fade .carousel-item.active,
.carousel-fade .carousel-item-next.carousel-item-left,
.carousel-fade .carousel-item-prev.carousel-item-right
{
    opacity: 1;
}

.carousel-fade .active.carousel-item-left,
.carousel-fade .active.carousel-item-right
{
    opacity: 0;
}

.carousel-fade .carousel-item-next,
.carousel-fade .carousel-item-prev,
.carousel-fade .carousel-item.active,
.carousel-fade .active.carousel-item-left,
.carousel-fade .active.carousel-item-prev
{
    transform: translateX(0);
}
@supports (transform-style: preserve-3d)
{
    .carousel-fade .carousel-item-next,
    .carousel-fade .carousel-item-prev,
    .carousel-fade .carousel-item.active,
    .carousel-fade .active.carousel-item-left,
    .carousel-fade .active.carousel-item-prev
    {
        transform: translate3d(0, 0, 0);
    }
}

.carousel-control-prev,
.carousel-control-next
{
    position: absolute;
    top: 0;
    bottom: 0;

    display: flex;

    width: 15%;

    text-align: center;

    opacity: .5; 
    color: #fff;

    align-items: center;
    justify-content: center;
}
.carousel-control-prev:hover,
.carousel-control-prev:focus,
.carousel-control-next:hover,
.carousel-control-next:focus
{
    text-decoration: none;

    opacity: .9; 
    color: #fff;
    outline: 0;
}

.carousel-control-prev
{
    left: 0;
}

.carousel-control-next
{
    right: 0;
}

.carousel-control-prev-icon,
.carousel-control-next-icon
{
    display: inline-block;

    width: 20px;
    height: 20px;

    background: transparent no-repeat center center;
    background-size: 100% 100%;
}

.carousel-control-prev-icon
{
    background-image: url('data:image/svg+xml;charset=utf8,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'%23fff\' viewBox=\'0 0 8 8\'%3E%3Cpath d=\'M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z\'/%3E%3C/svg%3E');
}

.carousel-control-next-icon
{
    background-image: url('data:image/svg+xml;charset=utf8,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'%23fff\' viewBox=\'0 0 8 8\'%3E%3Cpath d=\'M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z\'/%3E%3C/svg%3E');
}

.carousel-indicators
{
    position: absolute;
    z-index: 15;
    right: 0;
    bottom: 10px;
    left: 0;

    display: flex;

    margin-right: 15%;
    margin-left: 15%;
    padding-left: 0;

    list-style: none; 

    justify-content: center;
}
.carousel-indicators li
{
    position: relative;

    width: 30px;
    height: 3px;
    margin-right: 3px;
    margin-left: 3px;

    cursor: pointer;
    text-indent: -999px;

    background-color: rgba(255, 255, 255, .5); 

    flex: 0 1 auto;
}
.carousel-indicators li::before
{
    position: absolute;
    top: -10px;
    left: 0;

    display: inline-block;

    width: 100%;
    height: 10px;

    content: '';
}
.carousel-indicators li::after
{
    position: absolute;
    bottom: -10px;
    left: 0;

    display: inline-block;

    width: 100%;
    height: 10px;

    content: '';
}
.carousel-indicators .active
{
    background-color: #fff;
}

.carousel-caption
{
    position: absolute;
    z-index: 10;
    right: 15%;
    bottom: 20px;
    left: 15%;

    padding-top: 20px;
    padding-bottom: 20px;

    text-align: center; 

    color: #fff;
}

.align-baseline
{
    vertical-align: baseline !important;
}

.align-top
{
    vertical-align: top !important;
}

.align-middle
{
    vertical-align: middle !important;
}

.align-bottom
{
    vertical-align: bottom !important;
}

.align-text-bottom
{
    vertical-align: text-bottom !important;
}

.align-text-top
{
    vertical-align: text-top !important;
}

.bg-primary
{
    background-color: #5e72e4 !important;
}

a.bg-primary:hover,
a.bg-primary:focus,
button.bg-primary:hover,
button.bg-primary:focus
{
    background-color: #324cdd !important;
}

.bg-secondary
{
    background-color: #f7fafc !important;
}

a.bg-secondary:hover,
a.bg-secondary:focus,
button.bg-secondary:hover,
button.bg-secondary:focus
{
    background-color: #d2e3ee !important;
}

.bg-success
{
    background-color: #2dce89 !important;
}

a.bg-success:hover,
a.bg-success:focus,
button.bg-success:hover,
button.bg-success:focus
{
    background-color: #24a46d !important;
}

.bg-info
{
    background-color: #11cdef !important;
}

a.bg-info:hover,
a.bg-info:focus,
button.bg-info:hover,
button.bg-info:focus
{
    background-color: #0da5c0 !important;
}

.bg-warning
{
    background-color: #fb6340 !important;
}

a.bg-warning:hover,
a.bg-warning:focus,
button.bg-warning:hover,
button.bg-warning:focus
{
    background-color: #fa3a0e !important;
}

.bg-danger
{
    background-color: #f5365c !important;
}

a.bg-danger:hover,
a.bg-danger:focus,
button.bg-danger:hover,
button.bg-danger:focus
{
    background-color: #ec0c38 !important;
}

.bg-light
{
    background-color: #adb5bd !important;
}

a.bg-light:hover,
a.bg-light:focus,
button.bg-light:hover,
button.bg-light:focus
{
    background-color: #919ca6 !important;
}

.bg-dark
{
    background-color: #212529 !important;
}

a.bg-dark:hover,
a.bg-dark:focus,
button.bg-dark:hover,
button.bg-dark:focus
{
    background-color: #0a0c0d !important;
}

.bg-default
{
    background-color: #172b4d !important;
}

a.bg-default:hover,
a.bg-default:focus,
button.bg-default:hover,
button.bg-default:focus
{
    background-color: #0b1526 !important;
}

.bg-white
{
    background-color: #fff !important;
}

a.bg-white:hover,
a.bg-white:focus,
button.bg-white:hover,
button.bg-white:focus
{
    background-color: #e6e6e6 !important;
}

.bg-neutral
{
    background-color: #fff !important;
}

a.bg-neutral:hover,
a.bg-neutral:focus,
button.bg-neutral:hover,
button.bg-neutral:focus
{
    background-color: #e6e6e6 !important;
}

.bg-darker
{
    background-color: black !important;
}

a.bg-darker:hover,
a.bg-darker:focus,
button.bg-darker:hover,
button.bg-darker:focus
{
    background-color: black !important;
}

.bg-white
{
    background-color: #fff !important;
}

.bg-transparent
{
    background-color: transparent !important;
}

.border
{
    border: 1px solid #e9ecef !important;
}

.border-top
{
    border-top: 1px solid #e9ecef !important;
}

.border-right
{
    border-right: 1px solid #e9ecef !important;
}

.border-bottom
{
    border-bottom: 1px solid #e9ecef !important;
}

.border-left
{
    border-left: 1px solid #e9ecef !important;
}

.border-0
{
    border: 0 !important;
}

.border-top-0
{
    border-top: 0 !important;
}

.border-right-0
{
    border-right: 0 !important;
}

.border-bottom-0
{
    border-bottom: 0 !important;
}

.border-left-0
{
    border-left: 0 !important;
}

.border-primary
{
    border-color: #5e72e4 !important;
}

.border-secondary
{
    border-color: #f7fafc !important;
}

.border-success
{
    border-color: #2dce89 !important;
}

.border-info
{
    border-color: #11cdef !important;
}

.border-warning
{
    border-color: #fb6340 !important;
}

.border-danger
{
    border-color: #f5365c !important;
}

.border-light
{
    border-color: #adb5bd !important;
}

.border-dark
{
    border-color: #212529 !important;
}

.border-default
{
    border-color: #172b4d !important;
}

.border-white
{
    border-color: #fff !important;
}

.border-neutral
{
    border-color: #fff !important;
}

.border-darker
{
    border-color: black !important;
}

.border-white
{
    border-color: #fff !important;
}

.rounded
{
    border-radius: .375rem !important;
}

.rounded-top
{
    border-top-left-radius: .375rem !important;
    border-top-right-radius: .375rem !important;
}

.rounded-right
{
    border-top-right-radius: .375rem !important;
    border-bottom-right-radius: .375rem !important;
}

.rounded-bottom
{
    border-bottom-right-radius: .375rem !important;
    border-bottom-left-radius: .375rem !important;
}

.rounded-left
{
    border-top-left-radius: .375rem !important;
    border-bottom-left-radius: .375rem !important;
}

.rounded-circle
{
    border-radius: 50% !important;
}

.rounded-0
{
    border-radius: 0 !important;
}

.clearfix::after
{
    display: block;
    clear: both;

    content: '';
}

.d-none
{
    display: none !important;
}

.d-inline
{
    display: inline !important;
}

.d-inline-block
{
    display: inline-block !important;
}

.d-block
{
    display: block !important;
}

.d-table
{
    display: table !important;
}

.d-table-row
{
    display: table-row !important;
}

.d-table-cell
{
    display: table-cell !important;
}

.d-flex
{
    display: flex !important;
}

.d-inline-flex
{
    display: inline-flex !important;
}

@media (min-width: 576px)
{
    .d-sm-none
    {
        display: none !important;
    }
    .d-sm-inline
    {
        display: inline !important;
    }
    .d-sm-inline-block
    {
        display: inline-block !important;
    }
    .d-sm-block
    {
        display: block !important;
    }
    .d-sm-table
    {
        display: table !important;
    }
    .d-sm-table-row
    {
        display: table-row !important;
    }
    .d-sm-table-cell
    {
        display: table-cell !important;
    }
    .d-sm-flex
    {
        display: flex !important;
    }
    .d-sm-inline-flex
    {
        display: inline-flex !important;
    }
}

@media (min-width: 768px)
{
    .d-md-none
    {
        display: none !important;
    }
    .d-md-inline
    {
        display: inline !important;
    }
    .d-md-inline-block
    {
        display: inline-block !important;
    }
    .d-md-block
    {
        display: block !important;
    }
    .d-md-table
    {
        display: table !important;
    }
    .d-md-table-row
    {
        display: table-row !important;
    }
    .d-md-table-cell
    {
        display: table-cell !important;
    }
    .d-md-flex
    {
        display: flex !important;
    }
    .d-md-inline-flex
    {
        display: inline-flex !important;
    }
}

@media (min-width: 992px)
{
    .d-lg-none
    {
        display: none !important;
    }
    .d-lg-inline
    {
        display: inline !important;
    }
    .d-lg-inline-block
    {
        display: inline-block !important;
    }
    .d-lg-block
    {
        display: block !important;
    }
    .d-lg-table
    {
        display: table !important;
    }
    .d-lg-table-row
    {
        display: table-row !important;
    }
    .d-lg-table-cell
    {
        display: table-cell !important;
    }
    .d-lg-flex
    {
        display: flex !important;
    }
    .d-lg-inline-flex
    {
        display: inline-flex !important;
    }
}

@media (min-width: 1200px)
{
    .d-xl-none
    {
        display: none !important;
    }
    .d-xl-inline
    {
        display: inline !important;
    }
    .d-xl-inline-block
    {
        display: inline-block !important;
    }
    .d-xl-block
    {
        display: block !important;
    }
    .d-xl-table
    {
        display: table !important;
    }
    .d-xl-table-row
    {
        display: table-row !important;
    }
    .d-xl-table-cell
    {
        display: table-cell !important;
    }
    .d-xl-flex
    {
        display: flex !important;
    }
    .d-xl-inline-flex
    {
        display: inline-flex !important;
    }
}

@media print
{
    .d-print-none
    {
        display: none !important;
    }
    .d-print-inline
    {
        display: inline !important;
    }
    .d-print-inline-block
    {
        display: inline-block !important;
    }
    .d-print-block
    {
        display: block !important;
    }
    .d-print-table
    {
        display: table !important;
    }
    .d-print-table-row
    {
        display: table-row !important;
    }
    .d-print-table-cell
    {
        display: table-cell !important;
    }
    .d-print-flex
    {
        display: flex !important;
    }
    .d-print-inline-flex
    {
        display: inline-flex !important;
    }
}

.embed-responsive
{
    position: relative;

    display: block;
    overflow: hidden; 

    width: 100%;
    padding: 0;
}
.embed-responsive::before
{
    display: block;

    content: '';
}
.embed-responsive .embed-responsive-item,
.embed-responsive iframe,
.embed-responsive embed,
.embed-responsive object,
.embed-responsive video
{
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;

    width: 100%;
    height: 100%;

    border: 0;
}

.embed-responsive-21by9::before
{
    padding-top: 42.85714%;
}

.embed-responsive-16by9::before
{
    padding-top: 56.25%;
}

.embed-responsive-4by3::before
{
    padding-top: 75%;
}

.embed-responsive-1by1::before
{
    padding-top: 100%;
}

.flex-row
{
    flex-direction: row !important;
}

.flex-column
{
    flex-direction: column !important;
}

.flex-row-reverse
{
    flex-direction: row-reverse !important;
}

.flex-column-reverse
{
    flex-direction: column-reverse !important;
}

.flex-wrap
{
    flex-wrap: wrap !important;
}

.flex-nowrap
{
    flex-wrap: nowrap !important;
}

.flex-wrap-reverse
{
    flex-wrap: wrap-reverse !important;
}

.flex-fill
{
    flex: 1 1 auto !important;
}

.flex-grow-0
{
    flex-grow: 0 !important;
}

.flex-grow-1
{
    flex-grow: 1 !important;
}

.flex-shrink-0
{
    flex-shrink: 0 !important;
}

.flex-shrink-1
{
    flex-shrink: 1 !important;
}

.justify-content-start
{
    justify-content: flex-start !important;
}

.justify-content-end
{
    justify-content: flex-end !important;
}

.justify-content-center
{
    justify-content: center !important;
}

.justify-content-between
{
    justify-content: space-between !important;
}

.justify-content-around
{
    justify-content: space-around !important;
}

.align-items-start
{
    align-items: flex-start !important;
}

.align-items-end
{
    align-items: flex-end !important;
}

.align-items-center
{
    align-items: center !important;
}

.align-items-baseline
{
    align-items: baseline !important;
}

.align-items-stretch
{
    align-items: stretch !important;
}

.align-content-start
{
    align-content: flex-start !important;
}

.align-content-end
{
    align-content: flex-end !important;
}

.align-content-center
{
    align-content: center !important;
}

.align-content-between
{
    align-content: space-between !important;
}

.align-content-around
{
    align-content: space-around !important;
}

.align-content-stretch
{
    align-content: stretch !important;
}

.align-self-auto
{
    align-self: auto !important;
}

.align-self-start
{
    align-self: flex-start !important;
}

.align-self-end
{
    align-self: flex-end !important;
}

.align-self-center
{
    align-self: center !important;
}

.align-self-baseline
{
    align-self: baseline !important;
}

.align-self-stretch
{
    align-self: stretch !important;
}

@media (min-width: 576px)
{
    .flex-sm-row
    {
        flex-direction: row !important;
    }
    .flex-sm-column
    {
        flex-direction: column !important;
    }
    .flex-sm-row-reverse
    {
        flex-direction: row-reverse !important;
    }
    .flex-sm-column-reverse
    {
        flex-direction: column-reverse !important;
    }
    .flex-sm-wrap
    {
        flex-wrap: wrap !important;
    }
    .flex-sm-nowrap
    {
        flex-wrap: nowrap !important;
    }
    .flex-sm-wrap-reverse
    {
        flex-wrap: wrap-reverse !important;
    }
    .flex-sm-fill
    {
        flex: 1 1 auto !important;
    }
    .flex-sm-grow-0
    {
        flex-grow: 0 !important;
    }
    .flex-sm-grow-1
    {
        flex-grow: 1 !important;
    }
    .flex-sm-shrink-0
    {
        flex-shrink: 0 !important;
    }
    .flex-sm-shrink-1
    {
        flex-shrink: 1 !important;
    }
    .justify-content-sm-start
    {
        justify-content: flex-start !important;
    }
    .justify-content-sm-end
    {
        justify-content: flex-end !important;
    }
    .justify-content-sm-center
    {
        justify-content: center !important;
    }
    .justify-content-sm-between
    {
        justify-content: space-between !important;
    }
    .justify-content-sm-around
    {
        justify-content: space-around !important;
    }
    .align-items-sm-start
    {
        align-items: flex-start !important;
    }
    .align-items-sm-end
    {
        align-items: flex-end !important;
    }
    .align-items-sm-center
    {
        align-items: center !important;
    }
    .align-items-sm-baseline
    {
        align-items: baseline !important;
    }
    .align-items-sm-stretch
    {
        align-items: stretch !important;
    }
    .align-content-sm-start
    {
        align-content: flex-start !important;
    }
    .align-content-sm-end
    {
        align-content: flex-end !important;
    }
    .align-content-sm-center
    {
        align-content: center !important;
    }
    .align-content-sm-between
    {
        align-content: space-between !important;
    }
    .align-content-sm-around
    {
        align-content: space-around !important;
    }
    .align-content-sm-stretch
    {
        align-content: stretch !important;
    }
    .align-self-sm-auto
    {
        align-self: auto !important;
    }
    .align-self-sm-start
    {
        align-self: flex-start !important;
    }
    .align-self-sm-end
    {
        align-self: flex-end !important;
    }
    .align-self-sm-center
    {
        align-self: center !important;
    }
    .align-self-sm-baseline
    {
        align-self: baseline !important;
    }
    .align-self-sm-stretch
    {
        align-self: stretch !important;
    }
}

@media (min-width: 768px)
{
    .flex-md-row
    {
        flex-direction: row !important;
    }
    .flex-md-column
    {
        flex-direction: column !important;
    }
    .flex-md-row-reverse
    {
        flex-direction: row-reverse !important;
    }
    .flex-md-column-reverse
    {
        flex-direction: column-reverse !important;
    }
    .flex-md-wrap
    {
        flex-wrap: wrap !important;
    }
    .flex-md-nowrap
    {
        flex-wrap: nowrap !important;
    }
    .flex-md-wrap-reverse
    {
        flex-wrap: wrap-reverse !important;
    }
    .flex-md-fill
    {
        flex: 1 1 auto !important;
    }
    .flex-md-grow-0
    {
        flex-grow: 0 !important;
    }
    .flex-md-grow-1
    {
        flex-grow: 1 !important;
    }
    .flex-md-shrink-0
    {
        flex-shrink: 0 !important;
    }
    .flex-md-shrink-1
    {
        flex-shrink: 1 !important;
    }
    .justify-content-md-start
    {
        justify-content: flex-start !important;
    }
    .justify-content-md-end
    {
        justify-content: flex-end !important;
    }
    .justify-content-md-center
    {
        justify-content: center !important;
    }
    .justify-content-md-between
    {
        justify-content: space-between !important;
    }
    .justify-content-md-around
    {
        justify-content: space-around !important;
    }
    .align-items-md-start
    {
        align-items: flex-start !important;
    }
    .align-items-md-end
    {
        align-items: flex-end !important;
    }
    .align-items-md-center
    {
        align-items: center !important;
    }
    .align-items-md-baseline
    {
        align-items: baseline !important;
    }
    .align-items-md-stretch
    {
        align-items: stretch !important;
    }
    .align-content-md-start
    {
        align-content: flex-start !important;
    }
    .align-content-md-end
    {
        align-content: flex-end !important;
    }
    .align-content-md-center
    {
        align-content: center !important;
    }
    .align-content-md-between
    {
        align-content: space-between !important;
    }
    .align-content-md-around
    {
        align-content: space-around !important;
    }
    .align-content-md-stretch
    {
        align-content: stretch !important;
    }
    .align-self-md-auto
    {
        align-self: auto !important;
    }
    .align-self-md-start
    {
        align-self: flex-start !important;
    }
    .align-self-md-end
    {
        align-self: flex-end !important;
    }
    .align-self-md-center
    {
        align-self: center !important;
    }
    .align-self-md-baseline
    {
        align-self: baseline !important;
    }
    .align-self-md-stretch
    {
        align-self: stretch !important;
    }
}

@media (min-width: 992px)
{
    .flex-lg-row
    {
        flex-direction: row !important;
    }
    .flex-lg-column
    {
        flex-direction: column !important;
    }
    .flex-lg-row-reverse
    {
        flex-direction: row-reverse !important;
    }
    .flex-lg-column-reverse
    {
        flex-direction: column-reverse !important;
    }
    .flex-lg-wrap
    {
        flex-wrap: wrap !important;
    }
    .flex-lg-nowrap
    {
        flex-wrap: nowrap !important;
    }
    .flex-lg-wrap-reverse
    {
        flex-wrap: wrap-reverse !important;
    }
    .flex-lg-fill
    {
        flex: 1 1 auto !important;
    }
    .flex-lg-grow-0
    {
        flex-grow: 0 !important;
    }
    .flex-lg-grow-1
    {
        flex-grow: 1 !important;
    }
    .flex-lg-shrink-0
    {
        flex-shrink: 0 !important;
    }
    .flex-lg-shrink-1
    {
        flex-shrink: 1 !important;
    }
    .justify-content-lg-start
    {
        justify-content: flex-start !important;
    }
    .justify-content-lg-end
    {
        justify-content: flex-end !important;
    }
    .justify-content-lg-center
    {
        justify-content: center !important;
    }
    .justify-content-lg-between
    {
        justify-content: space-between !important;
    }
    .justify-content-lg-around
    {
        justify-content: space-around !important;
    }
    .align-items-lg-start
    {
        align-items: flex-start !important;
    }
    .align-items-lg-end
    {
        align-items: flex-end !important;
    }
    .align-items-lg-center
    {
        align-items: center !important;
    }
    .align-items-lg-baseline
    {
        align-items: baseline !important;
    }
    .align-items-lg-stretch
    {
        align-items: stretch !important;
    }
    .align-content-lg-start
    {
        align-content: flex-start !important;
    }
    .align-content-lg-end
    {
        align-content: flex-end !important;
    }
    .align-content-lg-center
    {
        align-content: center !important;
    }
    .align-content-lg-between
    {
        align-content: space-between !important;
    }
    .align-content-lg-around
    {
        align-content: space-around !important;
    }
    .align-content-lg-stretch
    {
        align-content: stretch !important;
    }
    .align-self-lg-auto
    {
        align-self: auto !important;
    }
    .align-self-lg-start
    {
        align-self: flex-start !important;
    }
    .align-self-lg-end
    {
        align-self: flex-end !important;
    }
    .align-self-lg-center
    {
        align-self: center !important;
    }
    .align-self-lg-baseline
    {
        align-self: baseline !important;
    }
    .align-self-lg-stretch
    {
        align-self: stretch !important;
    }
}

@media (min-width: 1200px)
{
    .flex-xl-row
    {
        flex-direction: row !important;
    }
    .flex-xl-column
    {
        flex-direction: column !important;
    }
    .flex-xl-row-reverse
    {
        flex-direction: row-reverse !important;
    }
    .flex-xl-column-reverse
    {
        flex-direction: column-reverse !important;
    }
    .flex-xl-wrap
    {
        flex-wrap: wrap !important;
    }
    .flex-xl-nowrap
    {
        flex-wrap: nowrap !important;
    }
    .flex-xl-wrap-reverse
    {
        flex-wrap: wrap-reverse !important;
    }
    .flex-xl-fill
    {
        flex: 1 1 auto !important;
    }
    .flex-xl-grow-0
    {
        flex-grow: 0 !important;
    }
    .flex-xl-grow-1
    {
        flex-grow: 1 !important;
    }
    .flex-xl-shrink-0
    {
        flex-shrink: 0 !important;
    }
    .flex-xl-shrink-1
    {
        flex-shrink: 1 !important;
    }
    .justify-content-xl-start
    {
        justify-content: flex-start !important;
    }
    .justify-content-xl-end
    {
        justify-content: flex-end !important;
    }
    .justify-content-xl-center
    {
        justify-content: center !important;
    }
    .justify-content-xl-between
    {
        justify-content: space-between !important;
    }
    .justify-content-xl-around
    {
        justify-content: space-around !important;
    }
    .align-items-xl-start
    {
        align-items: flex-start !important;
    }
    .align-items-xl-end
    {
        align-items: flex-end !important;
    }
    .align-items-xl-center
    {
        align-items: center !important;
    }
    .align-items-xl-baseline
    {
        align-items: baseline !important;
    }
    .align-items-xl-stretch
    {
        align-items: stretch !important;
    }
    .align-content-xl-start
    {
        align-content: flex-start !important;
    }
    .align-content-xl-end
    {
        align-content: flex-end !important;
    }
    .align-content-xl-center
    {
        align-content: center !important;
    }
    .align-content-xl-between
    {
        align-content: space-between !important;
    }
    .align-content-xl-around
    {
        align-content: space-around !important;
    }
    .align-content-xl-stretch
    {
        align-content: stretch !important;
    }
    .align-self-xl-auto
    {
        align-self: auto !important;
    }
    .align-self-xl-start
    {
        align-self: flex-start !important;
    }
    .align-self-xl-end
    {
        align-self: flex-end !important;
    }
    .align-self-xl-center
    {
        align-self: center !important;
    }
    .align-self-xl-baseline
    {
        align-self: baseline !important;
    }
    .align-self-xl-stretch
    {
        align-self: stretch !important;
    }
}

.float-left
{
    float: left !important;
}

.float-right
{
    float: right !important;
}

.float-none
{
    float: none !important;
}

@media (min-width: 576px)
{
    .float-sm-left
    {
        float: left !important;
    }
    .float-sm-right
    {
        float: right !important;
    }
    .float-sm-none
    {
        float: none !important;
    }
}

@media (min-width: 768px)
{
    .float-md-left
    {
        float: left !important;
    }
    .float-md-right
    {
        float: right !important;
    }
    .float-md-none
    {
        float: none !important;
    }
}

@media (min-width: 992px)
{
    .float-lg-left
    {
        float: left !important;
    }
    .float-lg-right
    {
        float: right !important;
    }
    .float-lg-none
    {
        float: none !important;
    }
}

@media (min-width: 1200px)
{
    .float-xl-left
    {
        float: left !important;
    }
    .float-xl-right
    {
        float: right !important;
    }
    .float-xl-none
    {
        float: none !important;
    }
}

.position-static
{
    position: static !important;
}

.position-relative
{
    position: relative !important;
}

.position-absolute
{
    position: absolute !important;
}

.position-fixed
{
    position: fixed !important;
}

.position-sticky
{
    position: -webkit-sticky !important;
    position:         sticky !important;
}

.fixed-top
{
    position: fixed;
    z-index: 1030; 
    top: 0;
    right: 0;
    left: 0;
}

.fixed-bottom
{
    position: fixed;
    z-index: 1030; 
    right: 0;
    bottom: 0;
    left: 0;
}

@supports ((position: -webkit-sticky) or (position: sticky))
{
    .sticky-top
    {
        position: -webkit-sticky;
        position:         sticky;
        z-index: 1020; 
        top: 0;
    }
}

.sr-only
{
    position: absolute;

    overflow: hidden;
    clip: rect(0, 0, 0, 0);

    width: 1px;
    height: 1px;
    padding: 0;

    white-space: nowrap;

    border: 0;
}

.sr-only-focusable:active,
.sr-only-focusable:focus
{
    position: static;

    overflow: visible;
    clip: auto;

    width: auto;
    height: auto;

    white-space: normal;
}

.shadow-sm
{
    box-shadow: 0 0 .5rem rgba(136, 152, 170, .075) !important;
}

.shadow,
.card-profile-image img
{
    box-shadow: 0 0 2rem 0 rgba(136, 152, 170, .15) !important;
}

.shadow-lg
{
    box-shadow: 0 0 3rem rgba(136, 152, 170, .175) !important;
}

.shadow-none
{
    box-shadow: none !important;
}

.w-25
{
    width: 25% !important;
}

.w-50
{
    width: 50% !important;
}

.w-75
{
    width: 75% !important;
}

.w-100
{
    width: 100% !important;
}

.w-auto
{
    width: auto !important;
}

.h-25
{
    height: 25% !important;
}

.h-50
{
    height: 50% !important;
}

.h-75
{
    height: 75% !important;
}

.h-100
{
    height: 100% !important;
}

.h-auto
{
    height: auto !important;
}

.mw-100
{
    max-width: 100% !important;
}

.mh-100
{
    max-height: 100% !important;
}

.m-0
{
    margin: 0 !important;
}

.mt-0,
.my-0
{
    margin-top: 0 !important;
}

.mr-0,
.mx-0
{
    margin-right: 0 !important;
}

.mb-0,
.my-0
{
    margin-bottom: 0 !important;
}

.ml-0,
.mx-0
{
    margin-left: 0 !important;
}

.m-1
{
    margin: .25rem !important;
}

.mt-1,
.my-1
{
    margin-top: .25rem !important;
}

.mr-1,
.mx-1
{
    margin-right: .25rem !important;
}

.mb-1,
.my-1
{
    margin-bottom: .25rem !important;
}

.ml-1,
.mx-1
{
    margin-left: .25rem !important;
}

.m-2
{
    margin: .5rem !important;
}

.mt-2,
.my-2
{
    margin-top: .5rem !important;
}

.mr-2,
.mx-2
{
    margin-right: .5rem !important;
}

.mb-2,
.my-2
{
    margin-bottom: .5rem !important;
}

.ml-2,
.mx-2
{
    margin-left: .5rem !important;
}

.m-3
{
    margin: 1rem !important;
}

.mt-3,
.my-3
{
    margin-top: 1rem !important;
}

.mr-3,
.mx-3
{
    margin-right: 1rem !important;
}

.mb-3,
.my-3
{
    margin-bottom: 1rem !important;
}

.ml-3,
.mx-3
{
    margin-left: 1rem !important;
}

.m-4
{
    margin: 1.5rem !important;
}

.mt-4,
.my-4
{
    margin-top: 1.5rem !important;
}

.mr-4,
.mx-4
{
    margin-right: 1.5rem !important;
}

.mb-4,
.my-4
{
    margin-bottom: 1.5rem !important;
}

.ml-4,
.mx-4
{
    margin-left: 1.5rem !important;
}

.m-5
{
    margin: 3rem !important;
}

.mt-5,
.my-5
{
    margin-top: 3rem !important;
}

.mr-5,
.mx-5
{
    margin-right: 3rem !important;
}

.mb-5,
.my-5
{
    margin-bottom: 3rem !important;
}

.ml-5,
.mx-5
{
    margin-left: 3rem !important;
}

.m--9
{
    margin: -10rem !important;
}

.mt--9,
.my--9
{
    margin-top: -10rem !important;
}

.mr--9,
.mx--9
{
    margin-right: -10rem !important;
}

.mb--9,
.my--9
{
    margin-bottom: -10rem !important;
}

.ml--9,
.mx--9
{
    margin-left: -10rem !important;
}

.m--8
{
    margin: -8rem !important;
}

.mt--8,
.my--8
{
    margin-top: -8rem !important;
}

.mr--8,
.mx--8
{
    margin-right: -8rem !important;
}

.mb--8,
.my--8
{
    margin-bottom: -8rem !important;
}

.ml--8,
.mx--8
{
    margin-left: -8rem !important;
}

.m--7
{
    margin: -6rem !important;
}

.mt--7,
.my--7
{
    margin-top: -6rem !important;
}

.mr--7,
.mx--7
{
    margin-right: -6rem !important;
}

.mb--7,
.my--7
{
    margin-bottom: -6rem !important;
}

.ml--7,
.mx--7
{
    margin-left: -6rem !important;
}

.m--6
{
    margin: -4.5rem !important;
}

.mt--6,
.my--6
{
    margin-top: -4.5rem !important;
}

.mr--6,
.mx--6
{
    margin-right: -4.5rem !important;
}

.mb--6,
.my--6
{
    margin-bottom: -4.5rem !important;
}

.ml--6,
.mx--6
{
    margin-left: -4.5rem !important;
}

.m--5
{
    margin: -3rem !important;
}

.mt--5,
.my--5
{
    margin-top: -3rem !important;
}

.mr--5,
.mx--5
{
    margin-right: -3rem !important;
}

.mb--5,
.my--5
{
    margin-bottom: -3rem !important;
}

.ml--5,
.mx--5
{
    margin-left: -3rem !important;
}

.m--4
{
    margin: -1.5rem !important;
}

.mt--4,
.my--4
{
    margin-top: -1.5rem !important;
}

.mr--4,
.mx--4
{
    margin-right: -1.5rem !important;
}

.mb--4,
.my--4
{
    margin-bottom: -1.5rem !important;
}

.ml--4,
.mx--4
{
    margin-left: -1.5rem !important;
}

.m--3
{
    margin: -1rem !important;
}

.mt--3,
.my--3
{
    margin-top: -1rem !important;
}

.mr--3,
.mx--3
{
    margin-right: -1rem !important;
}

.mb--3,
.my--3
{
    margin-bottom: -1rem !important;
}

.ml--3,
.mx--3
{
    margin-left: -1rem !important;
}

.m--2
{
    margin: -.5rem !important;
}

.mt--2,
.my--2
{
    margin-top: -.5rem !important;
}

.mr--2,
.mx--2
{
    margin-right: -.5rem !important;
}

.mb--2,
.my--2
{
    margin-bottom: -.5rem !important;
}

.ml--2,
.mx--2
{
    margin-left: -.5rem !important;
}

.m--1
{
    margin: -.25rem !important;
}

.mt--1,
.my--1
{
    margin-top: -.25rem !important;
}

.mr--1,
.mx--1
{
    margin-right: -.25rem !important;
}

.mb--1,
.my--1
{
    margin-bottom: -.25rem !important;
}

.ml--1,
.mx--1
{
    margin-left: -.25rem !important;
}

.m-6
{
    margin: 4.5rem !important;
}

.mt-6,
.my-6
{
    margin-top: 4.5rem !important;
}

.mr-6,
.mx-6
{
    margin-right: 4.5rem !important;
}

.mb-6,
.my-6
{
    margin-bottom: 4.5rem !important;
}

.ml-6,
.mx-6
{
    margin-left: 4.5rem !important;
}

.m-7
{
    margin: 6rem !important;
}

.mt-7,
.my-7
{
    margin-top: 6rem !important;
}

.mr-7,
.mx-7
{
    margin-right: 6rem !important;
}

.mb-7,
.my-7
{
    margin-bottom: 6rem !important;
}

.ml-7,
.mx-7
{
    margin-left: 6rem !important;
}

.m-8
{
    margin: 8rem !important;
}

.mt-8,
.my-8
{
    margin-top: 8rem !important;
}

.mr-8,
.mx-8
{
    margin-right: 8rem !important;
}

.mb-8,
.my-8
{
    margin-bottom: 8rem !important;
}

.ml-8,
.mx-8
{
    margin-left: 8rem !important;
}

.m-9
{
    margin: 10rem !important;
}

.mt-9,
.my-9
{
    margin-top: 10rem !important;
}

.mr-9,
.mx-9
{
    margin-right: 10rem !important;
}

.mb-9,
.my-9
{
    margin-bottom: 10rem !important;
}

.ml-9,
.mx-9
{
    margin-left: 10rem !important;
}

.p-0
{
    padding: 0 !important;
}

.pt-0,
.py-0
{
    padding-top: 0 !important;
}

.pr-0,
.px-0
{
    padding-right: 0 !important;
}

.pb-0,
.py-0
{
    padding-bottom: 0 !important;
}

.pl-0,
.px-0
{
    padding-left: 0 !important;
}

.p-1
{
    padding: .25rem !important;
}

.pt-1,
.py-1
{
    padding-top: .25rem !important;
}

.pr-1,
.px-1
{
    padding-right: .25rem !important;
}

.pb-1,
.py-1
{
    padding-bottom: .25rem !important;
}

.pl-1,
.px-1
{
    padding-left: .25rem !important;
}

.p-2
{
    padding: .5rem !important;
}

.pt-2,
.py-2
{
    padding-top: .5rem !important;
}

.pr-2,
.px-2
{
    padding-right: .5rem !important;
}

.pb-2,
.py-2
{
    padding-bottom: .5rem !important;
}

.pl-2,
.px-2
{
    padding-left: .5rem !important;
}

.p-3
{
    padding: 1rem !important;
}

.pt-3,
.py-3
{
    padding-top: 1rem !important;
}

.pr-3,
.px-3
{
    padding-right: 1rem !important;
}

.pb-3,
.py-3
{
    padding-bottom: 1rem !important;
}

.pl-3,
.px-3
{
    padding-left: 1rem !important;
}

.p-4
{
    padding: 1.5rem !important;
}

.pt-4,
.py-4
{
    padding-top: 1.5rem !important;
}

.pr-4,
.px-4
{
    padding-right: 1.5rem !important;
}

.pb-4,
.py-4
{
    padding-bottom: 1.5rem !important;
}

.pl-4,
.px-4
{
    padding-left: 1.5rem !important;
}

.p-5
{
    padding: 3rem !important;
}

.pt-5,
.py-5
{
    padding-top: 3rem !important;
}

.pr-5,
.px-5
{
    padding-right: 3rem !important;
}

.pb-5,
.py-5
{
    padding-bottom: 3rem !important;
}

.pl-5,
.px-5
{
    padding-left: 3rem !important;
}

.p--9
{
    padding: -10rem !important;
}

.pt--9,
.py--9
{
    padding-top: -10rem !important;
}

.pr--9,
.px--9
{
    padding-right: -10rem !important;
}

.pb--9,
.py--9
{
    padding-bottom: -10rem !important;
}

.pl--9,
.px--9
{
    padding-left: -10rem !important;
}

.p--8
{
    padding: -8rem !important;
}

.pt--8,
.py--8
{
    padding-top: -8rem !important;
}

.pr--8,
.px--8
{
    padding-right: -8rem !important;
}

.pb--8,
.py--8
{
    padding-bottom: -8rem !important;
}

.pl--8,
.px--8
{
    padding-left: -8rem !important;
}

.p--7
{
    padding: -6rem !important;
}

.pt--7,
.py--7
{
    padding-top: -6rem !important;
}

.pr--7,
.px--7
{
    padding-right: -6rem !important;
}

.pb--7,
.py--7
{
    padding-bottom: -6rem !important;
}

.pl--7,
.px--7
{
    padding-left: -6rem !important;
}

.p--6
{
    padding: -4.5rem !important;
}

.pt--6,
.py--6
{
    padding-top: -4.5rem !important;
}

.pr--6,
.px--6
{
    padding-right: -4.5rem !important;
}

.pb--6,
.py--6
{
    padding-bottom: -4.5rem !important;
}

.pl--6,
.px--6
{
    padding-left: -4.5rem !important;
}

.p--5
{
    padding: -3rem !important;
}

.pt--5,
.py--5
{
    padding-top: -3rem !important;
}

.pr--5,
.px--5
{
    padding-right: -3rem !important;
}

.pb--5,
.py--5
{
    padding-bottom: -3rem !important;
}

.pl--5,
.px--5
{
    padding-left: -3rem !important;
}

.p--4
{
    padding: -1.5rem !important;
}

.pt--4,
.py--4
{
    padding-top: -1.5rem !important;
}

.pr--4,
.px--4
{
    padding-right: -1.5rem !important;
}

.pb--4,
.py--4
{
    padding-bottom: -1.5rem !important;
}

.pl--4,
.px--4
{
    padding-left: -1.5rem !important;
}

.p--3
{
    padding: -1rem !important;
}

.pt--3,
.py--3
{
    padding-top: -1rem !important;
}

.pr--3,
.px--3
{
    padding-right: -1rem !important;
}

.pb--3,
.py--3
{
    padding-bottom: -1rem !important;
}

.pl--3,
.px--3
{
    padding-left: -1rem !important;
}

.p--2
{
    padding: -.5rem !important;
}

.pt--2,
.py--2
{
    padding-top: -.5rem !important;
}

.pr--2,
.px--2
{
    padding-right: -.5rem !important;
}

.pb--2,
.py--2
{
    padding-bottom: -.5rem !important;
}

.pl--2,
.px--2
{
    padding-left: -.5rem !important;
}

.p--1
{
    padding: -.25rem !important;
}

.pt--1,
.py--1
{
    padding-top: -.25rem !important;
}

.pr--1,
.px--1
{
    padding-right: -.25rem !important;
}

.pb--1,
.py--1
{
    padding-bottom: -.25rem !important;
}

.pl--1,
.px--1
{
    padding-left: -.25rem !important;
}

.p-6
{
    padding: 4.5rem !important;
}

.pt-6,
.py-6
{
    padding-top: 4.5rem !important;
}

.pr-6,
.px-6
{
    padding-right: 4.5rem !important;
}

.pb-6,
.py-6
{
    padding-bottom: 4.5rem !important;
}

.pl-6,
.px-6
{
    padding-left: 4.5rem !important;
}

.p-7
{
    padding: 6rem !important;
}

.pt-7,
.py-7
{
    padding-top: 6rem !important;
}

.pr-7,
.px-7
{
    padding-right: 6rem !important;
}

.pb-7,
.py-7
{
    padding-bottom: 6rem !important;
}

.pl-7,
.px-7
{
    padding-left: 6rem !important;
}

.p-8
{
    padding: 8rem !important;
}

.pt-8,
.py-8
{
    padding-top: 8rem !important;
}

.pr-8,
.px-8
{
    padding-right: 8rem !important;
}

.pb-8,
.py-8
{
    padding-bottom: 8rem !important;
}

.pl-8,
.px-8
{
    padding-left: 8rem !important;
}

.p-9
{
    padding: 10rem !important;
}

.pt-9,
.py-9
{
    padding-top: 10rem !important;
}

.pr-9,
.px-9
{
    padding-right: 10rem !important;
}

.pb-9,
.py-9
{
    padding-bottom: 10rem !important;
}

.pl-9,
.px-9
{
    padding-left: 10rem !important;
}

.m-auto
{
    margin: auto !important;
}

.mt-auto,
.my-auto
{
    margin-top: auto !important;
}

.mr-auto,
.mx-auto
{
    margin-right: auto !important;
}

.mb-auto,
.my-auto
{
    margin-bottom: auto !important;
}

.ml-auto,
.mx-auto
{
    margin-left: auto !important;
}

@media (min-width: 576px)
{
    .m-sm-0
    {
        margin: 0 !important;
    }
    .mt-sm-0,
    .my-sm-0
    {
        margin-top: 0 !important;
    }
    .mr-sm-0,
    .mx-sm-0
    {
        margin-right: 0 !important;
    }
    .mb-sm-0,
    .my-sm-0
    {
        margin-bottom: 0 !important;
    }
    .ml-sm-0,
    .mx-sm-0
    {
        margin-left: 0 !important;
    }
    .m-sm-1
    {
        margin: .25rem !important;
    }
    .mt-sm-1,
    .my-sm-1
    {
        margin-top: .25rem !important;
    }
    .mr-sm-1,
    .mx-sm-1
    {
        margin-right: .25rem !important;
    }
    .mb-sm-1,
    .my-sm-1
    {
        margin-bottom: .25rem !important;
    }
    .ml-sm-1,
    .mx-sm-1
    {
        margin-left: .25rem !important;
    }
    .m-sm-2
    {
        margin: .5rem !important;
    }
    .mt-sm-2,
    .my-sm-2
    {
        margin-top: .5rem !important;
    }
    .mr-sm-2,
    .mx-sm-2
    {
        margin-right: .5rem !important;
    }
    .mb-sm-2,
    .my-sm-2
    {
        margin-bottom: .5rem !important;
    }
    .ml-sm-2,
    .mx-sm-2
    {
        margin-left: .5rem !important;
    }
    .m-sm-3
    {
        margin: 1rem !important;
    }
    .mt-sm-3,
    .my-sm-3
    {
        margin-top: 1rem !important;
    }
    .mr-sm-3,
    .mx-sm-3
    {
        margin-right: 1rem !important;
    }
    .mb-sm-3,
    .my-sm-3
    {
        margin-bottom: 1rem !important;
    }
    .ml-sm-3,
    .mx-sm-3
    {
        margin-left: 1rem !important;
    }
    .m-sm-4
    {
        margin: 1.5rem !important;
    }
    .mt-sm-4,
    .my-sm-4
    {
        margin-top: 1.5rem !important;
    }
    .mr-sm-4,
    .mx-sm-4
    {
        margin-right: 1.5rem !important;
    }
    .mb-sm-4,
    .my-sm-4
    {
        margin-bottom: 1.5rem !important;
    }
    .ml-sm-4,
    .mx-sm-4
    {
        margin-left: 1.5rem !important;
    }
    .m-sm-5
    {
        margin: 3rem !important;
    }
    .mt-sm-5,
    .my-sm-5
    {
        margin-top: 3rem !important;
    }
    .mr-sm-5,
    .mx-sm-5
    {
        margin-right: 3rem !important;
    }
    .mb-sm-5,
    .my-sm-5
    {
        margin-bottom: 3rem !important;
    }
    .ml-sm-5,
    .mx-sm-5
    {
        margin-left: 3rem !important;
    }
    .m-sm--9
    {
        margin: -10rem !important;
    }
    .mt-sm--9,
    .my-sm--9
    {
        margin-top: -10rem !important;
    }
    .mr-sm--9,
    .mx-sm--9
    {
        margin-right: -10rem !important;
    }
    .mb-sm--9,
    .my-sm--9
    {
        margin-bottom: -10rem !important;
    }
    .ml-sm--9,
    .mx-sm--9
    {
        margin-left: -10rem !important;
    }
    .m-sm--8
    {
        margin: -8rem !important;
    }
    .mt-sm--8,
    .my-sm--8
    {
        margin-top: -8rem !important;
    }
    .mr-sm--8,
    .mx-sm--8
    {
        margin-right: -8rem !important;
    }
    .mb-sm--8,
    .my-sm--8
    {
        margin-bottom: -8rem !important;
    }
    .ml-sm--8,
    .mx-sm--8
    {
        margin-left: -8rem !important;
    }
    .m-sm--7
    {
        margin: -6rem !important;
    }
    .mt-sm--7,
    .my-sm--7
    {
        margin-top: -6rem !important;
    }
    .mr-sm--7,
    .mx-sm--7
    {
        margin-right: -6rem !important;
    }
    .mb-sm--7,
    .my-sm--7
    {
        margin-bottom: -6rem !important;
    }
    .ml-sm--7,
    .mx-sm--7
    {
        margin-left: -6rem !important;
    }
    .m-sm--6
    {
        margin: -4.5rem !important;
    }
    .mt-sm--6,
    .my-sm--6
    {
        margin-top: -4.5rem !important;
    }
    .mr-sm--6,
    .mx-sm--6
    {
        margin-right: -4.5rem !important;
    }
    .mb-sm--6,
    .my-sm--6
    {
        margin-bottom: -4.5rem !important;
    }
    .ml-sm--6,
    .mx-sm--6
    {
        margin-left: -4.5rem !important;
    }
    .m-sm--5
    {
        margin: -3rem !important;
    }
    .mt-sm--5,
    .my-sm--5
    {
        margin-top: -3rem !important;
    }
    .mr-sm--5,
    .mx-sm--5
    {
        margin-right: -3rem !important;
    }
    .mb-sm--5,
    .my-sm--5
    {
        margin-bottom: -3rem !important;
    }
    .ml-sm--5,
    .mx-sm--5
    {
        margin-left: -3rem !important;
    }
    .m-sm--4
    {
        margin: -1.5rem !important;
    }
    .mt-sm--4,
    .my-sm--4
    {
        margin-top: -1.5rem !important;
    }
    .mr-sm--4,
    .mx-sm--4
    {
        margin-right: -1.5rem !important;
    }
    .mb-sm--4,
    .my-sm--4
    {
        margin-bottom: -1.5rem !important;
    }
    .ml-sm--4,
    .mx-sm--4
    {
        margin-left: -1.5rem !important;
    }
    .m-sm--3
    {
        margin: -1rem !important;
    }
    .mt-sm--3,
    .my-sm--3
    {
        margin-top: -1rem !important;
    }
    .mr-sm--3,
    .mx-sm--3
    {
        margin-right: -1rem !important;
    }
    .mb-sm--3,
    .my-sm--3
    {
        margin-bottom: -1rem !important;
    }
    .ml-sm--3,
    .mx-sm--3
    {
        margin-left: -1rem !important;
    }
    .m-sm--2
    {
        margin: -.5rem !important;
    }
    .mt-sm--2,
    .my-sm--2
    {
        margin-top: -.5rem !important;
    }
    .mr-sm--2,
    .mx-sm--2
    {
        margin-right: -.5rem !important;
    }
    .mb-sm--2,
    .my-sm--2
    {
        margin-bottom: -.5rem !important;
    }
    .ml-sm--2,
    .mx-sm--2
    {
        margin-left: -.5rem !important;
    }
    .m-sm--1
    {
        margin: -.25rem !important;
    }
    .mt-sm--1,
    .my-sm--1
    {
        margin-top: -.25rem !important;
    }
    .mr-sm--1,
    .mx-sm--1
    {
        margin-right: -.25rem !important;
    }
    .mb-sm--1,
    .my-sm--1
    {
        margin-bottom: -.25rem !important;
    }
    .ml-sm--1,
    .mx-sm--1
    {
        margin-left: -.25rem !important;
    }
    .m-sm-6
    {
        margin: 4.5rem !important;
    }
    .mt-sm-6,
    .my-sm-6
    {
        margin-top: 4.5rem !important;
    }
    .mr-sm-6,
    .mx-sm-6
    {
        margin-right: 4.5rem !important;
    }
    .mb-sm-6,
    .my-sm-6
    {
        margin-bottom: 4.5rem !important;
    }
    .ml-sm-6,
    .mx-sm-6
    {
        margin-left: 4.5rem !important;
    }
    .m-sm-7
    {
        margin: 6rem !important;
    }
    .mt-sm-7,
    .my-sm-7
    {
        margin-top: 6rem !important;
    }
    .mr-sm-7,
    .mx-sm-7
    {
        margin-right: 6rem !important;
    }
    .mb-sm-7,
    .my-sm-7
    {
        margin-bottom: 6rem !important;
    }
    .ml-sm-7,
    .mx-sm-7
    {
        margin-left: 6rem !important;
    }
    .m-sm-8
    {
        margin: 8rem !important;
    }
    .mt-sm-8,
    .my-sm-8
    {
        margin-top: 8rem !important;
    }
    .mr-sm-8,
    .mx-sm-8
    {
        margin-right: 8rem !important;
    }
    .mb-sm-8,
    .my-sm-8
    {
        margin-bottom: 8rem !important;
    }
    .ml-sm-8,
    .mx-sm-8
    {
        margin-left: 8rem !important;
    }
    .m-sm-9
    {
        margin: 10rem !important;
    }
    .mt-sm-9,
    .my-sm-9
    {
        margin-top: 10rem !important;
    }
    .mr-sm-9,
    .mx-sm-9
    {
        margin-right: 10rem !important;
    }
    .mb-sm-9,
    .my-sm-9
    {
        margin-bottom: 10rem !important;
    }
    .ml-sm-9,
    .mx-sm-9
    {
        margin-left: 10rem !important;
    }
    .p-sm-0
    {
        padding: 0 !important;
    }
    .pt-sm-0,
    .py-sm-0
    {
        padding-top: 0 !important;
    }
    .pr-sm-0,
    .px-sm-0
    {
        padding-right: 0 !important;
    }
    .pb-sm-0,
    .py-sm-0
    {
        padding-bottom: 0 !important;
    }
    .pl-sm-0,
    .px-sm-0
    {
        padding-left: 0 !important;
    }
    .p-sm-1
    {
        padding: .25rem !important;
    }
    .pt-sm-1,
    .py-sm-1
    {
        padding-top: .25rem !important;
    }
    .pr-sm-1,
    .px-sm-1
    {
        padding-right: .25rem !important;
    }
    .pb-sm-1,
    .py-sm-1
    {
        padding-bottom: .25rem !important;
    }
    .pl-sm-1,
    .px-sm-1
    {
        padding-left: .25rem !important;
    }
    .p-sm-2
    {
        padding: .5rem !important;
    }
    .pt-sm-2,
    .py-sm-2
    {
        padding-top: .5rem !important;
    }
    .pr-sm-2,
    .px-sm-2
    {
        padding-right: .5rem !important;
    }
    .pb-sm-2,
    .py-sm-2
    {
        padding-bottom: .5rem !important;
    }
    .pl-sm-2,
    .px-sm-2
    {
        padding-left: .5rem !important;
    }
    .p-sm-3
    {
        padding: 1rem !important;
    }
    .pt-sm-3,
    .py-sm-3
    {
        padding-top: 1rem !important;
    }
    .pr-sm-3,
    .px-sm-3
    {
        padding-right: 1rem !important;
    }
    .pb-sm-3,
    .py-sm-3
    {
        padding-bottom: 1rem !important;
    }
    .pl-sm-3,
    .px-sm-3
    {
        padding-left: 1rem !important;
    }
    .p-sm-4
    {
        padding: 1.5rem !important;
    }
    .pt-sm-4,
    .py-sm-4
    {
        padding-top: 1.5rem !important;
    }
    .pr-sm-4,
    .px-sm-4
    {
        padding-right: 1.5rem !important;
    }
    .pb-sm-4,
    .py-sm-4
    {
        padding-bottom: 1.5rem !important;
    }
    .pl-sm-4,
    .px-sm-4
    {
        padding-left: 1.5rem !important;
    }
    .p-sm-5
    {
        padding: 3rem !important;
    }
    .pt-sm-5,
    .py-sm-5
    {
        padding-top: 3rem !important;
    }
    .pr-sm-5,
    .px-sm-5
    {
        padding-right: 3rem !important;
    }
    .pb-sm-5,
    .py-sm-5
    {
        padding-bottom: 3rem !important;
    }
    .pl-sm-5,
    .px-sm-5
    {
        padding-left: 3rem !important;
    }
    .p-sm--9
    {
        padding: -10rem !important;
    }
    .pt-sm--9,
    .py-sm--9
    {
        padding-top: -10rem !important;
    }
    .pr-sm--9,
    .px-sm--9
    {
        padding-right: -10rem !important;
    }
    .pb-sm--9,
    .py-sm--9
    {
        padding-bottom: -10rem !important;
    }
    .pl-sm--9,
    .px-sm--9
    {
        padding-left: -10rem !important;
    }
    .p-sm--8
    {
        padding: -8rem !important;
    }
    .pt-sm--8,
    .py-sm--8
    {
        padding-top: -8rem !important;
    }
    .pr-sm--8,
    .px-sm--8
    {
        padding-right: -8rem !important;
    }
    .pb-sm--8,
    .py-sm--8
    {
        padding-bottom: -8rem !important;
    }
    .pl-sm--8,
    .px-sm--8
    {
        padding-left: -8rem !important;
    }
    .p-sm--7
    {
        padding: -6rem !important;
    }
    .pt-sm--7,
    .py-sm--7
    {
        padding-top: -6rem !important;
    }
    .pr-sm--7,
    .px-sm--7
    {
        padding-right: -6rem !important;
    }
    .pb-sm--7,
    .py-sm--7
    {
        padding-bottom: -6rem !important;
    }
    .pl-sm--7,
    .px-sm--7
    {
        padding-left: -6rem !important;
    }
    .p-sm--6
    {
        padding: -4.5rem !important;
    }
    .pt-sm--6,
    .py-sm--6
    {
        padding-top: -4.5rem !important;
    }
    .pr-sm--6,
    .px-sm--6
    {
        padding-right: -4.5rem !important;
    }
    .pb-sm--6,
    .py-sm--6
    {
        padding-bottom: -4.5rem !important;
    }
    .pl-sm--6,
    .px-sm--6
    {
        padding-left: -4.5rem !important;
    }
    .p-sm--5
    {
        padding: -3rem !important;
    }
    .pt-sm--5,
    .py-sm--5
    {
        padding-top: -3rem !important;
    }
    .pr-sm--5,
    .px-sm--5
    {
        padding-right: -3rem !important;
    }
    .pb-sm--5,
    .py-sm--5
    {
        padding-bottom: -3rem !important;
    }
    .pl-sm--5,
    .px-sm--5
    {
        padding-left: -3rem !important;
    }
    .p-sm--4
    {
        padding: -1.5rem !important;
    }
    .pt-sm--4,
    .py-sm--4
    {
        padding-top: -1.5rem !important;
    }
    .pr-sm--4,
    .px-sm--4
    {
        padding-right: -1.5rem !important;
    }
    .pb-sm--4,
    .py-sm--4
    {
        padding-bottom: -1.5rem !important;
    }
    .pl-sm--4,
    .px-sm--4
    {
        padding-left: -1.5rem !important;
    }
    .p-sm--3
    {
        padding: -1rem !important;
    }
    .pt-sm--3,
    .py-sm--3
    {
        padding-top: -1rem !important;
    }
    .pr-sm--3,
    .px-sm--3
    {
        padding-right: -1rem !important;
    }
    .pb-sm--3,
    .py-sm--3
    {
        padding-bottom: -1rem !important;
    }
    .pl-sm--3,
    .px-sm--3
    {
        padding-left: -1rem !important;
    }
    .p-sm--2
    {
        padding: -.5rem !important;
    }
    .pt-sm--2,
    .py-sm--2
    {
        padding-top: -.5rem !important;
    }
    .pr-sm--2,
    .px-sm--2
    {
        padding-right: -.5rem !important;
    }
    .pb-sm--2,
    .py-sm--2
    {
        padding-bottom: -.5rem !important;
    }
    .pl-sm--2,
    .px-sm--2
    {
        padding-left: -.5rem !important;
    }
    .p-sm--1
    {
        padding: -.25rem !important;
    }
    .pt-sm--1,
    .py-sm--1
    {
        padding-top: -.25rem !important;
    }
    .pr-sm--1,
    .px-sm--1
    {
        padding-right: -.25rem !important;
    }
    .pb-sm--1,
    .py-sm--1
    {
        padding-bottom: -.25rem !important;
    }
    .pl-sm--1,
    .px-sm--1
    {
        padding-left: -.25rem !important;
    }
    .p-sm-6
    {
        padding: 4.5rem !important;
    }
    .pt-sm-6,
    .py-sm-6
    {
        padding-top: 4.5rem !important;
    }
    .pr-sm-6,
    .px-sm-6
    {
        padding-right: 4.5rem !important;
    }
    .pb-sm-6,
    .py-sm-6
    {
        padding-bottom: 4.5rem !important;
    }
    .pl-sm-6,
    .px-sm-6
    {
        padding-left: 4.5rem !important;
    }
    .p-sm-7
    {
        padding: 6rem !important;
    }
    .pt-sm-7,
    .py-sm-7
    {
        padding-top: 6rem !important;
    }
    .pr-sm-7,
    .px-sm-7
    {
        padding-right: 6rem !important;
    }
    .pb-sm-7,
    .py-sm-7
    {
        padding-bottom: 6rem !important;
    }
    .pl-sm-7,
    .px-sm-7
    {
        padding-left: 6rem !important;
    }
    .p-sm-8
    {
        padding: 8rem !important;
    }
    .pt-sm-8,
    .py-sm-8
    {
        padding-top: 8rem !important;
    }
    .pr-sm-8,
    .px-sm-8
    {
        padding-right: 8rem !important;
    }
    .pb-sm-8,
    .py-sm-8
    {
        padding-bottom: 8rem !important;
    }
    .pl-sm-8,
    .px-sm-8
    {
        padding-left: 8rem !important;
    }
    .p-sm-9
    {
        padding: 10rem !important;
    }
    .pt-sm-9,
    .py-sm-9
    {
        padding-top: 10rem !important;
    }
    .pr-sm-9,
    .px-sm-9
    {
        padding-right: 10rem !important;
    }
    .pb-sm-9,
    .py-sm-9
    {
        padding-bottom: 10rem !important;
    }
    .pl-sm-9,
    .px-sm-9
    {
        padding-left: 10rem !important;
    }
    .m-sm-auto
    {
        margin: auto !important;
    }
    .mt-sm-auto,
    .my-sm-auto
    {
        margin-top: auto !important;
    }
    .mr-sm-auto,
    .mx-sm-auto
    {
        margin-right: auto !important;
    }
    .mb-sm-auto,
    .my-sm-auto
    {
        margin-bottom: auto !important;
    }
    .ml-sm-auto,
    .mx-sm-auto
    {
        margin-left: auto !important;
    }
}

@media (min-width: 768px)
{
    .m-md-0
    {
        margin: 0 !important;
    }
    .mt-md-0,
    .my-md-0
    {
        margin-top: 0 !important;
    }
    .mr-md-0,
    .mx-md-0
    {
        margin-right: 0 !important;
    }
    .mb-md-0,
    .my-md-0
    {
        margin-bottom: 0 !important;
    }
    .ml-md-0,
    .mx-md-0
    {
        margin-left: 0 !important;
    }
    .m-md-1
    {
        margin: .25rem !important;
    }
    .mt-md-1,
    .my-md-1
    {
        margin-top: .25rem !important;
    }
    .mr-md-1,
    .mx-md-1
    {
        margin-right: .25rem !important;
    }
    .mb-md-1,
    .my-md-1
    {
        margin-bottom: .25rem !important;
    }
    .ml-md-1,
    .mx-md-1
    {
        margin-left: .25rem !important;
    }
    .m-md-2
    {
        margin: .5rem !important;
    }
    .mt-md-2,
    .my-md-2
    {
        margin-top: .5rem !important;
    }
    .mr-md-2,
    .mx-md-2
    {
        margin-right: .5rem !important;
    }
    .mb-md-2,
    .my-md-2
    {
        margin-bottom: .5rem !important;
    }
    .ml-md-2,
    .mx-md-2
    {
        margin-left: .5rem !important;
    }
    .m-md-3
    {
        margin: 1rem !important;
    }
    .mt-md-3,
    .my-md-3
    {
        margin-top: 1rem !important;
    }
    .mr-md-3,
    .mx-md-3
    {
        margin-right: 1rem !important;
    }
    .mb-md-3,
    .my-md-3
    {
        margin-bottom: 1rem !important;
    }
    .ml-md-3,
    .mx-md-3
    {
        margin-left: 1rem !important;
    }
    .m-md-4
    {
        margin: 1.5rem !important;
    }
    .mt-md-4,
    .my-md-4
    {
        margin-top: 1.5rem !important;
    }
    .mr-md-4,
    .mx-md-4
    {
        margin-right: 1.5rem !important;
    }
    .mb-md-4,
    .my-md-4
    {
        margin-bottom: 1.5rem !important;
    }
    .ml-md-4,
    .mx-md-4
    {
        margin-left: 1.5rem !important;
    }
    .m-md-5
    {
        margin: 3rem !important;
    }
    .mt-md-5,
    .my-md-5
    {
        margin-top: 3rem !important;
    }
    .mr-md-5,
    .mx-md-5
    {
        margin-right: 3rem !important;
    }
    .mb-md-5,
    .my-md-5
    {
        margin-bottom: 3rem !important;
    }
    .ml-md-5,
    .mx-md-5
    {
        margin-left: 3rem !important;
    }
    .m-md--9
    {
        margin: -10rem !important;
    }
    .mt-md--9,
    .my-md--9
    {
        margin-top: -10rem !important;
    }
    .mr-md--9,
    .mx-md--9
    {
        margin-right: -10rem !important;
    }
    .mb-md--9,
    .my-md--9
    {
        margin-bottom: -10rem !important;
    }
    .ml-md--9,
    .mx-md--9
    {
        margin-left: -10rem !important;
    }
    .m-md--8
    {
        margin: -8rem !important;
    }
    .mt-md--8,
    .my-md--8
    {
        margin-top: -8rem !important;
    }
    .mr-md--8,
    .mx-md--8
    {
        margin-right: -8rem !important;
    }
    .mb-md--8,
    .my-md--8
    {
        margin-bottom: -8rem !important;
    }
    .ml-md--8,
    .mx-md--8
    {
        margin-left: -8rem !important;
    }
    .m-md--7
    {
        margin: -6rem !important;
    }
    .mt-md--7,
    .my-md--7
    {
        margin-top: -6rem !important;
    }
    .mr-md--7,
    .mx-md--7
    {
        margin-right: -6rem !important;
    }
    .mb-md--7,
    .my-md--7
    {
        margin-bottom: -6rem !important;
    }
    .ml-md--7,
    .mx-md--7
    {
        margin-left: -6rem !important;
    }
    .m-md--6
    {
        margin: -4.5rem !important;
    }
    .mt-md--6,
    .my-md--6
    {
        margin-top: -4.5rem !important;
    }
    .mr-md--6,
    .mx-md--6
    {
        margin-right: -4.5rem !important;
    }
    .mb-md--6,
    .my-md--6
    {
        margin-bottom: -4.5rem !important;
    }
    .ml-md--6,
    .mx-md--6
    {
        margin-left: -4.5rem !important;
    }
    .m-md--5
    {
        margin: -3rem !important;
    }
    .mt-md--5,
    .my-md--5
    {
        margin-top: -3rem !important;
    }
    .mr-md--5,
    .mx-md--5
    {
        margin-right: -3rem !important;
    }
    .mb-md--5,
    .my-md--5
    {
        margin-bottom: -3rem !important;
    }
    .ml-md--5,
    .mx-md--5
    {
        margin-left: -3rem !important;
    }
    .m-md--4
    {
        margin: -1.5rem !important;
    }
    .mt-md--4,
    .my-md--4
    {
        margin-top: -1.5rem !important;
    }
    .mr-md--4,
    .mx-md--4
    {
        margin-right: -1.5rem !important;
    }
    .mb-md--4,
    .my-md--4
    {
        margin-bottom: -1.5rem !important;
    }
    .ml-md--4,
    .mx-md--4
    {
        margin-left: -1.5rem !important;
    }
    .m-md--3
    {
        margin: -1rem !important;
    }
    .mt-md--3,
    .my-md--3
    {
        margin-top: -1rem !important;
    }
    .mr-md--3,
    .mx-md--3
    {
        margin-right: -1rem !important;
    }
    .mb-md--3,
    .my-md--3
    {
        margin-bottom: -1rem !important;
    }
    .ml-md--3,
    .mx-md--3
    {
        margin-left: -1rem !important;
    }
    .m-md--2
    {
        margin: -.5rem !important;
    }
    .mt-md--2,
    .my-md--2
    {
        margin-top: -.5rem !important;
    }
    .mr-md--2,
    .mx-md--2
    {
        margin-right: -.5rem !important;
    }
    .mb-md--2,
    .my-md--2
    {
        margin-bottom: -.5rem !important;
    }
    .ml-md--2,
    .mx-md--2
    {
        margin-left: -.5rem !important;
    }
    .m-md--1
    {
        margin: -.25rem !important;
    }
    .mt-md--1,
    .my-md--1
    {
        margin-top: -.25rem !important;
    }
    .mr-md--1,
    .mx-md--1
    {
        margin-right: -.25rem !important;
    }
    .mb-md--1,
    .my-md--1
    {
        margin-bottom: -.25rem !important;
    }
    .ml-md--1,
    .mx-md--1
    {
        margin-left: -.25rem !important;
    }
    .m-md-6
    {
        margin: 4.5rem !important;
    }
    .mt-md-6,
    .my-md-6
    {
        margin-top: 4.5rem !important;
    }
    .mr-md-6,
    .mx-md-6
    {
        margin-right: 4.5rem !important;
    }
    .mb-md-6,
    .my-md-6
    {
        margin-bottom: 4.5rem !important;
    }
    .ml-md-6,
    .mx-md-6
    {
        margin-left: 4.5rem !important;
    }
    .m-md-7
    {
        margin: 6rem !important;
    }
    .mt-md-7,
    .my-md-7
    {
        margin-top: 6rem !important;
    }
    .mr-md-7,
    .mx-md-7
    {
        margin-right: 6rem !important;
    }
    .mb-md-7,
    .my-md-7
    {
        margin-bottom: 6rem !important;
    }
    .ml-md-7,
    .mx-md-7
    {
        margin-left: 6rem !important;
    }
    .m-md-8
    {
        margin: 8rem !important;
    }
    .mt-md-8,
    .my-md-8
    {
        margin-top: 8rem !important;
    }
    .mr-md-8,
    .mx-md-8
    {
        margin-right: 8rem !important;
    }
    .mb-md-8,
    .my-md-8
    {
        margin-bottom: 8rem !important;
    }
    .ml-md-8,
    .mx-md-8
    {
        margin-left: 8rem !important;
    }
    .m-md-9
    {
        margin: 10rem !important;
    }
    .mt-md-9,
    .my-md-9
    {
        margin-top: 10rem !important;
    }
    .mr-md-9,
    .mx-md-9
    {
        margin-right: 10rem !important;
    }
    .mb-md-9,
    .my-md-9
    {
        margin-bottom: 10rem !important;
    }
    .ml-md-9,
    .mx-md-9
    {
        margin-left: 10rem !important;
    }
    .p-md-0
    {
        padding: 0 !important;
    }
    .pt-md-0,
    .py-md-0
    {
        padding-top: 0 !important;
    }
    .pr-md-0,
    .px-md-0
    {
        padding-right: 0 !important;
    }
    .pb-md-0,
    .py-md-0
    {
        padding-bottom: 0 !important;
    }
    .pl-md-0,
    .px-md-0
    {
        padding-left: 0 !important;
    }
    .p-md-1
    {
        padding: .25rem !important;
    }
    .pt-md-1,
    .py-md-1
    {
        padding-top: .25rem !important;
    }
    .pr-md-1,
   
Download .txt
gitextract__z4wb0uk/

├── .github/
│   └── ISSUE_TEMPLATE/
│       ├── bug_report.md
│       └── feature_request.md
├── CITATION.cff
├── LICENSE
├── README.md
├── assets/
│   ├── css/
│   │   ├── argon.css
│   │   ├── bootstrap.css
│   │   └── styles.css
│   ├── database.sql
│   ├── includes/
│   │   ├── config.php
│   │   ├── footer.php
│   │   ├── head.php
│   │   ├── header.php
│   │   ├── list-commands.php
│   │   └── tools-categories.php
│   ├── js/
│   │   ├── argon.js
│   │   └── bootstrap.js
│   ├── libraries/
│   │   └── phpseclib/
│   │       ├── Crypt/
│   │       │   ├── AES.php
│   │       │   ├── Base.php
│   │       │   ├── Blowfish.php
│   │       │   ├── DES.php
│   │       │   ├── Hash.php
│   │       │   ├── RC2.php
│   │       │   ├── RC4.php
│   │       │   ├── RSA.php
│   │       │   ├── Random.php
│   │       │   ├── Rijndael.php
│   │       │   ├── TripleDES.php
│   │       │   └── Twofish.php
│   │       ├── File/
│   │       │   ├── ANSI.php
│   │       │   ├── ASN1.php
│   │       │   └── X509.php
│   │       ├── Math/
│   │       │   └── BigInteger.php
│   │       ├── Net/
│   │       │   ├── SCP.php
│   │       │   ├── SFTP/
│   │       │   │   └── Stream.php
│   │       │   ├── SFTP.php
│   │       │   ├── SSH1.php
│   │       │   └── SSH2.php
│   │       ├── System/
│   │       │   ├── SSH/
│   │       │   │   └── Agent.php
│   │       │   └── SSH_Agent.php
│   │       ├── bootstrap.php
│   │       └── openssl.cnf
│   └── vendor/
│       ├── @fortawesome/
│       │   └── fontawesome-free/
│       │       └── LICENSE.txt
│       ├── anchor-js/
│       │   └── banner.js
│       ├── chart.js/
│       │   └── dist/
│       │       └── Chart.extension.js
│       ├── holderjs/
│       │   └── package.js
│       ├── jquery/
│       │   └── dist/
│       │       └── core.js
│       ├── jquery.scrollbar/
│       │   ├── index.js
│       │   ├── jquery.scrollbar.css
│       │   ├── license-gpl.txt
│       │   ├── license-mit.txt
│       │   ├── meteor/
│       │   │   └── tests.js
│       │   ├── package.js
│       │   ├── sass/
│       │   │   └── config.rb
│       │   └── scrollbar.jquery.json
│       ├── nucleo/
│       │   └── css/
│       │       ├── nucleo-svg.css
│       │       └── nucleo.css
│       ├── onscreen/
│       │   └── dist/
│       │       └── on-screen.es6.js
│       └── prismjs/
│           ├── components/
│           │   └── index.js
│           ├── components.js
│           ├── components.json
│           ├── plugins/
│           │   ├── autolinker/
│           │   │   └── prism-autolinker.css
│           │   ├── command-line/
│           │   │   └── prism-command-line.css
│           │   ├── line-highlight/
│           │   │   └── prism-line-highlight.css
│           │   ├── line-numbers/
│           │   │   └── prism-line-numbers.css
│           │   ├── previewers/
│           │   │   └── prism-previewers.css
│           │   ├── show-invisibles/
│           │   │   └── prism-show-invisibles.css
│           │   ├── toolbar/
│           │   │   └── prism-toolbar.css
│           │   ├── unescaped-markup/
│           │   │   └── prism-unescaped-markup.css
│           │   └── wpd/
│           │       └── prism-wpd.css
│           ├── prism.js
│           └── themes/
│               ├── prism-coy.css
│               ├── prism-dark.css
│               ├── prism-funky.css
│               ├── prism-okaidia.css
│               ├── prism-solarizedlight.css
│               ├── prism-tomorrow.css
│               ├── prism-twilight.css
│               └── prism.css
├── debian.php
├── delete-reports.php
├── gitbook/
│   ├── README.md
│   ├── arquitetura.md
│   ├── mapa-mental.md
│   ├── mvp-canvas.md
│   ├── personas.md
│   └── sprint-backlog.md
├── index.php
├── login-validation.php
├── login.php
├── logout.php
├── profile.php
├── reports.php
├── run.php
├── save-reports.php
├── selected-report.php
├── selected-tool.php
├── terminal.php
└── tools-list.php
Download .txt
SYMBOL INDEX (691 symbols across 31 files)

FILE: assets/database.sql
  type `commands` (line 31) | CREATE TABLE `commands` (
  type `reports` (line 120) | CREATE TABLE `reports` (
  type `tools` (line 145) | CREATE TABLE `tools` (

FILE: assets/includes/config.php
  function getConnectionDB (line 4) | function getConnectionDB() {

FILE: assets/js/argon.js
  function init (line 34) | function init($this) {
  function init (line 70) | function init($this) {
  function init (line 115) | function init($this) {
  function initMap (line 140) | function initMap() {
  function accordion (line 231) | function accordion($this) {
  function closeDropdown (line 235) | function closeDropdown($this) {
  function hideNavbarCollapse (line 278) | function hideNavbarCollapse($this) {
  function hiddenNavbarCollapse (line 282) | function hiddenNavbarCollapse($this) {
  function init (line 406) | function init($this) {
  function scrollTo (line 449) | function scrollTo($this) {
  function init (line 490) | function init() {
  function chartOptions (line 550) | function chartOptions() {
  function parseOptions (line 766) | function parseOptions(parent, options) {
  function pushOptions (line 777) | function pushOptions(parent, options) {
  function popOptions (line 790) | function popOptions(parent, options) {
  function toggleOptions (line 803) | function toggleOptions(elem) {
  function updateOptions (line 826) | function updateOptions(elem) {
  function toggleTicks (line 842) | function toggleTicks(elem, $chart) {
  function initChart (line 928) | function initChart($chart) {
  function init (line 1004) | function init($chart) {

FILE: assets/js/bootstrap.js
  function _defineProperties (line 15) | function _defineProperties(target, props) {
  function _createClass (line 25) | function _createClass(Constructor, protoProps, staticProps) {
  function _extends (line 31) | function _extends() {
  function _inheritsLoose (line 49) | function _inheritsLoose(subClass, superClass) {
  function toType (line 71) | function toType(obj) {
  function getSpecialTransitionEndEvent (line 75) | function getSpecialTransitionEndEvent() {
  function transitionEndTest (line 89) | function transitionEndTest() {
  function transitionEndEmulator (line 99) | function transitionEndEmulator(duration) {
  function setTransitionEndSupport (line 114) | function setTransitionEndSupport() {
  function escapeId (line 123) | function escapeId(selector) {
  function Alert (line 238) | function Alert(element) {
  function Button (line 412) | function Button(element) {
  function Carousel (line 615) | function Carousel(element, config) {
  function Collapse (line 1088) | function Collapse(element, config) {
  function Dropdown (line 1487) | function Dropdown(element, config) {
  function Modal (line 1936) | function Modal(element, config) {
  function Tooltip (line 2536) | function Tooltip(element, config) {
  function Popover (line 3165) | function Popover() {
  function ScrollSpy (line 3361) | function ScrollSpy(element, config) {
  function Tab (line 3661) | function Tab(element) {

FILE: assets/libraries/phpseclib/Crypt/AES.php
  class Crypt_AES (line 121) | class Crypt_AES extends Crypt_Rijndael
    method setBlockLength (line 141) | function setBlockLength($length)
    method setKeyLength (line 156) | function setKeyLength($length)
    method setKey (line 178) | function setKey($key)

FILE: assets/libraries/phpseclib/Crypt/Base.php
  class Crypt_Base (line 125) | class Crypt_Base
    method __construct (line 506) | function __construct($mode = CRYPT_MODE_CBC)
    method Crypt_Base (line 541) | function Crypt_Base($mode = CRYPT_MODE_CBC)
    method setIV (line 556) | function setIV($iv)
    method setKeyLength (line 574) | function setKeyLength($length)
    method getKeyLength (line 587) | function getKeyLength()
    method getBlockLength (line 598) | function getBlockLength()
    method setKey (line 617) | function setKey($key)
    method setPassword (line 645) | function setPassword($password, $method = 'pbkdf2')
    method encrypt (line 742) | function encrypt($plaintext)
    method decrypt (line 1043) | function decrypt($ciphertext)
    method _openssl_ctr_process (line 1339) | function _openssl_ctr_process($plaintext, &$encryptIV, &$buffer)
    method _openssl_ofb_process (line 1433) | function _openssl_ofb_process($plaintext, &$encryptIV, &$buffer)
    method _openssl_translate_mode (line 1479) | function _openssl_translate_mode()
    method enablePadding (line 1510) | function enablePadding()
    method disablePadding (line 1521) | function disablePadding()
    method enableContinuousBuffer (line 1564) | function enableContinuousBuffer()
    method disableContinuousBuffer (line 1584) | function disableContinuousBuffer()
    method isValidEngine (line 1607) | function isValidEngine($engine)
    method setPreferredEngine (line 1673) | function setPreferredEngine($engine)
    method getEngine (line 1694) | function getEngine()
    method _setEngine (line 1705) | function _setEngine()
    method _encryptBlock (line 1749) | function _encryptBlock($in)
    method _decryptBlock (line 1762) | function _decryptBlock($in)
    method _setupKey (line 1776) | function _setupKey()
    method _setup (line 1805) | function _setup()
    method _setupMcrypt (line 1838) | function _setupMcrypt()
    method _pad (line 1884) | function _pad($text)
    method _unpad (line 1913) | function _unpad($text)
    method _clearBuffers (line 1938) | function _clearBuffers()
    method _string_shift (line 1961) | function _string_shift(&$string, $index = 1)
    method _string_pop (line 1978) | function _string_pop(&$string, $index = 1)
    method _increment_str (line 1993) | function _increment_str(&$var)
    method _setupInlineCrypt (line 2082) | function _setupInlineCrypt()
    method _createInlineCryptFunction (line 2204) | function _createInlineCryptFunction($cipher_code)
    method _getLambdaFunctions (line 2576) | function &_getLambdaFunctions()
    method _hashInlineCryptFunction (line 2590) | function _hashInlineCryptFunction($bytes)
    method safe_intval (line 2626) | function safe_intval($x)
    method safe_intval_inline (line 2646) | function safe_intval_inline()

FILE: assets/libraries/phpseclib/Crypt/Blowfish.php
  class Crypt_Blowfish (line 112) | class Crypt_Blowfish extends Crypt_Base
    method setKeyLength (line 367) | function setKeyLength($length)
    method isValidEngine (line 390) | function isValidEngine($engine)
    method _setupKey (line 412) | function _setupKey()
    method _encryptBlock (line 469) | function _encryptBlock($in)
    method _decryptBlock (line 503) | function _decryptBlock($in)
    method _setupInlineCrypt (line 535) | function _setupInlineCrypt()

FILE: assets/libraries/phpseclib/Crypt/DES.php
  class Crypt_DES (line 131) | class Crypt_DES extends Crypt_Base
    method isValidEngine (line 664) | function isValidEngine($engine)
    method setKey (line 691) | function setKey($key)
    method _encryptBlock (line 713) | function _encryptBlock($in)
    method _decryptBlock (line 728) | function _decryptBlock($in)
    method _processBlock (line 747) | function _processBlock($block, $mode)
    method _setupKey (line 828) | function _setupKey()
    method _setupInlineCrypt (line 1363) | function _setupInlineCrypt()

FILE: assets/libraries/phpseclib/Crypt/Hash.php
  class Crypt_Hash (line 82) | class Crypt_Hash
    method __construct (line 172) | function __construct($hash = 'sha1')
    method Crypt_Hash (line 197) | function Crypt_Hash($hash = 'sha1')
    method setKey (line 210) | function setKey($key = false)
    method _computeKey (line 228) | function _computeKey()
    method getHash (line 260) | function getHash()
    method setHash (line 271) | function setHash($hash)
    method hash (line 397) | function hash($text)
    method getLength (line 438) | function getLength()
    method _md5 (line 449) | function _md5($m)
    method _sha1 (line 460) | function _sha1($m)
    method _md2 (line 473) | function _md2($m)
    method _sha256 (line 549) | function _sha256($m)
    method _sha512 (line 655) | function _sha512($m)
    method _rightRotate (line 841) | function _rightRotate($int, $amt)
    method _rightShift (line 857) | function _rightShift($int, $amt)
    method _not (line 871) | function _not($int)
    method _add (line 887) | function _add()
    method _string_shift (line 923) | function _string_shift(&$string, $index = 1)

FILE: assets/libraries/phpseclib/Crypt/RC2.php
  class Crypt_RC2 (line 108) | class Crypt_RC2 extends Crypt_Base
    method isValidEngine (line 345) | function isValidEngine($engine)
    method setKeyLength (line 369) | function setKeyLength($length)
    method getKeyLength (line 389) | function getKeyLength()
    method setKey (line 410) | function setKey($key, $t1 = 0)
    method encrypt (line 463) | function encrypt($plaintext)
    method decrypt (line 486) | function decrypt($ciphertext)
    method _encryptBlock (line 508) | function _encryptBlock($in)
    method _decryptBlock (line 553) | function _decryptBlock($in)
    method _setupMcrypt (line 595) | function _setupMcrypt()
    method _setupKey (line 610) | function _setupKey()
    method _setupInlineCrypt (line 631) | function _setupInlineCrypt()

FILE: assets/libraries/phpseclib/Crypt/RC4.php
  class Crypt_RC4 (line 87) | class Crypt_RC4 extends Crypt_Base
    method __construct (line 164) | function __construct()
    method Crypt_RC4 (line 175) | function Crypt_RC4()
    method isValidEngine (line 190) | function isValidEngine($engine)
    method setIV (line 234) | function setIV($iv)
    method setKeyLength (line 246) | function setKeyLength($length)
    method encrypt (line 268) | function encrypt($plaintext)
    method decrypt (line 288) | function decrypt($ciphertext)
    method _setupKey (line 303) | function _setupKey()
    method _crypt (line 334) | function _crypt($text, $mode)

FILE: assets/libraries/phpseclib/Crypt/RSA.php
  class Crypt_RSA (line 280) | class Crypt_RSA
    method __construct (line 494) | function __construct()
    method Crypt_RSA (line 571) | function Crypt_RSA()
    method createKey (line 590) | function createKey($bits = 1024, $timeout = false, $partial = array())
    method _convertPrivateKey (line 770) | function _convertPrivateKey($n, $e, $d, $primes, $exponents, $coeffici...
    method _convertPublicKey (line 1011) | function _convertPublicKey($n, $e)
    method _parseKey (line 1091) | function _parseKey($key, $type)
    method getSize (line 1512) | function getSize()
    method _start_element_handler (line 1527) | function _start_element_handler($parser, $name, $attribs)
    method _stop_element_handler (line 1567) | function _stop_element_handler($parser, $name)
    method _data_handler (line 1584) | function _data_handler($parser, $data)
    method loadKey (line 1601) | function loadKey($key, $type = false)
    method setPassword (line 1726) | function setPassword($password = false)
    method setPublicKey (line 1752) | function setPublicKey($key = false, $type = false)
    method setPrivateKey (line 1812) | function setPrivateKey($key = false, $type = false)
    method getPublicKey (line 1842) | function getPublicKey($type = CRYPT_RSA_PUBLIC_FORMAT_PKCS8)
    method getPublicKeyFingerprint (line 1867) | function getPublicKeyFingerprint($algorithm = 'md5')
    method getPrivateKey (line 1901) | function getPrivateKey($type = CRYPT_RSA_PUBLIC_FORMAT_PKCS1)
    method _getPrivatePublicKey (line 1925) | function _getPrivatePublicKey($mode = CRYPT_RSA_PUBLIC_FORMAT_PKCS8)
    method __toString (line 1944) | function __toString()
    method __clone (line 1960) | function __clone()
    method _generateMinMax (line 1974) | function _generateMinMax($bits)
    method _decodeLength (line 2003) | function _decodeLength(&$string)
    method _encodeLength (line 2024) | function _encodeLength($length)
    method _string_shift (line 2044) | function _string_shift(&$string, $index = 1)
    method setPrivateKeyFormat (line 2058) | function setPrivateKeyFormat($format)
    method setPublicKeyFormat (line 2070) | function setPublicKeyFormat($format)
    method setHash (line 2084) | function setHash($hash)
    method setMGFHash (line 2113) | function setMGFHash($hash)
    method setSaltLength (line 2142) | function setSaltLength($sLen)
    method _i2osp (line 2157) | function _i2osp($x, $xLen)
    method _os2ip (line 2176) | function _os2ip($x)
    method _exponentiate (line 2190) | function _exponentiate($x)
    method _blind (line 2276) | function _blind($x, $r, $i)
    method _equals (line 2302) | function _equals($x, $y)
    method _rsaep (line 2326) | function _rsaep($m)
    method _rsadp (line 2344) | function _rsadp($c)
    method _rsasp1 (line 2362) | function _rsasp1($m)
    method _rsavp1 (line 2380) | function _rsavp1($s)
    method _mgf1 (line 2399) | function _mgf1($mgfSeed, $maskLen)
    method _rsaes_oaep_encrypt (line 2424) | function _rsaes_oaep_encrypt($m, $l = '')
    method _rsaes_oaep_decrypt (line 2487) | function _rsaes_oaep_decrypt($c, $l = '')
    method _raw_encrypt (line 2552) | function _raw_encrypt($m)
    method _rsaes_pkcs1_v1_5_encrypt (line 2568) | function _rsaes_pkcs1_v1_5_encrypt($m)
    method _rsaes_pkcs1_v1_5_decrypt (line 2627) | function _rsaes_pkcs1_v1_5_decrypt($c)
    method _emsa_pss_encode (line 2676) | function _emsa_pss_encode($m, $emBits)
    method _emsa_pss_verify (line 2714) | function _emsa_pss_verify($m, $em, $emBits)
    method _rsassa_pss_sign (line 2759) | function _rsassa_pss_sign($m)
    method _rsassa_pss_verify (line 2786) | function _rsassa_pss_verify($m, $s)
    method _emsa_pkcs1_v1_5_encode (line 2826) | function _emsa_pkcs1_v1_5_encode($m, $emLen)
    method _rsassa_pkcs1_v1_5_sign (line 2877) | function _rsassa_pkcs1_v1_5_sign($m)
    method _rsassa_pkcs1_v1_5_verify (line 2907) | function _rsassa_pkcs1_v1_5_verify($m, $s)
    method setEncryptionMode (line 2950) | function setEncryptionMode($mode)
    method setSignatureMode (line 2963) | function setSignatureMode($mode)
    method setComment (line 2974) | function setComment($comment)
    method getComment (line 2985) | function getComment()
    method encrypt (line 3002) | function encrypt($plaintext)
    method decrypt (line 3048) | function decrypt($ciphertext)
    method sign (line 3090) | function sign($message)
    method verify (line 3114) | function verify($message, $signature)
    method _extractBER (line 3136) | function _extractBER($str)

FILE: assets/libraries/phpseclib/Crypt/Random.php
  function crypt_random_string (line 68) | function crypt_random_string($length)
  function phpseclib_safe_serialize (line 277) | function phpseclib_safe_serialize(&$arr)
  function phpseclib_resolve_include_path (line 313) | function phpseclib_resolve_include_path($filename)

FILE: assets/libraries/phpseclib/Crypt/Rijndael.php
  class Crypt_Rijndael (line 128) | class Crypt_Rijndael extends Crypt_Base
    method setKey (line 261) | function setKey($key)
    method setKeyLength (line 305) | function setKeyLength($length)
    method setBlockLength (line 336) | function setBlockLength($length)
    method isValidEngine (line 360) | function isValidEngine($engine)
    method _encryptBlock (line 388) | function _encryptBlock($in)
    method _decryptBlock (line 489) | function _decryptBlock($in)
    method _setupKey (line 578) | function _setupKey()
    method _subWord (line 691) | function _subWord($word)
    method _getTables (line 713) | function &_getTables()
    method _getInvTables (line 802) | function &_getInvTables()
    method _setupInlineCrypt (line 883) | function _setupInlineCrypt()

FILE: assets/libraries/phpseclib/Crypt/TripleDES.php
  class Crypt_TripleDES (line 95) | class Crypt_TripleDES extends Crypt_DES
    method __construct (line 199) | function __construct($mode = CRYPT_MODE_CBC)
    method Crypt_TripleDES (line 233) | function Crypt_TripleDES($mode = CRYPT_MODE_CBC)
    method isValidEngine (line 248) | function isValidEngine($engine)
    method setIV (line 269) | function setIV($iv)
    method setKeyLength (line 288) | function setKeyLength($length)
    method setKey (line 320) | function setKey($key)
    method encrypt (line 352) | function encrypt($plaintext)
    method decrypt (line 379) | function decrypt($ciphertext)
    method enableContinuousBuffer (line 434) | function enableContinuousBuffer()
    method disableContinuousBuffer (line 453) | function disableContinuousBuffer()
    method _setupKey (line 470) | function _setupKey()
    method setPreferredEngine (line 507) | function setPreferredEngine($engine)

FILE: assets/libraries/phpseclib/Crypt/Twofish.php
  class Crypt_Twofish (line 112) | class Crypt_Twofish extends Crypt_Base
    method setKeyLength (line 452) | function setKeyLength($length)
    method _setupKey (line 474) | function _setupKey()
    method _mdsrem (line 589) | function _mdsrem($A, $B)
    method _encryptBlock (line 636) | function _encryptBlock($in)
    method _decryptBlock (line 692) | function _decryptBlock($in)
    method _setupInlineCrypt (line 747) | function _setupInlineCrypt()

FILE: assets/libraries/phpseclib/File/ANSI.php
  class File_ANSI (line 46) | class File_ANSI
    method __construct (line 182) | function __construct()
    method File_ANSI (line 204) | function File_ANSI()
    method setDimensions (line 218) | function setDimensions($x, $y)
    method setHistory (line 237) | function setHistory($history)
    method loadString (line 248) | function loadString($source)
    method appendString (line 260) | function appendString($source)
    method _newLine (line 464) | function _newLine()
    method _processCoordinate (line 493) | function _processCoordinate($last_attr, $cur_attr, $char)
    method _getScreen (line 550) | function _getScreen()
    method getScreen (line 574) | function getScreen()
    method getHistory (line 585) | function getHistory()

FILE: assets/libraries/phpseclib/File/ASN1.php
  class File_ASN1_Element (line 117) | class File_ASN1_Element
    method __construct (line 134) | function __construct($encoded)
    method File_ASN1_Element (line 146) | function File_ASN1_Element($encoded)
  class File_ASN1 (line 159) | class File_ASN1
    method __construct (line 260) | function __construct()
    method File_ASN1 (line 277) | function File_ASN1()
    method decodeBER (line 291) | function decodeBER($encoded)
    method _decode_ber (line 315) | function _decode_ber($encoded, $start = 0, $encoded_pos = 0)
    method asn1map (line 594) | function asn1map($decoded, $mapping, $special = array())
    method encodeDER (line 896) | function encodeDER($source, $mapping, $special = array())
    method _encode_der (line 911) | function _encode_der($source, $mapping, $idx = null, $special = array())
    method _encodeLength (line 1223) | function _encodeLength($length)
    method _decodeUnixTime (line 1243) | function _decodeUnixTime($content, $tag)
    method _decodeDateTime (line 1293) | function _decodeDateTime($content, $tag)
    method setTimeFormat (line 1339) | function setTimeFormat($format)
    method loadOIDs (line 1352) | function loadOIDs($oids)
    method loadFilters (line 1365) | function loadFilters($filters)
    method _string_shift (line 1380) | function _string_shift(&$string, $index = 1)
    method convert (line 1399) | function convert($in, $from = FILE_ASN1_TYPE_UTF8_STRING, $to = FILE_A...

FILE: assets/libraries/phpseclib/File/X509.php
  class File_X509 (line 136) | class File_X509
    method __construct (line 345) | function __construct()
    method File_X509 (line 1473) | function File_X509()
    method loadX509 (line 1488) | function loadX509($cert, $mode = FILE_X509_FORMAT_AUTO_DETECT)
    method saveX509 (line 1561) | function saveX509($cert, $format = FILE_X509_FORMAT_PEM)
    method _mapInExtensions (line 1639) | function _mapInExtensions(&$root, $path, $asn1)
    method _mapOutExtensions (line 1689) | function _mapOutExtensions(&$root, $path, $asn1)
    method _mapInAttributes (line 1755) | function _mapInAttributes(&$root, $path, $asn1)
    method _mapOutAttributes (line 1796) | function _mapOutAttributes(&$root, $path, $asn1)
    method _mapInDNs (line 1839) | function _mapInDNs(&$root, $path, $asn1)
    method _mapOutDNs (line 1869) | function _mapOutDNs(&$root, $path, $asn1)
    method _getMapping (line 1899) | function _getMapping($extnId)
    method loadCA (line 2005) | function loadCA($cert)
    method validateURL (line 2072) | function validateURL($url)
    method validateDate (line 2131) | function validateDate($date = null)
    method _fetchURL (line 2179) | function _fetchURL($url)
    method _testForIntermediate (line 2231) | function _testForIntermediate($caonly, $count)
    method validateSignature (line 2298) | function validateSignature($caonly = true)
    method _validateSignatureCountable (line 2313) | function _validateSignatureCountable($caonly, $count)
    method _validateSignature (line 2446) | function _validateSignature($publicKeyAlgorithm, $publicKey, $signatur...
    method setRecurLimit (line 2491) | function setRecurLimit($count)
    method disableURLFetch (line 2501) | function disableURLFetch()
    method enableURLFetch (line 2511) | function enableURLFetch()
    method _reformatKey (line 2526) | function _reformatKey($algorithm, $key)
    method _decodeIP (line 2551) | function _decodeIP($ip)
    method _encodeIP (line 2567) | function _encodeIP($ip)
    method _translateDNProp (line 2579) | function _translateDNProp($propName)
    method setDNProp (line 2673) | function setDNProp($propName, $propValue, $type = 'utf8String')
    method removeDNProp (line 2704) | function removeDNProp($propName)
    method getDNProp (line 2738) | function getDNProp($propName, $dn = null, $withType = false)
    method setDN (line 2802) | function setDN($dn, $merge = false, $type = 'utf8String')
    method getDN (line 2844) | function getDN($format = FILE_X509_DN_ARRAY, $dn = null)
    method getIssuerDN (line 2995) | function getIssuerDN($format = FILE_X509_DN_ARRAY)
    method getSubjectDN (line 3017) | function getSubjectDN($format = FILE_X509_DN_ARRAY)
    method getIssuerDNProp (line 3041) | function getIssuerDNProp($propName, $withType = false)
    method getSubjectDNProp (line 3063) | function getSubjectDNProp($propName, $withType = false)
    method getChain (line 3085) | function getChain()
    method setPublicKey (line 3133) | function setPublicKey($key)
    method setPrivateKey (line 3147) | function setPrivateKey($key)
    method setChallenge (line 3160) | function setChallenge($challenge)
    method getPublicKey (line 3173) | function getPublicKey()
    method loadCSR (line 3216) | function loadCSR($csr, $mode = FILE_X509_FORMAT_AUTO_DETECT)
    method saveCSR (line 3301) | function saveCSR($csr, $format = FILE_X509_FORMAT_PEM)
    method loadSPKAC (line 3356) | function loadSPKAC($spkac)
    method saveSPKAC (line 3431) | function saveSPKAC($spkac, $format = FILE_X509_FORMAT_PEM)
    method loadCRL (line 3473) | function loadCRL($crl, $mode = FILE_X509_FORMAT_AUTO_DETECT)
    method saveCRL (line 3543) | function saveCRL($crl, $format = FILE_X509_FORMAT_PEM)
    method _timeField (line 3605) | function _timeField($date)
    method sign (line 3636) | function sign($issuer, $subject, $signatureAlgorithm = 'sha1WithRSAEnc...
    method signCSR (line 3826) | function signCSR($signatureAlgorithm = 'sha1WithRSAEncryption')
    method signSPKAC (line 3884) | function signSPKAC($signatureAlgorithm = 'sha1WithRSAEncryption')
    method signCRL (line 3954) | function signCRL($issuer, $crl, $signatureAlgorithm = 'sha1WithRSAEncr...
    method _sign (line 4088) | function _sign($key, $signatureAlgorithm)
    method setStartDate (line 4117) | function setStartDate($date)
    method setEndDate (line 4133) | function setEndDate($date)
    method setSerialNumber (line 4164) | function setSerialNumber($serial, $base = -256)
    method makeCA (line 4174) | function makeCA()
    method _isSubArrayValid (line 4191) | function _isSubArrayValid($root, $path)
    method _subArrayUnchecked (line 4228) | function &_subArrayUnchecked(&$root, $path, $create = false)
    method _subArray (line 4256) | function &_subArray(&$root, $path, $create = false)
    method _extensions (line 4292) | function &_extensions(&$root, $path = null, $create = false)
    method _removeExtension (line 4346) | function _removeExtension($id, $path = null)
    method _getExtension (line 4381) | function _getExtension($id, $cert = null, $path = null)
    method _getExtensions (line 4406) | function _getExtensions($cert = null, $path = null)
    method _setExtension (line 4431) | function _setExtension($id, $value, $critical = false, $replace = true...
    method removeExtension (line 4463) | function removeExtension($id)
    method getExtension (line 4478) | function getExtension($id, $cert = null)
    method getExtensions (line 4490) | function getExtensions($cert = null)
    method setExtension (line 4505) | function setExtension($id, $value, $critical = false, $replace = true)
    method removeAttribute (line 4518) | function removeAttribute($id, $disposition = FILE_X509_ATTR_ALL)
    method getAttribute (line 4569) | function getAttribute($id, $disposition = FILE_X509_ATTR_ALL, $csr = n...
    method getAttributes (line 4609) | function getAttributes($csr = null)
    method setAttribute (line 4636) | function setAttribute($id, $value, $disposition = FILE_X509_ATTR_ALL)
    method setKeyIdentifier (line 4691) | function setKeyIdentifier($value)
    method computeKeyIdentifier (line 4718) | function computeKeyIdentifier($key = null, $method = 1)
    method _formatSubjectPublicKey (line 4798) | function _formatSubjectPublicKey()
    method setDomain (line 4824) | function setDomain()
    method setIPAddress (line 4837) | function setIPAddress()
    method _dnsName (line 4855) | function _dnsName($domain)
    method _iPAddress (line 4869) | function _iPAddress($address)
    method _revokedCertificate (line 4883) | function _revokedCertificate(&$rclist, $serial, $create = false)
    method revoke (line 4918) | function revoke($serial, $date = null)
    method unrevoke (line 4944) | function unrevoke($serial)
    method getRevoked (line 4964) | function getRevoked($serial)
    method listRevoked (line 4982) | function listRevoked($crl = null)
    method removeRevokedCertificateExtension (line 5011) | function removeRevokedCertificateExtension($serial, $id)
    method getRevokedCertificateExtension (line 5033) | function getRevokedCertificateExtension($serial, $id, $crl = null)
    method getRevokedCertificateExtensions (line 5056) | function getRevokedCertificateExtensions($serial, $crl = null)
    method setRevokedCertificateExtension (line 5082) | function setRevokedCertificateExtension($serial, $id, $value, $critica...
    method _extractBER (line 5102) | function _extractBER($str)
    method getOID (line 5140) | function getOID($name)

FILE: assets/libraries/phpseclib/Math/BigInteger.php
  class Math_BigInteger (line 175) | class Math_BigInteger
    method __construct (line 245) | function __construct($x = 0, $base = 10)
    method Math_BigInteger (line 514) | function Math_BigInteger($x = 0, $base = 10)
    method toBytes (line 541) | function toBytes($twos_compliment = false)
    method toHex (line 642) | function toHex($twos_compliment = false)
    method toBits (line 669) | function toBits($twos_compliment = false)
    method toString (line 706) | function toString()
    method copy (line 757) | function copy()
    method __toString (line 776) | function __toString()
    method __clone (line 793) | function __clone()
    method __sleep (line 806) | function __sleep()
    method __wakeup (line 824) | function __wakeup()
    method __debugInfo (line 842) | function __debugInfo()
    method add (line 890) | function add($y)
    method _add (line 924) | function _add($x_value, $x_negative, $y_value, $y_negative)
    method subtract (line 1021) | function subtract($y)
    method _subtract (line 1055) | function _subtract($x_value, $x_negative, $y_value, $y_negative)
    method multiply (line 1156) | function multiply($x)
    method _multiply (line 1190) | function _multiply($x_value, $x_negative, $y_value, $y_negative)
    method _regularMultiply (line 1227) | function _regularMultiply($x_value, $y_value)
    method _karatsuba (line 1291) | function _karatsuba($x_value, $y_value)
    method _square (line 1329) | function _square($x = false)
    method _baseSquare (line 1347) | function _baseSquare($value)
    method _karatsubaSquare (line 1386) | function _karatsubaSquare($value)
    method divide (line 1443) | function divide($y)
    method _divide_digit (line 1624) | function _divide_digit($dividend, $divisor)
    method modPow (line 1680) | function modPow($e, $n)
    method powMod (line 1831) | function powMod($e, $n)
    method _slidingWindow (line 1850) | function _slidingWindow($e, $n, $mode)
    method _reduce (line 1927) | function _reduce($x, $n, $mode)
    method _prepareReduce (line 1964) | function _prepareReduce($x, $n, $mode)
    method _multiplyReduce (line 1983) | function _multiplyReduce($x, $y, $n, $mode)
    method _squareReduce (line 2002) | function _squareReduce($x, $n, $mode)
    method _mod2 (line 2021) | function _mod2($n)
    method _barrett (line 2052) | function _barrett($n, $m)
    method _regularBarrett (line 2149) | function _regularBarrett($x, $n)
    method _multiplyLower (line 2223) | function _multiplyLower($x_value, $x_negative, $y_value, $y_negative, ...
    method _montgomery (line 2302) | function _montgomery($x, $n)
    method _montgomeryMultiply (line 2350) | function _montgomeryMultiply($x, $y, $m)
    method _prepMontgomery (line 2401) | function _prepMontgomery($x, $n)
    method _modInverse67108864 (line 2438) | function _modInverse67108864($x) // 2**26 == 67,108,864
    method modInverse (line 2478) | function modInverse($n)
    method extendedGCD (line 2544) | function extendedGCD($n)
    method gcd (line 2675) | function gcd($n)
    method abs (line 2687) | function abs()
    method compare (line 2723) | function compare($y)
    method _compare (line 2746) | function _compare($x_value, $x_negative, $y_value, $y_negative)
    method equals (line 2781) | function equals($x)
    method setPrecision (line 2800) | function setPrecision($bits)
    method bitwise_and (line 2821) | function bitwise_and($x)
    method bitwise_or (line 2862) | function bitwise_or($x)
    method bitwise_xor (line 2902) | function bitwise_xor($x)
    method bitwise_not (line 2942) | function bitwise_not()
    method bitwise_rightShift (line 2984) | function bitwise_rightShift($shift)
    method bitwise_leftShift (line 3022) | function bitwise_leftShift($shift)
    method bitwise_leftRotate (line 3059) | function bitwise_leftRotate($shift)
    method bitwise_rightRotate (line 3104) | function bitwise_rightRotate($shift)
    method setRandomGenerator (line 3117) | function setRandomGenerator($generator)
    method _random_number_helper (line 3130) | function _random_number_helper($size)
    method random (line 3167) | function random($arg1, $arg2 = false)
    method randomPrime (line 3248) | function randomPrime($arg1, $arg2 = false, $timeout = false)
    method _make_odd (line 3348) | function _make_odd()
    method isPrime (line 3378) | function isPrime($t = false)
    method _lshift (line 3527) | function _lshift($shift)
    method _rshift (line 3562) | function _rshift($shift)
    method _normalize (line 3598) | function _normalize($result)
    method _trim (line 3647) | function _trim($value)
    method _array_repeat (line 3667) | function _array_repeat($input, $multiplier)
    method _base256_lshift (line 3682) | function _base256_lshift(&$x, $shift)
    method _base256_rshift (line 3711) | function _base256_rshift(&$x, $shift)
    method _int2bytes (line 3752) | function _int2bytes($x)
    method _bytes2int (line 3764) | function _bytes2int($x)
    method _encodeASN1Length (line 3780) | function _encodeASN1Length($length)
    method _safe_divide (line 3803) | function _safe_divide($x, $y)

FILE: assets/libraries/phpseclib/Net/SCP.php
  class Net_SCP (line 88) | class Net_SCP
    method __construct (line 123) | function __construct($ssh)
    method Net_SCP (line 151) | function Net_SCP($ssh)
    method put (line 177) | function put($remote_file, $data, $mode = NET_SCP_STRING, $callback = ...
    method get (line 256) | function get($remote_file, $local_file = false)
    method _send (line 312) | function _send($data)
    method _receive (line 330) | function _receive()
    method _close (line 368) | function _close()

FILE: assets/libraries/phpseclib/Net/SFTP.php
  class Net_SFTP (line 127) | class Net_SFTP extends Net_SSH2
    method __construct (line 314) | function __construct($host, $port = 22, $timeout = 10)
    method Net_SFTP (line 452) | function Net_SFTP($host, $port = 22, $timeout = 10)
    method login (line 465) | function login($username)
    method disableStatCache (line 631) | function disableStatCache()
    method enableStatCache (line 641) | function enableStatCache()
    method clearStatCache (line 651) | function clearStatCache()
    method enablePathCanonicalization (line 661) | function enablePathCanonicalization()
    method disablePathCanonicalization (line 671) | function disablePathCanonicalization()
    method pwd (line 682) | function pwd()
    method _logError (line 694) | function _logError($response, $status = -1)
    method realpath (line 723) | function realpath($path)
    method _realpath (line 742) | function _realpath($path)
    method chdir (line 805) | function chdir($dir)
    method nlist (line 868) | function nlist($dir = '.', $recursive = false)
    method _nlist_helper (line 882) | function _nlist_helper($dir, $recursive, $relativeDir)
    method rawlist (line 917) | function rawlist($dir = '.', $recursive = false)
    method _list (line 961) | function _list($dir, $raw = true)
    method _comparator (line 1083) | function _comparator($a, $b)
    method setListOrder (line 1157) | function setListOrder()
    method size (line 1182) | function size($filename)
    method _update_stat_cache (line 1202) | function _update_stat_cache($path, $value)
    method _remove_from_stat_cache (line 1246) | function _remove_from_stat_cache($path)
    method _query_stat_cache (line 1273) | function _query_stat_cache($path)
    method stat (line 1296) | function stat($filename)
    method lstat (line 1353) | function lstat($filename)
    method _stat (line 1420) | function _stat($filename, $type)
    method truncate (line 1449) | function truncate($filename, $new_size)
    method touch (line 1467) | function touch($filename, $time = null, $atime = null)
    method chown (line 1518) | function chown($filename, $uid, $recursive = false)
    method chgrp (line 1538) | function chgrp($filename, $gid, $recursive = false)
    method chmod (line 1557) | function chmod($mode, $filename, $recursive = false)
    method _setstat (line 1605) | function _setstat($filename, $attr, $recursive)
    method _setstat_recursive (line 1667) | function _setstat_recursive($path, $attr, &$i)
    method readlink (line 1735) | function readlink($link)
    method symlink (line 1785) | function symlink($target, $link)
    method mkdir (line 1824) | function mkdir($dir, $mode = -1, $recursive = false)
    method _mkdir_helper (line 1859) | function _mkdir_helper($dir, $attr)
    method rmdir (line 1890) | function rmdir($dir)
    method put (line 1977) | function put($remote_file, $data, $mode = NET_SFTP_STRING, $start = -1...
    method _read_put_responses (line 2139) | function _read_put_responses($i)
    method _close_handle (line 2168) | function _close_handle($handle)
    method get (line 2210) | function get($remote_file, $local_file = false, $offset = 0, $length =...
    method delete (line 2354) | function delete($path, $recursive = true)
    method _delete_recursive (line 2416) | function _delete_recursive($path, &$i)
    method file_exists (line 2482) | function file_exists($path)
    method is_dir (line 2505) | function is_dir($path)
    method is_file (line 2521) | function is_file($path)
    method is_link (line 2537) | function is_link($path)
    method is_readable (line 2553) | function is_readable($path)
    method is_writable (line 2581) | function is_writable($path)
    method is_writeable (line 2611) | function is_writeable($path)
    method fileatime (line 2623) | function fileatime($path)
    method filemtime (line 2635) | function filemtime($path)
    method fileperms (line 2647) | function fileperms($path)
    method fileowner (line 2659) | function fileowner($path)
    method filegroup (line 2671) | function filegroup($path)
    method filesize (line 2683) | function filesize($path)
    method filetype (line 2695) | function filetype($path)
    method _get_stat_cache_prop (line 2730) | function _get_stat_cache_prop($path, $prop)
    method _get_lstat_cache_prop (line 2745) | function _get_lstat_cache_prop($path, $prop)
    method _get_xstat_cache_prop (line 2760) | function _get_xstat_cache_prop($path, $prop, $type)
    method rename (line 2789) | function rename($oldname, $newname)
    method _parseAttributes (line 2841) | function _parseAttributes(&$response)
    method _parseMode (line 2923) | function _parseMode($mode)
    method _parseLongname (line 2970) | function _parseLongname($longname)
    method _send_sftp_packet (line 3002) | function _send_sftp_packet($type, $data, $request_id = 1)
    method _get_sftp_packet (line 3043) | function _get_sftp_packet($request_id = null)
    method getSFTPLog (line 3132) | function getSFTPLog()
    method getSFTPErrors (line 3154) | function getSFTPErrors()
    method getLastSFTPError (line 3165) | function getLastSFTPError()
    method getSupportedVersions (line 3176) | function getSupportedVersions()
    method _disconnect (line 3192) | function _disconnect($reason)

FILE: assets/libraries/phpseclib/Net/SFTP/Stream.php
  class Net_SFTP_Stream (line 43) | class Net_SFTP_Stream
    method register (line 135) | static function register($protocol = 'sftp')
    method __construct (line 149) | function __construct()
    method _parse_path (line 172) | function _parse_path($path)
    method _stream_open (line 278) | function _stream_open($path, $mode, $options, &$opened_path)
    method _stream_read (line 320) | function _stream_read($count)
    method _stream_write (line 362) | function _stream_write($data)
    method _stream_tell (line 396) | function _stream_tell()
    method _stream_eof (line 414) | function _stream_eof()
    method _stream_seek (line 427) | function _stream_seek($offset, $whence)
    method _stream_metadata (line 456) | function _stream_metadata($path, $option, $var)
    method _stream_cast (line 488) | function _stream_cast($cast_as)
    method _stream_lock (line 500) | function _stream_lock($operation)
    method _rename (line 517) | function _rename($path_from, $path_to)
    method _dir_opendir (line 569) | function _dir_opendir($path, $options)
    method _dir_readdir (line 586) | function _dir_readdir()
    method _dir_rewinddir (line 600) | function _dir_rewinddir()
    method _dir_closedir (line 612) | function _dir_closedir()
    method _mkdir (line 628) | function _mkdir($path, $mode, $options)
    method _rmdir (line 652) | function _rmdir($path, $options)
    method _stream_flush (line 670) | function _stream_flush()
    method _stream_stat (line 681) | function _stream_stat()
    method _unlink (line 697) | function _unlink($path)
    method _url_stat (line 719) | function _url_stat($path, $flags)
    method _stream_truncate (line 741) | function _stream_truncate($new_size)
    method _stream_set_option (line 765) | function _stream_set_option($option, $arg1, $arg2)
    method _stream_close (line 775) | function _stream_close()
    method __call (line 794) | function __call($name, $arguments)

FILE: assets/libraries/phpseclib/Net/SSH1.php
  class Net_SSH1 (line 233) | class Net_SSH1
    method __construct (line 518) | function __construct($host, $port = 22, $timeout = 10, $cipher = NET_S...
    method Net_SSH1 (line 570) | function Net_SSH1($host, $port = 22, $timeout = 10, $cipher = NET_SSH1...
    method _connect (line 581) | function _connect()
    method login (line 768) | function login($username, $password = '')
    method setTimeout (line 838) | function setTimeout($timeout)
    method exec (line 863) | function exec($cmd, $block = true)
    method _initShell (line 912) | function _initShell()
    method write (line 956) | function write($cmd)
    method read (line 973) | function read($expect, $mode = NET_SSH1_READ_SIMPLE)
    method interactiveWrite (line 1012) | function interactiveWrite($cmd)
    method interactiveRead (line 1047) | function interactiveRead()
    method disconnect (line 1074) | function disconnect()
    method __destruct (line 1087) | function __destruct()
    method _disconnect (line 1098) | function _disconnect($msg = 'Client Quit')
    method _get_binary_packet (line 1136) | function _get_binary_packet()
    method _send_binary_packet (line 1220) | function _send_binary_packet($data)
    method _crc (line 1268) | function _crc($data)
    method _string_shift (line 1365) | function _string_shift(&$string, $index = 1)
    method _rsa_crypt (line 1385) | function _rsa_crypt($m, $key)
    method _define_array (line 1437) | function _define_array()
    method getLog (line 1459) | function getLog()
    method _format_log (line 1485) | function _format_log($message_log, $message_number_log)
    method _format_log_helper (line 1520) | function _format_log_helper($matches)
    method getServerKeyPublicExponent (line 1535) | function getServerKeyPublicExponent($raw_output = false)
    method getServerKeyPublicModulus (line 1550) | function getServerKeyPublicModulus($raw_output = false)
    method getHostKeyPublicExponent (line 1565) | function getHostKeyPublicExponent($raw_output = false)
    method getHostKeyPublicModulus (line 1580) | function getHostKeyPublicModulus($raw_output = false)
    method getSupportedCiphers (line 1596) | function getSupportedCiphers($raw_output = false)
    method getSupportedAuthentications (line 1612) | function getSupportedAuthentications($raw_output = false)
    method getServerIdentification (line 1623) | function getServerIdentification()
    method _append_log (line 1636) | function _append_log($protocol_flags, $message)

FILE: assets/libraries/phpseclib/Net/SSH2.php
  class Net_SSH2 (line 157) | class Net_SSH2
    method __construct (line 955) | function __construct($host, $port = 22, $timeout = 10)
    method Net_SSH2 (line 1073) | function Net_SSH2($host, $port = 22, $timeout = 10)
    method setCryptoEngine (line 1087) | function setCryptoEngine($engine)
    method sendIdentificationStringFirst (line 1101) | function sendIdentificationStringFirst()
    method sendIdentificationStringLast (line 1115) | function sendIdentificationStringLast()
    method sendKEXINITFirst (line 1129) | function sendKEXINITFirst()
    method sendKEXINITLast (line 1143) | function sendKEXINITLast()
    method _connect (line 1154) | function _connect()
    method _generate_identifier (line 1292) | function _generate_identifier()
    method _key_exchange (line 1322) | function _key_exchange($kexinit_payload_server = false)
    method _encryption_algorithm_to_key_size (line 2165) | function _encryption_algorithm_to_key_size($algorithm)
    method _bad_algorithm_candidate (line 2210) | function _bad_algorithm_candidate($algorithm)
    method login (line 2234) | function login($username)
    method _login (line 2251) | function _login($username)
    method _login_helper (line 2282) | function _login_helper($username, $password = null)
    method _keyboard_interactive_login (line 2486) | function _keyboard_interactive_login($username, $password)
    method _keyboard_interactive_process (line 2517) | function _keyboard_interactive_process()
    method _ssh_agent_login (line 2651) | function _ssh_agent_login($username, $agent)
    method _privatekey_login (line 2674) | function _privatekey_login($username, $privatekey)
    method setTimeout (line 2804) | function setTimeout($timeout)
    method getStdError (line 2814) | function getStdError()
    method exec (line 2830) | function exec($command, $callback = null)
    method _initShell (line 2987) | function _initShell()
    method _get_interactive_channel (line 3095) | function _get_interactive_channel()
    method _get_open_channel (line 3113) | function _get_open_channel()
    method read (line 3137) | function read($expect = '', $mode = NET_SSH2_READ_SIMPLE)
    method write (line 3186) | function write($cmd)
    method startSubsystem (line 3215) | function startSubsystem($subsystem)
    method stopSubsystem (line 3277) | function stopSubsystem()
    method reset (line 3291) | function reset()
    method isTimeout (line 3303) | function isTimeout()
    method disconnect (line 3313) | function disconnect()
    method __destruct (line 3329) | function __destruct()
    method isConnected (line 3340) | function isConnected()
    method isAuthenticated (line 3351) | function isAuthenticated()
    method ping (line 3364) | function ping()
    method _reconnect (line 3403) | function _reconnect()
    method _reset_connection (line 3422) | function _reset_connection($reason)
    method _get_binary_packet (line 3443) | function _get_binary_packet($skip_channel_filter = false)
    method _filter (line 3545) | function _filter($payload, $skip_channel_filter)
    method enableQuietMode (line 3706) | function enableQuietMode()
    method disableQuietMode (line 3718) | function disableQuietMode()
    method isQuietModeEnabled (line 3732) | function isQuietModeEnabled()
    method enablePTY (line 3742) | function enablePTY()
    method disablePTY (line 3752) | function disablePTY()
    method isPTYEnabled (line 3770) | function isPTYEnabled()
    method _get_channel_packet (line 3784) | function _get_channel_packet($client_channel, $skip_extended = false)
    method _send_binary_packet (line 4051) | function _send_binary_packet($data, $logged = null)
    method _append_log (line 4109) | function _append_log($message_number, $message)
    method _send_channel_packet (line 4187) | function _send_channel_packet($client_channel, $data)
    method _close_channel (line 4235) | function _close_channel($client_channel, $want_reply = false)
    method _disconnect (line 4268) | function _disconnect($reason)
    method _string_shift (line 4289) | function _string_shift(&$string, $index = 1)
    method _define_array (line 4306) | function _define_array()
    method getLog (line 4328) | function getLog()
    method _format_log (line 4353) | function _format_log($message_log, $message_number_log)
    method _format_log_helper (line 4388) | function _format_log_helper($matches)
    method _on_channel_open (line 4402) | function _on_channel_open()
    method _array_intersect_first (line 4418) | function _array_intersect_first($array1, $array2)
    method getErrors (line 4434) | function getErrors()
    method getLastError (line 4445) | function getLastError()
    method getServerIdentification (line 4460) | function getServerIdentification()
    method getKexAlgorithms (line 4473) | function getKexAlgorithms()
    method getServerHostKeyAlgorithms (line 4486) | function getServerHostKeyAlgorithms()
    method getEncryptionAlgorithmsClient2Server (line 4499) | function getEncryptionAlgorithmsClient2Server()
    method getEncryptionAlgorithmsServer2Client (line 4512) | function getEncryptionAlgorithmsServer2Client()
    method getMACAlgorithmsClient2Server (line 4525) | function getMACAlgorithmsClient2Server()
    method getMACAlgorithmsServer2Client (line 4538) | function getMACAlgorithmsServer2Client()
    method getCompressionAlgorithmsClient2Server (line 4551) | function getCompressionAlgorithmsClient2Server()
    method getCompressionAlgorithmsServer2Client (line 4564) | function getCompressionAlgorithmsServer2Client()
    method getLanguagesServer2Client (line 4577) | function getLanguagesServer2Client()
    method getLanguagesClient2Server (line 4590) | function getLanguagesClient2Server()
    method getBannerMessage (line 4606) | function getBannerMessage()
    method getServerPublicHostKey (line 4620) | function getServerPublicHostKey()
    method getExitStatus (line 4829) | function getExitStatus()
    method getWindowColumns (line 4843) | function getWindowColumns()
    method getWindowRows (line 4854) | function getWindowRows()
    method setWindowColumns (line 4865) | function setWindowColumns($value)
    method setWindowRows (line 4876) | function setWindowRows($value)
    method setWindowSize (line 4888) | function setWindowSize($columns = 80, $rows = 24)

FILE: assets/libraries/phpseclib/System/SSH/Agent.php
  class System_SSH_Agent_Identity (line 107) | class System_SSH_Agent_Identity
    method __construct (line 153) | function __construct($fsock)
    method System_SSH_Agent_Identity (line 165) | function System_SSH_Agent_Identity($fsock)
    method setPublicKey (line 178) | function setPublicKey($key)
    method setPublicKeyBlob (line 193) | function setPublicKeyBlob($key_blob)
    method getPublicKey (line 207) | function getPublicKey($format = null)
    method setSignatureMode (line 221) | function setSignatureMode($mode)
    method setHash (line 233) | function setHash($hash)
    method sign (line 259) | function sign($message)
    method _string_shift (line 299) | function _string_shift(&$string, $index = 1)
  class System_SSH_Agent (line 316) | class System_SSH_Agent
    method __construct (line 355) | function __construct($address = null)
    method System_SSH_Agent (line 383) | function System_SSH_Agent($address = null)
    method requestIdentities (line 397) | function requestIdentities()
    method startSSHForwarding (line 461) | function startSSHForwarding($ssh)
    method _request_forwarding (line 475) | function _request_forwarding($ssh)
    method _on_channel_open (line 518) | function _on_channel_open($ssh)
    method _forward_data (line 532) | function _forward_data($data)

FILE: assets/vendor/chart.js/dist/Chart.extension.js
  function cornerAt (line 82) | function cornerAt(index) {

FILE: assets/vendor/jquery/dist/core.js
  function isArrayLike (line 381) | function isArrayLike( obj ) {

FILE: assets/vendor/onscreen/dist/on-screen.es6.js
  function attach (line 6) | function attach() {
  function inViewport (line 30) | function inViewport(el) {
  function inContainer (line 65) | function inContainer(el) {
  function eventHandler (line 113) | function eventHandler() {
  function debouncedScroll (line 164) | function debouncedScroll() {
  function destroy (line 183) | function destroy() {
  function off (line 197) | function off(event, selector, handler) {
  function on (line 225) | function on(event, selector, callback) {
  function observeDOM (line 265) | function observeDOM(obj, callback) {
  function OnScreen (line 288) | function OnScreen() {

FILE: assets/vendor/prismjs/components/index.js
  function getPeerDependentsMap (line 4) | function getPeerDependentsMap() {
  function getPeerDependents (line 26) | function getPeerDependents(mainLanguage) {
  function loadLanguages (line 33) | function loadLanguages(arr, withoutDependencies) {

FILE: run.php
  function packet_handler (line 125) | function packet_handler($str) {
Condensed preview — 99 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (2,309K chars).
[
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "chars": 834,
    "preview": "---\nname: Bug report\nabout: Create a report to help us improve\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n**Describe the b"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "chars": 595,
    "preview": "---\nname: Feature request\nabout: Suggest an idea for this project\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n**Is your fea"
  },
  {
    "path": "CITATION.cff",
    "chars": 575,
    "preview": "cff-version: 1.2.0\nmessage: \"If you use this repository in your research, please cite it as follows.\"\ntitle: \"Kali Linux"
  },
  {
    "path": "LICENSE",
    "chars": 1068,
    "preview": "MIT License\n\nCopyright (c) 2019 Lucas Fraga\n\nPermission is hereby granted, free of charge, to any person obtaining a cop"
  },
  {
    "path": "README.md",
    "chars": 3959,
    "preview": "<!-- TO DO PROJECT SHIELDS -->\n<a href=\"https://doi.org/10.5281/zenodo.17298709\"><img src=\"https://zenodo.org/badge/1789"
  },
  {
    "path": "assets/css/argon.css",
    "chars": 348546,
    "preview": "/*!\n\n=========================================================\n* Argon Dashboard - v1.0.0\n=============================="
  },
  {
    "path": "assets/css/bootstrap.css",
    "chars": 178152,
    "preview": "/*!\n * Bootstrap v4.0.0 (https://getbootstrap.com)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 T"
  },
  {
    "path": "assets/css/styles.css",
    "chars": 254,
    "preview": ".card {\n\tmargin-bottom: 1.0em;\n}\n\n.btn {\n\n    margin: 5px;\n}\n\n.zoom-effect {\n\t-webkit-transition: 0.6s ease;\n}\n\n.zoom-ef"
  },
  {
    "path": "assets/database.sql",
    "chars": 26957,
    "preview": "-- phpMyAdmin SQL Dump\n-- version 4.9.0.1\n-- https://www.phpmyadmin.net/\n--\n-- Host: 127.0.0.1\n-- Tempo de geração: 05-J"
  },
  {
    "path": "assets/includes/config.php",
    "chars": 582,
    "preview": "<?php\n\n\t// Functions\n\tfunction getConnectionDB() {\n\t\t$username = \"root\"; $password = \"\";\n\t\t$con = new PDO('mysql:host=lo"
  },
  {
    "path": "assets/includes/footer.php",
    "chars": 1711,
    "preview": "<!-- Footer -->\n\n<footer class=\"footer\">\n<div class=\"row align-items-center justify-content-xl-between\">\n  <div class=\"c"
  },
  {
    "path": "assets/includes/head.php",
    "chars": 869,
    "preview": "<head>\n    <title>Kali Linux Tools Interface</title>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width"
  },
  {
    "path": "assets/includes/header.php",
    "chars": 7384,
    "preview": "<?php \n    include(\"assets/includes/config.php\");\n?>\n\n<!-- Sidenav -->\n<nav class=\"navbar navbar-vertical fixed-left nav"
  },
  {
    "path": "assets/includes/list-commands.php",
    "chars": 2192,
    "preview": "<div class=\"collapse commands\" id=\"commands\">\n    <h5 class=\"heading-small mb-4\">List of commands</h5>\n          <div cl"
  },
  {
    "path": "assets/includes/tools-categories.php",
    "chars": 1565,
    "preview": "<div class=\"row\">\n\n<button class=\"btn btn-success filter-button\" data-filter=\"all\">\n\tAll\n</button>\n<!--<button class=\"bt"
  },
  {
    "path": "assets/js/argon.js",
    "chars": 21270,
    "preview": "/*!\n\n=========================================================\n* Argon Dashboard - v1.0.0\n=============================="
  },
  {
    "path": "assets/js/bootstrap.js",
    "chars": 115048,
    "preview": "/*!\n  * Bootstrap v4.0.0 (https://getbootstrap.com)\n  * Copyright 2011-2018 The Bootstrap Authors (https://github.com/tw"
  },
  {
    "path": "assets/libraries/phpseclib/Crypt/AES.php",
    "chars": 6200,
    "preview": "<?php\n\n/**\n * Pure-PHP implementation of AES.\n *\n * Uses mcrypt, if available/possible, and an internal implementation, "
  },
  {
    "path": "assets/libraries/phpseclib/Crypt/Base.php",
    "chars": 101250,
    "preview": "<?php\n\n/**\n * Base Class for all Crypt_* cipher classes\n *\n * PHP versions 4 and 5\n *\n * Internally for phpseclib develo"
  },
  {
    "path": "assets/libraries/phpseclib/Crypt/Blowfish.php",
    "chars": 29147,
    "preview": "<?php\n\n/**\n * Pure-PHP implementation of Blowfish.\n *\n * Uses mcrypt, if available, and an internal implementation, othe"
  },
  {
    "path": "assets/libraries/phpseclib/Crypt/DES.php",
    "chars": 74042,
    "preview": "<?php\n\n/**\n * Pure-PHP implementation of DES.\n *\n * Uses mcrypt, if available, and an internal implementation, otherwise"
  },
  {
    "path": "assets/libraries/phpseclib/Crypt/Hash.php",
    "chars": 31079,
    "preview": "<?php\n\n/**\n * Pure-PHP implementations of keyed-hash message authentication codes (HMACs) and various cryptographic hash"
  },
  {
    "path": "assets/libraries/phpseclib/Crypt/RC2.php",
    "chars": 24888,
    "preview": "<?php\n\n/**\n * Pure-PHP implementation of RC2.\n *\n * Uses mcrypt, if available, and an internal implementation, otherwise"
  },
  {
    "path": "assets/libraries/phpseclib/Crypt/RC4.php",
    "chars": 9842,
    "preview": "<?php\n\n/**\n * Pure-PHP implementation of RC4.\n *\n * Uses mcrypt, if available, and an internal implementation, otherwise"
  },
  {
    "path": "assets/libraries/phpseclib/Crypt/RSA.php",
    "chars": 110198,
    "preview": "<?php\n\n/**\n * Pure-PHP PKCS#1 (v2.1) compliant implementation of RSA.\n *\n * PHP versions 4 and 5\n *\n * Here's an example"
  },
  {
    "path": "assets/libraries/phpseclib/Crypt/Random.php",
    "chars": 15148,
    "preview": "<?php\n\n/**\n * Random Number Generator\n *\n * The idea behind this function is that it can be easily replaced with your ow"
  },
  {
    "path": "assets/libraries/phpseclib/Crypt/Rijndael.php",
    "chars": 45824,
    "preview": "<?php\n\n/**\n * Pure-PHP implementation of Rijndael.\n *\n * Uses mcrypt, if available/possible, and an internal implementat"
  },
  {
    "path": "assets/libraries/phpseclib/Crypt/TripleDES.php",
    "chars": 15450,
    "preview": "<?php\n\n/**\n * Pure-PHP implementation of Triple DES.\n *\n * Uses mcrypt, if available, and an internal implementation, ot"
  },
  {
    "path": "assets/libraries/phpseclib/Crypt/Twofish.php",
    "chars": 40405,
    "preview": "<?php\n\n/**\n * Pure-PHP implementation of Twofish.\n *\n * Uses mcrypt, if available, and an internal implementation, other"
  },
  {
    "path": "assets/libraries/phpseclib/File/ANSI.php",
    "chars": 21510,
    "preview": "<?php\n\n/**\n * Pure-PHP ANSI Decoder\n *\n * PHP versions 4 and 5\n *\n * If you call read() in Net_SSH2 you may get {@link h"
  },
  {
    "path": "assets/libraries/phpseclib/File/ASN1.php",
    "chars": 59154,
    "preview": "<?php\n\n/**\n * Pure-PHP ASN.1 Parser\n *\n * PHP versions 4 and 5\n *\n * ASN.1 provides the semantics for data encoded using"
  },
  {
    "path": "assets/libraries/phpseclib/File/X509.php",
    "chars": 191636,
    "preview": "<?php\n\n/**\n * Pure-PHP X.509 Parser\n *\n * PHP versions 4 and 5\n *\n * Encode and decode X.509 certificates.\n *\n * The ext"
  },
  {
    "path": "assets/libraries/phpseclib/Math/BigInteger.php",
    "chars": 130096,
    "preview": "<?php\n\n/**\n * Pure-PHP arbitrary precision integer arithmetic library.\n *\n * Supports base-2, base-10, base-16, and base"
  },
  {
    "path": "assets/libraries/phpseclib/Net/SCP.php",
    "chars": 10464,
    "preview": "<?php\n\n/**\n * Pure-PHP implementation of SCP.\n *\n * PHP versions 4 and 5\n *\n * The API for this library is modeled after"
  },
  {
    "path": "assets/libraries/phpseclib/Net/SFTP/Stream.php",
    "chars": 23072,
    "preview": "<?php\n\n/**\n * SFTP Stream Wrapper\n *\n * Creates an sftp:// protocol handler that can be used with, for example, fopen(),"
  },
  {
    "path": "assets/libraries/phpseclib/Net/SFTP.php",
    "chars": 101165,
    "preview": "<?php\n\n/**\n * Pure-PHP implementation of SFTP.\n *\n * PHP versions 4 and 5\n *\n * Currently only supports SFTPv2 and v3, w"
  },
  {
    "path": "assets/libraries/phpseclib/Net/SSH1.php",
    "chars": 54914,
    "preview": "<?php\n\n/**\n * Pure-PHP implementation of SSHv1.\n *\n * PHP versions 4 and 5\n *\n * Here's a short example of how to use th"
  },
  {
    "path": "assets/libraries/phpseclib/Net/SSH2.php",
    "chars": 166940,
    "preview": "<?php\n\n/**\n * Pure-PHP implementation of SSHv2.\n *\n * PHP versions 4 and 5\n *\n * Here are some examples of how to use th"
  },
  {
    "path": "assets/libraries/phpseclib/System/SSH/Agent.php",
    "chars": 15785,
    "preview": "<?php\n\n/**\n * Pure-PHP ssh-agent client.\n *\n * PHP versions 4 and 5\n *\n * Here are some examples of how to use this libr"
  },
  {
    "path": "assets/libraries/phpseclib/System/SSH_Agent.php",
    "chars": 1828,
    "preview": "<?php\n/**\n * Pure-PHP ssh-agent client wrapper\n *\n * PHP versions 4 and 5\n *\n * Originally System_SSH_Agent was accessed"
  },
  {
    "path": "assets/libraries/phpseclib/bootstrap.php",
    "chars": 432,
    "preview": "<?php\n/**\n * Bootstrapping File for phpseclib\n *\n * @license http://www.opensource.org/licenses/mit-license.html MIT Lic"
  },
  {
    "path": "assets/libraries/phpseclib/openssl.cnf",
    "chars": 104,
    "preview": "# minimalist openssl.cnf file for use with phpseclib\n\nHOME\t\t\t= .\nRANDFILE\t\t= $ENV::HOME/.rnd\n\n[ v3_ca ]\n"
  },
  {
    "path": "assets/vendor/@fortawesome/fontawesome-free/LICENSE.txt",
    "chars": 1548,
    "preview": "Font Awesome Free License\n-------------------------\n\nFont Awesome Free is free, open source, and GPL friendly. You can u"
  },
  {
    "path": "assets/vendor/anchor-js/banner.js",
    "chars": 571,
    "preview": "const fs = require('fs');\nconst pkg = require('./package.json');\nconst filename = 'anchor.min.js';\nconst script = fs.rea"
  },
  {
    "path": "assets/vendor/chart.js/dist/Chart.extension.js",
    "chars": 3552,
    "preview": "//\n// Chart extension for making the bars rounded\n// Code from: https://codepen.io/jedtrow/full/ygRYgo\n//\n\nChart.element"
  },
  {
    "path": "assets/vendor/holderjs/package.js",
    "chars": 340,
    "preview": "Package.describe({\n    summary: 'Holder uses SVG to render image placeholders entirely in browser.',\n    version: '2.9.4"
  },
  {
    "path": "assets/vendor/jquery/dist/core.js",
    "chars": 9068,
    "preview": "/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in "
  },
  {
    "path": "assets/vendor/jquery.scrollbar/index.js",
    "chars": 68,
    "preview": "require('./jquery.scrollbar');\nmodule.exports = 'jQueryScrollbar';\n\n"
  },
  {
    "path": "assets/vendor/jquery.scrollbar/jquery.scrollbar.css",
    "chars": 22152,
    "preview": "/*************** SCROLLBAR BASE CSS ***************/\n.scroll-wrapper {\n  overflow: hidden !important;\n  padding: 0 !impo"
  },
  {
    "path": "assets/vendor/jquery.scrollbar/license-gpl.txt",
    "chars": 15099,
    "preview": "        GNU GENERAL PUBLIC LICENSE\n           Version 2, June 1991\n\n Copyright (C) 1989, 1991 Free Software Foundation, "
  },
  {
    "path": "assets/vendor/jquery.scrollbar/license-mit.txt",
    "chars": 1080,
    "preview": "Copyright (c) 2013 Yuriy Khabarov <13real008@gmail.com>\n\nPermission is hereby granted, free of charge, to any person obt"
  },
  {
    "path": "assets/vendor/jquery.scrollbar/meteor/tests.js",
    "chars": 385,
    "preview": "'use strict';\n\nTinytest.add('Scrollbar integration', function (test) {\n\n    var div = document.createElement('div');\n   "
  },
  {
    "path": "assets/vendor/jquery.scrollbar/package.js",
    "chars": 964,
    "preview": "// package metadata file for Meteor.js\n'use strict';\n\nvar packageName = 'gromo:jquery.scrollbar'; // https://atmospherej"
  },
  {
    "path": "assets/vendor/jquery.scrollbar/sass/config.rb",
    "chars": 61,
    "preview": "require 'compass/import-once/activate'\nline_comments = false\n"
  },
  {
    "path": "assets/vendor/jquery.scrollbar/scrollbar.jquery.json",
    "chars": 1161,
    "preview": "{\n    \"name\": \"scrollbar\",\n    \"title\": \"jQuery Scrollbar\",\n    \"description\": \"Cross-browser CSS customizable scrollbar"
  },
  {
    "path": "assets/vendor/nucleo/css/nucleo-svg.css",
    "chars": 2253,
    "preview": "/* Generated using nucleoapp.com */\n/* --------------------------------\n\nIcon colors\n\n-------------------------------- *"
  },
  {
    "path": "assets/vendor/nucleo/css/nucleo.css",
    "chars": 9015,
    "preview": "/*--------------------------------\n\nhermes-dashboard-icons Web Font - built using nucleoapp.com\nLicense - nucleoapp.com/"
  },
  {
    "path": "assets/vendor/onscreen/dist/on-screen.es6.js",
    "chars": 11535,
    "preview": "/**\n * Attaches the scroll event handler\n *\n * @return {void}\n */\nfunction attach() {\n    var container = this.options.c"
  },
  {
    "path": "assets/vendor/prismjs/components/index.js",
    "chars": 2157,
    "preview": "var components = require('../components.js');\nvar peerDependentsMap = null;\n\nfunction getPeerDependentsMap() {\n\tvar peer"
  },
  {
    "path": "assets/vendor/prismjs/components.js",
    "chars": 11452,
    "preview": "var components = {\"core\":{\"meta\":{\"path\":\"components/prism-core.js\",\"option\":\"mandatory\"},\"core\":\"Core\"},\"themes\":{\"meta"
  },
  {
    "path": "assets/vendor/prismjs/components.json",
    "chars": 15126,
    "preview": "{\n\t\"core\": {\n\t\t\"meta\": {\n\t\t\t\"path\": \"components/prism-core.js\",\n\t\t\t\"option\": \"mandatory\"\n\t\t},\n\t\t\"core\": \"Core\"\n\t},\n\t\"the"
  },
  {
    "path": "assets/vendor/prismjs/plugins/autolinker/prism-autolinker.css",
    "chars": 29,
    "preview": ".token a {\n\tcolor: inherit;\n}"
  },
  {
    "path": "assets/vendor/prismjs/plugins/command-line/prism-command-line.css",
    "chars": 683,
    "preview": ".command-line-prompt {\n\tborder-right: 1px solid #999;\n\tdisplay: block;\n\tfloat: left;\n\tfont-size: 100%;\n\tletter-spacing: "
  },
  {
    "path": "assets/vendor/prismjs/plugins/line-highlight/prism-line-highlight.css",
    "chars": 987,
    "preview": "pre[data-line] {\n\tposition: relative;\n\tpadding: 1em 0 1em 3em;\n}\n\n.line-highlight {\n\tposition: absolute;\n\tleft: 0;\n\trigh"
  },
  {
    "path": "assets/vendor/prismjs/plugins/line-numbers/prism-line-numbers.css",
    "chars": 806,
    "preview": "pre[class*=\"language-\"].line-numbers {\n\tposition: relative;\n\tpadding-left: 3.8em;\n\tcounter-reset: linenumber;\n}\n\npre[cla"
  },
  {
    "path": "assets/vendor/prismjs/plugins/previewers/prism-previewers.css",
    "chars": 5025,
    "preview": ".prism-previewer,\n.prism-previewer:before,\n.prism-previewer:after {\n\tposition: absolute;\n\tpointer-events: none;\n}\n.prism"
  },
  {
    "path": "assets/vendor/prismjs/plugins/show-invisibles/prism-show-invisibles.css",
    "chars": 462,
    "preview": ".token.tab:not(:empty),\n.token.cr,\n.token.lf,\n.token.space {\n\tposition: relative;\n}\n\n.token.tab:not(:empty):before,\n.tok"
  },
  {
    "path": "assets/vendor/prismjs/plugins/toolbar/prism-toolbar.css",
    "chars": 1164,
    "preview": "div.code-toolbar {\n\tposition: relative;\n}\n\ndiv.code-toolbar > .toolbar {\n\tposition: absolute;\n\ttop: .3em;\n\tright: .2em;\n"
  },
  {
    "path": "assets/vendor/prismjs/plugins/unescaped-markup/prism-unescaped-markup.css",
    "chars": 359,
    "preview": "/* Fallback, in case JS does not run, to ensure the code is at least visible */\n[class*='lang-'] script[type='text/plain"
  },
  {
    "path": "assets/vendor/prismjs/plugins/wpd/prism-wpd.css",
    "chars": 235,
    "preview": "code[class*=\"language-\"] a[href],\npre[class*=\"language-\"] a[href] {\n\tcursor: help;\n\ttext-decoration: none;\n}\n\ncode[class"
  },
  {
    "path": "assets/vendor/prismjs/prism.js",
    "chars": 21992,
    "preview": "\n/* **********************************************\n     Begin prism-core.js\n********************************************"
  },
  {
    "path": "assets/vendor/prismjs/themes/prism-coy.css",
    "chars": 4154,
    "preview": "/**\n * prism.js Coy theme for JavaScript, CoffeeScript, CSS and HTML\n * Based on https://github.com/tshedor/workshop-wp-"
  },
  {
    "path": "assets/vendor/prismjs/themes/prism-dark.css",
    "chars": 2043,
    "preview": "/**\n * prism.js Dark theme for JavaScript, CSS and HTML\n * Based on the slides of the talk “/Reg(exp){2}lained/”\n * @aut"
  },
  {
    "path": "assets/vendor/prismjs/themes/prism-funky.css",
    "chars": 2023,
    "preview": "/**\n * prism.js Funky theme\n * Based on “Polyfilling the gaps” talk slides http://lea.verou.me/polyfilling-the-gaps/\n * "
  },
  {
    "path": "assets/vendor/prismjs/themes/prism-okaidia.css",
    "chars": 1791,
    "preview": "/**\n * okaidia theme for JavaScript, CSS and HTML\n * Loosely based on Monokai textmate theme by http://www.monokai.nl/\n "
  },
  {
    "path": "assets/vendor/prismjs/themes/prism-solarizedlight.css",
    "chars": 2583,
    "preview": "/*\n Solarized Color Schemes originally by Ethan Schoonover\n http://ethanschoonover.com/solarized\n\n Ported for PrismJS by"
  },
  {
    "path": "assets/vendor/prismjs/themes/prism-tomorrow.css",
    "chars": 1749,
    "preview": "/**\n * prism.js tomorrow night eighties for JavaScript, CoffeeScript, CSS and HTML\n * Based on https://github.com/chrisk"
  },
  {
    "path": "assets/vendor/prismjs/themes/prism-twilight.css",
    "chars": 4088,
    "preview": "/**\n * prism.js Twilight theme\n * Based (more or less) on the Twilight theme originally of Textmate fame.\n * @author Rem"
  },
  {
    "path": "assets/vendor/prismjs/themes/prism.css",
    "chars": 2241,
    "preview": "/**\n * prism.js default theme for JavaScript, CSS and HTML\n * Based on dabblet (http://dabblet.com)\n * @author Lea Verou"
  },
  {
    "path": "debian.php",
    "chars": 1101,
    "preview": "<!DOCTYPE html>\n<html>\n  <?php \n  \tinclude(\"assets/includes/head.php\"); \n  ?>\n<body>\n\t<?php\n\t\tinclude(\"assets/includes/h"
  },
  {
    "path": "delete-reports.php",
    "chars": 455,
    "preview": "<?php\n\n\t$id = $_GET['id'];\n\n\trequire(\"assets/includes/config.php\"); \n\n\t$con = getConnectionDB() or die (\"Could not conne"
  },
  {
    "path": "gitbook/README.md",
    "chars": 1281,
    "preview": "<!-- LOGO -->\n<p align=\"center\">\n  <img src=\"../assets/img/logo.png\" alt=\"Logo\" width=\"80\" height=\"80\">\n  <h3 align=\"cen"
  },
  {
    "path": "gitbook/arquitetura.md",
    "chars": 82,
    "preview": "# Arquitetura\n\n<p align=\"center\">\n\t<img src=\"assets/images/arquitetura.png\">\n</p>\n"
  },
  {
    "path": "gitbook/mapa-mental.md",
    "chars": 201,
    "preview": "# Mapa Mental\n\nO seguinte mapa mental foi construido utilizando a ferramenta <a href=\"https://www.mindmeister.com\">Mind "
  },
  {
    "path": "gitbook/mvp-canvas.md",
    "chars": 466,
    "preview": "# Project Model Canvas\n\nPara a modelagem do projeto <b>Kali Linux Tools Interface</b> foi utilizada a ferramenta Canvas "
  },
  {
    "path": "gitbook/personas.md",
    "chars": 582,
    "preview": "# Personas\n\n## Elliot\n- Idade: 26 anos\n- Analista de Segurança da Informação.\n- Utiliza ferramentas do Kali Linux profis"
  },
  {
    "path": "gitbook/sprint-backlog.md",
    "chars": 341,
    "preview": "# Sprint Backlog\n\nO controle de execução das tarefas foi realizado com a ferramenta <a href=\"https://www.trello.com\">Tre"
  },
  {
    "path": "index.php",
    "chars": 3557,
    "preview": "<!DOCTYPE html>\n<html>\n  <?php \n  \tinclude(\"assets/includes/head.php\"); \n  ?>\n<body>\n\t<?php\n\t\tinclude(\"assets/includes/h"
  },
  {
    "path": "login-validation.php",
    "chars": 671,
    "preview": "<?php\n\tsession_start();\n\tsession_destroy();\n\n\t$host = $_POST[\"host\"];\n\t$user = $_POST[\"user\"];\n\t$password = $_POST[\"pass"
  },
  {
    "path": "login.php",
    "chars": 3402,
    "preview": "<!DOCTYPE html>\n<html>\n<head>\n  <?php \n  \tinclude(\"assets/includes/head.php\"); \n    session_start();\n  ?>\n</head>\n<body>"
  },
  {
    "path": "logout.php",
    "chars": 134,
    "preview": "<?php \n\t// Inicia sessões, para assim poder destruí-las \n\tsession_start(); \n\tsession_destroy(); \n \n\theader(\"Location: lo"
  },
  {
    "path": "profile.php",
    "chars": 672,
    "preview": "<!DOCTYPE html>\n<html>\n  <?php \n  \tinclude(\"assets/includes/head.php\"); \n  ?>\n<body>\n\t<?php\n\t\tinclude(\"assets/includes/h"
  },
  {
    "path": "reports.php",
    "chars": 3440,
    "preview": "<!DOCTYPE html>\n<html>\n  <?php \n  \tinclude(\"assets/includes/head.php\"); \n  ?>\n<body>\n\t<?php\n\t\tinclude(\"assets/includes/h"
  },
  {
    "path": "run.php",
    "chars": 5116,
    "preview": "<?php\n\tsession_start();\n\t$host = $_SESSION[\"host\"];\n\t$user = $_SESSION[\"user\"];\n\t$password = $_SESSION[\"password\"];\n\n\t//"
  },
  {
    "path": "save-reports.php",
    "chars": 3756,
    "preview": "<?php\n  $tool = $_POST[\"tool_selected\"];\n  $command_executed = $_POST[\"command_executed\"];\n  $report_name = $_POST[\"repo"
  },
  {
    "path": "selected-report.php",
    "chars": 2841,
    "preview": "<!DOCTYPE html>\n<html>\n  <?php \n  \tinclude(\"assets/includes/head.php\"); \n    $id = $_GET['id'];\n  ?>\n<body>\n\t<?php\n\t\tinc"
  },
  {
    "path": "selected-tool.php",
    "chars": 12737,
    "preview": "<!DOCTYPE html>\n<html>\n  <?php \n    include(\"assets/includes/head.php\"); \n    $tool = $_GET['id'];\n  ?>\n<body>\n  <?php\n "
  },
  {
    "path": "terminal.php",
    "chars": 867,
    "preview": "<!DOCTYPE html>\n<html>\n  <?php \n  \tinclude(\"assets/includes/head.php\"); \n  ?>\n<body>\n\t<?php\n\t\tinclude(\"assets/includes/h"
  },
  {
    "path": "tools-list.php",
    "chars": 5502,
    "preview": "<!DOCTYPE html>\n<html>\n  <?php \n  \tinclude(\"assets/includes/head.php\"); \n  ?>\n<body>\n\t<?php\n\t\tinclude(\"assets/includes/h"
  }
]

About this extraction

This page contains the full source code of the lucasfrag/Kali-Linux-Tools-Interface GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 99 files (2.1 MB), approximately 554.8k tokens, and a symbol index with 691 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!