diff --git a/app/Http/Controllers/CitasController.php b/app/Http/Controllers/CitasController.php
index a664895..daac93b 100644
--- a/app/Http/Controllers/CitasController.php
+++ b/app/Http/Controllers/CitasController.php
@@ -19,7 +19,7 @@ public function index()
public function create()
{
- $User =User::get();
+ $User = User::get();
return view('admin.Citas.create');
}
@@ -32,12 +32,14 @@ public function store(Request $request)
public function show($id)
{
- $Citas =Citas::find($id);
+ $Citas = Citas::find($id);
return view('admin.Citas.show')->with('Citas', $Citas);
}
public function edit($id)
{
+ $User = User::all();
+
$Citas =Citas::find($id);
return view('admin.Citas.edit')->with('Citas', $Citas);
}
diff --git a/composer.lock b/composer.lock
index 0095894..1127168 100644
--- a/composer.lock
+++ b/composer.lock
@@ -165,16 +165,16 @@
},
{
"name": "dflydev/dot-access-data",
- "version": "v3.0.1",
+ "version": "v3.0.2",
"source": {
"type": "git",
"url": "https://github.com/dflydev/dflydev-dot-access-data.git",
- "reference": "0992cc19268b259a39e86f296da5f0677841f42c"
+ "reference": "f41715465d65213d644d3141a6a93081be5d3549"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/0992cc19268b259a39e86f296da5f0677841f42c",
- "reference": "0992cc19268b259a39e86f296da5f0677841f42c",
+ "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/f41715465d65213d644d3141a6a93081be5d3549",
+ "reference": "f41715465d65213d644d3141a6a93081be5d3549",
"shasum": ""
},
"require": {
@@ -185,7 +185,7 @@
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.3",
"scrutinizer/ocular": "1.6.0",
"squizlabs/php_codesniffer": "^3.5",
- "vimeo/psalm": "^3.14"
+ "vimeo/psalm": "^4.0.0"
},
"type": "library",
"extra": {
@@ -234,9 +234,9 @@
],
"support": {
"issues": "https://github.com/dflydev/dflydev-dot-access-data/issues",
- "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.1"
+ "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.2"
},
- "time": "2021-08-13T13:06:58+00:00"
+ "time": "2022-10-27T11:44:00+00:00"
},
{
"name": "doctrine/inflector",
@@ -1000,16 +1000,16 @@
},
{
"name": "laravel/fortify",
- "version": "v1.13.5",
+ "version": "v1.13.7",
"source": {
"type": "git",
"url": "https://github.com/laravel/fortify.git",
- "reference": "c3c42f1263c657c2a385c85007944b450d437cf6"
+ "reference": "28c2dc66639571ac656c13617a1a0876a82319b1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/fortify/zipball/c3c42f1263c657c2a385c85007944b450d437cf6",
- "reference": "c3c42f1263c657c2a385c85007944b450d437cf6",
+ "url": "https://api.github.com/repos/laravel/fortify/zipball/28c2dc66639571ac656c13617a1a0876a82319b1",
+ "reference": "28c2dc66639571ac656c13617a1a0876a82319b1",
"shasum": ""
},
"require": {
@@ -1059,20 +1059,20 @@
"issues": "https://github.com/laravel/fortify/issues",
"source": "https://github.com/laravel/fortify"
},
- "time": "2022-10-21T10:14:28+00:00"
+ "time": "2022-11-04T20:57:17+00:00"
},
{
"name": "laravel/framework",
- "version": "v9.37.0",
+ "version": "v9.41.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
- "reference": "0c9675abf6d966e834b2ebeca3319f524e07a330"
+ "reference": "cc902ce61b4ca08ca7449664cfab2fa96a1d1e28"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/framework/zipball/0c9675abf6d966e834b2ebeca3319f524e07a330",
- "reference": "0c9675abf6d966e834b2ebeca3319f524e07a330",
+ "url": "https://api.github.com/repos/laravel/framework/zipball/cc902ce61b4ca08ca7449664cfab2fa96a1d1e28",
+ "reference": "cc902ce61b4ca08ca7449664cfab2fa96a1d1e28",
"shasum": ""
},
"require": {
@@ -1245,7 +1245,7 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
- "time": "2022-10-25T15:43:46+00:00"
+ "time": "2022-11-22T15:10:46+00:00"
},
{
"name": "laravel/sanctum",
@@ -1374,16 +1374,16 @@
},
{
"name": "laravel/tinker",
- "version": "v2.7.2",
+ "version": "v2.7.3",
"source": {
"type": "git",
"url": "https://github.com/laravel/tinker.git",
- "reference": "dff39b661e827dae6e092412f976658df82dbac5"
+ "reference": "5062061b4924af3392225dd482ca7b4d85d8b8ef"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/tinker/zipball/dff39b661e827dae6e092412f976658df82dbac5",
- "reference": "dff39b661e827dae6e092412f976658df82dbac5",
+ "url": "https://api.github.com/repos/laravel/tinker/zipball/5062061b4924af3392225dd482ca7b4d85d8b8ef",
+ "reference": "5062061b4924af3392225dd482ca7b4d85d8b8ef",
"shasum": ""
},
"require": {
@@ -1436,22 +1436,22 @@
],
"support": {
"issues": "https://github.com/laravel/tinker/issues",
- "source": "https://github.com/laravel/tinker/tree/v2.7.2"
+ "source": "https://github.com/laravel/tinker/tree/v2.7.3"
},
- "time": "2022-03-23T12:38:24+00:00"
+ "time": "2022-11-09T15:11:38+00:00"
},
{
"name": "league/commonmark",
- "version": "2.3.5",
+ "version": "2.3.7",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/commonmark.git",
- "reference": "84d74485fdb7074f4f9dd6f02ab957b1de513257"
+ "reference": "a36bd2be4f5387c0f3a8792a0d76b7d68865abbf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/84d74485fdb7074f4f9dd6f02ab957b1de513257",
- "reference": "84d74485fdb7074f4f9dd6f02ab957b1de513257",
+ "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/a36bd2be4f5387c0f3a8792a0d76b7d68865abbf",
+ "reference": "a36bd2be4f5387c0f3a8792a0d76b7d68865abbf",
"shasum": ""
},
"require": {
@@ -1471,7 +1471,7 @@
"erusev/parsedown": "^1.0",
"ext-json": "*",
"github/gfm": "0.29.0",
- "michelf/php-markdown": "^1.4",
+ "michelf/php-markdown": "^1.4 || ^2.0",
"nyholm/psr7": "^1.5",
"phpstan/phpstan": "^1.8.2",
"phpunit/phpunit": "^9.5.21",
@@ -1544,7 +1544,7 @@
"type": "tidelift"
}
],
- "time": "2022-07-29T10:59:45+00:00"
+ "time": "2022-11-03T17:29:46+00:00"
},
{
"name": "league/config",
@@ -1630,16 +1630,16 @@
},
{
"name": "league/flysystem",
- "version": "3.10.2",
+ "version": "3.10.3",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem.git",
- "reference": "b9bd194b016114d6ff6765c09d40c7d427e4e3f6"
+ "reference": "8013fb046c6a244b2b1b75cc95d732ed6bcdeb8a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/b9bd194b016114d6ff6765c09d40c7d427e4e3f6",
- "reference": "b9bd194b016114d6ff6765c09d40c7d427e4e3f6",
+ "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/8013fb046c6a244b2b1b75cc95d732ed6bcdeb8a",
+ "reference": "8013fb046c6a244b2b1b75cc95d732ed6bcdeb8a",
"shasum": ""
},
"require": {
@@ -1701,7 +1701,7 @@
],
"support": {
"issues": "https://github.com/thephpleague/flysystem/issues",
- "source": "https://github.com/thephpleague/flysystem/tree/3.10.2"
+ "source": "https://github.com/thephpleague/flysystem/tree/3.10.3"
},
"funding": [
{
@@ -1717,7 +1717,7 @@
"type": "tidelift"
}
],
- "time": "2022-10-25T07:01:47+00:00"
+ "time": "2022-11-14T10:42:43+00:00"
},
{
"name": "league/mime-type-detection",
@@ -1952,16 +1952,16 @@
},
{
"name": "nesbot/carbon",
- "version": "2.62.1",
+ "version": "2.63.0",
"source": {
"type": "git",
"url": "https://github.com/briannesbitt/Carbon.git",
- "reference": "01bc4cdefe98ef58d1f9cb31bdbbddddf2a88f7a"
+ "reference": "ad35dd71a6a212b98e4b87e97389b6fa85f0e347"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/01bc4cdefe98ef58d1f9cb31bdbbddddf2a88f7a",
- "reference": "01bc4cdefe98ef58d1f9cb31bdbbddddf2a88f7a",
+ "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/ad35dd71a6a212b98e4b87e97389b6fa85f0e347",
+ "reference": "ad35dd71a6a212b98e4b87e97389b6fa85f0e347",
"shasum": ""
},
"require": {
@@ -2050,29 +2050,29 @@
"type": "tidelift"
}
],
- "time": "2022-09-02T07:48:13+00:00"
+ "time": "2022-10-30T18:34:28+00:00"
},
{
"name": "nette/schema",
- "version": "v1.2.2",
+ "version": "v1.2.3",
"source": {
"type": "git",
"url": "https://github.com/nette/schema.git",
- "reference": "9a39cef03a5b34c7de64f551538cbba05c2be5df"
+ "reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/schema/zipball/9a39cef03a5b34c7de64f551538cbba05c2be5df",
- "reference": "9a39cef03a5b34c7de64f551538cbba05c2be5df",
+ "url": "https://api.github.com/repos/nette/schema/zipball/abbdbb70e0245d5f3bf77874cea1dfb0c930d06f",
+ "reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f",
"shasum": ""
},
"require": {
"nette/utils": "^2.5.7 || ^3.1.5 || ^4.0",
- "php": ">=7.1 <8.2"
+ "php": ">=7.1 <8.3"
},
"require-dev": {
"nette/tester": "^2.3 || ^2.4",
- "phpstan/phpstan-nette": "^0.12",
+ "phpstan/phpstan-nette": "^1.0",
"tracy/tracy": "^2.7"
},
"type": "library",
@@ -2110,9 +2110,9 @@
],
"support": {
"issues": "https://github.com/nette/schema/issues",
- "source": "https://github.com/nette/schema/tree/v1.2.2"
+ "source": "https://github.com/nette/schema/tree/v1.2.3"
},
- "time": "2021-10-15T11:40:02+00:00"
+ "time": "2022-10-13T01:24:26+00:00"
},
{
"name": "nette/utils",
@@ -2201,16 +2201,16 @@
},
{
"name": "nikic/php-parser",
- "version": "v4.15.1",
+ "version": "v4.15.2",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900"
+ "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/0ef6c55a3f47f89d7a374e6f835197a0b5fcf900",
- "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc",
+ "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc",
"shasum": ""
},
"require": {
@@ -2251,22 +2251,22 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.1"
+ "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.2"
},
- "time": "2022-09-04T07:30:47+00:00"
+ "time": "2022-11-12T15:38:23+00:00"
},
{
"name": "nunomaduro/termwind",
- "version": "v1.14.1",
+ "version": "v1.14.2",
"source": {
"type": "git",
"url": "https://github.com/nunomaduro/termwind.git",
- "reference": "86fc30eace93b9b6d4c844ba6de76db84184e01b"
+ "reference": "9a8218511eb1a0965629ff820dda25985440aefc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/86fc30eace93b9b6d4c844ba6de76db84184e01b",
- "reference": "86fc30eace93b9b6d4c844ba6de76db84184e01b",
+ "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/9a8218511eb1a0965629ff820dda25985440aefc",
+ "reference": "9a8218511eb1a0965629ff820dda25985440aefc",
"shasum": ""
},
"require": {
@@ -2323,7 +2323,7 @@
],
"support": {
"issues": "https://github.com/nunomaduro/termwind/issues",
- "source": "https://github.com/nunomaduro/termwind/tree/v1.14.1"
+ "source": "https://github.com/nunomaduro/termwind/tree/v1.14.2"
},
"funding": [
{
@@ -2339,7 +2339,7 @@
"type": "github"
}
],
- "time": "2022-10-17T15:20:29+00:00"
+ "time": "2022-10-28T22:51:32+00:00"
},
{
"name": "paragonie/constant_time_encoding",
@@ -2901,16 +2901,16 @@
},
{
"name": "psy/psysh",
- "version": "v0.11.8",
+ "version": "v0.11.9",
"source": {
"type": "git",
"url": "https://github.com/bobthecow/psysh.git",
- "reference": "f455acf3645262ae389b10e9beba0c358aa6994e"
+ "reference": "1acec99d6684a54ff92f8b548a4e41b566963778"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/bobthecow/psysh/zipball/f455acf3645262ae389b10e9beba0c358aa6994e",
- "reference": "f455acf3645262ae389b10e9beba0c358aa6994e",
+ "url": "https://api.github.com/repos/bobthecow/psysh/zipball/1acec99d6684a54ff92f8b548a4e41b566963778",
+ "reference": "1acec99d6684a54ff92f8b548a4e41b566963778",
"shasum": ""
},
"require": {
@@ -2971,9 +2971,9 @@
],
"support": {
"issues": "https://github.com/bobthecow/psysh/issues",
- "source": "https://github.com/bobthecow/psysh/tree/v0.11.8"
+ "source": "https://github.com/bobthecow/psysh/tree/v0.11.9"
},
- "time": "2022-07-28T14:25:11+00:00"
+ "time": "2022-11-06T15:29:46+00:00"
},
{
"name": "ralouphie/getallheaders",
@@ -3100,21 +3100,20 @@
},
{
"name": "ramsey/uuid",
- "version": "4.5.1",
+ "version": "4.6.0",
"source": {
"type": "git",
"url": "https://github.com/ramsey/uuid.git",
- "reference": "a161a26d917604dc6d3aa25100fddf2556e9f35d"
+ "reference": "ad63bc700e7d021039e30ce464eba384c4a1d40f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ramsey/uuid/zipball/a161a26d917604dc6d3aa25100fddf2556e9f35d",
- "reference": "a161a26d917604dc6d3aa25100fddf2556e9f35d",
+ "url": "https://api.github.com/repos/ramsey/uuid/zipball/ad63bc700e7d021039e30ce464eba384c4a1d40f",
+ "reference": "ad63bc700e7d021039e30ce464eba384c4a1d40f",
"shasum": ""
},
"require": {
"brick/math": "^0.8.8 || ^0.9 || ^0.10",
- "ext-ctype": "*",
"ext-json": "*",
"php": "^8.0",
"ramsey/collection": "^1.0"
@@ -3146,7 +3145,6 @@
},
"suggest": {
"ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.",
- "ext-ctype": "Enables faster processing of character classification using ctype functions.",
"ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.",
"ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.",
"paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
@@ -3178,7 +3176,7 @@
],
"support": {
"issues": "https://github.com/ramsey/uuid/issues",
- "source": "https://github.com/ramsey/uuid/tree/4.5.1"
+ "source": "https://github.com/ramsey/uuid/tree/4.6.0"
},
"funding": [
{
@@ -3190,20 +3188,20 @@
"type": "tidelift"
}
],
- "time": "2022-09-16T03:22:46+00:00"
+ "time": "2022-11-05T23:03:38+00:00"
},
{
"name": "symfony/console",
- "version": "v6.1.6",
+ "version": "v6.1.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "7fa3b9cf17363468795e539231a5c91b02b608fc"
+ "reference": "a1282bd0c096e0bdb8800b104177e2ce404d8815"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/7fa3b9cf17363468795e539231a5c91b02b608fc",
- "reference": "7fa3b9cf17363468795e539231a5c91b02b608fc",
+ "url": "https://api.github.com/repos/symfony/console/zipball/a1282bd0c096e0bdb8800b104177e2ce404d8815",
+ "reference": "a1282bd0c096e0bdb8800b104177e2ce404d8815",
"shasum": ""
},
"require": {
@@ -3270,7 +3268,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v6.1.6"
+ "source": "https://github.com/symfony/console/tree/v6.1.7"
},
"funding": [
{
@@ -3286,7 +3284,7 @@
"type": "tidelift"
}
],
- "time": "2022-10-07T08:04:03+00:00"
+ "time": "2022-10-26T21:42:49+00:00"
},
{
"name": "symfony/css-selector",
@@ -3422,16 +3420,16 @@
},
{
"name": "symfony/error-handler",
- "version": "v6.1.6",
+ "version": "v6.1.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/error-handler.git",
- "reference": "49f718e41f1b6f0fd5730895ca5b1c37defd828d"
+ "reference": "699a26ce5ec656c198bf6e26398b0f0818c7e504"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/error-handler/zipball/49f718e41f1b6f0fd5730895ca5b1c37defd828d",
- "reference": "49f718e41f1b6f0fd5730895ca5b1c37defd828d",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/699a26ce5ec656c198bf6e26398b0f0818c7e504",
+ "reference": "699a26ce5ec656c198bf6e26398b0f0818c7e504",
"shasum": ""
},
"require": {
@@ -3473,7 +3471,7 @@
"description": "Provides tools to manage errors and ease debugging PHP code",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/error-handler/tree/v6.1.6"
+ "source": "https://github.com/symfony/error-handler/tree/v6.1.7"
},
"funding": [
{
@@ -3489,7 +3487,7 @@
"type": "tidelift"
}
],
- "time": "2022-10-07T08:04:03+00:00"
+ "time": "2022-10-28T16:23:08+00:00"
},
{
"name": "symfony/event-dispatcher",
@@ -3719,16 +3717,16 @@
},
{
"name": "symfony/http-foundation",
- "version": "v6.1.6",
+ "version": "v6.1.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
- "reference": "3ae8e9c57155fc48930493a629da293b32efbde0"
+ "reference": "792a1856d2b95273f0e1c3435785f1d01a60ecc6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/3ae8e9c57155fc48930493a629da293b32efbde0",
- "reference": "3ae8e9c57155fc48930493a629da293b32efbde0",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/792a1856d2b95273f0e1c3435785f1d01a60ecc6",
+ "reference": "792a1856d2b95273f0e1c3435785f1d01a60ecc6",
"shasum": ""
},
"require": {
@@ -3774,7 +3772,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-foundation/tree/v6.1.6"
+ "source": "https://github.com/symfony/http-foundation/tree/v6.1.7"
},
"funding": [
{
@@ -3790,20 +3788,20 @@
"type": "tidelift"
}
],
- "time": "2022-10-02T08:30:52+00:00"
+ "time": "2022-10-12T09:44:59+00:00"
},
{
"name": "symfony/http-kernel",
- "version": "v6.1.6",
+ "version": "v6.1.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
- "reference": "102f99bf81799e93f61b9a73b2f38b309c587a94"
+ "reference": "8fc1ffe753948c47a103a809cdd6a4a8458b3254"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/102f99bf81799e93f61b9a73b2f38b309c587a94",
- "reference": "102f99bf81799e93f61b9a73b2f38b309c587a94",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/8fc1ffe753948c47a103a809cdd6a4a8458b3254",
+ "reference": "8fc1ffe753948c47a103a809cdd6a4a8458b3254",
"shasum": ""
},
"require": {
@@ -3884,7 +3882,7 @@
"description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-kernel/tree/v6.1.6"
+ "source": "https://github.com/symfony/http-kernel/tree/v6.1.7"
},
"funding": [
{
@@ -3900,20 +3898,20 @@
"type": "tidelift"
}
],
- "time": "2022-10-12T07:48:47+00:00"
+ "time": "2022-10-28T18:06:36+00:00"
},
{
"name": "symfony/mailer",
- "version": "v6.1.5",
+ "version": "v6.1.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/mailer.git",
- "reference": "e1b32deb9efc48def0c76b876860ad36f2123e89"
+ "reference": "7e19813c0b43387c55665780c4caea505cc48391"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mailer/zipball/e1b32deb9efc48def0c76b876860ad36f2123e89",
- "reference": "e1b32deb9efc48def0c76b876860ad36f2123e89",
+ "url": "https://api.github.com/repos/symfony/mailer/zipball/7e19813c0b43387c55665780c4caea505cc48391",
+ "reference": "7e19813c0b43387c55665780c4caea505cc48391",
"shasum": ""
},
"require": {
@@ -3958,7 +3956,7 @@
"description": "Helps sending emails",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/mailer/tree/v6.1.5"
+ "source": "https://github.com/symfony/mailer/tree/v6.1.7"
},
"funding": [
{
@@ -3974,20 +3972,20 @@
"type": "tidelift"
}
],
- "time": "2022-08-29T06:58:39+00:00"
+ "time": "2022-10-28T16:23:08+00:00"
},
{
"name": "symfony/mime",
- "version": "v6.1.6",
+ "version": "v6.1.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/mime.git",
- "reference": "5ae192b9a39730435cfec025a499f79d05ac68a3"
+ "reference": "f440f066d57691088d998d6e437ce98771144618"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mime/zipball/5ae192b9a39730435cfec025a499f79d05ac68a3",
- "reference": "5ae192b9a39730435cfec025a499f79d05ac68a3",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/f440f066d57691088d998d6e437ce98771144618",
+ "reference": "f440f066d57691088d998d6e437ce98771144618",
"shasum": ""
},
"require": {
@@ -3999,8 +3997,7 @@
"egulias/email-validator": "~3.0.0",
"phpdocumentor/reflection-docblock": "<3.2.2",
"phpdocumentor/type-resolver": "<1.4.0",
- "symfony/mailer": "<5.4",
- "symfony/serializer": "<5.4.14|>=6.0,<6.0.14|>=6.1,<6.1.6"
+ "symfony/mailer": "<5.4"
},
"require-dev": {
"egulias/email-validator": "^2.1.10|^3.1",
@@ -4008,7 +4005,7 @@
"symfony/dependency-injection": "^5.4|^6.0",
"symfony/property-access": "^5.4|^6.0",
"symfony/property-info": "^5.4|^6.0",
- "symfony/serializer": "^5.4.14|~6.0.14|^6.1.6"
+ "symfony/serializer": "^5.2|^6.0"
},
"type": "library",
"autoload": {
@@ -4040,7 +4037,7 @@
"mime-type"
],
"support": {
- "source": "https://github.com/symfony/mime/tree/v6.1.6"
+ "source": "https://github.com/symfony/mime/tree/v6.1.7"
},
"funding": [
{
@@ -4056,20 +4053,20 @@
"type": "tidelift"
}
],
- "time": "2022-10-07T08:04:03+00:00"
+ "time": "2022-10-19T08:10:53+00:00"
},
{
"name": "symfony/polyfill-ctype",
- "version": "v1.26.0",
+ "version": "v1.27.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4"
+ "reference": "5bbc823adecdae860bb64756d639ecfec17b050a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4",
- "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a",
+ "reference": "5bbc823adecdae860bb64756d639ecfec17b050a",
"shasum": ""
},
"require": {
@@ -4084,7 +4081,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.26-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -4122,7 +4119,7 @@
"portable"
],
"support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/v1.26.0"
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0"
},
"funding": [
{
@@ -4138,20 +4135,20 @@
"type": "tidelift"
}
],
- "time": "2022-05-24T11:49:31+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "symfony/polyfill-intl-grapheme",
- "version": "v1.26.0",
+ "version": "v1.27.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
- "reference": "433d05519ce6990bf3530fba6957499d327395c2"
+ "reference": "511a08c03c1960e08a883f4cffcacd219b758354"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/433d05519ce6990bf3530fba6957499d327395c2",
- "reference": "433d05519ce6990bf3530fba6957499d327395c2",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354",
+ "reference": "511a08c03c1960e08a883f4cffcacd219b758354",
"shasum": ""
},
"require": {
@@ -4163,7 +4160,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.26-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -4203,7 +4200,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.26.0"
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0"
},
"funding": [
{
@@ -4219,20 +4216,20 @@
"type": "tidelift"
}
],
- "time": "2022-05-24T11:49:31+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "symfony/polyfill-intl-idn",
- "version": "v1.26.0",
+ "version": "v1.27.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-idn.git",
- "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8"
+ "reference": "639084e360537a19f9ee352433b84ce831f3d2da"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/59a8d271f00dd0e4c2e518104cc7963f655a1aa8",
- "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/639084e360537a19f9ee352433b84ce831f3d2da",
+ "reference": "639084e360537a19f9ee352433b84ce831f3d2da",
"shasum": ""
},
"require": {
@@ -4246,7 +4243,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.26-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -4290,7 +4287,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.26.0"
+ "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.27.0"
},
"funding": [
{
@@ -4306,20 +4303,20 @@
"type": "tidelift"
}
],
- "time": "2022-05-24T11:49:31+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "symfony/polyfill-intl-normalizer",
- "version": "v1.26.0",
+ "version": "v1.27.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
- "reference": "219aa369ceff116e673852dce47c3a41794c14bd"
+ "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/219aa369ceff116e673852dce47c3a41794c14bd",
- "reference": "219aa369ceff116e673852dce47c3a41794c14bd",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6",
+ "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6",
"shasum": ""
},
"require": {
@@ -4331,7 +4328,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.26-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -4374,7 +4371,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.26.0"
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0"
},
"funding": [
{
@@ -4390,20 +4387,20 @@
"type": "tidelift"
}
],
- "time": "2022-05-24T11:49:31+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.26.0",
+ "version": "v1.27.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e"
+ "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e",
- "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
+ "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
"shasum": ""
},
"require": {
@@ -4418,7 +4415,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.26-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -4457,7 +4454,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0"
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0"
},
"funding": [
{
@@ -4473,20 +4470,20 @@
"type": "tidelift"
}
],
- "time": "2022-05-24T11:49:31+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "symfony/polyfill-php72",
- "version": "v1.26.0",
+ "version": "v1.27.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php72.git",
- "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2"
+ "reference": "869329b1e9894268a8a61dabb69153029b7a8c97"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/bf44a9fd41feaac72b074de600314a93e2ae78e2",
- "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2",
+ "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/869329b1e9894268a8a61dabb69153029b7a8c97",
+ "reference": "869329b1e9894268a8a61dabb69153029b7a8c97",
"shasum": ""
},
"require": {
@@ -4495,7 +4492,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.26-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -4533,7 +4530,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php72/tree/v1.26.0"
+ "source": "https://github.com/symfony/polyfill-php72/tree/v1.27.0"
},
"funding": [
{
@@ -4549,20 +4546,20 @@
"type": "tidelift"
}
],
- "time": "2022-05-24T11:49:31+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "symfony/polyfill-php80",
- "version": "v1.26.0",
+ "version": "v1.27.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace"
+ "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/cfa0ae98841b9e461207c13ab093d76b0fa7bace",
- "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936",
+ "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936",
"shasum": ""
},
"require": {
@@ -4571,7 +4568,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.26-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -4616,7 +4613,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php80/tree/v1.26.0"
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0"
},
"funding": [
{
@@ -4632,20 +4629,20 @@
"type": "tidelift"
}
],
- "time": "2022-05-10T07:21:04+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "symfony/polyfill-php81",
- "version": "v1.26.0",
+ "version": "v1.27.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php81.git",
- "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1"
+ "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/13f6d1271c663dc5ae9fb843a8f16521db7687a1",
- "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1",
+ "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a",
+ "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a",
"shasum": ""
},
"require": {
@@ -4654,7 +4651,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.26-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -4695,7 +4692,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php81/tree/v1.26.0"
+ "source": "https://github.com/symfony/polyfill-php81/tree/v1.27.0"
},
"funding": [
{
@@ -4711,20 +4708,20 @@
"type": "tidelift"
}
],
- "time": "2022-05-24T11:49:31+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "symfony/polyfill-uuid",
- "version": "v1.26.0",
+ "version": "v1.27.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-uuid.git",
- "reference": "a41886c1c81dc075a09c71fe6db5b9d68c79de23"
+ "reference": "f3cf1a645c2734236ed1e2e671e273eeb3586166"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/a41886c1c81dc075a09c71fe6db5b9d68c79de23",
- "reference": "a41886c1c81dc075a09c71fe6db5b9d68c79de23",
+ "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/f3cf1a645c2734236ed1e2e671e273eeb3586166",
+ "reference": "f3cf1a645c2734236ed1e2e671e273eeb3586166",
"shasum": ""
},
"require": {
@@ -4739,7 +4736,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.26-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -4777,7 +4774,7 @@
"uuid"
],
"support": {
- "source": "https://github.com/symfony/polyfill-uuid/tree/v1.26.0"
+ "source": "https://github.com/symfony/polyfill-uuid/tree/v1.27.0"
},
"funding": [
{
@@ -4793,7 +4790,7 @@
"type": "tidelift"
}
],
- "time": "2022-05-24T11:49:31+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "symfony/process",
@@ -4858,16 +4855,16 @@
},
{
"name": "symfony/routing",
- "version": "v6.1.5",
+ "version": "v6.1.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
- "reference": "f8c1ebb43d0f39e5ecd12a732ba1952a3dd8455c"
+ "reference": "95effeb9d6e2cec861cee06bf5bbf82d09aea7f5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/routing/zipball/f8c1ebb43d0f39e5ecd12a732ba1952a3dd8455c",
- "reference": "f8c1ebb43d0f39e5ecd12a732ba1952a3dd8455c",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/95effeb9d6e2cec861cee06bf5bbf82d09aea7f5",
+ "reference": "95effeb9d6e2cec861cee06bf5bbf82d09aea7f5",
"shasum": ""
},
"require": {
@@ -4926,7 +4923,7 @@
"url"
],
"support": {
- "source": "https://github.com/symfony/routing/tree/v6.1.5"
+ "source": "https://github.com/symfony/routing/tree/v6.1.7"
},
"funding": [
{
@@ -4942,7 +4939,7 @@
"type": "tidelift"
}
],
- "time": "2022-09-09T09:26:14+00:00"
+ "time": "2022-10-18T13:12:43+00:00"
},
{
"name": "symfony/service-contracts",
@@ -5031,16 +5028,16 @@
},
{
"name": "symfony/string",
- "version": "v6.1.6",
+ "version": "v6.1.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "7e7e0ff180d4c5a6636eaad57b65092014b61864"
+ "reference": "823f143370880efcbdfa2dbca946b3358c4707e5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/7e7e0ff180d4c5a6636eaad57b65092014b61864",
- "reference": "7e7e0ff180d4c5a6636eaad57b65092014b61864",
+ "url": "https://api.github.com/repos/symfony/string/zipball/823f143370880efcbdfa2dbca946b3358c4707e5",
+ "reference": "823f143370880efcbdfa2dbca946b3358c4707e5",
"shasum": ""
},
"require": {
@@ -5096,7 +5093,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v6.1.6"
+ "source": "https://github.com/symfony/string/tree/v6.1.7"
},
"funding": [
{
@@ -5872,16 +5869,16 @@
},
{
"name": "composer/pcre",
- "version": "3.0.2",
+ "version": "3.1.0",
"source": {
"type": "git",
"url": "https://github.com/composer/pcre.git",
- "reference": "4482b6409ca6bfc2af043a5711cd21ac3e7a8dfb"
+ "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/pcre/zipball/4482b6409ca6bfc2af043a5711cd21ac3e7a8dfb",
- "reference": "4482b6409ca6bfc2af043a5711cd21ac3e7a8dfb",
+ "url": "https://api.github.com/repos/composer/pcre/zipball/4bff79ddd77851fe3cdd11616ed3f92841ba5bd2",
+ "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2",
"shasum": ""
},
"require": {
@@ -5923,7 +5920,7 @@
],
"support": {
"issues": "https://github.com/composer/pcre/issues",
- "source": "https://github.com/composer/pcre/tree/3.0.2"
+ "source": "https://github.com/composer/pcre/tree/3.1.0"
},
"funding": [
{
@@ -5939,7 +5936,7 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T20:24:16+00:00"
+ "time": "2022-11-17T09:50:14+00:00"
},
{
"name": "doctrine/cache",
@@ -6418,16 +6415,16 @@
},
{
"name": "filp/whoops",
- "version": "2.14.5",
+ "version": "2.14.6",
"source": {
"type": "git",
"url": "https://github.com/filp/whoops.git",
- "reference": "a63e5e8f26ebbebf8ed3c5c691637325512eb0dc"
+ "reference": "f7948baaa0330277c729714910336383286305da"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/filp/whoops/zipball/a63e5e8f26ebbebf8ed3c5c691637325512eb0dc",
- "reference": "a63e5e8f26ebbebf8ed3c5c691637325512eb0dc",
+ "url": "https://api.github.com/repos/filp/whoops/zipball/f7948baaa0330277c729714910336383286305da",
+ "reference": "f7948baaa0330277c729714910336383286305da",
"shasum": ""
},
"require": {
@@ -6477,7 +6474,7 @@
],
"support": {
"issues": "https://github.com/filp/whoops/issues",
- "source": "https://github.com/filp/whoops/tree/2.14.5"
+ "source": "https://github.com/filp/whoops/tree/2.14.6"
},
"funding": [
{
@@ -6485,7 +6482,7 @@
"type": "github"
}
],
- "time": "2022-01-07T12:00:00+00:00"
+ "time": "2022-11-02T16:23:29+00:00"
},
{
"name": "hamcrest/hamcrest-php",
@@ -6540,16 +6537,16 @@
},
{
"name": "laravel-lang/lang",
- "version": "12.1.2",
+ "version": "12.5.2",
"source": {
"type": "git",
"url": "https://github.com/Laravel-Lang/lang.git",
- "reference": "91310202f2660ca4c2bb9f457b61a03bbaac8361"
+ "reference": "ca4b396f4d22e72cb3ba56bf5784f5fa40c488a4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Laravel-Lang/lang/zipball/91310202f2660ca4c2bb9f457b61a03bbaac8361",
- "reference": "91310202f2660ca4c2bb9f457b61a03bbaac8361",
+ "url": "https://api.github.com/repos/Laravel-Lang/lang/zipball/ca4b396f4d22e72cb3ba56bf5784f5fa40c488a4",
+ "reference": "ca4b396f4d22e72cb3ba56bf5784f5fa40c488a4",
"shasum": ""
},
"require": {
@@ -6611,7 +6608,7 @@
"type": "open_collective"
}
],
- "time": "2022-10-21T12:16:59+00:00"
+ "time": "2022-11-22T23:27:53+00:00"
},
{
"name": "laravel/pint",
@@ -6681,16 +6678,16 @@
},
{
"name": "laravel/sail",
- "version": "v1.16.2",
+ "version": "v1.16.3",
"source": {
"type": "git",
"url": "https://github.com/laravel/sail.git",
- "reference": "7d1ed5f856ec8b9708712e3fc0708fcabe114659"
+ "reference": "0dbee8802e17911afbe29a8506316343829b056e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/sail/zipball/7d1ed5f856ec8b9708712e3fc0708fcabe114659",
- "reference": "7d1ed5f856ec8b9708712e3fc0708fcabe114659",
+ "url": "https://api.github.com/repos/laravel/sail/zipball/0dbee8802e17911afbe29a8506316343829b056e",
+ "reference": "0dbee8802e17911afbe29a8506316343829b056e",
"shasum": ""
},
"require": {
@@ -6737,7 +6734,7 @@
"issues": "https://github.com/laravel/sail/issues",
"source": "https://github.com/laravel/sail"
},
- "time": "2022-09-28T13:13:22+00:00"
+ "time": "2022-11-21T16:19:18+00:00"
},
{
"name": "mockery/mockery",
@@ -7179,16 +7176,16 @@
},
{
"name": "phpunit/php-code-coverage",
- "version": "9.2.17",
+ "version": "9.2.19",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "aa94dc41e8661fe90c7316849907cba3007b10d8"
+ "reference": "c77b56b63e3d2031bd8997fcec43c1925ae46559"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/aa94dc41e8661fe90c7316849907cba3007b10d8",
- "reference": "aa94dc41e8661fe90c7316849907cba3007b10d8",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c77b56b63e3d2031bd8997fcec43c1925ae46559",
+ "reference": "c77b56b63e3d2031bd8997fcec43c1925ae46559",
"shasum": ""
},
"require": {
@@ -7244,7 +7241,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.17"
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.19"
},
"funding": [
{
@@ -7252,7 +7249,7 @@
"type": "github"
}
],
- "time": "2022-08-30T12:24:04+00:00"
+ "time": "2022-11-18T07:47:47+00:00"
},
{
"name": "phpunit/php-file-iterator",
@@ -7497,16 +7494,16 @@
},
{
"name": "phpunit/phpunit",
- "version": "9.5.25",
+ "version": "9.5.26",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d"
+ "reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d",
- "reference": "3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/851867efcbb6a1b992ec515c71cdcf20d895e9d2",
+ "reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2",
"shasum": ""
},
"require": {
@@ -7579,7 +7576,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.25"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.26"
},
"funding": [
{
@@ -7595,7 +7592,7 @@
"type": "tidelift"
}
],
- "time": "2022-09-25T03:44:45+00:00"
+ "time": "2022-10-28T06:00:21+00:00"
},
{
"name": "psr/cache",
@@ -8674,16 +8671,16 @@
},
{
"name": "spatie/flare-client-php",
- "version": "1.3.0",
+ "version": "1.3.1",
"source": {
"type": "git",
"url": "https://github.com/spatie/flare-client-php.git",
- "reference": "b1b974348750925b717fa8c8b97a0db0d1aa40ca"
+ "reference": "ebb9ae0509b75e02f128b39537eb9a3ef5ce18e8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/b1b974348750925b717fa8c8b97a0db0d1aa40ca",
- "reference": "b1b974348750925b717fa8c8b97a0db0d1aa40ca",
+ "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/ebb9ae0509b75e02f128b39537eb9a3ef5ce18e8",
+ "reference": "ebb9ae0509b75e02f128b39537eb9a3ef5ce18e8",
"shasum": ""
},
"require": {
@@ -8731,7 +8728,7 @@
],
"support": {
"issues": "https://github.com/spatie/flare-client-php/issues",
- "source": "https://github.com/spatie/flare-client-php/tree/1.3.0"
+ "source": "https://github.com/spatie/flare-client-php/tree/1.3.1"
},
"funding": [
{
@@ -8739,7 +8736,7 @@
"type": "github"
}
],
- "time": "2022-08-08T10:10:20+00:00"
+ "time": "2022-11-16T08:30:20+00:00"
},
{
"name": "spatie/ignition",
diff --git a/public/css/app.css b/public/css/app.css
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/public/css/app.css
@@ -0,0 +1 @@
+
diff --git a/public/css/bootstrap copy/.DS_Store b/public/css/bootstrap copy/.DS_Store
new file mode 100644
index 0000000..23ba4e8
Binary files /dev/null and b/public/css/bootstrap copy/.DS_Store differ
diff --git a/public/css/bootstrap copy/_media.css b/public/css/bootstrap copy/_media.css
new file mode 100644
index 0000000..379ab53
--- /dev/null
+++ b/public/css/bootstrap copy/_media.css
@@ -0,0 +1,12 @@
+.media {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-align: start;
+ -ms-flex-align: start;
+ align-items: flex-start; }
+
+.media-body {
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1; }
diff --git a/public/css/bootstrap copy/mixins/.DS_Store b/public/css/bootstrap copy/mixins/.DS_Store
new file mode 100644
index 0000000..6bc4ad5
Binary files /dev/null and b/public/css/bootstrap copy/mixins/.DS_Store differ
diff --git a/public/css/bootstrap copy/mixins/_border-radius.css b/public/css/bootstrap copy/mixins/_border-radius.css
new file mode 100644
index 0000000..e69de29
diff --git a/public/css/bootstrap copy/mixins/_screen-reader.css b/public/css/bootstrap copy/mixins/_screen-reader.css
new file mode 100644
index 0000000..e69de29
diff --git a/public/css/bootstrap copy/mixins/_visibility.css b/public/css/bootstrap copy/mixins/_visibility.css
new file mode 100644
index 0000000..e69de29
diff --git a/public/css/bootstrap copy/utilities/_stretched-link.css b/public/css/bootstrap copy/utilities/_stretched-link.css
new file mode 100644
index 0000000..20eb7dc
--- /dev/null
+++ b/public/css/bootstrap copy/utilities/_stretched-link.css
@@ -0,0 +1,10 @@
+.stretched-link::after {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1;
+ pointer-events: auto;
+ content: "";
+ background-color: rgba(0, 0, 0, 0); }
diff --git a/public/css/bootstrap.css b/public/css/bootstrap.css
new file mode 100644
index 0000000..e03a0a6
--- /dev/null
+++ b/public/css/bootstrap.css
@@ -0,0 +1,6 @@
+/*!
+ * Bootstrap v4.1.3 (https://getbootstrap.com/)
+ * Copyright 2011-2018 The Bootstrap Authors
+ * Copyright 2011-2018 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
:root {
--blue: #007bff;
--indigo: #6610f2;
--purple: #6f42c1;
--pink: #e83e8c;
--red: #dc3545;
--orange: #fd7e14;
--yellow: #ffc107;
--green: #28a745;
--teal: #20c997;
--cyan: #17a2b8;
--white: #fff;
--gray: #6c757d;
--gray-dark: #343a40;
--breakpoint-xs: 0;
--breakpoint-sm: 576px;
--breakpoint-md: 768px;
--breakpoint-lg: 992px;
--breakpoint-xl: 1200px;
--breakpoint-xxl: 1600px;
--font-family-sans-serif: "Poppins", sans-serif;
--font-family-monospace: 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 {
margin: 0;
font-family: "Poppins", sans-serif;
font-size: 1rem;
font-weight: 300;
line-height: 1.66667;
color: rgba(21, 21, 21, 0.8);
text-align: left;
background-color: #ffffff;
}
[tabindex="-1"]:focus {
outline: 0 !important;
}
hr {
box-sizing: content-box;
height: 0;
overflow: visible;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 0;
margin-bottom: 0.5rem;
}
p {
margin-top: 0;
margin-bottom: 1rem;
}
abbr[title],
abbr[data-original-title] {
text-decoration: underline;
text-decoration: underline dotted;
cursor: help;
border-bottom: 0;
}
address {
margin-bottom: 1rem;
font-style: normal;
line-height: inherit;
}
ol,
ul,
dl {
margin-top: 0;
margin-bottom: 1rem;
}
ol ol,
ul ul,
ol ul,
ul ol {
margin-bottom: 0;
}
dt {
font-weight: inherit;
}
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 {
position: relative;
font-size: 75%;
line-height: 0;
vertical-align: baseline;
}
sub {
bottom: -.25em;
}
sup {
top: -.5em;
}
a {
color: #41A451;
text-decoration: none;
background-color: transparent;
-webkit-text-decoration-skip: objects;
}
a:hover {
color: #41A451;
text-decoration: underline;
}
a:not([href]):not([tabindex]) {
color: inherit;
text-decoration: none;
}
a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {
color: inherit;
text-decoration: none;
}
a:not([href]):not([tabindex]):focus {
outline: 0;
}
pre,
code,
kbd,
samp {
font-family: Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
font-size: 1em;
}
pre {
margin-top: 0;
margin-bottom: 1rem;
overflow: auto;
-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: 0.75rem;
padding-bottom: 0.75rem;
color: #6c757d;
text-align: left;
caption-side: bottom;
}
th {
text-align: inherit;
}
label {
display: inline-block;
margin-bottom: 0.5rem;
}
button {
border-radius: 0;
}
button:focus {
outline: 1px dotted;
outline: 5px auto -webkit-focus-ring-color;
}
input,
button,
select,
optgroup,
textarea {
margin: 0;
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
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;
padding: 0;
margin: 0;
border: 0;
}
legend {
display: block;
width: 100%;
max-width: 100%;
padding: 0;
margin-bottom: .5rem;
font-size: 1.5rem;
line-height: inherit;
color: inherit;
white-space: normal;
}
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 {
margin-bottom: 0.5rem;
font-family: "PT Serif", "Times New Roman", Times, serif;
font-weight: 700;
line-height: 1.1;
color: #151515;
}
h1, .h1 {
font-size: 80px;
}
h2, .h2 {
font-size: 45px;
}
h3, .h3 {
font-size: 36px;
}
h4, .h4 {
font-size: 26px;
}
h5, .h5 {
font-size: 18px;
}
h6, .h6 {
font-size: 15px;
}
.lead {
font-size: 24px;
font-weight: 300;
}
.display-1 {
font-size: 6rem;
font-weight: 300;
line-height: 1.2;
}
.display-2 {
font-size: 5.5rem;
font-weight: 300;
line-height: 1.2;
}
.display-3 {
font-size: 4.5rem;
font-weight: 300;
line-height: 1.2;
}
.display-4 {
font-size: 3.5rem;
font-weight: 300;
line-height: 1.2;
}
hr {
margin-top: 1rem;
margin-bottom: 1rem;
border: 0;
border-top: 1px solid #d7d7d7;
}
small,
.small {
font-size: 80%;
font-weight: 400;
}
mark,
.mark {
padding: 5px 10px;
background-color: #41A451;
}
.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: 5px;
}
.initialism {
font-size: 90%;
text-transform: uppercase;
}
.blockquote {
margin-bottom: 1rem;
font-size: 1.25rem;
}
.blockquote-footer {
display: block;
font-size: 80%;
color: #6c757d;
}
.blockquote-footer::before {
content: "\2014 \00A0";
}
.img-fluid {
max-width: 100%;
height: auto;
}
.img-thumbnail {
padding: 0.25rem;
background-color: #fff;
border: 1px solid #dee2e6;
border-radius: 0.25rem;
max-width: 100%;
height: auto;
}
.figure {
display: inline-block;
}
.figure-img {
margin-bottom: 0.5rem;
line-height: 1;
}
.figure-caption {
font-size: 90%;
color: #6c757d;
}
code {
font-size: 90%;
color: #111111;
word-break: break-word;
}
a > code {
color: inherit;
}
kbd {
padding: 0.2rem 0.4rem;
font-size: 87.5%;
color: #fff;
background-color: #212529;
border-radius: 0.2rem;
}
kbd kbd {
padding: 0;
font-size: 100%;
font-weight: 700;
}
pre {
display: block;
font-size: 90%;
color: #212529;
}
pre code {
font-size: inherit;
color: inherit;
word-break: normal;
}
.pre-scrollable {
max-height: 340px;
overflow-y: scroll;
}
.container {
width: 100%;
padding-right: 15px;
padding-left: 15px;
margin-right: auto;
margin-left: auto;
}
@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: 1200px;
}
}
.container-fluid {
width: 100%;
padding-right: 15px;
padding-left: 15px;
margin-right: auto;
margin-left: auto;
}
.row {
display: flex;
flex-wrap: wrap;
margin-right: -15px;
margin-left: -15px;
}
.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, .col-xxl-1, .col-xxl-2, .col-xxl-3, .col-xxl-4, .col-xxl-5, .col-xxl-6, .col-xxl-7, .col-xxl-8, .col-xxl-9, .col-xxl-10, .col-xxl-11, .col-xxl-12, .col-xxl,
.col-xxl-auto {
position: relative;
width: 100%;
min-height: 1px;
padding-right: 15px;
padding-left: 15px;
}
.col {
flex-basis: 0;
flex-grow: 1;
max-width: 100%;
}
.col-auto {
flex: 0 0 auto;
width: auto;
max-width: none;
}
.col-1 {
flex: 0 0 8.33333%;
max-width: 8.33333%;
}
.col-2 {
flex: 0 0 16.66667%;
max-width: 16.66667%;
}
.col-3 {
flex: 0 0 25%;
max-width: 25%;
}
.col-4 {
flex: 0 0 33.33333%;
max-width: 33.33333%;
}
.col-5 {
flex: 0 0 41.66667%;
max-width: 41.66667%;
}
.col-6 {
flex: 0 0 50%;
max-width: 50%;
}
.col-7 {
flex: 0 0 58.33333%;
max-width: 58.33333%;
}
.col-8 {
flex: 0 0 66.66667%;
max-width: 66.66667%;
}
.col-9 {
flex: 0 0 75%;
max-width: 75%;
}
.col-10 {
flex: 0 0 83.33333%;
max-width: 83.33333%;
}
.col-11 {
flex: 0 0 91.66667%;
max-width: 91.66667%;
}
.col-12 {
flex: 0 0 100%;
max-width: 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 {
flex-basis: 0;
flex-grow: 1;
max-width: 100%;
}
.col-sm-auto {
flex: 0 0 auto;
width: auto;
max-width: none;
}
.col-sm-1 {
flex: 0 0 8.33333%;
max-width: 8.33333%;
}
.col-sm-2 {
flex: 0 0 16.66667%;
max-width: 16.66667%;
}
.col-sm-3 {
flex: 0 0 25%;
max-width: 25%;
}
.col-sm-4 {
flex: 0 0 33.33333%;
max-width: 33.33333%;
}
.col-sm-5 {
flex: 0 0 41.66667%;
max-width: 41.66667%;
}
.col-sm-6 {
flex: 0 0 50%;
max-width: 50%;
}
.col-sm-7 {
flex: 0 0 58.33333%;
max-width: 58.33333%;
}
.col-sm-8 {
flex: 0 0 66.66667%;
max-width: 66.66667%;
}
.col-sm-9 {
flex: 0 0 75%;
max-width: 75%;
}
.col-sm-10 {
flex: 0 0 83.33333%;
max-width: 83.33333%;
}
.col-sm-11 {
flex: 0 0 91.66667%;
max-width: 91.66667%;
}
.col-sm-12 {
flex: 0 0 100%;
max-width: 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 {
flex-basis: 0;
flex-grow: 1;
max-width: 100%;
}
.col-md-auto {
flex: 0 0 auto;
width: auto;
max-width: none;
}
.col-md-1 {
flex: 0 0 8.33333%;
max-width: 8.33333%;
}
.col-md-2 {
flex: 0 0 16.66667%;
max-width: 16.66667%;
}
.col-md-3 {
flex: 0 0 25%;
max-width: 25%;
}
.col-md-4 {
flex: 0 0 33.33333%;
max-width: 33.33333%;
}
.col-md-5 {
flex: 0 0 41.66667%;
max-width: 41.66667%;
}
.col-md-6 {
flex: 0 0 50%;
max-width: 50%;
}
.col-md-7 {
flex: 0 0 58.33333%;
max-width: 58.33333%;
}
.col-md-8 {
flex: 0 0 66.66667%;
max-width: 66.66667%;
}
.col-md-9 {
flex: 0 0 75%;
max-width: 75%;
}
.col-md-10 {
flex: 0 0 83.33333%;
max-width: 83.33333%;
}
.col-md-11 {
flex: 0 0 91.66667%;
max-width: 91.66667%;
}
.col-md-12 {
flex: 0 0 100%;
max-width: 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 {
flex-basis: 0;
flex-grow: 1;
max-width: 100%;
}
.col-lg-auto {
flex: 0 0 auto;
width: auto;
max-width: none;
}
.col-lg-1 {
flex: 0 0 8.33333%;
max-width: 8.33333%;
}
.col-lg-2 {
flex: 0 0 16.66667%;
max-width: 16.66667%;
}
.col-lg-3 {
flex: 0 0 25%;
max-width: 25%;
}
.col-lg-4 {
flex: 0 0 33.33333%;
max-width: 33.33333%;
}
.col-lg-5 {
flex: 0 0 41.66667%;
max-width: 41.66667%;
}
.col-lg-6 {
flex: 0 0 50%;
max-width: 50%;
}
.col-lg-7 {
flex: 0 0 58.33333%;
max-width: 58.33333%;
}
.col-lg-8 {
flex: 0 0 66.66667%;
max-width: 66.66667%;
}
.col-lg-9 {
flex: 0 0 75%;
max-width: 75%;
}
.col-lg-10 {
flex: 0 0 83.33333%;
max-width: 83.33333%;
}
.col-lg-11 {
flex: 0 0 91.66667%;
max-width: 91.66667%;
}
.col-lg-12 {
flex: 0 0 100%;
max-width: 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 {
flex-basis: 0;
flex-grow: 1;
max-width: 100%;
}
.col-xl-auto {
flex: 0 0 auto;
width: auto;
max-width: none;
}
.col-xl-1 {
flex: 0 0 8.33333%;
max-width: 8.33333%;
}
.col-xl-2 {
flex: 0 0 16.66667%;
max-width: 16.66667%;
}
.col-xl-3 {
flex: 0 0 25%;
max-width: 25%;
}
.col-xl-4 {
flex: 0 0 33.33333%;
max-width: 33.33333%;
}
.col-xl-5 {
flex: 0 0 41.66667%;
max-width: 41.66667%;
}
.col-xl-6 {
flex: 0 0 50%;
max-width: 50%;
}
.col-xl-7 {
flex: 0 0 58.33333%;
max-width: 58.33333%;
}
.col-xl-8 {
flex: 0 0 66.66667%;
max-width: 66.66667%;
}
.col-xl-9 {
flex: 0 0 75%;
max-width: 75%;
}
.col-xl-10 {
flex: 0 0 83.33333%;
max-width: 83.33333%;
}
.col-xl-11 {
flex: 0 0 91.66667%;
max-width: 91.66667%;
}
.col-xl-12 {
flex: 0 0 100%;
max-width: 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%;
}
}
@media (min-width: 1600px) {
.col-xxl {
flex-basis: 0;
flex-grow: 1;
max-width: 100%;
}
.col-xxl-auto {
flex: 0 0 auto;
width: auto;
max-width: none;
}
.col-xxl-1 {
flex: 0 0 8.33333%;
max-width: 8.33333%;
}
.col-xxl-2 {
flex: 0 0 16.66667%;
max-width: 16.66667%;
}
.col-xxl-3 {
flex: 0 0 25%;
max-width: 25%;
}
.col-xxl-4 {
flex: 0 0 33.33333%;
max-width: 33.33333%;
}
.col-xxl-5 {
flex: 0 0 41.66667%;
max-width: 41.66667%;
}
.col-xxl-6 {
flex: 0 0 50%;
max-width: 50%;
}
.col-xxl-7 {
flex: 0 0 58.33333%;
max-width: 58.33333%;
}
.col-xxl-8 {
flex: 0 0 66.66667%;
max-width: 66.66667%;
}
.col-xxl-9 {
flex: 0 0 75%;
max-width: 75%;
}
.col-xxl-10 {
flex: 0 0 83.33333%;
max-width: 83.33333%;
}
.col-xxl-11 {
flex: 0 0 91.66667%;
max-width: 91.66667%;
}
.col-xxl-12 {
flex: 0 0 100%;
max-width: 100%;
}
.order-xxl-first {
order: -1;
}
.order-xxl-last {
order: 13;
}
.order-xxl-0 {
order: 0;
}
.order-xxl-1 {
order: 1;
}
.order-xxl-2 {
order: 2;
}
.order-xxl-3 {
order: 3;
}
.order-xxl-4 {
order: 4;
}
.order-xxl-5 {
order: 5;
}
.order-xxl-6 {
order: 6;
}
.order-xxl-7 {
order: 7;
}
.order-xxl-8 {
order: 8;
}
.order-xxl-9 {
order: 9;
}
.order-xxl-10 {
order: 10;
}
.order-xxl-11 {
order: 11;
}
.order-xxl-12 {
order: 12;
}
.offset-xxl-0 {
margin-left: 0;
}
.offset-xxl-1 {
margin-left: 8.33333%;
}
.offset-xxl-2 {
margin-left: 16.66667%;
}
.offset-xxl-3 {
margin-left: 25%;
}
.offset-xxl-4 {
margin-left: 33.33333%;
}
.offset-xxl-5 {
margin-left: 41.66667%;
}
.offset-xxl-6 {
margin-left: 50%;
}
.offset-xxl-7 {
margin-left: 58.33333%;
}
.offset-xxl-8 {
margin-left: 66.66667%;
}
.offset-xxl-9 {
margin-left: 75%;
}
.offset-xxl-10 {
margin-left: 83.33333%;
}
.offset-xxl-11 {
margin-left: 91.66667%;
}
}
.table {
width: 100%;
margin-bottom: 1rem;
background-color: transparent;
}
.table th,
.table td {
padding: 0.75rem;
vertical-align: top;
border-top: 1px solid #dee2e6;
}
.table thead th {
vertical-align: bottom;
border-bottom: 2px solid #dee2e6;
}
.table tbody + tbody {
border-top: 2px solid #dee2e6;
}
.table .table {
background-color: #ffffff;
}
.table-sm th,
.table-sm td {
padding: 0.3rem;
}
.table-bordered {
border: 1px solid #dee2e6;
}
.table-bordered th,
.table-bordered td {
border: 1px solid #dee2e6;
}
.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, 0.05);
}
.table-hover tbody tr:hover {
background-color: rgba(0, 0, 0, 0.075);
}
.table-active,
.table-active > th,
.table-active > td {
background-color: rgba(0, 0, 0, 0.075);
}
.table-hover .table-active:hover {
background-color: rgba(0, 0, 0, 0.075);
}
.table-hover .table-active:hover > td,
.table-hover .table-active:hover > th {
background-color: rgba(0, 0, 0, 0.075);
}
.table .thead-dark th {
color: #fff;
background-color: #212529;
border-color: #32383e;
}
.table .thead-light th {
color: #495057;
background-color: #e9ecef;
border-color: #dee2e6;
}
.table-dark {
color: #fff;
background-color: #212529;
}
.table-dark th,
.table-dark td,
.table-dark thead th {
border-color: #32383e;
}
.table-dark.table-bordered {
border: 0;
}
.table-dark.table-striped tbody tr:nth-of-type(odd) {
background-color: rgba(255, 255, 255, 0.05);
}
.table-dark.table-hover tbody tr:hover {
background-color: rgba(255, 255, 255, 0.075);
}
@media (max-width: 575.98px) {
.table-responsive-sm {
display: block;
width: 100%;
overflow-x: auto;
-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;
width: 100%;
overflow-x: auto;
-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;
width: 100%;
overflow-x: auto;
-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;
width: 100%;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
-ms-overflow-style: -ms-autohiding-scrollbar;
}
.table-responsive-xl > .table-bordered {
border: 0;
}
}
@media (max-width: 1599.98px) {
.table-responsive-xxl {
display: block;
width: 100%;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
-ms-overflow-style: -ms-autohiding-scrollbar;
}
.table-responsive-xxl > .table-bordered {
border: 0;
}
}
.table-responsive {
display: block;
width: 100%;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
-ms-overflow-style: -ms-autohiding-scrollbar;
}
.table-responsive > .table-bordered {
border: 0;
}
.form-control {
display: block;
width: 100%;
height: calc(2.25rem + 2px);
padding: 0.375rem 0.75rem;
font-size: 1rem;
line-height: 1.5;
color: #495057;
background-color: #fff;
background-clip: padding-box;
border: 1px solid #ced4da;
border-radius: 0.25rem;
transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
@media screen and (prefers-reduced-motion: reduce) {
.form-control {
transition: none;
}
}
.form-control::-ms-expand {
background-color: transparent;
border: 0;
}
.form-control:focus {
color: #495057;
background-color: #fff;
border-color: #80bdff;
outline: 0;
box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}
.form-control::placeholder {
color: #6c757d;
opacity: 1;
}
.form-control:disabled, .form-control[readonly] {
background-color: #e9ecef;
opacity: 1;
}
select.form-control:focus::-ms-value {
color: #495057;
background-color: #fff;
}
.form-control-file,
.form-control-range {
display: block;
width: 100%;
}
.col-form-label {
padding-top: calc(0.375rem + 1px);
padding-bottom: calc(0.375rem + 1px);
margin-bottom: 0;
font-size: inherit;
line-height: 1.5;
}
.col-form-label-lg {
padding-top: calc(0.5rem + 1px);
padding-bottom: calc(0.5rem + 1px);
font-size: 18px;
line-height: 1.5;
}
.col-form-label-sm {
padding-top: calc(0.25rem + 1px);
padding-bottom: calc(0.25rem + 1px);
font-size: 12px;
line-height: 1.5;
}
.form-control-plaintext {
display: block;
width: 100%;
padding-top: 0.375rem;
padding-bottom: 0.375rem;
margin-bottom: 0;
line-height: 1.5;
color: #212529;
background-color: transparent;
border: solid transparent;
border-width: 1px 0;
}
.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {
padding-right: 0;
padding-left: 0;
}
.form-control-sm {
height: calc(1.8125rem + 2px);
padding: 0.25rem 0.5rem;
font-size: 12px;
line-height: 1.5;
border-radius: 0.2rem;
}
.form-control-lg {
height: calc(2.875rem + 2px);
padding: 0.5rem 1rem;
font-size: 18px;
line-height: 1.5;
border-radius: 0.3rem;
}
select.form-control[size], select.form-control[multiple] {
height: auto;
}
textarea.form-control {
height: auto;
}
.form-group {
margin-bottom: 1rem;
}
.form-text {
display: block;
margin-top: 0.25rem;
}
.form-row {
display: flex;
flex-wrap: wrap;
margin-right: -5px;
margin-left: -5px;
}
.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: 0.3rem;
margin-left: -1.25rem;
}
.form-check-input:disabled ~ .form-check-label {
color: #6c757d;
}
.form-check-label {
margin-bottom: 0;
}
.form-check-inline {
display: inline-flex;
align-items: center;
padding-left: 0;
margin-right: 0.75rem;
}
.form-check-inline .form-check-input {
position: static;
margin-top: 0;
margin-right: 0.3125rem;
margin-left: 0;
}
.valid-feedback {
display: none;
width: 100%;
margin-top: 0.25rem;
font-size: 80%;
color: #98bf44;
}
.valid-tooltip {
position: absolute;
top: 100%;
z-index: 5;
display: none;
max-width: 100%;
padding: 6px 10px;
margin-top: .1rem;
font-size: 0.875rem;
line-height: 1.66667;
color: #212529;
background-color: #98bf44;
border-radius: 0.25rem;
}
.was-validated .form-control:valid, .form-control.is-valid {
border-color: #98bf44;
padding-right: 2.25rem;
background-repeat: no-repeat;
background-position: center right calc(2.25rem / 4);
background-size: calc(2.25rem / 2) calc(2.25rem / 2);
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='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E");
}
.was-validated .form-control:valid:focus, .form-control.is-valid:focus {
border-color: #98bf44;
box-shadow: 0 0 0 0.2rem rgba(152, 191, 68, 0.25);
}
.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 {
display: block;
}
.was-validated textarea.form-control:valid, textarea.form-control.is-valid {
padding-right: 2.25rem;
background-position: top calc(2.25rem / 4) right calc(2.25rem / 4);
}
.was-validated .custom-select:valid, .custom-select.is-valid {
border-color: #98bf44;
padding-right: 2.25rem;
background: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E") no-repeat center right 2.025rem/calc(2.25rem / 2) calc(2.25rem / 2);
}
.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {
border-color: #98bf44;
box-shadow: 0 0 0 0.2rem rgba(152, 191, 68, 0.25);
}
.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-control-file:valid ~ .valid-feedback,
.was-validated .form-control-file:valid ~ .valid-tooltip, .form-control-file.is-valid ~ .valid-feedback,
.form-control-file.is-valid ~ .valid-tooltip {
display: block;
}
.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {
color: #98bf44;
}
.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: #98bf44;
}
.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {
background-color: #cce0a3;
}
.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 {
background-color: #adcc6a;
}
.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 #ffffff, 0 0 0 0.2rem rgba(152, 191, 68, 0.25);
}
.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {
border-color: #98bf44;
}
.was-validated .custom-file-input:valid ~ .custom-file-label::after, .custom-file-input.is-valid ~ .custom-file-label::after {
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.2rem rgba(152, 191, 68, 0.25);
}
.invalid-feedback {
display: none;
width: 100%;
margin-top: 0.25rem;
font-size: 80%;
color: #f5543f;
}
.invalid-tooltip {
position: absolute;
top: 100%;
z-index: 5;
display: none;
max-width: 100%;
padding: 6px 10px;
margin-top: .1rem;
font-size: 0.875rem;
line-height: 1.66667;
color: #fff;
background-color: #f5543f;
border-radius: 0.25rem;
}
.was-validated .form-control:invalid, .form-control.is-invalid {
border-color: #f5543f;
padding-right: 2.25rem;
background-repeat: no-repeat;
background-position: center right calc(2.25rem / 4);
background-size: calc(2.25rem / 2) calc(2.25rem / 2);
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3E%3Ccircle r='.5'/%3E%3Ccircle cx='3' r='.5'/%3E%3Ccircle cy='3' r='.5'/%3E%3Ccircle cx='3' cy='3' r='.5'/%3E%3C/svg%3E");
}
.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {
border-color: #f5543f;
box-shadow: 0 0 0 0.2rem rgba(245, 84, 63, 0.25);
}
.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 {
display: block;
}
.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {
padding-right: 2.25rem;
background-position: top calc(2.25rem / 4) right calc(2.25rem / 4);
}
.was-validated .custom-select:invalid, .custom-select.is-invalid {
border-color: #f5543f;
padding-right: 2.25rem;
background: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3E%3Ccircle r='.5'/%3E%3Ccircle cx='3' r='.5'/%3E%3Ccircle cy='3' r='.5'/%3E%3Ccircle cx='3' cy='3' r='.5'/%3E%3C/svg%3E") no-repeat center right 2.025rem/calc(2.25rem / 2) calc(2.25rem / 2);
}
.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {
border-color: #f5543f;
box-shadow: 0 0 0 0.2rem rgba(245, 84, 63, 0.25);
}
.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-control-file:invalid ~ .invalid-feedback,
.was-validated .form-control-file:invalid ~ .invalid-tooltip, .form-control-file.is-invalid ~ .invalid-feedback,
.form-control-file.is-invalid ~ .invalid-tooltip {
display: block;
}
.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {
color: #f5543f;
}
.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: #f5543f;
}
.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {
background-color: #fbc0b8;
}
.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 {
background-color: #f87f6f;
}
.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 #ffffff, 0 0 0 0.2rem rgba(245, 84, 63, 0.25);
}
.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {
border-color: #f5543f;
}
.was-validated .custom-file-input:invalid ~ .custom-file-label::after, .custom-file-input.is-invalid ~ .custom-file-label::after {
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.2rem rgba(245, 84, 63, 0.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;
align-items: center;
justify-content: center;
margin-bottom: 0;
}
.form-inline .form-group {
display: flex;
flex: 0 0 auto;
flex-flow: row wrap;
align-items: center;
margin-bottom: 0;
}
.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;
align-items: center;
justify-content: center;
width: auto;
padding-left: 0;
}
.form-inline .form-check-input {
position: relative;
margin-top: 0;
margin-right: 0.25rem;
margin-left: 0;
}
.form-inline .custom-control {
align-items: center;
justify-content: center;
}
.form-inline .custom-control-label {
margin-bottom: 0;
}
}
.btn {
display: inline-block;
font-weight: 600;
text-align: center;
white-space: nowrap;
vertical-align: middle;
user-select: none;
border: 1px solid transparent;
padding: 0.375rem 0.75rem;
font-size: 1rem;
line-height: 1.5;
border-radius: 5px;
transition: all 0.15s ease-in-out;
}
@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;
}
.btn.disabled, .btn:disabled {
opacity: 0.65;
}
.btn:not(:disabled):not(.disabled) {
cursor: pointer;
}
a.btn.disabled,
fieldset:disabled a.btn {
pointer-events: none;
}
.btn-link {
font-weight: 400;
color: #41A451;
background-color: transparent;
}
.btn-link:hover {
color: #41A451;
text-decoration: underline;
background-color: transparent;
border-color: transparent;
}
.btn-link:focus, .btn-link.focus {
text-decoration: underline;
border-color: transparent;
box-shadow: none;
}
.btn-link:disabled, .btn-link.disabled {
color: #323232;
pointer-events: none;
}
.btn-lg, .btn-group-lg > .btn {
padding: 0.5rem 1rem;
font-size: 18px;
line-height: 1.5;
border-radius: 0.3rem;
}
.btn-sm, .btn-group-sm > .btn {
padding: 0.25rem 0.5rem;
font-size: 12px;
line-height: 1.5;
border-radius: 0.2rem;
}
.btn-block {
display: block;
width: 100%;
}
.btn-block + .btn-block {
margin-top: 0.5rem;
}
input[type="submit"].btn-block,
input[type="reset"].btn-block,
input[type="button"].btn-block {
width: 100%;
}
.fade {
transition: opacity 0.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;
height: 0;
overflow: hidden;
transition: height 0.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: 0.255em;
vertical-align: 0.255em;
content: "";
border-top: 0.3em solid;
border-right: 0.3em solid transparent;
border-bottom: 0;
border-left: 0.3em solid transparent;
}
.dropdown-toggle:empty::after {
margin-left: 0;
}
.dropdown-menu {
position: absolute;
top: 100%;
left: 0;
z-index: 1000;
display: none;
float: left;
min-width: 10rem;
padding: 0.5rem 0;
margin: 0.125rem 0 0;
font-size: 1rem;
color: rgba(21, 21, 21, 0.8);
text-align: left;
list-style: none;
background-color: #fff;
background-clip: padding-box;
border: 1px solid rgba(0, 0, 0, 0.15);
border-radius: 0.25rem;
}
.dropdown-menu-right {
right: 0;
left: auto;
}
.dropup .dropdown-menu {
top: auto;
bottom: 100%;
margin-top: 0;
margin-bottom: 0.125rem;
}
.dropup .dropdown-toggle::after {
display: inline-block;
width: 0;
height: 0;
margin-left: 0.255em;
vertical-align: 0.255em;
content: "";
border-top: 0;
border-right: 0.3em solid transparent;
border-bottom: 0.3em solid;
border-left: 0.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: 0.125rem;
}
.dropright .dropdown-toggle::after {
display: inline-block;
width: 0;
height: 0;
margin-left: 0.255em;
vertical-align: 0.255em;
content: "";
border-top: 0.3em solid transparent;
border-right: 0;
border-bottom: 0.3em solid transparent;
border-left: 0.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: 0.125rem;
}
.dropleft .dropdown-toggle::after {
display: inline-block;
width: 0;
height: 0;
margin-left: 0.255em;
vertical-align: 0.255em;
content: "";
}
.dropleft .dropdown-toggle::after {
display: none;
}
.dropleft .dropdown-toggle::before {
display: inline-block;
width: 0;
height: 0;
margin-right: 0.255em;
vertical-align: 0.255em;
content: "";
border-top: 0.3em solid transparent;
border-right: 0.3em solid;
border-bottom: 0.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 {
height: 0;
margin: 0.5rem 0;
overflow: hidden;
border-top: 1px solid #e9ecef;
}
.dropdown-item {
display: block;
width: 100%;
padding: 0.25rem 1.5rem;
clear: both;
font-weight: 400;
color: #212529;
text-align: inherit;
white-space: nowrap;
background-color: transparent;
border: 0;
}
.dropdown-item:hover, .dropdown-item:focus {
color: #16181b;
text-decoration: none;
background-color: #f8f9fa;
}
.dropdown-item.active, .dropdown-item:active {
color: #fff;
text-decoration: none;
background-color: #007bff;
}
.dropdown-item.disabled, .dropdown-item:disabled {
color: #6c757d;
background-color: transparent;
}
.dropdown-menu.show {
display: block;
}
.dropdown-header {
display: block;
padding: 0.5rem 1.5rem;
margin-bottom: 0;
font-size: 12px;
color: #6c757d;
white-space: nowrap;
}
.dropdown-item-text {
display: block;
padding: 0.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: 0.5625rem;
padding-left: 0.5625rem;
}
.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: 0.375rem;
padding-left: 0.375rem;
}
.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {
padding-right: 0.75rem;
padding-left: 0.75rem;
}
.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;
flex-wrap: wrap;
align-items: stretch;
width: 100%;
}
.input-group > .form-control,
.input-group > .custom-select,
.input-group > .custom-file {
position: relative;
flex: 1 1 auto;
width: 1%;
margin-bottom: 0;
}
.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 {
display: flex;
align-items: center;
padding: 0.375rem 0.75rem;
margin-bottom: 0;
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
color: #495057;
text-align: center;
white-space: nowrap;
background-color: #e9ecef;
border: 1px solid #ced4da;
border-radius: 0.25rem;
}
.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 {
height: calc(2.875rem + 2px);
padding: 0.5rem 1rem;
font-size: 18px;
line-height: 1.5;
border-radius: 0.3rem;
}
.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 {
height: calc(1.8125rem + 2px);
padding: 0.25rem 0.5rem;
font-size: 12px;
line-height: 1.5;
border-radius: 0.2rem;
}
.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.66667rem;
padding-left: 1.5rem;
}
.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: #007bff;
}
.custom-control-input:focus ~ .custom-control-label::before {
box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}
.custom-control-input:active ~ .custom-control-label::before {
color: #fff;
background-color: #b3d7ff;
}
.custom-control-input:disabled ~ .custom-control-label {
color: #6c757d;
}
.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: 0.33333rem;
left: -1.5rem;
display: block;
width: 1rem;
height: 1rem;
pointer-events: none;
content: "";
user-select: none;
background-color: #dee2e6;
}
.custom-control-label::after {
position: absolute;
top: 0.33333rem;
left: -1.5rem;
display: block;
width: 1rem;
height: 1rem;
content: "";
background-repeat: no-repeat;
background-position: center center;
background-size: 50% 50%;
}
.custom-checkbox .custom-control-label::before {
border-radius: 0.25rem;
}
.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before {
background-color: #007bff;
}
.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: #007bff;
}
.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(0, 123, 255, 0.5);
}
.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {
background-color: rgba(0, 123, 255, 0.5);
}
.custom-radio .custom-control-label::before {
border-radius: 50%;
}
.custom-radio .custom-control-input:checked ~ .custom-control-label::before {
background-color: #007bff;
}
.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(0, 123, 255, 0.5);
}
.custom-select {
display: inline-block;
width: 100%;
height: calc(2.25rem + 2px);
padding: 0.375rem 1.75rem 0.375rem 0.75rem;
line-height: 1.5;
color: #495057;
vertical-align: middle;
background: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right 0.75rem center/8px 10px;
background-color: #fff;
border: 1px solid #ced4da;
border-radius: 0.25rem;
appearance: none;
}
.custom-select:focus {
border-color: #80bdff;
outline: 0;
box-shadow: 0 0 0 0.2rem rgba(128, 189, 255, 0.5);
}
.custom-select:focus::-ms-value {
color: #495057;
background-color: #fff;
}
.custom-select[multiple], .custom-select[size]:not([size="1"]) {
height: auto;
padding-right: 0.75rem;
background-image: none;
}
.custom-select:disabled {
color: #6c757d;
background-color: #e9ecef;
}
.custom-select::-ms-expand {
opacity: 0;
}
.custom-select-sm {
height: calc(1.8125rem + 2px);
padding-top: 0.25rem;
padding-bottom: 0.25rem;
padding-left: 0.5rem;
font-size: 0.875rem;
}
.custom-select-lg {
height: calc(2.875rem + 2px);
padding-top: 0.5rem;
padding-bottom: 0.5rem;
padding-left: 1rem;
font-size: 1.25rem;
}
.custom-file {
position: relative;
display: inline-block;
width: 100%;
height: calc(2.25rem + 2px);
margin-bottom: 0;
}
.custom-file-input {
position: relative;
z-index: 2;
width: 100%;
height: calc(2.25rem + 2px);
margin: 0;
opacity: 0;
}
.custom-file-input:focus ~ .custom-file-label {
border-color: #80bdff;
box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}
.custom-file-input:focus ~ .custom-file-label::after {
border-color: #80bdff;
}
.custom-file-input:disabled ~ .custom-file-label {
background-color: #e9ecef;
}
.custom-file-input:lang(en) ~ .custom-file-label::after {
content: "Browse";
}
.custom-file-label {
position: absolute;
top: 0;
right: 0;
left: 0;
z-index: 1;
height: calc(2.25rem + 2px);
padding: 0.375rem 0.75rem;
line-height: 1.5;
color: #495057;
background-color: #fff;
border: 1px solid #ced4da;
border-radius: 0.25rem;
}
.custom-file-label::after {
position: absolute;
top: 0;
right: 0;
bottom: 0;
z-index: 3;
display: block;
height: 2.25rem;
padding: 0.375rem 0.75rem;
line-height: 1.5;
color: #495057;
content: "Browse";
background-color: #e9ecef;
border-left: 1px solid #ced4da;
border-radius: 0 0.25rem 0.25rem 0;
}
.custom-range {
width: 100%;
height: calc(1rem + 0.4rem);
padding: 0;
background-color: transparent;
appearance: none;
}
.custom-range:focus {
outline: none;
}
.custom-range:focus::-webkit-slider-thumb {
box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}
.custom-range:focus::-moz-range-thumb {
box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}
.custom-range:focus::-ms-thumb {
box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}
.custom-range::-moz-focus-outer {
border: 0;
}
.custom-range::-webkit-slider-thumb {
width: 1rem;
height: 1rem;
margin-top: -0.25rem;
background-color: #007bff;
border: 0;
border-radius: 1rem;
transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
appearance: none;
}
@media screen and (prefers-reduced-motion: reduce) {
.custom-range::-webkit-slider-thumb {
transition: none;
}
}
.custom-range::-webkit-slider-thumb:active {
background-color: #b3d7ff;
}
.custom-range::-webkit-slider-runnable-track {
width: 100%;
height: 0.5rem;
color: transparent;
cursor: pointer;
background-color: #dee2e6;
border-color: transparent;
border-radius: 1rem;
}
.custom-range::-moz-range-thumb {
width: 1rem;
height: 1rem;
background-color: #007bff;
border: 0;
border-radius: 1rem;
transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
appearance: none;
}
@media screen and (prefers-reduced-motion: reduce) {
.custom-range::-moz-range-thumb {
transition: none;
}
}
.custom-range::-moz-range-thumb:active {
background-color: #b3d7ff;
}
.custom-range::-moz-range-track {
width: 100%;
height: 0.5rem;
color: transparent;
cursor: pointer;
background-color: #dee2e6;
border-color: transparent;
border-radius: 1rem;
}
.custom-range::-ms-thumb {
width: 1rem;
height: 1rem;
margin-top: 0;
margin-right: 0.2rem;
margin-left: 0.2rem;
background-color: #007bff;
border: 0;
border-radius: 1rem;
transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
appearance: none;
}
@media screen and (prefers-reduced-motion: reduce) {
.custom-range::-ms-thumb {
transition: none;
}
}
.custom-range::-ms-thumb:active {
background-color: #b3d7ff;
}
.custom-range::-ms-track {
width: 100%;
height: 0.5rem;
color: transparent;
cursor: pointer;
background-color: transparent;
border-color: transparent;
border-width: 0.5rem;
}
.custom-range::-ms-fill-lower {
background-color: #dee2e6;
border-radius: 1rem;
}
.custom-range::-ms-fill-upper {
margin-right: 15px;
background-color: #dee2e6;
border-radius: 1rem;
}
.custom-range:disabled::-webkit-slider-thumb {
background-color: #adb5bd;
}
.custom-range:disabled::-webkit-slider-runnable-track {
cursor: default;
}
.custom-range:disabled::-moz-range-thumb {
background-color: #adb5bd;
}
.custom-range:disabled::-moz-range-track {
cursor: default;
}
.custom-range:disabled::-ms-thumb {
background-color: #adb5bd;
}
.custom-control-label::before,
.custom-file-label,
.custom-select {
transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.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;
flex-wrap: wrap;
padding-left: 0;
margin-bottom: 0;
list-style: none;
}
.nav-link {
display: block;
padding: 0.5rem 1rem;
}
.nav-link:hover, .nav-link:focus {
text-decoration: none;
}
.nav-link.disabled {
color: #6c757d;
}
.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: 0.25rem;
border-top-right-radius: 0.25rem;
}
.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {
border-color: #e9ecef #e9ecef #dee2e6;
}
.nav-tabs .nav-link.disabled {
color: #6c757d;
background-color: transparent;
border-color: transparent;
}
.nav-tabs .nav-link.active,
.nav-tabs .nav-item.show .nav-link {
color: #495057;
background-color: #fff;
border-color: #dee2e6 #dee2e6 #fff;
}
.nav-tabs .dropdown-menu {
margin-top: -1px;
border-top-left-radius: 0;
border-top-right-radius: 0;
}
.nav-pills .nav-link {
border-radius: 0.25rem;
}
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
color: #fff;
background-color: #007bff;
}
.nav-fill .nav-item {
flex: 1 1 auto;
text-align: center;
}
.nav-justified .nav-item {
flex-basis: 0;
flex-grow: 1;
text-align: center;
}
.tab-content > .tab-pane {
display: none;
}
.tab-content > .active {
display: block;
}
.navbar {
position: relative;
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
padding: 0.5rem 1rem;
}
.navbar > .container,
.navbar > .container-fluid {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
}
.navbar-brand {
display: inline-block;
padding-top: 0.3125rem;
padding-bottom: 0.3125rem;
margin-right: 1rem;
font-size: 1.25rem;
line-height: inherit;
white-space: nowrap;
}
.navbar-brand:hover, .navbar-brand:focus {
text-decoration: none;
}
.navbar-nav {
display: flex;
flex-direction: column;
padding-left: 0;
margin-bottom: 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: 0.5rem;
padding-bottom: 0.5rem;
}
.navbar-collapse {
flex-basis: 100%;
flex-grow: 1;
align-items: center;
}
.navbar-toggler {
padding: 0.25rem 0.75rem;
font-size: 1.25rem;
line-height: 1;
background-color: transparent;
border: 1px solid transparent;
border-radius: 0.25rem;
}
.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;
vertical-align: middle;
content: "";
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: 0.5rem;
padding-left: 0.5rem;
}
.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: 0.5rem;
padding-left: 0.5rem;
}
.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: 0.5rem;
padding-left: 0.5rem;
}
.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: 0.5rem;
padding-left: 0.5rem;
}
.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;
}
}
@media (max-width: 1599.98px) {
.navbar-expand-xxl > .container,
.navbar-expand-xxl > .container-fluid {
padding-right: 0;
padding-left: 0;
}
}
@media (min-width: 1600px) {
.navbar-expand-xxl {
flex-flow: row nowrap;
justify-content: flex-start;
}
.navbar-expand-xxl .navbar-nav {
flex-direction: row;
}
.navbar-expand-xxl .navbar-nav .dropdown-menu {
position: absolute;
}
.navbar-expand-xxl .navbar-nav .nav-link {
padding-right: 0.5rem;
padding-left: 0.5rem;
}
.navbar-expand-xxl > .container,
.navbar-expand-xxl > .container-fluid {
flex-wrap: nowrap;
}
.navbar-expand-xxl .navbar-collapse {
display: flex !important;
flex-basis: auto;
}
.navbar-expand-xxl .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: 0.5rem;
padding-left: 0.5rem;
}
.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, 0.9);
}
.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {
color: rgba(0, 0, 0, 0.9);
}
.navbar-light .navbar-nav .nav-link {
color: rgba(0, 0, 0, 0.5);
}
.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {
color: rgba(0, 0, 0, 0.7);
}
.navbar-light .navbar-nav .nav-link.disabled {
color: rgba(0, 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, 0.9);
}
.navbar-light .navbar-toggler {
color: rgba(0, 0, 0, 0.5);
border-color: rgba(0, 0, 0, 0.1);
}
.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, 0.5);
}
.navbar-light .navbar-text a {
color: rgba(0, 0, 0, 0.9);
}
.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {
color: rgba(0, 0, 0, 0.9);
}
.navbar-dark .navbar-brand {
color: #fff;
}
.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {
color: #fff;
}
.navbar-dark .navbar-nav .nav-link {
color: rgba(255, 255, 255, 0.5);
}
.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {
color: rgba(255, 255, 255, 0.75);
}
.navbar-dark .navbar-nav .nav-link.disabled {
color: rgba(255, 255, 255, 0.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: #fff;
}
.navbar-dark .navbar-toggler {
color: rgba(255, 255, 255, 0.5);
border-color: rgba(255, 255, 255, 0.1);
}
.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.5)' 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, 0.5);
}
.navbar-dark .navbar-text a {
color: #fff;
}
.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {
color: #fff;
}
.card {
position: relative;
display: flex;
flex-direction: column;
min-width: 0;
word-wrap: break-word;
background-color: #fff;
background-clip: border-box;
border: 1px solid rgba(0, 0, 0, 0.125);
border-radius: 0.25rem;
}
.card > hr {
margin-right: 0;
margin-left: 0;
}
.card > .list-group:first-child .list-group-item:first-child {
border-top-left-radius: 0.25rem;
border-top-right-radius: 0.25rem;
}
.card > .list-group:last-child .list-group-item:last-child {
border-bottom-right-radius: 0.25rem;
border-bottom-left-radius: 0.25rem;
}
.card-body {
flex: 1 1 auto;
padding: 1.25rem;
}
.card-title {
margin-bottom: 0.75rem;
}
.card-subtitle {
margin-top: -0.375rem;
margin-bottom: 0;
}
.card-text:last-child {
margin-bottom: 0;
}
.card-link:hover {
text-decoration: none;
}
.card-link + .card-link {
margin-left: 1.25rem;
}
.card-header {
padding: 0.75rem 1.25rem;
margin-bottom: 0;
background-color: rgba(0, 0, 0, 0.03);
border-bottom: 1px solid rgba(0, 0, 0, 0.125);
}
.card-header:first-child {
border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;
}
.card-header + .list-group .list-group-item:first-child {
border-top: 0;
}
.card-footer {
padding: 0.75rem 1.25rem;
background-color: rgba(0, 0, 0, 0.03);
border-top: 1px solid rgba(0, 0, 0, 0.125);
}
.card-footer:last-child {
border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);
}
.card-header-tabs {
margin-right: -0.625rem;
margin-bottom: -0.75rem;
margin-left: -0.625rem;
border-bottom: 0;
}
.card-header-pills {
margin-right: -0.625rem;
margin-left: -0.625rem;
}
.card-img-overlay {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
padding: 1.25rem;
}
.card-img {
width: 100%;
border-radius: calc(0.25rem - 1px);
}
.card-img-top {
width: 100%;
border-top-left-radius: calc(0.25rem - 1px);
border-top-right-radius: calc(0.25rem - 1px);
}
.card-img-bottom {
width: 100%;
border-bottom-right-radius: calc(0.25rem - 1px);
border-bottom-left-radius: calc(0.25rem - 1px);
}
.card-deck {
display: flex;
flex-direction: column;
}
.card-deck .card {
margin-bottom: 15px;
}
@media (min-width: 576px) {
.card-deck {
flex-flow: row wrap;
margin-right: -15px;
margin-left: -15px;
}
.card-deck .card {
display: flex;
flex: 1 0 0%;
flex-direction: column;
margin-right: 15px;
margin-bottom: 0;
margin-left: 15px;
}
}
.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 {
flex: 1 0 0%;
margin-bottom: 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: 0.25rem;
}
.card-group > .card:only-child .card-img-top,
.card-group > .card:only-child .card-header {
border-top-left-radius: 0.25rem;
border-top-right-radius: 0.25rem;
}
.card-group > .card:only-child .card-img-bottom,
.card-group > .card:only-child .card-footer {
border-bottom-right-radius: 0.25rem;
border-bottom-left-radius: 0.25rem;
}
.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: 0.75rem;
}
@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;
flex-wrap: wrap;
padding: 0.75rem 1rem;
margin-bottom: 1rem;
list-style: none;
background-color: #e9ecef;
border-radius: 0.25rem;
}
.breadcrumb-item + .breadcrumb-item {
padding-left: 0.5rem;
}
.breadcrumb-item + .breadcrumb-item::before {
display: inline-block;
padding-right: 0.5rem;
color: #6c757d;
content: "/";
}
.breadcrumb-item + .breadcrumb-item:hover::before {
text-decoration: underline;
}
.breadcrumb-item + .breadcrumb-item:hover::before {
text-decoration: none;
}
.breadcrumb-item.active {
color: #6c757d;
}
.pagination {
display: flex;
padding-left: 0;
list-style: none;
border-radius: 5px;
}
.page-link {
position: relative;
display: block;
padding: 10px 10px;
margin-left: -1px;
line-height: 25px;
color: #9b9b9b;
background-color: #ffffff;
border: 1px solid #d7d7d7;
}
.page-link:hover {
z-index: 2;
color: #ffffff;
text-decoration: none;
background-color: #41A451;
border-color: #41A451;
}
.page-link:focus {
z-index: 2;
outline: 0;
box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}
.page-link:not(:disabled):not(.disabled) {
cursor: pointer;
}
.page-item:first-child .page-link {
margin-left: 0;
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
}
.page-item:last-child .page-link {
border-top-right-radius: 5px;
border-bottom-right-radius: 5px;
}
.page-item.active .page-link {
z-index: 1;
color: #ffffff;
background-color: #41A451;
border-color: #41A451;
}
.page-item.disabled .page-link {
color: #C4C4C4;
pointer-events: none;
cursor: auto;
background-color: #d7d7d7;
border-color: #d7d7d7;
}
.pagination-lg .page-link {
padding: 0.75rem 1.5rem;
font-size: 18px;
line-height: 1.66667;
}
.pagination-lg .page-item:first-child .page-link {
border-top-left-radius: 0.3rem;
border-bottom-left-radius: 0.3rem;
}
.pagination-lg .page-item:last-child .page-link {
border-top-right-radius: 0.3rem;
border-bottom-right-radius: 0.3rem;
}
.pagination-sm .page-link {
padding: 0.25rem 0.5rem;
font-size: 12px;
line-height: 1.5;
}
.pagination-sm .page-item:first-child .page-link {
border-top-left-radius: 0.2rem;
border-bottom-left-radius: 0.2rem;
}
.pagination-sm .page-item:last-child .page-link {
border-top-right-radius: 0.2rem;
border-bottom-right-radius: 0.2rem;
}
.badge {
display: inline-block;
padding: 0.25em 0.4em;
font-size: 75%;
font-weight: 700;
line-height: 1;
text-align: center;
white-space: nowrap;
vertical-align: baseline;
border-radius: 0.25rem;
}
.badge:empty {
display: none;
}
.btn .badge {
position: relative;
top: -1px;
}
.badge-pill {
padding-right: 0.6em;
padding-left: 0.6em;
border-radius: 10rem;
}
.jumbotron {
padding: 2rem 1rem;
margin-bottom: 2rem;
background-color: #e9ecef;
border-radius: 0.3rem;
}
@media (min-width: 576px) {
.jumbotron {
padding: 4rem 2rem;
}
}
.jumbotron-fluid {
padding-right: 0;
padding-left: 0;
border-radius: 0;
}
.alert {
position: relative;
padding: 0.75rem 1.25rem;
margin-bottom: 1rem;
border: 1px solid transparent;
border-radius: 0.25rem;
}
.alert-heading {
color: inherit;
}
.alert-link {
font-weight: 700;
}
.alert-dismissible {
padding-right: 4rem;
}
.alert-dismissible .close {
position: absolute;
top: 0;
right: 0;
padding: 0.75rem 1.25rem;
color: inherit;
}
@keyframes progress-bar-stripes {
from {
background-position: 1rem 0;
}
to {
background-position: 0 0;
}
}
.progress {
display: flex;
height: 1rem;
overflow: hidden;
font-size: 0.75rem;
background-color: #e9ecef;
border-radius: 0.25rem;
}
.progress-bar {
display: flex;
flex-direction: column;
justify-content: center;
color: #fff;
text-align: center;
white-space: nowrap;
background-color: #007bff;
transition: width 0.6s ease;
}
@media screen and (prefers-reduced-motion: reduce) {
.progress-bar {
transition: none;
}
}
.progress-bar-striped {
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.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;
}
.list-group {
display: flex;
flex-direction: column;
padding-left: 0;
margin-bottom: 0;
}
.list-group-item-action {
width: 100%;
color: #495057;
text-align: inherit;
}
.list-group-item-action:hover, .list-group-item-action:focus {
color: #495057;
text-decoration: none;
background-color: #f8f9fa;
}
.list-group-item-action:active {
color: #212529;
background-color: #e9ecef;
}
.list-group-item {
position: relative;
display: block;
padding: 0.75rem 1.25rem;
margin-bottom: -1px;
background-color: #fff;
border: 1px solid rgba(0, 0, 0, 0.125);
}
.list-group-item:first-child {
border-top-left-radius: 0.25rem;
border-top-right-radius: 0.25rem;
}
.list-group-item:last-child {
margin-bottom: 0;
border-bottom-right-radius: 0.25rem;
border-bottom-left-radius: 0.25rem;
}
.list-group-item:hover, .list-group-item:focus {
z-index: 1;
text-decoration: none;
}
.list-group-item.disabled, .list-group-item:disabled {
color: #6c757d;
background-color: #fff;
}
.list-group-item.active {
z-index: 2;
color: #fff;
background-color: #007bff;
border-color: #007bff;
}
.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;
}
.close {
float: right;
font-size: 1.5rem;
font-weight: 700;
line-height: 1;
color: #000;
text-shadow: 0 1px 0 #fff;
opacity: .5;
}
.close:not(:disabled):not(.disabled) {
cursor: pointer;
}
.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {
color: #000;
text-decoration: none;
opacity: .75;
}
button.close {
padding: 0;
background-color: transparent;
border: 0;
-webkit-appearance: none;
}
.modal-open {
overflow: hidden;
}
.modal-open .modal {
overflow-x: hidden;
overflow-y: auto;
}
.modal {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1050;
display: none;
overflow: hidden;
outline: 0;
}
.modal-dialog {
position: relative;
width: auto;
margin: 0.5rem;
pointer-events: none;
}
.modal.fade .modal-dialog {
transition: transform 0.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;
align-items: center;
min-height: calc(100% - (0.5rem * 2));
}
.modal-dialog-centered::before {
display: block;
height: calc(100vh - (0.5rem * 2));
content: "";
}
.modal-content {
position: relative;
display: flex;
flex-direction: column;
width: 100%;
pointer-events: auto;
background-color: #fff;
background-clip: padding-box;
border: 1px solid rgba(0, 0, 0, 0.2);
border-radius: 0.3rem;
outline: 0;
}
.modal-backdrop {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1040;
background-color: #000;
}
.modal-backdrop.fade {
opacity: 0;
}
.modal-backdrop.show {
opacity: 0.5;
}
.modal-header {
display: flex;
align-items: flex-start;
justify-content: space-between;
padding: 1rem;
border-bottom: 1px solid #e9ecef;
border-top-left-radius: 0.3rem;
border-top-right-radius: 0.3rem;
}
.modal-header .close {
padding: 1rem;
margin: -1rem -1rem -1rem auto;
}
.modal-title {
margin-bottom: 0;
line-height: 1.5;
}
.modal-body {
position: relative;
flex: 1 1 auto;
padding: 1rem;
}
.modal-footer {
display: flex;
align-items: center;
justify-content: flex-end;
padding: 1rem;
border-top: 1px solid #e9ecef;
}
.modal-footer > :not(:first-child) {
margin-left: .25rem;
}
.modal-footer > :not(:last-child) {
margin-right: .25rem;
}
.modal-scrollbar-measure {
position: absolute;
top: -9999px;
width: 50px;
height: 50px;
overflow: scroll;
}
@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-sm {
max-width: 300px;
}
}
@media (min-width: 992px) {
.modal-lg {
max-width: 800px;
}
}
@media (min-width: 1200px) {
.modal-xl {
max-width: 1140px;
}
}
.tooltip {
position: absolute;
z-index: 10;
display: block;
margin: 0;
font-family: "Poppins", sans-serif;
font-style: normal;
font-weight: 400;
line-height: 1.66667;
text-align: left;
text-align: start;
text-decoration: none;
text-shadow: none;
text-transform: none;
letter-spacing: normal;
word-break: normal;
word-spacing: normal;
white-space: normal;
line-break: auto;
font-size: 0.875rem;
word-wrap: break-word;
opacity: 0;
}
.tooltip.show {
opacity: 1;
}
.tooltip .arrow {
position: absolute;
display: block;
width: 6px;
height: 6px;
}
.tooltip .arrow::before {
position: absolute;
content: "";
border-color: transparent;
border-style: solid;
}
.bs-tooltip-top, .bs-tooltip-auto[x-placement^="top"] {
padding: 6px 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: 6px 3px 0;
border-top-color: #41A451;
}
.bs-tooltip-right, .bs-tooltip-auto[x-placement^="right"] {
padding: 0 6px;
}
.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^="right"] .arrow {
left: 0;
width: 6px;
height: 6px;
}
.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^="right"] .arrow::before {
right: 0;
border-width: 3px 6px 3px 0;
border-right-color: #41A451;
}
.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^="bottom"] {
padding: 6px 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 3px 6px;
border-bottom-color: #41A451;
}
.bs-tooltip-left, .bs-tooltip-auto[x-placement^="left"] {
padding: 0 6px;
}
.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^="left"] .arrow {
right: 0;
width: 6px;
height: 6px;
}
.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^="left"] .arrow::before {
left: 0;
border-width: 3px 0 3px 6px;
border-left-color: #41A451;
}
.tooltip-inner {
max-width: 200px;
padding: 6px 10px;
color: #ffffff;
text-align: center;
background-color: #41A451;
border-radius: 0.25rem;
}
.popover {
position: absolute;
top: 0;
left: 0;
z-index: 1060;
display: block;
max-width: 276px;
font-family: "Poppins", sans-serif;
font-style: normal;
font-weight: 400;
line-height: 1.66667;
text-align: left;
text-align: start;
text-decoration: none;
text-shadow: none;
text-transform: none;
letter-spacing: normal;
word-break: normal;
word-spacing: normal;
white-space: normal;
line-break: auto;
font-size: 0.875rem;
word-wrap: break-word;
background-color: #fff;
background-clip: padding-box;
border: 1px solid rgba(0, 0, 0, 0.2);
border-radius: 0.3rem;
}
.popover .arrow {
position: absolute;
display: block;
width: 1rem;
height: 0.5rem;
margin: 0 0.3rem;
}
.popover .arrow::before, .popover .arrow::after {
position: absolute;
display: block;
content: "";
border-color: transparent;
border-style: solid;
}
.bs-popover-top, .bs-popover-auto[x-placement^="top"] {
margin-bottom: 0.5rem;
}
.bs-popover-top .arrow, .bs-popover-auto[x-placement^="top"] .arrow {
bottom: calc((0.5rem + 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: 0.5rem 0.5rem 0;
}
.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^="top"] .arrow::before {
bottom: 0;
border-top-color: rgba(0, 0, 0, 0.25);
}
.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: 0.5rem;
}
.bs-popover-right .arrow, .bs-popover-auto[x-placement^="right"] .arrow {
left: calc((0.5rem + 1px) * -1);
width: 0.5rem;
height: 1rem;
margin: 0.3rem 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: 0.5rem 0.5rem 0.5rem 0;
}
.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^="right"] .arrow::before {
left: 0;
border-right-color: rgba(0, 0, 0, 0.25);
}
.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: 0.5rem;
}
.bs-popover-bottom .arrow, .bs-popover-auto[x-placement^="bottom"] .arrow {
top: calc((0.5rem + 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 0.5rem 0.5rem 0.5rem;
}
.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^="bottom"] .arrow::before {
top: 0;
border-bottom-color: rgba(0, 0, 0, 0.25);
}
.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: 1rem;
margin-left: -0.5rem;
content: "";
border-bottom: 1px solid #f7f7f7;
}
.bs-popover-left, .bs-popover-auto[x-placement^="left"] {
margin-right: 0.5rem;
}
.bs-popover-left .arrow, .bs-popover-auto[x-placement^="left"] .arrow {
right: calc((0.5rem + 1px) * -1);
width: 0.5rem;
height: 1rem;
margin: 0.3rem 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: 0.5rem 0 0.5rem 0.5rem;
}
.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^="left"] .arrow::before {
right: 0;
border-left-color: rgba(0, 0, 0, 0.25);
}
.bs-popover-left .arrow::after,
.bs-popover-auto[x-placement^="left"] .arrow::after {
right: 1px;
border-left-color: #fff;
}
.popover-header {
padding: 0.5rem 0.75rem;
margin-bottom: 0;
font-size: 1rem;
color: inherit;
background-color: #f7f7f7;
border-bottom: 1px solid #ebebeb;
border-top-left-radius: calc(0.3rem - 1px);
border-top-right-radius: calc(0.3rem - 1px);
}
.popover-header:empty {
display: none;
}
.popover-body {
padding: 0.5rem 0.75rem;
color: #212529;
}
.carousel {
position: relative;
}
.carousel-inner {
position: relative;
width: 100%;
overflow: hidden;
}
.carousel-item {
position: relative;
display: none;
align-items: center;
width: 100%;
backface-visibility: hidden;
perspective: 1000px;
}
.carousel-item.active,
.carousel-item-next,
.carousel-item-prev {
display: block;
transition: transform 0.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 {
opacity: 0;
transition-duration: .6s;
transition-property: opacity;
}
.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;
align-items: center;
justify-content: center;
width: 15%;
color: #fff;
text-align: center;
opacity: 0.5;
}
.carousel-control-prev:hover, .carousel-control-prev:focus,
.carousel-control-next:hover,
.carousel-control-next:focus {
color: #fff;
text-decoration: none;
outline: 0;
opacity: .9;
}
.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;
right: 0;
bottom: 10px;
left: 0;
z-index: 15;
display: flex;
justify-content: center;
padding-left: 0;
margin-right: 15%;
margin-left: 15%;
list-style: none;
}
.carousel-indicators li {
position: relative;
flex: 0 1 auto;
width: 30px;
height: 3px;
margin-right: 3px;
margin-left: 3px;
text-indent: -999px;
cursor: pointer;
background-color: #fff;
opacity: .5;
transition: opacity 0.6s ease;
}
@media screen and (prefers-reduced-motion: reduce) {
.carousel-indicators li {
transition: none;
}
}
.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 {
opacity: 1;
}
.carousel-caption {
position: absolute;
right: 15%;
bottom: 20px;
left: 15%;
z-index: 10;
padding-top: 20px;
padding-bottom: 20px;
color: #fff;
text-align: center;
}
.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-white {
background-color: #ffffff !important;
}
.bg-transparent {
background-color: transparent !important;
}
.border {
border: 1px solid #dee2e6 !important;
}
.border-top {
border-top: 1px solid #dee2e6 !important;
}
.border-right {
border-right: 1px solid #dee2e6 !important;
}
.border-bottom {
border-bottom: 1px solid #dee2e6 !important;
}
.border-left {
border-left: 1px solid #dee2e6 !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-white {
border-color: #ffffff !important;
}
.rounded {
border-radius: 5px !important;
}
.rounded-top {
border-top-left-radius: 5px !important;
border-top-right-radius: 5px !important;
}
.rounded-right {
border-top-right-radius: 5px !important;
border-bottom-right-radius: 5px !important;
}
.rounded-bottom {
border-bottom-right-radius: 5px !important;
border-bottom-left-radius: 5px !important;
}
.rounded-left {
border-top-left-radius: 5px !important;
border-bottom-left-radius: 5px !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 (min-width: 1600px) {
.d-xxl-none {
display: none !important;
}
.d-xxl-inline {
display: inline !important;
}
.d-xxl-inline-block {
display: inline-block !important;
}
.d-xxl-block {
display: block !important;
}
.d-xxl-table {
display: table !important;
}
.d-xxl-table-row {
display: table-row !important;
}
.d-xxl-table-cell {
display: table-cell !important;
}
.d-xxl-flex {
display: flex !important;
}
.d-xxl-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;
width: 100%;
padding: 0;
overflow: hidden;
}
.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;
}
}
@media (min-width: 1600px) {
.flex-xxl-row {
flex-direction: row !important;
}
.flex-xxl-column {
flex-direction: column !important;
}
.flex-xxl-row-reverse {
flex-direction: row-reverse !important;
}
.flex-xxl-column-reverse {
flex-direction: column-reverse !important;
}
.flex-xxl-wrap {
flex-wrap: wrap !important;
}
.flex-xxl-nowrap {
flex-wrap: nowrap !important;
}
.flex-xxl-wrap-reverse {
flex-wrap: wrap-reverse !important;
}
.flex-xxl-fill {
flex: 1 1 auto !important;
}
.flex-xxl-grow-0 {
flex-grow: 0 !important;
}
.flex-xxl-grow-1 {
flex-grow: 1 !important;
}
.flex-xxl-shrink-0 {
flex-shrink: 0 !important;
}
.flex-xxl-shrink-1 {
flex-shrink: 1 !important;
}
.justify-content-xxl-start {
justify-content: flex-start !important;
}
.justify-content-xxl-end {
justify-content: flex-end !important;
}
.justify-content-xxl-center {
justify-content: center !important;
}
.justify-content-xxl-between {
justify-content: space-between !important;
}
.justify-content-xxl-around {
justify-content: space-around !important;
}
.align-items-xxl-start {
align-items: flex-start !important;
}
.align-items-xxl-end {
align-items: flex-end !important;
}
.align-items-xxl-center {
align-items: center !important;
}
.align-items-xxl-baseline {
align-items: baseline !important;
}
.align-items-xxl-stretch {
align-items: stretch !important;
}
.align-content-xxl-start {
align-content: flex-start !important;
}
.align-content-xxl-end {
align-content: flex-end !important;
}
.align-content-xxl-center {
align-content: center !important;
}
.align-content-xxl-between {
align-content: space-between !important;
}
.align-content-xxl-around {
align-content: space-around !important;
}
.align-content-xxl-stretch {
align-content: stretch !important;
}
.align-self-xxl-auto {
align-self: auto !important;
}
.align-self-xxl-start {
align-self: flex-start !important;
}
.align-self-xxl-end {
align-self: flex-end !important;
}
.align-self-xxl-center {
align-self: center !important;
}
.align-self-xxl-baseline {
align-self: baseline !important;
}
.align-self-xxl-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;
}
}
@media (min-width: 1600px) {
.float-xxl-left {
float: left !important;
}
.float-xxl-right {
float: right !important;
}
.float-xxl-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: sticky !important;
}
.fixed-top {
position: fixed;
top: 0;
right: 0;
left: 0;
z-index: 1030;
}
.fixed-bottom {
position: fixed;
right: 0;
bottom: 0;
left: 0;
z-index: 1030;
}
@supports (position: sticky) {
.sticky-top {
position: sticky;
top: 0;
z-index: 1020;
}
}
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
.sr-only-focusable:active, .sr-only-focusable:focus {
position: static;
width: auto;
height: auto;
overflow: visible;
clip: auto;
white-space: normal;
}
.shadow-sm {
box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;
}
.shadow {
box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
}
.shadow-lg {
box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.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: 0.25rem !important;
}
.mt-1,
.my-1 {
margin-top: 0.25rem !important;
}
.mr-1,
.mx-1 {
margin-right: 0.25rem !important;
}
.mb-1,
.my-1 {
margin-bottom: 0.25rem !important;
}
.ml-1,
.mx-1 {
margin-left: 0.25rem !important;
}
.m-2 {
margin: 0.5rem !important;
}
.mt-2,
.my-2 {
margin-top: 0.5rem !important;
}
.mr-2,
.mx-2 {
margin-right: 0.5rem !important;
}
.mb-2,
.my-2 {
margin-bottom: 0.5rem !important;
}
.ml-2,
.mx-2 {
margin-left: 0.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;
}
.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: 0.25rem !important;
}
.pt-1,
.py-1 {
padding-top: 0.25rem !important;
}
.pr-1,
.px-1 {
padding-right: 0.25rem !important;
}
.pb-1,
.py-1 {
padding-bottom: 0.25rem !important;
}
.pl-1,
.px-1 {
padding-left: 0.25rem !important;
}
.p-2 {
padding: 0.5rem !important;
}
.pt-2,
.py-2 {
padding-top: 0.5rem !important;
}
.pr-2,
.px-2 {
padding-right: 0.5rem !important;
}
.pb-2,
.py-2 {
padding-bottom: 0.5rem !important;
}
.pl-2,
.px-2 {
padding-left: 0.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;
}
.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: 0.25rem !important;
}
.mt-sm-1,
.my-sm-1 {
margin-top: 0.25rem !important;
}
.mr-sm-1,
.mx-sm-1 {
margin-right: 0.25rem !important;
}
.mb-sm-1,
.my-sm-1 {
margin-bottom: 0.25rem !important;
}
.ml-sm-1,
.mx-sm-1 {
margin-left: 0.25rem !important;
}
.m-sm-2 {
margin: 0.5rem !important;
}
.mt-sm-2,
.my-sm-2 {
margin-top: 0.5rem !important;
}
.mr-sm-2,
.mx-sm-2 {
margin-right: 0.5rem !important;
}
.mb-sm-2,
.my-sm-2 {
margin-bottom: 0.5rem !important;
}
.ml-sm-2,
.mx-sm-2 {
margin-left: 0.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;
}
.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: 0.25rem !important;
}
.pt-sm-1,
.py-sm-1 {
padding-top: 0.25rem !important;
}
.pr-sm-1,
.px-sm-1 {
padding-right: 0.25rem !important;
}
.pb-sm-1,
.py-sm-1 {
padding-bottom: 0.25rem !important;
}
.pl-sm-1,
.px-sm-1 {
padding-left: 0.25rem !important;
}
.p-sm-2 {
padding: 0.5rem !important;
}
.pt-sm-2,
.py-sm-2 {
padding-top: 0.5rem !important;
}
.pr-sm-2,
.px-sm-2 {
padding-right: 0.5rem !important;
}
.pb-sm-2,
.py-sm-2 {
padding-bottom: 0.5rem !important;
}
.pl-sm-2,
.px-sm-2 {
padding-left: 0.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;
}
.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: 0.25rem !important;
}
.mt-md-1,
.my-md-1 {
margin-top: 0.25rem !important;
}
.mr-md-1,
.mx-md-1 {
margin-right: 0.25rem !important;
}
.mb-md-1,
.my-md-1 {
margin-bottom: 0.25rem !important;
}
.ml-md-1,
.mx-md-1 {
margin-left: 0.25rem !important;
}
.m-md-2 {
margin: 0.5rem !important;
}
.mt-md-2,
.my-md-2 {
margin-top: 0.5rem !important;
}
.mr-md-2,
.mx-md-2 {
margin-right: 0.5rem !important;
}
.mb-md-2,
.my-md-2 {
margin-bottom: 0.5rem !important;
}
.ml-md-2,
.mx-md-2 {
margin-left: 0.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;
}
.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: 0.25rem !important;
}
.pt-md-1,
.py-md-1 {
padding-top: 0.25rem !important;
}
.pr-md-1,
.px-md-1 {
padding-right: 0.25rem !important;
}
.pb-md-1,
.py-md-1 {
padding-bottom: 0.25rem !important;
}
.pl-md-1,
.px-md-1 {
padding-left: 0.25rem !important;
}
.p-md-2 {
padding: 0.5rem !important;
}
.pt-md-2,
.py-md-2 {
padding-top: 0.5rem !important;
}
.pr-md-2,
.px-md-2 {
padding-right: 0.5rem !important;
}
.pb-md-2,
.py-md-2 {
padding-bottom: 0.5rem !important;
}
.pl-md-2,
.px-md-2 {
padding-left: 0.5rem !important;
}
.p-md-3 {
padding: 1rem !important;
}
.pt-md-3,
.py-md-3 {
padding-top: 1rem !important;
}
.pr-md-3,
.px-md-3 {
padding-right: 1rem !important;
}
.pb-md-3,
.py-md-3 {
padding-bottom: 1rem !important;
}
.pl-md-3,
.px-md-3 {
padding-left: 1rem !important;
}
.p-md-4 {
padding: 1.5rem !important;
}
.pt-md-4,
.py-md-4 {
padding-top: 1.5rem !important;
}
.pr-md-4,
.px-md-4 {
padding-right: 1.5rem !important;
}
.pb-md-4,
.py-md-4 {
padding-bottom: 1.5rem !important;
}
.pl-md-4,
.px-md-4 {
padding-left: 1.5rem !important;
}
.p-md-5 {
padding: 3rem !important;
}
.pt-md-5,
.py-md-5 {
padding-top: 3rem !important;
}
.pr-md-5,
.px-md-5 {
padding-right: 3rem !important;
}
.pb-md-5,
.py-md-5 {
padding-bottom: 3rem !important;
}
.pl-md-5,
.px-md-5 {
padding-left: 3rem !important;
}
.m-md-auto {
margin: auto !important;
}
.mt-md-auto,
.my-md-auto {
margin-top: auto !important;
}
.mr-md-auto,
.mx-md-auto {
margin-right: auto !important;
}
.mb-md-auto,
.my-md-auto {
margin-bottom: auto !important;
}
.ml-md-auto,
.mx-md-auto {
margin-left: auto !important;
}
}
@media (min-width: 992px) {
.m-lg-0 {
margin: 0 !important;
}
.mt-lg-0,
.my-lg-0 {
margin-top: 0 !important;
}
.mr-lg-0,
.mx-lg-0 {
margin-right: 0 !important;
}
.mb-lg-0,
.my-lg-0 {
margin-bottom: 0 !important;
}
.ml-lg-0,
.mx-lg-0 {
margin-left: 0 !important;
}
.m-lg-1 {
margin: 0.25rem !important;
}
.mt-lg-1,
.my-lg-1 {
margin-top: 0.25rem !important;
}
.mr-lg-1,
.mx-lg-1 {
margin-right: 0.25rem !important;
}
.mb-lg-1,
.my-lg-1 {
margin-bottom: 0.25rem !important;
}
.ml-lg-1,
.mx-lg-1 {
margin-left: 0.25rem !important;
}
.m-lg-2 {
margin: 0.5rem !important;
}
.mt-lg-2,
.my-lg-2 {
margin-top: 0.5rem !important;
}
.mr-lg-2,
.mx-lg-2 {
margin-right: 0.5rem !important;
}
.mb-lg-2,
.my-lg-2 {
margin-bottom: 0.5rem !important;
}
.ml-lg-2,
.mx-lg-2 {
margin-left: 0.5rem !important;
}
.m-lg-3 {
margin: 1rem !important;
}
.mt-lg-3,
.my-lg-3 {
margin-top: 1rem !important;
}
.mr-lg-3,
.mx-lg-3 {
margin-right: 1rem !important;
}
.mb-lg-3,
.my-lg-3 {
margin-bottom: 1rem !important;
}
.ml-lg-3,
.mx-lg-3 {
margin-left: 1rem !important;
}
.m-lg-4 {
margin: 1.5rem !important;
}
.mt-lg-4,
.my-lg-4 {
margin-top: 1.5rem !important;
}
.mr-lg-4,
.mx-lg-4 {
margin-right: 1.5rem !important;
}
.mb-lg-4,
.my-lg-4 {
margin-bottom: 1.5rem !important;
}
.ml-lg-4,
.mx-lg-4 {
margin-left: 1.5rem !important;
}
.m-lg-5 {
margin: 3rem !important;
}
.mt-lg-5,
.my-lg-5 {
margin-top: 3rem !important;
}
.mr-lg-5,
.mx-lg-5 {
margin-right: 3rem !important;
}
.mb-lg-5,
.my-lg-5 {
margin-bottom: 3rem !important;
}
.ml-lg-5,
.mx-lg-5 {
margin-left: 3rem !important;
}
.p-lg-0 {
padding: 0 !important;
}
.pt-lg-0,
.py-lg-0 {
padding-top: 0 !important;
}
.pr-lg-0,
.px-lg-0 {
padding-right: 0 !important;
}
.pb-lg-0,
.py-lg-0 {
padding-bottom: 0 !important;
}
.pl-lg-0,
.px-lg-0 {
padding-left: 0 !important;
}
.p-lg-1 {
padding: 0.25rem !important;
}
.pt-lg-1,
.py-lg-1 {
padding-top: 0.25rem !important;
}
.pr-lg-1,
.px-lg-1 {
padding-right: 0.25rem !important;
}
.pb-lg-1,
.py-lg-1 {
padding-bottom: 0.25rem !important;
}
.pl-lg-1,
.px-lg-1 {
padding-left: 0.25rem !important;
}
.p-lg-2 {
padding: 0.5rem !important;
}
.pt-lg-2,
.py-lg-2 {
padding-top: 0.5rem !important;
}
.pr-lg-2,
.px-lg-2 {
padding-right: 0.5rem !important;
}
.pb-lg-2,
.py-lg-2 {
padding-bottom: 0.5rem !important;
}
.pl-lg-2,
.px-lg-2 {
padding-left: 0.5rem !important;
}
.p-lg-3 {
padding: 1rem !important;
}
.pt-lg-3,
.py-lg-3 {
padding-top: 1rem !important;
}
.pr-lg-3,
.px-lg-3 {
padding-right: 1rem !important;
}
.pb-lg-3,
.py-lg-3 {
padding-bottom: 1rem !important;
}
.pl-lg-3,
.px-lg-3 {
padding-left: 1rem !important;
}
.p-lg-4 {
padding: 1.5rem !important;
}
.pt-lg-4,
.py-lg-4 {
padding-top: 1.5rem !important;
}
.pr-lg-4,
.px-lg-4 {
padding-right: 1.5rem !important;
}
.pb-lg-4,
.py-lg-4 {
padding-bottom: 1.5rem !important;
}
.pl-lg-4,
.px-lg-4 {
padding-left: 1.5rem !important;
}
.p-lg-5 {
padding: 3rem !important;
}
.pt-lg-5,
.py-lg-5 {
padding-top: 3rem !important;
}
.pr-lg-5,
.px-lg-5 {
padding-right: 3rem !important;
}
.pb-lg-5,
.py-lg-5 {
padding-bottom: 3rem !important;
}
.pl-lg-5,
.px-lg-5 {
padding-left: 3rem !important;
}
.m-lg-auto {
margin: auto !important;
}
.mt-lg-auto,
.my-lg-auto {
margin-top: auto !important;
}
.mr-lg-auto,
.mx-lg-auto {
margin-right: auto !important;
}
.mb-lg-auto,
.my-lg-auto {
margin-bottom: auto !important;
}
.ml-lg-auto,
.mx-lg-auto {
margin-left: auto !important;
}
}
@media (min-width: 1200px) {
.m-xl-0 {
margin: 0 !important;
}
.mt-xl-0,
.my-xl-0 {
margin-top: 0 !important;
}
.mr-xl-0,
.mx-xl-0 {
margin-right: 0 !important;
}
.mb-xl-0,
.my-xl-0 {
margin-bottom: 0 !important;
}
.ml-xl-0,
.mx-xl-0 {
margin-left: 0 !important;
}
.m-xl-1 {
margin: 0.25rem !important;
}
.mt-xl-1,
.my-xl-1 {
margin-top: 0.25rem !important;
}
.mr-xl-1,
.mx-xl-1 {
margin-right: 0.25rem !important;
}
.mb-xl-1,
.my-xl-1 {
margin-bottom: 0.25rem !important;
}
.ml-xl-1,
.mx-xl-1 {
margin-left: 0.25rem !important;
}
.m-xl-2 {
margin: 0.5rem !important;
}
.mt-xl-2,
.my-xl-2 {
margin-top: 0.5rem !important;
}
.mr-xl-2,
.mx-xl-2 {
margin-right: 0.5rem !important;
}
.mb-xl-2,
.my-xl-2 {
margin-bottom: 0.5rem !important;
}
.ml-xl-2,
.mx-xl-2 {
margin-left: 0.5rem !important;
}
.m-xl-3 {
margin: 1rem !important;
}
.mt-xl-3,
.my-xl-3 {
margin-top: 1rem !important;
}
.mr-xl-3,
.mx-xl-3 {
margin-right: 1rem !important;
}
.mb-xl-3,
.my-xl-3 {
margin-bottom: 1rem !important;
}
.ml-xl-3,
.mx-xl-3 {
margin-left: 1rem !important;
}
.m-xl-4 {
margin: 1.5rem !important;
}
.mt-xl-4,
.my-xl-4 {
margin-top: 1.5rem !important;
}
.mr-xl-4,
.mx-xl-4 {
margin-right: 1.5rem !important;
}
.mb-xl-4,
.my-xl-4 {
margin-bottom: 1.5rem !important;
}
.ml-xl-4,
.mx-xl-4 {
margin-left: 1.5rem !important;
}
.m-xl-5 {
margin: 3rem !important;
}
.mt-xl-5,
.my-xl-5 {
margin-top: 3rem !important;
}
.mr-xl-5,
.mx-xl-5 {
margin-right: 3rem !important;
}
.mb-xl-5,
.my-xl-5 {
margin-bottom: 3rem !important;
}
.ml-xl-5,
.mx-xl-5 {
margin-left: 3rem !important;
}
.p-xl-0 {
padding: 0 !important;
}
.pt-xl-0,
.py-xl-0 {
padding-top: 0 !important;
}
.pr-xl-0,
.px-xl-0 {
padding-right: 0 !important;
}
.pb-xl-0,
.py-xl-0 {
padding-bottom: 0 !important;
}
.pl-xl-0,
.px-xl-0 {
padding-left: 0 !important;
}
.p-xl-1 {
padding: 0.25rem !important;
}
.pt-xl-1,
.py-xl-1 {
padding-top: 0.25rem !important;
}
.pr-xl-1,
.px-xl-1 {
padding-right: 0.25rem !important;
}
.pb-xl-1,
.py-xl-1 {
padding-bottom: 0.25rem !important;
}
.pl-xl-1,
.px-xl-1 {
padding-left: 0.25rem !important;
}
.p-xl-2 {
padding: 0.5rem !important;
}
.pt-xl-2,
.py-xl-2 {
padding-top: 0.5rem !important;
}
.pr-xl-2,
.px-xl-2 {
padding-right: 0.5rem !important;
}
.pb-xl-2,
.py-xl-2 {
padding-bottom: 0.5rem !important;
}
.pl-xl-2,
.px-xl-2 {
padding-left: 0.5rem !important;
}
.p-xl-3 {
padding: 1rem !important;
}
.pt-xl-3,
.py-xl-3 {
padding-top: 1rem !important;
}
.pr-xl-3,
.px-xl-3 {
padding-right: 1rem !important;
}
.pb-xl-3,
.py-xl-3 {
padding-bottom: 1rem !important;
}
.pl-xl-3,
.px-xl-3 {
padding-left: 1rem !important;
}
.p-xl-4 {
padding: 1.5rem !important;
}
.pt-xl-4,
.py-xl-4 {
padding-top: 1.5rem !important;
}
.pr-xl-4,
.px-xl-4 {
padding-right: 1.5rem !important;
}
.pb-xl-4,
.py-xl-4 {
padding-bottom: 1.5rem !important;
}
.pl-xl-4,
.px-xl-4 {
padding-left: 1.5rem !important;
}
.p-xl-5 {
padding: 3rem !important;
}
.pt-xl-5,
.py-xl-5 {
padding-top: 3rem !important;
}
.pr-xl-5,
.px-xl-5 {
padding-right: 3rem !important;
}
.pb-xl-5,
.py-xl-5 {
padding-bottom: 3rem !important;
}
.pl-xl-5,
.px-xl-5 {
padding-left: 3rem !important;
}
.m-xl-auto {
margin: auto !important;
}
.mt-xl-auto,
.my-xl-auto {
margin-top: auto !important;
}
.mr-xl-auto,
.mx-xl-auto {
margin-right: auto !important;
}
.mb-xl-auto,
.my-xl-auto {
margin-bottom: auto !important;
}
.ml-xl-auto,
.mx-xl-auto {
margin-left: auto !important;
}
}
@media (min-width: 1600px) {
.m-xxl-0 {
margin: 0 !important;
}
.mt-xxl-0,
.my-xxl-0 {
margin-top: 0 !important;
}
.mr-xxl-0,
.mx-xxl-0 {
margin-right: 0 !important;
}
.mb-xxl-0,
.my-xxl-0 {
margin-bottom: 0 !important;
}
.ml-xxl-0,
.mx-xxl-0 {
margin-left: 0 !important;
}
.m-xxl-1 {
margin: 0.25rem !important;
}
.mt-xxl-1,
.my-xxl-1 {
margin-top: 0.25rem !important;
}
.mr-xxl-1,
.mx-xxl-1 {
margin-right: 0.25rem !important;
}
.mb-xxl-1,
.my-xxl-1 {
margin-bottom: 0.25rem !important;
}
.ml-xxl-1,
.mx-xxl-1 {
margin-left: 0.25rem !important;
}
.m-xxl-2 {
margin: 0.5rem !important;
}
.mt-xxl-2,
.my-xxl-2 {
margin-top: 0.5rem !important;
}
.mr-xxl-2,
.mx-xxl-2 {
margin-right: 0.5rem !important;
}
.mb-xxl-2,
.my-xxl-2 {
margin-bottom: 0.5rem !important;
}
.ml-xxl-2,
.mx-xxl-2 {
margin-left: 0.5rem !important;
}
.m-xxl-3 {
margin: 1rem !important;
}
.mt-xxl-3,
.my-xxl-3 {
margin-top: 1rem !important;
}
.mr-xxl-3,
.mx-xxl-3 {
margin-right: 1rem !important;
}
.mb-xxl-3,
.my-xxl-3 {
margin-bottom: 1rem !important;
}
.ml-xxl-3,
.mx-xxl-3 {
margin-left: 1rem !important;
}
.m-xxl-4 {
margin: 1.5rem !important;
}
.mt-xxl-4,
.my-xxl-4 {
margin-top: 1.5rem !important;
}
.mr-xxl-4,
.mx-xxl-4 {
margin-right: 1.5rem !important;
}
.mb-xxl-4,
.my-xxl-4 {
margin-bottom: 1.5rem !important;
}
.ml-xxl-4,
.mx-xxl-4 {
margin-left: 1.5rem !important;
}
.m-xxl-5 {
margin: 3rem !important;
}
.mt-xxl-5,
.my-xxl-5 {
margin-top: 3rem !important;
}
.mr-xxl-5,
.mx-xxl-5 {
margin-right: 3rem !important;
}
.mb-xxl-5,
.my-xxl-5 {
margin-bottom: 3rem !important;
}
.ml-xxl-5,
.mx-xxl-5 {
margin-left: 3rem !important;
}
.p-xxl-0 {
padding: 0 !important;
}
.pt-xxl-0,
.py-xxl-0 {
padding-top: 0 !important;
}
.pr-xxl-0,
.px-xxl-0 {
padding-right: 0 !important;
}
.pb-xxl-0,
.py-xxl-0 {
padding-bottom: 0 !important;
}
.pl-xxl-0,
.px-xxl-0 {
padding-left: 0 !important;
}
.p-xxl-1 {
padding: 0.25rem !important;
}
.pt-xxl-1,
.py-xxl-1 {
padding-top: 0.25rem !important;
}
.pr-xxl-1,
.px-xxl-1 {
padding-right: 0.25rem !important;
}
.pb-xxl-1,
.py-xxl-1 {
padding-bottom: 0.25rem !important;
}
.pl-xxl-1,
.px-xxl-1 {
padding-left: 0.25rem !important;
}
.p-xxl-2 {
padding: 0.5rem !important;
}
.pt-xxl-2,
.py-xxl-2 {
padding-top: 0.5rem !important;
}
.pr-xxl-2,
.px-xxl-2 {
padding-right: 0.5rem !important;
}
.pb-xxl-2,
.py-xxl-2 {
padding-bottom: 0.5rem !important;
}
.pl-xxl-2,
.px-xxl-2 {
padding-left: 0.5rem !important;
}
.p-xxl-3 {
padding: 1rem !important;
}
.pt-xxl-3,
.py-xxl-3 {
padding-top: 1rem !important;
}
.pr-xxl-3,
.px-xxl-3 {
padding-right: 1rem !important;
}
.pb-xxl-3,
.py-xxl-3 {
padding-bottom: 1rem !important;
}
.pl-xxl-3,
.px-xxl-3 {
padding-left: 1rem !important;
}
.p-xxl-4 {
padding: 1.5rem !important;
}
.pt-xxl-4,
.py-xxl-4 {
padding-top: 1.5rem !important;
}
.pr-xxl-4,
.px-xxl-4 {
padding-right: 1.5rem !important;
}
.pb-xxl-4,
.py-xxl-4 {
padding-bottom: 1.5rem !important;
}
.pl-xxl-4,
.px-xxl-4 {
padding-left: 1.5rem !important;
}
.p-xxl-5 {
padding: 3rem !important;
}
.pt-xxl-5,
.py-xxl-5 {
padding-top: 3rem !important;
}
.pr-xxl-5,
.px-xxl-5 {
padding-right: 3rem !important;
}
.pb-xxl-5,
.py-xxl-5 {
padding-bottom: 3rem !important;
}
.pl-xxl-5,
.px-xxl-5 {
padding-left: 3rem !important;
}
.m-xxl-auto {
margin: auto !important;
}
.mt-xxl-auto,
.my-xxl-auto {
margin-top: auto !important;
}
.mr-xxl-auto,
.mx-xxl-auto {
margin-right: auto !important;
}
.mb-xxl-auto,
.my-xxl-auto {
margin-bottom: auto !important;
}
.ml-xxl-auto,
.mx-xxl-auto {
margin-left: auto !important;
}
}
.text-monospace {
font-family: Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}
.text-justify {
text-align: justify !important;
}
.text-nowrap {
white-space: nowrap !important;
}
.text-truncate {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.text-left {
text-align: left !important;
}
.text-right {
text-align: right !important;
}
.text-center {
text-align: center !important;
}
@media (min-width: 576px) {
.text-sm-left {
text-align: left !important;
}
.text-sm-right {
text-align: right !important;
}
.text-sm-center {
text-align: center !important;
}
}
@media (min-width: 768px) {
.text-md-left {
text-align: left !important;
}
.text-md-right {
text-align: right !important;
}
.text-md-center {
text-align: center !important;
}
}
@media (min-width: 992px) {
.text-lg-left {
text-align: left !important;
}
.text-lg-right {
text-align: right !important;
}
.text-lg-center {
text-align: center !important;
}
}
@media (min-width: 1200px) {
.text-xl-left {
text-align: left !important;
}
.text-xl-right {
text-align: right !important;
}
.text-xl-center {
text-align: center !important;
}
}
@media (min-width: 1600px) {
.text-xxl-left {
text-align: left !important;
}
.text-xxl-right {
text-align: right !important;
}
.text-xxl-center {
text-align: center !important;
}
}
.text-lowercase {
text-transform: lowercase !important;
}
.text-uppercase {
text-transform: uppercase !important;
}
.text-capitalize {
text-transform: capitalize !important;
}
.font-weight-light {
font-weight: 300 !important;
}
.font-weight-lighter {
font-weight: lighter !important;
}
.font-weight-normal {
font-weight: 400 !important;
}
.font-weight-bold {
font-weight: 700 !important;
}
.font-weight-bolder {
font-weight: bolder !important;
}
.font-italic {
font-style: italic !important;
}
.text-white {
color: #ffffff !important;
}
.text-body {
color: rgba(21, 21, 21, 0.8) !important;
}
.text-muted {
color: #6c757d !important;
}
.text-black-50 {
color: rgba(0, 0, 0, 0.5) !important;
}
.text-white-50 {
color: rgba(255, 255, 255, 0.5) !important;
}
.text-hide {
font: 0/0 a;
color: transparent;
text-shadow: none;
background-color: transparent;
border: 0;
}
.text-decoration-none {
text-decoration: none !important;
}
.visible {
visibility: visible !important;
}
.invisible {
visibility: hidden !important;
}
@media print {
*,
*::before,
*::after {
text-shadow: none !important;
box-shadow: none !important;
}
a:not(.btn) {
text-decoration: underline;
}
abbr[title]::after {
content: " (" attr(title) ")";
}
pre {
white-space: pre-wrap !important;
}
pre,
blockquote {
border: 1px solid #9b9b9b;
page-break-inside: avoid;
}
thead {
display: table-header-group;
}
tr,
img {
page-break-inside: avoid;
}
p,
h2,
h3 {
orphans: 3;
widows: 3;
}
h2,
h3 {
page-break-after: avoid;
}
@page {
size: a3;
}
body {
min-width: 992px !important;
}
.container {
min-width: 992px !important;
}
.navbar {
display: none;
}
.badge {
border: 1px solid #000000;
}
.table {
border-collapse: collapse !important;
}
.table td,
.table th {
background-color: #ffffff !important;
}
.table-bordered th,
.table-bordered td {
border: 1px solid #E7E7E7 !important;
}
.table-dark {
color: inherit;
}
.table-dark th,
.table-dark td,
.table-dark thead th,
.table-dark tbody + tbody {
border-color: #dee2e6;
}
.table .thead-dark th {
color: inherit;
border-color: #dee2e6;
}
}
\ No newline at end of file
diff --git a/public/css/bootstrap.min copy.css b/public/css/bootstrap.min copy.css
new file mode 100644
index 0000000..92e3fe8
--- /dev/null
+++ b/public/css/bootstrap.min copy.css
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap v4.3.1 (https://getbootstrap.com/)
+ * Copyright 2011-2019 The Bootstrap Authors
+ * Copyright 2011-2019 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}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:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}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}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}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-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{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;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{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@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%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.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-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.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-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.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-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.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-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.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{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.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:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip{display:block}.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.was-validated .form-control-file:valid~.valid-feedback,.was-validated .form-control-file:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip{display:block}.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.was-validated .form-control-file:invalid~.invalid-feedback,.was-validated .form-control-file:invalid~.invalid-tooltip{display:block}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;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;background-color:#007bff;border-color:#007bff}.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 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;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:#fff;background-color:#6c757d;border-color:#6c757d}.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 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;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;background-color:#28a745;border-color:#28a745}.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 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;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;background-color:#17a2b8;border-color:#17a2b8}.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 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;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:#212529;background-color:#ffc107;border-color:#ffc107}.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 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;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;background-color:#dc3545;border-color:#dc3545}.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 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;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:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.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 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;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;background-color:#343a40;border-color:#343a40}.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 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";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{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-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;margin-left:.255em;vertical-align:.255em;content:"";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;margin-left:.255em;vertical-align:.255em;content:"";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;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";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^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){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=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;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-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.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),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{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:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-ms-inline-flexbox;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;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%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{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%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(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%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(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:calc(1rem + .4rem);padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.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 (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.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:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom: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:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";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{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;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{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;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{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;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{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%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:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' 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,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:-ms-flexbox;display:flex;-ms-flex:1 0 0%;flex:1 0 0%;-ms-flex-direction:column;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion>.card:not(:first-of-type):not(:last-of-type){border-bottom:0;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}.accordion>.card .card-header{margin-bottom:-1px}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (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{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-sm .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-md .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-lg .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-xl .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush .list-group-item:last-child{margin-bottom:-1px}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{margin-bottom:0;border-bottom:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #dee2e6;border-bottom-right-radius:.3rem;border-bottom-left-radius:.3rem}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:0s .6s opacity}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%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,%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;right:0;bottom:0;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.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:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!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:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!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:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;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:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;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:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;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:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;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:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;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:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.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.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;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}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!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;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.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}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.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}.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}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!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}.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}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!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}.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,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}
+/*# sourceMappingURL=bootstrap.min.css.map */
\ No newline at end of file
diff --git a/public/css/bootstrap.min.css b/public/css/bootstrap.min.css
new file mode 100644
index 0000000..92e3fe8
--- /dev/null
+++ b/public/css/bootstrap.min.css
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap v4.3.1 (https://getbootstrap.com/)
+ * Copyright 2011-2019 The Bootstrap Authors
+ * Copyright 2011-2019 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}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:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}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}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}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-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{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;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{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@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%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.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-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.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-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.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-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.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-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.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{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.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:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip{display:block}.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.was-validated .form-control-file:valid~.valid-feedback,.was-validated .form-control-file:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip{display:block}.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.was-validated .form-control-file:invalid~.invalid-feedback,.was-validated .form-control-file:invalid~.invalid-tooltip{display:block}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;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;background-color:#007bff;border-color:#007bff}.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 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;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:#fff;background-color:#6c757d;border-color:#6c757d}.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 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;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;background-color:#28a745;border-color:#28a745}.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 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;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;background-color:#17a2b8;border-color:#17a2b8}.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 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;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:#212529;background-color:#ffc107;border-color:#ffc107}.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 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;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;background-color:#dc3545;border-color:#dc3545}.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 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;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:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.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 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;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;background-color:#343a40;border-color:#343a40}.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 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";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{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-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;margin-left:.255em;vertical-align:.255em;content:"";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;margin-left:.255em;vertical-align:.255em;content:"";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;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";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^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){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=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;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-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.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),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{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:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-ms-inline-flexbox;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;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%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{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%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(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%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(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:calc(1rem + .4rem);padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.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 (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.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:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom: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:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";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{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;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{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;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{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;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{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%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:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' 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,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:-ms-flexbox;display:flex;-ms-flex:1 0 0%;flex:1 0 0%;-ms-flex-direction:column;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion>.card:not(:first-of-type):not(:last-of-type){border-bottom:0;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}.accordion>.card .card-header{margin-bottom:-1px}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (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{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-sm .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-md .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-lg .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-xl .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush .list-group-item:last-child{margin-bottom:-1px}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{margin-bottom:0;border-bottom:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #dee2e6;border-bottom-right-radius:.3rem;border-bottom-left-radius:.3rem}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:0s .6s opacity}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%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,%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;right:0;bottom:0;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.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:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!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:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!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:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;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:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;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:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;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:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;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:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;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:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.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.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;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}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!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;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.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}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.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}.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}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!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}.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}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!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}.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,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}
+/*# sourceMappingURL=bootstrap.min.css.map */
\ No newline at end of file
diff --git a/public/css/bootstrap/.DS_Store b/public/css/bootstrap/.DS_Store
new file mode 100644
index 0000000..23ba4e8
Binary files /dev/null and b/public/css/bootstrap/.DS_Store differ
diff --git a/public/css/bootstrap/_media.css b/public/css/bootstrap/_media.css
new file mode 100644
index 0000000..379ab53
--- /dev/null
+++ b/public/css/bootstrap/_media.css
@@ -0,0 +1,12 @@
+.media {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-align: start;
+ -ms-flex-align: start;
+ align-items: flex-start; }
+
+.media-body {
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1; }
diff --git a/public/css/bootstrap/mixins/.DS_Store b/public/css/bootstrap/mixins/.DS_Store
new file mode 100644
index 0000000..6bc4ad5
Binary files /dev/null and b/public/css/bootstrap/mixins/.DS_Store differ
diff --git a/public/css/bootstrap/mixins/_border-radius.css b/public/css/bootstrap/mixins/_border-radius.css
new file mode 100644
index 0000000..e69de29
diff --git a/public/css/bootstrap/mixins/_screen-reader.css b/public/css/bootstrap/mixins/_screen-reader.css
new file mode 100644
index 0000000..e69de29
diff --git a/public/css/bootstrap/mixins/_visibility.css b/public/css/bootstrap/mixins/_visibility.css
new file mode 100644
index 0000000..e69de29
diff --git a/public/css/bootstrap/utilities/_stretched-link.css b/public/css/bootstrap/utilities/_stretched-link.css
new file mode 100644
index 0000000..20eb7dc
--- /dev/null
+++ b/public/css/bootstrap/utilities/_stretched-link.css
@@ -0,0 +1,10 @@
+.stretched-link::after {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1;
+ pointer-events: auto;
+ content: "";
+ background-color: rgba(0, 0, 0, 0); }
diff --git a/public/css/fonts.css b/public/css/fonts.css
new file mode 100644
index 0000000..a458ffd
--- /dev/null
+++ b/public/css/fonts.css
@@ -0,0 +1,13141 @@
+/*
+* Fonts
+*/
+/*
+* Font Awesome Icons 4.7.0
+*/
+@font-face {
+ font-family: 'FontAwesome';
+ src: url("../fonts/fontawesome-webfont.eot?v=4.7.0");
+ src: url("../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0") format("embedded-opentype"), url("../fonts/fontawesome-webfont.woff2?v=4.7.0") format("woff2"), url("../fonts/fontawesome-webfont.woff?v=4.7.0") format("woff"), url("../fonts/fontawesome-webfont.ttf?v=4.7.0") format("truetype"), url("../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular") format("svg");
+ font-weight: normal;
+ font-style: normal;
+}
+
+.fa {
+ display: inline-block;
+ font-family: 'FontAwesome';
+ font-size: inherit;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+[class*='fa-']:before {
+ font-weight: 400;
+ font-family: 'FontAwesome';
+}
+
+/* makes the font 33% larger relative to the icon container */
+.fa-lg {
+ font-size: 1.33333333em;
+ line-height: 0.75em;
+ vertical-align: -15%;
+}
+
+.fa-2x {
+ font-size: 2em;
+}
+
+.fa-3x {
+ font-size: 3em;
+}
+
+.fa-4x {
+ font-size: 4em;
+}
+
+.fa-5x {
+ font-size: 5em;
+}
+
+.fa-fw {
+ width: 1.28571429em;
+ text-align: center;
+}
+
+.fa-ul {
+ padding-left: 0;
+ margin-left: 2.14285714em;
+ list-style-type: none;
+}
+
+.fa-ul > li {
+ position: relative;
+}
+
+.fa-li {
+ position: absolute;
+ left: -2.14285714em;
+ width: 2.14285714em;
+ top: 0.14285714em;
+ text-align: center;
+}
+
+.fa-li.fa-lg {
+ left: -1.85714286em;
+}
+
+.fa-border {
+ padding: .2em .25em .15em;
+ border: solid 0.08em #eeeeee;
+ border-radius: .1em;
+}
+
+.fa-pull-left {
+ float: left;
+}
+
+.fa-pull-right {
+ float: right;
+}
+
+.fa.fa-pull-left {
+ margin-right: .3em;
+}
+
+.fa.fa-pull-right {
+ margin-left: .3em;
+}
+
+/* Deprecated as of 4.4.0 */
+.pull-right {
+ float: right;
+}
+
+.pull-left {
+ float: left;
+}
+
+.fa.pull-left {
+ margin-right: .3em;
+}
+
+.fa.pull-right {
+ margin-left: .3em;
+}
+
+.fa-spin {
+ -webkit-animation: fa-spin 2s infinite linear;
+ animation: fa-spin 2s infinite linear;
+}
+
+.fa-pulse {
+ -webkit-animation: fa-spin 1s infinite steps(8);
+ animation: fa-spin 1s infinite steps(8);
+}
+
+@-webkit-keyframes fa-spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ transform: rotate(359deg);
+ }
+}
+
+@keyframes fa-spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ transform: rotate(359deg);
+ }
+}
+
+.fa-rotate-90 {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
+ -webkit-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ transform: rotate(90deg);
+}
+
+.fa-rotate-180 {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
+ -webkit-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ transform: rotate(180deg);
+}
+
+.fa-rotate-270 {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
+ -webkit-transform: rotate(270deg);
+ -ms-transform: rotate(270deg);
+ transform: rotate(270deg);
+}
+
+.fa-flip-horizontal {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
+ -webkit-transform: scale(-1, 1);
+ -ms-transform: scale(-1, 1);
+ transform: scale(-1, 1);
+}
+
+.fa-flip-vertical {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
+ -webkit-transform: scale(1, -1);
+ -ms-transform: scale(1, -1);
+ transform: scale(1, -1);
+}
+
+:root .fa-rotate-90,
+:root .fa-rotate-180,
+:root .fa-rotate-270,
+:root .fa-flip-horizontal,
+:root .fa-flip-vertical {
+ filter: none;
+}
+
+.fa-stack {
+ position: relative;
+ display: inline-block;
+ width: 2em;
+ height: 2em;
+ line-height: 2em;
+ vertical-align: middle;
+}
+
+.fa-stack-1x,
+.fa-stack-2x {
+ position: absolute;
+ left: 0;
+ width: 100%;
+ text-align: center;
+}
+
+.fa-stack-1x {
+ line-height: inherit;
+}
+
+.fa-stack-2x {
+ font-size: 2em;
+}
+
+.fa-inverse {
+ color: #ffffff;
+}
+
+/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
+ readers do not read off random characters that represent icons */
+.fa-glass:before {
+ content: "\f000";
+}
+
+.fa-music:before {
+ content: "\f001";
+}
+
+.fa-search:before {
+ content: "\f002";
+}
+
+.fa-envelope-o:before {
+ content: "\f003";
+}
+
+.fa-heart:before {
+ content: "\f004";
+}
+
+.fa-star:before {
+ content: "\f005";
+}
+
+.fa-star-o:before {
+ content: "\f006";
+}
+
+.fa-user:before {
+ content: "\f007";
+}
+
+.fa-film:before {
+ content: "\f008";
+}
+
+.fa-th-large:before {
+ content: "\f009";
+}
+
+.fa-th:before {
+ content: "\f00a";
+}
+
+.fa-th-list:before {
+ content: "\f00b";
+}
+
+.fa-check:before {
+ content: "\f00c";
+}
+
+.fa-remove:before,
+.fa-close:before,
+.fa-times:before {
+ content: "\f00d";
+}
+
+.fa-search-plus:before {
+ content: "\f00e";
+}
+
+.fa-search-minus:before {
+ content: "\f010";
+}
+
+.fa-power-off:before {
+ content: "\f011";
+}
+
+.fa-signal:before {
+ content: "\f012";
+}
+
+.fa-gear:before,
+.fa-cog:before {
+ content: "\f013";
+}
+
+.fa-trash-o:before {
+ content: "\f014";
+}
+
+.fa-home:before {
+ content: "\f015";
+}
+
+.fa-file-o:before {
+ content: "\f016";
+}
+
+.fa-clock-o:before {
+ content: "\f017";
+}
+
+.fa-road:before {
+ content: "\f018";
+}
+
+.fa-download:before {
+ content: "\f019";
+}
+
+.fa-arrow-circle-o-down:before {
+ content: "\f01a";
+}
+
+.fa-arrow-circle-o-up:before {
+ content: "\f01b";
+}
+
+.fa-inbox:before {
+ content: "\f01c";
+}
+
+.fa-play-circle-o:before {
+ content: "\f01d";
+}
+
+.fa-rotate-right:before,
+.fa-repeat:before {
+ content: "\f01e";
+}
+
+.fa-refresh:before {
+ content: "\f021";
+}
+
+.fa-list-alt:before {
+ content: "\f022";
+}
+
+.fa-lock:before {
+ content: "\f023";
+}
+
+.fa-flag:before {
+ content: "\f024";
+}
+
+.fa-headphones:before {
+ content: "\f025";
+}
+
+.fa-volume-off:before {
+ content: "\f026";
+}
+
+.fa-volume-down:before {
+ content: "\f027";
+}
+
+.fa-volume-up:before {
+ content: "\f028";
+}
+
+.fa-qrcode:before {
+ content: "\f029";
+}
+
+.fa-barcode:before {
+ content: "\f02a";
+}
+
+.fa-tag:before {
+ content: "\f02b";
+}
+
+.fa-tags:before {
+ content: "\f02c";
+}
+
+.fa-book:before {
+ content: "\f02d";
+}
+
+.fa-bookmark:before {
+ content: "\f02e";
+}
+
+.fa-print:before {
+ content: "\f02f";
+}
+
+.fa-camera:before {
+ content: "\f030";
+}
+
+.fa-font:before {
+ content: "\f031";
+}
+
+.fa-bold:before {
+ content: "\f032";
+}
+
+.fa-italic:before {
+ content: "\f033";
+}
+
+.fa-text-height:before {
+ content: "\f034";
+}
+
+.fa-text-width:before {
+ content: "\f035";
+}
+
+.fa-align-left:before {
+ content: "\f036";
+}
+
+.fa-align-center:before {
+ content: "\f037";
+}
+
+.fa-align-right:before {
+ content: "\f038";
+}
+
+.fa-align-justify:before {
+ content: "\f039";
+}
+
+.fa-list:before {
+ content: "\f03a";
+}
+
+.fa-dedent:before,
+.fa-outdent:before {
+ content: "\f03b";
+}
+
+.fa-indent:before {
+ content: "\f03c";
+}
+
+.fa-video-camera:before {
+ content: "\f03d";
+}
+
+.fa-photo:before,
+.fa-image:before,
+.fa-picture-o:before {
+ content: "\f03e";
+}
+
+.fa-pencil:before {
+ content: "\f040";
+}
+
+.fa-map-marker:before {
+ content: "\f041";
+}
+
+.fa-adjust:before {
+ content: "\f042";
+}
+
+.fa-tint:before {
+ content: "\f043";
+}
+
+.fa-edit:before,
+.fa-pencil-square-o:before {
+ content: "\f044";
+}
+
+.fa-share-square-o:before {
+ content: "\f045";
+}
+
+.fa-check-square-o:before {
+ content: "\f046";
+}
+
+.fa-arrows:before {
+ content: "\f047";
+}
+
+.fa-step-backward:before {
+ content: "\f048";
+}
+
+.fa-fast-backward:before {
+ content: "\f049";
+}
+
+.fa-backward:before {
+ content: "\f04a";
+}
+
+.fa-play:before {
+ content: "\f04b";
+}
+
+.fa-pause:before {
+ content: "\f04c";
+}
+
+.fa-stop:before {
+ content: "\f04d";
+}
+
+.fa-forward:before {
+ content: "\f04e";
+}
+
+.fa-fast-forward:before {
+ content: "\f050";
+}
+
+.fa-step-forward:before {
+ content: "\f051";
+}
+
+.fa-eject:before {
+ content: "\f052";
+}
+
+.fa-chevron-left:before {
+ content: "\f053";
+}
+
+.fa-chevron-right:before {
+ content: "\f054";
+}
+
+.fa-plus-circle:before {
+ content: "\f055";
+}
+
+.fa-minus-circle:before {
+ content: "\f056";
+}
+
+.fa-times-circle:before {
+ content: "\f057";
+}
+
+.fa-check-circle:before {
+ content: "\f058";
+}
+
+.fa-question-circle:before {
+ content: "\f059";
+}
+
+.fa-info-circle:before {
+ content: "\f05a";
+}
+
+.fa-crosshairs:before {
+ content: "\f05b";
+}
+
+.fa-times-circle-o:before {
+ content: "\f05c";
+}
+
+.fa-check-circle-o:before {
+ content: "\f05d";
+}
+
+.fa-ban:before {
+ content: "\f05e";
+}
+
+.fa-arrow-left:before {
+ content: "\f060";
+}
+
+.fa-arrow-right:before {
+ content: "\f061";
+}
+
+.fa-arrow-up:before {
+ content: "\f062";
+}
+
+.fa-arrow-down:before {
+ content: "\f063";
+}
+
+.fa-mail-forward:before,
+.fa-share:before {
+ content: "\f064";
+}
+
+.fa-expand:before {
+ content: "\f065";
+}
+
+.fa-compress:before {
+ content: "\f066";
+}
+
+.fa-plus:before {
+ content: "\f067";
+}
+
+.fa-minus:before {
+ content: "\f068";
+}
+
+.fa-asterisk:before {
+ content: "\f069";
+}
+
+.fa-exclamation-circle:before {
+ content: "\f06a";
+}
+
+.fa-gift:before {
+ content: "\f06b";
+}
+
+.fa-leaf:before {
+ content: "\f06c";
+}
+
+.fa-fire:before {
+ content: "\f06d";
+}
+
+.fa-eye:before {
+ content: "\f06e";
+}
+
+.fa-eye-slash:before {
+ content: "\f070";
+}
+
+.fa-warning:before,
+.fa-exclamation-triangle:before {
+ content: "\f071";
+}
+
+.fa-plane:before {
+ content: "\f072";
+}
+
+.fa-calendar:before {
+ content: "\f073";
+}
+
+.fa-random:before {
+ content: "\f074";
+}
+
+.fa-comment:before {
+ content: "\f075";
+}
+
+.fa-magnet:before {
+ content: "\f076";
+}
+
+.fa-chevron-up:before {
+ content: "\f077";
+}
+
+.fa-chevron-down:before {
+ content: "\f078";
+}
+
+.fa-retweet:before {
+ content: "\f079";
+}
+
+.fa-shopping-cart:before {
+ content: "\f07a";
+}
+
+.fa-folder:before {
+ content: "\f07b";
+}
+
+.fa-folder-open:before {
+ content: "\f07c";
+}
+
+.fa-arrows-v:before {
+ content: "\f07d";
+}
+
+.fa-arrows-h:before {
+ content: "\f07e";
+}
+
+.fa-bar-chart-o:before,
+.fa-bar-chart:before {
+ content: "\f080";
+}
+
+.fa-twitter-square:before {
+ content: "\f081";
+}
+
+.fa-facebook-square:before {
+ content: "\f082";
+}
+
+.fa-camera-retro:before {
+ content: "\f083";
+}
+
+.fa-key:before {
+ content: "\f084";
+}
+
+.fa-gears:before,
+.fa-cogs:before {
+ content: "\f085";
+}
+
+.fa-comments:before {
+ content: "\f086";
+}
+
+.fa-thumbs-o-up:before {
+ content: "\f087";
+}
+
+.fa-thumbs-o-down:before {
+ content: "\f088";
+}
+
+.fa-star-half:before {
+ content: "\f089";
+}
+
+.fa-heart-o:before {
+ content: "\f08a";
+}
+
+.fa-sign-out:before {
+ content: "\f08b";
+}
+
+.fa-linkedin-square:before {
+ content: "\f08c";
+}
+
+.fa-thumb-tack:before {
+ content: "\f08d";
+}
+
+.fa-external-link:before {
+ content: "\f08e";
+}
+
+.fa-sign-in:before {
+ content: "\f090";
+}
+
+.fa-trophy:before {
+ content: "\f091";
+}
+
+.fa-github-square:before {
+ content: "\f092";
+}
+
+.fa-upload:before {
+ content: "\f093";
+}
+
+.fa-lemon-o:before {
+ content: "\f094";
+}
+
+.fa-phone:before {
+ content: "\f095";
+}
+
+.fa-square-o:before {
+ content: "\f096";
+}
+
+.fa-bookmark-o:before {
+ content: "\f097";
+}
+
+.fa-phone-square:before {
+ content: "\f098";
+}
+
+.fa-twitter:before {
+ content: "\f099";
+}
+
+.fa-facebook-f:before,
+.fa-facebook:before {
+ content: "\f09a";
+}
+
+.fa-github:before {
+ content: "\f09b";
+}
+
+.fa-unlock:before {
+ content: "\f09c";
+}
+
+.fa-credit-card:before {
+ content: "\f09d";
+}
+
+.fa-feed:before,
+.fa-rss:before {
+ content: "\f09e";
+}
+
+.fa-hdd-o:before {
+ content: "\f0a0";
+}
+
+.fa-bullhorn:before {
+ content: "\f0a1";
+}
+
+.fa-bell:before {
+ content: "\f0f3";
+}
+
+.fa-certificate:before {
+ content: "\f0a3";
+}
+
+.fa-hand-o-right:before {
+ content: "\f0a4";
+}
+
+.fa-hand-o-left:before {
+ content: "\f0a5";
+}
+
+.fa-hand-o-up:before {
+ content: "\f0a6";
+}
+
+.fa-hand-o-down:before {
+ content: "\f0a7";
+}
+
+.fa-arrow-circle-left:before {
+ content: "\f0a8";
+}
+
+.fa-arrow-circle-right:before {
+ content: "\f0a9";
+}
+
+.fa-arrow-circle-up:before {
+ content: "\f0aa";
+}
+
+.fa-arrow-circle-down:before {
+ content: "\f0ab";
+}
+
+.fa-globe:before {
+ content: "\f0ac";
+}
+
+.fa-wrench:before {
+ content: "\f0ad";
+}
+
+.fa-tasks:before {
+ content: "\f0ae";
+}
+
+.fa-filter:before {
+ content: "\f0b0";
+}
+
+.fa-briefcase:before {
+ content: "\f0b1";
+}
+
+.fa-arrows-alt:before {
+ content: "\f0b2";
+}
+
+.fa-group:before,
+.fa-users:before {
+ content: "\f0c0";
+}
+
+.fa-chain:before,
+.fa-link:before {
+ content: "\f0c1";
+}
+
+.fa-cloud:before {
+ content: "\f0c2";
+}
+
+.fa-flask:before {
+ content: "\f0c3";
+}
+
+.fa-cut:before,
+.fa-scissors:before {
+ content: "\f0c4";
+}
+
+.fa-copy:before,
+.fa-files-o:before {
+ content: "\f0c5";
+}
+
+.fa-paperclip:before {
+ content: "\f0c6";
+}
+
+.fa-save:before,
+.fa-floppy-o:before {
+ content: "\f0c7";
+}
+
+.fa-square:before {
+ content: "\f0c8";
+}
+
+.fa-navicon:before,
+.fa-reorder:before,
+.fa-bars:before {
+ content: "\f0c9";
+}
+
+.fa-list-ul:before {
+ content: "\f0ca";
+}
+
+.fa-list-ol:before {
+ content: "\f0cb";
+}
+
+.fa-strikethrough:before {
+ content: "\f0cc";
+}
+
+.fa-underline:before {
+ content: "\f0cd";
+}
+
+.fa-table:before {
+ content: "\f0ce";
+}
+
+.fa-magic:before {
+ content: "\f0d0";
+}
+
+.fa-truck:before {
+ content: "\f0d1";
+}
+
+.fa-pinterest:before {
+ content: "\f0d2";
+}
+
+.fa-pinterest-square:before {
+ content: "\f0d3";
+}
+
+.fa-google-plus-square:before {
+ content: "\f0d4";
+}
+
+.fa-google-plus:before {
+ content: "\f0d5";
+}
+
+.fa-money:before {
+ content: "\f0d6";
+}
+
+.fa-caret-down:before {
+ content: "\f0d7";
+}
+
+.fa-caret-up:before {
+ content: "\f0d8";
+}
+
+.fa-caret-left:before {
+ content: "\f0d9";
+}
+
+.fa-caret-right:before {
+ content: "\f0da";
+}
+
+.fa-columns:before {
+ content: "\f0db";
+}
+
+.fa-unsorted:before,
+.fa-sort:before {
+ content: "\f0dc";
+}
+
+.fa-sort-down:before,
+.fa-sort-desc:before {
+ content: "\f0dd";
+}
+
+.fa-sort-up:before,
+.fa-sort-asc:before {
+ content: "\f0de";
+}
+
+.fa-envelope:before {
+ content: "\f0e0";
+}
+
+.fa-linkedin:before {
+ content: "\f0e1";
+}
+
+.fa-rotate-left:before,
+.fa-undo:before {
+ content: "\f0e2";
+}
+
+.fa-legal:before,
+.fa-gavel:before {
+ content: "\f0e3";
+}
+
+.fa-dashboard:before,
+.fa-tachometer:before {
+ content: "\f0e4";
+}
+
+.fa-comment-o:before {
+ content: "\f0e5";
+}
+
+.fa-comments-o:before {
+ content: "\f0e6";
+}
+
+.fa-flash:before,
+.fa-bolt:before {
+ content: "\f0e7";
+}
+
+.fa-sitemap:before {
+ content: "\f0e8";
+}
+
+.fa-umbrella:before {
+ content: "\f0e9";
+}
+
+.fa-paste:before,
+.fa-clipboard:before {
+ content: "\f0ea";
+}
+
+.fa-lightbulb-o:before {
+ content: "\f0eb";
+}
+
+.fa-exchange:before {
+ content: "\f0ec";
+}
+
+.fa-cloud-download:before {
+ content: "\f0ed";
+}
+
+.fa-cloud-upload:before {
+ content: "\f0ee";
+}
+
+.fa-user-md:before {
+ content: "\f0f0";
+}
+
+.fa-stethoscope:before {
+ content: "\f0f1";
+}
+
+.fa-suitcase:before {
+ content: "\f0f2";
+}
+
+.fa-bell-o:before {
+ content: "\f0a2";
+}
+
+.fa-coffee:before {
+ content: "\f0f4";
+}
+
+.fa-cutlery:before {
+ content: "\f0f5";
+}
+
+.fa-file-text-o:before {
+ content: "\f0f6";
+}
+
+.fa-building-o:before {
+ content: "\f0f7";
+}
+
+.fa-hospital-o:before {
+ content: "\f0f8";
+}
+
+.fa-ambulance:before {
+ content: "\f0f9";
+}
+
+.fa-medkit:before {
+ content: "\f0fa";
+}
+
+.fa-fighter-jet:before {
+ content: "\f0fb";
+}
+
+.fa-beer:before {
+ content: "\f0fc";
+}
+
+.fa-h-square:before {
+ content: "\f0fd";
+}
+
+.fa-plus-square:before {
+ content: "\f0fe";
+}
+
+.fa-angle-double-left:before {
+ content: "\f100";
+}
+
+.fa-angle-double-right:before {
+ content: "\f101";
+}
+
+.fa-angle-double-up:before {
+ content: "\f102";
+}
+
+.fa-angle-double-down:before {
+ content: "\f103";
+}
+
+.fa-angle-left:before {
+ content: "\f104";
+}
+
+.fa-angle-right:before {
+ content: "\f105";
+}
+
+.fa-angle-up:before {
+ content: "\f106";
+}
+
+.fa-angle-down:before {
+ content: "\f107";
+}
+
+.fa-desktop:before {
+ content: "\f108";
+}
+
+.fa-laptop:before {
+ content: "\f109";
+}
+
+.fa-tablet:before {
+ content: "\f10a";
+}
+
+.fa-mobile-phone:before,
+.fa-mobile:before {
+ content: "\f10b";
+}
+
+.fa-circle-o:before {
+ content: "\f10c";
+}
+
+.fa-quote-left:before {
+ content: "\f10d";
+}
+
+.fa-quote-right:before {
+ content: "\f10e";
+}
+
+.fa-spinner:before {
+ content: "\f110";
+}
+
+.fa-circle:before {
+ content: "\f111";
+}
+
+.fa-mail-reply:before,
+.fa-reply:before {
+ content: "\f112";
+}
+
+.fa-github-alt:before {
+ content: "\f113";
+}
+
+.fa-folder-o:before {
+ content: "\f114";
+}
+
+.fa-folder-open-o:before {
+ content: "\f115";
+}
+
+.fa-smile-o:before {
+ content: "\f118";
+}
+
+.fa-frown-o:before {
+ content: "\f119";
+}
+
+.fa-meh-o:before {
+ content: "\f11a";
+}
+
+.fa-gamepad:before {
+ content: "\f11b";
+}
+
+.fa-keyboard-o:before {
+ content: "\f11c";
+}
+
+.fa-flag-o:before {
+ content: "\f11d";
+}
+
+.fa-flag-checkered:before {
+ content: "\f11e";
+}
+
+.fa-terminal:before {
+ content: "\f120";
+}
+
+.fa-code:before {
+ content: "\f121";
+}
+
+.fa-mail-reply-all:before,
+.fa-reply-all:before {
+ content: "\f122";
+}
+
+.fa-star-half-empty:before,
+.fa-star-half-full:before,
+.fa-star-half-o:before {
+ content: "\f123";
+}
+
+.fa-location-arrow:before {
+ content: "\f124";
+}
+
+.fa-crop:before {
+ content: "\f125";
+}
+
+.fa-code-fork:before {
+ content: "\f126";
+}
+
+.fa-unlink:before,
+.fa-chain-broken:before {
+ content: "\f127";
+}
+
+.fa-question:before {
+ content: "\f128";
+}
+
+.fa-info:before {
+ content: "\f129";
+}
+
+.fa-exclamation:before {
+ content: "\f12a";
+}
+
+.fa-superscript:before {
+ content: "\f12b";
+}
+
+.fa-subscript:before {
+ content: "\f12c";
+}
+
+.fa-eraser:before {
+ content: "\f12d";
+}
+
+.fa-puzzle-piece:before {
+ content: "\f12e";
+}
+
+.fa-microphone:before {
+ content: "\f130";
+}
+
+.fa-microphone-slash:before {
+ content: "\f131";
+}
+
+.fa-shield:before {
+ content: "\f132";
+}
+
+.fa-calendar-o:before {
+ content: "\f133";
+}
+
+.fa-fire-extinguisher:before {
+ content: "\f134";
+}
+
+.fa-rocket:before {
+ content: "\f135";
+}
+
+.fa-maxcdn:before {
+ content: "\f136";
+}
+
+.fa-chevron-circle-left:before {
+ content: "\f137";
+}
+
+.fa-chevron-circle-right:before {
+ content: "\f138";
+}
+
+.fa-chevron-circle-up:before {
+ content: "\f139";
+}
+
+.fa-chevron-circle-down:before {
+ content: "\f13a";
+}
+
+.fa-html5:before {
+ content: "\f13b";
+}
+
+.fa-css3:before {
+ content: "\f13c";
+}
+
+.fa-anchor:before {
+ content: "\f13d";
+}
+
+.fa-unlock-alt:before {
+ content: "\f13e";
+}
+
+.fa-bullseye:before {
+ content: "\f140";
+}
+
+.fa-ellipsis-h:before {
+ content: "\f141";
+}
+
+.fa-ellipsis-v:before {
+ content: "\f142";
+}
+
+.fa-rss-square:before {
+ content: "\f143";
+}
+
+.fa-play-circle:before {
+ content: "\f144";
+}
+
+.fa-ticket:before {
+ content: "\f145";
+}
+
+.fa-minus-square:before {
+ content: "\f146";
+}
+
+.fa-minus-square-o:before {
+ content: "\f147";
+}
+
+.fa-level-up:before {
+ content: "\f148";
+}
+
+.fa-level-down:before {
+ content: "\f149";
+}
+
+.fa-check-square:before {
+ content: "\f14a";
+}
+
+.fa-pencil-square:before {
+ content: "\f14b";
+}
+
+.fa-external-link-square:before {
+ content: "\f14c";
+}
+
+.fa-share-square:before {
+ content: "\f14d";
+}
+
+.fa-compass:before {
+ content: "\f14e";
+}
+
+.fa-toggle-down:before,
+.fa-caret-square-o-down:before {
+ content: "\f150";
+}
+
+.fa-toggle-up:before,
+.fa-caret-square-o-up:before {
+ content: "\f151";
+}
+
+.fa-toggle-right:before,
+.fa-caret-square-o-right:before {
+ content: "\f152";
+}
+
+.fa-euro:before,
+.fa-eur:before {
+ content: "\f153";
+}
+
+.fa-gbp:before {
+ content: "\f154";
+}
+
+.fa-dollar:before,
+.fa-usd:before {
+ content: "\f155";
+}
+
+.fa-rupee:before,
+.fa-inr:before {
+ content: "\f156";
+}
+
+.fa-cny:before,
+.fa-rmb:before,
+.fa-yen:before,
+.fa-jpy:before {
+ content: "\f157";
+}
+
+.fa-ruble:before,
+.fa-rouble:before,
+.fa-rub:before {
+ content: "\f158";
+}
+
+.fa-won:before,
+.fa-krw:before {
+ content: "\f159";
+}
+
+.fa-bitcoin:before,
+.fa-btc:before {
+ content: "\f15a";
+}
+
+.fa-file:before {
+ content: "\f15b";
+}
+
+.fa-file-text:before {
+ content: "\f15c";
+}
+
+.fa-sort-alpha-asc:before {
+ content: "\f15d";
+}
+
+.fa-sort-alpha-desc:before {
+ content: "\f15e";
+}
+
+.fa-sort-amount-asc:before {
+ content: "\f160";
+}
+
+.fa-sort-amount-desc:before {
+ content: "\f161";
+}
+
+.fa-sort-numeric-asc:before {
+ content: "\f162";
+}
+
+.fa-sort-numeric-desc:before {
+ content: "\f163";
+}
+
+.fa-thumbs-up:before {
+ content: "\f164";
+}
+
+.fa-thumbs-down:before {
+ content: "\f165";
+}
+
+.fa-youtube-square:before {
+ content: "\f166";
+}
+
+.fa-youtube:before {
+ content: "\f167";
+}
+
+.fa-xing:before {
+ content: "\f168";
+}
+
+.fa-xing-square:before {
+ content: "\f169";
+}
+
+.fa-youtube-play:before {
+ content: "\f16a";
+}
+
+.fa-dropbox:before {
+ content: "\f16b";
+}
+
+.fa-stack-overflow:before {
+ content: "\f16c";
+}
+
+.fa-instagram:before {
+ content: "\f16d";
+}
+
+.fa-flickr:before {
+ content: "\f16e";
+}
+
+.fa-adn:before {
+ content: "\f170";
+}
+
+.fa-bitbucket:before {
+ content: "\f171";
+}
+
+.fa-bitbucket-square:before {
+ content: "\f172";
+}
+
+.fa-tumblr:before {
+ content: "\f173";
+}
+
+.fa-tumblr-square:before {
+ content: "\f174";
+}
+
+.fa-long-arrow-down:before {
+ content: "\f175";
+}
+
+.fa-long-arrow-up:before {
+ content: "\f176";
+}
+
+.fa-long-arrow-left:before {
+ content: "\f177";
+}
+
+.fa-long-arrow-right:before {
+ content: "\f178";
+}
+
+.fa-apple:before {
+ content: "\f179";
+}
+
+.fa-windows:before {
+ content: "\f17a";
+}
+
+.fa-android:before {
+ content: "\f17b";
+}
+
+.fa-linux:before {
+ content: "\f17c";
+}
+
+.fa-dribbble:before {
+ content: "\f17d";
+}
+
+.fa-skype:before {
+ content: "\f17e";
+}
+
+.fa-foursquare:before {
+ content: "\f180";
+}
+
+.fa-trello:before {
+ content: "\f181";
+}
+
+.fa-female:before {
+ content: "\f182";
+}
+
+.fa-male:before {
+ content: "\f183";
+}
+
+.fa-gittip:before,
+.fa-gratipay:before {
+ content: "\f184";
+}
+
+.fa-sun-o:before {
+ content: "\f185";
+}
+
+.fa-moon-o:before {
+ content: "\f186";
+}
+
+.fa-archive:before {
+ content: "\f187";
+}
+
+.fa-bug:before {
+ content: "\f188";
+}
+
+.fa-vk:before {
+ content: "\f189";
+}
+
+.fa-weibo:before {
+ content: "\f18a";
+}
+
+.fa-renren:before {
+ content: "\f18b";
+}
+
+.fa-pagelines:before {
+ content: "\f18c";
+}
+
+.fa-stack-exchange:before {
+ content: "\f18d";
+}
+
+.fa-arrow-circle-o-right:before {
+ content: "\f18e";
+}
+
+.fa-arrow-circle-o-left:before {
+ content: "\f190";
+}
+
+.fa-toggle-left:before,
+.fa-caret-square-o-left:before {
+ content: "\f191";
+}
+
+.fa-dot-circle-o:before {
+ content: "\f192";
+}
+
+.fa-wheelchair:before {
+ content: "\f193";
+}
+
+.fa-vimeo-square:before {
+ content: "\f194";
+}
+
+.fa-turkish-lira:before,
+.fa-try:before {
+ content: "\f195";
+}
+
+.fa-plus-square-o:before {
+ content: "\f196";
+}
+
+.fa-space-shuttle:before {
+ content: "\f197";
+}
+
+.fa-slack:before {
+ content: "\f198";
+}
+
+.fa-envelope-square:before {
+ content: "\f199";
+}
+
+.fa-wordpress:before {
+ content: "\f19a";
+}
+
+.fa-openid:before {
+ content: "\f19b";
+}
+
+.fa-institution:before,
+.fa-bank:before,
+.fa-university:before {
+ content: "\f19c";
+}
+
+.fa-mortar-board:before,
+.fa-graduation-cap:before {
+ content: "\f19d";
+}
+
+.fa-yahoo:before {
+ content: "\f19e";
+}
+
+.fa-google:before {
+ content: "\f1a0";
+}
+
+.fa-reddit:before {
+ content: "\f1a1";
+}
+
+.fa-reddit-square:before {
+ content: "\f1a2";
+}
+
+.fa-stumbleupon-circle:before {
+ content: "\f1a3";
+}
+
+.fa-stumbleupon:before {
+ content: "\f1a4";
+}
+
+.fa-delicious:before {
+ content: "\f1a5";
+}
+
+.fa-digg:before {
+ content: "\f1a6";
+}
+
+.fa-pied-piper-pp:before {
+ content: "\f1a7";
+}
+
+.fa-pied-piper-alt:before {
+ content: "\f1a8";
+}
+
+.fa-drupal:before {
+ content: "\f1a9";
+}
+
+.fa-joomla:before {
+ content: "\f1aa";
+}
+
+.fa-language:before {
+ content: "\f1ab";
+}
+
+.fa-fax:before {
+ content: "\f1ac";
+}
+
+.fa-building:before {
+ content: "\f1ad";
+}
+
+.fa-child:before {
+ content: "\f1ae";
+}
+
+.fa-paw:before {
+ content: "\f1b0";
+}
+
+.fa-spoon:before {
+ content: "\f1b1";
+}
+
+.fa-cube:before {
+ content: "\f1b2";
+}
+
+.fa-cubes:before {
+ content: "\f1b3";
+}
+
+.fa-behance:before {
+ content: "\f1b4";
+}
+
+.fa-behance-square:before {
+ content: "\f1b5";
+}
+
+.fa-steam:before {
+ content: "\f1b6";
+}
+
+.fa-steam-square:before {
+ content: "\f1b7";
+}
+
+.fa-recycle:before {
+ content: "\f1b8";
+}
+
+.fa-automobile:before,
+.fa-car:before {
+ content: "\f1b9";
+}
+
+.fa-cab:before,
+.fa-taxi:before {
+ content: "\f1ba";
+}
+
+.fa-tree:before {
+ content: "\f1bb";
+}
+
+.fa-spotify:before {
+ content: "\f1bc";
+}
+
+.fa-deviantart:before {
+ content: "\f1bd";
+}
+
+.fa-soundcloud:before {
+ content: "\f1be";
+}
+
+.fa-database:before {
+ content: "\f1c0";
+}
+
+.fa-file-pdf-o:before {
+ content: "\f1c1";
+}
+
+.fa-file-word-o:before {
+ content: "\f1c2";
+}
+
+.fa-file-excel-o:before {
+ content: "\f1c3";
+}
+
+.fa-file-powerpoint-o:before {
+ content: "\f1c4";
+}
+
+.fa-file-photo-o:before,
+.fa-file-picture-o:before,
+.fa-file-image-o:before {
+ content: "\f1c5";
+}
+
+.fa-file-zip-o:before,
+.fa-file-archive-o:before {
+ content: "\f1c6";
+}
+
+.fa-file-sound-o:before,
+.fa-file-audio-o:before {
+ content: "\f1c7";
+}
+
+.fa-file-movie-o:before,
+.fa-file-video-o:before {
+ content: "\f1c8";
+}
+
+.fa-file-code-o:before {
+ content: "\f1c9";
+}
+
+.fa-vine:before {
+ content: "\f1ca";
+}
+
+.fa-codepen:before {
+ content: "\f1cb";
+}
+
+.fa-jsfiddle:before {
+ content: "\f1cc";
+}
+
+.fa-life-bouy:before,
+.fa-life-buoy:before,
+.fa-life-saver:before,
+.fa-support:before,
+.fa-life-ring:before {
+ content: "\f1cd";
+}
+
+.fa-circle-o-notch:before {
+ content: "\f1ce";
+}
+
+.fa-ra:before,
+.fa-resistance:before,
+.fa-rebel:before {
+ content: "\f1d0";
+}
+
+.fa-ge:before,
+.fa-empire:before {
+ content: "\f1d1";
+}
+
+.fa-git-square:before {
+ content: "\f1d2";
+}
+
+.fa-git:before {
+ content: "\f1d3";
+}
+
+.fa-y-combinator-square:before,
+.fa-yc-square:before,
+.fa-hacker-news:before {
+ content: "\f1d4";
+}
+
+.fa-tencent-weibo:before {
+ content: "\f1d5";
+}
+
+.fa-qq:before {
+ content: "\f1d6";
+}
+
+.fa-wechat:before,
+.fa-weixin:before {
+ content: "\f1d7";
+}
+
+.fa-send:before,
+.fa-paper-plane:before {
+ content: "\f1d8";
+}
+
+.fa-send-o:before,
+.fa-paper-plane-o:before {
+ content: "\f1d9";
+}
+
+.fa-history:before {
+ content: "\f1da";
+}
+
+.fa-circle-thin:before {
+ content: "\f1db";
+}
+
+.fa-header:before {
+ content: "\f1dc";
+}
+
+.fa-paragraph:before {
+ content: "\f1dd";
+}
+
+.fa-sliders:before {
+ content: "\f1de";
+}
+
+.fa-share-alt:before {
+ content: "\f1e0";
+}
+
+.fa-share-alt-square:before {
+ content: "\f1e1";
+}
+
+.fa-bomb:before {
+ content: "\f1e2";
+}
+
+.fa-soccer-ball-o:before,
+.fa-futbol-o:before {
+ content: "\f1e3";
+}
+
+.fa-tty:before {
+ content: "\f1e4";
+}
+
+.fa-binoculars:before {
+ content: "\f1e5";
+}
+
+.fa-plug:before {
+ content: "\f1e6";
+}
+
+.fa-slideshare:before {
+ content: "\f1e7";
+}
+
+.fa-twitch:before {
+ content: "\f1e8";
+}
+
+.fa-yelp:before {
+ content: "\f1e9";
+}
+
+.fa-newspaper-o:before {
+ content: "\f1ea";
+}
+
+.fa-wifi:before {
+ content: "\f1eb";
+}
+
+.fa-calculator:before {
+ content: "\f1ec";
+}
+
+.fa-paypal:before {
+ content: "\f1ed";
+}
+
+.fa-google-wallet:before {
+ content: "\f1ee";
+}
+
+.fa-cc-visa:before {
+ content: "\f1f0";
+}
+
+.fa-cc-mastercard:before {
+ content: "\f1f1";
+}
+
+.fa-cc-discover:before {
+ content: "\f1f2";
+}
+
+.fa-cc-amex:before {
+ content: "\f1f3";
+}
+
+.fa-cc-paypal:before {
+ content: "\f1f4";
+}
+
+.fa-cc-stripe:before {
+ content: "\f1f5";
+}
+
+.fa-bell-slash:before {
+ content: "\f1f6";
+}
+
+.fa-bell-slash-o:before {
+ content: "\f1f7";
+}
+
+.fa-trash:before {
+ content: "\f1f8";
+}
+
+.fa-copyright:before {
+ content: "\f1f9";
+}
+
+.fa-at:before {
+ content: "\f1fa";
+}
+
+.fa-eyedropper:before {
+ content: "\f1fb";
+}
+
+.fa-paint-brush:before {
+ content: "\f1fc";
+}
+
+.fa-birthday-cake:before {
+ content: "\f1fd";
+}
+
+.fa-area-chart:before {
+ content: "\f1fe";
+}
+
+.fa-pie-chart:before {
+ content: "\f200";
+}
+
+.fa-line-chart:before {
+ content: "\f201";
+}
+
+.fa-lastfm:before {
+ content: "\f202";
+}
+
+.fa-lastfm-square:before {
+ content: "\f203";
+}
+
+.fa-toggle-off:before {
+ content: "\f204";
+}
+
+.fa-toggle-on:before {
+ content: "\f205";
+}
+
+.fa-bicycle:before {
+ content: "\f206";
+}
+
+.fa-bus:before {
+ content: "\f207";
+}
+
+.fa-ioxhost:before {
+ content: "\f208";
+}
+
+.fa-angellist:before {
+ content: "\f209";
+}
+
+.fa-cc:before {
+ content: "\f20a";
+}
+
+.fa-shekel:before,
+.fa-sheqel:before,
+.fa-ils:before {
+ content: "\f20b";
+}
+
+.fa-meanpath:before {
+ content: "\f20c";
+}
+
+.fa-buysellads:before {
+ content: "\f20d";
+}
+
+.fa-connectdevelop:before {
+ content: "\f20e";
+}
+
+.fa-dashcube:before {
+ content: "\f210";
+}
+
+.fa-forumbee:before {
+ content: "\f211";
+}
+
+.fa-leanpub:before {
+ content: "\f212";
+}
+
+.fa-sellsy:before {
+ content: "\f213";
+}
+
+.fa-shirtsinbulk:before {
+ content: "\f214";
+}
+
+.fa-simplybuilt:before {
+ content: "\f215";
+}
+
+.fa-skyatlas:before {
+ content: "\f216";
+}
+
+.fa-cart-plus:before {
+ content: "\f217";
+}
+
+.fa-cart-arrow-down:before {
+ content: "\f218";
+}
+
+.fa-diamond:before {
+ content: "\f219";
+}
+
+.fa-ship:before {
+ content: "\f21a";
+}
+
+.fa-user-secret:before {
+ content: "\f21b";
+}
+
+.fa-motorcycle:before {
+ content: "\f21c";
+}
+
+.fa-street-view:before {
+ content: "\f21d";
+}
+
+.fa-heartbeat:before {
+ content: "\f21e";
+}
+
+.fa-venus:before {
+ content: "\f221";
+}
+
+.fa-mars:before {
+ content: "\f222";
+}
+
+.fa-mercury:before {
+ content: "\f223";
+}
+
+.fa-intersex:before,
+.fa-transgender:before {
+ content: "\f224";
+}
+
+.fa-transgender-alt:before {
+ content: "\f225";
+}
+
+.fa-venus-double:before {
+ content: "\f226";
+}
+
+.fa-mars-double:before {
+ content: "\f227";
+}
+
+.fa-venus-mars:before {
+ content: "\f228";
+}
+
+.fa-mars-stroke:before {
+ content: "\f229";
+}
+
+.fa-mars-stroke-v:before {
+ content: "\f22a";
+}
+
+.fa-mars-stroke-h:before {
+ content: "\f22b";
+}
+
+.fa-neuter:before {
+ content: "\f22c";
+}
+
+.fa-genderless:before {
+ content: "\f22d";
+}
+
+.fa-facebook-official:before {
+ content: "\f230";
+}
+
+.fa-pinterest-p:before {
+ content: "\f231";
+}
+
+.fa-whatsapp:before {
+ content: "\f232";
+}
+
+.fa-server:before {
+ content: "\f233";
+}
+
+.fa-user-plus:before {
+ content: "\f234";
+}
+
+.fa-user-times:before {
+ content: "\f235";
+}
+
+.fa-hotel:before,
+.fa-bed:before {
+ content: "\f236";
+}
+
+.fa-viacoin:before {
+ content: "\f237";
+}
+
+.fa-train:before {
+ content: "\f238";
+}
+
+.fa-subway:before {
+ content: "\f239";
+}
+
+.fa-medium:before {
+ content: "\f23a";
+}
+
+.fa-yc:before,
+.fa-y-combinator:before {
+ content: "\f23b";
+}
+
+.fa-optin-monster:before {
+ content: "\f23c";
+}
+
+.fa-opencart:before {
+ content: "\f23d";
+}
+
+.fa-expeditedssl:before {
+ content: "\f23e";
+}
+
+.fa-battery-4:before,
+.fa-battery:before,
+.fa-battery-full:before {
+ content: "\f240";
+}
+
+.fa-battery-3:before,
+.fa-battery-three-quarters:before {
+ content: "\f241";
+}
+
+.fa-battery-2:before,
+.fa-battery-half:before {
+ content: "\f242";
+}
+
+.fa-battery-1:before,
+.fa-battery-quarter:before {
+ content: "\f243";
+}
+
+.fa-battery-0:before,
+.fa-battery-empty:before {
+ content: "\f244";
+}
+
+.fa-mouse-pointer:before {
+ content: "\f245";
+}
+
+.fa-i-cursor:before {
+ content: "\f246";
+}
+
+.fa-object-group:before {
+ content: "\f247";
+}
+
+.fa-object-ungroup:before {
+ content: "\f248";
+}
+
+.fa-sticky-note:before {
+ content: "\f249";
+}
+
+.fa-sticky-note-o:before {
+ content: "\f24a";
+}
+
+.fa-cc-jcb:before {
+ content: "\f24b";
+}
+
+.fa-cc-diners-club:before {
+ content: "\f24c";
+}
+
+.fa-clone:before {
+ content: "\f24d";
+}
+
+.fa-balance-scale:before {
+ content: "\f24e";
+}
+
+.fa-hourglass-o:before {
+ content: "\f250";
+}
+
+.fa-hourglass-1:before,
+.fa-hourglass-start:before {
+ content: "\f251";
+}
+
+.fa-hourglass-2:before,
+.fa-hourglass-half:before {
+ content: "\f252";
+}
+
+.fa-hourglass-3:before,
+.fa-hourglass-end:before {
+ content: "\f253";
+}
+
+.fa-hourglass:before {
+ content: "\f254";
+}
+
+.fa-hand-grab-o:before,
+.fa-hand-rock-o:before {
+ content: "\f255";
+}
+
+.fa-hand-stop-o:before,
+.fa-hand-paper-o:before {
+ content: "\f256";
+}
+
+.fa-hand-scissors-o:before {
+ content: "\f257";
+}
+
+.fa-hand-lizard-o:before {
+ content: "\f258";
+}
+
+.fa-hand-spock-o:before {
+ content: "\f259";
+}
+
+.fa-hand-pointer-o:before {
+ content: "\f25a";
+}
+
+.fa-hand-peace-o:before {
+ content: "\f25b";
+}
+
+.fa-trademark:before {
+ content: "\f25c";
+}
+
+.fa-registered:before {
+ content: "\f25d";
+}
+
+.fa-creative-commons:before {
+ content: "\f25e";
+}
+
+.fa-gg:before {
+ content: "\f260";
+}
+
+.fa-gg-circle:before {
+ content: "\f261";
+}
+
+.fa-tripadvisor:before {
+ content: "\f262";
+}
+
+.fa-odnoklassniki:before {
+ content: "\f263";
+}
+
+.fa-odnoklassniki-square:before {
+ content: "\f264";
+}
+
+.fa-get-pocket:before {
+ content: "\f265";
+}
+
+.fa-wikipedia-w:before {
+ content: "\f266";
+}
+
+.fa-safari:before {
+ content: "\f267";
+}
+
+.fa-chrome:before {
+ content: "\f268";
+}
+
+.fa-firefox:before {
+ content: "\f269";
+}
+
+.fa-opera:before {
+ content: "\f26a";
+}
+
+.fa-internet-explorer:before {
+ content: "\f26b";
+}
+
+.fa-tv:before,
+.fa-television:before {
+ content: "\f26c";
+}
+
+.fa-contao:before {
+ content: "\f26d";
+}
+
+.fa-500px:before {
+ content: "\f26e";
+}
+
+.fa-amazon:before {
+ content: "\f270";
+}
+
+.fa-calendar-plus-o:before {
+ content: "\f271";
+}
+
+.fa-calendar-minus-o:before {
+ content: "\f272";
+}
+
+.fa-calendar-times-o:before {
+ content: "\f273";
+}
+
+.fa-calendar-check-o:before {
+ content: "\f274";
+}
+
+.fa-industry:before {
+ content: "\f275";
+}
+
+.fa-map-pin:before {
+ content: "\f276";
+}
+
+.fa-map-signs:before {
+ content: "\f277";
+}
+
+.fa-map-o:before {
+ content: "\f278";
+}
+
+.fa-map:before {
+ content: "\f279";
+}
+
+.fa-commenting:before {
+ content: "\f27a";
+}
+
+.fa-commenting-o:before {
+ content: "\f27b";
+}
+
+.fa-houzz:before {
+ content: "\f27c";
+}
+
+.fa-vimeo:before {
+ content: "\f27d";
+}
+
+.fa-black-tie:before {
+ content: "\f27e";
+}
+
+.fa-fonticons:before {
+ content: "\f280";
+}
+
+.fa-reddit-alien:before {
+ content: "\f281";
+}
+
+.fa-edge:before {
+ content: "\f282";
+}
+
+.fa-credit-card-alt:before {
+ content: "\f283";
+}
+
+.fa-codiepie:before {
+ content: "\f284";
+}
+
+.fa-modx:before {
+ content: "\f285";
+}
+
+.fa-fort-awesome:before {
+ content: "\f286";
+}
+
+.fa-usb:before {
+ content: "\f287";
+}
+
+.fa-product-hunt:before {
+ content: "\f288";
+}
+
+.fa-mixcloud:before {
+ content: "\f289";
+}
+
+.fa-scribd:before {
+ content: "\f28a";
+}
+
+.fa-pause-circle:before {
+ content: "\f28b";
+}
+
+.fa-pause-circle-o:before {
+ content: "\f28c";
+}
+
+.fa-stop-circle:before {
+ content: "\f28d";
+}
+
+.fa-stop-circle-o:before {
+ content: "\f28e";
+}
+
+.fa-shopping-bag:before {
+ content: "\f290";
+}
+
+.fa-shopping-basket:before {
+ content: "\f291";
+}
+
+.fa-hashtag:before {
+ content: "\f292";
+}
+
+.fa-bluetooth:before {
+ content: "\f293";
+}
+
+.fa-bluetooth-b:before {
+ content: "\f294";
+}
+
+.fa-percent:before {
+ content: "\f295";
+}
+
+.fa-gitlab:before {
+ content: "\f296";
+}
+
+.fa-wpbeginner:before {
+ content: "\f297";
+}
+
+.fa-wpforms:before {
+ content: "\f298";
+}
+
+.fa-envira:before {
+ content: "\f299";
+}
+
+.fa-universal-access:before {
+ content: "\f29a";
+}
+
+.fa-wheelchair-alt:before {
+ content: "\f29b";
+}
+
+.fa-question-circle-o:before {
+ content: "\f29c";
+}
+
+.fa-blind:before {
+ content: "\f29d";
+}
+
+.fa-audio-description:before {
+ content: "\f29e";
+}
+
+.fa-volume-control-phone:before {
+ content: "\f2a0";
+}
+
+.fa-braille:before {
+ content: "\f2a1";
+}
+
+.fa-assistive-listening-systems:before {
+ content: "\f2a2";
+}
+
+.fa-asl-interpreting:before,
+.fa-american-sign-language-interpreting:before {
+ content: "\f2a3";
+}
+
+.fa-deafness:before,
+.fa-hard-of-hearing:before,
+.fa-deaf:before {
+ content: "\f2a4";
+}
+
+.fa-glide:before {
+ content: "\f2a5";
+}
+
+.fa-glide-g:before {
+ content: "\f2a6";
+}
+
+.fa-signing:before,
+.fa-sign-language:before {
+ content: "\f2a7";
+}
+
+.fa-low-vision:before {
+ content: "\f2a8";
+}
+
+.fa-viadeo:before {
+ content: "\f2a9";
+}
+
+.fa-viadeo-square:before {
+ content: "\f2aa";
+}
+
+.fa-snapchat:before {
+ content: "\f2ab";
+}
+
+.fa-snapchat-ghost:before {
+ content: "\f2ac";
+}
+
+.fa-snapchat-square:before {
+ content: "\f2ad";
+}
+
+.fa-pied-piper:before {
+ content: "\f2ae";
+}
+
+.fa-first-order:before {
+ content: "\f2b0";
+}
+
+.fa-yoast:before {
+ content: "\f2b1";
+}
+
+.fa-themeisle:before {
+ content: "\f2b2";
+}
+
+.fa-google-plus-circle:before,
+.fa-google-plus-official:before {
+ content: "\f2b3";
+}
+
+.fa-fa:before,
+.fa-font-awesome:before {
+ content: "\f2b4";
+}
+
+.fa-handshake-o:before {
+ content: "\f2b5";
+}
+
+.fa-envelope-open:before {
+ content: "\f2b6";
+}
+
+.fa-envelope-open-o:before {
+ content: "\f2b7";
+}
+
+.fa-linode:before {
+ content: "\f2b8";
+}
+
+.fa-address-book:before {
+ content: "\f2b9";
+}
+
+.fa-address-book-o:before {
+ content: "\f2ba";
+}
+
+.fa-vcard:before,
+.fa-address-card:before {
+ content: "\f2bb";
+}
+
+.fa-vcard-o:before,
+.fa-address-card-o:before {
+ content: "\f2bc";
+}
+
+.fa-user-circle:before {
+ content: "\f2bd";
+}
+
+.fa-user-circle-o:before {
+ content: "\f2be";
+}
+
+.fa-user-o:before {
+ content: "\f2c0";
+}
+
+.fa-id-badge:before {
+ content: "\f2c1";
+}
+
+.fa-drivers-license:before,
+.fa-id-card:before {
+ content: "\f2c2";
+}
+
+.fa-drivers-license-o:before,
+.fa-id-card-o:before {
+ content: "\f2c3";
+}
+
+.fa-quora:before {
+ content: "\f2c4";
+}
+
+.fa-free-code-camp:before {
+ content: "\f2c5";
+}
+
+.fa-telegram:before {
+ content: "\f2c6";
+}
+
+.fa-thermometer-4:before,
+.fa-thermometer:before,
+.fa-thermometer-full:before {
+ content: "\f2c7";
+}
+
+.fa-thermometer-3:before,
+.fa-thermometer-three-quarters:before {
+ content: "\f2c8";
+}
+
+.fa-thermometer-2:before,
+.fa-thermometer-half:before {
+ content: "\f2c9";
+}
+
+.fa-thermometer-1:before,
+.fa-thermometer-quarter:before {
+ content: "\f2ca";
+}
+
+.fa-thermometer-0:before,
+.fa-thermometer-empty:before {
+ content: "\f2cb";
+}
+
+.fa-shower:before {
+ content: "\f2cc";
+}
+
+.fa-bathtub:before,
+.fa-s15:before,
+.fa-bath:before {
+ content: "\f2cd";
+}
+
+.fa-podcast:before {
+ content: "\f2ce";
+}
+
+.fa-window-maximize:before {
+ content: "\f2d0";
+}
+
+.fa-window-minimize:before {
+ content: "\f2d1";
+}
+
+.fa-window-restore:before {
+ content: "\f2d2";
+}
+
+.fa-times-rectangle:before,
+.fa-window-close:before {
+ content: "\f2d3";
+}
+
+.fa-times-rectangle-o:before,
+.fa-window-close-o:before {
+ content: "\f2d4";
+}
+
+.fa-bandcamp:before {
+ content: "\f2d5";
+}
+
+.fa-grav:before {
+ content: "\f2d6";
+}
+
+.fa-etsy:before {
+ content: "\f2d7";
+}
+
+.fa-imdb:before {
+ content: "\f2d8";
+}
+
+.fa-ravelry:before {
+ content: "\f2d9";
+}
+
+.fa-eercast:before {
+ content: "\f2da";
+}
+
+.fa-microchip:before {
+ content: "\f2db";
+}
+
+.fa-snowflake-o:before {
+ content: "\f2dc";
+}
+
+.fa-superpowers:before {
+ content: "\f2dd";
+}
+
+.fa-wpexplorer:before {
+ content: "\f2de";
+}
+
+.fa-meetup:before {
+ content: "\f2e0";
+}
+
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ border: 0;
+}
+
+.sr-only-focusable:active,
+.sr-only-focusable:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ margin: 0;
+ overflow: visible;
+ clip: auto;
+}
+
+/*
+* Material Design Icons
+*/
+@font-face {
+ font-family: "Material Design Icons";
+ src: url("../fonts/materialdesignicons-webfont.eot?v=1.4.57");
+ src: url("../fonts/materialdesignicons-webfont.eot?#iefix&v=1.4.57") format("embedded-opentype"), url("../fonts/materialdesignicons-webfont.woff2?v=1.4.57") format("woff2"), url("../fonts/materialdesignicons-webfont.woff?v=1.4.57") format("woff"), url("../fonts/materialdesignicons-webfont.ttf?v=1.4.57") format("truetype"), url("../fonts/materialdesignicons-webfont.svg?v=1.4.57#materialdesigniconsregular") format("svg");
+ font-weight: normal;
+ font-style: normal;
+}
+
+.mdi {
+ display: inline-block;
+ font: normal normal normal 24px/1 "Material Design Icons";
+ font-size: inherit;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ transform: translate(0, 0);
+}
+
+.mdi-access-point:before {
+ content: "\f101";
+}
+
+.mdi-access-point-network:before {
+ content: "\f102";
+}
+
+.mdi-account:before {
+ content: "\f103";
+}
+
+.mdi-account-alert:before {
+ content: "\f104";
+}
+
+.mdi-account-box:before {
+ content: "\f105";
+}
+
+.mdi-account-box-outline:before {
+ content: "\f106";
+}
+
+.mdi-account-check:before {
+ content: "\f107";
+}
+
+.mdi-account-circle:before {
+ content: "\f108";
+}
+
+.mdi-account-convert:before {
+ content: "\f109";
+}
+
+.mdi-account-key:before {
+ content: "\f10a";
+}
+
+.mdi-account-location:before {
+ content: "\f10b";
+}
+
+.mdi-account-minus:before {
+ content: "\f10c";
+}
+
+.mdi-account-multiple:before {
+ content: "\f10d";
+}
+
+.mdi-account-multiple-outline:before {
+ content: "\f10e";
+}
+
+.mdi-account-multiple-plus:before {
+ content: "\f10f";
+}
+
+.mdi-account-network:before {
+ content: "\f110";
+}
+
+.mdi-account-off:before {
+ content: "\f111";
+}
+
+.mdi-account-outline:before {
+ content: "\f112";
+}
+
+.mdi-account-plus:before {
+ content: "\f113";
+}
+
+.mdi-account-remove:before {
+ content: "\f114";
+}
+
+.mdi-account-search:before {
+ content: "\f115";
+}
+
+.mdi-account-star:before {
+ content: "\f116";
+}
+
+.mdi-account-star-variant:before {
+ content: "\f117";
+}
+
+.mdi-account-switch:before {
+ content: "\f118";
+}
+
+.mdi-adjust:before {
+ content: "\f119";
+}
+
+.mdi-air-conditioner:before {
+ content: "\f11a";
+}
+
+.mdi-airballoon:before {
+ content: "\f11b";
+}
+
+.mdi-airplane:before {
+ content: "\f11c";
+}
+
+.mdi-airplane-off:before {
+ content: "\f11d";
+}
+
+.mdi-airplay:before {
+ content: "\f11e";
+}
+
+.mdi-alarm:before {
+ content: "\f11f";
+}
+
+.mdi-alarm-check:before {
+ content: "\f120";
+}
+
+.mdi-alarm-multiple:before {
+ content: "\f121";
+}
+
+.mdi-alarm-off:before {
+ content: "\f122";
+}
+
+.mdi-alarm-plus:before {
+ content: "\f123";
+}
+
+.mdi-album:before {
+ content: "\f124";
+}
+
+.mdi-alert:before {
+ content: "\f125";
+}
+
+.mdi-alert-box:before {
+ content: "\f126";
+}
+
+.mdi-alert-circle:before {
+ content: "\f127";
+}
+
+.mdi-alert-octagon:before {
+ content: "\f128";
+}
+
+.mdi-alert-outline:before {
+ content: "\f129";
+}
+
+.mdi-alpha:before {
+ content: "\f12a";
+}
+
+.mdi-alphabetical:before {
+ content: "\f12b";
+}
+
+.mdi-amazon:before {
+ content: "\f12c";
+}
+
+.mdi-amazon-clouddrive:before {
+ content: "\f12d";
+}
+
+.mdi-ambulance:before {
+ content: "\f12e";
+}
+
+.mdi-anchor:before {
+ content: "\f12f";
+}
+
+.mdi-android:before {
+ content: "\f130";
+}
+
+.mdi-android-debug-bridge:before {
+ content: "\f131";
+}
+
+.mdi-android-studio:before {
+ content: "\f132";
+}
+
+.mdi-apple:before {
+ content: "\f133";
+}
+
+.mdi-apple-finder:before {
+ content: "\f134";
+}
+
+.mdi-apple-ios:before {
+ content: "\f135";
+}
+
+.mdi-apple-mobileme:before {
+ content: "\f136";
+}
+
+.mdi-apple-safari:before {
+ content: "\f137";
+}
+
+.mdi-appnet:before {
+ content: "\f138";
+}
+
+.mdi-apps:before {
+ content: "\f139";
+}
+
+.mdi-archive:before {
+ content: "\f13a";
+}
+
+.mdi-arrange-bring-forward:before {
+ content: "\f13b";
+}
+
+.mdi-arrange-bring-to-front:before {
+ content: "\f13c";
+}
+
+.mdi-arrange-send-backward:before {
+ content: "\f13d";
+}
+
+.mdi-arrange-send-to-back:before {
+ content: "\f13e";
+}
+
+.mdi-arrow-all:before {
+ content: "\f13f";
+}
+
+.mdi-arrow-bottom-drop-circle:before {
+ content: "\f140";
+}
+
+.mdi-arrow-bottom-left:before {
+ content: "\f141";
+}
+
+.mdi-arrow-bottom-right:before {
+ content: "\f142";
+}
+
+.mdi-arrow-collapse:before {
+ content: "\f143";
+}
+
+.mdi-arrow-down:before {
+ content: "\f144";
+}
+
+.mdi-arrow-down-bold:before {
+ content: "\f145";
+}
+
+.mdi-arrow-down-bold-circle:before {
+ content: "\f146";
+}
+
+.mdi-arrow-down-bold-circle-outline:before {
+ content: "\f147";
+}
+
+.mdi-arrow-down-bold-hexagon-outline:before {
+ content: "\f148";
+}
+
+.mdi-arrow-expand:before {
+ content: "\f149";
+}
+
+.mdi-arrow-left:before {
+ content: "\f14a";
+}
+
+.mdi-arrow-left-bold:before {
+ content: "\f14b";
+}
+
+.mdi-arrow-left-bold-circle:before {
+ content: "\f14c";
+}
+
+.mdi-arrow-left-bold-circle-outline:before {
+ content: "\f14d";
+}
+
+.mdi-arrow-left-bold-hexagon-outline:before {
+ content: "\f14e";
+}
+
+.mdi-arrow-right:before {
+ content: "\f14f";
+}
+
+.mdi-arrow-right-bold:before {
+ content: "\f150";
+}
+
+.mdi-arrow-right-bold-circle:before {
+ content: "\f151";
+}
+
+.mdi-arrow-right-bold-circle-outline:before {
+ content: "\f152";
+}
+
+.mdi-arrow-right-bold-hexagon-outline:before {
+ content: "\f153";
+}
+
+.mdi-arrow-top-left:before {
+ content: "\f154";
+}
+
+.mdi-arrow-top-right:before {
+ content: "\f155";
+}
+
+.mdi-arrow-up:before {
+ content: "\f156";
+}
+
+.mdi-arrow-up-bold:before {
+ content: "\f157";
+}
+
+.mdi-arrow-up-bold-circle:before {
+ content: "\f158";
+}
+
+.mdi-arrow-up-bold-circle-outline:before {
+ content: "\f159";
+}
+
+.mdi-arrow-up-bold-hexagon-outline:before {
+ content: "\f15a";
+}
+
+.mdi-assistant:before {
+ content: "\f15b";
+}
+
+.mdi-at:before {
+ content: "\f15c";
+}
+
+.mdi-attachment:before {
+ content: "\f15d";
+}
+
+.mdi-audiobook:before {
+ content: "\f15e";
+}
+
+.mdi-auto-fix:before {
+ content: "\f15f";
+}
+
+.mdi-auto-upload:before {
+ content: "\f160";
+}
+
+.mdi-autorenew:before {
+ content: "\f161";
+}
+
+.mdi-av-timer:before {
+ content: "\f162";
+}
+
+.mdi-baby:before {
+ content: "\f163";
+}
+
+.mdi-backburger:before {
+ content: "\f164";
+}
+
+.mdi-backspace:before {
+ content: "\f165";
+}
+
+.mdi-backup-restore:before {
+ content: "\f166";
+}
+
+.mdi-bank:before {
+ content: "\f167";
+}
+
+.mdi-barcode:before {
+ content: "\f168";
+}
+
+.mdi-barcode-scan:before {
+ content: "\f169";
+}
+
+.mdi-barley:before {
+ content: "\f16a";
+}
+
+.mdi-barrel:before {
+ content: "\f16b";
+}
+
+.mdi-basecamp:before {
+ content: "\f16c";
+}
+
+.mdi-basket:before {
+ content: "\f16d";
+}
+
+.mdi-basket-fill:before {
+ content: "\f16e";
+}
+
+.mdi-basket-unfill:before {
+ content: "\f16f";
+}
+
+.mdi-battery:before {
+ content: "\f170";
+}
+
+.mdi-battery-10:before {
+ content: "\f171";
+}
+
+.mdi-battery-20:before {
+ content: "\f172";
+}
+
+.mdi-battery-30:before {
+ content: "\f173";
+}
+
+.mdi-battery-40:before {
+ content: "\f174";
+}
+
+.mdi-battery-50:before {
+ content: "\f175";
+}
+
+.mdi-battery-60:before {
+ content: "\f176";
+}
+
+.mdi-battery-70:before {
+ content: "\f177";
+}
+
+.mdi-battery-80:before {
+ content: "\f178";
+}
+
+.mdi-battery-90:before {
+ content: "\f179";
+}
+
+.mdi-battery-alert:before {
+ content: "\f17a";
+}
+
+.mdi-battery-charging:before {
+ content: "\f17b";
+}
+
+.mdi-battery-charging-100:before {
+ content: "\f17c";
+}
+
+.mdi-battery-charging-20:before {
+ content: "\f17d";
+}
+
+.mdi-battery-charging-30:before {
+ content: "\f17e";
+}
+
+.mdi-battery-charging-40:before {
+ content: "\f17f";
+}
+
+.mdi-battery-charging-60:before {
+ content: "\f180";
+}
+
+.mdi-battery-charging-80:before {
+ content: "\f181";
+}
+
+.mdi-battery-charging-90:before {
+ content: "\f182";
+}
+
+.mdi-battery-minus:before {
+ content: "\f183";
+}
+
+.mdi-battery-negative:before {
+ content: "\f184";
+}
+
+.mdi-battery-outline:before {
+ content: "\f185";
+}
+
+.mdi-battery-plus:before {
+ content: "\f186";
+}
+
+.mdi-battery-positive:before {
+ content: "\f187";
+}
+
+.mdi-battery-unknown:before {
+ content: "\f188";
+}
+
+.mdi-beach:before {
+ content: "\f189";
+}
+
+.mdi-beaker:before {
+ content: "\f18a";
+}
+
+.mdi-beaker-empty:before {
+ content: "\f18b";
+}
+
+.mdi-beaker-empty-outline:before {
+ content: "\f18c";
+}
+
+.mdi-beaker-outline:before {
+ content: "\f18d";
+}
+
+.mdi-beats:before {
+ content: "\f18e";
+}
+
+.mdi-beer:before {
+ content: "\f18f";
+}
+
+.mdi-behance:before {
+ content: "\f190";
+}
+
+.mdi-bell:before {
+ content: "\f191";
+}
+
+.mdi-bell-off:before {
+ content: "\f192";
+}
+
+.mdi-bell-outline:before {
+ content: "\f193";
+}
+
+.mdi-bell-plus:before {
+ content: "\f194";
+}
+
+.mdi-bell-ring:before {
+ content: "\f195";
+}
+
+.mdi-bell-ring-outline:before {
+ content: "\f196";
+}
+
+.mdi-bell-sleep:before {
+ content: "\f197";
+}
+
+.mdi-beta:before {
+ content: "\f198";
+}
+
+.mdi-bike:before {
+ content: "\f199";
+}
+
+.mdi-bing:before {
+ content: "\f19a";
+}
+
+.mdi-binoculars:before {
+ content: "\f19b";
+}
+
+.mdi-bio:before {
+ content: "\f19c";
+}
+
+.mdi-biohazard:before {
+ content: "\f19d";
+}
+
+.mdi-bitbucket:before {
+ content: "\f19e";
+}
+
+.mdi-black-mesa:before {
+ content: "\f19f";
+}
+
+.mdi-blackberry:before {
+ content: "\f1a0";
+}
+
+.mdi-blender:before {
+ content: "\f1a1";
+}
+
+.mdi-blinds:before {
+ content: "\f1a2";
+}
+
+.mdi-block-helper:before {
+ content: "\f1a3";
+}
+
+.mdi-blogger:before {
+ content: "\f1a4";
+}
+
+.mdi-bluetooth:before {
+ content: "\f1a5";
+}
+
+.mdi-bluetooth-audio:before {
+ content: "\f1a6";
+}
+
+.mdi-bluetooth-connect:before {
+ content: "\f1a7";
+}
+
+.mdi-bluetooth-off:before {
+ content: "\f1a8";
+}
+
+.mdi-bluetooth-settings:before {
+ content: "\f1a9";
+}
+
+.mdi-bluetooth-transfer:before {
+ content: "\f1aa";
+}
+
+.mdi-blur:before {
+ content: "\f1ab";
+}
+
+.mdi-blur-linear:before {
+ content: "\f1ac";
+}
+
+.mdi-blur-off:before {
+ content: "\f1ad";
+}
+
+.mdi-blur-radial:before {
+ content: "\f1ae";
+}
+
+.mdi-bone:before {
+ content: "\f1af";
+}
+
+.mdi-book:before {
+ content: "\f1b0";
+}
+
+.mdi-book-multiple:before {
+ content: "\f1b1";
+}
+
+.mdi-book-multiple-variant:before {
+ content: "\f1b2";
+}
+
+.mdi-book-open:before {
+ content: "\f1b3";
+}
+
+.mdi-book-open-variant:before {
+ content: "\f1b4";
+}
+
+.mdi-book-variant:before {
+ content: "\f1b5";
+}
+
+.mdi-bookmark:before {
+ content: "\f1b6";
+}
+
+.mdi-bookmark-check:before {
+ content: "\f1b7";
+}
+
+.mdi-bookmark-music:before {
+ content: "\f1b8";
+}
+
+.mdi-bookmark-outline:before {
+ content: "\f1b9";
+}
+
+.mdi-bookmark-outline-plus:before {
+ content: "\f1ba";
+}
+
+.mdi-bookmark-plus:before {
+ content: "\f1bb";
+}
+
+.mdi-bookmark-remove:before {
+ content: "\f1bc";
+}
+
+.mdi-border-all:before {
+ content: "\f1bd";
+}
+
+.mdi-border-bottom:before {
+ content: "\f1be";
+}
+
+.mdi-border-color:before {
+ content: "\f1bf";
+}
+
+.mdi-border-horizontal:before {
+ content: "\f1c0";
+}
+
+.mdi-border-inside:before {
+ content: "\f1c1";
+}
+
+.mdi-border-left:before {
+ content: "\f1c2";
+}
+
+.mdi-border-none:before {
+ content: "\f1c3";
+}
+
+.mdi-border-outside:before {
+ content: "\f1c4";
+}
+
+.mdi-border-right:before {
+ content: "\f1c5";
+}
+
+.mdi-border-style:before {
+ content: "\f1c6";
+}
+
+.mdi-border-top:before {
+ content: "\f1c7";
+}
+
+.mdi-border-vertical:before {
+ content: "\f1c8";
+}
+
+.mdi-bowling:before {
+ content: "\f1c9";
+}
+
+.mdi-box:before {
+ content: "\f1ca";
+}
+
+.mdi-box-cutter:before {
+ content: "\f1cb";
+}
+
+.mdi-briefcase:before {
+ content: "\f1cc";
+}
+
+.mdi-briefcase-check:before {
+ content: "\f1cd";
+}
+
+.mdi-briefcase-download:before {
+ content: "\f1ce";
+}
+
+.mdi-briefcase-upload:before {
+ content: "\f1cf";
+}
+
+.mdi-brightness-1:before {
+ content: "\f1d0";
+}
+
+.mdi-brightness-2:before {
+ content: "\f1d1";
+}
+
+.mdi-brightness-3:before {
+ content: "\f1d2";
+}
+
+.mdi-brightness-4:before {
+ content: "\f1d3";
+}
+
+.mdi-brightness-5:before {
+ content: "\f1d4";
+}
+
+.mdi-brightness-6:before {
+ content: "\f1d5";
+}
+
+.mdi-brightness-7:before {
+ content: "\f1d6";
+}
+
+.mdi-brightness-auto:before {
+ content: "\f1d7";
+}
+
+.mdi-broom:before {
+ content: "\f1d8";
+}
+
+.mdi-brush:before {
+ content: "\f1d9";
+}
+
+.mdi-bug:before {
+ content: "\f1da";
+}
+
+.mdi-bulletin-board:before {
+ content: "\f1db";
+}
+
+.mdi-bullhorn:before {
+ content: "\f1dc";
+}
+
+.mdi-bus:before {
+ content: "\f1dd";
+}
+
+.mdi-cached:before {
+ content: "\f1de";
+}
+
+.mdi-cake:before {
+ content: "\f1df";
+}
+
+.mdi-cake-layered:before {
+ content: "\f1e0";
+}
+
+.mdi-cake-variant:before {
+ content: "\f1e1";
+}
+
+.mdi-calculator:before {
+ content: "\f1e2";
+}
+
+.mdi-calendar:before {
+ content: "\f1e3";
+}
+
+.mdi-calendar-blank:before {
+ content: "\f1e4";
+}
+
+.mdi-calendar-check:before {
+ content: "\f1e5";
+}
+
+.mdi-calendar-clock:before {
+ content: "\f1e6";
+}
+
+.mdi-calendar-multiple:before {
+ content: "\f1e7";
+}
+
+.mdi-calendar-multiple-check:before {
+ content: "\f1e8";
+}
+
+.mdi-calendar-plus:before {
+ content: "\f1e9";
+}
+
+.mdi-calendar-remove:before {
+ content: "\f1ea";
+}
+
+.mdi-calendar-text:before {
+ content: "\f1eb";
+}
+
+.mdi-calendar-today:before {
+ content: "\f1ec";
+}
+
+.mdi-call-made:before {
+ content: "\f1ed";
+}
+
+.mdi-call-merge:before {
+ content: "\f1ee";
+}
+
+.mdi-call-missed:before {
+ content: "\f1ef";
+}
+
+.mdi-call-received:before {
+ content: "\f1f0";
+}
+
+.mdi-call-split:before {
+ content: "\f1f1";
+}
+
+.mdi-camcorder:before {
+ content: "\f1f2";
+}
+
+.mdi-camcorder-box:before {
+ content: "\f1f3";
+}
+
+.mdi-camcorder-box-off:before {
+ content: "\f1f4";
+}
+
+.mdi-camcorder-off:before {
+ content: "\f1f5";
+}
+
+.mdi-camera:before {
+ content: "\f1f6";
+}
+
+.mdi-camera-enhance:before {
+ content: "\f1f7";
+}
+
+.mdi-camera-front:before {
+ content: "\f1f8";
+}
+
+.mdi-camera-front-variant:before {
+ content: "\f1f9";
+}
+
+.mdi-camera-iris:before {
+ content: "\f1fa";
+}
+
+.mdi-camera-party-mode:before {
+ content: "\f1fb";
+}
+
+.mdi-camera-rear:before {
+ content: "\f1fc";
+}
+
+.mdi-camera-rear-variant:before {
+ content: "\f1fd";
+}
+
+.mdi-camera-switch:before {
+ content: "\f1fe";
+}
+
+.mdi-camera-timer:before {
+ content: "\f1ff";
+}
+
+.mdi-candycane:before {
+ content: "\f200";
+}
+
+.mdi-car:before {
+ content: "\f201";
+}
+
+.mdi-car-battery:before {
+ content: "\f202";
+}
+
+.mdi-car-connected:before {
+ content: "\f203";
+}
+
+.mdi-car-wash:before {
+ content: "\f204";
+}
+
+.mdi-carrot:before {
+ content: "\f205";
+}
+
+.mdi-cart:before {
+ content: "\f206";
+}
+
+.mdi-cart-outline:before {
+ content: "\f207";
+}
+
+.mdi-cart-plus:before {
+ content: "\f208";
+}
+
+.mdi-case-sensitive-alt:before {
+ content: "\f209";
+}
+
+.mdi-cash:before {
+ content: "\f20a";
+}
+
+.mdi-cash-100:before {
+ content: "\f20b";
+}
+
+.mdi-cash-multiple:before {
+ content: "\f20c";
+}
+
+.mdi-cash-usd:before {
+ content: "\f20d";
+}
+
+.mdi-cast:before {
+ content: "\f20e";
+}
+
+.mdi-cast-connected:before {
+ content: "\f20f";
+}
+
+.mdi-castle:before {
+ content: "\f210";
+}
+
+.mdi-cat:before {
+ content: "\f211";
+}
+
+.mdi-cellphone:before {
+ content: "\f212";
+}
+
+.mdi-cellphone-android:before {
+ content: "\f213";
+}
+
+.mdi-cellphone-basic:before {
+ content: "\f214";
+}
+
+.mdi-cellphone-dock:before {
+ content: "\f215";
+}
+
+.mdi-cellphone-iphone:before {
+ content: "\f216";
+}
+
+.mdi-cellphone-link:before {
+ content: "\f217";
+}
+
+.mdi-cellphone-link-off:before {
+ content: "\f218";
+}
+
+.mdi-cellphone-settings:before {
+ content: "\f219";
+}
+
+.mdi-certificate:before {
+ content: "\f21a";
+}
+
+.mdi-chair-school:before {
+ content: "\f21b";
+}
+
+.mdi-chart-arc:before {
+ content: "\f21c";
+}
+
+.mdi-chart-areaspline:before {
+ content: "\f21d";
+}
+
+.mdi-chart-bar:before {
+ content: "\f21e";
+}
+
+.mdi-chart-histogram:before {
+ content: "\f21f";
+}
+
+.mdi-chart-line:before {
+ content: "\f220";
+}
+
+.mdi-chart-pie:before {
+ content: "\f221";
+}
+
+.mdi-check:before {
+ content: "\f222";
+}
+
+.mdi-check-all:before {
+ content: "\f223";
+}
+
+.mdi-checkbox-blank:before {
+ content: "\f224";
+}
+
+.mdi-checkbox-blank-circle:before {
+ content: "\f225";
+}
+
+.mdi-checkbox-blank-circle-outline:before {
+ content: "\f226";
+}
+
+.mdi-checkbox-blank-outline:before {
+ content: "\f227";
+}
+
+.mdi-checkbox-marked:before {
+ content: "\f228";
+}
+
+.mdi-checkbox-marked-circle:before {
+ content: "\f229";
+}
+
+.mdi-checkbox-marked-circle-outline:before {
+ content: "\f22a";
+}
+
+.mdi-checkbox-marked-outline:before {
+ content: "\f22b";
+}
+
+.mdi-checkbox-multiple-blank:before {
+ content: "\f22c";
+}
+
+.mdi-checkbox-multiple-blank-outline:before {
+ content: "\f22d";
+}
+
+.mdi-checkbox-multiple-marked:before {
+ content: "\f22e";
+}
+
+.mdi-checkbox-multiple-marked-outline:before {
+ content: "\f22f";
+}
+
+.mdi-checkerboard:before {
+ content: "\f230";
+}
+
+.mdi-chemical-weapon:before {
+ content: "\f231";
+}
+
+.mdi-chevron-double-down:before {
+ content: "\f232";
+}
+
+.mdi-chevron-double-left:before {
+ content: "\f233";
+}
+
+.mdi-chevron-double-right:before {
+ content: "\f234";
+}
+
+.mdi-chevron-double-up:before {
+ content: "\f235";
+}
+
+.mdi-chevron-down:before {
+ content: "\f236";
+}
+
+.mdi-chevron-left:before {
+ content: "\f237";
+}
+
+.mdi-chevron-right:before {
+ content: "\f238";
+}
+
+.mdi-chevron-up:before {
+ content: "\f239";
+}
+
+.mdi-church:before {
+ content: "\f23a";
+}
+
+.mdi-cisco-webex:before {
+ content: "\f23b";
+}
+
+.mdi-city:before {
+ content: "\f23c";
+}
+
+.mdi-clipboard:before {
+ content: "\f23d";
+}
+
+.mdi-clipboard-account:before {
+ content: "\f23e";
+}
+
+.mdi-clipboard-alert:before {
+ content: "\f23f";
+}
+
+.mdi-clipboard-arrow-down:before {
+ content: "\f240";
+}
+
+.mdi-clipboard-arrow-left:before {
+ content: "\f241";
+}
+
+.mdi-clipboard-check:before {
+ content: "\f242";
+}
+
+.mdi-clipboard-outline:before {
+ content: "\f243";
+}
+
+.mdi-clipboard-text:before {
+ content: "\f244";
+}
+
+.mdi-clippy:before {
+ content: "\f245";
+}
+
+.mdi-clock:before {
+ content: "\f246";
+}
+
+.mdi-clock-end:before {
+ content: "\f247";
+}
+
+.mdi-clock-fast:before {
+ content: "\f248";
+}
+
+.mdi-clock-in:before {
+ content: "\f249";
+}
+
+.mdi-clock-out:before {
+ content: "\f24a";
+}
+
+.mdi-clock-start:before {
+ content: "\f24b";
+}
+
+.mdi-close:before {
+ content: "\f24c";
+}
+
+.mdi-close-box:before {
+ content: "\f24d";
+}
+
+.mdi-close-box-outline:before {
+ content: "\f24e";
+}
+
+.mdi-close-circle:before {
+ content: "\f24f";
+}
+
+.mdi-close-circle-outline:before {
+ content: "\f250";
+}
+
+.mdi-close-network:before {
+ content: "\f251";
+}
+
+.mdi-close-octagon:before {
+ content: "\f252";
+}
+
+.mdi-close-octagon-outline:before {
+ content: "\f253";
+}
+
+.mdi-closed-caption:before {
+ content: "\f254";
+}
+
+.mdi-cloud:before {
+ content: "\f255";
+}
+
+.mdi-cloud-check:before {
+ content: "\f256";
+}
+
+.mdi-cloud-circle:before {
+ content: "\f257";
+}
+
+.mdi-cloud-download:before {
+ content: "\f258";
+}
+
+.mdi-cloud-outline:before {
+ content: "\f259";
+}
+
+.mdi-cloud-outline-off:before {
+ content: "\f25a";
+}
+
+.mdi-cloud-print:before {
+ content: "\f25b";
+}
+
+.mdi-cloud-print-outline:before {
+ content: "\f25c";
+}
+
+.mdi-cloud-upload:before {
+ content: "\f25d";
+}
+
+.mdi-code-array:before {
+ content: "\f25e";
+}
+
+.mdi-code-braces:before {
+ content: "\f25f";
+}
+
+.mdi-code-brackets:before {
+ content: "\f260";
+}
+
+.mdi-code-equal:before {
+ content: "\f261";
+}
+
+.mdi-code-greater-than:before {
+ content: "\f262";
+}
+
+.mdi-code-greater-than-or-equal:before {
+ content: "\f263";
+}
+
+.mdi-code-less-than:before {
+ content: "\f264";
+}
+
+.mdi-code-less-than-or-equal:before {
+ content: "\f265";
+}
+
+.mdi-code-not-equal:before {
+ content: "\f266";
+}
+
+.mdi-code-not-equal-variant:before {
+ content: "\f267";
+}
+
+.mdi-code-parentheses:before {
+ content: "\f268";
+}
+
+.mdi-code-string:before {
+ content: "\f269";
+}
+
+.mdi-code-tags:before {
+ content: "\f26a";
+}
+
+.mdi-codepen:before {
+ content: "\f26b";
+}
+
+.mdi-coffee:before {
+ content: "\f26c";
+}
+
+.mdi-coffee-to-go:before {
+ content: "\f26d";
+}
+
+.mdi-coin:before {
+ content: "\f26e";
+}
+
+.mdi-color-helper:before {
+ content: "\f26f";
+}
+
+.mdi-comment:before {
+ content: "\f270";
+}
+
+.mdi-comment-account:before {
+ content: "\f271";
+}
+
+.mdi-comment-account-outline:before {
+ content: "\f272";
+}
+
+.mdi-comment-alert:before {
+ content: "\f273";
+}
+
+.mdi-comment-alert-outline:before {
+ content: "\f274";
+}
+
+.mdi-comment-check:before {
+ content: "\f275";
+}
+
+.mdi-comment-check-outline:before {
+ content: "\f276";
+}
+
+.mdi-comment-multiple-outline:before {
+ content: "\f277";
+}
+
+.mdi-comment-outline:before {
+ content: "\f278";
+}
+
+.mdi-comment-plus-outline:before {
+ content: "\f279";
+}
+
+.mdi-comment-processing:before {
+ content: "\f27a";
+}
+
+.mdi-comment-processing-outline:before {
+ content: "\f27b";
+}
+
+.mdi-comment-question-outline:before {
+ content: "\f27c";
+}
+
+.mdi-comment-remove-outline:before {
+ content: "\f27d";
+}
+
+.mdi-comment-text:before {
+ content: "\f27e";
+}
+
+.mdi-comment-text-outline:before {
+ content: "\f27f";
+}
+
+.mdi-compare:before {
+ content: "\f280";
+}
+
+.mdi-compass:before {
+ content: "\f281";
+}
+
+.mdi-compass-outline:before {
+ content: "\f282";
+}
+
+.mdi-console:before {
+ content: "\f283";
+}
+
+.mdi-contact-mail:before {
+ content: "\f284";
+}
+
+.mdi-content-copy:before {
+ content: "\f285";
+}
+
+.mdi-content-cut:before {
+ content: "\f286";
+}
+
+.mdi-content-duplicate:before {
+ content: "\f287";
+}
+
+.mdi-content-paste:before {
+ content: "\f288";
+}
+
+.mdi-content-save:before {
+ content: "\f289";
+}
+
+.mdi-content-save-all:before {
+ content: "\f28a";
+}
+
+.mdi-contrast:before {
+ content: "\f28b";
+}
+
+.mdi-contrast-box:before {
+ content: "\f28c";
+}
+
+.mdi-contrast-circle:before {
+ content: "\f28d";
+}
+
+.mdi-cookie:before {
+ content: "\f28e";
+}
+
+.mdi-cow:before {
+ content: "\f28f";
+}
+
+.mdi-credit-card:before {
+ content: "\f290";
+}
+
+.mdi-credit-card-multiple:before {
+ content: "\f291";
+}
+
+.mdi-credit-card-scan:before {
+ content: "\f292";
+}
+
+.mdi-crop:before {
+ content: "\f293";
+}
+
+.mdi-crop-free:before {
+ content: "\f294";
+}
+
+.mdi-crop-landscape:before {
+ content: "\f295";
+}
+
+.mdi-crop-portrait:before {
+ content: "\f296";
+}
+
+.mdi-crop-square:before {
+ content: "\f297";
+}
+
+.mdi-crosshairs:before {
+ content: "\f298";
+}
+
+.mdi-crosshairs-gps:before {
+ content: "\f299";
+}
+
+.mdi-crown:before {
+ content: "\f29a";
+}
+
+.mdi-cube:before {
+ content: "\f29b";
+}
+
+.mdi-cube-outline:before {
+ content: "\f29c";
+}
+
+.mdi-cube-send:before {
+ content: "\f29d";
+}
+
+.mdi-cube-unfolded:before {
+ content: "\f29e";
+}
+
+.mdi-cup:before {
+ content: "\f29f";
+}
+
+.mdi-cup-water:before {
+ content: "\f2a0";
+}
+
+.mdi-currency-btc:before {
+ content: "\f2a1";
+}
+
+.mdi-currency-eur:before {
+ content: "\f2a2";
+}
+
+.mdi-currency-gbp:before {
+ content: "\f2a3";
+}
+
+.mdi-currency-inr:before {
+ content: "\f2a4";
+}
+
+.mdi-currency-ngn:before {
+ content: "\f2a5";
+}
+
+.mdi-currency-rub:before {
+ content: "\f2a6";
+}
+
+.mdi-currency-try:before {
+ content: "\f2a7";
+}
+
+.mdi-currency-usd:before {
+ content: "\f2a8";
+}
+
+.mdi-cursor-default:before {
+ content: "\f2a9";
+}
+
+.mdi-cursor-default-outline:before {
+ content: "\f2aa";
+}
+
+.mdi-cursor-move:before {
+ content: "\f2ab";
+}
+
+.mdi-cursor-pointer:before {
+ content: "\f2ac";
+}
+
+.mdi-database:before {
+ content: "\f2ad";
+}
+
+.mdi-database-minus:before {
+ content: "\f2ae";
+}
+
+.mdi-database-plus:before {
+ content: "\f2af";
+}
+
+.mdi-debug-step-into:before {
+ content: "\f2b0";
+}
+
+.mdi-debug-step-out:before {
+ content: "\f2b1";
+}
+
+.mdi-debug-step-over:before {
+ content: "\f2b2";
+}
+
+.mdi-decimal-decrease:before {
+ content: "\f2b3";
+}
+
+.mdi-decimal-increase:before {
+ content: "\f2b4";
+}
+
+.mdi-delete:before {
+ content: "\f2b5";
+}
+
+.mdi-delete-variant:before {
+ content: "\f2b6";
+}
+
+.mdi-delta:before {
+ content: "\f2b7";
+}
+
+.mdi-deskphone:before {
+ content: "\f2b8";
+}
+
+.mdi-desktop-mac:before {
+ content: "\f2b9";
+}
+
+.mdi-desktop-tower:before {
+ content: "\f2ba";
+}
+
+.mdi-details:before {
+ content: "\f2bb";
+}
+
+.mdi-deviantart:before {
+ content: "\f2bc";
+}
+
+.mdi-diamond:before {
+ content: "\f2bd";
+}
+
+.mdi-dice:before {
+ content: "\f2be";
+}
+
+.mdi-dice-1:before {
+ content: "\f2bf";
+}
+
+.mdi-dice-2:before {
+ content: "\f2c0";
+}
+
+.mdi-dice-3:before {
+ content: "\f2c1";
+}
+
+.mdi-dice-4:before {
+ content: "\f2c2";
+}
+
+.mdi-dice-5:before {
+ content: "\f2c3";
+}
+
+.mdi-dice-6:before {
+ content: "\f2c4";
+}
+
+.mdi-directions:before {
+ content: "\f2c5";
+}
+
+.mdi-disk-alert:before {
+ content: "\f2c6";
+}
+
+.mdi-disqus:before {
+ content: "\f2c7";
+}
+
+.mdi-disqus-outline:before {
+ content: "\f2c8";
+}
+
+.mdi-division:before {
+ content: "\f2c9";
+}
+
+.mdi-division-box:before {
+ content: "\f2ca";
+}
+
+.mdi-dns:before {
+ content: "\f2cb";
+}
+
+.mdi-domain:before {
+ content: "\f2cc";
+}
+
+.mdi-dots-horizontal:before {
+ content: "\f2cd";
+}
+
+.mdi-dots-vertical:before {
+ content: "\f2ce";
+}
+
+.mdi-download:before {
+ content: "\f2cf";
+}
+
+.mdi-drag:before {
+ content: "\f2d0";
+}
+
+.mdi-drag-horizontal:before {
+ content: "\f2d1";
+}
+
+.mdi-drag-vertical:before {
+ content: "\f2d2";
+}
+
+.mdi-drawing:before {
+ content: "\f2d3";
+}
+
+.mdi-drawing-box:before {
+ content: "\f2d4";
+}
+
+.mdi-dribbble:before {
+ content: "\f2d5";
+}
+
+.mdi-dribbble-box:before {
+ content: "\f2d6";
+}
+
+.mdi-drone:before {
+ content: "\f2d7";
+}
+
+.mdi-dropbox:before {
+ content: "\f2d8";
+}
+
+.mdi-drupal:before {
+ content: "\f2d9";
+}
+
+.mdi-duck:before {
+ content: "\f2da";
+}
+
+.mdi-dumbbell:before {
+ content: "\f2db";
+}
+
+.mdi-earth:before {
+ content: "\f2dc";
+}
+
+.mdi-earth-off:before {
+ content: "\f2dd";
+}
+
+.mdi-edge:before {
+ content: "\f2de";
+}
+
+.mdi-eject:before {
+ content: "\f2df";
+}
+
+.mdi-elevation-decline:before {
+ content: "\f2e0";
+}
+
+.mdi-elevation-rise:before {
+ content: "\f2e1";
+}
+
+.mdi-elevator:before {
+ content: "\f2e2";
+}
+
+.mdi-email:before {
+ content: "\f2e3";
+}
+
+.mdi-email-open:before {
+ content: "\f2e4";
+}
+
+.mdi-email-outline:before {
+ content: "\f2e5";
+}
+
+.mdi-email-secure:before {
+ content: "\f2e6";
+}
+
+.mdi-emoticon:before {
+ content: "\f2e7";
+}
+
+.mdi-emoticon-cool:before {
+ content: "\f2e8";
+}
+
+.mdi-emoticon-devil:before {
+ content: "\f2e9";
+}
+
+.mdi-emoticon-happy:before {
+ content: "\f2ea";
+}
+
+.mdi-emoticon-neutral:before {
+ content: "\f2eb";
+}
+
+.mdi-emoticon-poop:before {
+ content: "\f2ec";
+}
+
+.mdi-emoticon-sad:before {
+ content: "\f2ed";
+}
+
+.mdi-emoticon-tongue:before {
+ content: "\f2ee";
+}
+
+.mdi-engine:before {
+ content: "\f2ef";
+}
+
+.mdi-engine-outline:before {
+ content: "\f2f0";
+}
+
+.mdi-equal:before {
+ content: "\f2f1";
+}
+
+.mdi-equal-box:before {
+ content: "\f2f2";
+}
+
+.mdi-eraser:before {
+ content: "\f2f3";
+}
+
+.mdi-escalator:before {
+ content: "\f2f4";
+}
+
+.mdi-ethernet:before {
+ content: "\f2f5";
+}
+
+.mdi-ethernet-cable:before {
+ content: "\f2f6";
+}
+
+.mdi-ethernet-cable-off:before {
+ content: "\f2f7";
+}
+
+.mdi-etsy:before {
+ content: "\f2f8";
+}
+
+.mdi-evernote:before {
+ content: "\f2f9";
+}
+
+.mdi-exclamation:before {
+ content: "\f2fa";
+}
+
+.mdi-exit-to-app:before {
+ content: "\f2fb";
+}
+
+.mdi-export:before {
+ content: "\f2fc";
+}
+
+.mdi-eye:before {
+ content: "\f2fd";
+}
+
+.mdi-eye-off:before {
+ content: "\f2fe";
+}
+
+.mdi-eyedropper:before {
+ content: "\f2ff";
+}
+
+.mdi-eyedropper-variant:before {
+ content: "\f300";
+}
+
+.mdi-facebook:before {
+ content: "\f301";
+}
+
+.mdi-facebook-box:before {
+ content: "\f302";
+}
+
+.mdi-facebook-messenger:before {
+ content: "\f303";
+}
+
+.mdi-factory:before {
+ content: "\f304";
+}
+
+.mdi-fan:before {
+ content: "\f305";
+}
+
+.mdi-fast-forward:before {
+ content: "\f306";
+}
+
+.mdi-fax:before {
+ content: "\f307";
+}
+
+.mdi-ferry:before {
+ content: "\f308";
+}
+
+.mdi-file:before {
+ content: "\f309";
+}
+
+.mdi-file-chart:before {
+ content: "\f30a";
+}
+
+.mdi-file-check:before {
+ content: "\f30b";
+}
+
+.mdi-file-cloud:before {
+ content: "\f30c";
+}
+
+.mdi-file-delimited:before {
+ content: "\f30d";
+}
+
+.mdi-file-document:before {
+ content: "\f30e";
+}
+
+.mdi-file-document-box:before {
+ content: "\f30f";
+}
+
+.mdi-file-excel:before {
+ content: "\f310";
+}
+
+.mdi-file-excel-box:before {
+ content: "\f311";
+}
+
+.mdi-file-export:before {
+ content: "\f312";
+}
+
+.mdi-file-find:before {
+ content: "\f313";
+}
+
+.mdi-file-image:before {
+ content: "\f314";
+}
+
+.mdi-file-import:before {
+ content: "\f315";
+}
+
+.mdi-file-lock:before {
+ content: "\f316";
+}
+
+.mdi-file-multiple:before {
+ content: "\f317";
+}
+
+.mdi-file-music:before {
+ content: "\f318";
+}
+
+.mdi-file-outline:before {
+ content: "\f319";
+}
+
+.mdi-file-pdf:before {
+ content: "\f31a";
+}
+
+.mdi-file-pdf-box:before {
+ content: "\f31b";
+}
+
+.mdi-file-powerpoint:before {
+ content: "\f31c";
+}
+
+.mdi-file-powerpoint-box:before {
+ content: "\f31d";
+}
+
+.mdi-file-presentation-box:before {
+ content: "\f31e";
+}
+
+.mdi-file-send:before {
+ content: "\f31f";
+}
+
+.mdi-file-video:before {
+ content: "\f320";
+}
+
+.mdi-file-word:before {
+ content: "\f321";
+}
+
+.mdi-file-word-box:before {
+ content: "\f322";
+}
+
+.mdi-file-xml:before {
+ content: "\f323";
+}
+
+.mdi-film:before {
+ content: "\f324";
+}
+
+.mdi-filmstrip:before {
+ content: "\f325";
+}
+
+.mdi-filmstrip-off:before {
+ content: "\f326";
+}
+
+.mdi-filter:before {
+ content: "\f327";
+}
+
+.mdi-filter-outline:before {
+ content: "\f328";
+}
+
+.mdi-filter-remove:before {
+ content: "\f329";
+}
+
+.mdi-filter-remove-outline:before {
+ content: "\f32a";
+}
+
+.mdi-filter-variant:before {
+ content: "\f32b";
+}
+
+.mdi-fingerprint:before {
+ content: "\f32c";
+}
+
+.mdi-fire:before {
+ content: "\f32d";
+}
+
+.mdi-firefox:before {
+ content: "\f32e";
+}
+
+.mdi-fish:before {
+ content: "\f32f";
+}
+
+.mdi-flag:before {
+ content: "\f330";
+}
+
+.mdi-flag-checkered:before {
+ content: "\f331";
+}
+
+.mdi-flag-outline:before {
+ content: "\f332";
+}
+
+.mdi-flag-outline-variant:before {
+ content: "\f333";
+}
+
+.mdi-flag-triangle:before {
+ content: "\f334";
+}
+
+.mdi-flag-variant:before {
+ content: "\f335";
+}
+
+.mdi-flash:before {
+ content: "\f336";
+}
+
+.mdi-flash-auto:before {
+ content: "\f337";
+}
+
+.mdi-flash-off:before {
+ content: "\f338";
+}
+
+.mdi-flashlight:before {
+ content: "\f339";
+}
+
+.mdi-flashlight-off:before {
+ content: "\f33a";
+}
+
+.mdi-flattr:before {
+ content: "\f33b";
+}
+
+.mdi-flip-to-back:before {
+ content: "\f33c";
+}
+
+.mdi-flip-to-front:before {
+ content: "\f33d";
+}
+
+.mdi-floppy:before {
+ content: "\f33e";
+}
+
+.mdi-flower:before {
+ content: "\f33f";
+}
+
+.mdi-folder:before {
+ content: "\f340";
+}
+
+.mdi-folder-account:before {
+ content: "\f341";
+}
+
+.mdi-folder-download:before {
+ content: "\f342";
+}
+
+.mdi-folder-google-drive:before {
+ content: "\f343";
+}
+
+.mdi-folder-image:before {
+ content: "\f344";
+}
+
+.mdi-folder-lock:before {
+ content: "\f345";
+}
+
+.mdi-folder-lock-open:before {
+ content: "\f346";
+}
+
+.mdi-folder-move:before {
+ content: "\f347";
+}
+
+.mdi-folder-multiple:before {
+ content: "\f348";
+}
+
+.mdi-folder-multiple-image:before {
+ content: "\f349";
+}
+
+.mdi-folder-multiple-outline:before {
+ content: "\f34a";
+}
+
+.mdi-folder-outline:before {
+ content: "\f34b";
+}
+
+.mdi-folder-plus:before {
+ content: "\f34c";
+}
+
+.mdi-folder-remove:before {
+ content: "\f34d";
+}
+
+.mdi-folder-upload:before {
+ content: "\f34e";
+}
+
+.mdi-food:before {
+ content: "\f34f";
+}
+
+.mdi-food-apple:before {
+ content: "\f350";
+}
+
+.mdi-food-variant:before {
+ content: "\f351";
+}
+
+.mdi-football:before {
+ content: "\f352";
+}
+
+.mdi-football-australian:before {
+ content: "\f353";
+}
+
+.mdi-football-helmet:before {
+ content: "\f354";
+}
+
+.mdi-format-align-center:before {
+ content: "\f355";
+}
+
+.mdi-format-align-justify:before {
+ content: "\f356";
+}
+
+.mdi-format-align-left:before {
+ content: "\f357";
+}
+
+.mdi-format-align-right:before {
+ content: "\f358";
+}
+
+.mdi-format-bold:before {
+ content: "\f359";
+}
+
+.mdi-format-clear:before {
+ content: "\f35a";
+}
+
+.mdi-format-color-fill:before {
+ content: "\f35b";
+}
+
+.mdi-format-float-center:before {
+ content: "\f35c";
+}
+
+.mdi-format-float-left:before {
+ content: "\f35d";
+}
+
+.mdi-format-float-none:before {
+ content: "\f35e";
+}
+
+.mdi-format-float-right:before {
+ content: "\f35f";
+}
+
+.mdi-format-header-1:before {
+ content: "\f360";
+}
+
+.mdi-format-header-2:before {
+ content: "\f361";
+}
+
+.mdi-format-header-3:before {
+ content: "\f362";
+}
+
+.mdi-format-header-4:before {
+ content: "\f363";
+}
+
+.mdi-format-header-5:before {
+ content: "\f364";
+}
+
+.mdi-format-header-6:before {
+ content: "\f365";
+}
+
+.mdi-format-header-decrease:before {
+ content: "\f366";
+}
+
+.mdi-format-header-equal:before {
+ content: "\f367";
+}
+
+.mdi-format-header-increase:before {
+ content: "\f368";
+}
+
+.mdi-format-header-pound:before {
+ content: "\f369";
+}
+
+.mdi-format-indent-decrease:before {
+ content: "\f36a";
+}
+
+.mdi-format-indent-increase:before {
+ content: "\f36b";
+}
+
+.mdi-format-italic:before {
+ content: "\f36c";
+}
+
+.mdi-format-line-spacing:before {
+ content: "\f36d";
+}
+
+.mdi-format-list-bulleted:before {
+ content: "\f36e";
+}
+
+.mdi-format-list-bulleted-type:before {
+ content: "\f36f";
+}
+
+.mdi-format-list-numbers:before {
+ content: "\f370";
+}
+
+.mdi-format-paint:before {
+ content: "\f371";
+}
+
+.mdi-format-paragraph:before {
+ content: "\f372";
+}
+
+.mdi-format-quote:before {
+ content: "\f373";
+}
+
+.mdi-format-size:before {
+ content: "\f374";
+}
+
+.mdi-format-strikethrough:before {
+ content: "\f375";
+}
+
+.mdi-format-strikethrough-variant:before {
+ content: "\f376";
+}
+
+.mdi-format-subscript:before {
+ content: "\f377";
+}
+
+.mdi-format-superscript:before {
+ content: "\f378";
+}
+
+.mdi-format-text:before {
+ content: "\f379";
+}
+
+.mdi-format-textdirection-l-to-r:before {
+ content: "\f37a";
+}
+
+.mdi-format-textdirection-r-to-l:before {
+ content: "\f37b";
+}
+
+.mdi-format-underline:before {
+ content: "\f37c";
+}
+
+.mdi-format-wrap-inline:before {
+ content: "\f37d";
+}
+
+.mdi-format-wrap-square:before {
+ content: "\f37e";
+}
+
+.mdi-format-wrap-tight:before {
+ content: "\f37f";
+}
+
+.mdi-format-wrap-top-bottom:before {
+ content: "\f380";
+}
+
+.mdi-forum:before {
+ content: "\f381";
+}
+
+.mdi-forward:before {
+ content: "\f382";
+}
+
+.mdi-foursquare:before {
+ content: "\f383";
+}
+
+.mdi-fridge:before {
+ content: "\f384";
+}
+
+.mdi-fridge-filled:before {
+ content: "\f385";
+}
+
+.mdi-fridge-filled-bottom:before {
+ content: "\f386";
+}
+
+.mdi-fridge-filled-top:before {
+ content: "\f387";
+}
+
+.mdi-fullscreen:before {
+ content: "\f388";
+}
+
+.mdi-fullscreen-exit:before {
+ content: "\f389";
+}
+
+.mdi-function:before {
+ content: "\f38a";
+}
+
+.mdi-gamepad:before {
+ content: "\f38b";
+}
+
+.mdi-gamepad-variant:before {
+ content: "\f38c";
+}
+
+.mdi-gas-station:before {
+ content: "\f38d";
+}
+
+.mdi-gate:before {
+ content: "\f38e";
+}
+
+.mdi-gauge:before {
+ content: "\f38f";
+}
+
+.mdi-gavel:before {
+ content: "\f390";
+}
+
+.mdi-gender-female:before {
+ content: "\f391";
+}
+
+.mdi-gender-male:before {
+ content: "\f392";
+}
+
+.mdi-gender-male-female:before {
+ content: "\f393";
+}
+
+.mdi-gender-transgender:before {
+ content: "\f394";
+}
+
+.mdi-ghost:before {
+ content: "\f395";
+}
+
+.mdi-gift:before {
+ content: "\f396";
+}
+
+.mdi-git:before {
+ content: "\f397";
+}
+
+.mdi-github-box:before {
+ content: "\f398";
+}
+
+.mdi-github-circle:before {
+ content: "\f399";
+}
+
+.mdi-glass-flute:before {
+ content: "\f39a";
+}
+
+.mdi-glass-mug:before {
+ content: "\f39b";
+}
+
+.mdi-glass-stange:before {
+ content: "\f39c";
+}
+
+.mdi-glass-tulip:before {
+ content: "\f39d";
+}
+
+.mdi-glasses:before {
+ content: "\f39e";
+}
+
+.mdi-gmail:before {
+ content: "\f39f";
+}
+
+.mdi-google:before {
+ content: "\f3a0";
+}
+
+.mdi-google-cardboard:before {
+ content: "\f3a1";
+}
+
+.mdi-google-chrome:before {
+ content: "\f3a2";
+}
+
+.mdi-google-circles:before {
+ content: "\f3a3";
+}
+
+.mdi-google-circles-communities:before {
+ content: "\f3a4";
+}
+
+.mdi-google-circles-extended:before {
+ content: "\f3a5";
+}
+
+.mdi-google-circles-group:before {
+ content: "\f3a6";
+}
+
+.mdi-google-controller:before {
+ content: "\f3a7";
+}
+
+.mdi-google-controller-off:before {
+ content: "\f3a8";
+}
+
+.mdi-google-drive:before {
+ content: "\f3a9";
+}
+
+.mdi-google-earth:before {
+ content: "\f3aa";
+}
+
+.mdi-google-glass:before {
+ content: "\f3ab";
+}
+
+.mdi-google-nearby:before {
+ content: "\f3ac";
+}
+
+.mdi-google-pages:before {
+ content: "\f3ad";
+}
+
+.mdi-google-physical-web:before {
+ content: "\f3ae";
+}
+
+.mdi-google-play:before {
+ content: "\f3af";
+}
+
+.mdi-google-plus:before {
+ content: "\f3b0";
+}
+
+.mdi-google-plus-box:before {
+ content: "\f3b1";
+}
+
+.mdi-google-translate:before {
+ content: "\f3b2";
+}
+
+.mdi-google-wallet:before {
+ content: "\f3b3";
+}
+
+.mdi-grid:before {
+ content: "\f3b4";
+}
+
+.mdi-grid-off:before {
+ content: "\f3b5";
+}
+
+.mdi-group:before {
+ content: "\f3b6";
+}
+
+.mdi-guitar:before {
+ content: "\f3b7";
+}
+
+.mdi-guitar-pick:before {
+ content: "\f3b8";
+}
+
+.mdi-guitar-pick-outline:before {
+ content: "\f3b9";
+}
+
+.mdi-hand-pointing-right:before {
+ content: "\f3ba";
+}
+
+.mdi-hanger:before {
+ content: "\f3bb";
+}
+
+.mdi-hangouts:before {
+ content: "\f3bc";
+}
+
+.mdi-harddisk:before {
+ content: "\f3bd";
+}
+
+.mdi-headphones:before {
+ content: "\f3be";
+}
+
+.mdi-headphones-box:before {
+ content: "\f3bf";
+}
+
+.mdi-headphones-settings:before {
+ content: "\f3c0";
+}
+
+.mdi-headset:before {
+ content: "\f3c1";
+}
+
+.mdi-headset-dock:before {
+ content: "\f3c2";
+}
+
+.mdi-headset-off:before {
+ content: "\f3c3";
+}
+
+.mdi-heart:before {
+ content: "\f3c4";
+}
+
+.mdi-heart-box:before {
+ content: "\f3c5";
+}
+
+.mdi-heart-box-outline:before {
+ content: "\f3c6";
+}
+
+.mdi-heart-broken:before {
+ content: "\f3c7";
+}
+
+.mdi-heart-outline:before {
+ content: "\f3c8";
+}
+
+.mdi-help:before {
+ content: "\f3c9";
+}
+
+.mdi-help-circle:before {
+ content: "\f3ca";
+}
+
+.mdi-hexagon:before {
+ content: "\f3cb";
+}
+
+.mdi-hexagon-outline:before {
+ content: "\f3cc";
+}
+
+.mdi-history:before {
+ content: "\f3cd";
+}
+
+.mdi-hololens:before {
+ content: "\f3ce";
+}
+
+.mdi-home:before {
+ content: "\f3cf";
+}
+
+.mdi-home-modern:before {
+ content: "\f3d0";
+}
+
+.mdi-home-variant:before {
+ content: "\f3d1";
+}
+
+.mdi-hops:before {
+ content: "\f3d2";
+}
+
+.mdi-hospital:before {
+ content: "\f3d3";
+}
+
+.mdi-hospital-building:before {
+ content: "\f3d4";
+}
+
+.mdi-hospital-marker:before {
+ content: "\f3d5";
+}
+
+.mdi-hotel:before {
+ content: "\f3d6";
+}
+
+.mdi-houzz:before {
+ content: "\f3d7";
+}
+
+.mdi-houzz-box:before {
+ content: "\f3d8";
+}
+
+.mdi-human:before {
+ content: "\f3d9";
+}
+
+.mdi-human-child:before {
+ content: "\f3da";
+}
+
+.mdi-human-male-female:before {
+ content: "\f3db";
+}
+
+.mdi-image:before {
+ content: "\f3dc";
+}
+
+.mdi-image-album:before {
+ content: "\f3dd";
+}
+
+.mdi-image-area:before {
+ content: "\f3de";
+}
+
+.mdi-image-area-close:before {
+ content: "\f3df";
+}
+
+.mdi-image-broken:before {
+ content: "\f3e0";
+}
+
+.mdi-image-broken-variant:before {
+ content: "\f3e1";
+}
+
+.mdi-image-filter:before {
+ content: "\f3e2";
+}
+
+.mdi-image-filter-black-white:before {
+ content: "\f3e3";
+}
+
+.mdi-image-filter-center-focus:before {
+ content: "\f3e4";
+}
+
+.mdi-image-filter-center-focus-weak:before {
+ content: "\f3e5";
+}
+
+.mdi-image-filter-drama:before {
+ content: "\f3e6";
+}
+
+.mdi-image-filter-frames:before {
+ content: "\f3e7";
+}
+
+.mdi-image-filter-hdr:before {
+ content: "\f3e8";
+}
+
+.mdi-image-filter-none:before {
+ content: "\f3e9";
+}
+
+.mdi-image-filter-tilt-shift:before {
+ content: "\f3ea";
+}
+
+.mdi-image-filter-vintage:before {
+ content: "\f3eb";
+}
+
+.mdi-image-multiple:before {
+ content: "\f3ec";
+}
+
+.mdi-import:before {
+ content: "\f3ed";
+}
+
+.mdi-inbox:before {
+ content: "\f3ee";
+}
+
+.mdi-information:before {
+ content: "\f3ef";
+}
+
+.mdi-information-outline:before {
+ content: "\f3f0";
+}
+
+.mdi-instagram:before {
+ content: "\f3f1";
+}
+
+.mdi-instapaper:before {
+ content: "\f3f2";
+}
+
+.mdi-internet-explorer:before {
+ content: "\f3f3";
+}
+
+.mdi-invert-colors:before {
+ content: "\f3f4";
+}
+
+.mdi-jeepney:before {
+ content: "\f3f5";
+}
+
+.mdi-jira:before {
+ content: "\f3f6";
+}
+
+.mdi-jsfiddle:before {
+ content: "\f3f7";
+}
+
+.mdi-keg:before {
+ content: "\f3f8";
+}
+
+.mdi-key:before {
+ content: "\f3f9";
+}
+
+.mdi-key-change:before {
+ content: "\f3fa";
+}
+
+.mdi-key-minus:before {
+ content: "\f3fb";
+}
+
+.mdi-key-plus:before {
+ content: "\f3fc";
+}
+
+.mdi-key-remove:before {
+ content: "\f3fd";
+}
+
+.mdi-key-variant:before {
+ content: "\f3fe";
+}
+
+.mdi-keyboard:before {
+ content: "\f3ff";
+}
+
+.mdi-keyboard-backspace:before {
+ content: "\f400";
+}
+
+.mdi-keyboard-caps:before {
+ content: "\f401";
+}
+
+.mdi-keyboard-close:before {
+ content: "\f402";
+}
+
+.mdi-keyboard-off:before {
+ content: "\f403";
+}
+
+.mdi-keyboard-return:before {
+ content: "\f404";
+}
+
+.mdi-keyboard-tab:before {
+ content: "\f405";
+}
+
+.mdi-keyboard-variant:before {
+ content: "\f406";
+}
+
+.mdi-label:before {
+ content: "\f407";
+}
+
+.mdi-label-outline:before {
+ content: "\f408";
+}
+
+.mdi-lan:before {
+ content: "\f409";
+}
+
+.mdi-lan-connect:before {
+ content: "\f40a";
+}
+
+.mdi-lan-disconnect:before {
+ content: "\f40b";
+}
+
+.mdi-lan-pending:before {
+ content: "\f40c";
+}
+
+.mdi-language-csharp:before {
+ content: "\f40d";
+}
+
+.mdi-language-css3:before {
+ content: "\f40e";
+}
+
+.mdi-language-html5:before {
+ content: "\f40f";
+}
+
+.mdi-language-javascript:before {
+ content: "\f410";
+}
+
+.mdi-language-php:before {
+ content: "\f411";
+}
+
+.mdi-language-python:before {
+ content: "\f412";
+}
+
+.mdi-language-python-text:before {
+ content: "\f413";
+}
+
+.mdi-laptop:before {
+ content: "\f414";
+}
+
+.mdi-laptop-chromebook:before {
+ content: "\f415";
+}
+
+.mdi-laptop-mac:before {
+ content: "\f416";
+}
+
+.mdi-laptop-windows:before {
+ content: "\f417";
+}
+
+.mdi-lastfm:before {
+ content: "\f418";
+}
+
+.mdi-launch:before {
+ content: "\f419";
+}
+
+.mdi-layers:before {
+ content: "\f41a";
+}
+
+.mdi-layers-off:before {
+ content: "\f41b";
+}
+
+.mdi-leaf:before {
+ content: "\f41c";
+}
+
+.mdi-led-off:before {
+ content: "\f41d";
+}
+
+.mdi-led-on:before {
+ content: "\f41e";
+}
+
+.mdi-led-outline:before {
+ content: "\f41f";
+}
+
+.mdi-led-variant-off:before {
+ content: "\f420";
+}
+
+.mdi-led-variant-on:before {
+ content: "\f421";
+}
+
+.mdi-led-variant-outline:before {
+ content: "\f422";
+}
+
+.mdi-library:before {
+ content: "\f423";
+}
+
+.mdi-library-books:before {
+ content: "\f424";
+}
+
+.mdi-library-music:before {
+ content: "\f425";
+}
+
+.mdi-library-plus:before {
+ content: "\f426";
+}
+
+.mdi-lightbulb:before {
+ content: "\f427";
+}
+
+.mdi-lightbulb-outline:before {
+ content: "\f428";
+}
+
+.mdi-link:before {
+ content: "\f429";
+}
+
+.mdi-link-off:before {
+ content: "\f42a";
+}
+
+.mdi-link-variant:before {
+ content: "\f42b";
+}
+
+.mdi-link-variant-off:before {
+ content: "\f42c";
+}
+
+.mdi-linkedin:before {
+ content: "\f42d";
+}
+
+.mdi-linkedin-box:before {
+ content: "\f42e";
+}
+
+.mdi-linux:before {
+ content: "\f42f";
+}
+
+.mdi-lock:before {
+ content: "\f430";
+}
+
+.mdi-lock-open:before {
+ content: "\f431";
+}
+
+.mdi-lock-open-outline:before {
+ content: "\f432";
+}
+
+.mdi-lock-outline:before {
+ content: "\f433";
+}
+
+.mdi-login:before {
+ content: "\f434";
+}
+
+.mdi-logout:before {
+ content: "\f435";
+}
+
+.mdi-looks:before {
+ content: "\f436";
+}
+
+.mdi-loupe:before {
+ content: "\f437";
+}
+
+.mdi-lumx:before {
+ content: "\f438";
+}
+
+.mdi-magnet:before {
+ content: "\f439";
+}
+
+.mdi-magnet-on:before {
+ content: "\f43a";
+}
+
+.mdi-magnify:before {
+ content: "\f43b";
+}
+
+.mdi-magnify-minus:before {
+ content: "\f43c";
+}
+
+.mdi-magnify-plus:before {
+ content: "\f43d";
+}
+
+.mdi-mail-ru:before {
+ content: "\f43e";
+}
+
+.mdi-map:before {
+ content: "\f43f";
+}
+
+.mdi-map-marker:before {
+ content: "\f440";
+}
+
+.mdi-map-marker-circle:before {
+ content: "\f441";
+}
+
+.mdi-map-marker-multiple:before {
+ content: "\f442";
+}
+
+.mdi-map-marker-off:before {
+ content: "\f443";
+}
+
+.mdi-map-marker-radius:before {
+ content: "\f444";
+}
+
+.mdi-margin:before {
+ content: "\f445";
+}
+
+.mdi-markdown:before {
+ content: "\f446";
+}
+
+.mdi-marker-check:before {
+ content: "\f447";
+}
+
+.mdi-martini:before {
+ content: "\f448";
+}
+
+.mdi-material-ui:before {
+ content: "\f449";
+}
+
+.mdi-math-compass:before {
+ content: "\f44a";
+}
+
+.mdi-maxcdn:before {
+ content: "\f44b";
+}
+
+.mdi-medium:before {
+ content: "\f44c";
+}
+
+.mdi-memory:before {
+ content: "\f44d";
+}
+
+.mdi-menu:before {
+ content: "\f44e";
+}
+
+.mdi-menu-down:before {
+ content: "\f44f";
+}
+
+.mdi-menu-left:before {
+ content: "\f450";
+}
+
+.mdi-menu-right:before {
+ content: "\f451";
+}
+
+.mdi-menu-up:before {
+ content: "\f452";
+}
+
+.mdi-message:before {
+ content: "\f453";
+}
+
+.mdi-message-alert:before {
+ content: "\f454";
+}
+
+.mdi-message-draw:before {
+ content: "\f455";
+}
+
+.mdi-message-image:before {
+ content: "\f456";
+}
+
+.mdi-message-outline:before {
+ content: "\f457";
+}
+
+.mdi-message-processing:before {
+ content: "\f458";
+}
+
+.mdi-message-reply:before {
+ content: "\f459";
+}
+
+.mdi-message-reply-text:before {
+ content: "\f45a";
+}
+
+.mdi-message-text:before {
+ content: "\f45b";
+}
+
+.mdi-message-text-outline:before {
+ content: "\f45c";
+}
+
+.mdi-message-video:before {
+ content: "\f45d";
+}
+
+.mdi-microphone:before {
+ content: "\f45e";
+}
+
+.mdi-microphone-off:before {
+ content: "\f45f";
+}
+
+.mdi-microphone-outline:before {
+ content: "\f460";
+}
+
+.mdi-microphone-settings:before {
+ content: "\f461";
+}
+
+.mdi-microphone-variant:before {
+ content: "\f462";
+}
+
+.mdi-microphone-variant-off:before {
+ content: "\f463";
+}
+
+.mdi-microsoft:before {
+ content: "\f464";
+}
+
+.mdi-minus:before {
+ content: "\f465";
+}
+
+.mdi-minus-box:before {
+ content: "\f466";
+}
+
+.mdi-minus-circle:before {
+ content: "\f467";
+}
+
+.mdi-minus-circle-outline:before {
+ content: "\f468";
+}
+
+.mdi-minus-network:before {
+ content: "\f469";
+}
+
+.mdi-monitor:before {
+ content: "\f46a";
+}
+
+.mdi-monitor-multiple:before {
+ content: "\f46b";
+}
+
+.mdi-more:before {
+ content: "\f46c";
+}
+
+.mdi-motorbike:before {
+ content: "\f46d";
+}
+
+.mdi-mouse:before {
+ content: "\f46e";
+}
+
+.mdi-mouse-off:before {
+ content: "\f46f";
+}
+
+.mdi-mouse-variant:before {
+ content: "\f470";
+}
+
+.mdi-mouse-variant-off:before {
+ content: "\f471";
+}
+
+.mdi-movie:before {
+ content: "\f472";
+}
+
+.mdi-multiplication:before {
+ content: "\f473";
+}
+
+.mdi-multiplication-box:before {
+ content: "\f474";
+}
+
+.mdi-music-box:before {
+ content: "\f475";
+}
+
+.mdi-music-box-outline:before {
+ content: "\f476";
+}
+
+.mdi-music-circle:before {
+ content: "\f477";
+}
+
+.mdi-music-note:before {
+ content: "\f478";
+}
+
+.mdi-music-note-eighth:before {
+ content: "\f479";
+}
+
+.mdi-music-note-half:before {
+ content: "\f47a";
+}
+
+.mdi-music-note-off:before {
+ content: "\f47b";
+}
+
+.mdi-music-note-quarter:before {
+ content: "\f47c";
+}
+
+.mdi-music-note-sixteenth:before {
+ content: "\f47d";
+}
+
+.mdi-music-note-whole:before {
+ content: "\f47e";
+}
+
+.mdi-nature:before {
+ content: "\f47f";
+}
+
+.mdi-nature-people:before {
+ content: "\f480";
+}
+
+.mdi-navigation:before {
+ content: "\f481";
+}
+
+.mdi-needle:before {
+ content: "\f482";
+}
+
+.mdi-nest-protect:before {
+ content: "\f483";
+}
+
+.mdi-nest-thermostat:before {
+ content: "\f484";
+}
+
+.mdi-newspaper:before {
+ content: "\f485";
+}
+
+.mdi-nfc:before {
+ content: "\f486";
+}
+
+.mdi-nfc-tap:before {
+ content: "\f487";
+}
+
+.mdi-nfc-variant:before {
+ content: "\f488";
+}
+
+.mdi-nodejs:before {
+ content: "\f489";
+}
+
+.mdi-note:before {
+ content: "\f48a";
+}
+
+.mdi-note-outline:before {
+ content: "\f48b";
+}
+
+.mdi-note-plus:before {
+ content: "\f48c";
+}
+
+.mdi-note-plus-outline:before {
+ content: "\f48d";
+}
+
+.mdi-note-text:before {
+ content: "\f48e";
+}
+
+.mdi-notification-clear-all:before {
+ content: "\f48f";
+}
+
+.mdi-numeric:before {
+ content: "\f490";
+}
+
+.mdi-numeric-0-box:before {
+ content: "\f491";
+}
+
+.mdi-numeric-0-box-multiple-outline:before {
+ content: "\f492";
+}
+
+.mdi-numeric-0-box-outline:before {
+ content: "\f493";
+}
+
+.mdi-numeric-1-box:before {
+ content: "\f494";
+}
+
+.mdi-numeric-1-box-multiple-outline:before {
+ content: "\f495";
+}
+
+.mdi-numeric-1-box-outline:before {
+ content: "\f496";
+}
+
+.mdi-numeric-2-box:before {
+ content: "\f497";
+}
+
+.mdi-numeric-2-box-multiple-outline:before {
+ content: "\f498";
+}
+
+.mdi-numeric-2-box-outline:before {
+ content: "\f499";
+}
+
+.mdi-numeric-3-box:before {
+ content: "\f49a";
+}
+
+.mdi-numeric-3-box-multiple-outline:before {
+ content: "\f49b";
+}
+
+.mdi-numeric-3-box-outline:before {
+ content: "\f49c";
+}
+
+.mdi-numeric-4-box:before {
+ content: "\f49d";
+}
+
+.mdi-numeric-4-box-multiple-outline:before {
+ content: "\f49e";
+}
+
+.mdi-numeric-4-box-outline:before {
+ content: "\f49f";
+}
+
+.mdi-numeric-5-box:before {
+ content: "\f4a0";
+}
+
+.mdi-numeric-5-box-multiple-outline:before {
+ content: "\f4a1";
+}
+
+.mdi-numeric-5-box-outline:before {
+ content: "\f4a2";
+}
+
+.mdi-numeric-6-box:before {
+ content: "\f4a3";
+}
+
+.mdi-numeric-6-box-multiple-outline:before {
+ content: "\f4a4";
+}
+
+.mdi-numeric-6-box-outline:before {
+ content: "\f4a5";
+}
+
+.mdi-numeric-7-box:before {
+ content: "\f4a6";
+}
+
+.mdi-numeric-7-box-multiple-outline:before {
+ content: "\f4a7";
+}
+
+.mdi-numeric-7-box-outline:before {
+ content: "\f4a8";
+}
+
+.mdi-numeric-8-box:before {
+ content: "\f4a9";
+}
+
+.mdi-numeric-8-box-multiple-outline:before {
+ content: "\f4aa";
+}
+
+.mdi-numeric-8-box-outline:before {
+ content: "\f4ab";
+}
+
+.mdi-numeric-9-box:before {
+ content: "\f4ac";
+}
+
+.mdi-numeric-9-box-multiple-outline:before {
+ content: "\f4ad";
+}
+
+.mdi-numeric-9-box-outline:before {
+ content: "\f4ae";
+}
+
+.mdi-numeric-9-plus-box:before {
+ content: "\f4af";
+}
+
+.mdi-numeric-9-plus-box-multiple-outline:before {
+ content: "\f4b0";
+}
+
+.mdi-numeric-9-plus-box-outline:before {
+ content: "\f4b1";
+}
+
+.mdi-nutrition:before {
+ content: "\f4b2";
+}
+
+.mdi-octagon:before {
+ content: "\f4b3";
+}
+
+.mdi-octagon-outline:before {
+ content: "\f4b4";
+}
+
+.mdi-odnoklassniki:before {
+ content: "\f4b5";
+}
+
+.mdi-office:before {
+ content: "\f4b6";
+}
+
+.mdi-oil:before {
+ content: "\f4b7";
+}
+
+.mdi-oil-temperature:before {
+ content: "\f4b8";
+}
+
+.mdi-omega:before {
+ content: "\f4b9";
+}
+
+.mdi-onedrive:before {
+ content: "\f4ba";
+}
+
+.mdi-open-in-app:before {
+ content: "\f4bb";
+}
+
+.mdi-open-in-new:before {
+ content: "\f4bc";
+}
+
+.mdi-opera:before {
+ content: "\f4bd";
+}
+
+.mdi-ornament:before {
+ content: "\f4be";
+}
+
+.mdi-ornament-variant:before {
+ content: "\f4bf";
+}
+
+.mdi-outbox:before {
+ content: "\f4c0";
+}
+
+.mdi-owl:before {
+ content: "\f4c1";
+}
+
+.mdi-package:before {
+ content: "\f4c2";
+}
+
+.mdi-package-down:before {
+ content: "\f4c3";
+}
+
+.mdi-package-up:before {
+ content: "\f4c4";
+}
+
+.mdi-package-variant:before {
+ content: "\f4c5";
+}
+
+.mdi-package-variant-closed:before {
+ content: "\f4c6";
+}
+
+.mdi-palette:before {
+ content: "\f4c7";
+}
+
+.mdi-palette-advanced:before {
+ content: "\f4c8";
+}
+
+.mdi-panda:before {
+ content: "\f4c9";
+}
+
+.mdi-pandora:before {
+ content: "\f4ca";
+}
+
+.mdi-panorama:before {
+ content: "\f4cb";
+}
+
+.mdi-panorama-fisheye:before {
+ content: "\f4cc";
+}
+
+.mdi-panorama-horizontal:before {
+ content: "\f4cd";
+}
+
+.mdi-panorama-vertical:before {
+ content: "\f4ce";
+}
+
+.mdi-panorama-wide-angle:before {
+ content: "\f4cf";
+}
+
+.mdi-paper-cut-vertical:before {
+ content: "\f4d0";
+}
+
+.mdi-paperclip:before {
+ content: "\f4d1";
+}
+
+.mdi-parking:before {
+ content: "\f4d2";
+}
+
+.mdi-pause:before {
+ content: "\f4d3";
+}
+
+.mdi-pause-circle:before {
+ content: "\f4d4";
+}
+
+.mdi-pause-circle-outline:before {
+ content: "\f4d5";
+}
+
+.mdi-pause-octagon:before {
+ content: "\f4d6";
+}
+
+.mdi-pause-octagon-outline:before {
+ content: "\f4d7";
+}
+
+.mdi-paw:before {
+ content: "\f4d8";
+}
+
+.mdi-pen:before {
+ content: "\f4d9";
+}
+
+.mdi-pencil:before {
+ content: "\f4da";
+}
+
+.mdi-pencil-box:before {
+ content: "\f4db";
+}
+
+.mdi-pencil-box-outline:before {
+ content: "\f4dc";
+}
+
+.mdi-pencil-lock:before {
+ content: "\f4dd";
+}
+
+.mdi-pencil-off:before {
+ content: "\f4de";
+}
+
+.mdi-percent:before {
+ content: "\f4df";
+}
+
+.mdi-pharmacy:before {
+ content: "\f4e0";
+}
+
+.mdi-phone:before {
+ content: "\f4e1";
+}
+
+.mdi-phone-bluetooth:before {
+ content: "\f4e2";
+}
+
+.mdi-phone-forward:before {
+ content: "\f4e3";
+}
+
+.mdi-phone-hangup:before {
+ content: "\f4e4";
+}
+
+.mdi-phone-in-talk:before {
+ content: "\f4e5";
+}
+
+.mdi-phone-incoming:before {
+ content: "\f4e6";
+}
+
+.mdi-phone-locked:before {
+ content: "\f4e7";
+}
+
+.mdi-phone-log:before {
+ content: "\f4e8";
+}
+
+.mdi-phone-missed:before {
+ content: "\f4e9";
+}
+
+.mdi-phone-outgoing:before {
+ content: "\f4ea";
+}
+
+.mdi-phone-paused:before {
+ content: "\f4eb";
+}
+
+.mdi-phone-settings:before {
+ content: "\f4ec";
+}
+
+.mdi-phone-voip:before {
+ content: "\f4ed";
+}
+
+.mdi-pi:before {
+ content: "\f4ee";
+}
+
+.mdi-pi-box:before {
+ content: "\f4ef";
+}
+
+.mdi-pig:before {
+ content: "\f4f0";
+}
+
+.mdi-pill:before {
+ content: "\f4f1";
+}
+
+.mdi-pin:before {
+ content: "\f4f2";
+}
+
+.mdi-pin-off:before {
+ content: "\f4f3";
+}
+
+.mdi-pine-tree:before {
+ content: "\f4f4";
+}
+
+.mdi-pine-tree-box:before {
+ content: "\f4f5";
+}
+
+.mdi-pinterest:before {
+ content: "\f4f6";
+}
+
+.mdi-pinterest-box:before {
+ content: "\f4f7";
+}
+
+.mdi-pizza:before {
+ content: "\f4f8";
+}
+
+.mdi-play:before {
+ content: "\f4f9";
+}
+
+.mdi-play-box-outline:before {
+ content: "\f4fa";
+}
+
+.mdi-play-circle:before {
+ content: "\f4fb";
+}
+
+.mdi-play-circle-outline:before {
+ content: "\f4fc";
+}
+
+.mdi-play-pause:before {
+ content: "\f4fd";
+}
+
+.mdi-play-protected-content:before {
+ content: "\f4fe";
+}
+
+.mdi-playlist-minus:before {
+ content: "\f4ff";
+}
+
+.mdi-playlist-play:before {
+ content: "\f500";
+}
+
+.mdi-playlist-plus:before {
+ content: "\f501";
+}
+
+.mdi-playlist-remove:before {
+ content: "\f502";
+}
+
+.mdi-playstation:before {
+ content: "\f503";
+}
+
+.mdi-plus:before {
+ content: "\f504";
+}
+
+.mdi-plus-box:before {
+ content: "\f505";
+}
+
+.mdi-plus-circle:before {
+ content: "\f506";
+}
+
+.mdi-plus-circle-multiple-outline:before {
+ content: "\f507";
+}
+
+.mdi-plus-circle-outline:before {
+ content: "\f508";
+}
+
+.mdi-plus-network:before {
+ content: "\f509";
+}
+
+.mdi-plus-one:before {
+ content: "\f50a";
+}
+
+.mdi-pocket:before {
+ content: "\f50b";
+}
+
+.mdi-pokeball:before {
+ content: "\f50c";
+}
+
+.mdi-polaroid:before {
+ content: "\f50d";
+}
+
+.mdi-poll:before {
+ content: "\f50e";
+}
+
+.mdi-poll-box:before {
+ content: "\f50f";
+}
+
+.mdi-polymer:before {
+ content: "\f510";
+}
+
+.mdi-popcorn:before {
+ content: "\f511";
+}
+
+.mdi-pound:before {
+ content: "\f512";
+}
+
+.mdi-pound-box:before {
+ content: "\f513";
+}
+
+.mdi-power:before {
+ content: "\f514";
+}
+
+.mdi-power-settings:before {
+ content: "\f515";
+}
+
+.mdi-power-socket:before {
+ content: "\f516";
+}
+
+.mdi-presentation:before {
+ content: "\f517";
+}
+
+.mdi-presentation-play:before {
+ content: "\f518";
+}
+
+.mdi-printer:before {
+ content: "\f519";
+}
+
+.mdi-printer-3d:before {
+ content: "\f51a";
+}
+
+.mdi-printer-alert:before {
+ content: "\f51b";
+}
+
+.mdi-professional-hexagon:before {
+ content: "\f51c";
+}
+
+.mdi-projector:before {
+ content: "\f51d";
+}
+
+.mdi-projector-screen:before {
+ content: "\f51e";
+}
+
+.mdi-pulse:before {
+ content: "\f51f";
+}
+
+.mdi-puzzle:before {
+ content: "\f520";
+}
+
+.mdi-qrcode:before {
+ content: "\f521";
+}
+
+.mdi-qrcode-scan:before {
+ content: "\f522";
+}
+
+.mdi-quadcopter:before {
+ content: "\f523";
+}
+
+.mdi-quality-high:before {
+ content: "\f524";
+}
+
+.mdi-quicktime:before {
+ content: "\f525";
+}
+
+.mdi-radar:before {
+ content: "\f526";
+}
+
+.mdi-radiator:before {
+ content: "\f527";
+}
+
+.mdi-radio:before {
+ content: "\f528";
+}
+
+.mdi-radio-handheld:before {
+ content: "\f529";
+}
+
+.mdi-radio-tower:before {
+ content: "\f52a";
+}
+
+.mdi-radioactive:before {
+ content: "\f52b";
+}
+
+.mdi-radiobox-blank:before {
+ content: "\f52c";
+}
+
+.mdi-radiobox-marked:before {
+ content: "\f52d";
+}
+
+.mdi-raspberrypi:before {
+ content: "\f52e";
+}
+
+.mdi-ray-end:before {
+ content: "\f52f";
+}
+
+.mdi-ray-end-arrow:before {
+ content: "\f530";
+}
+
+.mdi-ray-start:before {
+ content: "\f531";
+}
+
+.mdi-ray-start-arrow:before {
+ content: "\f532";
+}
+
+.mdi-ray-start-end:before {
+ content: "\f533";
+}
+
+.mdi-ray-vertex:before {
+ content: "\f534";
+}
+
+.mdi-rdio:before {
+ content: "\f535";
+}
+
+.mdi-read:before {
+ content: "\f536";
+}
+
+.mdi-readability:before {
+ content: "\f537";
+}
+
+.mdi-receipt:before {
+ content: "\f538";
+}
+
+.mdi-record:before {
+ content: "\f539";
+}
+
+.mdi-record-rec:before {
+ content: "\f53a";
+}
+
+.mdi-recycle:before {
+ content: "\f53b";
+}
+
+.mdi-reddit:before {
+ content: "\f53c";
+}
+
+.mdi-redo:before {
+ content: "\f53d";
+}
+
+.mdi-redo-variant:before {
+ content: "\f53e";
+}
+
+.mdi-refresh:before {
+ content: "\f53f";
+}
+
+.mdi-regex:before {
+ content: "\f540";
+}
+
+.mdi-relative-scale:before {
+ content: "\f541";
+}
+
+.mdi-reload:before {
+ content: "\f542";
+}
+
+.mdi-remote:before {
+ content: "\f543";
+}
+
+.mdi-rename-box:before {
+ content: "\f544";
+}
+
+.mdi-repeat:before {
+ content: "\f545";
+}
+
+.mdi-repeat-off:before {
+ content: "\f546";
+}
+
+.mdi-repeat-once:before {
+ content: "\f547";
+}
+
+.mdi-replay:before {
+ content: "\f548";
+}
+
+.mdi-reply:before {
+ content: "\f549";
+}
+
+.mdi-reply-all:before {
+ content: "\f54a";
+}
+
+.mdi-reproduction:before {
+ content: "\f54b";
+}
+
+.mdi-resize-bottom-right:before {
+ content: "\f54c";
+}
+
+.mdi-responsive:before {
+ content: "\f54d";
+}
+
+.mdi-rewind:before {
+ content: "\f54e";
+}
+
+.mdi-ribbon:before {
+ content: "\f54f";
+}
+
+.mdi-road:before {
+ content: "\f550";
+}
+
+.mdi-road-variant:before {
+ content: "\f551";
+}
+
+.mdi-rocket:before {
+ content: "\f552";
+}
+
+.mdi-rotate-3d:before {
+ content: "\f553";
+}
+
+.mdi-rotate-left:before {
+ content: "\f554";
+}
+
+.mdi-rotate-left-variant:before {
+ content: "\f555";
+}
+
+.mdi-rotate-right:before {
+ content: "\f556";
+}
+
+.mdi-rotate-right-variant:before {
+ content: "\f557";
+}
+
+.mdi-router-wireless:before {
+ content: "\f558";
+}
+
+.mdi-routes:before {
+ content: "\f559";
+}
+
+.mdi-rss:before {
+ content: "\f55a";
+}
+
+.mdi-rss-box:before {
+ content: "\f55b";
+}
+
+.mdi-ruler:before {
+ content: "\f55c";
+}
+
+.mdi-run:before {
+ content: "\f55d";
+}
+
+.mdi-sale:before {
+ content: "\f55e";
+}
+
+.mdi-satellite:before {
+ content: "\f55f";
+}
+
+.mdi-satellite-variant:before {
+ content: "\f560";
+}
+
+.mdi-scale:before {
+ content: "\f561";
+}
+
+.mdi-scale-bathroom:before {
+ content: "\f562";
+}
+
+.mdi-school:before {
+ content: "\f563";
+}
+
+.mdi-screen-rotation:before {
+ content: "\f564";
+}
+
+.mdi-screen-rotation-lock:before {
+ content: "\f565";
+}
+
+.mdi-screwdriver:before {
+ content: "\f566";
+}
+
+.mdi-script:before {
+ content: "\f567";
+}
+
+.mdi-sd:before {
+ content: "\f568";
+}
+
+.mdi-seal:before {
+ content: "\f569";
+}
+
+.mdi-seat-flat:before {
+ content: "\f56a";
+}
+
+.mdi-seat-flat-angled:before {
+ content: "\f56b";
+}
+
+.mdi-seat-individual-suite:before {
+ content: "\f56c";
+}
+
+.mdi-seat-legroom-extra:before {
+ content: "\f56d";
+}
+
+.mdi-seat-legroom-normal:before {
+ content: "\f56e";
+}
+
+.mdi-seat-legroom-reduced:before {
+ content: "\f56f";
+}
+
+.mdi-seat-recline-extra:before {
+ content: "\f570";
+}
+
+.mdi-seat-recline-normal:before {
+ content: "\f571";
+}
+
+.mdi-security:before {
+ content: "\f572";
+}
+
+.mdi-security-network:before {
+ content: "\f573";
+}
+
+.mdi-select:before {
+ content: "\f574";
+}
+
+.mdi-select-all:before {
+ content: "\f575";
+}
+
+.mdi-select-inverse:before {
+ content: "\f576";
+}
+
+.mdi-select-off:before {
+ content: "\f577";
+}
+
+.mdi-selection:before {
+ content: "\f578";
+}
+
+.mdi-send:before {
+ content: "\f579";
+}
+
+.mdi-server:before {
+ content: "\f57a";
+}
+
+.mdi-server-minus:before {
+ content: "\f57b";
+}
+
+.mdi-server-network:before {
+ content: "\f57c";
+}
+
+.mdi-server-network-off:before {
+ content: "\f57d";
+}
+
+.mdi-server-off:before {
+ content: "\f57e";
+}
+
+.mdi-server-plus:before {
+ content: "\f57f";
+}
+
+.mdi-server-remove:before {
+ content: "\f580";
+}
+
+.mdi-server-security:before {
+ content: "\f581";
+}
+
+.mdi-settings:before {
+ content: "\f582";
+}
+
+.mdi-settings-box:before {
+ content: "\f583";
+}
+
+.mdi-shape-plus:before {
+ content: "\f584";
+}
+
+.mdi-share:before {
+ content: "\f585";
+}
+
+.mdi-share-variant:before {
+ content: "\f586";
+}
+
+.mdi-shield:before {
+ content: "\f587";
+}
+
+.mdi-shield-outline:before {
+ content: "\f588";
+}
+
+.mdi-shopping:before {
+ content: "\f589";
+}
+
+.mdi-shopping-music:before {
+ content: "\f58a";
+}
+
+.mdi-shredder:before {
+ content: "\f58b";
+}
+
+.mdi-shuffle:before {
+ content: "\f58c";
+}
+
+.mdi-shuffle-disabled:before {
+ content: "\f58d";
+}
+
+.mdi-shuffle-variant:before {
+ content: "\f58e";
+}
+
+.mdi-sigma:before {
+ content: "\f58f";
+}
+
+.mdi-sign-caution:before {
+ content: "\f590";
+}
+
+.mdi-signal:before {
+ content: "\f591";
+}
+
+.mdi-silverware:before {
+ content: "\f592";
+}
+
+.mdi-silverware-fork:before {
+ content: "\f593";
+}
+
+.mdi-silverware-spoon:before {
+ content: "\f594";
+}
+
+.mdi-silverware-variant:before {
+ content: "\f595";
+}
+
+.mdi-sim:before {
+ content: "\f596";
+}
+
+.mdi-sim-alert:before {
+ content: "\f597";
+}
+
+.mdi-sim-off:before {
+ content: "\f598";
+}
+
+.mdi-sitemap:before {
+ content: "\f599";
+}
+
+.mdi-skip-backward:before {
+ content: "\f59a";
+}
+
+.mdi-skip-forward:before {
+ content: "\f59b";
+}
+
+.mdi-skip-next:before {
+ content: "\f59c";
+}
+
+.mdi-skip-previous:before {
+ content: "\f59d";
+}
+
+.mdi-skype:before {
+ content: "\f59e";
+}
+
+.mdi-skype-business:before {
+ content: "\f59f";
+}
+
+.mdi-slack:before {
+ content: "\f5a0";
+}
+
+.mdi-sleep:before {
+ content: "\f5a1";
+}
+
+.mdi-sleep-off:before {
+ content: "\f5a2";
+}
+
+.mdi-smoking:before {
+ content: "\f5a3";
+}
+
+.mdi-smoking-off:before {
+ content: "\f5a4";
+}
+
+.mdi-snapchat:before {
+ content: "\f5a5";
+}
+
+.mdi-snowman:before {
+ content: "\f5a6";
+}
+
+.mdi-sofa:before {
+ content: "\f5a7";
+}
+
+.mdi-sort:before {
+ content: "\f5a8";
+}
+
+.mdi-sort-alphabetical:before {
+ content: "\f5a9";
+}
+
+.mdi-sort-ascending:before {
+ content: "\f5aa";
+}
+
+.mdi-sort-descending:before {
+ content: "\f5ab";
+}
+
+.mdi-sort-numeric:before {
+ content: "\f5ac";
+}
+
+.mdi-sort-variant:before {
+ content: "\f5ad";
+}
+
+.mdi-soundcloud:before {
+ content: "\f5ae";
+}
+
+.mdi-source-fork:before {
+ content: "\f5af";
+}
+
+.mdi-source-pull:before {
+ content: "\f5b0";
+}
+
+.mdi-speaker:before {
+ content: "\f5b1";
+}
+
+.mdi-speaker-off:before {
+ content: "\f5b2";
+}
+
+.mdi-speedometer:before {
+ content: "\f5b3";
+}
+
+.mdi-spellcheck:before {
+ content: "\f5b4";
+}
+
+.mdi-spotify:before {
+ content: "\f5b5";
+}
+
+.mdi-spotlight:before {
+ content: "\f5b6";
+}
+
+.mdi-spotlight-beam:before {
+ content: "\f5b7";
+}
+
+.mdi-square-inc:before {
+ content: "\f5b8";
+}
+
+.mdi-square-inc-cash:before {
+ content: "\f5b9";
+}
+
+.mdi-stackoverflow:before {
+ content: "\f5ba";
+}
+
+.mdi-stairs:before {
+ content: "\f5bb";
+}
+
+.mdi-star:before {
+ content: "\f5bc";
+}
+
+.mdi-star-circle:before {
+ content: "\f5bd";
+}
+
+.mdi-star-half:before {
+ content: "\f5be";
+}
+
+.mdi-star-off:before {
+ content: "\f5bf";
+}
+
+.mdi-star-outline:before {
+ content: "\f5c0";
+}
+
+.mdi-steam:before {
+ content: "\f5c1";
+}
+
+.mdi-steering:before {
+ content: "\f5c2";
+}
+
+.mdi-step-backward:before {
+ content: "\f5c3";
+}
+
+.mdi-step-backward-2:before {
+ content: "\f5c4";
+}
+
+.mdi-step-forward:before {
+ content: "\f5c5";
+}
+
+.mdi-step-forward-2:before {
+ content: "\f5c6";
+}
+
+.mdi-stethoscope:before {
+ content: "\f5c7";
+}
+
+.mdi-stocking:before {
+ content: "\f5c8";
+}
+
+.mdi-stop:before {
+ content: "\f5c9";
+}
+
+.mdi-store:before {
+ content: "\f5ca";
+}
+
+.mdi-store-24-hour:before {
+ content: "\f5cb";
+}
+
+.mdi-stove:before {
+ content: "\f5cc";
+}
+
+.mdi-subway:before {
+ content: "\f5cd";
+}
+
+.mdi-sunglasses:before {
+ content: "\f5ce";
+}
+
+.mdi-swap-horizontal:before {
+ content: "\f5cf";
+}
+
+.mdi-swap-vertical:before {
+ content: "\f5d0";
+}
+
+.mdi-swim:before {
+ content: "\f5d1";
+}
+
+.mdi-switch:before {
+ content: "\f5d2";
+}
+
+.mdi-sword:before {
+ content: "\f5d3";
+}
+
+.mdi-sync:before {
+ content: "\f5d4";
+}
+
+.mdi-sync-alert:before {
+ content: "\f5d5";
+}
+
+.mdi-sync-off:before {
+ content: "\f5d6";
+}
+
+.mdi-tab:before {
+ content: "\f5d7";
+}
+
+.mdi-tab-unselected:before {
+ content: "\f5d8";
+}
+
+.mdi-table:before {
+ content: "\f5d9";
+}
+
+.mdi-table-column-plus-after:before {
+ content: "\f5da";
+}
+
+.mdi-table-column-plus-before:before {
+ content: "\f5db";
+}
+
+.mdi-table-column-remove:before {
+ content: "\f5dc";
+}
+
+.mdi-table-column-width:before {
+ content: "\f5dd";
+}
+
+.mdi-table-edit:before {
+ content: "\f5de";
+}
+
+.mdi-table-large:before {
+ content: "\f5df";
+}
+
+.mdi-table-row-height:before {
+ content: "\f5e0";
+}
+
+.mdi-table-row-plus-after:before {
+ content: "\f5e1";
+}
+
+.mdi-table-row-plus-before:before {
+ content: "\f5e2";
+}
+
+.mdi-table-row-remove:before {
+ content: "\f5e3";
+}
+
+.mdi-tablet:before {
+ content: "\f5e4";
+}
+
+.mdi-tablet-android:before {
+ content: "\f5e5";
+}
+
+.mdi-tablet-ipad:before {
+ content: "\f5e6";
+}
+
+.mdi-tag:before {
+ content: "\f5e7";
+}
+
+.mdi-tag-faces:before {
+ content: "\f5e8";
+}
+
+.mdi-tag-multiple:before {
+ content: "\f5e9";
+}
+
+.mdi-tag-outline:before {
+ content: "\f5ea";
+}
+
+.mdi-tag-text-outline:before {
+ content: "\f5eb";
+}
+
+.mdi-target:before {
+ content: "\f5ec";
+}
+
+.mdi-taxi:before {
+ content: "\f5ed";
+}
+
+.mdi-teamviewer:before {
+ content: "\f5ee";
+}
+
+.mdi-telegram:before {
+ content: "\f5ef";
+}
+
+.mdi-television:before {
+ content: "\f5f0";
+}
+
+.mdi-television-guide:before {
+ content: "\f5f1";
+}
+
+.mdi-temperature-celsius:before {
+ content: "\f5f2";
+}
+
+.mdi-temperature-fahrenheit:before {
+ content: "\f5f3";
+}
+
+.mdi-temperature-kelvin:before {
+ content: "\f5f4";
+}
+
+.mdi-tennis:before {
+ content: "\f5f5";
+}
+
+.mdi-tent:before {
+ content: "\f5f6";
+}
+
+.mdi-terrain:before {
+ content: "\f5f7";
+}
+
+.mdi-text-to-speech:before {
+ content: "\f5f8";
+}
+
+.mdi-text-to-speech-off:before {
+ content: "\f5f9";
+}
+
+.mdi-texture:before {
+ content: "\f5fa";
+}
+
+.mdi-theater:before {
+ content: "\f5fb";
+}
+
+.mdi-theme-light-dark:before {
+ content: "\f5fc";
+}
+
+.mdi-thermometer:before {
+ content: "\f5fd";
+}
+
+.mdi-thermometer-lines:before {
+ content: "\f5fe";
+}
+
+.mdi-thumb-down:before {
+ content: "\f5ff";
+}
+
+.mdi-thumb-down-outline:before {
+ content: "\f600";
+}
+
+.mdi-thumb-up:before {
+ content: "\f601";
+}
+
+.mdi-thumb-up-outline:before {
+ content: "\f602";
+}
+
+.mdi-thumbs-up-down:before {
+ content: "\f603";
+}
+
+.mdi-ticket:before {
+ content: "\f604";
+}
+
+.mdi-ticket-account:before {
+ content: "\f605";
+}
+
+.mdi-ticket-confirmation:before {
+ content: "\f606";
+}
+
+.mdi-tie:before {
+ content: "\f607";
+}
+
+.mdi-timelapse:before {
+ content: "\f608";
+}
+
+.mdi-timer:before {
+ content: "\f609";
+}
+
+.mdi-timer-10:before {
+ content: "\f60a";
+}
+
+.mdi-timer-3:before {
+ content: "\f60b";
+}
+
+.mdi-timer-off:before {
+ content: "\f60c";
+}
+
+.mdi-timer-sand:before {
+ content: "\f60d";
+}
+
+.mdi-timetable:before {
+ content: "\f60e";
+}
+
+.mdi-toggle-switch:before {
+ content: "\f60f";
+}
+
+.mdi-toggle-switch-off:before {
+ content: "\f610";
+}
+
+.mdi-tooltip:before {
+ content: "\f611";
+}
+
+.mdi-tooltip-edit:before {
+ content: "\f612";
+}
+
+.mdi-tooltip-image:before {
+ content: "\f613";
+}
+
+.mdi-tooltip-outline:before {
+ content: "\f614";
+}
+
+.mdi-tooltip-outline-plus:before {
+ content: "\f615";
+}
+
+.mdi-tooltip-text:before {
+ content: "\f616";
+}
+
+.mdi-tor:before {
+ content: "\f617";
+}
+
+.mdi-traffic-light:before {
+ content: "\f618";
+}
+
+.mdi-train:before {
+ content: "\f619";
+}
+
+.mdi-tram:before {
+ content: "\f61a";
+}
+
+.mdi-transcribe:before {
+ content: "\f61b";
+}
+
+.mdi-transcribe-close:before {
+ content: "\f61c";
+}
+
+.mdi-transfer:before {
+ content: "\f61d";
+}
+
+.mdi-tree:before {
+ content: "\f61e";
+}
+
+.mdi-trello:before {
+ content: "\f61f";
+}
+
+.mdi-trending-down:before {
+ content: "\f620";
+}
+
+.mdi-trending-neutral:before {
+ content: "\f621";
+}
+
+.mdi-trending-up:before {
+ content: "\f622";
+}
+
+.mdi-triangle:before {
+ content: "\f623";
+}
+
+.mdi-triangle-outline:before {
+ content: "\f624";
+}
+
+.mdi-trophy:before {
+ content: "\f625";
+}
+
+.mdi-trophy-award:before {
+ content: "\f626";
+}
+
+.mdi-trophy-outline:before {
+ content: "\f627";
+}
+
+.mdi-trophy-variant:before {
+ content: "\f628";
+}
+
+.mdi-trophy-variant-outline:before {
+ content: "\f629";
+}
+
+.mdi-truck:before {
+ content: "\f62a";
+}
+
+.mdi-truck-delivery:before {
+ content: "\f62b";
+}
+
+.mdi-tshirt-crew:before {
+ content: "\f62c";
+}
+
+.mdi-tshirt-v:before {
+ content: "\f62d";
+}
+
+.mdi-tumblr:before {
+ content: "\f62e";
+}
+
+.mdi-tumblr-reblog:before {
+ content: "\f62f";
+}
+
+.mdi-twitch:before {
+ content: "\f630";
+}
+
+.mdi-twitter:before {
+ content: "\f631";
+}
+
+.mdi-twitter-box:before {
+ content: "\f632";
+}
+
+.mdi-twitter-circle:before {
+ content: "\f633";
+}
+
+.mdi-twitter-retweet:before {
+ content: "\f634";
+}
+
+.mdi-ubuntu:before {
+ content: "\f635";
+}
+
+.mdi-umbraco:before {
+ content: "\f636";
+}
+
+.mdi-umbrella:before {
+ content: "\f637";
+}
+
+.mdi-umbrella-outline:before {
+ content: "\f638";
+}
+
+.mdi-undo:before {
+ content: "\f639";
+}
+
+.mdi-undo-variant:before {
+ content: "\f63a";
+}
+
+.mdi-unfold-less:before {
+ content: "\f63b";
+}
+
+.mdi-unfold-more:before {
+ content: "\f63c";
+}
+
+.mdi-ungroup:before {
+ content: "\f63d";
+}
+
+.mdi-untappd:before {
+ content: "\f63e";
+}
+
+.mdi-upload:before {
+ content: "\f63f";
+}
+
+.mdi-usb:before {
+ content: "\f640";
+}
+
+.mdi-vector-arrange-above:before {
+ content: "\f641";
+}
+
+.mdi-vector-arrange-below:before {
+ content: "\f642";
+}
+
+.mdi-vector-circle:before {
+ content: "\f643";
+}
+
+.mdi-vector-circle-variant:before {
+ content: "\f644";
+}
+
+.mdi-vector-combine:before {
+ content: "\f645";
+}
+
+.mdi-vector-curve:before {
+ content: "\f646";
+}
+
+.mdi-vector-difference:before {
+ content: "\f647";
+}
+
+.mdi-vector-difference-ab:before {
+ content: "\f648";
+}
+
+.mdi-vector-difference-ba:before {
+ content: "\f649";
+}
+
+.mdi-vector-intersection:before {
+ content: "\f64a";
+}
+
+.mdi-vector-line:before {
+ content: "\f64b";
+}
+
+.mdi-vector-point:before {
+ content: "\f64c";
+}
+
+.mdi-vector-polygon:before {
+ content: "\f64d";
+}
+
+.mdi-vector-polyline:before {
+ content: "\f64e";
+}
+
+.mdi-vector-selection:before {
+ content: "\f64f";
+}
+
+.mdi-vector-square:before {
+ content: "\f650";
+}
+
+.mdi-vector-triangle:before {
+ content: "\f651";
+}
+
+.mdi-vector-union:before {
+ content: "\f652";
+}
+
+.mdi-verified:before {
+ content: "\f653";
+}
+
+.mdi-vibrate:before {
+ content: "\f654";
+}
+
+.mdi-video:before {
+ content: "\f655";
+}
+
+.mdi-video-off:before {
+ content: "\f656";
+}
+
+.mdi-video-switch:before {
+ content: "\f657";
+}
+
+.mdi-view-agenda:before {
+ content: "\f658";
+}
+
+.mdi-view-array:before {
+ content: "\f659";
+}
+
+.mdi-view-carousel:before {
+ content: "\f65a";
+}
+
+.mdi-view-column:before {
+ content: "\f65b";
+}
+
+.mdi-view-dashboard:before {
+ content: "\f65c";
+}
+
+.mdi-view-day:before {
+ content: "\f65d";
+}
+
+.mdi-view-grid:before {
+ content: "\f65e";
+}
+
+.mdi-view-headline:before {
+ content: "\f65f";
+}
+
+.mdi-view-list:before {
+ content: "\f660";
+}
+
+.mdi-view-module:before {
+ content: "\f661";
+}
+
+.mdi-view-quilt:before {
+ content: "\f662";
+}
+
+.mdi-view-stream:before {
+ content: "\f663";
+}
+
+.mdi-view-week:before {
+ content: "\f664";
+}
+
+.mdi-vimeo:before {
+ content: "\f665";
+}
+
+.mdi-vine:before {
+ content: "\f666";
+}
+
+.mdi-vk:before {
+ content: "\f667";
+}
+
+.mdi-vk-box:before {
+ content: "\f668";
+}
+
+.mdi-vk-circle:before {
+ content: "\f669";
+}
+
+.mdi-voicemail:before {
+ content: "\f66a";
+}
+
+.mdi-volume-high:before {
+ content: "\f66b";
+}
+
+.mdi-volume-low:before {
+ content: "\f66c";
+}
+
+.mdi-volume-medium:before {
+ content: "\f66d";
+}
+
+.mdi-volume-off:before {
+ content: "\f66e";
+}
+
+.mdi-vpn:before {
+ content: "\f66f";
+}
+
+.mdi-walk:before {
+ content: "\f670";
+}
+
+.mdi-wallet:before {
+ content: "\f671";
+}
+
+.mdi-wallet-giftcard:before {
+ content: "\f672";
+}
+
+.mdi-wallet-membership:before {
+ content: "\f673";
+}
+
+.mdi-wallet-travel:before {
+ content: "\f674";
+}
+
+.mdi-wan:before {
+ content: "\f675";
+}
+
+.mdi-watch:before {
+ content: "\f676";
+}
+
+.mdi-watch-export:before {
+ content: "\f677";
+}
+
+.mdi-watch-import:before {
+ content: "\f678";
+}
+
+.mdi-water:before {
+ content: "\f679";
+}
+
+.mdi-water-off:before {
+ content: "\f67a";
+}
+
+.mdi-water-percent:before {
+ content: "\f67b";
+}
+
+.mdi-water-pump:before {
+ content: "\f67c";
+}
+
+.mdi-weather-cloudy:before {
+ content: "\f67d";
+}
+
+.mdi-weather-fog:before {
+ content: "\f67e";
+}
+
+.mdi-weather-hail:before {
+ content: "\f67f";
+}
+
+.mdi-weather-lightning:before {
+ content: "\f680";
+}
+
+.mdi-weather-night:before {
+ content: "\f681";
+}
+
+.mdi-weather-partlycloudy:before {
+ content: "\f682";
+}
+
+.mdi-weather-pouring:before {
+ content: "\f683";
+}
+
+.mdi-weather-rainy:before {
+ content: "\f684";
+}
+
+.mdi-weather-snowy:before {
+ content: "\f685";
+}
+
+.mdi-weather-sunny:before {
+ content: "\f686";
+}
+
+.mdi-weather-sunset:before {
+ content: "\f687";
+}
+
+.mdi-weather-sunset-down:before {
+ content: "\f688";
+}
+
+.mdi-weather-sunset-up:before {
+ content: "\f689";
+}
+
+.mdi-weather-windy:before {
+ content: "\f68a";
+}
+
+.mdi-weather-windy-variant:before {
+ content: "\f68b";
+}
+
+.mdi-web:before {
+ content: "\f68c";
+}
+
+.mdi-webcam:before {
+ content: "\f68d";
+}
+
+.mdi-weight:before {
+ content: "\f68e";
+}
+
+.mdi-weight-kilogram:before {
+ content: "\f68f";
+}
+
+.mdi-whatsapp:before {
+ content: "\f690";
+}
+
+.mdi-wheelchair-accessibility:before {
+ content: "\f691";
+}
+
+.mdi-white-balance-auto:before {
+ content: "\f692";
+}
+
+.mdi-white-balance-incandescent:before {
+ content: "\f693";
+}
+
+.mdi-white-balance-irradescent:before {
+ content: "\f694";
+}
+
+.mdi-white-balance-sunny:before {
+ content: "\f695";
+}
+
+.mdi-wifi:before {
+ content: "\f696";
+}
+
+.mdi-wifi-off:before {
+ content: "\f697";
+}
+
+.mdi-wii:before {
+ content: "\f698";
+}
+
+.mdi-wikipedia:before {
+ content: "\f699";
+}
+
+.mdi-window-close:before {
+ content: "\f69a";
+}
+
+.mdi-window-closed:before {
+ content: "\f69b";
+}
+
+.mdi-window-maximize:before {
+ content: "\f69c";
+}
+
+.mdi-window-minimize:before {
+ content: "\f69d";
+}
+
+.mdi-window-open:before {
+ content: "\f69e";
+}
+
+.mdi-window-restore:before {
+ content: "\f69f";
+}
+
+.mdi-windows:before {
+ content: "\f6a0";
+}
+
+.mdi-wordpress:before {
+ content: "\f6a1";
+}
+
+.mdi-worker:before {
+ content: "\f6a2";
+}
+
+.mdi-wrap:before {
+ content: "\f6a3";
+}
+
+.mdi-wrench:before {
+ content: "\f6a4";
+}
+
+.mdi-wunderlist:before {
+ content: "\f6a5";
+}
+
+.mdi-xbox:before {
+ content: "\f6a6";
+}
+
+.mdi-xbox-controller:before {
+ content: "\f6a7";
+}
+
+.mdi-xbox-controller-off:before {
+ content: "\f6a8";
+}
+
+.mdi-xda:before {
+ content: "\f6a9";
+}
+
+.mdi-xing:before {
+ content: "\f6aa";
+}
+
+.mdi-xing-box:before {
+ content: "\f6ab";
+}
+
+.mdi-xing-circle:before {
+ content: "\f6ac";
+}
+
+.mdi-xml:before {
+ content: "\f6ad";
+}
+
+.mdi-yeast:before {
+ content: "\f6ae";
+}
+
+.mdi-yelp:before {
+ content: "\f6af";
+}
+
+.mdi-youtube-play:before {
+ content: "\f6b0";
+}
+
+.mdi-zip-box:before {
+ content: "\f6b1";
+}
+
+.mdi-18px {
+ font-size: 18px;
+}
+
+.mdi-24px {
+ font-size: 24px;
+}
+
+.mdi-36px {
+ font-size: 36px;
+}
+
+.mdi-48px {
+ font-size: 48px;
+}
+
+.mdi-dark {
+ color: rgba(0, 0, 0, 0.54);
+}
+
+.mdi-dark.mdi-inactive {
+ color: rgba(0, 0, 0, 0.26);
+}
+
+.mdi-light {
+ color: white;
+}
+
+.mdi-light.mdi-inactive {
+ color: rgba(255, 255, 255, 0.3);
+}
+
+@font-face {
+ font-family: 'Linearicons';
+ font-weight: normal;
+ font-style: normal;
+ src: url(../fonts/Linearicons.eot);
+ /* For IE6-8 */
+ src: local("Linearicons"), local("Linearicons"), url(../fonts/Linearicons.woff) format("woff"), url(../fonts/Linearicons.ttf) format("truetype");
+}
+
+.linearicons,
+[class^="linearicons-"], [class*=" linearicons-"] {
+ /* use !important to prevent issues with browser extensions that change fonts */
+ font-family: 'Linearicons' !important;
+ speak: none;
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+ /* Better Font Rendering =========== */
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+.linearicons-home:before {
+ content: "\e900";
+}
+
+.linearicons-home2:before {
+ content: "\e901";
+}
+
+.linearicons-home3:before {
+ content: "\e902";
+}
+
+.linearicons-home4:before {
+ content: "\e903";
+}
+
+.linearicons-home5:before {
+ content: "\e904";
+}
+
+.linearicons-home6:before {
+ content: "\e905";
+}
+
+.linearicons-bathtub:before {
+ content: "\e906";
+}
+
+.linearicons-toothbrush:before {
+ content: "\e907";
+}
+
+.linearicons-bed:before {
+ content: "\e908";
+}
+
+.linearicons-couch:before {
+ content: "\e909";
+}
+
+.linearicons-chair:before {
+ content: "\e90a";
+}
+
+.linearicons-city:before {
+ content: "\e90b";
+}
+
+.linearicons-apartment:before {
+ content: "\e90c";
+}
+
+.linearicons-pencil:before {
+ content: "\e90d";
+}
+
+.linearicons-pencil2:before {
+ content: "\e90e";
+}
+
+.linearicons-pen:before {
+ content: "\e90f";
+}
+
+.linearicons-pencil3:before {
+ content: "\e910";
+}
+
+.linearicons-eraser:before {
+ content: "\e911";
+}
+
+.linearicons-pencil4:before {
+ content: "\e912";
+}
+
+.linearicons-pencil5:before {
+ content: "\e913";
+}
+
+.linearicons-feather:before {
+ content: "\e914";
+}
+
+.linearicons-feather2:before {
+ content: "\e915";
+}
+
+.linearicons-feather3:before {
+ content: "\e916";
+}
+
+.linearicons-pen2:before {
+ content: "\e917";
+}
+
+.linearicons-pen-add:before {
+ content: "\e918";
+}
+
+.linearicons-pen-remove:before {
+ content: "\e919";
+}
+
+.linearicons-vector:before {
+ content: "\e91a";
+}
+
+.linearicons-pen3:before {
+ content: "\e91b";
+}
+
+.linearicons-blog:before {
+ content: "\e91c";
+}
+
+.linearicons-brush:before {
+ content: "\e91d";
+}
+
+.linearicons-brush2:before {
+ content: "\e91e";
+}
+
+.linearicons-spray:before {
+ content: "\e91f";
+}
+
+.linearicons-paint-roller:before {
+ content: "\e920";
+}
+
+.linearicons-stamp:before {
+ content: "\e921";
+}
+
+.linearicons-tape:before {
+ content: "\e922";
+}
+
+.linearicons-desk-tape:before {
+ content: "\e923";
+}
+
+.linearicons-texture:before {
+ content: "\e924";
+}
+
+.linearicons-eye-dropper:before {
+ content: "\e925";
+}
+
+.linearicons-palette:before {
+ content: "\e926";
+}
+
+.linearicons-color-sampler:before {
+ content: "\e927";
+}
+
+.linearicons-bucket:before {
+ content: "\e928";
+}
+
+.linearicons-gradient:before {
+ content: "\e929";
+}
+
+.linearicons-gradient2:before {
+ content: "\e92a";
+}
+
+.linearicons-magic-wand:before {
+ content: "\e92b";
+}
+
+.linearicons-magnet:before {
+ content: "\e92c";
+}
+
+.linearicons-pencil-ruler:before {
+ content: "\e92d";
+}
+
+.linearicons-pencil-ruler2:before {
+ content: "\e92e";
+}
+
+.linearicons-compass:before {
+ content: "\e92f";
+}
+
+.linearicons-aim:before {
+ content: "\e930";
+}
+
+.linearicons-gun:before {
+ content: "\e931";
+}
+
+.linearicons-bottle:before {
+ content: "\e932";
+}
+
+.linearicons-drop:before {
+ content: "\e933";
+}
+
+.linearicons-drop-crossed:before {
+ content: "\e934";
+}
+
+.linearicons-drop2:before {
+ content: "\e935";
+}
+
+.linearicons-snow:before {
+ content: "\e936";
+}
+
+.linearicons-snow2:before {
+ content: "\e937";
+}
+
+.linearicons-fire:before {
+ content: "\e938";
+}
+
+.linearicons-lighter:before {
+ content: "\e939";
+}
+
+.linearicons-knife:before {
+ content: "\e93a";
+}
+
+.linearicons-dagger:before {
+ content: "\e93b";
+}
+
+.linearicons-tissue:before {
+ content: "\e93c";
+}
+
+.linearicons-toilet-paper:before {
+ content: "\e93d";
+}
+
+.linearicons-poop:before {
+ content: "\e93e";
+}
+
+.linearicons-umbrella:before {
+ content: "\e93f";
+}
+
+.linearicons-umbrella2:before {
+ content: "\e940";
+}
+
+.linearicons-rain:before {
+ content: "\e941";
+}
+
+.linearicons-tornado:before {
+ content: "\e942";
+}
+
+.linearicons-wind:before {
+ content: "\e943";
+}
+
+.linearicons-fan:before {
+ content: "\e944";
+}
+
+.linearicons-contrast:before {
+ content: "\e945";
+}
+
+.linearicons-sun-small:before {
+ content: "\e946";
+}
+
+.linearicons-sun:before {
+ content: "\e947";
+}
+
+.linearicons-sun2:before {
+ content: "\e948";
+}
+
+.linearicons-moon:before {
+ content: "\e949";
+}
+
+.linearicons-cloud:before {
+ content: "\e94a";
+}
+
+.linearicons-cloud-upload:before {
+ content: "\e94b";
+}
+
+.linearicons-cloud-download:before {
+ content: "\e94c";
+}
+
+.linearicons-cloud-rain:before {
+ content: "\e94d";
+}
+
+.linearicons-cloud-hailstones:before {
+ content: "\e94e";
+}
+
+.linearicons-cloud-snow:before {
+ content: "\e94f";
+}
+
+.linearicons-cloud-windy:before {
+ content: "\e950";
+}
+
+.linearicons-sun-wind:before {
+ content: "\e951";
+}
+
+.linearicons-cloud-fog:before {
+ content: "\e952";
+}
+
+.linearicons-cloud-sun:before {
+ content: "\e953";
+}
+
+.linearicons-cloud-lightning:before {
+ content: "\e954";
+}
+
+.linearicons-cloud-sync:before {
+ content: "\e955";
+}
+
+.linearicons-cloud-lock:before {
+ content: "\e956";
+}
+
+.linearicons-cloud-gear:before {
+ content: "\e957";
+}
+
+.linearicons-cloud-alert:before {
+ content: "\e958";
+}
+
+.linearicons-cloud-check:before {
+ content: "\e959";
+}
+
+.linearicons-cloud-cross:before {
+ content: "\e95a";
+}
+
+.linearicons-cloud-crossed:before {
+ content: "\e95b";
+}
+
+.linearicons-cloud-database:before {
+ content: "\e95c";
+}
+
+.linearicons-database:before {
+ content: "\e95d";
+}
+
+.linearicons-database-add:before {
+ content: "\e95e";
+}
+
+.linearicons-database-remove:before {
+ content: "\e95f";
+}
+
+.linearicons-database-lock:before {
+ content: "\e960";
+}
+
+.linearicons-database-refresh:before {
+ content: "\e961";
+}
+
+.linearicons-database-check:before {
+ content: "\e962";
+}
+
+.linearicons-database-history:before {
+ content: "\e963";
+}
+
+.linearicons-database-upload:before {
+ content: "\e964";
+}
+
+.linearicons-database-download:before {
+ content: "\e965";
+}
+
+.linearicons-server:before {
+ content: "\e966";
+}
+
+.linearicons-shield:before {
+ content: "\e967";
+}
+
+.linearicons-shield-check:before {
+ content: "\e968";
+}
+
+.linearicons-shield-alert:before {
+ content: "\e969";
+}
+
+.linearicons-shield-cross:before {
+ content: "\e96a";
+}
+
+.linearicons-lock:before {
+ content: "\e96b";
+}
+
+.linearicons-rotation-lock:before {
+ content: "\e96c";
+}
+
+.linearicons-unlock:before {
+ content: "\e96d";
+}
+
+.linearicons-key:before {
+ content: "\e96e";
+}
+
+.linearicons-key-hole:before {
+ content: "\e96f";
+}
+
+.linearicons-toggle-off:before {
+ content: "\e970";
+}
+
+.linearicons-toggle-on:before {
+ content: "\e971";
+}
+
+.linearicons-cog:before {
+ content: "\e972";
+}
+
+.linearicons-cog2:before {
+ content: "\e973";
+}
+
+.linearicons-wrench:before {
+ content: "\e974";
+}
+
+.linearicons-screwdriver:before {
+ content: "\e975";
+}
+
+.linearicons-hammer-wrench:before {
+ content: "\e976";
+}
+
+.linearicons-hammer:before {
+ content: "\e977";
+}
+
+.linearicons-saw:before {
+ content: "\e978";
+}
+
+.linearicons-axe:before {
+ content: "\e979";
+}
+
+.linearicons-axe2:before {
+ content: "\e97a";
+}
+
+.linearicons-shovel:before {
+ content: "\e97b";
+}
+
+.linearicons-pickaxe:before {
+ content: "\e97c";
+}
+
+.linearicons-factory:before {
+ content: "\e97d";
+}
+
+.linearicons-factory2:before {
+ content: "\e97e";
+}
+
+.linearicons-recycle:before {
+ content: "\e97f";
+}
+
+.linearicons-trash:before {
+ content: "\e980";
+}
+
+.linearicons-trash2:before {
+ content: "\e981";
+}
+
+.linearicons-trash3:before {
+ content: "\e982";
+}
+
+.linearicons-broom:before {
+ content: "\e983";
+}
+
+.linearicons-game:before {
+ content: "\e984";
+}
+
+.linearicons-gamepad:before {
+ content: "\e985";
+}
+
+.linearicons-joystick:before {
+ content: "\e986";
+}
+
+.linearicons-dice:before {
+ content: "\e987";
+}
+
+.linearicons-spades:before {
+ content: "\e988";
+}
+
+.linearicons-diamonds:before {
+ content: "\e989";
+}
+
+.linearicons-clubs:before {
+ content: "\e98a";
+}
+
+.linearicons-hearts:before {
+ content: "\e98b";
+}
+
+.linearicons-heart:before {
+ content: "\e98c";
+}
+
+.linearicons-star:before {
+ content: "\e98d";
+}
+
+.linearicons-star-half:before {
+ content: "\e98e";
+}
+
+.linearicons-star-empty:before {
+ content: "\e98f";
+}
+
+.linearicons-flag:before {
+ content: "\e990";
+}
+
+.linearicons-flag2:before {
+ content: "\e991";
+}
+
+.linearicons-flag3:before {
+ content: "\e992";
+}
+
+.linearicons-mailbox-full:before {
+ content: "\e993";
+}
+
+.linearicons-mailbox-empty:before {
+ content: "\e994";
+}
+
+.linearicons-at-sign:before {
+ content: "\e995";
+}
+
+.linearicons-envelope:before {
+ content: "\e996";
+}
+
+.linearicons-envelope-open:before {
+ content: "\e997";
+}
+
+.linearicons-paperclip:before {
+ content: "\e998";
+}
+
+.linearicons-paper-plane:before {
+ content: "\e999";
+}
+
+.linearicons-reply:before {
+ content: "\e99a";
+}
+
+.linearicons-reply-all:before {
+ content: "\e99b";
+}
+
+.linearicons-inbox:before {
+ content: "\e99c";
+}
+
+.linearicons-inbox2:before {
+ content: "\e99d";
+}
+
+.linearicons-outbox:before {
+ content: "\e99e";
+}
+
+.linearicons-box:before {
+ content: "\e99f";
+}
+
+.linearicons-archive:before {
+ content: "\e9a0";
+}
+
+.linearicons-archive2:before {
+ content: "\e9a1";
+}
+
+.linearicons-drawers:before {
+ content: "\e9a2";
+}
+
+.linearicons-drawers2:before {
+ content: "\e9a3";
+}
+
+.linearicons-drawers3:before {
+ content: "\e9a4";
+}
+
+.linearicons-eye:before {
+ content: "\e9a5";
+}
+
+.linearicons-eye-crossed:before {
+ content: "\e9a6";
+}
+
+.linearicons-eye-plus:before {
+ content: "\e9a7";
+}
+
+.linearicons-eye-minus:before {
+ content: "\e9a8";
+}
+
+.linearicons-binoculars:before {
+ content: "\e9a9";
+}
+
+.linearicons-binoculars2:before {
+ content: "\e9aa";
+}
+
+.linearicons-hdd:before {
+ content: "\e9ab";
+}
+
+.linearicons-hdd-down:before {
+ content: "\e9ac";
+}
+
+.linearicons-hdd-up:before {
+ content: "\e9ad";
+}
+
+.linearicons-floppy-disk:before {
+ content: "\e9ae";
+}
+
+.linearicons-disc:before {
+ content: "\e9af";
+}
+
+.linearicons-tape2:before {
+ content: "\e9b0";
+}
+
+.linearicons-printer:before {
+ content: "\e9b1";
+}
+
+.linearicons-shredder:before {
+ content: "\e9b2";
+}
+
+.linearicons-file-empty:before {
+ content: "\e9b3";
+}
+
+.linearicons-file-add:before {
+ content: "\e9b4";
+}
+
+.linearicons-file-check:before {
+ content: "\e9b5";
+}
+
+.linearicons-file-lock:before {
+ content: "\e9b6";
+}
+
+.linearicons-files:before {
+ content: "\e9b7";
+}
+
+.linearicons-copy:before {
+ content: "\e9b8";
+}
+
+.linearicons-compare:before {
+ content: "\e9b9";
+}
+
+.linearicons-folder:before {
+ content: "\e9ba";
+}
+
+.linearicons-folder-search:before {
+ content: "\e9bb";
+}
+
+.linearicons-folder-plus:before {
+ content: "\e9bc";
+}
+
+.linearicons-folder-minus:before {
+ content: "\e9bd";
+}
+
+.linearicons-folder-download:before {
+ content: "\e9be";
+}
+
+.linearicons-folder-upload:before {
+ content: "\e9bf";
+}
+
+.linearicons-folder-star:before {
+ content: "\e9c0";
+}
+
+.linearicons-folder-heart:before {
+ content: "\e9c1";
+}
+
+.linearicons-folder-user:before {
+ content: "\e9c2";
+}
+
+.linearicons-folder-shared:before {
+ content: "\e9c3";
+}
+
+.linearicons-folder-music:before {
+ content: "\e9c4";
+}
+
+.linearicons-folder-picture:before {
+ content: "\e9c5";
+}
+
+.linearicons-folder-film:before {
+ content: "\e9c6";
+}
+
+.linearicons-scissors:before {
+ content: "\e9c7";
+}
+
+.linearicons-paste:before {
+ content: "\e9c8";
+}
+
+.linearicons-clipboard-empty:before {
+ content: "\e9c9";
+}
+
+.linearicons-clipboard-pencil:before {
+ content: "\e9ca";
+}
+
+.linearicons-clipboard-text:before {
+ content: "\e9cb";
+}
+
+.linearicons-clipboard-check:before {
+ content: "\e9cc";
+}
+
+.linearicons-clipboard-down:before {
+ content: "\e9cd";
+}
+
+.linearicons-clipboard-left:before {
+ content: "\e9ce";
+}
+
+.linearicons-clipboard-alert:before {
+ content: "\e9cf";
+}
+
+.linearicons-clipboard-user:before {
+ content: "\e9d0";
+}
+
+.linearicons-register:before {
+ content: "\e9d1";
+}
+
+.linearicons-enter:before {
+ content: "\e9d2";
+}
+
+.linearicons-exit:before {
+ content: "\e9d3";
+}
+
+.linearicons-papers:before {
+ content: "\e9d4";
+}
+
+.linearicons-news:before {
+ content: "\e9d5";
+}
+
+.linearicons-reading:before {
+ content: "\e9d6";
+}
+
+.linearicons-typewriter:before {
+ content: "\e9d7";
+}
+
+.linearicons-document:before {
+ content: "\e9d8";
+}
+
+.linearicons-document2:before {
+ content: "\e9d9";
+}
+
+.linearicons-graduation-hat:before {
+ content: "\e9da";
+}
+
+.linearicons-license:before {
+ content: "\e9db";
+}
+
+.linearicons-license2:before {
+ content: "\e9dc";
+}
+
+.linearicons-medal-empty:before {
+ content: "\e9dd";
+}
+
+.linearicons-medal-first:before {
+ content: "\e9de";
+}
+
+.linearicons-medal-second:before {
+ content: "\e9df";
+}
+
+.linearicons-medal-third:before {
+ content: "\e9e0";
+}
+
+.linearicons-podium:before {
+ content: "\e9e1";
+}
+
+.linearicons-trophy:before {
+ content: "\e9e2";
+}
+
+.linearicons-trophy2:before {
+ content: "\e9e3";
+}
+
+.linearicons-music-note:before {
+ content: "\e9e4";
+}
+
+.linearicons-music-note2:before {
+ content: "\e9e5";
+}
+
+.linearicons-music-note3:before {
+ content: "\e9e6";
+}
+
+.linearicons-playlist:before {
+ content: "\e9e7";
+}
+
+.linearicons-playlist-add:before {
+ content: "\e9e8";
+}
+
+.linearicons-guitar:before {
+ content: "\e9e9";
+}
+
+.linearicons-trumpet:before {
+ content: "\e9ea";
+}
+
+.linearicons-album:before {
+ content: "\e9eb";
+}
+
+.linearicons-shuffle:before {
+ content: "\e9ec";
+}
+
+.linearicons-repeat-one:before {
+ content: "\e9ed";
+}
+
+.linearicons-repeat:before {
+ content: "\e9ee";
+}
+
+.linearicons-headphones:before {
+ content: "\e9ef";
+}
+
+.linearicons-headset:before {
+ content: "\e9f0";
+}
+
+.linearicons-loudspeaker:before {
+ content: "\e9f1";
+}
+
+.linearicons-equalizer:before {
+ content: "\e9f2";
+}
+
+.linearicons-theater:before {
+ content: "\e9f3";
+}
+
+.linearicons-3d-glasses:before {
+ content: "\e9f4";
+}
+
+.linearicons-ticket:before {
+ content: "\e9f5";
+}
+
+.linearicons-presentation:before {
+ content: "\e9f6";
+}
+
+.linearicons-play:before {
+ content: "\e9f7";
+}
+
+.linearicons-film-play:before {
+ content: "\e9f8";
+}
+
+.linearicons-clapboard-play:before {
+ content: "\e9f9";
+}
+
+.linearicons-media:before {
+ content: "\e9fa";
+}
+
+.linearicons-film:before {
+ content: "\e9fb";
+}
+
+.linearicons-film2:before {
+ content: "\e9fc";
+}
+
+.linearicons-surveillance:before {
+ content: "\e9fd";
+}
+
+.linearicons-surveillance2:before {
+ content: "\e9fe";
+}
+
+.linearicons-camera:before {
+ content: "\e9ff";
+}
+
+.linearicons-camera-crossed:before {
+ content: "\ea00";
+}
+
+.linearicons-camera-play:before {
+ content: "\ea01";
+}
+
+.linearicons-time-lapse:before {
+ content: "\ea02";
+}
+
+.linearicons-record:before {
+ content: "\ea03";
+}
+
+.linearicons-camera2:before {
+ content: "\ea04";
+}
+
+.linearicons-camera-flip:before {
+ content: "\ea05";
+}
+
+.linearicons-panorama:before {
+ content: "\ea06";
+}
+
+.linearicons-time-lapse2:before {
+ content: "\ea07";
+}
+
+.linearicons-shutter:before {
+ content: "\ea08";
+}
+
+.linearicons-shutter2:before {
+ content: "\ea09";
+}
+
+.linearicons-face-detection:before {
+ content: "\ea0a";
+}
+
+.linearicons-flare:before {
+ content: "\ea0b";
+}
+
+.linearicons-convex:before {
+ content: "\ea0c";
+}
+
+.linearicons-concave:before {
+ content: "\ea0d";
+}
+
+.linearicons-picture:before {
+ content: "\ea0e";
+}
+
+.linearicons-picture2:before {
+ content: "\ea0f";
+}
+
+.linearicons-picture3:before {
+ content: "\ea10";
+}
+
+.linearicons-pictures:before {
+ content: "\ea11";
+}
+
+.linearicons-book:before {
+ content: "\ea12";
+}
+
+.linearicons-audio-book:before {
+ content: "\ea13";
+}
+
+.linearicons-book2:before {
+ content: "\ea14";
+}
+
+.linearicons-bookmark:before {
+ content: "\ea15";
+}
+
+.linearicons-bookmark2:before {
+ content: "\ea16";
+}
+
+.linearicons-label:before {
+ content: "\ea17";
+}
+
+.linearicons-library:before {
+ content: "\ea18";
+}
+
+.linearicons-library2:before {
+ content: "\ea19";
+}
+
+.linearicons-contacts:before {
+ content: "\ea1a";
+}
+
+.linearicons-profile:before {
+ content: "\ea1b";
+}
+
+.linearicons-portrait:before {
+ content: "\ea1c";
+}
+
+.linearicons-portrait2:before {
+ content: "\ea1d";
+}
+
+.linearicons-user:before {
+ content: "\ea1e";
+}
+
+.linearicons-user-plus:before {
+ content: "\ea1f";
+}
+
+.linearicons-user-minus:before {
+ content: "\ea20";
+}
+
+.linearicons-user-lock:before {
+ content: "\ea21";
+}
+
+.linearicons-users:before {
+ content: "\ea22";
+}
+
+.linearicons-users2:before {
+ content: "\ea23";
+}
+
+.linearicons-users-plus:before {
+ content: "\ea24";
+}
+
+.linearicons-users-minus:before {
+ content: "\ea25";
+}
+
+.linearicons-group-work:before {
+ content: "\ea26";
+}
+
+.linearicons-woman:before {
+ content: "\ea27";
+}
+
+.linearicons-man:before {
+ content: "\ea28";
+}
+
+.linearicons-baby:before {
+ content: "\ea29";
+}
+
+.linearicons-baby2:before {
+ content: "\ea2a";
+}
+
+.linearicons-baby3:before {
+ content: "\ea2b";
+}
+
+.linearicons-baby-bottle:before {
+ content: "\ea2c";
+}
+
+.linearicons-walk:before {
+ content: "\ea2d";
+}
+
+.linearicons-hand-waving:before {
+ content: "\ea2e";
+}
+
+.linearicons-jump:before {
+ content: "\ea2f";
+}
+
+.linearicons-run:before {
+ content: "\ea30";
+}
+
+.linearicons-woman2:before {
+ content: "\ea31";
+}
+
+.linearicons-man2:before {
+ content: "\ea32";
+}
+
+.linearicons-man-woman:before {
+ content: "\ea33";
+}
+
+.linearicons-height:before {
+ content: "\ea34";
+}
+
+.linearicons-weight:before {
+ content: "\ea35";
+}
+
+.linearicons-scale:before {
+ content: "\ea36";
+}
+
+.linearicons-button:before {
+ content: "\ea37";
+}
+
+.linearicons-bow-tie:before {
+ content: "\ea38";
+}
+
+.linearicons-tie:before {
+ content: "\ea39";
+}
+
+.linearicons-socks:before {
+ content: "\ea3a";
+}
+
+.linearicons-shoe:before {
+ content: "\ea3b";
+}
+
+.linearicons-shoes:before {
+ content: "\ea3c";
+}
+
+.linearicons-hat:before {
+ content: "\ea3d";
+}
+
+.linearicons-pants:before {
+ content: "\ea3e";
+}
+
+.linearicons-shorts:before {
+ content: "\ea3f";
+}
+
+.linearicons-flip-flops:before {
+ content: "\ea40";
+}
+
+.linearicons-shirt:before {
+ content: "\ea41";
+}
+
+.linearicons-hanger:before {
+ content: "\ea42";
+}
+
+.linearicons-laundry:before {
+ content: "\ea43";
+}
+
+.linearicons-store:before {
+ content: "\ea44";
+}
+
+.linearicons-haircut:before {
+ content: "\ea45";
+}
+
+.linearicons-store-24:before {
+ content: "\ea46";
+}
+
+.linearicons-barcode:before {
+ content: "\ea47";
+}
+
+.linearicons-barcode2:before {
+ content: "\ea48";
+}
+
+.linearicons-barcode3:before {
+ content: "\ea49";
+}
+
+.linearicons-cashier:before {
+ content: "\ea4a";
+}
+
+.linearicons-bag:before {
+ content: "\ea4b";
+}
+
+.linearicons-bag2:before {
+ content: "\ea4c";
+}
+
+.linearicons-cart:before {
+ content: "\ea4d";
+}
+
+.linearicons-cart-empty:before {
+ content: "\ea4e";
+}
+
+.linearicons-cart-full:before {
+ content: "\ea4f";
+}
+
+.linearicons-cart-plus:before {
+ content: "\ea50";
+}
+
+.linearicons-cart-plus2:before {
+ content: "\ea51";
+}
+
+.linearicons-cart-add:before {
+ content: "\ea52";
+}
+
+.linearicons-cart-remove:before {
+ content: "\ea53";
+}
+
+.linearicons-cart-exchange:before {
+ content: "\ea54";
+}
+
+.linearicons-tag:before {
+ content: "\ea55";
+}
+
+.linearicons-tags:before {
+ content: "\ea56";
+}
+
+.linearicons-receipt:before {
+ content: "\ea57";
+}
+
+.linearicons-wallet:before {
+ content: "\ea58";
+}
+
+.linearicons-credit-card:before {
+ content: "\ea59";
+}
+
+.linearicons-cash-dollar:before {
+ content: "\ea5a";
+}
+
+.linearicons-cash-euro:before {
+ content: "\ea5b";
+}
+
+.linearicons-cash-pound:before {
+ content: "\ea5c";
+}
+
+.linearicons-cash-yen:before {
+ content: "\ea5d";
+}
+
+.linearicons-bag-dollar:before {
+ content: "\ea5e";
+}
+
+.linearicons-bag-euro:before {
+ content: "\ea5f";
+}
+
+.linearicons-bag-pound:before {
+ content: "\ea60";
+}
+
+.linearicons-bag-yen:before {
+ content: "\ea61";
+}
+
+.linearicons-coin-dollar:before {
+ content: "\ea62";
+}
+
+.linearicons-coin-euro:before {
+ content: "\ea63";
+}
+
+.linearicons-coin-pound:before {
+ content: "\ea64";
+}
+
+.linearicons-coin-yen:before {
+ content: "\ea65";
+}
+
+.linearicons-calculator:before {
+ content: "\ea66";
+}
+
+.linearicons-calculator2:before {
+ content: "\ea67";
+}
+
+.linearicons-abacus:before {
+ content: "\ea68";
+}
+
+.linearicons-vault:before {
+ content: "\ea69";
+}
+
+.linearicons-telephone:before {
+ content: "\ea6a";
+}
+
+.linearicons-phone-lock:before {
+ content: "\ea6b";
+}
+
+.linearicons-phone-wave:before {
+ content: "\ea6c";
+}
+
+.linearicons-phone-pause:before {
+ content: "\ea6d";
+}
+
+.linearicons-phone-outgoing:before {
+ content: "\ea6e";
+}
+
+.linearicons-phone-incoming:before {
+ content: "\ea6f";
+}
+
+.linearicons-phone-in-out:before {
+ content: "\ea70";
+}
+
+.linearicons-phone-error:before {
+ content: "\ea71";
+}
+
+.linearicons-phone-sip:before {
+ content: "\ea72";
+}
+
+.linearicons-phone-plus:before {
+ content: "\ea73";
+}
+
+.linearicons-phone-minus:before {
+ content: "\ea74";
+}
+
+.linearicons-voicemail:before {
+ content: "\ea75";
+}
+
+.linearicons-dial:before {
+ content: "\ea76";
+}
+
+.linearicons-telephone2:before {
+ content: "\ea77";
+}
+
+.linearicons-pushpin:before {
+ content: "\ea78";
+}
+
+.linearicons-pushpin2:before {
+ content: "\ea79";
+}
+
+.linearicons-map-marker:before {
+ content: "\ea7a";
+}
+
+.linearicons-map-marker-user:before {
+ content: "\ea7b";
+}
+
+.linearicons-map-marker-down:before {
+ content: "\ea7c";
+}
+
+.linearicons-map-marker-check:before {
+ content: "\ea7d";
+}
+
+.linearicons-map-marker-crossed:before {
+ content: "\ea7e";
+}
+
+.linearicons-radar:before {
+ content: "\ea7f";
+}
+
+.linearicons-compass2:before {
+ content: "\ea80";
+}
+
+.linearicons-map:before {
+ content: "\ea81";
+}
+
+.linearicons-map2:before {
+ content: "\ea82";
+}
+
+.linearicons-location:before {
+ content: "\ea83";
+}
+
+.linearicons-road-sign:before {
+ content: "\ea84";
+}
+
+.linearicons-calendar-empty:before {
+ content: "\ea85";
+}
+
+.linearicons-calendar-check:before {
+ content: "\ea86";
+}
+
+.linearicons-calendar-cross:before {
+ content: "\ea87";
+}
+
+.linearicons-calendar-31:before {
+ content: "\ea88";
+}
+
+.linearicons-calendar-full:before {
+ content: "\ea89";
+}
+
+.linearicons-calendar-insert:before {
+ content: "\ea8a";
+}
+
+.linearicons-calendar-text:before {
+ content: "\ea8b";
+}
+
+.linearicons-calendar-user:before {
+ content: "\ea8c";
+}
+
+.linearicons-mouse:before {
+ content: "\ea8d";
+}
+
+.linearicons-mouse-left:before {
+ content: "\ea8e";
+}
+
+.linearicons-mouse-right:before {
+ content: "\ea8f";
+}
+
+.linearicons-mouse-both:before {
+ content: "\ea90";
+}
+
+.linearicons-keyboard:before {
+ content: "\ea91";
+}
+
+.linearicons-keyboard-up:before {
+ content: "\ea92";
+}
+
+.linearicons-keyboard-down:before {
+ content: "\ea93";
+}
+
+.linearicons-delete:before {
+ content: "\ea94";
+}
+
+.linearicons-spell-check:before {
+ content: "\ea95";
+}
+
+.linearicons-escape:before {
+ content: "\ea96";
+}
+
+.linearicons-enter2:before {
+ content: "\ea97";
+}
+
+.linearicons-screen:before {
+ content: "\ea98";
+}
+
+.linearicons-aspect-ratio:before {
+ content: "\ea99";
+}
+
+.linearicons-signal:before {
+ content: "\ea9a";
+}
+
+.linearicons-signal-lock:before {
+ content: "\ea9b";
+}
+
+.linearicons-signal-80:before {
+ content: "\ea9c";
+}
+
+.linearicons-signal-60:before {
+ content: "\ea9d";
+}
+
+.linearicons-signal-40:before {
+ content: "\ea9e";
+}
+
+.linearicons-signal-20:before {
+ content: "\ea9f";
+}
+
+.linearicons-signal-0:before {
+ content: "\eaa0";
+}
+
+.linearicons-signal-blocked:before {
+ content: "\eaa1";
+}
+
+.linearicons-sim:before {
+ content: "\eaa2";
+}
+
+.linearicons-flash-memory:before {
+ content: "\eaa3";
+}
+
+.linearicons-usb-drive:before {
+ content: "\eaa4";
+}
+
+.linearicons-phone:before {
+ content: "\eaa5";
+}
+
+.linearicons-smartphone:before {
+ content: "\eaa6";
+}
+
+.linearicons-smartphone-notification:before {
+ content: "\eaa7";
+}
+
+.linearicons-smartphone-vibration:before {
+ content: "\eaa8";
+}
+
+.linearicons-smartphone-embed:before {
+ content: "\eaa9";
+}
+
+.linearicons-smartphone-waves:before {
+ content: "\eaaa";
+}
+
+.linearicons-tablet:before {
+ content: "\eaab";
+}
+
+.linearicons-tablet2:before {
+ content: "\eaac";
+}
+
+.linearicons-laptop:before {
+ content: "\eaad";
+}
+
+.linearicons-laptop-phone:before {
+ content: "\eaae";
+}
+
+.linearicons-desktop:before {
+ content: "\eaaf";
+}
+
+.linearicons-launch:before {
+ content: "\eab0";
+}
+
+.linearicons-new-tab:before {
+ content: "\eab1";
+}
+
+.linearicons-window:before {
+ content: "\eab2";
+}
+
+.linearicons-cable:before {
+ content: "\eab3";
+}
+
+.linearicons-cable2:before {
+ content: "\eab4";
+}
+
+.linearicons-tv:before {
+ content: "\eab5";
+}
+
+.linearicons-radio:before {
+ content: "\eab6";
+}
+
+.linearicons-remote-control:before {
+ content: "\eab7";
+}
+
+.linearicons-power-switch:before {
+ content: "\eab8";
+}
+
+.linearicons-power:before {
+ content: "\eab9";
+}
+
+.linearicons-power-crossed:before {
+ content: "\eaba";
+}
+
+.linearicons-flash-auto:before {
+ content: "\eabb";
+}
+
+.linearicons-lamp:before {
+ content: "\eabc";
+}
+
+.linearicons-flashlight:before {
+ content: "\eabd";
+}
+
+.linearicons-lampshade:before {
+ content: "\eabe";
+}
+
+.linearicons-cord:before {
+ content: "\eabf";
+}
+
+.linearicons-outlet:before {
+ content: "\eac0";
+}
+
+.linearicons-battery-power:before {
+ content: "\eac1";
+}
+
+.linearicons-battery-empty:before {
+ content: "\eac2";
+}
+
+.linearicons-battery-alert:before {
+ content: "\eac3";
+}
+
+.linearicons-battery-error:before {
+ content: "\eac4";
+}
+
+.linearicons-battery-low1:before {
+ content: "\eac5";
+}
+
+.linearicons-battery-low2:before {
+ content: "\eac6";
+}
+
+.linearicons-battery-low3:before {
+ content: "\eac7";
+}
+
+.linearicons-battery-mid1:before {
+ content: "\eac8";
+}
+
+.linearicons-battery-mid2:before {
+ content: "\eac9";
+}
+
+.linearicons-battery-mid3:before {
+ content: "\eaca";
+}
+
+.linearicons-battery-full:before {
+ content: "\eacb";
+}
+
+.linearicons-battery-charging:before {
+ content: "\eacc";
+}
+
+.linearicons-battery-charging2:before {
+ content: "\eacd";
+}
+
+.linearicons-battery-charging3:before {
+ content: "\eace";
+}
+
+.linearicons-battery-charging4:before {
+ content: "\eacf";
+}
+
+.linearicons-battery-charging5:before {
+ content: "\ead0";
+}
+
+.linearicons-battery-charging6:before {
+ content: "\ead1";
+}
+
+.linearicons-battery-charging7:before {
+ content: "\ead2";
+}
+
+.linearicons-chip:before {
+ content: "\ead3";
+}
+
+.linearicons-chip-x64:before {
+ content: "\ead4";
+}
+
+.linearicons-chip-x86:before {
+ content: "\ead5";
+}
+
+.linearicons-bubble:before {
+ content: "\ead6";
+}
+
+.linearicons-bubbles:before {
+ content: "\ead7";
+}
+
+.linearicons-bubble-dots:before {
+ content: "\ead8";
+}
+
+.linearicons-bubble-alert:before {
+ content: "\ead9";
+}
+
+.linearicons-bubble-question:before {
+ content: "\eada";
+}
+
+.linearicons-bubble-text:before {
+ content: "\eadb";
+}
+
+.linearicons-bubble-pencil:before {
+ content: "\eadc";
+}
+
+.linearicons-bubble-picture:before {
+ content: "\eadd";
+}
+
+.linearicons-bubble-video:before {
+ content: "\eade";
+}
+
+.linearicons-bubble-user:before {
+ content: "\eadf";
+}
+
+.linearicons-bubble-quote:before {
+ content: "\eae0";
+}
+
+.linearicons-bubble-heart:before {
+ content: "\eae1";
+}
+
+.linearicons-bubble-emoticon:before {
+ content: "\eae2";
+}
+
+.linearicons-bubble-attachment:before {
+ content: "\eae3";
+}
+
+.linearicons-phone-bubble:before {
+ content: "\eae4";
+}
+
+.linearicons-quote-open:before {
+ content: "\eae5";
+}
+
+.linearicons-quote-close:before {
+ content: "\eae6";
+}
+
+.linearicons-dna:before {
+ content: "\eae7";
+}
+
+.linearicons-heart-pulse:before {
+ content: "\eae8";
+}
+
+.linearicons-pulse:before {
+ content: "\eae9";
+}
+
+.linearicons-syringe:before {
+ content: "\eaea";
+}
+
+.linearicons-pills:before {
+ content: "\eaeb";
+}
+
+.linearicons-first-aid:before {
+ content: "\eaec";
+}
+
+.linearicons-lifebuoy:before {
+ content: "\eaed";
+}
+
+.linearicons-bandage:before {
+ content: "\eaee";
+}
+
+.linearicons-bandages:before {
+ content: "\eaef";
+}
+
+.linearicons-thermometer:before {
+ content: "\eaf0";
+}
+
+.linearicons-microscope:before {
+ content: "\eaf1";
+}
+
+.linearicons-brain:before {
+ content: "\eaf2";
+}
+
+.linearicons-beaker:before {
+ content: "\eaf3";
+}
+
+.linearicons-skull:before {
+ content: "\eaf4";
+}
+
+.linearicons-bone:before {
+ content: "\eaf5";
+}
+
+.linearicons-construction:before {
+ content: "\eaf6";
+}
+
+.linearicons-construction-cone:before {
+ content: "\eaf7";
+}
+
+.linearicons-pie-chart:before {
+ content: "\eaf8";
+}
+
+.linearicons-pie-chart2:before {
+ content: "\eaf9";
+}
+
+.linearicons-graph:before {
+ content: "\eafa";
+}
+
+.linearicons-chart-growth:before {
+ content: "\eafb";
+}
+
+.linearicons-chart-bars:before {
+ content: "\eafc";
+}
+
+.linearicons-chart-settings:before {
+ content: "\eafd";
+}
+
+.linearicons-cake:before {
+ content: "\eafe";
+}
+
+.linearicons-gift:before {
+ content: "\eaff";
+}
+
+.linearicons-balloon:before {
+ content: "\eb00";
+}
+
+.linearicons-rank:before {
+ content: "\eb01";
+}
+
+.linearicons-rank2:before {
+ content: "\eb02";
+}
+
+.linearicons-rank3:before {
+ content: "\eb03";
+}
+
+.linearicons-crown:before {
+ content: "\eb04";
+}
+
+.linearicons-lotus:before {
+ content: "\eb05";
+}
+
+.linearicons-diamond:before {
+ content: "\eb06";
+}
+
+.linearicons-diamond2:before {
+ content: "\eb07";
+}
+
+.linearicons-diamond3:before {
+ content: "\eb08";
+}
+
+.linearicons-diamond4:before {
+ content: "\eb09";
+}
+
+.linearicons-linearicons:before {
+ content: "\eb0a";
+}
+
+.linearicons-teacup:before {
+ content: "\eb0b";
+}
+
+.linearicons-teapot:before {
+ content: "\eb0c";
+}
+
+.linearicons-glass:before {
+ content: "\eb0d";
+}
+
+.linearicons-bottle2:before {
+ content: "\eb0e";
+}
+
+.linearicons-glass-cocktail:before {
+ content: "\eb0f";
+}
+
+.linearicons-glass2:before {
+ content: "\eb10";
+}
+
+.linearicons-dinner:before {
+ content: "\eb11";
+}
+
+.linearicons-dinner2:before {
+ content: "\eb12";
+}
+
+.linearicons-chef:before {
+ content: "\eb13";
+}
+
+.linearicons-scale2:before {
+ content: "\eb14";
+}
+
+.linearicons-egg:before {
+ content: "\eb15";
+}
+
+.linearicons-egg2:before {
+ content: "\eb16";
+}
+
+.linearicons-eggs:before {
+ content: "\eb17";
+}
+
+.linearicons-platter:before {
+ content: "\eb18";
+}
+
+.linearicons-steak:before {
+ content: "\eb19";
+}
+
+.linearicons-hamburger:before {
+ content: "\eb1a";
+}
+
+.linearicons-hotdog:before {
+ content: "\eb1b";
+}
+
+.linearicons-pizza:before {
+ content: "\eb1c";
+}
+
+.linearicons-sausage:before {
+ content: "\eb1d";
+}
+
+.linearicons-chicken:before {
+ content: "\eb1e";
+}
+
+.linearicons-fish:before {
+ content: "\eb1f";
+}
+
+.linearicons-carrot:before {
+ content: "\eb20";
+}
+
+.linearicons-cheese:before {
+ content: "\eb21";
+}
+
+.linearicons-bread:before {
+ content: "\eb22";
+}
+
+.linearicons-ice-cream:before {
+ content: "\eb23";
+}
+
+.linearicons-ice-cream2:before {
+ content: "\eb24";
+}
+
+.linearicons-candy:before {
+ content: "\eb25";
+}
+
+.linearicons-lollipop:before {
+ content: "\eb26";
+}
+
+.linearicons-coffee-bean:before {
+ content: "\eb27";
+}
+
+.linearicons-coffee-cup:before {
+ content: "\eb28";
+}
+
+.linearicons-cherry:before {
+ content: "\eb29";
+}
+
+.linearicons-grapes:before {
+ content: "\eb2a";
+}
+
+.linearicons-citrus:before {
+ content: "\eb2b";
+}
+
+.linearicons-apple:before {
+ content: "\eb2c";
+}
+
+.linearicons-leaf:before {
+ content: "\eb2d";
+}
+
+.linearicons-landscape:before {
+ content: "\eb2e";
+}
+
+.linearicons-pine-tree:before {
+ content: "\eb2f";
+}
+
+.linearicons-tree:before {
+ content: "\eb30";
+}
+
+.linearicons-cactus:before {
+ content: "\eb31";
+}
+
+.linearicons-paw:before {
+ content: "\eb32";
+}
+
+.linearicons-footprint:before {
+ content: "\eb33";
+}
+
+.linearicons-speed-slow:before {
+ content: "\eb34";
+}
+
+.linearicons-speed-medium:before {
+ content: "\eb35";
+}
+
+.linearicons-speed-fast:before {
+ content: "\eb36";
+}
+
+.linearicons-rocket:before {
+ content: "\eb37";
+}
+
+.linearicons-hammer2:before {
+ content: "\eb38";
+}
+
+.linearicons-balance:before {
+ content: "\eb39";
+}
+
+.linearicons-briefcase:before {
+ content: "\eb3a";
+}
+
+.linearicons-luggage-weight:before {
+ content: "\eb3b";
+}
+
+.linearicons-dolly:before {
+ content: "\eb3c";
+}
+
+.linearicons-plane:before {
+ content: "\eb3d";
+}
+
+.linearicons-plane-crossed:before {
+ content: "\eb3e";
+}
+
+.linearicons-helicopter:before {
+ content: "\eb3f";
+}
+
+.linearicons-traffic-lights:before {
+ content: "\eb40";
+}
+
+.linearicons-siren:before {
+ content: "\eb41";
+}
+
+.linearicons-road:before {
+ content: "\eb42";
+}
+
+.linearicons-engine:before {
+ content: "\eb43";
+}
+
+.linearicons-oil-pressure:before {
+ content: "\eb44";
+}
+
+.linearicons-coolant-temperature:before {
+ content: "\eb45";
+}
+
+.linearicons-car-battery:before {
+ content: "\eb46";
+}
+
+.linearicons-gas:before {
+ content: "\eb47";
+}
+
+.linearicons-gallon:before {
+ content: "\eb48";
+}
+
+.linearicons-transmission:before {
+ content: "\eb49";
+}
+
+.linearicons-car:before {
+ content: "\eb4a";
+}
+
+.linearicons-car-wash:before {
+ content: "\eb4b";
+}
+
+.linearicons-car-wash2:before {
+ content: "\eb4c";
+}
+
+.linearicons-bus:before {
+ content: "\eb4d";
+}
+
+.linearicons-bus2:before {
+ content: "\eb4e";
+}
+
+.linearicons-car2:before {
+ content: "\eb4f";
+}
+
+.linearicons-parking:before {
+ content: "\eb50";
+}
+
+.linearicons-car-lock:before {
+ content: "\eb51";
+}
+
+.linearicons-taxi:before {
+ content: "\eb52";
+}
+
+.linearicons-car-siren:before {
+ content: "\eb53";
+}
+
+.linearicons-car-wash3:before {
+ content: "\eb54";
+}
+
+.linearicons-car-wash4:before {
+ content: "\eb55";
+}
+
+.linearicons-ambulance:before {
+ content: "\eb56";
+}
+
+.linearicons-truck:before {
+ content: "\eb57";
+}
+
+.linearicons-trailer:before {
+ content: "\eb58";
+}
+
+.linearicons-scale-truck:before {
+ content: "\eb59";
+}
+
+.linearicons-train:before {
+ content: "\eb5a";
+}
+
+.linearicons-ship:before {
+ content: "\eb5b";
+}
+
+.linearicons-ship2:before {
+ content: "\eb5c";
+}
+
+.linearicons-anchor:before {
+ content: "\eb5d";
+}
+
+.linearicons-boat:before {
+ content: "\eb5e";
+}
+
+.linearicons-bicycle:before {
+ content: "\eb5f";
+}
+
+.linearicons-bicycle2:before {
+ content: "\eb60";
+}
+
+.linearicons-dumbbell:before {
+ content: "\eb61";
+}
+
+.linearicons-bench-press:before {
+ content: "\eb62";
+}
+
+.linearicons-swim:before {
+ content: "\eb63";
+}
+
+.linearicons-football:before {
+ content: "\eb64";
+}
+
+.linearicons-baseball-bat:before {
+ content: "\eb65";
+}
+
+.linearicons-baseball:before {
+ content: "\eb66";
+}
+
+.linearicons-tennis:before {
+ content: "\eb67";
+}
+
+.linearicons-tennis2:before {
+ content: "\eb68";
+}
+
+.linearicons-ping-pong:before {
+ content: "\eb69";
+}
+
+.linearicons-hockey:before {
+ content: "\eb6a";
+}
+
+.linearicons-8ball:before {
+ content: "\eb6b";
+}
+
+.linearicons-bowling:before {
+ content: "\eb6c";
+}
+
+.linearicons-bowling-pins:before {
+ content: "\eb6d";
+}
+
+.linearicons-golf:before {
+ content: "\eb6e";
+}
+
+.linearicons-golf2:before {
+ content: "\eb6f";
+}
+
+.linearicons-archery:before {
+ content: "\eb70";
+}
+
+.linearicons-slingshot:before {
+ content: "\eb71";
+}
+
+.linearicons-soccer:before {
+ content: "\eb72";
+}
+
+.linearicons-basketball:before {
+ content: "\eb73";
+}
+
+.linearicons-cube:before {
+ content: "\eb74";
+}
+
+.linearicons-3d-rotate:before {
+ content: "\eb75";
+}
+
+.linearicons-puzzle:before {
+ content: "\eb76";
+}
+
+.linearicons-glasses:before {
+ content: "\eb77";
+}
+
+.linearicons-glasses2:before {
+ content: "\eb78";
+}
+
+.linearicons-accessibility:before {
+ content: "\eb79";
+}
+
+.linearicons-wheelchair:before {
+ content: "\eb7a";
+}
+
+.linearicons-wall:before {
+ content: "\eb7b";
+}
+
+.linearicons-fence:before {
+ content: "\eb7c";
+}
+
+.linearicons-wall2:before {
+ content: "\eb7d";
+}
+
+.linearicons-icons:before {
+ content: "\eb7e";
+}
+
+.linearicons-resize-handle:before {
+ content: "\eb7f";
+}
+
+.linearicons-icons2:before {
+ content: "\eb80";
+}
+
+.linearicons-select:before {
+ content: "\eb81";
+}
+
+.linearicons-select2:before {
+ content: "\eb82";
+}
+
+.linearicons-site-map:before {
+ content: "\eb83";
+}
+
+.linearicons-earth:before {
+ content: "\eb84";
+}
+
+.linearicons-earth-lock:before {
+ content: "\eb85";
+}
+
+.linearicons-network:before {
+ content: "\eb86";
+}
+
+.linearicons-network-lock:before {
+ content: "\eb87";
+}
+
+.linearicons-planet:before {
+ content: "\eb88";
+}
+
+.linearicons-happy:before {
+ content: "\eb89";
+}
+
+.linearicons-smile:before {
+ content: "\eb8a";
+}
+
+.linearicons-grin:before {
+ content: "\eb8b";
+}
+
+.linearicons-tongue:before {
+ content: "\eb8c";
+}
+
+.linearicons-sad:before {
+ content: "\eb8d";
+}
+
+.linearicons-wink:before {
+ content: "\eb8e";
+}
+
+.linearicons-dream:before {
+ content: "\eb8f";
+}
+
+.linearicons-shocked:before {
+ content: "\eb90";
+}
+
+.linearicons-shocked2:before {
+ content: "\eb91";
+}
+
+.linearicons-tongue2:before {
+ content: "\eb92";
+}
+
+.linearicons-neutral:before {
+ content: "\eb93";
+}
+
+.linearicons-happy-grin:before {
+ content: "\eb94";
+}
+
+.linearicons-cool:before {
+ content: "\eb95";
+}
+
+.linearicons-mad:before {
+ content: "\eb96";
+}
+
+.linearicons-grin-evil:before {
+ content: "\eb97";
+}
+
+.linearicons-evil:before {
+ content: "\eb98";
+}
+
+.linearicons-wow:before {
+ content: "\eb99";
+}
+
+.linearicons-annoyed:before {
+ content: "\eb9a";
+}
+
+.linearicons-wondering:before {
+ content: "\eb9b";
+}
+
+.linearicons-confused:before {
+ content: "\eb9c";
+}
+
+.linearicons-zipped:before {
+ content: "\eb9d";
+}
+
+.linearicons-grumpy:before {
+ content: "\eb9e";
+}
+
+.linearicons-mustache:before {
+ content: "\eb9f";
+}
+
+.linearicons-tombstone-hipster:before {
+ content: "\eba0";
+}
+
+.linearicons-tombstone:before {
+ content: "\eba1";
+}
+
+.linearicons-ghost:before {
+ content: "\eba2";
+}
+
+.linearicons-ghost-hipster:before {
+ content: "\eba3";
+}
+
+.linearicons-halloween:before {
+ content: "\eba4";
+}
+
+.linearicons-christmas:before {
+ content: "\eba5";
+}
+
+.linearicons-easter-egg:before {
+ content: "\eba6";
+}
+
+.linearicons-mustache2:before {
+ content: "\eba7";
+}
+
+.linearicons-mustache-glasses:before {
+ content: "\eba8";
+}
+
+.linearicons-pipe:before {
+ content: "\eba9";
+}
+
+.linearicons-alarm:before {
+ content: "\ebaa";
+}
+
+.linearicons-alarm-add:before {
+ content: "\ebab";
+}
+
+.linearicons-alarm-snooze:before {
+ content: "\ebac";
+}
+
+.linearicons-alarm-ringing:before {
+ content: "\ebad";
+}
+
+.linearicons-bullhorn:before {
+ content: "\ebae";
+}
+
+.linearicons-hearing:before {
+ content: "\ebaf";
+}
+
+.linearicons-volume-high:before {
+ content: "\ebb0";
+}
+
+.linearicons-volume-medium:before {
+ content: "\ebb1";
+}
+
+.linearicons-volume-low:before {
+ content: "\ebb2";
+}
+
+.linearicons-volume:before {
+ content: "\ebb3";
+}
+
+.linearicons-mute:before {
+ content: "\ebb4";
+}
+
+.linearicons-lan:before {
+ content: "\ebb5";
+}
+
+.linearicons-lan2:before {
+ content: "\ebb6";
+}
+
+.linearicons-wifi:before {
+ content: "\ebb7";
+}
+
+.linearicons-wifi-lock:before {
+ content: "\ebb8";
+}
+
+.linearicons-wifi-blocked:before {
+ content: "\ebb9";
+}
+
+.linearicons-wifi-mid:before {
+ content: "\ebba";
+}
+
+.linearicons-wifi-low:before {
+ content: "\ebbb";
+}
+
+.linearicons-wifi-low2:before {
+ content: "\ebbc";
+}
+
+.linearicons-wifi-alert:before {
+ content: "\ebbd";
+}
+
+.linearicons-wifi-alert-mid:before {
+ content: "\ebbe";
+}
+
+.linearicons-wifi-alert-low:before {
+ content: "\ebbf";
+}
+
+.linearicons-wifi-alert-low2:before {
+ content: "\ebc0";
+}
+
+.linearicons-stream:before {
+ content: "\ebc1";
+}
+
+.linearicons-stream-check:before {
+ content: "\ebc2";
+}
+
+.linearicons-stream-error:before {
+ content: "\ebc3";
+}
+
+.linearicons-stream-alert:before {
+ content: "\ebc4";
+}
+
+.linearicons-communication:before {
+ content: "\ebc5";
+}
+
+.linearicons-communication-crossed:before {
+ content: "\ebc6";
+}
+
+.linearicons-broadcast:before {
+ content: "\ebc7";
+}
+
+.linearicons-antenna:before {
+ content: "\ebc8";
+}
+
+.linearicons-satellite:before {
+ content: "\ebc9";
+}
+
+.linearicons-satellite2:before {
+ content: "\ebca";
+}
+
+.linearicons-mic:before {
+ content: "\ebcb";
+}
+
+.linearicons-mic-mute:before {
+ content: "\ebcc";
+}
+
+.linearicons-mic2:before {
+ content: "\ebcd";
+}
+
+.linearicons-spotlights:before {
+ content: "\ebce";
+}
+
+.linearicons-hourglass:before {
+ content: "\ebcf";
+}
+
+.linearicons-loading:before {
+ content: "\ebd0";
+}
+
+.linearicons-loading2:before {
+ content: "\ebd1";
+}
+
+.linearicons-loading3:before {
+ content: "\ebd2";
+}
+
+.linearicons-refresh:before {
+ content: "\ebd3";
+}
+
+.linearicons-refresh2:before {
+ content: "\ebd4";
+}
+
+.linearicons-undo:before {
+ content: "\ebd5";
+}
+
+.linearicons-redo:before {
+ content: "\ebd6";
+}
+
+.linearicons-jump2:before {
+ content: "\ebd7";
+}
+
+.linearicons-undo2:before {
+ content: "\ebd8";
+}
+
+.linearicons-redo2:before {
+ content: "\ebd9";
+}
+
+.linearicons-sync:before {
+ content: "\ebda";
+}
+
+.linearicons-repeat-one2:before {
+ content: "\ebdb";
+}
+
+.linearicons-sync-crossed:before {
+ content: "\ebdc";
+}
+
+.linearicons-sync2:before {
+ content: "\ebdd";
+}
+
+.linearicons-repeat-one3:before {
+ content: "\ebde";
+}
+
+.linearicons-sync-crossed2:before {
+ content: "\ebdf";
+}
+
+.linearicons-return:before {
+ content: "\ebe0";
+}
+
+.linearicons-return2:before {
+ content: "\ebe1";
+}
+
+.linearicons-refund:before {
+ content: "\ebe2";
+}
+
+.linearicons-history:before {
+ content: "\ebe3";
+}
+
+.linearicons-history2:before {
+ content: "\ebe4";
+}
+
+.linearicons-self-timer:before {
+ content: "\ebe5";
+}
+
+.linearicons-clock:before {
+ content: "\ebe6";
+}
+
+.linearicons-clock2:before {
+ content: "\ebe7";
+}
+
+.linearicons-clock3:before {
+ content: "\ebe8";
+}
+
+.linearicons-watch:before {
+ content: "\ebe9";
+}
+
+.linearicons-alarm2:before {
+ content: "\ebea";
+}
+
+.linearicons-alarm-add2:before {
+ content: "\ebeb";
+}
+
+.linearicons-alarm-remove:before {
+ content: "\ebec";
+}
+
+.linearicons-alarm-check:before {
+ content: "\ebed";
+}
+
+.linearicons-alarm-error:before {
+ content: "\ebee";
+}
+
+.linearicons-timer:before {
+ content: "\ebef";
+}
+
+.linearicons-timer-crossed:before {
+ content: "\ebf0";
+}
+
+.linearicons-timer2:before {
+ content: "\ebf1";
+}
+
+.linearicons-timer-crossed2:before {
+ content: "\ebf2";
+}
+
+.linearicons-download:before {
+ content: "\ebf3";
+}
+
+.linearicons-upload:before {
+ content: "\ebf4";
+}
+
+.linearicons-download2:before {
+ content: "\ebf5";
+}
+
+.linearicons-upload2:before {
+ content: "\ebf6";
+}
+
+.linearicons-enter-up:before {
+ content: "\ebf7";
+}
+
+.linearicons-enter-down:before {
+ content: "\ebf8";
+}
+
+.linearicons-enter-left:before {
+ content: "\ebf9";
+}
+
+.linearicons-enter-right:before {
+ content: "\ebfa";
+}
+
+.linearicons-exit-up:before {
+ content: "\ebfb";
+}
+
+.linearicons-exit-down:before {
+ content: "\ebfc";
+}
+
+.linearicons-exit-left:before {
+ content: "\ebfd";
+}
+
+.linearicons-exit-right:before {
+ content: "\ebfe";
+}
+
+.linearicons-enter-up2:before {
+ content: "\ebff";
+}
+
+.linearicons-enter-down2:before {
+ content: "\ec00";
+}
+
+.linearicons-enter-vertical:before {
+ content: "\ec01";
+}
+
+.linearicons-enter-left2:before {
+ content: "\ec02";
+}
+
+.linearicons-enter-right2:before {
+ content: "\ec03";
+}
+
+.linearicons-enter-horizontal:before {
+ content: "\ec04";
+}
+
+.linearicons-exit-up2:before {
+ content: "\ec05";
+}
+
+.linearicons-exit-down2:before {
+ content: "\ec06";
+}
+
+.linearicons-exit-left2:before {
+ content: "\ec07";
+}
+
+.linearicons-exit-right2:before {
+ content: "\ec08";
+}
+
+.linearicons-cli:before {
+ content: "\ec09";
+}
+
+.linearicons-bug:before {
+ content: "\ec0a";
+}
+
+.linearicons-code:before {
+ content: "\ec0b";
+}
+
+.linearicons-file-code:before {
+ content: "\ec0c";
+}
+
+.linearicons-file-image:before {
+ content: "\ec0d";
+}
+
+.linearicons-file-zip:before {
+ content: "\ec0e";
+}
+
+.linearicons-file-audio:before {
+ content: "\ec0f";
+}
+
+.linearicons-file-video:before {
+ content: "\ec10";
+}
+
+.linearicons-file-preview:before {
+ content: "\ec11";
+}
+
+.linearicons-file-charts:before {
+ content: "\ec12";
+}
+
+.linearicons-file-stats:before {
+ content: "\ec13";
+}
+
+.linearicons-file-spreadsheet:before {
+ content: "\ec14";
+}
+
+.linearicons-link:before {
+ content: "\ec15";
+}
+
+.linearicons-unlink:before {
+ content: "\ec16";
+}
+
+.linearicons-link2:before {
+ content: "\ec17";
+}
+
+.linearicons-unlink2:before {
+ content: "\ec18";
+}
+
+.linearicons-thumbs-up:before {
+ content: "\ec19";
+}
+
+.linearicons-thumbs-down:before {
+ content: "\ec1a";
+}
+
+.linearicons-thumbs-up2:before {
+ content: "\ec1b";
+}
+
+.linearicons-thumbs-down2:before {
+ content: "\ec1c";
+}
+
+.linearicons-thumbs-up3:before {
+ content: "\ec1d";
+}
+
+.linearicons-thumbs-down3:before {
+ content: "\ec1e";
+}
+
+.linearicons-share:before {
+ content: "\ec1f";
+}
+
+.linearicons-share2:before {
+ content: "\ec20";
+}
+
+.linearicons-share3:before {
+ content: "\ec21";
+}
+
+.linearicons-magnifier:before {
+ content: "\ec22";
+}
+
+.linearicons-file-search:before {
+ content: "\ec23";
+}
+
+.linearicons-find-replace:before {
+ content: "\ec24";
+}
+
+.linearicons-zoom-in:before {
+ content: "\ec25";
+}
+
+.linearicons-zoom-out:before {
+ content: "\ec26";
+}
+
+.linearicons-loupe:before {
+ content: "\ec27";
+}
+
+.linearicons-loupe-zoom-in:before {
+ content: "\ec28";
+}
+
+.linearicons-loupe-zoom-out:before {
+ content: "\ec29";
+}
+
+.linearicons-cross:before {
+ content: "\ec2a";
+}
+
+.linearicons-menu:before {
+ content: "\ec2b";
+}
+
+.linearicons-list:before {
+ content: "\ec2c";
+}
+
+.linearicons-list2:before {
+ content: "\ec2d";
+}
+
+.linearicons-list3:before {
+ content: "\ec2e";
+}
+
+.linearicons-menu2:before {
+ content: "\ec2f";
+}
+
+.linearicons-list4:before {
+ content: "\ec30";
+}
+
+.linearicons-menu3:before {
+ content: "\ec31";
+}
+
+.linearicons-exclamation:before {
+ content: "\ec32";
+}
+
+.linearicons-question:before {
+ content: "\ec33";
+}
+
+.linearicons-check:before {
+ content: "\ec34";
+}
+
+.linearicons-cross2:before {
+ content: "\ec35";
+}
+
+.linearicons-plus:before {
+ content: "\ec36";
+}
+
+.linearicons-minus:before {
+ content: "\ec37";
+}
+
+.linearicons-percent:before {
+ content: "\ec38";
+}
+
+.linearicons-chevron-up:before {
+ content: "\ec39";
+}
+
+.linearicons-chevron-down:before {
+ content: "\ec3a";
+}
+
+.linearicons-chevron-left:before {
+ content: "\ec3b";
+}
+
+.linearicons-chevron-right:before {
+ content: "\ec3c";
+}
+
+.linearicons-chevrons-expand-vertical:before {
+ content: "\ec3d";
+}
+
+.linearicons-chevrons-expand-horizontal:before {
+ content: "\ec3e";
+}
+
+.linearicons-chevrons-contract-vertical:before {
+ content: "\ec3f";
+}
+
+.linearicons-chevrons-contract-horizontal:before {
+ content: "\ec40";
+}
+
+.linearicons-arrow-up:before {
+ content: "\ec41";
+}
+
+.linearicons-arrow-down:before {
+ content: "\ec42";
+}
+
+.linearicons-arrow-left:before {
+ content: "\ec43";
+}
+
+.linearicons-arrow-right:before {
+ content: "\ec44";
+}
+
+.linearicons-arrow-up-right:before {
+ content: "\ec45";
+}
+
+.linearicons-arrows-merge:before {
+ content: "\ec46";
+}
+
+.linearicons-arrows-split:before {
+ content: "\ec47";
+}
+
+.linearicons-arrow-divert:before {
+ content: "\ec48";
+}
+
+.linearicons-arrow-return:before {
+ content: "\ec49";
+}
+
+.linearicons-expand:before {
+ content: "\ec4a";
+}
+
+.linearicons-contract:before {
+ content: "\ec4b";
+}
+
+.linearicons-expand2:before {
+ content: "\ec4c";
+}
+
+.linearicons-contract2:before {
+ content: "\ec4d";
+}
+
+.linearicons-move:before {
+ content: "\ec4e";
+}
+
+.linearicons-tab:before {
+ content: "\ec4f";
+}
+
+.linearicons-arrow-wave:before {
+ content: "\ec50";
+}
+
+.linearicons-expand3:before {
+ content: "\ec51";
+}
+
+.linearicons-expand4:before {
+ content: "\ec52";
+}
+
+.linearicons-contract3:before {
+ content: "\ec53";
+}
+
+.linearicons-notification:before {
+ content: "\ec54";
+}
+
+.linearicons-warning:before {
+ content: "\ec55";
+}
+
+.linearicons-notification-circle:before {
+ content: "\ec56";
+}
+
+.linearicons-question-circle:before {
+ content: "\ec57";
+}
+
+.linearicons-menu-circle:before {
+ content: "\ec58";
+}
+
+.linearicons-checkmark-circle:before {
+ content: "\ec59";
+}
+
+.linearicons-cross-circle:before {
+ content: "\ec5a";
+}
+
+.linearicons-plus-circle:before {
+ content: "\ec5b";
+}
+
+.linearicons-circle-minus:before {
+ content: "\ec5c";
+}
+
+.linearicons-percent-circle:before {
+ content: "\ec5d";
+}
+
+.linearicons-arrow-up-circle:before {
+ content: "\ec5e";
+}
+
+.linearicons-arrow-down-circle:before {
+ content: "\ec5f";
+}
+
+.linearicons-arrow-left-circle:before {
+ content: "\ec60";
+}
+
+.linearicons-arrow-right-circle:before {
+ content: "\ec61";
+}
+
+.linearicons-chevron-up-circle:before {
+ content: "\ec62";
+}
+
+.linearicons-chevron-down-circle:before {
+ content: "\ec63";
+}
+
+.linearicons-chevron-left-circle:before {
+ content: "\ec64";
+}
+
+.linearicons-chevron-right-circle:before {
+ content: "\ec65";
+}
+
+.linearicons-backward-circle:before {
+ content: "\ec66";
+}
+
+.linearicons-first-circle:before {
+ content: "\ec67";
+}
+
+.linearicons-previous-circle:before {
+ content: "\ec68";
+}
+
+.linearicons-stop-circle:before {
+ content: "\ec69";
+}
+
+.linearicons-play-circle:before {
+ content: "\ec6a";
+}
+
+.linearicons-pause-circle:before {
+ content: "\ec6b";
+}
+
+.linearicons-next-circle:before {
+ content: "\ec6c";
+}
+
+.linearicons-last-circle:before {
+ content: "\ec6d";
+}
+
+.linearicons-forward-circle:before {
+ content: "\ec6e";
+}
+
+.linearicons-eject-circle:before {
+ content: "\ec6f";
+}
+
+.linearicons-crop:before {
+ content: "\ec70";
+}
+
+.linearicons-frame-expand:before {
+ content: "\ec71";
+}
+
+.linearicons-frame-contract:before {
+ content: "\ec72";
+}
+
+.linearicons-focus:before {
+ content: "\ec73";
+}
+
+.linearicons-transform:before {
+ content: "\ec74";
+}
+
+.linearicons-grid:before {
+ content: "\ec75";
+}
+
+.linearicons-grid-crossed:before {
+ content: "\ec76";
+}
+
+.linearicons-layers:before {
+ content: "\ec77";
+}
+
+.linearicons-layers-crossed:before {
+ content: "\ec78";
+}
+
+.linearicons-toggle:before {
+ content: "\ec79";
+}
+
+.linearicons-rulers:before {
+ content: "\ec7a";
+}
+
+.linearicons-ruler:before {
+ content: "\ec7b";
+}
+
+.linearicons-funnel:before {
+ content: "\ec7c";
+}
+
+.linearicons-flip-horizontal:before {
+ content: "\ec7d";
+}
+
+.linearicons-flip-vertical:before {
+ content: "\ec7e";
+}
+
+.linearicons-flip-horizontal2:before {
+ content: "\ec7f";
+}
+
+.linearicons-flip-vertical2:before {
+ content: "\ec80";
+}
+
+.linearicons-angle:before {
+ content: "\ec81";
+}
+
+.linearicons-angle2:before {
+ content: "\ec82";
+}
+
+.linearicons-subtract:before {
+ content: "\ec83";
+}
+
+.linearicons-combine:before {
+ content: "\ec84";
+}
+
+.linearicons-intersect:before {
+ content: "\ec85";
+}
+
+.linearicons-exclude:before {
+ content: "\ec86";
+}
+
+.linearicons-align-center-vertical:before {
+ content: "\ec87";
+}
+
+.linearicons-align-right:before {
+ content: "\ec88";
+}
+
+.linearicons-align-bottom:before {
+ content: "\ec89";
+}
+
+.linearicons-align-left:before {
+ content: "\ec8a";
+}
+
+.linearicons-align-center-horizontal:before {
+ content: "\ec8b";
+}
+
+.linearicons-align-top:before {
+ content: "\ec8c";
+}
+
+.linearicons-square:before {
+ content: "\ec8d";
+}
+
+.linearicons-plus-square:before {
+ content: "\ec8e";
+}
+
+.linearicons-minus-square:before {
+ content: "\ec8f";
+}
+
+.linearicons-percent-square:before {
+ content: "\ec90";
+}
+
+.linearicons-arrow-up-square:before {
+ content: "\ec91";
+}
+
+.linearicons-arrow-down-square:before {
+ content: "\ec92";
+}
+
+.linearicons-arrow-left-square:before {
+ content: "\ec93";
+}
+
+.linearicons-arrow-right-square:before {
+ content: "\ec94";
+}
+
+.linearicons-chevron-up-square:before {
+ content: "\ec95";
+}
+
+.linearicons-chevron-down-square:before {
+ content: "\ec96";
+}
+
+.linearicons-chevron-left-square:before {
+ content: "\ec97";
+}
+
+.linearicons-chevron-right-square:before {
+ content: "\ec98";
+}
+
+.linearicons-check-square:before {
+ content: "\ec99";
+}
+
+.linearicons-cross-square:before {
+ content: "\ec9a";
+}
+
+.linearicons-menu-square:before {
+ content: "\ec9b";
+}
+
+.linearicons-prohibited:before {
+ content: "\ec9c";
+}
+
+.linearicons-circle:before {
+ content: "\ec9d";
+}
+
+.linearicons-radio-button:before {
+ content: "\ec9e";
+}
+
+.linearicons-ligature:before {
+ content: "\ec9f";
+}
+
+.linearicons-text-format:before {
+ content: "\eca0";
+}
+
+.linearicons-text-format-remove:before {
+ content: "\eca1";
+}
+
+.linearicons-text-size:before {
+ content: "\eca2";
+}
+
+.linearicons-bold:before {
+ content: "\eca3";
+}
+
+.linearicons-italic:before {
+ content: "\eca4";
+}
+
+.linearicons-underline:before {
+ content: "\eca5";
+}
+
+.linearicons-strikethrough:before {
+ content: "\eca6";
+}
+
+.linearicons-highlight:before {
+ content: "\eca7";
+}
+
+.linearicons-text-align-left:before {
+ content: "\eca8";
+}
+
+.linearicons-text-align-center:before {
+ content: "\eca9";
+}
+
+.linearicons-text-align-right:before {
+ content: "\ecaa";
+}
+
+.linearicons-text-align-justify:before {
+ content: "\ecab";
+}
+
+.linearicons-line-spacing:before {
+ content: "\ecac";
+}
+
+.linearicons-indent-increase:before {
+ content: "\ecad";
+}
+
+.linearicons-indent-decrease:before {
+ content: "\ecae";
+}
+
+.linearicons-text-wrap:before {
+ content: "\ecaf";
+}
+
+.linearicons-pilcrow:before {
+ content: "\ecb0";
+}
+
+.linearicons-direction-ltr:before {
+ content: "\ecb1";
+}
+
+.linearicons-direction-rtl:before {
+ content: "\ecb2";
+}
+
+.linearicons-page-break:before {
+ content: "\ecb3";
+}
+
+.linearicons-page-break2:before {
+ content: "\ecb4";
+}
+
+.linearicons-sort-alpha-asc:before {
+ content: "\ecb5";
+}
+
+.linearicons-sort-alpha-desc:before {
+ content: "\ecb6";
+}
+
+.linearicons-sort-numeric-asc:before {
+ content: "\ecb7";
+}
+
+.linearicons-sort-numeric-desc:before {
+ content: "\ecb8";
+}
+
+.linearicons-sort-amount-asc:before {
+ content: "\ecb9";
+}
+
+.linearicons-sort-amount-desc:before {
+ content: "\ecba";
+}
+
+.linearicons-sort-time-asc:before {
+ content: "\ecbb";
+}
+
+.linearicons-sort-time-desc:before {
+ content: "\ecbc";
+}
+
+.linearicons-sigma:before {
+ content: "\ecbd";
+}
+
+.linearicons-pencil-line:before {
+ content: "\ecbe";
+}
+
+.linearicons-hand:before {
+ content: "\ecbf";
+}
+
+.linearicons-pointer-up:before {
+ content: "\ecc0";
+}
+
+.linearicons-pointer-right:before {
+ content: "\ecc1";
+}
+
+.linearicons-pointer-down:before {
+ content: "\ecc2";
+}
+
+.linearicons-pointer-left:before {
+ content: "\ecc3";
+}
+
+.linearicons-finger-tap:before {
+ content: "\ecc4";
+}
+
+.linearicons-fingers-tap:before {
+ content: "\ecc5";
+}
+
+.linearicons-reminder:before {
+ content: "\ecc6";
+}
+
+.linearicons-fingers-crossed:before {
+ content: "\ecc7";
+}
+
+.linearicons-fingers-victory:before {
+ content: "\ecc8";
+}
+
+.linearicons-gesture-zoom:before {
+ content: "\ecc9";
+}
+
+.linearicons-gesture-pinch:before {
+ content: "\ecca";
+}
+
+.linearicons-fingers-scroll-horizontal:before {
+ content: "\eccb";
+}
+
+.linearicons-fingers-scroll-vertical:before {
+ content: "\eccc";
+}
+
+.linearicons-fingers-scroll-left:before {
+ content: "\eccd";
+}
+
+.linearicons-fingers-scroll-right:before {
+ content: "\ecce";
+}
+
+.linearicons-hand2:before {
+ content: "\eccf";
+}
+
+.linearicons-pointer-up2:before {
+ content: "\ecd0";
+}
+
+.linearicons-pointer-right2:before {
+ content: "\ecd1";
+}
+
+.linearicons-pointer-down2:before {
+ content: "\ecd2";
+}
+
+.linearicons-pointer-left2:before {
+ content: "\ecd3";
+}
+
+.linearicons-finger-tap2:before {
+ content: "\ecd4";
+}
+
+.linearicons-fingers-tap2:before {
+ content: "\ecd5";
+}
+
+.linearicons-reminder2:before {
+ content: "\ecd6";
+}
+
+.linearicons-gesture-zoom2:before {
+ content: "\ecd7";
+}
+
+.linearicons-gesture-pinch2:before {
+ content: "\ecd8";
+}
+
+.linearicons-fingers-scroll-horizontal2:before {
+ content: "\ecd9";
+}
+
+.linearicons-fingers-scroll-vertical2:before {
+ content: "\ecda";
+}
+
+.linearicons-fingers-scroll-left2:before {
+ content: "\ecdb";
+}
+
+.linearicons-fingers-scroll-right2:before {
+ content: "\ecdc";
+}
+
+.linearicons-fingers-scroll-vertical3:before {
+ content: "\ecdd";
+}
+
+.linearicons-border-style:before {
+ content: "\ecde";
+}
+
+.linearicons-border-all:before {
+ content: "\ecdf";
+}
+
+.linearicons-border-outer:before {
+ content: "\ece0";
+}
+
+.linearicons-border-inner:before {
+ content: "\ece1";
+}
+
+.linearicons-border-top:before {
+ content: "\ece2";
+}
+
+.linearicons-border-horizontal:before {
+ content: "\ece3";
+}
+
+.linearicons-border-bottom:before {
+ content: "\ece4";
+}
+
+.linearicons-border-left:before {
+ content: "\ece5";
+}
+
+.linearicons-border-vertical:before {
+ content: "\ece6";
+}
+
+.linearicons-border-right:before {
+ content: "\ece7";
+}
+
+.linearicons-border-none:before {
+ content: "\ece8";
+}
+
+.linearicons-ellipsis:before {
+ content: "\ece9";
+}
+
+@font-face {
+ font-family: 'Restaurant Regular';
+ src: url("../fonts/Restaurant-Regular.eot?87209526");
+ src: url("../fonts/Restaurant-Regular.eot?87209526#iefix") format("embedded-opentype"), url("../fonts/Restaurant-Regular.woff?87209526") format("woff"), url("../fonts/Restaurant-Regular.ttf?87209526") format("truetype"), url("../fonts/Restaurant-Regular.svg?87209526#mercury") format("svg");
+ font-weight: normal;
+ font-style: normal;
+}
+
+/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
+/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
+/*
+@media screen and (-webkit-min-device-pixel-ratio:0) {
+ @font-face {
+ font-family: 'mercury';
+ src: url('../font/mercury.svg?87209526#mercury') format('svg');
+ }
+}
+*/
+[class^="restaurant-icon-"]:before,
+[class*="restaurant-icon-"]:before,
+.restaurant-ico {
+ font-family: "Restaurant Regular";
+ font-weight: 400;
+ font-style: normal;
+ font-size: inherit;
+ text-transform: none;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+.restaurant-icon-01:before {
+ content: '\e800';
+}
+
+.restaurant-icon-02:before {
+ content: '\e801';
+}
+
+.restaurant-icon-03:before {
+ content: '\e802';
+}
+
+.restaurant-icon-04:before {
+ content: '\e803';
+}
+
+.restaurant-icon-05:before {
+ content: '\e804';
+}
+
+.restaurant-icon-06:before {
+ content: '\e805';
+}
+
+.restaurant-icon-08:before {
+ content: '\e806';
+}
+
+.restaurant-icon-07:before {
+ content: '\e807';
+}
+
+.restaurant-icon-09:before {
+ content: '\e808';
+}
+
+.restaurant-icon-10:before {
+ content: '\e809';
+}
+
+.restaurant-icon-11:before {
+ content: '\e80a';
+}
+
+.restaurant-icon-12:before {
+ content: '\e80b';
+}
+
+.restaurant-icon-13:before {
+ content: '\e80c';
+}
+
+.restaurant-icon-14:before {
+ content: '\e80d';
+}
+
+.restaurant-icon-15:before {
+ content: '\e80e';
+}
+
+.restaurant-icon-16:before {
+ content: '\e80f';
+}
+
+.restaurant-icon-17:before {
+ content: '\e810';
+}
+
+.restaurant-icon-18:before {
+ content: '\e811';
+}
+
+.restaurant-icon-19:before {
+ content: '\e812';
+}
+
+.restaurant-icon-20:before {
+ content: '\e813';
+}
+
+.restaurant-icon-36:before {
+ content: '\e814';
+}
+
+.restaurant-icon-35:before {
+ content: '\e815';
+}
+
+.restaurant-icon-34:before {
+ content: '\e816';
+}
+
+.restaurant-icon-33:before {
+ content: '\e817';
+}
+
+.restaurant-icon-32:before {
+ content: '\e818';
+}
+
+.restaurant-icon-31:before {
+ content: '\e819';
+}
+
+.restaurant-icon-30:before {
+ content: '\e81a';
+}
+
+.restaurant-icon-29:before {
+ content: '\e81b';
+}
+
+.restaurant-icon-28:before {
+ content: '\e81c';
+}
+
+.restaurant-icon-27:before {
+ content: '\e81d';
+}
+
+.restaurant-icon-26:before {
+ content: '\e81e';
+}
+
+.restaurant-icon-25:before {
+ content: '\e81f';
+}
+
+.restaurant-icon-24:before {
+ content: '\e820';
+}
+
+.restaurant-icon-23:before {
+ content: '\e821';
+}
+
+.restaurant-icon-22:before {
+ content: '\e822';
+}
+
+.restaurant-icon-21:before {
+ content: '\e823';
+}
diff --git a/public/css/main.css b/public/css/main.css
new file mode 100644
index 0000000..e62e93f
--- /dev/null
+++ b/public/css/main.css
@@ -0,0 +1,770 @@
+
+/* ==========================================================================
+ #FONT
+ ========================================================================== */
+.font-robo {
+ font-family: "Roboto", "Arial", "Helvetica Neue", sans-serif;
+}
+backgound
+.font-poppins {
+ font-family: "Poppins", "Arial", "Helvetica Neue", sans-serif;
+}
+
+.font-opensans {
+ font-family: "Open Sans", "Arial", "Helvetica Neue", sans-serif;
+}
+
+/* ==========================================================================
+ #GRID
+ ========================================================================== */
+.row {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -moz-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-wrap: wrap;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+}
+
+.row .col-2:last-child .input-group-desc {
+ margin-bottom: 0;
+}
+
+.row-space {
+ -webkit-box-pack: justify;
+ -webkit-justify-content: space-between;
+ -moz-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+}
+
+.row-refine {
+ margin: 0 -15px;
+}
+
+.row-refine .col-3 .input-group-desc,
+.row-refine .col-9 .input-group-desc {
+ margin-bottom: 0;
+}
+
+.col-2 {
+ width: -webkit-calc((100% - 30px) / 2);
+ width: -moz-calc((100% - 30px) / 2);
+ width: calc((100% - 30px) / 2);
+}
+
+@media (max-width: 767px) {
+ .col-2 {
+ width: 100%;
+ }
+}
+
+.form-row {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -moz-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-wrap: wrap;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ -webkit-box-align: center;
+ -webkit-align-items: center;
+ -moz-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ margin-bottom: 40px;
+}
+
+.form-row .name {
+ width: 125px;
+ color: #555;
+ font-size: 15px;
+ font-weight: 700;
+}
+
+.form-row .value {
+ width: -webkit-calc(100% - 125px);
+ width: -moz-calc(100% - 125px);
+ width: calc(100% - 125px);
+}
+
+@media (max-width: 767px) {
+ .form-row {
+ display: block;
+ }
+ .form-row .name,
+ .form-row .value {
+ display: block;
+ width: 100%;
+ }
+ .form-row .name {
+ margin-bottom: 7px;
+ }
+}
+
+.col-3,
+.col-9 {
+ padding: 0 15px;
+ position: relative;
+ width: 100%;
+ min-height: 1px;
+}
+
+.col-3 {
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 0 25%;
+ -moz-box-flex: 0;
+ -ms-flex: 0 0 25%;
+ flex: 0 0 25%;
+ max-width: 25%;
+}
+
+@media (max-width: 767px) {
+ .col-3 {
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 0 35%;
+ -moz-box-flex: 0;
+ -ms-flex: 0 0 35%;
+ flex: 0 0 35%;
+ max-width: 35%;
+ }
+}
+
+.col-9 {
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 0 75%;
+ -moz-box-flex: 0;
+ -ms-flex: 0 0 75%;
+ flex: 0 0 75%;
+ max-width: 75%;
+}
+
+@media (max-width: 767px) {
+ .col-9 {
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 0 65%;
+ -moz-box-flex: 0;
+ -ms-flex: 0 0 65%;
+ flex: 0 0 65%;
+ max-width: 65%;
+ }
+}
+
+/* ==========================================================================
+ #BOX-SIZING
+ ========================================================================== */
+/**
+ * More sensible default box-sizing:
+ * css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice
+ */
+html {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+* {
+ padding: 0;
+ margin: 0;
+}
+
+*, *:before, *:after {
+ -webkit-box-sizing: inherit;
+ -moz-box-sizing: inherit;
+ box-sizing: inherit;
+}
+
+/* ==========================================================================
+ #RESET
+ ========================================================================== */
+/**
+ * A very simple reset that sits on top of Normalize.css.
+ */
+body,
+h1, h2, h3, h4, h5, h6,
+blockquote, p, pre,
+dl, dd, ol, ul,
+figure,
+hr,
+fieldset, legend {
+ margin: 0;
+ padding: 0;
+}
+
+/**
+ * Remove trailing margins from nested lists.
+ */
+li > ol,
+li > ul {
+ margin-bottom: 0;
+}
+
+/**
+ * Remove default table spacing.
+ */
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+/**
+ * 1. Reset Chrome and Firefox behaviour which sets a `min-width: min-content;`
+ * on fieldsets.
+ */
+fieldset {
+ min-width: 0;
+ /* [1] */
+ border: 0;
+}
+
+button {
+ outline: none;
+ background: none;
+ border: none;
+}
+
+/* ==========================================================================
+ #PAGE WRAPPER
+ ========================================================================== */
+.page-wrapper {
+ min-height: 100vh;
+}
+
+body {
+ font-family: "Open Sans", "Arial", "Helvetica Neue", sans-serif;
+ font-weight: 400;
+ font-size: 14px;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ font-weight: 400;
+}
+
+h1 {
+ font-size: 36px;
+}
+
+h2 {
+ font-size: 30px;
+}
+
+h3 {
+ font-size: 24px;
+}
+
+h4 {
+ font-size: 18px;
+}
+
+h5 {
+ font-size: 15px;
+}
+
+h6 {
+ font-size: 13px;
+}
+
+/* ==========================================================================
+ #BACKGROUND
+ ========================================================================== */
+.bg-blue {
+ background: #2c6ed5;
+}
+
+.bg-red {
+ background: #fa4251;
+}
+
+.bg-gra-01 {
+ background: -webkit-gradient(linear, left bottom, left top, from(#fbc2eb), to(#a18cd1));
+ background: -webkit-linear-gradient(bottom, #fbc2eb 0%, #a18cd1 100%);
+ background: -moz-linear-gradient(bottom, #fbc2eb 0%, #a18cd1 100%);
+ background: -o-linear-gradient(bottom, #fbc2eb 0%, #a18cd1 100%);
+ background: linear-gradient(to top, #fbc2eb 0%, #a18cd1 100%);
+}
+
+.bg-gra-02 {
+ background: -webkit-gradient(linear, left bottom, right top, from(#fc2c77), to(#6c4079));
+ background: -webkit-linear-gradient(bottom left, #fc2c77 0%, #6c4079 100%);
+ background: -moz-linear-gradient(bottom left, #fc2c77 0%, #6c4079 100%);
+ background: -o-linear-gradient(bottom left, #fc2c77 0%, #6c4079 100%);
+ background: linear-gradient(to top right, #fc2c77 0%, #6c4079 100%);
+}
+
+.bg-gra-03 {
+ background: -webkit-gradient(linear, left bottom, right top, from(#08aeea), to(#b721ff));
+ background: -webkit-linear-gradient(bottom left, #08aeea 0%, #b721ff 100%);
+ background: -moz-linear-gradient(bottom left, #08aeea 0%, #b721ff 100%);
+ background: -o-linear-gradient(bottom left, #08aeea 0%, #b721ff 100%);
+ background: linear-gradient(to top right, #08aeea 0%, #b721ff 100%);
+}
+
+/* ==========================================================================
+ #SPACING
+ ========================================================================== */
+.p-t-100 {
+ padding-top: 100px;
+}
+
+.p-t-130 {
+ padding-top: 130px;
+}
+
+.p-t-180 {
+ padding-top: 180px;
+}
+
+.p-t-45 {
+ padding-top: 45px;
+}
+
+.p-t-20 {
+ padding-top: 20px;
+}
+
+.p-t-15 {
+ padding-top: 15px;
+}
+
+.p-t-10 {
+ padding-top: 10px;
+}
+
+.p-t-30 {
+ padding-top: 30px;
+}
+
+.p-b-100 {
+ padding-bottom: 100px;
+}
+
+.p-b-50 {
+ padding-bottom: 50px;
+}
+
+.m-r-45 {
+ margin-right: 45px;
+}
+
+.m-r-55 {
+ margin-right: 55px;
+}
+
+.m-b-55 {
+ margin-bottom: 55px;
+}
+
+/* ==========================================================================
+ #WRAPPER
+ ========================================================================== */
+.wrapper {
+ margin: 0 auto;
+}
+
+.wrapper--w960 {
+ max-width: 960px;
+}
+
+.wrapper--w790 {
+ max-width: 790px;
+}
+
+.wrapper--w780 {
+ max-width: 780px;
+}
+
+.wrapper--w680 {
+ max-width: 680px;
+}
+
+/* ==========================================================================
+ #BUTTON
+ ========================================================================== */
+.btn {
+ display: inline-block;
+ line-height: 50px;
+ padding: 0 50px;
+ -webkit-transition: all 0.4s ease;
+ -o-transition: all 0.4s ease;
+ -moz-transition: all 0.4s ease;
+ transition: all 0.4s ease;
+ cursor: pointer;
+ font-size: 15px;
+ text-transform: uppercase;
+ font-weight: 700;
+ color: #fff;
+ font-family: inherit;
+}
+
+.btn--radius {
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+}
+
+.btn--radius-2 {
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
+}
+
+.btn--pill {
+ -webkit-border-radius: 20px;
+ -moz-border-radius: 20px;
+ border-radius: 20px;
+}
+
+.btn--green {
+ background: #57b846;
+}
+
+.btn--green:hover {
+ background: #4dae3c;
+}
+
+.btn--blue {
+ background: #4272d7;
+}
+
+.btn--blue:hover {
+ background: #3868cd;
+}
+
+.btn--red {
+ background: #ff4b5a;
+}
+
+.btn--red:hover {
+ background: #eb3746;
+}
+
+/* ==========================================================================
+ #DATE PICKER
+ ========================================================================== */
+td.active {
+ background-color: #2c6ed5;
+}
+
+input[type="date" i] {
+ padding: 14px;
+}
+
+.table-condensed td, .table-condensed th {
+ font-size: 14px;
+ font-family: "Roboto", "Arial", "Helvetica Neue", sans-serif;
+ font-weight: 400;
+}
+
+.daterangepicker td {
+ width: 40px;
+ height: 30px;
+}
+
+.daterangepicker {
+ border: none;
+ -webkit-box-shadow: 0px 8px 20px 0px rgba(0, 0, 0, 0.15);
+ -moz-box-shadow: 0px 8px 20px 0px rgba(0, 0, 0, 0.15);
+ box-shadow: 0px 8px 20px 0px rgba(0, 0, 0, 0.15);
+ display: none;
+ border: 1px solid #e0e0e0;
+ margin-top: 5px;
+}
+
+.daterangepicker::after, .daterangepicker::before {
+ display: none;
+}
+
+.daterangepicker thead tr th {
+ padding: 10px 0;
+}
+
+.daterangepicker .table-condensed th select {
+ border: 1px solid #ccc;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+ font-size: 14px;
+ padding: 5px;
+ outline: none;
+}
+
+/* ==========================================================================
+ #FORM
+ ========================================================================== */
+input {
+ outline: none;
+ margin: 0;
+ border: none;
+ -webkit-box-shadow: none;
+ -moz-box-shadow: none;
+ box-shadow: none;
+ width: 100%;
+ font-size: 14px;
+ font-family: inherit;
+}
+
+.radio-container {
+ display: inline-block;
+ position: relative;
+ padding-left: 30px;
+ cursor: pointer;
+ font-size: 16px;
+ color: #666;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.radio-container input {
+ position: absolute;
+ opacity: 0;
+ cursor: pointer;
+}
+
+.radio-container input:checked ~ .checkmark {
+ background-color: #e5e5e5;
+}
+
+.radio-container input:checked ~ .checkmark:after {
+ display: block;
+}
+
+.radio-container .checkmark:after {
+ top: 50%;
+ left: 50%;
+ -webkit-transform: translate(-50%, -50%);
+ -moz-transform: translate(-50%, -50%);
+ -ms-transform: translate(-50%, -50%);
+ -o-transform: translate(-50%, -50%);
+ transform: translate(-50%, -50%);
+ width: 12px;
+ height: 12px;
+ -webkit-border-radius: 50%;
+ -moz-border-radius: 50%;
+ border-radius: 50%;
+ background: #57b846;
+}
+
+.checkmark {
+ position: absolute;
+ top: 50%;
+ -webkit-transform: translateY(-50%);
+ -moz-transform: translateY(-50%);
+ -ms-transform: translateY(-50%);
+ -o-transform: translateY(-50%);
+ transform: translateY(-50%);
+ left: 0;
+ height: 20px;
+ width: 20px;
+ background-color: #e5e5e5;
+ -webkit-border-radius: 50%;
+ -moz-border-radius: 50%;
+ border-radius: 50%;
+ -webkit-box-shadow: inset 0px 1px 3px 0px rgba(0, 0, 0, 0.08);
+ -moz-box-shadow: inset 0px 1px 3px 0px rgba(0, 0, 0, 0.08);
+ box-shadow: inset 0px 1px 3px 0px rgba(0, 0, 0, 0.08);
+}
+
+.checkmark:after {
+ content: "";
+ position: absolute;
+ display: none;
+}
+
+.input--style-5 {
+ background: #e5e5e5;
+ line-height: 50px;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
+ padding: 0 22px;
+ font-size: 16px;
+ color: #555;
+}
+
+.input-group-desc {
+ position: relative;
+}
+
+@media (max-width: 767px) {
+ .input-group-desc {
+ margin-bottom: 40px;
+ }
+}
+
+.input-group {
+ position: relative;
+ margin: 0;
+}
+
+.label {
+ color: #555;
+ font-size: 15px;
+ font-weight: 700;
+}
+
+.label--block {
+ width: 100%;
+}
+
+.label--desc {
+ position: absolute;
+ text-transform: capitalize;
+ display: block;
+ color: #999;
+ font-size: 14px;
+ margin: 0;
+ margin-top: 7px;
+ left: 0;
+}
+
+/* ==========================================================================
+ #SELECT2
+ ========================================================================== */
+.select--no-search .select2-search {
+ display: none !important;
+}
+
+.select2-container--open .select2-dropdown--below {
+ border: none;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+ -webkit-box-shadow: 0px 8px 20px 0px rgba(0, 0, 0, 0.15);
+ -moz-box-shadow: 0px 8px 20px 0px rgba(0, 0, 0, 0.15);
+ box-shadow: 0px 8px 20px 0px rgba(0, 0, 0, 0.15);
+ border: 1px solid #e0e0e0;
+ margin-top: 5px;
+ overflow: hidden;
+}
+
+.select2-container--default .select2-results__option {
+ padding-left: 22px;
+}
+
+.rs-select2 .select2-container {
+ width: 100% !important;
+ outline: none;
+ background: #e5e5e5;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
+}
+
+.rs-select2 .select2-container .select2-selection--single {
+ outline: none;
+ border: none;
+ height: 50px;
+ background: transparent;
+}
+
+.rs-select2 .select2-container .select2-selection--single .select2-selection__rendered {
+ line-height: 50px;
+ padding-left: 0;
+ color: #555;
+ font-size: 16px;
+ font-family: inherit;
+ padding-left: 22px;
+ padding-right: 50px;
+}
+
+.rs-select2 .select2-container .select2-selection--single .select2-selection__arrow {
+ height: 50px;
+ right: 15px;
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -moz-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-pack: center;
+ -webkit-justify-content: center;
+ -moz-box-pack: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ -webkit-box-align: center;
+ -webkit-align-items: center;
+ -moz-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+}
+
+.rs-select2 .select2-container .select2-selection--single .select2-selection__arrow b {
+ display: none;
+}
+
+.rs-select2 .select2-container .select2-selection--single .select2-selection__arrow:after {
+ font-family: "Material-Design-Iconic-Font";
+ content: '\f2f9';
+ font-size: 24px;
+ color: #999;
+ -webkit-transition: all 0.4s ease;
+ -o-transition: all 0.4s ease;
+ -moz-transition: all 0.4s ease;
+ transition: all 0.4s ease;
+}
+
+.rs-select2 .select2-container.select2-container--open .select2-selection--single .select2-selection__arrow::after {
+ -webkit-transform: rotate(-180deg);
+ -moz-transform: rotate(-180deg);
+ -ms-transform: rotate(-180deg);
+ -o-transform: rotate(-180deg);
+ transform: rotate(-180deg);
+}
+
+/* ==========================================================================
+ #TITLE
+ ========================================================================== */
+.title {
+ font-size: 24px;
+ text-transform: uppercase;
+ font-weight: 700;
+ text-align: center;
+ color: #fff;
+}
+
+/* ==========================================================================
+ #CARD
+ ========================================================================== */
+.card {
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+ background: #fff;
+}
+
+.card-5 {
+ background: #fff;
+ -webkit-border-radius: 10px;
+ -moz-border-radius: 10px;
+ border-radius: 10px;
+ -webkit-box-shadow: 0px 8px 20px 0px rgba(0, 0, 0, 0.15);
+ -moz-box-shadow: 0px 8px 20px 0px rgba(0, 0, 0, 0.15);
+ box-shadow: 0px 8px 20px 0px rgba(0, 0, 0, 0.15);
+}
+
+.card-5 .card-heading {
+ padding: 20px 0;
+ background: #1a1a1a;
+ -webkit-border-top-left-radius: 10px;
+ -moz-border-radius-topleft: 10px;
+ border-top-left-radius: 10px;
+ -webkit-border-top-right-radius: 10px;
+ -moz-border-radius-topright: 10px;
+ border-top-right-radius: 10px;
+}
+
+.card-5 .card-body {
+ padding: 52px 85px;
+ padding-bottom: 73px;
+}
+
+@media (max-width: 767px) {
+ .card-5 .card-body {
+ padding: 40px 30px;
+ padding-bottom: 50px;
+ }
+}
diff --git a/public/css/main.min.css b/public/css/main.min.css
new file mode 100644
index 0000000..a85c922
--- /dev/null
+++ b/public/css/main.min.css
@@ -0,0 +1 @@
+.daterangepicker,.select2-container--open .select2-dropdown--below{-webkit-box-shadow:0 8px 20px 0 rgba(0,0,0,.15);-moz-box-shadow:0 8px 20px 0 rgba(0,0,0,.15)}.font-robo{font-family:Roboto,Arial,"Helvetica Neue",sans-serif}.font-poppins{font-family:Poppins,Arial,"Helvetica Neue",sans-serif}.font-opensans,body{font-family:"Open Sans",Arial,"Helvetica Neue",sans-serif}.row{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.row .col-2:last-child .input-group-desc{margin-bottom:0}.row-space{-webkit-box-pack:justify;-webkit-justify-content:space-between;-moz-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.row-refine{margin:0 -15px}.row-refine .col-3 .input-group-desc,.row-refine .col-9 .input-group-desc{margin-bottom:0}.col-2{width:-webkit-calc((100% - 30px)/ 2);width:-moz-calc((100% - 30px)/ 2);width:calc((100% - 30px)/ 2)}@media (max-width:767px){.col-2{width:100%}}.form-row{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:40px}.form-row .name{width:125px;color:#555;font-size:15px;font-weight:700}body,h1,h2,h3,h4,h5,h6{font-weight:400}.form-row .value{width:-webkit-calc(100% - 125px);width:-moz-calc(100% - 125px);width:calc(100% - 125px)}@media (max-width:767px){.form-row{display:block}.form-row .name,.form-row .value{display:block;width:100%}.form-row .name{margin-bottom:7px}}.col-3,.col-9{padding:0 15px;position:relative;width:100%;min-height:1px}*,blockquote,body,dd,dl,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,legend,ol,p,pre,ul{margin:0;padding:0}.col-3{-webkit-box-flex:0;-webkit-flex:0 0 25%;-moz-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}@media (max-width:767px){.col-3{-webkit-box-flex:0;-webkit-flex:0 0 35%;-moz-box-flex:0;-ms-flex:0 0 35%;flex:0 0 35%;max-width:35%}}.col-9{-webkit-box-flex:0;-webkit-flex:0 0 75%;-moz-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}@media (max-width:767px){.col-9{-webkit-box-flex:0;-webkit-flex:0 0 65%;-moz-box-flex:0;-ms-flex:0 0 65%;flex:0 0 65%;max-width:65%}}html{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*,:after,:before{-webkit-box-sizing:inherit;-moz-box-sizing:inherit;box-sizing:inherit}li>ol,li>ul{margin-bottom:0}table{border-collapse:collapse;border-spacing:0}fieldset{min-width:0;border:0}button{outline:0;background:0 0;border:none}.page-wrapper{min-height:100vh}body{font-size:14px}h1{font-size:36px}h2{font-size:30px}h3{font-size:24px}h4{font-size:18px}h5{font-size:15px}h6{font-size:13px}.bg-blue{background:#2c6ed5}.bg-red{background:#fa4251}.bg-gra-01{background:-webkit-gradient(linear,left bottom,left top,from(#fbc2eb),to(#a18cd1));background:-webkit-linear-gradient(bottom,#fbc2eb 0,#a18cd1 100%);background:-moz-linear-gradient(bottom,#fbc2eb 0,#a18cd1 100%);background:-o-linear-gradient(bottom,#fbc2eb 0,#a18cd1 100%);background:linear-gradient(to top,#fbc2eb 0,#a18cd1 100%)}.bg-gra-02{background:-webkit-gradient(linear,left bottom,right top,from(#fc2c77),to(#6c4079));background:-webkit-linear-gradient(bottom left,#fc2c77 0,#6c4079 100%);background:-moz-linear-gradient(bottom left,#fc2c77 0,#6c4079 100%);background:-o-linear-gradient(bottom left,#fc2c77 0,#6c4079 100%);background:linear-gradient(to top right,#fc2c77 0,#6c4079 100%)}.bg-gra-03{background:-webkit-gradient(linear,left bottom,right top,from(#08aeea),to(#b721ff));background:-webkit-linear-gradient(bottom left,#08aeea 0,#b721ff 100%);background:-moz-linear-gradient(bottom left,#08aeea 0,#b721ff 100%);background:-o-linear-gradient(bottom left,#08aeea 0,#b721ff 100%);background:linear-gradient(to top right,#08aeea 0,#b721ff 100%)}.p-t-100{padding-top:100px}.p-t-130{padding-top:130px}.p-t-180{padding-top:180px}.p-t-45{padding-top:45px}.p-t-20{padding-top:20px}.p-t-15{padding-top:15px}.p-t-10{padding-top:10px}.p-t-30{padding-top:30px}.p-b-100{padding-bottom:100px}.p-b-50{padding-bottom:50px}.m-r-45{margin-right:45px}.m-r-55{margin-right:55px}.m-b-55{margin-bottom:55px}.wrapper{margin:0 auto}.wrapper--w960{max-width:960px}.wrapper--w790{max-width:790px}.wrapper--w780{max-width:780px}.wrapper--w680{max-width:680px}.btn{display:inline-block;line-height:50px;padding:0 50px;-webkit-transition:all .4s ease;-o-transition:all .4s ease;-moz-transition:all .4s ease;transition:all .4s ease;cursor:pointer;font-size:15px;text-transform:uppercase;font-weight:700;color:#fff;font-family:inherit}.btn--radius{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn--radius-2{-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.btn--pill{-webkit-border-radius:20px;-moz-border-radius:20px;border-radius:20px}.btn--green{background:#57b846}.btn--green:hover{background:#4dae3c}.btn--blue{background:#4272d7}.btn--blue:hover{background:#3868cd}.btn--red{background:#ff4b5a}.btn--red:hover{background:#eb3746}td.active{background-color:#2c6ed5}input[type=datei]{padding:14px}.table-condensed td,.table-condensed th{font-size:14px;font-family:Roboto,Arial,"Helvetica Neue",sans-serif;font-weight:400}.label,.title{font-weight:700}.daterangepicker td{width:40px;height:30px}.daterangepicker{box-shadow:0 8px 20px 0 rgba(0,0,0,.15);display:none;border:1px solid #e0e0e0;margin-top:5px}.daterangepicker::after,.daterangepicker::before{display:none}.daterangepicker thead tr th{padding:10px 0}.daterangepicker .table-condensed th select{border:1px solid #ccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;font-size:14px;padding:5px;outline:0}input{outline:0;margin:0;border:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;width:100%;font-size:14px;font-family:inherit}.radio-container{display:inline-block;position:relative;padding-left:30px;cursor:pointer;font-size:16px;color:#666;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.radio-container input{position:absolute;opacity:0;cursor:pointer}.radio-container input:checked~.checkmark{background-color:#e5e5e5}.radio-container input:checked~.checkmark:after{display:block}.radio-container .checkmark:after{top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);-o-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:12px;height:12px;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;background:#57b846}.checkmark{position:absolute;top:50%;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);-o-transform:translateY(-50%);transform:translateY(-50%);left:0;height:20px;width:20px;background-color:#e5e5e5;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;-webkit-box-shadow:inset 0 1px 3px 0 rgba(0,0,0,.08);-moz-box-shadow:inset 0 1px 3px 0 rgba(0,0,0,.08);box-shadow:inset 0 1px 3px 0 rgba(0,0,0,.08)}.checkmark:after{content:"";position:absolute;display:none}.input-group,.input-group-desc{position:relative}.input--style-5{background:#e5e5e5;line-height:50px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;padding:0 22px;font-size:16px;color:#555}@media (max-width:767px){.input-group-desc{margin-bottom:40px}}.input-group{margin:0}.label{color:#555;font-size:15px}.label--block{width:100%}.label--desc{position:absolute;text-transform:capitalize;display:block;color:#999;font-size:14px;margin:7px 0 0;left:0}.select--no-search .select2-search{display:none!important}.select2-container--open .select2-dropdown--below{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;box-shadow:0 8px 20px 0 rgba(0,0,0,.15);border:1px solid #e0e0e0;margin-top:5px;overflow:hidden}.select2-container--default .select2-results__option{padding-left:22px}.rs-select2 .select2-container{width:100%!important;outline:0;background:#e5e5e5;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.rs-select2 .select2-container .select2-selection--single{outline:0;border:none;height:50px;background:0 0}.card,.card-5{background:#fff}.rs-select2 .select2-container .select2-selection--single .select2-selection__rendered{line-height:50px;color:#555;font-size:16px;font-family:inherit;padding-left:22px;padding-right:50px}.rs-select2 .select2-container .select2-selection--single .select2-selection__arrow{height:50px;right:15px;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-moz-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center}.rs-select2 .select2-container .select2-selection--single .select2-selection__arrow b{display:none}.rs-select2 .select2-container .select2-selection--single .select2-selection__arrow:after{font-family:Material-Design-Iconic-Font;content:'\f2f9';font-size:24px;color:#999;-webkit-transition:all .4s ease;-o-transition:all .4s ease;-moz-transition:all .4s ease;transition:all .4s ease}.rs-select2 .select2-container.select2-container--open .select2-selection--single .select2-selection__arrow::after{-webkit-transform:rotate(-180deg);-moz-transform:rotate(-180deg);-ms-transform:rotate(-180deg);-o-transform:rotate(-180deg);transform:rotate(-180deg)}.title{font-size:24px;text-transform:uppercase;text-align:center;color:#fff}.card{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.card-5{-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;-webkit-box-shadow:0 8px 20px 0 rgba(0,0,0,.15);-moz-box-shadow:0 8px 20px 0 rgba(0,0,0,.15);box-shadow:0 8px 20px 0 rgba(0,0,0,.15)}.card-5 .card-heading{padding:20px 0;background:#1a1a1a;-webkit-border-top-left-radius:10px;-moz-border-radius-topleft:10px;border-top-left-radius:10px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.card-5 .card-body{padding:52px 85px 73px}@media (max-width:767px){.card-5 .card-body{padding:40px 30px 50px}}
\ No newline at end of file
diff --git a/public/css/style.css b/public/css/style.css
new file mode 100644
index 0000000..621a69f
--- /dev/null
+++ b/public/css/style.css
@@ -0,0 +1,13639 @@
+@charset "UTF-8";
+/*
+* Trunk version 2.0.1
+*/
+/*
+* Contexts
+*/
+.post-corporate.post-corporate-img-bg, .section-main-bunner, .context-dark, .bg-gray-600, .bg-gray-700, .bg-gray-800, .bg-primary, .bg-pink, .bg-secondary, .bg-secondary-2, .bg-green,
+.post-corporate.post-corporate-img-bg h1,
+.section-main-bunner h1,
+.context-dark h1,
+.bg-gray-600 h1,
+.bg-gray-700 h1,
+.bg-gray-800 h1,
+.bg-primary h1,
+.bg-pink h1,
+.bg-secondary h1,
+.bg-secondary-2 h1,
+.bg-green h1, .post-corporate.post-corporate-img-bg h2, .section-main-bunner h2, .context-dark h2, .bg-gray-600 h2, .bg-gray-700 h2, .bg-gray-800 h2, .bg-primary h2, .bg-pink h2, .bg-secondary h2, .bg-secondary-2 h2, .bg-green h2, .post-corporate.post-corporate-img-bg h3, .section-main-bunner h3, .context-dark h3, .bg-gray-600 h3, .bg-gray-700 h3, .bg-gray-800 h3, .bg-primary h3, .bg-pink h3, .bg-secondary h3, .bg-secondary-2 h3, .bg-green h3, .post-corporate.post-corporate-img-bg h4, .section-main-bunner h4, .context-dark h4, .bg-gray-600 h4, .bg-gray-700 h4, .bg-gray-800 h4, .bg-primary h4, .bg-pink h4, .bg-secondary h4, .bg-secondary-2 h4, .bg-green h4, .post-corporate.post-corporate-img-bg h5, .section-main-bunner h5, .context-dark h5, .bg-gray-600 h5, .bg-gray-700 h5, .bg-gray-800 h5, .bg-primary h5, .bg-pink h5, .bg-secondary h5, .bg-secondary-2 h5, .bg-green h5, .post-corporate.post-corporate-img-bg h6, .section-main-bunner h6, .context-dark h6, .bg-gray-600 h6, .bg-gray-700 h6, .bg-gray-800 h6, .bg-primary h6, .bg-pink h6, .bg-secondary h6, .bg-secondary-2 h6, .bg-green h6, .post-corporate.post-corporate-img-bg [class^='heading-'], .section-main-bunner [class^='heading-'], .context-dark [class^='heading-'], .bg-gray-600 [class^='heading-'], .bg-gray-700 [class^='heading-'], .bg-gray-800 [class^='heading-'], .bg-primary [class^='heading-'], .bg-pink [class^='heading-'], .bg-secondary [class^='heading-'], .bg-secondary-2 [class^='heading-'], .bg-green [class^='heading-'] {
+ color: #ffffff;
+}
+
+.post-corporate.post-corporate-img-bg .title-style-1, .section-main-bunner .title-style-1, .context-dark .title-style-1, .bg-gray-600 .title-style-1, .bg-gray-700 .title-style-1, .bg-gray-800 .title-style-1, .bg-primary .title-style-1, .bg-pink .title-style-1, .bg-secondary .title-style-1, .bg-secondary-2 .title-style-1, .bg-green .title-style-1 {
+ color: #4849b8;
+}
+
+.post-corporate.post-corporate-img-bg .button-primary:hover, .section-main-bunner .button-primary:hover, .context-dark .button-primary:hover, .bg-gray-600 .button-primary:hover, .bg-gray-700 .button-primary:hover, .bg-gray-800 .button-primary:hover, .bg-primary .button-primary:hover, .bg-pink .button-primary:hover, .bg-secondary .button-primary:hover, .bg-secondary-2 .button-primary:hover, .bg-green .button-primary:hover, .post-corporate.post-corporate-img-bg .button-primary:active, .section-main-bunner .button-primary:active, .context-dark .button-primary:active, .bg-gray-600 .button-primary:active, .bg-gray-700 .button-primary:active, .bg-gray-800 .button-primary:active, .bg-primary .button-primary:active, .bg-pink .button-primary:active, .bg-secondary .button-primary:active, .bg-secondary-2 .button-primary:active, .bg-green .button-primary:active {
+ background: #151515;
+ border-color: #151515;
+}
+
+a:focus,
+button:focus {
+ outline: none !important;
+}
+
+button::-moz-focus-inner {
+ border: 0;
+}
+
+*:focus {
+ outline: none;
+}
+
+blockquote {
+ padding: 0;
+ margin: 0;
+}
+
+input,
+button,
+select,
+textarea {
+ outline: none;
+}
+
+label {
+ margin-bottom: 0;
+}
+
+p {
+ margin: 0;
+}
+
+ul,
+ol {
+ list-style: none;
+ padding: 0;
+ margin: 0;
+}
+
+ul li,
+ol li {
+ display: block;
+}
+
+dl {
+ margin: 0;
+}
+
+dt,
+dd {
+ line-height: inherit;
+}
+
+dt {
+ font-weight: inherit;
+}
+
+dd {
+ margin-bottom: 0;
+}
+
+cite {
+ font-style: normal;
+}
+
+form {
+ margin-bottom: 0;
+}
+
+blockquote {
+ padding-left: 0;
+ border-left: 0;
+}
+
+address {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+figure {
+ margin-bottom: 0;
+}
+
+html p a:hover {
+ text-decoration: none;
+}
+
+/*
+* Typography
+*/
+body {
+ font-family: "Poppins", sans-serif;
+ font-size: 15px;
+ line-height: 1.66667;
+ font-weight: 300;
+ color: rgba(21, 21, 21, 0.8);
+ background-color: #ffffff;
+ letter-spacing: -0.03em;
+ -webkit-text-size-adjust: none;
+ -webkit-font-smoothing: subpixel-antialiased;
+}
+
+h1, h2, h3, h4, h5, h6, [class^='heading-'] {
+ margin-top: 0;
+ margin-bottom: 0;
+ font-family: "PT Serif", "Times New Roman", Times, serif;
+ font-weight: 700;
+ color: #151515;
+ letter-spacing: 0;
+}
+
+h1 a, h2 a, h3 a, h4 a, h5 a, h6 a, [class^='heading-'] a {
+ color: inherit;
+}
+
+h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover, [class^='heading-'] a:hover {
+ color: #4849b8;
+}
+
+h1,
+.heading-1 {
+ font-size: 32px;
+ line-height: 1.5;
+ text-transform: uppercase;
+}
+
+@media (min-width: 1200px) {
+ h1,
+ .heading-1 {
+ font-size: 80px;
+ line-height: 1.075;
+ }
+}
+
+h2,
+.heading-2 {
+ font-size: 28px;
+ line-height: 1.5;
+}
+
+@media (min-width: 1200px) {
+ h2,
+ .heading-2 {
+ font-size: 45px;
+ line-height: 1.2;
+ }
+}
+
+h2.heading-font,
+.heading-2.heading-font {
+ font-weight: 400;
+ letter-spacing: -0.03em;
+ text-transform: capitalize;
+}
+
+h3,
+.heading-3 {
+ font-size: 24px;
+ line-height: 1.5;
+}
+
+@media (min-width: 1200px) {
+ h3,
+ .heading-3 {
+ font-size: 36px;
+ line-height: 1.33333;
+ }
+}
+
+h3.heading-font,
+.heading-3.heading-font {
+ font-weight: 600;
+ letter-spacing: -0.03em;
+}
+
+h4,
+.heading-4 {
+ font-size: 22px;
+ line-height: 1.5;
+}
+
+@media (min-width: 1200px) {
+ h4,
+ .heading-4 {
+ font-size: 26px;
+ line-height: 1.38462;
+ }
+}
+
+h5,
+.heading-5 {
+ font-size: 18px;
+ line-height: 1.05556;
+}
+
+h6,
+.heading-6 {
+ font-size: 15px;
+ line-height: 1.06667;
+}
+
+.heading-font + .heading-font {
+ margin-top: 20px;
+}
+
+.heading-font + h2.heading-font {
+ margin-top: 35px;
+}
+
+small,
+.small {
+ display: block;
+ font-size: 12px;
+ line-height: 1.5;
+}
+
+mark,
+.mark {
+ padding: 3px 5px;
+ color: #ffffff;
+ background: #4849b8;
+}
+
+.big {
+ font-size: 18px;
+ line-height: 1.66667;
+}
+
+.lead {
+ font-size: 24px;
+ line-height: 34px;
+ font-weight: 300;
+}
+
+code {
+ padding: 10px 5px;
+ border-radius: 0.2rem;
+ font-size: 90%;
+ color: #111111;
+ background: #edeff4;
+}
+
+p [data-toggle='tooltip'] {
+ padding-left: .25em;
+ padding-right: .25em;
+ color: #4849b8;
+}
+
+p [style*='max-width'] {
+ display: inline-block;
+}
+
+::selection {
+ background: #4849b8;
+ color: #ffffff;
+}
+
+::-moz-selection {
+ background: #4849b8;
+ color: #ffffff;
+}
+
+.thin-title {
+ font-weight: 300;
+ letter-spacing: 0.25em;
+ text-transform: uppercase;
+}
+
+.title-decorate {
+ letter-spacing: -.03em;
+ position: relative;
+ padding-top: 20px;
+}
+
+.title-decorate:before {
+ position: absolute;
+ content: '';
+ top: 0;
+ left: 0;
+ width: 35px;
+ height: 3px;
+ background: #4849b8;
+}
+
+@media (min-width: 992px) {
+ .title-decorate:before {
+ left: auto;
+ right: 0;
+ }
+}
+
+.title-decorate.title-decorate-center:before {
+ left: 50%;
+ transform: translateX(-50%);
+}
+
+@media (min-width: 992px) {
+ .title-decorate.title-decorate-center:before {
+ left: 50%;
+ transform: translateX(-50%);
+ }
+}
+
+.title-decorate.title-decorate-left {
+ padding-top: 0;
+ padding-left: 60px;
+}
+
+.title-decorate.title-decorate-left:before {
+ left: 0;
+ top: 40%;
+}
+
+.text-with-divider {
+ position: relative;
+ padding-left: 60px;
+ max-width: 470px;
+}
+
+.text-with-divider .divider {
+ position: absolute;
+ left: 0;
+ top: 17px;
+}
+
+.text-with-divider .divider:after {
+ width: 40px;
+}
+
+.text-with-divider h4 {
+ font-weight: 400;
+ font-style: italic;
+ letter-spacing: 0;
+ color: rgba(21, 21, 21, 0.7);
+}
+
+.gradient-title {
+ font-weight: 600;
+ letter-spacing: .1em;
+ text-transform: uppercase;
+}
+
+.title-style-1 {
+ color: #4849b8;
+ text-transform: uppercase;
+}
+
+.title-style-1 + h2 {
+ margin-top: 20px;
+}
+
+@media (min-width: 992px) {
+ .title-style-1 {
+ font-size: 20px;
+ }
+}
+
+/*
+* Brand
+*/
+.brand {
+ display: inline-block;
+}
+
+.brand .brand-logo-light {
+ display: none;
+}
+
+.brand .brand-logo-dark {
+ display: block;
+}
+
+/*
+* Links
+*/
+a {
+ transition: all 0.3s ease-in-out;
+}
+
+a, a:focus, a:active, a:hover {
+ text-decoration: none;
+}
+
+a, a:focus, a:active {
+ color: #4849b8;
+}
+
+a:hover {
+ color: #4849b8;
+}
+
+a[href*='tel'], a[href*='mailto'] {
+ white-space: nowrap;
+}
+
+.link-hover {
+ color: #4849b8;
+}
+
+.link-active {
+ color: #151515;
+}
+
+.privacy-link {
+ display: inline-block;
+}
+
+.privacy-link:hover {
+ color: #151515;
+}
+
+* + .privacy-link {
+ margin-top: 35px;
+}
+
+/*
+* Blocks
+*/
+.block-center, .block-sm, .block-lg {
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.block-sm {
+ max-width: 560px;
+}
+
+.block-lg {
+ max-width: 768px;
+}
+
+.block-center {
+ padding: 10px;
+}
+
+.block-center:hover .block-center-header {
+ background-color: #4849b8;
+}
+
+.block-center-title {
+ background-color: #ffffff;
+}
+
+@media (max-width: 1599.98px) {
+ .block-center {
+ padding: 20px;
+ }
+ .block-center:hover .block-center-header {
+ background-color: #ffffff;
+ }
+ .block-center-header {
+ background-color: #4849b8;
+ }
+}
+
+.block-bordered-left {
+ position: relative;
+}
+
+@media (min-width: 1200px) {
+ .block-bordered-left {
+ padding: 0 65px;
+ }
+ .block-bordered-left:before {
+ position: absolute;
+ content: '';
+ left: -15px;
+ height: 100%;
+ width: 2px;
+ background: #C4C4C4;
+ }
+}
+
+.block-decorate-img {
+ position: relative;
+ max-width: 540px;
+ padding-left: 40px;
+ padding-bottom: 50px;
+ text-align: right;
+}
+
+.block-decorate-img > * {
+ position: relative;
+ z-index: 1;
+}
+
+.block-decorate-img:before {
+ position: absolute;
+ content: '';
+ top: 20px;
+ right: 60px;
+ left: 0;
+ bottom: 0;
+ background: url("../images/bg-dot.png");
+ opacity: .2;
+ z-index: 0;
+}
+
+@media (min-width: 992px) {
+ .block-decorate-img {
+ padding-bottom: 70px;
+ }
+}
+
+.block-decorate-img.block-decorate-img-modern {
+ max-width: 100%;
+}
+
+.block-decorate-img.block-decorate-img-modern .block-decorate-inner {
+ display: inline-block;
+ position: relative;
+}
+
+.block-decorate-img.block-decorate-img-modern .block-decorate-inner .block-video-button {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+}
+
+.block-decorate-img.block-decorate-img-modern .block-decorate-inner .block-video-button a .icon {
+ color: #4849b8;
+}
+
+.block-decorate-img.block-decorate-img-modern img {
+ border-radius: 7px;
+}
+
+@media (min-width: 992px) {
+ .block-decorate-img.block-decorate-img-modern {
+ padding-bottom: 70px;
+ }
+}
+
+@media (min-width: 1200px) {
+ .row-decorate > * + *:before {
+ position: absolute;
+ content: '';
+ top: 0;
+ bottom: 0;
+ left: -20px;
+ border-left: 1px solid rgba(255, 255, 255, 0.1);
+ transform: rotate(30deg);
+ }
+}
+
+/*
+* Boxes
+*/
+.box-minimal {
+ text-align: center;
+}
+
+.box-minimal .box-minimal-icon {
+ font-size: 50px;
+ line-height: 50px;
+ color: #4849b8;
+}
+
+.box-minimal-divider {
+ width: 36px;
+ height: 4px;
+ margin-left: auto;
+ margin-right: auto;
+ background: #4849b8;
+}
+
+.box-minimal-text {
+ width: 100%;
+ max-width: 320px;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+* + .box-minimal {
+ margin-top: 30px;
+}
+
+* + .box-minimal-title {
+ margin-top: 10px;
+}
+
+* + .box-minimal-divider {
+ margin-top: 20px;
+}
+
+* + .box-minimal-text {
+ margin-top: 15px;
+}
+
+.post-corporate.post-corporate-img-bg .box-minimal p, .section-main-bunner .box-minimal p, .context-dark .box-minimal p, .bg-gray-600 .box-minimal p, .bg-gray-700 .box-minimal p, .bg-gray-800 .box-minimal p, .bg-primary .box-minimal p, .bg-pink .box-minimal p, .bg-secondary .box-minimal p, .bg-secondary-2 .box-minimal p, .bg-green .box-minimal p {
+ color: rgba(21, 21, 21, 0.8);
+}
+
+.box-counter {
+ position: relative;
+ text-align: center;
+ color: #444141;
+}
+
+.box-counter-title {
+ display: inline-block;
+ font-family: "PT Serif", "Times New Roman", Times, serif;
+ font-size: 16px;
+ line-height: 1.3;
+ letter-spacing: -.025em;
+}
+
+.box-counter-main {
+ font-family: "PT Serif", "Times New Roman", Times, serif;
+ font-size: 45px;
+ font-weight: 400;
+ line-height: 1.2;
+}
+
+.box-counter-main > * {
+ display: inline;
+ font: inherit;
+}
+
+.box-counter-main .small {
+ font-size: 28px;
+}
+
+.box-counter-main .small_top {
+ position: relative;
+ top: .2em;
+ vertical-align: top;
+}
+
+.box-counter-divider {
+ font-size: 0;
+ line-height: 0;
+}
+
+.box-counter-divider::after {
+ content: '';
+ display: inline-block;
+ width: 80px;
+ height: 2px;
+ background: #4849b8;
+}
+
+* + .box-counter-title {
+ margin-top: 10px;
+}
+
+* + .box-counter-main {
+ margin-top: 20px;
+}
+
+* + .box-counter-divider {
+ margin-top: 10px;
+}
+
+@media (min-width: 768px) {
+ .box-counter-title {
+ font-size: 18px;
+ }
+}
+
+@media (min-width: 1200px) {
+ .box-counter-main {
+ font-size: 60px;
+ }
+ .box-counter-main .small {
+ font-size: 36px;
+ }
+ * + .box-counter-main {
+ margin-top: 30px;
+ }
+ * + .box-counter-divider {
+ margin-top: 15px;
+ }
+ * + .box-counter-title {
+ margin-top: 18px;
+ }
+}
+
+.bg-primary .box-counter {
+ color: #ffffff;
+}
+
+.bg-primary .box-counter-divider::after {
+ background: #ffffff;
+}
+
+.box-color {
+ width: 54px;
+ height: 54px;
+}
+
+.box-icon-inner {
+ position: relative;
+}
+
+.box-icon-inner > * {
+ position: relative;
+ z-index: 1;
+}
+
+.box-icon-inner:before {
+ position: absolute;
+ top: 33%;
+ left: 56%;
+ content: '';
+ z-index: 0;
+}
+
+.box-icon-inner.decorate-triangle:before {
+ width: 0;
+ height: 0;
+ border-style: solid;
+ border-width: 0 10px 18px 10px;
+ border-color: transparent transparent #D0EFD5 transparent;
+ transform: rotate(137.76deg) translate(0, 0);
+ will-change: transform;
+ transition: all .6s;
+}
+
+.box-icon-inner.decorate-triangle.decorate-color-secondary:before {
+ border-color: transparent transparent #FFD541 transparent;
+}
+
+.box-icon-inner.decorate-triangle.decorate-color-primary:before {
+ border-color: transparent transparent #4849b8 transparent;
+}
+
+.box-icon-inner.decorate-circle:before {
+ width: 20px;
+ height: 20px;
+ border-radius: 50%;
+ background: #D0EFD5;
+ transform: translate(0, 0);
+ will-change: transform;
+ transition: all .6s;
+}
+
+.box-icon-inner.decorate-circle.decorate-color-secondary-2:before {
+ background: #5656DF;
+}
+
+.box-icon-inner.decorate-circle.decorate-color-primary:before {
+ background: #4849b8;
+}
+
+.box-icon-inner.decorate-rectangle:before {
+ width: 16px;
+ height: 16px;
+ transform: translateY(0) rotate(45deg);
+ background: #D0EFD5;
+ will-change: transform;
+ transition: all .6s;
+}
+
+.box-icon-inner.decorate-rectangle.decorate-color-primary:before {
+ background: #4849b8;
+}
+
+.box-icon-caption h4 {
+ font-weight: 500;
+}
+
+.box-icon-caption * + p {
+ margin-top: 20px;
+}
+
+.box-icon-classic {
+ max-width: 320px;
+ margin-left: auto;
+ margin-right: auto;
+ text-align: center;
+}
+
+.box-icon-classic > * + * {
+ margin-top: 18px;
+}
+
+.box-icon-classic .box-icon-caption p {
+ color: rgba(21, 21, 21, 0.6);
+}
+
+.box-icon-classic:hover .decorate-triangle:before {
+ transform: rotate(175deg) translate(15px, 15px);
+}
+
+.box-icon-classic:hover .decorate-circle:before {
+ transform: translate(-45px, 2px);
+}
+
+.box-icon-classic:hover .decorate-rectangle:before {
+ transform: rotate(-90deg) translateY(-40px);
+}
+
+.box-icon-modern {
+ display: flex;
+ flex-direction: column;
+ text-align: center;
+}
+
+.box-icon-modern > * + * {
+ margin-top: 25px;
+}
+
+@media (min-width: 576px) {
+ .box-icon-modern {
+ flex-direction: row;
+ text-align: left;
+ }
+ .box-icon-modern > * + * {
+ margin-top: 0;
+ margin-left: 30px;
+ }
+ .box-icon-modern .box-icon-inner:before {
+ left: 85%;
+ }
+}
+
+.box-icon-modern .box-icon-caption * + p {
+ margin-top: 5px;
+}
+
+.box-icon-modern .decorate-triangle:before {
+ border-width: 0 12px 22px 12px;
+}
+
+.box-icon-modern .decorate-circle:before {
+ width: 24px;
+ height: 24px;
+}
+
+.box-icon-modern .decorate-rectangle:before {
+ width: 20px;
+ height: 20px;
+}
+
+.box-icon-modern:hover .decorate-triangle:before {
+ transform: rotate(175deg) translate(15px, 15px);
+}
+
+.box-icon-modern:hover .decorate-circle:before {
+ transform: translate(-45px, 2px);
+}
+
+.box-icon-modern:hover .decorate-rectangle:before {
+ transform: rotate(-90deg) translateY(-40px);
+}
+
+/*
+* testimonials
+*/
+.team-classic {
+ position: relative;
+ max-width: 390px;
+ margin-left: auto;
+ margin-right: auto;
+ transition: all .3s;
+}
+
+.team-classic > * {
+ position: relative;
+ z-index: 1;
+}
+
+.team-classic-figure {
+ position: relative;
+}
+
+.team-classic-figure .team-classic-soc-list {
+ text-align: center;
+ position: absolute;
+ top: 50%;
+ right: 25px;
+ transform: translateY(-70%);
+ transition: all .3s;
+ opacity: 0;
+}
+
+.team-classic-figure .team-classic-soc-list li + li {
+ margin-top: 15px;
+}
+
+.team-classic-figure .team-classic-soc-list a {
+ color: #C4C4C4;
+}
+
+.team-classic-figure .team-classic-soc-list a:hover {
+ color: #323232;
+}
+
+.team-classic-caption {
+ text-align: center;
+ padding: 17px 25px 30px;
+ transition: all .5s;
+ background: #ffffff;
+}
+
+.team-classic-caption p {
+ margin-top: 0;
+ font-size: 12px;
+ text-transform: uppercase;
+ letter-spacing: .15em;
+ font-weight: 400;
+ color: rgba(21, 21, 21, 0.8);
+}
+
+.team-name {
+ font-weight: 500;
+ line-height: 40px;
+}
+
+.team-classic:hover {
+ box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25);
+ z-index: 2;
+}
+
+.team-classic:hover .team-classic-caption {
+ padding-bottom: 30px;
+ margin-bottom: -5px;
+}
+
+.team-classic:hover .team-classic-soc-list {
+ opacity: 1;
+ transform: translateY(-50%);
+}
+
+.team-modern {
+ max-width: 375px;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.team-modern-figure {
+ position: relative;
+ background: #151515;
+ overflow: hidden;
+}
+
+.team-modern-figure:before {
+ position: absolute;
+ content: '';
+ bottom: 0;
+ left: 0;
+ width: 0;
+ height: 0;
+ border-bottom: 30px solid #ffffff;
+ border-right: 250px solid transparent;
+}
+
+.team-modern-figure:after {
+ position: absolute;
+ content: '';
+ bottom: 0;
+ right: 0;
+ width: 0;
+ height: 0;
+ border-bottom: 30px solid #ffffff;
+ border-left: 130px solid transparent;
+}
+
+.team-modern-figure:before, .team-modern-figure:after {
+ z-index: 1;
+}
+
+.team-modern-figure img {
+ transition: all .3s;
+ will-change: transform;
+}
+
+.team-modern-figure .team-modern-soc-list {
+ text-align: center;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-70%, -50%);
+ transition: all .3s;
+ opacity: 0;
+}
+
+.team-modern-figure .team-modern-soc-list li {
+ display: inline-block;
+}
+
+.team-modern-figure .team-modern-soc-list li + li {
+ margin-left: 24px;
+}
+
+.team-modern-figure .team-modern-soc-list a {
+ color: #ffffff;
+ text-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
+}
+
+.team-modern-figure .team-modern-soc-list a:hover {
+ color: #4849b8;
+}
+
+.team-modern-no-img .team-modern-figure {
+ background: #f5f5f5;
+}
+
+.team-modern-no-img .team-modern-figure .team-modern-soc-list a {
+ color: rgba(0, 0, 0, 0.6);
+}
+
+.team-modern-no-img .team-modern-figure .team-modern-soc-list a:hover {
+ color: #000000;
+}
+
+.team-modern-caption {
+ text-align: center;
+ padding: 15px 25px 45px;
+ transition: all .5s;
+ background: #ffffff;
+}
+
+.team-modern-caption p {
+ margin-top: 0;
+ font-size: 12px;
+ text-transform: uppercase;
+ letter-spacing: .15em;
+ font-weight: 400;
+}
+
+.team-modern:hover .team-modern-figure img {
+ opacity: .52;
+}
+
+.team-modern:hover .team-modern-soc-list {
+ opacity: 1;
+ transform: translate(-50%, -50%);
+}
+
+.product-featured {
+ max-width: 370px;
+ margin-left: auto;
+ margin-right: auto;
+ text-align: center;
+}
+
+.product-featured-figure {
+ position: relative;
+ overflow: hidden;
+}
+
+.product-featured-figure:before {
+ position: absolute;
+ content: '';
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background: linear-gradient(180deg, rgba(21, 21, 21, 0) 38.12%, rgba(21, 21, 21, 0.364) 100%);
+ opacity: 0;
+ transition: all .3s;
+ z-index: 1;
+}
+
+.product-featured-figure .product-featured-button {
+ text-align: center;
+ position: absolute;
+ bottom: 40px;
+ left: 50%;
+ transform: translate(-50%, -100%);
+ transition: all .3s;
+ opacity: 0;
+ z-index: 2;
+}
+
+.product-featured-figure .button {
+ font-size: 13px;
+}
+
+.product-featured-caption {
+ text-align: center;
+ padding: 10px;
+ background: #ffffff;
+}
+
+.product-featured-caption p {
+ margin-top: 10px;
+ color: #4849b8;
+ font-weight: 500;
+ letter-spacing: 0.05em;
+}
+
+@media (min-width: 992px) {
+ .product-featured-caption {
+ padding: 25px;
+ }
+}
+
+.product-featured-title {
+ font-weight: 400;
+}
+
+.product-featured:hover .product-featured-figure:before {
+ opacity: 1;
+}
+
+.product-featured:hover .product-featured-button {
+ opacity: 1;
+ transform: translate(-50%, -50%);
+}
+
+.team-item-info .quote-primary-footer .bg-dot {
+ max-width: 200px;
+ flex-basis: 50%;
+ height: 50px;
+}
+
+.team-item-info-name {
+ display: inline-flex;
+ align-items: center;
+ padding-bottom: 30px;
+ border-bottom: 1px solid #C4C4C4;
+}
+
+.team-item-info-name h3 {
+ margin-right: 15px;
+}
+
+.team-item-info-name .team-item-info-name-text {
+ border-radius: 4px;
+ color: #ffffff;
+ background: #4849b8;
+ padding: 2px 4px;
+}
+
+.team-item-info-name * + .team-item-info-name-text {
+ margin-top: 0;
+}
+
+* + .team-info-list {
+ margin-top: 35px;
+}
+
+.team-info-list {
+ font-weight: 400;
+}
+
+.team-info-list > li + li {
+ margin-top: 10px;
+}
+
+.team-info-list li span.icon {
+ font-size: 20px;
+ color: #C4C4C4;
+ margin-right: 10px;
+}
+
+.team-info-list li a {
+ font-size: 18px;
+ line-height: 28px;
+ color: #151515;
+}
+
+.team-info-list li a:hover {
+ color: #4849b8;
+}
+
+.team-info-list .social-list > * {
+ margin-top: 0;
+}
+
+.team-info-list .social-list a:hover {
+ background: transparent;
+ color: #4849b8;
+}
+
+@media (min-width: 576px) {
+ .team-info-list > li {
+ display: inline-block;
+ }
+ .team-info-list > li + li {
+ margin-left: 15px;
+ }
+}
+
+/*
+* testimonials
+*/
+.testimonials-modern {
+ position: relative;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+@media (min-width: 992px) {
+ .testimonials-modern {
+ width: 650px;
+ }
+}
+
+@media (min-width: 1200px) {
+ .testimonials-modern {
+ width: 820px;
+ }
+}
+
+.testimonials-modern .testimonials-modern-text {
+ font-style: italic;
+ font-size: 18px;
+ line-height: 30px;
+ letter-spacing: .08em;
+}
+
+.testimonials-modern .testimonials-modern-name {
+ color: #4849b8;
+ font-size: 18px;
+ line-height: 28px;
+ font-weight: 400;
+}
+
+.testimonials-modern * + .testimonials-modern-name {
+ margin-top: 20px;
+}
+
+.post-corporate.post-corporate-img-bg .testimonials-modern-name, .section-main-bunner .testimonials-modern-name, .context-dark .testimonials-modern-name, .bg-gray-600 .testimonials-modern-name, .bg-gray-700 .testimonials-modern-name, .bg-gray-800 .testimonials-modern-name, .bg-primary .testimonials-modern-name, .bg-pink .testimonials-modern-name, .bg-secondary .testimonials-modern-name, .bg-secondary-2 .testimonials-modern-name, .bg-green .testimonials-modern-name {
+ color: #ffffff;
+}
+
+/*
+* Gallery items
+*/
+.gallery-item-classic {
+ position: relative;
+}
+
+.gallery-item-classic img {
+ max-width: inherit;
+ width: 100%;
+}
+
+.gallery-item-classic-caption {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-70%, -50%);
+ transition: all .3s;
+ will-change: transform;
+ opacity: 0;
+}
+
+.gallery-item-classic-caption a {
+ display: inline-block;
+ font-size: 24px;
+ line-height: 35px;
+ text-align: center;
+ padding: 25px 5px;
+ color: #151515;
+ font-weight: 500;
+ width: 85px;
+ height: 85px;
+ border-radius: 50%;
+ background: #ffffff;
+ box-shadow: 0 0 0 10px rgba(255, 255, 255, 0.4);
+ cursor: pointer;
+}
+
+.gallery-item-classic-caption a:hover {
+ color: #151515;
+ box-shadow: 0 0 0 20px rgba(255, 255, 255, 0.4);
+}
+
+.gallery-item-classic:hover .gallery-item-classic-caption {
+ opacity: 1;
+ transform: translate(-50%, -50%);
+}
+
+/*
+* pricing
+*/
+.box-pricing-classic {
+ position: relative;
+ padding: 30px 0;
+ max-width: 400px;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.box-pricing-classic > * + * {
+ margin-top: 30px;
+}
+
+.box-pricing-classic .pricing-border {
+ display: block;
+ position: absolute;
+ width: 99%;
+ max-width: 340px;
+ top: 0;
+ left: 50%;
+ transform: translateX(-50%);
+ bottom: 2px;
+ height: 100%;
+ transition: all .3s;
+ opacity: 0;
+}
+
+.box-pricing-classic .pricing-border rect {
+ max-width: 340px;
+ width: 99%;
+ height: 99%;
+}
+
+.box-pricing-classic.box-pricing-selected .pricing-border {
+ opacity: 1;
+}
+
+.pricing-classic-title {
+ margin-top: 0;
+ font-weight: 500;
+ letter-spacing: -.03em;
+}
+
+.pricing-classic-list li {
+ padding: 8px 5px;
+ border-top: 1px solid rgba(255, 255, 255, 0.1);
+}
+
+.pricing-classic-list li:last-child {
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
+}
+
+.pricing-classic-price {
+ display: flex;
+ align-items: flex-start;
+ justify-content: center;
+ font-weight: 500;
+ letter-spacing: -.03em;
+}
+
+.pricing-classic-price span {
+ font-size: 24px;
+}
+
+.box-pricing-modern {
+ position: relative;
+ text-align: center;
+ overflow: hidden;
+ padding-top: 20px;
+ max-width: 340px;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.box-pricing-modern:before {
+ position: absolute;
+ content: '';
+ top: 0;
+ left: 2px;
+ right: 0;
+ width: 100%;
+ height: 35px;
+ background: #ffffff;
+ transform: skewX(-35deg);
+ z-index: 0;
+}
+
+.box-pricing-modern .button {
+ min-width: 190px;
+}
+
+.box-pricing-modern * + .button {
+ margin-top: 40px;
+}
+
+.box-pricing-modern * + .pricing-modern-list {
+ margin-top: 30px;
+}
+
+.box-pricing-modern.box-pricing-selected .box-pricing-modern-inner {
+ padding: 25px 20px 55px;
+}
+
+.box-pricing-modern-inner {
+ position: relative;
+ padding: 10px 20px 40px;
+ background: #ffffff;
+ z-index: 1;
+}
+
+.pricing-modern-title {
+ font-weight: 500;
+ color: #151515;
+}
+
+* + .pricing-modern-price {
+ margin-top: 30px;
+}
+
+.pricing-modern-price {
+ font-weight: 500;
+ display: flex;
+ justify-content: center;
+ align-items: flex-start;
+}
+
+.pricing-modern-price span {
+ font-size: 24px;
+}
+
+.pricing-modern-price p {
+ margin-top: 0;
+ font-size: 60px;
+ line-height: 1;
+}
+
+@media (min-width: 992px) {
+ .pricing-modern-price p {
+ font-size: 72px;
+ }
+}
+
+.pricing-modern-list {
+ max-width: 200px;
+ margin-left: auto;
+ margin-right: auto;
+ color: rgba(21, 21, 21, 0.8);
+}
+
+.pricing-modern-list.list-marked > li:before {
+ color: #5656DF;
+}
+
+.pricing-corporate {
+ text-align: center;
+ padding: 20px 30px;
+ max-width: 370px;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.pricing-corporate .text-accent-2 {
+ position: relative;
+ font-size: 60px;
+ line-height: 1;
+ z-index: 1;
+}
+
+@media (min-width: 992px) {
+ .pricing-corporate .text-accent-2 {
+ font-size: 110px;
+ }
+}
+
+@media (min-width: 992px) {
+ .pricing-corporate {
+ padding: 20px 45px;
+ }
+}
+
+.pricing-corporate > * + * {
+ margin-top: 25px;
+}
+
+.pricing-corporate.box-pricing-selected {
+ border-left: 1px solid #E7E7E7;
+ border-right: 1px solid #E7E7E7;
+}
+
+.pricing-corporate-price {
+ position: relative;
+ display: flex;
+ align-items: flex-start;
+ justify-content: center;
+ flex-direction: row;
+}
+
+.pricing-corporate-price .heading-4 {
+ margin-top: 10px;
+ font-weight: 600;
+ letter-spacing: .2em;
+}
+
+.pricing-corporate-price * + p {
+ margin-top: 0;
+}
+
+.pricing-corporate-price .pricing-corporate-bonus {
+ position: absolute;
+ top: -15px;
+ right: -20px;
+ width: 62px;
+ height: 62px;
+ border-radius: 50%;
+ background: linear-gradient(228.54deg, #FFD541 36.26%, #F73CA1 96.73%);
+ color: #ffffff;
+ text-align: center;
+ font-size: 13px;
+ line-height: 20px;
+ font-weight: 700;
+ text-transform: uppercase;
+ padding: 21px 7px;
+ box-shadow: -5px 7px 10px rgba(21, 21, 21, 0.1);
+ z-index: 1;
+}
+
+@media (min-width: 1200px) {
+ .pricing-corporate-price .pricing-corporate-bonus {
+ right: 10px;
+ }
+}
+
+.pricing-corporate-title {
+ letter-spacing: .1em;
+ text-transform: uppercase;
+ line-height: 28px;
+ font-weight: 400;
+}
+
+.pricing-corporate-list {
+ color: rgba(21, 21, 21, 0.8);
+}
+
+.pricing-corporate-list li + li {
+ margin-top: 10px;
+}
+
+/*
+* Events
+*/
+.event-item-classic {
+ display: flex;
+ align-items: flex-start;
+ padding: 35px 20px;
+ background: #ffffff;
+ flex-direction: column;
+}
+
+.event-item-classic * + .event-item-classic-caption {
+ margin-top: 20px;
+}
+
+@media (min-width: 992px) {
+ .event-item-classic {
+ flex-direction: row;
+ padding: 50px 25px;
+ }
+ .event-item-classic .event-item-classic-figure {
+ margin-right: 50px;
+ }
+ .event-item-classic * + .event-item-classic-caption {
+ margin-top: 0;
+ }
+}
+
+.event-item-classic + .event-item-classic {
+ border-top: 0.75px solid rgba(196, 196, 196, 0.8);
+}
+
+@media (min-width: 992px) {
+ .event-item-classic-figure {
+ max-width: 109px;
+ width: 100%;
+ }
+}
+
+.event-item-classic-figure img {
+ border-radius: 50%;
+}
+
+.event-item-classic-figure .event-img-list {
+ margin-bottom: -6px;
+ margin-left: -6px;
+}
+
+.event-item-classic-figure .event-img-list:empty {
+ margin-bottom: 0;
+ margin-left: 0;
+}
+
+.event-item-classic-figure .event-img-list > * {
+ display: inline-block;
+ margin-top: 0;
+ margin-bottom: 6px;
+ margin-left: 6px;
+}
+
+.event-item-classic-caption h5 {
+ font-weight: 400;
+ letter-spacing: -.03em;
+}
+
+.event-item-classic-caption h5 a {
+ color: #4849b8;
+}
+
+.event-item-classic-caption h5 a:hover {
+ color: #5656DF;
+}
+
+.event-item-classic-caption h5 .location {
+ color: #FFD541;
+}
+
+* + .event-item-classic-text {
+ margin-top: 20px;
+}
+
+.event-item-classic-text * + * {
+ margin-top: 15px;
+}
+
+.event-item-classic-title {
+ font-weight: 400;
+}
+
+.event-item-classic-title + * {
+ margin-top: 15px;
+}
+
+* + .event-item-classic-title {
+ margin-top: 15px;
+}
+
+.events-time {
+ font-size: 18px;
+ font-weight: 500;
+ color: #4849b8;
+ letter-spacing: 0.05em;
+}
+
+.box-event-modern {
+ max-width: 670px;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.box-event-modern .event-item-modern + .event-item-modern {
+ margin-top: 40px;
+}
+
+.event-item-modern {
+ position: relative;
+}
+
+.event-item-modern .event-dot {
+ position: absolute;
+ display: inline-block;
+ left: 0;
+ top: 20px;
+ width: 30px;
+ height: 30px;
+ border-radius: 50%;
+ border: 1px solid #C4C4C4;
+}
+
+.event-item-modern > * + * {
+ margin-top: 15px;
+}
+
+.event-item-modern .event-time {
+ font-size: 18px;
+ font-weight: 500;
+ color: #4849b8;
+ letter-spacing: 0.05em;
+}
+
+.event-item-modern-title {
+ font-weight: 400;
+ letter-spacing: 0;
+}
+
+.box-sponsor {
+ display: inline-block;
+ border-radius: 50%;
+}
+
+.box-sponsor:hover {
+ box-shadow: 0 0 15px rgba(68, 65, 65, 0.25);
+}
+
+.box-sponsor.box-sponsor-modern {
+ overflow: hidden;
+}
+
+@media (min-width: 1200px) {
+ .box-sponsor.box-sponsor-modern:before {
+ position: absolute;
+ content: url("../images/sponsor-img-hover.png");
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ will-change: transform;
+ transition: all .3s;
+ opacity: 0;
+ }
+}
+
+.box-sponsor.box-sponsor-modern img {
+ opacity: .6;
+ transition: all .3s;
+}
+
+.box-sponsor.box-sponsor-modern:hover {
+ box-shadow: none;
+}
+
+.box-sponsor.box-sponsor-modern:hover:before {
+ opacity: 1;
+}
+
+.box-sponsor.box-sponsor-modern:hover img {
+ opacity: 1;
+}
+
+.box-user-classic {
+ text-align: center;
+ max-width: 130px;
+}
+
+.box-user-classic * + h5 {
+ margin-top: 15px;
+}
+
+.box-user-classic h5 {
+ font-weight: 500;
+ letter-spacing: -.03em;
+}
+
+.box-user-classic * + p {
+ margin-top: 5px;
+}
+
+.box-user-classic p {
+ font-size: 10px;
+ text-transform: uppercase;
+ letter-spacing: 0.15em;
+ color: rgba(21, 21, 21, 0.8);
+}
+
+.box-img-animate {
+ text-align: center;
+}
+
+.box-img-animate .box-img-animate-item {
+ display: inline-block;
+}
+
+.box-img-animate .box-img-animate-item img {
+ border-radius: 6px;
+ box-shadow: 8px 14px 40px rgba(0, 0, 0, 0.25);
+}
+
+@media (max-width: 1199.98px) {
+ .box-img-animate .box-img-animate-item + .box-img-animate-item {
+ margin-top: 20px;
+ }
+ .box-img-animate .box-img-animate-item {
+ padding: 0 15px;
+ }
+}
+
+.bunner-content-modern {
+ position: relative;
+}
+
+.bunner-content-modern .text-accent-2 {
+ font-size: 90px;
+ letter-spacing: .1em;
+ text-shadow: 0 4px 4px rgba(21, 21, 21, 0.25);
+}
+
+@media (min-width: 768px) {
+ .bunner-content-modern .text-accent-2 {
+ font-size: 140px;
+ }
+}
+
+@media (min-width: 992px) {
+ .bunner-content-modern .text-accent-2 {
+ font-size: 190px;
+ }
+}
+
+@media (min-width: 1200px) {
+ .bunner-content-modern .text-accent-2 {
+ font-size: 250px;
+ }
+}
+
+.bunner-content-modern .box-location {
+ padding: 20px;
+ text-transform: uppercase;
+ letter-spacing: .05em;
+ opacity: .8;
+ background: url("../images/bg-brush.png") center no-repeat;
+}
+
+.bunner-content-modern .box-location h4 {
+ font-weight: 800;
+ color: #ffffff;
+}
+
+.bunner-content-modern .box-location h5 {
+ font-weight: 700;
+}
+
+@media (min-width: 992px) {
+ .bunner-content-modern .box-location {
+ position: absolute;
+ top: 5%;
+ right: 27%;
+ }
+}
+
+.box-default-title {
+ letter-spacing: 0.01em;
+ text-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
+}
+
+.box-default-decor {
+ font-size: 0;
+ line-height: 0;
+ margin: 30px 0 22px;
+}
+
+.box-default-decor::before {
+ display: inline-block;
+ content: '';
+ height: 0;
+ width: 60px;
+ border-top: 3px solid #ffffff;
+}
+
+.box-default-text {
+ display: inline-block;
+ max-width: 550px;
+ letter-spacing: -0.03em;
+}
+
+.box-default-decor + .box-default-text {
+ margin-top: 0;
+}
+
+.clients-default {
+ display: block;
+ text-align: center;
+ max-width: 270px;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.clients-default:hover {
+ background: #ffffff;
+ box-shadow: 0 0 15px rgba(21, 21, 21, 0.25);
+}
+
+/*
+* Element groups
+*/
+html .group {
+ margin-bottom: -20px;
+ margin-left: -15px;
+}
+
+html .group:empty {
+ margin-bottom: 0;
+ margin-left: 0;
+}
+
+html .group > * {
+ display: inline-block;
+ margin-top: 0;
+ margin-bottom: 20px;
+ margin-left: 15px;
+}
+
+html .group-sm {
+ margin-bottom: -10px;
+ margin-left: -10px;
+}
+
+html .group-sm:empty {
+ margin-bottom: 0;
+ margin-left: 0;
+}
+
+html .group-sm > * {
+ display: inline-block;
+ margin-top: 0;
+ margin-bottom: 10px;
+ margin-left: 10px;
+}
+
+html .group-xl {
+ margin-bottom: -20px;
+ margin-left: -30px;
+}
+
+html .group-xl:empty {
+ margin-bottom: 0;
+ margin-left: 0;
+}
+
+html .group-xl > * {
+ display: inline-block;
+ margin-top: 0;
+ margin-bottom: 20px;
+ margin-left: 30px;
+}
+
+@media (min-width: 992px) {
+ html .group-xl {
+ margin-bottom: -20px;
+ margin-left: -45px;
+ }
+ html .group-xl > * {
+ margin-bottom: 20px;
+ margin-left: 45px;
+ }
+}
+
+html .group-middle {
+ display: inline-flex;
+ flex-wrap: wrap;
+ align-items: center;
+}
+
+html .group-custom {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-wrap: wrap;
+ max-width: 100%;
+}
+
+html .group-custom > * {
+ flex: 0 1 100%;
+ padding-left: 20px;
+ padding-right: 20px;
+}
+
+@media (min-width: 576px) {
+ html .group-custom {
+ flex-wrap: nowrap;
+ }
+ html .group-custom > * {
+ flex: 1 1 auto;
+ }
+}
+
+* + .group-sm {
+ margin-top: 30px;
+}
+
+* + .group-xl {
+ margin-top: 20px;
+}
+
+/*
+* Responsive units
+*/
+.unit {
+ display: flex;
+ flex: 0 1 100%;
+ margin-bottom: -30px;
+ margin-left: -20px;
+}
+
+.unit > * {
+ margin-bottom: 30px;
+ margin-left: 20px;
+}
+
+.unit:empty {
+ margin-bottom: 0;
+ margin-left: 0;
+}
+
+.unit-body {
+ flex: 0 1 auto;
+}
+
+.unit-left,
+.unit-right {
+ flex: 0 0 auto;
+ max-width: 100%;
+}
+
+.unit-spacing-xs {
+ margin-bottom: -15px;
+ margin-left: -7px;
+}
+
+.unit-spacing-xs > * {
+ margin-bottom: 15px;
+ margin-left: 7px;
+}
+
+/*
+* Lists
+*/
+/*
+* Vertical list
+*/
+.list > li + li {
+ margin-top: 10px;
+}
+
+.list-xs > li + li {
+ margin-top: 5px;
+}
+
+.list-sm > li + li {
+ margin-top: 10px;
+}
+
+.list-md > li + li {
+ margin-top: 18px;
+}
+
+.list-lg > li + li {
+ margin-top: 25px;
+}
+
+.list-xl > li + li {
+ margin-top: 30px;
+}
+
+.list-xxl > li + li {
+ margin-top: 30px;
+}
+
+@media (min-width: 992px) {
+ .list-xxl > li + li {
+ margin-top: 55px;
+ }
+}
+
+.heading-list h1, .heading-list h2, .heading-list h3, .heading-list h4, .heading-list h5, .heading-list h6, .heading-list [class^='heading-'] {
+ font-weight: 700;
+}
+
+.heading-list li * + p {
+ margin-top: 30px;
+}
+
+@media (min-width: 768px) {
+ .list-xl > li + li {
+ margin-top: 60px;
+ }
+}
+
+/*
+* List inline
+*/
+.list-inline > li {
+ display: inline-block;
+}
+
+html .list-inline-md {
+ margin-left: -10px;
+ margin-right: -10px;
+}
+
+html .list-inline-md > * {
+ margin-top: 8px;
+ padding-left: 10px;
+ padding-right: 10px;
+}
+
+@media (min-width: 992px) {
+ html .list-inline-md {
+ margin-left: -15px;
+ margin-right: -15px;
+ }
+ html .list-inline-md > * {
+ padding-left: 15px;
+ padding-right: 15px;
+ }
+}
+
+/*
+* List terms
+*/
+.list-terms dt + dd {
+ margin-top: 5px;
+}
+
+.list-terms dd + dt {
+ margin-top: 25px;
+}
+
+* + .list-terms {
+ margin-top: 25px;
+}
+
+/*
+* Index list
+*/
+.index-list {
+ counter-reset: li;
+}
+
+.index-list > li .list-index-counter:before {
+ content: counter(li, decimal-leading-zero);
+ counter-increment: li;
+}
+
+/*
+* Marked list
+*/
+.list-marked {
+ text-align: left;
+}
+
+.list-marked > li {
+ position: relative;
+ padding-left: 25px;
+}
+
+.list-marked > li::before {
+ position: absolute;
+ display: inline-block;
+ left: 0;
+ top: -1px;
+ min-width: 25px;
+ content: '\f222';
+ font-family: 'Material Design Icons';
+ line-height: 23px;
+ font-size: 15px;
+ letter-spacing: -0.03em;
+ color: #151515;
+}
+
+.list-marked > li + li {
+ margin-top: 4px;
+}
+
+* + .list-marked {
+ margin-top: 15px;
+}
+
+p + .list-marked {
+ margin-top: 10px;
+}
+
+/*
+* Ordered List
+*/
+.list-ordered {
+ counter-reset: li;
+ text-align: left;
+}
+
+.list-ordered > li {
+ position: relative;
+ padding-left: 25px;
+}
+
+.list-ordered > li:before {
+ content: counter(li, decimal) ".";
+ counter-increment: li;
+ position: absolute;
+ top: 0;
+ left: 0;
+ display: inline-block;
+ width: 15px;
+ color: #151515;
+}
+
+.list-ordered > li + li {
+ margin-top: 4px;
+}
+
+* + .list-ordered {
+ margin-top: 15px;
+}
+
+ul.list-color {
+ max-width: 248px;
+ margin-left: -4px;
+ margin-right: -4px;
+ text-align: center;
+ font-size: 0;
+}
+
+ul.list-color li {
+ display: inline-block;
+ padding-left: 4px;
+ padding-right: 4px;
+ margin-bottom: 8px;
+}
+
+ul.list-contact-info li + li {
+ margin-top: 24px;
+}
+
+ul.list-contact-info li {
+ position: relative;
+ padding-left: 40px;
+ font-size: 18px;
+}
+
+ul.list-contact-info li > * {
+ display: inline-block;
+}
+
+ul.list-contact-info li .icon {
+ position: absolute;
+ left: 0;
+ top: 2px;
+}
+
+ul.social-list {
+ margin-left: -10px;
+ margin-right: -10px;
+}
+
+ul.social-list > li {
+ display: inline-block;
+}
+
+ul.social-list > * {
+ margin-top: 20px;
+ padding-left: 10px;
+ padding-right: 10px;
+}
+
+ul.social-list a:hover {
+ color: #ffffff;
+ background: #4849b8;
+}
+
+@media (min-width: 768px) {
+ ul.social-list {
+ margin-left: -18px;
+ margin-right: -18px;
+ }
+ ul.social-list > * {
+ margin-top: 36px;
+ padding-left: 18px;
+ padding-right: 18px;
+ }
+}
+
+.category-list > li + li {
+ margin-top: 8px;
+}
+
+.category-list li {
+ position: relative;
+ padding-left: 30px;
+}
+
+.category-list li:before {
+ position: absolute;
+ left: 0;
+ color: #4849b8;
+ content: '\f14f';
+ font-family: 'Material Design Icons';
+ line-height: 27px;
+ font-size: 18px;
+ letter-spacing: -0.03em;
+ transition: all .3s;
+ opacity: 0;
+}
+
+.category-list li a {
+ display: flex;
+ justify-content: space-between;
+ color: rgba(21, 21, 21, 0.5);
+}
+
+.category-list li.active a, .category-list li:hover a {
+ color: #151515;
+}
+
+.category-list li.active:before, .category-list li:hover:before {
+ opacity: 1;
+}
+
+/*
+* Images
+*/
+img {
+ display: inline-block;
+ max-width: 100%;
+ height: auto;
+}
+
+.img-responsive {
+ width: 100%;
+}
+
+.box-image {
+ display: inline-block;
+ position: relative;
+}
+
+.box-image-position {
+ position: absolute;
+ bottom: 0;
+ left: 50%;
+ transform: translateX(-56%);
+}
+
+@media (max-width: 575.98px) {
+ .box-image-position {
+ width: 70.6%;
+ }
+}
+
+.box-image-static {
+ border-radius: 7px;
+}
+
+/*
+* Icons
+*/
+.icon {
+ display: inline-block;
+ font-size: 16px;
+ line-height: 1;
+}
+
+.icon::before {
+ position: relative;
+ display: inline-block;
+ font-weight: 400;
+ font-style: normal;
+ speak: none;
+ text-transform: none;
+}
+
+.icon-secondary {
+ color: #FFD541;
+}
+
+.icon-bg-white {
+ background: #ffffff;
+ color: #4849b8;
+}
+
+.icon-blue {
+ color: #135DEC;
+}
+
+.icon-pink {
+ color: #FF3951;
+}
+
+.icon-violet {
+ color: #2C3AB6;
+}
+
+.icon-blue-light {
+ color: #35B7E0;
+}
+
+.icon-circle {
+ border-radius: 50%;
+ text-align: center;
+}
+
+.icon-circle-md {
+ padding: 10px;
+ width: 48px;
+ height: 48px;
+}
+
+.icon-sm {
+ font-size: 22px;
+ line-height: 28px;
+}
+
+.icon-md {
+ font-size: 27px;
+}
+
+.icon-lg {
+ font-size: 36px;
+}
+
+.icon-xl {
+ font-size: 90px;
+ line-height: 1;
+}
+
+.icon-gradient-1 {
+ color: #5656DF;
+}
+
+.icon-gradient-2 {
+ color: #F73CA1;
+}
+
+.icon-gradient-3 {
+ color: #FFD541;
+}
+
+.icon-gradient-4 {
+ color: #00E175;
+}
+
+@supports (-webkit-background-clip: text) {
+ .icon-gradient-1 {
+ background: linear-gradient(228.54deg, #4849b8 30.16%, #5656DF 89.45%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ }
+ .icon-gradient-2 {
+ background: linear-gradient(228.54deg, #FFD541 36.26%, #F73CA1 96.73%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ }
+ .icon-gradient-3 {
+ background: linear-gradient(228.54deg, #5656DF 0%, #FFD541 100%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ }
+ .icon-gradient-4 {
+ background: linear-gradient(228.54deg, #00E175 0%, #5656DF 100%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ }
+}
+
+/*
+* Tables custom
+*/
+.table-custom {
+ width: 100%;
+ max-width: 100%;
+ text-align: left;
+ background: #ffffff;
+ border-collapse: collapse;
+}
+
+.table-custom th,
+.table-custom td {
+ color: #444141;
+ background: #ffffff;
+}
+
+.table-custom th {
+ padding: 35px 24px;
+ font-size: 14px;
+ font-weight: 700;
+ letter-spacing: .05em;
+ text-transform: uppercase;
+ background: #d7d7d7;
+}
+
+@media (max-width: 991.98px) {
+ .table-custom th {
+ padding-top: 20px;
+ padding-bottom: 20px;
+ }
+}
+
+.table-custom td {
+ padding: 17px 24px;
+}
+
+.table-custom tbody tr:first-child td {
+ border-top: 0;
+}
+
+.table-custom tr td {
+ border-bottom: 1px solid #E7E7E7;
+}
+
+.table-custom tfoot td {
+ font-weight: 700;
+}
+
+* + .table-custom-responsive {
+ margin-top: 30px;
+}
+
+@media (min-width: 768px) {
+ * + .table-custom-responsive {
+ margin-top: 40px;
+ }
+}
+
+.table-custom.table-custom-primary thead th {
+ color: #ffffff;
+ background: #4849b8;
+ border: 0;
+}
+
+.table-custom.table-custom-primary tbody tr:hover td {
+ background: #d7d7d7;
+}
+
+.table-custom.table-custom-bordered tr td:first-child {
+ border-left: 0;
+}
+
+.table-custom.table-custom-bordered tr td:last-child {
+ border-right: 0;
+}
+
+.table-custom.table-custom-bordered td {
+ border: 1px solid #E7E7E7;
+}
+
+.table-custom.table-custom-bordered tbody > tr:first-of-type > td {
+ border-top: 0;
+}
+
+.table-custom.table-custom-striped {
+ border-bottom: 1px solid #E7E7E7;
+}
+
+.table-custom.table-custom-striped tbody tr:nth-of-type(odd) td {
+ background: transparent;
+}
+
+.table-custom.table-custom-striped tbody tr:nth-of-type(even) td {
+ background: #d7d7d7;
+}
+
+.table-custom.table-custom-striped tbody td {
+ border: 0;
+}
+
+.table-custom.table-custom-striped tfoot td:not(:first-child) {
+ border-left: 0;
+}
+
+@media (max-width: 991.98px) {
+ .table-custom-responsive {
+ display: block;
+ width: 100%;
+ overflow-x: auto;
+ -ms-overflow-style: -ms-autohiding-scrollbar;
+ }
+ .table-custom-responsive.table-bordered {
+ border: 0;
+ }
+}
+
+/*
+* Dividers
+*/
+hr {
+ margin-top: 0;
+ margin-bottom: 0;
+ border-top: 1px solid #d7d7d7;
+}
+
+.divider {
+ font-size: 0;
+ line-height: 0;
+}
+
+.divider::after {
+ content: '';
+ display: inline-block;
+ width: 60px;
+ height: 2px;
+ background-color: #4849b8;
+}
+
+/*
+* Buttons
+*/
+.button {
+ position: relative;
+ overflow: hidden;
+ display: inline-block;
+ padding: 14px 35px;
+ font-size: 15px;
+ line-height: 1.25;
+ border: 1px solid;
+ border-radius: 0;
+ font-family: "Poppins", sans-serif;
+ font-weight: 600;
+ letter-spacing: 0;
+ text-transform: uppercase;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ text-align: center;
+ cursor: pointer;
+ vertical-align: middle;
+ user-select: none;
+ transition: 250ms all ease-in-out;
+}
+
+.button-block {
+ display: block;
+ width: 100%;
+}
+
+.button-default, .button-default:focus {
+ color: #E7E7E7;
+ background-color: #444141;
+ border-color: #444141;
+}
+
+.button-default:hover, .button-default:active {
+ color: #ffffff;
+ background-color: #4849b8;
+ border-color: #4849b8;
+}
+
+.button-default.button-ujarak::before {
+ background: #4849b8;
+}
+
+.button-gray-100, .button-gray-100:focus {
+ color: #151515;
+ background-color: #edeff4;
+ border-color: #edeff4;
+}
+
+.button-gray-100:hover, .button-gray-100:active {
+ color: #151515;
+ background-color: #dde1ea;
+ border-color: #dde1ea;
+}
+
+.button-gray-100.button-ujarak::before {
+ background: #dde1ea;
+}
+
+.button-gray-600, .button-gray-600:focus {
+ color: #ffffff;
+ background-color: #323232;
+ border-color: #323232;
+}
+
+.button-gray-600:hover, .button-gray-600:active {
+ color: #ffffff;
+ background-color: #4849b8;
+ border-color: #4849b8;
+}
+
+.button-gray-600.button-ujarak::before {
+ background: #4849b8;
+}
+
+.button-gray-2, .button-gray-2:focus {
+ color: #ffffff;
+ background-color: #4C4C4C;
+ border-color: #4C4C4C;
+}
+
+.button-gray-2:hover, .button-gray-2:active {
+ color: #ffffff;
+ background-color: #4849b8;
+ border-color: #4849b8;
+}
+
+.button-gray-2.button-ujarak::before {
+ background: #4849b8;
+}
+
+.button-primary, .button-primary:focus {
+ color: #ffffff;
+ background-color: #4849b8;
+ border-color: #4849b8;
+}
+
+.button-primary:hover, .button-primary:active {
+ color: #ffffff;
+ background-color: #444141;
+ border-color: #444141;
+}
+
+.button-primary.button-ujarak::before {
+ background: #444141;
+}
+
+.button-secondary, .button-secondary:focus {
+ color: #ffffff;
+ background-color: #FFD541;
+ border-color: #FFD541;
+}
+
+.button-secondary:hover, .button-secondary:active {
+ color: #ffffff;
+ background-color: #151515;
+ border-color: #151515;
+}
+
+.button-secondary.button-ujarak::before {
+ background: #151515;
+}
+
+.button-white, .button-white:focus {
+ color: #151515;
+ background-color: #ffffff;
+ border-color: #ffffff;
+}
+
+.button-white:hover, .button-white:active {
+ color: #ffffff;
+ background-color: #151515;
+ border-color: #151515;
+}
+
+.button-white.button-ujarak::before {
+ background: #151515;
+}
+
+.button-default-outline, .button-default-outline:focus {
+ color: #151515;
+ background-color: transparent;
+ border-color: #151515;
+}
+
+.button-default-outline:hover, .button-default-outline:active {
+ color: #ffffff;
+ background-color: #4849b8;
+ border-color: #4849b8;
+}
+
+.button-default-outline.button-ujarak::before {
+ background: #4849b8;
+}
+
+.button-white-outline, .button-white-outline:focus {
+ color: #ffffff;
+ background-color: transparent;
+ border-color: #ffffff;
+}
+
+.button-white-outline:hover, .button-white-outline:active {
+ color: #ffffff;
+ background-color: #4849b8;
+ border-color: #4849b8;
+}
+
+.button-white-outline.button-ujarak::before {
+ background: #4849b8;
+}
+
+.button-gradient {
+ background: transparent;
+ border: none;
+ z-index: 1;
+ color: #ffffff;
+}
+
+.button-gradient:before, .button-gradient:after {
+ position: absolute;
+ top: -2px;
+ left: -2px;
+ bottom: -2px;
+ right: -2px;
+ content: '';
+ z-index: -1;
+ transition: all .3s;
+}
+
+.button-gradient:before {
+ background: linear-gradient(228.54deg, #4849b8 30.16%, #5656DF 89.45%);
+}
+
+.button-gradient:after {
+ opacity: 0;
+ background: linear-gradient(-228.54deg, #4849b8 30.16%, #5656DF 89.45%);
+}
+
+.button-gradient:hover {
+ color: #ffffff;
+}
+
+.button-gradient:hover:before {
+ opacity: 0;
+}
+
+.button-gradient:hover:after {
+ opacity: 1;
+}
+
+.button-gradient:focus, .button-gradient:active {
+ color: #ffffff;
+}
+
+.button-gradient-secondary {
+ background: transparent;
+ border: none;
+ z-index: 1;
+ color: #ffffff;
+}
+
+.button-gradient-secondary:before, .button-gradient-secondary:after {
+ position: absolute;
+ top: -2px;
+ left: -2px;
+ bottom: -2px;
+ right: -2px;
+ content: '';
+ z-index: -1;
+ transition: all .3s;
+}
+
+.button-gradient-secondary:before {
+ background: linear-gradient(228.54deg, #FFD541 36.26%, #F73CA1 96.73%);
+}
+
+.button-gradient-secondary:after {
+ opacity: 0;
+ background: linear-gradient(-228.54deg, #FFD541 36.26%, #F73CA1 96.73%);
+}
+
+.button-gradient-secondary:hover {
+ color: #ffffff;
+}
+
+.button-gradient-secondary:hover:before {
+ opacity: 0;
+}
+
+.button-gradient-secondary:hover:after {
+ opacity: 1;
+}
+
+.button-gradient-secondary:focus, .button-gradient-secondary:active {
+ color: #ffffff;
+}
+
+.button-gradient-secondary-2 {
+ background: transparent;
+ border: none;
+ z-index: 1;
+ color: #ffffff;
+}
+
+.button-gradient-secondary-2:before, .button-gradient-secondary-2:after {
+ position: absolute;
+ top: -2px;
+ left: -2px;
+ bottom: -2px;
+ right: -2px;
+ content: '';
+ z-index: -1;
+ transition: all .3s;
+}
+
+.button-gradient-secondary-2:before {
+ background: linear-gradient(228.54deg, #00E175 0%, #5656DF 100%);
+}
+
+.button-gradient-secondary-2:after {
+ opacity: 0;
+ background: linear-gradient(-228.54deg, #00E175 0%, #5656DF 100%);
+}
+
+.button-gradient-secondary-2:hover {
+ color: #ffffff;
+}
+
+.button-gradient-secondary-2:hover:before {
+ opacity: 0;
+}
+
+.button-gradient-secondary-2:hover:after {
+ opacity: 1;
+}
+
+.button-ghost {
+ border: 0;
+ background-color: transparent;
+}
+
+.button-ghost:hover {
+ color: #ffffff;
+ background: #4849b8;
+}
+
+.button-facebook, .button-facebook:focus {
+ color: #ffffff;
+ background-color: #4d70a8;
+ border-color: #4d70a8;
+}
+
+.button-facebook:hover, .button-facebook:active {
+ color: #ffffff;
+ background-color: #456497;
+ border-color: #456497;
+}
+
+.button-facebook.button-ujarak::before {
+ background: #456497;
+}
+
+.button-twitter, .button-twitter:focus {
+ color: #ffffff;
+ background-color: #02bcf3;
+ border-color: #02bcf3;
+}
+
+.button-twitter:hover, .button-twitter:active {
+ color: #ffffff;
+ background-color: #02a8da;
+ border-color: #02a8da;
+}
+
+.button-twitter.button-ujarak::before {
+ background: #02a8da;
+}
+
+.button-google, .button-google:focus {
+ color: #ffffff;
+ background-color: #e2411e;
+ border-color: #e2411e;
+}
+
+.button-google:hover, .button-google:active {
+ color: #ffffff;
+ background-color: #cc3a1a;
+ border-color: #cc3a1a;
+}
+
+.button-google.button-ujarak::before {
+ background: #cc3a1a;
+}
+
+.button-shadow {
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.25);
+}
+
+.button-shadow:hover {
+ box-shadow: 0 9px 10px 0 rgba(0, 0, 0, 0.15);
+}
+
+.button-shadow:focus, .button-shadow:active {
+ box-shadow: none;
+}
+
+.button-ujarak {
+ position: relative;
+ z-index: 0;
+ transition: background .4s, border-color .4s, color .4s;
+}
+
+.button-ujarak::before {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background: #4849b8;
+ z-index: -1;
+ opacity: 0;
+ transform: scale3d(0.7, 1, 1);
+ transition: transform 0.42s, opacity 0.42s;
+ border-radius: inherit;
+}
+
+.button-ujarak, .button-ujarak::before {
+ transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
+}
+
+.button-ujarak:hover {
+ transition: background .4s .4s, border-color .4s 0s, color .2s 0s;
+}
+
+.button-ujarak:hover::before {
+ opacity: 1;
+ transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
+}
+
+.button-xs {
+ padding: 8px 17px;
+}
+
+.button-sm {
+ padding: 8px 25px;
+ font-size: 13px;
+ line-height: 20px;
+}
+
+.button-lg {
+ padding: 18px 35px;
+ font-size: 15px;
+ line-height: 1.5;
+}
+
+.button-lg.button-gradient {
+ padding: 19px 35px;
+}
+
+.button-xl {
+ padding: 16px 50px;
+ font-size: 16px;
+ line-height: 28px;
+}
+
+@media (min-width: 992px) {
+ .button-xl {
+ padding: 20px 80px;
+ }
+}
+
+.button-circle {
+ border-radius: 30px;
+}
+
+.button-round-1 {
+ border-radius: 5px;
+}
+
+.button-round-2 {
+ border-radius: 10px;
+}
+
+.button.button-icon {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ vertical-align: middle;
+}
+
+.button.button-icon .icon {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle;
+ color: inherit;
+ font-size: 1.55em;
+ line-height: 1em;
+}
+
+.button.button-icon-left .icon {
+ padding-right: 11px;
+}
+
+.button.button-icon-right {
+ flex-direction: row-reverse;
+}
+
+.button.button-icon-right .icon {
+ padding-left: 11px;
+}
+
+.button.button-icon.button-link .icon {
+ top: 5px;
+ font-size: 1em;
+}
+
+.button.button-icon.button-xs .icon {
+ top: .05em;
+ font-size: 1.2em;
+ padding-right: 8px;
+}
+
+.button.button-icon.button-xs .button-icon-right {
+ padding-left: 8px;
+}
+
+.btn-primary {
+ border-radius: 3px;
+ font-family: "Poppins", sans-serif;
+ font-weight: 600;
+ letter-spacing: .05em;
+ text-transform: uppercase;
+ transition: .33s;
+}
+
+.btn-primary, .btn-primary:active, .btn-primary:focus {
+ color: #ffffff;
+ background: #4849b8;
+ border-color: #4849b8;
+}
+
+.btn-primary:hover {
+ color: #ffffff;
+ background: #000000;
+ border-color: #000000;
+}
+
+.block-video-button a {
+ position: relative;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+ width: 90px;
+ height: 90px;
+ border-radius: 50%;
+ border: 5px solid rgba(255, 255, 255, 0.3);
+ color: #ffffff;
+ transition: all .3s;
+ z-index: 2;
+}
+
+.block-video-button a .icon {
+ color: #C4C4C4;
+}
+
+.block-video-button a:before {
+ position: absolute;
+ content: '';
+ top: -15px;
+ left: -15px;
+ bottom: -15px;
+ right: -15px;
+ border-radius: 50%;
+ border: 3px solid rgba(255, 255, 255, 0.3);
+ transition: all .3s;
+ z-index: 1;
+}
+
+.block-video-button a:after {
+ position: absolute;
+ content: '';
+ top: -25px;
+ left: -25px;
+ bottom: -25px;
+ right: -25px;
+ border-radius: 50%;
+ border: 2px solid rgba(255, 255, 255, 0.3);
+ transition: all .3s;
+ z-index: 0;
+}
+
+.block-video-button a:hover {
+ background: rgba(86, 86, 223, 0.8);
+ border-color: rgba(86, 86, 223, 0.8);
+}
+
+.block-video-button a:hover:before, .block-video-button a:hover:after {
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ opacity: 0;
+}
+
+@media (min-width: 992px) {
+ .block-video-button a {
+ width: 120px;
+ height: 120px;
+ }
+}
+
+/*
+* Form styles
+*/
+.rd-form {
+ position: relative;
+ text-align: left;
+}
+
+.rd-form .button {
+ min-height: 60px;
+}
+
+* + .rd-form {
+ margin-top: 20px;
+}
+
+input:-webkit-autofill ~ label,
+input:-webkit-autofill ~ .form-validation {
+ color: #000000 !important;
+}
+
+.form-wrap {
+ position: relative;
+}
+
+.form-wrap.has-error .form-input {
+ border-color: #f5543f;
+}
+
+.form-wrap.has-focus .form-input {
+ border-color: #4849b8;
+}
+
+.form-wrap + * {
+ margin-top: 20px;
+}
+
+.form-input {
+ display: block;
+ width: 100%;
+ min-height: 60px;
+ padding: 16px 25px;
+ font-size: 15px;
+ font-weight: 300;
+ line-height: 26px;
+ color: #151515;
+ background-color: #ffffff;
+ background-image: none;
+ border-radius: 5px;
+ -webkit-appearance: none;
+ transition: .3s ease-in-out;
+ border: 1px solid #C4C4C4;
+}
+
+.form-input:focus {
+ outline: 0;
+}
+
+textarea.form-input {
+ height: 135px;
+ min-height: 60px;
+ max-height: 230px;
+ resize: vertical;
+}
+
+.form-label,
+.form-label-outside {
+ margin-bottom: 0;
+ color: rgba(21, 21, 21, 0.8);
+ font-weight: 300;
+}
+
+.form-label {
+ position: absolute;
+ top: 30px;
+ left: 0;
+ right: 0;
+ padding-left: 25px;
+ padding-right: 25px;
+ font-size: 15px;
+ font-weight: 300;
+ line-height: 26px;
+ pointer-events: none;
+ text-align: left;
+ z-index: 9;
+ transition: .25s;
+ will-change: transform;
+ transform: translateY(-50%);
+}
+
+.form-label.focus {
+ opacity: 0;
+}
+
+.form-label.auto-fill {
+ color: #151515;
+}
+
+.form-label-outside {
+ width: 100%;
+ margin-bottom: 4px;
+}
+
+@media (min-width: 768px) {
+ .form-label-outside {
+ position: static;
+ }
+ .form-label-outside, .form-label-outside.focus, .form-label-outside.auto-fill {
+ transform: none;
+ }
+}
+
+[data-x-mode='true'] .form-label {
+ pointer-events: auto;
+}
+
+.form-validation {
+ position: absolute;
+ right: 15px;
+ top: 0;
+ z-index: 11;
+ margin-top: 2px;
+ font-size: 9px;
+ font-weight: 400;
+ line-height: 12px;
+ letter-spacing: 0;
+ color: #f5543f;
+ transition: .3s;
+}
+
+.form-wrap-recaptcha .form-validation {
+ right: auto;
+ left: 5px;
+}
+
+.form-validation-left .form-validation {
+ top: 100%;
+ right: auto;
+ left: 0;
+}
+
+#form-output-global {
+ position: fixed;
+ bottom: 30px;
+ left: 15px;
+ z-index: 2000;
+ visibility: hidden;
+ transform: translate3d(-500px, 0, 0);
+ transition: .3s all ease;
+}
+
+#form-output-global.active {
+ visibility: visible;
+ transform: translate3d(0, 0, 0);
+}
+
+@media (min-width: 576px) {
+ #form-output-global {
+ left: 30px;
+ }
+}
+
+.form-output {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ font-size: 10px;
+ font-weight: 400;
+ line-height: 1.2;
+ margin-top: 2px;
+ transition: .3s;
+ opacity: 0;
+ visibility: hidden;
+}
+
+.form-output.active {
+ opacity: 1;
+ visibility: visible;
+}
+
+.form-output.error {
+ color: #f5543f;
+}
+
+.form-output.success {
+ color: #98bf44;
+}
+
+.radio .radio-custom,
+.radio-inline .radio-custom,
+.checkbox .checkbox-custom,
+.checkbox-inline .checkbox-custom {
+ opacity: 0;
+}
+
+.radio .radio-custom, .radio .radio-custom-dummy,
+.radio-inline .radio-custom,
+.radio-inline .radio-custom-dummy,
+.checkbox .checkbox-custom,
+.checkbox .checkbox-custom-dummy,
+.checkbox-inline .checkbox-custom,
+.checkbox-inline .checkbox-custom-dummy {
+ position: absolute;
+ left: 0;
+ width: 14px;
+ height: 14px;
+ outline: none;
+ cursor: pointer;
+}
+
+.radio .radio-custom-dummy,
+.radio-inline .radio-custom-dummy,
+.checkbox .checkbox-custom-dummy,
+.checkbox-inline .checkbox-custom-dummy {
+ pointer-events: none;
+ background: #ffffff;
+}
+
+.radio .radio-custom-dummy::after,
+.radio-inline .radio-custom-dummy::after,
+.checkbox .checkbox-custom-dummy::after,
+.checkbox-inline .checkbox-custom-dummy::after {
+ position: absolute;
+ opacity: 0;
+ transition: .22s;
+}
+
+.radio .radio-custom:focus,
+.radio-inline .radio-custom:focus,
+.checkbox .checkbox-custom:focus,
+.checkbox-inline .checkbox-custom:focus {
+ outline: none;
+}
+
+.radio,
+.radio-inline,
+.checkbox,
+.checkbox-inline {
+ cursor: pointer;
+}
+
+.radio input,
+.radio-inline input,
+.checkbox input,
+.checkbox-inline input {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ white-space: nowrap;
+ border: 0;
+}
+
+.radio-custom:checked + .radio-custom-dummy:after,
+.checkbox-custom:checked + .checkbox-custom-dummy:after {
+ opacity: 1;
+}
+
+.radio,
+.radio-inline {
+ padding-left: 28px;
+}
+
+.radio .radio-custom-dummy,
+.radio-inline .radio-custom-dummy {
+ top: 1px;
+ left: 0;
+ width: 18px;
+ height: 18px;
+ border-radius: 50%;
+ border: 1px solid #C4C4C4;
+}
+
+.radio .radio-custom-dummy::after,
+.radio-inline .radio-custom-dummy::after {
+ content: '';
+ top: 3px;
+ right: 3px;
+ bottom: 3px;
+ left: 3px;
+ background: #444141;
+ border-radius: inherit;
+}
+
+.checkbox,
+.checkbox-inline {
+ padding-left: 35px;
+ font-size: 13px;
+}
+
+.checkbox .checkbox-custom-dummy,
+.checkbox-inline .checkbox-custom-dummy {
+ left: 0;
+ width: 23px;
+ height: 23px;
+ margin: 0;
+ border: 1px solid #C4C4C4;
+ background: #ffffff;
+ border-radius: 3px;
+}
+
+.checkbox .checkbox-custom-dummy::after,
+.checkbox-inline .checkbox-custom-dummy::after {
+ content: '\f222';
+ font-family: "Material Design Icons";
+ position: absolute;
+ top: 2px;
+ left: 1px;
+ font-size: 20px;
+ line-height: 18px;
+ color: #151515;
+}
+
+.toggle-custom {
+ padding-left: 60px;
+ -webkit-appearance: none;
+}
+
+.toggle-custom:checked ~ .checkbox-custom-dummy::after {
+ background: #4849b8;
+ transform: translate(20px, -50%);
+}
+
+.toggle-custom ~ .checkbox-custom-dummy {
+ position: relative;
+ display: inline-block;
+ margin-top: -1px;
+ width: 44px;
+ height: 20px;
+ background: #ffffff;
+ cursor: pointer;
+}
+
+.toggle-custom ~ .checkbox-custom-dummy::after {
+ content: '';
+ position: absolute;
+ display: inline-block;
+ width: 16px;
+ height: 16px;
+ left: 0;
+ top: 50%;
+ background: #C4C4C4;
+ transform: translate(4px, -50%);
+ opacity: 1;
+ transition: .22s;
+}
+
+.rd-form-inline {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: stretch;
+ text-align: center;
+ margin-left: -10px;
+ margin-right: -10px;
+}
+
+.rd-form-inline > * {
+ margin-top: 20px;
+ padding-left: 10px;
+ padding-right: 10px;
+}
+
+.rd-form-inline > * {
+ margin-top: 0;
+ margin-bottom: 20px;
+}
+
+@media (min-width: 992px) {
+ .rd-form-inline > * {
+ margin-top: 0;
+ }
+}
+
+.rd-form-inline .form-label {
+ justify-content: flex-start;
+}
+
+.rd-form-inline .form-wrap {
+ flex: auto;
+ min-width: 185px;
+ flex: 1;
+}
+
+@media (max-width: 575.98px) {
+ .rd-form-inline .form-wrap {
+ width: 100%;
+ }
+}
+
+.rd-form-inline .form-wrap-select {
+ text-align: left;
+}
+
+.rd-form-inline .form-button {
+ flex-shrink: 0;
+ max-width: calc(100% - 10px);
+ min-height: 60px;
+}
+
+@media (max-width: 575.98px) {
+ .rd-form-inline .form-button {
+ max-width: inherit;
+ width: 100%;
+ }
+ .rd-form-inline .form-button .button {
+ width: 100%;
+ }
+}
+
+.rd-form-inline .form-button .button {
+ min-height: inherit;
+ border-radius: 5px;
+}
+
+@media (min-width: 576px) {
+ .rd-form-inline .button {
+ display: block;
+ }
+}
+
+.rd-form-inline.rd-form-inline-centered {
+ justify-content: center;
+}
+
+.form-sm .form-input,
+.form-sm .button {
+ padding-top: 9px;
+ padding-bottom: 9px;
+ min-height: 50px;
+}
+
+.form-sm .form-validation {
+ top: -16px;
+}
+
+.form-sm .form-label {
+ top: 25px;
+}
+
+.form-sm * + .button {
+ margin-top: 10px;
+}
+
+.form-lg .form-input,
+.form-lg .form-label,
+.form-lg .select2-container .select2-choice {
+ font-size: 16px;
+}
+
+.form-lg .form-input,
+.form-lg .select2-container .select2-choice {
+ font-size: 16px;
+ padding-top: 16px;
+ padding-bottom: 16px;
+}
+
+.form-lg .form-input,
+.form-lg .select2-container .select2-choice {
+ min-height: 58px;
+}
+
+.form-lg .form-button {
+ min-height: 60px;
+}
+
+.form-lg .form-label {
+ top: 30px;
+}
+
+.bg-default .form-input {
+ background: #f5f5f5;
+}
+
+.ie-10 .box-booking::before,
+.ie-11 .box-booking::before,
+.ie-edge .box-booking::before {
+ bottom: 0;
+ background: transparent;
+ box-shadow: 0 0 40px 20px rgba(0, 0, 0, 0.15);
+}
+
+.box-booking {
+ position: relative;
+ padding: 20px 15px;
+ color: rgba(0, 0, 0, 0.8);
+ background: #ffffff;
+ border-radius: 7px;
+}
+
+.box-booking::before {
+ position: absolute;
+ content: '';
+ top: 12%;
+ right: 3.4%;
+ bottom: -9%;
+ left: 3.4%;
+ background: rgba(0, 0, 0, 0.2);
+ filter: blur(20px);
+ border-radius: 7px;
+ z-index: -1;
+}
+
+.booking-form {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ overflow: hidden;
+ margin: 0 -15px -20px;
+}
+
+.booking-form > div {
+ position: relative;
+ padding: 0 15px;
+ margin-bottom: 20px;
+ width: 100%;
+}
+
+.booking-form > div::before {
+ position: absolute;
+ content: '';
+ top: 50%;
+ left: -1px;
+ width: 0;
+ height: 60px;
+ border-left: 1px solid #E7E7E7;
+ transform: translateY(-50%);
+}
+
+.booking-form > div:last-child::before {
+ display: none;
+}
+
+.booking-form .form-wrap.has-error .form-input {
+ border-color: transparent transparent #f5543f transparent;
+}
+
+.booking-form .form-label,
+.booking-form .form-input {
+ color: #000000;
+ font-size: 16px;
+ font-weight: 400;
+ letter-spacing: 0;
+}
+
+.booking-form .form-input {
+ padding: 6px 0;
+ min-height: 40px;
+ border-radius: 0;
+ border-color: transparent transparent #C4C4C4 transparent;
+}
+
+.booking-form .form-label {
+ top: 20px;
+ padding: 0;
+}
+
+.booking-form .form-validation {
+ margin-top: 0;
+ top: 100%;
+ right: 0;
+}
+
+.booking-form .select2-container .select2-selection--single {
+ border-bottom: 1px solid #C4C4C4;
+}
+
+.booking-form .form-wrap-icon .icon {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ width: 30px;
+ font-size: 20px;
+ line-height: 1;
+ color: #000000;
+}
+
+.booking-form .form-wrap-icon .form-input {
+ padding-right: 30px;
+}
+
+.booking-form .button {
+ min-height: auto;
+ padding: 14px 15px;
+ font-size: 13px;
+ line-height: 1.5;
+}
+
+.booking-title {
+ font-weight: 400;
+ text-transform: uppercase;
+}
+
+@media (min-width: 576px) {
+ .booking-form > div:nth-child(1) {
+ flex: 0 0 50%;
+ max-width: 50%;
+ }
+ .booking-form > div:nth-child(2) {
+ flex: 0 0 50%;
+ max-width: 50%;
+ }
+ .booking-form > div:nth-child(3) {
+ flex: 0 0 50%;
+ max-width: 50%;
+ }
+ .booking-form > div:nth-child(4) {
+ flex: 0 0 50%;
+ max-width: 50%;
+ }
+ .booking-form .form-input {
+ border-color: transparent;
+ }
+ .booking-form .select2-container .select2-selection--single {
+ border-bottom: none;
+ }
+}
+
+@media (min-width: 768px) {
+ .box-booking {
+ padding-top: 30px;
+ padding-bottom: 30px;
+ }
+ .booking-form {
+ margin-bottom: -30px;
+ }
+ .booking-form > div {
+ margin-bottom: 30px;
+ }
+ .booking-form > div::before {
+ height: 70px;
+ }
+ .booking-form > div:nth-child(1) {
+ flex: 0 0 28%;
+ max-width: 28%;
+ }
+ .booking-form > div:nth-child(2) {
+ flex: 0 0 30%;
+ max-width: 30%;
+ }
+ .booking-form > div:nth-child(3) {
+ flex: 0 0 22%;
+ max-width: 22%;
+ }
+ .booking-form > div:nth-child(4) {
+ flex: 0 0 20%;
+ max-width: 20%;
+ }
+}
+
+@media (min-width: 992px) {
+ .box-booking {
+ padding-top: 40px;
+ padding-bottom: 40px;
+ }
+ .booking-form > div::before {
+ height: 90px;
+ }
+ .booking-form > div:nth-child(1) {
+ flex: 0 0 22%;
+ max-width: 22%;
+ }
+ .booking-form > div:nth-child(2) {
+ flex: 0 0 25%;
+ max-width: 25%;
+ }
+ .booking-form > div:nth-child(3) {
+ flex: 0 0 17%;
+ max-width: 17%;
+ }
+ .booking-form > div:nth-child(4) {
+ flex: 0 0 15%;
+ max-width: 15%;
+ }
+ .booking-form > div:nth-child(5) {
+ flex: 0 0 21%;
+ max-width: 21%;
+ }
+}
+
+@media (min-width: 1200px) {
+ .box-booking {
+ padding: 66px 40px;
+ }
+ .booking-form {
+ margin-left: -30px;
+ }
+ .booking-form > div {
+ padding-left: 30px;
+ }
+ .booking-form .form-label,
+ .booking-form .form-input {
+ font-size: 20px;
+ }
+ .booking-form .form-wrap-icon .icon {
+ width: 40px;
+ font-size: 24px;
+ }
+ .booking-form .form-wrap-icon .form-input {
+ padding-right: 40px;
+ }
+ .booking-form .button {
+ padding: 18px 20px;
+ font-size: 15px;
+ }
+ .booking-title {
+ letter-spacing: 0.05em;
+ }
+}
+
+.booking-title + .form-wrap {
+ margin-top: 7px;
+}
+
+/*
+* Posts
+*/
+.badge {
+ padding: 4px 10px;
+ border-radius: 3px;
+ background: #323232;
+ text-transform: uppercase;
+ font-size: 13px;
+ line-height: 20px;
+ font-weight: 700;
+ color: #ffffff;
+ letter-spacing: .05em;
+}
+
+.badge:hover {
+ color: #ffffff;
+ background: #4849b8;
+}
+
+.badge:focus, .badge:active {
+ color: #ffffff;
+}
+
+.badge.badge-primary {
+ background: #4849b8;
+}
+
+.badge.badge-primary:hover {
+ color: #ffffff;
+ background: #151515;
+}
+
+.badge.badge-secondary {
+ background: #FFD541;
+}
+
+.badge.badge-secondary:hover {
+ color: #ffffff;
+ background: #151515;
+}
+
+@media (min-width: 992px) {
+ .badge {
+ font-size: 15px;
+ }
+}
+
+ul.blog-post-meta {
+ font-size: 18px;
+ font-weight: 400;
+}
+
+ul.blog-post-meta > li {
+ display: inline-block;
+ vertical-align: middle;
+}
+
+ul.blog-post-meta li + li {
+ margin-left: 15px;
+}
+
+ul.blog-post-meta li {
+ color: rgba(0, 0, 0, 0.5);
+}
+
+ul.blog-post-meta li .icon {
+ font-size: 18px;
+ margin-right: 5px;
+ color: #000000;
+}
+
+* + .blog-post-title {
+ margin-top: 30px;
+}
+
+.blog-post-title {
+ font-weight: 500;
+}
+
+* + .blog-post-content {
+ margin-top: 35px;
+}
+
+.blog-post-content > * + * {
+ margin-top: 35px;
+}
+
+.blog-post-content * + .list-marked {
+ margin-top: 35px;
+}
+
+.blog-post-content .list-marked li + li {
+ margin-top: 20px;
+}
+
+.blog-post-share {
+ position: relative;
+}
+
+@media (min-width: 992px) {
+ .blog-post-share {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ }
+ .blog-post-share:before {
+ position: relative;
+ display: block;
+ content: '';
+ width: 100%;
+ height: 1px;
+ max-width: 60%;
+ border-top: 1px solid #C4C4C4;
+ }
+}
+
+@media (min-width: 1200px) {
+ .blog-post-share:before {
+ max-width: 70%;
+ }
+}
+
+.blog-post-share .thin-title + * {
+ margin-top: 0;
+}
+
+.blog-post-share li + li {
+ vertical-align: middle;
+ margin-left: 20px;
+}
+
+.blog-post-share .icon {
+ color: #151515;
+}
+
+.blog-post-share .icon:hover {
+ color: #4849b8;
+}
+
+.post-classic {
+ max-width: 370px;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.post-classic:hover .post-classic-figure img {
+ opacity: .8;
+ transform: scale(1.04);
+}
+
+.post-classic-figure {
+ background: #151515;
+ overflow: hidden;
+}
+
+.post-classic-figure img {
+ max-width: inherit;
+ transition: all .3s;
+ will-change: transform;
+}
+
+.post-classic-caption {
+ position: relative;
+ padding-top: 30px;
+}
+
+.post-classic-caption > * {
+ position: relative;
+ z-index: 1;
+}
+
+.post-classic-caption:before {
+ position: absolute;
+ content: '';
+ top: 10px;
+ right: 0;
+ left: 55%;
+ bottom: 0;
+ background: url("../images/bg-dot.png") center;
+ opacity: .2;
+ z-index: 0;
+}
+
+.post-classic-meta {
+ font-size: 18px;
+ line-height: 28px;
+ font-weight: 400;
+ color: rgba(0, 0, 0, 0.5);
+}
+
+.post-classic-meta > li {
+ display: inline-block;
+}
+
+.post-classic-meta li + li {
+ margin-left: 30px;
+}
+
+* + .post-classic-meta {
+ margin-top: 20px;
+}
+
+.post-classic-tag {
+ color: #4849b8;
+}
+
+.post-classic-tag:hover {
+ color: #151515;
+}
+
+.post-classic-tag.post-classic-tag-secondary {
+ color: #FFD541;
+}
+
+.post-classic-tag.post-classic-tag-secondary:hover {
+ color: #4849b8;
+}
+
+.post-classic-tag.post-classic-tag-secondary-2 {
+ color: #5656DF;
+}
+
+.post-classic-tag.post-classic-tag-secondary-2:hover {
+ color: #FFD541;
+}
+
+.post-classic-title {
+ font-weight: 500;
+ line-height: 38px;
+ letter-spacing: -.03em;
+}
+
+.block-aside {
+ max-width: 370px;
+ margin-left: auto;
+ margin-right: auto;
+ margin-bottom: -60px;
+}
+
+.block-aside > * {
+ margin-bottom: 60px;
+}
+
+@media (min-width: 768px) and (max-width: 991.98px) {
+ .block-aside {
+ max-width: inherit;
+ columns: 2;
+ break-inside: avoid;
+ column-gap: 30px;
+ }
+ .block-aside .block-aside-item {
+ display: inline-block;
+ width: 100%;
+ }
+}
+
+.block-aside-title {
+ font-weight: 600;
+ text-transform: uppercase;
+ letter-spacing: .1em;
+ padding-bottom: 15px;
+ border-bottom: 1px solid #C4C4C4;
+}
+
+.block-aside-title + * {
+ margin-top: 30px;
+}
+
+.post-minimal + .post-minimal {
+ margin-top: 30px;
+}
+
+.post-minimal-title {
+ font-weight: 300;
+ line-height: 34px;
+ letter-spacing: -.03em;
+}
+
+.post-minimal-date {
+ font-size: 18px;
+ line-height: 28px;
+ color: rgba(0, 0, 0, 0.5);
+}
+
+.post-modern {
+ max-width: 370px;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.post-modern.post-modern-reverse {
+ display: flex;
+ flex-direction: column-reverse;
+}
+
+.post-modern:hover .post-modern-figure img {
+ transform: scale(1.04);
+ opacity: .8;
+}
+
+.post-modern-figure {
+ position: relative;
+ background: #151515;
+ overflow: hidden;
+}
+
+.post-modern-figure img {
+ max-width: inherit;
+ transition: all .3s;
+ will-change: transform;
+}
+
+.post-modern-figure .badge {
+ position: absolute;
+ bottom: 25px;
+ left: 25px;
+}
+
+.post-modern-caption {
+ padding: 25px;
+ background: #ffffff;
+}
+
+.post-modern-date {
+ font-weight: 400;
+ color: rgba(0, 0, 0, 0.5);
+ font-size: 18px;
+}
+
+.post-modern-title {
+ font-weight: 500;
+ line-height: 34px;
+ letter-spacing: -.03em;
+}
+
+* + .post-modern-title {
+ margin-top: 10px;
+}
+
+* + .post-modern-text {
+ margin-top: 25px;
+}
+
+.post-modern-text + * {
+ margin-top: 25px;
+}
+
+.post-modern-text {
+ color: rgba(21, 21, 21, 0.8);
+ line-height: 25px;
+}
+
+.post-corporate {
+ position: relative;
+ max-width: 370px;
+ margin-left: auto;
+ margin-right: auto;
+ border-radius: 8px;
+ overflow: hidden;
+}
+
+@media (min-width: 768px) {
+ .post-corporate {
+ padding: 33px 0;
+ }
+}
+
+.post-corporate.post-corporate-img-bg > * {
+ position: relative;
+ z-index: 1;
+}
+
+.post-corporate.post-corporate-img-bg .post-corporate-bg {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ left: 50%;
+ top: 50%;
+ transform: translate(-50%, -50%);
+ z-index: 0;
+}
+
+.post-corporate.post-corporate-img-bg .post-corporate-bg:before {
+ position: absolute;
+ content: '';
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background: linear-gradient(180deg, rgba(21, 21, 21, 0.32) 0%, rgba(0, 0, 0, 0.72) 100%);
+}
+
+.post-corporate.post-corporate-img-bg .post-corporate-title a:hover {
+ color: #FFD541;
+}
+
+.post-corporate.post-corporate-img-bg .post-corporate-link {
+ color: #ffffff;
+}
+
+.post-corporate.post-corporate-img-bg .post-corporate-link:hover {
+ color: #FFD541;
+}
+
+* + .post-corporate-title {
+ margin-top: 15px;
+}
+
+.post-corporate-badge {
+ position: relative;
+ background: transparent;
+ overflow: hidden;
+}
+
+.post-corporate-badge:before, .post-corporate-badge:after {
+ position: absolute;
+ top: -2px;
+ left: -2px;
+ bottom: -2px;
+ right: -2px;
+ content: '';
+ z-index: -1;
+ transition: all .3s;
+}
+
+.post-corporate-badge:before {
+ background: linear-gradient(228.54deg, #00E175 0%, #5656DF 100%);
+}
+
+.post-corporate-badge:after {
+ opacity: 0;
+ background: linear-gradient(-228.54deg, #00E175 0%, #5656DF 100%);
+}
+
+.post-corporate-badge:hover {
+ color: #ffffff;
+ background: transparent;
+}
+
+.post-corporate-badge:hover:before {
+ opacity: 0;
+}
+
+.post-corporate-badge:hover:after {
+ opacity: 1;
+}
+
+.post-corporate-title {
+ font-weight: 400;
+}
+
+* + .post-corporate-text {
+ margin-top: 15px;
+}
+
+* + .post-corporate-link {
+ margin-top: 30px;
+}
+
+.post-corporate-link {
+ display: inline-block;
+ color: #000000;
+ font-size: 18px;
+ font-weight: 400;
+}
+
+.post-corporate-link .icon {
+ margin-left: 12px;
+ font-size: 20px;
+ vertical-align: middle;
+}
+
+/*
+* Quotes
+*/
+.quote-primary-mark {
+ position: relative;
+ top: 6px;
+ display: block;
+ width: 37px;
+ height: 27px;
+ fill: #4849b8;
+ flex-shrink: 0;
+}
+
+.quote-primary-body {
+ position: relative;
+}
+
+.quote-primary-text {
+ font-style: italic;
+ font-size: 18px;
+ letter-spacing: 0.08em;
+}
+
+.quote-primary-cite {
+ font-weight: 400;
+ font-size: 24px;
+}
+
+* + .quote-primary-cite {
+ margin-top: 0;
+ margin-left: 15px;
+}
+
+.quote-primary-footer {
+ display: flex;
+ align-items: center;
+}
+
+.quote-primary-footer .bg-dot {
+ max-width: 250px;
+ flex-basis: 50%;
+ height: 50px;
+}
+
+* + .quote-primary {
+ margin-top: 30px;
+}
+
+* + .quote-primary-footer {
+ margin-top: 10px;
+}
+
+/*
+* Thumbnails
+*/
+.figure-light figcaption {
+ padding-top: 10px;
+ color: #C4C4C4;
+}
+
+/*
+* Breadcrumbs
+*/
+.breadcrumbs-custom {
+ position: relative;
+ padding: 35px 0 40px;
+ text-align: center;
+ background: linear-gradient(180deg, rgba(0, 0, 0, 0.43) 0%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.43) 100%);
+}
+
+.breadcrumbs-custom-title {
+ text-transform: uppercase;
+ text-shadow: 0 4px 4px rgba(21, 21, 21, 0.25);
+}
+
+.breadcrumbs-custom-path {
+ margin-left: -15px;
+ margin-right: -15px;
+}
+
+.breadcrumbs-custom-path > * {
+ padding-left: 15px;
+ padding-right: 15px;
+}
+
+.breadcrumbs-custom-path a {
+ display: inline;
+ vertical-align: middle;
+}
+
+.breadcrumbs-custom-path a, .breadcrumbs-custom-path a:active, .breadcrumbs-custom-path a:focus {
+ color: #ffffff;
+}
+
+.breadcrumbs-custom-path li {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle;
+ font-size: 13px;
+ letter-spacing: .08em;
+ text-transform: uppercase;
+ font-weight: 400;
+ line-height: 1.7;
+ color: rgba(255, 255, 255, 0.5);
+}
+
+.breadcrumbs-custom-path li::after {
+ content: '';
+ position: absolute;
+ width: 5px;
+ height: 5px;
+ border-radius: 50%;
+ top: 52%;
+ right: -5px;
+ display: inline-block;
+ background: #ffffff;
+ transform: translate3d(0, -50%, 0);
+}
+
+.breadcrumbs-custom-path li:last-child:after {
+ display: none;
+}
+
+.breadcrumbs-custom-path a:hover,
+.breadcrumbs-custom-path li.active {
+ color: rgba(255, 255, 255, 0.5);
+}
+
+* + .breadcrumbs-custom-path {
+ margin-top: 14px;
+}
+
+@media (max-width: 991.98px) {
+ .breadcrumbs-custom-title {
+ font-size: 26px;
+ }
+}
+
+@media (min-width: 576px) {
+ .breadcrumbs-custom {
+ margin-left: -30px;
+ margin-right: -30px;
+ }
+ .breadcrumbs-custom > * {
+ padding-left: 30px;
+ padding-right: 30px;
+ }
+ * + .breadcrumbs-custom-path {
+ margin-top: 35px;
+ }
+}
+
+@media (min-width: 768px) {
+ .breadcrumbs-custom {
+ padding: 140px 0 120px;
+ }
+}
+
+@media (min-width: 1200px) {
+ .breadcrumbs-custom {
+ padding-top: 260px;
+ padding-bottom: 180px;
+ }
+}
+
+@media (min-width: 1600px) {
+ .breadcrumbs-custom {
+ padding-top: 260px;
+ padding-bottom: 180px;
+ }
+ .breadcrumbs-custom-title {
+ font-size: 60px;
+ }
+}
+
+/*
+* Pagination custom
+*/
+.pagination {
+ font-size: 0;
+ line-height: 0;
+ margin-bottom: -10px;
+ margin-left: -10px;
+}
+
+.pagination:empty {
+ margin-bottom: 0;
+ margin-left: 0;
+}
+
+.pagination > * {
+ display: inline-block;
+ margin-top: 0;
+ margin-bottom: 10px;
+ margin-left: 10px;
+}
+
+.page-item {
+ display: inline-block;
+ vertical-align: middle;
+ text-align: center;
+ font-weight: 700;
+}
+
+.page-link {
+ display: inline-block;
+ min-width: 47px;
+ padding: 10px 10px;
+ border: 1px solid #d7d7d7;
+ font-size: 18px;
+ font-weight: 500;
+ line-height: 1.38889;
+ background-color: #ffffff;
+ color: #9b9b9b;
+ transition: all 0.3s ease-in-out;
+}
+
+.page-link:hover, .page-link:focus, .page-link:active {
+ color: #ffffff;
+ background-color: #4849b8;
+ border-color: #4849b8;
+}
+
+.page-item.active > .page-link, .page-item.active > .page-link:hover, .page-item.active > .page-link:focus, .page-item.active > .page-link:active {
+ color: #ffffff;
+ background-color: #4849b8;
+ border-color: #4849b8;
+}
+
+.page-item.disabled > .page-link, .page-item.disabled > .page-link:hover, .page-item.disabled > .page-link:focus, .page-item.disabled > .page-link:active {
+ color: #C4C4C4;
+ background-color: #d7d7d7;
+ border-color: #d7d7d7;
+}
+
+.page-item-control .icon::before {
+ font-family: 'FontAwesome';
+ font-size: 11px;
+ line-height: 25px;
+}
+
+.page-item-control:first-child .icon::before {
+ content: '\f053';
+ margin-left: -1px;
+}
+
+.page-item-control:last-child .icon::before {
+ content: '\f054';
+ margin-right: -1px;
+}
+
+.pagination-classic {
+ text-align: center;
+}
+
+.pagination-classic .page-item-control {
+ display: none;
+}
+
+.pagination-classic .page-item + .page-item {
+ margin-left: 30px;
+}
+
+.pagination-classic .page-link {
+ border-radius: 50%;
+ background: transparent;
+ color: rgba(21, 21, 21, 0.5);
+ border-color: rgba(21, 21, 21, 0.5);
+}
+
+.pagination-classic .page-link:hover {
+ background: transparent;
+ color: #151515;
+ border-color: #151515;
+}
+
+.pagination-classic .page-item.active .page-link {
+ background: transparent;
+ color: #151515;
+ border-color: #151515;
+}
+
+.pagination-classic .page-link:focus {
+ box-shadow: none;
+}
+
+/*
+* Snackbars
+*/
+.snackbars {
+ padding: 9px 16px;
+ margin-left: auto;
+ margin-right: auto;
+ color: #ffffff;
+ text-align: left;
+ background-color: #151515;
+ border-radius: 0;
+ box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.15);
+ font-size: 14px;
+}
+
+.snackbars .icon-xxs {
+ font-size: 18px;
+}
+
+.snackbars p span:last-child {
+ padding-left: 14px;
+}
+
+.snackbars-left {
+ display: inline-block;
+ margin-bottom: 0;
+}
+
+.snackbars-right {
+ display: inline-block;
+ float: right;
+ text-transform: uppercase;
+}
+
+.snackbars-right:hover {
+ text-decoration: underline;
+}
+
+@media (min-width: 576px) {
+ .snackbars {
+ max-width: 540px;
+ padding: 12px 15px;
+ font-size: 15px;
+ }
+}
+
+/*
+* Footers
+*/
+.footer-classic {
+ padding: 90px 0;
+ font-weight: 400;
+ background: #323232;
+}
+
+@media (min-width: 1200px) {
+ .footer-classic {
+ padding: 125px 0;
+ }
+}
+
+.footer-classic .footer-title {
+ color: #ffffff;
+}
+
+.footer-classic p {
+ color: rgba(255, 255, 255, 0.5);
+}
+
+.footer-classic p.big {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.footer-classic p.rights {
+ color: rgba(255, 255, 255, 0.5);
+}
+
+.footer-classic p.rights a {
+ color: rgba(255, 255, 255, 0.5);
+}
+
+.footer-classic .form-input {
+ background: rgba(255, 255, 255, 0.1);
+ border-color: transparent;
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.footer-classic .form-label {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.footer-classic .list-contact-info a {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.footer-classic .list-contact-info a:hover {
+ color: #4849b8;
+}
+
+.footer-classic .icon-bg-white {
+ background: rgba(255, 255, 255, 0.05);
+ color: #ffffff;
+}
+
+.footer-title {
+ text-transform: uppercase;
+ font-weight: 600;
+ line-height: 28px;
+ letter-spacing: 0.1em;
+}
+
+.footer-title + * {
+ margin-top: 30px;
+}
+
+.footer-divider {
+ width: 70px;
+ margin-top: 30px;
+ margin-bottom: 30px;
+}
+
+.footer-classic .footer-divider {
+ border-top: 1px solid rgba(255, 255, 255, 0.1);
+}
+
+.footer-modern .form-validation, .footer-classic .form-validation {
+ color: #ffffff;
+}
+
+.footer-modern {
+ position: relative;
+ background: #323232;
+}
+
+.footer-modern > .container {
+ position: relative;
+ z-index: 2;
+}
+
+.footer-modern p {
+ color: rgba(255, 255, 255, 0.5);
+}
+
+.footer-modern p.big {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.footer-modern p.big a {
+ margin-left: 10px;
+ color: #ffffff;
+}
+
+.footer-modern p.big a:hover {
+ color: #4849b8;
+}
+
+.footer-modern p.rights {
+ color: rgba(255, 255, 255, 0.5);
+}
+
+.footer-modern p.rights a {
+ color: rgba(255, 255, 255, 0.5);
+}
+
+.footer-modern * + .rights {
+ margin-top: 25px;
+}
+
+.footer-modern * + .rd-mailform {
+ margin-top: 30px;
+}
+
+.footer-modern .form-input {
+ background: rgba(255, 255, 255, 0.1);
+ border-color: transparent;
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.footer-modern .form-label {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+@media (min-width: 992px) {
+ .footer-modern .google-map-container {
+ position: absolute;
+ left: 0;
+ top: 0;
+ bottom: 0;
+ width: calc(100vw - 60%);
+ z-index: 3;
+ }
+ .footer-modern .google-map-container .google-map {
+ height: 100%;
+ }
+}
+
+.footer-modern .icon-bg-white {
+ background: rgba(255, 255, 255, 0.05);
+ color: #ffffff;
+}
+
+.footer-modern .social-list > li {
+ margin-top: 0;
+}
+
+@media (min-width: 768px) {
+ .footer-modern .social-list > li {
+ display: block;
+ margin-bottom: 15px;
+ }
+}
+
+.footer-minimal {
+ padding: 60px 0;
+ text-align: center;
+ background: #323232;
+}
+
+.footer-minimal .icon-bg-white {
+ background: rgba(255, 255, 255, 0.05);
+ color: #ffffff;
+}
+
+.footer-minimal * + .rights {
+ margin-top: 45px;
+}
+
+@media (min-width: 992px) {
+ .footer-minimal {
+ padding: 90px 0;
+ }
+}
+
+@media (min-width: 1200px) {
+ .footer-minimal {
+ padding: 120px 0 110px;
+ }
+ .footer-minimal * + .rights {
+ margin-top: 100px;
+ }
+}
+
+.footer-minimal .rights {
+ color: rgba(255, 255, 255, 0.5);
+}
+
+.footer-minimal .rights a {
+ color: rgba(255, 255, 255, 0.5);
+}
+
+.footer-minimal .social-list li {
+ margin-top: 0;
+}
+
+.footer-minimal-nav {
+ display: inline-block;
+}
+
+.footer-minimal-nav li {
+ padding: 0 20px;
+}
+
+@media (min-width: 768px) {
+ .footer-minimal-nav li {
+ display: inline-block;
+ }
+}
+
+.footer-minimal-nav li + li {
+ margin-top: 10px;
+}
+
+@media (min-width: 768px) {
+ .footer-minimal-nav li + li {
+ margin-top: 0;
+ border-left: 1px solid rgba(255, 255, 255, 0.5);
+ }
+}
+
+.footer-minimal-nav a {
+ font-weight: 500;
+ text-transform: uppercase;
+ letter-spacing: .02em;
+ text-align: center;
+ color: #ffffff;
+}
+
+.footer-minimal-nav a:hover {
+ color: #4849b8;
+}
+
+/** @section Banner */
+.section-banner {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background-position: center center;
+ background-size: cover;
+}
+
+.section-banner img {
+ max-width: 100%;
+ height: auto;
+}
+
+/*
+* Page layout
+*/
+.page {
+ position: relative;
+ overflow: hidden;
+ min-height: 100vh;
+ opacity: 0;
+}
+
+.page.fadeIn {
+ animation-timing-function: ease-out;
+}
+
+.page.fadeOut {
+ animation-timing-function: ease-in;
+}
+
+[data-x-mode] .page {
+ opacity: 1;
+}
+
+html.boxed body {
+ background: #edeff4 url(../images/bg-pattern-boxed.png) repeat fixed;
+}
+
+@media (min-width: 1630px) {
+ html.boxed .page {
+ max-width: 1600px;
+ margin-left: auto;
+ margin-right: auto;
+ box-shadow: 0 0 23px 0 rgba(1, 1, 1, 0.1);
+ }
+ html.boxed .rd-navbar-static {
+ max-width: 1600px;
+ margin-left: auto;
+ margin-right: auto;
+ }
+ html.boxed .rd-navbar-static.rd-navbar--is-stuck {
+ max-width: 1600px;
+ width: 100%;
+ left: calc(50% - 1600px);
+ right: calc(50% - 1600px);
+ }
+}
+
+.page-header {
+ position: absolute;
+ left: 0;
+ right: 0;
+ z-index: 1070;
+}
+
+.container.container-wide {
+ max-width: 1920px;
+}
+
+/*
+* Text styling
+*/
+.text-italic {
+ font-style: italic;
+}
+
+.text-normal {
+ font-style: normal;
+}
+
+.text-underline {
+ text-decoration: underline;
+}
+
+.text-strike {
+ text-decoration: line-through;
+}
+
+.font-weight-thin {
+ font-weight: 100;
+}
+
+.font-weight-light {
+ font-weight: 300;
+}
+
+.font-weight-regular {
+ font-weight: 400;
+}
+
+.font-weight-medium {
+ font-weight: 500;
+}
+
+.font-weight-sbold {
+ font-weight: 600;
+}
+
+.font-weight-bold {
+ font-weight: 700;
+}
+
+.font-weight-ubold {
+ font-weight: 900;
+}
+
+.text-spacing-0 {
+ letter-spacing: 0;
+}
+
+.text-opacity-80 {
+ opacity: .8;
+}
+
+.text-primary {
+ color: #4849b8 !important;
+}
+
+.text-secondary {
+ color: #FFD541;
+}
+
+.text-gradient-1 {
+ color: #5656DF;
+}
+
+.text-gradient-2 {
+ color: #F73CA1;
+}
+
+.text-gradient-3 {
+ color: #FFD541;
+}
+
+.text-gradient-4 {
+ color: #00E175;
+}
+
+@supports (-webkit-background-clip: text) {
+ .text-gradient-1 {
+ background: linear-gradient(228.54deg, #4849b8 30.16%, #5656DF 89.45%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ }
+ .text-gradient-2 {
+ background: linear-gradient(228.54deg, #FFD541 36.26%, #F73CA1 96.73%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ }
+ .text-gradient-3 {
+ background: linear-gradient(228.54deg, #5656DF 0%, #FFD541 100%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ }
+ .text-gradient-4 {
+ background: linear-gradient(228.54deg, #00E175 0%, #5656DF 100%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ }
+}
+
+@font-face {
+ font-family: 'TuesdayNigrh';
+ src: url("../fonts/TuesdayNight-Regular.otf");
+}
+
+@font-face {
+ font-family: 'Henrik';
+ src: url("../fonts/Henrik-Regular.otf");
+ src: url("../fonts/Henrik-Regular.woff") format("woff");
+}
+
+.text-accent-2 {
+ font-family: 'TuesdayNigrh';
+}
+
+.text-accent-3 {
+ font-weight: 900;
+}
+
+.text-uppercase {
+ text-transform: uppercase;
+}
+
+/*
+* Offsets
+*/
+* + p {
+ margin-top: 15px;
+}
+
+h2 + p,
+.heading-2 + p {
+ margin-top: 30px;
+}
+
+p + h2,
+p + .heading-2 {
+ margin-top: 15px;
+}
+
+p + p {
+ margin-top: 15px;
+}
+
+p + img {
+ margin-top: 30px;
+}
+
+img + p {
+ margin-top: 15px;
+}
+
+h3 + img {
+ margin-top: 42px;
+}
+
+h3 + p {
+ margin-top: 28px;
+}
+
+* + .row {
+ margin-top: 30px;
+}
+
+.thin-title + * {
+ margin-top: 30px;
+}
+
+* + .big {
+ margin-top: 20px;
+}
+
+* + .text-block {
+ margin-top: 30px;
+}
+
+* + .button {
+ margin-top: 30px;
+}
+
+h3 + .button {
+ margin-top: 37px;
+}
+
+* + .social-list {
+ margin-top: 30px;
+}
+
+* + .row {
+ margin-top: 60px;
+}
+
+.row + h3,
+.row + .heading-3 {
+ margin-top: 80px;
+}
+
+h3 + .rd-form {
+ margin-top: 50px;
+}
+
+.container + .container {
+ margin-top: 35px;
+}
+
+.row + .row {
+ margin-top: 35px;
+}
+
+@media (min-width: 1200px) {
+ * + .rd-form {
+ margin-top: 30px;
+ }
+ .container + .container {
+ margin-top: 60px;
+ }
+ .row + .row {
+ margin-top: 60px;
+ }
+}
+
+@media (min-width: 1600px) {
+ * + .rd-form-inline {
+ margin-top: 50px;
+ }
+}
+
+.row-0 {
+ margin-bottom: 0px;
+}
+
+.row-0:empty {
+ margin-bottom: 0;
+}
+
+.row-0 > * {
+ margin-bottom: 0px;
+}
+
+.row-15 {
+ margin-bottom: -15px;
+}
+
+.row-15:empty {
+ margin-bottom: 0;
+}
+
+.row-15 > * {
+ margin-bottom: 15px;
+}
+
+.row-20 {
+ margin-bottom: -20px;
+}
+
+.row-20:empty {
+ margin-bottom: 0;
+}
+
+.row-20 > * {
+ margin-bottom: 20px;
+}
+
+.row-30 {
+ margin-bottom: -30px;
+}
+
+.row-30:empty {
+ margin-bottom: 0;
+}
+
+.row-30 > * {
+ margin-bottom: 30px;
+}
+
+.row-40 {
+ margin-bottom: -40px;
+}
+
+.row-40:empty {
+ margin-bottom: 0;
+}
+
+.row-40 > * {
+ margin-bottom: 40px;
+}
+
+.row-50 {
+ margin-bottom: -50px;
+}
+
+.row-50:empty {
+ margin-bottom: 0;
+}
+
+.row-50 > * {
+ margin-bottom: 50px;
+}
+
+.row-60 {
+ margin-bottom: -60px;
+}
+
+.row-60:empty {
+ margin-bottom: 0;
+}
+
+.row-60 > * {
+ margin-bottom: 60px;
+}
+
+.row-70 {
+ margin-bottom: -70px;
+}
+
+.row-70:empty {
+ margin-bottom: 0;
+}
+
+.row-70 > * {
+ margin-bottom: 70px;
+}
+
+.row-85 {
+ margin-bottom: -85px;
+}
+
+.row-85:empty {
+ margin-bottom: 0;
+}
+
+.row-85 > * {
+ margin-bottom: 85px;
+}
+
+@media (min-width: 768px) {
+ .row-md-60 {
+ margin-bottom: -60px;
+ }
+ .row-md-60:empty {
+ margin-bottom: 0;
+ }
+ .row-md-60 > * {
+ margin-bottom: 60px;
+ }
+}
+
+@media (min-width: 992px) {
+ .row-lg-30 {
+ margin-bottom: -30px;
+ }
+ .row-lg-30:empty {
+ margin-bottom: 0;
+ }
+ .row-lg-30 > * {
+ margin-bottom: 30px;
+ }
+}
+
+h3 + .group-xl {
+ margin-top: 40px;
+}
+
+.form-wrap + .row {
+ margin-top: 30px;
+}
+
+* + .text-with-divider {
+ margin-top: 30px;
+}
+
+.text-with-divider + * {
+ margin-top: 30px;
+}
+
+* + .slick-slider {
+ margin-top: 40px;
+}
+
+* + .owl-carousel {
+ margin-top: 40px;
+}
+
+* + .tabs-custom {
+ margin-top: 50px;
+}
+
+/*
+* Sections
+*/
+.section-xs {
+ padding: 25px 0;
+}
+
+.section-sm,
+.section-md,
+.section-lg,
+.section-xl {
+ padding: 50px 0;
+}
+
+.section-xxl {
+ padding: 80px 0;
+}
+
+@media (min-width: 576px) and (max-width: 767.98px) {
+ .section-inset-1 {
+ padding-top: 100px;
+ }
+}
+
+.section-collapse + .section-collapse {
+ padding-top: 0;
+}
+
+.section-collapse:last-child {
+ padding-bottom: 0;
+}
+
+html [class*='section-'].section-bottom-0 {
+ padding-bottom: 0;
+}
+
+@media (max-width: 991.98px) {
+ section.section-sm:first-of-type,
+ section.section-md:first-of-type,
+ section.section-lg:first-of-type,
+ section.section-xl:first-of-type,
+ section.section-xxl:first-of-type {
+ padding-top: 40px;
+ }
+}
+
+@media (min-width: 768px) {
+ .section-sm {
+ padding: 60px 0;
+ }
+ .section-md {
+ padding: 70px 0;
+ }
+ .section-lg {
+ padding: 85px 0;
+ }
+ .section-xl {
+ padding: 100px 0;
+ }
+ .section-xxl {
+ padding: 110px 0;
+ }
+}
+
+@media (min-width: 992px) {
+ .section-md {
+ padding: 80px 0 90px;
+ }
+ .section-lg {
+ padding: 100px 0;
+ }
+ .section-xl {
+ padding: 115px 0;
+ }
+ .section-xxl {
+ padding: 145px 0;
+ }
+}
+
+@media (min-width: 1200px) {
+ .section-lg {
+ padding: 115px 0;
+ }
+ .section-xl {
+ padding: 135px 0;
+ }
+ .section-xxl {
+ padding: 175px 0;
+ }
+}
+
+.section-single {
+ display: flex;
+ text-align: center;
+}
+
+.section-single p {
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.section-single * + .rights {
+ margin-top: 35px;
+}
+
+.section-single * + .countdown-wrap {
+ margin-top: 35px;
+}
+
+.section-single .countdown-wrap + * {
+ margin-top: 35px;
+}
+
+@media (min-width: 992px) {
+ .section-single * + .rights {
+ margin-top: 60px;
+ }
+ .section-single .countdown-wrap + * {
+ margin-top: 35px;
+ }
+}
+
+.section-single .rd-mailform-wrap {
+ max-width: 670px;
+ margin-left: auto;
+ margin-right: auto;
+ text-align: center;
+}
+
+.section-single * + .rd-mailform-wrap {
+ margin-top: 20px;
+}
+
+.section-single-header {
+ padding: calc(1em + 3vh) 0 calc(1em + 2vh);
+}
+
+.section-single-main {
+ padding: calc(1em + 4vh) 0;
+}
+
+.section-single-footer {
+ padding: calc(1em + 2vh) 0 calc(1em + 3vh);
+}
+
+.section-single-inner {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: space-between;
+ width: 100%;
+ min-height: 100vh;
+}
+
+.section-single-inner > * {
+ width: 100%;
+}
+
+@supports (display: grid) {
+ .section-single-inner {
+ display: grid;
+ justify-items: center;
+ align-content: space-between;
+ grid-template-columns: 1fr;
+ }
+}
+
+.section-main-bunner {
+ position: relative;
+ background: #232323;
+ overflow: hidden;
+}
+
+@media (max-width: 767.98px) {
+ .section-main-bunner {
+ padding-bottom: 80px;
+ }
+}
+
+@media (min-width: 992px) {
+ .section-main-bunner {
+ min-height: 100vh;
+ height: 100vh;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+}
+
+.section-main-bunner .main-bunner-img {
+ position: absolute;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ top: 0;
+ opacity: .4;
+}
+
+@media (min-width: 1200px) {
+ .section-main-bunner .main-bunner-img {
+ left: -100px;
+ right: -100px;
+ bottom: -100px;
+ top: -100px;
+ animation: bunner-img 10s infinite;
+ }
+}
+
+.section-main-bunner .main-bunner-inner {
+ position: relative;
+ flex: 1;
+ z-index: 1;
+}
+
+.section-main-bunner .main-bunner-inner * + h1 {
+ margin-top: 30px;
+}
+
+.section-main-bunner .main-bunner-inner .bunner-location {
+ letter-spacing: .08em;
+ text-transform: uppercase;
+ font-weight: 400;
+}
+
+.section-main-bunner .main-bunner-inner .bunner-location .icon {
+ font-size: 30px;
+ margin-right: 10px;
+ vertical-align: top;
+}
+
+@media (min-width: 576px) {
+ .section-main-bunner .main-bunner-inner .bunner-location .icon {
+ vertical-align: middle;
+ }
+}
+
+.section-main-bunner .main-bunner-inner .bunner-location a {
+ display: inline-block;
+}
+
+.section-main-bunner.section-main-bunner-filter {
+ background: #323232;
+}
+
+.section-main-bunner.section-main-bunner-filter .main-bunner-img {
+ opacity: 1;
+}
+
+.section-main-bunner.section-main-bunner-filter:before {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ content: '';
+ background: linear-gradient(360deg, rgba(18, 18, 18, 0.6) 0.91%, rgba(18, 18, 18, 0.28) 47.77%, rgba(39, 42, 55, 0.75) 99.52%);
+ z-index: 1;
+}
+
+@keyframes bunner-img {
+ 0% {
+ transform: translate3d(0, 0, 0) rotate(0deg);
+ }
+ 50% {
+ transform: translate3d(0, 0, 0) rotate(1deg) scale(1.02);
+ }
+ 100% {
+ transform: translate3d(0, 0, 0) rotate(0deg);
+ }
+}
+
+.section-transform-top {
+ position: relative;
+ z-index: 1;
+ transform: translateY(-12%);
+}
+
+@media (min-width: 992px) {
+ .section-transform-top {
+ transform: translateY(-50%);
+ }
+}
+
+.section-special {
+ position: relative;
+ min-height: 100vh;
+}
+
+.section-special .section-special-img {
+ position: relative;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+@media (min-width: 992px) {
+ .section-special .section-special-img {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ width: 50vw;
+ }
+}
+
+.section-special .section-special-img .block-video-button .icon {
+ color: #4849b8;
+}
+
+@media (min-width: 992px) {
+ .section-special .section-special-content {
+ position: relative;
+ width: 50vw;
+ }
+}
+
+.section-special .section-special-content .section-special-content-inner {
+ max-width: 700px;
+ padding-left: 15px;
+ padding-right: 15px;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+@media (min-width: 992px) {
+ .section-special .section-special-content .section-special-content-inner {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ right: 10%;
+ min-height: 900px;
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ }
+}
+
+.section-special-content-body {
+ padding-top: 30px;
+}
+
+.section-special-content-body h2 {
+ text-transform: capitalize;
+ font-weight: 400;
+}
+
+.section-special-content-body * + h2 {
+ margin-top: 15px;
+}
+
+.section-special-content-body * + .countdown {
+ margin-top: 25px;
+}
+
+.section-special-content-body * + .section-special-content-form {
+ margin-top: 25px;
+}
+
+.section-special-content-body * + .section-special-content-social {
+ margin-top: 40px;
+}
+
+@media (min-width: 992px) {
+ .section-special-content-body {
+ padding-top: 45px;
+ }
+ .section-special-content-body * + h2 {
+ margin-top: 25px;
+ }
+ .section-special-content-body * + .countdown {
+ margin-top: 45px;
+ }
+ .section-special-content-body * + .section-special-content-form {
+ margin-top: 45px;
+ }
+ .section-special-content-body * + .section-special-content-social {
+ margin-top: 60px;
+ }
+}
+
+.section-special-content-social {
+ padding-bottom: 30px;
+}
+
+.section-special-content-form .form-input {
+ background: #ffffff;
+}
+
+.section-special-content-form * + .small {
+ margin-top: 12px;
+}
+
+.section-special-content-form .small {
+ color: rgba(0, 0, 0, 0.75);
+}
+
+.section-special-content-social * + .list-inline {
+ margin-top: 15px;
+}
+
+.section-special-content-social .list-inline {
+ margin-left: -10px;
+ margin-right: -10px;
+}
+
+.section-special-content-social li {
+ padding: 10px;
+}
+
+.section-special-content-social .icon {
+ text-align: center;
+ border: 1px solid #C4C4C4;
+ border-radius: 50%;
+}
+
+.section-special-content-social .icon.icon-blue:hover {
+ color: #ffffff;
+ border-color: #135DEC;
+ background: #135DEC;
+}
+
+.section-special-content-social .icon.icon-blue-light:hover {
+ color: #ffffff;
+ border-color: #35B7E0;
+ background: #35B7E0;
+}
+
+.section-special-content-social .icon.icon-pink:hover {
+ color: #ffffff;
+ border-color: #FF3951;
+ background: #FF3951;
+}
+
+.section-special-content-social .icon.icon-violet:hover {
+ color: #ffffff;
+ border-color: #2C3AB6;
+ background: #2C3AB6;
+}
+
+/*
+* Grid modules
+*/
+.grid-demo {
+ letter-spacing: 0;
+ text-align: center;
+}
+
+.grid-demo p {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+.grid-demo * + p {
+ margin-top: 5px;
+}
+
+.grid-demo * + .row {
+ margin-top: 20px;
+}
+
+.grid-demo .row + .row {
+ margin-top: 0;
+}
+
+@media (min-width: 1200px) {
+ .grid-demo {
+ text-align: left;
+ }
+ .grid-demo p {
+ white-space: normal;
+ overflow: visible;
+ text-overflow: unset;
+ }
+ .grid-demo * + p {
+ margin-top: 25px;
+ }
+}
+
+.grid-demo-bordered .row {
+ border: 0 solid #d7d7d7;
+ border-top-width: 1px;
+}
+
+.grid-demo-bordered .row:last-child {
+ border-bottom-width: 1px;
+}
+
+.grid-demo-bordered [class*='col'] {
+ padding: 5px 15px;
+}
+
+.grid-demo-bordered [class*='col']:before {
+ content: '';
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: -1px;
+ border-left: 1px solid #d7d7d7;
+}
+
+@media (min-width: 768px) {
+ .grid-demo-bordered [class*='col'] {
+ padding: 30px;
+ }
+}
+
+@media (min-width: 1200px) {
+ .grid-demo-bordered [class*='col'] {
+ padding: 50px 50px 45px;
+ }
+}
+
+.grid-demo-underlined .row {
+ border-bottom: 1px solid #d7d7d7;
+}
+
+.grid-demo-underlined [class*='col'] {
+ padding: 5px 15px;
+}
+
+@media (min-width: 768px) {
+ .grid-demo-underlined [class*='col'] {
+ padding-top: 25px;
+ padding-bottom: 25px;
+ }
+}
+
+@media (min-width: 1200px) {
+ .grid-demo-underlined [class*='col'] {
+ padding-top: 45px;
+ padding-bottom: 45px;
+ }
+}
+
+.row-gutters-14 {
+ margin-right: -7px;
+ margin-left: -7px;
+}
+
+.row-gutters-14 > [class*='col-'] {
+ padding-left: 7px;
+ padding-right: 7px;
+}
+
+/*
+* Backgrounds
+*/
+.post-corporate.post-corporate-img-bg .brand .brand-logo-dark, .section-main-bunner .brand .brand-logo-dark, .context-dark .brand .brand-logo-dark, .bg-gray-600 .brand .brand-logo-dark, .bg-gray-700 .brand .brand-logo-dark, .bg-gray-800 .brand .brand-logo-dark, .bg-primary .brand .brand-logo-dark, .bg-pink .brand .brand-logo-dark, .bg-secondary .brand .brand-logo-dark, .bg-secondary-2 .brand .brand-logo-dark, .bg-green .brand .brand-logo-dark {
+ display: none;
+}
+
+.post-corporate.post-corporate-img-bg .brand .brand-logo-light, .section-main-bunner .brand .brand-logo-light, .context-dark .brand .brand-logo-light, .bg-gray-600 .brand .brand-logo-light, .bg-gray-700 .brand .brand-logo-light, .bg-gray-800 .brand .brand-logo-light, .bg-primary .brand .brand-logo-light, .bg-pink .brand .brand-logo-light, .bg-secondary .brand .brand-logo-light, .bg-secondary-2 .brand .brand-logo-light, .bg-green .brand .brand-logo-light {
+ display: block;
+}
+
+.post-corporate.post-corporate-img-bg .box-icon-caption p, .section-main-bunner .box-icon-caption p, .context-dark .box-icon-caption p, .bg-gray-600 .box-icon-caption p, .bg-gray-700 .box-icon-caption p, .bg-gray-800 .box-icon-caption p, .bg-primary .box-icon-caption p, .bg-pink .box-icon-caption p, .bg-secondary .box-icon-caption p, .bg-secondary-2 .box-icon-caption p, .bg-green .box-icon-caption p {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.post-corporate.post-corporate-img-bg .decorate-triangle:before, .section-main-bunner .decorate-triangle:before, .context-dark .decorate-triangle:before, .bg-gray-600 .decorate-triangle:before, .bg-gray-700 .decorate-triangle:before, .bg-gray-800 .decorate-triangle:before, .bg-primary .decorate-triangle:before, .bg-pink .decorate-triangle:before, .bg-secondary .decorate-triangle:before, .bg-secondary-2 .decorate-triangle:before, .bg-green .decorate-triangle:before {
+ border-color: transparent transparent rgba(255, 255, 255, 0.08) transparent;
+}
+
+.post-corporate.post-corporate-img-bg .decorate-circle:before, .section-main-bunner .decorate-circle:before, .context-dark .decorate-circle:before, .bg-gray-600 .decorate-circle:before, .bg-gray-700 .decorate-circle:before, .bg-gray-800 .decorate-circle:before, .bg-primary .decorate-circle:before, .bg-pink .decorate-circle:before, .bg-secondary .decorate-circle:before, .bg-secondary-2 .decorate-circle:before, .bg-green .decorate-circle:before, .post-corporate.post-corporate-img-bg .decorate-rectangle:before, .section-main-bunner .decorate-rectangle:before, .context-dark .decorate-rectangle:before, .bg-gray-600 .decorate-rectangle:before, .bg-gray-700 .decorate-rectangle:before, .bg-gray-800 .decorate-rectangle:before, .bg-primary .decorate-rectangle:before, .bg-pink .decorate-rectangle:before, .bg-secondary .decorate-rectangle:before, .bg-secondary-2 .decorate-rectangle:before, .bg-green .decorate-rectangle:before {
+ background: rgba(255, 255, 255, 0.08);
+}
+
+.post-corporate.post-corporate-img-bg .team-classic-caption p, .section-main-bunner .team-classic-caption p, .context-dark .team-classic-caption p, .bg-gray-600 .team-classic-caption p, .bg-gray-700 .team-classic-caption p, .bg-gray-800 .team-classic-caption p, .bg-primary .team-classic-caption p, .bg-pink .team-classic-caption p, .bg-secondary .team-classic-caption p, .bg-secondary-2 .team-classic-caption p, .bg-green .team-classic-caption p, .post-corporate.post-corporate-img-bg .team-modern-caption p, .section-main-bunner .team-modern-caption p, .context-dark .team-modern-caption p, .bg-gray-600 .team-modern-caption p, .bg-gray-700 .team-modern-caption p, .bg-gray-800 .team-modern-caption p, .bg-primary .team-modern-caption p, .bg-pink .team-modern-caption p, .bg-secondary .team-modern-caption p, .bg-secondary-2 .team-modern-caption p, .bg-green .team-modern-caption p {
+ color: rgba(21, 21, 21, 0.8);
+}
+
+.post-corporate.post-corporate-img-bg .team-classic-caption h4 a, .section-main-bunner .team-classic-caption h4 a, .context-dark .team-classic-caption h4 a, .bg-gray-600 .team-classic-caption h4 a, .bg-gray-700 .team-classic-caption h4 a, .bg-gray-800 .team-classic-caption h4 a, .bg-primary .team-classic-caption h4 a, .bg-pink .team-classic-caption h4 a, .bg-secondary .team-classic-caption h4 a, .bg-secondary-2 .team-classic-caption h4 a, .bg-green .team-classic-caption h4 a, .post-corporate.post-corporate-img-bg .team-modern-caption h4 a, .section-main-bunner .team-modern-caption h4 a, .context-dark .team-modern-caption h4 a, .bg-gray-600 .team-modern-caption h4 a, .bg-gray-700 .team-modern-caption h4 a, .bg-gray-800 .team-modern-caption h4 a, .bg-primary .team-modern-caption h4 a, .bg-pink .team-modern-caption h4 a, .bg-secondary .team-modern-caption h4 a, .bg-secondary-2 .team-modern-caption h4 a, .bg-green .team-modern-caption h4 a {
+ color: #151515;
+}
+
+.post-corporate.post-corporate-img-bg .team-classic-caption h4 a:hover, .section-main-bunner .team-classic-caption h4 a:hover, .context-dark .team-classic-caption h4 a:hover, .bg-gray-600 .team-classic-caption h4 a:hover, .bg-gray-700 .team-classic-caption h4 a:hover, .bg-gray-800 .team-classic-caption h4 a:hover, .bg-primary .team-classic-caption h4 a:hover, .bg-pink .team-classic-caption h4 a:hover, .bg-secondary .team-classic-caption h4 a:hover, .bg-secondary-2 .team-classic-caption h4 a:hover, .bg-green .team-classic-caption h4 a:hover, .post-corporate.post-corporate-img-bg .team-modern-caption h4 a:hover, .section-main-bunner .team-modern-caption h4 a:hover, .context-dark .team-modern-caption h4 a:hover, .bg-gray-600 .team-modern-caption h4 a:hover, .bg-gray-700 .team-modern-caption h4 a:hover, .bg-gray-800 .team-modern-caption h4 a:hover, .bg-primary .team-modern-caption h4 a:hover, .bg-pink .team-modern-caption h4 a:hover, .bg-secondary .team-modern-caption h4 a:hover, .bg-secondary-2 .team-modern-caption h4 a:hover, .bg-green .team-modern-caption h4 a:hover {
+ color: #4849b8;
+}
+
+.post-corporate.post-corporate-img-bg .countdown-gradient .countdown-period, .section-main-bunner .countdown-gradient .countdown-period, .context-dark .countdown-gradient .countdown-period, .bg-gray-600 .countdown-gradient .countdown-period, .bg-gray-700 .countdown-gradient .countdown-period, .bg-gray-800 .countdown-gradient .countdown-period, .bg-primary .countdown-gradient .countdown-period, .bg-pink .countdown-gradient .countdown-period, .bg-secondary .countdown-gradient .countdown-period, .bg-secondary-2 .countdown-gradient .countdown-period, .bg-green .countdown-gradient .countdown-period {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.post-corporate.post-corporate-img-bg .countdown .countdown-section + .countdown-section::before, .section-main-bunner .countdown .countdown-section + .countdown-section::before, .context-dark .countdown .countdown-section + .countdown-section::before, .bg-gray-600 .countdown .countdown-section + .countdown-section::before, .bg-gray-700 .countdown .countdown-section + .countdown-section::before, .bg-gray-800 .countdown .countdown-section + .countdown-section::before, .bg-primary .countdown .countdown-section + .countdown-section::before, .bg-pink .countdown .countdown-section + .countdown-section::before, .bg-secondary .countdown .countdown-section + .countdown-section::before, .bg-secondary-2 .countdown .countdown-section + .countdown-section::before, .bg-green .countdown .countdown-section + .countdown-section::before, .post-corporate.post-corporate-img-bg .countdown .countdown-section + .countdown-section::after, .section-main-bunner .countdown .countdown-section + .countdown-section::after, .context-dark .countdown .countdown-section + .countdown-section::after, .bg-gray-600 .countdown .countdown-section + .countdown-section::after, .bg-gray-700 .countdown .countdown-section + .countdown-section::after, .bg-gray-800 .countdown .countdown-section + .countdown-section::after, .bg-primary .countdown .countdown-section + .countdown-section::after, .bg-pink .countdown .countdown-section + .countdown-section::after, .bg-secondary .countdown .countdown-section + .countdown-section::after, .bg-secondary-2 .countdown .countdown-section + .countdown-section::after, .bg-green .countdown .countdown-section + .countdown-section::after {
+ background: rgba(255, 255, 255, 0.2);
+}
+
+.post-corporate.post-corporate-img-bg .box-pricing-modern, .section-main-bunner .box-pricing-modern, .context-dark .box-pricing-modern, .bg-gray-600 .box-pricing-modern, .bg-gray-700 .box-pricing-modern, .bg-gray-800 .box-pricing-modern, .bg-primary .box-pricing-modern, .bg-pink .box-pricing-modern, .bg-secondary .box-pricing-modern, .bg-secondary-2 .box-pricing-modern, .bg-green .box-pricing-modern {
+ color: #151515;
+}
+
+.post-corporate.post-corporate-img-bg .box-pricing-modern .pricing-modern-title, .section-main-bunner .box-pricing-modern .pricing-modern-title, .context-dark .box-pricing-modern .pricing-modern-title, .bg-gray-600 .box-pricing-modern .pricing-modern-title, .bg-gray-700 .box-pricing-modern .pricing-modern-title, .bg-gray-800 .box-pricing-modern .pricing-modern-title, .bg-primary .box-pricing-modern .pricing-modern-title, .bg-pink .box-pricing-modern .pricing-modern-title, .bg-secondary .box-pricing-modern .pricing-modern-title, .bg-secondary-2 .box-pricing-modern .pricing-modern-title, .bg-green .box-pricing-modern .pricing-modern-title {
+ color: #151515;
+}
+
+.post-corporate.post-corporate-img-bg .text-secondary, .section-main-bunner .text-secondary, .context-dark .text-secondary, .bg-gray-600 .text-secondary, .bg-gray-700 .text-secondary, .bg-gray-800 .text-secondary, .bg-primary .text-secondary, .bg-pink .text-secondary, .bg-secondary .text-secondary, .bg-secondary-2 .text-secondary, .bg-green .text-secondary {
+ color: #FFD541;
+}
+
+.post-corporate.post-corporate-img-bg .google-map, .section-main-bunner .google-map, .context-dark .google-map, .bg-gray-600 .google-map, .bg-gray-700 .google-map, .bg-gray-800 .google-map, .bg-primary .google-map, .bg-pink .google-map, .bg-secondary .google-map, .bg-secondary-2 .google-map, .bg-green .google-map {
+ color: #151515;
+}
+
+/*
+* Light Backgrounds
+*/
+.bg-default {
+ background-color: #ffffff;
+}
+
+.bg-default:not([style*="background-"]) + .bg-default:not([style*="background-"]) {
+ padding-top: 0;
+}
+
+.bg-gray-100 {
+ background-color: #edeff4;
+}
+
+.bg-gray-100:not([style*="background-"]) + .bg-gray-100:not([style*="background-"]) {
+ padding-top: 0;
+}
+
+.bg-gray-300 {
+ background-color: #E7E7E7;
+}
+
+.bg-gray-300:not([style*="background-"]) + .bg-gray-300:not([style*="background-"]) {
+ padding-top: 0;
+}
+
+.bg-gray-400 {
+ background-color: #C4C4C4;
+}
+
+.bg-gray-400:not([style*="background-"]) + .bg-gray-400:not([style*="background-"]) {
+ padding-top: 0;
+}
+
+.bg-gray-1 {
+ background-color: #f5f5f5;
+}
+
+.bg-gray-1:not([style*="background-"]) + .bg-gray-1:not([style*="background-"]) {
+ padding-top: 0;
+}
+
+/*
+* Dark Backgrounds
+*/
+.bg-gray-600 {
+ background-color: #323232;
+}
+
+.bg-gray-600:not([style*="background-"]) + .bg-gray-600:not([style*="background-"]) {
+ padding-top: 0;
+}
+
+.bg-gray-700 {
+ background-color: #444141;
+}
+
+.bg-gray-700:not([style*="background-"]) + .bg-gray-700:not([style*="background-"]) {
+ padding-top: 0;
+}
+
+.bg-gray-800 {
+ background-color: #151515;
+}
+
+.bg-gray-800:not([style*="background-"]) + .bg-gray-800:not([style*="background-"]) {
+ padding-top: 0;
+}
+
+.bg-dark-filter {
+ position: relative;
+}
+
+.bg-dark-filter > * {
+ position: relative;
+ z-index: 1;
+}
+
+.bg-dark-filter:before {
+ position: absolute;
+ content: '';
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background: linear-gradient(180deg, rgba(0, 0, 0, 0.01) 0%, rgba(11, 11, 11, 0.36) 51.93%, rgba(21, 21, 21, 0.34) 100%);
+}
+
+.bg-dark-filter-1::before {
+ background: linear-gradient(180deg, rgba(21, 21, 21, 0.15) 0%, rgba(0, 0, 0, 0.4) 100%);
+}
+
+.bg-dark-filter-2::before {
+ background: linear-gradient(180deg, rgba(0, 0, 0, 0.22) 0%, rgba(0, 0, 0, 0.63) 100%);
+}
+
+.bg-accent-filter {
+ position: relative;
+}
+
+.bg-accent-filter > * {
+ position: relative;
+ z-index: 1;
+}
+
+.bg-accent-filter:before {
+ position: absolute;
+ content: '';
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background: linear-gradient(359.73deg, #3A092F 0.9%, rgba(60, 55, 79, 0.45) 107.43%);
+}
+
+/*
+* Accent Backgrounds
+*/
+.bg-primary {
+ background: #4849b8;
+}
+
+.bg-primary + .bg-primary {
+ padding-top: 0;
+}
+
+.bg-pink {
+ background: #F73CA1;
+}
+
+.bg-pink + .bg-pink {
+ padding-top: 0;
+}
+
+.bg-secondary {
+ background: #FFD541;
+}
+
+.bg-secondary + .bg-secondary {
+ padding-top: 0;
+}
+
+.bg-secondary-2 {
+ background: #5656DF;
+}
+
+.bg-secondary-2 + .bg-secondary-2 {
+ padding-top: 0;
+}
+
+.bg-green {
+ background: #00E175;
+}
+
+.bg-green + .bg-green {
+ padding-top: 0;
+}
+
+/*
+* Background Image
+*/
+[class*='bg-'] {
+ background-size: cover;
+ background-position: center center;
+}
+
+@media (min-width: 992px) {
+ html:not(.tablet):not(.mobile) .bg-fixed {
+ background-attachment: fixed;
+ }
+}
+
+.bg-dot {
+ position: relative;
+}
+
+.bg-dot > * {
+ position: relative;
+ z-index: 1;
+}
+
+.bg-dot:before {
+ position: absolute;
+ content: '';
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background: url("../images/bg-dot.png");
+ opacity: .2;
+ z-index: 0;
+}
+
+.bg-dots-light {
+ position: relative;
+}
+
+.bg-dots-light > * {
+ position: relative;
+ z-index: 1;
+}
+
+.bg-dots-light:before {
+ position: absolute;
+ content: '';
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background: url("../images/bg-dot-light.png");
+ opacity: .04;
+ z-index: 0;
+}
+
+.bg-decorate {
+ position: relative;
+ overflow: hidden;
+}
+
+.bg-decorate > * {
+ position: relative;
+ z-index: 2;
+}
+
+.bg-decorate:before {
+ position: absolute;
+ content: '';
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background: url("../images/bg-dot-light.png");
+ opacity: .04;
+ z-index: 0;
+}
+
+.bg-decorate:after {
+ position: absolute;
+ content: '';
+ top: 50%;
+ left: 0;
+ width: 100vw;
+ height: 100vw;
+ background: #323232;
+ transform: skewY(13deg);
+ z-index: 0;
+}
+
+.bg-decorate.bg-decorate-reverse:after {
+ transform: skewY(-13deg);
+}
+
+/*
+* Utilities custom
+*/
+.height-fill {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ align-items: stretch;
+}
+
+.height-fill > * {
+ flex-grow: 1;
+ flex-shrink: 0;
+}
+
+.object-inline {
+ white-space: nowrap;
+}
+
+.object-inline > * {
+ display: inline-block;
+ min-width: 20px;
+ vertical-align: top;
+ white-space: normal;
+}
+
+.object-inline > * + * {
+ margin-left: 5px;
+}
+
+.oh {
+ position: relative;
+ overflow: hidden;
+}
+
+.text-decoration-lines {
+ position: relative;
+ overflow: hidden;
+ width: 100%;
+}
+
+.text-decoration-lines-content {
+ position: relative;
+ display: inline-block;
+ min-width: 170px;
+ font-size: 13px;
+ text-transform: uppercase;
+}
+
+.text-decoration-lines-content::before, .text-decoration-lines-content::after {
+ content: '';
+ position: absolute;
+ height: 1px;
+ background: #d7d7d7;
+ top: 50%;
+ width: 100vw;
+}
+
+.text-decoration-lines-content::before {
+ left: 0;
+ transform: translate3d(-100%, 0, 0);
+}
+
+.text-decoration-lines-content::after {
+ right: 0;
+ transform: translate3d(100%, 0, 0);
+}
+
+* + .text-decoration-lines {
+ margin-top: 30px;
+}
+
+p.rights {
+ font-size: 14px;
+ color: rgba(21, 21, 21, 0.8);
+}
+
+p.rights a {
+ color: inherit;
+}
+
+p.rights a:hover {
+ color: #4849b8;
+}
+
+[style*='z-index: 1000;'] {
+ z-index: 1101 !important;
+}
+
+.text-block > * {
+ margin-left: .125em;
+ margin-right: .125em;
+}
+
+.font-family-base {
+ font-family: "Poppins", sans-serif;
+}
+
+/*
+*
+* Animate.css
+*/
+.animated {
+ -webkit-animation-duration: 1s;
+ animation-duration: 1s;
+ -webkit-animation-fill-mode: both;
+ animation-fill-mode: both;
+ opacity: 1;
+}
+
+.animated.infinite {
+ -webkit-animation-iteration-count: infinite;
+ animation-iteration-count: infinite;
+}
+
+.animated.hinge {
+ -webkit-animation-duration: 2s;
+ animation-duration: 2s;
+}
+
+.wow-outer {
+ position: relative;
+ overflow: hidden;
+}
+
+html:not(.lt-ie10) .not-animated {
+ opacity: 0;
+}
+
+@-webkit-keyframes fadeIn {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+
+@keyframes fadeIn {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+
+.fadeIn {
+ -webkit-animation-name: fadeIn;
+ animation-name: fadeIn;
+}
+
+@-webkit-keyframes fadeInUp {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@keyframes fadeInUp {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+.fadeInUp {
+ -webkit-animation-name: fadeInUp;
+ animation-name: fadeInUp;
+}
+
+@-webkit-keyframes fadeInDown {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@keyframes fadeInDown {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+.fadeInDown {
+ -webkit-animation-name: fadeInDown;
+ animation-name: fadeInDown;
+}
+
+@-webkit-keyframes fadeInLeft {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ }
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@keyframes fadeInLeft {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ }
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+.fadeInLeft {
+ -webkit-animation-name: fadeInLeft;
+ animation-name: fadeInLeft;
+}
+
+@-webkit-keyframes fadeInRight {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ }
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@keyframes fadeInRight {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ }
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+.fadeInRight {
+ -webkit-animation-name: fadeInRight;
+ animation-name: fadeInRight;
+}
+
+@-webkit-keyframes fadeOut {
+ 0% {
+ opacity: 1;
+ }
+ 100% {
+ opacity: 0;
+ }
+}
+
+@keyframes fadeOut {
+ 0% {
+ opacity: 1;
+ }
+ 100% {
+ opacity: 0;
+ }
+}
+
+.fadeOut {
+ -webkit-animation-name: fadeOut;
+ animation-name: fadeOut;
+}
+
+@-webkit-keyframes slideInDown {
+ 0% {
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ visibility: visible;
+ }
+ 100% {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes slideInDown {
+ 0% {
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ visibility: visible;
+ }
+ 100% {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.slideInDown {
+ -webkit-animation-name: slideInDown;
+ animation-name: slideInDown;
+}
+
+@-webkit-keyframes slideInLeft {
+ 0% {
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ visibility: visible;
+ }
+ 100% {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes slideInLeft {
+ 0% {
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ visibility: visible;
+ }
+ 100% {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.slideInLeft {
+ -webkit-animation-name: slideInLeft;
+ animation-name: slideInLeft;
+}
+
+@-webkit-keyframes slideInRight {
+ 0% {
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ visibility: visible;
+ }
+ 100% {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes slideInRight {
+ 0% {
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ visibility: visible;
+ }
+ 100% {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.slideInRight {
+ -webkit-animation-name: slideInRight;
+ animation-name: slideInRight;
+}
+
+@-webkit-keyframes slideOutDown {
+ 0% {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+ 100% {
+ visibility: hidden;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+}
+
+@keyframes slideOutDown {
+ 0% {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+ 100% {
+ visibility: hidden;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+}
+
+.slideOutDown {
+ -webkit-animation-name: slideOutDown;
+ animation-name: slideOutDown;
+}
+
+/*
+*
+* Preloader
+*/
+.preloader {
+ position: fixed;
+ left: 0;
+ top: 0;
+ bottom: 0;
+ right: 0;
+ z-index: 10000;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ padding: 20px;
+ background: #ffffff;
+ transition: .3s all ease;
+}
+
+.preloader.loaded {
+ opacity: 0;
+ visibility: hidden;
+}
+
+.preloader-body {
+ text-align: center;
+}
+
+.preloader-body p {
+ position: relative;
+ right: -8px;
+}
+
+.cssload-container {
+ width: 100%;
+ height: 36px;
+ text-align: center;
+}
+
+.cssload-speeding-wheel {
+ width: 36px;
+ height: 36px;
+ margin: 0 auto;
+ border: 3px solid #4849b8;
+ border-radius: 50%;
+ border-left-color: transparent;
+ border-bottom-color: transparent;
+ animation: cssload-spin .88s infinite linear;
+}
+
+@-webkit-keyframes cssload-spin {
+ 100% {
+ transform: rotate(360deg);
+ }
+}
+
+@keyframes cssload-spin {
+ 100% {
+ transform: rotate(360deg);
+ }
+}
+
+/*
+*
+* ToTop
+*/
+.ui-to-top {
+ position: fixed;
+ right: 15px;
+ bottom: 15px;
+ z-index: 100;
+ width: 60px;
+ height: 60px;
+ font-size: 20px;
+ line-height: 56px;
+ color: #ffffff;
+ overflow: hidden;
+ background: #4849b8;
+ border-radius: 5px;
+ text-align: center;
+ text-decoration: none;
+ transition: .45s all ease-in-out;
+ transform: translate3d(0, 100px, 0);
+}
+
+.ui-to-top:hover {
+ color: #ffffff;
+ background: #000000;
+ text-decoration: none;
+}
+
+.ui-to-top:focus {
+ color: #ffffff;
+}
+
+.ui-to-top.active {
+ transform: translate3d(0, 0, 0);
+}
+
+html.mobile .ui-to-top,
+html.tablet .ui-to-top {
+ display: none !important;
+}
+
+@media (min-width: 576px) {
+ .ui-to-top {
+ right: 40px;
+ bottom: 40px;
+ }
+}
+
+/*
+*
+* RD Navbar
+*/
+@keyframes rd-navbar-slide-down {
+ 0% {
+ transform: translateY(-100%);
+ }
+ 100% {
+ transform: translateY(0);
+ }
+}
+
+@keyframes rd-navbar-slide-up {
+ 0% {
+ transform: translateY(0);
+ }
+ 100% {
+ transform: translateY(-100%);
+ }
+}
+
+.rd-navbar-wrap, .rd-navbar,
+.rd-menu,
+.rd-navbar-nav,
+.rd-navbar-panel, .rd-navbar-static .rd-menu, .rd-navbar-fixed .rd-navbar-nav-wrap, .rd-navbar-fixed .rd-navbar-submenu {
+ transition: 0.35s all cubic-bezier(0.65, 0.05, 0.36, 1);
+}
+
+.rd-navbar--no-transition, .rd-navbar--no-transition * {
+ transition: none !important;
+}
+
+.rd-navbar,
+.rd-navbar.rd-navbar--is-clone {
+ display: none;
+}
+
+.rd-navbar.rd-navbar-fixed + .rd-navbar.rd-navbar--is-clone,
+.rd-navbar.rd-navbar-sidebar + .rd-navbar.rd-navbar--is-clone {
+ display: none;
+}
+
+.rd-navbar {
+ display: none;
+ background: #444141;
+}
+
+.rd-navbar-toggle {
+ display: inline-block;
+ position: relative;
+ width: 48px;
+ height: 48px;
+ line-height: 48px;
+ cursor: pointer;
+ color: #E7E7E7;
+ background-color: transparent;
+ border: none;
+ display: none;
+}
+
+.rd-navbar-toggle span {
+ position: relative;
+ display: block;
+ margin: auto;
+ transition: .3s all ease;
+}
+
+.rd-navbar-toggle span:after, .rd-navbar-toggle span:before {
+ content: "";
+ position: absolute;
+ left: 0;
+ top: -11px;
+ transition: .3s all ease;
+}
+
+.rd-navbar-toggle span:after {
+ top: 11px;
+}
+
+.rd-navbar-toggle span:after, .rd-navbar-toggle span:before, .rd-navbar-toggle span {
+ width: 36px;
+ height: 2px;
+ background-color: #E7E7E7;
+ backface-visibility: hidden;
+ border-radius: 5px;
+}
+
+.rd-navbar-toggle span {
+ transform: rotate(180deg);
+}
+
+.rd-navbar-toggle span:before, .rd-navbar-toggle span:after {
+ transform-origin: 1.71429px center;
+}
+
+.rd-navbar-toggle.active span {
+ transform: rotate(360deg);
+}
+
+.rd-navbar-toggle.active span:before, .rd-navbar-toggle.active span:after {
+ top: 0;
+ width: 15px;
+}
+
+.rd-navbar-toggle.active span:before {
+ -webkit-transform: rotate3d(0, 0, 1, -40deg);
+ transform: rotate3d(0, 0, 1, -40deg);
+}
+
+.rd-navbar-toggle.active span:after {
+ -webkit-transform: rotate3d(0, 0, 1, 40deg);
+ transform: rotate3d(0, 0, 1, 40deg);
+}
+
+.rd-navbar-collapse-toggle {
+ display: inline-block;
+ position: relative;
+ width: 48px;
+ height: 48px;
+ line-height: 48px;
+ cursor: pointer;
+ color: #ffffff;
+ display: none;
+}
+
+.rd-navbar-collapse-toggle span {
+ top: 50%;
+ margin-top: -3px;
+}
+
+.rd-navbar-collapse-toggle span, .rd-navbar-collapse-toggle span:before, .rd-navbar-collapse-toggle span:after {
+ position: absolute;
+ width: 6px;
+ height: 6px;
+ line-height: 6px;
+ text-align: center;
+ background: #ffffff;
+ left: 50%;
+ margin-left: -3px;
+ border-radius: 50%;
+ transition: .3s all ease;
+}
+
+.rd-navbar-collapse-toggle span:before, .rd-navbar-collapse-toggle span:after {
+ content: '';
+}
+
+.rd-navbar-collapse-toggle span:before {
+ bottom: 100%;
+ margin-bottom: 3px;
+}
+
+.rd-navbar-collapse-toggle span:after {
+ top: 100%;
+ margin-top: 3px;
+}
+
+.rd-navbar-collapse-toggle.active span {
+ transform: scale(0.7);
+}
+
+.rd-navbar-collapse-toggle.active span:before {
+ transform: translateY(18px);
+}
+
+.rd-navbar-collapse-toggle.active span:after {
+ transform: translateY(-18px);
+}
+
+.rd-navbar-brand a {
+ display: block;
+}
+
+.rd-navbar-search {
+ position: relative;
+ display: inline-flex;
+}
+
+.rd-navbar-search .form-input {
+ padding-right: 50px;
+}
+
+.rd-navbar-search .rd-search-form-submit {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ right: 0;
+ width: 50px;
+ padding: 0;
+ margin: 0;
+ border: none;
+ cursor: pointer;
+ background-color: transparent;
+ color: #E7E7E7;
+ transition: .33s;
+}
+
+.rd-navbar-search .rd-search-form-submit:hover {
+ color: #4849b8;
+}
+
+.rd-navbar-search-toggle {
+ background: none;
+ border: none;
+ display: inline-block;
+ padding: 0;
+ outline: none;
+ outline-offset: 0;
+ cursor: pointer;
+ -webkit-appearance: none;
+}
+
+.rd-navbar-search-toggle::-moz-focus-inner {
+ border: none;
+ padding: 0;
+}
+
+.rd-navbar-dropdown {
+ display: none;
+}
+
+/*
+* @subsection RD Navbar Static
+*/
+.rd-navbar-static {
+ display: block;
+}
+
+.rd-navbar-static .rd-nav-item {
+ display: inline-block;
+}
+
+.rd-navbar-static .rd-nav-item.focus .rd-nav-link, .rd-navbar-static .rd-nav-item.opened .rd-nav-link {
+ color: #4849b8;
+ background: transparent;
+}
+
+.rd-navbar-static .rd-nav-item.focus > .rd-navbar-submenu-toggle, .rd-navbar-static .rd-nav-item.opened > .rd-navbar-submenu-toggle {
+ color: #4849b8;
+}
+
+.rd-navbar-static .rd-nav-item.active .rd-nav-link {
+ color: #4849b8;
+ background: transparent;
+}
+
+.rd-navbar-static .rd-nav-item.active > .rd-navbar-submenu-toggle {
+ color: #4849b8;
+}
+
+.rd-navbar-static .rd-nav-item.focus > .rd-navbar-submenu-toggle::before,
+.rd-navbar-static .rd-nav-item.opened > .rd-navbar-submenu-toggle::before,
+.rd-navbar-static .rd-nav-item .rd-nav-link:hover + .rd-navbar-submenu-toggle::before {
+ transform: rotate(180deg);
+}
+
+.rd-navbar-static .rd-nav-item > .rd-navbar-submenu-toggle {
+ margin-left: 4px;
+ font-family: "Material Design Icons";
+ font-size: 16px;
+ cursor: pointer;
+ color: #ffffff;
+}
+
+.rd-navbar-static .rd-nav-item > .rd-navbar-submenu-toggle::before {
+ position: relative;
+ display: inline-block;
+ transition: .22s;
+ content: '\f236';
+}
+
+.rd-navbar-static .rd-nav-item > .rd-navbar-submenu-toggle:hover {
+ color: #4849b8;
+}
+
+.rd-navbar-static .rd-nav-item > .rd-navbar-submenu {
+ margin-top: 20px;
+}
+
+.rd-navbar-static .rd-nav-item + .rd-nav-item {
+ margin-left: 38px;
+}
+
+.rd-navbar-static .rd-nav-link {
+ position: relative;
+ display: inline-block;
+ color: #ffffff;
+ font-size: 15px;
+ line-height: 1.2;
+ letter-spacing: 0.02em;
+ font-weight: 500;
+ text-transform: uppercase;
+ transition: .25s;
+}
+
+.rd-navbar-static .rd-nav-link:hover {
+ color: #4849b8;
+}
+
+.rd-navbar-static .rd-menu {
+ z-index: 15;
+ position: absolute;
+ display: block;
+ margin-top: 22px;
+ visibility: hidden;
+ opacity: 0;
+ text-align: left;
+ border: 1px solid #444141;
+ transform: translate3d(0, 30px, 0);
+}
+
+.rd-navbar-static .rd-navbar-dropdown {
+ position: absolute;
+ left: 0;
+ width: 270px;
+ padding: 15px;
+ background: #ffffff;
+ z-index: 5;
+}
+
+.rd-navbar-static .rd-navbar-dropdown .rd-navbar-dropdown {
+ top: -1px;
+ left: 100%;
+ z-index: 2;
+ margin-top: -15px;
+ margin-left: 15px;
+ transform: translate3d(30px, 0, 0);
+}
+
+.rd-navbar-static .rd-navbar-dropdown .rd-navbar-dropdown.rd-navbar-open-left {
+ left: auto;
+ right: 100%;
+ margin-left: 0;
+ margin-right: 15px;
+ transform: translate3d(-30px, 0, 0);
+}
+
+.rd-navbar-static .rd-dropdown-item.focus .rd-dropdown-link, .rd-navbar-static .rd-dropdown-item.opened .rd-dropdown-link {
+ color: #4849b8;
+}
+
+.rd-navbar-static .rd-dropdown-link {
+ color: #9b9b9b;
+}
+
+.rd-navbar-static .rd-dropdown-link:hover {
+ color: #4849b8;
+}
+
+.rd-navbar-static .rd-navbar-dropdown li > a,
+.rd-navbar-static .rd-megamenu-list li > a {
+ position: relative;
+ left: -3px;
+ display: flex;
+ padding: 1px 14px 1px 0;
+ text-align: left;
+ text-transform: uppercase;
+}
+
+.rd-navbar-static .rd-navbar-dropdown li > a, .rd-navbar-static .rd-navbar-dropdown li > a:focus, .rd-navbar-static .rd-navbar-dropdown li > a:active,
+.rd-navbar-static .rd-megamenu-list li > a,
+.rd-navbar-static .rd-megamenu-list li > a:focus,
+.rd-navbar-static .rd-megamenu-list li > a:active {
+ color: #9b9b9b;
+}
+
+.rd-navbar-static .rd-navbar-dropdown li > a:hover,
+.rd-navbar-static .rd-megamenu-list li > a:hover {
+ color: #4849b8;
+}
+
+.rd-navbar-static .rd-navbar-dropdown li > a, .rd-navbar-static .rd-navbar-dropdown li > a::before,
+.rd-navbar-static .rd-megamenu-list li > a,
+.rd-navbar-static .rd-megamenu-list li > a::before {
+ transition: .15s ease-in-out;
+}
+
+.rd-navbar-static .rd-navbar-dropdown li > a::before,
+.rd-navbar-static .rd-megamenu-list li > a::before {
+ position: relative;
+ top: -1px;
+ left: -6px;
+ display: inline-block;
+ content: '\f105';
+ font-family: 'FontAwesome';
+ font-size: inherit;
+ line-height: inherit;
+ color: #4849b8;
+ opacity: 0;
+ visibility: hidden;
+}
+
+.rd-navbar-static .rd-navbar-dropdown li.focus > a,
+.rd-navbar-static .rd-navbar-dropdown li.opened > a,
+.rd-navbar-static .rd-navbar-dropdown li > a:hover,
+.rd-navbar-static .rd-megamenu-list li.focus > a,
+.rd-navbar-static .rd-megamenu-list li.opened > a,
+.rd-navbar-static .rd-megamenu-list li > a:hover {
+ left: 0;
+ padding-left: 14px;
+ padding-right: 0;
+}
+
+.rd-navbar-static .rd-navbar-dropdown li.focus > a::before,
+.rd-navbar-static .rd-navbar-dropdown li.opened > a::before,
+.rd-navbar-static .rd-navbar-dropdown li > a:hover::before,
+.rd-navbar-static .rd-megamenu-list li.focus > a::before,
+.rd-navbar-static .rd-megamenu-list li.opened > a::before,
+.rd-navbar-static .rd-megamenu-list li > a:hover::before {
+ left: -7px;
+ opacity: 1;
+ visibility: visible;
+}
+
+.rd-navbar-static .rd-navbar-megamenu {
+ display: flex;
+ left: 0;
+ width: 100%;
+ max-width: 1200px;
+ padding: 30px 40px;
+ background: #ffffff;
+}
+
+.rd-navbar-static .rd-megamenu-item {
+ flex-basis: 50%;
+ flex-grow: 1;
+}
+
+.rd-navbar-static .rd-megamenu-item + .rd-megamenu-item {
+ padding-left: 20px;
+}
+
+.rd-navbar-static .rd-megamenu-title {
+ font-weight: 500;
+ letter-spacing: .05em;
+ text-transform: uppercase;
+ padding-bottom: 10px;
+ border-bottom: 1px solid #d7d7d7;
+}
+
+.rd-navbar-static .rd-megamenu-list-item + .rd-megamenu-list-item {
+ margin-top: 5px;
+}
+
+.rd-navbar-static .rd-megamenu-list-link {
+ color: #000000;
+ background: transparent;
+}
+
+.rd-navbar-static .rd-megamenu-list-link:hover {
+ color: #4849b8;
+ background: transparent;
+}
+
+.rd-navbar-static * + .rd-megamenu-list {
+ margin-top: 10px;
+}
+
+.rd-navbar-static .rd-navbar-submenu.focus > .rd-menu, .rd-navbar-static .rd-navbar-submenu.opened > .rd-menu {
+ opacity: 1;
+ visibility: visible;
+ transform: translate3d(0, 0, 0);
+}
+
+.rd-navbar-static .rd-navbar-search.active .rd-search {
+ visibility: visible;
+ opacity: 1;
+}
+
+.rd-navbar-static .rd-search {
+ position: absolute;
+ top: 100%;
+ right: 0;
+ width: 270px;
+ opacity: 0;
+ visibility: hidden;
+ transition: .3s;
+ margin-top: 20px;
+ z-index: 2;
+}
+
+.rd-navbar-static * + .rd-navbar-search {
+ margin-left: 38px;
+}
+
+.rd-navbar-static .rd-navbar-search-toggle {
+ display: inline-flex;
+ color: #444141;
+}
+
+.rd-navbar-static .rd-navbar-search-toggle span {
+ display: inline-block;
+ position: relative;
+ width: 32px;
+ height: 32px;
+ font-size: 26px;
+ line-height: 32px;
+ text-align: center;
+ cursor: pointer;
+ background: none;
+ border: none;
+ outline: none;
+ padding: 0;
+}
+
+.rd-navbar-static .rd-navbar-search-toggle span, .rd-navbar-static .rd-navbar-search-toggle span::before, .rd-navbar-static .rd-navbar-search-toggle span::after {
+ transition: .3s all ease-in-out;
+}
+
+.rd-navbar-static .rd-navbar-search-toggle span::before, .rd-navbar-static .rd-navbar-search-toggle span::after {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+}
+
+.rd-navbar-static .rd-navbar-search-toggle span::before {
+ content: "";
+ transform: rotate(0deg) scale(1);
+ opacity: 1;
+ visibility: visible;
+ font-family: "Material Design Icons";
+}
+
+.rd-navbar-static .rd-navbar-search-toggle span::after {
+ content: "";
+ transform: rotate(-90deg) scale(0.4);
+ opacity: 0;
+ visibility: hidden;
+ font-family: "Material Design Icons";
+}
+
+.rd-navbar-static .rd-navbar-search-toggle.active span::before {
+ opacity: 0;
+ visibility: hidden;
+ transform: rotate(90deg) scale(0.4);
+}
+
+.rd-navbar-static .rd-navbar-search-toggle.active span::after {
+ transform: rotate(0deg) scale(1);
+ opacity: 1;
+ visibility: visible;
+}
+
+.rd-navbar-static .rd-navbar-search-toggle:hover {
+ color: #4849b8;
+}
+
+.rd-navbar-static.rd-navbar--is-clone {
+ display: block;
+ transform: translate3d(0, -100%, 0);
+}
+
+.rd-navbar-static.rd-navbar--is-clone.rd-navbar--is-stuck {
+ transform: translate3d(0, 0, 0);
+}
+
+.rd-navbar-static.rd-navbar--is-stuck, .rd-navbar-static.rd-navbar--is-clone {
+ position: fixed;
+ left: 0;
+ top: 0;
+ right: 0;
+ z-index: 1080;
+ background: #444141;
+}
+
+.rd-navbar-static .rd-navbar--has-dropdown {
+ position: relative;
+}
+
+/*
+*
+* RD Navbar Fixed
+*/
+.rd-navbar-fixed {
+ display: block;
+}
+
+.rd-navbar-fixed .rd-navbar-toggle {
+ display: inline-block;
+}
+
+.rd-navbar-fixed .rd-navbar-brand {
+ position: relative;
+ margin-left: 20px;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ text-align: left;
+ font-size: 22px;
+}
+
+.rd-navbar-fixed .rd-navbar-brand img {
+ max-width: 160px;
+ max-height: 45px;
+ width: auto;
+ height: auto;
+}
+
+.rd-navbar-fixed .rd-navbar-panel {
+ position: fixed;
+ left: 0;
+ top: 0;
+ right: 0;
+ z-index: 1080;
+ display: flex;
+ align-items: center;
+ height: 56px;
+ padding: 4px;
+ box-shadow: 0px 0px 15px rgba(21, 21, 21, 0.35);
+}
+
+.rd-navbar-fixed .rd-navbar-nav-wrap {
+ position: fixed;
+ left: 0;
+ top: -56px;
+ bottom: -56px;
+ z-index: 1079;
+ width: 270px;
+ padding: 112px 0 81px;
+ overflow-y: auto;
+ overflow-x: hidden;
+ -webkit-overflow-scrolling: touch;
+ font-size: 16px;
+ line-height: 26px;
+ transform: translateX(-110%);
+}
+
+.rd-navbar-fixed .rd-navbar-nav-wrap::-webkit-scrollbar {
+ width: 4px;
+}
+
+.rd-navbar-fixed .rd-navbar-nav-wrap::-webkit-scrollbar-thumb {
+ background: #7fcc8b;
+ border: none;
+ border-radius: 0;
+ opacity: .2;
+}
+
+.rd-navbar-fixed .rd-navbar-nav-wrap::-webkit-scrollbar-track {
+ background: #4849b8;
+ border: none;
+ border-radius: 0;
+}
+
+.rd-navbar-fixed .rd-navbar-nav-wrap.active {
+ transform: translateX(0);
+}
+
+.rd-navbar-fixed .rd-navbar-nav {
+ display: block;
+ margin: 15px 0;
+ height: auto;
+ text-align: left;
+}
+
+.rd-navbar-fixed .rd-nav-item {
+ text-align: left;
+}
+
+.rd-navbar-fixed .rd-nav-item + .rd-nav-item {
+ margin-top: 4px;
+}
+
+.rd-navbar-fixed .rd-nav-link {
+ display: block;
+ padding: 9px 56px 9px 18px;
+}
+
+.rd-navbar-fixed li.opened > .rd-navbar-dropdown {
+ padding: 4px 0 0;
+}
+
+.rd-navbar-fixed li.opened > .rd-navbar-megamenu {
+ padding-top: 15px;
+ padding-bottom: 15px;
+}
+
+.rd-navbar-fixed li.opened > .rd-menu {
+ opacity: 1;
+ height: auto;
+}
+
+.rd-navbar-fixed li.opened > .rd-navbar-submenu-toggle::after {
+ transform: rotate(180deg);
+}
+
+.rd-navbar-fixed .rd-menu {
+ display: none;
+ transition: opacity 0.3s, height 0.4s ease;
+ opacity: 0;
+ height: 0;
+ overflow: hidden;
+}
+
+.rd-navbar-fixed .rd-navbar-submenu {
+ position: relative;
+}
+
+.rd-navbar-fixed .rd-navbar-submenu .rd-navbar-dropdown .rd-navbar-submenu-toggle:after {
+ height: 34px;
+ line-height: 34px;
+}
+
+.rd-navbar-fixed .rd-navbar-submenu .rd-navbar-dropdown > li > a {
+ padding-left: 30px;
+}
+
+.rd-navbar-fixed .rd-navbar-submenu .rd-navbar-dropdown li li > a,
+.rd-navbar-fixed .rd-navbar-submenu .rd-navbar-megamenu ul li li > a {
+ padding-left: 46px;
+}
+
+.rd-navbar-fixed .rd-navbar-submenu.opened > .rd-navbar-dropdown,
+.rd-navbar-fixed .rd-navbar-submenu.opened > .rd-navbar-megamenu {
+ display: block;
+}
+
+.rd-navbar-fixed .rd-megamenu-list > li > a,
+.rd-navbar-fixed .rd-navbar-dropdown > li > a {
+ display: block;
+ padding: 9px 56px 9px 16px;
+ font-size: 14px;
+ line-height: 1.5;
+}
+
+.rd-navbar-fixed .rd-megamenu-list > li + li,
+.rd-navbar-fixed .rd-navbar-dropdown > li + li {
+ margin-top: 3px;
+}
+
+.rd-navbar-fixed .rd-megamenu-list > li > a {
+ padding-left: 30px;
+}
+
+.rd-navbar-fixed .rd-navbar-megamenu .rd-megamenu-title {
+ position: relative;
+ display: block;
+ padding: 0 18px 7px;
+ font-size: 16px;
+ line-height: 1.5;
+}
+
+.rd-navbar-fixed .rd-navbar-megamenu .rd-megamenu-title::after {
+ content: '';
+ position: absolute;
+ left: 20px;
+ right: 20px;
+ bottom: 0;
+ border-bottom: 1px solid;
+}
+
+.rd-navbar-fixed .rd-navbar-megamenu * + .rd-megamenu-list {
+ margin-top: 11px;
+}
+
+.rd-navbar-fixed .rd-navbar-megamenu * + .rd-megamenu-title {
+ margin-top: 20px;
+}
+
+.rd-navbar-fixed .rd-navbar-megamenu > li + li {
+ margin-top: 20px;
+}
+
+.rd-navbar-fixed .rd-navbar-submenu-toggle {
+ cursor: pointer;
+}
+
+.rd-navbar-fixed .rd-navbar-submenu-toggle::after {
+ content: '\f107';
+ position: absolute;
+ top: 0;
+ right: 0;
+ width: 56px;
+ height: 44px;
+ font: 400 14px "FontAwesome";
+ line-height: 44px;
+ text-align: center;
+ transition: 0.4s all ease;
+ z-index: 2;
+ cursor: pointer;
+}
+
+.rd-navbar-fixed .rd-navbar-collapse-toggle {
+ display: block;
+ top: 4px;
+ z-index: 1081;
+}
+
+.rd-navbar-fixed .rd-navbar-collapse {
+ position: fixed;
+ right: 0;
+ top: 56px;
+ z-index: 1079;
+ transform: translate3d(0, -10px, 0);
+ padding: 15px;
+ width: auto;
+ border-radius: 5px;
+ text-align: left;
+ font-size: 14px;
+ opacity: 0;
+ visibility: hidden;
+ transition: .3s;
+}
+
+.rd-navbar-fixed .rd-navbar-collapse.active {
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ visibility: visible;
+}
+
+.rd-navbar-fixed .rd-navbar-collapse .list-inline > li {
+ display: block;
+}
+
+.rd-navbar-fixed .rd-navbar-collapse .list-inline > li + li {
+ margin-top: 10px;
+}
+
+.rd-navbar-fixed .rd-navbar-main-element {
+ position: absolute;
+ float: left;
+}
+
+.rd-navbar-fixed .rd-navbar-search .rd-search {
+ position: fixed;
+ right: 0;
+ left: 0;
+ top: 56px;
+ z-index: 1079;
+ width: 100%;
+ opacity: 0;
+ visibility: hidden;
+ transition: .3s;
+ transform: translate3d(0, -10px, 0);
+}
+
+.rd-navbar-fixed .rd-navbar-search .rd-search-results-live {
+ display: none;
+}
+
+.rd-navbar-fixed .rd-navbar-search .form-input {
+ padding-right: 50px;
+}
+
+.rd-navbar-fixed .rd-navbar-search .rd-search-form-submit {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ right: 0;
+ width: 50px;
+ padding: 0;
+ margin: 0;
+ border: none;
+ background-color: transparent;
+}
+
+.rd-navbar-fixed .rd-navbar-search.active .rd-search {
+ opacity: 1;
+ visibility: visible;
+ transform: none;
+}
+
+.rd-navbar-fixed .rd-navbar-search-toggle {
+ display: inline-flex;
+}
+
+.rd-navbar-fixed .rd-navbar-search-toggle span {
+ display: inline-block;
+ position: relative;
+ width: 48px;
+ height: 48px;
+ font-size: 26px;
+ line-height: 48px;
+ text-align: center;
+ cursor: pointer;
+ background: none;
+ border: none;
+ outline: none;
+ padding: 0;
+}
+
+.rd-navbar-fixed .rd-navbar-search-toggle span, .rd-navbar-fixed .rd-navbar-search-toggle span::before, .rd-navbar-fixed .rd-navbar-search-toggle span::after {
+ transition: .3s all ease-in-out;
+}
+
+.rd-navbar-fixed .rd-navbar-search-toggle span::before, .rd-navbar-fixed .rd-navbar-search-toggle span::after {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+}
+
+.rd-navbar-fixed .rd-navbar-search-toggle span::before {
+ content: "";
+ transform: rotate(0deg) scale(1);
+ opacity: 1;
+ visibility: visible;
+ font-family: "Material Design Icons";
+}
+
+.rd-navbar-fixed .rd-navbar-search-toggle span::after {
+ content: "";
+ transform: rotate(-90deg) scale(0.4);
+ opacity: 0;
+ visibility: hidden;
+ font-family: "Material Design Icons";
+}
+
+.rd-navbar-fixed .rd-navbar-search-toggle.active span::before {
+ opacity: 0;
+ visibility: hidden;
+ transform: rotate(90deg) scale(0.4);
+}
+
+.rd-navbar-fixed .rd-navbar-search-toggle.active span::after {
+ transform: rotate(0deg) scale(1);
+ opacity: 1;
+ visibility: visible;
+}
+
+.rd-navbar-fixed [class*='rd-navbar-fixed-element'] {
+ position: fixed;
+ top: 4px;
+ z-index: 1082;
+}
+
+.rd-navbar-fixed .rd-navbar-fixed-element-1 {
+ right: 0;
+}
+
+.rd-navbar-fixed .rd-navbar-fixed-element-2 {
+ right: 46px;
+}
+
+.rd-navbar-fixed.rd-navbar--is-clone {
+ display: none;
+}
+
+.rd-navbar-fixed .rd-navbar-fixed--visible {
+ display: block;
+}
+
+.rd-navbar-fixed .rd-navbar-fixed--hidden {
+ display: none;
+}
+
+.rd-navbar-fixed .rd-navbar-panel {
+ color: #9b9b9b;
+ background: #444141;
+}
+
+.rd-navbar-fixed .rd-navbar-nav-wrap {
+ color: #ffffff;
+ background: #444141;
+ border: 1px solid #444141;
+ box-shadow: 0px 0px 15px rgba(21, 21, 21, 0.35);
+}
+
+.rd-navbar-fixed .rd-nav-item:hover .rd-nav-link, .rd-navbar-fixed .rd-nav-item.focus .rd-nav-link, .rd-navbar-fixed .rd-nav-item.active .rd-nav-link, .rd-navbar-fixed .rd-nav-item.opened .rd-nav-link {
+ color: #ffffff;
+ background: #4849b8;
+}
+
+.rd-navbar-fixed .rd-nav-item:hover > .rd-navbar-submenu-toggle, .rd-navbar-fixed .rd-nav-item.focus > .rd-navbar-submenu-toggle, .rd-navbar-fixed .rd-nav-item.active > .rd-navbar-submenu-toggle, .rd-navbar-fixed .rd-nav-item.opened > .rd-navbar-submenu-toggle {
+ color: #ffffff;
+}
+
+.rd-navbar-fixed .rd-nav-link {
+ color: #9b9b9b;
+}
+
+.rd-navbar-fixed .rd-megamenu-list > li > a,
+.rd-navbar-fixed .rd-navbar-dropdown > li > a {
+ color: #9b9b9b;
+}
+
+.rd-navbar-fixed .rd-megamenu-list > li:hover > a,
+.rd-navbar-fixed .rd-megamenu-list > li.focus > a,
+.rd-navbar-fixed .rd-megamenu-list > li.active > a,
+.rd-navbar-fixed .rd-megamenu-list > li.opened > a,
+.rd-navbar-fixed .rd-navbar-dropdown > li:hover > a,
+.rd-navbar-fixed .rd-navbar-dropdown > li.focus > a,
+.rd-navbar-fixed .rd-navbar-dropdown > li.active > a,
+.rd-navbar-fixed .rd-navbar-dropdown > li.opened > a {
+ color: #ffffff;
+ background: #4849b8;
+}
+
+.rd-navbar-fixed .rd-navbar-megamenu .rd-megamenu-title {
+ color: #E7E7E7;
+}
+
+.rd-navbar-fixed .rd-navbar-megamenu .rd-megamenu-title::after {
+ border-bottom: 1px solid #444141;
+}
+
+.rd-navbar-fixed .rd-navbar-megamenu .rd-megamenu-title a, .rd-navbar-fixed .rd-navbar-megamenu .rd-megamenu-title a:focus, .rd-navbar-fixed .rd-navbar-megamenu .rd-megamenu-title a:active {
+ color: #ffffff;
+}
+
+.rd-navbar-fixed .rd-navbar-megamenu .rd-megamenu-title a:hover {
+ color: #4849b8;
+}
+
+.rd-navbar-fixed .rd-navbar-submenu-toggle {
+ color: #9b9b9b;
+}
+
+.rd-navbar-fixed .rd-navbar-search .rd-search-form-submit {
+ color: #E7E7E7;
+}
+
+.rd-navbar-fixed .rd-navbar-search .rd-search-form-submit:hover {
+ color: #4849b8;
+}
+
+.rd-navbar-fixed .rd-navbar-search-toggle {
+ color: #444141;
+}
+
+.rd-navbar-fixed .rd-navbar-search-toggle:hover {
+ color: #4849b8;
+}
+
+.rd-navbar-fixed .rd-navbar-collapse {
+ background-color: #444141;
+ box-shadow: 0 0 22px -4px rgba(0, 0, 0, 0.17);
+}
+
+.rd-navbar-fixed .rd-navbar-collapse,
+.rd-navbar-fixed .rd-navbar-collapse a {
+ color: #9b9b9b;
+}
+
+html.rd-navbar-fixed-linked .page {
+ padding-top: 56px;
+}
+
+/*
+*
+* RD Navbar Sidebar
+*/
+.rd-navbar-sidebar {
+ display: block;
+ background: #ffffff;
+}
+
+.rd-navbar-sidebar .rd-navbar-main-outer {
+ padding-left: 15px;
+ padding-right: 15px;
+}
+
+.rd-navbar-sidebar .rd-navbar-main {
+ position: relative;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 22px 60px 22px 0;
+ max-width: 1200px;
+ margin-left: auto;
+ margin-right: auto;
+ transition: 0.5s cubic-bezier(0.4, 0, 0.2, 1);
+}
+
+.rd-navbar-sidebar .rd-navbar-main-element {
+ display: flex;
+ align-items: center;
+}
+
+.rd-navbar-sidebar .rd-navbar-main-element > * + * {
+ margin-left: 20px;
+}
+
+.rd-navbar-sidebar .rd-navbar-toggle {
+ position: absolute;
+ right: 0;
+ top: 50%;
+ transform: translateY(-50%);
+ display: block;
+ z-index: 1102;
+}
+
+.rd-navbar-sidebar .rd-navbar-panel {
+ min-width: 200px;
+ text-align: center;
+}
+
+.rd-navbar-sidebar .rd-navbar-brand img {
+ width: auto;
+ height: auto;
+ max-width: 200px;
+ max-height: 200px;
+}
+
+.rd-navbar-sidebar .rd-navbar-nav-wrap {
+ position: fixed;
+ top: 0;
+ bottom: 0;
+ right: 0;
+ z-index: 1101;
+ width: 450px;
+ padding: 94px 0 0 0;
+ background: #ffffff;
+ transition: 0.5s cubic-bezier(0.4, 0, 0.2, 1);
+ transform: translateX(100%);
+ box-shadow: 0 0 13px 0 rgba(231, 231, 231, 0.16);
+}
+
+.rd-navbar-sidebar .rd-navbar-nav-wrap.active {
+ transition-delay: .1s;
+ transform: translateX(0);
+}
+
+.rd-navbar-sidebar .rd-navbar-nav {
+ height: calc(100vh - 100px);
+ overflow-x: hidden;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ border-top: 1px solid #d7d7d7;
+}
+
+.rd-navbar-sidebar .rd-nav-item {
+ position: relative;
+ display: block;
+ padding: 19px 30px 19px 40px;
+}
+
+.rd-navbar-sidebar .rd-nav-item.active .rd-nav-link {
+ color: #4849b8;
+}
+
+.rd-navbar-sidebar .rd-nav-item .rd-nav-link,
+.rd-navbar-sidebar .rd-nav-item > .rd-navbar-submenu-toggle {
+ font-size: 18px;
+}
+
+.rd-navbar-sidebar .rd-nav-item + .rd-nav-item {
+ border-top: 1px solid #d7d7d7;
+}
+
+.rd-navbar-sidebar .rd-nav-item:last-child {
+ border-bottom: 1px solid #d7d7d7;
+ margin-bottom: 30px;
+}
+
+.rd-navbar-sidebar .rd-nav-link {
+ max-width: calc(100% - 30px);
+ word-break: break-all;
+ font-size: 18px;
+ line-height: 1.4;
+ text-transform: none;
+ color: #E7E7E7;
+}
+
+.rd-navbar-sidebar .rd-nav-link:hover {
+ color: #4849b8;
+}
+
+.rd-navbar-sidebar .rd-navbar-submenu .opened > .rd-navbar-submenu-toggle::after {
+ transform: rotate(180deg);
+}
+
+.rd-navbar-sidebar .rd-navbar-submenu > .rd-navbar-dropdown,
+.rd-navbar-sidebar .rd-navbar-submenu > .rd-navbar-megamenu {
+ display: none;
+ opacity: 0;
+ visibility: hidden;
+ will-change: opacity, visibility;
+ transition: opacity .2s;
+}
+
+.rd-navbar-sidebar .rd-navbar-submenu.opened > .rd-navbar-dropdown,
+.rd-navbar-sidebar .rd-navbar-submenu.opened > .rd-navbar-megamenu {
+ display: block;
+ opacity: 1;
+ visibility: visible;
+}
+
+.rd-navbar-sidebar .rd-navbar-submenu > .rd-navbar-submenu > .rd-navbar-dropdown,
+.rd-navbar-sidebar .rd-navbar-submenu > .rd-navbar-submenu > .rd-navbar-megamenu {
+ transform: translateY(30px);
+}
+
+.rd-navbar-sidebar .rd-navbar-submenu > .rd-navbar-submenu.opened > .rd-navbar-dropdown,
+.rd-navbar-sidebar .rd-navbar-submenu > .rd-navbar-submenu.opened > .rd-navbar-megamenu {
+ transform: translateY(0);
+}
+
+.rd-navbar-sidebar .rd-navbar-submenu > .rd-navbar-submenu .rd-navbar-submenu > .rd-navbar-dropdown {
+ transform: translateX(-20px);
+}
+
+.rd-navbar-sidebar .rd-navbar-submenu > .rd-navbar-submenu .rd-navbar-submenu.opened > .rd-navbar-dropdown {
+ transform: translateX(0);
+}
+
+.rd-navbar-sidebar .rd-nav-item > .rd-navbar-submenu-toggle,
+.rd-navbar-sidebar .rd-nav-item .rd-navbar--has-dropdown > .rd-navbar-submenu-toggle {
+ position: absolute;
+ top: 0;
+ right: 0;
+ padding-top: inherit;
+ padding-right: inherit;
+ padding-left: 10px;
+ margin-bottom: inherit;
+ display: inline-block;
+ width: 30px;
+ margin-left: 5px;
+ text-align: center;
+ cursor: pointer;
+ color: #444141;
+}
+
+.rd-navbar-sidebar .rd-nav-item > .rd-navbar-submenu-toggle:hover,
+.rd-navbar-sidebar .rd-nav-item .rd-navbar--has-dropdown > .rd-navbar-submenu-toggle:hover {
+ color: #4849b8;
+}
+
+.rd-navbar-sidebar .rd-nav-item > .rd-navbar-submenu-toggle::after,
+.rd-navbar-sidebar .rd-nav-item .rd-navbar--has-dropdown > .rd-navbar-submenu-toggle::after {
+ content: '\f107';
+ position: relative;
+ display: inline-block;
+ font-family: "FontAwesome";
+ font-size: inherit;
+ line-height: inherit;
+ text-align: center;
+ vertical-align: middle;
+ transition: 0.4s all ease;
+ z-index: 2;
+ will-change: transform;
+}
+
+.rd-navbar-sidebar .rd-nav-item .rd-navbar--has-dropdown > .rd-navbar-submenu-toggle {
+ font-size: 14px;
+ color: #E7E7E7;
+ margin-left: 7px;
+}
+
+.rd-navbar-sidebar .rd-menu {
+ margin-top: 31px;
+}
+
+.rd-navbar-sidebar .rd-navbar-dropdown,
+.rd-navbar-sidebar .rd-megamenu-list {
+ font-size: 14px;
+}
+
+.rd-navbar-sidebar .rd-navbar-dropdown li > a,
+.rd-navbar-sidebar .rd-megamenu-list li > a {
+ position: relative;
+ left: -3px;
+ display: flex;
+ padding: 1px 14px 1px 0;
+ text-align: left;
+ text-transform: uppercase;
+}
+
+.rd-navbar-sidebar .rd-navbar-dropdown li > a, .rd-navbar-sidebar .rd-navbar-dropdown li > a:focus, .rd-navbar-sidebar .rd-navbar-dropdown li > a:active,
+.rd-navbar-sidebar .rd-megamenu-list li > a,
+.rd-navbar-sidebar .rd-megamenu-list li > a:focus,
+.rd-navbar-sidebar .rd-megamenu-list li > a:active {
+ color: #9b9b9b;
+}
+
+.rd-navbar-sidebar .rd-navbar-dropdown li > a:hover,
+.rd-navbar-sidebar .rd-megamenu-list li > a:hover {
+ color: #4849b8;
+}
+
+.rd-navbar-sidebar .rd-navbar-dropdown li > a, .rd-navbar-sidebar .rd-navbar-dropdown li > a::before,
+.rd-navbar-sidebar .rd-megamenu-list li > a,
+.rd-navbar-sidebar .rd-megamenu-list li > a::before {
+ transition: .15s ease-in-out;
+}
+
+.rd-navbar-sidebar .rd-navbar-dropdown li > a::before,
+.rd-navbar-sidebar .rd-megamenu-list li > a::before {
+ position: relative;
+ top: -1px;
+ left: -6px;
+ display: inline-block;
+ content: '\f105';
+ font-family: 'FontAwesome';
+ font-size: inherit;
+ line-height: inherit;
+ color: #4849b8;
+ opacity: 0;
+ visibility: hidden;
+}
+
+.rd-navbar-sidebar .rd-navbar-dropdown li.focus > a,
+.rd-navbar-sidebar .rd-navbar-dropdown li.opened > a,
+.rd-navbar-sidebar .rd-navbar-dropdown li > a:hover,
+.rd-navbar-sidebar .rd-megamenu-list li.focus > a,
+.rd-navbar-sidebar .rd-megamenu-list li.opened > a,
+.rd-navbar-sidebar .rd-megamenu-list li > a:hover {
+ left: 0;
+ padding-left: 14px;
+ padding-right: 0;
+}
+
+.rd-navbar-sidebar .rd-navbar-dropdown li.focus > a::before,
+.rd-navbar-sidebar .rd-navbar-dropdown li.opened > a::before,
+.rd-navbar-sidebar .rd-navbar-dropdown li > a:hover::before,
+.rd-navbar-sidebar .rd-megamenu-list li.focus > a::before,
+.rd-navbar-sidebar .rd-megamenu-list li.opened > a::before,
+.rd-navbar-sidebar .rd-megamenu-list li > a:hover::before {
+ left: -7px;
+ opacity: 1;
+ visibility: visible;
+}
+
+.rd-navbar-sidebar .rd-navbar-megamenu {
+ max-width: 450px;
+ margin-bottom: -30px;
+}
+
+.rd-navbar-sidebar .rd-navbar-megamenu > * {
+ margin-bottom: 30px;
+}
+
+.rd-navbar-sidebar .rd-navbar-megamenu > li {
+ display: inline-block;
+ vertical-align: top;
+ width: 45%;
+}
+
+.rd-navbar-sidebar .rd-megamenu-title {
+ display: none;
+}
+
+.rd-navbar-sidebar .rd-megamenu-list {
+ margin-top: 0;
+}
+
+.rd-navbar-sidebar .rd-megamenu-list > li + li {
+ margin-top: 10px;
+}
+
+.rd-navbar-sidebar .rd-navbar-dropdown .rd-navbar--has-dropdown > a {
+ padding-right: 0;
+}
+
+.rd-navbar-sidebar .rd-navbar-dropdown .rd-navbar--has-dropdown > a::before {
+ display: none;
+}
+
+.rd-navbar-sidebar .rd-navbar-dropdown .rd-navbar--has-dropdown > a:hover {
+ padding-left: 0;
+}
+
+.rd-navbar-sidebar .rd-navbar-dropdown .rd-navbar--has-dropdown.focus > a {
+ padding-left: 0;
+}
+
+.rd-navbar-sidebar .rd-navbar-dropdown .rd-navbar--has-dropdown.opened > .rd-navbar-submenu-toggle {
+ color: #4849b8;
+}
+
+.rd-navbar-sidebar .rd-navbar-dropdown .rd-navbar--has-dropdown.opened > .rd-navbar-submenu-toggle::after {
+ top: 1px;
+}
+
+.rd-navbar-sidebar .rd-navbar-dropdown > li + li {
+ margin-top: 10px;
+}
+
+.rd-navbar-sidebar .rd-nav-item > .rd-navbar-dropdown {
+ margin-top: 25px;
+}
+
+.rd-navbar-sidebar .rd-nav-item > .rd-navbar-dropdown .rd-navbar-dropdown {
+ margin-top: 10px;
+ padding-left: 15px;
+}
+
+.rd-navbar-sidebar .rd-nav-item > .rd-navbar-dropdown .rd-navbar-dropdown > li > a {
+ font-size: 12px;
+}
+
+@media (min-width: 1200px) {
+ .rd-navbar-sidebar .rd-navbar-megamenu {
+ margin-bottom: -30px;
+ }
+ .rd-navbar-sidebar .rd-navbar-megamenu > * {
+ margin-bottom: 30px;
+ }
+ .rd-navbar-sidebar .rd-navbar-dropdown > li + li,
+ .rd-navbar-sidebar .rd-megamenu-list > li + li {
+ margin-top: 18px;
+ }
+}
+
+@media (min-width: 1200px) {
+ .rd-navbar-sidebar .rd-navbar-nav-wrap {
+ width: auto;
+ left: calc(50% + 600px - 80px);
+ }
+}
+
+.rd-navbar-sidebar.rd-navbar--is-clone {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ z-index: 1000;
+ transform: translateY(-101%);
+}
+
+.rd-navbar-sidebar.rd-navbar--is-clone.rd-navbar--is-stuck {
+ transform: translateY(0);
+}
+
+.rd-navbar-sidebar.rd-navbar--is-stuck {
+ position: fixed;
+ left: 0;
+ right: 0;
+ top: 0;
+ z-index: 1000;
+ box-shadow: 0 2px 10px 1px rgba(0, 0, 0, 0.1);
+}
+
+.rd-navbar-sidebar.rd-navbar--is-stuck .rd-navbar-main {
+ padding-top: 11px;
+ padding-bottom: 11px;
+}
+
+/**
+*
+* RD Navbar Classic
+* =====================================================
+*/
+.rd-navbar-classic.rd-navbar-static {
+ background: rgba(255, 255, 255, 0.11);
+}
+
+.rd-navbar-classic.rd-navbar-static .rd-navbar-aside-outer,
+.rd-navbar-classic.rd-navbar-static .rd-navbar-main-outer {
+ padding-left: 15px;
+ padding-right: 15px;
+}
+
+.rd-navbar-classic.rd-navbar-static .rd-navbar-aside,
+.rd-navbar-classic.rd-navbar-static .rd-navbar-main {
+ max-width: 1600px;
+ padding-left: 15px;
+ padding-right: 15px;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.rd-navbar-classic.rd-navbar-static .rd-navbar-aside .button,
+.rd-navbar-classic.rd-navbar-static .rd-navbar-main .button {
+ margin-top: 0;
+ box-shadow: 0px 0px 15px rgba(21, 21, 21, 0.15);
+}
+
+.rd-navbar-classic.rd-navbar-static .rd-navbar-aside {
+ padding: 10px 0;
+}
+
+.rd-navbar-classic.rd-navbar-static .rd-navbar-main {
+ position: relative;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 32px 0;
+}
+
+.rd-navbar-classic.rd-navbar-static .rd-navbar-brand img {
+ width: auto;
+ height: auto;
+ max-width: 200px;
+ max-height: 200px;
+}
+
+.rd-navbar-classic.rd-navbar-static .rd-navbar-main-element {
+ display: flex;
+ align-items: center;
+}
+
+.rd-navbar-classic.rd-navbar-static .rd-navbar-megamenu {
+ left: 50%;
+ transform: translate3d(-50%, 30px, 0);
+}
+
+.rd-navbar-classic.rd-navbar-static .rd-navbar--has-megamenu.focus > .rd-menu,
+.rd-navbar-classic.rd-navbar-static .rd-navbar--has-megamenu.opened > .rd-menu {
+ transform: translate3d(-50%, 0, 0);
+}
+
+.rd-navbar-classic.rd-navbar-static.rd-navbar--is-stuck, .rd-navbar-classic.rd-navbar-static.rd-navbar--is-clone {
+ background: #323232;
+ border-bottom-color: #444141;
+ box-shadow: 0px 0px 15px rgba(21, 21, 21, 0.35);
+}
+
+.rd-navbar-classic.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-aside-outer, .rd-navbar-classic.rd-navbar-static.rd-navbar--is-clone .rd-navbar-aside-outer {
+ display: none;
+}
+
+.rd-navbar-classic.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-main, .rd-navbar-classic.rd-navbar-static.rd-navbar--is-clone .rd-navbar-main {
+ padding: 17px 0;
+}
+
+.rd-navbar-classic.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-nav-item > .rd-navbar-submenu, .rd-navbar-classic.rd-navbar-static.rd-navbar--is-clone .rd-navbar-nav-item > .rd-navbar-submenu {
+ margin-top: 17px;
+}
+
+.rd-navbar-classic.rd-navbar-static .rd-navbar-nav-wrap > .button {
+ display: none;
+}
+
+.rd-navbar-classic.rd-navbar-fixed .rd-navbar-main > .button {
+ display: none;
+}
+
+.rd-navbar-classic.rd-navbar-fixed .rd-navbar-nav-wrap > .button {
+ margin-left: 15px;
+}
+
+.mac-os .rd-navbar-classic.rd-navbar-static .rd-nav-link {
+ will-change: transform;
+}
+
+/*
+*
+* RD Navbar Fullwidth
+*/
+.rd-navbar-fullwidth {
+ display: block;
+}
+
+.rd-navbar-fullwidth .rd-navbar-nav > li + li {
+ margin-left: 20px;
+}
+
+.rd-navbar-fullwidth.rd-navbar--is-stuck .rd-navbar-main, .rd-navbar-fullwidth.rd-navbar--is-clone .rd-navbar-main {
+ padding: 10px 0;
+}
+
+/**
+*
+* RD Navbar Modern
+* =====================================================
+*/
+.rd-navbar-modern.rd-navbar-static {
+ background: transparent;
+}
+
+.rd-navbar-modern.rd-navbar-static .rd-navbar-aside-outer,
+.rd-navbar-modern.rd-navbar-static .rd-navbar-main-outer {
+ padding-left: 15px;
+ padding-right: 15px;
+}
+
+.rd-navbar-modern.rd-navbar-static .rd-navbar-aside,
+.rd-navbar-modern.rd-navbar-static .rd-navbar-main {
+ max-width: 1200px;
+ padding-left: 15px;
+ padding-right: 15px;
+ margin-left: auto;
+ margin-right: auto;
+ border-bottom: 1px solid rgba(255, 255, 255, 0.15);
+}
+
+.rd-navbar-modern.rd-navbar-static .rd-navbar-aside .button,
+.rd-navbar-modern.rd-navbar-static .rd-navbar-main .button {
+ margin-top: 0;
+ box-shadow: 0px 0px 15px rgba(21, 21, 21, 0.15);
+}
+
+.rd-navbar-modern.rd-navbar-static .rd-navbar-aside {
+ padding: 10px 0;
+}
+
+.rd-navbar-modern.rd-navbar-static .rd-navbar-main {
+ position: relative;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 32px 0;
+}
+
+.rd-navbar-modern.rd-navbar-static .rd-nav-item .rd-nav-link {
+ position: relative;
+}
+
+.rd-navbar-modern.rd-navbar-static .rd-nav-item .rd-nav-link:before {
+ position: absolute;
+ content: '';
+ bottom: 0;
+ left: 0;
+ right: 0;
+ height: 3px;
+ width: 100%;
+ background: #4849b8;
+ transition: all .3s;
+ transform: translateY(35px);
+ will-change: transform;
+ opacity: 0;
+}
+
+.rd-navbar-modern.rd-navbar-static .rd-nav-item.active > .rd-navbar-submenu-toggle,
+.rd-navbar-modern.rd-navbar-static .rd-nav-item:hover > .rd-navbar-submenu-toggle {
+ color: #ffffff;
+}
+
+.rd-navbar-modern.rd-navbar-static .rd-nav-item .rd-nav-link:hover, .rd-navbar-modern.rd-navbar-static .rd-nav-item.active .rd-nav-link {
+ color: #ffffff;
+}
+
+.rd-navbar-modern.rd-navbar-static .rd-nav-item .rd-nav-link:hover:before, .rd-navbar-modern.rd-navbar-static .rd-nav-item.active .rd-nav-link:before {
+ transform: translateY(42px);
+ opacity: 1;
+}
+
+.rd-navbar-modern.rd-navbar-static .rd-navbar-brand img {
+ width: auto;
+ height: auto;
+ max-width: 200px;
+ max-height: 200px;
+}
+
+.rd-navbar-modern.rd-navbar-static .rd-navbar-main-element {
+ display: flex;
+ align-items: center;
+}
+
+.rd-navbar-modern.rd-navbar-static.rd-navbar--is-stuck, .rd-navbar-modern.rd-navbar-static.rd-navbar--is-clone {
+ background: #444141;
+ border-bottom-color: #444141;
+ box-shadow: 0px 0px 15px rgba(21, 21, 21, 0.35);
+}
+
+.rd-navbar-modern.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-aside-outer, .rd-navbar-modern.rd-navbar-static.rd-navbar--is-clone .rd-navbar-aside-outer {
+ display: none;
+}
+
+.rd-navbar-modern.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-main, .rd-navbar-modern.rd-navbar-static.rd-navbar--is-clone .rd-navbar-main {
+ padding: 17px 0;
+ border-bottom: 1px solid rgba(255, 255, 255, 0);
+}
+
+.rd-navbar-modern.rd-navbar-static.rd-navbar--is-stuck .rd-nav-item .rd-nav-link:before, .rd-navbar-modern.rd-navbar-static.rd-navbar--is-clone .rd-nav-item .rd-nav-link:before {
+ transform: translateY(25px);
+}
+
+.rd-navbar-modern.rd-navbar-static.rd-navbar--is-stuck .rd-nav-item .rd-nav-link:hover,
+.rd-navbar-modern.rd-navbar-static.rd-navbar--is-stuck .rd-nav-item.active .rd-nav-link, .rd-navbar-modern.rd-navbar-static.rd-navbar--is-clone .rd-nav-item .rd-nav-link:hover,
+.rd-navbar-modern.rd-navbar-static.rd-navbar--is-clone .rd-nav-item.active .rd-nav-link {
+ color: #ffffff;
+}
+
+.rd-navbar-modern.rd-navbar-static.rd-navbar--is-stuck .rd-nav-item .rd-nav-link:hover:before,
+.rd-navbar-modern.rd-navbar-static.rd-navbar--is-stuck .rd-nav-item.active .rd-nav-link:before, .rd-navbar-modern.rd-navbar-static.rd-navbar--is-clone .rd-nav-item .rd-nav-link:hover:before,
+.rd-navbar-modern.rd-navbar-static.rd-navbar--is-clone .rd-nav-item.active .rd-nav-link:before {
+ transform: translateY(28px);
+ opacity: 1;
+}
+
+.rd-navbar-modern.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-nav-item > .rd-navbar-submenu, .rd-navbar-modern.rd-navbar-static.rd-navbar--is-clone .rd-navbar-nav-item > .rd-navbar-submenu {
+ margin-top: 17px;
+}
+
+.rd-navbar-modern.rd-navbar-static .rd-navbar-nav-wrap {
+ display: flex;
+ align-items: center;
+}
+
+.rd-navbar-modern.rd-navbar-static .rd-navbar-nav-wrap > .button {
+ margin-left: 35px;
+}
+
+.rd-navbar-modern.rd-navbar-fixed .rd-navbar-nav-wrap > .button {
+ margin-left: 15px;
+}
+
+/**
+*
+* RD Navbar Modern
+* =====================================================
+*/
+.rd-navbar-aside.rd-navbar-static {
+ background: transparent;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-aside-outer,
+.rd-navbar-aside.rd-navbar-static .rd-navbar-main-outer {
+ padding-left: 15px;
+ padding-right: 15px;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-aside,
+.rd-navbar-aside.rd-navbar-static .rd-navbar-main {
+ max-width: 1200px;
+ padding-left: 15px;
+ padding-right: 15px;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-aside .button,
+.rd-navbar-aside.rd-navbar-static .rd-navbar-main .button {
+ margin-top: 0;
+ box-shadow: 0px 0px 15px rgba(21, 21, 21, 0.15);
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-aside {
+ padding: 10px 0;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-main {
+ position: relative;
+ padding: 32px 0;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-nav-item + .rd-nav-item {
+ margin-left: 0;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-nav-item .rd-nav-link {
+ position: relative;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-nav-item.active > .rd-navbar-submenu-toggle,
+.rd-navbar-aside.rd-navbar-static .rd-nav-item:hover > .rd-navbar-submenu-toggle {
+ color: #4849b8;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-nav-item .rd-nav-link:hover, .rd-navbar-aside.rd-navbar-static .rd-nav-item.active .rd-nav-link {
+ color: #4849b8;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-brand img {
+ width: auto;
+ height: auto;
+ max-width: 200px;
+ max-height: 200px;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-main-element {
+ display: flex;
+ align-items: center;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-panel {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-panel .nav-list {
+ display: block;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-panel .nav-list li + li {
+ margin-left: 25px;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-panel .nav-list a {
+ text-transform: uppercase;
+ letter-spacing: .02em;
+ font-weight: 500;
+ color: #ffffff;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-panel .nav-list a:hover {
+ color: #4849b8;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-panel .header-soc-list li + li {
+ margin-left: 25px;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-panel .header-soc-list .icon {
+ color: rgba(255, 255, 255, 0.5);
+ font-size: 22px;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-panel .header-soc-list .icon:hover {
+ color: #ffffff;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-panel .block-right {
+ display: flex;
+ flex: 1;
+ padding-right: 70px;
+ align-items: center;
+ justify-content: flex-end;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-panel .block-right > * + * {
+ margin-left: 25px;
+}
+
+.rd-navbar-aside.rd-navbar-static.rd-navbar--is-stuck, .rd-navbar-aside.rd-navbar-static.rd-navbar--is-clone {
+ background: #444141;
+ border-bottom-color: #444141;
+}
+
+.rd-navbar-aside.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-main, .rd-navbar-aside.rd-navbar-static.rd-navbar--is-clone .rd-navbar-main {
+ padding: 17px 0;
+ border-bottom: 1px solid rgba(255, 255, 255, 0);
+}
+
+.rd-navbar-aside.rd-navbar-static.rd-navbar--is-stuck .rd-nav-item .rd-nav-link:before, .rd-navbar-aside.rd-navbar-static.rd-navbar--is-clone .rd-nav-item .rd-nav-link:before {
+ transform: translateY(25px);
+}
+
+.rd-navbar-aside.rd-navbar-static.rd-navbar--is-stuck .rd-nav-item .rd-nav-link:hover,
+.rd-navbar-aside.rd-navbar-static.rd-navbar--is-stuck .rd-nav-item.active .rd-nav-link, .rd-navbar-aside.rd-navbar-static.rd-navbar--is-clone .rd-nav-item .rd-nav-link:hover,
+.rd-navbar-aside.rd-navbar-static.rd-navbar--is-clone .rd-nav-item.active .rd-nav-link {
+ color: #4849b8;
+}
+
+.rd-navbar-aside.rd-navbar-static.rd-navbar--is-stuck .rd-nav-item .rd-nav-link:hover:before,
+.rd-navbar-aside.rd-navbar-static.rd-navbar--is-stuck .rd-nav-item.active .rd-nav-link:before, .rd-navbar-aside.rd-navbar-static.rd-navbar--is-clone .rd-nav-item .rd-nav-link:hover:before,
+.rd-navbar-aside.rd-navbar-static.rd-navbar--is-clone .rd-nav-item.active .rd-nav-link:before {
+ transform: translateY(28px);
+ opacity: 1;
+}
+
+.rd-navbar-aside.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-nav-item > .rd-navbar-submenu, .rd-navbar-aside.rd-navbar-static.rd-navbar--is-clone .rd-navbar-nav-item > .rd-navbar-submenu {
+ margin-top: 17px;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-nav-wrap {
+ display: flex;
+ align-items: center;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-nav-wrap > .button {
+ margin-left: 35px;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-toggle {
+ position: absolute;
+ right: 0;
+ top: 50%;
+ transform: translateY(-50%);
+ display: block;
+ z-index: 1102;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-nav-wrap {
+ position: fixed;
+ top: 0;
+ bottom: 0;
+ right: 0;
+ z-index: 1101;
+ width: 450px;
+ padding: 94px 0 0 0;
+ background: #323232;
+ transition: 0.5s cubic-bezier(0.4, 0, 0.2, 1);
+ transform: translateX(100%);
+ box-shadow: 0 0 13px 0 rgba(21, 21, 21, 0.3);
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-nav-wrap.active {
+ transition-delay: .1s;
+ transform: translateX(0);
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-nav {
+ height: calc(100vh - 100px);
+ overflow-x: hidden;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ width: 100%;
+ border-top: 1px solid rgba(255, 255, 255, 0.2);
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-nav-item {
+ position: relative;
+ display: block;
+ padding: 19px 30px 19px 40px;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-nav-item.focus .rd-nav-link,
+.rd-navbar-aside.rd-navbar-static .rd-nav-item.focus > .rd-navbar-submenu-toggle, .rd-navbar-aside.rd-navbar-static .rd-nav-item.opened .rd-nav-link,
+.rd-navbar-aside.rd-navbar-static .rd-nav-item.opened > .rd-navbar-submenu-toggle, .rd-navbar-aside.rd-navbar-static .rd-nav-item.active .rd-nav-link,
+.rd-navbar-aside.rd-navbar-static .rd-nav-item.active > .rd-navbar-submenu-toggle {
+ color: #4849b8;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-nav-item .rd-nav-link,
+.rd-navbar-aside.rd-navbar-static .rd-nav-item > .rd-navbar-submenu-toggle {
+ font-size: 18px;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-nav-item + .rd-nav-item {
+ border-top: 1px solid rgba(255, 255, 255, 0.2);
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-nav-item:last-child {
+ border-bottom: 1px solid rgba(255, 255, 255, 0.2);
+ margin-bottom: 30px;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-nav-link {
+ display: block;
+ max-width: calc(100% - 30px);
+ word-break: break-all;
+ font-size: 18px;
+ line-height: 1.4;
+ text-transform: uppercase;
+ color: #E7E7E7;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-nav-link:hover {
+ color: #4849b8;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-submenu .opened > .rd-navbar-submenu-toggle::after {
+ transform: rotate(180deg);
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-submenu > .rd-navbar-dropdown,
+.rd-navbar-aside.rd-navbar-static .rd-navbar-submenu > .rd-navbar-megamenu {
+ display: none;
+ opacity: 0;
+ visibility: hidden;
+ will-change: opacity, visibility;
+ transition: opacity .2s;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-submenu.opened > .rd-navbar-dropdown,
+.rd-navbar-aside.rd-navbar-static .rd-navbar-submenu.opened > .rd-navbar-megamenu {
+ position: relative;
+ display: block;
+ opacity: 1;
+ visibility: visible;
+ background: transparent;
+ border: none;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-submenu > .rd-navbar-submenu > .rd-navbar-dropdown,
+.rd-navbar-aside.rd-navbar-static .rd-navbar-submenu > .rd-navbar-submenu > .rd-navbar-megamenu {
+ transform: translateY(30px);
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-submenu > .rd-navbar-submenu.opened > .rd-navbar-dropdown,
+.rd-navbar-aside.rd-navbar-static .rd-navbar-submenu > .rd-navbar-submenu.opened > .rd-navbar-megamenu {
+ transform: translateY(0);
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-submenu > .rd-navbar-submenu .rd-navbar-submenu > .rd-navbar-dropdown {
+ transform: translateX(-20px);
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-submenu > .rd-navbar-submenu .rd-navbar-submenu.opened > .rd-navbar-dropdown {
+ transform: translateX(0);
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-nav-item > .rd-navbar-submenu-toggle,
+.rd-navbar-aside.rd-navbar-static .rd-nav-item .rd-navbar--has-dropdown > .rd-navbar-submenu-toggle {
+ position: absolute;
+ top: 0;
+ right: 0;
+ padding-top: inherit;
+ padding-right: inherit;
+ padding-left: 10px;
+ margin-bottom: inherit;
+ display: inline-block;
+ width: 30px;
+ margin-left: 5px;
+ text-align: center;
+ cursor: pointer;
+ color: #ffffff;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-nav-item > .rd-navbar-submenu-toggle:hover,
+.rd-navbar-aside.rd-navbar-static .rd-nav-item .rd-navbar--has-dropdown > .rd-navbar-submenu-toggle:hover {
+ color: #4849b8;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-nav-item .rd-navbar--has-dropdown > .rd-navbar-submenu-toggle {
+ font-size: 14px;
+ color: #E7E7E7;
+ margin-left: 7px;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-menu {
+ margin-top: 31px;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-dropdown,
+.rd-navbar-aside.rd-navbar-static .rd-megamenu-list {
+ font-size: 14px;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-dropdown li > a,
+.rd-navbar-aside.rd-navbar-static .rd-megamenu-list li > a {
+ position: relative;
+ left: -3px;
+ display: flex;
+ padding: 1px 14px 1px 0;
+ text-align: left;
+ text-transform: uppercase;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-dropdown li > a, .rd-navbar-aside.rd-navbar-static .rd-navbar-dropdown li > a:focus, .rd-navbar-aside.rd-navbar-static .rd-navbar-dropdown li > a:active,
+.rd-navbar-aside.rd-navbar-static .rd-megamenu-list li > a,
+.rd-navbar-aside.rd-navbar-static .rd-megamenu-list li > a:focus,
+.rd-navbar-aside.rd-navbar-static .rd-megamenu-list li > a:active {
+ color: #9b9b9b;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-dropdown li > a:hover,
+.rd-navbar-aside.rd-navbar-static .rd-megamenu-list li > a:hover {
+ color: #4849b8;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-dropdown li > a, .rd-navbar-aside.rd-navbar-static .rd-navbar-dropdown li > a::before,
+.rd-navbar-aside.rd-navbar-static .rd-megamenu-list li > a,
+.rd-navbar-aside.rd-navbar-static .rd-megamenu-list li > a::before {
+ transition: .15s ease-in-out;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-dropdown li > a::before,
+.rd-navbar-aside.rd-navbar-static .rd-megamenu-list li > a::before {
+ position: relative;
+ top: -1px;
+ left: -6px;
+ display: inline-block;
+ content: '\f105';
+ font-family: 'FontAwesome';
+ font-size: inherit;
+ line-height: inherit;
+ color: #4849b8;
+ opacity: 0;
+ visibility: hidden;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-dropdown li.focus > a,
+.rd-navbar-aside.rd-navbar-static .rd-navbar-dropdown li.opened > a,
+.rd-navbar-aside.rd-navbar-static .rd-navbar-dropdown li > a:hover,
+.rd-navbar-aside.rd-navbar-static .rd-megamenu-list li.focus > a,
+.rd-navbar-aside.rd-navbar-static .rd-megamenu-list li.opened > a,
+.rd-navbar-aside.rd-navbar-static .rd-megamenu-list li > a:hover {
+ left: 0;
+ padding-left: 14px;
+ padding-right: 0;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-dropdown li.focus > a::before,
+.rd-navbar-aside.rd-navbar-static .rd-navbar-dropdown li.opened > a::before,
+.rd-navbar-aside.rd-navbar-static .rd-navbar-dropdown li > a:hover::before,
+.rd-navbar-aside.rd-navbar-static .rd-megamenu-list li.focus > a::before,
+.rd-navbar-aside.rd-navbar-static .rd-megamenu-list li.opened > a::before,
+.rd-navbar-aside.rd-navbar-static .rd-megamenu-list li > a:hover::before {
+ left: -7px;
+ opacity: 1;
+ visibility: visible;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-megamenu {
+ max-width: 450px;
+ padding: 30px 15px;
+ margin-bottom: -30px;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-megamenu > * {
+ margin-bottom: 30px;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-megamenu > li {
+ display: inline-block;
+ vertical-align: top;
+ width: 45%;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-megamenu li + li {
+ padding-left: 0;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-megamenu-title {
+ display: none;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-megamenu-list {
+ margin-top: 0;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-megamenu-list > li + li {
+ margin-top: 10px;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-dropdown .rd-navbar--has-dropdown > a {
+ padding-right: 0;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-dropdown .rd-navbar--has-dropdown > a::before {
+ display: none;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-dropdown .rd-navbar--has-dropdown > a:hover {
+ padding-left: 0;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-dropdown .rd-navbar--has-dropdown.focus > a {
+ padding-left: 0;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-dropdown .rd-navbar--has-dropdown.opened > .rd-navbar-submenu-toggle {
+ color: #4849b8;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-dropdown .rd-navbar--has-dropdown.opened > .rd-navbar-submenu-toggle::after {
+ top: 1px;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-navbar-dropdown > li + li {
+ margin-top: 10px;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-nav-item > .rd-navbar-dropdown {
+ margin-top: 25px;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-nav-item > .rd-navbar-dropdown .rd-navbar-dropdown {
+ margin-top: 10px;
+ padding-left: 15px;
+}
+
+.rd-navbar-aside.rd-navbar-static .rd-nav-item > .rd-navbar-dropdown .rd-navbar-dropdown > li > a {
+ font-size: 12px;
+}
+
+@media (min-width: 1200px) {
+ .rd-navbar-aside.rd-navbar-static .rd-navbar-megamenu {
+ margin-bottom: -30px;
+ }
+ .rd-navbar-aside.rd-navbar-static .rd-navbar-megamenu > * {
+ margin-bottom: 30px;
+ }
+ .rd-navbar-aside.rd-navbar-static .rd-navbar-dropdown > li + li,
+ .rd-navbar-aside.rd-navbar-static .rd-megamenu-list > li + li {
+ margin-top: 18px;
+ }
+}
+
+@media (min-width: 1800px) {
+ .rd-navbar-aside.rd-navbar-static .rd-navbar-nav-wrap {
+ width: auto;
+ left: calc(50% + 600px - 80px);
+ }
+}
+
+.rd-navbar-aside.rd-navbar-static.rd-navbar--is-clone {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ z-index: 1000;
+ transform: translateY(-101%);
+}
+
+.rd-navbar-aside.rd-navbar-static.rd-navbar--is-clone.rd-navbar--is-stuck {
+ transform: translateY(0);
+}
+
+.rd-navbar-aside.rd-navbar-static.rd-navbar--is-stuck {
+ position: fixed;
+ left: 0;
+ right: 0;
+ top: 0;
+ z-index: 1070;
+ box-shadow: 0 2px 10px 1px rgba(0, 0, 0, 0.1);
+}
+
+.rd-navbar-aside.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-main {
+ padding-top: 11px;
+ padding-bottom: 11px;
+}
+
+.rd-navbar-aside.rd-navbar-fixed .nav-list {
+ display: none;
+}
+
+.rd-navbar-aside.rd-navbar-fixed .rd-navbar-nav-wrap > .button {
+ margin-left: 15px;
+}
+
+/*
+*
+* Swiper
+*/
+.swiper-container {
+ display: flex;
+ margin: 0 auto;
+ position: relative;
+ overflow: hidden;
+ height: auto;
+ width: 100%;
+ /* Fix of Webkit flickering */
+ z-index: 1;
+}
+
+.swiper-container-no-flexbox .swiper-slide {
+ float: left;
+}
+
+.swiper-container-vertical > .swiper-wrapper {
+ flex-direction: column;
+}
+
+.swiper-wrapper {
+ position: relative;
+ z-index: 1;
+ display: flex;
+ align-self: stretch;
+ align-items: stretch;
+ width: 100%;
+ height: auto;
+ min-height: inherit;
+ transition-property: transform;
+ box-sizing: content-box;
+}
+
+.swiper-container {
+ flex-shrink: 0;
+}
+
+.swiper-container-android .swiper-slide,
+.swiper-wrapper {
+ transform: translate3d(0, 0, 0);
+}
+
+.swiper-container-multirow > .swiper-wrapper {
+ flex-wrap: wrap;
+}
+
+.swiper-container-free-mode > .swiper-wrapper {
+ transition-timing-function: ease-out;
+ margin: 0 auto;
+}
+
+/* a11y */
+.swiper-container .swiper-notification {
+ position: absolute;
+ left: 0;
+ top: 0;
+ pointer-events: none;
+ opacity: 0;
+ z-index: -1000;
+}
+
+/* IE10 Windows Phone 8 Fixes */
+.swiper-wp8-horizontal {
+ touch-action: pan-y;
+}
+
+.swiper-wp8-vertical {
+ touch-action: pan-x;
+}
+
+/* Coverflow */
+.swiper-container-coverflow .swiper-wrapper {
+ /* Windows 8 IE 10 fix */
+}
+
+.swiper-container-fade.swiper-container-free-mode .swiper-slide {
+ transition-timing-function: ease-out;
+}
+
+.swiper-container-fade .swiper-slide {
+ pointer-events: none;
+}
+
+.swiper-container-fade .swiper-slide .swiper-slide {
+ pointer-events: none;
+}
+
+.swiper-container-fade .swiper-slide-active,
+.swiper-container-fade .swiper-slide-active .swiper-slide-active {
+ pointer-events: auto;
+}
+
+.swiper-lazy-preloader {
+ width: 42px;
+ height: 42px;
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ margin-left: -21px;
+ margin-top: -21px;
+ z-index: 10;
+ transform-origin: 50%;
+ animation: swiper-preloader-spin 1s steps(12, end) infinite;
+}
+
+.swiper-lazy-preloader:after {
+ display: block;
+ content: "";
+ width: 100%;
+ height: 100%;
+ background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
+ background-position: 50%;
+ background-size: 100%;
+ background-repeat: no-repeat;
+}
+
+.swiper-lazy-preloader-white:after {
+ background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%23fff'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
+}
+
+@keyframes swiper-preloader-spin {
+ 100% {
+ transform: rotate(360deg);
+ }
+}
+
+.swiper-slide > .vide__body,
+.swiper-slide > .parallax_cnt {
+ height: 100%;
+}
+
+.swiper-button-prev,
+.swiper-button-next {
+ position: absolute;
+ top: 50%;
+ transform: translateY(-50%);
+ display: none;
+ font-size: 26px;
+ line-height: 1;
+ color: #ffffff;
+ text-align: center;
+ cursor: pointer;
+ transition: .2s ease-in;
+ will-change: transform;
+ z-index: 10;
+}
+
+.swiper-button-prev:hover,
+.swiper-button-next:hover {
+ color: #4849b8;
+}
+
+@media (min-width: 992px) {
+ .swiper-button-prev,
+ .swiper-button-next {
+ display: block;
+ }
+}
+
+.swiper-button-prev.swiper-button-disabled,
+.swiper-button-next.swiper-button-disabled {
+ opacity: 0.35;
+ cursor: auto;
+ pointer-events: none;
+}
+
+.swiper-button-prev {
+ left: 30px;
+}
+
+.swiper-button-prev:before {
+ font-family: 'Linearicons';
+ content: "\ec43";
+}
+
+.swiper-button-next {
+ right: 30px;
+}
+
+.swiper-button-next:before {
+ font-family: 'Linearicons';
+ content: "\ec44";
+}
+
+.swiper-slider.swiper-container-rtl .swiper-button-prev::before {
+ content: "\f061";
+}
+
+.swiper-slider.swiper-container-rtl .swiper-button-next::before {
+ content: "\f060";
+}
+
+.swiper-pagination {
+ position: absolute;
+ display: block;
+ text-align: center;
+ transition: .3s;
+ transform: translate3d(0, 0, 0);
+ z-index: 10;
+}
+
+.swiper-pagination.swiper-pagination-hidden {
+ opacity: 0;
+}
+
+.swiper-pagination .swiper-pagination-bullet {
+ width: 14px;
+ height: 14px;
+ display: inline-block;
+ border-radius: 100%;
+ background: rgba(255, 255, 255, 0.6);
+ transition: .2s;
+}
+
+.swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active, .swiper-pagination .swiper-pagination-bullet:hover {
+ background: white;
+}
+
+.swiper-pagination.swiper-pagination-clickable .swiper-pagination-bullet {
+ cursor: pointer;
+}
+
+.swiper-pagination-black .swiper-pagination-bullet {
+ background: rgba(0, 0, 0, 0.6);
+}
+
+.swiper-pagination-black .swiper-pagination-bullet.swiper-pagination-bullet-active {
+ background: black;
+}
+
+.swiper-container-vertical > .swiper-pagination {
+ right: 10px;
+ top: 50%;
+ transform: translate3d(0px, -50%, 0);
+}
+
+.swiper-container-vertical > .swiper-pagination .swiper-pagination-bullet {
+ margin: 5px 0;
+ display: block;
+}
+
+.swiper-container-horizontal > .swiper-pagination {
+ bottom: 20px;
+ left: 0;
+ width: 100%;
+}
+
+.swiper-container-horizontal > .swiper-pagination .swiper-pagination-bullet {
+ margin: 0 10px;
+}
+
+.swiper-slide {
+ position: relative;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-shrink: 0;
+ width: 100%;
+ height: 100%;
+ white-space: nowrap;
+}
+
+.swiper-slide-caption {
+ width: 100%;
+ white-space: normal;
+}
+
+.swiper-slider-1 {
+ min-height: 40.10417vw;
+}
+
+@media (min-width: 992px) {
+ .swiper-slider-1 {
+ min-height: 100vh;
+ }
+}
+
+@media (min-width: 992px) {
+ .swiper-slider-1 .swiper-pagination {
+ display: none;
+ }
+}
+
+.swiper-slider-1 .swiper-slide-caption {
+ padding-bottom: 100px;
+}
+
+.swiper-slider-1 .swiper-slide-caption .container {
+ overflow: hidden;
+}
+
+.swiper-slider-1 .swiper-slide-caption h5 {
+ font-weight: 400;
+ letter-spacing: .08em;
+ text-transform: uppercase;
+}
+
+.swiper-slider-1 .swiper-slide-caption * + .button {
+ margin-top: 15px;
+}
+
+@media (min-width: 992px) {
+ .swiper-slider-1 .swiper-slide-caption * + .button {
+ margin-top: 30px;
+ }
+}
+
+.swiper-slider-1 .swiper-slide-caption * + .divider {
+ margin-top: 20px;
+}
+
+@media (min-width: 992px) {
+ .swiper-slider-1 .swiper-slide-caption * + .divider {
+ margin-top: 40px;
+ }
+}
+
+.swiper-slider-1 .swiper-slide-caption .divider:after {
+ width: 90px;
+ height: 1px;
+ background: rgba(255, 255, 255, 0.8);
+}
+
+.swiper-slider-1 .swiper-slide-caption .text-accent-3 {
+ transition: all .3s;
+}
+
+.swiper-slider-1 .swiper-slide-caption .text-accent-3.icon-gradient-2 {
+ color: #F73CA1;
+}
+
+.swiper-slider-1 .swiper-slide-caption * + h2 {
+ margin-top: 20px;
+}
+
+@media (min-width: 992px) {
+ .swiper-slider-1 .swiper-slide-caption * + h2 {
+ margin-top: 40px;
+ }
+}
+
+.swiper-slider-1 .swiper-slide-caption h1 {
+ font-size: 70px;
+ line-height: 1.1;
+ letter-spacing: .03em;
+}
+
+@media (min-width: 768px) {
+ .swiper-slider-1 .swiper-slide-caption h1 {
+ font-size: 100px;
+ }
+}
+
+@media (min-width: 992px) {
+ .swiper-slider-1 .swiper-slide-caption h1 {
+ font-size: 130px;
+ }
+}
+
+@media (min-width: 1200px) {
+ .swiper-slider-1 .swiper-slide-caption h1 {
+ font-size: 160px;
+ }
+}
+
+.swiper-slider-1 .swiper-slide-caption .swiper-video-block {
+ text-align: center;
+ max-width: 130px;
+}
+
+.swiper-slider-1 .swiper-slide-caption .swiper-video-block * + .heading-4 {
+ margin-top: 10px;
+}
+
+.swiper-slider-1 .swiper-slide-caption .swiper-video-block .icon {
+ transition: all .3s;
+}
+
+.swiper-slider-1 .swiper-slide-caption .swiper-video-block .heading-4 {
+ display: block;
+ color: rgba(255, 255, 255, 0.5);
+ font-style: italic;
+ font-weight: 900;
+ letter-spacing: .03em;
+ line-height: 1.2;
+ transition: all .3s;
+}
+
+.swiper-slider-1 .swiper-slide-caption .swiper-video-block a:hover .icon {
+ color: #4849b8;
+}
+
+.swiper-slider-1 .swiper-slide-caption .swiper-video-block a:hover .heading-4 {
+ color: #ffffff;
+}
+
+@media (min-width: 992px) {
+ .swiper-counter {
+ position: absolute;
+ top: 50%;
+ right: 70px;
+ transform: translateY(-50%);
+ font-size: 18px;
+ font-weight: 400;
+ color: #ffffff;
+ z-index: 2;
+ }
+}
+
+.google-map-markers {
+ display: none;
+}
+
+.google-map-container {
+ width: 100%;
+}
+
+.google-map {
+ height: 250px;
+ width: 100%;
+ height: 250px;
+}
+
+@media (min-width: 768px) {
+ .google-map {
+ height: 400px;
+ }
+}
+
+@media (min-width: 992px) {
+ .google-map {
+ height: 530px;
+ }
+}
+
+/*
+*
+* Isotope
+*/
+@keyframes sprite-animation {
+ from {
+ background-position: 0 0;
+ }
+}
+
+[data-isotope-layout] {
+ z-index: 0;
+ display: block;
+ min-height: 160px;
+ margin-left: -15px;
+ margin-right: -15px;
+ transition: .4s all ease;
+}
+
+[data-isotope-layout] .row {
+ transform: translateY(-30px);
+}
+
+[data-isotope-layout] .row > [class*="col-"] {
+ margin-bottom: 30px;
+}
+
+[data-isotope-layout] .row-narrow {
+ margin-bottom: -30px;
+}
+
+[data-isotope-layout] .row-narrow > [class*="col-"] {
+ margin-top: 30px;
+}
+
+[data-isotope-layout] .row-condensed {
+ margin-bottom: 0;
+ transform: translateY(0);
+}
+
+[data-isotope-layout] .row-condensed > [class*="col-"] {
+ margin-bottom: 0;
+}
+
+[data-isotope-layout] [class*="col-"] {
+ display: block;
+ will-change: transform;
+ backface-visibility: hidden;
+ transition: .1s opacity ease-in;
+}
+
+@media (max-width: 575.98px) {
+ [data-isotope-layout] [class*="col-"] {
+ max-width: 100%;
+ }
+}
+
+.isotope-filters > * {
+ margin-top: 0;
+ vertical-align: middle;
+}
+
+.isotope-filters .inline-list {
+ position: relative;
+ word-spacing: 0;
+}
+
+.isotope-filters .inline-list li {
+ display: inline-block;
+}
+
+.isotope-filters .inline-list a {
+ position: relative;
+ transition: .3s;
+ color: #E7E7E7;
+}
+
+.isotope-filters .inline-list .isotope-filters-trigger {
+ display: none;
+}
+
+.isotope-filters-modern .inline-list {
+ margin-left: -10px;
+ margin-right: -10px;
+}
+
+.isotope-filters-modern .inline-list > * {
+ margin-top: 10px;
+ padding-left: 10px;
+ padding-right: 10px;
+}
+
+.isotope-filters-modern .inline-list > li {
+ font-family: "PT Serif", "Times New Roman", Times, serif;
+ font-size: 18px;
+}
+
+.isotope-filters-modern .inline-list a {
+ position: relative;
+ padding-bottom: 10px;
+}
+
+.isotope-filters-modern .inline-list a::after {
+ content: '';
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ width: 0;
+ height: 2px;
+ transition: .4s;
+ background: #4849b8;
+}
+
+.isotope-filters-modern .inline-list a:hover {
+ color: #4849b8;
+}
+
+.isotope-filters-modern .inline-list a.active::after {
+ width: 100%;
+}
+
+@media (min-width: 992px) {
+ .isotope-filters-modern .inline-list {
+ margin-left: -23px;
+ margin-right: -23px;
+ }
+ .isotope-filters-modern .inline-list > * {
+ margin-top: 10px;
+ padding-left: 23px;
+ padding-right: 23px;
+ }
+}
+
+.isotope-modern-wrap [class*='col'] {
+ margin-top: 30px;
+}
+
+@media (max-width: 767.98px) {
+ .isotope-modern-wrap [class*='col'] {
+ width: 100%;
+ max-width: 100%;
+ }
+}
+
+@media (min-width: 992px) {
+ html:not(.tablet):not(.mobile) .isotope-modern-wrap [class*='col'] {
+ margin-top: 0;
+ }
+}
+
+.isotope-condensed {
+ margin-left: 0;
+ margin-right: 0;
+}
+
+.isotope-condensed .row > * {
+ margin-top: -1px;
+ margin-bottom: -1px;
+}
+
+* + .isotope {
+ margin-top: 0;
+}
+
+* + .isotope-condensed {
+ margin-top: 30px;
+}
+
+@media (max-width: 991.98px) {
+ .isotope-condensed {
+ padding: 0 0 30px;
+ margin-left: 0;
+ margin-right: 0;
+ }
+ .isotope-condensed .row.row-condensed > [class*='col'] {
+ padding-left: 10px;
+ padding-right: 10px;
+ }
+ .isotope-condensed .row.row-condensed > [class*='col'] + [class*='col'] {
+ margin-top: 25px;
+ }
+}
+
+@media (min-width: 768px) {
+ * + .isotope {
+ margin-top: 28px;
+ }
+ * + .isotope-condensed {
+ margin-top: 50px;
+ }
+}
+
+.tabs-custom {
+ text-align: left;
+}
+
+.tabs-custom .nav-tabs {
+ font-size: 0;
+ line-height: 0;
+ word-spacing: 0;
+ border: 0;
+}
+
+.tabs-custom .nav-tabs:before, .tabs-custom .nav-tabs:after {
+ display: none;
+}
+
+.tabs-custom .nav-item {
+ float: none;
+ border: 0;
+ cursor: pointer;
+ transition: .33s all ease;
+}
+
+.tabs-custom .nav-link {
+ margin: 0;
+ border-radius: 0;
+ border: 0;
+}
+
+.tabs-custom .nav-link.active {
+ cursor: default;
+ border: 0;
+}
+
+.tab-content > .tab-pane {
+ display: block;
+ visibility: hidden;
+ height: 0;
+ overflow: hidden;
+}
+
+.tab-content > .active {
+ visibility: visible;
+ height: auto;
+ overflow: visible;
+}
+
+* + .tabs-horizontal.tabs-corporate {
+ margin-top: 25px;
+}
+
+* + .tabs-vertical.tabs-corporate {
+ margin-top: 40px;
+}
+
+@media (min-width: 768px) {
+ * + .tabs-vertical.tabs-corporate {
+ margin-top: 60px;
+ }
+}
+
+@media (min-width: 1200px) {
+ * + .tabs-vertical.tabs-corporate {
+ margin-top: 80px;
+ }
+}
+
+.tabs-line .nav-tabs {
+ position: relative;
+}
+
+.tabs-line .nav-link {
+ text-transform: uppercase;
+ font-size: 13px;
+ font-weight: 500;
+ line-height: 1.4;
+ text-align: center;
+ vertical-align: middle;
+}
+
+.tabs-line * + .tab-content {
+ margin-top: 20px;
+}
+
+@media (max-width: 991.98px) {
+ .tabs-line .nav-tabs {
+ max-width: 100%;
+ border: 1px solid #e5e7e9;
+ }
+ .tabs-line .nav-item {
+ margin: -1px;
+ }
+ .tabs-line .nav-link {
+ padding: 7px 10px;
+ color: rgba(21, 21, 21, 0.8);
+ background: transparent;
+ border-bottom: 1px solid #e5e7e9;
+ }
+ .tabs-line .nav-link:first-child {
+ border-top: 1px solid #e5e7e9;
+ }
+ .tabs-line .nav-link:hover,
+ .tabs-line .nav-link.active {
+ color: #ffffff;
+ background: #4849b8;
+ border-color: #4849b8;
+ }
+}
+
+.tabs-corporate .nav-tabs {
+ position: relative;
+ border: 1px solid #e5e7e9;
+}
+
+.tabs-corporate .nav-item {
+ margin: -1px;
+}
+
+.tabs-corporate .nav-link {
+ padding: 10px 10px;
+ text-transform: uppercase;
+ font-size: 12px;
+ font-weight: 700;
+ line-height: 1.4;
+ color: rgba(21, 21, 21, 0.8);
+ background: transparent;
+ border-bottom: 1px solid #e5e7e9;
+ text-align: center;
+ vertical-align: middle;
+}
+
+.tabs-corporate .nav-link:first-child {
+ border-top: 1px solid #e5e7e9;
+}
+
+.tabs-corporate .nav-link:hover,
+.tabs-corporate .nav-link.active {
+ color: #ffffff;
+ background: #4849b8;
+ border-color: #4849b8;
+}
+
+.tabs-corporate .tab-content {
+ padding: 30px 0 0;
+}
+
+@media (min-width: 768px) {
+ .tabs-horizontal.tabs-corporate .nav-tabs {
+ position: relative;
+ width: 100%;
+ display: block;
+ margin-left: -5px;
+ margin-right: -5px;
+ text-align: center;
+ border: 0;
+ will-change: transform;
+ }
+ .tabs-horizontal.tabs-corporate .nav-tabs > * {
+ margin-top: 10px;
+ padding-left: 5px;
+ padding-right: 5px;
+ }
+ .tabs-horizontal.tabs-corporate .nav-item {
+ display: inline-block;
+ will-change: transform;
+ }
+ .tabs-horizontal.tabs-corporate .nav-link {
+ display: block;
+ position: relative;
+ z-index: 1;
+ min-width: 130px;
+ letter-spacing: .1em;
+ padding: 13px 20px;
+ border: 2px solid #e5e7e9;
+ }
+ .tabs-horizontal.tabs-corporate .nav-link, .tabs-horizontal.tabs-corporate .nav-link::before {
+ transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
+ }
+ .tabs-horizontal.tabs-corporate .nav-link::before {
+ content: '';
+ position: absolute;
+ top: -1px;
+ left: -1px;
+ width: calc(100% + 2px);
+ height: calc(100% + 2px);
+ z-index: -1;
+ opacity: 0;
+ transform: scale3d(0.7, 1, 1);
+ transition: transform 0.4s, opacity 0.4s;
+ transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
+ background: #4849b8;
+ }
+ .tabs-horizontal.tabs-corporate .nav-link.active,
+ .tabs-horizontal.tabs-corporate .nav-link:hover {
+ color: #ffffff;
+ border-color: #4849b8;
+ background-color: transparent;
+ }
+ .tabs-horizontal.tabs-corporate .nav-link.active::before,
+ .tabs-horizontal.tabs-corporate .nav-link:hover::before {
+ opacity: 1;
+ transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
+ }
+ .tabs-horizontal.tabs-line .nav-tabs {
+ border: 0;
+ border-bottom: 4px solid #d7d7d7;
+ }
+ .tabs-horizontal.tabs-line .nav-item {
+ display: inline-block;
+ }
+ .tabs-horizontal.tabs-line .nav-item:not(:last-child) {
+ margin-right: 52px;
+ }
+ .tabs-horizontal.tabs-line .nav-link {
+ position: relative;
+ padding: 0 0 15px 0;
+ background-color: transparent;
+ color: #9b9b9b;
+ border: 0;
+ }
+ .tabs-horizontal.tabs-line .nav-link::after {
+ content: '';
+ position: absolute;
+ bottom: -4px;
+ left: 0;
+ height: 4px;
+ width: 0;
+ background: #4849b8;
+ transition: .22s ease;
+ }
+ .tabs-horizontal.tabs-line .nav-link.active,
+ .tabs-horizontal.tabs-line .nav-link:hover {
+ color: #E7E7E7;
+ }
+ .tabs-horizontal.tabs-line .nav-link.active::after {
+ width: 100%;
+ }
+ .tabs-horizontal.tabs-line * + .tab-content {
+ margin-top: 30px;
+ }
+ .tabs-vertical {
+ display: flex;
+ align-items: flex-start;
+ }
+ .tabs-vertical .nav-tabs {
+ display: flex;
+ flex-direction: column;
+ align-items: stretch;
+ flex-shrink: 0;
+ max-width: 50%;
+ }
+ .tabs-vertical .nav-item {
+ border: 0;
+ width: 100%;
+ text-align: left;
+ }
+ .tabs-vertical .nav-link.active,
+ .tabs-vertical .nav-link:hover {
+ box-shadow: 0 9px 21px 0 rgba(30, 30, 30, 0.13);
+ }
+ .tabs-vertical .tab-content {
+ flex-grow: 1;
+ }
+ .tabs-vertical.tabs-corporate .nav-tabs {
+ width: auto;
+ min-width: 260px;
+ border: 0;
+ }
+ .tabs-vertical.tabs-corporate .nav-item {
+ margin: 0;
+ }
+ .tabs-vertical.tabs-corporate .nav-link {
+ position: relative;
+ padding: 17px 30px;
+ border: 0;
+ overflow: hidden;
+ text-align: left;
+ }
+ .tabs-vertical.tabs-corporate .nav-item + .nav-item {
+ margin-top: 2px;
+ }
+ .tabs-vertical.tabs-corporate .tab-content {
+ padding: 0 0 0 30px;
+ }
+}
+
+@media (min-width: 992px) {
+ .tabs-horizontal.tabs-corporate .tab-content {
+ padding: 60px 30px 0;
+ }
+ .tabs-vertical.tabs-corporate .tab-content {
+ padding: 0 0 0 45px;
+ }
+}
+
+.tabs-modern .nav-tabs-modern + .button {
+ margin-top: 0;
+}
+
+.button-tabs-modern {
+ display: block;
+ border-radius: 0;
+}
+
+@media (min-width: 992px) {
+ .button-tabs-modern {
+ border-radius: 0 0 20px 0;
+ }
+}
+
+.nav-tabs-modern {
+ flex-direction: column;
+ background: #323232;
+ padding: 30px 25px;
+}
+
+.nav-tabs-modern .nav-item + .nav-item {
+ margin-top: 20px;
+}
+
+@media (min-width: 992px) {
+ .nav-tabs-modern .nav-item + .nav-item {
+ margin-top: 25px;
+ }
+}
+
+.nav-tabs-modern .nav-item {
+ padding-left: 20px;
+}
+
+.nav-tabs-modern .nav-link {
+ position: relative;
+ padding-left: 35px;
+ font-weight: 700;
+ text-transform: uppercase;
+ font-size: 15px;
+ line-height: 1;
+ letter-spacing: .1em;
+ color: rgba(255, 255, 255, 0.4);
+ background: transparent;
+}
+
+.nav-tabs-modern .nav-link:before {
+ position: absolute;
+ content: '\ec44';
+ top: 6px;
+ left: 0;
+ font-family: 'Linearicons';
+ font-size: 20px;
+ color: #ffffff;
+ transition: all .3s;
+ opacity: 0;
+}
+
+.nav-tabs-modern .nav-link:hover, .nav-tabs-modern .nav-link.active {
+ color: #ffffff;
+ background: transparent;
+}
+
+.nav-tabs-modern .nav-link:hover:before, .nav-tabs-modern .nav-link.active:before {
+ opacity: 1;
+}
+
+@media (min-width: 992px) {
+ .nav-tabs-modern {
+ padding-bottom: 100px;
+ }
+ .nav-tabs-modern .nav-link {
+ font-size: 18px;
+ }
+}
+
+.tabs-creative .event-item-classic + .event-item-classic {
+ border-top: none;
+ margin-top: 50px;
+}
+
+.tabs-creative .event-item-classic {
+ box-shadow: 0 0 30px rgba(21, 21, 21, 0.25);
+}
+
+.nav-tabs-cteative-wrap {
+ position: relative;
+ padding-top: 20px;
+ overflow: hidden;
+}
+
+.nav-tabs-cteative-wrap:before {
+ position: absolute;
+ content: '';
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 40px;
+ background: #323232;
+ transform: skewX(-35deg);
+}
+
+.nav-tabs-cteative {
+ padding: 10px 30px 30px;
+ background: #323232;
+ flex-direction: column;
+ text-align: center;
+}
+
+.nav-tabs-cteative .nav-item + .nav-item {
+ margin-top: 20px;
+}
+
+@media (min-width: 768px) {
+ .nav-tabs-cteative {
+ flex-direction: row;
+ justify-content: space-around;
+ padding: 25px 35px 45px;
+ }
+ .nav-tabs-cteative .nav-item + .nav-item {
+ margin-top: 0;
+ }
+}
+
+@media (min-width: 1200px) {
+ .nav-tabs-cteative {
+ padding: 25px 55px 45px;
+ }
+}
+
+.nav-tabs-cteative .nav-link {
+ position: relative;
+ font-weight: 700;
+ text-transform: uppercase;
+ font-size: 15px;
+ letter-spacing: .1em;
+ color: rgba(255, 255, 255, 0.4);
+ background: transparent;
+}
+
+.nav-tabs-cteative .nav-link:hover, .nav-tabs-cteative .nav-link.active {
+ color: #ffffff;
+ background: transparent;
+}
+
+.tabs-creative-title {
+ position: relative;
+ text-align: center;
+}
+
+.tabs-creative-title .title-decorate {
+ display: inline-block;
+ padding-top: 15px;
+ padding-bottom: 20px;
+}
+
+@media (min-width: 992px) {
+ .tabs-creative-title {
+ text-align: right;
+ }
+ .tabs-creative-title:before {
+ position: absolute;
+ content: '';
+ left: 0;
+ top: 0;
+ width: 240px;
+ height: 100px;
+ background: url("../images/bg-dot.png");
+ opacity: .2;
+ }
+ .tabs-creative-title .title-decorate {
+ padding-right: 40px;
+ }
+}
+
+.tabs-classic .tab-content {
+ background: #ffffff;
+ padding: 40px 20px;
+}
+
+@media (min-width: 992px) {
+ .tabs-classic .tab-content {
+ padding: 55px 30px;
+ }
+}
+
+.nav-tabs-classic {
+ padding: 40px 30px;
+ background: #323232;
+ flex-direction: column;
+ text-align: center;
+ border-radius: 10px 10px 0 0;
+}
+
+.nav-tabs-classic .nav-link {
+ position: relative;
+ font-weight: 600;
+ text-transform: uppercase;
+ font-size: 15px;
+ padding: 15px 25px;
+ letter-spacing: 0;
+ color: rgba(255, 255, 255, 0.4);
+ background: transparent;
+}
+
+@media (min-width: 768px) {
+ .nav-tabs-classic .nav-link {
+ padding: 35px 25px;
+ }
+}
+
+.nav-tabs-classic .nav-link:hover, .nav-tabs-classic .nav-link.active {
+ color: #ffffff;
+ background: transparent;
+}
+
+.nav-tabs-classic .nav-link:hover:before, .nav-tabs-classic .nav-link.active:before {
+ opacity: 1;
+}
+
+.nav-tabs-classic .nav-item + .nav-item {
+ margin-top: 20px;
+}
+
+@media (min-width: 768px) {
+ .nav-tabs-classic {
+ flex-direction: row;
+ justify-content: center;
+ padding: 20px 30px;
+ }
+ .nav-tabs-classic .nav-link {
+ font-size: 18px;
+ }
+ .nav-tabs-classic .nav-item + .nav-item {
+ margin-top: 0;
+ margin-left: 30px;
+ }
+}
+
+/*
+*
+* Tooltop Custom
+*/
+.tooltip {
+ font-size: 15px;
+ line-height: 1.2;
+}
+
+/*
+*
+* Owl Carousel
+*/
+.owl-carousel .animated {
+ animation-duration: 1000ms;
+ animation-fill-mode: both;
+}
+
+.owl-carousel .owl-animated-in {
+ z-index: 0;
+}
+
+.owl-carousel .owl-animated-out {
+ z-index: 1;
+}
+
+.owl-carousel .fadeOut {
+ animation-name: fadeOut;
+}
+
+@keyframes fadeOut {
+ 0% {
+ opacity: 1;
+ }
+ 100% {
+ opacity: 0;
+ }
+}
+
+/*
+ * Owl Carousel - Auto Height Plugin
+ */
+.owl-height {
+ transition: height 500ms ease-in-out;
+}
+
+/*
+ * Core Owl Carousel CSS File
+ */
+.owl-carousel {
+ display: none;
+ width: 100%;
+ -webkit-tap-highlight-color: transparent;
+ /* position relative and z-index fix webkit rendering fonts issue */
+ position: relative;
+ z-index: 1;
+}
+
+.owl-carousel .owl-stage {
+ position: relative;
+ -ms-touch-action: pan-Y;
+}
+
+.owl-carousel .owl-stage:after {
+ content: ".";
+ display: block;
+ clear: both;
+ visibility: hidden;
+ line-height: 0;
+ height: 0;
+}
+
+.owl-carousel .owl-stage-outer {
+ position: relative;
+ overflow: hidden;
+ /* fix for flashing background */
+ -webkit-transform: translate3d(0px, 0px, 0px);
+}
+
+.owl-carousel .owl-controls .owl-nav .owl-prev,
+.owl-carousel .owl-controls .owl-nav .owl-next,
+.owl-carousel .owl-controls .owl-dot {
+ cursor: pointer;
+ user-select: none;
+}
+
+.owl-carousel.owl-loaded {
+ display: block;
+}
+
+.owl-carousel.owl-loading {
+ opacity: 0;
+ display: block;
+}
+
+.owl-carousel.owl-hidden {
+ opacity: 0;
+}
+
+.owl-carousel .owl-refresh .owl-item {
+ display: none;
+}
+
+.owl-carousel .owl-item {
+ position: relative;
+ min-height: 1px;
+ float: left;
+ -webkit-tap-highlight-color: transparent;
+ -webkit-touch-callout: none;
+}
+
+.owl-carousel .owl-grab {
+ cursor: move;
+ cursor: -webkit-grab;
+ cursor: grab;
+}
+
+.owl-carousel.owl-rtl {
+ direction: rtl;
+}
+
+.owl-carousel.owl-rtl .owl-item {
+ float: right;
+}
+
+/* No Js */
+.no-js .owl-carousel {
+ display: block;
+}
+
+/*
+ * Owl Carousel - Lazy Load Plugin
+ */
+.owl-carousel .owl-item .owl-lazy {
+ opacity: 0;
+ transition: opacity 400ms ease;
+}
+
+/*
+ * Owl Carousel - Video Plugin
+ */
+.owl-carousel .owl-video-wrapper {
+ position: relative;
+ height: 100%;
+ background: #000000;
+}
+
+.owl-carousel .owl-video-play-icon {
+ position: absolute;
+ height: 80px;
+ width: 80px;
+ left: 50%;
+ top: 50%;
+ margin-left: -40px;
+ margin-top: -40px;
+ font: 400 40px/80px 'FontAwesome';
+ cursor: pointer;
+ z-index: 1;
+ transition: scale 100ms ease;
+}
+
+.owl-carousel .owl-video-play-icon:before {
+ content: '\f144';
+}
+
+.owl-carousel .owl-video-play-icon:hover {
+ transform: scale(1.3);
+}
+
+.owl-carousel .owl-video-playing .owl-video-tn,
+.owl-carousel .owl-video-playing .owl-video-play-icon {
+ display: none;
+}
+
+.owl-carousel .owl-video-tn {
+ opacity: 0;
+ height: 100%;
+ background-position: center center;
+ background-repeat: no-repeat;
+ background-size: contain;
+ transition: opacity 400ms ease;
+}
+
+.owl-carousel .owl-video-frame {
+ position: relative;
+ z-index: 1;
+}
+
+/*
+ * Owl Navigation
+ */
+.owl-nav.disabled {
+ display: none !important;
+}
+
+.owl-prev,
+.owl-next {
+ position: absolute;
+ top: 50%;
+ transform: translateY(-50%);
+ font: 400 46px/50px 'FontAwesome';
+ color: #E7E7E7;
+}
+
+.owl-prev:hover,
+.owl-next:hover {
+ color: #4849b8;
+}
+
+.owl-prev {
+ left: 0;
+}
+
+.owl-prev::before {
+ content: '\f104';
+}
+
+.owl-next {
+ right: 0;
+}
+
+.owl-next::before {
+ content: '\f105';
+}
+
+/*
+ * Owl Pagination
+ */
+.owl-dots {
+ text-align: center;
+ margin-top: 30px;
+}
+
+.owl-dots.disabled {
+ display: none !important;
+}
+
+@media (min-width: 768px) {
+ .owl-dots {
+ margin-top: 40px;
+ }
+}
+
+.dots-offset-lg .owl-dots {
+ margin-top: 40px;
+}
+
+@media (min-width: 992px) {
+ .dots-offset-lg .owl-dots {
+ margin-top: 60px;
+ }
+}
+
+.owl-dot {
+ position: relative;
+ display: inline-block;
+ width: 12px;
+ height: 12px;
+ border: 2px solid;
+ border-radius: 50%;
+ margin-left: 15px;
+ margin-right: 15px;
+ text-align: center;
+ outline: none;
+ cursor: pointer;
+ transition: .2s;
+}
+
+.owl-dot:only-child {
+ display: none;
+}
+
+.owl-dot, .owl-dot:focus {
+ border-color: #C4C4C4;
+ background-color: #C4C4C4;
+}
+
+.owl-dot:hover, .owl-dot.active {
+ border-color: #4849b8;
+ background-color: #4849b8;
+}
+
+.owl-carousel.owl-carousel-light-dots .owl-dot {
+ border-color: #ffffff;
+}
+
+.owl-carousel.owl-carousel-light-dots .owl-dot:hover, .owl-carousel.owl-carousel-light-dots .owl-dot:focus {
+ background-color: #ffffff;
+}
+
+.owl-carousel.owl-carousel-light-dots .owl-dot.active {
+ background-color: #ffffff;
+}
+
+.owl-dots-secondary .owl-dot {
+ border: none;
+ background: rgba(255, 255, 255, 0.3);
+}
+
+.owl-dots-secondary .owl-dot:hover, .owl-dots-secondary .owl-dot:focus {
+ background-color: #FFD541;
+}
+
+.owl-dots-secondary .owl-dot.active {
+ background-color: #FFD541;
+}
+
+.owl-dots-dark .owl-dot {
+ border: none;
+ background: #C4C4C4;
+}
+
+.owl-dots-dark .owl-dot:hover, .owl-dots-dark .owl-dot:focus {
+ background-color: #151515;
+}
+
+.owl-dots-dark .owl-dot.active {
+ background-color: #151515;
+}
+
+.lg-sub-html, .lg-toolbar {
+ background-color: rgba(0, 0, 0, 0.45);
+}
+
+@font-face {
+ font-family: lg;
+ src: url(../fonts/lg.eot?n1z373);
+ src: url(../fonts/lg.eot?#iefixn1z373) format("embedded-opentype"), url(../fonts/lg.woff?n1z373) format("woff"), url(../fonts/lg.ttf?n1z373) format("truetype"), url(../fonts/lg.svg?n1z373#lg) format("svg");
+ font-weight: 400;
+ font-style: normal;
+}
+
+.lg-icon {
+ font-family: lg;
+ speak: none;
+ font-style: normal;
+ font-weight: 400;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+.lg-actions .lg-next, .lg-actions .lg-prev {
+ background-color: rgba(0, 0, 0, 0.45);
+ border-radius: 2px;
+ color: #999999;
+ cursor: pointer;
+ display: block;
+ font-size: 22px;
+ margin-top: -10px;
+ padding: 8px 10px 9px;
+ position: absolute;
+ top: 50%;
+ z-index: 1080;
+ border: none;
+ outline: 0;
+}
+
+.lg-actions .lg-next.disabled, .lg-actions .lg-prev.disabled {
+ pointer-events: none;
+ opacity: .5;
+}
+
+.lg-actions .lg-next:hover, .lg-actions .lg-prev:hover {
+ color: #ffffff;
+}
+
+.lg-actions .lg-next {
+ right: 20px;
+}
+
+.lg-actions .lg-next:before {
+ content: "\e095";
+}
+
+.lg-actions .lg-prev {
+ left: 20px;
+}
+
+.lg-actions .lg-prev:after {
+ content: "\e094";
+}
+
+@-webkit-keyframes lg-right-end {
+ 0%, 100% {
+ left: 0;
+ }
+ 50% {
+ left: -30px;
+ }
+}
+
+@-moz-keyframes lg-right-end {
+ 0%, 100% {
+ left: 0;
+ }
+ 50% {
+ left: -30px;
+ }
+}
+
+@-ms-keyframes lg-right-end {
+ 0%, 100% {
+ left: 0;
+ }
+ 50% {
+ left: -30px;
+ }
+}
+
+@keyframes lg-right-end {
+ 0%, 100% {
+ left: 0;
+ }
+ 50% {
+ left: -30px;
+ }
+}
+
+@-webkit-keyframes lg-left-end {
+ 0%, 100% {
+ left: 0;
+ }
+ 50% {
+ left: 30px;
+ }
+}
+
+@-moz-keyframes lg-left-end {
+ 0%, 100% {
+ left: 0;
+ }
+ 50% {
+ left: 30px;
+ }
+}
+
+@-ms-keyframes lg-left-end {
+ 0%, 100% {
+ left: 0;
+ }
+ 50% {
+ left: 30px;
+ }
+}
+
+@keyframes lg-left-end {
+ 0%, 100% {
+ left: 0;
+ }
+ 50% {
+ left: 30px;
+ }
+}
+
+.lg-outer.lg-right-end .lg-object {
+ -webkit-animation: lg-right-end .3s;
+ -o-animation: lg-right-end .3s;
+ animation: lg-right-end .3s;
+ position: relative;
+}
+
+.lg-outer.lg-left-end .lg-object {
+ -webkit-animation: lg-left-end .3s;
+ -o-animation: lg-left-end .3s;
+ animation: lg-left-end .3s;
+ position: relative;
+}
+
+.lg-toolbar {
+ z-index: 1082;
+ left: 0;
+ position: absolute;
+ top: 0;
+ width: 100%;
+}
+
+.lg-toolbar .lg-icon {
+ color: #999999;
+ cursor: pointer;
+ float: right;
+ font-size: 24px;
+ height: 47px;
+ line-height: 27px;
+ padding: 10px 0;
+ text-align: center;
+ width: 50px;
+ text-decoration: none !important;
+ outline: 0;
+ -webkit-transition: color .2s linear;
+ -o-transition: color .2s linear;
+ transition: color .2s linear;
+}
+
+.lg-toolbar .lg-icon:hover {
+ color: #ffffff;
+}
+
+.lg-toolbar .lg-close:after {
+ content: "\e070";
+}
+
+.lg-toolbar .lg-download:after {
+ content: "\e0f2";
+}
+
+.lg-sub-html {
+ bottom: 0;
+ color: #eeeeee;
+ font-size: 16px;
+ left: 0;
+ padding: 10px 40px;
+ position: fixed;
+ right: 0;
+ text-align: center;
+ z-index: 1080;
+}
+
+.lg-sub-html h4 {
+ margin: 0;
+ font-size: 13px;
+ font-weight: 700;
+}
+
+.lg-sub-html p {
+ font-size: 12px;
+ margin: 5px 0 0;
+}
+
+#lg-counter {
+ color: #999999;
+ display: inline-block;
+ font-size: 16px;
+ padding-left: 20px;
+ padding-top: 12px;
+ vertical-align: middle;
+}
+
+.lg-next, .lg-prev, .lg-toolbar {
+ opacity: 1;
+ -webkit-transition: -webkit-transform 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, color 0.2s linear;
+ -moz-transition: -moz-transform 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, color 0.2s linear;
+ -o-transition: -o-transform 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, color 0.2s linear;
+ transition: transform 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, color 0.2s linear;
+}
+
+.lg-hide-items .lg-prev {
+ opacity: 0;
+ -webkit-transform: translate3d(-10px, 0, 0);
+ transform: translate3d(-10px, 0, 0);
+}
+
+.lg-hide-items .lg-next {
+ opacity: 0;
+ -webkit-transform: translate3d(10px, 0, 0);
+ transform: translate3d(10px, 0, 0);
+}
+
+.lg-hide-items .lg-toolbar {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -10px, 0);
+ transform: translate3d(0, -10px, 0);
+}
+
+body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-object {
+ -webkit-transform: scale3d(0.5, 0.5, 0.5);
+ transform: scale3d(0.5, 0.5, 0.5);
+ opacity: 0;
+ -webkit-transition: -webkit-transform 250ms cubic-bezier(0, 0, 0.25, 1) 0s, opacity 250ms cubic-bezier(0, 0, 0.25, 1) !important;
+ -moz-transition: -moz-transform 250ms cubic-bezier(0, 0, 0.25, 1) 0s, opacity 250ms cubic-bezier(0, 0, 0.25, 1) !important;
+ -o-transition: -o-transform 250ms cubic-bezier(0, 0, 0.25, 1) 0s, opacity 250ms cubic-bezier(0, 0, 0.25, 1) !important;
+ transition: transform 250ms cubic-bezier(0, 0, 0.25, 1) 0s, opacity 250ms cubic-bezier(0, 0, 0.25, 1) !important;
+ -webkit-transform-origin: 50% 50%;
+ -moz-transform-origin: 50% 50%;
+ -ms-transform-origin: 50% 50%;
+ transform-origin: 50% 50%;
+}
+
+body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-item.lg-complete .lg-object {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ opacity: 1;
+}
+
+.lg-outer .lg-thumb-outer {
+ background-color: #0d0a0a;
+ bottom: 0;
+ position: absolute;
+ width: 100%;
+ z-index: 1080;
+ max-height: 350px;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ -webkit-transition: -webkit-transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s;
+ -moz-transition: -moz-transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s;
+ -o-transition: -o-transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s;
+ transition: transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s;
+}
+
+.lg-outer .lg-thumb-outer.lg-grab .lg-thumb-item {
+ cursor: -webkit-grab;
+ cursor: -moz-grab;
+ cursor: -o-grab;
+ cursor: -ms-grab;
+ cursor: grab;
+}
+
+.lg-outer .lg-thumb-outer.lg-grabbing .lg-thumb-item {
+ cursor: move;
+ cursor: -webkit-grabbing;
+ cursor: -moz-grabbing;
+ cursor: -o-grabbing;
+ cursor: -ms-grabbing;
+ cursor: grabbing;
+}
+
+.lg-outer .lg-thumb-outer.lg-dragging .lg-thumb {
+ -webkit-transition-duration: 0s !important;
+ transition-duration: 0s !important;
+}
+
+.lg-outer.lg-thumb-open .lg-thumb-outer {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+}
+
+.lg-outer .lg-thumb {
+ padding: 10px 0;
+ height: 100%;
+ margin-bottom: -5px;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.lg-outer .lg-thumb-item {
+ cursor: pointer;
+ float: left;
+ overflow: hidden;
+ height: 100%;
+ border: 2px solid #ffffff;
+ border-radius: 4px;
+ margin-bottom: 5px;
+}
+
+@media (min-width: 1025px) {
+ .lg-outer .lg-thumb-item {
+ -webkit-transition: border-color .25s ease;
+ -o-transition: border-color .25s ease;
+ transition: border-color .25s ease;
+ }
+}
+
+.lg-outer .lg-thumb-item.active, .lg-outer .lg-thumb-item:hover {
+ border-color: #a90707;
+}
+
+.lg-outer .lg-thumb-item img {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+}
+
+.lg-outer.lg-has-thumb .lg-item {
+ padding-bottom: 120px;
+}
+
+.lg-outer.lg-can-toggle .lg-item {
+ padding-bottom: 0;
+}
+
+.lg-outer.lg-pull-caption-up .lg-sub-html {
+ -webkit-transition: bottom .25s ease;
+ -o-transition: bottom .25s ease;
+ transition: bottom .25s ease;
+}
+
+.lg-outer.lg-pull-caption-up.lg-thumb-open .lg-sub-html {
+ bottom: 100px;
+}
+
+.lg-outer .lg-toogle-thumb {
+ background-color: #0d0a0a;
+ border-radius: 2px 2px 0 0;
+ color: #999999;
+ cursor: pointer;
+ font-size: 24px;
+ height: 39px;
+ line-height: 27px;
+ padding: 5px 0;
+ position: absolute;
+ right: 20px;
+ text-align: center;
+ top: -39px;
+ width: 50px;
+}
+
+.lg-outer .lg-toogle-thumb:hover, .lg-outer.lg-dropdown-active #lg-share {
+ color: #ffffff;
+}
+
+.lg-outer .lg-toogle-thumb:after {
+ content: "\e1ff";
+}
+
+.lg-outer .lg-video-cont {
+ display: inline-block;
+ vertical-align: middle;
+ max-width: 1140px;
+ max-height: 100%;
+ width: 100%;
+ padding: 0 5px;
+}
+
+.lg-outer .lg-video {
+ width: 100%;
+ height: 0;
+ padding-bottom: 56.25%;
+ overflow: hidden;
+ position: relative;
+}
+
+.lg-outer .lg-video .lg-object {
+ display: inline-block;
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100% !important;
+ height: 100% !important;
+}
+
+.lg-outer .lg-video .lg-video-play {
+ width: 84px;
+ height: 59px;
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ margin-left: -42px;
+ margin-top: -30px;
+ z-index: 1080;
+ cursor: pointer;
+}
+
+.lg-outer .lg-has-iframe .lg-video {
+ -webkit-overflow-scrolling: touch;
+ overflow: auto;
+}
+
+.lg-outer .lg-has-vimeo .lg-video-play {
+ background: url(../images/vimeo-play.png) no-repeat;
+}
+
+.lg-outer .lg-has-vimeo:hover .lg-video-play {
+ background: url(../images/vimeo-play.png) 0 -58px no-repeat;
+}
+
+.lg-outer .lg-has-html5 .lg-video-play {
+ background: url(../images/video-play.png) no-repeat;
+ height: 64px;
+ margin-left: -32px;
+ margin-top: -32px;
+ width: 64px;
+ opacity: .8;
+}
+
+.lg-outer .lg-has-html5:hover .lg-video-play {
+ opacity: 1;
+}
+
+.lg-outer .lg-has-youtube .lg-video-play {
+ background: url(../images/youtube-play.png) no-repeat;
+}
+
+.lg-outer .lg-has-youtube:hover .lg-video-play {
+ background: url(../images/youtube-play.png) 0 -60px no-repeat;
+}
+
+.lg-outer .lg-video-object {
+ width: 100% !important;
+ height: 100% !important;
+ position: absolute;
+ top: 0;
+ left: 0;
+}
+
+.lg-outer .lg-has-video .lg-video-object {
+ visibility: hidden;
+}
+
+.lg-outer .lg-has-video.lg-video-playing .lg-object, .lg-outer .lg-has-video.lg-video-playing .lg-video-play {
+ display: none;
+}
+
+.lg-outer .lg-has-video.lg-video-playing .lg-video-object {
+ visibility: visible;
+}
+
+.lg-progress-bar {
+ background-color: #333333;
+ height: 5px;
+ left: 0;
+ position: absolute;
+ top: 0;
+ width: 100%;
+ z-index: 1083;
+ opacity: 0;
+ -webkit-transition: opacity 80ms ease 0s;
+ -moz-transition: opacity 80ms ease 0s;
+ -o-transition: opacity 80ms ease 0s;
+ transition: opacity 80ms ease 0s;
+}
+
+.lg-progress-bar .lg-progress {
+ background-color: #4849b8;
+ height: 5px;
+ width: 0;
+}
+
+.lg-progress-bar.lg-start .lg-progress {
+ width: 100%;
+}
+
+.lg-show-autoplay .lg-progress-bar {
+ opacity: 1;
+}
+
+.lg-autoplay-button:after {
+ content: "\e01d";
+}
+
+.lg-show-autoplay .lg-autoplay-button:after {
+ content: "\e01a";
+}
+
+.lg-outer.lg-css3.lg-zoom-dragging .lg-item.lg-complete.lg-zoomable .lg-image, .lg-outer.lg-css3.lg-zoom-dragging .lg-item.lg-complete.lg-zoomable .lg-img-wrap {
+ -webkit-transition-duration: 0s;
+ transition-duration: 0s;
+}
+
+.lg-outer.lg-use-transition-for-zoom .lg-item.lg-complete.lg-zoomable .lg-img-wrap {
+ -webkit-transition: -webkit-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
+ -moz-transition: -moz-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
+ -o-transition: -o-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
+ transition: transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
+}
+
+.lg-outer.lg-use-left-for-zoom .lg-item.lg-complete.lg-zoomable .lg-img-wrap {
+ -webkit-transition: left 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, top 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
+ -moz-transition: left 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, top 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
+ -o-transition: left 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, top 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
+ transition: left 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, top 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
+}
+
+.lg-outer .lg-item.lg-complete.lg-zoomable .lg-img-wrap {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ -webkit-backface-visibility: hidden;
+ -moz-backface-visibility: hidden;
+ backface-visibility: hidden;
+}
+
+.lg-outer .lg-item.lg-complete.lg-zoomable .lg-image {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ -webkit-transition: -webkit-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.15s !important;
+ -moz-transition: -moz-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.15s !important;
+ -o-transition: -o-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.15s !important;
+ transition: transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.15s !important;
+ -webkit-transform-origin: 0 0;
+ -moz-transform-origin: 0 0;
+ -ms-transform-origin: 0 0;
+ transform-origin: 0 0;
+ -webkit-backface-visibility: hidden;
+ -moz-backface-visibility: hidden;
+ backface-visibility: hidden;
+}
+
+#lg-zoom-in:after {
+ content: "\e311";
+}
+
+#lg-actual-size {
+ font-size: 20px;
+}
+
+#lg-actual-size:after {
+ content: "\e033";
+}
+
+#lg-zoom-out {
+ opacity: .5;
+ pointer-events: none;
+}
+
+#lg-zoom-out:after {
+ content: "\e312";
+}
+
+.lg-zoomed #lg-zoom-out {
+ opacity: 1;
+ pointer-events: auto;
+}
+
+.lg-outer .lg-pager-outer {
+ bottom: 60px;
+ left: 0;
+ position: absolute;
+ right: 0;
+ text-align: center;
+ z-index: 1080;
+ height: 10px;
+}
+
+.lg-outer .lg-pager-outer.lg-pager-hover .lg-pager-cont {
+ overflow: visible;
+}
+
+.lg-outer .lg-pager-cont {
+ cursor: pointer;
+ display: inline-block;
+ overflow: hidden;
+ position: relative;
+ vertical-align: top;
+ margin: 0 5px;
+}
+
+.lg-outer .lg-pager-cont:hover .lg-pager-thumb-cont {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+}
+
+.lg-outer .lg-pager-cont.lg-pager-active .lg-pager {
+ box-shadow: 0 0 0 2px #ffffff inset;
+}
+
+.lg-outer .lg-pager-thumb-cont {
+ background-color: #ffffff;
+ color: #ffffff;
+ bottom: 100%;
+ height: 83px;
+ left: 0;
+ margin-bottom: 20px;
+ margin-left: -60px;
+ opacity: 0;
+ padding: 5px;
+ position: absolute;
+ width: 120px;
+ border-radius: 3px;
+ -webkit-transition: opacity .15s ease 0s, -webkit-transform .15s ease 0s;
+ -moz-transition: opacity .15s ease 0s, -moz-transform .15s ease 0s;
+ -o-transition: opacity .15s ease 0s, -o-transform .15s ease 0s;
+ transition: opacity .15s ease 0s, transform .15s ease 0s;
+ -webkit-transform: translate3d(0, 5px, 0);
+ transform: translate3d(0, 5px, 0);
+}
+
+.lg-outer .lg-pager-thumb-cont img {
+ width: 100%;
+ height: 100%;
+}
+
+.lg-outer .lg-pager {
+ background-color: rgba(255, 255, 255, 0.5);
+ border-radius: 50%;
+ box-shadow: 0 0 0 8px rgba(255, 255, 255, 0.7) inset;
+ display: block;
+ height: 12px;
+ -webkit-transition: box-shadow .3s ease 0s;
+ -o-transition: box-shadow .3s ease 0s;
+ transition: box-shadow .3s ease 0s;
+ width: 12px;
+}
+
+.lg-outer .lg-pager:focus, .lg-outer .lg-pager:hover {
+ box-shadow: 0 0 0 8px #ffffff inset;
+}
+
+.lg-outer .lg-caret {
+ border-left: 10px solid transparent;
+ border-right: 10px solid transparent;
+ border-top: 10px dashed;
+ bottom: -10px;
+ display: inline-block;
+ height: 0;
+ left: 50%;
+ margin-left: -5px;
+ position: absolute;
+ vertical-align: middle;
+ width: 0;
+}
+
+.lg-fullscreen:after {
+ content: "\e20c";
+}
+
+.lg-fullscreen-on .lg-fullscreen:after {
+ content: "\e20d";
+}
+
+.lg-outer #lg-dropdown-overlay {
+ background-color: rgba(0, 0, 0, 0.25);
+ bottom: 0;
+ cursor: default;
+ left: 0;
+ position: fixed;
+ right: 0;
+ top: 0;
+ z-index: 1081;
+ opacity: 0;
+ visibility: hidden;
+ -webkit-transition: visibility 0s linear .18s, opacity .18s linear 0s;
+ -o-transition: visibility 0s linear .18s, opacity .18s linear 0s;
+ transition: visibility 0s linear .18s, opacity .18s linear 0s;
+}
+
+.lg-outer.lg-dropdown-active #lg-dropdown-overlay, .lg-outer.lg-dropdown-active .lg-dropdown {
+ -webkit-transition-delay: 0s;
+ transition-delay: 0s;
+ -moz-transform: translate3d(0, 0, 0);
+ -o-transform: translate3d(0, 0, 0);
+ -ms-transform: translate3d(0, 0, 0);
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ visibility: visible;
+}
+
+.lg-outer .lg-dropdown {
+ background-color: #ffffff;
+ border-radius: 2px;
+ font-size: 14px;
+ list-style-type: none;
+ margin: 0;
+ padding: 10px 0;
+ position: absolute;
+ right: 0;
+ text-align: left;
+ top: 50px;
+ opacity: 0;
+ visibility: hidden;
+ -moz-transform: translate3d(0, 5px, 0);
+ -o-transform: translate3d(0, 5px, 0);
+ -ms-transform: translate3d(0, 5px, 0);
+ -webkit-transform: translate3d(0, 5px, 0);
+ transform: translate3d(0, 5px, 0);
+ -webkit-transition: -webkit-transform .18s linear 0s, visibility 0s linear .5s, opacity .18s linear 0s;
+ -moz-transition: -moz-transform .18s linear 0s, visibility 0s linear .5s, opacity .18s linear 0s;
+ -o-transition: -o-transform .18s linear 0s, visibility 0s linear .5s, opacity .18s linear 0s;
+ transition: transform .18s linear 0s, visibility 0s linear .5s, opacity .18s linear 0s;
+}
+
+.lg-outer .lg-dropdown:after {
+ content: "";
+ display: block;
+ height: 0;
+ width: 0;
+ position: absolute;
+ border: 8px solid transparent;
+ border-bottom-color: #ffffff;
+ right: 16px;
+ top: -16px;
+}
+
+.lg-outer .lg-dropdown > li:last-child {
+ margin-bottom: 0;
+}
+
+.lg-outer .lg-dropdown > li:hover .lg-icon, .lg-outer .lg-dropdown > li:hover a {
+ color: #333333;
+}
+
+.lg-outer .lg-dropdown a {
+ color: #333333;
+ display: block;
+ white-space: pre;
+ padding: 4px 12px;
+ font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-size: 12px;
+}
+
+.lg-outer .lg-dropdown a:hover {
+ background-color: rgba(0, 0, 0, 0.07);
+}
+
+.lg-outer .lg-dropdown .lg-dropdown-text {
+ display: inline-block;
+ line-height: 1;
+ margin-top: -3px;
+ vertical-align: middle;
+}
+
+.lg-outer .lg-dropdown .lg-icon {
+ color: #333333;
+ display: inline-block;
+ float: none;
+ font-size: 20px;
+ height: auto;
+ line-height: 1;
+ margin-right: 8px;
+ padding: 0;
+ vertical-align: middle;
+ width: auto;
+}
+
+.lg-outer, .lg-outer .lg, .lg-outer .lg-inner {
+ width: 100%;
+ height: 100%;
+}
+
+.lg-outer #lg-share {
+ position: relative;
+ display: none;
+}
+
+@media (min-width: 768px) {
+ .lg-outer #lg-share {
+ display: block;
+ }
+}
+
+.lg-outer #lg-share:after {
+ content: "\e80d";
+}
+
+.lg-outer #lg-share-facebook .lg-icon {
+ color: #3b5998;
+}
+
+.lg-outer #lg-share-facebook .lg-icon:after {
+ content: "\e901";
+}
+
+.lg-outer #lg-share-twitter .lg-icon {
+ color: #00aced;
+}
+
+.lg-outer #lg-share-twitter .lg-icon:after {
+ content: "\e904";
+}
+
+.lg-outer #lg-share-googleplus .lg-icon {
+ color: #dd4b39;
+}
+
+.lg-outer #lg-share-googleplus .lg-icon:after {
+ content: "\e902";
+}
+
+.lg-outer #lg-share-pinterest .lg-icon {
+ color: #cb2027;
+}
+
+.lg-outer #lg-share-pinterest .lg-icon:after {
+ content: "\e903";
+}
+
+.lg-group:after {
+ content: "";
+ display: table;
+ clear: both;
+}
+
+.lg-outer {
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 1050;
+ text-align: left;
+ opacity: 0;
+ -webkit-transition: opacity .15s ease 0s;
+ -o-transition: opacity .15s ease 0s;
+ transition: opacity .15s ease 0s;
+}
+
+.lg-outer * {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.lg-outer.lg-visible {
+ opacity: 1;
+}
+
+.lg-outer.lg-css3 .lg-item.lg-current, .lg-outer.lg-css3 .lg-item.lg-next-slide, .lg-outer.lg-css3 .lg-item.lg-prev-slide {
+ -webkit-transition-duration: inherit !important;
+ transition-duration: inherit !important;
+ -webkit-transition-timing-function: inherit !important;
+ transition-timing-function: inherit !important;
+}
+
+.lg-outer.lg-css3.lg-dragging .lg-item.lg-current, .lg-outer.lg-css3.lg-dragging .lg-item.lg-next-slide, .lg-outer.lg-css3.lg-dragging .lg-item.lg-prev-slide {
+ -webkit-transition-duration: 0s !important;
+ transition-duration: 0s !important;
+ opacity: 1;
+}
+
+.lg-outer.lg-grab img.lg-object {
+ cursor: -webkit-grab;
+ cursor: -moz-grab;
+ cursor: -o-grab;
+ cursor: -ms-grab;
+ cursor: grab;
+}
+
+.lg-outer.lg-grabbing img.lg-object {
+ cursor: move;
+ cursor: -webkit-grabbing;
+ cursor: -moz-grabbing;
+ cursor: -o-grabbing;
+ cursor: -ms-grabbing;
+ cursor: grabbing;
+}
+
+.lg-outer .lg {
+ position: relative;
+ overflow: hidden;
+ margin-left: auto;
+ margin-right: auto;
+ max-width: 100%;
+ max-height: 100%;
+}
+
+.lg-outer .lg-inner {
+ position: absolute;
+ left: 0;
+ top: 0;
+ white-space: nowrap;
+}
+
+.lg-outer .lg-item {
+ background: url(../images/loading.gif) center center no-repeat;
+ display: none !important;
+}
+
+.lg-outer.lg-css .lg-current, .lg-outer.lg-css3 .lg-current, .lg-outer.lg-css3 .lg-next-slide, .lg-outer.lg-css3 .lg-prev-slide {
+ display: inline-block !important;
+}
+
+.lg-outer .lg-img-wrap, .lg-outer .lg-item {
+ display: inline-block;
+ text-align: center;
+ position: absolute;
+ width: 100%;
+ height: 100%;
+}
+
+.lg-outer .lg-img-wrap:before, .lg-outer .lg-item:before {
+ content: "";
+ display: inline-block;
+ height: 50%;
+ width: 1px;
+ margin-right: -1px;
+}
+
+.lg-outer .lg-img-wrap {
+ position: absolute;
+ padding: 0 5px;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+}
+
+.lg-outer .lg-item.lg-complete {
+ background-image: none;
+}
+
+.lg-outer .lg-item.lg-current {
+ z-index: 1060;
+}
+
+.lg-outer .lg-image {
+ display: inline-block;
+ vertical-align: middle;
+ max-width: 100%;
+ max-height: 100%;
+ width: auto !important;
+ height: auto !important;
+}
+
+.lg-outer.lg-show-after-load .lg-item .lg-object, .lg-outer.lg-show-after-load .lg-item .lg-video-play {
+ opacity: 0;
+ -webkit-transition: opacity .15s ease 0s;
+ -o-transition: opacity .15s ease 0s;
+ transition: opacity .15s ease 0s;
+}
+
+.lg-outer.lg-show-after-load .lg-item.lg-complete .lg-object, .lg-outer.lg-show-after-load .lg-item.lg-complete .lg-video-play {
+ opacity: 1;
+}
+
+.lg-outer .lg-empty-html, .lg-outer.lg-hide-download #lg-download {
+ display: none;
+}
+
+.lg-backdrop {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ z-index: 1040;
+ background-color: #000000;
+ opacity: 0;
+ -webkit-transition: opacity .15s ease 0s;
+ -o-transition: opacity .15s ease 0s;
+ transition: opacity .15s ease 0s;
+}
+
+.lg-backdrop.in {
+ opacity: 1;
+}
+
+.lg-css3.lg-no-trans .lg-current, .lg-css3.lg-no-trans .lg-next-slide, .lg-css3.lg-no-trans .lg-prev-slide {
+ -webkit-transition: none 0s ease 0s !important;
+ -moz-transition: none 0s ease 0s !important;
+ -o-transition: none 0s ease 0s !important;
+ transition: none 0s ease 0s !important;
+}
+
+.lg-css3.lg-use-css3 .lg-item, .lg-css3.lg-use-left .lg-item {
+ -webkit-backface-visibility: hidden;
+ -moz-backface-visibility: hidden;
+ backface-visibility: hidden;
+}
+
+.lg-css3.lg-fade .lg-item {
+ opacity: 0;
+}
+
+.lg-css3.lg-fade .lg-item.lg-current {
+ opacity: 1;
+}
+
+.lg-css3.lg-fade .lg-item.lg-current, .lg-css3.lg-fade .lg-item.lg-next-slide, .lg-css3.lg-fade .lg-item.lg-prev-slide {
+ -webkit-transition: opacity .1s ease 0s;
+ -moz-transition: opacity .1s ease 0s;
+ -o-transition: opacity .1s ease 0s;
+ transition: opacity .1s ease 0s;
+}
+
+.lg-css3.lg-slide.lg-use-css3 .lg-item {
+ opacity: 0;
+}
+
+.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide {
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+}
+
+.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide {
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+}
+
+.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+}
+
+.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current, .lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide, .lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide {
+ -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
+ -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
+ -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
+ transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
+}
+
+.lg-css3.lg-slide.lg-use-left .lg-item {
+ opacity: 0;
+ position: absolute;
+ left: 0;
+}
+
+.lg-css3.lg-slide.lg-use-left .lg-item.lg-prev-slide {
+ left: -100%;
+}
+
+.lg-css3.lg-slide.lg-use-left .lg-item.lg-next-slide {
+ left: 100%;
+}
+
+.lg-css3.lg-slide.lg-use-left .lg-item.lg-current {
+ left: 0;
+ opacity: 1;
+}
+
+.lg-css3.lg-slide.lg-use-left .lg-item.lg-current, .lg-css3.lg-slide.lg-use-left .lg-item.lg-next-slide, .lg-css3.lg-slide.lg-use-left .lg-item.lg-prev-slide {
+ -webkit-transition: left 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
+ -moz-transition: left 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
+ -o-transition: left 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
+ transition: left 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
+}
+
+.lg-sub-html, .lg-toolbar {
+ background-color: rgba(0, 0, 0, 0.45);
+}
+
+@font-face {
+ font-family: lg;
+ src: url(../fonts/lg.eot?n1z373);
+ src: url(../fonts/lg.eot?#iefixn1z373) format("embedded-opentype"), url(../fonts/lg.woff?n1z373) format("woff"), url(../fonts/lg.ttf?n1z373) format("truetype"), url(../fonts/lg.svg?n1z373#lg) format("svg");
+ font-weight: 400;
+ font-style: normal;
+}
+
+.lg-icon {
+ font-family: lg;
+ speak: none;
+ font-style: normal;
+ font-weight: 400;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+.lg-actions .lg-next, .lg-actions .lg-prev {
+ background-color: rgba(0, 0, 0, 0.45);
+ border-radius: 2px;
+ color: #999999;
+ cursor: pointer;
+ display: block;
+ font-size: 22px;
+ margin-top: -10px;
+ padding: 8px 10px 9px;
+ position: absolute;
+ top: 50%;
+ z-index: 1080;
+ border: none;
+ outline: 0;
+}
+
+.lg-actions .lg-next.disabled, .lg-actions .lg-prev.disabled {
+ pointer-events: none;
+ opacity: .5;
+}
+
+.lg-actions .lg-next:hover, .lg-actions .lg-prev:hover {
+ color: #ffffff;
+}
+
+.lg-actions .lg-next {
+ right: 20px;
+}
+
+.lg-actions .lg-next:before {
+ content: "\e095";
+}
+
+.lg-actions .lg-prev {
+ left: 20px;
+}
+
+.lg-actions .lg-prev:after {
+ content: "\e094";
+}
+
+@-webkit-keyframes lg-right-end {
+ 0%, 100% {
+ left: 0;
+ }
+ 50% {
+ left: -30px;
+ }
+}
+
+@-moz-keyframes lg-right-end {
+ 0%, 100% {
+ left: 0;
+ }
+ 50% {
+ left: -30px;
+ }
+}
+
+@-ms-keyframes lg-right-end {
+ 0%, 100% {
+ left: 0;
+ }
+ 50% {
+ left: -30px;
+ }
+}
+
+@keyframes lg-right-end {
+ 0%, 100% {
+ left: 0;
+ }
+ 50% {
+ left: -30px;
+ }
+}
+
+@-webkit-keyframes lg-left-end {
+ 0%, 100% {
+ left: 0;
+ }
+ 50% {
+ left: 30px;
+ }
+}
+
+@-moz-keyframes lg-left-end {
+ 0%, 100% {
+ left: 0;
+ }
+ 50% {
+ left: 30px;
+ }
+}
+
+@-ms-keyframes lg-left-end {
+ 0%, 100% {
+ left: 0;
+ }
+ 50% {
+ left: 30px;
+ }
+}
+
+@keyframes lg-left-end {
+ 0%, 100% {
+ left: 0;
+ }
+ 50% {
+ left: 30px;
+ }
+}
+
+.lg-outer.lg-right-end .lg-object {
+ -webkit-animation: lg-right-end .3s;
+ -o-animation: lg-right-end .3s;
+ animation: lg-right-end .3s;
+ position: relative;
+}
+
+.lg-outer.lg-left-end .lg-object {
+ -webkit-animation: lg-left-end .3s;
+ -o-animation: lg-left-end .3s;
+ animation: lg-left-end .3s;
+ position: relative;
+}
+
+.lg-toolbar {
+ z-index: 1082;
+ left: 0;
+ position: absolute;
+ top: 0;
+ width: 100%;
+}
+
+.lg-toolbar .lg-icon {
+ color: #999999;
+ cursor: pointer;
+ float: right;
+ font-size: 24px;
+ height: 47px;
+ line-height: 27px;
+ padding: 10px 0;
+ text-align: center;
+ width: 50px;
+ text-decoration: none !important;
+ outline: 0;
+ -webkit-transition: color .2s linear;
+ -o-transition: color .2s linear;
+ transition: color .2s linear;
+}
+
+.lg-toolbar .lg-icon:hover {
+ color: #ffffff;
+}
+
+.lg-toolbar .lg-close:after {
+ content: "\e070";
+}
+
+.lg-toolbar .lg-download:after {
+ content: "\e0f2";
+}
+
+.lg-sub-html {
+ bottom: 0;
+ color: #eeeeee;
+ font-size: 16px;
+ left: 0;
+ padding: 10px 40px;
+ position: fixed;
+ right: 0;
+ text-align: center;
+ z-index: 1080;
+}
+
+.lg-sub-html h4 {
+ margin: 0;
+ font-size: 13px;
+ font-weight: 700;
+}
+
+.lg-sub-html p {
+ font-size: 12px;
+ margin: 5px 0 0;
+}
+
+#lg-counter {
+ color: #999999;
+ display: inline-block;
+ font-size: 16px;
+ padding-left: 20px;
+ padding-top: 12px;
+ vertical-align: middle;
+}
+
+.lg-next, .lg-prev, .lg-toolbar {
+ opacity: 1;
+ -webkit-transition: -webkit-transform 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, color 0.2s linear;
+ -moz-transition: -moz-transform 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, color 0.2s linear;
+ -o-transition: -o-transform 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, color 0.2s linear;
+ transition: transform 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, color 0.2s linear;
+}
+
+.lg-hide-items .lg-prev {
+ opacity: 0;
+ -webkit-transform: translate3d(-10px, 0, 0);
+ transform: translate3d(-10px, 0, 0);
+}
+
+.lg-hide-items .lg-next {
+ opacity: 0;
+ -webkit-transform: translate3d(10px, 0, 0);
+ transform: translate3d(10px, 0, 0);
+}
+
+.lg-hide-items .lg-toolbar {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -10px, 0);
+ transform: translate3d(0, -10px, 0);
+}
+
+body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-object {
+ -webkit-transform: scale3d(0.5, 0.5, 0.5);
+ transform: scale3d(0.5, 0.5, 0.5);
+ opacity: 0;
+ -webkit-transition: -webkit-transform 250ms cubic-bezier(0, 0, 0.25, 1) 0s, opacity 250ms cubic-bezier(0, 0, 0.25, 1) !important;
+ -moz-transition: -moz-transform 250ms cubic-bezier(0, 0, 0.25, 1) 0s, opacity 250ms cubic-bezier(0, 0, 0.25, 1) !important;
+ -o-transition: -o-transform 250ms cubic-bezier(0, 0, 0.25, 1) 0s, opacity 250ms cubic-bezier(0, 0, 0.25, 1) !important;
+ transition: transform 250ms cubic-bezier(0, 0, 0.25, 1) 0s, opacity 250ms cubic-bezier(0, 0, 0.25, 1) !important;
+ -webkit-transform-origin: 50% 50%;
+ -moz-transform-origin: 50% 50%;
+ -ms-transform-origin: 50% 50%;
+ transform-origin: 50% 50%;
+}
+
+body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-item.lg-complete .lg-object {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ opacity: 1;
+}
+
+.lg-outer .lg-thumb-outer {
+ background-color: #0d0a0a;
+ bottom: 0;
+ position: absolute;
+ width: 100%;
+ z-index: 1080;
+ max-height: 350px;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ -webkit-transition: -webkit-transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s;
+ -moz-transition: -moz-transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s;
+ -o-transition: -o-transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s;
+ transition: transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s;
+}
+
+.lg-outer .lg-thumb-outer.lg-grab .lg-thumb-item {
+ cursor: -webkit-grab;
+ cursor: -moz-grab;
+ cursor: -o-grab;
+ cursor: -ms-grab;
+ cursor: grab;
+}
+
+.lg-outer .lg-thumb-outer.lg-grabbing .lg-thumb-item {
+ cursor: move;
+ cursor: -webkit-grabbing;
+ cursor: -moz-grabbing;
+ cursor: -o-grabbing;
+ cursor: -ms-grabbing;
+ cursor: grabbing;
+}
+
+.lg-outer .lg-thumb-outer.lg-dragging .lg-thumb {
+ -webkit-transition-duration: 0s !important;
+ transition-duration: 0s !important;
+}
+
+.lg-outer.lg-thumb-open .lg-thumb-outer {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+}
+
+.lg-outer .lg-thumb {
+ padding: 10px 0;
+ height: 100%;
+ margin-bottom: -5px;
+}
+
+.lg-outer .lg-thumb-item {
+ cursor: pointer;
+ float: left;
+ overflow: hidden;
+ height: 100%;
+ border: 2px solid #ffffff;
+ border-radius: 4px;
+ margin-bottom: 5px;
+}
+
+@media (min-width: 1025px) {
+ .lg-outer .lg-thumb-item {
+ -webkit-transition: border-color .25s ease;
+ -o-transition: border-color .25s ease;
+ transition: border-color .25s ease;
+ }
+}
+
+.lg-outer .lg-thumb-item.active, .lg-outer .lg-thumb-item:hover {
+ border-color: #a90707;
+}
+
+.lg-outer .lg-thumb-item img {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+}
+
+.lg-outer.lg-has-thumb .lg-item {
+ padding-bottom: 120px;
+}
+
+.lg-outer.lg-can-toggle .lg-item {
+ padding-bottom: 0;
+}
+
+.lg-outer.lg-pull-caption-up .lg-sub-html {
+ -webkit-transition: bottom .25s ease;
+ -o-transition: bottom .25s ease;
+ transition: bottom .25s ease;
+}
+
+.lg-outer.lg-pull-caption-up.lg-thumb-open .lg-sub-html {
+ bottom: 100px;
+}
+
+.lg-outer .lg-toogle-thumb {
+ background-color: #0d0a0a;
+ border-radius: 2px 2px 0 0;
+ color: #999999;
+ cursor: pointer;
+ font-size: 24px;
+ height: 39px;
+ line-height: 27px;
+ padding: 5px 0;
+ position: absolute;
+ right: 20px;
+ text-align: center;
+ top: -39px;
+ width: 50px;
+}
+
+.lg-outer .lg-toogle-thumb:hover, .lg-outer.lg-dropdown-active #lg-share {
+ color: #ffffff;
+}
+
+.lg-outer .lg-toogle-thumb:after {
+ content: "\e1ff";
+}
+
+.lg-outer .lg-video-cont {
+ display: inline-block;
+ vertical-align: middle;
+ max-width: 1140px;
+ max-height: 100%;
+ width: 100%;
+ padding: 0 5px;
+}
+
+.lg-outer .lg-video {
+ width: 100%;
+ height: 0;
+ padding-bottom: 56.25%;
+ overflow: hidden;
+ position: relative;
+}
+
+.lg-outer .lg-video .lg-object {
+ display: inline-block;
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100% !important;
+ height: 100% !important;
+}
+
+.lg-outer .lg-video .lg-video-play {
+ width: 84px;
+ height: 59px;
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ margin-left: -42px;
+ margin-top: -30px;
+ z-index: 1080;
+ cursor: pointer;
+}
+
+.lg-outer .lg-has-iframe .lg-video {
+ -webkit-overflow-scrolling: touch;
+ overflow: auto;
+}
+
+.lg-outer .lg-has-vimeo .lg-video-play {
+ background: url(../images/vimeo-play.png) no-repeat;
+}
+
+.lg-outer .lg-has-vimeo:hover .lg-video-play {
+ background: url(../images/vimeo-play.png) 0 -58px no-repeat;
+}
+
+.lg-outer .lg-has-html5 .lg-video-play {
+ background: url(../images/video-play.png) no-repeat;
+ height: 64px;
+ margin-left: -32px;
+ margin-top: -32px;
+ width: 64px;
+ opacity: .8;
+}
+
+.lg-outer .lg-has-html5:hover .lg-video-play {
+ opacity: 1;
+}
+
+.lg-outer .lg-has-youtube .lg-video-play {
+ background: url(../images/youtube-play.png) no-repeat;
+}
+
+.lg-outer .lg-has-youtube:hover .lg-video-play {
+ background: url(../images/youtube-play.png) 0 -60px no-repeat;
+}
+
+.lg-outer .lg-video-object {
+ width: 100% !important;
+ height: 100% !important;
+ position: absolute;
+ top: 0;
+ left: 0;
+}
+
+.lg-outer .lg-has-video .lg-video-object {
+ visibility: hidden;
+}
+
+.lg-outer .lg-has-video.lg-video-playing .lg-object, .lg-outer .lg-has-video.lg-video-playing .lg-video-play {
+ display: none;
+}
+
+.lg-outer .lg-has-video.lg-video-playing .lg-video-object {
+ visibility: visible;
+}
+
+.lg-progress-bar {
+ background-color: #333333;
+ height: 5px;
+ left: 0;
+ position: absolute;
+ top: 0;
+ width: 100%;
+ z-index: 1083;
+ opacity: 0;
+ -webkit-transition: opacity 80ms ease 0s;
+ -moz-transition: opacity 80ms ease 0s;
+ -o-transition: opacity 80ms ease 0s;
+ transition: opacity 80ms ease 0s;
+}
+
+.lg-progress-bar .lg-progress {
+ background-color: #4849b8;
+ height: 5px;
+ width: 0;
+}
+
+.lg-progress-bar.lg-start .lg-progress {
+ width: 100%;
+}
+
+.lg-show-autoplay .lg-progress-bar {
+ opacity: 1;
+}
+
+.lg-autoplay-button:after {
+ content: "\e01d";
+}
+
+.lg-show-autoplay .lg-autoplay-button:after {
+ content: "\e01a";
+}
+
+.lg-outer.lg-css3.lg-zoom-dragging .lg-item.lg-complete.lg-zoomable .lg-image, .lg-outer.lg-css3.lg-zoom-dragging .lg-item.lg-complete.lg-zoomable .lg-img-wrap {
+ -webkit-transition-duration: 0s;
+ transition-duration: 0s;
+}
+
+.lg-outer.lg-use-transition-for-zoom .lg-item.lg-complete.lg-zoomable .lg-img-wrap {
+ -webkit-transition: -webkit-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
+ -moz-transition: -moz-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
+ -o-transition: -o-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
+ transition: transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
+}
+
+.lg-outer.lg-use-left-for-zoom .lg-item.lg-complete.lg-zoomable .lg-img-wrap {
+ -webkit-transition: left 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, top 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
+ -moz-transition: left 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, top 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
+ -o-transition: left 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, top 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
+ transition: left 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, top 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
+}
+
+.lg-outer .lg-item.lg-complete.lg-zoomable .lg-img-wrap {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ -webkit-backface-visibility: hidden;
+ -moz-backface-visibility: hidden;
+ backface-visibility: hidden;
+}
+
+.lg-outer .lg-item.lg-complete.lg-zoomable .lg-image {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ -webkit-transition: -webkit-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.15s !important;
+ -moz-transition: -moz-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.15s !important;
+ -o-transition: -o-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.15s !important;
+ transition: transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.15s !important;
+ -webkit-transform-origin: 0 0;
+ -moz-transform-origin: 0 0;
+ -ms-transform-origin: 0 0;
+ transform-origin: 0 0;
+ -webkit-backface-visibility: hidden;
+ -moz-backface-visibility: hidden;
+ backface-visibility: hidden;
+}
+
+#lg-zoom-in:after {
+ content: "\e311";
+}
+
+#lg-actual-size {
+ font-size: 20px;
+ display: none;
+}
+
+@media (min-width: 768px) {
+ #lg-actual-size {
+ display: block;
+ }
+}
+
+#lg-actual-size:after {
+ content: "\e033";
+}
+
+#lg-zoom-out {
+ opacity: .5;
+ pointer-events: none;
+}
+
+#lg-zoom-out:after {
+ content: "\e312";
+}
+
+.lg-zoomed #lg-zoom-out {
+ opacity: 1;
+ pointer-events: auto;
+}
+
+.lg-outer .lg-pager-outer {
+ bottom: 60px;
+ left: 0;
+ position: absolute;
+ right: 0;
+ text-align: center;
+ z-index: 1080;
+ height: 10px;
+}
+
+.lg-outer .lg-pager-outer.lg-pager-hover .lg-pager-cont {
+ overflow: visible;
+}
+
+.lg-outer .lg-pager-cont {
+ cursor: pointer;
+ display: inline-block;
+ overflow: hidden;
+ position: relative;
+ vertical-align: top;
+ margin: 0 5px;
+}
+
+.lg-outer .lg-pager-cont:hover .lg-pager-thumb-cont {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+}
+
+.lg-outer .lg-pager-cont.lg-pager-active .lg-pager {
+ box-shadow: 0 0 0 2px #ffffff inset;
+}
+
+.lg-outer .lg-pager-thumb-cont {
+ background-color: #ffffff;
+ color: #ffffff;
+ bottom: 100%;
+ height: 83px;
+ left: 0;
+ margin-bottom: 20px;
+ margin-left: -60px;
+ opacity: 0;
+ padding: 5px;
+ position: absolute;
+ width: 120px;
+ border-radius: 3px;
+ -webkit-transition: opacity .15s ease 0s, -webkit-transform .15s ease 0s;
+ -moz-transition: opacity .15s ease 0s, -moz-transform .15s ease 0s;
+ -o-transition: opacity .15s ease 0s, -o-transform .15s ease 0s;
+ transition: opacity .15s ease 0s, transform .15s ease 0s;
+ -webkit-transform: translate3d(0, 5px, 0);
+ transform: translate3d(0, 5px, 0);
+}
+
+.lg-outer .lg-pager-thumb-cont img {
+ width: 100%;
+ height: 100%;
+}
+
+.lg-outer .lg-pager {
+ background-color: rgba(255, 255, 255, 0.5);
+ border-radius: 50%;
+ box-shadow: 0 0 0 8px rgba(255, 255, 255, 0.7) inset;
+ display: block;
+ height: 12px;
+ -webkit-transition: box-shadow .3s ease 0s;
+ -o-transition: box-shadow .3s ease 0s;
+ transition: box-shadow .3s ease 0s;
+ width: 12px;
+}
+
+.lg-outer .lg-pager:focus, .lg-outer .lg-pager:hover {
+ box-shadow: 0 0 0 8px #ffffff inset;
+}
+
+.lg-outer .lg-caret {
+ border-left: 10px solid transparent;
+ border-right: 10px solid transparent;
+ border-top: 10px dashed;
+ bottom: -10px;
+ display: inline-block;
+ height: 0;
+ left: 50%;
+ margin-left: -5px;
+ position: absolute;
+ vertical-align: middle;
+ width: 0;
+}
+
+.lg-fullscreen {
+ display: none;
+}
+
+@media (min-width: 768px) {
+ .lg-fullscreen {
+ display: block;
+ }
+}
+
+.lg-fullscreen:after {
+ content: "\e20c";
+}
+
+.lg-fullscreen-on .lg-fullscreen:after {
+ content: "\e20d";
+}
+
+.lg-outer #lg-dropdown-overlay {
+ background-color: rgba(0, 0, 0, 0.25);
+ bottom: 0;
+ cursor: default;
+ left: 0;
+ position: fixed;
+ right: 0;
+ top: 0;
+ z-index: 1081;
+ opacity: 0;
+ visibility: hidden;
+ -webkit-transition: visibility 0s linear .18s, opacity .18s linear 0s;
+ -o-transition: visibility 0s linear .18s, opacity .18s linear 0s;
+ transition: visibility 0s linear .18s, opacity .18s linear 0s;
+}
+
+.lg-outer.lg-dropdown-active #lg-dropdown-overlay, .lg-outer.lg-dropdown-active .lg-dropdown {
+ -webkit-transition-delay: 0s;
+ transition-delay: 0s;
+ -moz-transform: translate3d(0, 0, 0);
+ -o-transform: translate3d(0, 0, 0);
+ -ms-transform: translate3d(0, 0, 0);
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ visibility: visible;
+}
+
+.lg-outer .lg-dropdown {
+ background-color: #ffffff;
+ border-radius: 2px;
+ font-size: 14px;
+ list-style-type: none;
+ margin: 0;
+ padding: 10px 0;
+ position: absolute;
+ right: 0;
+ text-align: left;
+ top: 50px;
+ opacity: 0;
+ visibility: hidden;
+ -moz-transform: translate3d(0, 5px, 0);
+ -o-transform: translate3d(0, 5px, 0);
+ -ms-transform: translate3d(0, 5px, 0);
+ -webkit-transform: translate3d(0, 5px, 0);
+ transform: translate3d(0, 5px, 0);
+ -webkit-transition: -webkit-transform .18s linear 0s, visibility 0s linear .5s, opacity .18s linear 0s;
+ -moz-transition: -moz-transform .18s linear 0s, visibility 0s linear .5s, opacity .18s linear 0s;
+ -o-transition: -o-transform .18s linear 0s, visibility 0s linear .5s, opacity .18s linear 0s;
+ transition: transform .18s linear 0s, visibility 0s linear .5s, opacity .18s linear 0s;
+}
+
+.lg-outer .lg-dropdown:after {
+ content: "";
+ display: block;
+ height: 0;
+ width: 0;
+ position: absolute;
+ border: 8px solid transparent;
+ border-bottom-color: #ffffff;
+ right: 16px;
+ top: -16px;
+}
+
+.lg-outer .lg-dropdown > li:last-child {
+ margin-bottom: 0;
+}
+
+.lg-outer .lg-dropdown > li:hover .lg-icon, .lg-outer .lg-dropdown > li:hover a {
+ color: #333333;
+}
+
+.lg-outer .lg-dropdown a {
+ color: #333333;
+ display: block;
+ white-space: pre;
+ padding: 4px 12px;
+ font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-size: 12px;
+}
+
+.lg-outer .lg-dropdown a:hover {
+ background-color: rgba(0, 0, 0, 0.07);
+}
+
+.lg-outer .lg-dropdown .lg-dropdown-text {
+ display: inline-block;
+ line-height: 1;
+ margin-top: -3px;
+ vertical-align: middle;
+}
+
+.lg-outer .lg-dropdown .lg-icon {
+ color: #333333;
+ display: inline-block;
+ float: none;
+ font-size: 20px;
+ height: auto;
+ line-height: 1;
+ margin-right: 8px;
+ padding: 0;
+ vertical-align: middle;
+ width: auto;
+}
+
+.lg-outer, .lg-outer .lg, .lg-outer .lg-inner {
+ width: 100%;
+ height: 100%;
+}
+
+.lg-outer #lg-share {
+ position: relative;
+}
+
+.lg-outer #lg-share:after {
+ content: "\e80d";
+}
+
+.lg-outer #lg-share-facebook .lg-icon {
+ color: #3b5998;
+}
+
+.lg-outer #lg-share-facebook .lg-icon:after {
+ content: "\e901";
+}
+
+.lg-outer #lg-share-twitter .lg-icon {
+ color: #00aced;
+}
+
+.lg-outer #lg-share-twitter .lg-icon:after {
+ content: "\e904";
+}
+
+.lg-outer #lg-share-googleplus .lg-icon {
+ color: #dd4b39;
+}
+
+.lg-outer #lg-share-googleplus .lg-icon:after {
+ content: "\e902";
+}
+
+.lg-outer #lg-share-pinterest .lg-icon {
+ color: #cb2027;
+}
+
+.lg-outer #lg-share-pinterest .lg-icon:after {
+ content: "\e903";
+}
+
+.lg-group:after {
+ content: "";
+ display: table;
+ clear: both;
+}
+
+.lg-outer {
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 1090;
+ text-align: left;
+ opacity: 0;
+ -webkit-transition: opacity .15s ease 0s;
+ -o-transition: opacity .15s ease 0s;
+ transition: opacity .15s ease 0s;
+}
+
+.lg-outer * {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.lg-outer.lg-visible {
+ opacity: 1;
+}
+
+.lg-outer.lg-css3 .lg-item.lg-current, .lg-outer.lg-css3 .lg-item.lg-next-slide, .lg-outer.lg-css3 .lg-item.lg-prev-slide {
+ -webkit-transition-duration: inherit !important;
+ transition-duration: inherit !important;
+ -webkit-transition-timing-function: inherit !important;
+ transition-timing-function: inherit !important;
+}
+
+.lg-outer.lg-css3.lg-dragging .lg-item.lg-current, .lg-outer.lg-css3.lg-dragging .lg-item.lg-next-slide, .lg-outer.lg-css3.lg-dragging .lg-item.lg-prev-slide {
+ -webkit-transition-duration: 0s !important;
+ transition-duration: 0s !important;
+ opacity: 1;
+}
+
+.lg-outer.lg-grab img.lg-object {
+ cursor: -webkit-grab;
+ cursor: -moz-grab;
+ cursor: -o-grab;
+ cursor: -ms-grab;
+ cursor: grab;
+}
+
+.lg-outer.lg-grabbing img.lg-object {
+ cursor: move;
+ cursor: -webkit-grabbing;
+ cursor: -moz-grabbing;
+ cursor: -o-grabbing;
+ cursor: -ms-grabbing;
+ cursor: grabbing;
+}
+
+.lg-outer .lg {
+ position: relative;
+ overflow: hidden;
+ margin-left: auto;
+ margin-right: auto;
+ max-width: 100%;
+ max-height: 100%;
+}
+
+.lg-outer .lg-inner {
+ position: absolute;
+ left: 0;
+ top: 0;
+ white-space: nowrap;
+}
+
+.lg-outer .lg-item {
+ background: url(../images/loading.gif) center center no-repeat;
+ display: none !important;
+}
+
+.lg-outer.lg-css .lg-current, .lg-outer.lg-css3 .lg-current, .lg-outer.lg-css3 .lg-next-slide, .lg-outer.lg-css3 .lg-prev-slide {
+ display: inline-block !important;
+}
+
+.lg-outer .lg-img-wrap, .lg-outer .lg-item {
+ display: inline-block;
+ text-align: center;
+ position: absolute;
+ width: 100%;
+ height: 100%;
+}
+
+.lg-outer .lg-img-wrap:before, .lg-outer .lg-item:before {
+ content: "";
+ display: inline-block;
+ height: 50%;
+ width: 1px;
+ margin-right: -1px;
+}
+
+.lg-outer .lg-img-wrap {
+ position: absolute;
+ padding: 0 5px;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+}
+
+.lg-outer .lg-item.lg-complete {
+ background-image: none;
+}
+
+.lg-outer .lg-item.lg-current {
+ z-index: 1060;
+}
+
+.lg-outer .lg-image {
+ display: inline-block;
+ vertical-align: middle;
+ max-width: 100%;
+ max-height: 100%;
+ width: auto !important;
+ height: auto !important;
+}
+
+.lg-outer.lg-show-after-load .lg-item .lg-object, .lg-outer.lg-show-after-load .lg-item .lg-video-play {
+ opacity: 0;
+ -webkit-transition: opacity .15s ease 0s;
+ -o-transition: opacity .15s ease 0s;
+ transition: opacity .15s ease 0s;
+}
+
+.lg-outer.lg-show-after-load .lg-item.lg-complete .lg-object, .lg-outer.lg-show-after-load .lg-item.lg-complete .lg-video-play {
+ opacity: 1;
+}
+
+.lg-outer .lg-empty-html, .lg-outer.lg-hide-download #lg-download {
+ display: none;
+}
+
+.lg-backdrop {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ z-index: 1090;
+ background-color: #000000;
+ opacity: 0;
+ -webkit-transition: opacity .15s ease 0s;
+ -o-transition: opacity .15s ease 0s;
+ transition: opacity .15s ease 0s;
+}
+
+.lg-backdrop.in {
+ opacity: .93;
+}
+
+.lg-css3.lg-no-trans .lg-current, .lg-css3.lg-no-trans .lg-next-slide, .lg-css3.lg-no-trans .lg-prev-slide {
+ -webkit-transition: none 0s ease 0s !important;
+ -moz-transition: none 0s ease 0s !important;
+ -o-transition: none 0s ease 0s !important;
+ transition: none 0s ease 0s !important;
+}
+
+.lg-css3.lg-use-css3 .lg-item, .lg-css3.lg-use-left .lg-item {
+ -webkit-backface-visibility: hidden;
+ -moz-backface-visibility: hidden;
+ backface-visibility: hidden;
+}
+
+.lg-css3.lg-fade .lg-item {
+ opacity: 0;
+}
+
+.lg-css3.lg-fade .lg-item.lg-current {
+ opacity: 1;
+}
+
+.lg-css3.lg-fade .lg-item.lg-current, .lg-css3.lg-fade .lg-item.lg-next-slide, .lg-css3.lg-fade .lg-item.lg-prev-slide {
+ -webkit-transition: opacity .1s ease 0s;
+ -moz-transition: opacity .1s ease 0s;
+ -o-transition: opacity .1s ease 0s;
+ transition: opacity .1s ease 0s;
+}
+
+.lg-css3.lg-slide.lg-use-css3 .lg-item {
+ opacity: 0;
+}
+
+.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide {
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+}
+
+.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide {
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+}
+
+.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+}
+
+.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current, .lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide, .lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide {
+ -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
+ -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
+ -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
+ transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
+}
+
+.lg-css3.lg-slide.lg-use-left .lg-item {
+ opacity: 0;
+ position: absolute;
+ left: 0;
+}
+
+.lg-css3.lg-slide.lg-use-left .lg-item.lg-prev-slide {
+ left: -100%;
+}
+
+.lg-css3.lg-slide.lg-use-left .lg-item.lg-next-slide {
+ left: 100%;
+}
+
+.lg-css3.lg-slide.lg-use-left .lg-item.lg-current {
+ left: 0;
+ opacity: 1;
+}
+
+.lg-css3.lg-slide.lg-use-left .lg-item.lg-current, .lg-css3.lg-slide.lg-use-left .lg-item.lg-next-slide, .lg-css3.lg-slide.lg-use-left .lg-item.lg-prev-slide {
+ -webkit-transition: left 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
+ -moz-transition: left 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
+ -o-transition: left 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
+ transition: left 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
+}
+
+/*
+* Material Parallax
+*/
+.parallax-container {
+ position: relative;
+ overflow: hidden;
+}
+
+.material-parallax {
+ position: absolute;
+ top: 0;
+ left: -1px;
+ right: -1px;
+ bottom: 0;
+ z-index: 0;
+}
+
+.parallax-content {
+ position: relative;
+ z-index: 1;
+}
+
+.material-parallax img {
+ display: none;
+ position: absolute;
+ left: 50%;
+ bottom: 0;
+ min-width: 101%;
+ min-height: 101%;
+ max-width: none;
+ transform: translate3d(-50%, 0, 0);
+}
+
+.parallax-disabled {
+ background-size: cover;
+ background-position: center;
+}
+
+html:not(.ie-11):not(.ios) .parallax-disabled {
+ background-attachment: fixed;
+}
+
+/*
+*
+* Slick Carousel
+*/
+/*rtl:begin:ignore*/
+.slick-slider {
+ position: relative;
+ display: block;
+ box-sizing: border-box;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ -ms-touch-action: pan-y;
+ touch-action: pan-y;
+ -webkit-tap-highlight-color: transparent;
+}
+
+.slick-list {
+ position: relative;
+ overflow: hidden;
+ display: block;
+ margin: 0;
+ padding: 0;
+}
+
+.slick-list:focus {
+ outline: none;
+}
+
+.slick-list.dragging {
+ cursor: pointer;
+ cursor: hand;
+}
+
+.slick-slider .slick-track,
+.slick-slider .slick-list {
+ transform: translate3d(0, 0, 0);
+}
+
+.slick-track {
+ position: relative;
+ left: 0;
+ top: 0;
+ display: block;
+}
+
+.slick-track::before, .slick-track::after {
+ content: "";
+ display: table;
+}
+
+.slick-track::after {
+ clear: both;
+}
+
+.slick-loading .slick-track {
+ visibility: hidden;
+}
+
+.slick-slide {
+ float: left;
+ height: 100%;
+ min-height: 1px;
+ display: none;
+}
+
+[dir="rtl"] .slick-slide {
+ float: right;
+}
+
+.slick-slide img {
+ display: block;
+}
+
+.slick-slide.slick-loading img {
+ display: none;
+}
+
+.slick-slide.dragging img {
+ pointer-events: none;
+}
+
+.slick-initialized .slick-slide {
+ display: block;
+}
+
+.slick-loading .slick-slide {
+ visibility: hidden;
+}
+
+.slick-vertical .slick-slide {
+ display: block;
+ height: auto;
+ border: 1px solid transparent;
+}
+
+.slick-arrow.slick-hidden {
+ display: none;
+}
+
+.slick-loading .slick-list {
+ background: #ffffff url("./../images/ajax-loader.gif") center center no-repeat;
+}
+
+/* Icons */
+/* Arrows */
+.slick-prev,
+.slick-next {
+ position: absolute;
+ display: none;
+ height: 20px;
+ width: 24px;
+ line-height: 0;
+ font-size: 0;
+ cursor: pointer;
+ background: transparent;
+ color: transparent;
+ top: 50%;
+ transform: translate(0, -50%);
+ padding: 0;
+ border: none;
+ outline: none;
+ z-index: 9;
+}
+
+.slick-prev:hover, .slick-prev:focus,
+.slick-next:hover,
+.slick-next:focus {
+ outline: none;
+ color: transparent;
+ background: transparent;
+}
+
+.slick-prev:hover:before, .slick-prev:focus:before,
+.slick-next:hover:before,
+.slick-next:focus:before {
+ opacity: 1;
+ color: #4849b8;
+}
+
+.slick-prev.slick-disabled:before,
+.slick-next.slick-disabled:before {
+ opacity: 0.25;
+}
+
+@media (min-width: 992px) {
+ .slick-prev,
+ .slick-next {
+ display: block;
+ }
+}
+
+.slick-prev:before, .slick-next:before {
+ font-family: 'Linearicons';
+ font-size: 24px;
+ line-height: 1;
+ color: #151515;
+ opacity: 1;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ transition: all .3s;
+}
+
+.post-corporate.post-corporate-img-bg .slick-prev:before, .section-main-bunner .slick-prev:before, .context-dark .slick-prev:before, .bg-gray-600 .slick-prev:before, .bg-gray-700 .slick-prev:before, .bg-gray-800 .slick-prev:before, .bg-primary .slick-prev:before, .bg-pink .slick-prev:before, .bg-secondary .slick-prev:before, .bg-secondary-2 .slick-prev:before, .bg-green .slick-prev:before,
+.post-corporate.post-corporate-img-bg .slick-next:before,
+.section-main-bunner .slick-next:before,
+.context-dark .slick-next:before,
+.bg-gray-600 .slick-next:before,
+.bg-gray-700 .slick-next:before,
+.bg-gray-800 .slick-next:before,
+.bg-primary .slick-next:before,
+.bg-pink .slick-next:before,
+.bg-secondary .slick-next:before,
+.bg-secondary-2 .slick-next:before,
+.bg-green .slick-next:before {
+ color: #ffffff;
+}
+
+.post-corporate.post-corporate-img-bg .slick-prev:hover::before, .section-main-bunner .slick-prev:hover::before, .context-dark .slick-prev:hover::before, .bg-gray-600 .slick-prev:hover::before, .bg-gray-700 .slick-prev:hover::before, .bg-gray-800 .slick-prev:hover::before, .bg-primary .slick-prev:hover::before, .bg-pink .slick-prev:hover::before, .bg-secondary .slick-prev:hover::before, .bg-secondary-2 .slick-prev:hover::before, .bg-green .slick-prev:hover::before,
+.post-corporate.post-corporate-img-bg .slick-next:hover::before,
+.section-main-bunner .slick-next:hover::before,
+.context-dark .slick-next:hover::before,
+.bg-gray-600 .slick-next:hover::before,
+.bg-gray-700 .slick-next:hover::before,
+.bg-gray-800 .slick-next:hover::before,
+.bg-primary .slick-next:hover::before,
+.bg-pink .slick-next:hover::before,
+.bg-secondary .slick-next:hover::before,
+.bg-secondary-2 .slick-next:hover::before,
+.bg-green .slick-next:hover::before {
+ color: rgba(255, 255, 255, 0.7);
+}
+
+.slick-prev {
+ left: 0;
+}
+
+[dir="rtl"] .slick-prev {
+ left: auto;
+ right: 0;
+}
+
+.slick-prev:before {
+ content: '\ec43';
+}
+
+[dir="rtl"] .slick-prev:before {
+ content: "→";
+}
+
+.slick-next {
+ right: 0;
+}
+
+[dir="rtl"] .slick-next {
+ left: 0;
+ right: auto;
+}
+
+.slick-next:before {
+ content: '\ec44';
+}
+
+[dir="rtl"] .slick-next:before {
+ content: "←";
+}
+
+/* Dots */
+.slick-dots {
+ position: absolute;
+ bottom: -45px;
+ list-style: none;
+ display: block;
+ text-align: center;
+ padding: 0;
+ width: 100%;
+}
+
+.slick-dots li {
+ position: relative;
+ display: inline-block;
+ height: 20px;
+ width: 20px;
+ margin: 0 5px;
+ padding: 0;
+ cursor: pointer;
+}
+
+.slick-dots li button {
+ border: 0;
+ background: transparent;
+ display: block;
+ height: 20px;
+ width: 20px;
+ outline: none;
+ line-height: 0;
+ font-size: 0;
+ color: transparent;
+ padding: 5px;
+ cursor: pointer;
+}
+
+.slick-dots li button:hover, .slick-dots li button:focus {
+ outline: none;
+}
+
+.slick-dots li button:hover:before, .slick-dots li button:focus:before {
+ opacity: 1;
+}
+
+.slick-dots li button:before {
+ position: absolute;
+ top: 0;
+ left: 0;
+ content: "•";
+ width: 20px;
+ height: 20px;
+ font-family: "Poppins", sans-serif;
+ font-size: 6px;
+ line-height: 20px;
+ text-align: center;
+ color: black;
+ opacity: 0.25;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+.slick-dots li.slick-active button:before {
+ color: black;
+ opacity: 0.75;
+}
+
+/*rtl:end:ignore*/
+.slick-slider + .slider-dots {
+ margin-top: 40px;
+}
+
+@media (min-width: 1200px) {
+ .slick-slider + .slider-dots {
+ margin-top: 60px;
+ }
+}
+
+.slider-dots {
+ max-width: 320px;
+ margin-left: auto;
+ margin-right: auto;
+ text-align: center;
+}
+
+.slider-dots .slick-dot-item {
+ padding-bottom: 15px;
+ cursor: pointer;
+}
+
+.slider-dots .slick-dot-item img {
+ border-radius: 50%;
+ transition: all .3s;
+}
+
+.slider-dots .item.slick-current .slick-dot-item img {
+ box-shadow: 4px 8px 8px rgba(21, 21, 21, 0.25);
+}
+
+@media (max-width: 991.98px) {
+ .slick-style-1 .slick-arrow {
+ display: none !important;
+ }
+}
+
+/**
+ * Select 2
+ */
+.select2-container {
+ position: relative;
+ display: inline-block;
+ width: 100% !important;
+ margin: 0;
+ vertical-align: middle;
+ box-sizing: border-box;
+}
+
+.select2-container .select2-selection--single {
+ display: block;
+ height: 40px;
+ font-weight: 400;
+ box-sizing: border-box;
+ cursor: pointer;
+ user-select: none;
+}
+
+.select2-container .select2-selection--single .select2-selection__rendered {
+ display: block;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+.select2-container .select2-selection--single .select2-selection__clear {
+ position: relative;
+}
+
+.select2-container .select2-selection--multiple {
+ display: block;
+ box-sizing: border-box;
+ cursor: pointer;
+ user-select: none;
+}
+
+.select2-container .select2-selection--multiple .select2-selection__rendered {
+ display: flex;
+ flex-wrap: wrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ line-height: 1;
+}
+
+.select2-container .select2-search--inline {
+ align-self: center;
+}
+
+.select2-container .select2-search--inline .select2-search__field {
+ display: block;
+ padding: 0;
+ border: none;
+ font-size: 20px;
+ min-height: 30px;
+ box-sizing: border-box;
+}
+
+.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {
+ -webkit-appearance: none;
+}
+
+.has-error .select2-container {
+ outline: 1px dashed red;
+}
+
+@media (min-width: 768px) {
+ .select2-container {
+ max-width: 66px;
+ }
+}
+
+.select2-dropdown {
+ position: absolute;
+ left: -100000px;
+ z-index: 1051;
+ width: 100%;
+ display: block;
+ box-sizing: border-box;
+ background-color: #ffffff;
+ color: #151515;
+}
+
+.select2-results {
+ display: block;
+}
+
+.select2-results__options {
+ text-align: center;
+ list-style: none;
+ margin: 0;
+ padding: 0;
+ background: #323232;
+ box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
+}
+
+.select2-results__option {
+ padding-left: 10px;
+ padding-right: 10px;
+ user-select: none;
+ color: #ffffff;
+}
+
+.select2-results__option[aria-selected] {
+ cursor: pointer;
+}
+
+.select2-container--open .select2-dropdown {
+ left: 0;
+}
+
+.select2-container--open .select2-dropdown--above {
+ border-bottom: none;
+ border-bottom-left-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.select2-container--open .select2-dropdown--below {
+ border-top: 1px solid white;
+}
+
+.select2-search--dropdown {
+ display: block;
+ padding: 4px;
+}
+
+.select2-search--dropdown .select2-search__field {
+ padding: 4px;
+ width: 100%;
+ box-sizing: border-box;
+}
+
+.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {
+ -webkit-appearance: none;
+}
+
+.select2-search--dropdown.select2-search--hide {
+ display: none;
+}
+
+.select2-close-mask {
+ border: 0;
+ margin: 0;
+ padding: 0;
+ display: block;
+ position: fixed;
+ left: 0;
+ top: 0;
+ min-height: 100%;
+ min-width: 100%;
+ height: auto;
+ width: auto;
+ opacity: 0;
+ z-index: 99;
+ background-color: #fff;
+ filter: alpha(opacity=0);
+}
+
+.select2-hidden-accessible {
+ border: 0 !important;
+ clip: rect(0 0 0 0) !important;
+ clip-path: inset(50%) !important;
+ height: 1px !important;
+ overflow: hidden !important;
+ padding: 0 !important;
+ position: absolute !important;
+ width: 1px !important;
+ white-space: nowrap !important;
+}
+
+.select2-container--default .select2-selection--single {
+ background-color: #ffffff;
+}
+
+.select2-container--default .select2-selection--single .select2-selection__rendered {
+ padding-top: 10px;
+ padding-bottom: 10px;
+ padding-left: 0;
+ font-size: 20px;
+ line-height: 1;
+ color: #151515;
+ padding-right: 20px;
+}
+
+.select2-container--default .select2-selection--single .select2-selection__clear {
+ cursor: pointer;
+ float: right;
+ font-weight: bold;
+}
+
+.select2-container--default .select2-selection--single .select2-selection__placeholder {
+ color: #151515;
+}
+
+.select2-container--default .select2-selection--single .select2-selection__arrow {
+ position: absolute;
+ top: 50%;
+ right: 0;
+ transform: translateY(-50%);
+ width: 20px;
+ height: 26px;
+}
+
+.select2-container--default .select2-selection--single .select2-selection__arrow b {
+ display: inline;
+}
+
+.select2-container--default .select2-selection--single .select2-selection__arrow b::before {
+ content: '\f236';
+ font-size: 24px;
+ line-height: 1;
+ font-family: "Material Design Icons";
+}
+
+.select2-container--default.select2-container--disabled .select2-selection--single {
+ cursor: default;
+ background-color: #ffffff;
+ color: #3b3b3b;
+}
+
+.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear {
+ display: none;
+}
+
+.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b::before {
+ content: '\f239';
+}
+
+.select2-container--default .select2-selection--multiple {
+ background-color: #ffffff;
+ cursor: text;
+}
+
+.select2-container--default .select2-selection--multiple .select2-selection__rendered {
+ width: 100%;
+ padding: 5px 5px 0px -5px;
+ list-style: none;
+ box-sizing: border-box;
+}
+
+.select2-container--default .select2-selection--multiple .select2-selection__rendered li {
+ list-style: none;
+ margin-bottom: 5px;
+ margin-left: 5px;
+}
+
+.select2-container--default .select2-selection--multiple .select2-selection__placeholder {
+ color: #151515;
+}
+
+.select2-container--default .select2-selection--multiple .select2-selection__clear {
+ cursor: pointer;
+ font-weight: bold;
+ margin-top: 5px;
+ margin-right: 10px;
+}
+
+.select2-container--default .select2-selection--multiple .select2-selection__choice {
+ padding: 5px;
+ cursor: default;
+ font-size: 20px;
+ background-color: #ffffff;
+ color: #000000;
+}
+
+.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
+ cursor: pointer;
+ display: inline-block;
+ font-weight: bold;
+ margin-right: 2px;
+ color: #000000;
+}
+
+.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
+ color: #ffffff;
+}
+
+.select2-container--default.select2-container--focus .select2-selection--multiple {
+ outline: 0;
+}
+
+.select2-container--default.select2-container--disabled .select2-selection--multiple {
+ cursor: default;
+ background-color: #ffffff;
+ color: #3b3b3b;
+}
+
+.select2-container--default.select2-container--disabled .select2-selection__choice__remove {
+ display: none;
+}
+
+.select2-container--default.select2-container--open.select2-container--above .select2-selection--single, .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple {
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+}
+
+.select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {
+ border-bottom-left-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.select2-container--default .select2-search--inline .select2-search__field {
+ background: transparent;
+ border: none;
+ outline: 0;
+ box-shadow: none;
+ -webkit-appearance: textfield;
+}
+
+.select2-container--default .select2-search--inline .select2-search__field, .select2-container--default .select2-search--inline .select2-search__field::-webkit-input-placeholder {
+ color: #151515;
+}
+
+.select2-container--default .select2-results > .select2-results__options {
+ max-height: 200px;
+ overflow-y: auto;
+}
+
+.select2-container--default .select2-results__option[role=group] {
+ padding: 0;
+}
+
+.select2-container--default .select2-results__option[aria-disabled=true] {
+ background-color: #ffffff;
+ color: #3b3b3b;
+}
+
+.select2-container--default .select2-results__option:hover, .select2-container--default .select2-results__option[aria-selected=true] {
+ background-color: #ffffff;
+ color: #000000;
+}
+
+.select2-container--default .select2-results__option .select2-results__option {
+ padding-left: 1em;
+}
+
+.select2-container--default .select2-results__option .select2-results__option .select2-results__group {
+ padding-left: 0;
+}
+
+.select2-container--default .select2-results__option .select2-results__option .select2-results__option {
+ margin-left: -1em;
+ padding-left: 2em;
+}
+
+.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
+ margin-left: -2em;
+ padding-left: 3em;
+}
+
+.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
+ margin-left: -3em;
+ padding-left: 4em;
+}
+
+.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
+ margin-left: -4em;
+ padding-left: 5em;
+}
+
+.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
+ margin-left: -5em;
+ padding-left: 6em;
+}
+
+.select2-container--default .select2-results__group {
+ cursor: default;
+ display: block;
+ padding: 6px;
+}
+
+html .dtp {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background: rgba(0, 0, 0, 0.4);
+ z-index: 2000;
+}
+
+html .dtp > .dtp-content {
+ background: #ffffff;
+ max-width: 300px;
+ max-height: 100vh;
+ overflow-y: auto;
+ box-shadow: -3px 0px 50px -2px rgba(0, 0, 0, 0.09);
+ position: relative;
+ left: 50%;
+ margin: 0 auto;
+}
+
+html .dtp-header {
+ background: #4849b8;
+ color: #ffffff;
+ text-align: center;
+ padding: 0.3rem;
+ position: relative;
+}
+
+html .dtp-date, html .dtp-time {
+ background: #5abe6a;
+ text-align: center;
+ color: #ffffff;
+ padding: 10px;
+}
+
+html .dtp-date > div {
+ padding: 0;
+ margin: 0;
+}
+
+html .dtp-actual-month {
+ font-size: 1.5em;
+}
+
+html .dtp-actual-num, html .dtp-actual-maxtime {
+ font-size: 3em;
+ line-height: 0.9;
+}
+
+html .dtp-actual-year {
+ font-size: 1.5em;
+ color: #ffffff;
+}
+
+html .dtp-picker {
+ padding: 0.625rem;
+ text-align: center;
+}
+
+html .dtp-picker-month, html .dtp-actual-time {
+ font-weight: 500;
+ text-align: center;
+}
+
+html .dtp-close {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ right: 1rem;
+}
+
+html .dtp-close > a {
+ display: inline-block;
+ vertical-align: middle;
+ color: #ffffff;
+}
+
+html .dtp table.dtp-picker-days {
+ margin: 0;
+ border: none;
+}
+
+html .dtp table.dtp-picker-days tr {
+ border: none;
+}
+
+html .dtp table.dtp-picker-days tr > td {
+ border: none;
+ font-weight: 700;
+ font-size: 14px;
+ text-align: center;
+ padding: 1rem 0.3rem;
+}
+
+html .dtp table.dtp-picker-days tr > td > span.dtp-select-day {
+ color: #bdbdbd !important;
+}
+
+html .dtp table.dtp-picker-days tr > td > a {
+ color: #000000;
+ width: 24px;
+ height: 24px;
+ display: inline-block;
+ text-align: center;
+ line-height: 24px;
+ border-radius: 50%;
+ transition: .3s all ease;
+}
+
+html .dtp .dtp-picker-time > a {
+ color: #000000;
+ padding: .25rem .3125rem .3125rem .375rem;
+ border-radius: 50% !important;
+}
+
+html .dtp table.dtp-picker-days tr > td > a.selected {
+ background: #4849b8;
+ color: #ffffff;
+}
+
+html .dtp table.dtp-picker-days tr > th {
+ color: #000000;
+ text-align: center;
+ font-weight: 700;
+ padding: 0.4rem 0.3rem;
+ border-bottom: none;
+}
+
+html .dtp .p10, html .dtp .p20, html .dtp .p60, html .dtp .p80 {
+ display: inline-block;
+ vertical-align: middle;
+}
+
+html .dtp .p10 {
+ width: 10%;
+}
+
+html .dtp .p10 > a {
+ color: #ffffff;
+ transition: .3s all ease;
+}
+
+html .dtp .p10 > a:hover {
+ color: #151515;
+}
+
+html .dtp .p20 {
+ width: 20%;
+}
+
+html .dtp .p60 {
+ width: 60%;
+}
+
+html .dtp .p80 {
+ width: 80%;
+}
+
+html .dtp-picker-month {
+ display: none !important;
+}
+
+html .dtp-meridien-am, html .dtp-meridien-pm {
+ position: relative;
+ top: 10px;
+ color: #000000;
+ font-weight: 500;
+ padding: .4375rem .3125rem;
+ border-radius: 50% !important;
+ text-decoration: none;
+ background: #eeeeee;
+ font-size: .625rem;
+}
+
+html .dtp-actual-meridien a.selected {
+ background: #4849b8;
+ color: #ffffff;
+}
+
+html .dtp-picker-time {
+ position: absolute;
+ width: 30px;
+ height: 30px;
+ font-size: 1em;
+ border-radius: 50%;
+ cursor: pointer;
+ font-weight: 500;
+ text-align: center !important;
+}
+
+html .dtp-picker-time > a {
+ display: block;
+ line-height: 23px;
+ padding: 0.3rem 0.3rem 0.3rem 0.3rem;
+}
+
+html .dtp-picker-time > a.dtp-select-hour.selected {
+ background: #4849b8;
+ color: #ffffff;
+}
+
+html .dtp-picker-time > a.dtp-select-hour.disabled {
+ color: #444141;
+}
+
+html .dtp-picker-time > a.dtp-select-minute.disabled {
+ color: #444141;
+}
+
+html .dtp-picker-time > a.dtp-select-minute.selected {
+ background: #4849b8;
+ color: #ffffff;
+}
+
+html .dtp-picker-clock {
+ margin: .625rem 1.25rem 0 1.25rem;
+ padding: .625rem;
+ border-radius: 50% !important;
+ background: #E7E7E7;
+}
+
+html .dtp-clock-center {
+ width: 15px;
+ height: 15px;
+ background: #444141;
+ border-radius: 50%;
+ position: absolute;
+ z-index: 50;
+}
+
+html[class*="ie"] html .dtp-clock-center {
+ display: none;
+}
+
+html .dtp-hand, html .dtp-hour-hand {
+ position: absolute;
+ width: 4px;
+ margin-left: -2px;
+ background: #444141;
+ transform: rotate(0deg);
+ transform-origin: bottom;
+ z-index: 1;
+}
+
+html[class*="ie"] html .dtp-hand, html[class*="ie"] html .dtp-hour-hand {
+ display: none;
+}
+
+html .dtp-minute-hand {
+ width: 2px;
+ margin-left: -1px;
+}
+
+html .dtp-hand.on {
+ background: #4849b8;
+}
+
+html .dtp-buttons {
+ padding: 0 .625rem .625rem .625rem;
+ margin: 0;
+ text-align: right;
+}
+
+html .dtp-buttons .btn {
+ margin-bottom: 0;
+}
+
+html .dtp.hidden,
+html .dtp .hidden {
+ display: none;
+}
+
+html .dtp .invisible {
+ visibility: hidden;
+}
diff --git a/public/fonts/FontAwesome.otf b/public/fonts/FontAwesome.otf
new file mode 100644
index 0000000..401ec0f
Binary files /dev/null and b/public/fonts/FontAwesome.otf differ
diff --git a/public/fonts/Henrik-Regular.otf b/public/fonts/Henrik-Regular.otf
new file mode 100644
index 0000000..1dc58c3
Binary files /dev/null and b/public/fonts/Henrik-Regular.otf differ
diff --git a/public/fonts/Henrik-Regular.woff b/public/fonts/Henrik-Regular.woff
new file mode 100644
index 0000000..cd3d3dd
Binary files /dev/null and b/public/fonts/Henrik-Regular.woff differ
diff --git a/public/fonts/Linearicons.eot b/public/fonts/Linearicons.eot
new file mode 100644
index 0000000..513cef7
Binary files /dev/null and b/public/fonts/Linearicons.eot differ
diff --git a/public/fonts/Linearicons.svg b/public/fonts/Linearicons.svg
new file mode 100644
index 0000000..942c1d6
--- /dev/null
+++ b/public/fonts/Linearicons.svg
@@ -0,0 +1,1028 @@
+
+
+
\ No newline at end of file
diff --git a/public/fonts/Linearicons.ttf b/public/fonts/Linearicons.ttf
new file mode 100644
index 0000000..73ec944
Binary files /dev/null and b/public/fonts/Linearicons.ttf differ
diff --git a/public/fonts/Linearicons.woff b/public/fonts/Linearicons.woff
new file mode 100644
index 0000000..2425dc0
Binary files /dev/null and b/public/fonts/Linearicons.woff differ
diff --git a/public/fonts/Restaurant-Regular.eot b/public/fonts/Restaurant-Regular.eot
new file mode 100644
index 0000000..61a4516
Binary files /dev/null and b/public/fonts/Restaurant-Regular.eot differ
diff --git a/public/fonts/Restaurant-Regular.svg b/public/fonts/Restaurant-Regular.svg
new file mode 100644
index 0000000..7ff01d9
--- /dev/null
+++ b/public/fonts/Restaurant-Regular.svg
@@ -0,0 +1,47 @@
+
+
+
\ No newline at end of file
diff --git a/public/fonts/Restaurant-Regular.ttf b/public/fonts/Restaurant-Regular.ttf
new file mode 100644
index 0000000..0894283
Binary files /dev/null and b/public/fonts/Restaurant-Regular.ttf differ
diff --git a/public/fonts/Restaurant-Regular.woff b/public/fonts/Restaurant-Regular.woff
new file mode 100644
index 0000000..b546c33
Binary files /dev/null and b/public/fonts/Restaurant-Regular.woff differ
diff --git a/public/fonts/TuesdayNight-Regular.otf b/public/fonts/TuesdayNight-Regular.otf
new file mode 100644
index 0000000..23b8cb0
Binary files /dev/null and b/public/fonts/TuesdayNight-Regular.otf differ
diff --git a/public/fonts/fontawesome-webfont.eot b/public/fonts/fontawesome-webfont.eot
new file mode 100644
index 0000000..e9f60ca
Binary files /dev/null and b/public/fonts/fontawesome-webfont.eot differ
diff --git a/public/fonts/fontawesome-webfont.svg b/public/fonts/fontawesome-webfont.svg
new file mode 100644
index 0000000..855c845
--- /dev/null
+++ b/public/fonts/fontawesome-webfont.svg
@@ -0,0 +1,2671 @@
+
+
+
diff --git a/public/fonts/fontawesome-webfont.ttf b/public/fonts/fontawesome-webfont.ttf
new file mode 100644
index 0000000..35acda2
Binary files /dev/null and b/public/fonts/fontawesome-webfont.ttf differ
diff --git a/public/fonts/fontawesome-webfont.woff b/public/fonts/fontawesome-webfont.woff
new file mode 100644
index 0000000..400014a
Binary files /dev/null and b/public/fonts/fontawesome-webfont.woff differ
diff --git a/public/fonts/fontawesome-webfont.woff2 b/public/fonts/fontawesome-webfont.woff2
new file mode 100644
index 0000000..4d13fc6
Binary files /dev/null and b/public/fonts/fontawesome-webfont.woff2 differ
diff --git a/public/fonts/lg.eot b/public/fonts/lg.eot
new file mode 100644
index 0000000..51264c4
Binary files /dev/null and b/public/fonts/lg.eot differ
diff --git a/public/fonts/lg.svg b/public/fonts/lg.svg
new file mode 100644
index 0000000..22b1a1f
--- /dev/null
+++ b/public/fonts/lg.svg
@@ -0,0 +1,47 @@
+
+
+
\ No newline at end of file
diff --git a/public/fonts/lg.ttf b/public/fonts/lg.ttf
new file mode 100644
index 0000000..8ad8199
Binary files /dev/null and b/public/fonts/lg.ttf differ
diff --git a/public/fonts/lg.woff b/public/fonts/lg.woff
new file mode 100644
index 0000000..d98ff60
Binary files /dev/null and b/public/fonts/lg.woff differ
diff --git a/public/fonts/materialdesignicons-webfont.eot b/public/fonts/materialdesignicons-webfont.eot
new file mode 100644
index 0000000..15fa077
Binary files /dev/null and b/public/fonts/materialdesignicons-webfont.eot differ
diff --git a/public/fonts/materialdesignicons-webfont.svg b/public/fonts/materialdesignicons-webfont.svg
new file mode 100644
index 0000000..2d9f0ba
--- /dev/null
+++ b/public/fonts/materialdesignicons-webfont.svg
@@ -0,0 +1,4383 @@
+
+
+
diff --git a/public/fonts/materialdesignicons-webfont.ttf b/public/fonts/materialdesignicons-webfont.ttf
new file mode 100644
index 0000000..1fc3931
Binary files /dev/null and b/public/fonts/materialdesignicons-webfont.ttf differ
diff --git a/public/fonts/materialdesignicons-webfont.woff b/public/fonts/materialdesignicons-webfont.woff
new file mode 100644
index 0000000..554be39
Binary files /dev/null and b/public/fonts/materialdesignicons-webfont.woff differ
diff --git a/public/fonts/materialdesignicons-webfont.woff2 b/public/fonts/materialdesignicons-webfont.woff2
new file mode 100644
index 0000000..b2246e9
Binary files /dev/null and b/public/fonts/materialdesignicons-webfont.woff2 differ
diff --git a/public/js/app.js b/public/js/app.js
new file mode 100644
index 0000000..8c143c5
--- /dev/null
+++ b/public/js/app.js
@@ -0,0 +1,19821 @@
+/******/ (() => { // webpackBootstrap
+/******/ var __webpack_modules__ = ({
+
+/***/ "./node_modules/axios/index.js":
+/*!*************************************!*\
+ !*** ./node_modules/axios/index.js ***!
+ \*************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+module.exports = __webpack_require__(/*! ./lib/axios */ "./node_modules/axios/lib/axios.js");
+
+/***/ }),
+
+/***/ "./node_modules/axios/lib/adapters/xhr.js":
+/*!************************************************!*\
+ !*** ./node_modules/axios/lib/adapters/xhr.js ***!
+ \************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js");
+var settle = __webpack_require__(/*! ./../core/settle */ "./node_modules/axios/lib/core/settle.js");
+var cookies = __webpack_require__(/*! ./../helpers/cookies */ "./node_modules/axios/lib/helpers/cookies.js");
+var buildURL = __webpack_require__(/*! ./../helpers/buildURL */ "./node_modules/axios/lib/helpers/buildURL.js");
+var buildFullPath = __webpack_require__(/*! ../core/buildFullPath */ "./node_modules/axios/lib/core/buildFullPath.js");
+var parseHeaders = __webpack_require__(/*! ./../helpers/parseHeaders */ "./node_modules/axios/lib/helpers/parseHeaders.js");
+var isURLSameOrigin = __webpack_require__(/*! ./../helpers/isURLSameOrigin */ "./node_modules/axios/lib/helpers/isURLSameOrigin.js");
+var createError = __webpack_require__(/*! ../core/createError */ "./node_modules/axios/lib/core/createError.js");
+var defaults = __webpack_require__(/*! ../defaults */ "./node_modules/axios/lib/defaults.js");
+var Cancel = __webpack_require__(/*! ../cancel/Cancel */ "./node_modules/axios/lib/cancel/Cancel.js");
+
+module.exports = function xhrAdapter(config) {
+ return new Promise(function dispatchXhrRequest(resolve, reject) {
+ var requestData = config.data;
+ var requestHeaders = config.headers;
+ var responseType = config.responseType;
+ var onCanceled;
+ function done() {
+ if (config.cancelToken) {
+ config.cancelToken.unsubscribe(onCanceled);
+ }
+
+ if (config.signal) {
+ config.signal.removeEventListener('abort', onCanceled);
+ }
+ }
+
+ if (utils.isFormData(requestData)) {
+ delete requestHeaders['Content-Type']; // Let the browser set it
+ }
+
+ var request = new XMLHttpRequest();
+
+ // HTTP basic authentication
+ if (config.auth) {
+ var username = config.auth.username || '';
+ var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';
+ requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);
+ }
+
+ var fullPath = buildFullPath(config.baseURL, config.url);
+ request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);
+
+ // Set the request timeout in MS
+ request.timeout = config.timeout;
+
+ function onloadend() {
+ if (!request) {
+ return;
+ }
+ // Prepare the response
+ var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;
+ var responseData = !responseType || responseType === 'text' || responseType === 'json' ?
+ request.responseText : request.response;
+ var response = {
+ data: responseData,
+ status: request.status,
+ statusText: request.statusText,
+ headers: responseHeaders,
+ config: config,
+ request: request
+ };
+
+ settle(function _resolve(value) {
+ resolve(value);
+ done();
+ }, function _reject(err) {
+ reject(err);
+ done();
+ }, response);
+
+ // Clean up request
+ request = null;
+ }
+
+ if ('onloadend' in request) {
+ // Use onloadend if available
+ request.onloadend = onloadend;
+ } else {
+ // Listen for ready state to emulate onloadend
+ request.onreadystatechange = function handleLoad() {
+ if (!request || request.readyState !== 4) {
+ return;
+ }
+
+ // The request errored out and we didn't get a response, this will be
+ // handled by onerror instead
+ // With one exception: request that using file: protocol, most browsers
+ // will return status as 0 even though it's a successful request
+ if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {
+ return;
+ }
+ // readystate handler is calling before onerror or ontimeout handlers,
+ // so we should call onloadend on the next 'tick'
+ setTimeout(onloadend);
+ };
+ }
+
+ // Handle browser request cancellation (as opposed to a manual cancellation)
+ request.onabort = function handleAbort() {
+ if (!request) {
+ return;
+ }
+
+ reject(createError('Request aborted', config, 'ECONNABORTED', request));
+
+ // Clean up request
+ request = null;
+ };
+
+ // Handle low level network errors
+ request.onerror = function handleError() {
+ // Real errors are hidden from us by the browser
+ // onerror should only fire if it's a network error
+ reject(createError('Network Error', config, null, request));
+
+ // Clean up request
+ request = null;
+ };
+
+ // Handle timeout
+ request.ontimeout = function handleTimeout() {
+ var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';
+ var transitional = config.transitional || defaults.transitional;
+ if (config.timeoutErrorMessage) {
+ timeoutErrorMessage = config.timeoutErrorMessage;
+ }
+ reject(createError(
+ timeoutErrorMessage,
+ config,
+ transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',
+ request));
+
+ // Clean up request
+ request = null;
+ };
+
+ // Add xsrf header
+ // This is only done if running in a standard browser environment.
+ // Specifically not if we're in a web worker, or react-native.
+ if (utils.isStandardBrowserEnv()) {
+ // Add xsrf header
+ var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?
+ cookies.read(config.xsrfCookieName) :
+ undefined;
+
+ if (xsrfValue) {
+ requestHeaders[config.xsrfHeaderName] = xsrfValue;
+ }
+ }
+
+ // Add headers to the request
+ if ('setRequestHeader' in request) {
+ utils.forEach(requestHeaders, function setRequestHeader(val, key) {
+ if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {
+ // Remove Content-Type if data is undefined
+ delete requestHeaders[key];
+ } else {
+ // Otherwise add header to the request
+ request.setRequestHeader(key, val);
+ }
+ });
+ }
+
+ // Add withCredentials to request if needed
+ if (!utils.isUndefined(config.withCredentials)) {
+ request.withCredentials = !!config.withCredentials;
+ }
+
+ // Add responseType to request if needed
+ if (responseType && responseType !== 'json') {
+ request.responseType = config.responseType;
+ }
+
+ // Handle progress if needed
+ if (typeof config.onDownloadProgress === 'function') {
+ request.addEventListener('progress', config.onDownloadProgress);
+ }
+
+ // Not all browsers support upload events
+ if (typeof config.onUploadProgress === 'function' && request.upload) {
+ request.upload.addEventListener('progress', config.onUploadProgress);
+ }
+
+ if (config.cancelToken || config.signal) {
+ // Handle cancellation
+ // eslint-disable-next-line func-names
+ onCanceled = function(cancel) {
+ if (!request) {
+ return;
+ }
+ reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);
+ request.abort();
+ request = null;
+ };
+
+ config.cancelToken && config.cancelToken.subscribe(onCanceled);
+ if (config.signal) {
+ config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);
+ }
+ }
+
+ if (!requestData) {
+ requestData = null;
+ }
+
+ // Send the request
+ request.send(requestData);
+ });
+};
+
+
+/***/ }),
+
+/***/ "./node_modules/axios/lib/axios.js":
+/*!*****************************************!*\
+ !*** ./node_modules/axios/lib/axios.js ***!
+ \*****************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var utils = __webpack_require__(/*! ./utils */ "./node_modules/axios/lib/utils.js");
+var bind = __webpack_require__(/*! ./helpers/bind */ "./node_modules/axios/lib/helpers/bind.js");
+var Axios = __webpack_require__(/*! ./core/Axios */ "./node_modules/axios/lib/core/Axios.js");
+var mergeConfig = __webpack_require__(/*! ./core/mergeConfig */ "./node_modules/axios/lib/core/mergeConfig.js");
+var defaults = __webpack_require__(/*! ./defaults */ "./node_modules/axios/lib/defaults.js");
+
+/**
+ * Create an instance of Axios
+ *
+ * @param {Object} defaultConfig The default config for the instance
+ * @return {Axios} A new instance of Axios
+ */
+function createInstance(defaultConfig) {
+ var context = new Axios(defaultConfig);
+ var instance = bind(Axios.prototype.request, context);
+
+ // Copy axios.prototype to instance
+ utils.extend(instance, Axios.prototype, context);
+
+ // Copy context to instance
+ utils.extend(instance, context);
+
+ // Factory for creating new instances
+ instance.create = function create(instanceConfig) {
+ return createInstance(mergeConfig(defaultConfig, instanceConfig));
+ };
+
+ return instance;
+}
+
+// Create the default instance to be exported
+var axios = createInstance(defaults);
+
+// Expose Axios class to allow class inheritance
+axios.Axios = Axios;
+
+// Expose Cancel & CancelToken
+axios.Cancel = __webpack_require__(/*! ./cancel/Cancel */ "./node_modules/axios/lib/cancel/Cancel.js");
+axios.CancelToken = __webpack_require__(/*! ./cancel/CancelToken */ "./node_modules/axios/lib/cancel/CancelToken.js");
+axios.isCancel = __webpack_require__(/*! ./cancel/isCancel */ "./node_modules/axios/lib/cancel/isCancel.js");
+axios.VERSION = (__webpack_require__(/*! ./env/data */ "./node_modules/axios/lib/env/data.js").version);
+
+// Expose all/spread
+axios.all = function all(promises) {
+ return Promise.all(promises);
+};
+axios.spread = __webpack_require__(/*! ./helpers/spread */ "./node_modules/axios/lib/helpers/spread.js");
+
+// Expose isAxiosError
+axios.isAxiosError = __webpack_require__(/*! ./helpers/isAxiosError */ "./node_modules/axios/lib/helpers/isAxiosError.js");
+
+module.exports = axios;
+
+// Allow use of default import syntax in TypeScript
+module.exports["default"] = axios;
+
+
+/***/ }),
+
+/***/ "./node_modules/axios/lib/cancel/Cancel.js":
+/*!*************************************************!*\
+ !*** ./node_modules/axios/lib/cancel/Cancel.js ***!
+ \*************************************************/
+/***/ ((module) => {
+
+"use strict";
+
+
+/**
+ * A `Cancel` is an object that is thrown when an operation is canceled.
+ *
+ * @class
+ * @param {string=} message The message.
+ */
+function Cancel(message) {
+ this.message = message;
+}
+
+Cancel.prototype.toString = function toString() {
+ return 'Cancel' + (this.message ? ': ' + this.message : '');
+};
+
+Cancel.prototype.__CANCEL__ = true;
+
+module.exports = Cancel;
+
+
+/***/ }),
+
+/***/ "./node_modules/axios/lib/cancel/CancelToken.js":
+/*!******************************************************!*\
+ !*** ./node_modules/axios/lib/cancel/CancelToken.js ***!
+ \******************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var Cancel = __webpack_require__(/*! ./Cancel */ "./node_modules/axios/lib/cancel/Cancel.js");
+
+/**
+ * A `CancelToken` is an object that can be used to request cancellation of an operation.
+ *
+ * @class
+ * @param {Function} executor The executor function.
+ */
+function CancelToken(executor) {
+ if (typeof executor !== 'function') {
+ throw new TypeError('executor must be a function.');
+ }
+
+ var resolvePromise;
+
+ this.promise = new Promise(function promiseExecutor(resolve) {
+ resolvePromise = resolve;
+ });
+
+ var token = this;
+
+ // eslint-disable-next-line func-names
+ this.promise.then(function(cancel) {
+ if (!token._listeners) return;
+
+ var i;
+ var l = token._listeners.length;
+
+ for (i = 0; i < l; i++) {
+ token._listeners[i](cancel);
+ }
+ token._listeners = null;
+ });
+
+ // eslint-disable-next-line func-names
+ this.promise.then = function(onfulfilled) {
+ var _resolve;
+ // eslint-disable-next-line func-names
+ var promise = new Promise(function(resolve) {
+ token.subscribe(resolve);
+ _resolve = resolve;
+ }).then(onfulfilled);
+
+ promise.cancel = function reject() {
+ token.unsubscribe(_resolve);
+ };
+
+ return promise;
+ };
+
+ executor(function cancel(message) {
+ if (token.reason) {
+ // Cancellation has already been requested
+ return;
+ }
+
+ token.reason = new Cancel(message);
+ resolvePromise(token.reason);
+ });
+}
+
+/**
+ * Throws a `Cancel` if cancellation has been requested.
+ */
+CancelToken.prototype.throwIfRequested = function throwIfRequested() {
+ if (this.reason) {
+ throw this.reason;
+ }
+};
+
+/**
+ * Subscribe to the cancel signal
+ */
+
+CancelToken.prototype.subscribe = function subscribe(listener) {
+ if (this.reason) {
+ listener(this.reason);
+ return;
+ }
+
+ if (this._listeners) {
+ this._listeners.push(listener);
+ } else {
+ this._listeners = [listener];
+ }
+};
+
+/**
+ * Unsubscribe from the cancel signal
+ */
+
+CancelToken.prototype.unsubscribe = function unsubscribe(listener) {
+ if (!this._listeners) {
+ return;
+ }
+ var index = this._listeners.indexOf(listener);
+ if (index !== -1) {
+ this._listeners.splice(index, 1);
+ }
+};
+
+/**
+ * Returns an object that contains a new `CancelToken` and a function that, when called,
+ * cancels the `CancelToken`.
+ */
+CancelToken.source = function source() {
+ var cancel;
+ var token = new CancelToken(function executor(c) {
+ cancel = c;
+ });
+ return {
+ token: token,
+ cancel: cancel
+ };
+};
+
+module.exports = CancelToken;
+
+
+/***/ }),
+
+/***/ "./node_modules/axios/lib/cancel/isCancel.js":
+/*!***************************************************!*\
+ !*** ./node_modules/axios/lib/cancel/isCancel.js ***!
+ \***************************************************/
+/***/ ((module) => {
+
+"use strict";
+
+
+module.exports = function isCancel(value) {
+ return !!(value && value.__CANCEL__);
+};
+
+
+/***/ }),
+
+/***/ "./node_modules/axios/lib/core/Axios.js":
+/*!**********************************************!*\
+ !*** ./node_modules/axios/lib/core/Axios.js ***!
+ \**********************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js");
+var buildURL = __webpack_require__(/*! ../helpers/buildURL */ "./node_modules/axios/lib/helpers/buildURL.js");
+var InterceptorManager = __webpack_require__(/*! ./InterceptorManager */ "./node_modules/axios/lib/core/InterceptorManager.js");
+var dispatchRequest = __webpack_require__(/*! ./dispatchRequest */ "./node_modules/axios/lib/core/dispatchRequest.js");
+var mergeConfig = __webpack_require__(/*! ./mergeConfig */ "./node_modules/axios/lib/core/mergeConfig.js");
+var validator = __webpack_require__(/*! ../helpers/validator */ "./node_modules/axios/lib/helpers/validator.js");
+
+var validators = validator.validators;
+/**
+ * Create a new instance of Axios
+ *
+ * @param {Object} instanceConfig The default config for the instance
+ */
+function Axios(instanceConfig) {
+ this.defaults = instanceConfig;
+ this.interceptors = {
+ request: new InterceptorManager(),
+ response: new InterceptorManager()
+ };
+}
+
+/**
+ * Dispatch a request
+ *
+ * @param {Object} config The config specific for this request (merged with this.defaults)
+ */
+Axios.prototype.request = function request(configOrUrl, config) {
+ /*eslint no-param-reassign:0*/
+ // Allow for axios('example/url'[, config]) a la fetch API
+ if (typeof configOrUrl === 'string') {
+ config = config || {};
+ config.url = configOrUrl;
+ } else {
+ config = configOrUrl || {};
+ }
+
+ if (!config.url) {
+ throw new Error('Provided config url is not valid');
+ }
+
+ config = mergeConfig(this.defaults, config);
+
+ // Set config.method
+ if (config.method) {
+ config.method = config.method.toLowerCase();
+ } else if (this.defaults.method) {
+ config.method = this.defaults.method.toLowerCase();
+ } else {
+ config.method = 'get';
+ }
+
+ var transitional = config.transitional;
+
+ if (transitional !== undefined) {
+ validator.assertOptions(transitional, {
+ silentJSONParsing: validators.transitional(validators.boolean),
+ forcedJSONParsing: validators.transitional(validators.boolean),
+ clarifyTimeoutError: validators.transitional(validators.boolean)
+ }, false);
+ }
+
+ // filter out skipped interceptors
+ var requestInterceptorChain = [];
+ var synchronousRequestInterceptors = true;
+ this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {
+ if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {
+ return;
+ }
+
+ synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;
+
+ requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);
+ });
+
+ var responseInterceptorChain = [];
+ this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {
+ responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);
+ });
+
+ var promise;
+
+ if (!synchronousRequestInterceptors) {
+ var chain = [dispatchRequest, undefined];
+
+ Array.prototype.unshift.apply(chain, requestInterceptorChain);
+ chain = chain.concat(responseInterceptorChain);
+
+ promise = Promise.resolve(config);
+ while (chain.length) {
+ promise = promise.then(chain.shift(), chain.shift());
+ }
+
+ return promise;
+ }
+
+
+ var newConfig = config;
+ while (requestInterceptorChain.length) {
+ var onFulfilled = requestInterceptorChain.shift();
+ var onRejected = requestInterceptorChain.shift();
+ try {
+ newConfig = onFulfilled(newConfig);
+ } catch (error) {
+ onRejected(error);
+ break;
+ }
+ }
+
+ try {
+ promise = dispatchRequest(newConfig);
+ } catch (error) {
+ return Promise.reject(error);
+ }
+
+ while (responseInterceptorChain.length) {
+ promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());
+ }
+
+ return promise;
+};
+
+Axios.prototype.getUri = function getUri(config) {
+ if (!config.url) {
+ throw new Error('Provided config url is not valid');
+ }
+ config = mergeConfig(this.defaults, config);
+ return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\?/, '');
+};
+
+// Provide aliases for supported request methods
+utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {
+ /*eslint func-names:0*/
+ Axios.prototype[method] = function(url, config) {
+ return this.request(mergeConfig(config || {}, {
+ method: method,
+ url: url,
+ data: (config || {}).data
+ }));
+ };
+});
+
+utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {
+ /*eslint func-names:0*/
+ Axios.prototype[method] = function(url, data, config) {
+ return this.request(mergeConfig(config || {}, {
+ method: method,
+ url: url,
+ data: data
+ }));
+ };
+});
+
+module.exports = Axios;
+
+
+/***/ }),
+
+/***/ "./node_modules/axios/lib/core/InterceptorManager.js":
+/*!***********************************************************!*\
+ !*** ./node_modules/axios/lib/core/InterceptorManager.js ***!
+ \***********************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js");
+
+function InterceptorManager() {
+ this.handlers = [];
+}
+
+/**
+ * Add a new interceptor to the stack
+ *
+ * @param {Function} fulfilled The function to handle `then` for a `Promise`
+ * @param {Function} rejected The function to handle `reject` for a `Promise`
+ *
+ * @return {Number} An ID used to remove interceptor later
+ */
+InterceptorManager.prototype.use = function use(fulfilled, rejected, options) {
+ this.handlers.push({
+ fulfilled: fulfilled,
+ rejected: rejected,
+ synchronous: options ? options.synchronous : false,
+ runWhen: options ? options.runWhen : null
+ });
+ return this.handlers.length - 1;
+};
+
+/**
+ * Remove an interceptor from the stack
+ *
+ * @param {Number} id The ID that was returned by `use`
+ */
+InterceptorManager.prototype.eject = function eject(id) {
+ if (this.handlers[id]) {
+ this.handlers[id] = null;
+ }
+};
+
+/**
+ * Iterate over all the registered interceptors
+ *
+ * This method is particularly useful for skipping over any
+ * interceptors that may have become `null` calling `eject`.
+ *
+ * @param {Function} fn The function to call for each interceptor
+ */
+InterceptorManager.prototype.forEach = function forEach(fn) {
+ utils.forEach(this.handlers, function forEachHandler(h) {
+ if (h !== null) {
+ fn(h);
+ }
+ });
+};
+
+module.exports = InterceptorManager;
+
+
+/***/ }),
+
+/***/ "./node_modules/axios/lib/core/buildFullPath.js":
+/*!******************************************************!*\
+ !*** ./node_modules/axios/lib/core/buildFullPath.js ***!
+ \******************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var isAbsoluteURL = __webpack_require__(/*! ../helpers/isAbsoluteURL */ "./node_modules/axios/lib/helpers/isAbsoluteURL.js");
+var combineURLs = __webpack_require__(/*! ../helpers/combineURLs */ "./node_modules/axios/lib/helpers/combineURLs.js");
+
+/**
+ * Creates a new URL by combining the baseURL with the requestedURL,
+ * only when the requestedURL is not already an absolute URL.
+ * If the requestURL is absolute, this function returns the requestedURL untouched.
+ *
+ * @param {string} baseURL The base URL
+ * @param {string} requestedURL Absolute or relative URL to combine
+ * @returns {string} The combined full path
+ */
+module.exports = function buildFullPath(baseURL, requestedURL) {
+ if (baseURL && !isAbsoluteURL(requestedURL)) {
+ return combineURLs(baseURL, requestedURL);
+ }
+ return requestedURL;
+};
+
+
+/***/ }),
+
+/***/ "./node_modules/axios/lib/core/createError.js":
+/*!****************************************************!*\
+ !*** ./node_modules/axios/lib/core/createError.js ***!
+ \****************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var enhanceError = __webpack_require__(/*! ./enhanceError */ "./node_modules/axios/lib/core/enhanceError.js");
+
+/**
+ * Create an Error with the specified message, config, error code, request and response.
+ *
+ * @param {string} message The error message.
+ * @param {Object} config The config.
+ * @param {string} [code] The error code (for example, 'ECONNABORTED').
+ * @param {Object} [request] The request.
+ * @param {Object} [response] The response.
+ * @returns {Error} The created error.
+ */
+module.exports = function createError(message, config, code, request, response) {
+ var error = new Error(message);
+ return enhanceError(error, config, code, request, response);
+};
+
+
+/***/ }),
+
+/***/ "./node_modules/axios/lib/core/dispatchRequest.js":
+/*!********************************************************!*\
+ !*** ./node_modules/axios/lib/core/dispatchRequest.js ***!
+ \********************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js");
+var transformData = __webpack_require__(/*! ./transformData */ "./node_modules/axios/lib/core/transformData.js");
+var isCancel = __webpack_require__(/*! ../cancel/isCancel */ "./node_modules/axios/lib/cancel/isCancel.js");
+var defaults = __webpack_require__(/*! ../defaults */ "./node_modules/axios/lib/defaults.js");
+var Cancel = __webpack_require__(/*! ../cancel/Cancel */ "./node_modules/axios/lib/cancel/Cancel.js");
+
+/**
+ * Throws a `Cancel` if cancellation has been requested.
+ */
+function throwIfCancellationRequested(config) {
+ if (config.cancelToken) {
+ config.cancelToken.throwIfRequested();
+ }
+
+ if (config.signal && config.signal.aborted) {
+ throw new Cancel('canceled');
+ }
+}
+
+/**
+ * Dispatch a request to the server using the configured adapter.
+ *
+ * @param {object} config The config that is to be used for the request
+ * @returns {Promise} The Promise to be fulfilled
+ */
+module.exports = function dispatchRequest(config) {
+ throwIfCancellationRequested(config);
+
+ // Ensure headers exist
+ config.headers = config.headers || {};
+
+ // Transform request data
+ config.data = transformData.call(
+ config,
+ config.data,
+ config.headers,
+ config.transformRequest
+ );
+
+ // Flatten headers
+ config.headers = utils.merge(
+ config.headers.common || {},
+ config.headers[config.method] || {},
+ config.headers
+ );
+
+ utils.forEach(
+ ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],
+ function cleanHeaderConfig(method) {
+ delete config.headers[method];
+ }
+ );
+
+ var adapter = config.adapter || defaults.adapter;
+
+ return adapter(config).then(function onAdapterResolution(response) {
+ throwIfCancellationRequested(config);
+
+ // Transform response data
+ response.data = transformData.call(
+ config,
+ response.data,
+ response.headers,
+ config.transformResponse
+ );
+
+ return response;
+ }, function onAdapterRejection(reason) {
+ if (!isCancel(reason)) {
+ throwIfCancellationRequested(config);
+
+ // Transform response data
+ if (reason && reason.response) {
+ reason.response.data = transformData.call(
+ config,
+ reason.response.data,
+ reason.response.headers,
+ config.transformResponse
+ );
+ }
+ }
+
+ return Promise.reject(reason);
+ });
+};
+
+
+/***/ }),
+
+/***/ "./node_modules/axios/lib/core/enhanceError.js":
+/*!*****************************************************!*\
+ !*** ./node_modules/axios/lib/core/enhanceError.js ***!
+ \*****************************************************/
+/***/ ((module) => {
+
+"use strict";
+
+
+/**
+ * Update an Error with the specified config, error code, and response.
+ *
+ * @param {Error} error The error to update.
+ * @param {Object} config The config.
+ * @param {string} [code] The error code (for example, 'ECONNABORTED').
+ * @param {Object} [request] The request.
+ * @param {Object} [response] The response.
+ * @returns {Error} The error.
+ */
+module.exports = function enhanceError(error, config, code, request, response) {
+ error.config = config;
+ if (code) {
+ error.code = code;
+ }
+
+ error.request = request;
+ error.response = response;
+ error.isAxiosError = true;
+
+ error.toJSON = function toJSON() {
+ return {
+ // Standard
+ message: this.message,
+ name: this.name,
+ // Microsoft
+ description: this.description,
+ number: this.number,
+ // Mozilla
+ fileName: this.fileName,
+ lineNumber: this.lineNumber,
+ columnNumber: this.columnNumber,
+ stack: this.stack,
+ // Axios
+ config: this.config,
+ code: this.code,
+ status: this.response && this.response.status ? this.response.status : null
+ };
+ };
+ return error;
+};
+
+
+/***/ }),
+
+/***/ "./node_modules/axios/lib/core/mergeConfig.js":
+/*!****************************************************!*\
+ !*** ./node_modules/axios/lib/core/mergeConfig.js ***!
+ \****************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var utils = __webpack_require__(/*! ../utils */ "./node_modules/axios/lib/utils.js");
+
+/**
+ * Config-specific merge-function which creates a new config-object
+ * by merging two configuration objects together.
+ *
+ * @param {Object} config1
+ * @param {Object} config2
+ * @returns {Object} New object resulting from merging config2 to config1
+ */
+module.exports = function mergeConfig(config1, config2) {
+ // eslint-disable-next-line no-param-reassign
+ config2 = config2 || {};
+ var config = {};
+
+ function getMergedValue(target, source) {
+ if (utils.isPlainObject(target) && utils.isPlainObject(source)) {
+ return utils.merge(target, source);
+ } else if (utils.isPlainObject(source)) {
+ return utils.merge({}, source);
+ } else if (utils.isArray(source)) {
+ return source.slice();
+ }
+ return source;
+ }
+
+ // eslint-disable-next-line consistent-return
+ function mergeDeepProperties(prop) {
+ if (!utils.isUndefined(config2[prop])) {
+ return getMergedValue(config1[prop], config2[prop]);
+ } else if (!utils.isUndefined(config1[prop])) {
+ return getMergedValue(undefined, config1[prop]);
+ }
+ }
+
+ // eslint-disable-next-line consistent-return
+ function valueFromConfig2(prop) {
+ if (!utils.isUndefined(config2[prop])) {
+ return getMergedValue(undefined, config2[prop]);
+ }
+ }
+
+ // eslint-disable-next-line consistent-return
+ function defaultToConfig2(prop) {
+ if (!utils.isUndefined(config2[prop])) {
+ return getMergedValue(undefined, config2[prop]);
+ } else if (!utils.isUndefined(config1[prop])) {
+ return getMergedValue(undefined, config1[prop]);
+ }
+ }
+
+ // eslint-disable-next-line consistent-return
+ function mergeDirectKeys(prop) {
+ if (prop in config2) {
+ return getMergedValue(config1[prop], config2[prop]);
+ } else if (prop in config1) {
+ return getMergedValue(undefined, config1[prop]);
+ }
+ }
+
+ var mergeMap = {
+ 'url': valueFromConfig2,
+ 'method': valueFromConfig2,
+ 'data': valueFromConfig2,
+ 'baseURL': defaultToConfig2,
+ 'transformRequest': defaultToConfig2,
+ 'transformResponse': defaultToConfig2,
+ 'paramsSerializer': defaultToConfig2,
+ 'timeout': defaultToConfig2,
+ 'timeoutMessage': defaultToConfig2,
+ 'withCredentials': defaultToConfig2,
+ 'adapter': defaultToConfig2,
+ 'responseType': defaultToConfig2,
+ 'xsrfCookieName': defaultToConfig2,
+ 'xsrfHeaderName': defaultToConfig2,
+ 'onUploadProgress': defaultToConfig2,
+ 'onDownloadProgress': defaultToConfig2,
+ 'decompress': defaultToConfig2,
+ 'maxContentLength': defaultToConfig2,
+ 'maxBodyLength': defaultToConfig2,
+ 'transport': defaultToConfig2,
+ 'httpAgent': defaultToConfig2,
+ 'httpsAgent': defaultToConfig2,
+ 'cancelToken': defaultToConfig2,
+ 'socketPath': defaultToConfig2,
+ 'responseEncoding': defaultToConfig2,
+ 'validateStatus': mergeDirectKeys
+ };
+
+ utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {
+ var merge = mergeMap[prop] || mergeDeepProperties;
+ var configValue = merge(prop);
+ (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);
+ });
+
+ return config;
+};
+
+
+/***/ }),
+
+/***/ "./node_modules/axios/lib/core/settle.js":
+/*!***********************************************!*\
+ !*** ./node_modules/axios/lib/core/settle.js ***!
+ \***********************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var createError = __webpack_require__(/*! ./createError */ "./node_modules/axios/lib/core/createError.js");
+
+/**
+ * Resolve or reject a Promise based on response status.
+ *
+ * @param {Function} resolve A function that resolves the promise.
+ * @param {Function} reject A function that rejects the promise.
+ * @param {object} response The response.
+ */
+module.exports = function settle(resolve, reject, response) {
+ var validateStatus = response.config.validateStatus;
+ if (!response.status || !validateStatus || validateStatus(response.status)) {
+ resolve(response);
+ } else {
+ reject(createError(
+ 'Request failed with status code ' + response.status,
+ response.config,
+ null,
+ response.request,
+ response
+ ));
+ }
+};
+
+
+/***/ }),
+
+/***/ "./node_modules/axios/lib/core/transformData.js":
+/*!******************************************************!*\
+ !*** ./node_modules/axios/lib/core/transformData.js ***!
+ \******************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js");
+var defaults = __webpack_require__(/*! ./../defaults */ "./node_modules/axios/lib/defaults.js");
+
+/**
+ * Transform the data for a request or a response
+ *
+ * @param {Object|String} data The data to be transformed
+ * @param {Array} headers The headers for the request or response
+ * @param {Array|Function} fns A single function or Array of functions
+ * @returns {*} The resulting transformed data
+ */
+module.exports = function transformData(data, headers, fns) {
+ var context = this || defaults;
+ /*eslint no-param-reassign:0*/
+ utils.forEach(fns, function transform(fn) {
+ data = fn.call(context, data, headers);
+ });
+
+ return data;
+};
+
+
+/***/ }),
+
+/***/ "./node_modules/axios/lib/defaults.js":
+/*!********************************************!*\
+ !*** ./node_modules/axios/lib/defaults.js ***!
+ \********************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+/* provided dependency */ var process = __webpack_require__(/*! process/browser.js */ "./node_modules/process/browser.js");
+
+
+var utils = __webpack_require__(/*! ./utils */ "./node_modules/axios/lib/utils.js");
+var normalizeHeaderName = __webpack_require__(/*! ./helpers/normalizeHeaderName */ "./node_modules/axios/lib/helpers/normalizeHeaderName.js");
+var enhanceError = __webpack_require__(/*! ./core/enhanceError */ "./node_modules/axios/lib/core/enhanceError.js");
+
+var DEFAULT_CONTENT_TYPE = {
+ 'Content-Type': 'application/x-www-form-urlencoded'
+};
+
+function setContentTypeIfUnset(headers, value) {
+ if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {
+ headers['Content-Type'] = value;
+ }
+}
+
+function getDefaultAdapter() {
+ var adapter;
+ if (typeof XMLHttpRequest !== 'undefined') {
+ // For browsers use XHR adapter
+ adapter = __webpack_require__(/*! ./adapters/xhr */ "./node_modules/axios/lib/adapters/xhr.js");
+ } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {
+ // For node use HTTP adapter
+ adapter = __webpack_require__(/*! ./adapters/http */ "./node_modules/axios/lib/adapters/xhr.js");
+ }
+ return adapter;
+}
+
+function stringifySafely(rawValue, parser, encoder) {
+ if (utils.isString(rawValue)) {
+ try {
+ (parser || JSON.parse)(rawValue);
+ return utils.trim(rawValue);
+ } catch (e) {
+ if (e.name !== 'SyntaxError') {
+ throw e;
+ }
+ }
+ }
+
+ return (encoder || JSON.stringify)(rawValue);
+}
+
+var defaults = {
+
+ transitional: {
+ silentJSONParsing: true,
+ forcedJSONParsing: true,
+ clarifyTimeoutError: false
+ },
+
+ adapter: getDefaultAdapter(),
+
+ transformRequest: [function transformRequest(data, headers) {
+ normalizeHeaderName(headers, 'Accept');
+ normalizeHeaderName(headers, 'Content-Type');
+
+ if (utils.isFormData(data) ||
+ utils.isArrayBuffer(data) ||
+ utils.isBuffer(data) ||
+ utils.isStream(data) ||
+ utils.isFile(data) ||
+ utils.isBlob(data)
+ ) {
+ return data;
+ }
+ if (utils.isArrayBufferView(data)) {
+ return data.buffer;
+ }
+ if (utils.isURLSearchParams(data)) {
+ setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');
+ return data.toString();
+ }
+ if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {
+ setContentTypeIfUnset(headers, 'application/json');
+ return stringifySafely(data);
+ }
+ return data;
+ }],
+
+ transformResponse: [function transformResponse(data) {
+ var transitional = this.transitional || defaults.transitional;
+ var silentJSONParsing = transitional && transitional.silentJSONParsing;
+ var forcedJSONParsing = transitional && transitional.forcedJSONParsing;
+ var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';
+
+ if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {
+ try {
+ return JSON.parse(data);
+ } catch (e) {
+ if (strictJSONParsing) {
+ if (e.name === 'SyntaxError') {
+ throw enhanceError(e, this, 'E_JSON_PARSE');
+ }
+ throw e;
+ }
+ }
+ }
+
+ return data;
+ }],
+
+ /**
+ * A timeout in milliseconds to abort a request. If set to 0 (default) a
+ * timeout is not created.
+ */
+ timeout: 0,
+
+ xsrfCookieName: 'XSRF-TOKEN',
+ xsrfHeaderName: 'X-XSRF-TOKEN',
+
+ maxContentLength: -1,
+ maxBodyLength: -1,
+
+ validateStatus: function validateStatus(status) {
+ return status >= 200 && status < 300;
+ },
+
+ headers: {
+ common: {
+ 'Accept': 'application/json, text/plain, */*'
+ }
+ }
+};
+
+utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {
+ defaults.headers[method] = {};
+});
+
+utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {
+ defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);
+});
+
+module.exports = defaults;
+
+
+/***/ }),
+
+/***/ "./node_modules/axios/lib/env/data.js":
+/*!********************************************!*\
+ !*** ./node_modules/axios/lib/env/data.js ***!
+ \********************************************/
+/***/ ((module) => {
+
+module.exports = {
+ "version": "0.25.0"
+};
+
+/***/ }),
+
+/***/ "./node_modules/axios/lib/helpers/bind.js":
+/*!************************************************!*\
+ !*** ./node_modules/axios/lib/helpers/bind.js ***!
+ \************************************************/
+/***/ ((module) => {
+
+"use strict";
+
+
+module.exports = function bind(fn, thisArg) {
+ return function wrap() {
+ var args = new Array(arguments.length);
+ for (var i = 0; i < args.length; i++) {
+ args[i] = arguments[i];
+ }
+ return fn.apply(thisArg, args);
+ };
+};
+
+
+/***/ }),
+
+/***/ "./node_modules/axios/lib/helpers/buildURL.js":
+/*!****************************************************!*\
+ !*** ./node_modules/axios/lib/helpers/buildURL.js ***!
+ \****************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js");
+
+function encode(val) {
+ return encodeURIComponent(val).
+ replace(/%3A/gi, ':').
+ replace(/%24/g, '$').
+ replace(/%2C/gi, ',').
+ replace(/%20/g, '+').
+ replace(/%5B/gi, '[').
+ replace(/%5D/gi, ']');
+}
+
+/**
+ * Build a URL by appending params to the end
+ *
+ * @param {string} url The base of the url (e.g., http://www.google.com)
+ * @param {object} [params] The params to be appended
+ * @returns {string} The formatted url
+ */
+module.exports = function buildURL(url, params, paramsSerializer) {
+ /*eslint no-param-reassign:0*/
+ if (!params) {
+ return url;
+ }
+
+ var serializedParams;
+ if (paramsSerializer) {
+ serializedParams = paramsSerializer(params);
+ } else if (utils.isURLSearchParams(params)) {
+ serializedParams = params.toString();
+ } else {
+ var parts = [];
+
+ utils.forEach(params, function serialize(val, key) {
+ if (val === null || typeof val === 'undefined') {
+ return;
+ }
+
+ if (utils.isArray(val)) {
+ key = key + '[]';
+ } else {
+ val = [val];
+ }
+
+ utils.forEach(val, function parseValue(v) {
+ if (utils.isDate(v)) {
+ v = v.toISOString();
+ } else if (utils.isObject(v)) {
+ v = JSON.stringify(v);
+ }
+ parts.push(encode(key) + '=' + encode(v));
+ });
+ });
+
+ serializedParams = parts.join('&');
+ }
+
+ if (serializedParams) {
+ var hashmarkIndex = url.indexOf('#');
+ if (hashmarkIndex !== -1) {
+ url = url.slice(0, hashmarkIndex);
+ }
+
+ url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;
+ }
+
+ return url;
+};
+
+
+/***/ }),
+
+/***/ "./node_modules/axios/lib/helpers/combineURLs.js":
+/*!*******************************************************!*\
+ !*** ./node_modules/axios/lib/helpers/combineURLs.js ***!
+ \*******************************************************/
+/***/ ((module) => {
+
+"use strict";
+
+
+/**
+ * Creates a new URL by combining the specified URLs
+ *
+ * @param {string} baseURL The base URL
+ * @param {string} relativeURL The relative URL
+ * @returns {string} The combined URL
+ */
+module.exports = function combineURLs(baseURL, relativeURL) {
+ return relativeURL
+ ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '')
+ : baseURL;
+};
+
+
+/***/ }),
+
+/***/ "./node_modules/axios/lib/helpers/cookies.js":
+/*!***************************************************!*\
+ !*** ./node_modules/axios/lib/helpers/cookies.js ***!
+ \***************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js");
+
+module.exports = (
+ utils.isStandardBrowserEnv() ?
+
+ // Standard browser envs support document.cookie
+ (function standardBrowserEnv() {
+ return {
+ write: function write(name, value, expires, path, domain, secure) {
+ var cookie = [];
+ cookie.push(name + '=' + encodeURIComponent(value));
+
+ if (utils.isNumber(expires)) {
+ cookie.push('expires=' + new Date(expires).toGMTString());
+ }
+
+ if (utils.isString(path)) {
+ cookie.push('path=' + path);
+ }
+
+ if (utils.isString(domain)) {
+ cookie.push('domain=' + domain);
+ }
+
+ if (secure === true) {
+ cookie.push('secure');
+ }
+
+ document.cookie = cookie.join('; ');
+ },
+
+ read: function read(name) {
+ var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)'));
+ return (match ? decodeURIComponent(match[3]) : null);
+ },
+
+ remove: function remove(name) {
+ this.write(name, '', Date.now() - 86400000);
+ }
+ };
+ })() :
+
+ // Non standard browser env (web workers, react-native) lack needed support.
+ (function nonStandardBrowserEnv() {
+ return {
+ write: function write() {},
+ read: function read() { return null; },
+ remove: function remove() {}
+ };
+ })()
+);
+
+
+/***/ }),
+
+/***/ "./node_modules/axios/lib/helpers/isAbsoluteURL.js":
+/*!*********************************************************!*\
+ !*** ./node_modules/axios/lib/helpers/isAbsoluteURL.js ***!
+ \*********************************************************/
+/***/ ((module) => {
+
+"use strict";
+
+
+/**
+ * Determines whether the specified URL is absolute
+ *
+ * @param {string} url The URL to test
+ * @returns {boolean} True if the specified URL is absolute, otherwise false
+ */
+module.exports = function isAbsoluteURL(url) {
+ // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL).
+ // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed
+ // by any combination of letters, digits, plus, period, or hyphen.
+ return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url);
+};
+
+
+/***/ }),
+
+/***/ "./node_modules/axios/lib/helpers/isAxiosError.js":
+/*!********************************************************!*\
+ !*** ./node_modules/axios/lib/helpers/isAxiosError.js ***!
+ \********************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js");
+
+/**
+ * Determines whether the payload is an error thrown by Axios
+ *
+ * @param {*} payload The value to test
+ * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false
+ */
+module.exports = function isAxiosError(payload) {
+ return utils.isObject(payload) && (payload.isAxiosError === true);
+};
+
+
+/***/ }),
+
+/***/ "./node_modules/axios/lib/helpers/isURLSameOrigin.js":
+/*!***********************************************************!*\
+ !*** ./node_modules/axios/lib/helpers/isURLSameOrigin.js ***!
+ \***********************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js");
+
+module.exports = (
+ utils.isStandardBrowserEnv() ?
+
+ // Standard browser envs have full support of the APIs needed to test
+ // whether the request URL is of the same origin as current location.
+ (function standardBrowserEnv() {
+ var msie = /(msie|trident)/i.test(navigator.userAgent);
+ var urlParsingNode = document.createElement('a');
+ var originURL;
+
+ /**
+ * Parse a URL to discover it's components
+ *
+ * @param {String} url The URL to be parsed
+ * @returns {Object}
+ */
+ function resolveURL(url) {
+ var href = url;
+
+ if (msie) {
+ // IE needs attribute set twice to normalize properties
+ urlParsingNode.setAttribute('href', href);
+ href = urlParsingNode.href;
+ }
+
+ urlParsingNode.setAttribute('href', href);
+
+ // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils
+ return {
+ href: urlParsingNode.href,
+ protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',
+ host: urlParsingNode.host,
+ search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '',
+ hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',
+ hostname: urlParsingNode.hostname,
+ port: urlParsingNode.port,
+ pathname: (urlParsingNode.pathname.charAt(0) === '/') ?
+ urlParsingNode.pathname :
+ '/' + urlParsingNode.pathname
+ };
+ }
+
+ originURL = resolveURL(window.location.href);
+
+ /**
+ * Determine if a URL shares the same origin as the current location
+ *
+ * @param {String} requestURL The URL to test
+ * @returns {boolean} True if URL shares the same origin, otherwise false
+ */
+ return function isURLSameOrigin(requestURL) {
+ var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;
+ return (parsed.protocol === originURL.protocol &&
+ parsed.host === originURL.host);
+ };
+ })() :
+
+ // Non standard browser envs (web workers, react-native) lack needed support.
+ (function nonStandardBrowserEnv() {
+ return function isURLSameOrigin() {
+ return true;
+ };
+ })()
+);
+
+
+/***/ }),
+
+/***/ "./node_modules/axios/lib/helpers/normalizeHeaderName.js":
+/*!***************************************************************!*\
+ !*** ./node_modules/axios/lib/helpers/normalizeHeaderName.js ***!
+ \***************************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var utils = __webpack_require__(/*! ../utils */ "./node_modules/axios/lib/utils.js");
+
+module.exports = function normalizeHeaderName(headers, normalizedName) {
+ utils.forEach(headers, function processHeader(value, name) {
+ if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {
+ headers[normalizedName] = value;
+ delete headers[name];
+ }
+ });
+};
+
+
+/***/ }),
+
+/***/ "./node_modules/axios/lib/helpers/parseHeaders.js":
+/*!********************************************************!*\
+ !*** ./node_modules/axios/lib/helpers/parseHeaders.js ***!
+ \********************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js");
+
+// Headers whose duplicates are ignored by node
+// c.f. https://nodejs.org/api/http.html#http_message_headers
+var ignoreDuplicateOf = [
+ 'age', 'authorization', 'content-length', 'content-type', 'etag',
+ 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',
+ 'last-modified', 'location', 'max-forwards', 'proxy-authorization',
+ 'referer', 'retry-after', 'user-agent'
+];
+
+/**
+ * Parse headers into an object
+ *
+ * ```
+ * Date: Wed, 27 Aug 2014 08:58:49 GMT
+ * Content-Type: application/json
+ * Connection: keep-alive
+ * Transfer-Encoding: chunked
+ * ```
+ *
+ * @param {String} headers Headers needing to be parsed
+ * @returns {Object} Headers parsed into an object
+ */
+module.exports = function parseHeaders(headers) {
+ var parsed = {};
+ var key;
+ var val;
+ var i;
+
+ if (!headers) { return parsed; }
+
+ utils.forEach(headers.split('\n'), function parser(line) {
+ i = line.indexOf(':');
+ key = utils.trim(line.substr(0, i)).toLowerCase();
+ val = utils.trim(line.substr(i + 1));
+
+ if (key) {
+ if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {
+ return;
+ }
+ if (key === 'set-cookie') {
+ parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);
+ } else {
+ parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;
+ }
+ }
+ });
+
+ return parsed;
+};
+
+
+/***/ }),
+
+/***/ "./node_modules/axios/lib/helpers/spread.js":
+/*!**************************************************!*\
+ !*** ./node_modules/axios/lib/helpers/spread.js ***!
+ \**************************************************/
+/***/ ((module) => {
+
+"use strict";
+
+
+/**
+ * Syntactic sugar for invoking a function and expanding an array for arguments.
+ *
+ * Common use case would be to use `Function.prototype.apply`.
+ *
+ * ```js
+ * function f(x, y, z) {}
+ * var args = [1, 2, 3];
+ * f.apply(null, args);
+ * ```
+ *
+ * With `spread` this example can be re-written.
+ *
+ * ```js
+ * spread(function(x, y, z) {})([1, 2, 3]);
+ * ```
+ *
+ * @param {Function} callback
+ * @returns {Function}
+ */
+module.exports = function spread(callback) {
+ return function wrap(arr) {
+ return callback.apply(null, arr);
+ };
+};
+
+
+/***/ }),
+
+/***/ "./node_modules/axios/lib/helpers/validator.js":
+/*!*****************************************************!*\
+ !*** ./node_modules/axios/lib/helpers/validator.js ***!
+ \*****************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var VERSION = (__webpack_require__(/*! ../env/data */ "./node_modules/axios/lib/env/data.js").version);
+
+var validators = {};
+
+// eslint-disable-next-line func-names
+['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {
+ validators[type] = function validator(thing) {
+ return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;
+ };
+});
+
+var deprecatedWarnings = {};
+
+/**
+ * Transitional option validator
+ * @param {function|boolean?} validator - set to false if the transitional option has been removed
+ * @param {string?} version - deprecated version / removed since version
+ * @param {string?} message - some message with additional info
+ * @returns {function}
+ */
+validators.transitional = function transitional(validator, version, message) {
+ function formatMessage(opt, desc) {
+ return '[Axios v' + VERSION + '] Transitional option \'' + opt + '\'' + desc + (message ? '. ' + message : '');
+ }
+
+ // eslint-disable-next-line func-names
+ return function(value, opt, opts) {
+ if (validator === false) {
+ throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));
+ }
+
+ if (version && !deprecatedWarnings[opt]) {
+ deprecatedWarnings[opt] = true;
+ // eslint-disable-next-line no-console
+ console.warn(
+ formatMessage(
+ opt,
+ ' has been deprecated since v' + version + ' and will be removed in the near future'
+ )
+ );
+ }
+
+ return validator ? validator(value, opt, opts) : true;
+ };
+};
+
+/**
+ * Assert object's properties type
+ * @param {object} options
+ * @param {object} schema
+ * @param {boolean?} allowUnknown
+ */
+
+function assertOptions(options, schema, allowUnknown) {
+ if (typeof options !== 'object') {
+ throw new TypeError('options must be an object');
+ }
+ var keys = Object.keys(options);
+ var i = keys.length;
+ while (i-- > 0) {
+ var opt = keys[i];
+ var validator = schema[opt];
+ if (validator) {
+ var value = options[opt];
+ var result = value === undefined || validator(value, opt, options);
+ if (result !== true) {
+ throw new TypeError('option ' + opt + ' must be ' + result);
+ }
+ continue;
+ }
+ if (allowUnknown !== true) {
+ throw Error('Unknown option ' + opt);
+ }
+ }
+}
+
+module.exports = {
+ assertOptions: assertOptions,
+ validators: validators
+};
+
+
+/***/ }),
+
+/***/ "./node_modules/axios/lib/utils.js":
+/*!*****************************************!*\
+ !*** ./node_modules/axios/lib/utils.js ***!
+ \*****************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var bind = __webpack_require__(/*! ./helpers/bind */ "./node_modules/axios/lib/helpers/bind.js");
+
+// utils is a library of generic helper functions non-specific to axios
+
+var toString = Object.prototype.toString;
+
+/**
+ * Determine if a value is an Array
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is an Array, otherwise false
+ */
+function isArray(val) {
+ return Array.isArray(val);
+}
+
+/**
+ * Determine if a value is undefined
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if the value is undefined, otherwise false
+ */
+function isUndefined(val) {
+ return typeof val === 'undefined';
+}
+
+/**
+ * Determine if a value is a Buffer
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is a Buffer, otherwise false
+ */
+function isBuffer(val) {
+ return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)
+ && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);
+}
+
+/**
+ * Determine if a value is an ArrayBuffer
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is an ArrayBuffer, otherwise false
+ */
+function isArrayBuffer(val) {
+ return toString.call(val) === '[object ArrayBuffer]';
+}
+
+/**
+ * Determine if a value is a FormData
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is an FormData, otherwise false
+ */
+function isFormData(val) {
+ return toString.call(val) === '[object FormData]';
+}
+
+/**
+ * Determine if a value is a view on an ArrayBuffer
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false
+ */
+function isArrayBufferView(val) {
+ var result;
+ if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {
+ result = ArrayBuffer.isView(val);
+ } else {
+ result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));
+ }
+ return result;
+}
+
+/**
+ * Determine if a value is a String
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is a String, otherwise false
+ */
+function isString(val) {
+ return typeof val === 'string';
+}
+
+/**
+ * Determine if a value is a Number
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is a Number, otherwise false
+ */
+function isNumber(val) {
+ return typeof val === 'number';
+}
+
+/**
+ * Determine if a value is an Object
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is an Object, otherwise false
+ */
+function isObject(val) {
+ return val !== null && typeof val === 'object';
+}
+
+/**
+ * Determine if a value is a plain Object
+ *
+ * @param {Object} val The value to test
+ * @return {boolean} True if value is a plain Object, otherwise false
+ */
+function isPlainObject(val) {
+ if (toString.call(val) !== '[object Object]') {
+ return false;
+ }
+
+ var prototype = Object.getPrototypeOf(val);
+ return prototype === null || prototype === Object.prototype;
+}
+
+/**
+ * Determine if a value is a Date
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is a Date, otherwise false
+ */
+function isDate(val) {
+ return toString.call(val) === '[object Date]';
+}
+
+/**
+ * Determine if a value is a File
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is a File, otherwise false
+ */
+function isFile(val) {
+ return toString.call(val) === '[object File]';
+}
+
+/**
+ * Determine if a value is a Blob
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is a Blob, otherwise false
+ */
+function isBlob(val) {
+ return toString.call(val) === '[object Blob]';
+}
+
+/**
+ * Determine if a value is a Function
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is a Function, otherwise false
+ */
+function isFunction(val) {
+ return toString.call(val) === '[object Function]';
+}
+
+/**
+ * Determine if a value is a Stream
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is a Stream, otherwise false
+ */
+function isStream(val) {
+ return isObject(val) && isFunction(val.pipe);
+}
+
+/**
+ * Determine if a value is a URLSearchParams object
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is a URLSearchParams object, otherwise false
+ */
+function isURLSearchParams(val) {
+ return toString.call(val) === '[object URLSearchParams]';
+}
+
+/**
+ * Trim excess whitespace off the beginning and end of a string
+ *
+ * @param {String} str The String to trim
+ * @returns {String} The String freed of excess whitespace
+ */
+function trim(str) {
+ return str.trim ? str.trim() : str.replace(/^\s+|\s+$/g, '');
+}
+
+/**
+ * Determine if we're running in a standard browser environment
+ *
+ * This allows axios to run in a web worker, and react-native.
+ * Both environments support XMLHttpRequest, but not fully standard globals.
+ *
+ * web workers:
+ * typeof window -> undefined
+ * typeof document -> undefined
+ *
+ * react-native:
+ * navigator.product -> 'ReactNative'
+ * nativescript
+ * navigator.product -> 'NativeScript' or 'NS'
+ */
+function isStandardBrowserEnv() {
+ if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||
+ navigator.product === 'NativeScript' ||
+ navigator.product === 'NS')) {
+ return false;
+ }
+ return (
+ typeof window !== 'undefined' &&
+ typeof document !== 'undefined'
+ );
+}
+
+/**
+ * Iterate over an Array or an Object invoking a function for each item.
+ *
+ * If `obj` is an Array callback will be called passing
+ * the value, index, and complete array for each item.
+ *
+ * If 'obj' is an Object callback will be called passing
+ * the value, key, and complete object for each property.
+ *
+ * @param {Object|Array} obj The object to iterate
+ * @param {Function} fn The callback to invoke for each item
+ */
+function forEach(obj, fn) {
+ // Don't bother if no value provided
+ if (obj === null || typeof obj === 'undefined') {
+ return;
+ }
+
+ // Force an array if not already something iterable
+ if (typeof obj !== 'object') {
+ /*eslint no-param-reassign:0*/
+ obj = [obj];
+ }
+
+ if (isArray(obj)) {
+ // Iterate over array values
+ for (var i = 0, l = obj.length; i < l; i++) {
+ fn.call(null, obj[i], i, obj);
+ }
+ } else {
+ // Iterate over object keys
+ for (var key in obj) {
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
+ fn.call(null, obj[key], key, obj);
+ }
+ }
+ }
+}
+
+/**
+ * Accepts varargs expecting each argument to be an object, then
+ * immutably merges the properties of each object and returns result.
+ *
+ * When multiple objects contain the same key the later object in
+ * the arguments list will take precedence.
+ *
+ * Example:
+ *
+ * ```js
+ * var result = merge({foo: 123}, {foo: 456});
+ * console.log(result.foo); // outputs 456
+ * ```
+ *
+ * @param {Object} obj1 Object to merge
+ * @returns {Object} Result of all merge properties
+ */
+function merge(/* obj1, obj2, obj3, ... */) {
+ var result = {};
+ function assignValue(val, key) {
+ if (isPlainObject(result[key]) && isPlainObject(val)) {
+ result[key] = merge(result[key], val);
+ } else if (isPlainObject(val)) {
+ result[key] = merge({}, val);
+ } else if (isArray(val)) {
+ result[key] = val.slice();
+ } else {
+ result[key] = val;
+ }
+ }
+
+ for (var i = 0, l = arguments.length; i < l; i++) {
+ forEach(arguments[i], assignValue);
+ }
+ return result;
+}
+
+/**
+ * Extends object a by mutably adding to it the properties of object b.
+ *
+ * @param {Object} a The object to be extended
+ * @param {Object} b The object to copy properties from
+ * @param {Object} thisArg The object to bind function to
+ * @return {Object} The resulting value of object a
+ */
+function extend(a, b, thisArg) {
+ forEach(b, function assignValue(val, key) {
+ if (thisArg && typeof val === 'function') {
+ a[key] = bind(val, thisArg);
+ } else {
+ a[key] = val;
+ }
+ });
+ return a;
+}
+
+/**
+ * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)
+ *
+ * @param {string} content with BOM
+ * @return {string} content value without BOM
+ */
+function stripBOM(content) {
+ if (content.charCodeAt(0) === 0xFEFF) {
+ content = content.slice(1);
+ }
+ return content;
+}
+
+module.exports = {
+ isArray: isArray,
+ isArrayBuffer: isArrayBuffer,
+ isBuffer: isBuffer,
+ isFormData: isFormData,
+ isArrayBufferView: isArrayBufferView,
+ isString: isString,
+ isNumber: isNumber,
+ isObject: isObject,
+ isPlainObject: isPlainObject,
+ isUndefined: isUndefined,
+ isDate: isDate,
+ isFile: isFile,
+ isBlob: isBlob,
+ isFunction: isFunction,
+ isStream: isStream,
+ isURLSearchParams: isURLSearchParams,
+ isStandardBrowserEnv: isStandardBrowserEnv,
+ forEach: forEach,
+ merge: merge,
+ extend: extend,
+ trim: trim,
+ stripBOM: stripBOM
+};
+
+
+/***/ }),
+
+/***/ "./resources/js/app.js":
+/*!*****************************!*\
+ !*** ./resources/js/app.js ***!
+ \*****************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _bootstrap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./bootstrap */ "./resources/js/bootstrap.js");
+
+
+/***/ }),
+
+/***/ "./resources/js/bootstrap.js":
+/*!***********************************!*\
+ !*** ./resources/js/bootstrap.js ***!
+ \***********************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");
+/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! axios */ "./node_modules/axios/index.js");
+/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(axios__WEBPACK_IMPORTED_MODULE_1__);
+
+window._ = (lodash__WEBPACK_IMPORTED_MODULE_0___default());
+/**
+ * We'll load the axios HTTP library which allows us to easily issue requests
+ * to our Laravel back-end. This library automatically handles sending the
+ * CSRF token as a header based on the value of the "XSRF" token cookie.
+ */
+
+
+window.axios = (axios__WEBPACK_IMPORTED_MODULE_1___default());
+window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
+/**
+ * Echo exposes an expressive API for subscribing to channels and listening
+ * for events that are broadcast by Laravel. Echo and event broadcasting
+ * allows your team to easily build robust real-time web applications.
+ */
+// import Echo from 'laravel-echo';
+// import Pusher from 'pusher-js';
+// window.Pusher = Pusher;
+// window.Echo = new Echo({
+// broadcaster: 'pusher',
+// key: process.env.MIX_PUSHER_APP_KEY,
+// cluster: process.env.MIX_PUSHER_APP_CLUSTER,
+// forceTLS: true
+// });
+
+/***/ }),
+
+/***/ "./node_modules/lodash/lodash.js":
+/*!***************************************!*\
+ !*** ./node_modules/lodash/lodash.js ***!
+ \***************************************/
+/***/ (function(module, exports, __webpack_require__) {
+
+/* module decorator */ module = __webpack_require__.nmd(module);
+var __WEBPACK_AMD_DEFINE_RESULT__;/**
+ * @license
+ * Lodash
+ * Copyright OpenJS Foundation and other contributors
+ * Released under MIT license
+ * Based on Underscore.js 1.8.3
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ */
+;(function() {
+
+ /** Used as a safe reference for `undefined` in pre-ES5 environments. */
+ var undefined;
+
+ /** Used as the semantic version number. */
+ var VERSION = '4.17.21';
+
+ /** Used as the size to enable large array optimizations. */
+ var LARGE_ARRAY_SIZE = 200;
+
+ /** Error message constants. */
+ var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',
+ FUNC_ERROR_TEXT = 'Expected a function',
+ INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';
+
+ /** Used to stand-in for `undefined` hash values. */
+ var HASH_UNDEFINED = '__lodash_hash_undefined__';
+
+ /** Used as the maximum memoize cache size. */
+ var MAX_MEMOIZE_SIZE = 500;
+
+ /** Used as the internal argument placeholder. */
+ var PLACEHOLDER = '__lodash_placeholder__';
+
+ /** Used to compose bitmasks for cloning. */
+ var CLONE_DEEP_FLAG = 1,
+ CLONE_FLAT_FLAG = 2,
+ CLONE_SYMBOLS_FLAG = 4;
+
+ /** Used to compose bitmasks for value comparisons. */
+ var COMPARE_PARTIAL_FLAG = 1,
+ COMPARE_UNORDERED_FLAG = 2;
+
+ /** Used to compose bitmasks for function metadata. */
+ var WRAP_BIND_FLAG = 1,
+ WRAP_BIND_KEY_FLAG = 2,
+ WRAP_CURRY_BOUND_FLAG = 4,
+ WRAP_CURRY_FLAG = 8,
+ WRAP_CURRY_RIGHT_FLAG = 16,
+ WRAP_PARTIAL_FLAG = 32,
+ WRAP_PARTIAL_RIGHT_FLAG = 64,
+ WRAP_ARY_FLAG = 128,
+ WRAP_REARG_FLAG = 256,
+ WRAP_FLIP_FLAG = 512;
+
+ /** Used as default options for `_.truncate`. */
+ var DEFAULT_TRUNC_LENGTH = 30,
+ DEFAULT_TRUNC_OMISSION = '...';
+
+ /** Used to detect hot functions by number of calls within a span of milliseconds. */
+ var HOT_COUNT = 800,
+ HOT_SPAN = 16;
+
+ /** Used to indicate the type of lazy iteratees. */
+ var LAZY_FILTER_FLAG = 1,
+ LAZY_MAP_FLAG = 2,
+ LAZY_WHILE_FLAG = 3;
+
+ /** Used as references for various `Number` constants. */
+ var INFINITY = 1 / 0,
+ MAX_SAFE_INTEGER = 9007199254740991,
+ MAX_INTEGER = 1.7976931348623157e+308,
+ NAN = 0 / 0;
+
+ /** Used as references for the maximum length and index of an array. */
+ var MAX_ARRAY_LENGTH = 4294967295,
+ MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,
+ HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;
+
+ /** Used to associate wrap methods with their bit flags. */
+ var wrapFlags = [
+ ['ary', WRAP_ARY_FLAG],
+ ['bind', WRAP_BIND_FLAG],
+ ['bindKey', WRAP_BIND_KEY_FLAG],
+ ['curry', WRAP_CURRY_FLAG],
+ ['curryRight', WRAP_CURRY_RIGHT_FLAG],
+ ['flip', WRAP_FLIP_FLAG],
+ ['partial', WRAP_PARTIAL_FLAG],
+ ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],
+ ['rearg', WRAP_REARG_FLAG]
+ ];
+
+ /** `Object#toString` result references. */
+ var argsTag = '[object Arguments]',
+ arrayTag = '[object Array]',
+ asyncTag = '[object AsyncFunction]',
+ boolTag = '[object Boolean]',
+ dateTag = '[object Date]',
+ domExcTag = '[object DOMException]',
+ errorTag = '[object Error]',
+ funcTag = '[object Function]',
+ genTag = '[object GeneratorFunction]',
+ mapTag = '[object Map]',
+ numberTag = '[object Number]',
+ nullTag = '[object Null]',
+ objectTag = '[object Object]',
+ promiseTag = '[object Promise]',
+ proxyTag = '[object Proxy]',
+ regexpTag = '[object RegExp]',
+ setTag = '[object Set]',
+ stringTag = '[object String]',
+ symbolTag = '[object Symbol]',
+ undefinedTag = '[object Undefined]',
+ weakMapTag = '[object WeakMap]',
+ weakSetTag = '[object WeakSet]';
+
+ var arrayBufferTag = '[object ArrayBuffer]',
+ dataViewTag = '[object DataView]',
+ float32Tag = '[object Float32Array]',
+ float64Tag = '[object Float64Array]',
+ int8Tag = '[object Int8Array]',
+ int16Tag = '[object Int16Array]',
+ int32Tag = '[object Int32Array]',
+ uint8Tag = '[object Uint8Array]',
+ uint8ClampedTag = '[object Uint8ClampedArray]',
+ uint16Tag = '[object Uint16Array]',
+ uint32Tag = '[object Uint32Array]';
+
+ /** Used to match empty string literals in compiled template source. */
+ var reEmptyStringLeading = /\b__p \+= '';/g,
+ reEmptyStringMiddle = /\b(__p \+=) '' \+/g,
+ reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g;
+
+ /** Used to match HTML entities and HTML characters. */
+ var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,
+ reUnescapedHtml = /[&<>"']/g,
+ reHasEscapedHtml = RegExp(reEscapedHtml.source),
+ reHasUnescapedHtml = RegExp(reUnescapedHtml.source);
+
+ /** Used to match template delimiters. */
+ var reEscape = /<%-([\s\S]+?)%>/g,
+ reEvaluate = /<%([\s\S]+?)%>/g,
+ reInterpolate = /<%=([\s\S]+?)%>/g;
+
+ /** Used to match property names within property paths. */
+ var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
+ reIsPlainProp = /^\w*$/,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
+
+ /**
+ * Used to match `RegExp`
+ * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
+ */
+ var reRegExpChar = /[\\^$.*+?()[\]{}|]/g,
+ reHasRegExpChar = RegExp(reRegExpChar.source);
+
+ /** Used to match leading whitespace. */
+ var reTrimStart = /^\s+/;
+
+ /** Used to match a single whitespace character. */
+ var reWhitespace = /\s/;
+
+ /** Used to match wrap detail comments. */
+ var reWrapComment = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,
+ reWrapDetails = /\{\n\/\* \[wrapped with (.+)\] \*/,
+ reSplitDetails = /,? & /;
+
+ /** Used to match words composed of alphanumeric characters. */
+ var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;
+
+ /**
+ * Used to validate the `validate` option in `_.template` variable.
+ *
+ * Forbids characters which could potentially change the meaning of the function argument definition:
+ * - "()," (modification of function parameters)
+ * - "=" (default value)
+ * - "[]{}" (destructuring of function parameters)
+ * - "/" (beginning of a comment)
+ * - whitespace
+ */
+ var reForbiddenIdentifierChars = /[()=,{}\[\]\/\s]/;
+
+ /** Used to match backslashes in property paths. */
+ var reEscapeChar = /\\(\\)?/g;
+
+ /**
+ * Used to match
+ * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).
+ */
+ var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g;
+
+ /** Used to match `RegExp` flags from their coerced string values. */
+ var reFlags = /\w*$/;
+
+ /** Used to detect bad signed hexadecimal string values. */
+ var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
+
+ /** Used to detect binary string values. */
+ var reIsBinary = /^0b[01]+$/i;
+
+ /** Used to detect host constructors (Safari). */
+ var reIsHostCtor = /^\[object .+?Constructor\]$/;
+
+ /** Used to detect octal string values. */
+ var reIsOctal = /^0o[0-7]+$/i;
+
+ /** Used to detect unsigned integer values. */
+ var reIsUint = /^(?:0|[1-9]\d*)$/;
+
+ /** Used to match Latin Unicode letters (excluding mathematical operators). */
+ var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g;
+
+ /** Used to ensure capturing order of template delimiters. */
+ var reNoMatch = /($^)/;
+
+ /** Used to match unescaped characters in compiled string literals. */
+ var reUnescapedString = /['\n\r\u2028\u2029\\]/g;
+
+ /** Used to compose unicode character classes. */
+ var rsAstralRange = '\\ud800-\\udfff',
+ rsComboMarksRange = '\\u0300-\\u036f',
+ reComboHalfMarksRange = '\\ufe20-\\ufe2f',
+ rsComboSymbolsRange = '\\u20d0-\\u20ff',
+ rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,
+ rsDingbatRange = '\\u2700-\\u27bf',
+ rsLowerRange = 'a-z\\xdf-\\xf6\\xf8-\\xff',
+ rsMathOpRange = '\\xac\\xb1\\xd7\\xf7',
+ rsNonCharRange = '\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf',
+ rsPunctuationRange = '\\u2000-\\u206f',
+ rsSpaceRange = ' \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000',
+ rsUpperRange = 'A-Z\\xc0-\\xd6\\xd8-\\xde',
+ rsVarRange = '\\ufe0e\\ufe0f',
+ rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;
+
+ /** Used to compose unicode capture groups. */
+ var rsApos = "['\u2019]",
+ rsAstral = '[' + rsAstralRange + ']',
+ rsBreak = '[' + rsBreakRange + ']',
+ rsCombo = '[' + rsComboRange + ']',
+ rsDigits = '\\d+',
+ rsDingbat = '[' + rsDingbatRange + ']',
+ rsLower = '[' + rsLowerRange + ']',
+ rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',
+ rsFitz = '\\ud83c[\\udffb-\\udfff]',
+ rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',
+ rsNonAstral = '[^' + rsAstralRange + ']',
+ rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}',
+ rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]',
+ rsUpper = '[' + rsUpperRange + ']',
+ rsZWJ = '\\u200d';
+
+ /** Used to compose unicode regexes. */
+ var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',
+ rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',
+ rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',
+ rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',
+ reOptMod = rsModifier + '?',
+ rsOptVar = '[' + rsVarRange + ']?',
+ rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',
+ rsOrdLower = '\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])',
+ rsOrdUpper = '\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])',
+ rsSeq = rsOptVar + reOptMod + rsOptJoin,
+ rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,
+ rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';
+
+ /** Used to match apostrophes. */
+ var reApos = RegExp(rsApos, 'g');
+
+ /**
+ * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and
+ * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).
+ */
+ var reComboMark = RegExp(rsCombo, 'g');
+
+ /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */
+ var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');
+
+ /** Used to match complex or compound words. */
+ var reUnicodeWord = RegExp([
+ rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',
+ rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',
+ rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,
+ rsUpper + '+' + rsOptContrUpper,
+ rsOrdUpper,
+ rsOrdLower,
+ rsDigits,
+ rsEmoji
+ ].join('|'), 'g');
+
+ /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */
+ var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');
+
+ /** Used to detect strings that need a more robust regexp to match words. */
+ var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;
+
+ /** Used to assign default `context` object properties. */
+ var contextProps = [
+ 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array',
+ 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object',
+ 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array',
+ 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap',
+ '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'
+ ];
+
+ /** Used to make template sourceURLs easier to identify. */
+ var templateCounter = -1;
+
+ /** Used to identify `toStringTag` values of typed arrays. */
+ var typedArrayTags = {};
+ typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =
+ typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =
+ typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =
+ typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =
+ typedArrayTags[uint32Tag] = true;
+ typedArrayTags[argsTag] = typedArrayTags[arrayTag] =
+ typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =
+ typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =
+ typedArrayTags[errorTag] = typedArrayTags[funcTag] =
+ typedArrayTags[mapTag] = typedArrayTags[numberTag] =
+ typedArrayTags[objectTag] = typedArrayTags[regexpTag] =
+ typedArrayTags[setTag] = typedArrayTags[stringTag] =
+ typedArrayTags[weakMapTag] = false;
+
+ /** Used to identify `toStringTag` values supported by `_.clone`. */
+ var cloneableTags = {};
+ cloneableTags[argsTag] = cloneableTags[arrayTag] =
+ cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =
+ cloneableTags[boolTag] = cloneableTags[dateTag] =
+ cloneableTags[float32Tag] = cloneableTags[float64Tag] =
+ cloneableTags[int8Tag] = cloneableTags[int16Tag] =
+ cloneableTags[int32Tag] = cloneableTags[mapTag] =
+ cloneableTags[numberTag] = cloneableTags[objectTag] =
+ cloneableTags[regexpTag] = cloneableTags[setTag] =
+ cloneableTags[stringTag] = cloneableTags[symbolTag] =
+ cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =
+ cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;
+ cloneableTags[errorTag] = cloneableTags[funcTag] =
+ cloneableTags[weakMapTag] = false;
+
+ /** Used to map Latin Unicode letters to basic Latin letters. */
+ var deburredLetters = {
+ // Latin-1 Supplement block.
+ '\xc0': 'A', '\xc1': 'A', '\xc2': 'A', '\xc3': 'A', '\xc4': 'A', '\xc5': 'A',
+ '\xe0': 'a', '\xe1': 'a', '\xe2': 'a', '\xe3': 'a', '\xe4': 'a', '\xe5': 'a',
+ '\xc7': 'C', '\xe7': 'c',
+ '\xd0': 'D', '\xf0': 'd',
+ '\xc8': 'E', '\xc9': 'E', '\xca': 'E', '\xcb': 'E',
+ '\xe8': 'e', '\xe9': 'e', '\xea': 'e', '\xeb': 'e',
+ '\xcc': 'I', '\xcd': 'I', '\xce': 'I', '\xcf': 'I',
+ '\xec': 'i', '\xed': 'i', '\xee': 'i', '\xef': 'i',
+ '\xd1': 'N', '\xf1': 'n',
+ '\xd2': 'O', '\xd3': 'O', '\xd4': 'O', '\xd5': 'O', '\xd6': 'O', '\xd8': 'O',
+ '\xf2': 'o', '\xf3': 'o', '\xf4': 'o', '\xf5': 'o', '\xf6': 'o', '\xf8': 'o',
+ '\xd9': 'U', '\xda': 'U', '\xdb': 'U', '\xdc': 'U',
+ '\xf9': 'u', '\xfa': 'u', '\xfb': 'u', '\xfc': 'u',
+ '\xdd': 'Y', '\xfd': 'y', '\xff': 'y',
+ '\xc6': 'Ae', '\xe6': 'ae',
+ '\xde': 'Th', '\xfe': 'th',
+ '\xdf': 'ss',
+ // Latin Extended-A block.
+ '\u0100': 'A', '\u0102': 'A', '\u0104': 'A',
+ '\u0101': 'a', '\u0103': 'a', '\u0105': 'a',
+ '\u0106': 'C', '\u0108': 'C', '\u010a': 'C', '\u010c': 'C',
+ '\u0107': 'c', '\u0109': 'c', '\u010b': 'c', '\u010d': 'c',
+ '\u010e': 'D', '\u0110': 'D', '\u010f': 'd', '\u0111': 'd',
+ '\u0112': 'E', '\u0114': 'E', '\u0116': 'E', '\u0118': 'E', '\u011a': 'E',
+ '\u0113': 'e', '\u0115': 'e', '\u0117': 'e', '\u0119': 'e', '\u011b': 'e',
+ '\u011c': 'G', '\u011e': 'G', '\u0120': 'G', '\u0122': 'G',
+ '\u011d': 'g', '\u011f': 'g', '\u0121': 'g', '\u0123': 'g',
+ '\u0124': 'H', '\u0126': 'H', '\u0125': 'h', '\u0127': 'h',
+ '\u0128': 'I', '\u012a': 'I', '\u012c': 'I', '\u012e': 'I', '\u0130': 'I',
+ '\u0129': 'i', '\u012b': 'i', '\u012d': 'i', '\u012f': 'i', '\u0131': 'i',
+ '\u0134': 'J', '\u0135': 'j',
+ '\u0136': 'K', '\u0137': 'k', '\u0138': 'k',
+ '\u0139': 'L', '\u013b': 'L', '\u013d': 'L', '\u013f': 'L', '\u0141': 'L',
+ '\u013a': 'l', '\u013c': 'l', '\u013e': 'l', '\u0140': 'l', '\u0142': 'l',
+ '\u0143': 'N', '\u0145': 'N', '\u0147': 'N', '\u014a': 'N',
+ '\u0144': 'n', '\u0146': 'n', '\u0148': 'n', '\u014b': 'n',
+ '\u014c': 'O', '\u014e': 'O', '\u0150': 'O',
+ '\u014d': 'o', '\u014f': 'o', '\u0151': 'o',
+ '\u0154': 'R', '\u0156': 'R', '\u0158': 'R',
+ '\u0155': 'r', '\u0157': 'r', '\u0159': 'r',
+ '\u015a': 'S', '\u015c': 'S', '\u015e': 'S', '\u0160': 'S',
+ '\u015b': 's', '\u015d': 's', '\u015f': 's', '\u0161': 's',
+ '\u0162': 'T', '\u0164': 'T', '\u0166': 'T',
+ '\u0163': 't', '\u0165': 't', '\u0167': 't',
+ '\u0168': 'U', '\u016a': 'U', '\u016c': 'U', '\u016e': 'U', '\u0170': 'U', '\u0172': 'U',
+ '\u0169': 'u', '\u016b': 'u', '\u016d': 'u', '\u016f': 'u', '\u0171': 'u', '\u0173': 'u',
+ '\u0174': 'W', '\u0175': 'w',
+ '\u0176': 'Y', '\u0177': 'y', '\u0178': 'Y',
+ '\u0179': 'Z', '\u017b': 'Z', '\u017d': 'Z',
+ '\u017a': 'z', '\u017c': 'z', '\u017e': 'z',
+ '\u0132': 'IJ', '\u0133': 'ij',
+ '\u0152': 'Oe', '\u0153': 'oe',
+ '\u0149': "'n", '\u017f': 's'
+ };
+
+ /** Used to map characters to HTML entities. */
+ var htmlEscapes = {
+ '&': '&',
+ '<': '<',
+ '>': '>',
+ '"': '"',
+ "'": '''
+ };
+
+ /** Used to map HTML entities to characters. */
+ var htmlUnescapes = {
+ '&': '&',
+ '<': '<',
+ '>': '>',
+ '"': '"',
+ ''': "'"
+ };
+
+ /** Used to escape characters for inclusion in compiled string literals. */
+ var stringEscapes = {
+ '\\': '\\',
+ "'": "'",
+ '\n': 'n',
+ '\r': 'r',
+ '\u2028': 'u2028',
+ '\u2029': 'u2029'
+ };
+
+ /** Built-in method references without a dependency on `root`. */
+ var freeParseFloat = parseFloat,
+ freeParseInt = parseInt;
+
+ /** Detect free variable `global` from Node.js. */
+ var freeGlobal = typeof __webpack_require__.g == 'object' && __webpack_require__.g && __webpack_require__.g.Object === Object && __webpack_require__.g;
+
+ /** Detect free variable `self`. */
+ var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
+
+ /** Used as a reference to the global object. */
+ var root = freeGlobal || freeSelf || Function('return this')();
+
+ /** Detect free variable `exports`. */
+ var freeExports = true && exports && !exports.nodeType && exports;
+
+ /** Detect free variable `module`. */
+ var freeModule = freeExports && "object" == 'object' && module && !module.nodeType && module;
+
+ /** Detect the popular CommonJS extension `module.exports`. */
+ var moduleExports = freeModule && freeModule.exports === freeExports;
+
+ /** Detect free variable `process` from Node.js. */
+ var freeProcess = moduleExports && freeGlobal.process;
+
+ /** Used to access faster Node.js helpers. */
+ var nodeUtil = (function() {
+ try {
+ // Use `util.types` for Node.js 10+.
+ var types = freeModule && freeModule.require && freeModule.require('util').types;
+
+ if (types) {
+ return types;
+ }
+
+ // Legacy `process.binding('util')` for Node.js < 10.
+ return freeProcess && freeProcess.binding && freeProcess.binding('util');
+ } catch (e) {}
+ }());
+
+ /* Node.js helper references. */
+ var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer,
+ nodeIsDate = nodeUtil && nodeUtil.isDate,
+ nodeIsMap = nodeUtil && nodeUtil.isMap,
+ nodeIsRegExp = nodeUtil && nodeUtil.isRegExp,
+ nodeIsSet = nodeUtil && nodeUtil.isSet,
+ nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
+
+ /*--------------------------------------------------------------------------*/
+
+ /**
+ * A faster alternative to `Function#apply`, this function invokes `func`
+ * with the `this` binding of `thisArg` and the arguments of `args`.
+ *
+ * @private
+ * @param {Function} func The function to invoke.
+ * @param {*} thisArg The `this` binding of `func`.
+ * @param {Array} args The arguments to invoke `func` with.
+ * @returns {*} Returns the result of `func`.
+ */
+ function apply(func, thisArg, args) {
+ switch (args.length) {
+ case 0: return func.call(thisArg);
+ case 1: return func.call(thisArg, args[0]);
+ case 2: return func.call(thisArg, args[0], args[1]);
+ case 3: return func.call(thisArg, args[0], args[1], args[2]);
+ }
+ return func.apply(thisArg, args);
+ }
+
+ /**
+ * A specialized version of `baseAggregator` for arrays.
+ *
+ * @private
+ * @param {Array} [array] The array to iterate over.
+ * @param {Function} setter The function to set `accumulator` values.
+ * @param {Function} iteratee The iteratee to transform keys.
+ * @param {Object} accumulator The initial aggregated object.
+ * @returns {Function} Returns `accumulator`.
+ */
+ function arrayAggregator(array, setter, iteratee, accumulator) {
+ var index = -1,
+ length = array == null ? 0 : array.length;
+
+ while (++index < length) {
+ var value = array[index];
+ setter(accumulator, value, iteratee(value), array);
+ }
+ return accumulator;
+ }
+
+ /**
+ * A specialized version of `_.forEach` for arrays without support for
+ * iteratee shorthands.
+ *
+ * @private
+ * @param {Array} [array] The array to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Array} Returns `array`.
+ */
+ function arrayEach(array, iteratee) {
+ var index = -1,
+ length = array == null ? 0 : array.length;
+
+ while (++index < length) {
+ if (iteratee(array[index], index, array) === false) {
+ break;
+ }
+ }
+ return array;
+ }
+
+ /**
+ * A specialized version of `_.forEachRight` for arrays without support for
+ * iteratee shorthands.
+ *
+ * @private
+ * @param {Array} [array] The array to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Array} Returns `array`.
+ */
+ function arrayEachRight(array, iteratee) {
+ var length = array == null ? 0 : array.length;
+
+ while (length--) {
+ if (iteratee(array[length], length, array) === false) {
+ break;
+ }
+ }
+ return array;
+ }
+
+ /**
+ * A specialized version of `_.every` for arrays without support for
+ * iteratee shorthands.
+ *
+ * @private
+ * @param {Array} [array] The array to iterate over.
+ * @param {Function} predicate The function invoked per iteration.
+ * @returns {boolean} Returns `true` if all elements pass the predicate check,
+ * else `false`.
+ */
+ function arrayEvery(array, predicate) {
+ var index = -1,
+ length = array == null ? 0 : array.length;
+
+ while (++index < length) {
+ if (!predicate(array[index], index, array)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * A specialized version of `_.filter` for arrays without support for
+ * iteratee shorthands.
+ *
+ * @private
+ * @param {Array} [array] The array to iterate over.
+ * @param {Function} predicate The function invoked per iteration.
+ * @returns {Array} Returns the new filtered array.
+ */
+ function arrayFilter(array, predicate) {
+ var index = -1,
+ length = array == null ? 0 : array.length,
+ resIndex = 0,
+ result = [];
+
+ while (++index < length) {
+ var value = array[index];
+ if (predicate(value, index, array)) {
+ result[resIndex++] = value;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * A specialized version of `_.includes` for arrays without support for
+ * specifying an index to search from.
+ *
+ * @private
+ * @param {Array} [array] The array to inspect.
+ * @param {*} target The value to search for.
+ * @returns {boolean} Returns `true` if `target` is found, else `false`.
+ */
+ function arrayIncludes(array, value) {
+ var length = array == null ? 0 : array.length;
+ return !!length && baseIndexOf(array, value, 0) > -1;
+ }
+
+ /**
+ * This function is like `arrayIncludes` except that it accepts a comparator.
+ *
+ * @private
+ * @param {Array} [array] The array to inspect.
+ * @param {*} target The value to search for.
+ * @param {Function} comparator The comparator invoked per element.
+ * @returns {boolean} Returns `true` if `target` is found, else `false`.
+ */
+ function arrayIncludesWith(array, value, comparator) {
+ var index = -1,
+ length = array == null ? 0 : array.length;
+
+ while (++index < length) {
+ if (comparator(value, array[index])) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * A specialized version of `_.map` for arrays without support for iteratee
+ * shorthands.
+ *
+ * @private
+ * @param {Array} [array] The array to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Array} Returns the new mapped array.
+ */
+ function arrayMap(array, iteratee) {
+ var index = -1,
+ length = array == null ? 0 : array.length,
+ result = Array(length);
+
+ while (++index < length) {
+ result[index] = iteratee(array[index], index, array);
+ }
+ return result;
+ }
+
+ /**
+ * Appends the elements of `values` to `array`.
+ *
+ * @private
+ * @param {Array} array The array to modify.
+ * @param {Array} values The values to append.
+ * @returns {Array} Returns `array`.
+ */
+ function arrayPush(array, values) {
+ var index = -1,
+ length = values.length,
+ offset = array.length;
+
+ while (++index < length) {
+ array[offset + index] = values[index];
+ }
+ return array;
+ }
+
+ /**
+ * A specialized version of `_.reduce` for arrays without support for
+ * iteratee shorthands.
+ *
+ * @private
+ * @param {Array} [array] The array to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @param {*} [accumulator] The initial value.
+ * @param {boolean} [initAccum] Specify using the first element of `array` as
+ * the initial value.
+ * @returns {*} Returns the accumulated value.
+ */
+ function arrayReduce(array, iteratee, accumulator, initAccum) {
+ var index = -1,
+ length = array == null ? 0 : array.length;
+
+ if (initAccum && length) {
+ accumulator = array[++index];
+ }
+ while (++index < length) {
+ accumulator = iteratee(accumulator, array[index], index, array);
+ }
+ return accumulator;
+ }
+
+ /**
+ * A specialized version of `_.reduceRight` for arrays without support for
+ * iteratee shorthands.
+ *
+ * @private
+ * @param {Array} [array] The array to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @param {*} [accumulator] The initial value.
+ * @param {boolean} [initAccum] Specify using the last element of `array` as
+ * the initial value.
+ * @returns {*} Returns the accumulated value.
+ */
+ function arrayReduceRight(array, iteratee, accumulator, initAccum) {
+ var length = array == null ? 0 : array.length;
+ if (initAccum && length) {
+ accumulator = array[--length];
+ }
+ while (length--) {
+ accumulator = iteratee(accumulator, array[length], length, array);
+ }
+ return accumulator;
+ }
+
+ /**
+ * A specialized version of `_.some` for arrays without support for iteratee
+ * shorthands.
+ *
+ * @private
+ * @param {Array} [array] The array to iterate over.
+ * @param {Function} predicate The function invoked per iteration.
+ * @returns {boolean} Returns `true` if any element passes the predicate check,
+ * else `false`.
+ */
+ function arraySome(array, predicate) {
+ var index = -1,
+ length = array == null ? 0 : array.length;
+
+ while (++index < length) {
+ if (predicate(array[index], index, array)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Gets the size of an ASCII `string`.
+ *
+ * @private
+ * @param {string} string The string inspect.
+ * @returns {number} Returns the string size.
+ */
+ var asciiSize = baseProperty('length');
+
+ /**
+ * Converts an ASCII `string` to an array.
+ *
+ * @private
+ * @param {string} string The string to convert.
+ * @returns {Array} Returns the converted array.
+ */
+ function asciiToArray(string) {
+ return string.split('');
+ }
+
+ /**
+ * Splits an ASCII `string` into an array of its words.
+ *
+ * @private
+ * @param {string} The string to inspect.
+ * @returns {Array} Returns the words of `string`.
+ */
+ function asciiWords(string) {
+ return string.match(reAsciiWord) || [];
+ }
+
+ /**
+ * The base implementation of methods like `_.findKey` and `_.findLastKey`,
+ * without support for iteratee shorthands, which iterates over `collection`
+ * using `eachFunc`.
+ *
+ * @private
+ * @param {Array|Object} collection The collection to inspect.
+ * @param {Function} predicate The function invoked per iteration.
+ * @param {Function} eachFunc The function to iterate over `collection`.
+ * @returns {*} Returns the found element or its key, else `undefined`.
+ */
+ function baseFindKey(collection, predicate, eachFunc) {
+ var result;
+ eachFunc(collection, function(value, key, collection) {
+ if (predicate(value, key, collection)) {
+ result = key;
+ return false;
+ }
+ });
+ return result;
+ }
+
+ /**
+ * The base implementation of `_.findIndex` and `_.findLastIndex` without
+ * support for iteratee shorthands.
+ *
+ * @private
+ * @param {Array} array The array to inspect.
+ * @param {Function} predicate The function invoked per iteration.
+ * @param {number} fromIndex The index to search from.
+ * @param {boolean} [fromRight] Specify iterating from right to left.
+ * @returns {number} Returns the index of the matched value, else `-1`.
+ */
+ function baseFindIndex(array, predicate, fromIndex, fromRight) {
+ var length = array.length,
+ index = fromIndex + (fromRight ? 1 : -1);
+
+ while ((fromRight ? index-- : ++index < length)) {
+ if (predicate(array[index], index, array)) {
+ return index;
+ }
+ }
+ return -1;
+ }
+
+ /**
+ * The base implementation of `_.indexOf` without `fromIndex` bounds checks.
+ *
+ * @private
+ * @param {Array} array The array to inspect.
+ * @param {*} value The value to search for.
+ * @param {number} fromIndex The index to search from.
+ * @returns {number} Returns the index of the matched value, else `-1`.
+ */
+ function baseIndexOf(array, value, fromIndex) {
+ return value === value
+ ? strictIndexOf(array, value, fromIndex)
+ : baseFindIndex(array, baseIsNaN, fromIndex);
+ }
+
+ /**
+ * This function is like `baseIndexOf` except that it accepts a comparator.
+ *
+ * @private
+ * @param {Array} array The array to inspect.
+ * @param {*} value The value to search for.
+ * @param {number} fromIndex The index to search from.
+ * @param {Function} comparator The comparator invoked per element.
+ * @returns {number} Returns the index of the matched value, else `-1`.
+ */
+ function baseIndexOfWith(array, value, fromIndex, comparator) {
+ var index = fromIndex - 1,
+ length = array.length;
+
+ while (++index < length) {
+ if (comparator(array[index], value)) {
+ return index;
+ }
+ }
+ return -1;
+ }
+
+ /**
+ * The base implementation of `_.isNaN` without support for number objects.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.
+ */
+ function baseIsNaN(value) {
+ return value !== value;
+ }
+
+ /**
+ * The base implementation of `_.mean` and `_.meanBy` without support for
+ * iteratee shorthands.
+ *
+ * @private
+ * @param {Array} array The array to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {number} Returns the mean.
+ */
+ function baseMean(array, iteratee) {
+ var length = array == null ? 0 : array.length;
+ return length ? (baseSum(array, iteratee) / length) : NAN;
+ }
+
+ /**
+ * The base implementation of `_.property` without support for deep paths.
+ *
+ * @private
+ * @param {string} key The key of the property to get.
+ * @returns {Function} Returns the new accessor function.
+ */
+ function baseProperty(key) {
+ return function(object) {
+ return object == null ? undefined : object[key];
+ };
+ }
+
+ /**
+ * The base implementation of `_.propertyOf` without support for deep paths.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @returns {Function} Returns the new accessor function.
+ */
+ function basePropertyOf(object) {
+ return function(key) {
+ return object == null ? undefined : object[key];
+ };
+ }
+
+ /**
+ * The base implementation of `_.reduce` and `_.reduceRight`, without support
+ * for iteratee shorthands, which iterates over `collection` using `eachFunc`.
+ *
+ * @private
+ * @param {Array|Object} collection The collection to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @param {*} accumulator The initial value.
+ * @param {boolean} initAccum Specify using the first or last element of
+ * `collection` as the initial value.
+ * @param {Function} eachFunc The function to iterate over `collection`.
+ * @returns {*} Returns the accumulated value.
+ */
+ function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {
+ eachFunc(collection, function(value, index, collection) {
+ accumulator = initAccum
+ ? (initAccum = false, value)
+ : iteratee(accumulator, value, index, collection);
+ });
+ return accumulator;
+ }
+
+ /**
+ * The base implementation of `_.sortBy` which uses `comparer` to define the
+ * sort order of `array` and replaces criteria objects with their corresponding
+ * values.
+ *
+ * @private
+ * @param {Array} array The array to sort.
+ * @param {Function} comparer The function to define sort order.
+ * @returns {Array} Returns `array`.
+ */
+ function baseSortBy(array, comparer) {
+ var length = array.length;
+
+ array.sort(comparer);
+ while (length--) {
+ array[length] = array[length].value;
+ }
+ return array;
+ }
+
+ /**
+ * The base implementation of `_.sum` and `_.sumBy` without support for
+ * iteratee shorthands.
+ *
+ * @private
+ * @param {Array} array The array to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {number} Returns the sum.
+ */
+ function baseSum(array, iteratee) {
+ var result,
+ index = -1,
+ length = array.length;
+
+ while (++index < length) {
+ var current = iteratee(array[index]);
+ if (current !== undefined) {
+ result = result === undefined ? current : (result + current);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * The base implementation of `_.times` without support for iteratee shorthands
+ * or max array length checks.
+ *
+ * @private
+ * @param {number} n The number of times to invoke `iteratee`.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Array} Returns the array of results.
+ */
+ function baseTimes(n, iteratee) {
+ var index = -1,
+ result = Array(n);
+
+ while (++index < n) {
+ result[index] = iteratee(index);
+ }
+ return result;
+ }
+
+ /**
+ * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array
+ * of key-value pairs for `object` corresponding to the property names of `props`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @param {Array} props The property names to get values for.
+ * @returns {Object} Returns the key-value pairs.
+ */
+ function baseToPairs(object, props) {
+ return arrayMap(props, function(key) {
+ return [key, object[key]];
+ });
+ }
+
+ /**
+ * The base implementation of `_.trim`.
+ *
+ * @private
+ * @param {string} string The string to trim.
+ * @returns {string} Returns the trimmed string.
+ */
+ function baseTrim(string) {
+ return string
+ ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')
+ : string;
+ }
+
+ /**
+ * The base implementation of `_.unary` without support for storing metadata.
+ *
+ * @private
+ * @param {Function} func The function to cap arguments for.
+ * @returns {Function} Returns the new capped function.
+ */
+ function baseUnary(func) {
+ return function(value) {
+ return func(value);
+ };
+ }
+
+ /**
+ * The base implementation of `_.values` and `_.valuesIn` which creates an
+ * array of `object` property values corresponding to the property names
+ * of `props`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @param {Array} props The property names to get values for.
+ * @returns {Object} Returns the array of property values.
+ */
+ function baseValues(object, props) {
+ return arrayMap(props, function(key) {
+ return object[key];
+ });
+ }
+
+ /**
+ * Checks if a `cache` value for `key` exists.
+ *
+ * @private
+ * @param {Object} cache The cache to query.
+ * @param {string} key The key of the entry to check.
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
+ */
+ function cacheHas(cache, key) {
+ return cache.has(key);
+ }
+
+ /**
+ * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol
+ * that is not found in the character symbols.
+ *
+ * @private
+ * @param {Array} strSymbols The string symbols to inspect.
+ * @param {Array} chrSymbols The character symbols to find.
+ * @returns {number} Returns the index of the first unmatched string symbol.
+ */
+ function charsStartIndex(strSymbols, chrSymbols) {
+ var index = -1,
+ length = strSymbols.length;
+
+ while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}
+ return index;
+ }
+
+ /**
+ * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol
+ * that is not found in the character symbols.
+ *
+ * @private
+ * @param {Array} strSymbols The string symbols to inspect.
+ * @param {Array} chrSymbols The character symbols to find.
+ * @returns {number} Returns the index of the last unmatched string symbol.
+ */
+ function charsEndIndex(strSymbols, chrSymbols) {
+ var index = strSymbols.length;
+
+ while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}
+ return index;
+ }
+
+ /**
+ * Gets the number of `placeholder` occurrences in `array`.
+ *
+ * @private
+ * @param {Array} array The array to inspect.
+ * @param {*} placeholder The placeholder to search for.
+ * @returns {number} Returns the placeholder count.
+ */
+ function countHolders(array, placeholder) {
+ var length = array.length,
+ result = 0;
+
+ while (length--) {
+ if (array[length] === placeholder) {
+ ++result;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A
+ * letters to basic Latin letters.
+ *
+ * @private
+ * @param {string} letter The matched letter to deburr.
+ * @returns {string} Returns the deburred letter.
+ */
+ var deburrLetter = basePropertyOf(deburredLetters);
+
+ /**
+ * Used by `_.escape` to convert characters to HTML entities.
+ *
+ * @private
+ * @param {string} chr The matched character to escape.
+ * @returns {string} Returns the escaped character.
+ */
+ var escapeHtmlChar = basePropertyOf(htmlEscapes);
+
+ /**
+ * Used by `_.template` to escape characters for inclusion in compiled string literals.
+ *
+ * @private
+ * @param {string} chr The matched character to escape.
+ * @returns {string} Returns the escaped character.
+ */
+ function escapeStringChar(chr) {
+ return '\\' + stringEscapes[chr];
+ }
+
+ /**
+ * Gets the value at `key` of `object`.
+ *
+ * @private
+ * @param {Object} [object] The object to query.
+ * @param {string} key The key of the property to get.
+ * @returns {*} Returns the property value.
+ */
+ function getValue(object, key) {
+ return object == null ? undefined : object[key];
+ }
+
+ /**
+ * Checks if `string` contains Unicode symbols.
+ *
+ * @private
+ * @param {string} string The string to inspect.
+ * @returns {boolean} Returns `true` if a symbol is found, else `false`.
+ */
+ function hasUnicode(string) {
+ return reHasUnicode.test(string);
+ }
+
+ /**
+ * Checks if `string` contains a word composed of Unicode symbols.
+ *
+ * @private
+ * @param {string} string The string to inspect.
+ * @returns {boolean} Returns `true` if a word is found, else `false`.
+ */
+ function hasUnicodeWord(string) {
+ return reHasUnicodeWord.test(string);
+ }
+
+ /**
+ * Converts `iterator` to an array.
+ *
+ * @private
+ * @param {Object} iterator The iterator to convert.
+ * @returns {Array} Returns the converted array.
+ */
+ function iteratorToArray(iterator) {
+ var data,
+ result = [];
+
+ while (!(data = iterator.next()).done) {
+ result.push(data.value);
+ }
+ return result;
+ }
+
+ /**
+ * Converts `map` to its key-value pairs.
+ *
+ * @private
+ * @param {Object} map The map to convert.
+ * @returns {Array} Returns the key-value pairs.
+ */
+ function mapToArray(map) {
+ var index = -1,
+ result = Array(map.size);
+
+ map.forEach(function(value, key) {
+ result[++index] = [key, value];
+ });
+ return result;
+ }
+
+ /**
+ * Creates a unary function that invokes `func` with its argument transformed.
+ *
+ * @private
+ * @param {Function} func The function to wrap.
+ * @param {Function} transform The argument transform.
+ * @returns {Function} Returns the new function.
+ */
+ function overArg(func, transform) {
+ return function(arg) {
+ return func(transform(arg));
+ };
+ }
+
+ /**
+ * Replaces all `placeholder` elements in `array` with an internal placeholder
+ * and returns an array of their indexes.
+ *
+ * @private
+ * @param {Array} array The array to modify.
+ * @param {*} placeholder The placeholder to replace.
+ * @returns {Array} Returns the new array of placeholder indexes.
+ */
+ function replaceHolders(array, placeholder) {
+ var index = -1,
+ length = array.length,
+ resIndex = 0,
+ result = [];
+
+ while (++index < length) {
+ var value = array[index];
+ if (value === placeholder || value === PLACEHOLDER) {
+ array[index] = PLACEHOLDER;
+ result[resIndex++] = index;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Converts `set` to an array of its values.
+ *
+ * @private
+ * @param {Object} set The set to convert.
+ * @returns {Array} Returns the values.
+ */
+ function setToArray(set) {
+ var index = -1,
+ result = Array(set.size);
+
+ set.forEach(function(value) {
+ result[++index] = value;
+ });
+ return result;
+ }
+
+ /**
+ * Converts `set` to its value-value pairs.
+ *
+ * @private
+ * @param {Object} set The set to convert.
+ * @returns {Array} Returns the value-value pairs.
+ */
+ function setToPairs(set) {
+ var index = -1,
+ result = Array(set.size);
+
+ set.forEach(function(value) {
+ result[++index] = [value, value];
+ });
+ return result;
+ }
+
+ /**
+ * A specialized version of `_.indexOf` which performs strict equality
+ * comparisons of values, i.e. `===`.
+ *
+ * @private
+ * @param {Array} array The array to inspect.
+ * @param {*} value The value to search for.
+ * @param {number} fromIndex The index to search from.
+ * @returns {number} Returns the index of the matched value, else `-1`.
+ */
+ function strictIndexOf(array, value, fromIndex) {
+ var index = fromIndex - 1,
+ length = array.length;
+
+ while (++index < length) {
+ if (array[index] === value) {
+ return index;
+ }
+ }
+ return -1;
+ }
+
+ /**
+ * A specialized version of `_.lastIndexOf` which performs strict equality
+ * comparisons of values, i.e. `===`.
+ *
+ * @private
+ * @param {Array} array The array to inspect.
+ * @param {*} value The value to search for.
+ * @param {number} fromIndex The index to search from.
+ * @returns {number} Returns the index of the matched value, else `-1`.
+ */
+ function strictLastIndexOf(array, value, fromIndex) {
+ var index = fromIndex + 1;
+ while (index--) {
+ if (array[index] === value) {
+ return index;
+ }
+ }
+ return index;
+ }
+
+ /**
+ * Gets the number of symbols in `string`.
+ *
+ * @private
+ * @param {string} string The string to inspect.
+ * @returns {number} Returns the string size.
+ */
+ function stringSize(string) {
+ return hasUnicode(string)
+ ? unicodeSize(string)
+ : asciiSize(string);
+ }
+
+ /**
+ * Converts `string` to an array.
+ *
+ * @private
+ * @param {string} string The string to convert.
+ * @returns {Array} Returns the converted array.
+ */
+ function stringToArray(string) {
+ return hasUnicode(string)
+ ? unicodeToArray(string)
+ : asciiToArray(string);
+ }
+
+ /**
+ * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace
+ * character of `string`.
+ *
+ * @private
+ * @param {string} string The string to inspect.
+ * @returns {number} Returns the index of the last non-whitespace character.
+ */
+ function trimmedEndIndex(string) {
+ var index = string.length;
+
+ while (index-- && reWhitespace.test(string.charAt(index))) {}
+ return index;
+ }
+
+ /**
+ * Used by `_.unescape` to convert HTML entities to characters.
+ *
+ * @private
+ * @param {string} chr The matched character to unescape.
+ * @returns {string} Returns the unescaped character.
+ */
+ var unescapeHtmlChar = basePropertyOf(htmlUnescapes);
+
+ /**
+ * Gets the size of a Unicode `string`.
+ *
+ * @private
+ * @param {string} string The string inspect.
+ * @returns {number} Returns the string size.
+ */
+ function unicodeSize(string) {
+ var result = reUnicode.lastIndex = 0;
+ while (reUnicode.test(string)) {
+ ++result;
+ }
+ return result;
+ }
+
+ /**
+ * Converts a Unicode `string` to an array.
+ *
+ * @private
+ * @param {string} string The string to convert.
+ * @returns {Array} Returns the converted array.
+ */
+ function unicodeToArray(string) {
+ return string.match(reUnicode) || [];
+ }
+
+ /**
+ * Splits a Unicode `string` into an array of its words.
+ *
+ * @private
+ * @param {string} The string to inspect.
+ * @returns {Array} Returns the words of `string`.
+ */
+ function unicodeWords(string) {
+ return string.match(reUnicodeWord) || [];
+ }
+
+ /*--------------------------------------------------------------------------*/
+
+ /**
+ * Create a new pristine `lodash` function using the `context` object.
+ *
+ * @static
+ * @memberOf _
+ * @since 1.1.0
+ * @category Util
+ * @param {Object} [context=root] The context object.
+ * @returns {Function} Returns a new `lodash` function.
+ * @example
+ *
+ * _.mixin({ 'foo': _.constant('foo') });
+ *
+ * var lodash = _.runInContext();
+ * lodash.mixin({ 'bar': lodash.constant('bar') });
+ *
+ * _.isFunction(_.foo);
+ * // => true
+ * _.isFunction(_.bar);
+ * // => false
+ *
+ * lodash.isFunction(lodash.foo);
+ * // => false
+ * lodash.isFunction(lodash.bar);
+ * // => true
+ *
+ * // Create a suped-up `defer` in Node.js.
+ * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;
+ */
+ var runInContext = (function runInContext(context) {
+ context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));
+
+ /** Built-in constructor references. */
+ var Array = context.Array,
+ Date = context.Date,
+ Error = context.Error,
+ Function = context.Function,
+ Math = context.Math,
+ Object = context.Object,
+ RegExp = context.RegExp,
+ String = context.String,
+ TypeError = context.TypeError;
+
+ /** Used for built-in method references. */
+ var arrayProto = Array.prototype,
+ funcProto = Function.prototype,
+ objectProto = Object.prototype;
+
+ /** Used to detect overreaching core-js shims. */
+ var coreJsData = context['__core-js_shared__'];
+
+ /** Used to resolve the decompiled source of functions. */
+ var funcToString = funcProto.toString;
+
+ /** Used to check objects for own properties. */
+ var hasOwnProperty = objectProto.hasOwnProperty;
+
+ /** Used to generate unique IDs. */
+ var idCounter = 0;
+
+ /** Used to detect methods masquerading as native. */
+ var maskSrcKey = (function() {
+ var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
+ return uid ? ('Symbol(src)_1.' + uid) : '';
+ }());
+
+ /**
+ * Used to resolve the
+ * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+ var nativeObjectToString = objectProto.toString;
+
+ /** Used to infer the `Object` constructor. */
+ var objectCtorString = funcToString.call(Object);
+
+ /** Used to restore the original `_` reference in `_.noConflict`. */
+ var oldDash = root._;
+
+ /** Used to detect if a method is native. */
+ var reIsNative = RegExp('^' +
+ funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
+ .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
+ );
+
+ /** Built-in value references. */
+ var Buffer = moduleExports ? context.Buffer : undefined,
+ Symbol = context.Symbol,
+ Uint8Array = context.Uint8Array,
+ allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,
+ getPrototype = overArg(Object.getPrototypeOf, Object),
+ objectCreate = Object.create,
+ propertyIsEnumerable = objectProto.propertyIsEnumerable,
+ splice = arrayProto.splice,
+ spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined,
+ symIterator = Symbol ? Symbol.iterator : undefined,
+ symToStringTag = Symbol ? Symbol.toStringTag : undefined;
+
+ var defineProperty = (function() {
+ try {
+ var func = getNative(Object, 'defineProperty');
+ func({}, '', {});
+ return func;
+ } catch (e) {}
+ }());
+
+ /** Mocked built-ins. */
+ var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout,
+ ctxNow = Date && Date.now !== root.Date.now && Date.now,
+ ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;
+
+ /* Built-in method references for those with the same name as other `lodash` methods. */
+ var nativeCeil = Math.ceil,
+ nativeFloor = Math.floor,
+ nativeGetSymbols = Object.getOwnPropertySymbols,
+ nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,
+ nativeIsFinite = context.isFinite,
+ nativeJoin = arrayProto.join,
+ nativeKeys = overArg(Object.keys, Object),
+ nativeMax = Math.max,
+ nativeMin = Math.min,
+ nativeNow = Date.now,
+ nativeParseInt = context.parseInt,
+ nativeRandom = Math.random,
+ nativeReverse = arrayProto.reverse;
+
+ /* Built-in method references that are verified to be native. */
+ var DataView = getNative(context, 'DataView'),
+ Map = getNative(context, 'Map'),
+ Promise = getNative(context, 'Promise'),
+ Set = getNative(context, 'Set'),
+ WeakMap = getNative(context, 'WeakMap'),
+ nativeCreate = getNative(Object, 'create');
+
+ /** Used to store function metadata. */
+ var metaMap = WeakMap && new WeakMap;
+
+ /** Used to lookup unminified function names. */
+ var realNames = {};
+
+ /** Used to detect maps, sets, and weakmaps. */
+ var dataViewCtorString = toSource(DataView),
+ mapCtorString = toSource(Map),
+ promiseCtorString = toSource(Promise),
+ setCtorString = toSource(Set),
+ weakMapCtorString = toSource(WeakMap);
+
+ /** Used to convert symbols to primitives and strings. */
+ var symbolProto = Symbol ? Symbol.prototype : undefined,
+ symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,
+ symbolToString = symbolProto ? symbolProto.toString : undefined;
+
+ /*------------------------------------------------------------------------*/
+
+ /**
+ * Creates a `lodash` object which wraps `value` to enable implicit method
+ * chain sequences. Methods that operate on and return arrays, collections,
+ * and functions can be chained together. Methods that retrieve a single value
+ * or may return a primitive value will automatically end the chain sequence
+ * and return the unwrapped value. Otherwise, the value must be unwrapped
+ * with `_#value`.
+ *
+ * Explicit chain sequences, which must be unwrapped with `_#value`, may be
+ * enabled using `_.chain`.
+ *
+ * The execution of chained methods is lazy, that is, it's deferred until
+ * `_#value` is implicitly or explicitly called.
+ *
+ * Lazy evaluation allows several methods to support shortcut fusion.
+ * Shortcut fusion is an optimization to merge iteratee calls; this avoids
+ * the creation of intermediate arrays and can greatly reduce the number of
+ * iteratee executions. Sections of a chain sequence qualify for shortcut
+ * fusion if the section is applied to an array and iteratees accept only
+ * one argument. The heuristic for whether a section qualifies for shortcut
+ * fusion is subject to change.
+ *
+ * Chaining is supported in custom builds as long as the `_#value` method is
+ * directly or indirectly included in the build.
+ *
+ * In addition to lodash methods, wrappers have `Array` and `String` methods.
+ *
+ * The wrapper `Array` methods are:
+ * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`
+ *
+ * The wrapper `String` methods are:
+ * `replace` and `split`
+ *
+ * The wrapper methods that support shortcut fusion are:
+ * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,
+ * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,
+ * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`
+ *
+ * The chainable wrapper methods are:
+ * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,
+ * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,
+ * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,
+ * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,
+ * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,
+ * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,
+ * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,
+ * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,
+ * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,
+ * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,
+ * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,
+ * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,
+ * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,
+ * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,
+ * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,
+ * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,
+ * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,
+ * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,
+ * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,
+ * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,
+ * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,
+ * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,
+ * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,
+ * `zipObject`, `zipObjectDeep`, and `zipWith`
+ *
+ * The wrapper methods that are **not** chainable by default are:
+ * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,
+ * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,
+ * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,
+ * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,
+ * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,
+ * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,
+ * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,
+ * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,
+ * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,
+ * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,
+ * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,
+ * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,
+ * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,
+ * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,
+ * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,
+ * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,
+ * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,
+ * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,
+ * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,
+ * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,
+ * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,
+ * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,
+ * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,
+ * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,
+ * `upperFirst`, `value`, and `words`
+ *
+ * @name _
+ * @constructor
+ * @category Seq
+ * @param {*} value The value to wrap in a `lodash` instance.
+ * @returns {Object} Returns the new `lodash` wrapper instance.
+ * @example
+ *
+ * function square(n) {
+ * return n * n;
+ * }
+ *
+ * var wrapped = _([1, 2, 3]);
+ *
+ * // Returns an unwrapped value.
+ * wrapped.reduce(_.add);
+ * // => 6
+ *
+ * // Returns a wrapped value.
+ * var squares = wrapped.map(square);
+ *
+ * _.isArray(squares);
+ * // => false
+ *
+ * _.isArray(squares.value());
+ * // => true
+ */
+ function lodash(value) {
+ if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {
+ if (value instanceof LodashWrapper) {
+ return value;
+ }
+ if (hasOwnProperty.call(value, '__wrapped__')) {
+ return wrapperClone(value);
+ }
+ }
+ return new LodashWrapper(value);
+ }
+
+ /**
+ * The base implementation of `_.create` without support for assigning
+ * properties to the created object.
+ *
+ * @private
+ * @param {Object} proto The object to inherit from.
+ * @returns {Object} Returns the new object.
+ */
+ var baseCreate = (function() {
+ function object() {}
+ return function(proto) {
+ if (!isObject(proto)) {
+ return {};
+ }
+ if (objectCreate) {
+ return objectCreate(proto);
+ }
+ object.prototype = proto;
+ var result = new object;
+ object.prototype = undefined;
+ return result;
+ };
+ }());
+
+ /**
+ * The function whose prototype chain sequence wrappers inherit from.
+ *
+ * @private
+ */
+ function baseLodash() {
+ // No operation performed.
+ }
+
+ /**
+ * The base constructor for creating `lodash` wrapper objects.
+ *
+ * @private
+ * @param {*} value The value to wrap.
+ * @param {boolean} [chainAll] Enable explicit method chain sequences.
+ */
+ function LodashWrapper(value, chainAll) {
+ this.__wrapped__ = value;
+ this.__actions__ = [];
+ this.__chain__ = !!chainAll;
+ this.__index__ = 0;
+ this.__values__ = undefined;
+ }
+
+ /**
+ * By default, the template delimiters used by lodash are like those in
+ * embedded Ruby (ERB) as well as ES2015 template strings. Change the
+ * following template settings to use alternative delimiters.
+ *
+ * @static
+ * @memberOf _
+ * @type {Object}
+ */
+ lodash.templateSettings = {
+
+ /**
+ * Used to detect `data` property values to be HTML-escaped.
+ *
+ * @memberOf _.templateSettings
+ * @type {RegExp}
+ */
+ 'escape': reEscape,
+
+ /**
+ * Used to detect code to be evaluated.
+ *
+ * @memberOf _.templateSettings
+ * @type {RegExp}
+ */
+ 'evaluate': reEvaluate,
+
+ /**
+ * Used to detect `data` property values to inject.
+ *
+ * @memberOf _.templateSettings
+ * @type {RegExp}
+ */
+ 'interpolate': reInterpolate,
+
+ /**
+ * Used to reference the data object in the template text.
+ *
+ * @memberOf _.templateSettings
+ * @type {string}
+ */
+ 'variable': '',
+
+ /**
+ * Used to import variables into the compiled template.
+ *
+ * @memberOf _.templateSettings
+ * @type {Object}
+ */
+ 'imports': {
+
+ /**
+ * A reference to the `lodash` function.
+ *
+ * @memberOf _.templateSettings.imports
+ * @type {Function}
+ */
+ '_': lodash
+ }
+ };
+
+ // Ensure wrappers are instances of `baseLodash`.
+ lodash.prototype = baseLodash.prototype;
+ lodash.prototype.constructor = lodash;
+
+ LodashWrapper.prototype = baseCreate(baseLodash.prototype);
+ LodashWrapper.prototype.constructor = LodashWrapper;
+
+ /*------------------------------------------------------------------------*/
+
+ /**
+ * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.
+ *
+ * @private
+ * @constructor
+ * @param {*} value The value to wrap.
+ */
+ function LazyWrapper(value) {
+ this.__wrapped__ = value;
+ this.__actions__ = [];
+ this.__dir__ = 1;
+ this.__filtered__ = false;
+ this.__iteratees__ = [];
+ this.__takeCount__ = MAX_ARRAY_LENGTH;
+ this.__views__ = [];
+ }
+
+ /**
+ * Creates a clone of the lazy wrapper object.
+ *
+ * @private
+ * @name clone
+ * @memberOf LazyWrapper
+ * @returns {Object} Returns the cloned `LazyWrapper` object.
+ */
+ function lazyClone() {
+ var result = new LazyWrapper(this.__wrapped__);
+ result.__actions__ = copyArray(this.__actions__);
+ result.__dir__ = this.__dir__;
+ result.__filtered__ = this.__filtered__;
+ result.__iteratees__ = copyArray(this.__iteratees__);
+ result.__takeCount__ = this.__takeCount__;
+ result.__views__ = copyArray(this.__views__);
+ return result;
+ }
+
+ /**
+ * Reverses the direction of lazy iteration.
+ *
+ * @private
+ * @name reverse
+ * @memberOf LazyWrapper
+ * @returns {Object} Returns the new reversed `LazyWrapper` object.
+ */
+ function lazyReverse() {
+ if (this.__filtered__) {
+ var result = new LazyWrapper(this);
+ result.__dir__ = -1;
+ result.__filtered__ = true;
+ } else {
+ result = this.clone();
+ result.__dir__ *= -1;
+ }
+ return result;
+ }
+
+ /**
+ * Extracts the unwrapped value from its lazy wrapper.
+ *
+ * @private
+ * @name value
+ * @memberOf LazyWrapper
+ * @returns {*} Returns the unwrapped value.
+ */
+ function lazyValue() {
+ var array = this.__wrapped__.value(),
+ dir = this.__dir__,
+ isArr = isArray(array),
+ isRight = dir < 0,
+ arrLength = isArr ? array.length : 0,
+ view = getView(0, arrLength, this.__views__),
+ start = view.start,
+ end = view.end,
+ length = end - start,
+ index = isRight ? end : (start - 1),
+ iteratees = this.__iteratees__,
+ iterLength = iteratees.length,
+ resIndex = 0,
+ takeCount = nativeMin(length, this.__takeCount__);
+
+ if (!isArr || (!isRight && arrLength == length && takeCount == length)) {
+ return baseWrapperValue(array, this.__actions__);
+ }
+ var result = [];
+
+ outer:
+ while (length-- && resIndex < takeCount) {
+ index += dir;
+
+ var iterIndex = -1,
+ value = array[index];
+
+ while (++iterIndex < iterLength) {
+ var data = iteratees[iterIndex],
+ iteratee = data.iteratee,
+ type = data.type,
+ computed = iteratee(value);
+
+ if (type == LAZY_MAP_FLAG) {
+ value = computed;
+ } else if (!computed) {
+ if (type == LAZY_FILTER_FLAG) {
+ continue outer;
+ } else {
+ break outer;
+ }
+ }
+ }
+ result[resIndex++] = value;
+ }
+ return result;
+ }
+
+ // Ensure `LazyWrapper` is an instance of `baseLodash`.
+ LazyWrapper.prototype = baseCreate(baseLodash.prototype);
+ LazyWrapper.prototype.constructor = LazyWrapper;
+
+ /*------------------------------------------------------------------------*/
+
+ /**
+ * Creates a hash object.
+ *
+ * @private
+ * @constructor
+ * @param {Array} [entries] The key-value pairs to cache.
+ */
+ function Hash(entries) {
+ var index = -1,
+ length = entries == null ? 0 : entries.length;
+
+ this.clear();
+ while (++index < length) {
+ var entry = entries[index];
+ this.set(entry[0], entry[1]);
+ }
+ }
+
+ /**
+ * Removes all key-value entries from the hash.
+ *
+ * @private
+ * @name clear
+ * @memberOf Hash
+ */
+ function hashClear() {
+ this.__data__ = nativeCreate ? nativeCreate(null) : {};
+ this.size = 0;
+ }
+
+ /**
+ * Removes `key` and its value from the hash.
+ *
+ * @private
+ * @name delete
+ * @memberOf Hash
+ * @param {Object} hash The hash to modify.
+ * @param {string} key The key of the value to remove.
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
+ */
+ function hashDelete(key) {
+ var result = this.has(key) && delete this.__data__[key];
+ this.size -= result ? 1 : 0;
+ return result;
+ }
+
+ /**
+ * Gets the hash value for `key`.
+ *
+ * @private
+ * @name get
+ * @memberOf Hash
+ * @param {string} key The key of the value to get.
+ * @returns {*} Returns the entry value.
+ */
+ function hashGet(key) {
+ var data = this.__data__;
+ if (nativeCreate) {
+ var result = data[key];
+ return result === HASH_UNDEFINED ? undefined : result;
+ }
+ return hasOwnProperty.call(data, key) ? data[key] : undefined;
+ }
+
+ /**
+ * Checks if a hash value for `key` exists.
+ *
+ * @private
+ * @name has
+ * @memberOf Hash
+ * @param {string} key The key of the entry to check.
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
+ */
+ function hashHas(key) {
+ var data = this.__data__;
+ return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);
+ }
+
+ /**
+ * Sets the hash `key` to `value`.
+ *
+ * @private
+ * @name set
+ * @memberOf Hash
+ * @param {string} key The key of the value to set.
+ * @param {*} value The value to set.
+ * @returns {Object} Returns the hash instance.
+ */
+ function hashSet(key, value) {
+ var data = this.__data__;
+ this.size += this.has(key) ? 0 : 1;
+ data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
+ return this;
+ }
+
+ // Add methods to `Hash`.
+ Hash.prototype.clear = hashClear;
+ Hash.prototype['delete'] = hashDelete;
+ Hash.prototype.get = hashGet;
+ Hash.prototype.has = hashHas;
+ Hash.prototype.set = hashSet;
+
+ /*------------------------------------------------------------------------*/
+
+ /**
+ * Creates an list cache object.
+ *
+ * @private
+ * @constructor
+ * @param {Array} [entries] The key-value pairs to cache.
+ */
+ function ListCache(entries) {
+ var index = -1,
+ length = entries == null ? 0 : entries.length;
+
+ this.clear();
+ while (++index < length) {
+ var entry = entries[index];
+ this.set(entry[0], entry[1]);
+ }
+ }
+
+ /**
+ * Removes all key-value entries from the list cache.
+ *
+ * @private
+ * @name clear
+ * @memberOf ListCache
+ */
+ function listCacheClear() {
+ this.__data__ = [];
+ this.size = 0;
+ }
+
+ /**
+ * Removes `key` and its value from the list cache.
+ *
+ * @private
+ * @name delete
+ * @memberOf ListCache
+ * @param {string} key The key of the value to remove.
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
+ */
+ function listCacheDelete(key) {
+ var data = this.__data__,
+ index = assocIndexOf(data, key);
+
+ if (index < 0) {
+ return false;
+ }
+ var lastIndex = data.length - 1;
+ if (index == lastIndex) {
+ data.pop();
+ } else {
+ splice.call(data, index, 1);
+ }
+ --this.size;
+ return true;
+ }
+
+ /**
+ * Gets the list cache value for `key`.
+ *
+ * @private
+ * @name get
+ * @memberOf ListCache
+ * @param {string} key The key of the value to get.
+ * @returns {*} Returns the entry value.
+ */
+ function listCacheGet(key) {
+ var data = this.__data__,
+ index = assocIndexOf(data, key);
+
+ return index < 0 ? undefined : data[index][1];
+ }
+
+ /**
+ * Checks if a list cache value for `key` exists.
+ *
+ * @private
+ * @name has
+ * @memberOf ListCache
+ * @param {string} key The key of the entry to check.
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
+ */
+ function listCacheHas(key) {
+ return assocIndexOf(this.__data__, key) > -1;
+ }
+
+ /**
+ * Sets the list cache `key` to `value`.
+ *
+ * @private
+ * @name set
+ * @memberOf ListCache
+ * @param {string} key The key of the value to set.
+ * @param {*} value The value to set.
+ * @returns {Object} Returns the list cache instance.
+ */
+ function listCacheSet(key, value) {
+ var data = this.__data__,
+ index = assocIndexOf(data, key);
+
+ if (index < 0) {
+ ++this.size;
+ data.push([key, value]);
+ } else {
+ data[index][1] = value;
+ }
+ return this;
+ }
+
+ // Add methods to `ListCache`.
+ ListCache.prototype.clear = listCacheClear;
+ ListCache.prototype['delete'] = listCacheDelete;
+ ListCache.prototype.get = listCacheGet;
+ ListCache.prototype.has = listCacheHas;
+ ListCache.prototype.set = listCacheSet;
+
+ /*------------------------------------------------------------------------*/
+
+ /**
+ * Creates a map cache object to store key-value pairs.
+ *
+ * @private
+ * @constructor
+ * @param {Array} [entries] The key-value pairs to cache.
+ */
+ function MapCache(entries) {
+ var index = -1,
+ length = entries == null ? 0 : entries.length;
+
+ this.clear();
+ while (++index < length) {
+ var entry = entries[index];
+ this.set(entry[0], entry[1]);
+ }
+ }
+
+ /**
+ * Removes all key-value entries from the map.
+ *
+ * @private
+ * @name clear
+ * @memberOf MapCache
+ */
+ function mapCacheClear() {
+ this.size = 0;
+ this.__data__ = {
+ 'hash': new Hash,
+ 'map': new (Map || ListCache),
+ 'string': new Hash
+ };
+ }
+
+ /**
+ * Removes `key` and its value from the map.
+ *
+ * @private
+ * @name delete
+ * @memberOf MapCache
+ * @param {string} key The key of the value to remove.
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
+ */
+ function mapCacheDelete(key) {
+ var result = getMapData(this, key)['delete'](key);
+ this.size -= result ? 1 : 0;
+ return result;
+ }
+
+ /**
+ * Gets the map value for `key`.
+ *
+ * @private
+ * @name get
+ * @memberOf MapCache
+ * @param {string} key The key of the value to get.
+ * @returns {*} Returns the entry value.
+ */
+ function mapCacheGet(key) {
+ return getMapData(this, key).get(key);
+ }
+
+ /**
+ * Checks if a map value for `key` exists.
+ *
+ * @private
+ * @name has
+ * @memberOf MapCache
+ * @param {string} key The key of the entry to check.
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
+ */
+ function mapCacheHas(key) {
+ return getMapData(this, key).has(key);
+ }
+
+ /**
+ * Sets the map `key` to `value`.
+ *
+ * @private
+ * @name set
+ * @memberOf MapCache
+ * @param {string} key The key of the value to set.
+ * @param {*} value The value to set.
+ * @returns {Object} Returns the map cache instance.
+ */
+ function mapCacheSet(key, value) {
+ var data = getMapData(this, key),
+ size = data.size;
+
+ data.set(key, value);
+ this.size += data.size == size ? 0 : 1;
+ return this;
+ }
+
+ // Add methods to `MapCache`.
+ MapCache.prototype.clear = mapCacheClear;
+ MapCache.prototype['delete'] = mapCacheDelete;
+ MapCache.prototype.get = mapCacheGet;
+ MapCache.prototype.has = mapCacheHas;
+ MapCache.prototype.set = mapCacheSet;
+
+ /*------------------------------------------------------------------------*/
+
+ /**
+ *
+ * Creates an array cache object to store unique values.
+ *
+ * @private
+ * @constructor
+ * @param {Array} [values] The values to cache.
+ */
+ function SetCache(values) {
+ var index = -1,
+ length = values == null ? 0 : values.length;
+
+ this.__data__ = new MapCache;
+ while (++index < length) {
+ this.add(values[index]);
+ }
+ }
+
+ /**
+ * Adds `value` to the array cache.
+ *
+ * @private
+ * @name add
+ * @memberOf SetCache
+ * @alias push
+ * @param {*} value The value to cache.
+ * @returns {Object} Returns the cache instance.
+ */
+ function setCacheAdd(value) {
+ this.__data__.set(value, HASH_UNDEFINED);
+ return this;
+ }
+
+ /**
+ * Checks if `value` is in the array cache.
+ *
+ * @private
+ * @name has
+ * @memberOf SetCache
+ * @param {*} value The value to search for.
+ * @returns {number} Returns `true` if `value` is found, else `false`.
+ */
+ function setCacheHas(value) {
+ return this.__data__.has(value);
+ }
+
+ // Add methods to `SetCache`.
+ SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
+ SetCache.prototype.has = setCacheHas;
+
+ /*------------------------------------------------------------------------*/
+
+ /**
+ * Creates a stack cache object to store key-value pairs.
+ *
+ * @private
+ * @constructor
+ * @param {Array} [entries] The key-value pairs to cache.
+ */
+ function Stack(entries) {
+ var data = this.__data__ = new ListCache(entries);
+ this.size = data.size;
+ }
+
+ /**
+ * Removes all key-value entries from the stack.
+ *
+ * @private
+ * @name clear
+ * @memberOf Stack
+ */
+ function stackClear() {
+ this.__data__ = new ListCache;
+ this.size = 0;
+ }
+
+ /**
+ * Removes `key` and its value from the stack.
+ *
+ * @private
+ * @name delete
+ * @memberOf Stack
+ * @param {string} key The key of the value to remove.
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
+ */
+ function stackDelete(key) {
+ var data = this.__data__,
+ result = data['delete'](key);
+
+ this.size = data.size;
+ return result;
+ }
+
+ /**
+ * Gets the stack value for `key`.
+ *
+ * @private
+ * @name get
+ * @memberOf Stack
+ * @param {string} key The key of the value to get.
+ * @returns {*} Returns the entry value.
+ */
+ function stackGet(key) {
+ return this.__data__.get(key);
+ }
+
+ /**
+ * Checks if a stack value for `key` exists.
+ *
+ * @private
+ * @name has
+ * @memberOf Stack
+ * @param {string} key The key of the entry to check.
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
+ */
+ function stackHas(key) {
+ return this.__data__.has(key);
+ }
+
+ /**
+ * Sets the stack `key` to `value`.
+ *
+ * @private
+ * @name set
+ * @memberOf Stack
+ * @param {string} key The key of the value to set.
+ * @param {*} value The value to set.
+ * @returns {Object} Returns the stack cache instance.
+ */
+ function stackSet(key, value) {
+ var data = this.__data__;
+ if (data instanceof ListCache) {
+ var pairs = data.__data__;
+ if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {
+ pairs.push([key, value]);
+ this.size = ++data.size;
+ return this;
+ }
+ data = this.__data__ = new MapCache(pairs);
+ }
+ data.set(key, value);
+ this.size = data.size;
+ return this;
+ }
+
+ // Add methods to `Stack`.
+ Stack.prototype.clear = stackClear;
+ Stack.prototype['delete'] = stackDelete;
+ Stack.prototype.get = stackGet;
+ Stack.prototype.has = stackHas;
+ Stack.prototype.set = stackSet;
+
+ /*------------------------------------------------------------------------*/
+
+ /**
+ * Creates an array of the enumerable property names of the array-like `value`.
+ *
+ * @private
+ * @param {*} value The value to query.
+ * @param {boolean} inherited Specify returning inherited property names.
+ * @returns {Array} Returns the array of property names.
+ */
+ function arrayLikeKeys(value, inherited) {
+ var isArr = isArray(value),
+ isArg = !isArr && isArguments(value),
+ isBuff = !isArr && !isArg && isBuffer(value),
+ isType = !isArr && !isArg && !isBuff && isTypedArray(value),
+ skipIndexes = isArr || isArg || isBuff || isType,
+ result = skipIndexes ? baseTimes(value.length, String) : [],
+ length = result.length;
+
+ for (var key in value) {
+ if ((inherited || hasOwnProperty.call(value, key)) &&
+ !(skipIndexes && (
+ // Safari 9 has enumerable `arguments.length` in strict mode.
+ key == 'length' ||
+ // Node.js 0.10 has enumerable non-index properties on buffers.
+ (isBuff && (key == 'offset' || key == 'parent')) ||
+ // PhantomJS 2 has enumerable non-index properties on typed arrays.
+ (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||
+ // Skip index properties.
+ isIndex(key, length)
+ ))) {
+ result.push(key);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * A specialized version of `_.sample` for arrays.
+ *
+ * @private
+ * @param {Array} array The array to sample.
+ * @returns {*} Returns the random element.
+ */
+ function arraySample(array) {
+ var length = array.length;
+ return length ? array[baseRandom(0, length - 1)] : undefined;
+ }
+
+ /**
+ * A specialized version of `_.sampleSize` for arrays.
+ *
+ * @private
+ * @param {Array} array The array to sample.
+ * @param {number} n The number of elements to sample.
+ * @returns {Array} Returns the random elements.
+ */
+ function arraySampleSize(array, n) {
+ return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));
+ }
+
+ /**
+ * A specialized version of `_.shuffle` for arrays.
+ *
+ * @private
+ * @param {Array} array The array to shuffle.
+ * @returns {Array} Returns the new shuffled array.
+ */
+ function arrayShuffle(array) {
+ return shuffleSelf(copyArray(array));
+ }
+
+ /**
+ * This function is like `assignValue` except that it doesn't assign
+ * `undefined` values.
+ *
+ * @private
+ * @param {Object} object The object to modify.
+ * @param {string} key The key of the property to assign.
+ * @param {*} value The value to assign.
+ */
+ function assignMergeValue(object, key, value) {
+ if ((value !== undefined && !eq(object[key], value)) ||
+ (value === undefined && !(key in object))) {
+ baseAssignValue(object, key, value);
+ }
+ }
+
+ /**
+ * Assigns `value` to `key` of `object` if the existing value is not equivalent
+ * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
+ * for equality comparisons.
+ *
+ * @private
+ * @param {Object} object The object to modify.
+ * @param {string} key The key of the property to assign.
+ * @param {*} value The value to assign.
+ */
+ function assignValue(object, key, value) {
+ var objValue = object[key];
+ if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||
+ (value === undefined && !(key in object))) {
+ baseAssignValue(object, key, value);
+ }
+ }
+
+ /**
+ * Gets the index at which the `key` is found in `array` of key-value pairs.
+ *
+ * @private
+ * @param {Array} array The array to inspect.
+ * @param {*} key The key to search for.
+ * @returns {number} Returns the index of the matched value, else `-1`.
+ */
+ function assocIndexOf(array, key) {
+ var length = array.length;
+ while (length--) {
+ if (eq(array[length][0], key)) {
+ return length;
+ }
+ }
+ return -1;
+ }
+
+ /**
+ * Aggregates elements of `collection` on `accumulator` with keys transformed
+ * by `iteratee` and values set by `setter`.
+ *
+ * @private
+ * @param {Array|Object} collection The collection to iterate over.
+ * @param {Function} setter The function to set `accumulator` values.
+ * @param {Function} iteratee The iteratee to transform keys.
+ * @param {Object} accumulator The initial aggregated object.
+ * @returns {Function} Returns `accumulator`.
+ */
+ function baseAggregator(collection, setter, iteratee, accumulator) {
+ baseEach(collection, function(value, key, collection) {
+ setter(accumulator, value, iteratee(value), collection);
+ });
+ return accumulator;
+ }
+
+ /**
+ * The base implementation of `_.assign` without support for multiple sources
+ * or `customizer` functions.
+ *
+ * @private
+ * @param {Object} object The destination object.
+ * @param {Object} source The source object.
+ * @returns {Object} Returns `object`.
+ */
+ function baseAssign(object, source) {
+ return object && copyObject(source, keys(source), object);
+ }
+
+ /**
+ * The base implementation of `_.assignIn` without support for multiple sources
+ * or `customizer` functions.
+ *
+ * @private
+ * @param {Object} object The destination object.
+ * @param {Object} source The source object.
+ * @returns {Object} Returns `object`.
+ */
+ function baseAssignIn(object, source) {
+ return object && copyObject(source, keysIn(source), object);
+ }
+
+ /**
+ * The base implementation of `assignValue` and `assignMergeValue` without
+ * value checks.
+ *
+ * @private
+ * @param {Object} object The object to modify.
+ * @param {string} key The key of the property to assign.
+ * @param {*} value The value to assign.
+ */
+ function baseAssignValue(object, key, value) {
+ if (key == '__proto__' && defineProperty) {
+ defineProperty(object, key, {
+ 'configurable': true,
+ 'enumerable': true,
+ 'value': value,
+ 'writable': true
+ });
+ } else {
+ object[key] = value;
+ }
+ }
+
+ /**
+ * The base implementation of `_.at` without support for individual paths.
+ *
+ * @private
+ * @param {Object} object The object to iterate over.
+ * @param {string[]} paths The property paths to pick.
+ * @returns {Array} Returns the picked elements.
+ */
+ function baseAt(object, paths) {
+ var index = -1,
+ length = paths.length,
+ result = Array(length),
+ skip = object == null;
+
+ while (++index < length) {
+ result[index] = skip ? undefined : get(object, paths[index]);
+ }
+ return result;
+ }
+
+ /**
+ * The base implementation of `_.clamp` which doesn't coerce arguments.
+ *
+ * @private
+ * @param {number} number The number to clamp.
+ * @param {number} [lower] The lower bound.
+ * @param {number} upper The upper bound.
+ * @returns {number} Returns the clamped number.
+ */
+ function baseClamp(number, lower, upper) {
+ if (number === number) {
+ if (upper !== undefined) {
+ number = number <= upper ? number : upper;
+ }
+ if (lower !== undefined) {
+ number = number >= lower ? number : lower;
+ }
+ }
+ return number;
+ }
+
+ /**
+ * The base implementation of `_.clone` and `_.cloneDeep` which tracks
+ * traversed objects.
+ *
+ * @private
+ * @param {*} value The value to clone.
+ * @param {boolean} bitmask The bitmask flags.
+ * 1 - Deep clone
+ * 2 - Flatten inherited properties
+ * 4 - Clone symbols
+ * @param {Function} [customizer] The function to customize cloning.
+ * @param {string} [key] The key of `value`.
+ * @param {Object} [object] The parent object of `value`.
+ * @param {Object} [stack] Tracks traversed objects and their clone counterparts.
+ * @returns {*} Returns the cloned value.
+ */
+ function baseClone(value, bitmask, customizer, key, object, stack) {
+ var result,
+ isDeep = bitmask & CLONE_DEEP_FLAG,
+ isFlat = bitmask & CLONE_FLAT_FLAG,
+ isFull = bitmask & CLONE_SYMBOLS_FLAG;
+
+ if (customizer) {
+ result = object ? customizer(value, key, object, stack) : customizer(value);
+ }
+ if (result !== undefined) {
+ return result;
+ }
+ if (!isObject(value)) {
+ return value;
+ }
+ var isArr = isArray(value);
+ if (isArr) {
+ result = initCloneArray(value);
+ if (!isDeep) {
+ return copyArray(value, result);
+ }
+ } else {
+ var tag = getTag(value),
+ isFunc = tag == funcTag || tag == genTag;
+
+ if (isBuffer(value)) {
+ return cloneBuffer(value, isDeep);
+ }
+ if (tag == objectTag || tag == argsTag || (isFunc && !object)) {
+ result = (isFlat || isFunc) ? {} : initCloneObject(value);
+ if (!isDeep) {
+ return isFlat
+ ? copySymbolsIn(value, baseAssignIn(result, value))
+ : copySymbols(value, baseAssign(result, value));
+ }
+ } else {
+ if (!cloneableTags[tag]) {
+ return object ? value : {};
+ }
+ result = initCloneByTag(value, tag, isDeep);
+ }
+ }
+ // Check for circular references and return its corresponding clone.
+ stack || (stack = new Stack);
+ var stacked = stack.get(value);
+ if (stacked) {
+ return stacked;
+ }
+ stack.set(value, result);
+
+ if (isSet(value)) {
+ value.forEach(function(subValue) {
+ result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));
+ });
+ } else if (isMap(value)) {
+ value.forEach(function(subValue, key) {
+ result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));
+ });
+ }
+
+ var keysFunc = isFull
+ ? (isFlat ? getAllKeysIn : getAllKeys)
+ : (isFlat ? keysIn : keys);
+
+ var props = isArr ? undefined : keysFunc(value);
+ arrayEach(props || value, function(subValue, key) {
+ if (props) {
+ key = subValue;
+ subValue = value[key];
+ }
+ // Recursively populate clone (susceptible to call stack limits).
+ assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));
+ });
+ return result;
+ }
+
+ /**
+ * The base implementation of `_.conforms` which doesn't clone `source`.
+ *
+ * @private
+ * @param {Object} source The object of property predicates to conform to.
+ * @returns {Function} Returns the new spec function.
+ */
+ function baseConforms(source) {
+ var props = keys(source);
+ return function(object) {
+ return baseConformsTo(object, source, props);
+ };
+ }
+
+ /**
+ * The base implementation of `_.conformsTo` which accepts `props` to check.
+ *
+ * @private
+ * @param {Object} object The object to inspect.
+ * @param {Object} source The object of property predicates to conform to.
+ * @returns {boolean} Returns `true` if `object` conforms, else `false`.
+ */
+ function baseConformsTo(object, source, props) {
+ var length = props.length;
+ if (object == null) {
+ return !length;
+ }
+ object = Object(object);
+ while (length--) {
+ var key = props[length],
+ predicate = source[key],
+ value = object[key];
+
+ if ((value === undefined && !(key in object)) || !predicate(value)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * The base implementation of `_.delay` and `_.defer` which accepts `args`
+ * to provide to `func`.
+ *
+ * @private
+ * @param {Function} func The function to delay.
+ * @param {number} wait The number of milliseconds to delay invocation.
+ * @param {Array} args The arguments to provide to `func`.
+ * @returns {number|Object} Returns the timer id or timeout object.
+ */
+ function baseDelay(func, wait, args) {
+ if (typeof func != 'function') {
+ throw new TypeError(FUNC_ERROR_TEXT);
+ }
+ return setTimeout(function() { func.apply(undefined, args); }, wait);
+ }
+
+ /**
+ * The base implementation of methods like `_.difference` without support
+ * for excluding multiple arrays or iteratee shorthands.
+ *
+ * @private
+ * @param {Array} array The array to inspect.
+ * @param {Array} values The values to exclude.
+ * @param {Function} [iteratee] The iteratee invoked per element.
+ * @param {Function} [comparator] The comparator invoked per element.
+ * @returns {Array} Returns the new array of filtered values.
+ */
+ function baseDifference(array, values, iteratee, comparator) {
+ var index = -1,
+ includes = arrayIncludes,
+ isCommon = true,
+ length = array.length,
+ result = [],
+ valuesLength = values.length;
+
+ if (!length) {
+ return result;
+ }
+ if (iteratee) {
+ values = arrayMap(values, baseUnary(iteratee));
+ }
+ if (comparator) {
+ includes = arrayIncludesWith;
+ isCommon = false;
+ }
+ else if (values.length >= LARGE_ARRAY_SIZE) {
+ includes = cacheHas;
+ isCommon = false;
+ values = new SetCache(values);
+ }
+ outer:
+ while (++index < length) {
+ var value = array[index],
+ computed = iteratee == null ? value : iteratee(value);
+
+ value = (comparator || value !== 0) ? value : 0;
+ if (isCommon && computed === computed) {
+ var valuesIndex = valuesLength;
+ while (valuesIndex--) {
+ if (values[valuesIndex] === computed) {
+ continue outer;
+ }
+ }
+ result.push(value);
+ }
+ else if (!includes(values, computed, comparator)) {
+ result.push(value);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * The base implementation of `_.forEach` without support for iteratee shorthands.
+ *
+ * @private
+ * @param {Array|Object} collection The collection to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Array|Object} Returns `collection`.
+ */
+ var baseEach = createBaseEach(baseForOwn);
+
+ /**
+ * The base implementation of `_.forEachRight` without support for iteratee shorthands.
+ *
+ * @private
+ * @param {Array|Object} collection The collection to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Array|Object} Returns `collection`.
+ */
+ var baseEachRight = createBaseEach(baseForOwnRight, true);
+
+ /**
+ * The base implementation of `_.every` without support for iteratee shorthands.
+ *
+ * @private
+ * @param {Array|Object} collection The collection to iterate over.
+ * @param {Function} predicate The function invoked per iteration.
+ * @returns {boolean} Returns `true` if all elements pass the predicate check,
+ * else `false`
+ */
+ function baseEvery(collection, predicate) {
+ var result = true;
+ baseEach(collection, function(value, index, collection) {
+ result = !!predicate(value, index, collection);
+ return result;
+ });
+ return result;
+ }
+
+ /**
+ * The base implementation of methods like `_.max` and `_.min` which accepts a
+ * `comparator` to determine the extremum value.
+ *
+ * @private
+ * @param {Array} array The array to iterate over.
+ * @param {Function} iteratee The iteratee invoked per iteration.
+ * @param {Function} comparator The comparator used to compare values.
+ * @returns {*} Returns the extremum value.
+ */
+ function baseExtremum(array, iteratee, comparator) {
+ var index = -1,
+ length = array.length;
+
+ while (++index < length) {
+ var value = array[index],
+ current = iteratee(value);
+
+ if (current != null && (computed === undefined
+ ? (current === current && !isSymbol(current))
+ : comparator(current, computed)
+ )) {
+ var computed = current,
+ result = value;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * The base implementation of `_.fill` without an iteratee call guard.
+ *
+ * @private
+ * @param {Array} array The array to fill.
+ * @param {*} value The value to fill `array` with.
+ * @param {number} [start=0] The start position.
+ * @param {number} [end=array.length] The end position.
+ * @returns {Array} Returns `array`.
+ */
+ function baseFill(array, value, start, end) {
+ var length = array.length;
+
+ start = toInteger(start);
+ if (start < 0) {
+ start = -start > length ? 0 : (length + start);
+ }
+ end = (end === undefined || end > length) ? length : toInteger(end);
+ if (end < 0) {
+ end += length;
+ }
+ end = start > end ? 0 : toLength(end);
+ while (start < end) {
+ array[start++] = value;
+ }
+ return array;
+ }
+
+ /**
+ * The base implementation of `_.filter` without support for iteratee shorthands.
+ *
+ * @private
+ * @param {Array|Object} collection The collection to iterate over.
+ * @param {Function} predicate The function invoked per iteration.
+ * @returns {Array} Returns the new filtered array.
+ */
+ function baseFilter(collection, predicate) {
+ var result = [];
+ baseEach(collection, function(value, index, collection) {
+ if (predicate(value, index, collection)) {
+ result.push(value);
+ }
+ });
+ return result;
+ }
+
+ /**
+ * The base implementation of `_.flatten` with support for restricting flattening.
+ *
+ * @private
+ * @param {Array} array The array to flatten.
+ * @param {number} depth The maximum recursion depth.
+ * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.
+ * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.
+ * @param {Array} [result=[]] The initial result value.
+ * @returns {Array} Returns the new flattened array.
+ */
+ function baseFlatten(array, depth, predicate, isStrict, result) {
+ var index = -1,
+ length = array.length;
+
+ predicate || (predicate = isFlattenable);
+ result || (result = []);
+
+ while (++index < length) {
+ var value = array[index];
+ if (depth > 0 && predicate(value)) {
+ if (depth > 1) {
+ // Recursively flatten arrays (susceptible to call stack limits).
+ baseFlatten(value, depth - 1, predicate, isStrict, result);
+ } else {
+ arrayPush(result, value);
+ }
+ } else if (!isStrict) {
+ result[result.length] = value;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * The base implementation of `baseForOwn` which iterates over `object`
+ * properties returned by `keysFunc` and invokes `iteratee` for each property.
+ * Iteratee functions may exit iteration early by explicitly returning `false`.
+ *
+ * @private
+ * @param {Object} object The object to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @param {Function} keysFunc The function to get the keys of `object`.
+ * @returns {Object} Returns `object`.
+ */
+ var baseFor = createBaseFor();
+
+ /**
+ * This function is like `baseFor` except that it iterates over properties
+ * in the opposite order.
+ *
+ * @private
+ * @param {Object} object The object to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @param {Function} keysFunc The function to get the keys of `object`.
+ * @returns {Object} Returns `object`.
+ */
+ var baseForRight = createBaseFor(true);
+
+ /**
+ * The base implementation of `_.forOwn` without support for iteratee shorthands.
+ *
+ * @private
+ * @param {Object} object The object to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Object} Returns `object`.
+ */
+ function baseForOwn(object, iteratee) {
+ return object && baseFor(object, iteratee, keys);
+ }
+
+ /**
+ * The base implementation of `_.forOwnRight` without support for iteratee shorthands.
+ *
+ * @private
+ * @param {Object} object The object to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Object} Returns `object`.
+ */
+ function baseForOwnRight(object, iteratee) {
+ return object && baseForRight(object, iteratee, keys);
+ }
+
+ /**
+ * The base implementation of `_.functions` which creates an array of
+ * `object` function property names filtered from `props`.
+ *
+ * @private
+ * @param {Object} object The object to inspect.
+ * @param {Array} props The property names to filter.
+ * @returns {Array} Returns the function names.
+ */
+ function baseFunctions(object, props) {
+ return arrayFilter(props, function(key) {
+ return isFunction(object[key]);
+ });
+ }
+
+ /**
+ * The base implementation of `_.get` without support for default values.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @param {Array|string} path The path of the property to get.
+ * @returns {*} Returns the resolved value.
+ */
+ function baseGet(object, path) {
+ path = castPath(path, object);
+
+ var index = 0,
+ length = path.length;
+
+ while (object != null && index < length) {
+ object = object[toKey(path[index++])];
+ }
+ return (index && index == length) ? object : undefined;
+ }
+
+ /**
+ * The base implementation of `getAllKeys` and `getAllKeysIn` which uses
+ * `keysFunc` and `symbolsFunc` to get the enumerable property names and
+ * symbols of `object`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @param {Function} keysFunc The function to get the keys of `object`.
+ * @param {Function} symbolsFunc The function to get the symbols of `object`.
+ * @returns {Array} Returns the array of property names and symbols.
+ */
+ function baseGetAllKeys(object, keysFunc, symbolsFunc) {
+ var result = keysFunc(object);
+ return isArray(object) ? result : arrayPush(result, symbolsFunc(object));
+ }
+
+ /**
+ * The base implementation of `getTag` without fallbacks for buggy environments.
+ *
+ * @private
+ * @param {*} value The value to query.
+ * @returns {string} Returns the `toStringTag`.
+ */
+ function baseGetTag(value) {
+ if (value == null) {
+ return value === undefined ? undefinedTag : nullTag;
+ }
+ return (symToStringTag && symToStringTag in Object(value))
+ ? getRawTag(value)
+ : objectToString(value);
+ }
+
+ /**
+ * The base implementation of `_.gt` which doesn't coerce arguments.
+ *
+ * @private
+ * @param {*} value The value to compare.
+ * @param {*} other The other value to compare.
+ * @returns {boolean} Returns `true` if `value` is greater than `other`,
+ * else `false`.
+ */
+ function baseGt(value, other) {
+ return value > other;
+ }
+
+ /**
+ * The base implementation of `_.has` without support for deep paths.
+ *
+ * @private
+ * @param {Object} [object] The object to query.
+ * @param {Array|string} key The key to check.
+ * @returns {boolean} Returns `true` if `key` exists, else `false`.
+ */
+ function baseHas(object, key) {
+ return object != null && hasOwnProperty.call(object, key);
+ }
+
+ /**
+ * The base implementation of `_.hasIn` without support for deep paths.
+ *
+ * @private
+ * @param {Object} [object] The object to query.
+ * @param {Array|string} key The key to check.
+ * @returns {boolean} Returns `true` if `key` exists, else `false`.
+ */
+ function baseHasIn(object, key) {
+ return object != null && key in Object(object);
+ }
+
+ /**
+ * The base implementation of `_.inRange` which doesn't coerce arguments.
+ *
+ * @private
+ * @param {number} number The number to check.
+ * @param {number} start The start of the range.
+ * @param {number} end The end of the range.
+ * @returns {boolean} Returns `true` if `number` is in the range, else `false`.
+ */
+ function baseInRange(number, start, end) {
+ return number >= nativeMin(start, end) && number < nativeMax(start, end);
+ }
+
+ /**
+ * The base implementation of methods like `_.intersection`, without support
+ * for iteratee shorthands, that accepts an array of arrays to inspect.
+ *
+ * @private
+ * @param {Array} arrays The arrays to inspect.
+ * @param {Function} [iteratee] The iteratee invoked per element.
+ * @param {Function} [comparator] The comparator invoked per element.
+ * @returns {Array} Returns the new array of shared values.
+ */
+ function baseIntersection(arrays, iteratee, comparator) {
+ var includes = comparator ? arrayIncludesWith : arrayIncludes,
+ length = arrays[0].length,
+ othLength = arrays.length,
+ othIndex = othLength,
+ caches = Array(othLength),
+ maxLength = Infinity,
+ result = [];
+
+ while (othIndex--) {
+ var array = arrays[othIndex];
+ if (othIndex && iteratee) {
+ array = arrayMap(array, baseUnary(iteratee));
+ }
+ maxLength = nativeMin(array.length, maxLength);
+ caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))
+ ? new SetCache(othIndex && array)
+ : undefined;
+ }
+ array = arrays[0];
+
+ var index = -1,
+ seen = caches[0];
+
+ outer:
+ while (++index < length && result.length < maxLength) {
+ var value = array[index],
+ computed = iteratee ? iteratee(value) : value;
+
+ value = (comparator || value !== 0) ? value : 0;
+ if (!(seen
+ ? cacheHas(seen, computed)
+ : includes(result, computed, comparator)
+ )) {
+ othIndex = othLength;
+ while (--othIndex) {
+ var cache = caches[othIndex];
+ if (!(cache
+ ? cacheHas(cache, computed)
+ : includes(arrays[othIndex], computed, comparator))
+ ) {
+ continue outer;
+ }
+ }
+ if (seen) {
+ seen.push(computed);
+ }
+ result.push(value);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * The base implementation of `_.invert` and `_.invertBy` which inverts
+ * `object` with values transformed by `iteratee` and set by `setter`.
+ *
+ * @private
+ * @param {Object} object The object to iterate over.
+ * @param {Function} setter The function to set `accumulator` values.
+ * @param {Function} iteratee The iteratee to transform values.
+ * @param {Object} accumulator The initial inverted object.
+ * @returns {Function} Returns `accumulator`.
+ */
+ function baseInverter(object, setter, iteratee, accumulator) {
+ baseForOwn(object, function(value, key, object) {
+ setter(accumulator, iteratee(value), key, object);
+ });
+ return accumulator;
+ }
+
+ /**
+ * The base implementation of `_.invoke` without support for individual
+ * method arguments.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @param {Array|string} path The path of the method to invoke.
+ * @param {Array} args The arguments to invoke the method with.
+ * @returns {*} Returns the result of the invoked method.
+ */
+ function baseInvoke(object, path, args) {
+ path = castPath(path, object);
+ object = parent(object, path);
+ var func = object == null ? object : object[toKey(last(path))];
+ return func == null ? undefined : apply(func, object, args);
+ }
+
+ /**
+ * The base implementation of `_.isArguments`.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an `arguments` object,
+ */
+ function baseIsArguments(value) {
+ return isObjectLike(value) && baseGetTag(value) == argsTag;
+ }
+
+ /**
+ * The base implementation of `_.isArrayBuffer` without Node.js optimizations.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.
+ */
+ function baseIsArrayBuffer(value) {
+ return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;
+ }
+
+ /**
+ * The base implementation of `_.isDate` without Node.js optimizations.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a date object, else `false`.
+ */
+ function baseIsDate(value) {
+ return isObjectLike(value) && baseGetTag(value) == dateTag;
+ }
+
+ /**
+ * The base implementation of `_.isEqual` which supports partial comparisons
+ * and tracks traversed objects.
+ *
+ * @private
+ * @param {*} value The value to compare.
+ * @param {*} other The other value to compare.
+ * @param {boolean} bitmask The bitmask flags.
+ * 1 - Unordered comparison
+ * 2 - Partial comparison
+ * @param {Function} [customizer] The function to customize comparisons.
+ * @param {Object} [stack] Tracks traversed `value` and `other` objects.
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
+ */
+ function baseIsEqual(value, other, bitmask, customizer, stack) {
+ if (value === other) {
+ return true;
+ }
+ if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {
+ return value !== value && other !== other;
+ }
+ return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
+ }
+
+ /**
+ * A specialized version of `baseIsEqual` for arrays and objects which performs
+ * deep comparisons and tracks traversed objects enabling objects with circular
+ * references to be compared.
+ *
+ * @private
+ * @param {Object} object The object to compare.
+ * @param {Object} other The other object to compare.
+ * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
+ * @param {Function} customizer The function to customize comparisons.
+ * @param {Function} equalFunc The function to determine equivalents of values.
+ * @param {Object} [stack] Tracks traversed `object` and `other` objects.
+ * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
+ */
+ function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
+ var objIsArr = isArray(object),
+ othIsArr = isArray(other),
+ objTag = objIsArr ? arrayTag : getTag(object),
+ othTag = othIsArr ? arrayTag : getTag(other);
+
+ objTag = objTag == argsTag ? objectTag : objTag;
+ othTag = othTag == argsTag ? objectTag : othTag;
+
+ var objIsObj = objTag == objectTag,
+ othIsObj = othTag == objectTag,
+ isSameTag = objTag == othTag;
+
+ if (isSameTag && isBuffer(object)) {
+ if (!isBuffer(other)) {
+ return false;
+ }
+ objIsArr = true;
+ objIsObj = false;
+ }
+ if (isSameTag && !objIsObj) {
+ stack || (stack = new Stack);
+ return (objIsArr || isTypedArray(object))
+ ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)
+ : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
+ }
+ if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
+ var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
+ othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');
+
+ if (objIsWrapped || othIsWrapped) {
+ var objUnwrapped = objIsWrapped ? object.value() : object,
+ othUnwrapped = othIsWrapped ? other.value() : other;
+
+ stack || (stack = new Stack);
+ return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
+ }
+ }
+ if (!isSameTag) {
+ return false;
+ }
+ stack || (stack = new Stack);
+ return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
+ }
+
+ /**
+ * The base implementation of `_.isMap` without Node.js optimizations.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a map, else `false`.
+ */
+ function baseIsMap(value) {
+ return isObjectLike(value) && getTag(value) == mapTag;
+ }
+
+ /**
+ * The base implementation of `_.isMatch` without support for iteratee shorthands.
+ *
+ * @private
+ * @param {Object} object The object to inspect.
+ * @param {Object} source The object of property values to match.
+ * @param {Array} matchData The property names, values, and compare flags to match.
+ * @param {Function} [customizer] The function to customize comparisons.
+ * @returns {boolean} Returns `true` if `object` is a match, else `false`.
+ */
+ function baseIsMatch(object, source, matchData, customizer) {
+ var index = matchData.length,
+ length = index,
+ noCustomizer = !customizer;
+
+ if (object == null) {
+ return !length;
+ }
+ object = Object(object);
+ while (index--) {
+ var data = matchData[index];
+ if ((noCustomizer && data[2])
+ ? data[1] !== object[data[0]]
+ : !(data[0] in object)
+ ) {
+ return false;
+ }
+ }
+ while (++index < length) {
+ data = matchData[index];
+ var key = data[0],
+ objValue = object[key],
+ srcValue = data[1];
+
+ if (noCustomizer && data[2]) {
+ if (objValue === undefined && !(key in object)) {
+ return false;
+ }
+ } else {
+ var stack = new Stack;
+ if (customizer) {
+ var result = customizer(objValue, srcValue, key, object, source, stack);
+ }
+ if (!(result === undefined
+ ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)
+ : result
+ )) {
+ return false;
+ }
+ }
+ }
+ return true;
+ }
+
+ /**
+ * The base implementation of `_.isNative` without bad shim checks.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a native function,
+ * else `false`.
+ */
+ function baseIsNative(value) {
+ if (!isObject(value) || isMasked(value)) {
+ return false;
+ }
+ var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
+ return pattern.test(toSource(value));
+ }
+
+ /**
+ * The base implementation of `_.isRegExp` without Node.js optimizations.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.
+ */
+ function baseIsRegExp(value) {
+ return isObjectLike(value) && baseGetTag(value) == regexpTag;
+ }
+
+ /**
+ * The base implementation of `_.isSet` without Node.js optimizations.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a set, else `false`.
+ */
+ function baseIsSet(value) {
+ return isObjectLike(value) && getTag(value) == setTag;
+ }
+
+ /**
+ * The base implementation of `_.isTypedArray` without Node.js optimizations.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
+ */
+ function baseIsTypedArray(value) {
+ return isObjectLike(value) &&
+ isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
+ }
+
+ /**
+ * The base implementation of `_.iteratee`.
+ *
+ * @private
+ * @param {*} [value=_.identity] The value to convert to an iteratee.
+ * @returns {Function} Returns the iteratee.
+ */
+ function baseIteratee(value) {
+ // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.
+ // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.
+ if (typeof value == 'function') {
+ return value;
+ }
+ if (value == null) {
+ return identity;
+ }
+ if (typeof value == 'object') {
+ return isArray(value)
+ ? baseMatchesProperty(value[0], value[1])
+ : baseMatches(value);
+ }
+ return property(value);
+ }
+
+ /**
+ * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of property names.
+ */
+ function baseKeys(object) {
+ if (!isPrototype(object)) {
+ return nativeKeys(object);
+ }
+ var result = [];
+ for (var key in Object(object)) {
+ if (hasOwnProperty.call(object, key) && key != 'constructor') {
+ result.push(key);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of property names.
+ */
+ function baseKeysIn(object) {
+ if (!isObject(object)) {
+ return nativeKeysIn(object);
+ }
+ var isProto = isPrototype(object),
+ result = [];
+
+ for (var key in object) {
+ if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {
+ result.push(key);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * The base implementation of `_.lt` which doesn't coerce arguments.
+ *
+ * @private
+ * @param {*} value The value to compare.
+ * @param {*} other The other value to compare.
+ * @returns {boolean} Returns `true` if `value` is less than `other`,
+ * else `false`.
+ */
+ function baseLt(value, other) {
+ return value < other;
+ }
+
+ /**
+ * The base implementation of `_.map` without support for iteratee shorthands.
+ *
+ * @private
+ * @param {Array|Object} collection The collection to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Array} Returns the new mapped array.
+ */
+ function baseMap(collection, iteratee) {
+ var index = -1,
+ result = isArrayLike(collection) ? Array(collection.length) : [];
+
+ baseEach(collection, function(value, key, collection) {
+ result[++index] = iteratee(value, key, collection);
+ });
+ return result;
+ }
+
+ /**
+ * The base implementation of `_.matches` which doesn't clone `source`.
+ *
+ * @private
+ * @param {Object} source The object of property values to match.
+ * @returns {Function} Returns the new spec function.
+ */
+ function baseMatches(source) {
+ var matchData = getMatchData(source);
+ if (matchData.length == 1 && matchData[0][2]) {
+ return matchesStrictComparable(matchData[0][0], matchData[0][1]);
+ }
+ return function(object) {
+ return object === source || baseIsMatch(object, source, matchData);
+ };
+ }
+
+ /**
+ * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.
+ *
+ * @private
+ * @param {string} path The path of the property to get.
+ * @param {*} srcValue The value to match.
+ * @returns {Function} Returns the new spec function.
+ */
+ function baseMatchesProperty(path, srcValue) {
+ if (isKey(path) && isStrictComparable(srcValue)) {
+ return matchesStrictComparable(toKey(path), srcValue);
+ }
+ return function(object) {
+ var objValue = get(object, path);
+ return (objValue === undefined && objValue === srcValue)
+ ? hasIn(object, path)
+ : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);
+ };
+ }
+
+ /**
+ * The base implementation of `_.merge` without support for multiple sources.
+ *
+ * @private
+ * @param {Object} object The destination object.
+ * @param {Object} source The source object.
+ * @param {number} srcIndex The index of `source`.
+ * @param {Function} [customizer] The function to customize merged values.
+ * @param {Object} [stack] Tracks traversed source values and their merged
+ * counterparts.
+ */
+ function baseMerge(object, source, srcIndex, customizer, stack) {
+ if (object === source) {
+ return;
+ }
+ baseFor(source, function(srcValue, key) {
+ stack || (stack = new Stack);
+ if (isObject(srcValue)) {
+ baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);
+ }
+ else {
+ var newValue = customizer
+ ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)
+ : undefined;
+
+ if (newValue === undefined) {
+ newValue = srcValue;
+ }
+ assignMergeValue(object, key, newValue);
+ }
+ }, keysIn);
+ }
+
+ /**
+ * A specialized version of `baseMerge` for arrays and objects which performs
+ * deep merges and tracks traversed objects enabling objects with circular
+ * references to be merged.
+ *
+ * @private
+ * @param {Object} object The destination object.
+ * @param {Object} source The source object.
+ * @param {string} key The key of the value to merge.
+ * @param {number} srcIndex The index of `source`.
+ * @param {Function} mergeFunc The function to merge values.
+ * @param {Function} [customizer] The function to customize assigned values.
+ * @param {Object} [stack] Tracks traversed source values and their merged
+ * counterparts.
+ */
+ function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {
+ var objValue = safeGet(object, key),
+ srcValue = safeGet(source, key),
+ stacked = stack.get(srcValue);
+
+ if (stacked) {
+ assignMergeValue(object, key, stacked);
+ return;
+ }
+ var newValue = customizer
+ ? customizer(objValue, srcValue, (key + ''), object, source, stack)
+ : undefined;
+
+ var isCommon = newValue === undefined;
+
+ if (isCommon) {
+ var isArr = isArray(srcValue),
+ isBuff = !isArr && isBuffer(srcValue),
+ isTyped = !isArr && !isBuff && isTypedArray(srcValue);
+
+ newValue = srcValue;
+ if (isArr || isBuff || isTyped) {
+ if (isArray(objValue)) {
+ newValue = objValue;
+ }
+ else if (isArrayLikeObject(objValue)) {
+ newValue = copyArray(objValue);
+ }
+ else if (isBuff) {
+ isCommon = false;
+ newValue = cloneBuffer(srcValue, true);
+ }
+ else if (isTyped) {
+ isCommon = false;
+ newValue = cloneTypedArray(srcValue, true);
+ }
+ else {
+ newValue = [];
+ }
+ }
+ else if (isPlainObject(srcValue) || isArguments(srcValue)) {
+ newValue = objValue;
+ if (isArguments(objValue)) {
+ newValue = toPlainObject(objValue);
+ }
+ else if (!isObject(objValue) || isFunction(objValue)) {
+ newValue = initCloneObject(srcValue);
+ }
+ }
+ else {
+ isCommon = false;
+ }
+ }
+ if (isCommon) {
+ // Recursively merge objects and arrays (susceptible to call stack limits).
+ stack.set(srcValue, newValue);
+ mergeFunc(newValue, srcValue, srcIndex, customizer, stack);
+ stack['delete'](srcValue);
+ }
+ assignMergeValue(object, key, newValue);
+ }
+
+ /**
+ * The base implementation of `_.nth` which doesn't coerce arguments.
+ *
+ * @private
+ * @param {Array} array The array to query.
+ * @param {number} n The index of the element to return.
+ * @returns {*} Returns the nth element of `array`.
+ */
+ function baseNth(array, n) {
+ var length = array.length;
+ if (!length) {
+ return;
+ }
+ n += n < 0 ? length : 0;
+ return isIndex(n, length) ? array[n] : undefined;
+ }
+
+ /**
+ * The base implementation of `_.orderBy` without param guards.
+ *
+ * @private
+ * @param {Array|Object} collection The collection to iterate over.
+ * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.
+ * @param {string[]} orders The sort orders of `iteratees`.
+ * @returns {Array} Returns the new sorted array.
+ */
+ function baseOrderBy(collection, iteratees, orders) {
+ if (iteratees.length) {
+ iteratees = arrayMap(iteratees, function(iteratee) {
+ if (isArray(iteratee)) {
+ return function(value) {
+ return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);
+ }
+ }
+ return iteratee;
+ });
+ } else {
+ iteratees = [identity];
+ }
+
+ var index = -1;
+ iteratees = arrayMap(iteratees, baseUnary(getIteratee()));
+
+ var result = baseMap(collection, function(value, key, collection) {
+ var criteria = arrayMap(iteratees, function(iteratee) {
+ return iteratee(value);
+ });
+ return { 'criteria': criteria, 'index': ++index, 'value': value };
+ });
+
+ return baseSortBy(result, function(object, other) {
+ return compareMultiple(object, other, orders);
+ });
+ }
+
+ /**
+ * The base implementation of `_.pick` without support for individual
+ * property identifiers.
+ *
+ * @private
+ * @param {Object} object The source object.
+ * @param {string[]} paths The property paths to pick.
+ * @returns {Object} Returns the new object.
+ */
+ function basePick(object, paths) {
+ return basePickBy(object, paths, function(value, path) {
+ return hasIn(object, path);
+ });
+ }
+
+ /**
+ * The base implementation of `_.pickBy` without support for iteratee shorthands.
+ *
+ * @private
+ * @param {Object} object The source object.
+ * @param {string[]} paths The property paths to pick.
+ * @param {Function} predicate The function invoked per property.
+ * @returns {Object} Returns the new object.
+ */
+ function basePickBy(object, paths, predicate) {
+ var index = -1,
+ length = paths.length,
+ result = {};
+
+ while (++index < length) {
+ var path = paths[index],
+ value = baseGet(object, path);
+
+ if (predicate(value, path)) {
+ baseSet(result, castPath(path, object), value);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * A specialized version of `baseProperty` which supports deep paths.
+ *
+ * @private
+ * @param {Array|string} path The path of the property to get.
+ * @returns {Function} Returns the new accessor function.
+ */
+ function basePropertyDeep(path) {
+ return function(object) {
+ return baseGet(object, path);
+ };
+ }
+
+ /**
+ * The base implementation of `_.pullAllBy` without support for iteratee
+ * shorthands.
+ *
+ * @private
+ * @param {Array} array The array to modify.
+ * @param {Array} values The values to remove.
+ * @param {Function} [iteratee] The iteratee invoked per element.
+ * @param {Function} [comparator] The comparator invoked per element.
+ * @returns {Array} Returns `array`.
+ */
+ function basePullAll(array, values, iteratee, comparator) {
+ var indexOf = comparator ? baseIndexOfWith : baseIndexOf,
+ index = -1,
+ length = values.length,
+ seen = array;
+
+ if (array === values) {
+ values = copyArray(values);
+ }
+ if (iteratee) {
+ seen = arrayMap(array, baseUnary(iteratee));
+ }
+ while (++index < length) {
+ var fromIndex = 0,
+ value = values[index],
+ computed = iteratee ? iteratee(value) : value;
+
+ while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {
+ if (seen !== array) {
+ splice.call(seen, fromIndex, 1);
+ }
+ splice.call(array, fromIndex, 1);
+ }
+ }
+ return array;
+ }
+
+ /**
+ * The base implementation of `_.pullAt` without support for individual
+ * indexes or capturing the removed elements.
+ *
+ * @private
+ * @param {Array} array The array to modify.
+ * @param {number[]} indexes The indexes of elements to remove.
+ * @returns {Array} Returns `array`.
+ */
+ function basePullAt(array, indexes) {
+ var length = array ? indexes.length : 0,
+ lastIndex = length - 1;
+
+ while (length--) {
+ var index = indexes[length];
+ if (length == lastIndex || index !== previous) {
+ var previous = index;
+ if (isIndex(index)) {
+ splice.call(array, index, 1);
+ } else {
+ baseUnset(array, index);
+ }
+ }
+ }
+ return array;
+ }
+
+ /**
+ * The base implementation of `_.random` without support for returning
+ * floating-point numbers.
+ *
+ * @private
+ * @param {number} lower The lower bound.
+ * @param {number} upper The upper bound.
+ * @returns {number} Returns the random number.
+ */
+ function baseRandom(lower, upper) {
+ return lower + nativeFloor(nativeRandom() * (upper - lower + 1));
+ }
+
+ /**
+ * The base implementation of `_.range` and `_.rangeRight` which doesn't
+ * coerce arguments.
+ *
+ * @private
+ * @param {number} start The start of the range.
+ * @param {number} end The end of the range.
+ * @param {number} step The value to increment or decrement by.
+ * @param {boolean} [fromRight] Specify iterating from right to left.
+ * @returns {Array} Returns the range of numbers.
+ */
+ function baseRange(start, end, step, fromRight) {
+ var index = -1,
+ length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),
+ result = Array(length);
+
+ while (length--) {
+ result[fromRight ? length : ++index] = start;
+ start += step;
+ }
+ return result;
+ }
+
+ /**
+ * The base implementation of `_.repeat` which doesn't coerce arguments.
+ *
+ * @private
+ * @param {string} string The string to repeat.
+ * @param {number} n The number of times to repeat the string.
+ * @returns {string} Returns the repeated string.
+ */
+ function baseRepeat(string, n) {
+ var result = '';
+ if (!string || n < 1 || n > MAX_SAFE_INTEGER) {
+ return result;
+ }
+ // Leverage the exponentiation by squaring algorithm for a faster repeat.
+ // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.
+ do {
+ if (n % 2) {
+ result += string;
+ }
+ n = nativeFloor(n / 2);
+ if (n) {
+ string += string;
+ }
+ } while (n);
+
+ return result;
+ }
+
+ /**
+ * The base implementation of `_.rest` which doesn't validate or coerce arguments.
+ *
+ * @private
+ * @param {Function} func The function to apply a rest parameter to.
+ * @param {number} [start=func.length-1] The start position of the rest parameter.
+ * @returns {Function} Returns the new function.
+ */
+ function baseRest(func, start) {
+ return setToString(overRest(func, start, identity), func + '');
+ }
+
+ /**
+ * The base implementation of `_.sample`.
+ *
+ * @private
+ * @param {Array|Object} collection The collection to sample.
+ * @returns {*} Returns the random element.
+ */
+ function baseSample(collection) {
+ return arraySample(values(collection));
+ }
+
+ /**
+ * The base implementation of `_.sampleSize` without param guards.
+ *
+ * @private
+ * @param {Array|Object} collection The collection to sample.
+ * @param {number} n The number of elements to sample.
+ * @returns {Array} Returns the random elements.
+ */
+ function baseSampleSize(collection, n) {
+ var array = values(collection);
+ return shuffleSelf(array, baseClamp(n, 0, array.length));
+ }
+
+ /**
+ * The base implementation of `_.set`.
+ *
+ * @private
+ * @param {Object} object The object to modify.
+ * @param {Array|string} path The path of the property to set.
+ * @param {*} value The value to set.
+ * @param {Function} [customizer] The function to customize path creation.
+ * @returns {Object} Returns `object`.
+ */
+ function baseSet(object, path, value, customizer) {
+ if (!isObject(object)) {
+ return object;
+ }
+ path = castPath(path, object);
+
+ var index = -1,
+ length = path.length,
+ lastIndex = length - 1,
+ nested = object;
+
+ while (nested != null && ++index < length) {
+ var key = toKey(path[index]),
+ newValue = value;
+
+ if (key === '__proto__' || key === 'constructor' || key === 'prototype') {
+ return object;
+ }
+
+ if (index != lastIndex) {
+ var objValue = nested[key];
+ newValue = customizer ? customizer(objValue, key, nested) : undefined;
+ if (newValue === undefined) {
+ newValue = isObject(objValue)
+ ? objValue
+ : (isIndex(path[index + 1]) ? [] : {});
+ }
+ }
+ assignValue(nested, key, newValue);
+ nested = nested[key];
+ }
+ return object;
+ }
+
+ /**
+ * The base implementation of `setData` without support for hot loop shorting.
+ *
+ * @private
+ * @param {Function} func The function to associate metadata with.
+ * @param {*} data The metadata.
+ * @returns {Function} Returns `func`.
+ */
+ var baseSetData = !metaMap ? identity : function(func, data) {
+ metaMap.set(func, data);
+ return func;
+ };
+
+ /**
+ * The base implementation of `setToString` without support for hot loop shorting.
+ *
+ * @private
+ * @param {Function} func The function to modify.
+ * @param {Function} string The `toString` result.
+ * @returns {Function} Returns `func`.
+ */
+ var baseSetToString = !defineProperty ? identity : function(func, string) {
+ return defineProperty(func, 'toString', {
+ 'configurable': true,
+ 'enumerable': false,
+ 'value': constant(string),
+ 'writable': true
+ });
+ };
+
+ /**
+ * The base implementation of `_.shuffle`.
+ *
+ * @private
+ * @param {Array|Object} collection The collection to shuffle.
+ * @returns {Array} Returns the new shuffled array.
+ */
+ function baseShuffle(collection) {
+ return shuffleSelf(values(collection));
+ }
+
+ /**
+ * The base implementation of `_.slice` without an iteratee call guard.
+ *
+ * @private
+ * @param {Array} array The array to slice.
+ * @param {number} [start=0] The start position.
+ * @param {number} [end=array.length] The end position.
+ * @returns {Array} Returns the slice of `array`.
+ */
+ function baseSlice(array, start, end) {
+ var index = -1,
+ length = array.length;
+
+ if (start < 0) {
+ start = -start > length ? 0 : (length + start);
+ }
+ end = end > length ? length : end;
+ if (end < 0) {
+ end += length;
+ }
+ length = start > end ? 0 : ((end - start) >>> 0);
+ start >>>= 0;
+
+ var result = Array(length);
+ while (++index < length) {
+ result[index] = array[index + start];
+ }
+ return result;
+ }
+
+ /**
+ * The base implementation of `_.some` without support for iteratee shorthands.
+ *
+ * @private
+ * @param {Array|Object} collection The collection to iterate over.
+ * @param {Function} predicate The function invoked per iteration.
+ * @returns {boolean} Returns `true` if any element passes the predicate check,
+ * else `false`.
+ */
+ function baseSome(collection, predicate) {
+ var result;
+
+ baseEach(collection, function(value, index, collection) {
+ result = predicate(value, index, collection);
+ return !result;
+ });
+ return !!result;
+ }
+
+ /**
+ * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which
+ * performs a binary search of `array` to determine the index at which `value`
+ * should be inserted into `array` in order to maintain its sort order.
+ *
+ * @private
+ * @param {Array} array The sorted array to inspect.
+ * @param {*} value The value to evaluate.
+ * @param {boolean} [retHighest] Specify returning the highest qualified index.
+ * @returns {number} Returns the index at which `value` should be inserted
+ * into `array`.
+ */
+ function baseSortedIndex(array, value, retHighest) {
+ var low = 0,
+ high = array == null ? low : array.length;
+
+ if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {
+ while (low < high) {
+ var mid = (low + high) >>> 1,
+ computed = array[mid];
+
+ if (computed !== null && !isSymbol(computed) &&
+ (retHighest ? (computed <= value) : (computed < value))) {
+ low = mid + 1;
+ } else {
+ high = mid;
+ }
+ }
+ return high;
+ }
+ return baseSortedIndexBy(array, value, identity, retHighest);
+ }
+
+ /**
+ * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`
+ * which invokes `iteratee` for `value` and each element of `array` to compute
+ * their sort ranking. The iteratee is invoked with one argument; (value).
+ *
+ * @private
+ * @param {Array} array The sorted array to inspect.
+ * @param {*} value The value to evaluate.
+ * @param {Function} iteratee The iteratee invoked per element.
+ * @param {boolean} [retHighest] Specify returning the highest qualified index.
+ * @returns {number} Returns the index at which `value` should be inserted
+ * into `array`.
+ */
+ function baseSortedIndexBy(array, value, iteratee, retHighest) {
+ var low = 0,
+ high = array == null ? 0 : array.length;
+ if (high === 0) {
+ return 0;
+ }
+
+ value = iteratee(value);
+ var valIsNaN = value !== value,
+ valIsNull = value === null,
+ valIsSymbol = isSymbol(value),
+ valIsUndefined = value === undefined;
+
+ while (low < high) {
+ var mid = nativeFloor((low + high) / 2),
+ computed = iteratee(array[mid]),
+ othIsDefined = computed !== undefined,
+ othIsNull = computed === null,
+ othIsReflexive = computed === computed,
+ othIsSymbol = isSymbol(computed);
+
+ if (valIsNaN) {
+ var setLow = retHighest || othIsReflexive;
+ } else if (valIsUndefined) {
+ setLow = othIsReflexive && (retHighest || othIsDefined);
+ } else if (valIsNull) {
+ setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);
+ } else if (valIsSymbol) {
+ setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);
+ } else if (othIsNull || othIsSymbol) {
+ setLow = false;
+ } else {
+ setLow = retHighest ? (computed <= value) : (computed < value);
+ }
+ if (setLow) {
+ low = mid + 1;
+ } else {
+ high = mid;
+ }
+ }
+ return nativeMin(high, MAX_ARRAY_INDEX);
+ }
+
+ /**
+ * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without
+ * support for iteratee shorthands.
+ *
+ * @private
+ * @param {Array} array The array to inspect.
+ * @param {Function} [iteratee] The iteratee invoked per element.
+ * @returns {Array} Returns the new duplicate free array.
+ */
+ function baseSortedUniq(array, iteratee) {
+ var index = -1,
+ length = array.length,
+ resIndex = 0,
+ result = [];
+
+ while (++index < length) {
+ var value = array[index],
+ computed = iteratee ? iteratee(value) : value;
+
+ if (!index || !eq(computed, seen)) {
+ var seen = computed;
+ result[resIndex++] = value === 0 ? 0 : value;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * The base implementation of `_.toNumber` which doesn't ensure correct
+ * conversions of binary, hexadecimal, or octal string values.
+ *
+ * @private
+ * @param {*} value The value to process.
+ * @returns {number} Returns the number.
+ */
+ function baseToNumber(value) {
+ if (typeof value == 'number') {
+ return value;
+ }
+ if (isSymbol(value)) {
+ return NAN;
+ }
+ return +value;
+ }
+
+ /**
+ * The base implementation of `_.toString` which doesn't convert nullish
+ * values to empty strings.
+ *
+ * @private
+ * @param {*} value The value to process.
+ * @returns {string} Returns the string.
+ */
+ function baseToString(value) {
+ // Exit early for strings to avoid a performance hit in some environments.
+ if (typeof value == 'string') {
+ return value;
+ }
+ if (isArray(value)) {
+ // Recursively convert values (susceptible to call stack limits).
+ return arrayMap(value, baseToString) + '';
+ }
+ if (isSymbol(value)) {
+ return symbolToString ? symbolToString.call(value) : '';
+ }
+ var result = (value + '');
+ return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
+ }
+
+ /**
+ * The base implementation of `_.uniqBy` without support for iteratee shorthands.
+ *
+ * @private
+ * @param {Array} array The array to inspect.
+ * @param {Function} [iteratee] The iteratee invoked per element.
+ * @param {Function} [comparator] The comparator invoked per element.
+ * @returns {Array} Returns the new duplicate free array.
+ */
+ function baseUniq(array, iteratee, comparator) {
+ var index = -1,
+ includes = arrayIncludes,
+ length = array.length,
+ isCommon = true,
+ result = [],
+ seen = result;
+
+ if (comparator) {
+ isCommon = false;
+ includes = arrayIncludesWith;
+ }
+ else if (length >= LARGE_ARRAY_SIZE) {
+ var set = iteratee ? null : createSet(array);
+ if (set) {
+ return setToArray(set);
+ }
+ isCommon = false;
+ includes = cacheHas;
+ seen = new SetCache;
+ }
+ else {
+ seen = iteratee ? [] : result;
+ }
+ outer:
+ while (++index < length) {
+ var value = array[index],
+ computed = iteratee ? iteratee(value) : value;
+
+ value = (comparator || value !== 0) ? value : 0;
+ if (isCommon && computed === computed) {
+ var seenIndex = seen.length;
+ while (seenIndex--) {
+ if (seen[seenIndex] === computed) {
+ continue outer;
+ }
+ }
+ if (iteratee) {
+ seen.push(computed);
+ }
+ result.push(value);
+ }
+ else if (!includes(seen, computed, comparator)) {
+ if (seen !== result) {
+ seen.push(computed);
+ }
+ result.push(value);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * The base implementation of `_.unset`.
+ *
+ * @private
+ * @param {Object} object The object to modify.
+ * @param {Array|string} path The property path to unset.
+ * @returns {boolean} Returns `true` if the property is deleted, else `false`.
+ */
+ function baseUnset(object, path) {
+ path = castPath(path, object);
+ object = parent(object, path);
+ return object == null || delete object[toKey(last(path))];
+ }
+
+ /**
+ * The base implementation of `_.update`.
+ *
+ * @private
+ * @param {Object} object The object to modify.
+ * @param {Array|string} path The path of the property to update.
+ * @param {Function} updater The function to produce the updated value.
+ * @param {Function} [customizer] The function to customize path creation.
+ * @returns {Object} Returns `object`.
+ */
+ function baseUpdate(object, path, updater, customizer) {
+ return baseSet(object, path, updater(baseGet(object, path)), customizer);
+ }
+
+ /**
+ * The base implementation of methods like `_.dropWhile` and `_.takeWhile`
+ * without support for iteratee shorthands.
+ *
+ * @private
+ * @param {Array} array The array to query.
+ * @param {Function} predicate The function invoked per iteration.
+ * @param {boolean} [isDrop] Specify dropping elements instead of taking them.
+ * @param {boolean} [fromRight] Specify iterating from right to left.
+ * @returns {Array} Returns the slice of `array`.
+ */
+ function baseWhile(array, predicate, isDrop, fromRight) {
+ var length = array.length,
+ index = fromRight ? length : -1;
+
+ while ((fromRight ? index-- : ++index < length) &&
+ predicate(array[index], index, array)) {}
+
+ return isDrop
+ ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))
+ : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));
+ }
+
+ /**
+ * The base implementation of `wrapperValue` which returns the result of
+ * performing a sequence of actions on the unwrapped `value`, where each
+ * successive action is supplied the return value of the previous.
+ *
+ * @private
+ * @param {*} value The unwrapped value.
+ * @param {Array} actions Actions to perform to resolve the unwrapped value.
+ * @returns {*} Returns the resolved value.
+ */
+ function baseWrapperValue(value, actions) {
+ var result = value;
+ if (result instanceof LazyWrapper) {
+ result = result.value();
+ }
+ return arrayReduce(actions, function(result, action) {
+ return action.func.apply(action.thisArg, arrayPush([result], action.args));
+ }, result);
+ }
+
+ /**
+ * The base implementation of methods like `_.xor`, without support for
+ * iteratee shorthands, that accepts an array of arrays to inspect.
+ *
+ * @private
+ * @param {Array} arrays The arrays to inspect.
+ * @param {Function} [iteratee] The iteratee invoked per element.
+ * @param {Function} [comparator] The comparator invoked per element.
+ * @returns {Array} Returns the new array of values.
+ */
+ function baseXor(arrays, iteratee, comparator) {
+ var length = arrays.length;
+ if (length < 2) {
+ return length ? baseUniq(arrays[0]) : [];
+ }
+ var index = -1,
+ result = Array(length);
+
+ while (++index < length) {
+ var array = arrays[index],
+ othIndex = -1;
+
+ while (++othIndex < length) {
+ if (othIndex != index) {
+ result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);
+ }
+ }
+ }
+ return baseUniq(baseFlatten(result, 1), iteratee, comparator);
+ }
+
+ /**
+ * This base implementation of `_.zipObject` which assigns values using `assignFunc`.
+ *
+ * @private
+ * @param {Array} props The property identifiers.
+ * @param {Array} values The property values.
+ * @param {Function} assignFunc The function to assign values.
+ * @returns {Object} Returns the new object.
+ */
+ function baseZipObject(props, values, assignFunc) {
+ var index = -1,
+ length = props.length,
+ valsLength = values.length,
+ result = {};
+
+ while (++index < length) {
+ var value = index < valsLength ? values[index] : undefined;
+ assignFunc(result, props[index], value);
+ }
+ return result;
+ }
+
+ /**
+ * Casts `value` to an empty array if it's not an array like object.
+ *
+ * @private
+ * @param {*} value The value to inspect.
+ * @returns {Array|Object} Returns the cast array-like object.
+ */
+ function castArrayLikeObject(value) {
+ return isArrayLikeObject(value) ? value : [];
+ }
+
+ /**
+ * Casts `value` to `identity` if it's not a function.
+ *
+ * @private
+ * @param {*} value The value to inspect.
+ * @returns {Function} Returns cast function.
+ */
+ function castFunction(value) {
+ return typeof value == 'function' ? value : identity;
+ }
+
+ /**
+ * Casts `value` to a path array if it's not one.
+ *
+ * @private
+ * @param {*} value The value to inspect.
+ * @param {Object} [object] The object to query keys on.
+ * @returns {Array} Returns the cast property path array.
+ */
+ function castPath(value, object) {
+ if (isArray(value)) {
+ return value;
+ }
+ return isKey(value, object) ? [value] : stringToPath(toString(value));
+ }
+
+ /**
+ * A `baseRest` alias which can be replaced with `identity` by module
+ * replacement plugins.
+ *
+ * @private
+ * @type {Function}
+ * @param {Function} func The function to apply a rest parameter to.
+ * @returns {Function} Returns the new function.
+ */
+ var castRest = baseRest;
+
+ /**
+ * Casts `array` to a slice if it's needed.
+ *
+ * @private
+ * @param {Array} array The array to inspect.
+ * @param {number} start The start position.
+ * @param {number} [end=array.length] The end position.
+ * @returns {Array} Returns the cast slice.
+ */
+ function castSlice(array, start, end) {
+ var length = array.length;
+ end = end === undefined ? length : end;
+ return (!start && end >= length) ? array : baseSlice(array, start, end);
+ }
+
+ /**
+ * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout).
+ *
+ * @private
+ * @param {number|Object} id The timer id or timeout object of the timer to clear.
+ */
+ var clearTimeout = ctxClearTimeout || function(id) {
+ return root.clearTimeout(id);
+ };
+
+ /**
+ * Creates a clone of `buffer`.
+ *
+ * @private
+ * @param {Buffer} buffer The buffer to clone.
+ * @param {boolean} [isDeep] Specify a deep clone.
+ * @returns {Buffer} Returns the cloned buffer.
+ */
+ function cloneBuffer(buffer, isDeep) {
+ if (isDeep) {
+ return buffer.slice();
+ }
+ var length = buffer.length,
+ result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);
+
+ buffer.copy(result);
+ return result;
+ }
+
+ /**
+ * Creates a clone of `arrayBuffer`.
+ *
+ * @private
+ * @param {ArrayBuffer} arrayBuffer The array buffer to clone.
+ * @returns {ArrayBuffer} Returns the cloned array buffer.
+ */
+ function cloneArrayBuffer(arrayBuffer) {
+ var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
+ new Uint8Array(result).set(new Uint8Array(arrayBuffer));
+ return result;
+ }
+
+ /**
+ * Creates a clone of `dataView`.
+ *
+ * @private
+ * @param {Object} dataView The data view to clone.
+ * @param {boolean} [isDeep] Specify a deep clone.
+ * @returns {Object} Returns the cloned data view.
+ */
+ function cloneDataView(dataView, isDeep) {
+ var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;
+ return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);
+ }
+
+ /**
+ * Creates a clone of `regexp`.
+ *
+ * @private
+ * @param {Object} regexp The regexp to clone.
+ * @returns {Object} Returns the cloned regexp.
+ */
+ function cloneRegExp(regexp) {
+ var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));
+ result.lastIndex = regexp.lastIndex;
+ return result;
+ }
+
+ /**
+ * Creates a clone of the `symbol` object.
+ *
+ * @private
+ * @param {Object} symbol The symbol object to clone.
+ * @returns {Object} Returns the cloned symbol object.
+ */
+ function cloneSymbol(symbol) {
+ return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};
+ }
+
+ /**
+ * Creates a clone of `typedArray`.
+ *
+ * @private
+ * @param {Object} typedArray The typed array to clone.
+ * @param {boolean} [isDeep] Specify a deep clone.
+ * @returns {Object} Returns the cloned typed array.
+ */
+ function cloneTypedArray(typedArray, isDeep) {
+ var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
+ return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
+ }
+
+ /**
+ * Compares values to sort them in ascending order.
+ *
+ * @private
+ * @param {*} value The value to compare.
+ * @param {*} other The other value to compare.
+ * @returns {number} Returns the sort order indicator for `value`.
+ */
+ function compareAscending(value, other) {
+ if (value !== other) {
+ var valIsDefined = value !== undefined,
+ valIsNull = value === null,
+ valIsReflexive = value === value,
+ valIsSymbol = isSymbol(value);
+
+ var othIsDefined = other !== undefined,
+ othIsNull = other === null,
+ othIsReflexive = other === other,
+ othIsSymbol = isSymbol(other);
+
+ if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||
+ (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||
+ (valIsNull && othIsDefined && othIsReflexive) ||
+ (!valIsDefined && othIsReflexive) ||
+ !valIsReflexive) {
+ return 1;
+ }
+ if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||
+ (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||
+ (othIsNull && valIsDefined && valIsReflexive) ||
+ (!othIsDefined && valIsReflexive) ||
+ !othIsReflexive) {
+ return -1;
+ }
+ }
+ return 0;
+ }
+
+ /**
+ * Used by `_.orderBy` to compare multiple properties of a value to another
+ * and stable sort them.
+ *
+ * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,
+ * specify an order of "desc" for descending or "asc" for ascending sort order
+ * of corresponding values.
+ *
+ * @private
+ * @param {Object} object The object to compare.
+ * @param {Object} other The other object to compare.
+ * @param {boolean[]|string[]} orders The order to sort by for each property.
+ * @returns {number} Returns the sort order indicator for `object`.
+ */
+ function compareMultiple(object, other, orders) {
+ var index = -1,
+ objCriteria = object.criteria,
+ othCriteria = other.criteria,
+ length = objCriteria.length,
+ ordersLength = orders.length;
+
+ while (++index < length) {
+ var result = compareAscending(objCriteria[index], othCriteria[index]);
+ if (result) {
+ if (index >= ordersLength) {
+ return result;
+ }
+ var order = orders[index];
+ return result * (order == 'desc' ? -1 : 1);
+ }
+ }
+ // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications
+ // that causes it, under certain circumstances, to provide the same value for
+ // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247
+ // for more details.
+ //
+ // This also ensures a stable sort in V8 and other engines.
+ // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.
+ return object.index - other.index;
+ }
+
+ /**
+ * Creates an array that is the composition of partially applied arguments,
+ * placeholders, and provided arguments into a single array of arguments.
+ *
+ * @private
+ * @param {Array} args The provided arguments.
+ * @param {Array} partials The arguments to prepend to those provided.
+ * @param {Array} holders The `partials` placeholder indexes.
+ * @params {boolean} [isCurried] Specify composing for a curried function.
+ * @returns {Array} Returns the new array of composed arguments.
+ */
+ function composeArgs(args, partials, holders, isCurried) {
+ var argsIndex = -1,
+ argsLength = args.length,
+ holdersLength = holders.length,
+ leftIndex = -1,
+ leftLength = partials.length,
+ rangeLength = nativeMax(argsLength - holdersLength, 0),
+ result = Array(leftLength + rangeLength),
+ isUncurried = !isCurried;
+
+ while (++leftIndex < leftLength) {
+ result[leftIndex] = partials[leftIndex];
+ }
+ while (++argsIndex < holdersLength) {
+ if (isUncurried || argsIndex < argsLength) {
+ result[holders[argsIndex]] = args[argsIndex];
+ }
+ }
+ while (rangeLength--) {
+ result[leftIndex++] = args[argsIndex++];
+ }
+ return result;
+ }
+
+ /**
+ * This function is like `composeArgs` except that the arguments composition
+ * is tailored for `_.partialRight`.
+ *
+ * @private
+ * @param {Array} args The provided arguments.
+ * @param {Array} partials The arguments to append to those provided.
+ * @param {Array} holders The `partials` placeholder indexes.
+ * @params {boolean} [isCurried] Specify composing for a curried function.
+ * @returns {Array} Returns the new array of composed arguments.
+ */
+ function composeArgsRight(args, partials, holders, isCurried) {
+ var argsIndex = -1,
+ argsLength = args.length,
+ holdersIndex = -1,
+ holdersLength = holders.length,
+ rightIndex = -1,
+ rightLength = partials.length,
+ rangeLength = nativeMax(argsLength - holdersLength, 0),
+ result = Array(rangeLength + rightLength),
+ isUncurried = !isCurried;
+
+ while (++argsIndex < rangeLength) {
+ result[argsIndex] = args[argsIndex];
+ }
+ var offset = argsIndex;
+ while (++rightIndex < rightLength) {
+ result[offset + rightIndex] = partials[rightIndex];
+ }
+ while (++holdersIndex < holdersLength) {
+ if (isUncurried || argsIndex < argsLength) {
+ result[offset + holders[holdersIndex]] = args[argsIndex++];
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Copies the values of `source` to `array`.
+ *
+ * @private
+ * @param {Array} source The array to copy values from.
+ * @param {Array} [array=[]] The array to copy values to.
+ * @returns {Array} Returns `array`.
+ */
+ function copyArray(source, array) {
+ var index = -1,
+ length = source.length;
+
+ array || (array = Array(length));
+ while (++index < length) {
+ array[index] = source[index];
+ }
+ return array;
+ }
+
+ /**
+ * Copies properties of `source` to `object`.
+ *
+ * @private
+ * @param {Object} source The object to copy properties from.
+ * @param {Array} props The property identifiers to copy.
+ * @param {Object} [object={}] The object to copy properties to.
+ * @param {Function} [customizer] The function to customize copied values.
+ * @returns {Object} Returns `object`.
+ */
+ function copyObject(source, props, object, customizer) {
+ var isNew = !object;
+ object || (object = {});
+
+ var index = -1,
+ length = props.length;
+
+ while (++index < length) {
+ var key = props[index];
+
+ var newValue = customizer
+ ? customizer(object[key], source[key], key, object, source)
+ : undefined;
+
+ if (newValue === undefined) {
+ newValue = source[key];
+ }
+ if (isNew) {
+ baseAssignValue(object, key, newValue);
+ } else {
+ assignValue(object, key, newValue);
+ }
+ }
+ return object;
+ }
+
+ /**
+ * Copies own symbols of `source` to `object`.
+ *
+ * @private
+ * @param {Object} source The object to copy symbols from.
+ * @param {Object} [object={}] The object to copy symbols to.
+ * @returns {Object} Returns `object`.
+ */
+ function copySymbols(source, object) {
+ return copyObject(source, getSymbols(source), object);
+ }
+
+ /**
+ * Copies own and inherited symbols of `source` to `object`.
+ *
+ * @private
+ * @param {Object} source The object to copy symbols from.
+ * @param {Object} [object={}] The object to copy symbols to.
+ * @returns {Object} Returns `object`.
+ */
+ function copySymbolsIn(source, object) {
+ return copyObject(source, getSymbolsIn(source), object);
+ }
+
+ /**
+ * Creates a function like `_.groupBy`.
+ *
+ * @private
+ * @param {Function} setter The function to set accumulator values.
+ * @param {Function} [initializer] The accumulator object initializer.
+ * @returns {Function} Returns the new aggregator function.
+ */
+ function createAggregator(setter, initializer) {
+ return function(collection, iteratee) {
+ var func = isArray(collection) ? arrayAggregator : baseAggregator,
+ accumulator = initializer ? initializer() : {};
+
+ return func(collection, setter, getIteratee(iteratee, 2), accumulator);
+ };
+ }
+
+ /**
+ * Creates a function like `_.assign`.
+ *
+ * @private
+ * @param {Function} assigner The function to assign values.
+ * @returns {Function} Returns the new assigner function.
+ */
+ function createAssigner(assigner) {
+ return baseRest(function(object, sources) {
+ var index = -1,
+ length = sources.length,
+ customizer = length > 1 ? sources[length - 1] : undefined,
+ guard = length > 2 ? sources[2] : undefined;
+
+ customizer = (assigner.length > 3 && typeof customizer == 'function')
+ ? (length--, customizer)
+ : undefined;
+
+ if (guard && isIterateeCall(sources[0], sources[1], guard)) {
+ customizer = length < 3 ? undefined : customizer;
+ length = 1;
+ }
+ object = Object(object);
+ while (++index < length) {
+ var source = sources[index];
+ if (source) {
+ assigner(object, source, index, customizer);
+ }
+ }
+ return object;
+ });
+ }
+
+ /**
+ * Creates a `baseEach` or `baseEachRight` function.
+ *
+ * @private
+ * @param {Function} eachFunc The function to iterate over a collection.
+ * @param {boolean} [fromRight] Specify iterating from right to left.
+ * @returns {Function} Returns the new base function.
+ */
+ function createBaseEach(eachFunc, fromRight) {
+ return function(collection, iteratee) {
+ if (collection == null) {
+ return collection;
+ }
+ if (!isArrayLike(collection)) {
+ return eachFunc(collection, iteratee);
+ }
+ var length = collection.length,
+ index = fromRight ? length : -1,
+ iterable = Object(collection);
+
+ while ((fromRight ? index-- : ++index < length)) {
+ if (iteratee(iterable[index], index, iterable) === false) {
+ break;
+ }
+ }
+ return collection;
+ };
+ }
+
+ /**
+ * Creates a base function for methods like `_.forIn` and `_.forOwn`.
+ *
+ * @private
+ * @param {boolean} [fromRight] Specify iterating from right to left.
+ * @returns {Function} Returns the new base function.
+ */
+ function createBaseFor(fromRight) {
+ return function(object, iteratee, keysFunc) {
+ var index = -1,
+ iterable = Object(object),
+ props = keysFunc(object),
+ length = props.length;
+
+ while (length--) {
+ var key = props[fromRight ? length : ++index];
+ if (iteratee(iterable[key], key, iterable) === false) {
+ break;
+ }
+ }
+ return object;
+ };
+ }
+
+ /**
+ * Creates a function that wraps `func` to invoke it with the optional `this`
+ * binding of `thisArg`.
+ *
+ * @private
+ * @param {Function} func The function to wrap.
+ * @param {number} bitmask The bitmask flags. See `createWrap` for more details.
+ * @param {*} [thisArg] The `this` binding of `func`.
+ * @returns {Function} Returns the new wrapped function.
+ */
+ function createBind(func, bitmask, thisArg) {
+ var isBind = bitmask & WRAP_BIND_FLAG,
+ Ctor = createCtor(func);
+
+ function wrapper() {
+ var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;
+ return fn.apply(isBind ? thisArg : this, arguments);
+ }
+ return wrapper;
+ }
+
+ /**
+ * Creates a function like `_.lowerFirst`.
+ *
+ * @private
+ * @param {string} methodName The name of the `String` case method to use.
+ * @returns {Function} Returns the new case function.
+ */
+ function createCaseFirst(methodName) {
+ return function(string) {
+ string = toString(string);
+
+ var strSymbols = hasUnicode(string)
+ ? stringToArray(string)
+ : undefined;
+
+ var chr = strSymbols
+ ? strSymbols[0]
+ : string.charAt(0);
+
+ var trailing = strSymbols
+ ? castSlice(strSymbols, 1).join('')
+ : string.slice(1);
+
+ return chr[methodName]() + trailing;
+ };
+ }
+
+ /**
+ * Creates a function like `_.camelCase`.
+ *
+ * @private
+ * @param {Function} callback The function to combine each word.
+ * @returns {Function} Returns the new compounder function.
+ */
+ function createCompounder(callback) {
+ return function(string) {
+ return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');
+ };
+ }
+
+ /**
+ * Creates a function that produces an instance of `Ctor` regardless of
+ * whether it was invoked as part of a `new` expression or by `call` or `apply`.
+ *
+ * @private
+ * @param {Function} Ctor The constructor to wrap.
+ * @returns {Function} Returns the new wrapped function.
+ */
+ function createCtor(Ctor) {
+ return function() {
+ // Use a `switch` statement to work with class constructors. See
+ // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist
+ // for more details.
+ var args = arguments;
+ switch (args.length) {
+ case 0: return new Ctor;
+ case 1: return new Ctor(args[0]);
+ case 2: return new Ctor(args[0], args[1]);
+ case 3: return new Ctor(args[0], args[1], args[2]);
+ case 4: return new Ctor(args[0], args[1], args[2], args[3]);
+ case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);
+ case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);
+ case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);
+ }
+ var thisBinding = baseCreate(Ctor.prototype),
+ result = Ctor.apply(thisBinding, args);
+
+ // Mimic the constructor's `return` behavior.
+ // See https://es5.github.io/#x13.2.2 for more details.
+ return isObject(result) ? result : thisBinding;
+ };
+ }
+
+ /**
+ * Creates a function that wraps `func` to enable currying.
+ *
+ * @private
+ * @param {Function} func The function to wrap.
+ * @param {number} bitmask The bitmask flags. See `createWrap` for more details.
+ * @param {number} arity The arity of `func`.
+ * @returns {Function} Returns the new wrapped function.
+ */
+ function createCurry(func, bitmask, arity) {
+ var Ctor = createCtor(func);
+
+ function wrapper() {
+ var length = arguments.length,
+ args = Array(length),
+ index = length,
+ placeholder = getHolder(wrapper);
+
+ while (index--) {
+ args[index] = arguments[index];
+ }
+ var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)
+ ? []
+ : replaceHolders(args, placeholder);
+
+ length -= holders.length;
+ if (length < arity) {
+ return createRecurry(
+ func, bitmask, createHybrid, wrapper.placeholder, undefined,
+ args, holders, undefined, undefined, arity - length);
+ }
+ var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;
+ return apply(fn, this, args);
+ }
+ return wrapper;
+ }
+
+ /**
+ * Creates a `_.find` or `_.findLast` function.
+ *
+ * @private
+ * @param {Function} findIndexFunc The function to find the collection index.
+ * @returns {Function} Returns the new find function.
+ */
+ function createFind(findIndexFunc) {
+ return function(collection, predicate, fromIndex) {
+ var iterable = Object(collection);
+ if (!isArrayLike(collection)) {
+ var iteratee = getIteratee(predicate, 3);
+ collection = keys(collection);
+ predicate = function(key) { return iteratee(iterable[key], key, iterable); };
+ }
+ var index = findIndexFunc(collection, predicate, fromIndex);
+ return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;
+ };
+ }
+
+ /**
+ * Creates a `_.flow` or `_.flowRight` function.
+ *
+ * @private
+ * @param {boolean} [fromRight] Specify iterating from right to left.
+ * @returns {Function} Returns the new flow function.
+ */
+ function createFlow(fromRight) {
+ return flatRest(function(funcs) {
+ var length = funcs.length,
+ index = length,
+ prereq = LodashWrapper.prototype.thru;
+
+ if (fromRight) {
+ funcs.reverse();
+ }
+ while (index--) {
+ var func = funcs[index];
+ if (typeof func != 'function') {
+ throw new TypeError(FUNC_ERROR_TEXT);
+ }
+ if (prereq && !wrapper && getFuncName(func) == 'wrapper') {
+ var wrapper = new LodashWrapper([], true);
+ }
+ }
+ index = wrapper ? index : length;
+ while (++index < length) {
+ func = funcs[index];
+
+ var funcName = getFuncName(func),
+ data = funcName == 'wrapper' ? getData(func) : undefined;
+
+ if (data && isLaziable(data[0]) &&
+ data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&
+ !data[4].length && data[9] == 1
+ ) {
+ wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);
+ } else {
+ wrapper = (func.length == 1 && isLaziable(func))
+ ? wrapper[funcName]()
+ : wrapper.thru(func);
+ }
+ }
+ return function() {
+ var args = arguments,
+ value = args[0];
+
+ if (wrapper && args.length == 1 && isArray(value)) {
+ return wrapper.plant(value).value();
+ }
+ var index = 0,
+ result = length ? funcs[index].apply(this, args) : value;
+
+ while (++index < length) {
+ result = funcs[index].call(this, result);
+ }
+ return result;
+ };
+ });
+ }
+
+ /**
+ * Creates a function that wraps `func` to invoke it with optional `this`
+ * binding of `thisArg`, partial application, and currying.
+ *
+ * @private
+ * @param {Function|string} func The function or method name to wrap.
+ * @param {number} bitmask The bitmask flags. See `createWrap` for more details.
+ * @param {*} [thisArg] The `this` binding of `func`.
+ * @param {Array} [partials] The arguments to prepend to those provided to
+ * the new function.
+ * @param {Array} [holders] The `partials` placeholder indexes.
+ * @param {Array} [partialsRight] The arguments to append to those provided
+ * to the new function.
+ * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.
+ * @param {Array} [argPos] The argument positions of the new function.
+ * @param {number} [ary] The arity cap of `func`.
+ * @param {number} [arity] The arity of `func`.
+ * @returns {Function} Returns the new wrapped function.
+ */
+ function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {
+ var isAry = bitmask & WRAP_ARY_FLAG,
+ isBind = bitmask & WRAP_BIND_FLAG,
+ isBindKey = bitmask & WRAP_BIND_KEY_FLAG,
+ isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),
+ isFlip = bitmask & WRAP_FLIP_FLAG,
+ Ctor = isBindKey ? undefined : createCtor(func);
+
+ function wrapper() {
+ var length = arguments.length,
+ args = Array(length),
+ index = length;
+
+ while (index--) {
+ args[index] = arguments[index];
+ }
+ if (isCurried) {
+ var placeholder = getHolder(wrapper),
+ holdersCount = countHolders(args, placeholder);
+ }
+ if (partials) {
+ args = composeArgs(args, partials, holders, isCurried);
+ }
+ if (partialsRight) {
+ args = composeArgsRight(args, partialsRight, holdersRight, isCurried);
+ }
+ length -= holdersCount;
+ if (isCurried && length < arity) {
+ var newHolders = replaceHolders(args, placeholder);
+ return createRecurry(
+ func, bitmask, createHybrid, wrapper.placeholder, thisArg,
+ args, newHolders, argPos, ary, arity - length
+ );
+ }
+ var thisBinding = isBind ? thisArg : this,
+ fn = isBindKey ? thisBinding[func] : func;
+
+ length = args.length;
+ if (argPos) {
+ args = reorder(args, argPos);
+ } else if (isFlip && length > 1) {
+ args.reverse();
+ }
+ if (isAry && ary < length) {
+ args.length = ary;
+ }
+ if (this && this !== root && this instanceof wrapper) {
+ fn = Ctor || createCtor(fn);
+ }
+ return fn.apply(thisBinding, args);
+ }
+ return wrapper;
+ }
+
+ /**
+ * Creates a function like `_.invertBy`.
+ *
+ * @private
+ * @param {Function} setter The function to set accumulator values.
+ * @param {Function} toIteratee The function to resolve iteratees.
+ * @returns {Function} Returns the new inverter function.
+ */
+ function createInverter(setter, toIteratee) {
+ return function(object, iteratee) {
+ return baseInverter(object, setter, toIteratee(iteratee), {});
+ };
+ }
+
+ /**
+ * Creates a function that performs a mathematical operation on two values.
+ *
+ * @private
+ * @param {Function} operator The function to perform the operation.
+ * @param {number} [defaultValue] The value used for `undefined` arguments.
+ * @returns {Function} Returns the new mathematical operation function.
+ */
+ function createMathOperation(operator, defaultValue) {
+ return function(value, other) {
+ var result;
+ if (value === undefined && other === undefined) {
+ return defaultValue;
+ }
+ if (value !== undefined) {
+ result = value;
+ }
+ if (other !== undefined) {
+ if (result === undefined) {
+ return other;
+ }
+ if (typeof value == 'string' || typeof other == 'string') {
+ value = baseToString(value);
+ other = baseToString(other);
+ } else {
+ value = baseToNumber(value);
+ other = baseToNumber(other);
+ }
+ result = operator(value, other);
+ }
+ return result;
+ };
+ }
+
+ /**
+ * Creates a function like `_.over`.
+ *
+ * @private
+ * @param {Function} arrayFunc The function to iterate over iteratees.
+ * @returns {Function} Returns the new over function.
+ */
+ function createOver(arrayFunc) {
+ return flatRest(function(iteratees) {
+ iteratees = arrayMap(iteratees, baseUnary(getIteratee()));
+ return baseRest(function(args) {
+ var thisArg = this;
+ return arrayFunc(iteratees, function(iteratee) {
+ return apply(iteratee, thisArg, args);
+ });
+ });
+ });
+ }
+
+ /**
+ * Creates the padding for `string` based on `length`. The `chars` string
+ * is truncated if the number of characters exceeds `length`.
+ *
+ * @private
+ * @param {number} length The padding length.
+ * @param {string} [chars=' '] The string used as padding.
+ * @returns {string} Returns the padding for `string`.
+ */
+ function createPadding(length, chars) {
+ chars = chars === undefined ? ' ' : baseToString(chars);
+
+ var charsLength = chars.length;
+ if (charsLength < 2) {
+ return charsLength ? baseRepeat(chars, length) : chars;
+ }
+ var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));
+ return hasUnicode(chars)
+ ? castSlice(stringToArray(result), 0, length).join('')
+ : result.slice(0, length);
+ }
+
+ /**
+ * Creates a function that wraps `func` to invoke it with the `this` binding
+ * of `thisArg` and `partials` prepended to the arguments it receives.
+ *
+ * @private
+ * @param {Function} func The function to wrap.
+ * @param {number} bitmask The bitmask flags. See `createWrap` for more details.
+ * @param {*} thisArg The `this` binding of `func`.
+ * @param {Array} partials The arguments to prepend to those provided to
+ * the new function.
+ * @returns {Function} Returns the new wrapped function.
+ */
+ function createPartial(func, bitmask, thisArg, partials) {
+ var isBind = bitmask & WRAP_BIND_FLAG,
+ Ctor = createCtor(func);
+
+ function wrapper() {
+ var argsIndex = -1,
+ argsLength = arguments.length,
+ leftIndex = -1,
+ leftLength = partials.length,
+ args = Array(leftLength + argsLength),
+ fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;
+
+ while (++leftIndex < leftLength) {
+ args[leftIndex] = partials[leftIndex];
+ }
+ while (argsLength--) {
+ args[leftIndex++] = arguments[++argsIndex];
+ }
+ return apply(fn, isBind ? thisArg : this, args);
+ }
+ return wrapper;
+ }
+
+ /**
+ * Creates a `_.range` or `_.rangeRight` function.
+ *
+ * @private
+ * @param {boolean} [fromRight] Specify iterating from right to left.
+ * @returns {Function} Returns the new range function.
+ */
+ function createRange(fromRight) {
+ return function(start, end, step) {
+ if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {
+ end = step = undefined;
+ }
+ // Ensure the sign of `-0` is preserved.
+ start = toFinite(start);
+ if (end === undefined) {
+ end = start;
+ start = 0;
+ } else {
+ end = toFinite(end);
+ }
+ step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);
+ return baseRange(start, end, step, fromRight);
+ };
+ }
+
+ /**
+ * Creates a function that performs a relational operation on two values.
+ *
+ * @private
+ * @param {Function} operator The function to perform the operation.
+ * @returns {Function} Returns the new relational operation function.
+ */
+ function createRelationalOperation(operator) {
+ return function(value, other) {
+ if (!(typeof value == 'string' && typeof other == 'string')) {
+ value = toNumber(value);
+ other = toNumber(other);
+ }
+ return operator(value, other);
+ };
+ }
+
+ /**
+ * Creates a function that wraps `func` to continue currying.
+ *
+ * @private
+ * @param {Function} func The function to wrap.
+ * @param {number} bitmask The bitmask flags. See `createWrap` for more details.
+ * @param {Function} wrapFunc The function to create the `func` wrapper.
+ * @param {*} placeholder The placeholder value.
+ * @param {*} [thisArg] The `this` binding of `func`.
+ * @param {Array} [partials] The arguments to prepend to those provided to
+ * the new function.
+ * @param {Array} [holders] The `partials` placeholder indexes.
+ * @param {Array} [argPos] The argument positions of the new function.
+ * @param {number} [ary] The arity cap of `func`.
+ * @param {number} [arity] The arity of `func`.
+ * @returns {Function} Returns the new wrapped function.
+ */
+ function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {
+ var isCurry = bitmask & WRAP_CURRY_FLAG,
+ newHolders = isCurry ? holders : undefined,
+ newHoldersRight = isCurry ? undefined : holders,
+ newPartials = isCurry ? partials : undefined,
+ newPartialsRight = isCurry ? undefined : partials;
+
+ bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);
+ bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);
+
+ if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {
+ bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);
+ }
+ var newData = [
+ func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,
+ newHoldersRight, argPos, ary, arity
+ ];
+
+ var result = wrapFunc.apply(undefined, newData);
+ if (isLaziable(func)) {
+ setData(result, newData);
+ }
+ result.placeholder = placeholder;
+ return setWrapToString(result, func, bitmask);
+ }
+
+ /**
+ * Creates a function like `_.round`.
+ *
+ * @private
+ * @param {string} methodName The name of the `Math` method to use when rounding.
+ * @returns {Function} Returns the new round function.
+ */
+ function createRound(methodName) {
+ var func = Math[methodName];
+ return function(number, precision) {
+ number = toNumber(number);
+ precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);
+ if (precision && nativeIsFinite(number)) {
+ // Shift with exponential notation to avoid floating-point issues.
+ // See [MDN](https://mdn.io/round#Examples) for more details.
+ var pair = (toString(number) + 'e').split('e'),
+ value = func(pair[0] + 'e' + (+pair[1] + precision));
+
+ pair = (toString(value) + 'e').split('e');
+ return +(pair[0] + 'e' + (+pair[1] - precision));
+ }
+ return func(number);
+ };
+ }
+
+ /**
+ * Creates a set object of `values`.
+ *
+ * @private
+ * @param {Array} values The values to add to the set.
+ * @returns {Object} Returns the new set.
+ */
+ var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {
+ return new Set(values);
+ };
+
+ /**
+ * Creates a `_.toPairs` or `_.toPairsIn` function.
+ *
+ * @private
+ * @param {Function} keysFunc The function to get the keys of a given object.
+ * @returns {Function} Returns the new pairs function.
+ */
+ function createToPairs(keysFunc) {
+ return function(object) {
+ var tag = getTag(object);
+ if (tag == mapTag) {
+ return mapToArray(object);
+ }
+ if (tag == setTag) {
+ return setToPairs(object);
+ }
+ return baseToPairs(object, keysFunc(object));
+ };
+ }
+
+ /**
+ * Creates a function that either curries or invokes `func` with optional
+ * `this` binding and partially applied arguments.
+ *
+ * @private
+ * @param {Function|string} func The function or method name to wrap.
+ * @param {number} bitmask The bitmask flags.
+ * 1 - `_.bind`
+ * 2 - `_.bindKey`
+ * 4 - `_.curry` or `_.curryRight` of a bound function
+ * 8 - `_.curry`
+ * 16 - `_.curryRight`
+ * 32 - `_.partial`
+ * 64 - `_.partialRight`
+ * 128 - `_.rearg`
+ * 256 - `_.ary`
+ * 512 - `_.flip`
+ * @param {*} [thisArg] The `this` binding of `func`.
+ * @param {Array} [partials] The arguments to be partially applied.
+ * @param {Array} [holders] The `partials` placeholder indexes.
+ * @param {Array} [argPos] The argument positions of the new function.
+ * @param {number} [ary] The arity cap of `func`.
+ * @param {number} [arity] The arity of `func`.
+ * @returns {Function} Returns the new wrapped function.
+ */
+ function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {
+ var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;
+ if (!isBindKey && typeof func != 'function') {
+ throw new TypeError(FUNC_ERROR_TEXT);
+ }
+ var length = partials ? partials.length : 0;
+ if (!length) {
+ bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);
+ partials = holders = undefined;
+ }
+ ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);
+ arity = arity === undefined ? arity : toInteger(arity);
+ length -= holders ? holders.length : 0;
+
+ if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {
+ var partialsRight = partials,
+ holdersRight = holders;
+
+ partials = holders = undefined;
+ }
+ var data = isBindKey ? undefined : getData(func);
+
+ var newData = [
+ func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,
+ argPos, ary, arity
+ ];
+
+ if (data) {
+ mergeData(newData, data);
+ }
+ func = newData[0];
+ bitmask = newData[1];
+ thisArg = newData[2];
+ partials = newData[3];
+ holders = newData[4];
+ arity = newData[9] = newData[9] === undefined
+ ? (isBindKey ? 0 : func.length)
+ : nativeMax(newData[9] - length, 0);
+
+ if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {
+ bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);
+ }
+ if (!bitmask || bitmask == WRAP_BIND_FLAG) {
+ var result = createBind(func, bitmask, thisArg);
+ } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {
+ result = createCurry(func, bitmask, arity);
+ } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {
+ result = createPartial(func, bitmask, thisArg, partials);
+ } else {
+ result = createHybrid.apply(undefined, newData);
+ }
+ var setter = data ? baseSetData : setData;
+ return setWrapToString(setter(result, newData), func, bitmask);
+ }
+
+ /**
+ * Used by `_.defaults` to customize its `_.assignIn` use to assign properties
+ * of source objects to the destination object for all destination properties
+ * that resolve to `undefined`.
+ *
+ * @private
+ * @param {*} objValue The destination value.
+ * @param {*} srcValue The source value.
+ * @param {string} key The key of the property to assign.
+ * @param {Object} object The parent object of `objValue`.
+ * @returns {*} Returns the value to assign.
+ */
+ function customDefaultsAssignIn(objValue, srcValue, key, object) {
+ if (objValue === undefined ||
+ (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {
+ return srcValue;
+ }
+ return objValue;
+ }
+
+ /**
+ * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source
+ * objects into destination objects that are passed thru.
+ *
+ * @private
+ * @param {*} objValue The destination value.
+ * @param {*} srcValue The source value.
+ * @param {string} key The key of the property to merge.
+ * @param {Object} object The parent object of `objValue`.
+ * @param {Object} source The parent object of `srcValue`.
+ * @param {Object} [stack] Tracks traversed source values and their merged
+ * counterparts.
+ * @returns {*} Returns the value to assign.
+ */
+ function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {
+ if (isObject(objValue) && isObject(srcValue)) {
+ // Recursively merge objects and arrays (susceptible to call stack limits).
+ stack.set(srcValue, objValue);
+ baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);
+ stack['delete'](srcValue);
+ }
+ return objValue;
+ }
+
+ /**
+ * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain
+ * objects.
+ *
+ * @private
+ * @param {*} value The value to inspect.
+ * @param {string} key The key of the property to inspect.
+ * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.
+ */
+ function customOmitClone(value) {
+ return isPlainObject(value) ? undefined : value;
+ }
+
+ /**
+ * A specialized version of `baseIsEqualDeep` for arrays with support for
+ * partial deep comparisons.
+ *
+ * @private
+ * @param {Array} array The array to compare.
+ * @param {Array} other The other array to compare.
+ * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
+ * @param {Function} customizer The function to customize comparisons.
+ * @param {Function} equalFunc The function to determine equivalents of values.
+ * @param {Object} stack Tracks traversed `array` and `other` objects.
+ * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
+ */
+ function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
+ var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
+ arrLength = array.length,
+ othLength = other.length;
+
+ if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
+ return false;
+ }
+ // Check that cyclic values are equal.
+ var arrStacked = stack.get(array);
+ var othStacked = stack.get(other);
+ if (arrStacked && othStacked) {
+ return arrStacked == other && othStacked == array;
+ }
+ var index = -1,
+ result = true,
+ seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;
+
+ stack.set(array, other);
+ stack.set(other, array);
+
+ // Ignore non-index properties.
+ while (++index < arrLength) {
+ var arrValue = array[index],
+ othValue = other[index];
+
+ if (customizer) {
+ var compared = isPartial
+ ? customizer(othValue, arrValue, index, other, array, stack)
+ : customizer(arrValue, othValue, index, array, other, stack);
+ }
+ if (compared !== undefined) {
+ if (compared) {
+ continue;
+ }
+ result = false;
+ break;
+ }
+ // Recursively compare arrays (susceptible to call stack limits).
+ if (seen) {
+ if (!arraySome(other, function(othValue, othIndex) {
+ if (!cacheHas(seen, othIndex) &&
+ (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
+ return seen.push(othIndex);
+ }
+ })) {
+ result = false;
+ break;
+ }
+ } else if (!(
+ arrValue === othValue ||
+ equalFunc(arrValue, othValue, bitmask, customizer, stack)
+ )) {
+ result = false;
+ break;
+ }
+ }
+ stack['delete'](array);
+ stack['delete'](other);
+ return result;
+ }
+
+ /**
+ * A specialized version of `baseIsEqualDeep` for comparing objects of
+ * the same `toStringTag`.
+ *
+ * **Note:** This function only supports comparing values with tags of
+ * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
+ *
+ * @private
+ * @param {Object} object The object to compare.
+ * @param {Object} other The other object to compare.
+ * @param {string} tag The `toStringTag` of the objects to compare.
+ * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
+ * @param {Function} customizer The function to customize comparisons.
+ * @param {Function} equalFunc The function to determine equivalents of values.
+ * @param {Object} stack Tracks traversed `object` and `other` objects.
+ * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
+ */
+ function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
+ switch (tag) {
+ case dataViewTag:
+ if ((object.byteLength != other.byteLength) ||
+ (object.byteOffset != other.byteOffset)) {
+ return false;
+ }
+ object = object.buffer;
+ other = other.buffer;
+
+ case arrayBufferTag:
+ if ((object.byteLength != other.byteLength) ||
+ !equalFunc(new Uint8Array(object), new Uint8Array(other))) {
+ return false;
+ }
+ return true;
+
+ case boolTag:
+ case dateTag:
+ case numberTag:
+ // Coerce booleans to `1` or `0` and dates to milliseconds.
+ // Invalid dates are coerced to `NaN`.
+ return eq(+object, +other);
+
+ case errorTag:
+ return object.name == other.name && object.message == other.message;
+
+ case regexpTag:
+ case stringTag:
+ // Coerce regexes to strings and treat strings, primitives and objects,
+ // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring
+ // for more details.
+ return object == (other + '');
+
+ case mapTag:
+ var convert = mapToArray;
+
+ case setTag:
+ var isPartial = bitmask & COMPARE_PARTIAL_FLAG;
+ convert || (convert = setToArray);
+
+ if (object.size != other.size && !isPartial) {
+ return false;
+ }
+ // Assume cyclic values are equal.
+ var stacked = stack.get(object);
+ if (stacked) {
+ return stacked == other;
+ }
+ bitmask |= COMPARE_UNORDERED_FLAG;
+
+ // Recursively compare objects (susceptible to call stack limits).
+ stack.set(object, other);
+ var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);
+ stack['delete'](object);
+ return result;
+
+ case symbolTag:
+ if (symbolValueOf) {
+ return symbolValueOf.call(object) == symbolValueOf.call(other);
+ }
+ }
+ return false;
+ }
+
+ /**
+ * A specialized version of `baseIsEqualDeep` for objects with support for
+ * partial deep comparisons.
+ *
+ * @private
+ * @param {Object} object The object to compare.
+ * @param {Object} other The other object to compare.
+ * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
+ * @param {Function} customizer The function to customize comparisons.
+ * @param {Function} equalFunc The function to determine equivalents of values.
+ * @param {Object} stack Tracks traversed `object` and `other` objects.
+ * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
+ */
+ function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
+ var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
+ objProps = getAllKeys(object),
+ objLength = objProps.length,
+ othProps = getAllKeys(other),
+ othLength = othProps.length;
+
+ if (objLength != othLength && !isPartial) {
+ return false;
+ }
+ var index = objLength;
+ while (index--) {
+ var key = objProps[index];
+ if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {
+ return false;
+ }
+ }
+ // Check that cyclic values are equal.
+ var objStacked = stack.get(object);
+ var othStacked = stack.get(other);
+ if (objStacked && othStacked) {
+ return objStacked == other && othStacked == object;
+ }
+ var result = true;
+ stack.set(object, other);
+ stack.set(other, object);
+
+ var skipCtor = isPartial;
+ while (++index < objLength) {
+ key = objProps[index];
+ var objValue = object[key],
+ othValue = other[key];
+
+ if (customizer) {
+ var compared = isPartial
+ ? customizer(othValue, objValue, key, other, object, stack)
+ : customizer(objValue, othValue, key, object, other, stack);
+ }
+ // Recursively compare objects (susceptible to call stack limits).
+ if (!(compared === undefined
+ ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))
+ : compared
+ )) {
+ result = false;
+ break;
+ }
+ skipCtor || (skipCtor = key == 'constructor');
+ }
+ if (result && !skipCtor) {
+ var objCtor = object.constructor,
+ othCtor = other.constructor;
+
+ // Non `Object` object instances with different constructors are not equal.
+ if (objCtor != othCtor &&
+ ('constructor' in object && 'constructor' in other) &&
+ !(typeof objCtor == 'function' && objCtor instanceof objCtor &&
+ typeof othCtor == 'function' && othCtor instanceof othCtor)) {
+ result = false;
+ }
+ }
+ stack['delete'](object);
+ stack['delete'](other);
+ return result;
+ }
+
+ /**
+ * A specialized version of `baseRest` which flattens the rest array.
+ *
+ * @private
+ * @param {Function} func The function to apply a rest parameter to.
+ * @returns {Function} Returns the new function.
+ */
+ function flatRest(func) {
+ return setToString(overRest(func, undefined, flatten), func + '');
+ }
+
+ /**
+ * Creates an array of own enumerable property names and symbols of `object`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of property names and symbols.
+ */
+ function getAllKeys(object) {
+ return baseGetAllKeys(object, keys, getSymbols);
+ }
+
+ /**
+ * Creates an array of own and inherited enumerable property names and
+ * symbols of `object`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of property names and symbols.
+ */
+ function getAllKeysIn(object) {
+ return baseGetAllKeys(object, keysIn, getSymbolsIn);
+ }
+
+ /**
+ * Gets metadata for `func`.
+ *
+ * @private
+ * @param {Function} func The function to query.
+ * @returns {*} Returns the metadata for `func`.
+ */
+ var getData = !metaMap ? noop : function(func) {
+ return metaMap.get(func);
+ };
+
+ /**
+ * Gets the name of `func`.
+ *
+ * @private
+ * @param {Function} func The function to query.
+ * @returns {string} Returns the function name.
+ */
+ function getFuncName(func) {
+ var result = (func.name + ''),
+ array = realNames[result],
+ length = hasOwnProperty.call(realNames, result) ? array.length : 0;
+
+ while (length--) {
+ var data = array[length],
+ otherFunc = data.func;
+ if (otherFunc == null || otherFunc == func) {
+ return data.name;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Gets the argument placeholder value for `func`.
+ *
+ * @private
+ * @param {Function} func The function to inspect.
+ * @returns {*} Returns the placeholder value.
+ */
+ function getHolder(func) {
+ var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func;
+ return object.placeholder;
+ }
+
+ /**
+ * Gets the appropriate "iteratee" function. If `_.iteratee` is customized,
+ * this function returns the custom method, otherwise it returns `baseIteratee`.
+ * If arguments are provided, the chosen function is invoked with them and
+ * its result is returned.
+ *
+ * @private
+ * @param {*} [value] The value to convert to an iteratee.
+ * @param {number} [arity] The arity of the created iteratee.
+ * @returns {Function} Returns the chosen function or its result.
+ */
+ function getIteratee() {
+ var result = lodash.iteratee || iteratee;
+ result = result === iteratee ? baseIteratee : result;
+ return arguments.length ? result(arguments[0], arguments[1]) : result;
+ }
+
+ /**
+ * Gets the data for `map`.
+ *
+ * @private
+ * @param {Object} map The map to query.
+ * @param {string} key The reference key.
+ * @returns {*} Returns the map data.
+ */
+ function getMapData(map, key) {
+ var data = map.__data__;
+ return isKeyable(key)
+ ? data[typeof key == 'string' ? 'string' : 'hash']
+ : data.map;
+ }
+
+ /**
+ * Gets the property names, values, and compare flags of `object`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the match data of `object`.
+ */
+ function getMatchData(object) {
+ var result = keys(object),
+ length = result.length;
+
+ while (length--) {
+ var key = result[length],
+ value = object[key];
+
+ result[length] = [key, value, isStrictComparable(value)];
+ }
+ return result;
+ }
+
+ /**
+ * Gets the native function at `key` of `object`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @param {string} key The key of the method to get.
+ * @returns {*} Returns the function if it's native, else `undefined`.
+ */
+ function getNative(object, key) {
+ var value = getValue(object, key);
+ return baseIsNative(value) ? value : undefined;
+ }
+
+ /**
+ * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
+ *
+ * @private
+ * @param {*} value The value to query.
+ * @returns {string} Returns the raw `toStringTag`.
+ */
+ function getRawTag(value) {
+ var isOwn = hasOwnProperty.call(value, symToStringTag),
+ tag = value[symToStringTag];
+
+ try {
+ value[symToStringTag] = undefined;
+ var unmasked = true;
+ } catch (e) {}
+
+ var result = nativeObjectToString.call(value);
+ if (unmasked) {
+ if (isOwn) {
+ value[symToStringTag] = tag;
+ } else {
+ delete value[symToStringTag];
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Creates an array of the own enumerable symbols of `object`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of symbols.
+ */
+ var getSymbols = !nativeGetSymbols ? stubArray : function(object) {
+ if (object == null) {
+ return [];
+ }
+ object = Object(object);
+ return arrayFilter(nativeGetSymbols(object), function(symbol) {
+ return propertyIsEnumerable.call(object, symbol);
+ });
+ };
+
+ /**
+ * Creates an array of the own and inherited enumerable symbols of `object`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of symbols.
+ */
+ var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {
+ var result = [];
+ while (object) {
+ arrayPush(result, getSymbols(object));
+ object = getPrototype(object);
+ }
+ return result;
+ };
+
+ /**
+ * Gets the `toStringTag` of `value`.
+ *
+ * @private
+ * @param {*} value The value to query.
+ * @returns {string} Returns the `toStringTag`.
+ */
+ var getTag = baseGetTag;
+
+ // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.
+ if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||
+ (Map && getTag(new Map) != mapTag) ||
+ (Promise && getTag(Promise.resolve()) != promiseTag) ||
+ (Set && getTag(new Set) != setTag) ||
+ (WeakMap && getTag(new WeakMap) != weakMapTag)) {
+ getTag = function(value) {
+ var result = baseGetTag(value),
+ Ctor = result == objectTag ? value.constructor : undefined,
+ ctorString = Ctor ? toSource(Ctor) : '';
+
+ if (ctorString) {
+ switch (ctorString) {
+ case dataViewCtorString: return dataViewTag;
+ case mapCtorString: return mapTag;
+ case promiseCtorString: return promiseTag;
+ case setCtorString: return setTag;
+ case weakMapCtorString: return weakMapTag;
+ }
+ }
+ return result;
+ };
+ }
+
+ /**
+ * Gets the view, applying any `transforms` to the `start` and `end` positions.
+ *
+ * @private
+ * @param {number} start The start of the view.
+ * @param {number} end The end of the view.
+ * @param {Array} transforms The transformations to apply to the view.
+ * @returns {Object} Returns an object containing the `start` and `end`
+ * positions of the view.
+ */
+ function getView(start, end, transforms) {
+ var index = -1,
+ length = transforms.length;
+
+ while (++index < length) {
+ var data = transforms[index],
+ size = data.size;
+
+ switch (data.type) {
+ case 'drop': start += size; break;
+ case 'dropRight': end -= size; break;
+ case 'take': end = nativeMin(end, start + size); break;
+ case 'takeRight': start = nativeMax(start, end - size); break;
+ }
+ }
+ return { 'start': start, 'end': end };
+ }
+
+ /**
+ * Extracts wrapper details from the `source` body comment.
+ *
+ * @private
+ * @param {string} source The source to inspect.
+ * @returns {Array} Returns the wrapper details.
+ */
+ function getWrapDetails(source) {
+ var match = source.match(reWrapDetails);
+ return match ? match[1].split(reSplitDetails) : [];
+ }
+
+ /**
+ * Checks if `path` exists on `object`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @param {Array|string} path The path to check.
+ * @param {Function} hasFunc The function to check properties.
+ * @returns {boolean} Returns `true` if `path` exists, else `false`.
+ */
+ function hasPath(object, path, hasFunc) {
+ path = castPath(path, object);
+
+ var index = -1,
+ length = path.length,
+ result = false;
+
+ while (++index < length) {
+ var key = toKey(path[index]);
+ if (!(result = object != null && hasFunc(object, key))) {
+ break;
+ }
+ object = object[key];
+ }
+ if (result || ++index != length) {
+ return result;
+ }
+ length = object == null ? 0 : object.length;
+ return !!length && isLength(length) && isIndex(key, length) &&
+ (isArray(object) || isArguments(object));
+ }
+
+ /**
+ * Initializes an array clone.
+ *
+ * @private
+ * @param {Array} array The array to clone.
+ * @returns {Array} Returns the initialized clone.
+ */
+ function initCloneArray(array) {
+ var length = array.length,
+ result = new array.constructor(length);
+
+ // Add properties assigned by `RegExp#exec`.
+ if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {
+ result.index = array.index;
+ result.input = array.input;
+ }
+ return result;
+ }
+
+ /**
+ * Initializes an object clone.
+ *
+ * @private
+ * @param {Object} object The object to clone.
+ * @returns {Object} Returns the initialized clone.
+ */
+ function initCloneObject(object) {
+ return (typeof object.constructor == 'function' && !isPrototype(object))
+ ? baseCreate(getPrototype(object))
+ : {};
+ }
+
+ /**
+ * Initializes an object clone based on its `toStringTag`.
+ *
+ * **Note:** This function only supports cloning values with tags of
+ * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.
+ *
+ * @private
+ * @param {Object} object The object to clone.
+ * @param {string} tag The `toStringTag` of the object to clone.
+ * @param {boolean} [isDeep] Specify a deep clone.
+ * @returns {Object} Returns the initialized clone.
+ */
+ function initCloneByTag(object, tag, isDeep) {
+ var Ctor = object.constructor;
+ switch (tag) {
+ case arrayBufferTag:
+ return cloneArrayBuffer(object);
+
+ case boolTag:
+ case dateTag:
+ return new Ctor(+object);
+
+ case dataViewTag:
+ return cloneDataView(object, isDeep);
+
+ case float32Tag: case float64Tag:
+ case int8Tag: case int16Tag: case int32Tag:
+ case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:
+ return cloneTypedArray(object, isDeep);
+
+ case mapTag:
+ return new Ctor;
+
+ case numberTag:
+ case stringTag:
+ return new Ctor(object);
+
+ case regexpTag:
+ return cloneRegExp(object);
+
+ case setTag:
+ return new Ctor;
+
+ case symbolTag:
+ return cloneSymbol(object);
+ }
+ }
+
+ /**
+ * Inserts wrapper `details` in a comment at the top of the `source` body.
+ *
+ * @private
+ * @param {string} source The source to modify.
+ * @returns {Array} details The details to insert.
+ * @returns {string} Returns the modified source.
+ */
+ function insertWrapDetails(source, details) {
+ var length = details.length;
+ if (!length) {
+ return source;
+ }
+ var lastIndex = length - 1;
+ details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];
+ details = details.join(length > 2 ? ', ' : ' ');
+ return source.replace(reWrapComment, '{\n/* [wrapped with ' + details + '] */\n');
+ }
+
+ /**
+ * Checks if `value` is a flattenable `arguments` object or array.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.
+ */
+ function isFlattenable(value) {
+ return isArray(value) || isArguments(value) ||
+ !!(spreadableSymbol && value && value[spreadableSymbol]);
+ }
+
+ /**
+ * Checks if `value` is a valid array-like index.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
+ * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
+ */
+ function isIndex(value, length) {
+ var type = typeof value;
+ length = length == null ? MAX_SAFE_INTEGER : length;
+
+ return !!length &&
+ (type == 'number' ||
+ (type != 'symbol' && reIsUint.test(value))) &&
+ (value > -1 && value % 1 == 0 && value < length);
+ }
+
+ /**
+ * Checks if the given arguments are from an iteratee call.
+ *
+ * @private
+ * @param {*} value The potential iteratee value argument.
+ * @param {*} index The potential iteratee index or key argument.
+ * @param {*} object The potential iteratee object argument.
+ * @returns {boolean} Returns `true` if the arguments are from an iteratee call,
+ * else `false`.
+ */
+ function isIterateeCall(value, index, object) {
+ if (!isObject(object)) {
+ return false;
+ }
+ var type = typeof index;
+ if (type == 'number'
+ ? (isArrayLike(object) && isIndex(index, object.length))
+ : (type == 'string' && index in object)
+ ) {
+ return eq(object[index], value);
+ }
+ return false;
+ }
+
+ /**
+ * Checks if `value` is a property name and not a property path.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @param {Object} [object] The object to query keys on.
+ * @returns {boolean} Returns `true` if `value` is a property name, else `false`.
+ */
+ function isKey(value, object) {
+ if (isArray(value)) {
+ return false;
+ }
+ var type = typeof value;
+ if (type == 'number' || type == 'symbol' || type == 'boolean' ||
+ value == null || isSymbol(value)) {
+ return true;
+ }
+ return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||
+ (object != null && value in Object(object));
+ }
+
+ /**
+ * Checks if `value` is suitable for use as unique object key.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
+ */
+ function isKeyable(value) {
+ var type = typeof value;
+ return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
+ ? (value !== '__proto__')
+ : (value === null);
+ }
+
+ /**
+ * Checks if `func` has a lazy counterpart.
+ *
+ * @private
+ * @param {Function} func The function to check.
+ * @returns {boolean} Returns `true` if `func` has a lazy counterpart,
+ * else `false`.
+ */
+ function isLaziable(func) {
+ var funcName = getFuncName(func),
+ other = lodash[funcName];
+
+ if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {
+ return false;
+ }
+ if (func === other) {
+ return true;
+ }
+ var data = getData(other);
+ return !!data && func === data[0];
+ }
+
+ /**
+ * Checks if `func` has its source masked.
+ *
+ * @private
+ * @param {Function} func The function to check.
+ * @returns {boolean} Returns `true` if `func` is masked, else `false`.
+ */
+ function isMasked(func) {
+ return !!maskSrcKey && (maskSrcKey in func);
+ }
+
+ /**
+ * Checks if `func` is capable of being masked.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `func` is maskable, else `false`.
+ */
+ var isMaskable = coreJsData ? isFunction : stubFalse;
+
+ /**
+ * Checks if `value` is likely a prototype object.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
+ */
+ function isPrototype(value) {
+ var Ctor = value && value.constructor,
+ proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;
+
+ return value === proto;
+ }
+
+ /**
+ * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` if suitable for strict
+ * equality comparisons, else `false`.
+ */
+ function isStrictComparable(value) {
+ return value === value && !isObject(value);
+ }
+
+ /**
+ * A specialized version of `matchesProperty` for source values suitable
+ * for strict equality comparisons, i.e. `===`.
+ *
+ * @private
+ * @param {string} key The key of the property to get.
+ * @param {*} srcValue The value to match.
+ * @returns {Function} Returns the new spec function.
+ */
+ function matchesStrictComparable(key, srcValue) {
+ return function(object) {
+ if (object == null) {
+ return false;
+ }
+ return object[key] === srcValue &&
+ (srcValue !== undefined || (key in Object(object)));
+ };
+ }
+
+ /**
+ * A specialized version of `_.memoize` which clears the memoized function's
+ * cache when it exceeds `MAX_MEMOIZE_SIZE`.
+ *
+ * @private
+ * @param {Function} func The function to have its output memoized.
+ * @returns {Function} Returns the new memoized function.
+ */
+ function memoizeCapped(func) {
+ var result = memoize(func, function(key) {
+ if (cache.size === MAX_MEMOIZE_SIZE) {
+ cache.clear();
+ }
+ return key;
+ });
+
+ var cache = result.cache;
+ return result;
+ }
+
+ /**
+ * Merges the function metadata of `source` into `data`.
+ *
+ * Merging metadata reduces the number of wrappers used to invoke a function.
+ * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`
+ * may be applied regardless of execution order. Methods like `_.ary` and
+ * `_.rearg` modify function arguments, making the order in which they are
+ * executed important, preventing the merging of metadata. However, we make
+ * an exception for a safe combined case where curried functions have `_.ary`
+ * and or `_.rearg` applied.
+ *
+ * @private
+ * @param {Array} data The destination metadata.
+ * @param {Array} source The source metadata.
+ * @returns {Array} Returns `data`.
+ */
+ function mergeData(data, source) {
+ var bitmask = data[1],
+ srcBitmask = source[1],
+ newBitmask = bitmask | srcBitmask,
+ isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);
+
+ var isCombo =
+ ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||
+ ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||
+ ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));
+
+ // Exit early if metadata can't be merged.
+ if (!(isCommon || isCombo)) {
+ return data;
+ }
+ // Use source `thisArg` if available.
+ if (srcBitmask & WRAP_BIND_FLAG) {
+ data[2] = source[2];
+ // Set when currying a bound function.
+ newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;
+ }
+ // Compose partial arguments.
+ var value = source[3];
+ if (value) {
+ var partials = data[3];
+ data[3] = partials ? composeArgs(partials, value, source[4]) : value;
+ data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];
+ }
+ // Compose partial right arguments.
+ value = source[5];
+ if (value) {
+ partials = data[5];
+ data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;
+ data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];
+ }
+ // Use source `argPos` if available.
+ value = source[7];
+ if (value) {
+ data[7] = value;
+ }
+ // Use source `ary` if it's smaller.
+ if (srcBitmask & WRAP_ARY_FLAG) {
+ data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);
+ }
+ // Use source `arity` if one is not provided.
+ if (data[9] == null) {
+ data[9] = source[9];
+ }
+ // Use source `func` and merge bitmasks.
+ data[0] = source[0];
+ data[1] = newBitmask;
+
+ return data;
+ }
+
+ /**
+ * This function is like
+ * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
+ * except that it includes inherited enumerable properties.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of property names.
+ */
+ function nativeKeysIn(object) {
+ var result = [];
+ if (object != null) {
+ for (var key in Object(object)) {
+ result.push(key);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Converts `value` to a string using `Object.prototype.toString`.
+ *
+ * @private
+ * @param {*} value The value to convert.
+ * @returns {string} Returns the converted string.
+ */
+ function objectToString(value) {
+ return nativeObjectToString.call(value);
+ }
+
+ /**
+ * A specialized version of `baseRest` which transforms the rest array.
+ *
+ * @private
+ * @param {Function} func The function to apply a rest parameter to.
+ * @param {number} [start=func.length-1] The start position of the rest parameter.
+ * @param {Function} transform The rest array transform.
+ * @returns {Function} Returns the new function.
+ */
+ function overRest(func, start, transform) {
+ start = nativeMax(start === undefined ? (func.length - 1) : start, 0);
+ return function() {
+ var args = arguments,
+ index = -1,
+ length = nativeMax(args.length - start, 0),
+ array = Array(length);
+
+ while (++index < length) {
+ array[index] = args[start + index];
+ }
+ index = -1;
+ var otherArgs = Array(start + 1);
+ while (++index < start) {
+ otherArgs[index] = args[index];
+ }
+ otherArgs[start] = transform(array);
+ return apply(func, this, otherArgs);
+ };
+ }
+
+ /**
+ * Gets the parent value at `path` of `object`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @param {Array} path The path to get the parent value of.
+ * @returns {*} Returns the parent value.
+ */
+ function parent(object, path) {
+ return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));
+ }
+
+ /**
+ * Reorder `array` according to the specified indexes where the element at
+ * the first index is assigned as the first element, the element at
+ * the second index is assigned as the second element, and so on.
+ *
+ * @private
+ * @param {Array} array The array to reorder.
+ * @param {Array} indexes The arranged array indexes.
+ * @returns {Array} Returns `array`.
+ */
+ function reorder(array, indexes) {
+ var arrLength = array.length,
+ length = nativeMin(indexes.length, arrLength),
+ oldArray = copyArray(array);
+
+ while (length--) {
+ var index = indexes[length];
+ array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;
+ }
+ return array;
+ }
+
+ /**
+ * Gets the value at `key`, unless `key` is "__proto__" or "constructor".
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @param {string} key The key of the property to get.
+ * @returns {*} Returns the property value.
+ */
+ function safeGet(object, key) {
+ if (key === 'constructor' && typeof object[key] === 'function') {
+ return;
+ }
+
+ if (key == '__proto__') {
+ return;
+ }
+
+ return object[key];
+ }
+
+ /**
+ * Sets metadata for `func`.
+ *
+ * **Note:** If this function becomes hot, i.e. is invoked a lot in a short
+ * period of time, it will trip its breaker and transition to an identity
+ * function to avoid garbage collection pauses in V8. See
+ * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)
+ * for more details.
+ *
+ * @private
+ * @param {Function} func The function to associate metadata with.
+ * @param {*} data The metadata.
+ * @returns {Function} Returns `func`.
+ */
+ var setData = shortOut(baseSetData);
+
+ /**
+ * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout).
+ *
+ * @private
+ * @param {Function} func The function to delay.
+ * @param {number} wait The number of milliseconds to delay invocation.
+ * @returns {number|Object} Returns the timer id or timeout object.
+ */
+ var setTimeout = ctxSetTimeout || function(func, wait) {
+ return root.setTimeout(func, wait);
+ };
+
+ /**
+ * Sets the `toString` method of `func` to return `string`.
+ *
+ * @private
+ * @param {Function} func The function to modify.
+ * @param {Function} string The `toString` result.
+ * @returns {Function} Returns `func`.
+ */
+ var setToString = shortOut(baseSetToString);
+
+ /**
+ * Sets the `toString` method of `wrapper` to mimic the source of `reference`
+ * with wrapper details in a comment at the top of the source body.
+ *
+ * @private
+ * @param {Function} wrapper The function to modify.
+ * @param {Function} reference The reference function.
+ * @param {number} bitmask The bitmask flags. See `createWrap` for more details.
+ * @returns {Function} Returns `wrapper`.
+ */
+ function setWrapToString(wrapper, reference, bitmask) {
+ var source = (reference + '');
+ return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));
+ }
+
+ /**
+ * Creates a function that'll short out and invoke `identity` instead
+ * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`
+ * milliseconds.
+ *
+ * @private
+ * @param {Function} func The function to restrict.
+ * @returns {Function} Returns the new shortable function.
+ */
+ function shortOut(func) {
+ var count = 0,
+ lastCalled = 0;
+
+ return function() {
+ var stamp = nativeNow(),
+ remaining = HOT_SPAN - (stamp - lastCalled);
+
+ lastCalled = stamp;
+ if (remaining > 0) {
+ if (++count >= HOT_COUNT) {
+ return arguments[0];
+ }
+ } else {
+ count = 0;
+ }
+ return func.apply(undefined, arguments);
+ };
+ }
+
+ /**
+ * A specialized version of `_.shuffle` which mutates and sets the size of `array`.
+ *
+ * @private
+ * @param {Array} array The array to shuffle.
+ * @param {number} [size=array.length] The size of `array`.
+ * @returns {Array} Returns `array`.
+ */
+ function shuffleSelf(array, size) {
+ var index = -1,
+ length = array.length,
+ lastIndex = length - 1;
+
+ size = size === undefined ? length : size;
+ while (++index < size) {
+ var rand = baseRandom(index, lastIndex),
+ value = array[rand];
+
+ array[rand] = array[index];
+ array[index] = value;
+ }
+ array.length = size;
+ return array;
+ }
+
+ /**
+ * Converts `string` to a property path array.
+ *
+ * @private
+ * @param {string} string The string to convert.
+ * @returns {Array} Returns the property path array.
+ */
+ var stringToPath = memoizeCapped(function(string) {
+ var result = [];
+ if (string.charCodeAt(0) === 46 /* . */) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, subString) {
+ result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));
+ });
+ return result;
+ });
+
+ /**
+ * Converts `value` to a string key if it's not a string or symbol.
+ *
+ * @private
+ * @param {*} value The value to inspect.
+ * @returns {string|symbol} Returns the key.
+ */
+ function toKey(value) {
+ if (typeof value == 'string' || isSymbol(value)) {
+ return value;
+ }
+ var result = (value + '');
+ return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
+ }
+
+ /**
+ * Converts `func` to its source code.
+ *
+ * @private
+ * @param {Function} func The function to convert.
+ * @returns {string} Returns the source code.
+ */
+ function toSource(func) {
+ if (func != null) {
+ try {
+ return funcToString.call(func);
+ } catch (e) {}
+ try {
+ return (func + '');
+ } catch (e) {}
+ }
+ return '';
+ }
+
+ /**
+ * Updates wrapper `details` based on `bitmask` flags.
+ *
+ * @private
+ * @returns {Array} details The details to modify.
+ * @param {number} bitmask The bitmask flags. See `createWrap` for more details.
+ * @returns {Array} Returns `details`.
+ */
+ function updateWrapDetails(details, bitmask) {
+ arrayEach(wrapFlags, function(pair) {
+ var value = '_.' + pair[0];
+ if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {
+ details.push(value);
+ }
+ });
+ return details.sort();
+ }
+
+ /**
+ * Creates a clone of `wrapper`.
+ *
+ * @private
+ * @param {Object} wrapper The wrapper to clone.
+ * @returns {Object} Returns the cloned wrapper.
+ */
+ function wrapperClone(wrapper) {
+ if (wrapper instanceof LazyWrapper) {
+ return wrapper.clone();
+ }
+ var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);
+ result.__actions__ = copyArray(wrapper.__actions__);
+ result.__index__ = wrapper.__index__;
+ result.__values__ = wrapper.__values__;
+ return result;
+ }
+
+ /*------------------------------------------------------------------------*/
+
+ /**
+ * Creates an array of elements split into groups the length of `size`.
+ * If `array` can't be split evenly, the final chunk will be the remaining
+ * elements.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category Array
+ * @param {Array} array The array to process.
+ * @param {number} [size=1] The length of each chunk
+ * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
+ * @returns {Array} Returns the new array of chunks.
+ * @example
+ *
+ * _.chunk(['a', 'b', 'c', 'd'], 2);
+ * // => [['a', 'b'], ['c', 'd']]
+ *
+ * _.chunk(['a', 'b', 'c', 'd'], 3);
+ * // => [['a', 'b', 'c'], ['d']]
+ */
+ function chunk(array, size, guard) {
+ if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {
+ size = 1;
+ } else {
+ size = nativeMax(toInteger(size), 0);
+ }
+ var length = array == null ? 0 : array.length;
+ if (!length || size < 1) {
+ return [];
+ }
+ var index = 0,
+ resIndex = 0,
+ result = Array(nativeCeil(length / size));
+
+ while (index < length) {
+ result[resIndex++] = baseSlice(array, index, (index += size));
+ }
+ return result;
+ }
+
+ /**
+ * Creates an array with all falsey values removed. The values `false`, `null`,
+ * `0`, `""`, `undefined`, and `NaN` are falsey.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Array
+ * @param {Array} array The array to compact.
+ * @returns {Array} Returns the new array of filtered values.
+ * @example
+ *
+ * _.compact([0, 1, false, 2, '', 3]);
+ * // => [1, 2, 3]
+ */
+ function compact(array) {
+ var index = -1,
+ length = array == null ? 0 : array.length,
+ resIndex = 0,
+ result = [];
+
+ while (++index < length) {
+ var value = array[index];
+ if (value) {
+ result[resIndex++] = value;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Creates a new array concatenating `array` with any additional arrays
+ * and/or values.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Array
+ * @param {Array} array The array to concatenate.
+ * @param {...*} [values] The values to concatenate.
+ * @returns {Array} Returns the new concatenated array.
+ * @example
+ *
+ * var array = [1];
+ * var other = _.concat(array, 2, [3], [[4]]);
+ *
+ * console.log(other);
+ * // => [1, 2, 3, [4]]
+ *
+ * console.log(array);
+ * // => [1]
+ */
+ function concat() {
+ var length = arguments.length;
+ if (!length) {
+ return [];
+ }
+ var args = Array(length - 1),
+ array = arguments[0],
+ index = length;
+
+ while (index--) {
+ args[index - 1] = arguments[index];
+ }
+ return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));
+ }
+
+ /**
+ * Creates an array of `array` values not included in the other given arrays
+ * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
+ * for equality comparisons. The order and references of result values are
+ * determined by the first array.
+ *
+ * **Note:** Unlike `_.pullAll`, this method returns a new array.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Array
+ * @param {Array} array The array to inspect.
+ * @param {...Array} [values] The values to exclude.
+ * @returns {Array} Returns the new array of filtered values.
+ * @see _.without, _.xor
+ * @example
+ *
+ * _.difference([2, 1], [2, 3]);
+ * // => [1]
+ */
+ var difference = baseRest(function(array, values) {
+ return isArrayLikeObject(array)
+ ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))
+ : [];
+ });
+
+ /**
+ * This method is like `_.difference` except that it accepts `iteratee` which
+ * is invoked for each element of `array` and `values` to generate the criterion
+ * by which they're compared. The order and references of result values are
+ * determined by the first array. The iteratee is invoked with one argument:
+ * (value).
+ *
+ * **Note:** Unlike `_.pullAllBy`, this method returns a new array.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Array
+ * @param {Array} array The array to inspect.
+ * @param {...Array} [values] The values to exclude.
+ * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
+ * @returns {Array} Returns the new array of filtered values.
+ * @example
+ *
+ * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);
+ * // => [1.2]
+ *
+ * // The `_.property` iteratee shorthand.
+ * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');
+ * // => [{ 'x': 2 }]
+ */
+ var differenceBy = baseRest(function(array, values) {
+ var iteratee = last(values);
+ if (isArrayLikeObject(iteratee)) {
+ iteratee = undefined;
+ }
+ return isArrayLikeObject(array)
+ ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2))
+ : [];
+ });
+
+ /**
+ * This method is like `_.difference` except that it accepts `comparator`
+ * which is invoked to compare elements of `array` to `values`. The order and
+ * references of result values are determined by the first array. The comparator
+ * is invoked with two arguments: (arrVal, othVal).
+ *
+ * **Note:** Unlike `_.pullAllWith`, this method returns a new array.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Array
+ * @param {Array} array The array to inspect.
+ * @param {...Array} [values] The values to exclude.
+ * @param {Function} [comparator] The comparator invoked per element.
+ * @returns {Array} Returns the new array of filtered values.
+ * @example
+ *
+ * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
+ *
+ * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);
+ * // => [{ 'x': 2, 'y': 1 }]
+ */
+ var differenceWith = baseRest(function(array, values) {
+ var comparator = last(values);
+ if (isArrayLikeObject(comparator)) {
+ comparator = undefined;
+ }
+ return isArrayLikeObject(array)
+ ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)
+ : [];
+ });
+
+ /**
+ * Creates a slice of `array` with `n` elements dropped from the beginning.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.5.0
+ * @category Array
+ * @param {Array} array The array to query.
+ * @param {number} [n=1] The number of elements to drop.
+ * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
+ * @returns {Array} Returns the slice of `array`.
+ * @example
+ *
+ * _.drop([1, 2, 3]);
+ * // => [2, 3]
+ *
+ * _.drop([1, 2, 3], 2);
+ * // => [3]
+ *
+ * _.drop([1, 2, 3], 5);
+ * // => []
+ *
+ * _.drop([1, 2, 3], 0);
+ * // => [1, 2, 3]
+ */
+ function drop(array, n, guard) {
+ var length = array == null ? 0 : array.length;
+ if (!length) {
+ return [];
+ }
+ n = (guard || n === undefined) ? 1 : toInteger(n);
+ return baseSlice(array, n < 0 ? 0 : n, length);
+ }
+
+ /**
+ * Creates a slice of `array` with `n` elements dropped from the end.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category Array
+ * @param {Array} array The array to query.
+ * @param {number} [n=1] The number of elements to drop.
+ * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
+ * @returns {Array} Returns the slice of `array`.
+ * @example
+ *
+ * _.dropRight([1, 2, 3]);
+ * // => [1, 2]
+ *
+ * _.dropRight([1, 2, 3], 2);
+ * // => [1]
+ *
+ * _.dropRight([1, 2, 3], 5);
+ * // => []
+ *
+ * _.dropRight([1, 2, 3], 0);
+ * // => [1, 2, 3]
+ */
+ function dropRight(array, n, guard) {
+ var length = array == null ? 0 : array.length;
+ if (!length) {
+ return [];
+ }
+ n = (guard || n === undefined) ? 1 : toInteger(n);
+ n = length - n;
+ return baseSlice(array, 0, n < 0 ? 0 : n);
+ }
+
+ /**
+ * Creates a slice of `array` excluding elements dropped from the end.
+ * Elements are dropped until `predicate` returns falsey. The predicate is
+ * invoked with three arguments: (value, index, array).
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category Array
+ * @param {Array} array The array to query.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
+ * @returns {Array} Returns the slice of `array`.
+ * @example
+ *
+ * var users = [
+ * { 'user': 'barney', 'active': true },
+ * { 'user': 'fred', 'active': false },
+ * { 'user': 'pebbles', 'active': false }
+ * ];
+ *
+ * _.dropRightWhile(users, function(o) { return !o.active; });
+ * // => objects for ['barney']
+ *
+ * // The `_.matches` iteratee shorthand.
+ * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });
+ * // => objects for ['barney', 'fred']
+ *
+ * // The `_.matchesProperty` iteratee shorthand.
+ * _.dropRightWhile(users, ['active', false]);
+ * // => objects for ['barney']
+ *
+ * // The `_.property` iteratee shorthand.
+ * _.dropRightWhile(users, 'active');
+ * // => objects for ['barney', 'fred', 'pebbles']
+ */
+ function dropRightWhile(array, predicate) {
+ return (array && array.length)
+ ? baseWhile(array, getIteratee(predicate, 3), true, true)
+ : [];
+ }
+
+ /**
+ * Creates a slice of `array` excluding elements dropped from the beginning.
+ * Elements are dropped until `predicate` returns falsey. The predicate is
+ * invoked with three arguments: (value, index, array).
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category Array
+ * @param {Array} array The array to query.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
+ * @returns {Array} Returns the slice of `array`.
+ * @example
+ *
+ * var users = [
+ * { 'user': 'barney', 'active': false },
+ * { 'user': 'fred', 'active': false },
+ * { 'user': 'pebbles', 'active': true }
+ * ];
+ *
+ * _.dropWhile(users, function(o) { return !o.active; });
+ * // => objects for ['pebbles']
+ *
+ * // The `_.matches` iteratee shorthand.
+ * _.dropWhile(users, { 'user': 'barney', 'active': false });
+ * // => objects for ['fred', 'pebbles']
+ *
+ * // The `_.matchesProperty` iteratee shorthand.
+ * _.dropWhile(users, ['active', false]);
+ * // => objects for ['pebbles']
+ *
+ * // The `_.property` iteratee shorthand.
+ * _.dropWhile(users, 'active');
+ * // => objects for ['barney', 'fred', 'pebbles']
+ */
+ function dropWhile(array, predicate) {
+ return (array && array.length)
+ ? baseWhile(array, getIteratee(predicate, 3), true)
+ : [];
+ }
+
+ /**
+ * Fills elements of `array` with `value` from `start` up to, but not
+ * including, `end`.
+ *
+ * **Note:** This method mutates `array`.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.2.0
+ * @category Array
+ * @param {Array} array The array to fill.
+ * @param {*} value The value to fill `array` with.
+ * @param {number} [start=0] The start position.
+ * @param {number} [end=array.length] The end position.
+ * @returns {Array} Returns `array`.
+ * @example
+ *
+ * var array = [1, 2, 3];
+ *
+ * _.fill(array, 'a');
+ * console.log(array);
+ * // => ['a', 'a', 'a']
+ *
+ * _.fill(Array(3), 2);
+ * // => [2, 2, 2]
+ *
+ * _.fill([4, 6, 8, 10], '*', 1, 3);
+ * // => [4, '*', '*', 10]
+ */
+ function fill(array, value, start, end) {
+ var length = array == null ? 0 : array.length;
+ if (!length) {
+ return [];
+ }
+ if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {
+ start = 0;
+ end = length;
+ }
+ return baseFill(array, value, start, end);
+ }
+
+ /**
+ * This method is like `_.find` except that it returns the index of the first
+ * element `predicate` returns truthy for instead of the element itself.
+ *
+ * @static
+ * @memberOf _
+ * @since 1.1.0
+ * @category Array
+ * @param {Array} array The array to inspect.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
+ * @param {number} [fromIndex=0] The index to search from.
+ * @returns {number} Returns the index of the found element, else `-1`.
+ * @example
+ *
+ * var users = [
+ * { 'user': 'barney', 'active': false },
+ * { 'user': 'fred', 'active': false },
+ * { 'user': 'pebbles', 'active': true }
+ * ];
+ *
+ * _.findIndex(users, function(o) { return o.user == 'barney'; });
+ * // => 0
+ *
+ * // The `_.matches` iteratee shorthand.
+ * _.findIndex(users, { 'user': 'fred', 'active': false });
+ * // => 1
+ *
+ * // The `_.matchesProperty` iteratee shorthand.
+ * _.findIndex(users, ['active', false]);
+ * // => 0
+ *
+ * // The `_.property` iteratee shorthand.
+ * _.findIndex(users, 'active');
+ * // => 2
+ */
+ function findIndex(array, predicate, fromIndex) {
+ var length = array == null ? 0 : array.length;
+ if (!length) {
+ return -1;
+ }
+ var index = fromIndex == null ? 0 : toInteger(fromIndex);
+ if (index < 0) {
+ index = nativeMax(length + index, 0);
+ }
+ return baseFindIndex(array, getIteratee(predicate, 3), index);
+ }
+
+ /**
+ * This method is like `_.findIndex` except that it iterates over elements
+ * of `collection` from right to left.
+ *
+ * @static
+ * @memberOf _
+ * @since 2.0.0
+ * @category Array
+ * @param {Array} array The array to inspect.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
+ * @param {number} [fromIndex=array.length-1] The index to search from.
+ * @returns {number} Returns the index of the found element, else `-1`.
+ * @example
+ *
+ * var users = [
+ * { 'user': 'barney', 'active': true },
+ * { 'user': 'fred', 'active': false },
+ * { 'user': 'pebbles', 'active': false }
+ * ];
+ *
+ * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });
+ * // => 2
+ *
+ * // The `_.matches` iteratee shorthand.
+ * _.findLastIndex(users, { 'user': 'barney', 'active': true });
+ * // => 0
+ *
+ * // The `_.matchesProperty` iteratee shorthand.
+ * _.findLastIndex(users, ['active', false]);
+ * // => 2
+ *
+ * // The `_.property` iteratee shorthand.
+ * _.findLastIndex(users, 'active');
+ * // => 0
+ */
+ function findLastIndex(array, predicate, fromIndex) {
+ var length = array == null ? 0 : array.length;
+ if (!length) {
+ return -1;
+ }
+ var index = length - 1;
+ if (fromIndex !== undefined) {
+ index = toInteger(fromIndex);
+ index = fromIndex < 0
+ ? nativeMax(length + index, 0)
+ : nativeMin(index, length - 1);
+ }
+ return baseFindIndex(array, getIteratee(predicate, 3), index, true);
+ }
+
+ /**
+ * Flattens `array` a single level deep.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Array
+ * @param {Array} array The array to flatten.
+ * @returns {Array} Returns the new flattened array.
+ * @example
+ *
+ * _.flatten([1, [2, [3, [4]], 5]]);
+ * // => [1, 2, [3, [4]], 5]
+ */
+ function flatten(array) {
+ var length = array == null ? 0 : array.length;
+ return length ? baseFlatten(array, 1) : [];
+ }
+
+ /**
+ * Recursively flattens `array`.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category Array
+ * @param {Array} array The array to flatten.
+ * @returns {Array} Returns the new flattened array.
+ * @example
+ *
+ * _.flattenDeep([1, [2, [3, [4]], 5]]);
+ * // => [1, 2, 3, 4, 5]
+ */
+ function flattenDeep(array) {
+ var length = array == null ? 0 : array.length;
+ return length ? baseFlatten(array, INFINITY) : [];
+ }
+
+ /**
+ * Recursively flatten `array` up to `depth` times.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.4.0
+ * @category Array
+ * @param {Array} array The array to flatten.
+ * @param {number} [depth=1] The maximum recursion depth.
+ * @returns {Array} Returns the new flattened array.
+ * @example
+ *
+ * var array = [1, [2, [3, [4]], 5]];
+ *
+ * _.flattenDepth(array, 1);
+ * // => [1, 2, [3, [4]], 5]
+ *
+ * _.flattenDepth(array, 2);
+ * // => [1, 2, 3, [4], 5]
+ */
+ function flattenDepth(array, depth) {
+ var length = array == null ? 0 : array.length;
+ if (!length) {
+ return [];
+ }
+ depth = depth === undefined ? 1 : toInteger(depth);
+ return baseFlatten(array, depth);
+ }
+
+ /**
+ * The inverse of `_.toPairs`; this method returns an object composed
+ * from key-value `pairs`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Array
+ * @param {Array} pairs The key-value pairs.
+ * @returns {Object} Returns the new object.
+ * @example
+ *
+ * _.fromPairs([['a', 1], ['b', 2]]);
+ * // => { 'a': 1, 'b': 2 }
+ */
+ function fromPairs(pairs) {
+ var index = -1,
+ length = pairs == null ? 0 : pairs.length,
+ result = {};
+
+ while (++index < length) {
+ var pair = pairs[index];
+ result[pair[0]] = pair[1];
+ }
+ return result;
+ }
+
+ /**
+ * Gets the first element of `array`.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @alias first
+ * @category Array
+ * @param {Array} array The array to query.
+ * @returns {*} Returns the first element of `array`.
+ * @example
+ *
+ * _.head([1, 2, 3]);
+ * // => 1
+ *
+ * _.head([]);
+ * // => undefined
+ */
+ function head(array) {
+ return (array && array.length) ? array[0] : undefined;
+ }
+
+ /**
+ * Gets the index at which the first occurrence of `value` is found in `array`
+ * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
+ * for equality comparisons. If `fromIndex` is negative, it's used as the
+ * offset from the end of `array`.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Array
+ * @param {Array} array The array to inspect.
+ * @param {*} value The value to search for.
+ * @param {number} [fromIndex=0] The index to search from.
+ * @returns {number} Returns the index of the matched value, else `-1`.
+ * @example
+ *
+ * _.indexOf([1, 2, 1, 2], 2);
+ * // => 1
+ *
+ * // Search from the `fromIndex`.
+ * _.indexOf([1, 2, 1, 2], 2, 2);
+ * // => 3
+ */
+ function indexOf(array, value, fromIndex) {
+ var length = array == null ? 0 : array.length;
+ if (!length) {
+ return -1;
+ }
+ var index = fromIndex == null ? 0 : toInteger(fromIndex);
+ if (index < 0) {
+ index = nativeMax(length + index, 0);
+ }
+ return baseIndexOf(array, value, index);
+ }
+
+ /**
+ * Gets all but the last element of `array`.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Array
+ * @param {Array} array The array to query.
+ * @returns {Array} Returns the slice of `array`.
+ * @example
+ *
+ * _.initial([1, 2, 3]);
+ * // => [1, 2]
+ */
+ function initial(array) {
+ var length = array == null ? 0 : array.length;
+ return length ? baseSlice(array, 0, -1) : [];
+ }
+
+ /**
+ * Creates an array of unique values that are included in all given arrays
+ * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
+ * for equality comparisons. The order and references of result values are
+ * determined by the first array.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Array
+ * @param {...Array} [arrays] The arrays to inspect.
+ * @returns {Array} Returns the new array of intersecting values.
+ * @example
+ *
+ * _.intersection([2, 1], [2, 3]);
+ * // => [2]
+ */
+ var intersection = baseRest(function(arrays) {
+ var mapped = arrayMap(arrays, castArrayLikeObject);
+ return (mapped.length && mapped[0] === arrays[0])
+ ? baseIntersection(mapped)
+ : [];
+ });
+
+ /**
+ * This method is like `_.intersection` except that it accepts `iteratee`
+ * which is invoked for each element of each `arrays` to generate the criterion
+ * by which they're compared. The order and references of result values are
+ * determined by the first array. The iteratee is invoked with one argument:
+ * (value).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Array
+ * @param {...Array} [arrays] The arrays to inspect.
+ * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
+ * @returns {Array} Returns the new array of intersecting values.
+ * @example
+ *
+ * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);
+ * // => [2.1]
+ *
+ * // The `_.property` iteratee shorthand.
+ * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
+ * // => [{ 'x': 1 }]
+ */
+ var intersectionBy = baseRest(function(arrays) {
+ var iteratee = last(arrays),
+ mapped = arrayMap(arrays, castArrayLikeObject);
+
+ if (iteratee === last(mapped)) {
+ iteratee = undefined;
+ } else {
+ mapped.pop();
+ }
+ return (mapped.length && mapped[0] === arrays[0])
+ ? baseIntersection(mapped, getIteratee(iteratee, 2))
+ : [];
+ });
+
+ /**
+ * This method is like `_.intersection` except that it accepts `comparator`
+ * which is invoked to compare elements of `arrays`. The order and references
+ * of result values are determined by the first array. The comparator is
+ * invoked with two arguments: (arrVal, othVal).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Array
+ * @param {...Array} [arrays] The arrays to inspect.
+ * @param {Function} [comparator] The comparator invoked per element.
+ * @returns {Array} Returns the new array of intersecting values.
+ * @example
+ *
+ * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
+ * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
+ *
+ * _.intersectionWith(objects, others, _.isEqual);
+ * // => [{ 'x': 1, 'y': 2 }]
+ */
+ var intersectionWith = baseRest(function(arrays) {
+ var comparator = last(arrays),
+ mapped = arrayMap(arrays, castArrayLikeObject);
+
+ comparator = typeof comparator == 'function' ? comparator : undefined;
+ if (comparator) {
+ mapped.pop();
+ }
+ return (mapped.length && mapped[0] === arrays[0])
+ ? baseIntersection(mapped, undefined, comparator)
+ : [];
+ });
+
+ /**
+ * Converts all elements in `array` into a string separated by `separator`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Array
+ * @param {Array} array The array to convert.
+ * @param {string} [separator=','] The element separator.
+ * @returns {string} Returns the joined string.
+ * @example
+ *
+ * _.join(['a', 'b', 'c'], '~');
+ * // => 'a~b~c'
+ */
+ function join(array, separator) {
+ return array == null ? '' : nativeJoin.call(array, separator);
+ }
+
+ /**
+ * Gets the last element of `array`.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Array
+ * @param {Array} array The array to query.
+ * @returns {*} Returns the last element of `array`.
+ * @example
+ *
+ * _.last([1, 2, 3]);
+ * // => 3
+ */
+ function last(array) {
+ var length = array == null ? 0 : array.length;
+ return length ? array[length - 1] : undefined;
+ }
+
+ /**
+ * This method is like `_.indexOf` except that it iterates over elements of
+ * `array` from right to left.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Array
+ * @param {Array} array The array to inspect.
+ * @param {*} value The value to search for.
+ * @param {number} [fromIndex=array.length-1] The index to search from.
+ * @returns {number} Returns the index of the matched value, else `-1`.
+ * @example
+ *
+ * _.lastIndexOf([1, 2, 1, 2], 2);
+ * // => 3
+ *
+ * // Search from the `fromIndex`.
+ * _.lastIndexOf([1, 2, 1, 2], 2, 2);
+ * // => 1
+ */
+ function lastIndexOf(array, value, fromIndex) {
+ var length = array == null ? 0 : array.length;
+ if (!length) {
+ return -1;
+ }
+ var index = length;
+ if (fromIndex !== undefined) {
+ index = toInteger(fromIndex);
+ index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);
+ }
+ return value === value
+ ? strictLastIndexOf(array, value, index)
+ : baseFindIndex(array, baseIsNaN, index, true);
+ }
+
+ /**
+ * Gets the element at index `n` of `array`. If `n` is negative, the nth
+ * element from the end is returned.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.11.0
+ * @category Array
+ * @param {Array} array The array to query.
+ * @param {number} [n=0] The index of the element to return.
+ * @returns {*} Returns the nth element of `array`.
+ * @example
+ *
+ * var array = ['a', 'b', 'c', 'd'];
+ *
+ * _.nth(array, 1);
+ * // => 'b'
+ *
+ * _.nth(array, -2);
+ * // => 'c';
+ */
+ function nth(array, n) {
+ return (array && array.length) ? baseNth(array, toInteger(n)) : undefined;
+ }
+
+ /**
+ * Removes all given values from `array` using
+ * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
+ * for equality comparisons.
+ *
+ * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`
+ * to remove elements from an array by predicate.
+ *
+ * @static
+ * @memberOf _
+ * @since 2.0.0
+ * @category Array
+ * @param {Array} array The array to modify.
+ * @param {...*} [values] The values to remove.
+ * @returns {Array} Returns `array`.
+ * @example
+ *
+ * var array = ['a', 'b', 'c', 'a', 'b', 'c'];
+ *
+ * _.pull(array, 'a', 'c');
+ * console.log(array);
+ * // => ['b', 'b']
+ */
+ var pull = baseRest(pullAll);
+
+ /**
+ * This method is like `_.pull` except that it accepts an array of values to remove.
+ *
+ * **Note:** Unlike `_.difference`, this method mutates `array`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Array
+ * @param {Array} array The array to modify.
+ * @param {Array} values The values to remove.
+ * @returns {Array} Returns `array`.
+ * @example
+ *
+ * var array = ['a', 'b', 'c', 'a', 'b', 'c'];
+ *
+ * _.pullAll(array, ['a', 'c']);
+ * console.log(array);
+ * // => ['b', 'b']
+ */
+ function pullAll(array, values) {
+ return (array && array.length && values && values.length)
+ ? basePullAll(array, values)
+ : array;
+ }
+
+ /**
+ * This method is like `_.pullAll` except that it accepts `iteratee` which is
+ * invoked for each element of `array` and `values` to generate the criterion
+ * by which they're compared. The iteratee is invoked with one argument: (value).
+ *
+ * **Note:** Unlike `_.differenceBy`, this method mutates `array`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Array
+ * @param {Array} array The array to modify.
+ * @param {Array} values The values to remove.
+ * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
+ * @returns {Array} Returns `array`.
+ * @example
+ *
+ * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];
+ *
+ * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');
+ * console.log(array);
+ * // => [{ 'x': 2 }]
+ */
+ function pullAllBy(array, values, iteratee) {
+ return (array && array.length && values && values.length)
+ ? basePullAll(array, values, getIteratee(iteratee, 2))
+ : array;
+ }
+
+ /**
+ * This method is like `_.pullAll` except that it accepts `comparator` which
+ * is invoked to compare elements of `array` to `values`. The comparator is
+ * invoked with two arguments: (arrVal, othVal).
+ *
+ * **Note:** Unlike `_.differenceWith`, this method mutates `array`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.6.0
+ * @category Array
+ * @param {Array} array The array to modify.
+ * @param {Array} values The values to remove.
+ * @param {Function} [comparator] The comparator invoked per element.
+ * @returns {Array} Returns `array`.
+ * @example
+ *
+ * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];
+ *
+ * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);
+ * console.log(array);
+ * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]
+ */
+ function pullAllWith(array, values, comparator) {
+ return (array && array.length && values && values.length)
+ ? basePullAll(array, values, undefined, comparator)
+ : array;
+ }
+
+ /**
+ * Removes elements from `array` corresponding to `indexes` and returns an
+ * array of removed elements.
+ *
+ * **Note:** Unlike `_.at`, this method mutates `array`.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category Array
+ * @param {Array} array The array to modify.
+ * @param {...(number|number[])} [indexes] The indexes of elements to remove.
+ * @returns {Array} Returns the new array of removed elements.
+ * @example
+ *
+ * var array = ['a', 'b', 'c', 'd'];
+ * var pulled = _.pullAt(array, [1, 3]);
+ *
+ * console.log(array);
+ * // => ['a', 'c']
+ *
+ * console.log(pulled);
+ * // => ['b', 'd']
+ */
+ var pullAt = flatRest(function(array, indexes) {
+ var length = array == null ? 0 : array.length,
+ result = baseAt(array, indexes);
+
+ basePullAt(array, arrayMap(indexes, function(index) {
+ return isIndex(index, length) ? +index : index;
+ }).sort(compareAscending));
+
+ return result;
+ });
+
+ /**
+ * Removes all elements from `array` that `predicate` returns truthy for
+ * and returns an array of the removed elements. The predicate is invoked
+ * with three arguments: (value, index, array).
+ *
+ * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`
+ * to pull elements from an array by value.
+ *
+ * @static
+ * @memberOf _
+ * @since 2.0.0
+ * @category Array
+ * @param {Array} array The array to modify.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
+ * @returns {Array} Returns the new array of removed elements.
+ * @example
+ *
+ * var array = [1, 2, 3, 4];
+ * var evens = _.remove(array, function(n) {
+ * return n % 2 == 0;
+ * });
+ *
+ * console.log(array);
+ * // => [1, 3]
+ *
+ * console.log(evens);
+ * // => [2, 4]
+ */
+ function remove(array, predicate) {
+ var result = [];
+ if (!(array && array.length)) {
+ return result;
+ }
+ var index = -1,
+ indexes = [],
+ length = array.length;
+
+ predicate = getIteratee(predicate, 3);
+ while (++index < length) {
+ var value = array[index];
+ if (predicate(value, index, array)) {
+ result.push(value);
+ indexes.push(index);
+ }
+ }
+ basePullAt(array, indexes);
+ return result;
+ }
+
+ /**
+ * Reverses `array` so that the first element becomes the last, the second
+ * element becomes the second to last, and so on.
+ *
+ * **Note:** This method mutates `array` and is based on
+ * [`Array#reverse`](https://mdn.io/Array/reverse).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Array
+ * @param {Array} array The array to modify.
+ * @returns {Array} Returns `array`.
+ * @example
+ *
+ * var array = [1, 2, 3];
+ *
+ * _.reverse(array);
+ * // => [3, 2, 1]
+ *
+ * console.log(array);
+ * // => [3, 2, 1]
+ */
+ function reverse(array) {
+ return array == null ? array : nativeReverse.call(array);
+ }
+
+ /**
+ * Creates a slice of `array` from `start` up to, but not including, `end`.
+ *
+ * **Note:** This method is used instead of
+ * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are
+ * returned.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category Array
+ * @param {Array} array The array to slice.
+ * @param {number} [start=0] The start position.
+ * @param {number} [end=array.length] The end position.
+ * @returns {Array} Returns the slice of `array`.
+ */
+ function slice(array, start, end) {
+ var length = array == null ? 0 : array.length;
+ if (!length) {
+ return [];
+ }
+ if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {
+ start = 0;
+ end = length;
+ }
+ else {
+ start = start == null ? 0 : toInteger(start);
+ end = end === undefined ? length : toInteger(end);
+ }
+ return baseSlice(array, start, end);
+ }
+
+ /**
+ * Uses a binary search to determine the lowest index at which `value`
+ * should be inserted into `array` in order to maintain its sort order.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Array
+ * @param {Array} array The sorted array to inspect.
+ * @param {*} value The value to evaluate.
+ * @returns {number} Returns the index at which `value` should be inserted
+ * into `array`.
+ * @example
+ *
+ * _.sortedIndex([30, 50], 40);
+ * // => 1
+ */
+ function sortedIndex(array, value) {
+ return baseSortedIndex(array, value);
+ }
+
+ /**
+ * This method is like `_.sortedIndex` except that it accepts `iteratee`
+ * which is invoked for `value` and each element of `array` to compute their
+ * sort ranking. The iteratee is invoked with one argument: (value).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Array
+ * @param {Array} array The sorted array to inspect.
+ * @param {*} value The value to evaluate.
+ * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
+ * @returns {number} Returns the index at which `value` should be inserted
+ * into `array`.
+ * @example
+ *
+ * var objects = [{ 'x': 4 }, { 'x': 5 }];
+ *
+ * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });
+ * // => 0
+ *
+ * // The `_.property` iteratee shorthand.
+ * _.sortedIndexBy(objects, { 'x': 4 }, 'x');
+ * // => 0
+ */
+ function sortedIndexBy(array, value, iteratee) {
+ return baseSortedIndexBy(array, value, getIteratee(iteratee, 2));
+ }
+
+ /**
+ * This method is like `_.indexOf` except that it performs a binary
+ * search on a sorted `array`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Array
+ * @param {Array} array The array to inspect.
+ * @param {*} value The value to search for.
+ * @returns {number} Returns the index of the matched value, else `-1`.
+ * @example
+ *
+ * _.sortedIndexOf([4, 5, 5, 5, 6], 5);
+ * // => 1
+ */
+ function sortedIndexOf(array, value) {
+ var length = array == null ? 0 : array.length;
+ if (length) {
+ var index = baseSortedIndex(array, value);
+ if (index < length && eq(array[index], value)) {
+ return index;
+ }
+ }
+ return -1;
+ }
+
+ /**
+ * This method is like `_.sortedIndex` except that it returns the highest
+ * index at which `value` should be inserted into `array` in order to
+ * maintain its sort order.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category Array
+ * @param {Array} array The sorted array to inspect.
+ * @param {*} value The value to evaluate.
+ * @returns {number} Returns the index at which `value` should be inserted
+ * into `array`.
+ * @example
+ *
+ * _.sortedLastIndex([4, 5, 5, 5, 6], 5);
+ * // => 4
+ */
+ function sortedLastIndex(array, value) {
+ return baseSortedIndex(array, value, true);
+ }
+
+ /**
+ * This method is like `_.sortedLastIndex` except that it accepts `iteratee`
+ * which is invoked for `value` and each element of `array` to compute their
+ * sort ranking. The iteratee is invoked with one argument: (value).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Array
+ * @param {Array} array The sorted array to inspect.
+ * @param {*} value The value to evaluate.
+ * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
+ * @returns {number} Returns the index at which `value` should be inserted
+ * into `array`.
+ * @example
+ *
+ * var objects = [{ 'x': 4 }, { 'x': 5 }];
+ *
+ * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });
+ * // => 1
+ *
+ * // The `_.property` iteratee shorthand.
+ * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');
+ * // => 1
+ */
+ function sortedLastIndexBy(array, value, iteratee) {
+ return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true);
+ }
+
+ /**
+ * This method is like `_.lastIndexOf` except that it performs a binary
+ * search on a sorted `array`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Array
+ * @param {Array} array The array to inspect.
+ * @param {*} value The value to search for.
+ * @returns {number} Returns the index of the matched value, else `-1`.
+ * @example
+ *
+ * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);
+ * // => 3
+ */
+ function sortedLastIndexOf(array, value) {
+ var length = array == null ? 0 : array.length;
+ if (length) {
+ var index = baseSortedIndex(array, value, true) - 1;
+ if (eq(array[index], value)) {
+ return index;
+ }
+ }
+ return -1;
+ }
+
+ /**
+ * This method is like `_.uniq` except that it's designed and optimized
+ * for sorted arrays.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Array
+ * @param {Array} array The array to inspect.
+ * @returns {Array} Returns the new duplicate free array.
+ * @example
+ *
+ * _.sortedUniq([1, 1, 2]);
+ * // => [1, 2]
+ */
+ function sortedUniq(array) {
+ return (array && array.length)
+ ? baseSortedUniq(array)
+ : [];
+ }
+
+ /**
+ * This method is like `_.uniqBy` except that it's designed and optimized
+ * for sorted arrays.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Array
+ * @param {Array} array The array to inspect.
+ * @param {Function} [iteratee] The iteratee invoked per element.
+ * @returns {Array} Returns the new duplicate free array.
+ * @example
+ *
+ * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);
+ * // => [1.1, 2.3]
+ */
+ function sortedUniqBy(array, iteratee) {
+ return (array && array.length)
+ ? baseSortedUniq(array, getIteratee(iteratee, 2))
+ : [];
+ }
+
+ /**
+ * Gets all but the first element of `array`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Array
+ * @param {Array} array The array to query.
+ * @returns {Array} Returns the slice of `array`.
+ * @example
+ *
+ * _.tail([1, 2, 3]);
+ * // => [2, 3]
+ */
+ function tail(array) {
+ var length = array == null ? 0 : array.length;
+ return length ? baseSlice(array, 1, length) : [];
+ }
+
+ /**
+ * Creates a slice of `array` with `n` elements taken from the beginning.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Array
+ * @param {Array} array The array to query.
+ * @param {number} [n=1] The number of elements to take.
+ * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
+ * @returns {Array} Returns the slice of `array`.
+ * @example
+ *
+ * _.take([1, 2, 3]);
+ * // => [1]
+ *
+ * _.take([1, 2, 3], 2);
+ * // => [1, 2]
+ *
+ * _.take([1, 2, 3], 5);
+ * // => [1, 2, 3]
+ *
+ * _.take([1, 2, 3], 0);
+ * // => []
+ */
+ function take(array, n, guard) {
+ if (!(array && array.length)) {
+ return [];
+ }
+ n = (guard || n === undefined) ? 1 : toInteger(n);
+ return baseSlice(array, 0, n < 0 ? 0 : n);
+ }
+
+ /**
+ * Creates a slice of `array` with `n` elements taken from the end.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category Array
+ * @param {Array} array The array to query.
+ * @param {number} [n=1] The number of elements to take.
+ * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
+ * @returns {Array} Returns the slice of `array`.
+ * @example
+ *
+ * _.takeRight([1, 2, 3]);
+ * // => [3]
+ *
+ * _.takeRight([1, 2, 3], 2);
+ * // => [2, 3]
+ *
+ * _.takeRight([1, 2, 3], 5);
+ * // => [1, 2, 3]
+ *
+ * _.takeRight([1, 2, 3], 0);
+ * // => []
+ */
+ function takeRight(array, n, guard) {
+ var length = array == null ? 0 : array.length;
+ if (!length) {
+ return [];
+ }
+ n = (guard || n === undefined) ? 1 : toInteger(n);
+ n = length - n;
+ return baseSlice(array, n < 0 ? 0 : n, length);
+ }
+
+ /**
+ * Creates a slice of `array` with elements taken from the end. Elements are
+ * taken until `predicate` returns falsey. The predicate is invoked with
+ * three arguments: (value, index, array).
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category Array
+ * @param {Array} array The array to query.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
+ * @returns {Array} Returns the slice of `array`.
+ * @example
+ *
+ * var users = [
+ * { 'user': 'barney', 'active': true },
+ * { 'user': 'fred', 'active': false },
+ * { 'user': 'pebbles', 'active': false }
+ * ];
+ *
+ * _.takeRightWhile(users, function(o) { return !o.active; });
+ * // => objects for ['fred', 'pebbles']
+ *
+ * // The `_.matches` iteratee shorthand.
+ * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });
+ * // => objects for ['pebbles']
+ *
+ * // The `_.matchesProperty` iteratee shorthand.
+ * _.takeRightWhile(users, ['active', false]);
+ * // => objects for ['fred', 'pebbles']
+ *
+ * // The `_.property` iteratee shorthand.
+ * _.takeRightWhile(users, 'active');
+ * // => []
+ */
+ function takeRightWhile(array, predicate) {
+ return (array && array.length)
+ ? baseWhile(array, getIteratee(predicate, 3), false, true)
+ : [];
+ }
+
+ /**
+ * Creates a slice of `array` with elements taken from the beginning. Elements
+ * are taken until `predicate` returns falsey. The predicate is invoked with
+ * three arguments: (value, index, array).
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category Array
+ * @param {Array} array The array to query.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
+ * @returns {Array} Returns the slice of `array`.
+ * @example
+ *
+ * var users = [
+ * { 'user': 'barney', 'active': false },
+ * { 'user': 'fred', 'active': false },
+ * { 'user': 'pebbles', 'active': true }
+ * ];
+ *
+ * _.takeWhile(users, function(o) { return !o.active; });
+ * // => objects for ['barney', 'fred']
+ *
+ * // The `_.matches` iteratee shorthand.
+ * _.takeWhile(users, { 'user': 'barney', 'active': false });
+ * // => objects for ['barney']
+ *
+ * // The `_.matchesProperty` iteratee shorthand.
+ * _.takeWhile(users, ['active', false]);
+ * // => objects for ['barney', 'fred']
+ *
+ * // The `_.property` iteratee shorthand.
+ * _.takeWhile(users, 'active');
+ * // => []
+ */
+ function takeWhile(array, predicate) {
+ return (array && array.length)
+ ? baseWhile(array, getIteratee(predicate, 3))
+ : [];
+ }
+
+ /**
+ * Creates an array of unique values, in order, from all given arrays using
+ * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
+ * for equality comparisons.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Array
+ * @param {...Array} [arrays] The arrays to inspect.
+ * @returns {Array} Returns the new array of combined values.
+ * @example
+ *
+ * _.union([2], [1, 2]);
+ * // => [2, 1]
+ */
+ var union = baseRest(function(arrays) {
+ return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));
+ });
+
+ /**
+ * This method is like `_.union` except that it accepts `iteratee` which is
+ * invoked for each element of each `arrays` to generate the criterion by
+ * which uniqueness is computed. Result values are chosen from the first
+ * array in which the value occurs. The iteratee is invoked with one argument:
+ * (value).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Array
+ * @param {...Array} [arrays] The arrays to inspect.
+ * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
+ * @returns {Array} Returns the new array of combined values.
+ * @example
+ *
+ * _.unionBy([2.1], [1.2, 2.3], Math.floor);
+ * // => [2.1, 1.2]
+ *
+ * // The `_.property` iteratee shorthand.
+ * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
+ * // => [{ 'x': 1 }, { 'x': 2 }]
+ */
+ var unionBy = baseRest(function(arrays) {
+ var iteratee = last(arrays);
+ if (isArrayLikeObject(iteratee)) {
+ iteratee = undefined;
+ }
+ return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2));
+ });
+
+ /**
+ * This method is like `_.union` except that it accepts `comparator` which
+ * is invoked to compare elements of `arrays`. Result values are chosen from
+ * the first array in which the value occurs. The comparator is invoked
+ * with two arguments: (arrVal, othVal).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Array
+ * @param {...Array} [arrays] The arrays to inspect.
+ * @param {Function} [comparator] The comparator invoked per element.
+ * @returns {Array} Returns the new array of combined values.
+ * @example
+ *
+ * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
+ * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
+ *
+ * _.unionWith(objects, others, _.isEqual);
+ * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]
+ */
+ var unionWith = baseRest(function(arrays) {
+ var comparator = last(arrays);
+ comparator = typeof comparator == 'function' ? comparator : undefined;
+ return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);
+ });
+
+ /**
+ * Creates a duplicate-free version of an array, using
+ * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
+ * for equality comparisons, in which only the first occurrence of each element
+ * is kept. The order of result values is determined by the order they occur
+ * in the array.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Array
+ * @param {Array} array The array to inspect.
+ * @returns {Array} Returns the new duplicate free array.
+ * @example
+ *
+ * _.uniq([2, 1, 2]);
+ * // => [2, 1]
+ */
+ function uniq(array) {
+ return (array && array.length) ? baseUniq(array) : [];
+ }
+
+ /**
+ * This method is like `_.uniq` except that it accepts `iteratee` which is
+ * invoked for each element in `array` to generate the criterion by which
+ * uniqueness is computed. The order of result values is determined by the
+ * order they occur in the array. The iteratee is invoked with one argument:
+ * (value).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Array
+ * @param {Array} array The array to inspect.
+ * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
+ * @returns {Array} Returns the new duplicate free array.
+ * @example
+ *
+ * _.uniqBy([2.1, 1.2, 2.3], Math.floor);
+ * // => [2.1, 1.2]
+ *
+ * // The `_.property` iteratee shorthand.
+ * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');
+ * // => [{ 'x': 1 }, { 'x': 2 }]
+ */
+ function uniqBy(array, iteratee) {
+ return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : [];
+ }
+
+ /**
+ * This method is like `_.uniq` except that it accepts `comparator` which
+ * is invoked to compare elements of `array`. The order of result values is
+ * determined by the order they occur in the array.The comparator is invoked
+ * with two arguments: (arrVal, othVal).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Array
+ * @param {Array} array The array to inspect.
+ * @param {Function} [comparator] The comparator invoked per element.
+ * @returns {Array} Returns the new duplicate free array.
+ * @example
+ *
+ * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];
+ *
+ * _.uniqWith(objects, _.isEqual);
+ * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]
+ */
+ function uniqWith(array, comparator) {
+ comparator = typeof comparator == 'function' ? comparator : undefined;
+ return (array && array.length) ? baseUniq(array, undefined, comparator) : [];
+ }
+
+ /**
+ * This method is like `_.zip` except that it accepts an array of grouped
+ * elements and creates an array regrouping the elements to their pre-zip
+ * configuration.
+ *
+ * @static
+ * @memberOf _
+ * @since 1.2.0
+ * @category Array
+ * @param {Array} array The array of grouped elements to process.
+ * @returns {Array} Returns the new array of regrouped elements.
+ * @example
+ *
+ * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);
+ * // => [['a', 1, true], ['b', 2, false]]
+ *
+ * _.unzip(zipped);
+ * // => [['a', 'b'], [1, 2], [true, false]]
+ */
+ function unzip(array) {
+ if (!(array && array.length)) {
+ return [];
+ }
+ var length = 0;
+ array = arrayFilter(array, function(group) {
+ if (isArrayLikeObject(group)) {
+ length = nativeMax(group.length, length);
+ return true;
+ }
+ });
+ return baseTimes(length, function(index) {
+ return arrayMap(array, baseProperty(index));
+ });
+ }
+
+ /**
+ * This method is like `_.unzip` except that it accepts `iteratee` to specify
+ * how regrouped values should be combined. The iteratee is invoked with the
+ * elements of each group: (...group).
+ *
+ * @static
+ * @memberOf _
+ * @since 3.8.0
+ * @category Array
+ * @param {Array} array The array of grouped elements to process.
+ * @param {Function} [iteratee=_.identity] The function to combine
+ * regrouped values.
+ * @returns {Array} Returns the new array of regrouped elements.
+ * @example
+ *
+ * var zipped = _.zip([1, 2], [10, 20], [100, 200]);
+ * // => [[1, 10, 100], [2, 20, 200]]
+ *
+ * _.unzipWith(zipped, _.add);
+ * // => [3, 30, 300]
+ */
+ function unzipWith(array, iteratee) {
+ if (!(array && array.length)) {
+ return [];
+ }
+ var result = unzip(array);
+ if (iteratee == null) {
+ return result;
+ }
+ return arrayMap(result, function(group) {
+ return apply(iteratee, undefined, group);
+ });
+ }
+
+ /**
+ * Creates an array excluding all given values using
+ * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
+ * for equality comparisons.
+ *
+ * **Note:** Unlike `_.pull`, this method returns a new array.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Array
+ * @param {Array} array The array to inspect.
+ * @param {...*} [values] The values to exclude.
+ * @returns {Array} Returns the new array of filtered values.
+ * @see _.difference, _.xor
+ * @example
+ *
+ * _.without([2, 1, 2, 3], 1, 2);
+ * // => [3]
+ */
+ var without = baseRest(function(array, values) {
+ return isArrayLikeObject(array)
+ ? baseDifference(array, values)
+ : [];
+ });
+
+ /**
+ * Creates an array of unique values that is the
+ * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)
+ * of the given arrays. The order of result values is determined by the order
+ * they occur in the arrays.
+ *
+ * @static
+ * @memberOf _
+ * @since 2.4.0
+ * @category Array
+ * @param {...Array} [arrays] The arrays to inspect.
+ * @returns {Array} Returns the new array of filtered values.
+ * @see _.difference, _.without
+ * @example
+ *
+ * _.xor([2, 1], [2, 3]);
+ * // => [1, 3]
+ */
+ var xor = baseRest(function(arrays) {
+ return baseXor(arrayFilter(arrays, isArrayLikeObject));
+ });
+
+ /**
+ * This method is like `_.xor` except that it accepts `iteratee` which is
+ * invoked for each element of each `arrays` to generate the criterion by
+ * which by which they're compared. The order of result values is determined
+ * by the order they occur in the arrays. The iteratee is invoked with one
+ * argument: (value).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Array
+ * @param {...Array} [arrays] The arrays to inspect.
+ * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
+ * @returns {Array} Returns the new array of filtered values.
+ * @example
+ *
+ * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);
+ * // => [1.2, 3.4]
+ *
+ * // The `_.property` iteratee shorthand.
+ * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
+ * // => [{ 'x': 2 }]
+ */
+ var xorBy = baseRest(function(arrays) {
+ var iteratee = last(arrays);
+ if (isArrayLikeObject(iteratee)) {
+ iteratee = undefined;
+ }
+ return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2));
+ });
+
+ /**
+ * This method is like `_.xor` except that it accepts `comparator` which is
+ * invoked to compare elements of `arrays`. The order of result values is
+ * determined by the order they occur in the arrays. The comparator is invoked
+ * with two arguments: (arrVal, othVal).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Array
+ * @param {...Array} [arrays] The arrays to inspect.
+ * @param {Function} [comparator] The comparator invoked per element.
+ * @returns {Array} Returns the new array of filtered values.
+ * @example
+ *
+ * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
+ * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
+ *
+ * _.xorWith(objects, others, _.isEqual);
+ * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]
+ */
+ var xorWith = baseRest(function(arrays) {
+ var comparator = last(arrays);
+ comparator = typeof comparator == 'function' ? comparator : undefined;
+ return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);
+ });
+
+ /**
+ * Creates an array of grouped elements, the first of which contains the
+ * first elements of the given arrays, the second of which contains the
+ * second elements of the given arrays, and so on.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Array
+ * @param {...Array} [arrays] The arrays to process.
+ * @returns {Array} Returns the new array of grouped elements.
+ * @example
+ *
+ * _.zip(['a', 'b'], [1, 2], [true, false]);
+ * // => [['a', 1, true], ['b', 2, false]]
+ */
+ var zip = baseRest(unzip);
+
+ /**
+ * This method is like `_.fromPairs` except that it accepts two arrays,
+ * one of property identifiers and one of corresponding values.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.4.0
+ * @category Array
+ * @param {Array} [props=[]] The property identifiers.
+ * @param {Array} [values=[]] The property values.
+ * @returns {Object} Returns the new object.
+ * @example
+ *
+ * _.zipObject(['a', 'b'], [1, 2]);
+ * // => { 'a': 1, 'b': 2 }
+ */
+ function zipObject(props, values) {
+ return baseZipObject(props || [], values || [], assignValue);
+ }
+
+ /**
+ * This method is like `_.zipObject` except that it supports property paths.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.1.0
+ * @category Array
+ * @param {Array} [props=[]] The property identifiers.
+ * @param {Array} [values=[]] The property values.
+ * @returns {Object} Returns the new object.
+ * @example
+ *
+ * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);
+ * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }
+ */
+ function zipObjectDeep(props, values) {
+ return baseZipObject(props || [], values || [], baseSet);
+ }
+
+ /**
+ * This method is like `_.zip` except that it accepts `iteratee` to specify
+ * how grouped values should be combined. The iteratee is invoked with the
+ * elements of each group: (...group).
+ *
+ * @static
+ * @memberOf _
+ * @since 3.8.0
+ * @category Array
+ * @param {...Array} [arrays] The arrays to process.
+ * @param {Function} [iteratee=_.identity] The function to combine
+ * grouped values.
+ * @returns {Array} Returns the new array of grouped elements.
+ * @example
+ *
+ * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {
+ * return a + b + c;
+ * });
+ * // => [111, 222]
+ */
+ var zipWith = baseRest(function(arrays) {
+ var length = arrays.length,
+ iteratee = length > 1 ? arrays[length - 1] : undefined;
+
+ iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined;
+ return unzipWith(arrays, iteratee);
+ });
+
+ /*------------------------------------------------------------------------*/
+
+ /**
+ * Creates a `lodash` wrapper instance that wraps `value` with explicit method
+ * chain sequences enabled. The result of such sequences must be unwrapped
+ * with `_#value`.
+ *
+ * @static
+ * @memberOf _
+ * @since 1.3.0
+ * @category Seq
+ * @param {*} value The value to wrap.
+ * @returns {Object} Returns the new `lodash` wrapper instance.
+ * @example
+ *
+ * var users = [
+ * { 'user': 'barney', 'age': 36 },
+ * { 'user': 'fred', 'age': 40 },
+ * { 'user': 'pebbles', 'age': 1 }
+ * ];
+ *
+ * var youngest = _
+ * .chain(users)
+ * .sortBy('age')
+ * .map(function(o) {
+ * return o.user + ' is ' + o.age;
+ * })
+ * .head()
+ * .value();
+ * // => 'pebbles is 1'
+ */
+ function chain(value) {
+ var result = lodash(value);
+ result.__chain__ = true;
+ return result;
+ }
+
+ /**
+ * This method invokes `interceptor` and returns `value`. The interceptor
+ * is invoked with one argument; (value). The purpose of this method is to
+ * "tap into" a method chain sequence in order to modify intermediate results.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Seq
+ * @param {*} value The value to provide to `interceptor`.
+ * @param {Function} interceptor The function to invoke.
+ * @returns {*} Returns `value`.
+ * @example
+ *
+ * _([1, 2, 3])
+ * .tap(function(array) {
+ * // Mutate input array.
+ * array.pop();
+ * })
+ * .reverse()
+ * .value();
+ * // => [2, 1]
+ */
+ function tap(value, interceptor) {
+ interceptor(value);
+ return value;
+ }
+
+ /**
+ * This method is like `_.tap` except that it returns the result of `interceptor`.
+ * The purpose of this method is to "pass thru" values replacing intermediate
+ * results in a method chain sequence.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category Seq
+ * @param {*} value The value to provide to `interceptor`.
+ * @param {Function} interceptor The function to invoke.
+ * @returns {*} Returns the result of `interceptor`.
+ * @example
+ *
+ * _(' abc ')
+ * .chain()
+ * .trim()
+ * .thru(function(value) {
+ * return [value];
+ * })
+ * .value();
+ * // => ['abc']
+ */
+ function thru(value, interceptor) {
+ return interceptor(value);
+ }
+
+ /**
+ * This method is the wrapper version of `_.at`.
+ *
+ * @name at
+ * @memberOf _
+ * @since 1.0.0
+ * @category Seq
+ * @param {...(string|string[])} [paths] The property paths to pick.
+ * @returns {Object} Returns the new `lodash` wrapper instance.
+ * @example
+ *
+ * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };
+ *
+ * _(object).at(['a[0].b.c', 'a[1]']).value();
+ * // => [3, 4]
+ */
+ var wrapperAt = flatRest(function(paths) {
+ var length = paths.length,
+ start = length ? paths[0] : 0,
+ value = this.__wrapped__,
+ interceptor = function(object) { return baseAt(object, paths); };
+
+ if (length > 1 || this.__actions__.length ||
+ !(value instanceof LazyWrapper) || !isIndex(start)) {
+ return this.thru(interceptor);
+ }
+ value = value.slice(start, +start + (length ? 1 : 0));
+ value.__actions__.push({
+ 'func': thru,
+ 'args': [interceptor],
+ 'thisArg': undefined
+ });
+ return new LodashWrapper(value, this.__chain__).thru(function(array) {
+ if (length && !array.length) {
+ array.push(undefined);
+ }
+ return array;
+ });
+ });
+
+ /**
+ * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.
+ *
+ * @name chain
+ * @memberOf _
+ * @since 0.1.0
+ * @category Seq
+ * @returns {Object} Returns the new `lodash` wrapper instance.
+ * @example
+ *
+ * var users = [
+ * { 'user': 'barney', 'age': 36 },
+ * { 'user': 'fred', 'age': 40 }
+ * ];
+ *
+ * // A sequence without explicit chaining.
+ * _(users).head();
+ * // => { 'user': 'barney', 'age': 36 }
+ *
+ * // A sequence with explicit chaining.
+ * _(users)
+ * .chain()
+ * .head()
+ * .pick('user')
+ * .value();
+ * // => { 'user': 'barney' }
+ */
+ function wrapperChain() {
+ return chain(this);
+ }
+
+ /**
+ * Executes the chain sequence and returns the wrapped result.
+ *
+ * @name commit
+ * @memberOf _
+ * @since 3.2.0
+ * @category Seq
+ * @returns {Object} Returns the new `lodash` wrapper instance.
+ * @example
+ *
+ * var array = [1, 2];
+ * var wrapped = _(array).push(3);
+ *
+ * console.log(array);
+ * // => [1, 2]
+ *
+ * wrapped = wrapped.commit();
+ * console.log(array);
+ * // => [1, 2, 3]
+ *
+ * wrapped.last();
+ * // => 3
+ *
+ * console.log(array);
+ * // => [1, 2, 3]
+ */
+ function wrapperCommit() {
+ return new LodashWrapper(this.value(), this.__chain__);
+ }
+
+ /**
+ * Gets the next value on a wrapped object following the
+ * [iterator protocol](https://mdn.io/iteration_protocols#iterator).
+ *
+ * @name next
+ * @memberOf _
+ * @since 4.0.0
+ * @category Seq
+ * @returns {Object} Returns the next iterator value.
+ * @example
+ *
+ * var wrapped = _([1, 2]);
+ *
+ * wrapped.next();
+ * // => { 'done': false, 'value': 1 }
+ *
+ * wrapped.next();
+ * // => { 'done': false, 'value': 2 }
+ *
+ * wrapped.next();
+ * // => { 'done': true, 'value': undefined }
+ */
+ function wrapperNext() {
+ if (this.__values__ === undefined) {
+ this.__values__ = toArray(this.value());
+ }
+ var done = this.__index__ >= this.__values__.length,
+ value = done ? undefined : this.__values__[this.__index__++];
+
+ return { 'done': done, 'value': value };
+ }
+
+ /**
+ * Enables the wrapper to be iterable.
+ *
+ * @name Symbol.iterator
+ * @memberOf _
+ * @since 4.0.0
+ * @category Seq
+ * @returns {Object} Returns the wrapper object.
+ * @example
+ *
+ * var wrapped = _([1, 2]);
+ *
+ * wrapped[Symbol.iterator]() === wrapped;
+ * // => true
+ *
+ * Array.from(wrapped);
+ * // => [1, 2]
+ */
+ function wrapperToIterator() {
+ return this;
+ }
+
+ /**
+ * Creates a clone of the chain sequence planting `value` as the wrapped value.
+ *
+ * @name plant
+ * @memberOf _
+ * @since 3.2.0
+ * @category Seq
+ * @param {*} value The value to plant.
+ * @returns {Object} Returns the new `lodash` wrapper instance.
+ * @example
+ *
+ * function square(n) {
+ * return n * n;
+ * }
+ *
+ * var wrapped = _([1, 2]).map(square);
+ * var other = wrapped.plant([3, 4]);
+ *
+ * other.value();
+ * // => [9, 16]
+ *
+ * wrapped.value();
+ * // => [1, 4]
+ */
+ function wrapperPlant(value) {
+ var result,
+ parent = this;
+
+ while (parent instanceof baseLodash) {
+ var clone = wrapperClone(parent);
+ clone.__index__ = 0;
+ clone.__values__ = undefined;
+ if (result) {
+ previous.__wrapped__ = clone;
+ } else {
+ result = clone;
+ }
+ var previous = clone;
+ parent = parent.__wrapped__;
+ }
+ previous.__wrapped__ = value;
+ return result;
+ }
+
+ /**
+ * This method is the wrapper version of `_.reverse`.
+ *
+ * **Note:** This method mutates the wrapped array.
+ *
+ * @name reverse
+ * @memberOf _
+ * @since 0.1.0
+ * @category Seq
+ * @returns {Object} Returns the new `lodash` wrapper instance.
+ * @example
+ *
+ * var array = [1, 2, 3];
+ *
+ * _(array).reverse().value()
+ * // => [3, 2, 1]
+ *
+ * console.log(array);
+ * // => [3, 2, 1]
+ */
+ function wrapperReverse() {
+ var value = this.__wrapped__;
+ if (value instanceof LazyWrapper) {
+ var wrapped = value;
+ if (this.__actions__.length) {
+ wrapped = new LazyWrapper(this);
+ }
+ wrapped = wrapped.reverse();
+ wrapped.__actions__.push({
+ 'func': thru,
+ 'args': [reverse],
+ 'thisArg': undefined
+ });
+ return new LodashWrapper(wrapped, this.__chain__);
+ }
+ return this.thru(reverse);
+ }
+
+ /**
+ * Executes the chain sequence to resolve the unwrapped value.
+ *
+ * @name value
+ * @memberOf _
+ * @since 0.1.0
+ * @alias toJSON, valueOf
+ * @category Seq
+ * @returns {*} Returns the resolved unwrapped value.
+ * @example
+ *
+ * _([1, 2, 3]).value();
+ * // => [1, 2, 3]
+ */
+ function wrapperValue() {
+ return baseWrapperValue(this.__wrapped__, this.__actions__);
+ }
+
+ /*------------------------------------------------------------------------*/
+
+ /**
+ * Creates an object composed of keys generated from the results of running
+ * each element of `collection` thru `iteratee`. The corresponding value of
+ * each key is the number of times the key was returned by `iteratee`. The
+ * iteratee is invoked with one argument: (value).
+ *
+ * @static
+ * @memberOf _
+ * @since 0.5.0
+ * @category Collection
+ * @param {Array|Object} collection The collection to iterate over.
+ * @param {Function} [iteratee=_.identity] The iteratee to transform keys.
+ * @returns {Object} Returns the composed aggregate object.
+ * @example
+ *
+ * _.countBy([6.1, 4.2, 6.3], Math.floor);
+ * // => { '4': 1, '6': 2 }
+ *
+ * // The `_.property` iteratee shorthand.
+ * _.countBy(['one', 'two', 'three'], 'length');
+ * // => { '3': 2, '5': 1 }
+ */
+ var countBy = createAggregator(function(result, value, key) {
+ if (hasOwnProperty.call(result, key)) {
+ ++result[key];
+ } else {
+ baseAssignValue(result, key, 1);
+ }
+ });
+
+ /**
+ * Checks if `predicate` returns truthy for **all** elements of `collection`.
+ * Iteration is stopped once `predicate` returns falsey. The predicate is
+ * invoked with three arguments: (value, index|key, collection).
+ *
+ * **Note:** This method returns `true` for
+ * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because
+ * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of
+ * elements of empty collections.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Collection
+ * @param {Array|Object} collection The collection to iterate over.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
+ * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
+ * @returns {boolean} Returns `true` if all elements pass the predicate check,
+ * else `false`.
+ * @example
+ *
+ * _.every([true, 1, null, 'yes'], Boolean);
+ * // => false
+ *
+ * var users = [
+ * { 'user': 'barney', 'age': 36, 'active': false },
+ * { 'user': 'fred', 'age': 40, 'active': false }
+ * ];
+ *
+ * // The `_.matches` iteratee shorthand.
+ * _.every(users, { 'user': 'barney', 'active': false });
+ * // => false
+ *
+ * // The `_.matchesProperty` iteratee shorthand.
+ * _.every(users, ['active', false]);
+ * // => true
+ *
+ * // The `_.property` iteratee shorthand.
+ * _.every(users, 'active');
+ * // => false
+ */
+ function every(collection, predicate, guard) {
+ var func = isArray(collection) ? arrayEvery : baseEvery;
+ if (guard && isIterateeCall(collection, predicate, guard)) {
+ predicate = undefined;
+ }
+ return func(collection, getIteratee(predicate, 3));
+ }
+
+ /**
+ * Iterates over elements of `collection`, returning an array of all elements
+ * `predicate` returns truthy for. The predicate is invoked with three
+ * arguments: (value, index|key, collection).
+ *
+ * **Note:** Unlike `_.remove`, this method returns a new array.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Collection
+ * @param {Array|Object} collection The collection to iterate over.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
+ * @returns {Array} Returns the new filtered array.
+ * @see _.reject
+ * @example
+ *
+ * var users = [
+ * { 'user': 'barney', 'age': 36, 'active': true },
+ * { 'user': 'fred', 'age': 40, 'active': false }
+ * ];
+ *
+ * _.filter(users, function(o) { return !o.active; });
+ * // => objects for ['fred']
+ *
+ * // The `_.matches` iteratee shorthand.
+ * _.filter(users, { 'age': 36, 'active': true });
+ * // => objects for ['barney']
+ *
+ * // The `_.matchesProperty` iteratee shorthand.
+ * _.filter(users, ['active', false]);
+ * // => objects for ['fred']
+ *
+ * // The `_.property` iteratee shorthand.
+ * _.filter(users, 'active');
+ * // => objects for ['barney']
+ *
+ * // Combining several predicates using `_.overEvery` or `_.overSome`.
+ * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));
+ * // => objects for ['fred', 'barney']
+ */
+ function filter(collection, predicate) {
+ var func = isArray(collection) ? arrayFilter : baseFilter;
+ return func(collection, getIteratee(predicate, 3));
+ }
+
+ /**
+ * Iterates over elements of `collection`, returning the first element
+ * `predicate` returns truthy for. The predicate is invoked with three
+ * arguments: (value, index|key, collection).
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Collection
+ * @param {Array|Object} collection The collection to inspect.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
+ * @param {number} [fromIndex=0] The index to search from.
+ * @returns {*} Returns the matched element, else `undefined`.
+ * @example
+ *
+ * var users = [
+ * { 'user': 'barney', 'age': 36, 'active': true },
+ * { 'user': 'fred', 'age': 40, 'active': false },
+ * { 'user': 'pebbles', 'age': 1, 'active': true }
+ * ];
+ *
+ * _.find(users, function(o) { return o.age < 40; });
+ * // => object for 'barney'
+ *
+ * // The `_.matches` iteratee shorthand.
+ * _.find(users, { 'age': 1, 'active': true });
+ * // => object for 'pebbles'
+ *
+ * // The `_.matchesProperty` iteratee shorthand.
+ * _.find(users, ['active', false]);
+ * // => object for 'fred'
+ *
+ * // The `_.property` iteratee shorthand.
+ * _.find(users, 'active');
+ * // => object for 'barney'
+ */
+ var find = createFind(findIndex);
+
+ /**
+ * This method is like `_.find` except that it iterates over elements of
+ * `collection` from right to left.
+ *
+ * @static
+ * @memberOf _
+ * @since 2.0.0
+ * @category Collection
+ * @param {Array|Object} collection The collection to inspect.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
+ * @param {number} [fromIndex=collection.length-1] The index to search from.
+ * @returns {*} Returns the matched element, else `undefined`.
+ * @example
+ *
+ * _.findLast([1, 2, 3, 4], function(n) {
+ * return n % 2 == 1;
+ * });
+ * // => 3
+ */
+ var findLast = createFind(findLastIndex);
+
+ /**
+ * Creates a flattened array of values by running each element in `collection`
+ * thru `iteratee` and flattening the mapped results. The iteratee is invoked
+ * with three arguments: (value, index|key, collection).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Collection
+ * @param {Array|Object} collection The collection to iterate over.
+ * @param {Function} [iteratee=_.identity] The function invoked per iteration.
+ * @returns {Array} Returns the new flattened array.
+ * @example
+ *
+ * function duplicate(n) {
+ * return [n, n];
+ * }
+ *
+ * _.flatMap([1, 2], duplicate);
+ * // => [1, 1, 2, 2]
+ */
+ function flatMap(collection, iteratee) {
+ return baseFlatten(map(collection, iteratee), 1);
+ }
+
+ /**
+ * This method is like `_.flatMap` except that it recursively flattens the
+ * mapped results.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.7.0
+ * @category Collection
+ * @param {Array|Object} collection The collection to iterate over.
+ * @param {Function} [iteratee=_.identity] The function invoked per iteration.
+ * @returns {Array} Returns the new flattened array.
+ * @example
+ *
+ * function duplicate(n) {
+ * return [[[n, n]]];
+ * }
+ *
+ * _.flatMapDeep([1, 2], duplicate);
+ * // => [1, 1, 2, 2]
+ */
+ function flatMapDeep(collection, iteratee) {
+ return baseFlatten(map(collection, iteratee), INFINITY);
+ }
+
+ /**
+ * This method is like `_.flatMap` except that it recursively flattens the
+ * mapped results up to `depth` times.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.7.0
+ * @category Collection
+ * @param {Array|Object} collection The collection to iterate over.
+ * @param {Function} [iteratee=_.identity] The function invoked per iteration.
+ * @param {number} [depth=1] The maximum recursion depth.
+ * @returns {Array} Returns the new flattened array.
+ * @example
+ *
+ * function duplicate(n) {
+ * return [[[n, n]]];
+ * }
+ *
+ * _.flatMapDepth([1, 2], duplicate, 2);
+ * // => [[1, 1], [2, 2]]
+ */
+ function flatMapDepth(collection, iteratee, depth) {
+ depth = depth === undefined ? 1 : toInteger(depth);
+ return baseFlatten(map(collection, iteratee), depth);
+ }
+
+ /**
+ * Iterates over elements of `collection` and invokes `iteratee` for each element.
+ * The iteratee is invoked with three arguments: (value, index|key, collection).
+ * Iteratee functions may exit iteration early by explicitly returning `false`.
+ *
+ * **Note:** As with other "Collections" methods, objects with a "length"
+ * property are iterated like arrays. To avoid this behavior use `_.forIn`
+ * or `_.forOwn` for object iteration.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @alias each
+ * @category Collection
+ * @param {Array|Object} collection The collection to iterate over.
+ * @param {Function} [iteratee=_.identity] The function invoked per iteration.
+ * @returns {Array|Object} Returns `collection`.
+ * @see _.forEachRight
+ * @example
+ *
+ * _.forEach([1, 2], function(value) {
+ * console.log(value);
+ * });
+ * // => Logs `1` then `2`.
+ *
+ * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {
+ * console.log(key);
+ * });
+ * // => Logs 'a' then 'b' (iteration order is not guaranteed).
+ */
+ function forEach(collection, iteratee) {
+ var func = isArray(collection) ? arrayEach : baseEach;
+ return func(collection, getIteratee(iteratee, 3));
+ }
+
+ /**
+ * This method is like `_.forEach` except that it iterates over elements of
+ * `collection` from right to left.
+ *
+ * @static
+ * @memberOf _
+ * @since 2.0.0
+ * @alias eachRight
+ * @category Collection
+ * @param {Array|Object} collection The collection to iterate over.
+ * @param {Function} [iteratee=_.identity] The function invoked per iteration.
+ * @returns {Array|Object} Returns `collection`.
+ * @see _.forEach
+ * @example
+ *
+ * _.forEachRight([1, 2], function(value) {
+ * console.log(value);
+ * });
+ * // => Logs `2` then `1`.
+ */
+ function forEachRight(collection, iteratee) {
+ var func = isArray(collection) ? arrayEachRight : baseEachRight;
+ return func(collection, getIteratee(iteratee, 3));
+ }
+
+ /**
+ * Creates an object composed of keys generated from the results of running
+ * each element of `collection` thru `iteratee`. The order of grouped values
+ * is determined by the order they occur in `collection`. The corresponding
+ * value of each key is an array of elements responsible for generating the
+ * key. The iteratee is invoked with one argument: (value).
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Collection
+ * @param {Array|Object} collection The collection to iterate over.
+ * @param {Function} [iteratee=_.identity] The iteratee to transform keys.
+ * @returns {Object} Returns the composed aggregate object.
+ * @example
+ *
+ * _.groupBy([6.1, 4.2, 6.3], Math.floor);
+ * // => { '4': [4.2], '6': [6.1, 6.3] }
+ *
+ * // The `_.property` iteratee shorthand.
+ * _.groupBy(['one', 'two', 'three'], 'length');
+ * // => { '3': ['one', 'two'], '5': ['three'] }
+ */
+ var groupBy = createAggregator(function(result, value, key) {
+ if (hasOwnProperty.call(result, key)) {
+ result[key].push(value);
+ } else {
+ baseAssignValue(result, key, [value]);
+ }
+ });
+
+ /**
+ * Checks if `value` is in `collection`. If `collection` is a string, it's
+ * checked for a substring of `value`, otherwise
+ * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
+ * is used for equality comparisons. If `fromIndex` is negative, it's used as
+ * the offset from the end of `collection`.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Collection
+ * @param {Array|Object|string} collection The collection to inspect.
+ * @param {*} value The value to search for.
+ * @param {number} [fromIndex=0] The index to search from.
+ * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.
+ * @returns {boolean} Returns `true` if `value` is found, else `false`.
+ * @example
+ *
+ * _.includes([1, 2, 3], 1);
+ * // => true
+ *
+ * _.includes([1, 2, 3], 1, 2);
+ * // => false
+ *
+ * _.includes({ 'a': 1, 'b': 2 }, 1);
+ * // => true
+ *
+ * _.includes('abcd', 'bc');
+ * // => true
+ */
+ function includes(collection, value, fromIndex, guard) {
+ collection = isArrayLike(collection) ? collection : values(collection);
+ fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;
+
+ var length = collection.length;
+ if (fromIndex < 0) {
+ fromIndex = nativeMax(length + fromIndex, 0);
+ }
+ return isString(collection)
+ ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)
+ : (!!length && baseIndexOf(collection, value, fromIndex) > -1);
+ }
+
+ /**
+ * Invokes the method at `path` of each element in `collection`, returning
+ * an array of the results of each invoked method. Any additional arguments
+ * are provided to each invoked method. If `path` is a function, it's invoked
+ * for, and `this` bound to, each element in `collection`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Collection
+ * @param {Array|Object} collection The collection to iterate over.
+ * @param {Array|Function|string} path The path of the method to invoke or
+ * the function invoked per iteration.
+ * @param {...*} [args] The arguments to invoke each method with.
+ * @returns {Array} Returns the array of results.
+ * @example
+ *
+ * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');
+ * // => [[1, 5, 7], [1, 2, 3]]
+ *
+ * _.invokeMap([123, 456], String.prototype.split, '');
+ * // => [['1', '2', '3'], ['4', '5', '6']]
+ */
+ var invokeMap = baseRest(function(collection, path, args) {
+ var index = -1,
+ isFunc = typeof path == 'function',
+ result = isArrayLike(collection) ? Array(collection.length) : [];
+
+ baseEach(collection, function(value) {
+ result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);
+ });
+ return result;
+ });
+
+ /**
+ * Creates an object composed of keys generated from the results of running
+ * each element of `collection` thru `iteratee`. The corresponding value of
+ * each key is the last element responsible for generating the key. The
+ * iteratee is invoked with one argument: (value).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Collection
+ * @param {Array|Object} collection The collection to iterate over.
+ * @param {Function} [iteratee=_.identity] The iteratee to transform keys.
+ * @returns {Object} Returns the composed aggregate object.
+ * @example
+ *
+ * var array = [
+ * { 'dir': 'left', 'code': 97 },
+ * { 'dir': 'right', 'code': 100 }
+ * ];
+ *
+ * _.keyBy(array, function(o) {
+ * return String.fromCharCode(o.code);
+ * });
+ * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }
+ *
+ * _.keyBy(array, 'dir');
+ * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }
+ */
+ var keyBy = createAggregator(function(result, value, key) {
+ baseAssignValue(result, key, value);
+ });
+
+ /**
+ * Creates an array of values by running each element in `collection` thru
+ * `iteratee`. The iteratee is invoked with three arguments:
+ * (value, index|key, collection).
+ *
+ * Many lodash methods are guarded to work as iteratees for methods like
+ * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.
+ *
+ * The guarded methods are:
+ * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,
+ * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,
+ * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,
+ * `template`, `trim`, `trimEnd`, `trimStart`, and `words`
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Collection
+ * @param {Array|Object} collection The collection to iterate over.
+ * @param {Function} [iteratee=_.identity] The function invoked per iteration.
+ * @returns {Array} Returns the new mapped array.
+ * @example
+ *
+ * function square(n) {
+ * return n * n;
+ * }
+ *
+ * _.map([4, 8], square);
+ * // => [16, 64]
+ *
+ * _.map({ 'a': 4, 'b': 8 }, square);
+ * // => [16, 64] (iteration order is not guaranteed)
+ *
+ * var users = [
+ * { 'user': 'barney' },
+ * { 'user': 'fred' }
+ * ];
+ *
+ * // The `_.property` iteratee shorthand.
+ * _.map(users, 'user');
+ * // => ['barney', 'fred']
+ */
+ function map(collection, iteratee) {
+ var func = isArray(collection) ? arrayMap : baseMap;
+ return func(collection, getIteratee(iteratee, 3));
+ }
+
+ /**
+ * This method is like `_.sortBy` except that it allows specifying the sort
+ * orders of the iteratees to sort by. If `orders` is unspecified, all values
+ * are sorted in ascending order. Otherwise, specify an order of "desc" for
+ * descending or "asc" for ascending sort order of corresponding values.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Collection
+ * @param {Array|Object} collection The collection to iterate over.
+ * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]
+ * The iteratees to sort by.
+ * @param {string[]} [orders] The sort orders of `iteratees`.
+ * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.
+ * @returns {Array} Returns the new sorted array.
+ * @example
+ *
+ * var users = [
+ * { 'user': 'fred', 'age': 48 },
+ * { 'user': 'barney', 'age': 34 },
+ * { 'user': 'fred', 'age': 40 },
+ * { 'user': 'barney', 'age': 36 }
+ * ];
+ *
+ * // Sort by `user` in ascending order and by `age` in descending order.
+ * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);
+ * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]
+ */
+ function orderBy(collection, iteratees, orders, guard) {
+ if (collection == null) {
+ return [];
+ }
+ if (!isArray(iteratees)) {
+ iteratees = iteratees == null ? [] : [iteratees];
+ }
+ orders = guard ? undefined : orders;
+ if (!isArray(orders)) {
+ orders = orders == null ? [] : [orders];
+ }
+ return baseOrderBy(collection, iteratees, orders);
+ }
+
+ /**
+ * Creates an array of elements split into two groups, the first of which
+ * contains elements `predicate` returns truthy for, the second of which
+ * contains elements `predicate` returns falsey for. The predicate is
+ * invoked with one argument: (value).
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category Collection
+ * @param {Array|Object} collection The collection to iterate over.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
+ * @returns {Array} Returns the array of grouped elements.
+ * @example
+ *
+ * var users = [
+ * { 'user': 'barney', 'age': 36, 'active': false },
+ * { 'user': 'fred', 'age': 40, 'active': true },
+ * { 'user': 'pebbles', 'age': 1, 'active': false }
+ * ];
+ *
+ * _.partition(users, function(o) { return o.active; });
+ * // => objects for [['fred'], ['barney', 'pebbles']]
+ *
+ * // The `_.matches` iteratee shorthand.
+ * _.partition(users, { 'age': 1, 'active': false });
+ * // => objects for [['pebbles'], ['barney', 'fred']]
+ *
+ * // The `_.matchesProperty` iteratee shorthand.
+ * _.partition(users, ['active', false]);
+ * // => objects for [['barney', 'pebbles'], ['fred']]
+ *
+ * // The `_.property` iteratee shorthand.
+ * _.partition(users, 'active');
+ * // => objects for [['fred'], ['barney', 'pebbles']]
+ */
+ var partition = createAggregator(function(result, value, key) {
+ result[key ? 0 : 1].push(value);
+ }, function() { return [[], []]; });
+
+ /**
+ * Reduces `collection` to a value which is the accumulated result of running
+ * each element in `collection` thru `iteratee`, where each successive
+ * invocation is supplied the return value of the previous. If `accumulator`
+ * is not given, the first element of `collection` is used as the initial
+ * value. The iteratee is invoked with four arguments:
+ * (accumulator, value, index|key, collection).
+ *
+ * Many lodash methods are guarded to work as iteratees for methods like
+ * `_.reduce`, `_.reduceRight`, and `_.transform`.
+ *
+ * The guarded methods are:
+ * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,
+ * and `sortBy`
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Collection
+ * @param {Array|Object} collection The collection to iterate over.
+ * @param {Function} [iteratee=_.identity] The function invoked per iteration.
+ * @param {*} [accumulator] The initial value.
+ * @returns {*} Returns the accumulated value.
+ * @see _.reduceRight
+ * @example
+ *
+ * _.reduce([1, 2], function(sum, n) {
+ * return sum + n;
+ * }, 0);
+ * // => 3
+ *
+ * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {
+ * (result[value] || (result[value] = [])).push(key);
+ * return result;
+ * }, {});
+ * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)
+ */
+ function reduce(collection, iteratee, accumulator) {
+ var func = isArray(collection) ? arrayReduce : baseReduce,
+ initAccum = arguments.length < 3;
+
+ return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach);
+ }
+
+ /**
+ * This method is like `_.reduce` except that it iterates over elements of
+ * `collection` from right to left.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Collection
+ * @param {Array|Object} collection The collection to iterate over.
+ * @param {Function} [iteratee=_.identity] The function invoked per iteration.
+ * @param {*} [accumulator] The initial value.
+ * @returns {*} Returns the accumulated value.
+ * @see _.reduce
+ * @example
+ *
+ * var array = [[0, 1], [2, 3], [4, 5]];
+ *
+ * _.reduceRight(array, function(flattened, other) {
+ * return flattened.concat(other);
+ * }, []);
+ * // => [4, 5, 2, 3, 0, 1]
+ */
+ function reduceRight(collection, iteratee, accumulator) {
+ var func = isArray(collection) ? arrayReduceRight : baseReduce,
+ initAccum = arguments.length < 3;
+
+ return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);
+ }
+
+ /**
+ * The opposite of `_.filter`; this method returns the elements of `collection`
+ * that `predicate` does **not** return truthy for.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Collection
+ * @param {Array|Object} collection The collection to iterate over.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
+ * @returns {Array} Returns the new filtered array.
+ * @see _.filter
+ * @example
+ *
+ * var users = [
+ * { 'user': 'barney', 'age': 36, 'active': false },
+ * { 'user': 'fred', 'age': 40, 'active': true }
+ * ];
+ *
+ * _.reject(users, function(o) { return !o.active; });
+ * // => objects for ['fred']
+ *
+ * // The `_.matches` iteratee shorthand.
+ * _.reject(users, { 'age': 40, 'active': true });
+ * // => objects for ['barney']
+ *
+ * // The `_.matchesProperty` iteratee shorthand.
+ * _.reject(users, ['active', false]);
+ * // => objects for ['fred']
+ *
+ * // The `_.property` iteratee shorthand.
+ * _.reject(users, 'active');
+ * // => objects for ['barney']
+ */
+ function reject(collection, predicate) {
+ var func = isArray(collection) ? arrayFilter : baseFilter;
+ return func(collection, negate(getIteratee(predicate, 3)));
+ }
+
+ /**
+ * Gets a random element from `collection`.
+ *
+ * @static
+ * @memberOf _
+ * @since 2.0.0
+ * @category Collection
+ * @param {Array|Object} collection The collection to sample.
+ * @returns {*} Returns the random element.
+ * @example
+ *
+ * _.sample([1, 2, 3, 4]);
+ * // => 2
+ */
+ function sample(collection) {
+ var func = isArray(collection) ? arraySample : baseSample;
+ return func(collection);
+ }
+
+ /**
+ * Gets `n` random elements at unique keys from `collection` up to the
+ * size of `collection`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Collection
+ * @param {Array|Object} collection The collection to sample.
+ * @param {number} [n=1] The number of elements to sample.
+ * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
+ * @returns {Array} Returns the random elements.
+ * @example
+ *
+ * _.sampleSize([1, 2, 3], 2);
+ * // => [3, 1]
+ *
+ * _.sampleSize([1, 2, 3], 4);
+ * // => [2, 3, 1]
+ */
+ function sampleSize(collection, n, guard) {
+ if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {
+ n = 1;
+ } else {
+ n = toInteger(n);
+ }
+ var func = isArray(collection) ? arraySampleSize : baseSampleSize;
+ return func(collection, n);
+ }
+
+ /**
+ * Creates an array of shuffled values, using a version of the
+ * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Collection
+ * @param {Array|Object} collection The collection to shuffle.
+ * @returns {Array} Returns the new shuffled array.
+ * @example
+ *
+ * _.shuffle([1, 2, 3, 4]);
+ * // => [4, 1, 3, 2]
+ */
+ function shuffle(collection) {
+ var func = isArray(collection) ? arrayShuffle : baseShuffle;
+ return func(collection);
+ }
+
+ /**
+ * Gets the size of `collection` by returning its length for array-like
+ * values or the number of own enumerable string keyed properties for objects.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Collection
+ * @param {Array|Object|string} collection The collection to inspect.
+ * @returns {number} Returns the collection size.
+ * @example
+ *
+ * _.size([1, 2, 3]);
+ * // => 3
+ *
+ * _.size({ 'a': 1, 'b': 2 });
+ * // => 2
+ *
+ * _.size('pebbles');
+ * // => 7
+ */
+ function size(collection) {
+ if (collection == null) {
+ return 0;
+ }
+ if (isArrayLike(collection)) {
+ return isString(collection) ? stringSize(collection) : collection.length;
+ }
+ var tag = getTag(collection);
+ if (tag == mapTag || tag == setTag) {
+ return collection.size;
+ }
+ return baseKeys(collection).length;
+ }
+
+ /**
+ * Checks if `predicate` returns truthy for **any** element of `collection`.
+ * Iteration is stopped once `predicate` returns truthy. The predicate is
+ * invoked with three arguments: (value, index|key, collection).
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Collection
+ * @param {Array|Object} collection The collection to iterate over.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
+ * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
+ * @returns {boolean} Returns `true` if any element passes the predicate check,
+ * else `false`.
+ * @example
+ *
+ * _.some([null, 0, 'yes', false], Boolean);
+ * // => true
+ *
+ * var users = [
+ * { 'user': 'barney', 'active': true },
+ * { 'user': 'fred', 'active': false }
+ * ];
+ *
+ * // The `_.matches` iteratee shorthand.
+ * _.some(users, { 'user': 'barney', 'active': false });
+ * // => false
+ *
+ * // The `_.matchesProperty` iteratee shorthand.
+ * _.some(users, ['active', false]);
+ * // => true
+ *
+ * // The `_.property` iteratee shorthand.
+ * _.some(users, 'active');
+ * // => true
+ */
+ function some(collection, predicate, guard) {
+ var func = isArray(collection) ? arraySome : baseSome;
+ if (guard && isIterateeCall(collection, predicate, guard)) {
+ predicate = undefined;
+ }
+ return func(collection, getIteratee(predicate, 3));
+ }
+
+ /**
+ * Creates an array of elements, sorted in ascending order by the results of
+ * running each element in a collection thru each iteratee. This method
+ * performs a stable sort, that is, it preserves the original sort order of
+ * equal elements. The iteratees are invoked with one argument: (value).
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Collection
+ * @param {Array|Object} collection The collection to iterate over.
+ * @param {...(Function|Function[])} [iteratees=[_.identity]]
+ * The iteratees to sort by.
+ * @returns {Array} Returns the new sorted array.
+ * @example
+ *
+ * var users = [
+ * { 'user': 'fred', 'age': 48 },
+ * { 'user': 'barney', 'age': 36 },
+ * { 'user': 'fred', 'age': 30 },
+ * { 'user': 'barney', 'age': 34 }
+ * ];
+ *
+ * _.sortBy(users, [function(o) { return o.user; }]);
+ * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]
+ *
+ * _.sortBy(users, ['user', 'age']);
+ * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]
+ */
+ var sortBy = baseRest(function(collection, iteratees) {
+ if (collection == null) {
+ return [];
+ }
+ var length = iteratees.length;
+ if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {
+ iteratees = [];
+ } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {
+ iteratees = [iteratees[0]];
+ }
+ return baseOrderBy(collection, baseFlatten(iteratees, 1), []);
+ });
+
+ /*------------------------------------------------------------------------*/
+
+ /**
+ * Gets the timestamp of the number of milliseconds that have elapsed since
+ * the Unix epoch (1 January 1970 00:00:00 UTC).
+ *
+ * @static
+ * @memberOf _
+ * @since 2.4.0
+ * @category Date
+ * @returns {number} Returns the timestamp.
+ * @example
+ *
+ * _.defer(function(stamp) {
+ * console.log(_.now() - stamp);
+ * }, _.now());
+ * // => Logs the number of milliseconds it took for the deferred invocation.
+ */
+ var now = ctxNow || function() {
+ return root.Date.now();
+ };
+
+ /*------------------------------------------------------------------------*/
+
+ /**
+ * The opposite of `_.before`; this method creates a function that invokes
+ * `func` once it's called `n` or more times.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Function
+ * @param {number} n The number of calls before `func` is invoked.
+ * @param {Function} func The function to restrict.
+ * @returns {Function} Returns the new restricted function.
+ * @example
+ *
+ * var saves = ['profile', 'settings'];
+ *
+ * var done = _.after(saves.length, function() {
+ * console.log('done saving!');
+ * });
+ *
+ * _.forEach(saves, function(type) {
+ * asyncSave({ 'type': type, 'complete': done });
+ * });
+ * // => Logs 'done saving!' after the two async saves have completed.
+ */
+ function after(n, func) {
+ if (typeof func != 'function') {
+ throw new TypeError(FUNC_ERROR_TEXT);
+ }
+ n = toInteger(n);
+ return function() {
+ if (--n < 1) {
+ return func.apply(this, arguments);
+ }
+ };
+ }
+
+ /**
+ * Creates a function that invokes `func`, with up to `n` arguments,
+ * ignoring any additional arguments.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category Function
+ * @param {Function} func The function to cap arguments for.
+ * @param {number} [n=func.length] The arity cap.
+ * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
+ * @returns {Function} Returns the new capped function.
+ * @example
+ *
+ * _.map(['6', '8', '10'], _.ary(parseInt, 1));
+ * // => [6, 8, 10]
+ */
+ function ary(func, n, guard) {
+ n = guard ? undefined : n;
+ n = (func && n == null) ? func.length : n;
+ return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);
+ }
+
+ /**
+ * Creates a function that invokes `func`, with the `this` binding and arguments
+ * of the created function, while it's called less than `n` times. Subsequent
+ * calls to the created function return the result of the last `func` invocation.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category Function
+ * @param {number} n The number of calls at which `func` is no longer invoked.
+ * @param {Function} func The function to restrict.
+ * @returns {Function} Returns the new restricted function.
+ * @example
+ *
+ * jQuery(element).on('click', _.before(5, addContactToList));
+ * // => Allows adding up to 4 contacts to the list.
+ */
+ function before(n, func) {
+ var result;
+ if (typeof func != 'function') {
+ throw new TypeError(FUNC_ERROR_TEXT);
+ }
+ n = toInteger(n);
+ return function() {
+ if (--n > 0) {
+ result = func.apply(this, arguments);
+ }
+ if (n <= 1) {
+ func = undefined;
+ }
+ return result;
+ };
+ }
+
+ /**
+ * Creates a function that invokes `func` with the `this` binding of `thisArg`
+ * and `partials` prepended to the arguments it receives.
+ *
+ * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,
+ * may be used as a placeholder for partially applied arguments.
+ *
+ * **Note:** Unlike native `Function#bind`, this method doesn't set the "length"
+ * property of bound functions.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Function
+ * @param {Function} func The function to bind.
+ * @param {*} thisArg The `this` binding of `func`.
+ * @param {...*} [partials] The arguments to be partially applied.
+ * @returns {Function} Returns the new bound function.
+ * @example
+ *
+ * function greet(greeting, punctuation) {
+ * return greeting + ' ' + this.user + punctuation;
+ * }
+ *
+ * var object = { 'user': 'fred' };
+ *
+ * var bound = _.bind(greet, object, 'hi');
+ * bound('!');
+ * // => 'hi fred!'
+ *
+ * // Bound with placeholders.
+ * var bound = _.bind(greet, object, _, '!');
+ * bound('hi');
+ * // => 'hi fred!'
+ */
+ var bind = baseRest(function(func, thisArg, partials) {
+ var bitmask = WRAP_BIND_FLAG;
+ if (partials.length) {
+ var holders = replaceHolders(partials, getHolder(bind));
+ bitmask |= WRAP_PARTIAL_FLAG;
+ }
+ return createWrap(func, bitmask, thisArg, partials, holders);
+ });
+
+ /**
+ * Creates a function that invokes the method at `object[key]` with `partials`
+ * prepended to the arguments it receives.
+ *
+ * This method differs from `_.bind` by allowing bound functions to reference
+ * methods that may be redefined or don't yet exist. See
+ * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)
+ * for more details.
+ *
+ * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic
+ * builds, may be used as a placeholder for partially applied arguments.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.10.0
+ * @category Function
+ * @param {Object} object The object to invoke the method on.
+ * @param {string} key The key of the method.
+ * @param {...*} [partials] The arguments to be partially applied.
+ * @returns {Function} Returns the new bound function.
+ * @example
+ *
+ * var object = {
+ * 'user': 'fred',
+ * 'greet': function(greeting, punctuation) {
+ * return greeting + ' ' + this.user + punctuation;
+ * }
+ * };
+ *
+ * var bound = _.bindKey(object, 'greet', 'hi');
+ * bound('!');
+ * // => 'hi fred!'
+ *
+ * object.greet = function(greeting, punctuation) {
+ * return greeting + 'ya ' + this.user + punctuation;
+ * };
+ *
+ * bound('!');
+ * // => 'hiya fred!'
+ *
+ * // Bound with placeholders.
+ * var bound = _.bindKey(object, 'greet', _, '!');
+ * bound('hi');
+ * // => 'hiya fred!'
+ */
+ var bindKey = baseRest(function(object, key, partials) {
+ var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;
+ if (partials.length) {
+ var holders = replaceHolders(partials, getHolder(bindKey));
+ bitmask |= WRAP_PARTIAL_FLAG;
+ }
+ return createWrap(key, bitmask, object, partials, holders);
+ });
+
+ /**
+ * Creates a function that accepts arguments of `func` and either invokes
+ * `func` returning its result, if at least `arity` number of arguments have
+ * been provided, or returns a function that accepts the remaining `func`
+ * arguments, and so on. The arity of `func` may be specified if `func.length`
+ * is not sufficient.
+ *
+ * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,
+ * may be used as a placeholder for provided arguments.
+ *
+ * **Note:** This method doesn't set the "length" property of curried functions.
+ *
+ * @static
+ * @memberOf _
+ * @since 2.0.0
+ * @category Function
+ * @param {Function} func The function to curry.
+ * @param {number} [arity=func.length] The arity of `func`.
+ * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
+ * @returns {Function} Returns the new curried function.
+ * @example
+ *
+ * var abc = function(a, b, c) {
+ * return [a, b, c];
+ * };
+ *
+ * var curried = _.curry(abc);
+ *
+ * curried(1)(2)(3);
+ * // => [1, 2, 3]
+ *
+ * curried(1, 2)(3);
+ * // => [1, 2, 3]
+ *
+ * curried(1, 2, 3);
+ * // => [1, 2, 3]
+ *
+ * // Curried with placeholders.
+ * curried(1)(_, 3)(2);
+ * // => [1, 2, 3]
+ */
+ function curry(func, arity, guard) {
+ arity = guard ? undefined : arity;
+ var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);
+ result.placeholder = curry.placeholder;
+ return result;
+ }
+
+ /**
+ * This method is like `_.curry` except that arguments are applied to `func`
+ * in the manner of `_.partialRight` instead of `_.partial`.
+ *
+ * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic
+ * builds, may be used as a placeholder for provided arguments.
+ *
+ * **Note:** This method doesn't set the "length" property of curried functions.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category Function
+ * @param {Function} func The function to curry.
+ * @param {number} [arity=func.length] The arity of `func`.
+ * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
+ * @returns {Function} Returns the new curried function.
+ * @example
+ *
+ * var abc = function(a, b, c) {
+ * return [a, b, c];
+ * };
+ *
+ * var curried = _.curryRight(abc);
+ *
+ * curried(3)(2)(1);
+ * // => [1, 2, 3]
+ *
+ * curried(2, 3)(1);
+ * // => [1, 2, 3]
+ *
+ * curried(1, 2, 3);
+ * // => [1, 2, 3]
+ *
+ * // Curried with placeholders.
+ * curried(3)(1, _)(2);
+ * // => [1, 2, 3]
+ */
+ function curryRight(func, arity, guard) {
+ arity = guard ? undefined : arity;
+ var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);
+ result.placeholder = curryRight.placeholder;
+ return result;
+ }
+
+ /**
+ * Creates a debounced function that delays invoking `func` until after `wait`
+ * milliseconds have elapsed since the last time the debounced function was
+ * invoked. The debounced function comes with a `cancel` method to cancel
+ * delayed `func` invocations and a `flush` method to immediately invoke them.
+ * Provide `options` to indicate whether `func` should be invoked on the
+ * leading and/or trailing edge of the `wait` timeout. The `func` is invoked
+ * with the last arguments provided to the debounced function. Subsequent
+ * calls to the debounced function return the result of the last `func`
+ * invocation.
+ *
+ * **Note:** If `leading` and `trailing` options are `true`, `func` is
+ * invoked on the trailing edge of the timeout only if the debounced function
+ * is invoked more than once during the `wait` timeout.
+ *
+ * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
+ * until to the next tick, similar to `setTimeout` with a timeout of `0`.
+ *
+ * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
+ * for details over the differences between `_.debounce` and `_.throttle`.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Function
+ * @param {Function} func The function to debounce.
+ * @param {number} [wait=0] The number of milliseconds to delay.
+ * @param {Object} [options={}] The options object.
+ * @param {boolean} [options.leading=false]
+ * Specify invoking on the leading edge of the timeout.
+ * @param {number} [options.maxWait]
+ * The maximum time `func` is allowed to be delayed before it's invoked.
+ * @param {boolean} [options.trailing=true]
+ * Specify invoking on the trailing edge of the timeout.
+ * @returns {Function} Returns the new debounced function.
+ * @example
+ *
+ * // Avoid costly calculations while the window size is in flux.
+ * jQuery(window).on('resize', _.debounce(calculateLayout, 150));
+ *
+ * // Invoke `sendMail` when clicked, debouncing subsequent calls.
+ * jQuery(element).on('click', _.debounce(sendMail, 300, {
+ * 'leading': true,
+ * 'trailing': false
+ * }));
+ *
+ * // Ensure `batchLog` is invoked once after 1 second of debounced calls.
+ * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });
+ * var source = new EventSource('/stream');
+ * jQuery(source).on('message', debounced);
+ *
+ * // Cancel the trailing debounced invocation.
+ * jQuery(window).on('popstate', debounced.cancel);
+ */
+ function debounce(func, wait, options) {
+ var lastArgs,
+ lastThis,
+ maxWait,
+ result,
+ timerId,
+ lastCallTime,
+ lastInvokeTime = 0,
+ leading = false,
+ maxing = false,
+ trailing = true;
+
+ if (typeof func != 'function') {
+ throw new TypeError(FUNC_ERROR_TEXT);
+ }
+ wait = toNumber(wait) || 0;
+ if (isObject(options)) {
+ leading = !!options.leading;
+ maxing = 'maxWait' in options;
+ maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
+ trailing = 'trailing' in options ? !!options.trailing : trailing;
+ }
+
+ function invokeFunc(time) {
+ var args = lastArgs,
+ thisArg = lastThis;
+
+ lastArgs = lastThis = undefined;
+ lastInvokeTime = time;
+ result = func.apply(thisArg, args);
+ return result;
+ }
+
+ function leadingEdge(time) {
+ // Reset any `maxWait` timer.
+ lastInvokeTime = time;
+ // Start the timer for the trailing edge.
+ timerId = setTimeout(timerExpired, wait);
+ // Invoke the leading edge.
+ return leading ? invokeFunc(time) : result;
+ }
+
+ function remainingWait(time) {
+ var timeSinceLastCall = time - lastCallTime,
+ timeSinceLastInvoke = time - lastInvokeTime,
+ timeWaiting = wait - timeSinceLastCall;
+
+ return maxing
+ ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)
+ : timeWaiting;
+ }
+
+ function shouldInvoke(time) {
+ var timeSinceLastCall = time - lastCallTime,
+ timeSinceLastInvoke = time - lastInvokeTime;
+
+ // Either this is the first call, activity has stopped and we're at the
+ // trailing edge, the system time has gone backwards and we're treating
+ // it as the trailing edge, or we've hit the `maxWait` limit.
+ return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||
+ (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));
+ }
+
+ function timerExpired() {
+ var time = now();
+ if (shouldInvoke(time)) {
+ return trailingEdge(time);
+ }
+ // Restart the timer.
+ timerId = setTimeout(timerExpired, remainingWait(time));
+ }
+
+ function trailingEdge(time) {
+ timerId = undefined;
+
+ // Only invoke if we have `lastArgs` which means `func` has been
+ // debounced at least once.
+ if (trailing && lastArgs) {
+ return invokeFunc(time);
+ }
+ lastArgs = lastThis = undefined;
+ return result;
+ }
+
+ function cancel() {
+ if (timerId !== undefined) {
+ clearTimeout(timerId);
+ }
+ lastInvokeTime = 0;
+ lastArgs = lastCallTime = lastThis = timerId = undefined;
+ }
+
+ function flush() {
+ return timerId === undefined ? result : trailingEdge(now());
+ }
+
+ function debounced() {
+ var time = now(),
+ isInvoking = shouldInvoke(time);
+
+ lastArgs = arguments;
+ lastThis = this;
+ lastCallTime = time;
+
+ if (isInvoking) {
+ if (timerId === undefined) {
+ return leadingEdge(lastCallTime);
+ }
+ if (maxing) {
+ // Handle invocations in a tight loop.
+ clearTimeout(timerId);
+ timerId = setTimeout(timerExpired, wait);
+ return invokeFunc(lastCallTime);
+ }
+ }
+ if (timerId === undefined) {
+ timerId = setTimeout(timerExpired, wait);
+ }
+ return result;
+ }
+ debounced.cancel = cancel;
+ debounced.flush = flush;
+ return debounced;
+ }
+
+ /**
+ * Defers invoking the `func` until the current call stack has cleared. Any
+ * additional arguments are provided to `func` when it's invoked.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Function
+ * @param {Function} func The function to defer.
+ * @param {...*} [args] The arguments to invoke `func` with.
+ * @returns {number} Returns the timer id.
+ * @example
+ *
+ * _.defer(function(text) {
+ * console.log(text);
+ * }, 'deferred');
+ * // => Logs 'deferred' after one millisecond.
+ */
+ var defer = baseRest(function(func, args) {
+ return baseDelay(func, 1, args);
+ });
+
+ /**
+ * Invokes `func` after `wait` milliseconds. Any additional arguments are
+ * provided to `func` when it's invoked.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Function
+ * @param {Function} func The function to delay.
+ * @param {number} wait The number of milliseconds to delay invocation.
+ * @param {...*} [args] The arguments to invoke `func` with.
+ * @returns {number} Returns the timer id.
+ * @example
+ *
+ * _.delay(function(text) {
+ * console.log(text);
+ * }, 1000, 'later');
+ * // => Logs 'later' after one second.
+ */
+ var delay = baseRest(function(func, wait, args) {
+ return baseDelay(func, toNumber(wait) || 0, args);
+ });
+
+ /**
+ * Creates a function that invokes `func` with arguments reversed.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Function
+ * @param {Function} func The function to flip arguments for.
+ * @returns {Function} Returns the new flipped function.
+ * @example
+ *
+ * var flipped = _.flip(function() {
+ * return _.toArray(arguments);
+ * });
+ *
+ * flipped('a', 'b', 'c', 'd');
+ * // => ['d', 'c', 'b', 'a']
+ */
+ function flip(func) {
+ return createWrap(func, WRAP_FLIP_FLAG);
+ }
+
+ /**
+ * Creates a function that memoizes the result of `func`. If `resolver` is
+ * provided, it determines the cache key for storing the result based on the
+ * arguments provided to the memoized function. By default, the first argument
+ * provided to the memoized function is used as the map cache key. The `func`
+ * is invoked with the `this` binding of the memoized function.
+ *
+ * **Note:** The cache is exposed as the `cache` property on the memoized
+ * function. Its creation may be customized by replacing the `_.memoize.Cache`
+ * constructor with one whose instances implement the
+ * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)
+ * method interface of `clear`, `delete`, `get`, `has`, and `set`.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Function
+ * @param {Function} func The function to have its output memoized.
+ * @param {Function} [resolver] The function to resolve the cache key.
+ * @returns {Function} Returns the new memoized function.
+ * @example
+ *
+ * var object = { 'a': 1, 'b': 2 };
+ * var other = { 'c': 3, 'd': 4 };
+ *
+ * var values = _.memoize(_.values);
+ * values(object);
+ * // => [1, 2]
+ *
+ * values(other);
+ * // => [3, 4]
+ *
+ * object.a = 2;
+ * values(object);
+ * // => [1, 2]
+ *
+ * // Modify the result cache.
+ * values.cache.set(object, ['a', 'b']);
+ * values(object);
+ * // => ['a', 'b']
+ *
+ * // Replace `_.memoize.Cache`.
+ * _.memoize.Cache = WeakMap;
+ */
+ function memoize(func, resolver) {
+ if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {
+ throw new TypeError(FUNC_ERROR_TEXT);
+ }
+ var memoized = function() {
+ var args = arguments,
+ key = resolver ? resolver.apply(this, args) : args[0],
+ cache = memoized.cache;
+
+ if (cache.has(key)) {
+ return cache.get(key);
+ }
+ var result = func.apply(this, args);
+ memoized.cache = cache.set(key, result) || cache;
+ return result;
+ };
+ memoized.cache = new (memoize.Cache || MapCache);
+ return memoized;
+ }
+
+ // Expose `MapCache`.
+ memoize.Cache = MapCache;
+
+ /**
+ * Creates a function that negates the result of the predicate `func`. The
+ * `func` predicate is invoked with the `this` binding and arguments of the
+ * created function.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category Function
+ * @param {Function} predicate The predicate to negate.
+ * @returns {Function} Returns the new negated function.
+ * @example
+ *
+ * function isEven(n) {
+ * return n % 2 == 0;
+ * }
+ *
+ * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));
+ * // => [1, 3, 5]
+ */
+ function negate(predicate) {
+ if (typeof predicate != 'function') {
+ throw new TypeError(FUNC_ERROR_TEXT);
+ }
+ return function() {
+ var args = arguments;
+ switch (args.length) {
+ case 0: return !predicate.call(this);
+ case 1: return !predicate.call(this, args[0]);
+ case 2: return !predicate.call(this, args[0], args[1]);
+ case 3: return !predicate.call(this, args[0], args[1], args[2]);
+ }
+ return !predicate.apply(this, args);
+ };
+ }
+
+ /**
+ * Creates a function that is restricted to invoking `func` once. Repeat calls
+ * to the function return the value of the first invocation. The `func` is
+ * invoked with the `this` binding and arguments of the created function.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Function
+ * @param {Function} func The function to restrict.
+ * @returns {Function} Returns the new restricted function.
+ * @example
+ *
+ * var initialize = _.once(createApplication);
+ * initialize();
+ * initialize();
+ * // => `createApplication` is invoked once
+ */
+ function once(func) {
+ return before(2, func);
+ }
+
+ /**
+ * Creates a function that invokes `func` with its arguments transformed.
+ *
+ * @static
+ * @since 4.0.0
+ * @memberOf _
+ * @category Function
+ * @param {Function} func The function to wrap.
+ * @param {...(Function|Function[])} [transforms=[_.identity]]
+ * The argument transforms.
+ * @returns {Function} Returns the new function.
+ * @example
+ *
+ * function doubled(n) {
+ * return n * 2;
+ * }
+ *
+ * function square(n) {
+ * return n * n;
+ * }
+ *
+ * var func = _.overArgs(function(x, y) {
+ * return [x, y];
+ * }, [square, doubled]);
+ *
+ * func(9, 3);
+ * // => [81, 6]
+ *
+ * func(10, 5);
+ * // => [100, 10]
+ */
+ var overArgs = castRest(function(func, transforms) {
+ transforms = (transforms.length == 1 && isArray(transforms[0]))
+ ? arrayMap(transforms[0], baseUnary(getIteratee()))
+ : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));
+
+ var funcsLength = transforms.length;
+ return baseRest(function(args) {
+ var index = -1,
+ length = nativeMin(args.length, funcsLength);
+
+ while (++index < length) {
+ args[index] = transforms[index].call(this, args[index]);
+ }
+ return apply(func, this, args);
+ });
+ });
+
+ /**
+ * Creates a function that invokes `func` with `partials` prepended to the
+ * arguments it receives. This method is like `_.bind` except it does **not**
+ * alter the `this` binding.
+ *
+ * The `_.partial.placeholder` value, which defaults to `_` in monolithic
+ * builds, may be used as a placeholder for partially applied arguments.
+ *
+ * **Note:** This method doesn't set the "length" property of partially
+ * applied functions.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.2.0
+ * @category Function
+ * @param {Function} func The function to partially apply arguments to.
+ * @param {...*} [partials] The arguments to be partially applied.
+ * @returns {Function} Returns the new partially applied function.
+ * @example
+ *
+ * function greet(greeting, name) {
+ * return greeting + ' ' + name;
+ * }
+ *
+ * var sayHelloTo = _.partial(greet, 'hello');
+ * sayHelloTo('fred');
+ * // => 'hello fred'
+ *
+ * // Partially applied with placeholders.
+ * var greetFred = _.partial(greet, _, 'fred');
+ * greetFred('hi');
+ * // => 'hi fred'
+ */
+ var partial = baseRest(function(func, partials) {
+ var holders = replaceHolders(partials, getHolder(partial));
+ return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);
+ });
+
+ /**
+ * This method is like `_.partial` except that partially applied arguments
+ * are appended to the arguments it receives.
+ *
+ * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic
+ * builds, may be used as a placeholder for partially applied arguments.
+ *
+ * **Note:** This method doesn't set the "length" property of partially
+ * applied functions.
+ *
+ * @static
+ * @memberOf _
+ * @since 1.0.0
+ * @category Function
+ * @param {Function} func The function to partially apply arguments to.
+ * @param {...*} [partials] The arguments to be partially applied.
+ * @returns {Function} Returns the new partially applied function.
+ * @example
+ *
+ * function greet(greeting, name) {
+ * return greeting + ' ' + name;
+ * }
+ *
+ * var greetFred = _.partialRight(greet, 'fred');
+ * greetFred('hi');
+ * // => 'hi fred'
+ *
+ * // Partially applied with placeholders.
+ * var sayHelloTo = _.partialRight(greet, 'hello', _);
+ * sayHelloTo('fred');
+ * // => 'hello fred'
+ */
+ var partialRight = baseRest(function(func, partials) {
+ var holders = replaceHolders(partials, getHolder(partialRight));
+ return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);
+ });
+
+ /**
+ * Creates a function that invokes `func` with arguments arranged according
+ * to the specified `indexes` where the argument value at the first index is
+ * provided as the first argument, the argument value at the second index is
+ * provided as the second argument, and so on.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category Function
+ * @param {Function} func The function to rearrange arguments for.
+ * @param {...(number|number[])} indexes The arranged argument indexes.
+ * @returns {Function} Returns the new function.
+ * @example
+ *
+ * var rearged = _.rearg(function(a, b, c) {
+ * return [a, b, c];
+ * }, [2, 0, 1]);
+ *
+ * rearged('b', 'c', 'a')
+ * // => ['a', 'b', 'c']
+ */
+ var rearg = flatRest(function(func, indexes) {
+ return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);
+ });
+
+ /**
+ * Creates a function that invokes `func` with the `this` binding of the
+ * created function and arguments from `start` and beyond provided as
+ * an array.
+ *
+ * **Note:** This method is based on the
+ * [rest parameter](https://mdn.io/rest_parameters).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Function
+ * @param {Function} func The function to apply a rest parameter to.
+ * @param {number} [start=func.length-1] The start position of the rest parameter.
+ * @returns {Function} Returns the new function.
+ * @example
+ *
+ * var say = _.rest(function(what, names) {
+ * return what + ' ' + _.initial(names).join(', ') +
+ * (_.size(names) > 1 ? ', & ' : '') + _.last(names);
+ * });
+ *
+ * say('hello', 'fred', 'barney', 'pebbles');
+ * // => 'hello fred, barney, & pebbles'
+ */
+ function rest(func, start) {
+ if (typeof func != 'function') {
+ throw new TypeError(FUNC_ERROR_TEXT);
+ }
+ start = start === undefined ? start : toInteger(start);
+ return baseRest(func, start);
+ }
+
+ /**
+ * Creates a function that invokes `func` with the `this` binding of the
+ * create function and an array of arguments much like
+ * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).
+ *
+ * **Note:** This method is based on the
+ * [spread operator](https://mdn.io/spread_operator).
+ *
+ * @static
+ * @memberOf _
+ * @since 3.2.0
+ * @category Function
+ * @param {Function} func The function to spread arguments over.
+ * @param {number} [start=0] The start position of the spread.
+ * @returns {Function} Returns the new function.
+ * @example
+ *
+ * var say = _.spread(function(who, what) {
+ * return who + ' says ' + what;
+ * });
+ *
+ * say(['fred', 'hello']);
+ * // => 'fred says hello'
+ *
+ * var numbers = Promise.all([
+ * Promise.resolve(40),
+ * Promise.resolve(36)
+ * ]);
+ *
+ * numbers.then(_.spread(function(x, y) {
+ * return x + y;
+ * }));
+ * // => a Promise of 76
+ */
+ function spread(func, start) {
+ if (typeof func != 'function') {
+ throw new TypeError(FUNC_ERROR_TEXT);
+ }
+ start = start == null ? 0 : nativeMax(toInteger(start), 0);
+ return baseRest(function(args) {
+ var array = args[start],
+ otherArgs = castSlice(args, 0, start);
+
+ if (array) {
+ arrayPush(otherArgs, array);
+ }
+ return apply(func, this, otherArgs);
+ });
+ }
+
+ /**
+ * Creates a throttled function that only invokes `func` at most once per
+ * every `wait` milliseconds. The throttled function comes with a `cancel`
+ * method to cancel delayed `func` invocations and a `flush` method to
+ * immediately invoke them. Provide `options` to indicate whether `func`
+ * should be invoked on the leading and/or trailing edge of the `wait`
+ * timeout. The `func` is invoked with the last arguments provided to the
+ * throttled function. Subsequent calls to the throttled function return the
+ * result of the last `func` invocation.
+ *
+ * **Note:** If `leading` and `trailing` options are `true`, `func` is
+ * invoked on the trailing edge of the timeout only if the throttled function
+ * is invoked more than once during the `wait` timeout.
+ *
+ * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
+ * until to the next tick, similar to `setTimeout` with a timeout of `0`.
+ *
+ * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
+ * for details over the differences between `_.throttle` and `_.debounce`.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Function
+ * @param {Function} func The function to throttle.
+ * @param {number} [wait=0] The number of milliseconds to throttle invocations to.
+ * @param {Object} [options={}] The options object.
+ * @param {boolean} [options.leading=true]
+ * Specify invoking on the leading edge of the timeout.
+ * @param {boolean} [options.trailing=true]
+ * Specify invoking on the trailing edge of the timeout.
+ * @returns {Function} Returns the new throttled function.
+ * @example
+ *
+ * // Avoid excessively updating the position while scrolling.
+ * jQuery(window).on('scroll', _.throttle(updatePosition, 100));
+ *
+ * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.
+ * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });
+ * jQuery(element).on('click', throttled);
+ *
+ * // Cancel the trailing throttled invocation.
+ * jQuery(window).on('popstate', throttled.cancel);
+ */
+ function throttle(func, wait, options) {
+ var leading = true,
+ trailing = true;
+
+ if (typeof func != 'function') {
+ throw new TypeError(FUNC_ERROR_TEXT);
+ }
+ if (isObject(options)) {
+ leading = 'leading' in options ? !!options.leading : leading;
+ trailing = 'trailing' in options ? !!options.trailing : trailing;
+ }
+ return debounce(func, wait, {
+ 'leading': leading,
+ 'maxWait': wait,
+ 'trailing': trailing
+ });
+ }
+
+ /**
+ * Creates a function that accepts up to one argument, ignoring any
+ * additional arguments.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Function
+ * @param {Function} func The function to cap arguments for.
+ * @returns {Function} Returns the new capped function.
+ * @example
+ *
+ * _.map(['6', '8', '10'], _.unary(parseInt));
+ * // => [6, 8, 10]
+ */
+ function unary(func) {
+ return ary(func, 1);
+ }
+
+ /**
+ * Creates a function that provides `value` to `wrapper` as its first
+ * argument. Any additional arguments provided to the function are appended
+ * to those provided to the `wrapper`. The wrapper is invoked with the `this`
+ * binding of the created function.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Function
+ * @param {*} value The value to wrap.
+ * @param {Function} [wrapper=identity] The wrapper function.
+ * @returns {Function} Returns the new function.
+ * @example
+ *
+ * var p = _.wrap(_.escape, function(func, text) {
+ * return '' + func(text) + '
';
+ * });
+ *
+ * p('fred, barney, & pebbles');
+ * // => 'fred, barney, & pebbles
'
+ */
+ function wrap(value, wrapper) {
+ return partial(castFunction(wrapper), value);
+ }
+
+ /*------------------------------------------------------------------------*/
+
+ /**
+ * Casts `value` as an array if it's not one.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.4.0
+ * @category Lang
+ * @param {*} value The value to inspect.
+ * @returns {Array} Returns the cast array.
+ * @example
+ *
+ * _.castArray(1);
+ * // => [1]
+ *
+ * _.castArray({ 'a': 1 });
+ * // => [{ 'a': 1 }]
+ *
+ * _.castArray('abc');
+ * // => ['abc']
+ *
+ * _.castArray(null);
+ * // => [null]
+ *
+ * _.castArray(undefined);
+ * // => [undefined]
+ *
+ * _.castArray();
+ * // => []
+ *
+ * var array = [1, 2, 3];
+ * console.log(_.castArray(array) === array);
+ * // => true
+ */
+ function castArray() {
+ if (!arguments.length) {
+ return [];
+ }
+ var value = arguments[0];
+ return isArray(value) ? value : [value];
+ }
+
+ /**
+ * Creates a shallow clone of `value`.
+ *
+ * **Note:** This method is loosely based on the
+ * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)
+ * and supports cloning arrays, array buffers, booleans, date objects, maps,
+ * numbers, `Object` objects, regexes, sets, strings, symbols, and typed
+ * arrays. The own enumerable properties of `arguments` objects are cloned
+ * as plain objects. An empty object is returned for uncloneable values such
+ * as error objects, functions, DOM nodes, and WeakMaps.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to clone.
+ * @returns {*} Returns the cloned value.
+ * @see _.cloneDeep
+ * @example
+ *
+ * var objects = [{ 'a': 1 }, { 'b': 2 }];
+ *
+ * var shallow = _.clone(objects);
+ * console.log(shallow[0] === objects[0]);
+ * // => true
+ */
+ function clone(value) {
+ return baseClone(value, CLONE_SYMBOLS_FLAG);
+ }
+
+ /**
+ * This method is like `_.clone` except that it accepts `customizer` which
+ * is invoked to produce the cloned value. If `customizer` returns `undefined`,
+ * cloning is handled by the method instead. The `customizer` is invoked with
+ * up to four arguments; (value [, index|key, object, stack]).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to clone.
+ * @param {Function} [customizer] The function to customize cloning.
+ * @returns {*} Returns the cloned value.
+ * @see _.cloneDeepWith
+ * @example
+ *
+ * function customizer(value) {
+ * if (_.isElement(value)) {
+ * return value.cloneNode(false);
+ * }
+ * }
+ *
+ * var el = _.cloneWith(document.body, customizer);
+ *
+ * console.log(el === document.body);
+ * // => false
+ * console.log(el.nodeName);
+ * // => 'BODY'
+ * console.log(el.childNodes.length);
+ * // => 0
+ */
+ function cloneWith(value, customizer) {
+ customizer = typeof customizer == 'function' ? customizer : undefined;
+ return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);
+ }
+
+ /**
+ * This method is like `_.clone` except that it recursively clones `value`.
+ *
+ * @static
+ * @memberOf _
+ * @since 1.0.0
+ * @category Lang
+ * @param {*} value The value to recursively clone.
+ * @returns {*} Returns the deep cloned value.
+ * @see _.clone
+ * @example
+ *
+ * var objects = [{ 'a': 1 }, { 'b': 2 }];
+ *
+ * var deep = _.cloneDeep(objects);
+ * console.log(deep[0] === objects[0]);
+ * // => false
+ */
+ function cloneDeep(value) {
+ return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);
+ }
+
+ /**
+ * This method is like `_.cloneWith` except that it recursively clones `value`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to recursively clone.
+ * @param {Function} [customizer] The function to customize cloning.
+ * @returns {*} Returns the deep cloned value.
+ * @see _.cloneWith
+ * @example
+ *
+ * function customizer(value) {
+ * if (_.isElement(value)) {
+ * return value.cloneNode(true);
+ * }
+ * }
+ *
+ * var el = _.cloneDeepWith(document.body, customizer);
+ *
+ * console.log(el === document.body);
+ * // => false
+ * console.log(el.nodeName);
+ * // => 'BODY'
+ * console.log(el.childNodes.length);
+ * // => 20
+ */
+ function cloneDeepWith(value, customizer) {
+ customizer = typeof customizer == 'function' ? customizer : undefined;
+ return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);
+ }
+
+ /**
+ * Checks if `object` conforms to `source` by invoking the predicate
+ * properties of `source` with the corresponding property values of `object`.
+ *
+ * **Note:** This method is equivalent to `_.conforms` when `source` is
+ * partially applied.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.14.0
+ * @category Lang
+ * @param {Object} object The object to inspect.
+ * @param {Object} source The object of property predicates to conform to.
+ * @returns {boolean} Returns `true` if `object` conforms, else `false`.
+ * @example
+ *
+ * var object = { 'a': 1, 'b': 2 };
+ *
+ * _.conformsTo(object, { 'b': function(n) { return n > 1; } });
+ * // => true
+ *
+ * _.conformsTo(object, { 'b': function(n) { return n > 2; } });
+ * // => false
+ */
+ function conformsTo(object, source) {
+ return source == null || baseConformsTo(object, source, keys(source));
+ }
+
+ /**
+ * Performs a
+ * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
+ * comparison between two values to determine if they are equivalent.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to compare.
+ * @param {*} other The other value to compare.
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
+ * @example
+ *
+ * var object = { 'a': 1 };
+ * var other = { 'a': 1 };
+ *
+ * _.eq(object, object);
+ * // => true
+ *
+ * _.eq(object, other);
+ * // => false
+ *
+ * _.eq('a', 'a');
+ * // => true
+ *
+ * _.eq('a', Object('a'));
+ * // => false
+ *
+ * _.eq(NaN, NaN);
+ * // => true
+ */
+ function eq(value, other) {
+ return value === other || (value !== value && other !== other);
+ }
+
+ /**
+ * Checks if `value` is greater than `other`.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.9.0
+ * @category Lang
+ * @param {*} value The value to compare.
+ * @param {*} other The other value to compare.
+ * @returns {boolean} Returns `true` if `value` is greater than `other`,
+ * else `false`.
+ * @see _.lt
+ * @example
+ *
+ * _.gt(3, 1);
+ * // => true
+ *
+ * _.gt(3, 3);
+ * // => false
+ *
+ * _.gt(1, 3);
+ * // => false
+ */
+ var gt = createRelationalOperation(baseGt);
+
+ /**
+ * Checks if `value` is greater than or equal to `other`.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.9.0
+ * @category Lang
+ * @param {*} value The value to compare.
+ * @param {*} other The other value to compare.
+ * @returns {boolean} Returns `true` if `value` is greater than or equal to
+ * `other`, else `false`.
+ * @see _.lte
+ * @example
+ *
+ * _.gte(3, 1);
+ * // => true
+ *
+ * _.gte(3, 3);
+ * // => true
+ *
+ * _.gte(1, 3);
+ * // => false
+ */
+ var gte = createRelationalOperation(function(value, other) {
+ return value >= other;
+ });
+
+ /**
+ * Checks if `value` is likely an `arguments` object.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an `arguments` object,
+ * else `false`.
+ * @example
+ *
+ * _.isArguments(function() { return arguments; }());
+ * // => true
+ *
+ * _.isArguments([1, 2, 3]);
+ * // => false
+ */
+ var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {
+ return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&
+ !propertyIsEnumerable.call(value, 'callee');
+ };
+
+ /**
+ * Checks if `value` is classified as an `Array` object.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an array, else `false`.
+ * @example
+ *
+ * _.isArray([1, 2, 3]);
+ * // => true
+ *
+ * _.isArray(document.body.children);
+ * // => false
+ *
+ * _.isArray('abc');
+ * // => false
+ *
+ * _.isArray(_.noop);
+ * // => false
+ */
+ var isArray = Array.isArray;
+
+ /**
+ * Checks if `value` is classified as an `ArrayBuffer` object.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.3.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.
+ * @example
+ *
+ * _.isArrayBuffer(new ArrayBuffer(2));
+ * // => true
+ *
+ * _.isArrayBuffer(new Array(2));
+ * // => false
+ */
+ var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;
+
+ /**
+ * Checks if `value` is array-like. A value is considered array-like if it's
+ * not a function and has a `value.length` that's an integer greater than or
+ * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
+ * @example
+ *
+ * _.isArrayLike([1, 2, 3]);
+ * // => true
+ *
+ * _.isArrayLike(document.body.children);
+ * // => true
+ *
+ * _.isArrayLike('abc');
+ * // => true
+ *
+ * _.isArrayLike(_.noop);
+ * // => false
+ */
+ function isArrayLike(value) {
+ return value != null && isLength(value.length) && !isFunction(value);
+ }
+
+ /**
+ * This method is like `_.isArrayLike` except that it also checks if `value`
+ * is an object.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an array-like object,
+ * else `false`.
+ * @example
+ *
+ * _.isArrayLikeObject([1, 2, 3]);
+ * // => true
+ *
+ * _.isArrayLikeObject(document.body.children);
+ * // => true
+ *
+ * _.isArrayLikeObject('abc');
+ * // => false
+ *
+ * _.isArrayLikeObject(_.noop);
+ * // => false
+ */
+ function isArrayLikeObject(value) {
+ return isObjectLike(value) && isArrayLike(value);
+ }
+
+ /**
+ * Checks if `value` is classified as a boolean primitive or object.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.
+ * @example
+ *
+ * _.isBoolean(false);
+ * // => true
+ *
+ * _.isBoolean(null);
+ * // => false
+ */
+ function isBoolean(value) {
+ return value === true || value === false ||
+ (isObjectLike(value) && baseGetTag(value) == boolTag);
+ }
+
+ /**
+ * Checks if `value` is a buffer.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.3.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
+ * @example
+ *
+ * _.isBuffer(new Buffer(2));
+ * // => true
+ *
+ * _.isBuffer(new Uint8Array(2));
+ * // => false
+ */
+ var isBuffer = nativeIsBuffer || stubFalse;
+
+ /**
+ * Checks if `value` is classified as a `Date` object.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a date object, else `false`.
+ * @example
+ *
+ * _.isDate(new Date);
+ * // => true
+ *
+ * _.isDate('Mon April 23 2012');
+ * // => false
+ */
+ var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;
+
+ /**
+ * Checks if `value` is likely a DOM element.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.
+ * @example
+ *
+ * _.isElement(document.body);
+ * // => true
+ *
+ * _.isElement('');
+ * // => false
+ */
+ function isElement(value) {
+ return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);
+ }
+
+ /**
+ * Checks if `value` is an empty object, collection, map, or set.
+ *
+ * Objects are considered empty if they have no own enumerable string keyed
+ * properties.
+ *
+ * Array-like values such as `arguments` objects, arrays, buffers, strings, or
+ * jQuery-like collections are considered empty if they have a `length` of `0`.
+ * Similarly, maps and sets are considered empty if they have a `size` of `0`.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is empty, else `false`.
+ * @example
+ *
+ * _.isEmpty(null);
+ * // => true
+ *
+ * _.isEmpty(true);
+ * // => true
+ *
+ * _.isEmpty(1);
+ * // => true
+ *
+ * _.isEmpty([1, 2, 3]);
+ * // => false
+ *
+ * _.isEmpty({ 'a': 1 });
+ * // => false
+ */
+ function isEmpty(value) {
+ if (value == null) {
+ return true;
+ }
+ if (isArrayLike(value) &&
+ (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||
+ isBuffer(value) || isTypedArray(value) || isArguments(value))) {
+ return !value.length;
+ }
+ var tag = getTag(value);
+ if (tag == mapTag || tag == setTag) {
+ return !value.size;
+ }
+ if (isPrototype(value)) {
+ return !baseKeys(value).length;
+ }
+ for (var key in value) {
+ if (hasOwnProperty.call(value, key)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Performs a deep comparison between two values to determine if they are
+ * equivalent.
+ *
+ * **Note:** This method supports comparing arrays, array buffers, booleans,
+ * date objects, error objects, maps, numbers, `Object` objects, regexes,
+ * sets, strings, symbols, and typed arrays. `Object` objects are compared
+ * by their own, not inherited, enumerable properties. Functions and DOM
+ * nodes are compared by strict equality, i.e. `===`.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to compare.
+ * @param {*} other The other value to compare.
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
+ * @example
+ *
+ * var object = { 'a': 1 };
+ * var other = { 'a': 1 };
+ *
+ * _.isEqual(object, other);
+ * // => true
+ *
+ * object === other;
+ * // => false
+ */
+ function isEqual(value, other) {
+ return baseIsEqual(value, other);
+ }
+
+ /**
+ * This method is like `_.isEqual` except that it accepts `customizer` which
+ * is invoked to compare values. If `customizer` returns `undefined`, comparisons
+ * are handled by the method instead. The `customizer` is invoked with up to
+ * six arguments: (objValue, othValue [, index|key, object, other, stack]).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to compare.
+ * @param {*} other The other value to compare.
+ * @param {Function} [customizer] The function to customize comparisons.
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
+ * @example
+ *
+ * function isGreeting(value) {
+ * return /^h(?:i|ello)$/.test(value);
+ * }
+ *
+ * function customizer(objValue, othValue) {
+ * if (isGreeting(objValue) && isGreeting(othValue)) {
+ * return true;
+ * }
+ * }
+ *
+ * var array = ['hello', 'goodbye'];
+ * var other = ['hi', 'goodbye'];
+ *
+ * _.isEqualWith(array, other, customizer);
+ * // => true
+ */
+ function isEqualWith(value, other, customizer) {
+ customizer = typeof customizer == 'function' ? customizer : undefined;
+ var result = customizer ? customizer(value, other) : undefined;
+ return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;
+ }
+
+ /**
+ * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,
+ * `SyntaxError`, `TypeError`, or `URIError` object.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an error object, else `false`.
+ * @example
+ *
+ * _.isError(new Error);
+ * // => true
+ *
+ * _.isError(Error);
+ * // => false
+ */
+ function isError(value) {
+ if (!isObjectLike(value)) {
+ return false;
+ }
+ var tag = baseGetTag(value);
+ return tag == errorTag || tag == domExcTag ||
+ (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));
+ }
+
+ /**
+ * Checks if `value` is a finite primitive number.
+ *
+ * **Note:** This method is based on
+ * [`Number.isFinite`](https://mdn.io/Number/isFinite).
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.
+ * @example
+ *
+ * _.isFinite(3);
+ * // => true
+ *
+ * _.isFinite(Number.MIN_VALUE);
+ * // => true
+ *
+ * _.isFinite(Infinity);
+ * // => false
+ *
+ * _.isFinite('3');
+ * // => false
+ */
+ function isFinite(value) {
+ return typeof value == 'number' && nativeIsFinite(value);
+ }
+
+ /**
+ * Checks if `value` is classified as a `Function` object.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a function, else `false`.
+ * @example
+ *
+ * _.isFunction(_);
+ * // => true
+ *
+ * _.isFunction(/abc/);
+ * // => false
+ */
+ function isFunction(value) {
+ if (!isObject(value)) {
+ return false;
+ }
+ // The use of `Object#toString` avoids issues with the `typeof` operator
+ // in Safari 9 which returns 'object' for typed arrays and other constructors.
+ var tag = baseGetTag(value);
+ return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
+ }
+
+ /**
+ * Checks if `value` is an integer.
+ *
+ * **Note:** This method is based on
+ * [`Number.isInteger`](https://mdn.io/Number/isInteger).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an integer, else `false`.
+ * @example
+ *
+ * _.isInteger(3);
+ * // => true
+ *
+ * _.isInteger(Number.MIN_VALUE);
+ * // => false
+ *
+ * _.isInteger(Infinity);
+ * // => false
+ *
+ * _.isInteger('3');
+ * // => false
+ */
+ function isInteger(value) {
+ return typeof value == 'number' && value == toInteger(value);
+ }
+
+ /**
+ * Checks if `value` is a valid array-like length.
+ *
+ * **Note:** This method is loosely based on
+ * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
+ * @example
+ *
+ * _.isLength(3);
+ * // => true
+ *
+ * _.isLength(Number.MIN_VALUE);
+ * // => false
+ *
+ * _.isLength(Infinity);
+ * // => false
+ *
+ * _.isLength('3');
+ * // => false
+ */
+ function isLength(value) {
+ return typeof value == 'number' &&
+ value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
+ }
+
+ /**
+ * Checks if `value` is the
+ * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
+ * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
+ * @example
+ *
+ * _.isObject({});
+ * // => true
+ *
+ * _.isObject([1, 2, 3]);
+ * // => true
+ *
+ * _.isObject(_.noop);
+ * // => true
+ *
+ * _.isObject(null);
+ * // => false
+ */
+ function isObject(value) {
+ var type = typeof value;
+ return value != null && (type == 'object' || type == 'function');
+ }
+
+ /**
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
+ * and has a `typeof` result of "object".
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
+ * @example
+ *
+ * _.isObjectLike({});
+ * // => true
+ *
+ * _.isObjectLike([1, 2, 3]);
+ * // => true
+ *
+ * _.isObjectLike(_.noop);
+ * // => false
+ *
+ * _.isObjectLike(null);
+ * // => false
+ */
+ function isObjectLike(value) {
+ return value != null && typeof value == 'object';
+ }
+
+ /**
+ * Checks if `value` is classified as a `Map` object.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.3.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a map, else `false`.
+ * @example
+ *
+ * _.isMap(new Map);
+ * // => true
+ *
+ * _.isMap(new WeakMap);
+ * // => false
+ */
+ var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;
+
+ /**
+ * Performs a partial deep comparison between `object` and `source` to
+ * determine if `object` contains equivalent property values.
+ *
+ * **Note:** This method is equivalent to `_.matches` when `source` is
+ * partially applied.
+ *
+ * Partial comparisons will match empty array and empty object `source`
+ * values against any array or object value, respectively. See `_.isEqual`
+ * for a list of supported value comparisons.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category Lang
+ * @param {Object} object The object to inspect.
+ * @param {Object} source The object of property values to match.
+ * @returns {boolean} Returns `true` if `object` is a match, else `false`.
+ * @example
+ *
+ * var object = { 'a': 1, 'b': 2 };
+ *
+ * _.isMatch(object, { 'b': 2 });
+ * // => true
+ *
+ * _.isMatch(object, { 'b': 1 });
+ * // => false
+ */
+ function isMatch(object, source) {
+ return object === source || baseIsMatch(object, source, getMatchData(source));
+ }
+
+ /**
+ * This method is like `_.isMatch` except that it accepts `customizer` which
+ * is invoked to compare values. If `customizer` returns `undefined`, comparisons
+ * are handled by the method instead. The `customizer` is invoked with five
+ * arguments: (objValue, srcValue, index|key, object, source).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {Object} object The object to inspect.
+ * @param {Object} source The object of property values to match.
+ * @param {Function} [customizer] The function to customize comparisons.
+ * @returns {boolean} Returns `true` if `object` is a match, else `false`.
+ * @example
+ *
+ * function isGreeting(value) {
+ * return /^h(?:i|ello)$/.test(value);
+ * }
+ *
+ * function customizer(objValue, srcValue) {
+ * if (isGreeting(objValue) && isGreeting(srcValue)) {
+ * return true;
+ * }
+ * }
+ *
+ * var object = { 'greeting': 'hello' };
+ * var source = { 'greeting': 'hi' };
+ *
+ * _.isMatchWith(object, source, customizer);
+ * // => true
+ */
+ function isMatchWith(object, source, customizer) {
+ customizer = typeof customizer == 'function' ? customizer : undefined;
+ return baseIsMatch(object, source, getMatchData(source), customizer);
+ }
+
+ /**
+ * Checks if `value` is `NaN`.
+ *
+ * **Note:** This method is based on
+ * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as
+ * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for
+ * `undefined` and other non-number values.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.
+ * @example
+ *
+ * _.isNaN(NaN);
+ * // => true
+ *
+ * _.isNaN(new Number(NaN));
+ * // => true
+ *
+ * isNaN(undefined);
+ * // => true
+ *
+ * _.isNaN(undefined);
+ * // => false
+ */
+ function isNaN(value) {
+ // An `NaN` primitive is the only value that is not equal to itself.
+ // Perform the `toStringTag` check first to avoid errors with some
+ // ActiveX objects in IE.
+ return isNumber(value) && value != +value;
+ }
+
+ /**
+ * Checks if `value` is a pristine native function.
+ *
+ * **Note:** This method can't reliably detect native functions in the presence
+ * of the core-js package because core-js circumvents this kind of detection.
+ * Despite multiple requests, the core-js maintainer has made it clear: any
+ * attempt to fix the detection will be obstructed. As a result, we're left
+ * with little choice but to throw an error. Unfortunately, this also affects
+ * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),
+ * which rely on core-js.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a native function,
+ * else `false`.
+ * @example
+ *
+ * _.isNative(Array.prototype.push);
+ * // => true
+ *
+ * _.isNative(_);
+ * // => false
+ */
+ function isNative(value) {
+ if (isMaskable(value)) {
+ throw new Error(CORE_ERROR_TEXT);
+ }
+ return baseIsNative(value);
+ }
+
+ /**
+ * Checks if `value` is `null`.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is `null`, else `false`.
+ * @example
+ *
+ * _.isNull(null);
+ * // => true
+ *
+ * _.isNull(void 0);
+ * // => false
+ */
+ function isNull(value) {
+ return value === null;
+ }
+
+ /**
+ * Checks if `value` is `null` or `undefined`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is nullish, else `false`.
+ * @example
+ *
+ * _.isNil(null);
+ * // => true
+ *
+ * _.isNil(void 0);
+ * // => true
+ *
+ * _.isNil(NaN);
+ * // => false
+ */
+ function isNil(value) {
+ return value == null;
+ }
+
+ /**
+ * Checks if `value` is classified as a `Number` primitive or object.
+ *
+ * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are
+ * classified as numbers, use the `_.isFinite` method.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a number, else `false`.
+ * @example
+ *
+ * _.isNumber(3);
+ * // => true
+ *
+ * _.isNumber(Number.MIN_VALUE);
+ * // => true
+ *
+ * _.isNumber(Infinity);
+ * // => true
+ *
+ * _.isNumber('3');
+ * // => false
+ */
+ function isNumber(value) {
+ return typeof value == 'number' ||
+ (isObjectLike(value) && baseGetTag(value) == numberTag);
+ }
+
+ /**
+ * Checks if `value` is a plain object, that is, an object created by the
+ * `Object` constructor or one with a `[[Prototype]]` of `null`.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.8.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
+ * @example
+ *
+ * function Foo() {
+ * this.a = 1;
+ * }
+ *
+ * _.isPlainObject(new Foo);
+ * // => false
+ *
+ * _.isPlainObject([1, 2, 3]);
+ * // => false
+ *
+ * _.isPlainObject({ 'x': 0, 'y': 0 });
+ * // => true
+ *
+ * _.isPlainObject(Object.create(null));
+ * // => true
+ */
+ function isPlainObject(value) {
+ if (!isObjectLike(value) || baseGetTag(value) != objectTag) {
+ return false;
+ }
+ var proto = getPrototype(value);
+ if (proto === null) {
+ return true;
+ }
+ var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;
+ return typeof Ctor == 'function' && Ctor instanceof Ctor &&
+ funcToString.call(Ctor) == objectCtorString;
+ }
+
+ /**
+ * Checks if `value` is classified as a `RegExp` object.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.
+ * @example
+ *
+ * _.isRegExp(/abc/);
+ * // => true
+ *
+ * _.isRegExp('/abc/');
+ * // => false
+ */
+ var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;
+
+ /**
+ * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754
+ * double precision number which isn't the result of a rounded unsafe integer.
+ *
+ * **Note:** This method is based on
+ * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.
+ * @example
+ *
+ * _.isSafeInteger(3);
+ * // => true
+ *
+ * _.isSafeInteger(Number.MIN_VALUE);
+ * // => false
+ *
+ * _.isSafeInteger(Infinity);
+ * // => false
+ *
+ * _.isSafeInteger('3');
+ * // => false
+ */
+ function isSafeInteger(value) {
+ return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;
+ }
+
+ /**
+ * Checks if `value` is classified as a `Set` object.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.3.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a set, else `false`.
+ * @example
+ *
+ * _.isSet(new Set);
+ * // => true
+ *
+ * _.isSet(new WeakSet);
+ * // => false
+ */
+ var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;
+
+ /**
+ * Checks if `value` is classified as a `String` primitive or object.
+ *
+ * @static
+ * @since 0.1.0
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a string, else `false`.
+ * @example
+ *
+ * _.isString('abc');
+ * // => true
+ *
+ * _.isString(1);
+ * // => false
+ */
+ function isString(value) {
+ return typeof value == 'string' ||
+ (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);
+ }
+
+ /**
+ * Checks if `value` is classified as a `Symbol` primitive or object.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
+ * @example
+ *
+ * _.isSymbol(Symbol.iterator);
+ * // => true
+ *
+ * _.isSymbol('abc');
+ * // => false
+ */
+ function isSymbol(value) {
+ return typeof value == 'symbol' ||
+ (isObjectLike(value) && baseGetTag(value) == symbolTag);
+ }
+
+ /**
+ * Checks if `value` is classified as a typed array.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
+ * @example
+ *
+ * _.isTypedArray(new Uint8Array);
+ * // => true
+ *
+ * _.isTypedArray([]);
+ * // => false
+ */
+ var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
+
+ /**
+ * Checks if `value` is `undefined`.
+ *
+ * @static
+ * @since 0.1.0
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.
+ * @example
+ *
+ * _.isUndefined(void 0);
+ * // => true
+ *
+ * _.isUndefined(null);
+ * // => false
+ */
+ function isUndefined(value) {
+ return value === undefined;
+ }
+
+ /**
+ * Checks if `value` is classified as a `WeakMap` object.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.3.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.
+ * @example
+ *
+ * _.isWeakMap(new WeakMap);
+ * // => true
+ *
+ * _.isWeakMap(new Map);
+ * // => false
+ */
+ function isWeakMap(value) {
+ return isObjectLike(value) && getTag(value) == weakMapTag;
+ }
+
+ /**
+ * Checks if `value` is classified as a `WeakSet` object.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.3.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a weak set, else `false`.
+ * @example
+ *
+ * _.isWeakSet(new WeakSet);
+ * // => true
+ *
+ * _.isWeakSet(new Set);
+ * // => false
+ */
+ function isWeakSet(value) {
+ return isObjectLike(value) && baseGetTag(value) == weakSetTag;
+ }
+
+ /**
+ * Checks if `value` is less than `other`.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.9.0
+ * @category Lang
+ * @param {*} value The value to compare.
+ * @param {*} other The other value to compare.
+ * @returns {boolean} Returns `true` if `value` is less than `other`,
+ * else `false`.
+ * @see _.gt
+ * @example
+ *
+ * _.lt(1, 3);
+ * // => true
+ *
+ * _.lt(3, 3);
+ * // => false
+ *
+ * _.lt(3, 1);
+ * // => false
+ */
+ var lt = createRelationalOperation(baseLt);
+
+ /**
+ * Checks if `value` is less than or equal to `other`.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.9.0
+ * @category Lang
+ * @param {*} value The value to compare.
+ * @param {*} other The other value to compare.
+ * @returns {boolean} Returns `true` if `value` is less than or equal to
+ * `other`, else `false`.
+ * @see _.gte
+ * @example
+ *
+ * _.lte(1, 3);
+ * // => true
+ *
+ * _.lte(3, 3);
+ * // => true
+ *
+ * _.lte(3, 1);
+ * // => false
+ */
+ var lte = createRelationalOperation(function(value, other) {
+ return value <= other;
+ });
+
+ /**
+ * Converts `value` to an array.
+ *
+ * @static
+ * @since 0.1.0
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to convert.
+ * @returns {Array} Returns the converted array.
+ * @example
+ *
+ * _.toArray({ 'a': 1, 'b': 2 });
+ * // => [1, 2]
+ *
+ * _.toArray('abc');
+ * // => ['a', 'b', 'c']
+ *
+ * _.toArray(1);
+ * // => []
+ *
+ * _.toArray(null);
+ * // => []
+ */
+ function toArray(value) {
+ if (!value) {
+ return [];
+ }
+ if (isArrayLike(value)) {
+ return isString(value) ? stringToArray(value) : copyArray(value);
+ }
+ if (symIterator && value[symIterator]) {
+ return iteratorToArray(value[symIterator]());
+ }
+ var tag = getTag(value),
+ func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);
+
+ return func(value);
+ }
+
+ /**
+ * Converts `value` to a finite number.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.12.0
+ * @category Lang
+ * @param {*} value The value to convert.
+ * @returns {number} Returns the converted number.
+ * @example
+ *
+ * _.toFinite(3.2);
+ * // => 3.2
+ *
+ * _.toFinite(Number.MIN_VALUE);
+ * // => 5e-324
+ *
+ * _.toFinite(Infinity);
+ * // => 1.7976931348623157e+308
+ *
+ * _.toFinite('3.2');
+ * // => 3.2
+ */
+ function toFinite(value) {
+ if (!value) {
+ return value === 0 ? value : 0;
+ }
+ value = toNumber(value);
+ if (value === INFINITY || value === -INFINITY) {
+ var sign = (value < 0 ? -1 : 1);
+ return sign * MAX_INTEGER;
+ }
+ return value === value ? value : 0;
+ }
+
+ /**
+ * Converts `value` to an integer.
+ *
+ * **Note:** This method is loosely based on
+ * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to convert.
+ * @returns {number} Returns the converted integer.
+ * @example
+ *
+ * _.toInteger(3.2);
+ * // => 3
+ *
+ * _.toInteger(Number.MIN_VALUE);
+ * // => 0
+ *
+ * _.toInteger(Infinity);
+ * // => 1.7976931348623157e+308
+ *
+ * _.toInteger('3.2');
+ * // => 3
+ */
+ function toInteger(value) {
+ var result = toFinite(value),
+ remainder = result % 1;
+
+ return result === result ? (remainder ? result - remainder : result) : 0;
+ }
+
+ /**
+ * Converts `value` to an integer suitable for use as the length of an
+ * array-like object.
+ *
+ * **Note:** This method is based on
+ * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to convert.
+ * @returns {number} Returns the converted integer.
+ * @example
+ *
+ * _.toLength(3.2);
+ * // => 3
+ *
+ * _.toLength(Number.MIN_VALUE);
+ * // => 0
+ *
+ * _.toLength(Infinity);
+ * // => 4294967295
+ *
+ * _.toLength('3.2');
+ * // => 3
+ */
+ function toLength(value) {
+ return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;
+ }
+
+ /**
+ * Converts `value` to a number.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to process.
+ * @returns {number} Returns the number.
+ * @example
+ *
+ * _.toNumber(3.2);
+ * // => 3.2
+ *
+ * _.toNumber(Number.MIN_VALUE);
+ * // => 5e-324
+ *
+ * _.toNumber(Infinity);
+ * // => Infinity
+ *
+ * _.toNumber('3.2');
+ * // => 3.2
+ */
+ function toNumber(value) {
+ if (typeof value == 'number') {
+ return value;
+ }
+ if (isSymbol(value)) {
+ return NAN;
+ }
+ if (isObject(value)) {
+ var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
+ value = isObject(other) ? (other + '') : other;
+ }
+ if (typeof value != 'string') {
+ return value === 0 ? value : +value;
+ }
+ value = baseTrim(value);
+ var isBinary = reIsBinary.test(value);
+ return (isBinary || reIsOctal.test(value))
+ ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
+ : (reIsBadHex.test(value) ? NAN : +value);
+ }
+
+ /**
+ * Converts `value` to a plain object flattening inherited enumerable string
+ * keyed properties of `value` to own properties of the plain object.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category Lang
+ * @param {*} value The value to convert.
+ * @returns {Object} Returns the converted plain object.
+ * @example
+ *
+ * function Foo() {
+ * this.b = 2;
+ * }
+ *
+ * Foo.prototype.c = 3;
+ *
+ * _.assign({ 'a': 1 }, new Foo);
+ * // => { 'a': 1, 'b': 2 }
+ *
+ * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));
+ * // => { 'a': 1, 'b': 2, 'c': 3 }
+ */
+ function toPlainObject(value) {
+ return copyObject(value, keysIn(value));
+ }
+
+ /**
+ * Converts `value` to a safe integer. A safe integer can be compared and
+ * represented correctly.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to convert.
+ * @returns {number} Returns the converted integer.
+ * @example
+ *
+ * _.toSafeInteger(3.2);
+ * // => 3
+ *
+ * _.toSafeInteger(Number.MIN_VALUE);
+ * // => 0
+ *
+ * _.toSafeInteger(Infinity);
+ * // => 9007199254740991
+ *
+ * _.toSafeInteger('3.2');
+ * // => 3
+ */
+ function toSafeInteger(value) {
+ return value
+ ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER)
+ : (value === 0 ? value : 0);
+ }
+
+ /**
+ * Converts `value` to a string. An empty string is returned for `null`
+ * and `undefined` values. The sign of `-0` is preserved.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to convert.
+ * @returns {string} Returns the converted string.
+ * @example
+ *
+ * _.toString(null);
+ * // => ''
+ *
+ * _.toString(-0);
+ * // => '-0'
+ *
+ * _.toString([1, 2, 3]);
+ * // => '1,2,3'
+ */
+ function toString(value) {
+ return value == null ? '' : baseToString(value);
+ }
+
+ /*------------------------------------------------------------------------*/
+
+ /**
+ * Assigns own enumerable string keyed properties of source objects to the
+ * destination object. Source objects are applied from left to right.
+ * Subsequent sources overwrite property assignments of previous sources.
+ *
+ * **Note:** This method mutates `object` and is loosely based on
+ * [`Object.assign`](https://mdn.io/Object/assign).
+ *
+ * @static
+ * @memberOf _
+ * @since 0.10.0
+ * @category Object
+ * @param {Object} object The destination object.
+ * @param {...Object} [sources] The source objects.
+ * @returns {Object} Returns `object`.
+ * @see _.assignIn
+ * @example
+ *
+ * function Foo() {
+ * this.a = 1;
+ * }
+ *
+ * function Bar() {
+ * this.c = 3;
+ * }
+ *
+ * Foo.prototype.b = 2;
+ * Bar.prototype.d = 4;
+ *
+ * _.assign({ 'a': 0 }, new Foo, new Bar);
+ * // => { 'a': 1, 'c': 3 }
+ */
+ var assign = createAssigner(function(object, source) {
+ if (isPrototype(source) || isArrayLike(source)) {
+ copyObject(source, keys(source), object);
+ return;
+ }
+ for (var key in source) {
+ if (hasOwnProperty.call(source, key)) {
+ assignValue(object, key, source[key]);
+ }
+ }
+ });
+
+ /**
+ * This method is like `_.assign` except that it iterates over own and
+ * inherited source properties.
+ *
+ * **Note:** This method mutates `object`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @alias extend
+ * @category Object
+ * @param {Object} object The destination object.
+ * @param {...Object} [sources] The source objects.
+ * @returns {Object} Returns `object`.
+ * @see _.assign
+ * @example
+ *
+ * function Foo() {
+ * this.a = 1;
+ * }
+ *
+ * function Bar() {
+ * this.c = 3;
+ * }
+ *
+ * Foo.prototype.b = 2;
+ * Bar.prototype.d = 4;
+ *
+ * _.assignIn({ 'a': 0 }, new Foo, new Bar);
+ * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }
+ */
+ var assignIn = createAssigner(function(object, source) {
+ copyObject(source, keysIn(source), object);
+ });
+
+ /**
+ * This method is like `_.assignIn` except that it accepts `customizer`
+ * which is invoked to produce the assigned values. If `customizer` returns
+ * `undefined`, assignment is handled by the method instead. The `customizer`
+ * is invoked with five arguments: (objValue, srcValue, key, object, source).
+ *
+ * **Note:** This method mutates `object`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @alias extendWith
+ * @category Object
+ * @param {Object} object The destination object.
+ * @param {...Object} sources The source objects.
+ * @param {Function} [customizer] The function to customize assigned values.
+ * @returns {Object} Returns `object`.
+ * @see _.assignWith
+ * @example
+ *
+ * function customizer(objValue, srcValue) {
+ * return _.isUndefined(objValue) ? srcValue : objValue;
+ * }
+ *
+ * var defaults = _.partialRight(_.assignInWith, customizer);
+ *
+ * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
+ * // => { 'a': 1, 'b': 2 }
+ */
+ var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {
+ copyObject(source, keysIn(source), object, customizer);
+ });
+
+ /**
+ * This method is like `_.assign` except that it accepts `customizer`
+ * which is invoked to produce the assigned values. If `customizer` returns
+ * `undefined`, assignment is handled by the method instead. The `customizer`
+ * is invoked with five arguments: (objValue, srcValue, key, object, source).
+ *
+ * **Note:** This method mutates `object`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Object
+ * @param {Object} object The destination object.
+ * @param {...Object} sources The source objects.
+ * @param {Function} [customizer] The function to customize assigned values.
+ * @returns {Object} Returns `object`.
+ * @see _.assignInWith
+ * @example
+ *
+ * function customizer(objValue, srcValue) {
+ * return _.isUndefined(objValue) ? srcValue : objValue;
+ * }
+ *
+ * var defaults = _.partialRight(_.assignWith, customizer);
+ *
+ * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
+ * // => { 'a': 1, 'b': 2 }
+ */
+ var assignWith = createAssigner(function(object, source, srcIndex, customizer) {
+ copyObject(source, keys(source), object, customizer);
+ });
+
+ /**
+ * Creates an array of values corresponding to `paths` of `object`.
+ *
+ * @static
+ * @memberOf _
+ * @since 1.0.0
+ * @category Object
+ * @param {Object} object The object to iterate over.
+ * @param {...(string|string[])} [paths] The property paths to pick.
+ * @returns {Array} Returns the picked values.
+ * @example
+ *
+ * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };
+ *
+ * _.at(object, ['a[0].b.c', 'a[1]']);
+ * // => [3, 4]
+ */
+ var at = flatRest(baseAt);
+
+ /**
+ * Creates an object that inherits from the `prototype` object. If a
+ * `properties` object is given, its own enumerable string keyed properties
+ * are assigned to the created object.
+ *
+ * @static
+ * @memberOf _
+ * @since 2.3.0
+ * @category Object
+ * @param {Object} prototype The object to inherit from.
+ * @param {Object} [properties] The properties to assign to the object.
+ * @returns {Object} Returns the new object.
+ * @example
+ *
+ * function Shape() {
+ * this.x = 0;
+ * this.y = 0;
+ * }
+ *
+ * function Circle() {
+ * Shape.call(this);
+ * }
+ *
+ * Circle.prototype = _.create(Shape.prototype, {
+ * 'constructor': Circle
+ * });
+ *
+ * var circle = new Circle;
+ * circle instanceof Circle;
+ * // => true
+ *
+ * circle instanceof Shape;
+ * // => true
+ */
+ function create(prototype, properties) {
+ var result = baseCreate(prototype);
+ return properties == null ? result : baseAssign(result, properties);
+ }
+
+ /**
+ * Assigns own and inherited enumerable string keyed properties of source
+ * objects to the destination object for all destination properties that
+ * resolve to `undefined`. Source objects are applied from left to right.
+ * Once a property is set, additional values of the same property are ignored.
+ *
+ * **Note:** This method mutates `object`.
+ *
+ * @static
+ * @since 0.1.0
+ * @memberOf _
+ * @category Object
+ * @param {Object} object The destination object.
+ * @param {...Object} [sources] The source objects.
+ * @returns {Object} Returns `object`.
+ * @see _.defaultsDeep
+ * @example
+ *
+ * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
+ * // => { 'a': 1, 'b': 2 }
+ */
+ var defaults = baseRest(function(object, sources) {
+ object = Object(object);
+
+ var index = -1;
+ var length = sources.length;
+ var guard = length > 2 ? sources[2] : undefined;
+
+ if (guard && isIterateeCall(sources[0], sources[1], guard)) {
+ length = 1;
+ }
+
+ while (++index < length) {
+ var source = sources[index];
+ var props = keysIn(source);
+ var propsIndex = -1;
+ var propsLength = props.length;
+
+ while (++propsIndex < propsLength) {
+ var key = props[propsIndex];
+ var value = object[key];
+
+ if (value === undefined ||
+ (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {
+ object[key] = source[key];
+ }
+ }
+ }
+
+ return object;
+ });
+
+ /**
+ * This method is like `_.defaults` except that it recursively assigns
+ * default properties.
+ *
+ * **Note:** This method mutates `object`.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.10.0
+ * @category Object
+ * @param {Object} object The destination object.
+ * @param {...Object} [sources] The source objects.
+ * @returns {Object} Returns `object`.
+ * @see _.defaults
+ * @example
+ *
+ * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });
+ * // => { 'a': { 'b': 2, 'c': 3 } }
+ */
+ var defaultsDeep = baseRest(function(args) {
+ args.push(undefined, customDefaultsMerge);
+ return apply(mergeWith, undefined, args);
+ });
+
+ /**
+ * This method is like `_.find` except that it returns the key of the first
+ * element `predicate` returns truthy for instead of the element itself.
+ *
+ * @static
+ * @memberOf _
+ * @since 1.1.0
+ * @category Object
+ * @param {Object} object The object to inspect.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
+ * @returns {string|undefined} Returns the key of the matched element,
+ * else `undefined`.
+ * @example
+ *
+ * var users = {
+ * 'barney': { 'age': 36, 'active': true },
+ * 'fred': { 'age': 40, 'active': false },
+ * 'pebbles': { 'age': 1, 'active': true }
+ * };
+ *
+ * _.findKey(users, function(o) { return o.age < 40; });
+ * // => 'barney' (iteration order is not guaranteed)
+ *
+ * // The `_.matches` iteratee shorthand.
+ * _.findKey(users, { 'age': 1, 'active': true });
+ * // => 'pebbles'
+ *
+ * // The `_.matchesProperty` iteratee shorthand.
+ * _.findKey(users, ['active', false]);
+ * // => 'fred'
+ *
+ * // The `_.property` iteratee shorthand.
+ * _.findKey(users, 'active');
+ * // => 'barney'
+ */
+ function findKey(object, predicate) {
+ return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);
+ }
+
+ /**
+ * This method is like `_.findKey` except that it iterates over elements of
+ * a collection in the opposite order.
+ *
+ * @static
+ * @memberOf _
+ * @since 2.0.0
+ * @category Object
+ * @param {Object} object The object to inspect.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
+ * @returns {string|undefined} Returns the key of the matched element,
+ * else `undefined`.
+ * @example
+ *
+ * var users = {
+ * 'barney': { 'age': 36, 'active': true },
+ * 'fred': { 'age': 40, 'active': false },
+ * 'pebbles': { 'age': 1, 'active': true }
+ * };
+ *
+ * _.findLastKey(users, function(o) { return o.age < 40; });
+ * // => returns 'pebbles' assuming `_.findKey` returns 'barney'
+ *
+ * // The `_.matches` iteratee shorthand.
+ * _.findLastKey(users, { 'age': 36, 'active': true });
+ * // => 'barney'
+ *
+ * // The `_.matchesProperty` iteratee shorthand.
+ * _.findLastKey(users, ['active', false]);
+ * // => 'fred'
+ *
+ * // The `_.property` iteratee shorthand.
+ * _.findLastKey(users, 'active');
+ * // => 'pebbles'
+ */
+ function findLastKey(object, predicate) {
+ return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);
+ }
+
+ /**
+ * Iterates over own and inherited enumerable string keyed properties of an
+ * object and invokes `iteratee` for each property. The iteratee is invoked
+ * with three arguments: (value, key, object). Iteratee functions may exit
+ * iteration early by explicitly returning `false`.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.3.0
+ * @category Object
+ * @param {Object} object The object to iterate over.
+ * @param {Function} [iteratee=_.identity] The function invoked per iteration.
+ * @returns {Object} Returns `object`.
+ * @see _.forInRight
+ * @example
+ *
+ * function Foo() {
+ * this.a = 1;
+ * this.b = 2;
+ * }
+ *
+ * Foo.prototype.c = 3;
+ *
+ * _.forIn(new Foo, function(value, key) {
+ * console.log(key);
+ * });
+ * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).
+ */
+ function forIn(object, iteratee) {
+ return object == null
+ ? object
+ : baseFor(object, getIteratee(iteratee, 3), keysIn);
+ }
+
+ /**
+ * This method is like `_.forIn` except that it iterates over properties of
+ * `object` in the opposite order.
+ *
+ * @static
+ * @memberOf _
+ * @since 2.0.0
+ * @category Object
+ * @param {Object} object The object to iterate over.
+ * @param {Function} [iteratee=_.identity] The function invoked per iteration.
+ * @returns {Object} Returns `object`.
+ * @see _.forIn
+ * @example
+ *
+ * function Foo() {
+ * this.a = 1;
+ * this.b = 2;
+ * }
+ *
+ * Foo.prototype.c = 3;
+ *
+ * _.forInRight(new Foo, function(value, key) {
+ * console.log(key);
+ * });
+ * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.
+ */
+ function forInRight(object, iteratee) {
+ return object == null
+ ? object
+ : baseForRight(object, getIteratee(iteratee, 3), keysIn);
+ }
+
+ /**
+ * Iterates over own enumerable string keyed properties of an object and
+ * invokes `iteratee` for each property. The iteratee is invoked with three
+ * arguments: (value, key, object). Iteratee functions may exit iteration
+ * early by explicitly returning `false`.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.3.0
+ * @category Object
+ * @param {Object} object The object to iterate over.
+ * @param {Function} [iteratee=_.identity] The function invoked per iteration.
+ * @returns {Object} Returns `object`.
+ * @see _.forOwnRight
+ * @example
+ *
+ * function Foo() {
+ * this.a = 1;
+ * this.b = 2;
+ * }
+ *
+ * Foo.prototype.c = 3;
+ *
+ * _.forOwn(new Foo, function(value, key) {
+ * console.log(key);
+ * });
+ * // => Logs 'a' then 'b' (iteration order is not guaranteed).
+ */
+ function forOwn(object, iteratee) {
+ return object && baseForOwn(object, getIteratee(iteratee, 3));
+ }
+
+ /**
+ * This method is like `_.forOwn` except that it iterates over properties of
+ * `object` in the opposite order.
+ *
+ * @static
+ * @memberOf _
+ * @since 2.0.0
+ * @category Object
+ * @param {Object} object The object to iterate over.
+ * @param {Function} [iteratee=_.identity] The function invoked per iteration.
+ * @returns {Object} Returns `object`.
+ * @see _.forOwn
+ * @example
+ *
+ * function Foo() {
+ * this.a = 1;
+ * this.b = 2;
+ * }
+ *
+ * Foo.prototype.c = 3;
+ *
+ * _.forOwnRight(new Foo, function(value, key) {
+ * console.log(key);
+ * });
+ * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.
+ */
+ function forOwnRight(object, iteratee) {
+ return object && baseForOwnRight(object, getIteratee(iteratee, 3));
+ }
+
+ /**
+ * Creates an array of function property names from own enumerable properties
+ * of `object`.
+ *
+ * @static
+ * @since 0.1.0
+ * @memberOf _
+ * @category Object
+ * @param {Object} object The object to inspect.
+ * @returns {Array} Returns the function names.
+ * @see _.functionsIn
+ * @example
+ *
+ * function Foo() {
+ * this.a = _.constant('a');
+ * this.b = _.constant('b');
+ * }
+ *
+ * Foo.prototype.c = _.constant('c');
+ *
+ * _.functions(new Foo);
+ * // => ['a', 'b']
+ */
+ function functions(object) {
+ return object == null ? [] : baseFunctions(object, keys(object));
+ }
+
+ /**
+ * Creates an array of function property names from own and inherited
+ * enumerable properties of `object`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Object
+ * @param {Object} object The object to inspect.
+ * @returns {Array} Returns the function names.
+ * @see _.functions
+ * @example
+ *
+ * function Foo() {
+ * this.a = _.constant('a');
+ * this.b = _.constant('b');
+ * }
+ *
+ * Foo.prototype.c = _.constant('c');
+ *
+ * _.functionsIn(new Foo);
+ * // => ['a', 'b', 'c']
+ */
+ function functionsIn(object) {
+ return object == null ? [] : baseFunctions(object, keysIn(object));
+ }
+
+ /**
+ * Gets the value at `path` of `object`. If the resolved value is
+ * `undefined`, the `defaultValue` is returned in its place.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.7.0
+ * @category Object
+ * @param {Object} object The object to query.
+ * @param {Array|string} path The path of the property to get.
+ * @param {*} [defaultValue] The value returned for `undefined` resolved values.
+ * @returns {*} Returns the resolved value.
+ * @example
+ *
+ * var object = { 'a': [{ 'b': { 'c': 3 } }] };
+ *
+ * _.get(object, 'a[0].b.c');
+ * // => 3
+ *
+ * _.get(object, ['a', '0', 'b', 'c']);
+ * // => 3
+ *
+ * _.get(object, 'a.b.c', 'default');
+ * // => 'default'
+ */
+ function get(object, path, defaultValue) {
+ var result = object == null ? undefined : baseGet(object, path);
+ return result === undefined ? defaultValue : result;
+ }
+
+ /**
+ * Checks if `path` is a direct property of `object`.
+ *
+ * @static
+ * @since 0.1.0
+ * @memberOf _
+ * @category Object
+ * @param {Object} object The object to query.
+ * @param {Array|string} path The path to check.
+ * @returns {boolean} Returns `true` if `path` exists, else `false`.
+ * @example
+ *
+ * var object = { 'a': { 'b': 2 } };
+ * var other = _.create({ 'a': _.create({ 'b': 2 }) });
+ *
+ * _.has(object, 'a');
+ * // => true
+ *
+ * _.has(object, 'a.b');
+ * // => true
+ *
+ * _.has(object, ['a', 'b']);
+ * // => true
+ *
+ * _.has(other, 'a');
+ * // => false
+ */
+ function has(object, path) {
+ return object != null && hasPath(object, path, baseHas);
+ }
+
+ /**
+ * Checks if `path` is a direct or inherited property of `object`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Object
+ * @param {Object} object The object to query.
+ * @param {Array|string} path The path to check.
+ * @returns {boolean} Returns `true` if `path` exists, else `false`.
+ * @example
+ *
+ * var object = _.create({ 'a': _.create({ 'b': 2 }) });
+ *
+ * _.hasIn(object, 'a');
+ * // => true
+ *
+ * _.hasIn(object, 'a.b');
+ * // => true
+ *
+ * _.hasIn(object, ['a', 'b']);
+ * // => true
+ *
+ * _.hasIn(object, 'b');
+ * // => false
+ */
+ function hasIn(object, path) {
+ return object != null && hasPath(object, path, baseHasIn);
+ }
+
+ /**
+ * Creates an object composed of the inverted keys and values of `object`.
+ * If `object` contains duplicate values, subsequent values overwrite
+ * property assignments of previous values.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.7.0
+ * @category Object
+ * @param {Object} object The object to invert.
+ * @returns {Object} Returns the new inverted object.
+ * @example
+ *
+ * var object = { 'a': 1, 'b': 2, 'c': 1 };
+ *
+ * _.invert(object);
+ * // => { '1': 'c', '2': 'b' }
+ */
+ var invert = createInverter(function(result, value, key) {
+ if (value != null &&
+ typeof value.toString != 'function') {
+ value = nativeObjectToString.call(value);
+ }
+
+ result[value] = key;
+ }, constant(identity));
+
+ /**
+ * This method is like `_.invert` except that the inverted object is generated
+ * from the results of running each element of `object` thru `iteratee`. The
+ * corresponding inverted value of each inverted key is an array of keys
+ * responsible for generating the inverted value. The iteratee is invoked
+ * with one argument: (value).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.1.0
+ * @category Object
+ * @param {Object} object The object to invert.
+ * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
+ * @returns {Object} Returns the new inverted object.
+ * @example
+ *
+ * var object = { 'a': 1, 'b': 2, 'c': 1 };
+ *
+ * _.invertBy(object);
+ * // => { '1': ['a', 'c'], '2': ['b'] }
+ *
+ * _.invertBy(object, function(value) {
+ * return 'group' + value;
+ * });
+ * // => { 'group1': ['a', 'c'], 'group2': ['b'] }
+ */
+ var invertBy = createInverter(function(result, value, key) {
+ if (value != null &&
+ typeof value.toString != 'function') {
+ value = nativeObjectToString.call(value);
+ }
+
+ if (hasOwnProperty.call(result, value)) {
+ result[value].push(key);
+ } else {
+ result[value] = [key];
+ }
+ }, getIteratee);
+
+ /**
+ * Invokes the method at `path` of `object`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Object
+ * @param {Object} object The object to query.
+ * @param {Array|string} path The path of the method to invoke.
+ * @param {...*} [args] The arguments to invoke the method with.
+ * @returns {*} Returns the result of the invoked method.
+ * @example
+ *
+ * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };
+ *
+ * _.invoke(object, 'a[0].b.c.slice', 1, 3);
+ * // => [2, 3]
+ */
+ var invoke = baseRest(baseInvoke);
+
+ /**
+ * Creates an array of the own enumerable property names of `object`.
+ *
+ * **Note:** Non-object values are coerced to objects. See the
+ * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
+ * for more details.
+ *
+ * @static
+ * @since 0.1.0
+ * @memberOf _
+ * @category Object
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of property names.
+ * @example
+ *
+ * function Foo() {
+ * this.a = 1;
+ * this.b = 2;
+ * }
+ *
+ * Foo.prototype.c = 3;
+ *
+ * _.keys(new Foo);
+ * // => ['a', 'b'] (iteration order is not guaranteed)
+ *
+ * _.keys('hi');
+ * // => ['0', '1']
+ */
+ function keys(object) {
+ return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
+ }
+
+ /**
+ * Creates an array of the own and inherited enumerable property names of `object`.
+ *
+ * **Note:** Non-object values are coerced to objects.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category Object
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of property names.
+ * @example
+ *
+ * function Foo() {
+ * this.a = 1;
+ * this.b = 2;
+ * }
+ *
+ * Foo.prototype.c = 3;
+ *
+ * _.keysIn(new Foo);
+ * // => ['a', 'b', 'c'] (iteration order is not guaranteed)
+ */
+ function keysIn(object) {
+ return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);
+ }
+
+ /**
+ * The opposite of `_.mapValues`; this method creates an object with the
+ * same values as `object` and keys generated by running each own enumerable
+ * string keyed property of `object` thru `iteratee`. The iteratee is invoked
+ * with three arguments: (value, key, object).
+ *
+ * @static
+ * @memberOf _
+ * @since 3.8.0
+ * @category Object
+ * @param {Object} object The object to iterate over.
+ * @param {Function} [iteratee=_.identity] The function invoked per iteration.
+ * @returns {Object} Returns the new mapped object.
+ * @see _.mapValues
+ * @example
+ *
+ * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {
+ * return key + value;
+ * });
+ * // => { 'a1': 1, 'b2': 2 }
+ */
+ function mapKeys(object, iteratee) {
+ var result = {};
+ iteratee = getIteratee(iteratee, 3);
+
+ baseForOwn(object, function(value, key, object) {
+ baseAssignValue(result, iteratee(value, key, object), value);
+ });
+ return result;
+ }
+
+ /**
+ * Creates an object with the same keys as `object` and values generated
+ * by running each own enumerable string keyed property of `object` thru
+ * `iteratee`. The iteratee is invoked with three arguments:
+ * (value, key, object).
+ *
+ * @static
+ * @memberOf _
+ * @since 2.4.0
+ * @category Object
+ * @param {Object} object The object to iterate over.
+ * @param {Function} [iteratee=_.identity] The function invoked per iteration.
+ * @returns {Object} Returns the new mapped object.
+ * @see _.mapKeys
+ * @example
+ *
+ * var users = {
+ * 'fred': { 'user': 'fred', 'age': 40 },
+ * 'pebbles': { 'user': 'pebbles', 'age': 1 }
+ * };
+ *
+ * _.mapValues(users, function(o) { return o.age; });
+ * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)
+ *
+ * // The `_.property` iteratee shorthand.
+ * _.mapValues(users, 'age');
+ * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)
+ */
+ function mapValues(object, iteratee) {
+ var result = {};
+ iteratee = getIteratee(iteratee, 3);
+
+ baseForOwn(object, function(value, key, object) {
+ baseAssignValue(result, key, iteratee(value, key, object));
+ });
+ return result;
+ }
+
+ /**
+ * This method is like `_.assign` except that it recursively merges own and
+ * inherited enumerable string keyed properties of source objects into the
+ * destination object. Source properties that resolve to `undefined` are
+ * skipped if a destination value exists. Array and plain object properties
+ * are merged recursively. Other objects and value types are overridden by
+ * assignment. Source objects are applied from left to right. Subsequent
+ * sources overwrite property assignments of previous sources.
+ *
+ * **Note:** This method mutates `object`.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.5.0
+ * @category Object
+ * @param {Object} object The destination object.
+ * @param {...Object} [sources] The source objects.
+ * @returns {Object} Returns `object`.
+ * @example
+ *
+ * var object = {
+ * 'a': [{ 'b': 2 }, { 'd': 4 }]
+ * };
+ *
+ * var other = {
+ * 'a': [{ 'c': 3 }, { 'e': 5 }]
+ * };
+ *
+ * _.merge(object, other);
+ * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }
+ */
+ var merge = createAssigner(function(object, source, srcIndex) {
+ baseMerge(object, source, srcIndex);
+ });
+
+ /**
+ * This method is like `_.merge` except that it accepts `customizer` which
+ * is invoked to produce the merged values of the destination and source
+ * properties. If `customizer` returns `undefined`, merging is handled by the
+ * method instead. The `customizer` is invoked with six arguments:
+ * (objValue, srcValue, key, object, source, stack).
+ *
+ * **Note:** This method mutates `object`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Object
+ * @param {Object} object The destination object.
+ * @param {...Object} sources The source objects.
+ * @param {Function} customizer The function to customize assigned values.
+ * @returns {Object} Returns `object`.
+ * @example
+ *
+ * function customizer(objValue, srcValue) {
+ * if (_.isArray(objValue)) {
+ * return objValue.concat(srcValue);
+ * }
+ * }
+ *
+ * var object = { 'a': [1], 'b': [2] };
+ * var other = { 'a': [3], 'b': [4] };
+ *
+ * _.mergeWith(object, other, customizer);
+ * // => { 'a': [1, 3], 'b': [2, 4] }
+ */
+ var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {
+ baseMerge(object, source, srcIndex, customizer);
+ });
+
+ /**
+ * The opposite of `_.pick`; this method creates an object composed of the
+ * own and inherited enumerable property paths of `object` that are not omitted.
+ *
+ * **Note:** This method is considerably slower than `_.pick`.
+ *
+ * @static
+ * @since 0.1.0
+ * @memberOf _
+ * @category Object
+ * @param {Object} object The source object.
+ * @param {...(string|string[])} [paths] The property paths to omit.
+ * @returns {Object} Returns the new object.
+ * @example
+ *
+ * var object = { 'a': 1, 'b': '2', 'c': 3 };
+ *
+ * _.omit(object, ['a', 'c']);
+ * // => { 'b': '2' }
+ */
+ var omit = flatRest(function(object, paths) {
+ var result = {};
+ if (object == null) {
+ return result;
+ }
+ var isDeep = false;
+ paths = arrayMap(paths, function(path) {
+ path = castPath(path, object);
+ isDeep || (isDeep = path.length > 1);
+ return path;
+ });
+ copyObject(object, getAllKeysIn(object), result);
+ if (isDeep) {
+ result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);
+ }
+ var length = paths.length;
+ while (length--) {
+ baseUnset(result, paths[length]);
+ }
+ return result;
+ });
+
+ /**
+ * The opposite of `_.pickBy`; this method creates an object composed of
+ * the own and inherited enumerable string keyed properties of `object` that
+ * `predicate` doesn't return truthy for. The predicate is invoked with two
+ * arguments: (value, key).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Object
+ * @param {Object} object The source object.
+ * @param {Function} [predicate=_.identity] The function invoked per property.
+ * @returns {Object} Returns the new object.
+ * @example
+ *
+ * var object = { 'a': 1, 'b': '2', 'c': 3 };
+ *
+ * _.omitBy(object, _.isNumber);
+ * // => { 'b': '2' }
+ */
+ function omitBy(object, predicate) {
+ return pickBy(object, negate(getIteratee(predicate)));
+ }
+
+ /**
+ * Creates an object composed of the picked `object` properties.
+ *
+ * @static
+ * @since 0.1.0
+ * @memberOf _
+ * @category Object
+ * @param {Object} object The source object.
+ * @param {...(string|string[])} [paths] The property paths to pick.
+ * @returns {Object} Returns the new object.
+ * @example
+ *
+ * var object = { 'a': 1, 'b': '2', 'c': 3 };
+ *
+ * _.pick(object, ['a', 'c']);
+ * // => { 'a': 1, 'c': 3 }
+ */
+ var pick = flatRest(function(object, paths) {
+ return object == null ? {} : basePick(object, paths);
+ });
+
+ /**
+ * Creates an object composed of the `object` properties `predicate` returns
+ * truthy for. The predicate is invoked with two arguments: (value, key).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Object
+ * @param {Object} object The source object.
+ * @param {Function} [predicate=_.identity] The function invoked per property.
+ * @returns {Object} Returns the new object.
+ * @example
+ *
+ * var object = { 'a': 1, 'b': '2', 'c': 3 };
+ *
+ * _.pickBy(object, _.isNumber);
+ * // => { 'a': 1, 'c': 3 }
+ */
+ function pickBy(object, predicate) {
+ if (object == null) {
+ return {};
+ }
+ var props = arrayMap(getAllKeysIn(object), function(prop) {
+ return [prop];
+ });
+ predicate = getIteratee(predicate);
+ return basePickBy(object, props, function(value, path) {
+ return predicate(value, path[0]);
+ });
+ }
+
+ /**
+ * This method is like `_.get` except that if the resolved value is a
+ * function it's invoked with the `this` binding of its parent object and
+ * its result is returned.
+ *
+ * @static
+ * @since 0.1.0
+ * @memberOf _
+ * @category Object
+ * @param {Object} object The object to query.
+ * @param {Array|string} path The path of the property to resolve.
+ * @param {*} [defaultValue] The value returned for `undefined` resolved values.
+ * @returns {*} Returns the resolved value.
+ * @example
+ *
+ * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };
+ *
+ * _.result(object, 'a[0].b.c1');
+ * // => 3
+ *
+ * _.result(object, 'a[0].b.c2');
+ * // => 4
+ *
+ * _.result(object, 'a[0].b.c3', 'default');
+ * // => 'default'
+ *
+ * _.result(object, 'a[0].b.c3', _.constant('default'));
+ * // => 'default'
+ */
+ function result(object, path, defaultValue) {
+ path = castPath(path, object);
+
+ var index = -1,
+ length = path.length;
+
+ // Ensure the loop is entered when path is empty.
+ if (!length) {
+ length = 1;
+ object = undefined;
+ }
+ while (++index < length) {
+ var value = object == null ? undefined : object[toKey(path[index])];
+ if (value === undefined) {
+ index = length;
+ value = defaultValue;
+ }
+ object = isFunction(value) ? value.call(object) : value;
+ }
+ return object;
+ }
+
+ /**
+ * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,
+ * it's created. Arrays are created for missing index properties while objects
+ * are created for all other missing properties. Use `_.setWith` to customize
+ * `path` creation.
+ *
+ * **Note:** This method mutates `object`.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.7.0
+ * @category Object
+ * @param {Object} object The object to modify.
+ * @param {Array|string} path The path of the property to set.
+ * @param {*} value The value to set.
+ * @returns {Object} Returns `object`.
+ * @example
+ *
+ * var object = { 'a': [{ 'b': { 'c': 3 } }] };
+ *
+ * _.set(object, 'a[0].b.c', 4);
+ * console.log(object.a[0].b.c);
+ * // => 4
+ *
+ * _.set(object, ['x', '0', 'y', 'z'], 5);
+ * console.log(object.x[0].y.z);
+ * // => 5
+ */
+ function set(object, path, value) {
+ return object == null ? object : baseSet(object, path, value);
+ }
+
+ /**
+ * This method is like `_.set` except that it accepts `customizer` which is
+ * invoked to produce the objects of `path`. If `customizer` returns `undefined`
+ * path creation is handled by the method instead. The `customizer` is invoked
+ * with three arguments: (nsValue, key, nsObject).
+ *
+ * **Note:** This method mutates `object`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Object
+ * @param {Object} object The object to modify.
+ * @param {Array|string} path The path of the property to set.
+ * @param {*} value The value to set.
+ * @param {Function} [customizer] The function to customize assigned values.
+ * @returns {Object} Returns `object`.
+ * @example
+ *
+ * var object = {};
+ *
+ * _.setWith(object, '[0][1]', 'a', Object);
+ * // => { '0': { '1': 'a' } }
+ */
+ function setWith(object, path, value, customizer) {
+ customizer = typeof customizer == 'function' ? customizer : undefined;
+ return object == null ? object : baseSet(object, path, value, customizer);
+ }
+
+ /**
+ * Creates an array of own enumerable string keyed-value pairs for `object`
+ * which can be consumed by `_.fromPairs`. If `object` is a map or set, its
+ * entries are returned.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @alias entries
+ * @category Object
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the key-value pairs.
+ * @example
+ *
+ * function Foo() {
+ * this.a = 1;
+ * this.b = 2;
+ * }
+ *
+ * Foo.prototype.c = 3;
+ *
+ * _.toPairs(new Foo);
+ * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)
+ */
+ var toPairs = createToPairs(keys);
+
+ /**
+ * Creates an array of own and inherited enumerable string keyed-value pairs
+ * for `object` which can be consumed by `_.fromPairs`. If `object` is a map
+ * or set, its entries are returned.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @alias entriesIn
+ * @category Object
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the key-value pairs.
+ * @example
+ *
+ * function Foo() {
+ * this.a = 1;
+ * this.b = 2;
+ * }
+ *
+ * Foo.prototype.c = 3;
+ *
+ * _.toPairsIn(new Foo);
+ * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)
+ */
+ var toPairsIn = createToPairs(keysIn);
+
+ /**
+ * An alternative to `_.reduce`; this method transforms `object` to a new
+ * `accumulator` object which is the result of running each of its own
+ * enumerable string keyed properties thru `iteratee`, with each invocation
+ * potentially mutating the `accumulator` object. If `accumulator` is not
+ * provided, a new object with the same `[[Prototype]]` will be used. The
+ * iteratee is invoked with four arguments: (accumulator, value, key, object).
+ * Iteratee functions may exit iteration early by explicitly returning `false`.
+ *
+ * @static
+ * @memberOf _
+ * @since 1.3.0
+ * @category Object
+ * @param {Object} object The object to iterate over.
+ * @param {Function} [iteratee=_.identity] The function invoked per iteration.
+ * @param {*} [accumulator] The custom accumulator value.
+ * @returns {*} Returns the accumulated value.
+ * @example
+ *
+ * _.transform([2, 3, 4], function(result, n) {
+ * result.push(n *= n);
+ * return n % 2 == 0;
+ * }, []);
+ * // => [4, 9]
+ *
+ * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {
+ * (result[value] || (result[value] = [])).push(key);
+ * }, {});
+ * // => { '1': ['a', 'c'], '2': ['b'] }
+ */
+ function transform(object, iteratee, accumulator) {
+ var isArr = isArray(object),
+ isArrLike = isArr || isBuffer(object) || isTypedArray(object);
+
+ iteratee = getIteratee(iteratee, 4);
+ if (accumulator == null) {
+ var Ctor = object && object.constructor;
+ if (isArrLike) {
+ accumulator = isArr ? new Ctor : [];
+ }
+ else if (isObject(object)) {
+ accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};
+ }
+ else {
+ accumulator = {};
+ }
+ }
+ (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {
+ return iteratee(accumulator, value, index, object);
+ });
+ return accumulator;
+ }
+
+ /**
+ * Removes the property at `path` of `object`.
+ *
+ * **Note:** This method mutates `object`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Object
+ * @param {Object} object The object to modify.
+ * @param {Array|string} path The path of the property to unset.
+ * @returns {boolean} Returns `true` if the property is deleted, else `false`.
+ * @example
+ *
+ * var object = { 'a': [{ 'b': { 'c': 7 } }] };
+ * _.unset(object, 'a[0].b.c');
+ * // => true
+ *
+ * console.log(object);
+ * // => { 'a': [{ 'b': {} }] };
+ *
+ * _.unset(object, ['a', '0', 'b', 'c']);
+ * // => true
+ *
+ * console.log(object);
+ * // => { 'a': [{ 'b': {} }] };
+ */
+ function unset(object, path) {
+ return object == null ? true : baseUnset(object, path);
+ }
+
+ /**
+ * This method is like `_.set` except that accepts `updater` to produce the
+ * value to set. Use `_.updateWith` to customize `path` creation. The `updater`
+ * is invoked with one argument: (value).
+ *
+ * **Note:** This method mutates `object`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.6.0
+ * @category Object
+ * @param {Object} object The object to modify.
+ * @param {Array|string} path The path of the property to set.
+ * @param {Function} updater The function to produce the updated value.
+ * @returns {Object} Returns `object`.
+ * @example
+ *
+ * var object = { 'a': [{ 'b': { 'c': 3 } }] };
+ *
+ * _.update(object, 'a[0].b.c', function(n) { return n * n; });
+ * console.log(object.a[0].b.c);
+ * // => 9
+ *
+ * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });
+ * console.log(object.x[0].y.z);
+ * // => 0
+ */
+ function update(object, path, updater) {
+ return object == null ? object : baseUpdate(object, path, castFunction(updater));
+ }
+
+ /**
+ * This method is like `_.update` except that it accepts `customizer` which is
+ * invoked to produce the objects of `path`. If `customizer` returns `undefined`
+ * path creation is handled by the method instead. The `customizer` is invoked
+ * with three arguments: (nsValue, key, nsObject).
+ *
+ * **Note:** This method mutates `object`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.6.0
+ * @category Object
+ * @param {Object} object The object to modify.
+ * @param {Array|string} path The path of the property to set.
+ * @param {Function} updater The function to produce the updated value.
+ * @param {Function} [customizer] The function to customize assigned values.
+ * @returns {Object} Returns `object`.
+ * @example
+ *
+ * var object = {};
+ *
+ * _.updateWith(object, '[0][1]', _.constant('a'), Object);
+ * // => { '0': { '1': 'a' } }
+ */
+ function updateWith(object, path, updater, customizer) {
+ customizer = typeof customizer == 'function' ? customizer : undefined;
+ return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);
+ }
+
+ /**
+ * Creates an array of the own enumerable string keyed property values of `object`.
+ *
+ * **Note:** Non-object values are coerced to objects.
+ *
+ * @static
+ * @since 0.1.0
+ * @memberOf _
+ * @category Object
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of property values.
+ * @example
+ *
+ * function Foo() {
+ * this.a = 1;
+ * this.b = 2;
+ * }
+ *
+ * Foo.prototype.c = 3;
+ *
+ * _.values(new Foo);
+ * // => [1, 2] (iteration order is not guaranteed)
+ *
+ * _.values('hi');
+ * // => ['h', 'i']
+ */
+ function values(object) {
+ return object == null ? [] : baseValues(object, keys(object));
+ }
+
+ /**
+ * Creates an array of the own and inherited enumerable string keyed property
+ * values of `object`.
+ *
+ * **Note:** Non-object values are coerced to objects.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category Object
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of property values.
+ * @example
+ *
+ * function Foo() {
+ * this.a = 1;
+ * this.b = 2;
+ * }
+ *
+ * Foo.prototype.c = 3;
+ *
+ * _.valuesIn(new Foo);
+ * // => [1, 2, 3] (iteration order is not guaranteed)
+ */
+ function valuesIn(object) {
+ return object == null ? [] : baseValues(object, keysIn(object));
+ }
+
+ /*------------------------------------------------------------------------*/
+
+ /**
+ * Clamps `number` within the inclusive `lower` and `upper` bounds.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Number
+ * @param {number} number The number to clamp.
+ * @param {number} [lower] The lower bound.
+ * @param {number} upper The upper bound.
+ * @returns {number} Returns the clamped number.
+ * @example
+ *
+ * _.clamp(-10, -5, 5);
+ * // => -5
+ *
+ * _.clamp(10, -5, 5);
+ * // => 5
+ */
+ function clamp(number, lower, upper) {
+ if (upper === undefined) {
+ upper = lower;
+ lower = undefined;
+ }
+ if (upper !== undefined) {
+ upper = toNumber(upper);
+ upper = upper === upper ? upper : 0;
+ }
+ if (lower !== undefined) {
+ lower = toNumber(lower);
+ lower = lower === lower ? lower : 0;
+ }
+ return baseClamp(toNumber(number), lower, upper);
+ }
+
+ /**
+ * Checks if `n` is between `start` and up to, but not including, `end`. If
+ * `end` is not specified, it's set to `start` with `start` then set to `0`.
+ * If `start` is greater than `end` the params are swapped to support
+ * negative ranges.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.3.0
+ * @category Number
+ * @param {number} number The number to check.
+ * @param {number} [start=0] The start of the range.
+ * @param {number} end The end of the range.
+ * @returns {boolean} Returns `true` if `number` is in the range, else `false`.
+ * @see _.range, _.rangeRight
+ * @example
+ *
+ * _.inRange(3, 2, 4);
+ * // => true
+ *
+ * _.inRange(4, 8);
+ * // => true
+ *
+ * _.inRange(4, 2);
+ * // => false
+ *
+ * _.inRange(2, 2);
+ * // => false
+ *
+ * _.inRange(1.2, 2);
+ * // => true
+ *
+ * _.inRange(5.2, 4);
+ * // => false
+ *
+ * _.inRange(-3, -2, -6);
+ * // => true
+ */
+ function inRange(number, start, end) {
+ start = toFinite(start);
+ if (end === undefined) {
+ end = start;
+ start = 0;
+ } else {
+ end = toFinite(end);
+ }
+ number = toNumber(number);
+ return baseInRange(number, start, end);
+ }
+
+ /**
+ * Produces a random number between the inclusive `lower` and `upper` bounds.
+ * If only one argument is provided a number between `0` and the given number
+ * is returned. If `floating` is `true`, or either `lower` or `upper` are
+ * floats, a floating-point number is returned instead of an integer.
+ *
+ * **Note:** JavaScript follows the IEEE-754 standard for resolving
+ * floating-point values which can produce unexpected results.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.7.0
+ * @category Number
+ * @param {number} [lower=0] The lower bound.
+ * @param {number} [upper=1] The upper bound.
+ * @param {boolean} [floating] Specify returning a floating-point number.
+ * @returns {number} Returns the random number.
+ * @example
+ *
+ * _.random(0, 5);
+ * // => an integer between 0 and 5
+ *
+ * _.random(5);
+ * // => also an integer between 0 and 5
+ *
+ * _.random(5, true);
+ * // => a floating-point number between 0 and 5
+ *
+ * _.random(1.2, 5.2);
+ * // => a floating-point number between 1.2 and 5.2
+ */
+ function random(lower, upper, floating) {
+ if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {
+ upper = floating = undefined;
+ }
+ if (floating === undefined) {
+ if (typeof upper == 'boolean') {
+ floating = upper;
+ upper = undefined;
+ }
+ else if (typeof lower == 'boolean') {
+ floating = lower;
+ lower = undefined;
+ }
+ }
+ if (lower === undefined && upper === undefined) {
+ lower = 0;
+ upper = 1;
+ }
+ else {
+ lower = toFinite(lower);
+ if (upper === undefined) {
+ upper = lower;
+ lower = 0;
+ } else {
+ upper = toFinite(upper);
+ }
+ }
+ if (lower > upper) {
+ var temp = lower;
+ lower = upper;
+ upper = temp;
+ }
+ if (floating || lower % 1 || upper % 1) {
+ var rand = nativeRandom();
+ return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);
+ }
+ return baseRandom(lower, upper);
+ }
+
+ /*------------------------------------------------------------------------*/
+
+ /**
+ * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category String
+ * @param {string} [string=''] The string to convert.
+ * @returns {string} Returns the camel cased string.
+ * @example
+ *
+ * _.camelCase('Foo Bar');
+ * // => 'fooBar'
+ *
+ * _.camelCase('--foo-bar--');
+ * // => 'fooBar'
+ *
+ * _.camelCase('__FOO_BAR__');
+ * // => 'fooBar'
+ */
+ var camelCase = createCompounder(function(result, word, index) {
+ word = word.toLowerCase();
+ return result + (index ? capitalize(word) : word);
+ });
+
+ /**
+ * Converts the first character of `string` to upper case and the remaining
+ * to lower case.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category String
+ * @param {string} [string=''] The string to capitalize.
+ * @returns {string} Returns the capitalized string.
+ * @example
+ *
+ * _.capitalize('FRED');
+ * // => 'Fred'
+ */
+ function capitalize(string) {
+ return upperFirst(toString(string).toLowerCase());
+ }
+
+ /**
+ * Deburrs `string` by converting
+ * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)
+ * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)
+ * letters to basic Latin letters and removing
+ * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category String
+ * @param {string} [string=''] The string to deburr.
+ * @returns {string} Returns the deburred string.
+ * @example
+ *
+ * _.deburr('déjà vu');
+ * // => 'deja vu'
+ */
+ function deburr(string) {
+ string = toString(string);
+ return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');
+ }
+
+ /**
+ * Checks if `string` ends with the given target string.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category String
+ * @param {string} [string=''] The string to inspect.
+ * @param {string} [target] The string to search for.
+ * @param {number} [position=string.length] The position to search up to.
+ * @returns {boolean} Returns `true` if `string` ends with `target`,
+ * else `false`.
+ * @example
+ *
+ * _.endsWith('abc', 'c');
+ * // => true
+ *
+ * _.endsWith('abc', 'b');
+ * // => false
+ *
+ * _.endsWith('abc', 'b', 2);
+ * // => true
+ */
+ function endsWith(string, target, position) {
+ string = toString(string);
+ target = baseToString(target);
+
+ var length = string.length;
+ position = position === undefined
+ ? length
+ : baseClamp(toInteger(position), 0, length);
+
+ var end = position;
+ position -= target.length;
+ return position >= 0 && string.slice(position, end) == target;
+ }
+
+ /**
+ * Converts the characters "&", "<", ">", '"', and "'" in `string` to their
+ * corresponding HTML entities.
+ *
+ * **Note:** No other characters are escaped. To escape additional
+ * characters use a third-party library like [_he_](https://mths.be/he).
+ *
+ * Though the ">" character is escaped for symmetry, characters like
+ * ">" and "/" don't need escaping in HTML and have no special meaning
+ * unless they're part of a tag or unquoted attribute value. See
+ * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)
+ * (under "semi-related fun fact") for more details.
+ *
+ * When working with HTML you should always
+ * [quote attribute values](http://wonko.com/post/html-escaping) to reduce
+ * XSS vectors.
+ *
+ * @static
+ * @since 0.1.0
+ * @memberOf _
+ * @category String
+ * @param {string} [string=''] The string to escape.
+ * @returns {string} Returns the escaped string.
+ * @example
+ *
+ * _.escape('fred, barney, & pebbles');
+ * // => 'fred, barney, & pebbles'
+ */
+ function escape(string) {
+ string = toString(string);
+ return (string && reHasUnescapedHtml.test(string))
+ ? string.replace(reUnescapedHtml, escapeHtmlChar)
+ : string;
+ }
+
+ /**
+ * Escapes the `RegExp` special characters "^", "$", "\", ".", "*", "+",
+ * "?", "(", ")", "[", "]", "{", "}", and "|" in `string`.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category String
+ * @param {string} [string=''] The string to escape.
+ * @returns {string} Returns the escaped string.
+ * @example
+ *
+ * _.escapeRegExp('[lodash](https://lodash.com/)');
+ * // => '\[lodash\]\(https://lodash\.com/\)'
+ */
+ function escapeRegExp(string) {
+ string = toString(string);
+ return (string && reHasRegExpChar.test(string))
+ ? string.replace(reRegExpChar, '\\$&')
+ : string;
+ }
+
+ /**
+ * Converts `string` to
+ * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category String
+ * @param {string} [string=''] The string to convert.
+ * @returns {string} Returns the kebab cased string.
+ * @example
+ *
+ * _.kebabCase('Foo Bar');
+ * // => 'foo-bar'
+ *
+ * _.kebabCase('fooBar');
+ * // => 'foo-bar'
+ *
+ * _.kebabCase('__FOO_BAR__');
+ * // => 'foo-bar'
+ */
+ var kebabCase = createCompounder(function(result, word, index) {
+ return result + (index ? '-' : '') + word.toLowerCase();
+ });
+
+ /**
+ * Converts `string`, as space separated words, to lower case.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category String
+ * @param {string} [string=''] The string to convert.
+ * @returns {string} Returns the lower cased string.
+ * @example
+ *
+ * _.lowerCase('--Foo-Bar--');
+ * // => 'foo bar'
+ *
+ * _.lowerCase('fooBar');
+ * // => 'foo bar'
+ *
+ * _.lowerCase('__FOO_BAR__');
+ * // => 'foo bar'
+ */
+ var lowerCase = createCompounder(function(result, word, index) {
+ return result + (index ? ' ' : '') + word.toLowerCase();
+ });
+
+ /**
+ * Converts the first character of `string` to lower case.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category String
+ * @param {string} [string=''] The string to convert.
+ * @returns {string} Returns the converted string.
+ * @example
+ *
+ * _.lowerFirst('Fred');
+ * // => 'fred'
+ *
+ * _.lowerFirst('FRED');
+ * // => 'fRED'
+ */
+ var lowerFirst = createCaseFirst('toLowerCase');
+
+ /**
+ * Pads `string` on the left and right sides if it's shorter than `length`.
+ * Padding characters are truncated if they can't be evenly divided by `length`.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category String
+ * @param {string} [string=''] The string to pad.
+ * @param {number} [length=0] The padding length.
+ * @param {string} [chars=' '] The string used as padding.
+ * @returns {string} Returns the padded string.
+ * @example
+ *
+ * _.pad('abc', 8);
+ * // => ' abc '
+ *
+ * _.pad('abc', 8, '_-');
+ * // => '_-abc_-_'
+ *
+ * _.pad('abc', 3);
+ * // => 'abc'
+ */
+ function pad(string, length, chars) {
+ string = toString(string);
+ length = toInteger(length);
+
+ var strLength = length ? stringSize(string) : 0;
+ if (!length || strLength >= length) {
+ return string;
+ }
+ var mid = (length - strLength) / 2;
+ return (
+ createPadding(nativeFloor(mid), chars) +
+ string +
+ createPadding(nativeCeil(mid), chars)
+ );
+ }
+
+ /**
+ * Pads `string` on the right side if it's shorter than `length`. Padding
+ * characters are truncated if they exceed `length`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category String
+ * @param {string} [string=''] The string to pad.
+ * @param {number} [length=0] The padding length.
+ * @param {string} [chars=' '] The string used as padding.
+ * @returns {string} Returns the padded string.
+ * @example
+ *
+ * _.padEnd('abc', 6);
+ * // => 'abc '
+ *
+ * _.padEnd('abc', 6, '_-');
+ * // => 'abc_-_'
+ *
+ * _.padEnd('abc', 3);
+ * // => 'abc'
+ */
+ function padEnd(string, length, chars) {
+ string = toString(string);
+ length = toInteger(length);
+
+ var strLength = length ? stringSize(string) : 0;
+ return (length && strLength < length)
+ ? (string + createPadding(length - strLength, chars))
+ : string;
+ }
+
+ /**
+ * Pads `string` on the left side if it's shorter than `length`. Padding
+ * characters are truncated if they exceed `length`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category String
+ * @param {string} [string=''] The string to pad.
+ * @param {number} [length=0] The padding length.
+ * @param {string} [chars=' '] The string used as padding.
+ * @returns {string} Returns the padded string.
+ * @example
+ *
+ * _.padStart('abc', 6);
+ * // => ' abc'
+ *
+ * _.padStart('abc', 6, '_-');
+ * // => '_-_abc'
+ *
+ * _.padStart('abc', 3);
+ * // => 'abc'
+ */
+ function padStart(string, length, chars) {
+ string = toString(string);
+ length = toInteger(length);
+
+ var strLength = length ? stringSize(string) : 0;
+ return (length && strLength < length)
+ ? (createPadding(length - strLength, chars) + string)
+ : string;
+ }
+
+ /**
+ * Converts `string` to an integer of the specified radix. If `radix` is
+ * `undefined` or `0`, a `radix` of `10` is used unless `value` is a
+ * hexadecimal, in which case a `radix` of `16` is used.
+ *
+ * **Note:** This method aligns with the
+ * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.
+ *
+ * @static
+ * @memberOf _
+ * @since 1.1.0
+ * @category String
+ * @param {string} string The string to convert.
+ * @param {number} [radix=10] The radix to interpret `value` by.
+ * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
+ * @returns {number} Returns the converted integer.
+ * @example
+ *
+ * _.parseInt('08');
+ * // => 8
+ *
+ * _.map(['6', '08', '10'], _.parseInt);
+ * // => [6, 8, 10]
+ */
+ function parseInt(string, radix, guard) {
+ if (guard || radix == null) {
+ radix = 0;
+ } else if (radix) {
+ radix = +radix;
+ }
+ return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);
+ }
+
+ /**
+ * Repeats the given string `n` times.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category String
+ * @param {string} [string=''] The string to repeat.
+ * @param {number} [n=1] The number of times to repeat the string.
+ * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
+ * @returns {string} Returns the repeated string.
+ * @example
+ *
+ * _.repeat('*', 3);
+ * // => '***'
+ *
+ * _.repeat('abc', 2);
+ * // => 'abcabc'
+ *
+ * _.repeat('abc', 0);
+ * // => ''
+ */
+ function repeat(string, n, guard) {
+ if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {
+ n = 1;
+ } else {
+ n = toInteger(n);
+ }
+ return baseRepeat(toString(string), n);
+ }
+
+ /**
+ * Replaces matches for `pattern` in `string` with `replacement`.
+ *
+ * **Note:** This method is based on
+ * [`String#replace`](https://mdn.io/String/replace).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category String
+ * @param {string} [string=''] The string to modify.
+ * @param {RegExp|string} pattern The pattern to replace.
+ * @param {Function|string} replacement The match replacement.
+ * @returns {string} Returns the modified string.
+ * @example
+ *
+ * _.replace('Hi Fred', 'Fred', 'Barney');
+ * // => 'Hi Barney'
+ */
+ function replace() {
+ var args = arguments,
+ string = toString(args[0]);
+
+ return args.length < 3 ? string : string.replace(args[1], args[2]);
+ }
+
+ /**
+ * Converts `string` to
+ * [snake case](https://en.wikipedia.org/wiki/Snake_case).
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category String
+ * @param {string} [string=''] The string to convert.
+ * @returns {string} Returns the snake cased string.
+ * @example
+ *
+ * _.snakeCase('Foo Bar');
+ * // => 'foo_bar'
+ *
+ * _.snakeCase('fooBar');
+ * // => 'foo_bar'
+ *
+ * _.snakeCase('--FOO-BAR--');
+ * // => 'foo_bar'
+ */
+ var snakeCase = createCompounder(function(result, word, index) {
+ return result + (index ? '_' : '') + word.toLowerCase();
+ });
+
+ /**
+ * Splits `string` by `separator`.
+ *
+ * **Note:** This method is based on
+ * [`String#split`](https://mdn.io/String/split).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category String
+ * @param {string} [string=''] The string to split.
+ * @param {RegExp|string} separator The separator pattern to split by.
+ * @param {number} [limit] The length to truncate results to.
+ * @returns {Array} Returns the string segments.
+ * @example
+ *
+ * _.split('a-b-c', '-', 2);
+ * // => ['a', 'b']
+ */
+ function split(string, separator, limit) {
+ if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {
+ separator = limit = undefined;
+ }
+ limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;
+ if (!limit) {
+ return [];
+ }
+ string = toString(string);
+ if (string && (
+ typeof separator == 'string' ||
+ (separator != null && !isRegExp(separator))
+ )) {
+ separator = baseToString(separator);
+ if (!separator && hasUnicode(string)) {
+ return castSlice(stringToArray(string), 0, limit);
+ }
+ }
+ return string.split(separator, limit);
+ }
+
+ /**
+ * Converts `string` to
+ * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).
+ *
+ * @static
+ * @memberOf _
+ * @since 3.1.0
+ * @category String
+ * @param {string} [string=''] The string to convert.
+ * @returns {string} Returns the start cased string.
+ * @example
+ *
+ * _.startCase('--foo-bar--');
+ * // => 'Foo Bar'
+ *
+ * _.startCase('fooBar');
+ * // => 'Foo Bar'
+ *
+ * _.startCase('__FOO_BAR__');
+ * // => 'FOO BAR'
+ */
+ var startCase = createCompounder(function(result, word, index) {
+ return result + (index ? ' ' : '') + upperFirst(word);
+ });
+
+ /**
+ * Checks if `string` starts with the given target string.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category String
+ * @param {string} [string=''] The string to inspect.
+ * @param {string} [target] The string to search for.
+ * @param {number} [position=0] The position to search from.
+ * @returns {boolean} Returns `true` if `string` starts with `target`,
+ * else `false`.
+ * @example
+ *
+ * _.startsWith('abc', 'a');
+ * // => true
+ *
+ * _.startsWith('abc', 'b');
+ * // => false
+ *
+ * _.startsWith('abc', 'b', 1);
+ * // => true
+ */
+ function startsWith(string, target, position) {
+ string = toString(string);
+ position = position == null
+ ? 0
+ : baseClamp(toInteger(position), 0, string.length);
+
+ target = baseToString(target);
+ return string.slice(position, position + target.length) == target;
+ }
+
+ /**
+ * Creates a compiled template function that can interpolate data properties
+ * in "interpolate" delimiters, HTML-escape interpolated data properties in
+ * "escape" delimiters, and execute JavaScript in "evaluate" delimiters. Data
+ * properties may be accessed as free variables in the template. If a setting
+ * object is given, it takes precedence over `_.templateSettings` values.
+ *
+ * **Note:** In the development build `_.template` utilizes
+ * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)
+ * for easier debugging.
+ *
+ * For more information on precompiling templates see
+ * [lodash's custom builds documentation](https://lodash.com/custom-builds).
+ *
+ * For more information on Chrome extension sandboxes see
+ * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).
+ *
+ * @static
+ * @since 0.1.0
+ * @memberOf _
+ * @category String
+ * @param {string} [string=''] The template string.
+ * @param {Object} [options={}] The options object.
+ * @param {RegExp} [options.escape=_.templateSettings.escape]
+ * The HTML "escape" delimiter.
+ * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]
+ * The "evaluate" delimiter.
+ * @param {Object} [options.imports=_.templateSettings.imports]
+ * An object to import into the template as free variables.
+ * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]
+ * The "interpolate" delimiter.
+ * @param {string} [options.sourceURL='lodash.templateSources[n]']
+ * The sourceURL of the compiled template.
+ * @param {string} [options.variable='obj']
+ * The data object variable name.
+ * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
+ * @returns {Function} Returns the compiled template function.
+ * @example
+ *
+ * // Use the "interpolate" delimiter to create a compiled template.
+ * var compiled = _.template('hello <%= user %>!');
+ * compiled({ 'user': 'fred' });
+ * // => 'hello fred!'
+ *
+ * // Use the HTML "escape" delimiter to escape data property values.
+ * var compiled = _.template('<%- value %>');
+ * compiled({ 'value': '
+
+
+ {{-- @vite(['public/assets/estilos/script.js' ])
+ @vite(['public/assets/estilos/core.min.js' ]) --}}
+
+
+
+