diff --git a/composer.lock b/composer.lock index f87ae5414..08344a4f6 100644 --- a/composer.lock +++ b/composer.lock @@ -107,22 +107,22 @@ }, { "name": "consoletvs/charts", - "version": "6.5.3", + "version": "6.5.4", "source": { "type": "git", "url": "https://github.com/ConsoleTVs/Charts.git", - "reference": "a4a8a71c438a00b95ea74a080ce5bf8916c60918" + "reference": "524257b5d525666385bd2e91b06e376994a7b683" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ConsoleTVs/Charts/zipball/a4a8a71c438a00b95ea74a080ce5bf8916c60918", - "reference": "a4a8a71c438a00b95ea74a080ce5bf8916c60918", + "url": "https://api.github.com/repos/ConsoleTVs/Charts/zipball/524257b5d525666385bd2e91b06e376994a7b683", + "reference": "524257b5d525666385bd2e91b06e376994a7b683", "shasum": "" }, "require": { "balping/json-raw-encoder": "^1.0", - "illuminate/console": "^5.0|^6.0", - "illuminate/support": "^5.0|^6.0", + "illuminate/console": "^5.0|^6.0|^7.0", + "illuminate/support": "^5.0|^6.0|^7.0", "php": ">=7.0" }, "type": "library", @@ -149,7 +149,7 @@ } ], "description": "The laravel charting package", - "time": "2019-09-03T16:50:50+00:00" + "time": "2020-03-03T23:16:14+00:00" }, { "name": "dnoegel/php-xdg-base-dir", @@ -186,33 +186,38 @@ }, { "name": "doctrine/inflector", - "version": "1.3.1", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/doctrine/inflector.git", - "reference": "ec3a55242203ffa6a4b27c58176da97ff0a7aec1" + "reference": "ab5de36233a1995f9c776c741b803eb8207aebef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/ec3a55242203ffa6a4b27c58176da97ff0a7aec1", - "reference": "ec3a55242203ffa6a4b27c58176da97ff0a7aec1", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/ab5de36233a1995f9c776c741b803eb8207aebef", + "reference": "ab5de36233a1995f9c776c741b803eb8207aebef", "shasum": "" }, "require": { - "php": "^7.1" + "php": "^7.2" }, "require-dev": { - "phpunit/phpunit": "^6.2" + "doctrine/coding-standard": "^7.0", + "phpstan/phpstan": "^0.11", + "phpstan/phpstan-phpunit": "^0.11", + "phpstan/phpstan-strict-rules": "^0.11", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.3.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { "psr-4": { - "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector" + "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector", + "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" } }, "notification-url": "https://packagist.org/downloads/", @@ -241,15 +246,21 @@ "email": "schmittjoh@gmail.com" } ], - "description": "Common String Manipulations with regard to casing and singular/plural rules.", - "homepage": "http://www.doctrine-project.org", + "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", + "homepage": "https://www.doctrine-project.org/projects/inflector.html", "keywords": [ "inflection", - "pluralize", - "singularize", - "string" + "inflector", + "lowercase", + "manipulation", + "php", + "plural", + "singular", + "strings", + "uppercase", + "words" ], - "time": "2019-10-30T19:59:35+00:00" + "time": "2020-05-06T11:01:57+00:00" }, { "name": "doctrine/lexer", @@ -369,27 +380,27 @@ }, { "name": "egulias/email-validator", - "version": "2.1.11", + "version": "2.1.17", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "92dd169c32f6f55ba570c309d83f5209cefb5e23" + "reference": "ade6887fd9bd74177769645ab5c474824f8a418a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/92dd169c32f6f55ba570c309d83f5209cefb5e23", - "reference": "92dd169c32f6f55ba570c309d83f5209cefb5e23", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ade6887fd9bd74177769645ab5c474824f8a418a", + "reference": "ade6887fd9bd74177769645ab5c474824f8a418a", "shasum": "" }, "require": { "doctrine/lexer": "^1.0.1", - "php": ">= 5.5" + "php": ">=5.5", + "symfony/polyfill-intl-idn": "^1.10" }, "require-dev": { - "dominicsayers/isemail": "dev-master", - "phpunit/phpunit": "^4.8.35||^5.7||^6.0", - "satooshi/php-coveralls": "^1.0.1", - "symfony/phpunit-bridge": "^4.4@dev" + "dominicsayers/isemail": "^3.0.7", + "phpunit/phpunit": "^4.8.36|^7.5.15", + "satooshi/php-coveralls": "^1.0.1" }, "suggest": { "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" @@ -423,20 +434,20 @@ "validation", "validator" ], - "time": "2019-08-13T17:33:27+00:00" + "time": "2020-02-13T22:36:52+00:00" }, { "name": "erusev/parsedown", - "version": "1.7.3", + "version": "1.7.4", "source": { "type": "git", "url": "https://github.com/erusev/parsedown.git", - "reference": "6d893938171a817f4e9bc9e86f2da1e370b7bcd7" + "reference": "cb17b6477dfff935958ba01325f2e8a2bfa6dab3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/erusev/parsedown/zipball/6d893938171a817f4e9bc9e86f2da1e370b7bcd7", - "reference": "6d893938171a817f4e9bc9e86f2da1e370b7bcd7", + "url": "https://api.github.com/repos/erusev/parsedown/zipball/cb17b6477dfff935958ba01325f2e8a2bfa6dab3", + "reference": "cb17b6477dfff935958ba01325f2e8a2bfa6dab3", "shasum": "" }, "require": { @@ -469,7 +480,7 @@ "markdown", "parser" ], - "time": "2019-03-17T18:48:37+00:00" + "time": "2019-12-30T22:54:17+00:00" }, { "name": "eveseat/eseye", @@ -524,24 +535,24 @@ }, { "name": "fideloper/proxy", - "version": "4.2.1", + "version": "4.3.0", "source": { "type": "git", "url": "https://github.com/fideloper/TrustedProxy.git", - "reference": "03085e58ec7bee24773fa5a8850751a6e61a7e8a" + "reference": "ec38ad69ee378a1eec04fb0e417a97cfaf7ed11a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/03085e58ec7bee24773fa5a8850751a6e61a7e8a", - "reference": "03085e58ec7bee24773fa5a8850751a6e61a7e8a", + "url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/ec38ad69ee378a1eec04fb0e417a97cfaf7ed11a", + "reference": "ec38ad69ee378a1eec04fb0e417a97cfaf7ed11a", "shasum": "" }, "require": { - "illuminate/contracts": "^5.0|^6.0|^7.0", + "illuminate/contracts": "^5.0|^6.0|^7.0|^8.0", "php": ">=5.4.0" }, "require-dev": { - "illuminate/http": "^5.0|^6.0|^7.0", + "illuminate/http": "^5.0|^6.0|^7.0|^8.0", "mockery/mockery": "^1.0", "phpunit/phpunit": "^6.0" }, @@ -574,27 +585,28 @@ "proxy", "trusted proxy" ], - "time": "2019-09-03T16:45:42+00:00" + "time": "2020-02-22T01:51:47+00:00" }, { "name": "guzzlehttp/guzzle", - "version": "6.5.0", + "version": "6.5.3", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "dbc2bc3a293ed6b1ae08a3651e2bfd213d19b6a5" + "reference": "aab4ebd862aa7d04f01a4b51849d657db56d882e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/dbc2bc3a293ed6b1ae08a3651e2bfd213d19b6a5", - "reference": "dbc2bc3a293ed6b1ae08a3651e2bfd213d19b6a5", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/aab4ebd862aa7d04f01a4b51849d657db56d882e", + "reference": "aab4ebd862aa7d04f01a4b51849d657db56d882e", "shasum": "" }, "require": { "ext-json": "*", "guzzlehttp/promises": "^1.0", "guzzlehttp/psr7": "^1.6.1", - "php": ">=5.5" + "php": ">=5.5", + "symfony/polyfill-intl-idn": "^1.11" }, "require-dev": { "ext-curl": "*", @@ -602,7 +614,6 @@ "psr/log": "^1.1" }, "suggest": { - "ext-intl": "Required for Internationalized Domain Name (IDN) support", "psr/log": "Required for using the Log middleware" }, "type": "library", @@ -641,7 +652,7 @@ "rest", "web service" ], - "time": "2019-12-07T18:20:45+00:00" + "time": "2020-04-18T10:38:46+00:00" }, { "name": "guzzlehttp/promises", @@ -805,6 +816,7 @@ "email": "jakub.onderka@gmail.com" } ], + "abandoned": "php-parallel-lint/php-console-color", "time": "2018-09-29T17:23:10+00:00" }, { @@ -851,6 +863,7 @@ } ], "description": "Highlight PHP code in terminal", + "abandoned": "php-parallel-lint/php-console-highlighter", "time": "2018-09-29T18:48:56+00:00" }, { @@ -921,16 +934,16 @@ }, { "name": "laravel/framework", - "version": "v5.8.35", + "version": "v5.8.38", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "5a9e4d241a8b815e16c9d2151e908992c38db197" + "reference": "78eb4dabcc03e189620c16f436358d41d31ae11f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/5a9e4d241a8b815e16c9d2151e908992c38db197", - "reference": "5a9e4d241a8b815e16c9d2151e908992c38db197", + "url": "https://api.github.com/repos/laravel/framework/zipball/78eb4dabcc03e189620c16f436358d41d31ae11f", + "reference": "78eb4dabcc03e189620c16f436358d41d31ae11f", "shasum": "" }, "require": { @@ -1065,20 +1078,20 @@ "framework", "laravel" ], - "time": "2019-09-03T16:44:30+00:00" + "time": "2020-04-14T14:14:36+00:00" }, { "name": "laravel/horizon", - "version": "v3.4.4", + "version": "v3.7.2", "source": { "type": "git", "url": "https://github.com/laravel/horizon.git", - "reference": "7c36d24b200b60a059ab20f5b53f5bb6f4d2da40" + "reference": "62d31b34f7f770a43f802ae2bb46327673e04cbf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/horizon/zipball/7c36d24b200b60a059ab20f5b53f5bb6f4d2da40", - "reference": "7c36d24b200b60a059ab20f5b53f5bb6f4d2da40", + "url": "https://api.github.com/repos/laravel/horizon/zipball/62d31b34f7f770a43f802ae2bb46327673e04cbf", + "reference": "62d31b34f7f770a43f802ae2bb46327673e04cbf", "shasum": "" }, "require": { @@ -1134,20 +1147,20 @@ "laravel", "queue" ], - "time": "2019-12-10T16:50:59+00:00" + "time": "2020-02-25T15:22:42+00:00" }, { "name": "laravel/socialite", - "version": "v3.3.0", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/laravel/socialite.git", - "reference": "79316f36641f1916a50ab14d368acdf1d97e46de" + "reference": "28368c6fc6580ca1860f9b9a7f8deac1aa7d515a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/socialite/zipball/79316f36641f1916a50ab14d368acdf1d97e46de", - "reference": "79316f36641f1916a50ab14d368acdf1d97e46de", + "url": "https://api.github.com/repos/laravel/socialite/zipball/28368c6fc6580ca1860f9b9a7f8deac1aa7d515a", + "reference": "28368c6fc6580ca1860f9b9a7f8deac1aa7d515a", "shasum": "" }, "require": { @@ -1197,7 +1210,7 @@ "laravel", "oauth" ], - "time": "2018-12-21T14:06:32+00:00" + "time": "2020-02-20T18:31:32+00:00" }, { "name": "laravel/tinker", @@ -1332,16 +1345,16 @@ }, { "name": "league/flysystem", - "version": "1.0.61", + "version": "1.0.67", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "4fb13c01784a6c9f165a351e996871488ca2d8c9" + "reference": "5b1f36c75c4bdde981294c2a0ebdb437ee6f275e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/4fb13c01784a6c9f165a351e996871488ca2d8c9", - "reference": "4fb13c01784a6c9f165a351e996871488ca2d8c9", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/5b1f36c75c4bdde981294c2a0ebdb437ee6f275e", + "reference": "5b1f36c75c4bdde981294c2a0ebdb437ee6f275e", "shasum": "" }, "require": { @@ -1353,7 +1366,7 @@ }, "require-dev": { "phpspec/phpspec": "^3.4", - "phpunit/phpunit": "^5.7.10" + "phpunit/phpunit": "^5.7.26" }, "suggest": { "ext-fileinfo": "Required for MimeType", @@ -1412,7 +1425,7 @@ "sftp", "storage" ], - "time": "2019-12-08T21:46:50+00:00" + "time": "2020-04-16T13:21:26+00:00" }, { "name": "league/oauth1-client", @@ -1479,16 +1492,16 @@ }, { "name": "monolog/monolog", - "version": "1.25.2", + "version": "1.25.3", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "d5e2fb341cb44f7e2ab639d12a1e5901091ec287" + "reference": "fa82921994db851a8becaf3787a9e73c5976b6f1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/d5e2fb341cb44f7e2ab639d12a1e5901091ec287", - "reference": "d5e2fb341cb44f7e2ab639d12a1e5901091ec287", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fa82921994db851a8becaf3787a9e73c5976b6f1", + "reference": "fa82921994db851a8becaf3787a9e73c5976b6f1", "shasum": "" }, "require": { @@ -1553,31 +1566,33 @@ "logging", "psr-3" ], - "time": "2019-11-13T10:00:05+00:00" + "time": "2019-12-20T14:15:16+00:00" }, { "name": "nesbot/carbon", - "version": "2.27.0", + "version": "2.33.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "13b8485a8690f103bf19cba64879c218b102b726" + "reference": "4d93cb95a80d9ffbff4018fe58ae3b7dd7f4b99b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/13b8485a8690f103bf19cba64879c218b102b726", - "reference": "13b8485a8690f103bf19cba64879c218b102b726", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/4d93cb95a80d9ffbff4018fe58ae3b7dd7f4b99b", + "reference": "4d93cb95a80d9ffbff4018fe58ae3b7dd7f4b99b", "shasum": "" }, "require": { "ext-json": "*", "php": "^7.1.8 || ^8.0", + "symfony/polyfill-mbstring": "^1.0", "symfony/translation": "^3.4 || ^4.0 || ^5.0" }, "require-dev": { + "doctrine/orm": "^2.7", "friendsofphp/php-cs-fixer": "^2.14 || ^3.0", "kylekatarnls/multi-tester": "^1.1", - "phpmd/phpmd": "dev-php-7.1-compatibility", + "phpmd/phpmd": "^2.8", "phpstan/phpstan": "^0.11", "phpunit/phpunit": "^7.5 || ^8.0", "squizlabs/php_codesniffer": "^3.4" @@ -1623,20 +1638,20 @@ "datetime", "time" ], - "time": "2019-11-20T06:59:06+00:00" + "time": "2020-04-20T15:05:43+00:00" }, { "name": "nikic/php-parser", - "version": "v4.3.0", + "version": "v4.4.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc" + "reference": "bd43ec7152eaaab3bd8c6d0aa95ceeb1df8ee120" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/9a9981c347c5c49d6dfe5cf826bb882b824080dc", - "reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/bd43ec7152eaaab3bd8c6d0aa95ceeb1df8ee120", + "reference": "bd43ec7152eaaab3bd8c6d0aa95ceeb1df8ee120", "shasum": "" }, "require": { @@ -1675,7 +1690,7 @@ "parser", "php" ], - "time": "2019-11-08T13:50:10+00:00" + "time": "2020-04-10T16:34:50+00:00" }, { "name": "opis/closure", @@ -1785,20 +1800,20 @@ }, { "name": "phpoption/phpoption", - "version": "1.7.1", + "version": "1.7.3", "source": { "type": "git", "url": "https://github.com/schmittjoh/php-option.git", - "reference": "100a25207566930efd926cf205542946aa692e01" + "reference": "4acfd6a4b33a509d8c88f50e5222f734b6aeebae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/100a25207566930efd926cf205542946aa692e01", - "reference": "100a25207566930efd926cf205542946aa692e01", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/4acfd6a4b33a509d8c88f50e5222f734b6aeebae", + "reference": "4acfd6a4b33a509d8c88f50e5222f734b6aeebae", "shasum": "" }, "require": { - "php": "^5.5.9 || ^7.0" + "php": "^5.5.9 || ^7.0 || ^8.0" }, "require-dev": { "bamarni/composer-bin-plugin": "^1.3", @@ -1836,7 +1851,7 @@ "php", "type" ], - "time": "2019-12-14T13:46:39+00:00" + "time": "2020-03-21T18:07:53+00:00" }, { "name": "predis/predis", @@ -1989,16 +2004,16 @@ }, { "name": "psr/log", - "version": "1.1.2", + "version": "1.1.3", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801" + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801", - "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801", + "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", "shasum": "" }, "require": { @@ -2032,7 +2047,7 @@ "psr", "psr-3" ], - "time": "2019-11-01T11:05:21+00:00" + "time": "2020-03-23T09:12:05+00:00" }, { "name": "psr/simple-cache", @@ -2198,16 +2213,16 @@ }, { "name": "ramsey/uuid", - "version": "3.9.2", + "version": "3.9.3", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "7779489a47d443f845271badbdcedfe4df8e06fb" + "reference": "7e1633a6964b48589b142d60542f9ed31bd37a92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/7779489a47d443f845271badbdcedfe4df8e06fb", - "reference": "7779489a47d443f845271badbdcedfe4df8e06fb", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/7e1633a6964b48589b142d60542f9ed31bd37a92", + "reference": "7e1633a6964b48589b142d60542f9ed31bd37a92", "shasum": "" }, "require": { @@ -2281,7 +2296,7 @@ "identifier", "uuid" ], - "time": "2019-12-17T08:18:51+00:00" + "time": "2020-02-21T04:36:14+00:00" }, { "name": "swiftmailer/swiftmailer", @@ -2347,16 +2362,16 @@ }, { "name": "symfony/console", - "version": "v4.4.1", + "version": "v4.4.8", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "f0aea3df20d15635b3cb9730ca5eea1c65b7f201" + "reference": "10bb3ee3c97308869d53b3e3d03f6ac23ff985f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/f0aea3df20d15635b3cb9730ca5eea1c65b7f201", - "reference": "f0aea3df20d15635b3cb9730ca5eea1c65b7f201", + "url": "https://api.github.com/repos/symfony/console/zipball/10bb3ee3c97308869d53b3e3d03f6ac23ff985f7", + "reference": "10bb3ee3c97308869d53b3e3d03f6ac23ff985f7", "shasum": "" }, "require": { @@ -2419,20 +2434,20 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2019-12-01T10:06:17+00:00" + "time": "2020-03-30T11:41:10+00:00" }, { "name": "symfony/css-selector", - "version": "v5.0.1", + "version": "v5.0.8", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "19d29e7098b7b2c3313cb03902ca30f100dcb837" + "reference": "5f8d5271303dad260692ba73dfa21777d38e124e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/19d29e7098b7b2c3313cb03902ca30f100dcb837", - "reference": "19d29e7098b7b2c3313cb03902ca30f100dcb837", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/5f8d5271303dad260692ba73dfa21777d38e124e", + "reference": "5f8d5271303dad260692ba73dfa21777d38e124e", "shasum": "" }, "require": { @@ -2472,20 +2487,20 @@ ], "description": "Symfony CssSelector Component", "homepage": "https://symfony.com", - "time": "2019-11-18T17:27:11+00:00" + "time": "2020-03-27T16:56:45+00:00" }, { "name": "symfony/debug", - "version": "v4.4.1", + "version": "v4.4.8", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "b8600a1d7d20b0e80906398bb1f50612fa074a8e" + "reference": "346636d2cae417992ecfd761979b2ab98b339a45" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/b8600a1d7d20b0e80906398bb1f50612fa074a8e", - "reference": "b8600a1d7d20b0e80906398bb1f50612fa074a8e", + "url": "https://api.github.com/repos/symfony/debug/zipball/346636d2cae417992ecfd761979b2ab98b339a45", + "reference": "346636d2cae417992ecfd761979b2ab98b339a45", "shasum": "" }, "require": { @@ -2528,26 +2543,26 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2019-11-28T13:33:56+00:00" + "time": "2020-03-27T16:54:36+00:00" }, { "name": "symfony/error-handler", - "version": "v4.4.1", + "version": "v4.4.8", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "a1ad02d62789efed1d2b2796f1c15e0c6a00fc3b" + "reference": "7e9828fc98aa1cf27b422fe478a84f5b0abb7358" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/a1ad02d62789efed1d2b2796f1c15e0c6a00fc3b", - "reference": "a1ad02d62789efed1d2b2796f1c15e0c6a00fc3b", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/7e9828fc98aa1cf27b422fe478a84f5b0abb7358", + "reference": "7e9828fc98aa1cf27b422fe478a84f5b0abb7358", "shasum": "" }, "require": { "php": "^7.1.3", "psr/log": "~1.0", - "symfony/debug": "^4.4", + "symfony/debug": "^4.4.5", "symfony/var-dumper": "^4.4|^5.0" }, "require-dev": { @@ -2584,20 +2599,20 @@ ], "description": "Symfony ErrorHandler Component", "homepage": "https://symfony.com", - "time": "2019-12-01T08:46:01+00:00" + "time": "2020-03-30T14:07:33+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v4.4.1", + "version": "v4.4.8", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "b3c3068a72623287550fe20b84a2b01dcba2686f" + "reference": "abc8e3618bfdb55e44c8c6a00abd333f831bbfed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b3c3068a72623287550fe20b84a2b01dcba2686f", - "reference": "b3c3068a72623287550fe20b84a2b01dcba2686f", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/abc8e3618bfdb55e44c8c6a00abd333f831bbfed", + "reference": "abc8e3618bfdb55e44c8c6a00abd333f831bbfed", "shasum": "" }, "require": { @@ -2654,7 +2669,7 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2019-11-28T13:33:56+00:00" + "time": "2020-03-27T16:54:36+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -2716,16 +2731,16 @@ }, { "name": "symfony/finder", - "version": "v4.4.1", + "version": "v4.4.8", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "ce8743441da64c41e2a667b8eb66070444ed911e" + "reference": "5729f943f9854c5781984ed4907bbb817735776b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/ce8743441da64c41e2a667b8eb66070444ed911e", - "reference": "ce8743441da64c41e2a667b8eb66070444ed911e", + "url": "https://api.github.com/repos/symfony/finder/zipball/5729f943f9854c5781984ed4907bbb817735776b", + "reference": "5729f943f9854c5781984ed4907bbb817735776b", "shasum": "" }, "require": { @@ -2761,20 +2776,20 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2019-11-17T21:56:56+00:00" + "time": "2020-03-27T16:54:36+00:00" }, { "name": "symfony/http-foundation", - "version": "v4.4.1", + "version": "v4.4.8", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "8bccc59e61b41963d14c3dbdb23181e5c932a1d5" + "reference": "ec5bd254c223786f5fa2bb49a1e705c1b8e7cee2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/8bccc59e61b41963d14c3dbdb23181e5c932a1d5", - "reference": "8bccc59e61b41963d14c3dbdb23181e5c932a1d5", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ec5bd254c223786f5fa2bb49a1e705c1b8e7cee2", + "reference": "ec5bd254c223786f5fa2bb49a1e705c1b8e7cee2", "shasum": "" }, "require": { @@ -2816,20 +2831,20 @@ ], "description": "Symfony HttpFoundation Component", "homepage": "https://symfony.com", - "time": "2019-11-28T13:33:56+00:00" + "time": "2020-04-18T20:40:08+00:00" }, { "name": "symfony/http-kernel", - "version": "v4.4.1", + "version": "v4.4.8", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "e4187780ed26129ee86d5234afbebf085e144f88" + "reference": "1799a6c01f0db5851f399151abdb5d6393fec277" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/e4187780ed26129ee86d5234afbebf085e144f88", - "reference": "e4187780ed26129ee86d5234afbebf085e144f88", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/1799a6c01f0db5851f399151abdb5d6393fec277", + "reference": "1799a6c01f0db5851f399151abdb5d6393fec277", "shasum": "" }, "require": { @@ -2906,20 +2921,20 @@ ], "description": "Symfony HttpKernel Component", "homepage": "https://symfony.com", - "time": "2019-12-01T14:06:38+00:00" + "time": "2020-04-28T18:47:42+00:00" }, { "name": "symfony/mime", - "version": "v5.0.1", + "version": "v5.0.8", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "0e6a4ced216e49d457eddcefb61132173a876d79" + "reference": "5d6c81c39225a750f3f43bee15f03093fb9aaa0b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/0e6a4ced216e49d457eddcefb61132173a876d79", - "reference": "0e6a4ced216e49d457eddcefb61132173a876d79", + "url": "https://api.github.com/repos/symfony/mime/zipball/5d6c81c39225a750f3f43bee15f03093fb9aaa0b", + "reference": "5d6c81c39225a750f3f43bee15f03093fb9aaa0b", "shasum": "" }, "require": { @@ -2968,20 +2983,20 @@ "mime", "mime-type" ], - "time": "2019-11-30T14:12:50+00:00" + "time": "2020-04-17T03:29:44+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.13.1", + "version": "v1.16.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3" + "reference": "1aab00e39cebaef4d8652497f46c15c1b7e45294" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", - "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/1aab00e39cebaef4d8652497f46c15c1b7e45294", + "reference": "1aab00e39cebaef4d8652497f46c15c1b7e45294", "shasum": "" }, "require": { @@ -2993,7 +3008,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.13-dev" + "dev-master": "1.16-dev" } }, "autoload": { @@ -3026,20 +3041,20 @@ "polyfill", "portable" ], - "time": "2019-11-27T13:56:44+00:00" + "time": "2020-05-08T16:50:20+00:00" }, { "name": "symfony/polyfill-iconv", - "version": "v1.13.1", + "version": "v1.16.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "a019efccc03f1a335af6b4f20c30f5ea8060be36" + "reference": "d51debc1391a609c514f6f072dd59a61b461502a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/a019efccc03f1a335af6b4f20c30f5ea8060be36", - "reference": "a019efccc03f1a335af6b4f20c30f5ea8060be36", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/d51debc1391a609c514f6f072dd59a61b461502a", + "reference": "d51debc1391a609c514f6f072dd59a61b461502a", "shasum": "" }, "require": { @@ -3051,7 +3066,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.13-dev" + "dev-master": "1.16-dev" } }, "autoload": { @@ -3085,26 +3100,26 @@ "portable", "shim" ], - "time": "2019-11-27T13:56:44+00:00" + "time": "2020-05-08T16:50:20+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.13.1", + "version": "v1.16.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "6f9c239e61e1b0c9229a28ff89a812dc449c3d46" + "reference": "ab0af41deab94ec8dceb3d1fb408bdd038eba4dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/6f9c239e61e1b0c9229a28ff89a812dc449c3d46", - "reference": "6f9c239e61e1b0c9229a28ff89a812dc449c3d46", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/ab0af41deab94ec8dceb3d1fb408bdd038eba4dc", + "reference": "ab0af41deab94ec8dceb3d1fb408bdd038eba4dc", "shasum": "" }, "require": { "php": ">=5.3.3", "symfony/polyfill-mbstring": "^1.3", - "symfony/polyfill-php72": "^1.9" + "symfony/polyfill-php72": "^1.10" }, "suggest": { "ext-intl": "For best performance" @@ -3112,7 +3127,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.13-dev" + "dev-master": "1.16-dev" } }, "autoload": { @@ -3147,20 +3162,20 @@ "portable", "shim" ], - "time": "2019-11-27T13:56:44+00:00" + "time": "2020-05-08T16:50:20+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.13.1", + "version": "v1.16.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f" + "reference": "a54881ec0ab3b2005c406aed0023c062879031e7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7b4aab9743c30be783b73de055d24a39cf4b954f", - "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/a54881ec0ab3b2005c406aed0023c062879031e7", + "reference": "a54881ec0ab3b2005c406aed0023c062879031e7", "shasum": "" }, "require": { @@ -3172,7 +3187,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.13-dev" + "dev-master": "1.16-dev" } }, "autoload": { @@ -3206,20 +3221,20 @@ "portable", "shim" ], - "time": "2019-11-27T14:18:11+00:00" + "time": "2020-05-08T16:50:20+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.13.1", + "version": "v1.16.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "66fea50f6cb37a35eea048d75a7d99a45b586038" + "reference": "42fda6d7380e5c940d7f68341ccae89d5ab9963b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/66fea50f6cb37a35eea048d75a7d99a45b586038", - "reference": "66fea50f6cb37a35eea048d75a7d99a45b586038", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/42fda6d7380e5c940d7f68341ccae89d5ab9963b", + "reference": "42fda6d7380e5c940d7f68341ccae89d5ab9963b", "shasum": "" }, "require": { @@ -3228,7 +3243,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.13-dev" + "dev-master": "1.16-dev" } }, "autoload": { @@ -3261,20 +3276,20 @@ "portable", "shim" ], - "time": "2019-11-27T13:56:44+00:00" + "time": "2020-05-08T17:28:34+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.13.1", + "version": "v1.16.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "4b0e2222c55a25b4541305a053013d5647d3a25f" + "reference": "7e95fe59d12169fcf4041487e4bf34fca37ee0ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/4b0e2222c55a25b4541305a053013d5647d3a25f", - "reference": "4b0e2222c55a25b4541305a053013d5647d3a25f", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/7e95fe59d12169fcf4041487e4bf34fca37ee0ed", + "reference": "7e95fe59d12169fcf4041487e4bf34fca37ee0ed", "shasum": "" }, "require": { @@ -3283,7 +3298,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.13-dev" + "dev-master": "1.16-dev" } }, "autoload": { @@ -3319,20 +3334,20 @@ "portable", "shim" ], - "time": "2019-11-27T16:25:15+00:00" + "time": "2020-05-02T14:56:09+00:00" }, { "name": "symfony/process", - "version": "v4.4.1", + "version": "v4.4.8", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "51c0135ef3f44c5803b33dc60e96bf4f77752726" + "reference": "4b6a9a4013baa65d409153cbb5a895bf093dc7f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/51c0135ef3f44c5803b33dc60e96bf4f77752726", - "reference": "51c0135ef3f44c5803b33dc60e96bf4f77752726", + "url": "https://api.github.com/repos/symfony/process/zipball/4b6a9a4013baa65d409153cbb5a895bf093dc7f4", + "reference": "4b6a9a4013baa65d409153cbb5a895bf093dc7f4", "shasum": "" }, "require": { @@ -3368,20 +3383,20 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2019-11-28T13:33:56+00:00" + "time": "2020-04-15T15:56:18+00:00" }, { "name": "symfony/routing", - "version": "v4.4.1", + "version": "v4.4.8", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "51f3f20ad29329a0bdf5c0e2f722d3764b065273" + "reference": "67b4e1f99c050cbc310b8f3d0dbdc4b0212c052c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/51f3f20ad29329a0bdf5c0e2f722d3764b065273", - "reference": "51f3f20ad29329a0bdf5c0e2f722d3764b065273", + "url": "https://api.github.com/repos/symfony/routing/zipball/67b4e1f99c050cbc310b8f3d0dbdc4b0212c052c", + "reference": "67b4e1f99c050cbc310b8f3d0dbdc4b0212c052c", "shasum": "" }, "require": { @@ -3444,7 +3459,7 @@ "uri", "url" ], - "time": "2019-12-01T08:39:58+00:00" + "time": "2020-04-21T19:59:53+00:00" }, { "name": "symfony/service-contracts", @@ -3506,16 +3521,16 @@ }, { "name": "symfony/translation", - "version": "v4.4.1", + "version": "v4.4.8", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "897fb68ee7933372517b551d6f08c6d4bb0b8c40" + "reference": "8272bbd2b7e220ef812eba2a2b30068a5c64b191" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/897fb68ee7933372517b551d6f08c6d4bb0b8c40", - "reference": "897fb68ee7933372517b551d6f08c6d4bb0b8c40", + "url": "https://api.github.com/repos/symfony/translation/zipball/8272bbd2b7e220ef812eba2a2b30068a5c64b191", + "reference": "8272bbd2b7e220ef812eba2a2b30068a5c64b191", "shasum": "" }, "require": { @@ -3578,7 +3593,7 @@ ], "description": "Symfony Translation Component", "homepage": "https://symfony.com", - "time": "2019-11-12T17:18:47+00:00" + "time": "2020-04-12T16:45:36+00:00" }, { "name": "symfony/translation-contracts", @@ -3639,16 +3654,16 @@ }, { "name": "symfony/var-dumper", - "version": "v4.4.2", + "version": "v4.4.8", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "be330f919bdb395d1e0c3f2bfb8948512d6bdd99" + "reference": "c587e04ce5d1aa62d534a038f574d9a709e814cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/be330f919bdb395d1e0c3f2bfb8948512d6bdd99", - "reference": "be330f919bdb395d1e0c3f2bfb8948512d6bdd99", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c587e04ce5d1aa62d534a038f574d9a709e814cf", + "reference": "c587e04ce5d1aa62d534a038f574d9a709e814cf", "shasum": "" }, "require": { @@ -3711,7 +3726,7 @@ "debug", "dump" ], - "time": "2019-12-18T13:41:29+00:00" + "time": "2020-04-12T16:14:02+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -3815,26 +3830,32 @@ }, { "name": "vlucas/phpdotenv", - "version": "v3.6.0", + "version": "v3.6.4", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "1bdf24f065975594f6a117f0f1f6cabf1333b156" + "reference": "10d3f853fdf1f3a6b3c7ea0c4620d2f699713db5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/1bdf24f065975594f6a117f0f1f6cabf1333b156", - "reference": "1bdf24f065975594f6a117f0f1f6cabf1333b156", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/10d3f853fdf1f3a6b3c7ea0c4620d2f699713db5", + "reference": "10d3f853fdf1f3a6b3c7ea0c4620d2f699713db5", "shasum": "" }, "require": { - "php": "^5.4 || ^7.0", + "php": "^5.4 || ^7.0 || ^8.0", "phpoption/phpoption": "^1.5", "symfony/polyfill-ctype": "^1.9" }, "require-dev": { + "ext-filter": "*", + "ext-pcre": "*", "phpunit/phpunit": "^4.8.35 || ^5.0 || ^6.0 || ^7.0" }, + "suggest": { + "ext-filter": "Required to use the boolean validator.", + "ext-pcre": "Required to use most of the library." + }, "type": "library", "extra": { "branch-alias": { @@ -3868,7 +3889,7 @@ "env", "environment" ], - "time": "2019-09-10T21:37:39+00:00" + "time": "2020-05-02T13:46:13+00:00" } ], "packages-dev": [ @@ -3991,16 +4012,16 @@ }, { "name": "filp/whoops", - "version": "2.5.0", + "version": "2.7.2", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "cde50e6720a39fdacb240159d3eea6865d51fd96" + "reference": "17d0d3f266c8f925ebd035cd36f83cf802b47d4a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/cde50e6720a39fdacb240159d3eea6865d51fd96", - "reference": "cde50e6720a39fdacb240159d3eea6865d51fd96", + "url": "https://api.github.com/repos/filp/whoops/zipball/17d0d3f266c8f925ebd035cd36f83cf802b47d4a", + "reference": "17d0d3f266c8f925ebd035cd36f83cf802b47d4a", "shasum": "" }, "require": { @@ -4009,8 +4030,8 @@ }, "require-dev": { "mockery/mockery": "^0.9 || ^1.0", - "phpunit/phpunit": "^4.8.35 || ^5.7", - "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0" + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0", + "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0 || ^5.0" }, "suggest": { "symfony/var-dumper": "Pretty print complex values better with var-dumper available", @@ -4019,7 +4040,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2-dev" + "dev-master": "2.6-dev" } }, "autoload": { @@ -4048,7 +4069,7 @@ "throwable", "whoops" ], - "time": "2019-08-07T09:00:00+00:00" + "time": "2020-05-05T12:28:07+00:00" }, { "name": "fzaninotto/faker", @@ -4150,23 +4171,22 @@ }, { "name": "mockery/mockery", - "version": "1.3.0", + "version": "1.3.1", "source": { "type": "git", "url": "https://github.com/mockery/mockery.git", - "reference": "5571962a4f733fbb57bede39778f71647fae8e66" + "reference": "f69bbde7d7a75d6b2862d9ca8fab1cd28014b4be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/5571962a4f733fbb57bede39778f71647fae8e66", - "reference": "5571962a4f733fbb57bede39778f71647fae8e66", + "url": "https://api.github.com/repos/mockery/mockery/zipball/f69bbde7d7a75d6b2862d9ca8fab1cd28014b4be", + "reference": "f69bbde7d7a75d6b2862d9ca8fab1cd28014b4be", "shasum": "" }, "require": { "hamcrest/hamcrest-php": "~2.0", "lib-pcre": ">=7.0", - "php": ">=5.6.0", - "sebastian/comparator": "^1.2.4|^3.0" + "php": ">=5.6.0" }, "require-dev": { "phpunit/phpunit": "~5.7.10|~6.5|~7.0|~8.0" @@ -4174,7 +4194,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" + "dev-master": "1.3.x-dev" } }, "autoload": { @@ -4212,20 +4232,20 @@ "test double", "testing" ], - "time": "2019-11-24T07:54:50+00:00" + "time": "2019-12-26T09:49:15+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.9.3", + "version": "1.9.5", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "007c053ae6f31bba39dfa19a7726f56e9763bbea" + "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/007c053ae6f31bba39dfa19a7726f56e9763bbea", - "reference": "007c053ae6f31bba39dfa19a7726f56e9763bbea", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/b2c28789e80a97badd14145fda39b545d83ca3ef", + "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef", "shasum": "" }, "require": { @@ -4260,7 +4280,7 @@ "object", "object graph" ], - "time": "2019-08-09T12:45:53+00:00" + "time": "2020-01-17T21:11:47+00:00" }, { "name": "nunomaduro/collision", @@ -4430,24 +4450,21 @@ }, { "name": "phpdocumentor/reflection-common", - "version": "2.0.0", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a" + "reference": "6568f4687e5b41b054365f9ae03fcb1ed5f2069b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/63a995caa1ca9e5590304cd845c15ad6d482a62a", - "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/6568f4687e5b41b054365f9ae03fcb1ed5f2069b", + "reference": "6568f4687e5b41b054365f9ae03fcb1ed5f2069b", "shasum": "" }, "require": { "php": ">=7.1" }, - "require-dev": { - "phpunit/phpunit": "~6" - }, "type": "library", "extra": { "branch-alias": { @@ -4478,44 +4495,42 @@ "reflection", "static analysis" ], - "time": "2018-08-07T13:53:10+00:00" + "time": "2020-04-27T09:25:28+00:00" }, { "name": "phpdocumentor/reflection-docblock", - "version": "4.3.2", + "version": "5.1.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "b83ff7cfcfee7827e1e78b637a5904fe6a96698e" + "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/b83ff7cfcfee7827e1e78b637a5904fe6a96698e", - "reference": "b83ff7cfcfee7827e1e78b637a5904fe6a96698e", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e", + "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e", "shasum": "" }, "require": { - "php": "^7.0", - "phpdocumentor/reflection-common": "^1.0.0 || ^2.0.0", - "phpdocumentor/type-resolver": "~0.4 || ^1.0.0", - "webmozart/assert": "^1.0" + "ext-filter": "^7.1", + "php": "^7.2", + "phpdocumentor/reflection-common": "^2.0", + "phpdocumentor/type-resolver": "^1.0", + "webmozart/assert": "^1" }, "require-dev": { - "doctrine/instantiator": "^1.0.5", - "mockery/mockery": "^1.0", - "phpunit/phpunit": "^6.4" + "doctrine/instantiator": "^1", + "mockery/mockery": "^1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.x-dev" + "dev-master": "5.x-dev" } }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] + "phpDocumentor\\Reflection\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -4526,33 +4541,36 @@ { "name": "Mike van Riel", "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "account@ijaap.nl" } ], "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2019-09-12T14:27:41+00:00" + "time": "2020-02-22T12:28:44+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "1.0.1", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9" + "reference": "7462d5f123dfc080dfdf26897032a6513644fc95" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", - "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/7462d5f123dfc080dfdf26897032a6513644fc95", + "reference": "7462d5f123dfc080dfdf26897032a6513644fc95", "shasum": "" }, "require": { - "php": "^7.1", + "php": "^7.2", "phpdocumentor/reflection-common": "^2.0" }, "require-dev": { - "ext-tokenizer": "^7.1", - "mockery/mockery": "~1", - "phpunit/phpunit": "^7.0" + "ext-tokenizer": "^7.2", + "mockery/mockery": "~1" }, "type": "library", "extra": { @@ -4576,37 +4594,37 @@ } ], "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "time": "2019-08-22T18:11:29+00:00" + "time": "2020-02-18T18:59:58+00:00" }, { "name": "phpspec/prophecy", - "version": "1.9.0", + "version": "v1.10.3", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "f6811d96d97bdf400077a0cc100ae56aa32b9203" + "reference": "451c3cd1418cf640de218914901e51b064abb093" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/f6811d96d97bdf400077a0cc100ae56aa32b9203", - "reference": "f6811d96d97bdf400077a0cc100ae56aa32b9203", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/451c3cd1418cf640de218914901e51b064abb093", + "reference": "451c3cd1418cf640de218914901e51b064abb093", "shasum": "" }, "require": { "doctrine/instantiator": "^1.0.2", "php": "^5.3|^7.0", "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", - "sebastian/comparator": "^1.1|^2.0|^3.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0" + "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0", + "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0" }, "require-dev": { - "phpspec/phpspec": "^2.5|^3.2", + "phpspec/phpspec": "^2.5 || ^3.2", "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.8.x-dev" + "dev-master": "1.10.x-dev" } }, "autoload": { @@ -4639,7 +4657,7 @@ "spy", "stub" ], - "time": "2019-10-03T11:07:50+00:00" + "time": "2020-03-05T15:02:03+00:00" }, { "name": "phpunit/php-code-coverage", @@ -4895,16 +4913,16 @@ }, { "name": "phpunit/phpunit", - "version": "7.5.18", + "version": "7.5.20", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "fcf6c4bfafaadc07785528b06385cce88935474d" + "reference": "9467db479d1b0487c99733bb1e7944d32deded2c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/fcf6c4bfafaadc07785528b06385cce88935474d", - "reference": "fcf6c4bfafaadc07785528b06385cce88935474d", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9467db479d1b0487c99733bb1e7944d32deded2c", + "reference": "9467db479d1b0487c99733bb1e7944d32deded2c", "shasum": "" }, "require": { @@ -4975,7 +4993,7 @@ "testing", "xunit" ], - "time": "2019-12-06T05:14:37+00:00" + "time": "2020-01-08T08:45:45+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", @@ -5585,16 +5603,16 @@ }, { "name": "webmozart/assert", - "version": "1.6.0", + "version": "1.8.0", "source": { "type": "git", "url": "https://github.com/webmozart/assert.git", - "reference": "573381c0a64f155a0d9a23f4b0c797194805b925" + "reference": "ab2cb0b3b559010b75981b1bdce728da3ee90ad6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/573381c0a64f155a0d9a23f4b0c797194805b925", - "reference": "573381c0a64f155a0d9a23f4b0c797194805b925", + "url": "https://api.github.com/repos/webmozart/assert/zipball/ab2cb0b3b559010b75981b1bdce728da3ee90ad6", + "reference": "ab2cb0b3b559010b75981b1bdce728da3ee90ad6", "shasum": "" }, "require": { @@ -5602,7 +5620,7 @@ "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "vimeo/psalm": "<3.6.0" + "vimeo/psalm": "<3.9.1" }, "require-dev": { "phpunit/phpunit": "^4.8.36 || ^7.5.13" @@ -5629,7 +5647,7 @@ "check", "validate" ], - "time": "2019-11-24T13:36:37+00:00" + "time": "2020-04-18T12:12:48+00:00" } ], "aliases": [], diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php index fce8549f0..dc02dfb11 100644 --- a/vendor/composer/ClassLoader.php +++ b/vendor/composer/ClassLoader.php @@ -279,7 +279,7 @@ class ClassLoader */ public function setApcuPrefix($apcuPrefix) { - $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; + $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; } /** @@ -377,7 +377,7 @@ class ClassLoader $subPath = $class; while (false !== $lastPos = strrpos($subPath, '\\')) { $subPath = substr($subPath, 0, $lastPos); - $search = $subPath . '\\'; + $search = $subPath.'\\'; if (isset($this->prefixDirsPsr4[$search])) { $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); foreach ($this->prefixDirsPsr4[$search] as $dir) { diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 2f207b3bc..81ef95e46 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -15,11 +15,10 @@ return array( 'App\\Console\\Commands\\Finances\\SovBillsCommand' => $baseDir . '/app/Console/Commands/Finances/SovBills.php', 'App\\Console\\Commands\\Flex\\FlexStructureCommand' => $baseDir . '/app/Console/Commands/Flex/FlexStructureCommand.php', 'App\\Console\\Commands\\Moons\\FetchMoonLedgerCommand' => $baseDir . '/app/Console/Commands/Moons/FetchMoonLedgerCommand.php', - 'App\\Console\\Commands\\Moons\\FetchMoonObserversCommand' => $baseDir . '/app/Console/Commands/Moons/FetchMoonObserversCommand.php', 'App\\Console\\Commands\\Moons\\FetchRentalMoonLedgerCommand' => $baseDir . '/app/Console/Commands/Moons/FetchRentalMoonLedgerCommand.php', - 'App\\Console\\Commands\\Moons\\FetchRentalMoonObserversCommand' => $baseDir . '/app/Console/Commands/Moons/FetchRentalMoonObserversCommand.php', 'App\\Console\\Commands\\Moons\\MoonMailerCommand' => $baseDir . '/app/Console/Commands/Moons/MoonMailer.php', 'App\\Console\\Commands\\Moons\\UpdateMoonPriceCommand' => $baseDir . '/app/Console/Commands/Moons/UpdateMoonPricing.php', + 'App\\Console\\Commands\\ProcessMoonRentalCommand' => $baseDir . '/app/Console/Commands/Moons/ProcessMoonRentalCommand.php', 'App\\Console\\Commands\\Structures\\GetStructuresCommand' => $baseDir . '/app/Console/Commands/Structures/GetStructures.php', 'App\\Console\\Commands\\Users\\PurgeUsers' => $baseDir . '/app/Console/Commands/Users/PurgeUsers.php', 'App\\Console\\Commands\\Wormholes\\PurgeWormholes' => $baseDir . '/app/Console/Commands/Wormholes/PurgeWormholes.php', @@ -60,6 +59,12 @@ return array( 'App\\Http\\Middleware\\TrustProxies' => $baseDir . '/app/Http/Middleware/TrustProxies.php', 'App\\Http\\Middleware\\VerifyCsrfToken' => $baseDir . '/app/Http/Middleware/VerifyCsrfToken.php', 'App\\JobProcessCorpJournal' => $baseDir . '/app/Models/Jobs/JobProcessCorpJournal.php', + 'App\\Jobs\\Commands\\FetchMoonObserversJob' => $baseDir . '/app/Jobs/Commands/FetchMoonObserversJob.php', + 'App\\Jobs\\Commands\\FetchRentalMoonLedgerJob' => $baseDir . '/app/Jobs/Commands/FetchRentalMoonLedgerJob.php', + 'App\\Jobs\\Commands\\FetchRentalMoonObserversJob' => $baseDir . '/app/Jobs/Commands/FetchRentalMoonObserversJob.php', + 'App\\Jobs\\FetchMoonLedgerJob' => $baseDir . '/app/Jobs/Commands/FetchMoonLedgerJob.php', + 'App\\Jobs\\MoonRentalInvoiceJob' => $baseDir . '/app/Jobs/Commands/MoonRentalInvoiceJob.php', + 'App\\Jobs\\MoonRentalPaymentJob' => $baseDir . '/app/Jobs/Commands/MoonRentalPaymentJob.php', 'App\\Jobs\\ProcessAssetsJob' => $baseDir . '/app/Jobs/ProcessAssetsJob.php', 'App\\Jobs\\ProcessSendEveMailJob' => $baseDir . '/app/Jobs/ProcessSendEveMailJob.php', 'App\\Jobs\\ProcessStructureJob' => $baseDir . '/app/Jobs/ProcessStructureJob.php', @@ -124,6 +129,8 @@ return array( 'App\\Models\\Mail\\EveMail' => $baseDir . '/app/Models/Mail/EveMail.php', 'App\\Models\\Mail\\SentMail' => $baseDir . '/app/Models/Mail/SentMail.php', 'App\\Models\\MoonRent\\MoonRental' => $baseDir . '/app/Models/MoonRentals/MoonRental.php', + 'App\\Models\\MoonRent\\MoonRentalInvoice' => $baseDir . '/app/Models/MoonRentals/MoonRentalInvoice.php', + 'App\\Models\\MoonRent\\MoonRentalPayment' => $baseDir . '/app/Models/MoonRentals/MoonRentalPayment.php', 'App\\Models\\Moon\\AllianceMoon' => $baseDir . '/app/Models/Moon/AllianceMoon.php', 'App\\Models\\Moon\\AllianceMoonRequest' => $baseDir . '/app/Models/Moon/AllianceMoonRequest.php', 'App\\Models\\Moon\\Config' => $baseDir . '/app/Models/Moon/Config.php', @@ -194,9 +201,14 @@ return array( 'Carbon\\CarbonPeriod' => $vendorDir . '/nesbot/carbon/src/Carbon/CarbonPeriod.php', 'Carbon\\CarbonTimeZone' => $vendorDir . '/nesbot/carbon/src/Carbon/CarbonTimeZone.php', 'Carbon\\Cli\\Invoker' => $vendorDir . '/nesbot/carbon/src/Carbon/Cli/Invoker.php', + 'Carbon\\Doctrine\\CarbonType' => $vendorDir . '/nesbot/carbon/src/Carbon/Doctrine/CarbonType.php', + 'Carbon\\Doctrine\\DateTimeDefaultPrecision' => $vendorDir . '/nesbot/carbon/src/Carbon/Doctrine/DateTimeDefaultPrecision.php', + 'Carbon\\Doctrine\\DateTimeImmutableType' => $vendorDir . '/nesbot/carbon/src/Carbon/Doctrine/DateTimeImmutableType.php', + 'Carbon\\Doctrine\\DateTimeType' => $vendorDir . '/nesbot/carbon/src/Carbon/Doctrine/DateTimeType.php', 'Carbon\\Exceptions\\BadUnitException' => $vendorDir . '/nesbot/carbon/src/Carbon/Exceptions/BadUnitException.php', 'Carbon\\Exceptions\\InvalidDateException' => $vendorDir . '/nesbot/carbon/src/Carbon/Exceptions/InvalidDateException.php', 'Carbon\\Exceptions\\NotAPeriodException' => $vendorDir . '/nesbot/carbon/src/Carbon/Exceptions/NotAPeriodException.php', + 'Carbon\\Exceptions\\NotLocaleAwareException' => $vendorDir . '/nesbot/carbon/src/Carbon/Exceptions/NotLocaleAwareException.php', 'Carbon\\Exceptions\\ParseErrorException' => $vendorDir . '/nesbot/carbon/src/Carbon/Exceptions/ParseErrorException.php', 'Carbon\\Factory' => $vendorDir . '/nesbot/carbon/src/Carbon/Factory.php', 'Carbon\\FactoryImmutable' => $vendorDir . '/nesbot/carbon/src/Carbon/FactoryImmutable.php', @@ -214,6 +226,7 @@ return array( 'Carbon\\Traits\\Mixin' => $vendorDir . '/nesbot/carbon/src/Carbon/Traits/Mixin.php', 'Carbon\\Traits\\Modifiers' => $vendorDir . '/nesbot/carbon/src/Carbon/Traits/Modifiers.php', 'Carbon\\Traits\\Mutability' => $vendorDir . '/nesbot/carbon/src/Carbon/Traits/Mutability.php', + 'Carbon\\Traits\\ObjectInitialisation' => $vendorDir . '/nesbot/carbon/src/Carbon/Traits/ObjectInitialisation.php', 'Carbon\\Traits\\Options' => $vendorDir . '/nesbot/carbon/src/Carbon/Traits/Options.php', 'Carbon\\Traits\\Rounding' => $vendorDir . '/nesbot/carbon/src/Carbon/Traits/Rounding.php', 'Carbon\\Traits\\Serialization' => $vendorDir . '/nesbot/carbon/src/Carbon/Traits/Serialization.php', @@ -287,12 +300,54 @@ return array( 'DeepCopy\\TypeFilter\\Date\\DateIntervalFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DateIntervalFilter.php', 'DeepCopy\\TypeFilter\\ReplaceFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/ReplaceFilter.php', 'DeepCopy\\TypeFilter\\ShallowCopyFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/ShallowCopyFilter.php', + 'DeepCopy\\TypeFilter\\Spl\\ArrayObjectFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/ArrayObjectFilter.php', 'DeepCopy\\TypeFilter\\Spl\\SplDoublyLinkedList' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedList.php', 'DeepCopy\\TypeFilter\\Spl\\SplDoublyLinkedListFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedListFilter.php', 'DeepCopy\\TypeFilter\\TypeFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/TypeFilter.php', 'DeepCopy\\TypeMatcher\\TypeMatcher' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeMatcher/TypeMatcher.php', 'Doctrine\\Common\\Inflector\\Inflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Common/Inflector/Inflector.php', 'Doctrine\\Common\\Lexer\\AbstractLexer' => $vendorDir . '/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php', + 'Doctrine\\Inflector\\CachedWordInflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php', + 'Doctrine\\Inflector\\GenericLanguageInflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/GenericLanguageInflectorFactory.php', + 'Doctrine\\Inflector\\Inflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Inflector.php', + 'Doctrine\\Inflector\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php', + 'Doctrine\\Inflector\\Language' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Language.php', + 'Doctrine\\Inflector\\LanguageInflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/LanguageInflectorFactory.php', + 'Doctrine\\Inflector\\NoopWordInflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/NoopWordInflector.php', + 'Doctrine\\Inflector\\Rules\\English\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Inflectible.php', + 'Doctrine\\Inflector\\Rules\\English\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/InflectorFactory.php', + 'Doctrine\\Inflector\\Rules\\English\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Rules.php', + 'Doctrine\\Inflector\\Rules\\English\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Uninflected.php', + 'Doctrine\\Inflector\\Rules\\French\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Inflectible.php', + 'Doctrine\\Inflector\\Rules\\French\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/InflectorFactory.php', + 'Doctrine\\Inflector\\Rules\\French\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Rules.php', + 'Doctrine\\Inflector\\Rules\\French\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Uninflected.php', + 'Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Inflectible.php', + 'Doctrine\\Inflector\\Rules\\NorwegianBokmal\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/InflectorFactory.php', + 'Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Rules.php', + 'Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Uninflected.php', + 'Doctrine\\Inflector\\Rules\\Pattern' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Pattern.php', + 'Doctrine\\Inflector\\Rules\\Patterns' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Patterns.php', + 'Doctrine\\Inflector\\Rules\\Portuguese\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Inflectible.php', + 'Doctrine\\Inflector\\Rules\\Portuguese\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/InflectorFactory.php', + 'Doctrine\\Inflector\\Rules\\Portuguese\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Rules.php', + 'Doctrine\\Inflector\\Rules\\Portuguese\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Uninflected.php', + 'Doctrine\\Inflector\\Rules\\Ruleset' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Ruleset.php', + 'Doctrine\\Inflector\\Rules\\Spanish\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Inflectible.php', + 'Doctrine\\Inflector\\Rules\\Spanish\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/InflectorFactory.php', + 'Doctrine\\Inflector\\Rules\\Spanish\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Rules.php', + 'Doctrine\\Inflector\\Rules\\Spanish\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Uninflected.php', + 'Doctrine\\Inflector\\Rules\\Substitution' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitution.php', + 'Doctrine\\Inflector\\Rules\\Substitutions' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitutions.php', + 'Doctrine\\Inflector\\Rules\\Transformation' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformation.php', + 'Doctrine\\Inflector\\Rules\\Transformations' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformations.php', + 'Doctrine\\Inflector\\Rules\\Turkish\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Inflectible.php', + 'Doctrine\\Inflector\\Rules\\Turkish\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/InflectorFactory.php', + 'Doctrine\\Inflector\\Rules\\Turkish\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Rules.php', + 'Doctrine\\Inflector\\Rules\\Turkish\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Uninflected.php', + 'Doctrine\\Inflector\\Rules\\Word' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Word.php', + 'Doctrine\\Inflector\\RulesetInflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/RulesetInflector.php', + 'Doctrine\\Inflector\\WordInflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/WordInflector.php', 'Doctrine\\Instantiator\\Exception\\ExceptionInterface' => $vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php', 'Doctrine\\Instantiator\\Exception\\InvalidArgumentException' => $vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator/Exception/InvalidArgumentException.php', 'Doctrine\\Instantiator\\Exception\\UnexpectedValueException' => $vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php', @@ -909,6 +964,7 @@ return array( 'GuzzleHttp\\RetryMiddleware' => $vendorDir . '/guzzlehttp/guzzle/src/RetryMiddleware.php', 'GuzzleHttp\\TransferStats' => $vendorDir . '/guzzlehttp/guzzle/src/TransferStats.php', 'GuzzleHttp\\UriTemplate' => $vendorDir . '/guzzlehttp/guzzle/src/UriTemplate.php', + 'GuzzleHttp\\Utils' => $vendorDir . '/guzzlehttp/guzzle/src/Utils.php', 'Hamcrest\\Arrays\\IsArray' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArray.php', 'Hamcrest\\Arrays\\IsArrayContaining' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContaining.php', 'Hamcrest\\Arrays\\IsArrayContainingInAnyOrder' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInAnyOrder.php', @@ -2028,7 +2084,6 @@ return array( 'Laravel\\Horizon\\Listeners\\StoreJob' => $vendorDir . '/laravel/horizon/src/Listeners/StoreJob.php', 'Laravel\\Horizon\\Listeners\\StoreMonitoredTags' => $vendorDir . '/laravel/horizon/src/Listeners/StoreMonitoredTags.php', 'Laravel\\Horizon\\Listeners\\StoreTagsForFailedJob' => $vendorDir . '/laravel/horizon/src/Listeners/StoreTagsForFailedJob.php', - 'Laravel\\Horizon\\Listeners\\StoreTagsForRecentJob' => $vendorDir . '/laravel/horizon/src/Listeners/StoreTagsForRecentJob.php', 'Laravel\\Horizon\\Listeners\\TrimFailedJobs' => $vendorDir . '/laravel/horizon/src/Listeners/TrimFailedJobs.php', 'Laravel\\Horizon\\Listeners\\TrimMonitoredJobs' => $vendorDir . '/laravel/horizon/src/Listeners/TrimMonitoredJobs.php', 'Laravel\\Horizon\\Listeners\\TrimRecentJobs' => $vendorDir . '/laravel/horizon/src/Listeners/TrimRecentJobs.php', @@ -2111,15 +2166,19 @@ return array( 'League\\Flysystem\\Adapter\\SynologyFtp' => $vendorDir . '/league/flysystem/src/Adapter/SynologyFtp.php', 'League\\Flysystem\\Config' => $vendorDir . '/league/flysystem/src/Config.php', 'League\\Flysystem\\ConfigAwareTrait' => $vendorDir . '/league/flysystem/src/ConfigAwareTrait.php', + 'League\\Flysystem\\ConnectionErrorException' => $vendorDir . '/league/flysystem/src/ConnectionErrorException.php', + 'League\\Flysystem\\ConnectionRuntimeException' => $vendorDir . '/league/flysystem/src/ConnectionRuntimeException.php', 'League\\Flysystem\\Directory' => $vendorDir . '/league/flysystem/src/Directory.php', 'League\\Flysystem\\Exception' => $vendorDir . '/league/flysystem/src/Exception.php', 'League\\Flysystem\\File' => $vendorDir . '/league/flysystem/src/File.php', 'League\\Flysystem\\FileExistsException' => $vendorDir . '/league/flysystem/src/FileExistsException.php', 'League\\Flysystem\\FileNotFoundException' => $vendorDir . '/league/flysystem/src/FileNotFoundException.php', 'League\\Flysystem\\Filesystem' => $vendorDir . '/league/flysystem/src/Filesystem.php', + 'League\\Flysystem\\FilesystemException' => $vendorDir . '/league/flysystem/src/FilesystemException.php', 'League\\Flysystem\\FilesystemInterface' => $vendorDir . '/league/flysystem/src/FilesystemInterface.php', 'League\\Flysystem\\FilesystemNotFoundException' => $vendorDir . '/league/flysystem/src/FilesystemNotFoundException.php', 'League\\Flysystem\\Handler' => $vendorDir . '/league/flysystem/src/Handler.php', + 'League\\Flysystem\\InvalidRootException' => $vendorDir . '/league/flysystem/src/InvalidRootException.php', 'League\\Flysystem\\MountManager' => $vendorDir . '/league/flysystem/src/MountManager.php', 'League\\Flysystem\\NotSupportedException' => $vendorDir . '/league/flysystem/src/NotSupportedException.php', 'League\\Flysystem\\PluginInterface' => $vendorDir . '/league/flysystem/src/PluginInterface.php', @@ -3421,7 +3480,7 @@ return array( 'Psr\\Log\\LoggerInterface' => $vendorDir . '/psr/log/Psr/Log/LoggerInterface.php', 'Psr\\Log\\LoggerTrait' => $vendorDir . '/psr/log/Psr/Log/LoggerTrait.php', 'Psr\\Log\\NullLogger' => $vendorDir . '/psr/log/Psr/Log/NullLogger.php', - 'Psr\\Log\\Test\\DummyTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php', + 'Psr\\Log\\Test\\DummyTest' => $vendorDir . '/psr/log/Psr/Log/Test/DummyTest.php', 'Psr\\Log\\Test\\LoggerInterfaceTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php', 'Psr\\Log\\Test\\TestLogger' => $vendorDir . '/psr/log/Psr/Log/Test/TestLogger.php', 'Psr\\SimpleCache\\CacheException' => $vendorDir . '/psr/simple-cache/src/CacheException.php', @@ -3768,6 +3827,7 @@ return array( 'Symfony\\Component\\Console\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/console/Exception/InvalidArgumentException.php', 'Symfony\\Component\\Console\\Exception\\InvalidOptionException' => $vendorDir . '/symfony/console/Exception/InvalidOptionException.php', 'Symfony\\Component\\Console\\Exception\\LogicException' => $vendorDir . '/symfony/console/Exception/LogicException.php', + 'Symfony\\Component\\Console\\Exception\\MissingInputException' => $vendorDir . '/symfony/console/Exception/MissingInputException.php', 'Symfony\\Component\\Console\\Exception\\NamespaceNotFoundException' => $vendorDir . '/symfony/console/Exception/NamespaceNotFoundException.php', 'Symfony\\Component\\Console\\Exception\\RuntimeException' => $vendorDir . '/symfony/console/Exception/RuntimeException.php', 'Symfony\\Component\\Console\\Formatter\\OutputFormatter' => $vendorDir . '/symfony/console/Formatter/OutputFormatter.php', @@ -4519,11 +4579,11 @@ return array( 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Deprecated' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Deprecated.php', 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Example' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Example.php', 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Factory\\StaticMethod' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/StaticMethod.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Factory\\Strategy' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/Strategy.php', 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Formatter' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter.php', 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Formatter\\AlignFormatter' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/AlignFormatter.php', 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Formatter\\PassthroughFormatter' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/PassthroughFormatter.php', 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Generic' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Generic.php', + 'phpDocumentor\\Reflection\\DocBlock\\Tags\\InvalidTag' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/InvalidTag.php', 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Link' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Link.php', 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Method' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Method.php', 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Param' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Param.php', @@ -4537,6 +4597,7 @@ return array( 'phpDocumentor\\Reflection\\DocBlock\\Tags\\See' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/See.php', 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Since' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Since.php', 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Source' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Source.php', + 'phpDocumentor\\Reflection\\DocBlock\\Tags\\TagWithType' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/TagWithType.php', 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Throws' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Throws.php', 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Uses' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Uses.php', 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Var_' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Var_.php', @@ -4554,6 +4615,7 @@ return array( 'phpDocumentor\\Reflection\\Types\\Array_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Array_.php', 'phpDocumentor\\Reflection\\Types\\Boolean' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Boolean.php', 'phpDocumentor\\Reflection\\Types\\Callable_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Callable_.php', + 'phpDocumentor\\Reflection\\Types\\ClassString' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/ClassString.php', 'phpDocumentor\\Reflection\\Types\\Collection' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Collection.php', 'phpDocumentor\\Reflection\\Types\\Compound' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Compound.php', 'phpDocumentor\\Reflection\\Types\\Context' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Context.php', diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index a04a5e65b..07a25742c 100644 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -65,6 +65,7 @@ return array( 'Egulias\\EmailValidator\\' => array($vendorDir . '/egulias/email-validator/EmailValidator'), 'Dotenv\\' => array($vendorDir . '/vlucas/phpdotenv/src'), 'Doctrine\\Instantiator\\' => array($vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator'), + 'Doctrine\\Inflector\\' => array($vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector'), 'Doctrine\\Common\\Lexer\\' => array($vendorDir . '/doctrine/lexer/lib/Doctrine/Common/Lexer'), 'Doctrine\\Common\\Inflector\\' => array($vendorDir . '/doctrine/inflector/lib/Doctrine/Common/Inflector'), 'DeepCopy\\' => array($vendorDir . '/myclabs/deep-copy/src/DeepCopy'), diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 7be563d88..b13cec842 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -144,6 +144,7 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9 array ( 'Dotenv\\' => 7, 'Doctrine\\Instantiator\\' => 22, + 'Doctrine\\Inflector\\' => 19, 'Doctrine\\Common\\Lexer\\' => 22, 'Doctrine\\Common\\Inflector\\' => 26, 'DeepCopy\\' => 9, @@ -406,6 +407,10 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9 array ( 0 => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator', ), + 'Doctrine\\Inflector\\' => + array ( + 0 => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector', + ), 'Doctrine\\Common\\Lexer\\' => array ( 0 => __DIR__ . '/..' . '/doctrine/lexer/lib/Doctrine/Common/Lexer', @@ -479,11 +484,10 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9 'App\\Console\\Commands\\Finances\\SovBillsCommand' => __DIR__ . '/../..' . '/app/Console/Commands/Finances/SovBills.php', 'App\\Console\\Commands\\Flex\\FlexStructureCommand' => __DIR__ . '/../..' . '/app/Console/Commands/Flex/FlexStructureCommand.php', 'App\\Console\\Commands\\Moons\\FetchMoonLedgerCommand' => __DIR__ . '/../..' . '/app/Console/Commands/Moons/FetchMoonLedgerCommand.php', - 'App\\Console\\Commands\\Moons\\FetchMoonObserversCommand' => __DIR__ . '/../..' . '/app/Console/Commands/Moons/FetchMoonObserversCommand.php', 'App\\Console\\Commands\\Moons\\FetchRentalMoonLedgerCommand' => __DIR__ . '/../..' . '/app/Console/Commands/Moons/FetchRentalMoonLedgerCommand.php', - 'App\\Console\\Commands\\Moons\\FetchRentalMoonObserversCommand' => __DIR__ . '/../..' . '/app/Console/Commands/Moons/FetchRentalMoonObserversCommand.php', 'App\\Console\\Commands\\Moons\\MoonMailerCommand' => __DIR__ . '/../..' . '/app/Console/Commands/Moons/MoonMailer.php', 'App\\Console\\Commands\\Moons\\UpdateMoonPriceCommand' => __DIR__ . '/../..' . '/app/Console/Commands/Moons/UpdateMoonPricing.php', + 'App\\Console\\Commands\\ProcessMoonRentalCommand' => __DIR__ . '/../..' . '/app/Console/Commands/Moons/ProcessMoonRentalCommand.php', 'App\\Console\\Commands\\Structures\\GetStructuresCommand' => __DIR__ . '/../..' . '/app/Console/Commands/Structures/GetStructures.php', 'App\\Console\\Commands\\Users\\PurgeUsers' => __DIR__ . '/../..' . '/app/Console/Commands/Users/PurgeUsers.php', 'App\\Console\\Commands\\Wormholes\\PurgeWormholes' => __DIR__ . '/../..' . '/app/Console/Commands/Wormholes/PurgeWormholes.php', @@ -524,6 +528,12 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9 'App\\Http\\Middleware\\TrustProxies' => __DIR__ . '/../..' . '/app/Http/Middleware/TrustProxies.php', 'App\\Http\\Middleware\\VerifyCsrfToken' => __DIR__ . '/../..' . '/app/Http/Middleware/VerifyCsrfToken.php', 'App\\JobProcessCorpJournal' => __DIR__ . '/../..' . '/app/Models/Jobs/JobProcessCorpJournal.php', + 'App\\Jobs\\Commands\\FetchMoonObserversJob' => __DIR__ . '/../..' . '/app/Jobs/Commands/FetchMoonObserversJob.php', + 'App\\Jobs\\Commands\\FetchRentalMoonLedgerJob' => __DIR__ . '/../..' . '/app/Jobs/Commands/FetchRentalMoonLedgerJob.php', + 'App\\Jobs\\Commands\\FetchRentalMoonObserversJob' => __DIR__ . '/../..' . '/app/Jobs/Commands/FetchRentalMoonObserversJob.php', + 'App\\Jobs\\FetchMoonLedgerJob' => __DIR__ . '/../..' . '/app/Jobs/Commands/FetchMoonLedgerJob.php', + 'App\\Jobs\\MoonRentalInvoiceJob' => __DIR__ . '/../..' . '/app/Jobs/Commands/MoonRentalInvoiceJob.php', + 'App\\Jobs\\MoonRentalPaymentJob' => __DIR__ . '/../..' . '/app/Jobs/Commands/MoonRentalPaymentJob.php', 'App\\Jobs\\ProcessAssetsJob' => __DIR__ . '/../..' . '/app/Jobs/ProcessAssetsJob.php', 'App\\Jobs\\ProcessSendEveMailJob' => __DIR__ . '/../..' . '/app/Jobs/ProcessSendEveMailJob.php', 'App\\Jobs\\ProcessStructureJob' => __DIR__ . '/../..' . '/app/Jobs/ProcessStructureJob.php', @@ -588,6 +598,8 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9 'App\\Models\\Mail\\EveMail' => __DIR__ . '/../..' . '/app/Models/Mail/EveMail.php', 'App\\Models\\Mail\\SentMail' => __DIR__ . '/../..' . '/app/Models/Mail/SentMail.php', 'App\\Models\\MoonRent\\MoonRental' => __DIR__ . '/../..' . '/app/Models/MoonRentals/MoonRental.php', + 'App\\Models\\MoonRent\\MoonRentalInvoice' => __DIR__ . '/../..' . '/app/Models/MoonRentals/MoonRentalInvoice.php', + 'App\\Models\\MoonRent\\MoonRentalPayment' => __DIR__ . '/../..' . '/app/Models/MoonRentals/MoonRentalPayment.php', 'App\\Models\\Moon\\AllianceMoon' => __DIR__ . '/../..' . '/app/Models/Moon/AllianceMoon.php', 'App\\Models\\Moon\\AllianceMoonRequest' => __DIR__ . '/../..' . '/app/Models/Moon/AllianceMoonRequest.php', 'App\\Models\\Moon\\Config' => __DIR__ . '/../..' . '/app/Models/Moon/Config.php', @@ -658,9 +670,14 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9 'Carbon\\CarbonPeriod' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/CarbonPeriod.php', 'Carbon\\CarbonTimeZone' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/CarbonTimeZone.php', 'Carbon\\Cli\\Invoker' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Cli/Invoker.php', + 'Carbon\\Doctrine\\CarbonType' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Doctrine/CarbonType.php', + 'Carbon\\Doctrine\\DateTimeDefaultPrecision' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Doctrine/DateTimeDefaultPrecision.php', + 'Carbon\\Doctrine\\DateTimeImmutableType' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Doctrine/DateTimeImmutableType.php', + 'Carbon\\Doctrine\\DateTimeType' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Doctrine/DateTimeType.php', 'Carbon\\Exceptions\\BadUnitException' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Exceptions/BadUnitException.php', 'Carbon\\Exceptions\\InvalidDateException' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Exceptions/InvalidDateException.php', 'Carbon\\Exceptions\\NotAPeriodException' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Exceptions/NotAPeriodException.php', + 'Carbon\\Exceptions\\NotLocaleAwareException' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Exceptions/NotLocaleAwareException.php', 'Carbon\\Exceptions\\ParseErrorException' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Exceptions/ParseErrorException.php', 'Carbon\\Factory' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Factory.php', 'Carbon\\FactoryImmutable' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/FactoryImmutable.php', @@ -678,6 +695,7 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9 'Carbon\\Traits\\Mixin' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Traits/Mixin.php', 'Carbon\\Traits\\Modifiers' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Traits/Modifiers.php', 'Carbon\\Traits\\Mutability' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Traits/Mutability.php', + 'Carbon\\Traits\\ObjectInitialisation' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Traits/ObjectInitialisation.php', 'Carbon\\Traits\\Options' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Traits/Options.php', 'Carbon\\Traits\\Rounding' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Traits/Rounding.php', 'Carbon\\Traits\\Serialization' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Traits/Serialization.php', @@ -751,12 +769,54 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9 'DeepCopy\\TypeFilter\\Date\\DateIntervalFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DateIntervalFilter.php', 'DeepCopy\\TypeFilter\\ReplaceFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/ReplaceFilter.php', 'DeepCopy\\TypeFilter\\ShallowCopyFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/ShallowCopyFilter.php', + 'DeepCopy\\TypeFilter\\Spl\\ArrayObjectFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/ArrayObjectFilter.php', 'DeepCopy\\TypeFilter\\Spl\\SplDoublyLinkedList' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedList.php', 'DeepCopy\\TypeFilter\\Spl\\SplDoublyLinkedListFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedListFilter.php', 'DeepCopy\\TypeFilter\\TypeFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/TypeFilter.php', 'DeepCopy\\TypeMatcher\\TypeMatcher' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeMatcher/TypeMatcher.php', 'Doctrine\\Common\\Inflector\\Inflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Common/Inflector/Inflector.php', 'Doctrine\\Common\\Lexer\\AbstractLexer' => __DIR__ . '/..' . '/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php', + 'Doctrine\\Inflector\\CachedWordInflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php', + 'Doctrine\\Inflector\\GenericLanguageInflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/GenericLanguageInflectorFactory.php', + 'Doctrine\\Inflector\\Inflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Inflector.php', + 'Doctrine\\Inflector\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php', + 'Doctrine\\Inflector\\Language' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Language.php', + 'Doctrine\\Inflector\\LanguageInflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/LanguageInflectorFactory.php', + 'Doctrine\\Inflector\\NoopWordInflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/NoopWordInflector.php', + 'Doctrine\\Inflector\\Rules\\English\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Inflectible.php', + 'Doctrine\\Inflector\\Rules\\English\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/InflectorFactory.php', + 'Doctrine\\Inflector\\Rules\\English\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Rules.php', + 'Doctrine\\Inflector\\Rules\\English\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Uninflected.php', + 'Doctrine\\Inflector\\Rules\\French\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Inflectible.php', + 'Doctrine\\Inflector\\Rules\\French\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/InflectorFactory.php', + 'Doctrine\\Inflector\\Rules\\French\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Rules.php', + 'Doctrine\\Inflector\\Rules\\French\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Uninflected.php', + 'Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Inflectible.php', + 'Doctrine\\Inflector\\Rules\\NorwegianBokmal\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/InflectorFactory.php', + 'Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Rules.php', + 'Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Uninflected.php', + 'Doctrine\\Inflector\\Rules\\Pattern' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Pattern.php', + 'Doctrine\\Inflector\\Rules\\Patterns' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Patterns.php', + 'Doctrine\\Inflector\\Rules\\Portuguese\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Inflectible.php', + 'Doctrine\\Inflector\\Rules\\Portuguese\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/InflectorFactory.php', + 'Doctrine\\Inflector\\Rules\\Portuguese\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Rules.php', + 'Doctrine\\Inflector\\Rules\\Portuguese\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Uninflected.php', + 'Doctrine\\Inflector\\Rules\\Ruleset' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Ruleset.php', + 'Doctrine\\Inflector\\Rules\\Spanish\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Inflectible.php', + 'Doctrine\\Inflector\\Rules\\Spanish\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/InflectorFactory.php', + 'Doctrine\\Inflector\\Rules\\Spanish\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Rules.php', + 'Doctrine\\Inflector\\Rules\\Spanish\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Uninflected.php', + 'Doctrine\\Inflector\\Rules\\Substitution' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitution.php', + 'Doctrine\\Inflector\\Rules\\Substitutions' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitutions.php', + 'Doctrine\\Inflector\\Rules\\Transformation' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformation.php', + 'Doctrine\\Inflector\\Rules\\Transformations' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformations.php', + 'Doctrine\\Inflector\\Rules\\Turkish\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Inflectible.php', + 'Doctrine\\Inflector\\Rules\\Turkish\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/InflectorFactory.php', + 'Doctrine\\Inflector\\Rules\\Turkish\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Rules.php', + 'Doctrine\\Inflector\\Rules\\Turkish\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Uninflected.php', + 'Doctrine\\Inflector\\Rules\\Word' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Word.php', + 'Doctrine\\Inflector\\RulesetInflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/RulesetInflector.php', + 'Doctrine\\Inflector\\WordInflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/WordInflector.php', 'Doctrine\\Instantiator\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php', 'Doctrine\\Instantiator\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator/Exception/InvalidArgumentException.php', 'Doctrine\\Instantiator\\Exception\\UnexpectedValueException' => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php', @@ -1373,6 +1433,7 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9 'GuzzleHttp\\RetryMiddleware' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/RetryMiddleware.php', 'GuzzleHttp\\TransferStats' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/TransferStats.php', 'GuzzleHttp\\UriTemplate' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/UriTemplate.php', + 'GuzzleHttp\\Utils' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/Utils.php', 'Hamcrest\\Arrays\\IsArray' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArray.php', 'Hamcrest\\Arrays\\IsArrayContaining' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContaining.php', 'Hamcrest\\Arrays\\IsArrayContainingInAnyOrder' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInAnyOrder.php', @@ -2492,7 +2553,6 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9 'Laravel\\Horizon\\Listeners\\StoreJob' => __DIR__ . '/..' . '/laravel/horizon/src/Listeners/StoreJob.php', 'Laravel\\Horizon\\Listeners\\StoreMonitoredTags' => __DIR__ . '/..' . '/laravel/horizon/src/Listeners/StoreMonitoredTags.php', 'Laravel\\Horizon\\Listeners\\StoreTagsForFailedJob' => __DIR__ . '/..' . '/laravel/horizon/src/Listeners/StoreTagsForFailedJob.php', - 'Laravel\\Horizon\\Listeners\\StoreTagsForRecentJob' => __DIR__ . '/..' . '/laravel/horizon/src/Listeners/StoreTagsForRecentJob.php', 'Laravel\\Horizon\\Listeners\\TrimFailedJobs' => __DIR__ . '/..' . '/laravel/horizon/src/Listeners/TrimFailedJobs.php', 'Laravel\\Horizon\\Listeners\\TrimMonitoredJobs' => __DIR__ . '/..' . '/laravel/horizon/src/Listeners/TrimMonitoredJobs.php', 'Laravel\\Horizon\\Listeners\\TrimRecentJobs' => __DIR__ . '/..' . '/laravel/horizon/src/Listeners/TrimRecentJobs.php', @@ -2575,15 +2635,19 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9 'League\\Flysystem\\Adapter\\SynologyFtp' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/SynologyFtp.php', 'League\\Flysystem\\Config' => __DIR__ . '/..' . '/league/flysystem/src/Config.php', 'League\\Flysystem\\ConfigAwareTrait' => __DIR__ . '/..' . '/league/flysystem/src/ConfigAwareTrait.php', + 'League\\Flysystem\\ConnectionErrorException' => __DIR__ . '/..' . '/league/flysystem/src/ConnectionErrorException.php', + 'League\\Flysystem\\ConnectionRuntimeException' => __DIR__ . '/..' . '/league/flysystem/src/ConnectionRuntimeException.php', 'League\\Flysystem\\Directory' => __DIR__ . '/..' . '/league/flysystem/src/Directory.php', 'League\\Flysystem\\Exception' => __DIR__ . '/..' . '/league/flysystem/src/Exception.php', 'League\\Flysystem\\File' => __DIR__ . '/..' . '/league/flysystem/src/File.php', 'League\\Flysystem\\FileExistsException' => __DIR__ . '/..' . '/league/flysystem/src/FileExistsException.php', 'League\\Flysystem\\FileNotFoundException' => __DIR__ . '/..' . '/league/flysystem/src/FileNotFoundException.php', 'League\\Flysystem\\Filesystem' => __DIR__ . '/..' . '/league/flysystem/src/Filesystem.php', + 'League\\Flysystem\\FilesystemException' => __DIR__ . '/..' . '/league/flysystem/src/FilesystemException.php', 'League\\Flysystem\\FilesystemInterface' => __DIR__ . '/..' . '/league/flysystem/src/FilesystemInterface.php', 'League\\Flysystem\\FilesystemNotFoundException' => __DIR__ . '/..' . '/league/flysystem/src/FilesystemNotFoundException.php', 'League\\Flysystem\\Handler' => __DIR__ . '/..' . '/league/flysystem/src/Handler.php', + 'League\\Flysystem\\InvalidRootException' => __DIR__ . '/..' . '/league/flysystem/src/InvalidRootException.php', 'League\\Flysystem\\MountManager' => __DIR__ . '/..' . '/league/flysystem/src/MountManager.php', 'League\\Flysystem\\NotSupportedException' => __DIR__ . '/..' . '/league/flysystem/src/NotSupportedException.php', 'League\\Flysystem\\PluginInterface' => __DIR__ . '/..' . '/league/flysystem/src/PluginInterface.php', @@ -3885,7 +3949,7 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9 'Psr\\Log\\LoggerInterface' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerInterface.php', 'Psr\\Log\\LoggerTrait' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerTrait.php', 'Psr\\Log\\NullLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/NullLogger.php', - 'Psr\\Log\\Test\\DummyTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php', + 'Psr\\Log\\Test\\DummyTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/DummyTest.php', 'Psr\\Log\\Test\\LoggerInterfaceTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php', 'Psr\\Log\\Test\\TestLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/TestLogger.php', 'Psr\\SimpleCache\\CacheException' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheException.php', @@ -4232,6 +4296,7 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9 'Symfony\\Component\\Console\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/console/Exception/InvalidArgumentException.php', 'Symfony\\Component\\Console\\Exception\\InvalidOptionException' => __DIR__ . '/..' . '/symfony/console/Exception/InvalidOptionException.php', 'Symfony\\Component\\Console\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/console/Exception/LogicException.php', + 'Symfony\\Component\\Console\\Exception\\MissingInputException' => __DIR__ . '/..' . '/symfony/console/Exception/MissingInputException.php', 'Symfony\\Component\\Console\\Exception\\NamespaceNotFoundException' => __DIR__ . '/..' . '/symfony/console/Exception/NamespaceNotFoundException.php', 'Symfony\\Component\\Console\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/console/Exception/RuntimeException.php', 'Symfony\\Component\\Console\\Formatter\\OutputFormatter' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatter.php', @@ -4983,11 +5048,11 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Deprecated' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Deprecated.php', 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Example' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Example.php', 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Factory\\StaticMethod' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/StaticMethod.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Factory\\Strategy' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/Strategy.php', 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Formatter' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter.php', 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Formatter\\AlignFormatter' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/AlignFormatter.php', 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Formatter\\PassthroughFormatter' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/PassthroughFormatter.php', 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Generic' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Generic.php', + 'phpDocumentor\\Reflection\\DocBlock\\Tags\\InvalidTag' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/InvalidTag.php', 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Link' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Link.php', 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Method' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Method.php', 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Param' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Param.php', @@ -5001,6 +5066,7 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9 'phpDocumentor\\Reflection\\DocBlock\\Tags\\See' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/See.php', 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Since' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Since.php', 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Source' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Source.php', + 'phpDocumentor\\Reflection\\DocBlock\\Tags\\TagWithType' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/TagWithType.php', 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Throws' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Throws.php', 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Uses' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Uses.php', 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Var_' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Var_.php', @@ -5018,6 +5084,7 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9 'phpDocumentor\\Reflection\\Types\\Array_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Array_.php', 'phpDocumentor\\Reflection\\Types\\Boolean' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Boolean.php', 'phpDocumentor\\Reflection\\Types\\Callable_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Callable_.php', + 'phpDocumentor\\Reflection\\Types\\ClassString' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/ClassString.php', 'phpDocumentor\\Reflection\\Types\\Collection' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Collection.php', 'phpDocumentor\\Reflection\\Types\\Compound' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Compound.php', 'phpDocumentor\\Reflection\\Types\\Context' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Context.php', diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index de702d814..772c71ddb 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -167,26 +167,26 @@ }, { "name": "consoletvs/charts", - "version": "6.5.3", - "version_normalized": "6.5.3.0", + "version": "6.5.4", + "version_normalized": "6.5.4.0", "source": { "type": "git", "url": "https://github.com/ConsoleTVs/Charts.git", - "reference": "a4a8a71c438a00b95ea74a080ce5bf8916c60918" + "reference": "524257b5d525666385bd2e91b06e376994a7b683" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ConsoleTVs/Charts/zipball/a4a8a71c438a00b95ea74a080ce5bf8916c60918", - "reference": "a4a8a71c438a00b95ea74a080ce5bf8916c60918", + "url": "https://api.github.com/repos/ConsoleTVs/Charts/zipball/524257b5d525666385bd2e91b06e376994a7b683", + "reference": "524257b5d525666385bd2e91b06e376994a7b683", "shasum": "" }, "require": { "balping/json-raw-encoder": "^1.0", - "illuminate/console": "^5.0|^6.0", - "illuminate/support": "^5.0|^6.0", + "illuminate/console": "^5.0|^6.0|^7.0", + "illuminate/support": "^5.0|^6.0|^7.0", "php": ">=7.0" }, - "time": "2019-09-03T16:50:50+00:00", + "time": "2020-03-03T23:16:14+00:00", "type": "library", "extra": { "laravel": { @@ -250,36 +250,41 @@ }, { "name": "doctrine/inflector", - "version": "1.3.1", - "version_normalized": "1.3.1.0", + "version": "1.4.0", + "version_normalized": "1.4.0.0", "source": { "type": "git", "url": "https://github.com/doctrine/inflector.git", - "reference": "ec3a55242203ffa6a4b27c58176da97ff0a7aec1" + "reference": "ab5de36233a1995f9c776c741b803eb8207aebef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/ec3a55242203ffa6a4b27c58176da97ff0a7aec1", - "reference": "ec3a55242203ffa6a4b27c58176da97ff0a7aec1", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/ab5de36233a1995f9c776c741b803eb8207aebef", + "reference": "ab5de36233a1995f9c776c741b803eb8207aebef", "shasum": "" }, "require": { - "php": "^7.1" + "php": "^7.2" }, "require-dev": { - "phpunit/phpunit": "^6.2" + "doctrine/coding-standard": "^7.0", + "phpstan/phpstan": "^0.11", + "phpstan/phpstan-phpunit": "^0.11", + "phpstan/phpstan-strict-rules": "^0.11", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" }, - "time": "2019-10-30T19:59:35+00:00", + "time": "2020-05-06T11:01:57+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "1.3.x-dev" + "dev-master": "2.0.x-dev" } }, "installation-source": "dist", "autoload": { "psr-4": { - "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector" + "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector", + "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" } }, "notification-url": "https://packagist.org/downloads/", @@ -308,13 +313,19 @@ "email": "schmittjoh@gmail.com" } ], - "description": "Common String Manipulations with regard to casing and singular/plural rules.", - "homepage": "http://www.doctrine-project.org", + "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", + "homepage": "https://www.doctrine-project.org/projects/inflector.html", "keywords": [ "inflection", - "pluralize", - "singularize", - "string" + "inflector", + "lowercase", + "manipulation", + "php", + "plural", + "singular", + "strings", + "uppercase", + "words" ] }, { @@ -497,33 +508,33 @@ }, { "name": "egulias/email-validator", - "version": "2.1.11", - "version_normalized": "2.1.11.0", + "version": "2.1.17", + "version_normalized": "2.1.17.0", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "92dd169c32f6f55ba570c309d83f5209cefb5e23" + "reference": "ade6887fd9bd74177769645ab5c474824f8a418a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/92dd169c32f6f55ba570c309d83f5209cefb5e23", - "reference": "92dd169c32f6f55ba570c309d83f5209cefb5e23", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ade6887fd9bd74177769645ab5c474824f8a418a", + "reference": "ade6887fd9bd74177769645ab5c474824f8a418a", "shasum": "" }, "require": { "doctrine/lexer": "^1.0.1", - "php": ">= 5.5" + "php": ">=5.5", + "symfony/polyfill-intl-idn": "^1.10" }, "require-dev": { - "dominicsayers/isemail": "dev-master", - "phpunit/phpunit": "^4.8.35||^5.7||^6.0", - "satooshi/php-coveralls": "^1.0.1", - "symfony/phpunit-bridge": "^4.4@dev" + "dominicsayers/isemail": "^3.0.7", + "phpunit/phpunit": "^4.8.36|^7.5.15", + "satooshi/php-coveralls": "^1.0.1" }, "suggest": { "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" }, - "time": "2019-08-13T17:33:27+00:00", + "time": "2020-02-13T22:36:52+00:00", "type": "library", "extra": { "branch-alias": { @@ -557,17 +568,17 @@ }, { "name": "erusev/parsedown", - "version": "1.7.3", - "version_normalized": "1.7.3.0", + "version": "1.7.4", + "version_normalized": "1.7.4.0", "source": { "type": "git", "url": "https://github.com/erusev/parsedown.git", - "reference": "6d893938171a817f4e9bc9e86f2da1e370b7bcd7" + "reference": "cb17b6477dfff935958ba01325f2e8a2bfa6dab3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/erusev/parsedown/zipball/6d893938171a817f4e9bc9e86f2da1e370b7bcd7", - "reference": "6d893938171a817f4e9bc9e86f2da1e370b7bcd7", + "url": "https://api.github.com/repos/erusev/parsedown/zipball/cb17b6477dfff935958ba01325f2e8a2bfa6dab3", + "reference": "cb17b6477dfff935958ba01325f2e8a2bfa6dab3", "shasum": "" }, "require": { @@ -577,7 +588,7 @@ "require-dev": { "phpunit/phpunit": "^4.8.35" }, - "time": "2019-03-17T18:48:37+00:00", + "time": "2019-12-30T22:54:17+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -658,29 +669,29 @@ }, { "name": "fideloper/proxy", - "version": "4.2.1", - "version_normalized": "4.2.1.0", + "version": "4.3.0", + "version_normalized": "4.3.0.0", "source": { "type": "git", "url": "https://github.com/fideloper/TrustedProxy.git", - "reference": "03085e58ec7bee24773fa5a8850751a6e61a7e8a" + "reference": "ec38ad69ee378a1eec04fb0e417a97cfaf7ed11a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/03085e58ec7bee24773fa5a8850751a6e61a7e8a", - "reference": "03085e58ec7bee24773fa5a8850751a6e61a7e8a", + "url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/ec38ad69ee378a1eec04fb0e417a97cfaf7ed11a", + "reference": "ec38ad69ee378a1eec04fb0e417a97cfaf7ed11a", "shasum": "" }, "require": { - "illuminate/contracts": "^5.0|^6.0|^7.0", + "illuminate/contracts": "^5.0|^6.0|^7.0|^8.0", "php": ">=5.4.0" }, "require-dev": { - "illuminate/http": "^5.0|^6.0|^7.0", + "illuminate/http": "^5.0|^6.0|^7.0|^8.0", "mockery/mockery": "^1.0", "phpunit/phpunit": "^6.0" }, - "time": "2019-09-03T16:45:42+00:00", + "time": "2020-02-22T01:51:47+00:00", "type": "library", "extra": { "laravel": { @@ -714,17 +725,17 @@ }, { "name": "filp/whoops", - "version": "2.5.0", - "version_normalized": "2.5.0.0", + "version": "2.7.2", + "version_normalized": "2.7.2.0", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "cde50e6720a39fdacb240159d3eea6865d51fd96" + "reference": "17d0d3f266c8f925ebd035cd36f83cf802b47d4a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/cde50e6720a39fdacb240159d3eea6865d51fd96", - "reference": "cde50e6720a39fdacb240159d3eea6865d51fd96", + "url": "https://api.github.com/repos/filp/whoops/zipball/17d0d3f266c8f925ebd035cd36f83cf802b47d4a", + "reference": "17d0d3f266c8f925ebd035cd36f83cf802b47d4a", "shasum": "" }, "require": { @@ -733,18 +744,18 @@ }, "require-dev": { "mockery/mockery": "^0.9 || ^1.0", - "phpunit/phpunit": "^4.8.35 || ^5.7", - "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0" + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0", + "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0 || ^5.0" }, "suggest": { "symfony/var-dumper": "Pretty print complex values better with var-dumper available", "whoops/soap": "Formats errors as SOAP responses" }, - "time": "2019-08-07T09:00:00+00:00", + "time": "2020-05-05T12:28:07+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2-dev" + "dev-master": "2.6-dev" } }, "installation-source": "dist", @@ -829,24 +840,25 @@ }, { "name": "guzzlehttp/guzzle", - "version": "6.5.0", - "version_normalized": "6.5.0.0", + "version": "6.5.3", + "version_normalized": "6.5.3.0", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "dbc2bc3a293ed6b1ae08a3651e2bfd213d19b6a5" + "reference": "aab4ebd862aa7d04f01a4b51849d657db56d882e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/dbc2bc3a293ed6b1ae08a3651e2bfd213d19b6a5", - "reference": "dbc2bc3a293ed6b1ae08a3651e2bfd213d19b6a5", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/aab4ebd862aa7d04f01a4b51849d657db56d882e", + "reference": "aab4ebd862aa7d04f01a4b51849d657db56d882e", "shasum": "" }, "require": { "ext-json": "*", "guzzlehttp/promises": "^1.0", "guzzlehttp/psr7": "^1.6.1", - "php": ">=5.5" + "php": ">=5.5", + "symfony/polyfill-intl-idn": "^1.11" }, "require-dev": { "ext-curl": "*", @@ -854,10 +866,9 @@ "psr/log": "^1.1" }, "suggest": { - "ext-intl": "Required for Internationalized Domain Name (IDN) support", "psr/log": "Required for using the Log middleware" }, - "time": "2019-12-07T18:20:45+00:00", + "time": "2020-04-18T10:38:46+00:00", "type": "library", "extra": { "branch-alias": { @@ -1114,7 +1125,8 @@ "name": "Jakub Onderka", "email": "jakub.onderka@gmail.com" } - ] + ], + "abandoned": "php-parallel-lint/php-console-color" }, { "name": "jakub-onderka/php-console-highlighter", @@ -1162,7 +1174,8 @@ "homepage": "http://www.acci.cz/" } ], - "description": "Highlight PHP code in terminal" + "description": "Highlight PHP code in terminal", + "abandoned": "php-parallel-lint/php-console-highlighter" }, { "name": "khill/lavacharts", @@ -1234,17 +1247,17 @@ }, { "name": "laravel/framework", - "version": "v5.8.35", - "version_normalized": "5.8.35.0", + "version": "v5.8.38", + "version_normalized": "5.8.38.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "5a9e4d241a8b815e16c9d2151e908992c38db197" + "reference": "78eb4dabcc03e189620c16f436358d41d31ae11f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/5a9e4d241a8b815e16c9d2151e908992c38db197", - "reference": "5a9e4d241a8b815e16c9d2151e908992c38db197", + "url": "https://api.github.com/repos/laravel/framework/zipball/78eb4dabcc03e189620c16f436358d41d31ae11f", + "reference": "78eb4dabcc03e189620c16f436358d41d31ae11f", "shasum": "" }, "require": { @@ -1348,7 +1361,7 @@ "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^1.1).", "wildbit/swiftmailer-postmark": "Required to use Postmark mail driver (^3.0)." }, - "time": "2019-09-03T16:44:30+00:00", + "time": "2020-04-14T14:14:36+00:00", "type": "library", "extra": { "branch-alias": { @@ -1384,17 +1397,17 @@ }, { "name": "laravel/horizon", - "version": "v3.4.4", - "version_normalized": "3.4.4.0", + "version": "v3.7.2", + "version_normalized": "3.7.2.0", "source": { "type": "git", "url": "https://github.com/laravel/horizon.git", - "reference": "7c36d24b200b60a059ab20f5b53f5bb6f4d2da40" + "reference": "62d31b34f7f770a43f802ae2bb46327673e04cbf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/horizon/zipball/7c36d24b200b60a059ab20f5b53f5bb6f4d2da40", - "reference": "7c36d24b200b60a059ab20f5b53f5bb6f4d2da40", + "url": "https://api.github.com/repos/laravel/horizon/zipball/62d31b34f7f770a43f802ae2bb46327673e04cbf", + "reference": "62d31b34f7f770a43f802ae2bb46327673e04cbf", "shasum": "" }, "require": { @@ -1416,7 +1429,7 @@ "orchestra/testbench": "^3.7|^4.0", "phpunit/phpunit": "^7.0|^8.0" }, - "time": "2019-12-10T16:50:59+00:00", + "time": "2020-02-25T15:22:42+00:00", "type": "library", "extra": { "branch-alias": { @@ -1455,17 +1468,17 @@ }, { "name": "laravel/socialite", - "version": "v3.3.0", - "version_normalized": "3.3.0.0", + "version": "v3.4.0", + "version_normalized": "3.4.0.0", "source": { "type": "git", "url": "https://github.com/laravel/socialite.git", - "reference": "79316f36641f1916a50ab14d368acdf1d97e46de" + "reference": "28368c6fc6580ca1860f9b9a7f8deac1aa7d515a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/socialite/zipball/79316f36641f1916a50ab14d368acdf1d97e46de", - "reference": "79316f36641f1916a50ab14d368acdf1d97e46de", + "url": "https://api.github.com/repos/laravel/socialite/zipball/28368c6fc6580ca1860f9b9a7f8deac1aa7d515a", + "reference": "28368c6fc6580ca1860f9b9a7f8deac1aa7d515a", "shasum": "" }, "require": { @@ -1480,7 +1493,7 @@ "mockery/mockery": "~0.9", "phpunit/phpunit": "~4.0|~5.0" }, - "time": "2018-12-21T14:06:32+00:00", + "time": "2020-02-20T18:31:32+00:00", "type": "library", "extra": { "branch-alias": { @@ -1655,17 +1668,17 @@ }, { "name": "league/flysystem", - "version": "1.0.61", - "version_normalized": "1.0.61.0", + "version": "1.0.67", + "version_normalized": "1.0.67.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "4fb13c01784a6c9f165a351e996871488ca2d8c9" + "reference": "5b1f36c75c4bdde981294c2a0ebdb437ee6f275e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/4fb13c01784a6c9f165a351e996871488ca2d8c9", - "reference": "4fb13c01784a6c9f165a351e996871488ca2d8c9", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/5b1f36c75c4bdde981294c2a0ebdb437ee6f275e", + "reference": "5b1f36c75c4bdde981294c2a0ebdb437ee6f275e", "shasum": "" }, "require": { @@ -1677,7 +1690,7 @@ }, "require-dev": { "phpspec/phpspec": "^3.4", - "phpunit/phpunit": "^5.7.10" + "phpunit/phpunit": "^5.7.26" }, "suggest": { "ext-fileinfo": "Required for MimeType", @@ -1695,7 +1708,7 @@ "spatie/flysystem-dropbox": "Allows you to use Dropbox storage", "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications" }, - "time": "2019-12-08T21:46:50+00:00", + "time": "2020-04-16T13:21:26+00:00", "type": "library", "extra": { "branch-alias": { @@ -1806,33 +1819,32 @@ }, { "name": "mockery/mockery", - "version": "1.3.0", - "version_normalized": "1.3.0.0", + "version": "1.3.1", + "version_normalized": "1.3.1.0", "source": { "type": "git", "url": "https://github.com/mockery/mockery.git", - "reference": "5571962a4f733fbb57bede39778f71647fae8e66" + "reference": "f69bbde7d7a75d6b2862d9ca8fab1cd28014b4be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/5571962a4f733fbb57bede39778f71647fae8e66", - "reference": "5571962a4f733fbb57bede39778f71647fae8e66", + "url": "https://api.github.com/repos/mockery/mockery/zipball/f69bbde7d7a75d6b2862d9ca8fab1cd28014b4be", + "reference": "f69bbde7d7a75d6b2862d9ca8fab1cd28014b4be", "shasum": "" }, "require": { "hamcrest/hamcrest-php": "~2.0", "lib-pcre": ">=7.0", - "php": ">=5.6.0", - "sebastian/comparator": "^1.2.4|^3.0" + "php": ">=5.6.0" }, "require-dev": { "phpunit/phpunit": "~5.7.10|~6.5|~7.0|~8.0" }, - "time": "2019-11-24T07:54:50+00:00", + "time": "2019-12-26T09:49:15+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" + "dev-master": "1.3.x-dev" } }, "installation-source": "dist", @@ -1874,17 +1886,17 @@ }, { "name": "monolog/monolog", - "version": "1.25.2", - "version_normalized": "1.25.2.0", + "version": "1.25.3", + "version_normalized": "1.25.3.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "d5e2fb341cb44f7e2ab639d12a1e5901091ec287" + "reference": "fa82921994db851a8becaf3787a9e73c5976b6f1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/d5e2fb341cb44f7e2ab639d12a1e5901091ec287", - "reference": "d5e2fb341cb44f7e2ab639d12a1e5901091ec287", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fa82921994db851a8becaf3787a9e73c5976b6f1", + "reference": "fa82921994db851a8becaf3787a9e73c5976b6f1", "shasum": "" }, "require": { @@ -1920,7 +1932,7 @@ "ruflin/elastica": "Allow sending log messages to an Elastic Search server", "sentry/sentry": "Allow sending log messages to a Sentry server" }, - "time": "2019-11-13T10:00:05+00:00", + "time": "2019-12-20T14:15:16+00:00", "type": "library", "extra": { "branch-alias": { @@ -1954,17 +1966,17 @@ }, { "name": "myclabs/deep-copy", - "version": "1.9.3", - "version_normalized": "1.9.3.0", + "version": "1.9.5", + "version_normalized": "1.9.5.0", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "007c053ae6f31bba39dfa19a7726f56e9763bbea" + "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/007c053ae6f31bba39dfa19a7726f56e9763bbea", - "reference": "007c053ae6f31bba39dfa19a7726f56e9763bbea", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/b2c28789e80a97badd14145fda39b545d83ca3ef", + "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef", "shasum": "" }, "require": { @@ -1978,7 +1990,7 @@ "doctrine/common": "^2.6", "phpunit/phpunit": "^7.1" }, - "time": "2019-08-09T12:45:53+00:00", + "time": "2020-01-17T21:11:47+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -2004,33 +2016,35 @@ }, { "name": "nesbot/carbon", - "version": "2.27.0", - "version_normalized": "2.27.0.0", + "version": "2.33.0", + "version_normalized": "2.33.0.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "13b8485a8690f103bf19cba64879c218b102b726" + "reference": "4d93cb95a80d9ffbff4018fe58ae3b7dd7f4b99b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/13b8485a8690f103bf19cba64879c218b102b726", - "reference": "13b8485a8690f103bf19cba64879c218b102b726", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/4d93cb95a80d9ffbff4018fe58ae3b7dd7f4b99b", + "reference": "4d93cb95a80d9ffbff4018fe58ae3b7dd7f4b99b", "shasum": "" }, "require": { "ext-json": "*", "php": "^7.1.8 || ^8.0", + "symfony/polyfill-mbstring": "^1.0", "symfony/translation": "^3.4 || ^4.0 || ^5.0" }, "require-dev": { + "doctrine/orm": "^2.7", "friendsofphp/php-cs-fixer": "^2.14 || ^3.0", "kylekatarnls/multi-tester": "^1.1", - "phpmd/phpmd": "dev-php-7.1-compatibility", + "phpmd/phpmd": "^2.8", "phpstan/phpstan": "^0.11", "phpunit/phpunit": "^7.5 || ^8.0", "squizlabs/php_codesniffer": "^3.4" }, - "time": "2019-11-20T06:59:06+00:00", + "time": "2020-04-20T15:05:43+00:00", "bin": [ "bin/carbon" ], @@ -2076,17 +2090,17 @@ }, { "name": "nikic/php-parser", - "version": "v4.3.0", - "version_normalized": "4.3.0.0", + "version": "v4.4.0", + "version_normalized": "4.4.0.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc" + "reference": "bd43ec7152eaaab3bd8c6d0aa95ceeb1df8ee120" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/9a9981c347c5c49d6dfe5cf826bb882b824080dc", - "reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/bd43ec7152eaaab3bd8c6d0aa95ceeb1df8ee120", + "reference": "bd43ec7152eaaab3bd8c6d0aa95ceeb1df8ee120", "shasum": "" }, "require": { @@ -2097,7 +2111,7 @@ "ircmaxell/php-yacc": "0.0.5", "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0" }, - "time": "2019-11-08T13:50:10+00:00", + "time": "2020-04-10T16:34:50+00:00", "bin": [ "bin/php-parse" ], @@ -2412,26 +2426,23 @@ }, { "name": "phpdocumentor/reflection-common", - "version": "2.0.0", - "version_normalized": "2.0.0.0", + "version": "2.1.0", + "version_normalized": "2.1.0.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a" + "reference": "6568f4687e5b41b054365f9ae03fcb1ed5f2069b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/63a995caa1ca9e5590304cd845c15ad6d482a62a", - "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/6568f4687e5b41b054365f9ae03fcb1ed5f2069b", + "reference": "6568f4687e5b41b054365f9ae03fcb1ed5f2069b", "shasum": "" }, "require": { "php": ">=7.1" }, - "require-dev": { - "phpunit/phpunit": "~6" - }, - "time": "2018-08-07T13:53:10+00:00", + "time": "2020-04-27T09:25:28+00:00", "type": "library", "extra": { "branch-alias": { @@ -2466,43 +2477,41 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "4.3.2", - "version_normalized": "4.3.2.0", + "version": "5.1.0", + "version_normalized": "5.1.0.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "b83ff7cfcfee7827e1e78b637a5904fe6a96698e" + "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/b83ff7cfcfee7827e1e78b637a5904fe6a96698e", - "reference": "b83ff7cfcfee7827e1e78b637a5904fe6a96698e", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e", + "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e", "shasum": "" }, "require": { - "php": "^7.0", - "phpdocumentor/reflection-common": "^1.0.0 || ^2.0.0", - "phpdocumentor/type-resolver": "~0.4 || ^1.0.0", - "webmozart/assert": "^1.0" + "ext-filter": "^7.1", + "php": "^7.2", + "phpdocumentor/reflection-common": "^2.0", + "phpdocumentor/type-resolver": "^1.0", + "webmozart/assert": "^1" }, "require-dev": { - "doctrine/instantiator": "^1.0.5", - "mockery/mockery": "^1.0", - "phpunit/phpunit": "^6.4" + "doctrine/instantiator": "^1", + "mockery/mockery": "^1" }, - "time": "2019-09-12T14:27:41+00:00", + "time": "2020-02-22T12:28:44+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "4.x-dev" + "dev-master": "5.x-dev" } }, "installation-source": "dist", "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] + "phpDocumentor\\Reflection\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -2513,35 +2522,38 @@ { "name": "Mike van Riel", "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "account@ijaap.nl" } ], "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock." }, { "name": "phpdocumentor/type-resolver", - "version": "1.0.1", - "version_normalized": "1.0.1.0", + "version": "1.1.0", + "version_normalized": "1.1.0.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9" + "reference": "7462d5f123dfc080dfdf26897032a6513644fc95" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", - "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/7462d5f123dfc080dfdf26897032a6513644fc95", + "reference": "7462d5f123dfc080dfdf26897032a6513644fc95", "shasum": "" }, "require": { - "php": "^7.1", + "php": "^7.2", "phpdocumentor/reflection-common": "^2.0" }, "require-dev": { - "ext-tokenizer": "^7.1", - "mockery/mockery": "~1", - "phpunit/phpunit": "^7.0" + "ext-tokenizer": "^7.2", + "mockery/mockery": "~1" }, - "time": "2019-08-22T18:11:29+00:00", + "time": "2020-02-18T18:59:58+00:00", "type": "library", "extra": { "branch-alias": { @@ -2568,27 +2580,27 @@ }, { "name": "phpoption/phpoption", - "version": "1.7.1", - "version_normalized": "1.7.1.0", + "version": "1.7.3", + "version_normalized": "1.7.3.0", "source": { "type": "git", "url": "https://github.com/schmittjoh/php-option.git", - "reference": "100a25207566930efd926cf205542946aa692e01" + "reference": "4acfd6a4b33a509d8c88f50e5222f734b6aeebae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/100a25207566930efd926cf205542946aa692e01", - "reference": "100a25207566930efd926cf205542946aa692e01", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/4acfd6a4b33a509d8c88f50e5222f734b6aeebae", + "reference": "4acfd6a4b33a509d8c88f50e5222f734b6aeebae", "shasum": "" }, "require": { - "php": "^5.5.9 || ^7.0" + "php": "^5.5.9 || ^7.0 || ^8.0" }, "require-dev": { "bamarni/composer-bin-plugin": "^1.3", "phpunit/phpunit": "^4.8.35 || ^5.0 || ^6.0 || ^7.0" }, - "time": "2019-12-14T13:46:39+00:00", + "time": "2020-03-21T18:07:53+00:00", "type": "library", "extra": { "branch-alias": { @@ -2625,35 +2637,35 @@ }, { "name": "phpspec/prophecy", - "version": "1.9.0", - "version_normalized": "1.9.0.0", + "version": "v1.10.3", + "version_normalized": "1.10.3.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "f6811d96d97bdf400077a0cc100ae56aa32b9203" + "reference": "451c3cd1418cf640de218914901e51b064abb093" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/f6811d96d97bdf400077a0cc100ae56aa32b9203", - "reference": "f6811d96d97bdf400077a0cc100ae56aa32b9203", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/451c3cd1418cf640de218914901e51b064abb093", + "reference": "451c3cd1418cf640de218914901e51b064abb093", "shasum": "" }, "require": { "doctrine/instantiator": "^1.0.2", "php": "^5.3|^7.0", "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", - "sebastian/comparator": "^1.1|^2.0|^3.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0" + "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0", + "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0" }, "require-dev": { - "phpspec/phpspec": "^2.5|^3.2", + "phpspec/phpspec": "^2.5 || ^3.2", "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" }, - "time": "2019-10-03T11:07:50+00:00", + "time": "2020-03-05T15:02:03+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "1.8.x-dev" + "dev-master": "1.10.x-dev" } }, "installation-source": "dist", @@ -2952,17 +2964,17 @@ }, { "name": "phpunit/phpunit", - "version": "7.5.18", - "version_normalized": "7.5.18.0", + "version": "7.5.20", + "version_normalized": "7.5.20.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "fcf6c4bfafaadc07785528b06385cce88935474d" + "reference": "9467db479d1b0487c99733bb1e7944d32deded2c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/fcf6c4bfafaadc07785528b06385cce88935474d", - "reference": "fcf6c4bfafaadc07785528b06385cce88935474d", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9467db479d1b0487c99733bb1e7944d32deded2c", + "reference": "9467db479d1b0487c99733bb1e7944d32deded2c", "shasum": "" }, "require": { @@ -3001,7 +3013,7 @@ "ext-xdebug": "*", "phpunit/php-invoker": "^2.0" }, - "time": "2019-12-06T05:14:37+00:00", + "time": "2020-01-08T08:45:45+00:00", "bin": [ "phpunit" ], @@ -3193,23 +3205,23 @@ }, { "name": "psr/log", - "version": "1.1.2", - "version_normalized": "1.1.2.0", + "version": "1.1.3", + "version_normalized": "1.1.3.0", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801" + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801", - "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801", + "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", "shasum": "" }, "require": { "php": ">=5.3.0" }, - "time": "2019-11-01T11:05:21+00:00", + "time": "2020-03-23T09:12:05+00:00", "type": "library", "extra": { "branch-alias": { @@ -3410,17 +3422,17 @@ }, { "name": "ramsey/uuid", - "version": "3.9.2", - "version_normalized": "3.9.2.0", + "version": "3.9.3", + "version_normalized": "3.9.3.0", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "7779489a47d443f845271badbdcedfe4df8e06fb" + "reference": "7e1633a6964b48589b142d60542f9ed31bd37a92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/7779489a47d443f845271badbdcedfe4df8e06fb", - "reference": "7779489a47d443f845271badbdcedfe4df8e06fb", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/7e1633a6964b48589b142d60542f9ed31bd37a92", + "reference": "7e1633a6964b48589b142d60542f9ed31bd37a92", "shasum": "" }, "require": { @@ -3454,7 +3466,7 @@ "ramsey/uuid-console": "A console application for generating UUIDs with ramsey/uuid", "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." }, - "time": "2019-12-17T08:18:51+00:00", + "time": "2020-02-21T04:36:14+00:00", "type": "library", "extra": { "branch-alias": { @@ -4151,17 +4163,17 @@ }, { "name": "symfony/console", - "version": "v4.4.1", - "version_normalized": "4.4.1.0", + "version": "v4.4.8", + "version_normalized": "4.4.8.0", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "f0aea3df20d15635b3cb9730ca5eea1c65b7f201" + "reference": "10bb3ee3c97308869d53b3e3d03f6ac23ff985f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/f0aea3df20d15635b3cb9730ca5eea1c65b7f201", - "reference": "f0aea3df20d15635b3cb9730ca5eea1c65b7f201", + "url": "https://api.github.com/repos/symfony/console/zipball/10bb3ee3c97308869d53b3e3d03f6ac23ff985f7", + "reference": "10bb3ee3c97308869d53b3e3d03f6ac23ff985f7", "shasum": "" }, "require": { @@ -4194,7 +4206,7 @@ "symfony/lock": "", "symfony/process": "" }, - "time": "2019-12-01T10:06:17+00:00", + "time": "2020-03-30T11:41:10+00:00", "type": "library", "extra": { "branch-alias": { @@ -4229,23 +4241,23 @@ }, { "name": "symfony/css-selector", - "version": "v5.0.1", - "version_normalized": "5.0.1.0", + "version": "v5.0.8", + "version_normalized": "5.0.8.0", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "19d29e7098b7b2c3313cb03902ca30f100dcb837" + "reference": "5f8d5271303dad260692ba73dfa21777d38e124e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/19d29e7098b7b2c3313cb03902ca30f100dcb837", - "reference": "19d29e7098b7b2c3313cb03902ca30f100dcb837", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/5f8d5271303dad260692ba73dfa21777d38e124e", + "reference": "5f8d5271303dad260692ba73dfa21777d38e124e", "shasum": "" }, "require": { "php": "^7.2.5" }, - "time": "2019-11-18T17:27:11+00:00", + "time": "2020-03-27T16:56:45+00:00", "type": "library", "extra": { "branch-alias": { @@ -4284,17 +4296,17 @@ }, { "name": "symfony/debug", - "version": "v4.4.1", - "version_normalized": "4.4.1.0", + "version": "v4.4.8", + "version_normalized": "4.4.8.0", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "b8600a1d7d20b0e80906398bb1f50612fa074a8e" + "reference": "346636d2cae417992ecfd761979b2ab98b339a45" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/b8600a1d7d20b0e80906398bb1f50612fa074a8e", - "reference": "b8600a1d7d20b0e80906398bb1f50612fa074a8e", + "url": "https://api.github.com/repos/symfony/debug/zipball/346636d2cae417992ecfd761979b2ab98b339a45", + "reference": "346636d2cae417992ecfd761979b2ab98b339a45", "shasum": "" }, "require": { @@ -4307,7 +4319,7 @@ "require-dev": { "symfony/http-kernel": "^3.4|^4.0|^5.0" }, - "time": "2019-11-28T13:33:56+00:00", + "time": "2020-03-27T16:54:36+00:00", "type": "library", "extra": { "branch-alias": { @@ -4342,30 +4354,30 @@ }, { "name": "symfony/error-handler", - "version": "v4.4.1", - "version_normalized": "4.4.1.0", + "version": "v4.4.8", + "version_normalized": "4.4.8.0", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "a1ad02d62789efed1d2b2796f1c15e0c6a00fc3b" + "reference": "7e9828fc98aa1cf27b422fe478a84f5b0abb7358" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/a1ad02d62789efed1d2b2796f1c15e0c6a00fc3b", - "reference": "a1ad02d62789efed1d2b2796f1c15e0c6a00fc3b", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/7e9828fc98aa1cf27b422fe478a84f5b0abb7358", + "reference": "7e9828fc98aa1cf27b422fe478a84f5b0abb7358", "shasum": "" }, "require": { "php": "^7.1.3", "psr/log": "~1.0", - "symfony/debug": "^4.4", + "symfony/debug": "^4.4.5", "symfony/var-dumper": "^4.4|^5.0" }, "require-dev": { "symfony/http-kernel": "^4.4|^5.0", "symfony/serializer": "^4.4|^5.0" }, - "time": "2019-12-01T08:46:01+00:00", + "time": "2020-03-30T14:07:33+00:00", "type": "library", "extra": { "branch-alias": { @@ -4400,17 +4412,17 @@ }, { "name": "symfony/event-dispatcher", - "version": "v4.4.1", - "version_normalized": "4.4.1.0", + "version": "v4.4.8", + "version_normalized": "4.4.8.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "b3c3068a72623287550fe20b84a2b01dcba2686f" + "reference": "abc8e3618bfdb55e44c8c6a00abd333f831bbfed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b3c3068a72623287550fe20b84a2b01dcba2686f", - "reference": "b3c3068a72623287550fe20b84a2b01dcba2686f", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/abc8e3618bfdb55e44c8c6a00abd333f831bbfed", + "reference": "abc8e3618bfdb55e44c8c6a00abd333f831bbfed", "shasum": "" }, "require": { @@ -4437,7 +4449,7 @@ "symfony/dependency-injection": "", "symfony/http-kernel": "" }, - "time": "2019-11-28T13:33:56+00:00", + "time": "2020-03-27T16:54:36+00:00", "type": "library", "extra": { "branch-alias": { @@ -4532,23 +4544,23 @@ }, { "name": "symfony/finder", - "version": "v4.4.1", - "version_normalized": "4.4.1.0", + "version": "v4.4.8", + "version_normalized": "4.4.8.0", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "ce8743441da64c41e2a667b8eb66070444ed911e" + "reference": "5729f943f9854c5781984ed4907bbb817735776b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/ce8743441da64c41e2a667b8eb66070444ed911e", - "reference": "ce8743441da64c41e2a667b8eb66070444ed911e", + "url": "https://api.github.com/repos/symfony/finder/zipball/5729f943f9854c5781984ed4907bbb817735776b", + "reference": "5729f943f9854c5781984ed4907bbb817735776b", "shasum": "" }, "require": { "php": "^7.1.3" }, - "time": "2019-11-17T21:56:56+00:00", + "time": "2020-03-27T16:54:36+00:00", "type": "library", "extra": { "branch-alias": { @@ -4583,17 +4595,17 @@ }, { "name": "symfony/http-foundation", - "version": "v4.4.1", - "version_normalized": "4.4.1.0", + "version": "v4.4.8", + "version_normalized": "4.4.8.0", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "8bccc59e61b41963d14c3dbdb23181e5c932a1d5" + "reference": "ec5bd254c223786f5fa2bb49a1e705c1b8e7cee2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/8bccc59e61b41963d14c3dbdb23181e5c932a1d5", - "reference": "8bccc59e61b41963d14c3dbdb23181e5c932a1d5", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ec5bd254c223786f5fa2bb49a1e705c1b8e7cee2", + "reference": "ec5bd254c223786f5fa2bb49a1e705c1b8e7cee2", "shasum": "" }, "require": { @@ -4605,7 +4617,7 @@ "predis/predis": "~1.0", "symfony/expression-language": "^3.4|^4.0|^5.0" }, - "time": "2019-11-28T13:33:56+00:00", + "time": "2020-04-18T20:40:08+00:00", "type": "library", "extra": { "branch-alias": { @@ -4640,17 +4652,17 @@ }, { "name": "symfony/http-kernel", - "version": "v4.4.1", - "version_normalized": "4.4.1.0", + "version": "v4.4.8", + "version_normalized": "4.4.8.0", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "e4187780ed26129ee86d5234afbebf085e144f88" + "reference": "1799a6c01f0db5851f399151abdb5d6393fec277" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/e4187780ed26129ee86d5234afbebf085e144f88", - "reference": "e4187780ed26129ee86d5234afbebf085e144f88", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/1799a6c01f0db5851f399151abdb5d6393fec277", + "reference": "1799a6c01f0db5851f399151abdb5d6393fec277", "shasum": "" }, "require": { @@ -4697,7 +4709,7 @@ "symfony/console": "", "symfony/dependency-injection": "" }, - "time": "2019-12-01T14:06:38+00:00", + "time": "2020-04-28T18:47:42+00:00", "type": "library", "extra": { "branch-alias": { @@ -4732,17 +4744,17 @@ }, { "name": "symfony/mime", - "version": "v5.0.1", - "version_normalized": "5.0.1.0", + "version": "v5.0.8", + "version_normalized": "5.0.8.0", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "0e6a4ced216e49d457eddcefb61132173a876d79" + "reference": "5d6c81c39225a750f3f43bee15f03093fb9aaa0b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/0e6a4ced216e49d457eddcefb61132173a876d79", - "reference": "0e6a4ced216e49d457eddcefb61132173a876d79", + "url": "https://api.github.com/repos/symfony/mime/zipball/5d6c81c39225a750f3f43bee15f03093fb9aaa0b", + "reference": "5d6c81c39225a750f3f43bee15f03093fb9aaa0b", "shasum": "" }, "require": { @@ -4757,7 +4769,7 @@ "egulias/email-validator": "^2.1.10", "symfony/dependency-injection": "^4.4|^5.0" }, - "time": "2019-11-30T14:12:50+00:00", + "time": "2020-04-17T03:29:44+00:00", "type": "library", "extra": { "branch-alias": { @@ -4796,17 +4808,17 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.13.1", - "version_normalized": "1.13.1.0", + "version": "v1.16.0", + "version_normalized": "1.16.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3" + "reference": "1aab00e39cebaef4d8652497f46c15c1b7e45294" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", - "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/1aab00e39cebaef4d8652497f46c15c1b7e45294", + "reference": "1aab00e39cebaef4d8652497f46c15c1b7e45294", "shasum": "" }, "require": { @@ -4815,11 +4827,11 @@ "suggest": { "ext-ctype": "For best performance" }, - "time": "2019-11-27T13:56:44+00:00", + "time": "2020-05-08T16:50:20+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "1.13-dev" + "dev-master": "1.16-dev" } }, "installation-source": "dist", @@ -4856,17 +4868,17 @@ }, { "name": "symfony/polyfill-iconv", - "version": "v1.13.1", - "version_normalized": "1.13.1.0", + "version": "v1.16.0", + "version_normalized": "1.16.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "a019efccc03f1a335af6b4f20c30f5ea8060be36" + "reference": "d51debc1391a609c514f6f072dd59a61b461502a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/a019efccc03f1a335af6b4f20c30f5ea8060be36", - "reference": "a019efccc03f1a335af6b4f20c30f5ea8060be36", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/d51debc1391a609c514f6f072dd59a61b461502a", + "reference": "d51debc1391a609c514f6f072dd59a61b461502a", "shasum": "" }, "require": { @@ -4875,11 +4887,11 @@ "suggest": { "ext-iconv": "For best performance" }, - "time": "2019-11-27T13:56:44+00:00", + "time": "2020-05-08T16:50:20+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "1.13-dev" + "dev-master": "1.16-dev" } }, "installation-source": "dist", @@ -4917,32 +4929,32 @@ }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.13.1", - "version_normalized": "1.13.1.0", + "version": "v1.16.0", + "version_normalized": "1.16.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "6f9c239e61e1b0c9229a28ff89a812dc449c3d46" + "reference": "ab0af41deab94ec8dceb3d1fb408bdd038eba4dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/6f9c239e61e1b0c9229a28ff89a812dc449c3d46", - "reference": "6f9c239e61e1b0c9229a28ff89a812dc449c3d46", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/ab0af41deab94ec8dceb3d1fb408bdd038eba4dc", + "reference": "ab0af41deab94ec8dceb3d1fb408bdd038eba4dc", "shasum": "" }, "require": { "php": ">=5.3.3", "symfony/polyfill-mbstring": "^1.3", - "symfony/polyfill-php72": "^1.9" + "symfony/polyfill-php72": "^1.10" }, "suggest": { "ext-intl": "For best performance" }, - "time": "2019-11-27T13:56:44+00:00", + "time": "2020-05-08T16:50:20+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "1.13-dev" + "dev-master": "1.16-dev" } }, "installation-source": "dist", @@ -4981,17 +4993,17 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.13.1", - "version_normalized": "1.13.1.0", + "version": "v1.16.0", + "version_normalized": "1.16.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f" + "reference": "a54881ec0ab3b2005c406aed0023c062879031e7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7b4aab9743c30be783b73de055d24a39cf4b954f", - "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/a54881ec0ab3b2005c406aed0023c062879031e7", + "reference": "a54881ec0ab3b2005c406aed0023c062879031e7", "shasum": "" }, "require": { @@ -5000,11 +5012,11 @@ "suggest": { "ext-mbstring": "For best performance" }, - "time": "2019-11-27T14:18:11+00:00", + "time": "2020-05-08T16:50:20+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "1.13-dev" + "dev-master": "1.16-dev" } }, "installation-source": "dist", @@ -5042,27 +5054,27 @@ }, { "name": "symfony/polyfill-php72", - "version": "v1.13.1", - "version_normalized": "1.13.1.0", + "version": "v1.16.0", + "version_normalized": "1.16.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "66fea50f6cb37a35eea048d75a7d99a45b586038" + "reference": "42fda6d7380e5c940d7f68341ccae89d5ab9963b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/66fea50f6cb37a35eea048d75a7d99a45b586038", - "reference": "66fea50f6cb37a35eea048d75a7d99a45b586038", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/42fda6d7380e5c940d7f68341ccae89d5ab9963b", + "reference": "42fda6d7380e5c940d7f68341ccae89d5ab9963b", "shasum": "" }, "require": { "php": ">=5.3.3" }, - "time": "2019-11-27T13:56:44+00:00", + "time": "2020-05-08T17:28:34+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "1.13-dev" + "dev-master": "1.16-dev" } }, "installation-source": "dist", @@ -5099,27 +5111,27 @@ }, { "name": "symfony/polyfill-php73", - "version": "v1.13.1", - "version_normalized": "1.13.1.0", + "version": "v1.16.0", + "version_normalized": "1.16.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "4b0e2222c55a25b4541305a053013d5647d3a25f" + "reference": "7e95fe59d12169fcf4041487e4bf34fca37ee0ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/4b0e2222c55a25b4541305a053013d5647d3a25f", - "reference": "4b0e2222c55a25b4541305a053013d5647d3a25f", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/7e95fe59d12169fcf4041487e4bf34fca37ee0ed", + "reference": "7e95fe59d12169fcf4041487e4bf34fca37ee0ed", "shasum": "" }, "require": { "php": ">=5.3.3" }, - "time": "2019-11-27T16:25:15+00:00", + "time": "2020-05-02T14:56:09+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "1.13-dev" + "dev-master": "1.16-dev" } }, "installation-source": "dist", @@ -5159,23 +5171,23 @@ }, { "name": "symfony/process", - "version": "v4.4.1", - "version_normalized": "4.4.1.0", + "version": "v4.4.8", + "version_normalized": "4.4.8.0", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "51c0135ef3f44c5803b33dc60e96bf4f77752726" + "reference": "4b6a9a4013baa65d409153cbb5a895bf093dc7f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/51c0135ef3f44c5803b33dc60e96bf4f77752726", - "reference": "51c0135ef3f44c5803b33dc60e96bf4f77752726", + "url": "https://api.github.com/repos/symfony/process/zipball/4b6a9a4013baa65d409153cbb5a895bf093dc7f4", + "reference": "4b6a9a4013baa65d409153cbb5a895bf093dc7f4", "shasum": "" }, "require": { "php": "^7.1.3" }, - "time": "2019-11-28T13:33:56+00:00", + "time": "2020-04-15T15:56:18+00:00", "type": "library", "extra": { "branch-alias": { @@ -5210,17 +5222,17 @@ }, { "name": "symfony/routing", - "version": "v4.4.1", - "version_normalized": "4.4.1.0", + "version": "v4.4.8", + "version_normalized": "4.4.8.0", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "51f3f20ad29329a0bdf5c0e2f722d3764b065273" + "reference": "67b4e1f99c050cbc310b8f3d0dbdc4b0212c052c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/51f3f20ad29329a0bdf5c0e2f722d3764b065273", - "reference": "51f3f20ad29329a0bdf5c0e2f722d3764b065273", + "url": "https://api.github.com/repos/symfony/routing/zipball/67b4e1f99c050cbc310b8f3d0dbdc4b0212c052c", + "reference": "67b4e1f99c050cbc310b8f3d0dbdc4b0212c052c", "shasum": "" }, "require": { @@ -5247,7 +5259,7 @@ "symfony/http-foundation": "For using a Symfony Request object", "symfony/yaml": "For using the YAML loader" }, - "time": "2019-12-01T08:39:58+00:00", + "time": "2020-04-21T19:59:53+00:00", "type": "library", "extra": { "branch-alias": { @@ -5348,17 +5360,17 @@ }, { "name": "symfony/translation", - "version": "v4.4.1", - "version_normalized": "4.4.1.0", + "version": "v4.4.8", + "version_normalized": "4.4.8.0", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "897fb68ee7933372517b551d6f08c6d4bb0b8c40" + "reference": "8272bbd2b7e220ef812eba2a2b30068a5c64b191" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/897fb68ee7933372517b551d6f08c6d4bb0b8c40", - "reference": "897fb68ee7933372517b551d6f08c6d4bb0b8c40", + "url": "https://api.github.com/repos/symfony/translation/zipball/8272bbd2b7e220ef812eba2a2b30068a5c64b191", + "reference": "8272bbd2b7e220ef812eba2a2b30068a5c64b191", "shasum": "" }, "require": { @@ -5391,7 +5403,7 @@ "symfony/config": "", "symfony/yaml": "" }, - "time": "2019-11-12T17:18:47+00:00", + "time": "2020-04-12T16:45:36+00:00", "type": "library", "extra": { "branch-alias": { @@ -5485,17 +5497,17 @@ }, { "name": "symfony/var-dumper", - "version": "v4.4.2", - "version_normalized": "4.4.2.0", + "version": "v4.4.8", + "version_normalized": "4.4.8.0", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "be330f919bdb395d1e0c3f2bfb8948512d6bdd99" + "reference": "c587e04ce5d1aa62d534a038f574d9a709e814cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/be330f919bdb395d1e0c3f2bfb8948512d6bdd99", - "reference": "be330f919bdb395d1e0c3f2bfb8948512d6bdd99", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c587e04ce5d1aa62d534a038f574d9a709e814cf", + "reference": "c587e04ce5d1aa62d534a038f574d9a709e814cf", "shasum": "" }, "require": { @@ -5518,7 +5530,7 @@ "ext-intl": "To show region name in time zone dump", "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" }, - "time": "2019-12-18T13:41:29+00:00", + "time": "2020-04-12T16:14:02+00:00", "bin": [ "Resources/bin/var-dump-server" ], @@ -5709,28 +5721,34 @@ }, { "name": "vlucas/phpdotenv", - "version": "v3.6.0", - "version_normalized": "3.6.0.0", + "version": "v3.6.4", + "version_normalized": "3.6.4.0", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "1bdf24f065975594f6a117f0f1f6cabf1333b156" + "reference": "10d3f853fdf1f3a6b3c7ea0c4620d2f699713db5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/1bdf24f065975594f6a117f0f1f6cabf1333b156", - "reference": "1bdf24f065975594f6a117f0f1f6cabf1333b156", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/10d3f853fdf1f3a6b3c7ea0c4620d2f699713db5", + "reference": "10d3f853fdf1f3a6b3c7ea0c4620d2f699713db5", "shasum": "" }, "require": { - "php": "^5.4 || ^7.0", + "php": "^5.4 || ^7.0 || ^8.0", "phpoption/phpoption": "^1.5", "symfony/polyfill-ctype": "^1.9" }, "require-dev": { + "ext-filter": "*", + "ext-pcre": "*", "phpunit/phpunit": "^4.8.35 || ^5.0 || ^6.0 || ^7.0" }, - "time": "2019-09-10T21:37:39+00:00", + "suggest": { + "ext-filter": "Required to use the boolean validator.", + "ext-pcre": "Required to use most of the library." + }, + "time": "2020-05-02T13:46:13+00:00", "type": "library", "extra": { "branch-alias": { @@ -5768,17 +5786,17 @@ }, { "name": "webmozart/assert", - "version": "1.6.0", - "version_normalized": "1.6.0.0", + "version": "1.8.0", + "version_normalized": "1.8.0.0", "source": { "type": "git", "url": "https://github.com/webmozart/assert.git", - "reference": "573381c0a64f155a0d9a23f4b0c797194805b925" + "reference": "ab2cb0b3b559010b75981b1bdce728da3ee90ad6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/573381c0a64f155a0d9a23f4b0c797194805b925", - "reference": "573381c0a64f155a0d9a23f4b0c797194805b925", + "url": "https://api.github.com/repos/webmozart/assert/zipball/ab2cb0b3b559010b75981b1bdce728da3ee90ad6", + "reference": "ab2cb0b3b559010b75981b1bdce728da3ee90ad6", "shasum": "" }, "require": { @@ -5786,12 +5804,12 @@ "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "vimeo/psalm": "<3.6.0" + "vimeo/psalm": "<3.9.1" }, "require-dev": { "phpunit/phpunit": "^4.8.36 || ^7.5.13" }, - "time": "2019-11-24T13:36:37+00:00", + "time": "2020-04-18T12:12:48+00:00", "type": "library", "installation-source": "dist", "autoload": { diff --git a/vendor/consoletvs/charts/composer.json b/vendor/consoletvs/charts/composer.json index 7906d5b3f..086a28c84 100644 --- a/vendor/consoletvs/charts/composer.json +++ b/vendor/consoletvs/charts/composer.json @@ -5,8 +5,8 @@ "type": "library", "require": { "php": ">=7.0", - "illuminate/support": "^5.0|^6.0", - "illuminate/console": "^5.0|^6.0", + "illuminate/support": "^5.0|^6.0|^7.0", + "illuminate/console": "^5.0|^6.0|^7.0", "balping/json-raw-encoder": "^1.0" }, "authors": [ diff --git a/vendor/consoletvs/charts/src/Classes/Fusioncharts/Dataset.php b/vendor/consoletvs/charts/src/Classes/Fusioncharts/Dataset.php index e52cdc4bf..2503f91f9 100644 --- a/vendor/consoletvs/charts/src/Classes/Fusioncharts/Dataset.php +++ b/vendor/consoletvs/charts/src/Classes/Fusioncharts/Dataset.php @@ -11,7 +11,7 @@ class Dataset extends DatasetClass use DatasetFeatures; /** - * Store the private datasets that contains a special formating. + * Store the private datasets that contains a special formatting. * * @var array */ diff --git a/vendor/doctrine/inflector/README.md b/vendor/doctrine/inflector/README.md index acb55a014..341f8b2a4 100644 --- a/vendor/doctrine/inflector/README.md +++ b/vendor/doctrine/inflector/README.md @@ -1,6 +1,8 @@ # Doctrine Inflector Doctrine Inflector is a small library that can perform string manipulations -with regard to upper-/lowercase and singular/plural forms of words. +with regard to uppercase/lowercase and singular/plural forms of words. -[![Build Status](https://travis-ci.org/doctrine/inflector.svg?branch=master)](https://travis-ci.org/doctrine/inflector) +[![Build Status](https://travis-ci.org/doctrine/inflector.svg)](https://travis-ci.org/doctrine/inflector) +[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/doctrine/inflector/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/doctrine/inflector/?branch=master) +[![Code Coverage](https://scrutinizer-ci.com/g/doctrine/inflector/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/doctrine/inflector/?branch=master) diff --git a/vendor/doctrine/inflector/composer.json b/vendor/doctrine/inflector/composer.json index 2189ff17f..aceeb8d4e 100644 --- a/vendor/doctrine/inflector/composer.json +++ b/vendor/doctrine/inflector/composer.json @@ -1,9 +1,9 @@ { "name": "doctrine/inflector", "type": "library", - "description": "Common String Manipulations with regard to casing and singular/plural rules.", - "keywords": ["string", "inflection", "singularize", "pluralize"], - "homepage": "http://www.doctrine-project.org", + "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", + "keywords": ["php", "strings", "words", "manipulation", "inflector", "inflection", "uppercase", "lowercase", "singular", "plural"], + "homepage": "https://www.doctrine-project.org/projects/inflector.html", "license": "MIT", "authors": [ {"name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com"}, @@ -13,20 +13,30 @@ {"name": "Johannes Schmitt", "email": "schmittjoh@gmail.com"} ], "require": { - "php": "^7.1" + "php": "^7.2" }, "require-dev": { - "phpunit/phpunit": "^6.2" + "doctrine/coding-standard": "^7.0", + "phpstan/phpstan": "^0.11", + "phpstan/phpstan-phpunit": "^0.11", + "phpstan/phpstan-strict-rules": "^0.11", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" }, "autoload": { - "psr-4": { "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector" } + "psr-4": { + "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector", + "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" + } }, "autoload-dev": { - "psr-4": { "Doctrine\\Tests\\Common\\Inflector\\": "tests/Doctrine/Tests/Common/Inflector" } + "psr-4": { + "Doctrine\\Tests\\Common\\Inflector\\": "tests/Doctrine/Tests/Common/Inflector", + "Doctrine\\Tests\\Inflector\\": "tests/Doctrine/Tests/Inflector" + } }, "extra": { "branch-alias": { - "dev-master": "1.3.x-dev" + "dev-master": "2.0.x-dev" } } } diff --git a/vendor/doctrine/inflector/docs/en/index.rst b/vendor/doctrine/inflector/docs/en/index.rst index ddfeb50c8..29866f4d4 100644 --- a/vendor/doctrine/inflector/docs/en/index.rst +++ b/vendor/doctrine/inflector/docs/en/index.rst @@ -1,24 +1,133 @@ Introduction ============ -The Doctrine Inflector has static methods for inflecting text. -The features include pluralization, singularization, -converting between camelCase and under_score and capitalizing +The Doctrine Inflector has methods for inflecting text. The features include pluralization, +singularization, converting between camelCase and under_score and capitalizing words. -All you need to use the Inflector is the ``Doctrine\Common\Inflector\Inflector`` -class. - Installation ============ You can install the Inflector with composer: -.. code-block:: +.. code-block:: console $ composer require doctrine/inflector -Here are the available methods that you can use: +Usage +===== + +Using the inflector is easy, you can create a new ``Doctrine\Inflector\Inflector`` instance by using +the ``Doctrine\Inflector\InflectorFactory`` class: + +.. code-block:: php + + use Doctrine\Inflector\InflectorFactory; + + $inflector = InflectorFactory::create()->build(); + +By default it will create an English inflector. If you want to use another language, just pass the language +you want to create an inflector for to the ``createForLanguage()`` method: + +.. code-block:: php + + use Doctrine\Inflector\InflectorFactory; + use Doctrine\Inflector\Language; + + $inflector = InflectorFactory::createForLanguage(Language::SPANISH)->build(); + +The supported languages are as follows: + +- ``Language::ENGLISH`` +- ``Language::FRENCH`` +- ``Language::NORWEGIAN_BOKMAL`` +- ``Language::PORTUGUESE`` +- ``Language::SPANISH`` +- ``Language::TURKISH`` + +If you want to manually construct the inflector instead of using a factory, you can do so like this: + +.. code-block:: php + + use Doctrine\Inflector\CachedWordInflector; + use Doctrine\Inflector\RulesetInflector; + use Doctrine\Inflector\Rules\English; + + $inflector = new Inflector( + new CachedWordInflector(new RulesetInflector( + English\Rules::getSingularRuleset() + )), + new CachedWordInflector(new RulesetInflector( + English\Rules::getPluralRuleset() + )) + ); + +Adding Languages +---------------- + +If you are interested in adding support for your language, take a look at the other languages defined in the +``Doctrine\Inflector\Rules`` namespace and the tests located in ``Doctrine\Tests\Inflector\Rules``. You can copy +one of the languages and update the rules for your language. + +Once you have done this, send a pull request to the ``doctrine/inflector`` repository with the additions. + +Custom Setup +============ + +If you want to setup custom singular and plural rules, you can configure these in the factory: + +.. code-block:: php + + use Doctrine\Inflector\InflectorFactory; + use Doctrine\Inflector\Rules\Pattern; + use Doctrine\Inflector\Rules\Patterns; + use Doctrine\Inflector\Rules\Ruleset; + use Doctrine\Inflector\Rules\Substitution; + use Doctrine\Inflector\Rules\Substitutions; + use Doctrine\Inflector\Rules\Transformation; + use Doctrine\Inflector\Rules\Transformations; + use Doctrine\Inflector\Rules\Word; + + $inflector = InflectorFactory::create() + ->withSingularRules( + new Ruleset( + new Transformations( + new Transformation(new Pattern('/^(bil)er$/i'), '\1'), + new Transformation(new Pattern('/^(inflec|contribu)tors$/i'), '\1ta') + ), + new Patterns(new Pattern('singulars')), + new Substitutions(new Substitution(new Word('spins'), new Word('spinor'))) + ) + ) + ->withPluralRules( + new Ruleset( + new Transformations( + new Transformation(new Pattern('^(bil)er$'), '\1'), + new Transformation(new Pattern('^(inflec|contribu)tors$'), '\1ta') + ), + new Patterns(new Pattern('noflect'), new Pattern('abtuse')), + new Substitutions( + new Substitution(new Word('amaze'), new Word('amazable')), + new Substitution(new Word('phone'), new Word('phonezes')) + ) + ) + ) + ->build(); + +No operation inflector +---------------------- + +The ``Doctrine\Inflector\NoopWordInflector`` may be used to configure an inflector that doesn't perform any operation for +pluralization and/or singularization. If will simply return the input as output. + +This is an implementation of the `Null Object design pattern `_. + +.. code-block:: php + + use Doctrine\Inflector\Inflector; + use Doctrine\Inflector\NoopWordInflector; + + $inflector = new Inflector(new NoopWordInflector(), new NoopWordInflector()); Tableize ======== @@ -27,7 +136,7 @@ Converts ``ModelName`` to ``model_name``: .. code-block:: php - echo Inflector::tableize('ModelName'); // model_name + echo $inflector->tableize('ModelName'); // model_name Classify ======== @@ -36,7 +145,7 @@ Converts ``model_name`` to ``ModelName``: .. code-block:: php - echo Inflector::classify('model_name'); // ModelName + echo $inflector->classify('model_name'); // ModelName Camelize ======== @@ -45,13 +154,13 @@ This method uses `Classify`_ and then converts the first character to lowercase: .. code-block:: php - echo Inflector::camelize('model_name'); // modelName + echo $inflector->camelize('model_name'); // modelName -ucwords -======= +Capitalize +========== Takes a string and capitalizes all of the words, like PHP's built-in -ucwords function. This extends that behavior, however, by allowing the +``ucwords`` function. This extends that behavior, however, by allowing the word delimiters to be configured, rather than only separating on whitespace. @@ -61,9 +170,9 @@ Here is an example: $string = 'top-o-the-morning to all_of_you!'; - echo Inflector::ucwords($string); // Top-O-The-Morning To All_of_you! + echo $inflector->capitalize($string); // Top-O-The-Morning To All_of_you! - echo Inflector::ucwords($string, '-_ '); // Top-O-The-Morning To All_Of_You! + echo $inflector->capitalize($string, '-_ '); // Top-O-The-Morning To All_Of_You! Pluralize ========= @@ -72,54 +181,46 @@ Returns a word in plural form. .. code-block:: php - echo Inflector::pluralize('browser'); // browsers + echo $inflector->pluralize('browser'); // browsers Singularize =========== -.. code-block:: php - - echo Inflector::singularize('browsers'); // browser - -Rules -===== - -Customize the rules for pluralization and singularization: +Returns a word in singular form. .. code-block:: php - Inflector::rules('plural', ['/^(inflect)or$/i' => '\1ables']); - Inflector::rules('plural', [ - 'rules' => ['/^(inflect)ors$/i' => '\1ables'], - 'uninflected' => ['dontinflectme'], - 'irregular' => ['red' => 'redlings'] - ]); + echo $inflector->singularize('browsers'); // browser -The arguments for the ``rules`` method are: +Urlize +====== -- ``$type`` - The type of inflection, either ``plural`` or ``singular`` -- ``$rules`` - An array of rules to be added. -- ``$reset`` - If true, will unset default inflections for all new rules that are being defined in $rules. - -Reset -===== - -Clears Inflectors inflected value caches, and resets the inflection -rules to the initial values. +Generate a URL friendly string from a string of text: .. code-block:: php - Inflector::reset(); + echo $inflector->urlize('My first blog post'); // my-first-blog-post -Slugify -======= +Unaccent +======== -You can easily use the Inflector to create a slug from a string of text -by using the `tableize`_ method and replacing underscores with hyphens: +You can unaccent a string of text using the ``unaccent()`` method: .. code-block:: php - public static function slugify(string $text) : string - { - return str_replace('_', '-', Inflector::tableize($text)); - } + echo $inflector->unaccent('año'); // ano + +Legacy API +========== + +The API present in Inflector 1.x is still available, but will be deprecated in a future release and dropped for 3.0. +Support for languages other than English is available in the 2.0 API only. + +Acknowledgements +================ + +The language rules in this library have been adapted from several different sources, including but not limited to: + +- `Ruby On Rails Inflector `_ +- `ICanBoogie Inflector `_ +- `CakePHP Inflector `_ diff --git a/vendor/doctrine/inflector/lib/Doctrine/Common/Inflector/Inflector.php b/vendor/doctrine/inflector/lib/Doctrine/Common/Inflector/Inflector.php index 35b5c68b3..d00e56516 100644 --- a/vendor/doctrine/inflector/lib/Doctrine/Common/Inflector/Inflector.php +++ b/vendor/doctrine/inflector/lib/Doctrine/Common/Inflector/Inflector.php @@ -19,254 +19,67 @@ namespace Doctrine\Common\Inflector; +use Doctrine\Inflector\Inflector as InflectorObject; +use Doctrine\Inflector\InflectorFactory; +use Doctrine\Inflector\LanguageInflectorFactory; +use Doctrine\Inflector\Rules\Pattern; +use Doctrine\Inflector\Rules\Patterns; +use Doctrine\Inflector\Rules\Ruleset; +use Doctrine\Inflector\Rules\Substitution; +use Doctrine\Inflector\Rules\Substitutions; +use Doctrine\Inflector\Rules\Transformation; +use Doctrine\Inflector\Rules\Transformations; +use Doctrine\Inflector\Rules\Word; +use InvalidArgumentException; +use function array_keys; +use function array_map; +use function array_unshift; +use function array_values; +use function sprintf; +use function trigger_error; +use const E_USER_DEPRECATED; + /** - * Doctrine inflector has static methods for inflecting text. - * - * The methods in these classes are from several different sources collected - * across several different php projects and several different authors. The - * original author names and emails are not known. - * - * Pluralize & Singularize implementation are borrowed from CakePHP with some modifications. - * - * @link www.doctrine-project.org - * @since 1.0 - * @author Konsta Vesterinen - * @author Jonathan H. Wage + * @deprecated */ class Inflector { /** - * Plural inflector rules. - * - * @var string[][] + * @var LanguageInflectorFactory|null */ - private static $plural = array( - 'rules' => array( - '/(s)tatus$/i' => '\1\2tatuses', - '/(quiz)$/i' => '\1zes', - '/^(ox)$/i' => '\1\2en', - '/([m|l])ouse$/i' => '\1ice', - '/(matr|vert|ind)(ix|ex)$/i' => '\1ices', - '/(x|ch|ss|sh)$/i' => '\1es', - '/([^aeiouy]|qu)y$/i' => '\1ies', - '/(hive|gulf)$/i' => '\1s', - '/(?:([^f])fe|([lr])f)$/i' => '\1\2ves', - '/sis$/i' => 'ses', - '/([ti])um$/i' => '\1a', - '/(c)riterion$/i' => '\1riteria', - '/(p)erson$/i' => '\1eople', - '/(m)an$/i' => '\1en', - '/(c)hild$/i' => '\1hildren', - '/(f)oot$/i' => '\1eet', - '/(buffal|her|potat|tomat|volcan)o$/i' => '\1\2oes', - '/(alumn|bacill|cact|foc|fung|nucle|radi|stimul|syllab|termin|vir)us$/i' => '\1i', - '/us$/i' => 'uses', - '/(alias)$/i' => '\1es', - '/(analys|ax|cris|test|thes)is$/i' => '\1es', - '/s$/' => 's', - '/^$/' => '', - '/$/' => 's', - ), - 'uninflected' => array( - '.*[nrlm]ese', - '.*deer', - '.*fish', - '.*measles', - '.*ois', - '.*pox', - '.*sheep', - 'people', - 'cookie', - 'police', - ), - 'irregular' => array( - 'atlas' => 'atlases', - 'axe' => 'axes', - 'beef' => 'beefs', - 'brother' => 'brothers', - 'cafe' => 'cafes', - 'canvas' => 'canvases', - 'chateau' => 'chateaux', - 'niveau' => 'niveaux', - 'child' => 'children', - 'cookie' => 'cookies', - 'corpus' => 'corpuses', - 'cow' => 'cows', - 'criterion' => 'criteria', - 'curriculum' => 'curricula', - 'demo' => 'demos', - 'domino' => 'dominoes', - 'echo' => 'echoes', - 'foot' => 'feet', - 'fungus' => 'fungi', - 'ganglion' => 'ganglions', - 'gas' => 'gases', - 'genie' => 'genies', - 'genus' => 'genera', - 'goose' => 'geese', - 'graffito' => 'graffiti', - 'hippopotamus' => 'hippopotami', - 'hoof' => 'hoofs', - 'human' => 'humans', - 'iris' => 'irises', - 'larva' => 'larvae', - 'leaf' => 'leaves', - 'loaf' => 'loaves', - 'man' => 'men', - 'medium' => 'media', - 'memorandum' => 'memoranda', - 'money' => 'monies', - 'mongoose' => 'mongooses', - 'motto' => 'mottoes', - 'move' => 'moves', - 'mythos' => 'mythoi', - 'niche' => 'niches', - 'nucleus' => 'nuclei', - 'numen' => 'numina', - 'occiput' => 'occiputs', - 'octopus' => 'octopuses', - 'opus' => 'opuses', - 'ox' => 'oxen', - 'passerby' => 'passersby', - 'penis' => 'penises', - 'person' => 'people', - 'plateau' => 'plateaux', - 'runner-up' => 'runners-up', - 'sex' => 'sexes', - 'soliloquy' => 'soliloquies', - 'son-in-law' => 'sons-in-law', - 'syllabus' => 'syllabi', - 'testis' => 'testes', - 'thief' => 'thieves', - 'tooth' => 'teeth', - 'tornado' => 'tornadoes', - 'trilby' => 'trilbys', - 'turf' => 'turfs', - 'valve' => 'valves', - 'volcano' => 'volcanoes', - ) - ); + private static $factory; - /** - * Singular inflector rules. - * - * @var string[][] - */ - private static $singular = array( - 'rules' => array( - '/(s)tatuses$/i' => '\1\2tatus', - '/^(.*)(menu)s$/i' => '\1\2', - '/(quiz)zes$/i' => '\\1', - '/(matr)ices$/i' => '\1ix', - '/(vert|ind)ices$/i' => '\1ex', - '/^(ox)en/i' => '\1', - '/(alias)(es)*$/i' => '\1', - '/(buffal|her|potat|tomat|volcan)oes$/i' => '\1o', - '/(alumn|bacill|cact|foc|fung|nucle|radi|stimul|syllab|termin|viri?)i$/i' => '\1us', - '/([ftw]ax)es/i' => '\1', - '/(analys|ax|cris|test|thes)es$/i' => '\1is', - '/(shoe|slave)s$/i' => '\1', - '/(o)es$/i' => '\1', - '/ouses$/' => 'ouse', - '/([^a])uses$/' => '\1us', - '/([m|l])ice$/i' => '\1ouse', - '/(x|ch|ss|sh)es$/i' => '\1', - '/(m)ovies$/i' => '\1\2ovie', - '/(s)eries$/i' => '\1\2eries', - '/([^aeiouy]|qu)ies$/i' => '\1y', - '/([lr])ves$/i' => '\1f', - '/(tive)s$/i' => '\1', - '/(hive)s$/i' => '\1', - '/(drive)s$/i' => '\1', - '/(dive)s$/i' => '\1', - '/(olive)s$/i' => '\1', - '/([^fo])ves$/i' => '\1fe', - '/(^analy)ses$/i' => '\1sis', - '/(analy|diagno|^ba|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i' => '\1\2sis', - '/(c)riteria$/i' => '\1riterion', - '/([ti])a$/i' => '\1um', - '/(p)eople$/i' => '\1\2erson', - '/(m)en$/i' => '\1an', - '/(c)hildren$/i' => '\1\2hild', - '/(f)eet$/i' => '\1oot', - '/(n)ews$/i' => '\1\2ews', - '/eaus$/' => 'eau', - '/^(.*us)$/' => '\\1', - '/s$/i' => '', - ), - 'uninflected' => array( - '.*[nrlm]ese', - '.*deer', - '.*fish', - '.*measles', - '.*ois', - '.*pox', - '.*sheep', - '.*ss', - 'data', - 'police', - 'pants', - 'clothes', - ), - 'irregular' => array( - 'abuses' => 'abuse', - 'avalanches' => 'avalanche', - 'caches' => 'cache', - 'criteria' => 'criterion', - 'curves' => 'curve', - 'emphases' => 'emphasis', - 'foes' => 'foe', - 'geese' => 'goose', - 'graves' => 'grave', - 'hoaxes' => 'hoax', - 'media' => 'medium', - 'neuroses' => 'neurosis', - 'waves' => 'wave', - 'oases' => 'oasis', - 'valves' => 'valve', - ) - ); + /** @var InflectorObject|null */ + private static $instance; - /** - * Words that should not be inflected. - * - * @var array - */ - private static $uninflected = array( - '.*?media', 'Amoyese', 'audio', 'bison', 'Borghese', 'bream', 'breeches', - 'britches', 'buffalo', 'cantus', 'carp', 'chassis', 'clippers', 'cod', 'coitus', 'compensation', 'Congoese', - 'contretemps', 'coreopsis', 'corps', 'data', 'debris', 'deer', 'diabetes', 'djinn', 'education', 'eland', - 'elk', 'emoji', 'equipment', 'evidence', 'Faroese', 'feedback', 'fish', 'flounder', 'Foochowese', - 'Furniture', 'furniture', 'gallows', 'Genevese', 'Genoese', 'Gilbertese', 'gold', - 'headquarters', 'herpes', 'hijinks', 'Hottentotese', 'information', 'innings', 'jackanapes', 'jedi', - 'Kiplingese', 'knowledge', 'Kongoese', 'love', 'Lucchese', 'Luggage', 'mackerel', 'Maltese', 'metadata', - 'mews', 'moose', 'mumps', 'Nankingese', 'news', 'nexus', 'Niasese', 'nutrition', 'offspring', - 'Pekingese', 'Piedmontese', 'pincers', 'Pistoiese', 'plankton', 'pliers', 'pokemon', 'police', 'Portuguese', - 'proceedings', 'rabies', 'rain', 'rhinoceros', 'rice', 'salmon', 'Sarawakese', 'scissors', 'sea[- ]bass', - 'series', 'Shavese', 'shears', 'sheep', 'siemens', 'species', 'staff', 'swine', 'traffic', - 'trousers', 'trout', 'tuna', 'us', 'Vermontese', 'Wenchowese', 'wheat', 'whiting', 'wildebeest', 'Yengeese' - ); + private static function getInstance() : InflectorObject + { + if (self::$factory === null) { + self::$factory = self::createFactory(); + } - /** - * Method cache array. - * - * @var array - */ - private static $cache = array(); + if (self::$instance === null) { + self::$instance = self::$factory->build(); + } - /** - * The initial state of Inflector so reset() works. - * - * @var array - */ - private static $initialState = array(); + return self::$instance; + } + + private static function createFactory() : LanguageInflectorFactory + { + return InflectorFactory::create(); + } /** * Converts a word into the format for a Doctrine table name. Converts 'ModelName' to 'model_name'. + * + * @deprecated */ public static function tableize(string $word) : string { - return strtolower(preg_replace('~(?<=\\w)([A-Z])~', '_$1', $word)); + @trigger_error(sprintf('The "%s" method is deprecated and will be dropped in doctrine/inflector 2.0. Please update to the new Inflector API.', __METHOD__), E_USER_DEPRECATED); + + return self::getInstance()->tableize($word); } /** @@ -274,23 +87,29 @@ class Inflector */ public static function classify(string $word) : string { - return str_replace([' ', '_', '-'], '', ucwords($word, ' _-')); + @trigger_error(sprintf('The "%s" method is deprecated and will be dropped in doctrine/inflector 2.0. Please update to the new Inflector API.', __METHOD__), E_USER_DEPRECATED); + + return self::getInstance()->classify($word); } /** * Camelizes a word. This uses the classify() method and turns the first character to lowercase. + * + * @deprecated */ public static function camelize(string $word) : string { - return lcfirst(self::classify($word)); + @trigger_error(sprintf('The "%s" method is deprecated and will be dropped in doctrine/inflector 2.0. Please update to the new Inflector API.', __METHOD__), E_USER_DEPRECATED); + + return self::getInstance()->camelize($word); } /** - * Uppercases words with configurable delimeters between words. + * Uppercases words with configurable delimiters between words. * * Takes a string and capitalizes all of the words, like PHP's built-in * ucwords function. This extends that behavior, however, by allowing the - * word delimeters to be configured, rather than only separating on + * word delimiters to be configured, rather than only separating on * whitespace. * * Here is an example: @@ -308,30 +127,29 @@ class Inflector * @param string $string The string to operate on. * @param string $delimiters A list of word separators. * - * @return string The string with all delimeter-separated words capitalized. + * @return string The string with all delimiter-separated words capitalized. + * + * @deprecated */ public static function ucwords(string $string, string $delimiters = " \n\t\r\0\x0B-") : string { + @trigger_error(sprintf('The "%s" method is deprecated and will be dropped in doctrine/inflector 2.0. Please use the "ucwords" function instead.', __METHOD__), E_USER_DEPRECATED); + return ucwords($string, $delimiters); } /** * Clears Inflectors inflected value caches, and resets the inflection * rules to the initial values. + * + * @deprecated */ public static function reset() : void { - if (empty(self::$initialState)) { - self::$initialState = get_class_vars('Inflector'); + @trigger_error(sprintf('The "%s" method is deprecated and will be dropped in doctrine/inflector 2.0. Please update to the new Inflector API.', __METHOD__), E_USER_DEPRECATED); - return; - } - - foreach (self::$initialState as $key => $val) { - if ($key !== 'initialState') { - self::${$key} = $val; - } - } + self::$factory = null; + self::$instance = null; } /** @@ -354,36 +172,79 @@ class Inflector * new rules that are being defined in $rules. * * @return void + * + * @deprecated */ public static function rules(string $type, iterable $rules, bool $reset = false) : void { + @trigger_error(sprintf('The "%s" method is deprecated and will be dropped in doctrine/inflector 2.0. Please update to the new Inflector API.', __METHOD__), E_USER_DEPRECATED); + + if (self::$factory === null) { + self::$factory = self::createFactory(); + } + + self::$instance = null; + + switch ($type) { + case 'singular': + self::$factory->withSingularRules(self::buildRuleset($rules), $reset); + break; + case 'plural': + self::$factory->withPluralRules(self::buildRuleset($rules), $reset); + break; + default: + throw new InvalidArgumentException(sprintf('Cannot define custom inflection rules for type "%s".', $type)); + } + } + + private static function buildRuleset(iterable $rules) : Ruleset + { + $regular = []; + $irregular = []; + $uninflected = []; + foreach ($rules as $rule => $pattern) { if ( ! is_array($pattern)) { + $regular[$rule] = $pattern; + continue; } - if ($reset) { - self::${$type}[$rule] = $pattern; - } else { - self::${$type}[$rule] = ($rule === 'uninflected') - ? array_merge($pattern, self::${$type}[$rule]) - : $pattern + self::${$type}[$rule]; - } - - unset($rules[$rule], self::${$type}['cache' . ucfirst($rule)]); - - if (isset(self::${$type}['merged'][$rule])) { - unset(self::${$type}['merged'][$rule]); - } - - if ($type === 'plural') { - self::$cache['pluralize'] = self::$cache['tableize'] = array(); - } elseif ($type === 'singular') { - self::$cache['singularize'] = array(); + switch ($rule) { + case 'uninflected': + $uninflected = $pattern; + break; + case 'irregular': + $irregular = $pattern; + break; + case 'rules': + $regular = $pattern; + break; } } - self::${$type}['rules'] = $rules + self::${$type}['rules']; + return new Ruleset( + new Transformations(...array_map( + static function (string $pattern, string $replacement) : Transformation { + return new Transformation(new Pattern($pattern), $replacement); + }, + array_keys($regular), + array_values($regular) + )), + new Patterns(...array_map( + static function (string $pattern) : Pattern { + return new Pattern($pattern); + }, + $uninflected + )), + new Substitutions(...array_map( + static function (string $word, string $to) : Substitution { + return new Substitution(new Word($word), new Word($to)); + }, + array_keys($irregular), + array_values($irregular) + )) + ); } /** @@ -392,45 +253,14 @@ class Inflector * @param string $word The word in singular form. * * @return string The word in plural form. + * + * @deprecated */ public static function pluralize(string $word) : string { - if (isset(self::$cache['pluralize'][$word])) { - return self::$cache['pluralize'][$word]; - } + @trigger_error(sprintf('The "%s" method is deprecated and will be dropped in doctrine/inflector 2.0. Please update to the new Inflector API.', __METHOD__), E_USER_DEPRECATED); - if (!isset(self::$plural['merged']['irregular'])) { - self::$plural['merged']['irregular'] = self::$plural['irregular']; - } - - if (!isset(self::$plural['merged']['uninflected'])) { - self::$plural['merged']['uninflected'] = array_merge(self::$plural['uninflected'], self::$uninflected); - } - - if (!isset(self::$plural['cacheUninflected']) || !isset(self::$plural['cacheIrregular'])) { - self::$plural['cacheUninflected'] = '(?:' . implode('|', self::$plural['merged']['uninflected']) . ')'; - self::$plural['cacheIrregular'] = '(?:' . implode('|', array_keys(self::$plural['merged']['irregular'])) . ')'; - } - - if (preg_match('/(.*)\\b(' . self::$plural['cacheIrregular'] . ')$/i', $word, $regs)) { - self::$cache['pluralize'][$word] = $regs[1] . $word[0] . substr(self::$plural['merged']['irregular'][strtolower($regs[2])], 1); - - return self::$cache['pluralize'][$word]; - } - - if (preg_match('/^(' . self::$plural['cacheUninflected'] . ')$/i', $word, $regs)) { - self::$cache['pluralize'][$word] = $word; - - return $word; - } - - foreach (self::$plural['rules'] as $rule => $replacement) { - if (preg_match($rule, $word)) { - self::$cache['pluralize'][$word] = preg_replace($rule, $replacement, $word); - - return self::$cache['pluralize'][$word]; - } - } + return self::getInstance()->pluralize($word); } /** @@ -439,54 +269,13 @@ class Inflector * @param string $word The word in plural form. * * @return string The word in singular form. + * + * @deprecated */ public static function singularize(string $word) : string { - if (isset(self::$cache['singularize'][$word])) { - return self::$cache['singularize'][$word]; - } + @trigger_error(sprintf('The "%s" method is deprecated and will be dropped in doctrine/inflector 2.0. Please update to the new Inflector API.', __METHOD__), E_USER_DEPRECATED); - if (!isset(self::$singular['merged']['uninflected'])) { - self::$singular['merged']['uninflected'] = array_merge( - self::$singular['uninflected'], - self::$uninflected - ); - } - - if (!isset(self::$singular['merged']['irregular'])) { - self::$singular['merged']['irregular'] = array_merge( - self::$singular['irregular'], - array_flip(self::$plural['irregular']) - ); - } - - if (!isset(self::$singular['cacheUninflected']) || !isset(self::$singular['cacheIrregular'])) { - self::$singular['cacheUninflected'] = '(?:' . implode('|', self::$singular['merged']['uninflected']) . ')'; - self::$singular['cacheIrregular'] = '(?:' . implode('|', array_keys(self::$singular['merged']['irregular'])) . ')'; - } - - if (preg_match('/(.*)\\b(' . self::$singular['cacheIrregular'] . ')$/i', $word, $regs)) { - self::$cache['singularize'][$word] = $regs[1] . $word[0] . substr(self::$singular['merged']['irregular'][strtolower($regs[2])], 1); - - return self::$cache['singularize'][$word]; - } - - if (preg_match('/^(' . self::$singular['cacheUninflected'] . ')$/i', $word, $regs)) { - self::$cache['singularize'][$word] = $word; - - return $word; - } - - foreach (self::$singular['rules'] as $rule => $replacement) { - if (preg_match($rule, $word)) { - self::$cache['singularize'][$word] = preg_replace($rule, $replacement, $word); - - return self::$cache['singularize'][$word]; - } - } - - self::$cache['singularize'][$word] = $word; - - return $word; + return self::getInstance()->singularize($word); } } diff --git a/vendor/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php b/vendor/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php new file mode 100644 index 000000000..b59ac46c1 --- /dev/null +++ b/vendor/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php @@ -0,0 +1,24 @@ +wordInflector = $wordInflector; + } + + public function inflect(string $word) : string + { + return $this->cache[$word] ?? $this->cache[$word] = $this->wordInflector->inflect($word); + } +} diff --git a/vendor/doctrine/inflector/lib/Doctrine/Inflector/GenericLanguageInflectorFactory.php b/vendor/doctrine/inflector/lib/Doctrine/Inflector/GenericLanguageInflectorFactory.php new file mode 100644 index 000000000..1b15061a0 --- /dev/null +++ b/vendor/doctrine/inflector/lib/Doctrine/Inflector/GenericLanguageInflectorFactory.php @@ -0,0 +1,65 @@ +singularRulesets[] = $this->getSingularRuleset(); + $this->pluralRulesets[] = $this->getPluralRuleset(); + } + + final public function build() : Inflector + { + return new Inflector( + new CachedWordInflector(new RulesetInflector( + ...$this->singularRulesets + )), + new CachedWordInflector(new RulesetInflector( + ...$this->pluralRulesets + )) + ); + } + + final public function withSingularRules(?Ruleset $singularRules, bool $reset = false) : LanguageInflectorFactory + { + if ($reset) { + $this->singularRulesets = []; + } + + if ($singularRules instanceof Ruleset) { + array_unshift($this->singularRulesets, $singularRules); + } + + return $this; + } + + final public function withPluralRules(?Ruleset $pluralRules, bool $reset = false) : LanguageInflectorFactory + { + if ($reset) { + $this->pluralRulesets = []; + } + + if ($pluralRules instanceof Ruleset) { + array_unshift($this->pluralRulesets, $pluralRules); + } + + return $this; + } + + abstract protected function getSingularRuleset() : Ruleset; + + abstract protected function getPluralRuleset() : Ruleset; +} diff --git a/vendor/doctrine/inflector/lib/Doctrine/Inflector/Inflector.php b/vendor/doctrine/inflector/lib/Doctrine/Inflector/Inflector.php new file mode 100644 index 000000000..241191850 --- /dev/null +++ b/vendor/doctrine/inflector/lib/Doctrine/Inflector/Inflector.php @@ -0,0 +1,506 @@ + 'A', + 'Á' => 'A', + 'Â' => 'A', + 'Ã' => 'A', + 'Ä' => 'Ae', + 'Æ' => 'Ae', + 'Å' => 'Aa', + 'æ' => 'a', + 'Ç' => 'C', + 'È' => 'E', + 'É' => 'E', + 'Ê' => 'E', + 'Ë' => 'E', + 'Ì' => 'I', + 'Í' => 'I', + 'Î' => 'I', + 'Ï' => 'I', + 'Ñ' => 'N', + 'Ò' => 'O', + 'Ó' => 'O', + 'Ô' => 'O', + 'Õ' => 'O', + 'Ö' => 'Oe', + 'Ù' => 'U', + 'Ú' => 'U', + 'Û' => 'U', + 'Ü' => 'Ue', + 'Ý' => 'Y', + 'ß' => 'ss', + 'à' => 'a', + 'á' => 'a', + 'â' => 'a', + 'ã' => 'a', + 'ä' => 'ae', + 'å' => 'aa', + 'ç' => 'c', + 'è' => 'e', + 'é' => 'e', + 'ê' => 'e', + 'ë' => 'e', + 'ì' => 'i', + 'í' => 'i', + 'î' => 'i', + 'ï' => 'i', + 'ñ' => 'n', + 'ò' => 'o', + 'ó' => 'o', + 'ô' => 'o', + 'õ' => 'o', + 'ö' => 'oe', + 'ù' => 'u', + 'ú' => 'u', + 'û' => 'u', + 'ü' => 'ue', + 'ý' => 'y', + 'ÿ' => 'y', + 'Ā' => 'A', + 'ā' => 'a', + 'Ă' => 'A', + 'ă' => 'a', + 'Ą' => 'A', + 'ą' => 'a', + 'Ć' => 'C', + 'ć' => 'c', + 'Ĉ' => 'C', + 'ĉ' => 'c', + 'Ċ' => 'C', + 'ċ' => 'c', + 'Č' => 'C', + 'č' => 'c', + 'Ď' => 'D', + 'ď' => 'd', + 'Đ' => 'D', + 'đ' => 'd', + 'Ē' => 'E', + 'ē' => 'e', + 'Ĕ' => 'E', + 'ĕ' => 'e', + 'Ė' => 'E', + 'ė' => 'e', + 'Ę' => 'E', + 'ę' => 'e', + 'Ě' => 'E', + 'ě' => 'e', + 'Ĝ' => 'G', + 'ĝ' => 'g', + 'Ğ' => 'G', + 'ğ' => 'g', + 'Ġ' => 'G', + 'ġ' => 'g', + 'Ģ' => 'G', + 'ģ' => 'g', + 'Ĥ' => 'H', + 'ĥ' => 'h', + 'Ħ' => 'H', + 'ħ' => 'h', + 'Ĩ' => 'I', + 'ĩ' => 'i', + 'Ī' => 'I', + 'ī' => 'i', + 'Ĭ' => 'I', + 'ĭ' => 'i', + 'Į' => 'I', + 'į' => 'i', + 'İ' => 'I', + 'ı' => 'i', + 'IJ' => 'IJ', + 'ij' => 'ij', + 'Ĵ' => 'J', + 'ĵ' => 'j', + 'Ķ' => 'K', + 'ķ' => 'k', + 'ĸ' => 'k', + 'Ĺ' => 'L', + 'ĺ' => 'l', + 'Ļ' => 'L', + 'ļ' => 'l', + 'Ľ' => 'L', + 'ľ' => 'l', + 'Ŀ' => 'L', + 'ŀ' => 'l', + 'Ł' => 'L', + 'ł' => 'l', + 'Ń' => 'N', + 'ń' => 'n', + 'Ņ' => 'N', + 'ņ' => 'n', + 'Ň' => 'N', + 'ň' => 'n', + 'ʼn' => 'N', + 'Ŋ' => 'n', + 'ŋ' => 'N', + 'Ō' => 'O', + 'ō' => 'o', + 'Ŏ' => 'O', + 'ŏ' => 'o', + 'Ő' => 'O', + 'ő' => 'o', + 'Œ' => 'OE', + 'œ' => 'oe', + 'Ø' => 'O', + 'ø' => 'o', + 'Ŕ' => 'R', + 'ŕ' => 'r', + 'Ŗ' => 'R', + 'ŗ' => 'r', + 'Ř' => 'R', + 'ř' => 'r', + 'Ś' => 'S', + 'ś' => 's', + 'Ŝ' => 'S', + 'ŝ' => 's', + 'Ş' => 'S', + 'ş' => 's', + 'Š' => 'S', + 'š' => 's', + 'Ţ' => 'T', + 'ţ' => 't', + 'Ť' => 'T', + 'ť' => 't', + 'Ŧ' => 'T', + 'ŧ' => 't', + 'Ũ' => 'U', + 'ũ' => 'u', + 'Ū' => 'U', + 'ū' => 'u', + 'Ŭ' => 'U', + 'ŭ' => 'u', + 'Ů' => 'U', + 'ů' => 'u', + 'Ű' => 'U', + 'ű' => 'u', + 'Ų' => 'U', + 'ų' => 'u', + 'Ŵ' => 'W', + 'ŵ' => 'w', + 'Ŷ' => 'Y', + 'ŷ' => 'y', + 'Ÿ' => 'Y', + 'Ź' => 'Z', + 'ź' => 'z', + 'Ż' => 'Z', + 'ż' => 'z', + 'Ž' => 'Z', + 'ž' => 'z', + 'ſ' => 's', + '€' => 'E', + '£' => '', + ]; + + /** @var WordInflector */ + private $singularizer; + + /** @var WordInflector */ + private $pluralizer; + + public function __construct(WordInflector $singularizer, WordInflector $pluralizer) + { + $this->singularizer = $singularizer; + $this->pluralizer = $pluralizer; + } + + /** + * Converts a word into the format for a Doctrine table name. Converts 'ModelName' to 'model_name'. + */ + public function tableize(string $word) : string + { + $tableized = preg_replace('~(?<=\\w)([A-Z])~u', '_$1', $word); + + if ($tableized === null) { + throw new RuntimeException(sprintf( + 'preg_replace returned null for value "%s"', + $word + )); + } + + return mb_strtolower($tableized); + } + + /** + * Converts a word into the format for a Doctrine class name. Converts 'table_name' to 'TableName'. + */ + public function classify(string $word) : string + { + return str_replace([' ', '_', '-'], '', ucwords($word, ' _-')); + } + + /** + * Camelizes a word. This uses the classify() method and turns the first character to lowercase. + */ + public function camelize(string $word) : string + { + return lcfirst($this->classify($word)); + } + + /** + * Uppercases words with configurable delimiters between words. + * + * Takes a string and capitalizes all of the words, like PHP's built-in + * ucwords function. This extends that behavior, however, by allowing the + * word delimiters to be configured, rather than only separating on + * whitespace. + * + * Here is an example: + * + * capitalize($string); + * // Top-O-The-Morning To All_of_you! + * + * echo $inflector->capitalize($string, '-_ '); + * // Top-O-The-Morning To All_Of_You! + * ?> + * + * + * @param string $string The string to operate on. + * @param string $delimiters A list of word separators. + * + * @return string The string with all delimiter-separated words capitalized. + */ + public function capitalize(string $string, string $delimiters = " \n\t\r\0\x0B-") : string + { + return ucwords($string, $delimiters); + } + + /** + * Checks if the given string seems like it has utf8 characters in it. + * + * @param string $string The string to check for utf8 characters in. + */ + public function seemsUtf8(string $string) : bool + { + for ($i = 0; $i < strlen($string); $i++) { + if (ord($string[$i]) < 0x80) { + continue; // 0bbbbbbb + } + + if ((ord($string[$i]) & 0xE0) === 0xC0) { + $n = 1; // 110bbbbb + } elseif ((ord($string[$i]) & 0xF0) === 0xE0) { + $n = 2; // 1110bbbb + } elseif ((ord($string[$i]) & 0xF8) === 0xF0) { + $n = 3; // 11110bbb + } elseif ((ord($string[$i]) & 0xFC) === 0xF8) { + $n = 4; // 111110bb + } elseif ((ord($string[$i]) & 0xFE) === 0xFC) { + $n = 5; // 1111110b + } else { + return false; // Does not match any model + } + + for ($j = 0; $j < $n; $j++) { // n bytes matching 10bbbbbb follow ? + if (++$i === strlen($string) || ((ord($string[$i]) & 0xC0) !== 0x80)) { + return false; + } + } + } + + return true; + } + + /** + * Remove any illegal characters, accents, etc. + * + * @param string $string String to unaccent + * + * @return string Unaccented string + */ + public function unaccent(string $string) : string + { + if (preg_match('/[\x80-\xff]/', $string) === false) { + return $string; + } + + if ($this->seemsUtf8($string)) { + $string = strtr($string, self::ACCENTED_CHARACTERS); + } else { + $characters = []; + + // Assume ISO-8859-1 if not UTF-8 + $characters['in'] = + chr(128) + . chr(131) + . chr(138) + . chr(142) + . chr(154) + . chr(158) + . chr(159) + . chr(162) + . chr(165) + . chr(181) + . chr(192) + . chr(193) + . chr(194) + . chr(195) + . chr(196) + . chr(197) + . chr(199) + . chr(200) + . chr(201) + . chr(202) + . chr(203) + . chr(204) + . chr(205) + . chr(206) + . chr(207) + . chr(209) + . chr(210) + . chr(211) + . chr(212) + . chr(213) + . chr(214) + . chr(216) + . chr(217) + . chr(218) + . chr(219) + . chr(220) + . chr(221) + . chr(224) + . chr(225) + . chr(226) + . chr(227) + . chr(228) + . chr(229) + . chr(231) + . chr(232) + . chr(233) + . chr(234) + . chr(235) + . chr(236) + . chr(237) + . chr(238) + . chr(239) + . chr(241) + . chr(242) + . chr(243) + . chr(244) + . chr(245) + . chr(246) + . chr(248) + . chr(249) + . chr(250) + . chr(251) + . chr(252) + . chr(253) + . chr(255); + + $characters['out'] = 'EfSZszYcYuAAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy'; + + $string = strtr($string, $characters['in'], $characters['out']); + + $doubleChars = []; + + $doubleChars['in'] = [ + chr(140), + chr(156), + chr(198), + chr(208), + chr(222), + chr(223), + chr(230), + chr(240), + chr(254), + ]; + + $doubleChars['out'] = ['OE', 'oe', 'AE', 'DH', 'TH', 'ss', 'ae', 'dh', 'th']; + + $string = str_replace($doubleChars['in'], $doubleChars['out'], $string); + } + + return $string; + } + + /** + * Convert any passed string to a url friendly string. + * Converts 'My first blog post' to 'my-first-blog-post' + * + * @param string $string String to urlize. + * + * @return string Urlized string. + */ + public function urlize(string $string) : string + { + // Remove all non url friendly characters with the unaccent function + $unaccented = $this->unaccent($string); + + if (function_exists('mb_strtolower')) { + $lowered = mb_strtolower($unaccented); + } else { + $lowered = strtolower($unaccented); + } + + $replacements = [ + '/\W/' => ' ', + '/([A-Z]+)([A-Z][a-z])/' => '\1_\2', + '/([a-z\d])([A-Z])/' => '\1_\2', + '/[^A-Z^a-z^0-9^\/]+/' => '-', + ]; + + $urlized = $lowered; + + foreach ($replacements as $pattern => $replacement) { + $replaced = preg_replace($pattern, $replacement, $urlized); + + if ($replaced === null) { + throw new RuntimeException(sprintf( + 'preg_replace returned null for value "%s"', + $urlized + )); + } + + $urlized = $replaced; + } + + return trim($urlized, '-'); + } + + /** + * Returns a word in singular form. + * + * @param string $word The word in plural form. + * + * @return string The word in singular form. + */ + public function singularize(string $word) : string + { + return $this->singularizer->inflect($word); + } + + /** + * Returns a word in plural form. + * + * @param string $word The word in singular form. + * + * @return string The word in plural form. + */ + public function pluralize(string $word) : string + { + return $this->pluralizer->inflect($word); + } +} diff --git a/vendor/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php b/vendor/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php new file mode 100644 index 000000000..44bba5d7e --- /dev/null +++ b/vendor/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php @@ -0,0 +1,45 @@ +getFlippedSubstitutions() + ); + } + + public static function getPluralRuleset() : Ruleset + { + return new Ruleset( + new Transformations(...Inflectible::getPlural()), + new Patterns(...Uninflected::getPlural()), + new Substitutions(...Inflectible::getIrregular()) + ); + } +} diff --git a/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Uninflected.php b/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Uninflected.php new file mode 100644 index 000000000..14a942665 --- /dev/null +++ b/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Uninflected.php @@ -0,0 +1,194 @@ +getFlippedSubstitutions() + ); + } + + public static function getPluralRuleset() : Ruleset + { + return new Ruleset( + new Transformations(...Inflectible::getPlural()), + new Patterns(...Uninflected::getPlural()), + new Substitutions(...Inflectible::getIrregular()) + ); + } +} diff --git a/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Uninflected.php b/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Uninflected.php new file mode 100644 index 000000000..2fdc020a4 --- /dev/null +++ b/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Uninflected.php @@ -0,0 +1,34 @@ +getFlippedSubstitutions() + ); + } + + public static function getPluralRuleset() : Ruleset + { + return new Ruleset( + new Transformations(...Inflectible::getPlural()), + new Patterns(...Uninflected::getPlural()), + new Substitutions(...Inflectible::getIrregular()) + ); + } +} diff --git a/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Uninflected.php b/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Uninflected.php new file mode 100644 index 000000000..c6b9fc792 --- /dev/null +++ b/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Uninflected.php @@ -0,0 +1,36 @@ +pattern = $pattern; + + if (isset($this->pattern[0]) && $this->pattern[0] === '/') { + $this->regex = $this->pattern; + } else { + $this->regex = '/' . $this->pattern . '/i'; + } + } + + public function getPattern() : string + { + return $this->pattern; + } + + public function getRegex() : string + { + return $this->regex; + } + + public function matches(string $word) : bool + { + return preg_match($this->getRegex(), $word) === 1; + } +} diff --git a/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Patterns.php b/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Patterns.php new file mode 100644 index 000000000..a71f1ed20 --- /dev/null +++ b/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Patterns.php @@ -0,0 +1,34 @@ +patterns = $patterns; + + $patterns = array_map(static function (Pattern $pattern) : string { + return $pattern->getPattern(); + }, $this->patterns); + + $this->regex = '/^(?:' . implode('|', $patterns) . ')$/i'; + } + + public function matches(string $word) : bool + { + return preg_match($this->regex, $word, $regs) === 1; + } +} diff --git a/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Inflectible.php b/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Inflectible.php new file mode 100644 index 000000000..155055f7a --- /dev/null +++ b/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Inflectible.php @@ -0,0 +1,104 @@ +getFlippedSubstitutions() + ); + } + + public static function getPluralRuleset() : Ruleset + { + return new Ruleset( + new Transformations(...Inflectible::getPlural()), + new Patterns(...Uninflected::getPlural()), + new Substitutions(...Inflectible::getIrregular()) + ); + } +} diff --git a/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Uninflected.php b/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Uninflected.php new file mode 100644 index 000000000..52360c456 --- /dev/null +++ b/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Uninflected.php @@ -0,0 +1,38 @@ +regular = $regular; + $this->uninflected = $uninflected; + $this->irregular = $irregular; + } + + public function getRegular() : Transformations + { + return $this->regular; + } + + public function getUninflected() : Patterns + { + return $this->uninflected; + } + + public function getIrregular() : Substitutions + { + return $this->irregular; + } +} diff --git a/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Inflectible.php b/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Inflectible.php new file mode 100644 index 000000000..6cace86a9 --- /dev/null +++ b/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Inflectible.php @@ -0,0 +1,53 @@ +getFlippedSubstitutions() + ); + } + + public static function getPluralRuleset() : Ruleset + { + return new Ruleset( + new Transformations(...Inflectible::getPlural()), + new Patterns(...Uninflected::getPlural()), + new Substitutions(...Inflectible::getIrregular()) + ); + } +} diff --git a/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Uninflected.php b/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Uninflected.php new file mode 100644 index 000000000..b13281e8d --- /dev/null +++ b/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Uninflected.php @@ -0,0 +1,36 @@ +from = $from; + $this->to = $to; + } + + public function getFrom() : Word + { + return $this->from; + } + + public function getTo() : Word + { + return $this->to; + } +} diff --git a/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitutions.php b/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitutions.php new file mode 100644 index 000000000..24cc34a8e --- /dev/null +++ b/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitutions.php @@ -0,0 +1,56 @@ +substitutions[$substitution->getFrom()->getWord()] = $substitution; + } + } + + public function getFlippedSubstitutions() : Substitutions + { + $substitutions = []; + + foreach ($this->substitutions as $substitution) { + $substitutions[] = new Substitution( + $substitution->getTo(), + $substitution->getFrom() + ); + } + + return new Substitutions(...$substitutions); + } + + public function inflect(string $word) : string + { + $lowerWord = strtolower($word); + + if (isset($this->substitutions[$lowerWord])) { + $firstLetterUppercase = $lowerWord[0] !== $word[0]; + + $toWord = $this->substitutions[$lowerWord]->getTo()->getWord(); + + if ($firstLetterUppercase) { + return strtoupper($toWord[0]) . substr($toWord, 1); + } + + return $toWord; + } + + return $word; + } +} diff --git a/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformation.php b/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformation.php new file mode 100644 index 000000000..84ef08b8d --- /dev/null +++ b/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformation.php @@ -0,0 +1,38 @@ +pattern = $pattern; + $this->replacement = $replacement; + } + + public function getPattern() : Pattern + { + return $this->pattern; + } + + public function getReplacement() : string + { + return $this->replacement; + } + + public function inflect(string $word) : string + { + return (string) preg_replace($this->pattern->getRegex(), $this->replacement, $word); + } +} diff --git a/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformations.php b/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformations.php new file mode 100644 index 000000000..9f4724e50 --- /dev/null +++ b/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformations.php @@ -0,0 +1,29 @@ +transformations = $transformations; + } + + public function inflect(string $word) : string + { + foreach ($this->transformations as $transformation) { + if ($transformation->getPattern()->matches($word)) { + return $transformation->inflect($word); + } + } + + return $word; + } +} diff --git a/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Inflectible.php b/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Inflectible.php new file mode 100644 index 000000000..74900cb99 --- /dev/null +++ b/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Inflectible.php @@ -0,0 +1,40 @@ +getFlippedSubstitutions() + ); + } + + public static function getPluralRuleset() : Ruleset + { + return new Ruleset( + new Transformations(...Inflectible::getPlural()), + new Patterns(...Uninflected::getPlural()), + new Substitutions(...Inflectible::getIrregular()) + ); + } +} diff --git a/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Uninflected.php b/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Uninflected.php new file mode 100644 index 000000000..c95ccbf9b --- /dev/null +++ b/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Uninflected.php @@ -0,0 +1,36 @@ +word = $word; + } + + public function getWord() : string + { + return $this->word; + } +} diff --git a/vendor/doctrine/inflector/lib/Doctrine/Inflector/RulesetInflector.php b/vendor/doctrine/inflector/lib/Doctrine/Inflector/RulesetInflector.php new file mode 100644 index 000000000..c4c498cbf --- /dev/null +++ b/vendor/doctrine/inflector/lib/Doctrine/Inflector/RulesetInflector.php @@ -0,0 +1,59 @@ +rulesets = array_merge([$ruleset], $rulesets); + } + + public function inflect(string $word) : string + { + if ($word === '') { + return ''; + } + + foreach ($this->rulesets as $ruleset) { + if ($ruleset->getUninflected()->matches($word)) { + return $word; + } + } + + foreach ($this->rulesets as $ruleset) { + $inflected = $ruleset->getIrregular()->inflect($word); + + if ($inflected !== $word) { + return $inflected; + } + } + + foreach ($this->rulesets as $ruleset) { + $inflected = $ruleset->getRegular()->inflect($word); + + if ($inflected !== $word) { + return $inflected; + } + } + + return $word; + } +} diff --git a/vendor/doctrine/inflector/lib/Doctrine/Inflector/WordInflector.php b/vendor/doctrine/inflector/lib/Doctrine/Inflector/WordInflector.php new file mode 100644 index 000000000..f25705580 --- /dev/null +++ b/vendor/doctrine/inflector/lib/Doctrine/Inflector/WordInflector.php @@ -0,0 +1,10 @@ + self::C_NUL, ); + /** + * @var bool + */ protected $hasInvalidTokens = false; - protected $previous; + /** + * @var array + * + * @psalm-var array{value:string, type:null|int, position:int}|array + */ + protected $previous = []; + /** + * The last matched/seen token. + * + * @var array + * + * @psalm-var array{value:string, type:null|int, position:int} + */ + public $token; + + /** + * The next token in the input. + * + * @var array|null + */ + public $lookahead; + + /** + * @psalm-var array{value:'', type:null, position:0} + */ private static $nullToken = [ 'value' => '', 'type' => null, @@ -86,6 +113,7 @@ class EmailLexer extends AbstractLexer public function __construct() { $this->previous = $this->token = self::$nullToken; + $this->lookahead = null; } /** @@ -98,15 +126,20 @@ class EmailLexer extends AbstractLexer $this->previous = $this->token = self::$nullToken; } + /** + * @return bool + */ public function hasInvalidTokens() { return $this->hasInvalidTokens; } /** - * @param string $type + * @param int $type * @throws \UnexpectedValueException * @return boolean + * + * @psalm-suppress InvalidScalarArgument */ public function find($type) { @@ -122,7 +155,7 @@ class EmailLexer extends AbstractLexer /** * getPrevious * - * @return array token + * @return array */ public function getPrevious() { @@ -196,6 +229,11 @@ class EmailLexer extends AbstractLexer return self::GENERIC; } + /** + * @param string $value + * + * @return bool + */ protected function isValid($value) { if (isset($this->charValue[$value])) { diff --git a/vendor/egulias/email-validator/EmailValidator/EmailParser.php b/vendor/egulias/email-validator/EmailValidator/EmailParser.php index 5bf605ac2..6b7bad669 100644 --- a/vendor/egulias/email-validator/EmailValidator/EmailParser.php +++ b/vendor/egulias/email-validator/EmailValidator/EmailParser.php @@ -17,11 +17,33 @@ class EmailParser { const EMAIL_MAX_LENGTH = 254; - protected $warnings; + /** + * @var array + */ + protected $warnings = []; + + /** + * @var string + */ protected $domainPart = ''; + + /** + * @var string + */ protected $localPart = ''; + /** + * @var EmailLexer + */ protected $lexer; + + /** + * @var LocalPart + */ protected $localPartParser; + + /** + * @var DomainPart + */ protected $domainPartParser; public function __construct(EmailLexer $lexer) @@ -29,7 +51,6 @@ class EmailParser $this->lexer = $lexer; $this->localPartParser = new LocalPart($this->lexer); $this->domainPartParser = new DomainPart($this->lexer); - $this->warnings = new \SplObjectStorage(); } /** @@ -57,6 +78,9 @@ class EmailParser return array('local' => $this->localPart, 'domain' => $this->domainPart); } + /** + * @return Warning\Warning[] + */ public function getWarnings() { $localPartWarnings = $this->localPartParser->getWarnings(); @@ -68,11 +92,17 @@ class EmailParser return $this->warnings; } + /** + * @return string + */ public function getParsedDomainPart() { return $this->domainPart; } + /** + * @param string $email + */ protected function setParts($email) { $parts = explode('@', $email); @@ -80,6 +110,9 @@ class EmailParser $this->localPart = $parts[0]; } + /** + * @return bool + */ protected function hasAtToken() { $this->lexer->moveNext(); diff --git a/vendor/egulias/email-validator/EmailValidator/EmailValidator.php b/vendor/egulias/email-validator/EmailValidator/EmailValidator.php index 1c2770721..a30f21dcd 100644 --- a/vendor/egulias/email-validator/EmailValidator/EmailValidator.php +++ b/vendor/egulias/email-validator/EmailValidator/EmailValidator.php @@ -13,12 +13,12 @@ class EmailValidator private $lexer; /** - * @var array + * @var Warning\Warning[] */ - protected $warnings; + protected $warnings = []; /** - * @var InvalidEmail + * @var InvalidEmail|null */ protected $error; @@ -58,7 +58,7 @@ class EmailValidator } /** - * @return InvalidEmail + * @return InvalidEmail|null */ public function getError() { diff --git a/vendor/egulias/email-validator/EmailValidator/Parser/DomainPart.php b/vendor/egulias/email-validator/EmailValidator/Parser/DomainPart.php index 8ed240b39..0613e31d8 100644 --- a/vendor/egulias/email-validator/EmailValidator/Parser/DomainPart.php +++ b/vendor/egulias/email-validator/EmailValidator/Parser/DomainPart.php @@ -35,6 +35,10 @@ use Egulias\EmailValidator\Warning\TLD; class DomainPart extends Parser { const DOMAIN_MAX_LENGTH = 254; + + /** + * @var string + */ protected $domainPart = ''; public function parse($domainPart) @@ -95,11 +99,18 @@ class DomainPart extends Parser } } + /** + * @return string + */ public function getDomainPart() { return $this->domainPart; } + /** + * @param string $addressLiteral + * @param int $maxGroups + */ public function checkIPV6Tag($addressLiteral, $maxGroups = 8) { $prev = $this->lexer->getPrevious(); @@ -143,6 +154,9 @@ class DomainPart extends Parser } } + /** + * @return string + */ protected function doParseDomainPart() { $domain = ''; @@ -189,7 +203,7 @@ class DomainPart extends Parser return $domain; } - private function checkNotAllowedChars($token) + private function checkNotAllowedChars(array $token) { $notAllowed = [EmailLexer::S_BACKSLASH => true, EmailLexer::S_SLASH=> true]; if (isset($notAllowed[$token['type']])) { @@ -197,6 +211,9 @@ class DomainPart extends Parser } } + /** + * @return string|false + */ protected function parseDomainLiteral() { if ($this->lexer->isNextToken(EmailLexer::S_COLON)) { @@ -213,6 +230,9 @@ class DomainPart extends Parser return $this->doParseDomainLiteral(); } + /** + * @return string|false + */ protected function doParseDomainLiteral() { $IPv6TAG = false; @@ -280,6 +300,11 @@ class DomainPart extends Parser return $addressLiteral; } + /** + * @param string $addressLiteral + * + * @return string|false + */ protected function checkIPV4Tag($addressLiteral) { $matchesIP = array(); @@ -297,13 +322,13 @@ class DomainPart extends Parser return false; } // Convert IPv4 part to IPv6 format for further testing - $addressLiteral = substr($addressLiteral, 0, $index) . '0:0'; + $addressLiteral = substr($addressLiteral, 0, (int) $index) . '0:0'; } return $addressLiteral; } - protected function checkDomainPartExceptions($prev) + protected function checkDomainPartExceptions(array $prev) { $invalidDomainTokens = array( EmailLexer::S_DQUOTE => true, @@ -338,6 +363,9 @@ class DomainPart extends Parser } } + /** + * @return bool + */ protected function hasBrackets() { if ($this->lexer->token['type'] !== EmailLexer::S_OPENBRACKET) { @@ -353,7 +381,7 @@ class DomainPart extends Parser return true; } - protected function checkLabelLength($prev) + protected function checkLabelLength(array $prev) { if ($this->lexer->token['type'] === EmailLexer::S_DOT && $prev['type'] === EmailLexer::GENERIC && diff --git a/vendor/egulias/email-validator/EmailValidator/Parser/LocalPart.php b/vendor/egulias/email-validator/EmailValidator/Parser/LocalPart.php index fa1d17b7f..3c21f34ac 100644 --- a/vendor/egulias/email-validator/EmailValidator/Parser/LocalPart.php +++ b/vendor/egulias/email-validator/EmailValidator/Parser/LocalPart.php @@ -5,7 +5,6 @@ namespace Egulias\EmailValidator\Parser; use Egulias\EmailValidator\Exception\DotAtEnd; use Egulias\EmailValidator\Exception\DotAtStart; use Egulias\EmailValidator\EmailLexer; -use Egulias\EmailValidator\EmailValidator; use Egulias\EmailValidator\Exception\ExpectingAT; use Egulias\EmailValidator\Exception\ExpectingATEXT; use Egulias\EmailValidator\Exception\UnclosedQuotedString; @@ -20,6 +19,7 @@ class LocalPart extends Parser $parseDQuote = true; $closingQuote = false; $openedParenthesis = 0; + $totalLength = 0; while ($this->lexer->token['type'] !== EmailLexer::S_AT && null !== $this->lexer->token['type']) { if ($this->lexer->token['type'] === EmailLexer::S_DOT && null === $this->lexer->getPrevious()['type']) { @@ -35,12 +35,13 @@ class LocalPart extends Parser $this->parseComments(); $openedParenthesis += $this->getOpenedParenthesis(); } + if ($this->lexer->token['type'] === EmailLexer::S_CLOSEPARENTHESIS) { if ($openedParenthesis === 0) { throw new UnopenedComment(); - } else { - $openedParenthesis--; } + + $openedParenthesis--; } $this->checkConsecutiveDots(); @@ -58,15 +59,18 @@ class LocalPart extends Parser $this->parseFWS(); } + $totalLength += strlen($this->lexer->token['value']); $this->lexer->moveNext(); } - $prev = $this->lexer->getPrevious(); - if (strlen($prev['value']) > LocalTooLong::LOCAL_PART_LENGTH) { + if ($totalLength > LocalTooLong::LOCAL_PART_LENGTH) { $this->warnings[LocalTooLong::CODE] = new LocalTooLong(); } } + /** + * @return bool + */ protected function parseDoubleQuote() { $parseAgain = true; @@ -118,7 +122,10 @@ class LocalPart extends Parser return $parseAgain; } - protected function isInvalidToken($token, $closingQuote) + /** + * @param bool $closingQuote + */ + protected function isInvalidToken(array $token, $closingQuote) { $forbidden = array( EmailLexer::S_COMMA, diff --git a/vendor/egulias/email-validator/EmailValidator/Parser/Parser.php b/vendor/egulias/email-validator/EmailValidator/Parser/Parser.php index fa7bd44b3..d0673b992 100644 --- a/vendor/egulias/email-validator/EmailValidator/Parser/Parser.php +++ b/vendor/egulias/email-validator/EmailValidator/Parser/Parser.php @@ -21,8 +21,19 @@ use Egulias\EmailValidator\Warning\QuotedString; abstract class Parser { + /** + * @var \Egulias\EmailValidator\Warning\Warning[] + */ protected $warnings = []; + + /** + * @var EmailLexer + */ protected $lexer; + + /** + * @var int + */ protected $openedParenthesis = 0; public function __construct(EmailLexer $lexer) @@ -30,11 +41,17 @@ abstract class Parser $this->lexer = $lexer; } + /** + * @return \Egulias\EmailValidator\Warning\Warning[] + */ public function getWarnings() { return $this->warnings; } + /** + * @param string $str + */ abstract public function parse($str); /** @return int */ @@ -80,6 +97,9 @@ abstract class Parser } } + /** + * @return bool + */ protected function isUnclosedComment() { try { @@ -122,6 +142,9 @@ abstract class Parser } } + /** + * @return bool + */ protected function isFWS() { if ($this->escaped()) { @@ -140,11 +163,14 @@ abstract class Parser return false; } + /** + * @return bool + */ protected function escaped() { $previous = $this->lexer->getPrevious(); - if ($previous['type'] === EmailLexer::S_BACKSLASH + if ($previous && $previous['type'] === EmailLexer::S_BACKSLASH && $this->lexer->token['type'] !== EmailLexer::GENERIC ) { @@ -154,6 +180,9 @@ abstract class Parser return false; } + /** + * @return bool + */ protected function warnEscaping() { if ($this->lexer->token['type'] !== EmailLexer::S_BACKSLASH) { @@ -174,6 +203,11 @@ abstract class Parser } + /** + * @param bool $hasClosingQuote + * + * @return bool + */ protected function checkDQUOTE($hasClosingQuote) { if ($this->lexer->token['type'] !== EmailLexer::S_DQUOTE) { diff --git a/vendor/egulias/email-validator/EmailValidator/Validation/DNSCheckValidation.php b/vendor/egulias/email-validator/EmailValidator/Validation/DNSCheckValidation.php index e5c3e5df9..da13253ee 100644 --- a/vendor/egulias/email-validator/EmailValidator/Validation/DNSCheckValidation.php +++ b/vendor/egulias/email-validator/EmailValidator/Validation/DNSCheckValidation.php @@ -15,13 +15,13 @@ class DNSCheckValidation implements EmailValidation private $warnings = []; /** - * @var InvalidEmail + * @var InvalidEmail|null */ private $error; - + public function __construct() { - if (!extension_loaded('intl')) { + if (!function_exists('idn_to_ascii')) { throw new \LogicException(sprintf('The %s class requires the Intl extension.', __CLASS__)); } } @@ -49,6 +49,11 @@ class DNSCheckValidation implements EmailValidation return $this->warnings; } + /** + * @param string $host + * + * @return bool + */ protected function checkDNS($host) { $variant = INTL_IDNA_VARIANT_2003; diff --git a/vendor/egulias/email-validator/EmailValidator/Validation/Exception/EmptyValidationList.php b/vendor/egulias/email-validator/EmailValidator/Validation/Exception/EmptyValidationList.php index 775ad16fb..ee7c41aa0 100644 --- a/vendor/egulias/email-validator/EmailValidator/Validation/Exception/EmptyValidationList.php +++ b/vendor/egulias/email-validator/EmailValidator/Validation/Exception/EmptyValidationList.php @@ -6,6 +6,9 @@ use Exception; class EmptyValidationList extends \InvalidArgumentException { + /** + * @param int $code + */ public function __construct($code = 0, Exception $previous = null) { parent::__construct("Empty validation list is not allowed", $code, $previous); diff --git a/vendor/egulias/email-validator/EmailValidator/Validation/MultipleErrors.php b/vendor/egulias/email-validator/EmailValidator/Validation/MultipleErrors.php index d5e87d8ce..3be597326 100644 --- a/vendor/egulias/email-validator/EmailValidator/Validation/MultipleErrors.php +++ b/vendor/egulias/email-validator/EmailValidator/Validation/MultipleErrors.php @@ -9,16 +9,22 @@ class MultipleErrors extends InvalidEmail const CODE = 999; const REASON = "Accumulated errors for multiple validations"; /** - * @var array + * @var InvalidEmail[] */ private $errors = []; + /** + * @param InvalidEmail[] $errors + */ public function __construct(array $errors) { $this->errors = $errors; parent::__construct(); } + /** + * @return InvalidEmail[] + */ public function getErrors() { return $this->errors; diff --git a/vendor/egulias/email-validator/EmailValidator/Validation/MultipleValidationWithAnd.php b/vendor/egulias/email-validator/EmailValidator/Validation/MultipleValidationWithAnd.php index ce161ac84..feb224023 100644 --- a/vendor/egulias/email-validator/EmailValidator/Validation/MultipleValidationWithAnd.php +++ b/vendor/egulias/email-validator/EmailValidator/Validation/MultipleValidationWithAnd.php @@ -30,12 +30,12 @@ class MultipleValidationWithAnd implements EmailValidation private $warnings = []; /** - * @var MultipleErrors + * @var MultipleErrors|null */ private $error; /** - * @var bool + * @var int */ private $mode; @@ -79,6 +79,12 @@ class MultipleValidationWithAnd implements EmailValidation return $result; } + /** + * @param \Egulias\EmailValidator\Exception\InvalidEmail|null $possibleError + * @param \Egulias\EmailValidator\Exception\InvalidEmail[] $errors + * + * @return \Egulias\EmailValidator\Exception\InvalidEmail[] + */ private function addNewError($possibleError, array $errors) { if (null !== $possibleError) { @@ -88,13 +94,20 @@ class MultipleValidationWithAnd implements EmailValidation return $errors; } + /** + * @param bool $result + * + * @return bool + */ private function shouldStop($result) { return !$result && $this->mode === self::STOP_ON_ERROR; } /** - * {@inheritdoc} + * Returns the validation errors. + * + * @return MultipleErrors|null */ public function getError() { diff --git a/vendor/egulias/email-validator/EmailValidator/Validation/NoRFCWarningsValidation.php b/vendor/egulias/email-validator/EmailValidator/Validation/NoRFCWarningsValidation.php index e4bf0cc4d..6b31e5440 100644 --- a/vendor/egulias/email-validator/EmailValidator/Validation/NoRFCWarningsValidation.php +++ b/vendor/egulias/email-validator/EmailValidator/Validation/NoRFCWarningsValidation.php @@ -9,7 +9,7 @@ use Egulias\EmailValidator\Validation\Error\RFCWarnings; class NoRFCWarningsValidation extends RFCValidation { /** - * @var InvalidEmail + * @var InvalidEmail|null */ private $error; diff --git a/vendor/egulias/email-validator/EmailValidator/Validation/RFCValidation.php b/vendor/egulias/email-validator/EmailValidator/Validation/RFCValidation.php index c4ffe3503..8781e0b62 100644 --- a/vendor/egulias/email-validator/EmailValidator/Validation/RFCValidation.php +++ b/vendor/egulias/email-validator/EmailValidator/Validation/RFCValidation.php @@ -9,7 +9,7 @@ use Egulias\EmailValidator\Exception\InvalidEmail; class RFCValidation implements EmailValidation { /** - * @var EmailParser + * @var EmailParser|null */ private $parser; @@ -19,7 +19,7 @@ class RFCValidation implements EmailValidation private $warnings = []; /** - * @var InvalidEmail + * @var InvalidEmail|null */ private $error; diff --git a/vendor/egulias/email-validator/EmailValidator/Validation/SpoofCheckValidation.php b/vendor/egulias/email-validator/EmailValidator/Validation/SpoofCheckValidation.php index 4721f0d8c..e10bfabd9 100644 --- a/vendor/egulias/email-validator/EmailValidator/Validation/SpoofCheckValidation.php +++ b/vendor/egulias/email-validator/EmailValidator/Validation/SpoofCheckValidation.php @@ -10,7 +10,7 @@ use \Spoofchecker; class SpoofCheckValidation implements EmailValidation { /** - * @var InvalidEmail + * @var InvalidEmail|null */ private $error; @@ -21,6 +21,9 @@ class SpoofCheckValidation implements EmailValidation } } + /** + * @psalm-suppress InvalidArgument + */ public function isValid($email, EmailLexer $emailLexer) { $checker = new Spoofchecker(); @@ -33,6 +36,9 @@ class SpoofCheckValidation implements EmailValidation return $this->error === null; } + /** + * @return InvalidEmail|null + */ public function getError() { return $this->error; diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/QuotedPart.php b/vendor/egulias/email-validator/EmailValidator/Warning/QuotedPart.php index 7be9e6a3f..36a4265a5 100644 --- a/vendor/egulias/email-validator/EmailValidator/Warning/QuotedPart.php +++ b/vendor/egulias/email-validator/EmailValidator/Warning/QuotedPart.php @@ -6,6 +6,10 @@ class QuotedPart extends Warning { const CODE = 36; + /** + * @param scalar $prevToken + * @param scalar $postToken + */ public function __construct($prevToken, $postToken) { $this->message = "Deprecated Quoted String found between $prevToken and $postToken"; diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/QuotedString.php b/vendor/egulias/email-validator/EmailValidator/Warning/QuotedString.php index e9d56e1e0..817e4e84b 100644 --- a/vendor/egulias/email-validator/EmailValidator/Warning/QuotedString.php +++ b/vendor/egulias/email-validator/EmailValidator/Warning/QuotedString.php @@ -6,6 +6,10 @@ class QuotedString extends Warning { const CODE = 11; + /** + * @param scalar $prevToken + * @param scalar $postToken + */ public function __construct($prevToken, $postToken) { $this->message = "Quoted String found between $prevToken and $postToken"; diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/Warning.php b/vendor/egulias/email-validator/EmailValidator/Warning/Warning.php index ec6a365ff..bce7e7a5a 100644 --- a/vendor/egulias/email-validator/EmailValidator/Warning/Warning.php +++ b/vendor/egulias/email-validator/EmailValidator/Warning/Warning.php @@ -5,19 +5,36 @@ namespace Egulias\EmailValidator\Warning; abstract class Warning { const CODE = 0; - protected $message; - protected $rfcNumber; + /** + * @var string + */ + protected $message = ''; + + /** + * @var int + */ + protected $rfcNumber = 0; + + /** + * @return string + */ public function message() { return $this->message; } + /** + * @return int + */ public function code() { return self::CODE; } + /** + * @return int + */ public function RFCNumber() { return $this->rfcNumber; diff --git a/vendor/egulias/email-validator/composer.json b/vendor/egulias/email-validator/composer.json index 4956da9e0..595caff01 100644 --- a/vendor/egulias/email-validator/composer.json +++ b/vendor/egulias/email-validator/composer.json @@ -2,7 +2,6 @@ "name": "egulias/email-validator", "description": "A library for validating emails against several RFCs", "homepage": "https://github.com/egulias/EmailValidator", - "type": "Library", "keywords": ["email", "validation", "validator", "emailvalidation", "emailvalidator"], "license": "MIT", "authors": [ @@ -13,21 +12,15 @@ "dev-master": "2.1.x-dev" } }, - "repositories": [ - { - "type": "git", - "url": "https://github.com/dominicsayers/isemail" - } - ], - "require": { - "php": ">= 5.5", - "doctrine/lexer": "^1.0.1" + "require": { + "php": ">=5.5", + "doctrine/lexer": "^1.0.1", + "symfony/polyfill-intl-idn": "^1.10" }, - "require-dev" : { + "require-dev": { "satooshi/php-coveralls": "^1.0.1", - "phpunit/phpunit": "^4.8.35||^5.7||^6.0", - "symfony/phpunit-bridge": "^4.4@dev", - "dominicsayers/isemail": "dev-master" + "phpunit/phpunit": "^4.8.36|^7.5.15", + "dominicsayers/isemail": "^3.0.7" }, "suggest": { "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" @@ -39,7 +32,7 @@ }, "autoload-dev": { "psr-4": { - "Egulias\\Tests\\": "test" + "Egulias\\Tests\\": "Tests" } } } diff --git a/vendor/egulias/email-validator/phpunit.xml.dist b/vendor/egulias/email-validator/phpunit.xml.dist index 754445a76..1122406d9 100644 --- a/vendor/egulias/email-validator/phpunit.xml.dist +++ b/vendor/egulias/email-validator/phpunit.xml.dist @@ -22,8 +22,4 @@ ./EmailValidator/ - - - - diff --git a/vendor/egulias/email-validator/psalm.baseline.xml b/vendor/egulias/email-validator/psalm.baseline.xml new file mode 100644 index 000000000..f81df72c9 --- /dev/null +++ b/vendor/egulias/email-validator/psalm.baseline.xml @@ -0,0 +1,19 @@ + + + + + self::$nullToken + + + + + parse + + + + + Spoofchecker + Spoofchecker + + + diff --git a/vendor/egulias/email-validator/psalm.xml b/vendor/egulias/email-validator/psalm.xml new file mode 100644 index 000000000..fb17dc852 --- /dev/null +++ b/vendor/egulias/email-validator/psalm.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + diff --git a/vendor/erusev/parsedown/Parsedown.php b/vendor/erusev/parsedown/Parsedown.php index a34b44f0f..1b9d6d5bc 100644 --- a/vendor/erusev/parsedown/Parsedown.php +++ b/vendor/erusev/parsedown/Parsedown.php @@ -17,7 +17,7 @@ class Parsedown { # ~ - const version = '1.7.3'; + const version = '1.7.4'; # ~ @@ -1489,22 +1489,41 @@ class Parsedown } } + $permitRawHtml = false; + if (isset($Element['text'])) + { + $text = $Element['text']; + } + // very strongly consider an alternative if you're writing an + // extension + elseif (isset($Element['rawHtml'])) + { + $text = $Element['rawHtml']; + $allowRawHtmlInSafeMode = isset($Element['allowRawHtmlInSafeMode']) && $Element['allowRawHtmlInSafeMode']; + $permitRawHtml = !$this->safeMode || $allowRawHtmlInSafeMode; + } + + if (isset($text)) { $markup .= '>'; - if (!isset($Element['nonNestables'])) + if (!isset($Element['nonNestables'])) { $Element['nonNestables'] = array(); } if (isset($Element['handler'])) { - $markup .= $this->{$Element['handler']}($Element['text'], $Element['nonNestables']); + $markup .= $this->{$Element['handler']}($text, $Element['nonNestables']); + } + elseif (!$permitRawHtml) + { + $markup .= self::escape($text, true); } else { - $markup .= self::escape($Element['text'], true); + $markup .= $text; } $markup .= ''; diff --git a/vendor/fideloper/proxy/composer.json b/vendor/fideloper/proxy/composer.json index d72900fe4..4f188af4c 100755 --- a/vendor/fideloper/proxy/composer.json +++ b/vendor/fideloper/proxy/composer.json @@ -11,10 +11,10 @@ ], "require": { "php": ">=5.4.0", - "illuminate/contracts": "^5.0|^6.0|^7.0" + "illuminate/contracts": "^5.0|^6.0|^7.0|^8.0" }, "require-dev": { - "illuminate/http": "^5.0|^6.0|^7.0", + "illuminate/http": "^5.0|^6.0|^7.0|^8.0", "mockery/mockery": "^1.0", "phpunit/phpunit": "^6.0" }, diff --git a/vendor/filp/whoops/CHANGELOG.md b/vendor/filp/whoops/CHANGELOG.md index f6c0f6daa..7a273a2e3 100644 --- a/vendor/filp/whoops/CHANGELOG.md +++ b/vendor/filp/whoops/CHANGELOG.md @@ -1,3 +1,19 @@ +# 2.7.1 + +* Fix a PHP warning in some cases with anonymous classes. + +# 2.7.0 + +* removeFirstHandler and removeLastHandler. + +# 2.6.0 + +* Fix 2.4.0 pushHandler changing the order of handlers. + +# 2.5.1 + +* Fix error messaging in a rare case. + # 2.5.0 * Automatically configure xdebug if available. diff --git a/vendor/filp/whoops/composer.json b/vendor/filp/whoops/composer.json index 51ab373f6..7b6ed4653 100644 --- a/vendor/filp/whoops/composer.json +++ b/vendor/filp/whoops/composer.json @@ -16,9 +16,9 @@ "psr/log": "^1.0.1" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0", "mockery/mockery": "^0.9 || ^1.0", - "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0" + "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0 || ^5.0" }, "suggest": { "symfony/var-dumper": "Pretty print complex values better with var-dumper available", @@ -36,7 +36,7 @@ }, "extra": { "branch-alias": { - "dev-master": "2.2-dev" + "dev-master": "2.6-dev" } } } diff --git a/vendor/filp/whoops/src/Whoops/Exception/Frame.php b/vendor/filp/whoops/src/Whoops/Exception/Frame.php index f63e2a42b..8403209ed 100644 --- a/vendor/filp/whoops/src/Whoops/Exception/Frame.php +++ b/vendor/filp/whoops/src/Whoops/Exception/Frame.php @@ -191,7 +191,7 @@ class Frame implements Serializable * $frame->getFileLines(); // => array( 0 => ' '...', ...) * @example * Get one line for this file, starting at line 10 (zero-indexed, remember!) - * $frame->getFileLines(9, 1); // array( 10 => '...', 11 => '...') + * $frame->getFileLines(9, 1); // array( 9 => '...' ) * * @throws InvalidArgumentException if $length is less than or equal to 0 * @param int $start diff --git a/vendor/filp/whoops/src/Whoops/Exception/FrameCollection.php b/vendor/filp/whoops/src/Whoops/Exception/FrameCollection.php index b043a1cec..6cf407381 100644 --- a/vendor/filp/whoops/src/Whoops/Exception/FrameCollection.php +++ b/vendor/filp/whoops/src/Whoops/Exception/FrameCollection.php @@ -61,7 +61,7 @@ class FrameCollection implements ArrayAccess, IteratorAggregate, Serializable, C if (!$frame instanceof Frame) { throw new UnexpectedValueException( - "Callable to " . __METHOD__ . " must return a Frame object" + "Callable to " . __CLASS__ . "::map must return a Frame object" ); } diff --git a/vendor/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php b/vendor/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php index a904025b6..8f98e66df 100644 --- a/vendor/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php +++ b/vendor/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php @@ -29,8 +29,9 @@ class PrettyPageHandler extends Handler const EDITOR_XDEBUG = "xdebug"; /** - * Search paths to be scanned for resources, in the reverse - * order they're declared. + * Search paths to be scanned for resources. + * + * Stored in the reverse order they're declared. * * @var array */ @@ -50,6 +51,13 @@ class PrettyPageHandler extends Handler */ private $customCss = null; + /** + * The name of the custom js file. + * + * @var string + */ + private $customJs = null; + /** * @var array[] */ @@ -84,19 +92,22 @@ class PrettyPageHandler extends Handler ]; /** - * A string identifier for a known IDE/text editor, or a closure - * that resolves a string that can be used to open a given file - * in an editor. If the string contains the special substrings - * %file or %line, they will be replaced with the correct data. + * An identifier for a known IDE/text editor. + * + * Either a string, or a calalble that resolves a string, that can be used + * to open a given file in an editor. If the string contains the special + * substrings %file or %line, they will be replaced with the correct data. * * @example - * "txmt://open?url=%file&line=%line" - * @var mixed $editor + * "txmt://open?url=%file&line=%line" + * + * @var callable|string $editor */ protected $editor; /** - * A list of known editor strings + * A list of known editor strings. + * * @var array */ protected $editors = [ @@ -114,10 +125,12 @@ class PrettyPageHandler extends Handler /** * @var TemplateHelper */ - private $templateHelper; + protected $templateHelper; /** * Constructor. + * + * @return void */ public function __construct() { @@ -141,10 +154,11 @@ class PrettyPageHandler extends Handler if (class_exists('Symfony\Component\VarDumper\Cloner\VarCloner')) { $cloner = new VarCloner(); - // Only dump object internals if a custom caster exists. + // Only dump object internals if a custom caster exists for performance reasons + // https://github.com/filp/whoops/pull/404 $cloner->addCasters(['*' => function ($obj, $a, $stub, $isNested, $filter = 0) { $class = $stub->class; - $classes = [$class => $class] + class_parents($class) + class_implements($class); + $classes = [$class => $class] + class_parents($obj) + class_implements($obj); foreach ($classes as $class) { if (isset(AbstractCloner::$defaultCasters[$class])) { @@ -192,6 +206,10 @@ class PrettyPageHandler extends Handler $customCssFile = $this->getResource($this->customCss); } + if ($this->customJs) { + $customJsFile = $this->getResource($this->customJs); + } + $inspector = $this->getInspector(); $frames = $this->getExceptionFrames(); $code = $this->getExceptionCode(); @@ -251,6 +269,10 @@ class PrettyPageHandler extends Handler $vars["stylesheet"] .= file_get_contents($customCssFile); } + if (isset($customJsFile)) { + $vars["javascript"] .= file_get_contents($customJsFile); + } + // Add extra entries list of data tables: // @todo: Consolidate addDataTable and addDataTableCallback $extraTables = array_map(function ($table) use ($inspector) { @@ -270,9 +292,9 @@ class PrettyPageHandler extends Handler } /** - * Get the stack trace frames of the exception that is currently being handled. + * Get the stack trace frames of the exception currently being handled. * - * @return \Whoops\Exception\FrameCollection; + * @return \Whoops\Exception\FrameCollection */ protected function getExceptionFrames() { @@ -293,7 +315,7 @@ class PrettyPageHandler extends Handler } /** - * Get the code of the exception that is currently being handled. + * Get the code of the exception currently being handled. * * @return string */ @@ -320,10 +342,14 @@ class PrettyPageHandler extends Handler /** * Adds an entry to the list of tables displayed in the template. + * * The expected data is a simple associative array. Any nested arrays - * will be flattened with print_r + * will be flattened with `print_r`. + * * @param string $label * @param array $data + * + * @return void */ public function addDataTable($label, array $data) { @@ -332,13 +358,17 @@ class PrettyPageHandler extends Handler /** * Lazily adds an entry to the list of tables displayed in the table. - * The supplied callback argument will be called when the error is rendered, - * it should produce a simple associative array. Any nested arrays will - * be flattened with print_r. + * + * The supplied callback argument will be called when the error is + * rendered, it should produce a simple associative array. Any nested + * arrays will be flattened with `print_r`. + * + * @param string $label + * @param callable $callback Callable returning an associative array * * @throws InvalidArgumentException If $callback is not callable - * @param string $label - * @param callable $callback Callable returning an associative array + * + * @return void */ public function addDataTableCallback($label, /* callable */ $callback) { @@ -361,9 +391,12 @@ class PrettyPageHandler extends Handler /** * Returns all the extra data tables registered with this handler. - * Optionally accepts a 'label' parameter, to only return the data - * table under that label. - * @param string|null $label + * + * Optionally accepts a 'label' parameter, to only return the data table + * under that label. + * + * @param string|null $label + * * @return array[]|callable */ public function getDataTables($label = null) @@ -377,10 +410,14 @@ class PrettyPageHandler extends Handler } /** - * Allows to disable all attempts to dynamically decide whether to - * handle or return prematurely. - * Set this to ensure that the handler will perform no matter what. - * @param bool|null $value + * Set whether to handle unconditionally. + * + * Allows to disable all attempts to dynamically decide whether to handle + * or return prematurely. Set this to ensure that the handler will perform, + * no matter what. + * + * @param bool|null $value + * * @return bool|null */ public function handleUnconditionally($value = null) @@ -393,10 +430,11 @@ class PrettyPageHandler extends Handler } /** - * Adds an editor resolver, identified by a string - * name, and that may be a string path, or a callable - * resolver. If the callable returns a string, it will - * be set as the file reference's href attribute. + * Adds an editor resolver. + * + * Either a string, or a closure that resolves a string, that can be used + * to open a given file in an editor. If the string contains the special + * substrings %file or %line, they will be replaced with the correct data. * * @example * $run->addEditor('macvim', "mvim://open?url=file://%file&line=%line") @@ -405,8 +443,11 @@ class PrettyPageHandler extends Handler * unlink($file); * return "http://stackoverflow.com"; * }); - * @param string $identifier + * + * @param string $identifier * @param string|callable $resolver + * + * @return void */ public function addEditor($identifier, $resolver) { @@ -414,18 +455,21 @@ class PrettyPageHandler extends Handler } /** - * Set the editor to use to open referenced files, by a string - * identifier, or a callable that will be executed for every - * file reference, with a $file and $line argument, and should - * return a string. + * Set the editor to use to open referenced files. + * + * Pass either the name of a configured editor, or a closure that directly + * resolves an editor string. * * @example * $run->setEditor(function($file, $line) { return "file:///{$file}"; }); * @example * $run->setEditor('sublime'); * + * @param string|callable $editor + * * @throws InvalidArgumentException If invalid argument identifier provided - * @param string|callable $editor + * + * @return void */ public function setEditor($editor) { @@ -440,14 +484,13 @@ class PrettyPageHandler extends Handler } /** - * Given a string file path, and an integer file line, - * executes the editor resolver and returns, if available, - * a string that may be used as the href property for that - * file reference. + * Get the editor href for a given file and line, if available. + * + * @param string $filePath + * @param int $line * * @throws InvalidArgumentException If editor resolver does not return a string - * @param string $filePath - * @param int $line + * * @return string|bool */ public function getEditorHref($filePath, $line) @@ -473,13 +516,13 @@ class PrettyPageHandler extends Handler } /** - * Given a boolean if the editor link should - * act as an Ajax request. The editor must be a - * valid callable function/closure + * Determine if the editor link should act as an Ajax request. + * + * @param string $filePath + * @param int $line + * + * @throws UnexpectedValueException If editor resolver does not return a boolean * - * @throws UnexpectedValueException If editor resolver does not return a boolean - * @param string $filePath - * @param int $line * @return bool */ public function getEditorAjax($filePath, $line) @@ -496,12 +539,11 @@ class PrettyPageHandler extends Handler } /** - * Given a boolean if the editor link should - * act as an Ajax request. The editor must be a - * valid callable function/closure + * Determines both the editor and if ajax should be used. + * + * @param string $filePath + * @param int $line * - * @param string $filePath - * @param int $line * @return array */ protected function getEditor($filePath, $line) @@ -545,7 +587,10 @@ class PrettyPageHandler extends Handler } /** - * @param string $title + * Set the page title. + * + * @param string $title + * * @return void */ public function setPageTitle($title) @@ -554,6 +599,8 @@ class PrettyPageHandler extends Handler } /** + * Get the page title. + * * @return string */ public function getPageTitle() @@ -562,12 +609,12 @@ class PrettyPageHandler extends Handler } /** - * Adds a path to the list of paths to be searched for - * resources. + * Adds a path to the list of paths to be searched for resources. + * + * @param string $path * * @throws InvalidArgumentException If $path is not a valid directory * - * @param string $path * @return void */ public function addResourcePath($path) @@ -584,7 +631,8 @@ class PrettyPageHandler extends Handler /** * Adds a custom css file to be loaded. * - * @param string $name + * @param string $name + * * @return void */ public function addCustomCss($name) @@ -592,6 +640,17 @@ class PrettyPageHandler extends Handler $this->customCss = $name; } + /** + * Adds a custom js file to be loaded. + * + * @param string $name + * @return void + */ + public function addCustomJs($name) + { + $this->customJs = $name; + } + /** * @return array */ @@ -602,13 +661,15 @@ class PrettyPageHandler extends Handler /** * Finds a resource, by its relative path, in all available search paths. + * * The search is performed starting at the last search path, and all the - * way back to the first, enabling a cascading-type system of overrides - * for all resources. + * way back to the first, enabling a cascading-type system of overrides for + * all resources. + * + * @param string $resource * * @throws RuntimeException If resource cannot be found in any of the available paths * - * @param string $resource * @return string */ protected function getResource($resource) @@ -654,7 +715,8 @@ class PrettyPageHandler extends Handler /** * @deprecated * - * @param string $resourcesPath + * @param string $resourcesPath + * * @return void */ public function setResourcesPath($resourcesPath) @@ -676,6 +738,8 @@ class PrettyPageHandler extends Handler * Set the application paths. * * @param array $applicationPaths + * + * @return void */ public function setApplicationPaths($applicationPaths) { @@ -686,6 +750,8 @@ class PrettyPageHandler extends Handler * Set the application root path. * * @param string $applicationRootPath + * + * @return void */ public function setApplicationRootPath($applicationRootPath) { @@ -695,8 +761,10 @@ class PrettyPageHandler extends Handler /** * blacklist a sensitive value within one of the superglobal arrays. * - * @param $superGlobalName string the name of the superglobal array, e.g. '_GET' - * @param $key string the key within the superglobal + * @param string $superGlobalName The name of the superglobal array, e.g. '_GET' + * @param string $key The key within the superglobal + * + * @return void */ public function blacklist($superGlobalName, $key) { @@ -705,12 +773,14 @@ class PrettyPageHandler extends Handler /** * Checks all values within the given superGlobal array. - * Blacklisted values will be replaced by a equal length string cointaining only '*' characters. * - * We intentionally dont rely on $GLOBALS as it depends on 'auto_globals_jit' php.ini setting. + * Blacklisted values will be replaced by a equal length string cointaining + * only '*' characters. We intentionally dont rely on $GLOBALS as it + * depends on the 'auto_globals_jit' php.ini setting. + * + * @param array $superGlobal One of the superglobal arrays + * @param string $superGlobalName The name of the superglobal array, e.g. '_GET' * - * @param $superGlobal array One of the superglobal arrays - * @param $superGlobalName string the name of the superglobal array, e.g. '_GET' * @return array $values without sensitive data */ private function masked(array $superGlobal, $superGlobalName) @@ -718,11 +788,13 @@ class PrettyPageHandler extends Handler $blacklisted = $this->blacklist[$superGlobalName]; $values = $superGlobal; + foreach ($blacklisted as $key) { if (isset($superGlobal[$key]) && is_string($superGlobal[$key])) { $values[$key] = str_repeat('*', strlen($superGlobal[$key])); } } + return $values; } } diff --git a/vendor/filp/whoops/src/Whoops/Resources/views/env_details.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/env_details.html.php index 8db1493cf..30fcb9cb1 100644 --- a/vendor/filp/whoops/src/Whoops/Resources/views/env_details.html.php +++ b/vendor/filp/whoops/src/Whoops/Resources/views/env_details.html.php @@ -32,9 +32,9 @@
- $handler): ?> -
- . escape(get_class($handler)) ?> + $h): ?> +
+ . escape(get_class($h)) ?>
diff --git a/vendor/filp/whoops/src/Whoops/Run.php b/vendor/filp/whoops/src/Whoops/Run.php index 77ec21269..148473605 100644 --- a/vendor/filp/whoops/src/Whoops/Run.php +++ b/vendor/filp/whoops/src/Whoops/Run.php @@ -29,7 +29,7 @@ final class Run implements RunInterface /** * @var HandlerInterface[] */ - private $handlerQueue = []; + private $handlerStack = []; private $silencedPatterns = []; @@ -41,105 +41,80 @@ final class Run implements RunInterface } /** - * Prepends a handler to the start of the queue - * - * @throws InvalidArgumentException If argument is not callable or instance of HandlerInterface - * @param Callable|HandlerInterface $handler - * @return Run - * @deprecated use appendHandler and prependHandler instead - */ - public function pushHandler($handler) - { - return $this->prependHandler($handler); - } - - /** - * Appends a handler to the end of the queue - * - * @throws InvalidArgumentException If argument is not callable or instance of HandlerInterface - * @param Callable|HandlerInterface $handler - * @return Run + * Explicitly request your handler runs as the last of all currently registered handlers */ public function appendHandler($handler) { - array_push($this->handlerQueue, $this->resolveHandler($handler)); + array_unshift($this->handlerStack, $this->resolveHandler($handler)); return $this; } /** - * Prepends a handler to the start of the queue + * Explicitly request your handler runs as the first of all currently registered handlers + */ + public function prependHandler($handler) + { + return $this->pushHandler($handler); + } + + /** + * Register your handler as the last of all currently registered handlers. + * Prefer using appendHandler and prependHandler for clarity. * * @throws InvalidArgumentException If argument is not callable or instance of HandlerInterface * @param Callable|HandlerInterface $handler * @return Run */ - public function prependHandler($handler) + public function pushHandler($handler) { - array_unshift($this->handlerQueue, $this->resolveHandler($handler)); + $this->handlerStack[] = $this->resolveHandler($handler); return $this; } /** - * Create a CallbackHandler from callable and throw if handler is invalid - * - * @throws InvalidArgumentException If argument is not callable or instance of HandlerInterface - * @param Callable|HandlerInterface $handler - * @return HandlerInterface - */ - private function resolveHandler($handler) - { - if (is_callable($handler)) { - $handler = new CallbackHandler($handler); - } - - if (!$handler instanceof HandlerInterface) { - throw new InvalidArgumentException( - "Argument to " . __METHOD__ . " must be a callable, or instance of " - . "Whoops\\Handler\\HandlerInterface" - ); - } - - return $handler; - } - - /** - * Removes the last handler in the queue and returns it. - * Returns null if there"s nothing else to pop. + * See removeFirstHandler and removeLastHandler * @return null|HandlerInterface */ public function popHandler() { - return array_pop($this->handlerQueue); + return array_pop($this->handlerStack); + } + + + /** + * Removes the first handler + */ + public function removeFirstHandler() + { + array_pop($this->handlerStack); } /** - * Removes the first handler in the queue and returns it. - * Returns null if there"s nothing else to shift. - * @return null|HandlerInterface + * Removes the last handler */ - public function shiftHandler() + public function removeLastHandler() { - return array_shift($this->handlerQueue); + array_shift($this->handlerStack); } /** * Returns an array with all handlers, in the - * order they were added to the queue. + * order they were added to the stack. * @return array */ public function getHandlers() { - return $this->handlerQueue; + return $this->handlerStack; } /** - * Clears all handlers in the handlerQueue, including + * Clears all handlers in the handlerStack, including * the default PrettyPage handler. * @return Run */ public function clearHandlers() { - $this->handlerQueue = []; + $this->handlerStack = []; return $this; } @@ -303,13 +278,13 @@ final class Run implements RunInterface // we might want to send it straight away to the client, // or return it silently. $this->system->startOutputBuffering(); - + // Just in case there are no handlers: $handlerResponse = null; $handlerContentType = null; try { - foreach ($this->handlerQueue as $handler) { + foreach (array_reverse($this->handlerStack) as $handler) { $handler->setRun($this); $handler->setInspector($inspector); $handler->setException($exception); @@ -441,6 +416,22 @@ final class Run implements RunInterface */ private $canThrowExceptions = true; + private function resolveHandler($handler) + { + if (is_callable($handler)) { + $handler = new CallbackHandler($handler); + } + + if (!$handler instanceof HandlerInterface) { + throw new InvalidArgumentException( + "Handler must be a callable, or instance of " + . "Whoops\\Handler\\HandlerInterface" + ); + } + + return $handler; + } + /** * Echo something to the browser * @param string $output diff --git a/vendor/guzzlehttp/guzzle/CHANGELOG.md b/vendor/guzzlehttp/guzzle/CHANGELOG.md index 342e0b6c0..a5cb9c1a8 100644 --- a/vendor/guzzlehttp/guzzle/CHANGELOG.md +++ b/vendor/guzzlehttp/guzzle/CHANGELOG.md @@ -1,6 +1,20 @@ # Change Log -## 6.5.0 - 2019-11-07 +## 6.5.3 - 2020-04-18 + +* Use Symfony intl-idn polyfill [#2550](https://github.com/guzzle/guzzle/pull/2550) +* Remove use of internal functions [#2548](https://github.com/guzzle/guzzle/pull/2548) + +## 6.5.2 - 2019-12-23 + +* idn_to_ascii() fix for old PHP versions [#2489](https://github.com/guzzle/guzzle/pull/2489) + +## 6.5.1 - 2019-12-21 + +* Better defaults for PHP installations with old ICU lib [#2454](https://github.com/guzzle/guzzle/pull/2454) +* IDN support for redirects [#2424](https://github.com/guzzle/guzzle/pull/2424) + +## 6.5.0 - 2019-12-07 * Improvement: Added support for reset internal queue in MockHandler. [#2143](https://github.com/guzzle/guzzle/pull/2143) * Improvement: Added support to pass arbitrary options to `curl_multi_init`. [#2287](https://github.com/guzzle/guzzle/pull/2287) diff --git a/vendor/guzzlehttp/guzzle/composer.json b/vendor/guzzlehttp/guzzle/composer.json index bbf0ff20b..02ab73c0f 100644 --- a/vendor/guzzlehttp/guzzle/composer.json +++ b/vendor/guzzlehttp/guzzle/composer.json @@ -23,6 +23,7 @@ "require": { "php": ">=5.5", "ext-json": "*", + "symfony/polyfill-intl-idn": "^1.11", "guzzlehttp/promises": "^1.0", "guzzlehttp/psr7": "^1.6.1" }, @@ -32,8 +33,7 @@ "psr/log": "^1.1" }, "suggest": { - "psr/log": "Required for using the Log middleware", - "ext-intl": "Required for Internationalized Domain Name (IDN) support" + "psr/log": "Required for using the Log middleware" }, "config": { "sort-packages": true diff --git a/vendor/guzzlehttp/guzzle/src/Client.php b/vendor/guzzlehttp/guzzle/src/Client.php index db4062f94..cd9a63574 100644 --- a/vendor/guzzlehttp/guzzle/src/Client.php +++ b/vendor/guzzlehttp/guzzle/src/Client.php @@ -102,7 +102,7 @@ class Client implements ClientInterface * @param array $options Request options to apply to the given * request and to the transfer. See \GuzzleHttp\RequestOptions. * - * @return PromiseInterface + * @return Promise\PromiseInterface */ public function sendAsync(RequestInterface $request, array $options = []) { @@ -142,7 +142,7 @@ class Client implements ClientInterface * @param string|UriInterface $uri URI object or string. * @param array $options Request options to apply. See \GuzzleHttp\RequestOptions. * - * @return PromiseInterface + * @return Promise\PromiseInterface */ public function requestAsync($method, $uri = '', array $options = []) { @@ -215,36 +215,9 @@ class Client implements ClientInterface $uri = Psr7\UriResolver::resolve(Psr7\uri_for($config['base_uri']), $uri); } - if ($uri->getHost() && isset($config['idn_conversion']) && ($config['idn_conversion'] !== false)) { + if (isset($config['idn_conversion']) && ($config['idn_conversion'] !== false)) { $idnOptions = ($config['idn_conversion'] === true) ? IDNA_DEFAULT : $config['idn_conversion']; - - $asciiHost = idn_to_ascii($uri->getHost(), $idnOptions, INTL_IDNA_VARIANT_UTS46, $info); - if ($asciiHost === false) { - $errorBitSet = isset($info['errors']) ? $info['errors'] : 0; - - $errorConstants = array_filter(array_keys(get_defined_constants()), function ($name) { - return substr($name, 0, 11) === 'IDNA_ERROR_'; - }); - - $errors = []; - foreach ($errorConstants as $errorConstant) { - if ($errorBitSet & constant($errorConstant)) { - $errors[] = $errorConstant; - } - } - - $errorMessage = 'IDN conversion failed'; - if ($errors) { - $errorMessage .= ' (errors: ' . implode(', ', $errors) . ')'; - } - - throw new InvalidArgumentException($errorMessage); - } else { - if ($uri->getHost() !== $asciiHost) { - // Replace URI only if the ASCII version is different - $uri = $uri->withHost($asciiHost); - } - } + $uri = Utils::idnUriConvert($uri, $idnOptions); } return $uri->getScheme() === '' && $uri->getHost() !== '' ? $uri->withScheme('http') : $uri; @@ -263,12 +236,10 @@ class Client implements ClientInterface 'http_errors' => true, 'decode_content' => true, 'verify' => true, - 'cookies' => false + 'cookies' => false, + 'idn_conversion' => true, ]; - // idn_to_ascii() is a part of ext-intl and might be not available - $defaults['idn_conversion'] = function_exists('idn_to_ascii'); - // Use the standard Linux HTTP_PROXY and HTTPS_PROXY if set. // We can only trust the HTTP_PROXY environment variable in a CLI diff --git a/vendor/guzzlehttp/guzzle/src/ClientInterface.php b/vendor/guzzlehttp/guzzle/src/ClientInterface.php index 0829b3607..76872dd3a 100644 --- a/vendor/guzzlehttp/guzzle/src/ClientInterface.php +++ b/vendor/guzzlehttp/guzzle/src/ClientInterface.php @@ -15,7 +15,7 @@ interface ClientInterface /** * @deprecated Will be removed in Guzzle 7.0.0 */ - const VERSION = '6.5.0'; + const VERSION = '6.5.3'; /** * Send an HTTP request. diff --git a/vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php b/vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php index b73e5c72d..8eaa34f35 100644 --- a/vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php +++ b/vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php @@ -4,6 +4,7 @@ namespace GuzzleHttp\Handler; use GuzzleHttp\Exception\InvalidArgumentException; use GuzzleHttp\Promise as P; use GuzzleHttp\Promise\Promise; +use GuzzleHttp\Utils; use Psr\Http\Message\RequestInterface; /** @@ -102,7 +103,7 @@ class CurlMultiHandler { // Add any delayed handles if needed. if ($this->delays) { - $currentTime = \GuzzleHttp\_current_time(); + $currentTime = Utils::currentTime(); foreach ($this->delays as $id => $delay) { if ($currentTime >= $delay) { unset($this->delays[$id]); @@ -154,7 +155,7 @@ class CurlMultiHandler if (empty($easy->options['delay'])) { curl_multi_add_handle($this->_mh, $easy->handle); } else { - $this->delays[$id] = \GuzzleHttp\_current_time() + ($easy->options['delay'] / 1000); + $this->delays[$id] = Utils::currentTime() + ($easy->options['delay'] / 1000); } } @@ -206,7 +207,7 @@ class CurlMultiHandler private function timeToNext() { - $currentTime = \GuzzleHttp\_current_time(); + $currentTime = Utils::currentTime(); $nextTime = PHP_INT_MAX; foreach ($this->delays as $time) { if ($time < $nextTime) { diff --git a/vendor/guzzlehttp/guzzle/src/Handler/StreamHandler.php b/vendor/guzzlehttp/guzzle/src/Handler/StreamHandler.php index a8eba3786..a15734a44 100644 --- a/vendor/guzzlehttp/guzzle/src/Handler/StreamHandler.php +++ b/vendor/guzzlehttp/guzzle/src/Handler/StreamHandler.php @@ -7,6 +7,7 @@ use GuzzleHttp\Promise\FulfilledPromise; use GuzzleHttp\Promise\PromiseInterface; use GuzzleHttp\Psr7; use GuzzleHttp\TransferStats; +use GuzzleHttp\Utils; use Psr\Http\Message\RequestInterface; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\StreamInterface; @@ -33,7 +34,7 @@ class StreamHandler usleep($options['delay'] * 1000); } - $startTime = isset($options['on_stats']) ? \GuzzleHttp\_current_time() : null; + $startTime = isset($options['on_stats']) ? Utils::currentTime() : null; try { // Does not support the expect header. @@ -82,7 +83,7 @@ class StreamHandler $stats = new TransferStats( $request, $response, - \GuzzleHttp\_current_time() - $startTime, + Utils::currentTime() - $startTime, $error, [] ); diff --git a/vendor/guzzlehttp/guzzle/src/Pool.php b/vendor/guzzlehttp/guzzle/src/Pool.php index ec7df6c0e..5838db4f4 100644 --- a/vendor/guzzlehttp/guzzle/src/Pool.php +++ b/vendor/guzzlehttp/guzzle/src/Pool.php @@ -2,6 +2,7 @@ namespace GuzzleHttp; use GuzzleHttp\Promise\EachPromise; +use GuzzleHttp\Promise\PromiseInterface; use GuzzleHttp\Promise\PromisorInterface; use Psr\Http\Message\RequestInterface; @@ -71,7 +72,8 @@ class Pool implements PromisorInterface /** * Get promise - * @return GuzzleHttp\Promise\Promise + * + * @return PromiseInterface */ public function promise() { diff --git a/vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php b/vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php index 5a0edd572..e4644b7ac 100644 --- a/vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php +++ b/vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php @@ -13,7 +13,7 @@ use Psr\Http\Message\UriInterface; * Request redirect middleware. * * Apply this middleware like other middleware using - * {@see GuzzleHttp\Middleware::redirect()}. + * {@see \GuzzleHttp\Middleware::redirect()}. */ class RedirectMiddleware { @@ -190,7 +190,13 @@ class RedirectMiddleware $modify['body'] = ''; } - $modify['uri'] = $this->redirectUri($request, $response, $protocols); + $uri = $this->redirectUri($request, $response, $protocols); + if (isset($options['idn_conversion']) && ($options['idn_conversion'] !== false)) { + $idnOptions = ($options['idn_conversion'] === true) ? IDNA_DEFAULT : $options['idn_conversion']; + $uri = Utils::idnUriConvert($uri, $idnOptions); + } + + $modify['uri'] = $uri; Psr7\rewind_body($request); // Add the Referer header if it is told to do so and only diff --git a/vendor/guzzlehttp/guzzle/src/Utils.php b/vendor/guzzlehttp/guzzle/src/Utils.php new file mode 100644 index 000000000..c8fc1aec6 --- /dev/null +++ b/vendor/guzzlehttp/guzzle/src/Utils.php @@ -0,0 +1,67 @@ +getHost()) { + $idnaVariant = defined('INTL_IDNA_VARIANT_UTS46') ? INTL_IDNA_VARIANT_UTS46 : 0; + $asciiHost = $idnaVariant === 0 + ? idn_to_ascii($uri->getHost(), $options) + : idn_to_ascii($uri->getHost(), $options, $idnaVariant, $info); + if ($asciiHost === false) { + $errorBitSet = isset($info['errors']) ? $info['errors'] : 0; + + $errorConstants = array_filter(array_keys(get_defined_constants()), function ($name) { + return substr($name, 0, 11) === 'IDNA_ERROR_'; + }); + + $errors = []; + foreach ($errorConstants as $errorConstant) { + if ($errorBitSet & constant($errorConstant)) { + $errors[] = $errorConstant; + } + } + + $errorMessage = 'IDN conversion failed'; + if ($errors) { + $errorMessage .= ' (errors: ' . implode(', ', $errors) . ')'; + } + + throw new InvalidArgumentException($errorMessage); + } else { + if ($uri->getHost() !== $asciiHost) { + // Replace URI only if the ASCII version is different + $uri = $uri->withHost($asciiHost); + } + } + } + + return $uri; + } +} diff --git a/vendor/guzzlehttp/guzzle/src/functions.php b/vendor/guzzlehttp/guzzle/src/functions.php index aff69d557..c2afd8c7b 100644 --- a/vendor/guzzlehttp/guzzle/src/functions.php +++ b/vendor/guzzlehttp/guzzle/src/functions.php @@ -97,8 +97,8 @@ function debug_resource($value = null) * * The returned handler is not wrapped by any default middlewares. * - * @throws \RuntimeException if no viable Handler is available. * @return callable Returns the best handler for the given system. + * @throws \RuntimeException if no viable Handler is available. */ function choose_handler() { @@ -332,15 +332,3 @@ function json_encode($value, $options = 0, $depth = 512) return $json; } - -/** - * Wrapper for the hrtime() or microtime() functions - * (depending on the PHP version, one of the two is used) - * - * @return float|mixed UNIX timestamp - * @internal - */ -function _current_time() -{ - return function_exists('hrtime') ? hrtime(true) / 1e9 : microtime(true); -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php b/vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php index e3c40e6b3..5fdf8a1eb 100755 --- a/vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php +++ b/vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php @@ -107,7 +107,7 @@ class EloquentUserProvider implements UserProvider { if (empty($credentials) || (count($credentials) === 1 && - array_key_exists('password', $credentials))) { + Str::contains($this->firstCredentialKey($credentials), 'password'))) { return; } @@ -131,6 +131,19 @@ class EloquentUserProvider implements UserProvider return $query->first(); } + /** + * Get the first key from the credential array. + * + * @param array $credentials + * @return string|null + */ + protected function firstCredentialKey(array $credentials) + { + foreach ($credentials as $key => $value) { + return $key; + } + } + /** * Validate a user against the given credentials. * diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php index a08f5be49..f555c44b7 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php @@ -1180,6 +1180,17 @@ class Blueprint return $this->addColumn('multipolygon', $column); } + /** + * Create a new multipolygon column on the table. + * + * @param string $column + * @return \Illuminate\Database\Schema\ColumnDefinition + */ + public function multiPolygonZ($column) + { + return $this->addColumn('multipolygonz', $column); + } + /** * Create a new generated, computed column on the table. * diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/PostgresGrammar.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/PostgresGrammar.php index 6edf18eb5..0f85bc96b 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/PostgresGrammar.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/PostgresGrammar.php @@ -868,6 +868,17 @@ class PostgresGrammar extends Grammar return $this->formatPostGisType('multipolygon'); } + /** + * Create the column definition for a spatial MultiPolygonZ type. + * + * @param \Illuminate\Support\Fluent $column + * @return string + */ + protected function typeMultiPolygonZ(Fluent $column) + { + return $this->formatPostGisType('multipolygonz'); + } + /** * Format the column definition for a PostGIS spatial type. * diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Application.php b/vendor/laravel/framework/src/Illuminate/Foundation/Application.php index da9e91948..60e594ee2 100755 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Application.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Application.php @@ -29,7 +29,7 @@ class Application extends Container implements ApplicationContract, HttpKernelIn * * @var string */ - const VERSION = '5.8.35'; + const VERSION = '5.8.38'; /** * The base path for the Laravel installation. diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/PackageManifest.php b/vendor/laravel/framework/src/Illuminate/Foundation/PackageManifest.php index a091372a0..35079fdd6 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/PackageManifest.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/PackageManifest.php @@ -113,7 +113,9 @@ class PackageManifest $packages = []; if ($this->files->exists($path = $this->vendorPath.'/composer/installed.json')) { - $packages = json_decode($this->files->get($path), true); + $installed = json_decode($this->files->get($path), true); + + $packages = $installed['packages'] ?? $installed; } $ignoreAll = in_array('*', $ignore = $this->packagesToIgnore()); diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/SeeInOrder.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/SeeInOrder.php index 8c0cb189a..26f45f894 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/SeeInOrder.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/SeeInOrder.php @@ -38,7 +38,7 @@ class SeeInOrder extends Constraint * @param array $values * @return bool */ - public function matches($values) : bool + public function matches($values): bool { $position = 0; @@ -67,7 +67,7 @@ class SeeInOrder extends Constraint * @param array $values * @return string */ - public function failureDescription($values) : string + public function failureDescription($values): string { return sprintf( 'Failed asserting that \'%s\' contains "%s" in specified order.', @@ -81,7 +81,7 @@ class SeeInOrder extends Constraint * * @return string */ - public function toString() : string + public function toString(): string { return (new ReflectionClass($this))->name; } diff --git a/vendor/laravel/framework/src/Illuminate/Support/ServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Support/ServiceProvider.php index a20530450..7fd1410a4 100755 --- a/vendor/laravel/framework/src/Illuminate/Support/ServiceProvider.php +++ b/vendor/laravel/framework/src/Illuminate/Support/ServiceProvider.php @@ -94,7 +94,7 @@ abstract class ServiceProvider */ protected function loadViewsFrom($path, $namespace) { - if (is_array($this->app->config['view']['paths'])) { + if (isset($this->app->config['view']['paths']) && is_array($this->app->config['view']['paths'])) { foreach ($this->app->config['view']['paths'] as $viewPath) { if (is_dir($appPath = $viewPath.'/vendor/'.$namespace)) { $this->app['view']->addNamespace($namespace, $appPath); diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php b/vendor/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php index e2a04c98a..7d9a9a635 100644 --- a/vendor/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php +++ b/vendor/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php @@ -1630,7 +1630,7 @@ trait ValidatesAttributes ((aaa|aaas|about|acap|acct|acr|adiumxtra|afp|afs|aim|apt|attachment|aw|barion|beshare|bitcoin|blob|bolo|callto|cap|chrome|chrome-extension|cid|coap|coaps|com-eventbrite-attendee|content|crid|cvs|data|dav|dict|dlna-playcontainer|dlna-playsingle|dns|dntp|dtn|dvb|ed2k|example|facetime|fax|feed|feedready|file|filesystem|finger|fish|ftp|geo|gg|git|gizmoproject|go|gopher|gtalk|h323|ham|hcp|http|https|iax|icap|icon|im|imap|info|iotdisco|ipn|ipp|ipps|irc|irc6|ircs|iris|iris.beep|iris.lwz|iris.xpc|iris.xpcs|itms|jabber|jar|jms|keyparc|lastfm|ldap|ldaps|magnet|mailserver|mailto|maps|market|message|mid|mms|modem|ms-help|ms-settings|ms-settings-airplanemode|ms-settings-bluetooth|ms-settings-camera|ms-settings-cellular|ms-settings-cloudstorage|ms-settings-emailandaccounts|ms-settings-language|ms-settings-location|ms-settings-lock|ms-settings-nfctransactions|ms-settings-notifications|ms-settings-power|ms-settings-privacy|ms-settings-proximity|ms-settings-screenrotation|ms-settings-wifi|ms-settings-workplace|msnim|msrp|msrps|mtqp|mumble|mupdate|mvn|news|nfs|ni|nih|nntp|notes|oid|opaquelocktoken|pack|palm|paparazzi|pkcs11|platform|pop|pres|prospero|proxy|psyc|query|redis|rediss|reload|res|resource|rmi|rsync|rtmfp|rtmp|rtsp|rtsps|rtspu|secondlife|s3|service|session|sftp|sgn|shttp|sieve|sip|sips|skype|smb|sms|smtp|snews|snmp|soap.beep|soap.beeps|soldat|spotify|ssh|steam|stun|stuns|submit|svn|tag|teamspeak|tel|teliaeid|telnet|tftp|things|thismessage|tip|tn3270|turn|turns|tv|udp|unreal|urn|ut2004|vemmi|ventrilo|videotex|view-source|wais|webcal|ws|wss|wtai|wyciwyg|xcon|xcon-userid|xfire|xmlrpc\.beep|xmlrpc.beeps|xmpp|xri|ymsgr|z39\.50|z39\.50r|z39\.50s)):// # protocol (([\pL\pN-]+:)?([\pL\pN-]+)@)? # basic auth ( - ([\pL\pN\pS\-\.])+(\.?([\pL]|xn\-\-[\pL\pN-]+)+\.?) # a domain name + ([\pL\pN\pS\-\_\.])+(\.?([\pL]|xn\-\-[\pL\pN-]+)+\.?) # a domain name | # or \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} # an IP address | # or diff --git a/vendor/laravel/horizon/README.md b/vendor/laravel/horizon/README.md index 02a11fe32..1e083b90e 100644 --- a/vendor/laravel/horizon/README.md +++ b/vendor/laravel/horizon/README.md @@ -1,7 +1,7 @@

-Build Status +Build Status Total Downloads Latest Stable Version License diff --git a/vendor/laravel/horizon/config/horizon.php b/vendor/laravel/horizon/config/horizon.php index b9803a88e..ee5ae3a19 100644 --- a/vendor/laravel/horizon/config/horizon.php +++ b/vendor/laravel/horizon/config/horizon.php @@ -95,6 +95,7 @@ return [ 'trim' => [ 'recent' => 60, + 'completed' => 60, 'recent_failed' => 10080, 'failed' => 10080, 'monitored' => 10080, diff --git a/vendor/laravel/horizon/package-lock.json b/vendor/laravel/horizon/package-lock.json index 110a766d3..638e17148 100644 --- a/vendor/laravel/horizon/package-lock.json +++ b/vendor/laravel/horizon/package-lock.json @@ -1100,15 +1100,9 @@ } }, "acorn": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz", - "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==", - "dev": true - }, - "acorn-dynamic-import": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", - "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz", + "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==", "dev": true }, "adjust-sourcemap-loader": { @@ -1564,9 +1558,9 @@ } }, "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", "dev": true }, "batch": { @@ -1785,9 +1779,9 @@ } }, "buffer": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", "dev": true, "requires": { "base64-js": "^1.0.2", @@ -1826,25 +1820,34 @@ "dev": true }, "cacache": { - "version": "11.3.2", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz", - "integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==", + "version": "12.0.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz", + "integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==", "dev": true, "requires": { - "bluebird": "^3.5.3", + "bluebird": "^3.5.5", "chownr": "^1.1.1", "figgy-pudding": "^3.5.1", - "glob": "^7.1.3", + "glob": "^7.1.4", "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", "lru-cache": "^5.1.1", "mississippi": "^3.0.0", "mkdirp": "^0.5.1", "move-concurrently": "^1.0.1", "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", + "rimraf": "^2.6.3", "ssri": "^6.0.1", "unique-filename": "^1.1.1", "y18n": "^4.0.0" + }, + "dependencies": { + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + } } }, "cache-base": { @@ -1996,15 +1999,15 @@ } }, "chownr": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", - "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", + "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==", "dev": true }, "chrome-trace-event": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz", - "integrity": "sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", "dev": true, "requires": { "tslib": "^1.9.0" @@ -2252,13 +2255,10 @@ "dev": true }, "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, - "requires": { - "date-now": "^0.1.4" - } + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true }, "consolidate": { "version": "0.15.1", @@ -2730,15 +2730,9 @@ } }, "cyclist": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", - "dev": true - }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", "dev": true }, "de-indent": { @@ -2891,9 +2885,9 @@ "dev": true }, "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", "dev": true, "requires": { "inherits": "^2.0.1", @@ -3042,9 +3036,9 @@ "dev": true }, "elliptic": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", - "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz", + "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==", "dev": true, "requires": { "bn.js": "^4.4.0", @@ -3194,9 +3188,9 @@ } }, "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, "esutils": { @@ -3218,9 +3212,9 @@ "dev": true }, "events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", - "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", + "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==", "dev": true }, "eventsource": { @@ -4849,10 +4843,10 @@ "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", "dev": true }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", "dev": true }, "inflight": { @@ -5942,9 +5936,9 @@ "dev": true }, "node-libs-browser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.0.tgz", - "integrity": "sha512-5MQunG/oyOaBdttrL40dA7bUfPORLRWMUJLQtMg7nluxUvk5XwnLdL9twQHFAjRx/y7mIMkLKT9++qPbbk6BZA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", "dev": true, "requires": { "assert": "^1.1.1", @@ -5957,7 +5951,7 @@ "events": "^3.0.0", "https-browserify": "^1.0.0", "os-browserify": "^0.3.0", - "path-browserify": "0.0.0", + "path-browserify": "0.0.1", "process": "^0.11.10", "punycode": "^1.2.4", "querystring-es3": "^0.2.0", @@ -5969,7 +5963,7 @@ "tty-browserify": "0.0.0", "url": "^0.11.0", "util": "^0.11.0", - "vm-browserify": "0.0.4" + "vm-browserify": "^1.0.1" }, "dependencies": { "punycode": { @@ -6287,12 +6281,12 @@ "dev": true }, "parallel-transform": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", "dev": true, "requires": { - "cyclist": "~0.2.2", + "cyclist": "^1.0.1", "inherits": "^2.0.3", "readable-stream": "^2.1.5" } @@ -6307,9 +6301,9 @@ } }, "parse-asn1": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz", - "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", + "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", "dev": true, "requires": { "asn1.js": "^4.0.0", @@ -6349,9 +6343,9 @@ "dev": true }, "path-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", "dev": true }, "path-dirname": { @@ -7637,9 +7631,9 @@ } }, "serialize-javascript": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.7.0.tgz", - "integrity": "sha512-ke8UG8ulpFOxO8f8gRYabHQe/ZntKlcig2Mp+8+URDP1D8vJZ0KUt7LYo07q25Z/+JVSgpr/cui9PIp5H6/+nA==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", + "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", "dev": true }, "serve-index": { @@ -7696,9 +7690,9 @@ "dev": true }, "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, "requires": { "extend-shallow": "^2.0.1", @@ -8211,9 +8205,9 @@ } }, "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", "dev": true }, "string-width": { @@ -8377,22 +8371,28 @@ } }, "terser-webpack-plugin": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.2.4.tgz", - "integrity": "sha512-64IiILNQlACWZLzFlpzNaG0bpQ4ytaB7fwOsbpsdIV70AfLUmIGGeuKL0YV2WmtcrURjE2aOvHD4/lrFV3Rg+Q==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz", + "integrity": "sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==", "dev": true, "requires": { - "cacache": "^11.3.2", - "find-cache-dir": "^2.0.0", + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", "is-wsl": "^1.1.0", "schema-utils": "^1.0.0", - "serialize-javascript": "^1.7.0", + "serialize-javascript": "^2.1.2", "source-map": "^0.6.1", - "terser": "^3.17.0", - "webpack-sources": "^1.3.0", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", "worker-farm": "^1.7.0" }, "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, "schema-utils": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", @@ -8409,6 +8409,27 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true + }, + "terser": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.3.tgz", + "integrity": "sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } } } }, @@ -8435,9 +8456,9 @@ "dev": true }, "timers-browserify": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", - "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", + "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", "dev": true, "requires": { "setimmediate": "^1.0.4" @@ -8516,9 +8537,9 @@ "dev": true }, "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", "dev": true }, "tty-browserify": { @@ -8596,43 +8617,22 @@ "dev": true }, "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "dev": true, "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", "is-extendable": "^0.1.1", - "set-value": "^0.4.3" + "set-value": "^2.0.1" }, "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true - }, - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" - } } } }, @@ -8658,9 +8658,9 @@ } }, "unique-slug": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz", - "integrity": "sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "dev": true, "requires": { "imurmurhash": "^0.1.4" @@ -8841,13 +8841,10 @@ "dev": true }, "vm-browserify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "dev": true, - "requires": { - "indexof": "0.0.1" - } + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true }, "vue": { "version": "2.5.22", @@ -8933,37 +8930,60 @@ } }, "webpack": { - "version": "4.32.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.32.0.tgz", - "integrity": "sha512-ofFq9jjAn4HRzlmkcZZrjijbRZcqDw+mM9KrjKd0r6lS0qxyZ7jzICzhphGafXL62dGdjP7TgMK9mZeMLUgZgw==", + "version": "4.41.5", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.5.tgz", + "integrity": "sha512-wp0Co4vpyumnp3KlkmpM5LWuzvZYayDwM2n17EHFr4qxBBbRokC7DJawPJC7TfSFZ9HZ6GsdH40EBj4UV0nmpw==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", "@webassemblyjs/helper-module-context": "1.8.5", "@webassemblyjs/wasm-edit": "1.8.5", "@webassemblyjs/wasm-parser": "1.8.5", - "acorn": "^6.0.5", - "acorn-dynamic-import": "^4.0.0", - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0", - "chrome-trace-event": "^1.0.0", + "acorn": "^6.2.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.0", + "eslint-scope": "^4.0.3", "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.3.0", - "loader-utils": "^1.1.0", - "memory-fs": "~0.4.1", - "micromatch": "^3.1.8", - "mkdirp": "~0.5.0", - "neo-async": "^2.5.0", - "node-libs-browser": "^2.0.0", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.1", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", "schema-utils": "^1.0.0", - "tapable": "^1.1.0", - "terser-webpack-plugin": "^1.1.0", - "watchpack": "^1.5.0", - "webpack-sources": "^1.3.0" + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.6.0", + "webpack-sources": "^1.4.1" }, "dependencies": { + "ajv": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", + "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", + "dev": true + }, + "neo-async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", + "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", + "dev": true + }, "schema-utils": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", @@ -8974,6 +8994,22 @@ "ajv-errors": "^1.0.0", "ajv-keywords": "^3.1.0" } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } } } }, @@ -9256,9 +9292,9 @@ "dev": true }, "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true }, "y18n": { @@ -9268,9 +9304,9 @@ "dev": true }, "yallist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, "yargs": { diff --git a/vendor/laravel/horizon/public/app-dark.css b/vendor/laravel/horizon/public/app-dark.css index ff082fb23..6d2776e8c 100644 --- a/vendor/laravel/horizon/public/app-dark.css +++ b/vendor/laravel/horizon/public/app-dark.css @@ -5,4 +5,4 @@ * 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:#494444;--primary:#adadff;--secondary:#494444;--success:#1f9d55;--info:#1c3d5a;--warning:#b08d2f;--danger:#aa2e28;--light:#f8f9fa;--dark:#494444;--breakpoint-xs:0;--breakpoint-sm:2px;--breakpoint-md:8px;--breakpoint-lg:9px;--breakpoint-xl:10px;--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:rgba(0,0,0,0)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:Nunito;font-size:.95rem;font-weight:400;line-height:1.5;color:#e2edf4;text-align:left;background-color:#1c1c1c}[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{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}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:#adadff;text-decoration:none;background-color:transparent}a:hover{color:#6161ff;text-decoration:underline}a:not([href]):not([tabindex]),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{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}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.375rem}.h2,h2{font-size:1.9rem}.h3,h3{font-size:1.6625rem}.h4,h4{font-size:1.425rem}.h5,h5{font-size:1.1875rem}.h6,h6{font-size:.95rem}.lead{font-size:1.1875rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}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-inline,.list-unstyled{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.1875rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:"\2014\A0"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#1c1c1c;border:1px solid #dee2e6;border-radius:.25rem}.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:2px){.container{max-width:1137px}}@media (min-width:8px){.container{max-width:1138px}}@media (min-width:9px){.container{max-width:1139px}}@media (min-width:10px){.container{max-width:1140px}}.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,.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-auto,.col-lg,.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-auto,.col-md,.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-auto,.col-sm,.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-auto,.col-xl,.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-auto{position:relative;width:100%;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:100%}.col-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.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.3333333333%}.offset-2{margin-left:16.6666666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.3333333333%}.offset-5{margin-left:41.6666666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.3333333333%}.offset-8{margin-left:66.6666666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.3333333333%}.offset-11{margin-left:91.6666666667%}@media (min-width:2px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-sm-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-sm-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-sm-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-sm-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.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.3333333333%}.offset-sm-2{margin-left:16.6666666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.3333333333%}.offset-sm-5{margin-left:41.6666666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.3333333333%}.offset-sm-8{margin-left:66.6666666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.3333333333%}.offset-sm-11{margin-left:91.6666666667%}}@media (min-width:8px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-md-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-md-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-md-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-md-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.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.3333333333%}.offset-md-2{margin-left:16.6666666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.3333333333%}.offset-md-5{margin-left:41.6666666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.3333333333%}.offset-md-8{margin-left:66.6666666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.3333333333%}.offset-md-11{margin-left:91.6666666667%}}@media (min-width:9px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-lg-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-lg-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-lg-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-lg-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.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.3333333333%}.offset-lg-2{margin-left:16.6666666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.3333333333%}.offset-lg-5{margin-left:41.6666666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.3333333333%}.offset-lg-8{margin-left:66.6666666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.3333333333%}.offset-lg-11{margin-left:91.6666666667%}}@media (min-width:10px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-xl-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-xl-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-xl-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-xl-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.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.3333333333%}.offset-xl-2{margin-left:16.6666666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.3333333333%}.offset-xl-5{margin-left:41.6666666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.3333333333%}.offset-xl-8{margin-left:66.6666666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.3333333333%}.offset-xl-11{margin-left:91.6666666667%}}.table{width:100%;margin-bottom:1rem;color:#e2edf4}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #343434}.table thead th{vertical-align:bottom;border-bottom:2px solid #343434}.table tbody+tbody{border-top:2px solid #343434}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #343434}.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:#e2edf4;background-color:#343434}.table-primary,.table-primary>td,.table-primary>th{background-color:#e8e8ff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#d4d4ff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#cfcfff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#cccbcb}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#a09e9e}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#bfbebe}.table-success,.table-success>td,.table-success>th{background-color:#c0e4cf}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8bcca7}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#aedcc1}.table-info,.table-info>td,.table-info>th{background-color:#bfc9d1}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#899aa9}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#b0bcc6}.table-warning,.table-warning>td,.table-warning>th{background-color:#e9dfc5}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#d6c493}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#e2d5b3}.table-danger,.table-danger>td,.table-danger>th{background-color:#e7c4c3}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#d3928f}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#e0b2b1}.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,.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:#cccbcb}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#a09e9e}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#bfbebe}.table-active,.table-active>td,.table-active>th{background-color:#343434}.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:#272727}.table .thead-dark th{color:#fff;background-color:#494444;border-color:#5d5656}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#343434}.table-dark{color:#fff;background-color:#494444}.table-dark td,.table-dark th,.table-dark thead th{border-color:#5d5656}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:1.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:7.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:8.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:9.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:.95rem;font-weight:400;line-height:1.5;color:#e2edf4;background-color:#242424;background-clip:padding-box;border:1px solid #343434;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:#e2edf4;background-color:#242424;border-color:#fff;outline:0;box-shadow:0 0 0 .2rem rgba(173,173,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:#e2edf4;background-color:#242424}.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.1875rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.83125rem;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:#e2edf4;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:.83125rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.1875rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.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:.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:.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:#1f9d55}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.83125rem;line-height:1.5;color:#fff;background-color:rgba(31,157,85,.9);border-radius:.25rem}.form-control.is-valid,.was-validated .form-control:valid{border-color:#1f9d55;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f9d55' 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:100% calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#1f9d55;box-shadow:0 0 0 .2rem rgba(31,157,85,.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:#1f9d55;padding-right:calc((3em + 2.25rem)/4 + 1.75rem);background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23494444' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f9d55' 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") #242424 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:#1f9d55;box-shadow:0 0 0 .2rem rgba(31,157,85,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select: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:#1f9d55}.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:#1f9d55}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#1f9d55}.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:#27c86c;background-color:#27c86c}.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(31,157,85,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#1f9d55}.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:#1f9d55;box-shadow:0 0 0 .2rem rgba(31,157,85,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#aa2e28}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.83125rem;line-height:1.5;color:#fff;background-color:rgba(170,46,40,.9);border-radius:.25rem}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#aa2e28;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23aa2e28' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23aa2e28' 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:100% calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#aa2e28;box-shadow:0 0 0 .2rem rgba(170,46,40,.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:#aa2e28;padding-right:calc((3em + 2.25rem)/4 + 1.75rem);background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23494444' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23aa2e28' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23aa2e28' 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") #242424 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:#aa2e28;box-shadow:0 0 0 .2rem rgba(170,46,40,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select: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:#aa2e28}.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:#aa2e28}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#aa2e28}.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:#d03d35;background-color:#d03d35}.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(170,46,40,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#aa2e28}.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:#aa2e28;box-shadow:0 0 0 .2rem rgba(170,46,40,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:2px){.form-inline label{justify-content:center}.form-inline .form-group,.form-inline label{display:flex;align-items:center;margin-bottom:0}.form-inline .form-group{flex:0 0 auto;flex-flow:row wrap}.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:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#e2edf4;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:.95rem;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:#e2edf4;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(173,173,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#212529;background-color:#adadff;border-color:#adadff}.btn-primary:hover{color:#fff;background-color:#8787ff;border-color:#7a7aff}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(152,153,223,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#212529;background-color:#adadff;border-color:#adadff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#7a7aff;border-color:#6d6dff}.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(152,153,223,.5)}.btn-secondary{color:#fff;background-color:#494444;border-color:#494444}.btn-secondary:hover{color:#fff;background-color:#353232;border-color:#2f2b2b}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(100,96,96,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#494444;border-color:#494444}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#2f2b2b;border-color:#282525}.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(100,96,96,.5)}.btn-success{color:#fff;background-color:#1f9d55;border-color:#1f9d55}.btn-success:hover{color:#fff;background-color:#197d44;border-color:#17723e}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(65,172,111,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#1f9d55;border-color:#1f9d55}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#17723e;border-color:#146838}.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(65,172,111,.5)}.btn-info{color:#fff;background-color:#1c3d5a;border-color:#1c3d5a}.btn-info:hover{color:#fff;background-color:#13293d;border-color:#102333}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(62,90,115,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#1c3d5a;border-color:#1c3d5a}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#102333;border-color:#0d1c29}.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(62,90,115,.5)}.btn-warning{color:#fff;background-color:#b08d2f;border-color:#b08d2f}.btn-warning:hover{color:#fff;background-color:#927527;border-color:#886d24}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(188,158,78,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#fff;background-color:#b08d2f;border-color:#b08d2f}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#fff;background-color:#886d24;border-color:#7e6522}.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(188,158,78,.5)}.btn-danger{color:#fff;background-color:#aa2e28;border-color:#aa2e28}.btn-danger:hover{color:#fff;background-color:#8b2621;border-color:#81231e}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(183,77,72,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#aa2e28;border-color:#aa2e28}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#81231e;border-color:#76201c}.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(183,77,72,.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:#494444;border-color:#494444}.btn-dark:hover{color:#fff;background-color:#353232;border-color:#2f2b2b}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(100,96,96,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#494444;border-color:#494444}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#2f2b2b;border-color:#282525}.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(100,96,96,.5)}.btn-outline-primary{color:#adadff;border-color:#adadff}.btn-outline-primary:hover{color:#212529;background-color:#adadff;border-color:#adadff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(173,173,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#adadff;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:#212529;background-color:#adadff;border-color:#adadff}.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(173,173,255,.5)}.btn-outline-secondary{color:#494444;border-color:#494444}.btn-outline-secondary:hover{color:#fff;background-color:#494444;border-color:#494444}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(73,68,68,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#494444;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:#494444;border-color:#494444}.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(73,68,68,.5)}.btn-outline-success{color:#1f9d55;border-color:#1f9d55}.btn-outline-success:hover{color:#fff;background-color:#1f9d55;border-color:#1f9d55}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(31,157,85,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#1f9d55;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:#1f9d55;border-color:#1f9d55}.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(31,157,85,.5)}.btn-outline-info{color:#1c3d5a;border-color:#1c3d5a}.btn-outline-info:hover{color:#fff;background-color:#1c3d5a;border-color:#1c3d5a}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(28,61,90,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#1c3d5a;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:#1c3d5a;border-color:#1c3d5a}.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(28,61,90,.5)}.btn-outline-warning{color:#b08d2f;border-color:#b08d2f}.btn-outline-warning:hover{color:#fff;background-color:#b08d2f;border-color:#b08d2f}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(176,141,47,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#b08d2f;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#fff;background-color:#b08d2f;border-color:#b08d2f}.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(176,141,47,.5)}.btn-outline-danger{color:#aa2e28;border-color:#aa2e28}.btn-outline-danger:hover{color:#fff;background-color:#aa2e28;border-color:#aa2e28}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(170,46,40,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#aa2e28;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:#aa2e28;border-color:#aa2e28}.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(170,46,40,.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:#494444;border-color:#494444}.btn-outline-dark:hover{color:#fff;background-color:#494444;border-color:#494444}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(73,68,68,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#494444;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:#494444;border-color:#494444}.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(73,68,68,.5)}.btn-link{font-weight:400;color:#adadff;text-decoration:none}.btn-link:hover{color:#6161ff;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.1875rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.83125rem;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:.95rem;color:#e2edf4;text-align:left;list-style:none;background-color:#181818;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:2px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:8px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:9px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:10px){.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:"";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:#fff;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:#adadff}.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:.83125rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#fff}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;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{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-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-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{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>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;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: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-append,.input-group-prepend{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:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:.95rem;font-weight:400;line-height:1.5;color:#e2edf4;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #343434;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.1875rem;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:.83125rem;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.425rem;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;border-color:#adadff;background-color:#adadff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(173,173,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#fff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#fff;border-color:#fff}.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{pointer-events:none;background-color:#242424;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.2125rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:""}.custom-control-label:after{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;charset=utf-8,%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.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#adadff;background-color:#adadff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%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(173,173,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(173,173,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;charset=utf-8,%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(173,173,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(.2125rem + 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:#242424;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(173,173,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:.95rem;font-weight:400;line-height:1.5;color:#e2edf4;vertical-align:middle;background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23494444' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center/8px 10px;background-color:#242424;border:1px solid #343434;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#fff;outline:0;box-shadow:0 0 0 .2rem rgba(173,173,255,.25)}.custom-select:focus::-ms-value{color:#e2edf4;background-color:#242424}.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:.83125rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.1875rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#fff;box-shadow:0 0 0 .2rem rgba(173,173,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{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#242424;border:1px solid #343434;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#e2edf4}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:none}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #1c1c1c,0 0 0 .2rem rgba(173,173,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #1c1c1c,0 0 0 .2rem rgba(173,173,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #1c1c1c,0 0 0 .2rem rgba(173,173,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#adadff;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:#fff}.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:#adadff;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:#fff}.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:#adadff;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:#fff}.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,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.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:flex;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:#1c1c1c;border-color:#dee2e6 #dee2e6 #1c1c1c}.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:#adadff}.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;padding:.5rem 1rem}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.321875rem;padding-bottom:.321875rem;margin-right:1rem;font-size:1.1875rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{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:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.1875rem;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 50%;background-size:100% 100%}@media (max-width:1.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:2px){.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:.5rem;padding-left:.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:7.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:8px){.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:.5rem;padding-left:.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:8.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:9px){.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:.5rem;padding-left:.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:9.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:10px){.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:.5rem;padding-left:.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}}.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:.5rem;padding-left:.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,.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;charset=utf-8,%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,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.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:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%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:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#120f12;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{flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.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:#120f12;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:#120f12;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-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{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:flex;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:2px){.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:2px){.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: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:2px){.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:flex;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;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{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:#adadff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#6161ff;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(173,173,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:#adadff;border-color:#adadff}.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.1875rem;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:.83125rem;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:.95rem;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:#212529;background-color:#adadff}a.badge-primary:focus,a.badge-primary:hover{color:#212529;background-color:#7a7aff}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(173,173,255,.5)}.badge-secondary{color:#fff;background-color:#494444}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#2f2b2b}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(73,68,68,.5)}.badge-success{color:#fff;background-color:#1f9d55}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#17723e}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(31,157,85,.5)}.badge-info{color:#fff;background-color:#1c3d5a}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#102333}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(28,61,90,.5)}.badge-warning{color:#fff;background-color:#b08d2f}a.badge-warning:focus,a.badge-warning:hover{color:#fff;background-color:#886d24}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(176,141,47,.5)}.badge-danger{color:#fff;background-color:#aa2e28}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#81231e}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(170,46,40,.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:#494444}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#2f2b2b}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(73,68,68,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:2px){.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:3.925rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#5a5a85;background-color:#efefff;border-color:#e8e8ff}.alert-primary hr{border-top-color:#cfcfff}.alert-primary .alert-link{color:#454567}.alert-secondary{color:#262323;background-color:#dbdada;border-color:#cccbcb}.alert-secondary hr{border-top-color:#bfbebe}.alert-secondary .alert-link{color:#0b0b0b}.alert-success{color:#10522c;background-color:#d2ebdd;border-color:#c0e4cf}.alert-success hr{border-top-color:#aedcc1}.alert-success .alert-link{color:#082715}.alert-info{color:#0f202f;background-color:#d2d8de;border-color:#bfc9d1}.alert-info hr{border-top-color:#b0bcc6}.alert-info .alert-link{color:#030608}.alert-warning{color:#5c4918;background-color:#efe8d5;border-color:#e9dfc5}.alert-warning hr{border-top-color:#e2d5b3}.alert-warning .alert-link{color:#34290d}.alert-danger{color:#581815;background-color:#eed5d4;border-color:#e7c4c3}.alert-danger hr{border-top-color:#e0b2b1}.alert-danger .alert-link{color:#2f0d0b}.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:#262323;background-color:#dbdada;border-color:#cccbcb}.alert-dark hr{border-top-color:#bfbebe}.alert-dark .alert-link{color:#0b0b0b}@-webkit-keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.7125rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#adadff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,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: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:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#e2edf4;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:#adadff;border-color:#adadff}.list-group-horizontal{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:2px){.list-group-horizontal-sm{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:8px){.list-group-horizontal-md{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:9px){.list-group-horizontal-lg{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:10px){.list-group-horizontal-xl{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:#5a5a85;background-color:#e8e8ff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#5a5a85;background-color:#cfcfff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#5a5a85;border-color:#5a5a85}.list-group-item-secondary{color:#262323;background-color:#cccbcb}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#262323;background-color:#bfbebe}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#262323;border-color:#262323}.list-group-item-success{color:#10522c;background-color:#c0e4cf}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#10522c;background-color:#aedcc1}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#10522c;border-color:#10522c}.list-group-item-info{color:#0f202f;background-color:#bfc9d1}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0f202f;background-color:#b0bcc6}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0f202f;border-color:#0f202f}.list-group-item-warning{color:#5c4918;background-color:#e9dfc5}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#5c4918;background-color:#e2d5b3}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#5c4918;border-color:#5c4918}.list-group-item-danger{color:#581815;background-color:#e7c4c3}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#581815;background-color:#e0b2b1}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#581815;border-color:#581815}.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:#262323;background-color:#cccbcb}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#262323;background-color:#bfbebe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#262323;border-color:#262323}.close{float:right;font-size:1.425rem;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:hsla(0,0%,100%,.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:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.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:translateY(-50px);transform:translateY(-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: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{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;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{flex-direction:column;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:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#181818;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:#7e7e7e}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #343434;border-top-left-radius:.3rem;border-top-right-radius:.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 #343434;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:2px){.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:9px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:10px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:Nunito;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:.83125rem;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{top:0;left:0;z-index:1060;max-width:276px;font-family:Nunito;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:.83125rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{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)}.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);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)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .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;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);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:.95rem;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:#e2edf4}.carousel{position:relative}.carousel.pointer-event{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:opacity 0s .6s}@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:flex;align-items: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;charset=utf-8,%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.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:0;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{box-sizing:content-box;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(1turn);transform:rotate(1turn)}}@keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid 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:#adadff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#7a7aff!important}.bg-secondary{background-color:#494444!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#2f2b2b!important}.bg-success{background-color:#1f9d55!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#17723e!important}.bg-info{background-color:#1c3d5a!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#102333!important}.bg-warning{background-color:#b08d2f!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#886d24!important}.bg-danger{background-color:#aa2e28!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#81231e!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:#494444!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#2f2b2b!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #303030!important}.border-top{border-top:1px solid #303030!important}.border-right{border-right:1px solid #303030!important}.border-bottom{border-bottom:1px solid #303030!important}.border-left{border-left:1px solid #303030!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:#adadff!important}.border-secondary{border-color:#494444!important}.border-success{border-color:#1f9d55!important}.border-info{border-color:#1c3d5a!important}.border-warning{border-color:#b08d2f!important}.border-danger{border-color:#aa2e28!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#494444!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}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-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:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:2px){.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:8px){.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:9px){.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:10px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;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.8571428571%}.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:2px){.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:8px){.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:9px){.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:10px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:2px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:8px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:9px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:10px){.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{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@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:transparent}.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:2px){.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:8px){.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:9px){.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:10px){.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:2px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:8px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:9px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:10px){.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:#adadff!important}a.text-primary:focus,a.text-primary:hover{color:#6161ff!important}.text-secondary{color:#494444!important}a.text-secondary:focus,a.text-secondary:hover{color:#211f1f!important}.text-success{color:#1f9d55!important}a.text-success:focus,a.text-success:hover{color:#125d32!important}.text-info{color:#1c3d5a!important}a.text-info:focus,a.text-info:hover{color:#0a1520!important}.text-warning{color:#b08d2f!important}a.text-warning:focus,a.text-warning:hover{color:#745d1f!important}.text-danger{color:#aa2e28!important}a.text-danger:focus,a.text-danger:hover{color:#6c1d19!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#494444!important}a.text-dark:focus,a.text-dark:hover{color:#211f1f!important}.text-body{color:#e2edf4!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.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}.container,body{min-width:9px!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:#343434}.table .thead-dark th{color:inherit;border-color:#343434}}body{padding-bottom:20px}.container{width:1140px}html{min-width:1140px}[v-cloak]{display:none}svg.icon{width:1rem;height:1rem}.header{border-bottom:1px solid #343434}.header svg.logo{width:2rem;height:2rem}.sidebar .nav-item a{color:#6e6b6b;padding:.5rem 0}.sidebar .nav-item a svg{width:1rem;height:1rem;margin-right:15px;fill:#9f9898}.sidebar .nav-item a.active{color:#adadff}.sidebar .nav-item a.active svg{fill:#adadff}.card{box-shadow:0 2px 3px #1c1c1c;border:none}.card .bottom-radius{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.card .card-header{padding-top:.7rem;padding-bottom:.7rem;background-color:#120f12;border-bottom:none}.card .card-header .btn-group .btn{padding:.2rem .5rem}.card .card-header h5{margin:0}.card .table td,.card .table th{padding:.75rem 1.25rem}.card .table.table-sm td,.card .table.table-sm th{padding:1rem 1.25rem}.card .table th{background-color:#181818;font-weight:400;padding:.5rem 1.25rem;border-bottom:0}.card .table:not(.table-borderless) td{border-top:1px solid #343434}.card .table.penultimate-column-right td:nth-last-child(2),.card .table.penultimate-column-right th:nth-last-child(2){text-align:right}.card .table td.table-fit,.card .table th.table-fit{width:1%;white-space:nowrap}.fill-text-color{fill:#e2edf4}.fill-danger{fill:#aa2e28}.fill-warning{fill:#b08d2f}.fill-info{fill:#1c3d5a}.fill-success{fill:#1f9d55}.fill-primary{fill:#adadff}button:hover .fill-primary{fill:#fff}.btn-outline-primary.active .fill-primary{fill:#1c1c1c}.btn-outline-primary:not(:disabled):not(.disabled).active:focus{box-shadow:none!important}.control-action svg{fill:#ccd2df;width:1.2rem;height:1.2rem}.control-action svg:hover{fill:#adadff}.paginator .btn{text-decoration:none;color:#9ea7ac}.paginator .btn:hover{color:#adadff}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spin{-webkit-animation:spin 2s linear infinite;animation:spin 2s linear infinite}.card .nav-pills .nav-link.active{background:none;color:#adadff;border-bottom:2px solid #adadff}.card .nav-pills .nav-link{font-size:.9rem;border-radius:0;padding:.75rem 1.25rem;color:#e2edf4}.list-enter-active:not(.dontanimate){transition:background 1s linear}.list-enter:not(.dontanimate),.list-leave-to:not(.dontanimate){background:#505e4a}.card table td{vertical-align:middle!important}.card-bg-secondary,.code-bg{background:#262525}.disabled-watcher{padding:.75rem;color:#fff;background:#aa2e28} \ No newline at end of file + */: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:#494444;--primary:#adadff;--secondary:#494444;--success:#1f9d55;--info:#1c3d5a;--warning:#b08d2f;--danger:#aa2e28;--light:#f8f9fa;--dark:#494444;--breakpoint-xs:0;--breakpoint-sm:2px;--breakpoint-md:8px;--breakpoint-lg:9px;--breakpoint-xl:10px;--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:rgba(0,0,0,0)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:Nunito;font-size:.95rem;font-weight:400;line-height:1.5;color:#e2edf4;text-align:left;background-color:#1c1c1c}[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{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}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:#adadff;text-decoration:none;background-color:transparent}a:hover{color:#6161ff;text-decoration:underline}a:not([href]):not([tabindex]),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{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}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.375rem}.h2,h2{font-size:1.9rem}.h3,h3{font-size:1.6625rem}.h4,h4{font-size:1.425rem}.h5,h5{font-size:1.1875rem}.h6,h6{font-size:.95rem}.lead{font-size:1.1875rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}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-inline,.list-unstyled{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.1875rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:"\2014\A0"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#1c1c1c;border:1px solid #dee2e6;border-radius:.25rem}.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:2px){.container{max-width:1137px}}@media (min-width:8px){.container{max-width:1138px}}@media (min-width:9px){.container{max-width:1139px}}@media (min-width:10px){.container{max-width:1140px}}.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,.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-auto,.col-lg,.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-auto,.col-md,.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-auto,.col-sm,.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-auto,.col-xl,.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-auto{position:relative;width:100%;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:100%}.col-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.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.3333333333%}.offset-2{margin-left:16.6666666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.3333333333%}.offset-5{margin-left:41.6666666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.3333333333%}.offset-8{margin-left:66.6666666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.3333333333%}.offset-11{margin-left:91.6666666667%}@media (min-width:2px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-sm-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-sm-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-sm-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-sm-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.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.3333333333%}.offset-sm-2{margin-left:16.6666666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.3333333333%}.offset-sm-5{margin-left:41.6666666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.3333333333%}.offset-sm-8{margin-left:66.6666666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.3333333333%}.offset-sm-11{margin-left:91.6666666667%}}@media (min-width:8px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-md-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-md-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-md-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-md-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.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.3333333333%}.offset-md-2{margin-left:16.6666666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.3333333333%}.offset-md-5{margin-left:41.6666666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.3333333333%}.offset-md-8{margin-left:66.6666666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.3333333333%}.offset-md-11{margin-left:91.6666666667%}}@media (min-width:9px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-lg-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-lg-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-lg-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-lg-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.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.3333333333%}.offset-lg-2{margin-left:16.6666666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.3333333333%}.offset-lg-5{margin-left:41.6666666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.3333333333%}.offset-lg-8{margin-left:66.6666666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.3333333333%}.offset-lg-11{margin-left:91.6666666667%}}@media (min-width:10px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-xl-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-xl-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-xl-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-xl-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.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.3333333333%}.offset-xl-2{margin-left:16.6666666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.3333333333%}.offset-xl-5{margin-left:41.6666666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.3333333333%}.offset-xl-8{margin-left:66.6666666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.3333333333%}.offset-xl-11{margin-left:91.6666666667%}}.table{width:100%;margin-bottom:1rem;color:#e2edf4}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #343434}.table thead th{vertical-align:bottom;border-bottom:2px solid #343434}.table tbody+tbody{border-top:2px solid #343434}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #343434}.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:#e2edf4;background-color:#343434}.table-primary,.table-primary>td,.table-primary>th{background-color:#e8e8ff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#d4d4ff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#cfcfff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#cccbcb}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#a09e9e}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#bfbebe}.table-success,.table-success>td,.table-success>th{background-color:#c0e4cf}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8bcca7}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#aedcc1}.table-info,.table-info>td,.table-info>th{background-color:#bfc9d1}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#899aa9}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#b0bcc6}.table-warning,.table-warning>td,.table-warning>th{background-color:#e9dfc5}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#d6c493}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#e2d5b3}.table-danger,.table-danger>td,.table-danger>th{background-color:#e7c4c3}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#d3928f}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#e0b2b1}.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,.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:#cccbcb}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#a09e9e}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#bfbebe}.table-active,.table-active>td,.table-active>th{background-color:#343434}.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:#272727}.table .thead-dark th{color:#fff;background-color:#494444;border-color:#5d5656}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#343434}.table-dark{color:#fff;background-color:#494444}.table-dark td,.table-dark th,.table-dark thead th{border-color:#5d5656}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:1.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:7.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:8.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:9.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:.95rem;font-weight:400;line-height:1.5;color:#e2edf4;background-color:#242424;background-clip:padding-box;border:1px solid #343434;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:#e2edf4;background-color:#242424;border-color:#fff;outline:0;box-shadow:0 0 0 .2rem rgba(173,173,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:#e2edf4;background-color:#242424}.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.1875rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.83125rem;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:#e2edf4;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:.83125rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.1875rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.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:.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:.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:#1f9d55}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.83125rem;line-height:1.5;color:#fff;background-color:rgba(31,157,85,.9);border-radius:.25rem}.form-control.is-valid,.was-validated .form-control:valid{border-color:#1f9d55;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f9d55' 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:100% calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#1f9d55;box-shadow:0 0 0 .2rem rgba(31,157,85,.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:#1f9d55;padding-right:calc((3em + 2.25rem)/4 + 1.75rem);background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23494444' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f9d55' 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") #242424 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:#1f9d55;box-shadow:0 0 0 .2rem rgba(31,157,85,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select: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:#1f9d55}.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:#1f9d55}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#1f9d55}.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:#27c86c;background-color:#27c86c}.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(31,157,85,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#1f9d55}.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:#1f9d55;box-shadow:0 0 0 .2rem rgba(31,157,85,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#aa2e28}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.83125rem;line-height:1.5;color:#fff;background-color:rgba(170,46,40,.9);border-radius:.25rem}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#aa2e28;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23aa2e28' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23aa2e28' 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:100% calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#aa2e28;box-shadow:0 0 0 .2rem rgba(170,46,40,.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:#aa2e28;padding-right:calc((3em + 2.25rem)/4 + 1.75rem);background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23494444' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23aa2e28' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23aa2e28' 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") #242424 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:#aa2e28;box-shadow:0 0 0 .2rem rgba(170,46,40,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select: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:#aa2e28}.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:#aa2e28}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#aa2e28}.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:#d03d35;background-color:#d03d35}.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(170,46,40,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#aa2e28}.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:#aa2e28;box-shadow:0 0 0 .2rem rgba(170,46,40,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:2px){.form-inline label{justify-content:center}.form-inline .form-group,.form-inline label{display:flex;align-items:center;margin-bottom:0}.form-inline .form-group{flex:0 0 auto;flex-flow:row wrap}.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:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#e2edf4;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:.95rem;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:#e2edf4;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(173,173,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#212529;background-color:#adadff;border-color:#adadff}.btn-primary:hover{color:#fff;background-color:#8787ff;border-color:#7a7aff}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(152,153,223,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#212529;background-color:#adadff;border-color:#adadff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#7a7aff;border-color:#6d6dff}.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(152,153,223,.5)}.btn-secondary{color:#fff;background-color:#494444;border-color:#494444}.btn-secondary:hover{color:#fff;background-color:#353232;border-color:#2f2b2b}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(100,96,96,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#494444;border-color:#494444}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#2f2b2b;border-color:#282525}.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(100,96,96,.5)}.btn-success{color:#fff;background-color:#1f9d55;border-color:#1f9d55}.btn-success:hover{color:#fff;background-color:#197d44;border-color:#17723e}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(65,172,111,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#1f9d55;border-color:#1f9d55}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#17723e;border-color:#146838}.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(65,172,111,.5)}.btn-info{color:#fff;background-color:#1c3d5a;border-color:#1c3d5a}.btn-info:hover{color:#fff;background-color:#13293d;border-color:#102333}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(62,90,115,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#1c3d5a;border-color:#1c3d5a}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#102333;border-color:#0d1c29}.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(62,90,115,.5)}.btn-warning{color:#fff;background-color:#b08d2f;border-color:#b08d2f}.btn-warning:hover{color:#fff;background-color:#927527;border-color:#886d24}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(188,158,78,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#fff;background-color:#b08d2f;border-color:#b08d2f}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#fff;background-color:#886d24;border-color:#7e6522}.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(188,158,78,.5)}.btn-danger{color:#fff;background-color:#aa2e28;border-color:#aa2e28}.btn-danger:hover{color:#fff;background-color:#8b2621;border-color:#81231e}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(183,77,72,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#aa2e28;border-color:#aa2e28}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#81231e;border-color:#76201c}.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(183,77,72,.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:#494444;border-color:#494444}.btn-dark:hover{color:#fff;background-color:#353232;border-color:#2f2b2b}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(100,96,96,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#494444;border-color:#494444}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#2f2b2b;border-color:#282525}.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(100,96,96,.5)}.btn-outline-primary{color:#adadff;border-color:#adadff}.btn-outline-primary:hover{color:#212529;background-color:#adadff;border-color:#adadff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(173,173,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#adadff;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:#212529;background-color:#adadff;border-color:#adadff}.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(173,173,255,.5)}.btn-outline-secondary{color:#494444;border-color:#494444}.btn-outline-secondary:hover{color:#fff;background-color:#494444;border-color:#494444}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(73,68,68,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#494444;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:#494444;border-color:#494444}.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(73,68,68,.5)}.btn-outline-success{color:#1f9d55;border-color:#1f9d55}.btn-outline-success:hover{color:#fff;background-color:#1f9d55;border-color:#1f9d55}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(31,157,85,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#1f9d55;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:#1f9d55;border-color:#1f9d55}.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(31,157,85,.5)}.btn-outline-info{color:#1c3d5a;border-color:#1c3d5a}.btn-outline-info:hover{color:#fff;background-color:#1c3d5a;border-color:#1c3d5a}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(28,61,90,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#1c3d5a;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:#1c3d5a;border-color:#1c3d5a}.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(28,61,90,.5)}.btn-outline-warning{color:#b08d2f;border-color:#b08d2f}.btn-outline-warning:hover{color:#fff;background-color:#b08d2f;border-color:#b08d2f}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(176,141,47,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#b08d2f;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#fff;background-color:#b08d2f;border-color:#b08d2f}.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(176,141,47,.5)}.btn-outline-danger{color:#aa2e28;border-color:#aa2e28}.btn-outline-danger:hover{color:#fff;background-color:#aa2e28;border-color:#aa2e28}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(170,46,40,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#aa2e28;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:#aa2e28;border-color:#aa2e28}.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(170,46,40,.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:#494444;border-color:#494444}.btn-outline-dark:hover{color:#fff;background-color:#494444;border-color:#494444}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(73,68,68,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#494444;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:#494444;border-color:#494444}.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(73,68,68,.5)}.btn-link{font-weight:400;color:#adadff;text-decoration:none}.btn-link:hover{color:#6161ff;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.1875rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.83125rem;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:.95rem;color:#e2edf4;text-align:left;list-style:none;background-color:#181818;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:2px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:8px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:9px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:10px){.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:"";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:#fff;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:#adadff}.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:.83125rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#fff}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;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{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-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-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{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>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;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: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-append,.input-group-prepend{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:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:.95rem;font-weight:400;line-height:1.5;color:#e2edf4;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #343434;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.1875rem;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:.83125rem;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.425rem;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;border-color:#adadff;background-color:#adadff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(173,173,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#fff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#fff;border-color:#fff}.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{pointer-events:none;background-color:#242424;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.2125rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:""}.custom-control-label:after{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;charset=utf-8,%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.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#adadff;background-color:#adadff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%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(173,173,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(173,173,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;charset=utf-8,%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(173,173,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(.2125rem + 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:#242424;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(173,173,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:.95rem;font-weight:400;line-height:1.5;color:#e2edf4;vertical-align:middle;background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23494444' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center/8px 10px;background-color:#242424;border:1px solid #343434;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#fff;outline:0;box-shadow:0 0 0 .2rem rgba(173,173,255,.25)}.custom-select:focus::-ms-value{color:#e2edf4;background-color:#242424}.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:.83125rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.1875rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#fff;box-shadow:0 0 0 .2rem rgba(173,173,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{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#242424;border:1px solid #343434;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#e2edf4}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:none}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #1c1c1c,0 0 0 .2rem rgba(173,173,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #1c1c1c,0 0 0 .2rem rgba(173,173,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #1c1c1c,0 0 0 .2rem rgba(173,173,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#adadff;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:#fff}.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:#adadff;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:#fff}.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:#adadff;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:#fff}.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,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.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:flex;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:#1c1c1c;border-color:#dee2e6 #dee2e6 #1c1c1c}.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:#adadff}.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;padding:.5rem 1rem}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.321875rem;padding-bottom:.321875rem;margin-right:1rem;font-size:1.1875rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{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:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.1875rem;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 50%;background-size:100% 100%}@media (max-width:1.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:2px){.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:.5rem;padding-left:.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:7.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:8px){.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:.5rem;padding-left:.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:8.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:9px){.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:.5rem;padding-left:.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:9.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:10px){.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:.5rem;padding-left:.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}}.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:.5rem;padding-left:.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,.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;charset=utf-8,%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,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.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:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%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:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#120f12;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{flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.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:#120f12;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:#120f12;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-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{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:flex;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:2px){.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:2px){.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: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:2px){.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:flex;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;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{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:#adadff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#6161ff;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(173,173,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:#adadff;border-color:#adadff}.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.1875rem;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:.83125rem;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:.95rem;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:#212529;background-color:#adadff}a.badge-primary:focus,a.badge-primary:hover{color:#212529;background-color:#7a7aff}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(173,173,255,.5)}.badge-secondary{color:#fff;background-color:#494444}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#2f2b2b}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(73,68,68,.5)}.badge-success{color:#fff;background-color:#1f9d55}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#17723e}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(31,157,85,.5)}.badge-info{color:#fff;background-color:#1c3d5a}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#102333}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(28,61,90,.5)}.badge-warning{color:#fff;background-color:#b08d2f}a.badge-warning:focus,a.badge-warning:hover{color:#fff;background-color:#886d24}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(176,141,47,.5)}.badge-danger{color:#fff;background-color:#aa2e28}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#81231e}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(170,46,40,.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:#494444}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#2f2b2b}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(73,68,68,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:2px){.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:3.925rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#5a5a85;background-color:#efefff;border-color:#e8e8ff}.alert-primary hr{border-top-color:#cfcfff}.alert-primary .alert-link{color:#454567}.alert-secondary{color:#262323;background-color:#dbdada;border-color:#cccbcb}.alert-secondary hr{border-top-color:#bfbebe}.alert-secondary .alert-link{color:#0b0b0b}.alert-success{color:#10522c;background-color:#d2ebdd;border-color:#c0e4cf}.alert-success hr{border-top-color:#aedcc1}.alert-success .alert-link{color:#082715}.alert-info{color:#0f202f;background-color:#d2d8de;border-color:#bfc9d1}.alert-info hr{border-top-color:#b0bcc6}.alert-info .alert-link{color:#030608}.alert-warning{color:#5c4918;background-color:#efe8d5;border-color:#e9dfc5}.alert-warning hr{border-top-color:#e2d5b3}.alert-warning .alert-link{color:#34290d}.alert-danger{color:#581815;background-color:#eed5d4;border-color:#e7c4c3}.alert-danger hr{border-top-color:#e0b2b1}.alert-danger .alert-link{color:#2f0d0b}.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:#262323;background-color:#dbdada;border-color:#cccbcb}.alert-dark hr{border-top-color:#bfbebe}.alert-dark .alert-link{color:#0b0b0b}@-webkit-keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.7125rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#adadff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,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: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:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#e2edf4;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:#adadff;border-color:#adadff}.list-group-horizontal{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:2px){.list-group-horizontal-sm{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:8px){.list-group-horizontal-md{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:9px){.list-group-horizontal-lg{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:10px){.list-group-horizontal-xl{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:#5a5a85;background-color:#e8e8ff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#5a5a85;background-color:#cfcfff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#5a5a85;border-color:#5a5a85}.list-group-item-secondary{color:#262323;background-color:#cccbcb}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#262323;background-color:#bfbebe}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#262323;border-color:#262323}.list-group-item-success{color:#10522c;background-color:#c0e4cf}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#10522c;background-color:#aedcc1}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#10522c;border-color:#10522c}.list-group-item-info{color:#0f202f;background-color:#bfc9d1}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0f202f;background-color:#b0bcc6}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0f202f;border-color:#0f202f}.list-group-item-warning{color:#5c4918;background-color:#e9dfc5}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#5c4918;background-color:#e2d5b3}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#5c4918;border-color:#5c4918}.list-group-item-danger{color:#581815;background-color:#e7c4c3}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#581815;background-color:#e0b2b1}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#581815;border-color:#581815}.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:#262323;background-color:#cccbcb}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#262323;background-color:#bfbebe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#262323;border-color:#262323}.close{float:right;font-size:1.425rem;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:hsla(0,0%,100%,.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:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.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:translateY(-50px);transform:translateY(-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: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{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;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{flex-direction:column;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:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#181818;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:#7e7e7e}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #343434;border-top-left-radius:.3rem;border-top-right-radius:.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 #343434;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:2px){.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:9px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:10px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:Nunito;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:.83125rem;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{top:0;left:0;z-index:1060;max-width:276px;font-family:Nunito;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:.83125rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{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)}.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);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)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .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;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);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:.95rem;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:#e2edf4}.carousel{position:relative}.carousel.pointer-event{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:opacity 0s .6s}@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:flex;align-items: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;charset=utf-8,%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.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:0;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{box-sizing:content-box;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(1turn);transform:rotate(1turn)}}@keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid 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:#adadff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#7a7aff!important}.bg-secondary{background-color:#494444!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#2f2b2b!important}.bg-success{background-color:#1f9d55!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#17723e!important}.bg-info{background-color:#1c3d5a!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#102333!important}.bg-warning{background-color:#b08d2f!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#886d24!important}.bg-danger{background-color:#aa2e28!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#81231e!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:#494444!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#2f2b2b!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #303030!important}.border-top{border-top:1px solid #303030!important}.border-right{border-right:1px solid #303030!important}.border-bottom{border-bottom:1px solid #303030!important}.border-left{border-left:1px solid #303030!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:#adadff!important}.border-secondary{border-color:#494444!important}.border-success{border-color:#1f9d55!important}.border-info{border-color:#1c3d5a!important}.border-warning{border-color:#b08d2f!important}.border-danger{border-color:#aa2e28!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#494444!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}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-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:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:2px){.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:8px){.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:9px){.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:10px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;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.8571428571%}.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:2px){.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:8px){.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:9px){.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:10px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:2px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:8px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:9px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:10px){.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{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@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:transparent}.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:2px){.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:8px){.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:9px){.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:10px){.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:2px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:8px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:9px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:10px){.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:#adadff!important}a.text-primary:focus,a.text-primary:hover{color:#6161ff!important}.text-secondary{color:#494444!important}a.text-secondary:focus,a.text-secondary:hover{color:#211f1f!important}.text-success{color:#1f9d55!important}a.text-success:focus,a.text-success:hover{color:#125d32!important}.text-info{color:#1c3d5a!important}a.text-info:focus,a.text-info:hover{color:#0a1520!important}.text-warning{color:#b08d2f!important}a.text-warning:focus,a.text-warning:hover{color:#745d1f!important}.text-danger{color:#aa2e28!important}a.text-danger:focus,a.text-danger:hover{color:#6c1d19!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#494444!important}a.text-dark:focus,a.text-dark:hover{color:#211f1f!important}.text-body{color:#e2edf4!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.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}.container,body{min-width:9px!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:#343434}.table .thead-dark th{color:inherit;border-color:#343434}}body{padding-bottom:20px}.container{width:1140px}html{min-width:1140px}[v-cloak]{display:none}svg.icon{width:1rem;height:1rem}.header{border-bottom:1px solid #343434}.header svg.logo{width:2rem;height:2rem}.sidebar .nav-item a{color:#6e6b6b;padding:.5rem 0}.sidebar .nav-item a svg{width:1rem;height:1rem;margin-right:15px;fill:#9f9898}.sidebar .nav-item a.active{color:#adadff}.sidebar .nav-item a.active svg{fill:#adadff}.card{box-shadow:0 2px 3px #1c1c1c;border:none}.card .bottom-radius{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.card .card-header{padding-top:.7rem;padding-bottom:.7rem;background-color:#120f12;border-bottom:none}.card .card-header .btn-group .btn{padding:.2rem .5rem}.card .card-header h5{margin:0}.card .table td,.card .table th{padding:.75rem 1.25rem}.card .table.table-sm td,.card .table.table-sm th{padding:1rem 1.25rem}.card .table th{background-color:#181818;font-weight:400;padding:.5rem 1.25rem;border-bottom:0}.card .table:not(.table-borderless) td{border-top:1px solid #343434}.card .table.penultimate-column-right td:nth-last-child(2),.card .table.penultimate-column-right th:nth-last-child(2){text-align:right}.card .table td.table-fit,.card .table th.table-fit{width:1%;white-space:nowrap}.fill-text-color{fill:#e2edf4}.fill-danger{fill:#aa2e28}.fill-warning{fill:#b08d2f}.fill-info{fill:#1c3d5a}.fill-success{fill:#1f9d55}.fill-primary{fill:#adadff}button:hover .fill-primary{fill:#fff}.btn-outline-primary.active .fill-primary{fill:#1c1c1c}.btn-outline-primary:not(:disabled):not(.disabled).active:focus{box-shadow:none!important}.control-action svg{fill:#ccd2df;width:1.2rem;height:1.2rem}.control-action svg:hover{fill:#adadff}.paginator .btn{text-decoration:none;color:#9ea7ac}.paginator .btn:hover{color:#adadff}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spin{-webkit-animation:spin 2s linear infinite;animation:spin 2s linear infinite}.card .nav-pills .nav-link.active{background:none;color:#adadff;border-bottom:2px solid #adadff}.card .nav-pills .nav-link{font-size:.9rem;border-radius:0;padding:.75rem 1.25rem;color:#e2edf4}.list-enter-active:not(.dontanimate){transition:background 1s linear}.list-enter:not(.dontanimate),.list-leave-to:not(.dontanimate){background:#505e4a}.card table td{vertical-align:middle!important}.card-bg-secondary,.code-bg{background:#262525}.disabled-watcher{padding:.75rem;color:#fff;background:#aa2e28}.badge-sm{font-size:.75rem} \ No newline at end of file diff --git a/vendor/laravel/horizon/public/app.css b/vendor/laravel/horizon/public/app.css index 9a57313e6..098cc3566 100644 --- a/vendor/laravel/horizon/public/app.css +++ b/vendor/laravel/horizon/public/app.css @@ -5,4 +5,4 @@ * 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:#7746ec;--secondary:#dae1e7;--success:#51d88a;--info:#bcdefa;--warning:#ffa260;--danger:#ef5753;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:2px;--breakpoint-md:8px;--breakpoint-lg:9px;--breakpoint-xl:10px;--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:rgba(0,0,0,0)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:Nunito;font-size:.95rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#ebebeb}[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{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}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:#7746ec;text-decoration:none;background-color:transparent}a:hover{color:#4d15d0;text-decoration:underline}a:not([href]):not([tabindex]),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{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}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.375rem}.h2,h2{font-size:1.9rem}.h3,h3{font-size:1.6625rem}.h4,h4{font-size:1.425rem}.h5,h5{font-size:1.1875rem}.h6,h6{font-size:.95rem}.lead{font-size:1.1875rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}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-inline,.list-unstyled{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.1875rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:"\2014\A0"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#ebebeb;border:1px solid #dee2e6;border-radius:.25rem}.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:2px){.container{max-width:1137px}}@media (min-width:8px){.container{max-width:1138px}}@media (min-width:9px){.container{max-width:1139px}}@media (min-width:10px){.container{max-width:1140px}}.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,.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-auto,.col-lg,.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-auto,.col-md,.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-auto,.col-sm,.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-auto,.col-xl,.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-auto{position:relative;width:100%;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:100%}.col-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.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.3333333333%}.offset-2{margin-left:16.6666666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.3333333333%}.offset-5{margin-left:41.6666666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.3333333333%}.offset-8{margin-left:66.6666666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.3333333333%}.offset-11{margin-left:91.6666666667%}@media (min-width:2px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-sm-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-sm-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-sm-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-sm-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.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.3333333333%}.offset-sm-2{margin-left:16.6666666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.3333333333%}.offset-sm-5{margin-left:41.6666666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.3333333333%}.offset-sm-8{margin-left:66.6666666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.3333333333%}.offset-sm-11{margin-left:91.6666666667%}}@media (min-width:8px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-md-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-md-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-md-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-md-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.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.3333333333%}.offset-md-2{margin-left:16.6666666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.3333333333%}.offset-md-5{margin-left:41.6666666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.3333333333%}.offset-md-8{margin-left:66.6666666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.3333333333%}.offset-md-11{margin-left:91.6666666667%}}@media (min-width:9px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-lg-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-lg-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-lg-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-lg-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.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.3333333333%}.offset-lg-2{margin-left:16.6666666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.3333333333%}.offset-lg-5{margin-left:41.6666666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.3333333333%}.offset-lg-8{margin-left:66.6666666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.3333333333%}.offset-lg-11{margin-left:91.6666666667%}}@media (min-width:10px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-xl-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-xl-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-xl-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-xl-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.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.3333333333%}.offset-xl-2{margin-left:16.6666666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.3333333333%}.offset-xl-5{margin-left:41.6666666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.3333333333%}.offset-xl-8{margin-left:66.6666666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.3333333333%}.offset-xl-11{margin-left:91.6666666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #efefef}.table thead th{vertical-align:bottom;border-bottom:2px solid #efefef}.table tbody+tbody{border-top:2px solid #efefef}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #efefef}.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:#f1f7fa}.table-primary,.table-primary>td,.table-primary>th{background-color:#d9cbfa}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#b89ff5}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#c8b4f8}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#f5f7f8}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#eceff3}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#e6ebee}.table-success,.table-success>td,.table-success>th{background-color:#cef4de}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#a5ebc2}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b9efd0}.table-info,.table-info>td,.table-info>th{background-color:#ecf6fe}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#dceefc}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#d4ebfd}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffe5d2}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffcfac}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffd6b9}.table-danger,.table-danger>td,.table-danger>th{background-color:#fbd0cf}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#f7a8a6}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f9b9b7}.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,.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,.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:#f1f7fa}.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:#deecf3}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#efefef}.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:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:1.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:7.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:8.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:9.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:.95rem;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:#ccbaf8;outline:0;box-shadow:0 0 0 .2rem rgba(119,70,236,.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.1875rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.83125rem;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:.83125rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.1875rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.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:.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:.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:#51d88a}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.83125rem;line-height:1.5;color:#212529;background-color:rgba(81,216,138,.9);border-radius:.25rem}.form-control.is-valid,.was-validated .form-control:valid{border-color:#51d88a;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2351d88a' 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:100% calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#51d88a;box-shadow:0 0 0 .2rem rgba(81,216,138,.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:#51d88a;padding-right:calc((3em + 2.25rem)/4 + 1.75rem);background:url("data:image/svg+xml;charset=utf-8,%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;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2351d88a' 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:#51d88a;box-shadow:0 0 0 .2rem rgba(81,216,138,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select: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:#51d88a}.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:#51d88a}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#51d88a}.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:#7be1a6;background-color:#7be1a6}.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(81,216,138,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#51d88a}.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:#51d88a;box-shadow:0 0 0 .2rem rgba(81,216,138,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#ef5753}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.83125rem;line-height:1.5;color:#fff;background-color:rgba(239,87,83,.9);border-radius:.25rem}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#ef5753;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ef5753' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23ef5753' 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:100% calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#ef5753;box-shadow:0 0 0 .2rem rgba(239,87,83,.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:#ef5753;padding-right:calc((3em + 2.25rem)/4 + 1.75rem);background:url("data:image/svg+xml;charset=utf-8,%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;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ef5753' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23ef5753' 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:#ef5753;box-shadow:0 0 0 .2rem rgba(239,87,83,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select: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:#ef5753}.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:#ef5753}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#ef5753}.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:#f38582;background-color:#f38582}.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(239,87,83,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#ef5753}.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:#ef5753;box-shadow:0 0 0 .2rem rgba(239,87,83,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:2px){.form-inline label{justify-content:center}.form-inline .form-group,.form-inline label{display:flex;align-items:center;margin-bottom:0}.form-inline .form-group{flex:0 0 auto;flex-flow:row wrap}.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:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{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:.95rem;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(119,70,236,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#7746ec;border-color:#7746ec}.btn-primary:hover{color:#fff;background-color:#5e23e8;border-color:#5518e7}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 0 rgba(139,98,239,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#7746ec;border-color:#7746ec}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#5518e7;border-color:#5117dc}.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 0 rgba(139,98,239,.5)}.btn-secondary{color:#212529;background-color:#dae1e7;border-color:#dae1e7}.btn-secondary:hover{color:#212529;background-color:#c3ced8;border-color:#bbc8d3}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 0 rgba(190,197,203,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#212529;background-color:#dae1e7;border-color:#dae1e7}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#212529;background-color:#bbc8d3;border-color:#b3c2ce}.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 0 rgba(190,197,203,.5)}.btn-success{color:#212529;background-color:#51d88a;border-color:#51d88a}.btn-success:hover{color:#212529;background-color:#32d175;border-color:#2dc96f}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 0 rgba(74,189,123,.5)}.btn-success.disabled,.btn-success:disabled{color:#212529;background-color:#51d88a;border-color:#51d88a}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#2dc96f;border-color:#2bbf69}.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 0 rgba(74,189,123,.5)}.btn-info{color:#212529;background-color:#bcdefa;border-color:#bcdefa}.btn-info:hover{color:#212529;background-color:#98ccf7;border-color:#8dc7f6}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 0 rgba(165,194,219,.5)}.btn-info.disabled,.btn-info:disabled{color:#212529;background-color:#bcdefa;border-color:#bcdefa}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#212529;background-color:#8dc7f6;border-color:#81c1f6}.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 0 rgba(165,194,219,.5)}.btn-warning{color:#212529;background-color:#ffa260;border-color:#ffa260}.btn-warning:hover{color:#212529;background-color:#ff8c3a;border-color:#ff842d}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 0 rgba(222,143,88,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffa260;border-color:#ffa260}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#ff842d;border-color:#ff7d20}.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 0 rgba(222,143,88,.5)}.btn-danger{color:#fff;background-color:#ef5753;border-color:#ef5753}.btn-danger:hover{color:#fff;background-color:#ec3530;border-color:#eb2924}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 0 rgba(241,112,109,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#ef5753;border-color:#ef5753}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#eb2924;border-color:#ea1e19}.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 0 rgba(241,112,109,.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 0 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 0 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 0 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 0 rgba(82,88,93,.5)}.btn-outline-primary{color:#7746ec;border-color:#7746ec}.btn-outline-primary:hover{color:#fff;background-color:#7746ec;border-color:#7746ec}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 0 rgba(119,70,236,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#7746ec;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:#7746ec;border-color:#7746ec}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(119,70,236,.5)}.btn-outline-secondary{color:#dae1e7;border-color:#dae1e7}.btn-outline-secondary:hover{color:#212529;background-color:#dae1e7;border-color:#dae1e7}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 0 rgba(218,225,231,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#dae1e7;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#212529;background-color:#dae1e7;border-color:#dae1e7}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(218,225,231,.5)}.btn-outline-success{color:#51d88a;border-color:#51d88a}.btn-outline-success:hover{color:#212529;background-color:#51d88a;border-color:#51d88a}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 0 rgba(81,216,138,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#51d88a;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:#212529;background-color:#51d88a;border-color:#51d88a}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(81,216,138,.5)}.btn-outline-info{color:#bcdefa;border-color:#bcdefa}.btn-outline-info:hover{color:#212529;background-color:#bcdefa;border-color:#bcdefa}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 0 rgba(188,222,250,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#bcdefa;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:#212529;background-color:#bcdefa;border-color:#bcdefa}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(188,222,250,.5)}.btn-outline-warning{color:#ffa260;border-color:#ffa260}.btn-outline-warning:hover{color:#212529;background-color:#ffa260;border-color:#ffa260}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 0 rgba(255,162,96,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffa260;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:#ffa260;border-color:#ffa260}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(255,162,96,.5)}.btn-outline-danger{color:#ef5753;border-color:#ef5753}.btn-outline-danger:hover{color:#fff;background-color:#ef5753;border-color:#ef5753}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 0 rgba(239,87,83,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#ef5753;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:#ef5753;border-color:#ef5753}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(239,87,83,.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 0 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 0 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 0 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 0 rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#7746ec;text-decoration:none}.btn-link:hover{color:#4d15d0;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.1875rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.83125rem;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:.95rem;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:2px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:8px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:9px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:10px){.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:"";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:#7746ec}.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:.83125rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;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{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-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-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{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>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;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: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-append,.input-group-prepend{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:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:.95rem;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.1875rem;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:.83125rem;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.425rem;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;border-color:#7746ec;background-color:#7746ec}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(119,70,236,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#ccbaf8}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#eee8fd;border-color:#eee8fd}.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{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.2125rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:""}.custom-control-label:after{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;charset=utf-8,%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.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#7746ec;background-color:#7746ec}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%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(119,70,236,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(119,70,236,.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;charset=utf-8,%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(119,70,236,.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(.2125rem + 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(119,70,236,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:.95rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:url("data:image/svg+xml;charset=utf-8,%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:#ccbaf8;outline:0;box-shadow:0 0 0 .2rem rgba(119,70,236,.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:.83125rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.1875rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#ccbaf8;box-shadow:0 0 0 .2rem rgba(119,70,236,.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{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:none}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #ebebeb,0 0 0 .2rem rgba(119,70,236,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #ebebeb,0 0 0 .2rem rgba(119,70,236,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #ebebeb,0 0 0 .2rem rgba(119,70,236,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#7746ec;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:#eee8fd}.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:#7746ec;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:#eee8fd}.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:#7746ec;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:#eee8fd}.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,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.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:flex;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:#ebebeb;border-color:#dee2e6 #dee2e6 #ebebeb}.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:#7746ec}.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;padding:.5rem 1rem}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.321875rem;padding-bottom:.321875rem;margin-right:1rem;font-size:1.1875rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{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:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.1875rem;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 50%;background-size:100% 100%}@media (max-width:1.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:2px){.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:.5rem;padding-left:.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:7.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:8px){.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:.5rem;padding-left:.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:8.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:9px){.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:.5rem;padding-left:.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:9.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:10px){.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:.5rem;padding-left:.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}}.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:.5rem;padding-left:.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,.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;charset=utf-8,%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,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.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:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%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:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{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,.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{flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.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:#fff;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:#fff;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-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{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:flex;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:2px){.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:2px){.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: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:2px){.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:flex;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;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{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:#7746ec;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#4d15d0;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(119,70,236,.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:#7746ec;border-color:#7746ec}.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.1875rem;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:.83125rem;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:.95rem;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:#7746ec}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#5518e7}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(119,70,236,.5)}.badge-secondary{color:#212529;background-color:#dae1e7}a.badge-secondary:focus,a.badge-secondary:hover{color:#212529;background-color:#bbc8d3}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(218,225,231,.5)}.badge-success{color:#212529;background-color:#51d88a}a.badge-success:focus,a.badge-success:hover{color:#212529;background-color:#2dc96f}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(81,216,138,.5)}.badge-info{color:#212529;background-color:#bcdefa}a.badge-info:focus,a.badge-info:hover{color:#212529;background-color:#8dc7f6}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(188,222,250,.5)}.badge-warning{color:#212529;background-color:#ffa260}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#ff842d}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,162,96,.5)}.badge-danger{color:#fff;background-color:#ef5753}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#eb2924}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(239,87,83,.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:2px){.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:3.925rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#3e247b;background-color:#e4dafb;border-color:#d9cbfa}.alert-primary hr{border-top-color:#c8b4f8}.alert-primary .alert-link{color:#2a1854}.alert-secondary{color:#717578;background-color:#f8f9fa;border-color:#f5f7f8}.alert-secondary hr{border-top-color:#e6ebee}.alert-secondary .alert-link{color:#585b5e}.alert-success{color:#2a7048;background-color:#dcf7e8;border-color:#cef4de}.alert-success hr{border-top-color:#b9efd0}.alert-success .alert-link{color:#1c4b30}.alert-info{color:#627382;background-color:#f2f8fe;border-color:#ecf6fe}.alert-info hr{border-top-color:#d4ebfd}.alert-info .alert-link{color:#4c5965}.alert-warning{color:#855432;background-color:#ffecdf;border-color:#ffe5d2}.alert-warning hr{border-top-color:#ffd6b9}.alert-warning .alert-link{color:#603d24}.alert-danger{color:#7c2d2b;background-color:#fcdddd;border-color:#fbd0cf}.alert-danger hr{border-top-color:#f9b9b7}.alert-danger .alert-link{color:#561f1e}.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{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.7125rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#7746ec;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,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: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: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:#7746ec;border-color:#7746ec}.list-group-horizontal{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:2px){.list-group-horizontal-sm{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:8px){.list-group-horizontal-md{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:9px){.list-group-horizontal-lg{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:10px){.list-group-horizontal-xl{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:#3e247b;background-color:#d9cbfa}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#3e247b;background-color:#c8b4f8}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#3e247b;border-color:#3e247b}.list-group-item-secondary{color:#717578;background-color:#f5f7f8}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#717578;background-color:#e6ebee}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#717578;border-color:#717578}.list-group-item-success{color:#2a7048;background-color:#cef4de}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#2a7048;background-color:#b9efd0}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#2a7048;border-color:#2a7048}.list-group-item-info{color:#627382;background-color:#ecf6fe}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#627382;background-color:#d4ebfd}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#627382;border-color:#627382}.list-group-item-warning{color:#855432;background-color:#ffe5d2}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#855432;background-color:#ffd6b9}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#855432;border-color:#855432}.list-group-item-danger{color:#7c2d2b;background-color:#fbd0cf}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#7c2d2b;background-color:#f9b9b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#7c2d2b;border-color:#7c2d2b}.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.425rem;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:hsla(0,0%,100%,.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:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.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:translateY(-50px);transform:translateY(-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: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{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;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{flex-direction:column;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:flex;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:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #efefef;border-top-left-radius:.3rem;border-top-right-radius:.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 #efefef;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:2px){.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:9px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:10px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:Nunito;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:.83125rem;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{top:0;left:0;z-index:1060;max-width:276px;font-family:Nunito;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:.83125rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{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)}.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);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)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .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;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);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:.95rem;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{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:opacity 0s .6s}@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:flex;align-items: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;charset=utf-8,%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.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:0;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{box-sizing:content-box;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(1turn);transform:rotate(1turn)}}@keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid 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:#7746ec!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#5518e7!important}.bg-secondary{background-color:#dae1e7!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#bbc8d3!important}.bg-success{background-color:#51d88a!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#2dc96f!important}.bg-info{background-color:#bcdefa!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#8dc7f6!important}.bg-warning{background-color:#ffa260!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#ff842d!important}.bg-danger{background-color:#ef5753!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#eb2924!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 #efefef!important}.border-top{border-top:1px solid #efefef!important}.border-right{border-right:1px solid #efefef!important}.border-bottom{border-bottom:1px solid #efefef!important}.border-left{border-left:1px solid #efefef!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:#7746ec!important}.border-secondary{border-color:#dae1e7!important}.border-success{border-color:#51d88a!important}.border-info{border-color:#bcdefa!important}.border-warning{border-color:#ffa260!important}.border-danger{border-color:#ef5753!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}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-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:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:2px){.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:8px){.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:9px){.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:10px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;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.8571428571%}.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:2px){.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:8px){.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:9px){.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:10px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:2px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:8px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:9px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:10px){.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{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@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:transparent}.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:2px){.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:8px){.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:9px){.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:10px){.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:2px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:8px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:9px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:10px){.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:#7746ec!important}a.text-primary:focus,a.text-primary:hover{color:#4d15d0!important}.text-secondary{color:#dae1e7!important}a.text-secondary:focus,a.text-secondary:hover{color:#acbbc9!important}.text-success{color:#51d88a!important}a.text-success:focus,a.text-success:hover{color:#28b463!important}.text-info{color:#bcdefa!important}a.text-info:focus,a.text-info:hover{color:#75bbf5!important}.text-warning{color:#ffa260!important}a.text-warning:focus,a.text-warning:hover{color:#ff7514!important}.text-danger{color:#ef5753!important}a.text-danger:focus,a.text-danger:hover{color:#e11a15!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:hsla(0,0%,100%,.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}.container,body{min-width:9px!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:#efefef}.table .thead-dark th{color:inherit;border-color:#efefef}}body{padding-bottom:20px}.container{width:1140px}html{min-width:1140px}[v-cloak]{display:none}svg.icon{width:1rem;height:1rem}.header{border-bottom:1px solid #d5dfe9}.header svg.logo{width:2rem;height:2rem}.sidebar .nav-item a{color:#2a5164;padding:.5rem 0}.sidebar .nav-item a svg{width:1rem;height:1rem;margin-right:15px;fill:#c3cbd3}.sidebar .nav-item a.active{color:#7746ec}.sidebar .nav-item a.active svg{fill:#7746ec}.card{box-shadow:0 2px 3px #cdd8df;border:none}.card .bottom-radius{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.card .card-header{padding-top:.7rem;padding-bottom:.7rem;background-color:#fff;border-bottom:none}.card .card-header .btn-group .btn{padding:.2rem .5rem}.card .card-header h5{margin:0}.card .table td,.card .table th{padding:.75rem 1.25rem}.card .table.table-sm td,.card .table.table-sm th{padding:1rem 1.25rem}.card .table th{background-color:#f3f4f6;font-weight:400;padding:.5rem 1.25rem;border-bottom:0}.card .table:not(.table-borderless) td{border-top:1px solid #efefef}.card .table.penultimate-column-right td:nth-last-child(2),.card .table.penultimate-column-right th:nth-last-child(2){text-align:right}.card .table td.table-fit,.card .table th.table-fit{width:1%;white-space:nowrap}.fill-text-color{fill:#212529}.fill-danger{fill:#ef5753}.fill-warning{fill:#ffa260}.fill-info{fill:#bcdefa}.fill-success{fill:#51d88a}.fill-primary{fill:#7746ec}button:hover .fill-primary{fill:#fff}.btn-outline-primary.active .fill-primary{fill:#ebebeb}.btn-outline-primary:not(:disabled):not(.disabled).active:focus{box-shadow:none!important}.control-action svg{fill:#ccd2df;width:1.2rem;height:1.2rem}.control-action svg:hover{fill:#7746ec}.paginator .btn{text-decoration:none;color:#9ea7ac}.paginator .btn:hover{color:#7746ec}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spin{-webkit-animation:spin 2s linear infinite;animation:spin 2s linear infinite}.card .nav-pills .nav-link.active{background:none;color:#7746ec;border-bottom:2px solid #7746ec}.card .nav-pills .nav-link{font-size:.9rem;border-radius:0;padding:.75rem 1.25rem;color:#212529}.list-enter-active:not(.dontanimate){transition:background 1s linear}.list-enter:not(.dontanimate),.list-leave-to:not(.dontanimate){background:#fffee9}.card table td{vertical-align:middle!important}.card-bg-secondary{background:#fafafa}.code-bg{background:#120f12}.disabled-watcher{padding:.75rem;color:#fff;background:#ef5753} \ No newline at end of file + */: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:#7746ec;--secondary:#dae1e7;--success:#51d88a;--info:#bcdefa;--warning:#ffa260;--danger:#ef5753;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:2px;--breakpoint-md:8px;--breakpoint-lg:9px;--breakpoint-xl:10px;--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:rgba(0,0,0,0)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:Nunito;font-size:.95rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#ebebeb}[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{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}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:#7746ec;text-decoration:none;background-color:transparent}a:hover{color:#4d15d0;text-decoration:underline}a:not([href]):not([tabindex]),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{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}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.375rem}.h2,h2{font-size:1.9rem}.h3,h3{font-size:1.6625rem}.h4,h4{font-size:1.425rem}.h5,h5{font-size:1.1875rem}.h6,h6{font-size:.95rem}.lead{font-size:1.1875rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}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-inline,.list-unstyled{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.1875rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:"\2014\A0"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#ebebeb;border:1px solid #dee2e6;border-radius:.25rem}.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:2px){.container{max-width:1137px}}@media (min-width:8px){.container{max-width:1138px}}@media (min-width:9px){.container{max-width:1139px}}@media (min-width:10px){.container{max-width:1140px}}.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,.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-auto,.col-lg,.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-auto,.col-md,.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-auto,.col-sm,.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-auto,.col-xl,.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-auto{position:relative;width:100%;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:100%}.col-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.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.3333333333%}.offset-2{margin-left:16.6666666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.3333333333%}.offset-5{margin-left:41.6666666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.3333333333%}.offset-8{margin-left:66.6666666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.3333333333%}.offset-11{margin-left:91.6666666667%}@media (min-width:2px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-sm-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-sm-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-sm-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-sm-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.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.3333333333%}.offset-sm-2{margin-left:16.6666666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.3333333333%}.offset-sm-5{margin-left:41.6666666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.3333333333%}.offset-sm-8{margin-left:66.6666666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.3333333333%}.offset-sm-11{margin-left:91.6666666667%}}@media (min-width:8px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-md-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-md-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-md-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-md-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.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.3333333333%}.offset-md-2{margin-left:16.6666666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.3333333333%}.offset-md-5{margin-left:41.6666666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.3333333333%}.offset-md-8{margin-left:66.6666666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.3333333333%}.offset-md-11{margin-left:91.6666666667%}}@media (min-width:9px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-lg-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-lg-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-lg-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-lg-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.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.3333333333%}.offset-lg-2{margin-left:16.6666666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.3333333333%}.offset-lg-5{margin-left:41.6666666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.3333333333%}.offset-lg-8{margin-left:66.6666666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.3333333333%}.offset-lg-11{margin-left:91.6666666667%}}@media (min-width:10px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-xl-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-xl-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-xl-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-xl-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.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.3333333333%}.offset-xl-2{margin-left:16.6666666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.3333333333%}.offset-xl-5{margin-left:41.6666666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.3333333333%}.offset-xl-8{margin-left:66.6666666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.3333333333%}.offset-xl-11{margin-left:91.6666666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #efefef}.table thead th{vertical-align:bottom;border-bottom:2px solid #efefef}.table tbody+tbody{border-top:2px solid #efefef}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #efefef}.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:#f1f7fa}.table-primary,.table-primary>td,.table-primary>th{background-color:#d9cbfa}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#b89ff5}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#c8b4f8}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#f5f7f8}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#eceff3}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#e6ebee}.table-success,.table-success>td,.table-success>th{background-color:#cef4de}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#a5ebc2}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b9efd0}.table-info,.table-info>td,.table-info>th{background-color:#ecf6fe}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#dceefc}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#d4ebfd}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffe5d2}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffcfac}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffd6b9}.table-danger,.table-danger>td,.table-danger>th{background-color:#fbd0cf}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#f7a8a6}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f9b9b7}.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,.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,.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:#f1f7fa}.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:#deecf3}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#efefef}.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:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:1.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:7.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:8.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:9.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:.95rem;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:#ccbaf8;outline:0;box-shadow:0 0 0 .2rem rgba(119,70,236,.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.1875rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.83125rem;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:.83125rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.1875rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.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:.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:.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:#51d88a}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.83125rem;line-height:1.5;color:#212529;background-color:rgba(81,216,138,.9);border-radius:.25rem}.form-control.is-valid,.was-validated .form-control:valid{border-color:#51d88a;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2351d88a' 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:100% calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#51d88a;box-shadow:0 0 0 .2rem rgba(81,216,138,.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:#51d88a;padding-right:calc((3em + 2.25rem)/4 + 1.75rem);background:url("data:image/svg+xml;charset=utf-8,%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;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2351d88a' 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:#51d88a;box-shadow:0 0 0 .2rem rgba(81,216,138,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select: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:#51d88a}.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:#51d88a}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#51d88a}.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:#7be1a6;background-color:#7be1a6}.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(81,216,138,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#51d88a}.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:#51d88a;box-shadow:0 0 0 .2rem rgba(81,216,138,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#ef5753}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.83125rem;line-height:1.5;color:#fff;background-color:rgba(239,87,83,.9);border-radius:.25rem}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#ef5753;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ef5753' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23ef5753' 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:100% calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#ef5753;box-shadow:0 0 0 .2rem rgba(239,87,83,.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:#ef5753;padding-right:calc((3em + 2.25rem)/4 + 1.75rem);background:url("data:image/svg+xml;charset=utf-8,%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;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ef5753' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23ef5753' 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:#ef5753;box-shadow:0 0 0 .2rem rgba(239,87,83,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select: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:#ef5753}.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:#ef5753}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#ef5753}.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:#f38582;background-color:#f38582}.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(239,87,83,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#ef5753}.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:#ef5753;box-shadow:0 0 0 .2rem rgba(239,87,83,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:2px){.form-inline label{justify-content:center}.form-inline .form-group,.form-inline label{display:flex;align-items:center;margin-bottom:0}.form-inline .form-group{flex:0 0 auto;flex-flow:row wrap}.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:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{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:.95rem;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(119,70,236,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#7746ec;border-color:#7746ec}.btn-primary:hover{color:#fff;background-color:#5e23e8;border-color:#5518e7}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 0 rgba(139,98,239,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#7746ec;border-color:#7746ec}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#5518e7;border-color:#5117dc}.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 0 rgba(139,98,239,.5)}.btn-secondary{color:#212529;background-color:#dae1e7;border-color:#dae1e7}.btn-secondary:hover{color:#212529;background-color:#c3ced8;border-color:#bbc8d3}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 0 rgba(190,197,203,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#212529;background-color:#dae1e7;border-color:#dae1e7}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#212529;background-color:#bbc8d3;border-color:#b3c2ce}.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 0 rgba(190,197,203,.5)}.btn-success{color:#212529;background-color:#51d88a;border-color:#51d88a}.btn-success:hover{color:#212529;background-color:#32d175;border-color:#2dc96f}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 0 rgba(74,189,123,.5)}.btn-success.disabled,.btn-success:disabled{color:#212529;background-color:#51d88a;border-color:#51d88a}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#2dc96f;border-color:#2bbf69}.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 0 rgba(74,189,123,.5)}.btn-info{color:#212529;background-color:#bcdefa;border-color:#bcdefa}.btn-info:hover{color:#212529;background-color:#98ccf7;border-color:#8dc7f6}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 0 rgba(165,194,219,.5)}.btn-info.disabled,.btn-info:disabled{color:#212529;background-color:#bcdefa;border-color:#bcdefa}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#212529;background-color:#8dc7f6;border-color:#81c1f6}.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 0 rgba(165,194,219,.5)}.btn-warning{color:#212529;background-color:#ffa260;border-color:#ffa260}.btn-warning:hover{color:#212529;background-color:#ff8c3a;border-color:#ff842d}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 0 rgba(222,143,88,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffa260;border-color:#ffa260}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#ff842d;border-color:#ff7d20}.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 0 rgba(222,143,88,.5)}.btn-danger{color:#fff;background-color:#ef5753;border-color:#ef5753}.btn-danger:hover{color:#fff;background-color:#ec3530;border-color:#eb2924}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 0 rgba(241,112,109,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#ef5753;border-color:#ef5753}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#eb2924;border-color:#ea1e19}.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 0 rgba(241,112,109,.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 0 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 0 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 0 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 0 rgba(82,88,93,.5)}.btn-outline-primary{color:#7746ec;border-color:#7746ec}.btn-outline-primary:hover{color:#fff;background-color:#7746ec;border-color:#7746ec}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 0 rgba(119,70,236,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#7746ec;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:#7746ec;border-color:#7746ec}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(119,70,236,.5)}.btn-outline-secondary{color:#dae1e7;border-color:#dae1e7}.btn-outline-secondary:hover{color:#212529;background-color:#dae1e7;border-color:#dae1e7}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 0 rgba(218,225,231,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#dae1e7;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#212529;background-color:#dae1e7;border-color:#dae1e7}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(218,225,231,.5)}.btn-outline-success{color:#51d88a;border-color:#51d88a}.btn-outline-success:hover{color:#212529;background-color:#51d88a;border-color:#51d88a}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 0 rgba(81,216,138,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#51d88a;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:#212529;background-color:#51d88a;border-color:#51d88a}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(81,216,138,.5)}.btn-outline-info{color:#bcdefa;border-color:#bcdefa}.btn-outline-info:hover{color:#212529;background-color:#bcdefa;border-color:#bcdefa}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 0 rgba(188,222,250,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#bcdefa;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:#212529;background-color:#bcdefa;border-color:#bcdefa}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(188,222,250,.5)}.btn-outline-warning{color:#ffa260;border-color:#ffa260}.btn-outline-warning:hover{color:#212529;background-color:#ffa260;border-color:#ffa260}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 0 rgba(255,162,96,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffa260;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:#ffa260;border-color:#ffa260}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(255,162,96,.5)}.btn-outline-danger{color:#ef5753;border-color:#ef5753}.btn-outline-danger:hover{color:#fff;background-color:#ef5753;border-color:#ef5753}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 0 rgba(239,87,83,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#ef5753;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:#ef5753;border-color:#ef5753}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(239,87,83,.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 0 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 0 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 0 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 0 rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#7746ec;text-decoration:none}.btn-link:hover{color:#4d15d0;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.1875rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.83125rem;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:.95rem;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:2px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:8px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:9px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:10px){.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:"";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:#7746ec}.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:.83125rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;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{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-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-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{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>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;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: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-append,.input-group-prepend{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:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:.95rem;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.1875rem;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:.83125rem;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.425rem;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;border-color:#7746ec;background-color:#7746ec}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(119,70,236,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#ccbaf8}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#eee8fd;border-color:#eee8fd}.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{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.2125rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:""}.custom-control-label:after{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;charset=utf-8,%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.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#7746ec;background-color:#7746ec}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%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(119,70,236,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(119,70,236,.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;charset=utf-8,%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(119,70,236,.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(.2125rem + 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(119,70,236,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:.95rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:url("data:image/svg+xml;charset=utf-8,%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:#ccbaf8;outline:0;box-shadow:0 0 0 .2rem rgba(119,70,236,.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:.83125rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.1875rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#ccbaf8;box-shadow:0 0 0 .2rem rgba(119,70,236,.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{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:none}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #ebebeb,0 0 0 .2rem rgba(119,70,236,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #ebebeb,0 0 0 .2rem rgba(119,70,236,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #ebebeb,0 0 0 .2rem rgba(119,70,236,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#7746ec;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:#eee8fd}.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:#7746ec;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:#eee8fd}.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:#7746ec;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:#eee8fd}.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,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.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:flex;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:#ebebeb;border-color:#dee2e6 #dee2e6 #ebebeb}.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:#7746ec}.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;padding:.5rem 1rem}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.321875rem;padding-bottom:.321875rem;margin-right:1rem;font-size:1.1875rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{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:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.1875rem;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 50%;background-size:100% 100%}@media (max-width:1.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:2px){.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:.5rem;padding-left:.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:7.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:8px){.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:.5rem;padding-left:.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:8.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:9px){.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:.5rem;padding-left:.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:9.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:10px){.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:.5rem;padding-left:.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}}.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:.5rem;padding-left:.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,.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;charset=utf-8,%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,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.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:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%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:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{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,.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{flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.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:#fff;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:#fff;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-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{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:flex;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:2px){.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:2px){.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: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:2px){.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:flex;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;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{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:#7746ec;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#4d15d0;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(119,70,236,.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:#7746ec;border-color:#7746ec}.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.1875rem;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:.83125rem;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:.95rem;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:#7746ec}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#5518e7}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(119,70,236,.5)}.badge-secondary{color:#212529;background-color:#dae1e7}a.badge-secondary:focus,a.badge-secondary:hover{color:#212529;background-color:#bbc8d3}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(218,225,231,.5)}.badge-success{color:#212529;background-color:#51d88a}a.badge-success:focus,a.badge-success:hover{color:#212529;background-color:#2dc96f}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(81,216,138,.5)}.badge-info{color:#212529;background-color:#bcdefa}a.badge-info:focus,a.badge-info:hover{color:#212529;background-color:#8dc7f6}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(188,222,250,.5)}.badge-warning{color:#212529;background-color:#ffa260}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#ff842d}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,162,96,.5)}.badge-danger{color:#fff;background-color:#ef5753}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#eb2924}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(239,87,83,.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:2px){.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:3.925rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#3e247b;background-color:#e4dafb;border-color:#d9cbfa}.alert-primary hr{border-top-color:#c8b4f8}.alert-primary .alert-link{color:#2a1854}.alert-secondary{color:#717578;background-color:#f8f9fa;border-color:#f5f7f8}.alert-secondary hr{border-top-color:#e6ebee}.alert-secondary .alert-link{color:#585b5e}.alert-success{color:#2a7048;background-color:#dcf7e8;border-color:#cef4de}.alert-success hr{border-top-color:#b9efd0}.alert-success .alert-link{color:#1c4b30}.alert-info{color:#627382;background-color:#f2f8fe;border-color:#ecf6fe}.alert-info hr{border-top-color:#d4ebfd}.alert-info .alert-link{color:#4c5965}.alert-warning{color:#855432;background-color:#ffecdf;border-color:#ffe5d2}.alert-warning hr{border-top-color:#ffd6b9}.alert-warning .alert-link{color:#603d24}.alert-danger{color:#7c2d2b;background-color:#fcdddd;border-color:#fbd0cf}.alert-danger hr{border-top-color:#f9b9b7}.alert-danger .alert-link{color:#561f1e}.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{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.7125rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#7746ec;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,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: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: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:#7746ec;border-color:#7746ec}.list-group-horizontal{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:2px){.list-group-horizontal-sm{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:8px){.list-group-horizontal-md{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:9px){.list-group-horizontal-lg{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:10px){.list-group-horizontal-xl{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:#3e247b;background-color:#d9cbfa}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#3e247b;background-color:#c8b4f8}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#3e247b;border-color:#3e247b}.list-group-item-secondary{color:#717578;background-color:#f5f7f8}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#717578;background-color:#e6ebee}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#717578;border-color:#717578}.list-group-item-success{color:#2a7048;background-color:#cef4de}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#2a7048;background-color:#b9efd0}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#2a7048;border-color:#2a7048}.list-group-item-info{color:#627382;background-color:#ecf6fe}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#627382;background-color:#d4ebfd}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#627382;border-color:#627382}.list-group-item-warning{color:#855432;background-color:#ffe5d2}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#855432;background-color:#ffd6b9}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#855432;border-color:#855432}.list-group-item-danger{color:#7c2d2b;background-color:#fbd0cf}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#7c2d2b;background-color:#f9b9b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#7c2d2b;border-color:#7c2d2b}.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.425rem;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:hsla(0,0%,100%,.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:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.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:translateY(-50px);transform:translateY(-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: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{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;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{flex-direction:column;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:flex;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:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #efefef;border-top-left-radius:.3rem;border-top-right-radius:.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 #efefef;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:2px){.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:9px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:10px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:Nunito;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:.83125rem;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{top:0;left:0;z-index:1060;max-width:276px;font-family:Nunito;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:.83125rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{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)}.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);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)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .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;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);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:.95rem;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{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:opacity 0s .6s}@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:flex;align-items: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;charset=utf-8,%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.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:0;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{box-sizing:content-box;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(1turn);transform:rotate(1turn)}}@keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid 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:#7746ec!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#5518e7!important}.bg-secondary{background-color:#dae1e7!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#bbc8d3!important}.bg-success{background-color:#51d88a!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#2dc96f!important}.bg-info{background-color:#bcdefa!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#8dc7f6!important}.bg-warning{background-color:#ffa260!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#ff842d!important}.bg-danger{background-color:#ef5753!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#eb2924!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 #efefef!important}.border-top{border-top:1px solid #efefef!important}.border-right{border-right:1px solid #efefef!important}.border-bottom{border-bottom:1px solid #efefef!important}.border-left{border-left:1px solid #efefef!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:#7746ec!important}.border-secondary{border-color:#dae1e7!important}.border-success{border-color:#51d88a!important}.border-info{border-color:#bcdefa!important}.border-warning{border-color:#ffa260!important}.border-danger{border-color:#ef5753!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}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-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:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:2px){.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:8px){.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:9px){.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:10px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;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.8571428571%}.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:2px){.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:8px){.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:9px){.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:10px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:2px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:8px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:9px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:10px){.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{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@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:transparent}.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:2px){.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:8px){.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:9px){.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:10px){.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:2px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:8px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:9px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:10px){.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:#7746ec!important}a.text-primary:focus,a.text-primary:hover{color:#4d15d0!important}.text-secondary{color:#dae1e7!important}a.text-secondary:focus,a.text-secondary:hover{color:#acbbc9!important}.text-success{color:#51d88a!important}a.text-success:focus,a.text-success:hover{color:#28b463!important}.text-info{color:#bcdefa!important}a.text-info:focus,a.text-info:hover{color:#75bbf5!important}.text-warning{color:#ffa260!important}a.text-warning:focus,a.text-warning:hover{color:#ff7514!important}.text-danger{color:#ef5753!important}a.text-danger:focus,a.text-danger:hover{color:#e11a15!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:hsla(0,0%,100%,.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}.container,body{min-width:9px!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:#efefef}.table .thead-dark th{color:inherit;border-color:#efefef}}body{padding-bottom:20px}.container{width:1140px}html{min-width:1140px}[v-cloak]{display:none}svg.icon{width:1rem;height:1rem}.header{border-bottom:1px solid #d5dfe9}.header svg.logo{width:2rem;height:2rem}.sidebar .nav-item a{color:#2a5164;padding:.5rem 0}.sidebar .nav-item a svg{width:1rem;height:1rem;margin-right:15px;fill:#c3cbd3}.sidebar .nav-item a.active{color:#7746ec}.sidebar .nav-item a.active svg{fill:#7746ec}.card{box-shadow:0 2px 3px #cdd8df;border:none}.card .bottom-radius{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.card .card-header{padding-top:.7rem;padding-bottom:.7rem;background-color:#fff;border-bottom:none}.card .card-header .btn-group .btn{padding:.2rem .5rem}.card .card-header h5{margin:0}.card .table td,.card .table th{padding:.75rem 1.25rem}.card .table.table-sm td,.card .table.table-sm th{padding:1rem 1.25rem}.card .table th{background-color:#f3f4f6;font-weight:400;padding:.5rem 1.25rem;border-bottom:0}.card .table:not(.table-borderless) td{border-top:1px solid #efefef}.card .table.penultimate-column-right td:nth-last-child(2),.card .table.penultimate-column-right th:nth-last-child(2){text-align:right}.card .table td.table-fit,.card .table th.table-fit{width:1%;white-space:nowrap}.fill-text-color{fill:#212529}.fill-danger{fill:#ef5753}.fill-warning{fill:#ffa260}.fill-info{fill:#bcdefa}.fill-success{fill:#51d88a}.fill-primary{fill:#7746ec}button:hover .fill-primary{fill:#fff}.btn-outline-primary.active .fill-primary{fill:#ebebeb}.btn-outline-primary:not(:disabled):not(.disabled).active:focus{box-shadow:none!important}.control-action svg{fill:#ccd2df;width:1.2rem;height:1.2rem}.control-action svg:hover{fill:#7746ec}.paginator .btn{text-decoration:none;color:#9ea7ac}.paginator .btn:hover{color:#7746ec}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spin{-webkit-animation:spin 2s linear infinite;animation:spin 2s linear infinite}.card .nav-pills .nav-link.active{background:none;color:#7746ec;border-bottom:2px solid #7746ec}.card .nav-pills .nav-link{font-size:.9rem;border-radius:0;padding:.75rem 1.25rem;color:#212529}.list-enter-active:not(.dontanimate){transition:background 1s linear}.list-enter:not(.dontanimate),.list-leave-to:not(.dontanimate){background:#fffee9}.card table td{vertical-align:middle!important}.card-bg-secondary{background:#fafafa}.code-bg{background:#120f12}.disabled-watcher{padding:.75rem;color:#fff;background:#ef5753}.badge-sm{font-size:.75rem} \ No newline at end of file diff --git a/vendor/laravel/horizon/public/app.js b/vendor/laravel/horizon/public/app.js index 8cb6902ad..69d14c185 100644 --- a/vendor/laravel/horizon/public/app.js +++ b/vendor/laravel/horizon/public/app.js @@ -1 +1 @@ -!function(t){var e={};function p(b){if(e[b])return e[b].exports;var o=e[b]={i:b,l:!1,exports:{}};return t[b].call(o.exports,o,o.exports,p),o.l=!0,o.exports}p.m=t,p.c=e,p.d=function(t,e,b){p.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:b})},p.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},p.t=function(t,e){if(1&e&&(t=p(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var b=Object.create(null);if(p.r(b),Object.defineProperty(b,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)p.d(b,o,function(e){return t[e]}.bind(null,o));return b},p.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return p.d(e,"a",e),e},p.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},p.p="/",p(p.s=0)}({0:function(t,e,p){p("bUC5"),p("pyCd"),t.exports=p("WYdp")},"1Tjy":function(t,e,p){t.exports=function(t){function e(b){if(p[b])return p[b].exports;var o=p[b]={i:b,l:!1,exports:{}};return t[b].call(o.exports,o,o.exports,e),o.l=!0,o.exports}var p={};return e.m=t,e.c=p,e.i=function(t){return t},e.d=function(t,p,b){e.o(t,p)||Object.defineProperty(t,p,{configurable:!1,enumerable:!0,get:b})},e.n=function(t){var p=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(p,"a",p),p},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=24)}([function(t,e){var p=t.exports={version:"2.5.6"};"number"==typeof __e&&(__e=p)},function(t,e){t.exports=function(t,e,p,b,o,M){var n,z=t=t||{},r=typeof t.default;"object"!==r&&"function"!==r||(n=t,z=t.default);var O,c="function"==typeof z?z.options:z;if(e&&(c.render=e.render,c.staticRenderFns=e.staticRenderFns,c._compiled=!0),p&&(c.functional=!0),o&&(c._scopeId=o),M?(O=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),b&&b.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(M)},c._ssrRegister=O):b&&(O=b),O){var i=c.functional,a=i?c.render:c.beforeCreate;i?(c._injectStyles=O,c.render=function(t,e){return O.call(e),a(t,e)}):c.beforeCreate=a?[].concat(a,O):[O]}return{esModule:n,exports:z,options:c}}},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,p){t.exports=!p(2)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e){var p=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=p)},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e,p){"use strict";e.a={props:{visible:{required:!0,type:Boolean},data:{required:!0},notLastKey:Boolean},computed:{dataVisiable:{get:function(){return this.visible},set:function(t){this.$emit("update:visible",t)}}},methods:{toggleBrackets:function(){this.dataVisiable=!this.dataVisiable},bracketsFormatter:function(t){return this.notLastKey?t+",":t}}}},function(t,e,p){"use strict";var b=p(12),o=p.n(b),M=p(57),n=p(56),z=p(54),r=p(55);e.a={name:"vue-json-pretty",components:{SimpleText:M.a,Checkbox:n.a,BracketsLeft:z.a,BracketsRight:r.a},props:{data:{},deep:{type:Number,default:1/0},showLength:{type:Boolean,default:!1},path:{type:String,default:"root"},selectableType:{type:String,default:""},pathChecked:{type:Array,default:function(){return[]}},pathSelectable:{type:Function,default:function(){return!0}},parentData:{},currentDeep:{type:Number,default:1},currentKey:[Number,String]},data:function(){return{visible:this.currentDeep<=this.deep,treeContentBackground:"transparent",checkboxVal:this.pathChecked.includes(this.path)}},computed:{lastKey:function(){if(Array.isArray(this.parentData))return this.parentData.length-1;if(this.isObject(this.parentData)){var t=o()(this.parentData);return t[t.length-1]}},notLastKey:function(){return this.currentKey!==this.lastKey},selectable:function(){return this.pathSelectable(this.path,this.data)},existCheckbox:function(){return"both"===this.selectableType||"checkbox"===this.selectableType},existMouseover:function(){return"both"===this.selectableType||"tree"===this.selectableType}},methods:{handleClick:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];(e||this.existMouseover)&&this.selectable&&(e||(this.checkboxVal=!this.checkboxVal),this.$emit("click",this.path,this.data,this.checkboxVal))},handleItemClick:function(t,e,p){this.$emit("click",t,e,p)},handleMouseover:function(){this.existMouseover&&this.selectable&&(this.treeContentBackground="#eee")},handleMouseout:function(){this.existMouseover&&this.selectable&&(this.treeContentBackground="transparent")},isObject:function(t){return"object"===this.getDataType(t)},getDataType:function(t){return Object.prototype.toString.call(t).slice(8,-1).toLowerCase()}},watch:{deep:function(t){this.visible=this.currentDeep<=t}}}},function(t,e,p){"use strict";var b=p(12),o=p.n(b),M=p(6);e.a={mixins:[M.a],props:{showLength:Boolean},methods:{doubleBracketsGenerator:function(t){var e=Array.isArray(t),p=e?"[...]":"{...}";return this.showLength&&(p+=" // "+(e?t.length+" items":o()(t).length+" keys")),this.bracketsFormatter(p)}}}},function(t,e,p){"use strict";var b=p(6);e.a={mixins:[b.a]}},function(t,e,p){"use strict";e.a={props:{name:String,value:{type:Boolean,default:!1}},data:function(){return{focus:!1,checked:!1}},computed:{model:{get:function(){return void 0!==this.value?this.value:this.checked},set:function(t){this.checked=t,this.$emit("input",t)}}}}},function(t,e,p){"use strict";e.a={props:{parentDataType:String,dataType:String,text:String,notLastKey:Boolean,currentKey:[Number,String]},methods:{textFormatter:function(t){var e=t;return"string"===this.dataType&&(e='"'+e+'"'),this.notLastKey&&(e+=","),e}}}},function(t,e,p){t.exports={default:p(26),__esModule:!0}},function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,p){var b=p(4),o=p(0),M=p(31),n=p(34),z=p(15),r=function(t,e,p){var O,c,i,a=t&r.F,A=t&r.G,s=t&r.S,d=t&r.P,q=t&r.B,l=t&r.W,u=A?o:o[e]||(o[e]={}),f=u.prototype,W=A?b:s?b[e]:(b[e]||{}).prototype;for(O in A&&(p=e),p)(c=!a&&W&&void 0!==W[O])&&z(u,O)||(i=c?W[O]:p[O],u[O]=A&&"function"!=typeof W[O]?p[O]:q&&c?M(i,b):l&&W[O]==i?function(t){var e=function(e,p,b){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,p)}return new t(e,p,b)}return t.apply(this,arguments)};return e.prototype=t.prototype,e}(i):d&&"function"==typeof i?M(Function.call,i):i,d&&((u.virtual||(u.virtual={}))[O]=i,t&r.R&&f&&!f[O]&&n(f,O,i)))};r.F=1,r.G=2,r.S=4,r.P=8,r.B=16,r.W=32,r.U=64,r.R=128,t.exports=r},function(t,e){var p={}.hasOwnProperty;t.exports=function(t,e){return p.call(t,e)}},function(t,e,p){var b=p(30);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==b(t)?t.split(""):Object(t)}},function(t,e,p){var b=p(40),o=p(33);t.exports=Object.keys||function(t){return b(t,o)}},function(t,e){var p=Math.ceil,b=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?b:p)(t)}},function(t,e,p){var b=p(16),o=p(13);t.exports=function(t){return b(o(t))}},function(t,e,p){var b=p(13);t.exports=function(t){return Object(b(t))}},function(t,e,p){t.exports={default:p(25),__esModule:!0}},function(t,e,p){"use strict";var b=p(7),o=p(59),M=p(1),n=M(b.a,o.a,!1,null,null,null);e.a=n.exports},function(t,e,p){var b=p(52);"string"==typeof b&&(b=[[t.i,b,""]]),b.locals&&(t.exports=b.locals),p(63)("bfa6fc9c",b,!0,{})},function(t,e,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var b=p(21),o=p.n(b),M=p(22),n=p(23);p.n(n),e.default=o()({},M.a,{version:"1.4.0"})},function(t,e,p){p(50),t.exports=p(0).Object.assign},function(t,e,p){p(51),t.exports=p(0).Object.keys},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e,p){var b=p(5);t.exports=function(t){if(!b(t))throw TypeError(t+" is not an object!");return t}},function(t,e,p){var b=p(19),o=p(47),M=p(46);t.exports=function(t){return function(e,p,n){var z,r=b(e),O=o(r.length),c=M(n,O);if(t&&p!=p){for(;O>c;)if((z=r[c++])!=z)return!0}else for(;O>c;c++)if((t||c in r)&&r[c]===p)return t||c||0;return!t&&-1}}},function(t,e){var p={}.toString;t.exports=function(t){return p.call(t).slice(8,-1)}},function(t,e,p){var b=p(27);t.exports=function(t,e,p){if(b(t),void 0===e)return t;switch(p){case 1:return function(p){return t.call(e,p)};case 2:return function(p,b){return t.call(e,p,b)};case 3:return function(p,b,o){return t.call(e,p,b,o)}}return function(){return t.apply(e,arguments)}}},function(t,e,p){var b=p(5),o=p(4).document,M=b(o)&&b(o.createElement);t.exports=function(t){return M?o.createElement(t):{}}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,p){var b=p(38),o=p(43);t.exports=p(3)?function(t,e,p){return b.f(t,e,o(1,p))}:function(t,e,p){return t[e]=p,t}},function(t,e,p){t.exports=!p(3)&&!p(2)(function(){return 7!=Object.defineProperty(p(32)("div"),"a",{get:function(){return 7}}).a})},function(t,e){t.exports=!0},function(t,e,p){"use strict";var b=p(17),o=p(39),M=p(41),n=p(20),z=p(16),r=Object.assign;t.exports=!r||p(2)(function(){var t={},e={},p=Symbol(),b="abcdefghijklmnopqrst";return t[p]=7,b.split("").forEach(function(t){e[t]=t}),7!=r({},t)[p]||Object.keys(r({},e)).join("")!=b})?function(t,e){for(var p=n(t),r=arguments.length,O=1,c=o.f,i=M.f;r>O;)for(var a,A=z(arguments[O++]),s=c?b(A).concat(c(A)):b(A),d=s.length,q=0;d>q;)i.call(A,a=s[q++])&&(p[a]=A[a]);return p}:r},function(t,e,p){var b=p(28),o=p(35),M=p(48),n=Object.defineProperty;e.f=p(3)?Object.defineProperty:function(t,e,p){if(b(t),e=M(e,!0),b(p),o)try{return n(t,e,p)}catch(t){}if("get"in p||"set"in p)throw TypeError("Accessors not supported!");return"value"in p&&(t[e]=p.value),t}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,p){var b=p(15),o=p(19),M=p(29)(!1),n=p(44)("IE_PROTO");t.exports=function(t,e){var p,z=o(t),r=0,O=[];for(p in z)p!=n&&b(z,p)&&O.push(p);for(;e.length>r;)b(z,p=e[r++])&&(~M(O,p)||O.push(p));return O}},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,p){var b=p(14),o=p(0),M=p(2);t.exports=function(t,e){var p=(o.Object||{})[t]||Object[t],n={};n[t]=e(p),b(b.S+b.F*M(function(){p(1)}),"Object",n)}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,p){var b=p(45)("keys"),o=p(49);t.exports=function(t){return b[t]||(b[t]=o(t))}},function(t,e,p){var b=p(0),o=p(4),M=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(t.exports=function(t,e){return M[t]||(M[t]=void 0!==e?e:{})})("versions",[]).push({version:b.version,mode:p(36)?"pure":"global",copyright:"© 2018 Denis Pushkarev (zloirock.ru)"})},function(t,e,p){var b=p(18),o=Math.max,M=Math.min;t.exports=function(t,e){return(t=b(t))<0?o(t+e,0):M(t,e)}},function(t,e,p){var b=p(18),o=Math.min;t.exports=function(t){return t>0?o(b(t),9007199254740991):0}},function(t,e,p){var b=p(5);t.exports=function(t,e){if(!b(t))return t;var p,o;if(e&&"function"==typeof(p=t.toString)&&!b(o=p.call(t)))return o;if("function"==typeof(p=t.valueOf)&&!b(o=p.call(t)))return o;if(!e&&"function"==typeof(p=t.toString)&&!b(o=p.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,e){var p=0,b=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++p+b).toString(36))}},function(t,e,p){var b=p(14);b(b.S+b.F,"Object",{assign:p(37)})},function(t,e,p){var b=p(20),o=p(17);p(42)("keys",function(){return function(t){return o(b(t))}})},function(t,e,p){(t.exports=p(53)(!1)).push([t.i,'.vjs-checkbox{color:#1f2d3d;user-select:none}.vjs-checkbox .vjs-checkbox__input{outline:0;line-height:1;vertical-align:middle;cursor:pointer;display:inline-block;position:relative;white-space:nowrap}.vjs-checkbox .vjs-checkbox__input.is-checked .vjs-checkbox__inner{background-color:#20a0ff;border-color:#0190fe}.vjs-checkbox .vjs-checkbox__input.is-checked .vjs-checkbox__inner:after{transform:rotate(45deg) scaleY(1)}.vjs-checkbox .vjs-checkbox__inner{display:inline-block;position:relative;border:1px solid #bfcbd9;border-radius:4px;box-sizing:border-box;width:18px;height:18px;background-color:#fff;z-index:1;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.vjs-checkbox .vjs-checkbox__inner:after{box-sizing:content-box;content:"";border:2px solid #fff;border-left:0;border-top:0;height:8px;left:5px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:4px;transition:transform .15s cubic-bezier(.71,-.46,.88,.6) .05s;transform-origin:center}.vjs-checkbox .vjs-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;left:-999px}.vjs__tree{font-family:Monaco,Menlo,Consolas,Bitstream Vera Sans Mono;font-size:14px}.vjs__tree .vjs__tree__content{padding-left:1em;border-left:1px dotted #ccc}.vjs__tree .vjs__tree__node{cursor:pointer}.vjs__tree .vjs__tree__node:hover{color:#20a0ff}.vjs__tree .vjs-checkbox{position:absolute;left:-30px}.vjs__tree .vjs__value__null{color:#ff4949}.vjs__tree .vjs__value__boolean,.vjs__tree .vjs__value__number{color:#1d8ce0}.vjs__tree .vjs__value__string{color:#13ce66}',""])},function(t,e){function p(t,e){var p=t[1]||"",b=t[3];if(!b)return p;if(e&&"function"==typeof btoa){var o=function(t){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t))))+" */"}(b);return[p].concat(b.sources.map(function(t){return"/*# sourceURL="+b.sourceRoot+t+" */"})).concat([o]).join("\n")}return[p].join("\n")}t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var b=p(e,t);return e[2]?"@media "+e[2]+"{"+b+"}":b}).join("")},e.i=function(t,p){"string"==typeof t&&(t=[[null,t,""]]);for(var b={},o=0;o-1:t.model},on:{change:function(e){t.$emit("change",t.model)},focus:function(e){t.focus=!0},blur:function(e){t.focus=!1},__c:function(e){var p=t.model,b=e.target,o=!!b.checked;if(Array.isArray(p)){var M=t._i(p,null);o?M<0&&(t.model=p.concat(null)):M>-1&&(t.model=p.slice(0,M).concat(p.slice(M+1)))}else t.model=o}}})])])},staticRenderFns:[]};e.a=b},function(t,e,p){"use strict";var b={render:function(){var t=this,e=t.$createElement,p=t._self._c||e;return p("div",{staticClass:"vjs__tree",style:{"background-color":t.treeContentBackground,position:t.currentDeep>1?"":"relative","margin-left":1===t.currentDeep&&t.existCheckbox?"30px":""},on:{click:function(e){e.stopPropagation(),t.handleClick(e)},mouseover:function(e){e.stopPropagation(),t.handleMouseover(e)},mouseout:function(e){e.stopPropagation(),t.handleMouseout(e)}}},[t.selectable&&t.existCheckbox?[p("checkbox",{on:{change:function(e){t.handleClick(e,!0)}},model:{value:t.checkboxVal,callback:function(e){t.checkboxVal=e},expression:"checkboxVal"}})]:t._e(),t._v(" "),Array.isArray(t.data)||t.isObject(t.data)?[p("brackets-left",{attrs:{visible:t.visible,data:t.data,"show-length":t.showLength,"not-last-key":t.notLastKey},on:{"update:visible":function(e){t.visible=e}}},[t.currentDeep>1&&!Array.isArray(t.parentData)?p("span",[t._v(t._s(t.currentKey)+":")]):t._e()]),t._v(" "),t._l(t.data,function(e,b){return p("div",{directives:[{name:"show",rawName:"v-show",value:t.visible,expression:"visible"}],key:b,staticClass:"vjs__tree__content"},[p("vue-json-pretty",{attrs:{"parent-data":t.data,data:e,deep:t.deep,"show-length":t.showLength,path:t.path+(Array.isArray(t.data)?"["+b+"]":"."+b),"path-checked":t.pathChecked,"path-selectable":t.pathSelectable,"selectable-type":t.selectableType,"current-key":b,"current-deep":t.currentDeep+1},on:{click:t.handleItemClick}})],1)}),t._v(" "),p("brackets-right",{attrs:{visible:t.visible,data:t.data,"not-last-key":t.notLastKey},on:{"update:visible":function(e){t.visible=e}}})]:p("simple-text",{attrs:{parentDataType:t.getDataType(t.parentData),dataType:t.getDataType(t.data),text:t.data+"",notLastKey:t.notLastKey,currentKey:t.currentKey}})],2)},staticRenderFns:[]};e.a=b},function(t,e,p){"use strict";var b={render:function(){var t=this,e=t.$createElement,p=t._self._c||e;return p("div",{directives:[{name:"show",rawName:"v-show",value:t.dataVisiable,expression:"dataVisiable"}]},[p("span",{staticClass:"vjs__tree__node",on:{click:function(e){e.stopPropagation(),t.toggleBrackets(e)}}},[t._v("\n "+t._s(t.bracketsFormatter(Array.isArray(t.data)?"]":"}"))+"\n ")])])},staticRenderFns:[]};e.a=b},function(t,e,p){"use strict";var b={render:function(){var t=this,e=t.$createElement,p=t._self._c||e;return p("div",["object"===t.parentDataType?p("span",[t._v(t._s(t.currentKey)+":")]):t._e(),t._v(" "),p("span",{class:"vjs__value__"+t.dataType},[t._v("\n "+t._s(t.textFormatter(t.text))+"\n ")])])},staticRenderFns:[]};e.a=b},function(t,e,p){"use strict";var b={render:function(){var t=this,e=t.$createElement,p=t._self._c||e;return p("div",[t._t("default"),t._v(" "),p("span",{directives:[{name:"show",rawName:"v-show",value:t.dataVisiable,expression:"dataVisiable"}],staticClass:"vjs__tree__node",on:{click:function(e){e.stopPropagation(),t.toggleBrackets(e)}}},[t._v("\n "+t._s(Array.isArray(t.data)?"[":"{")+"\n ")]),t._v(" "),p("span",{directives:[{name:"show",rawName:"v-show",value:!t.dataVisiable,expression:"!dataVisiable"}],staticClass:"vjs__tree__node",on:{click:function(e){e.stopPropagation(),t.toggleBrackets(e)}}},[t._v("\n "+t._s(t.doubleBracketsGenerator(t.data))+"\n ")])],2)},staticRenderFns:[]};e.a=b},function(t,e,p){function b(t){for(var e=0;ep.parts.length&&(b.parts.length=p.parts.length)}else{for(var n=[],o=0;o2047?3:2;return b=t.substring(p,p+n),p+=n+2,b},r=function(){var e=t.charAt(p);return p+=2,e},O=function(){var t=r();switch(t){case"i":return n();case"s":return z();default:throw{name:"Parse Error",message:"Unknown key type '"+t+"' at position "+(p-2)}}},c=function(t,e){var p,b,o;return"\0"!==t.charAt(0)?t:(o=t.indexOf("\0",1))>0?(p=t.substring(1,o),b=t.substr(o+1),"*"===p?b:e===p?b:p+"::"+b):void 0};return(e=function(){var i,a,A,s,d=r();switch(d){case"i":return s=n(),b[o++]=s,s;case"d":return function(){var e=t.indexOf(";",p),M=t.substring(p,e);return p=e+1,M=parseFloat(M),b[o++]=M,M}();case"b":return function(){var e=t.indexOf(";",p),M=t.substring(p,e);return p=e+1,M="1"===M,b[o++]=M,M}();case"s":return function(){var t=z();return b[o++]=t,t}();case"a":return function(){var t,n,z,r,c,i=M(),a=[],A={},s=a,d=o++;for(b[d]=s,z=0;zt?1:-1,M=1,n=r.borderSkipped||"left"):(t=r.x-r.width/2,e=r.x+r.width/2,p=r.y,o=1,M=(b=r.base)>p?1:-1,n=r.borderSkipped||"bottom"),O){var c=Math.min(Math.abs(t-e),Math.abs(p-b)),i=(O=O>c?c:O)/2,a=t+("left"!==n?i*o:0),A=e+("right"!==n?-i*o:0),s=p+("top"!==n?i*M:0),d=b+("bottom"!==n?-i*M:0);a!==A&&(p=s,b=d),s!==d&&(t=a,e=A)}z.beginPath(),z.fillStyle=r.backgroundColor,z.strokeStyle=r.borderColor,z.lineWidth=O;var q=[[t,b],[t,p],[e,p],[e,b]],l=["bottom","left","top","right"].indexOf(n,0);function u(t){return q[(l+t)%4]}-1===l&&(l=0);var f=u(0);z.moveTo(f[0],f[1]);for(var W=1;W<4;W++)f=u(W),z.lineTo(f[0],f[1]);z.fill(),O&&z.stroke()},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){var p=!1;if(this._view){var b=n(this);p=t>=b.left&&t<=b.right&&e>=b.top&&e<=b.bottom}return p},inLabelRange:function(t,e){if(!this._view)return!1;var p=n(this);return M(this)?t>=p.left&&t<=p.right:e>=p.top&&e<=p.bottom},inXRange:function(t){var e=n(this);return t>=e.left&&t<=e.right},inYRange:function(t){var e=n(this);return t>=e.top&&t<=e.bottom},getCenterPoint:function(){var t,e,p=this._view;return M(this)?(t=p.x,e=(p.y+p.base)/2):(t=(p.x+p.base)/2,e=p.y),{x:t,y:e}},getArea:function(){var t=this._view;return t.width*Math.abs(t.y-t.base)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}})},"35yf":function(t,e,p){"use strict";p("CDJp")._set("scatter",{hover:{mode:"single"},scales:{xAxes:[{id:"x-axis-1",type:"linear",position:"bottom"}],yAxes:[{id:"y-axis-1",type:"linear",position:"left"}]},showLines:!1,tooltips:{callbacks:{title:function(){return""},label:function(t){return"("+t.xLabel+", "+t.yLabel+")"}}}}),t.exports=function(t){t.controllers.scatter=t.controllers.line}},"3Irt":function(t,e,p){"use strict";p.r(e);var b=p("LvDl"),o=p.n(b),M=p("wd/R"),n=p.n(M),z={components:{},data:function(){return{stats:{},workers:[],workload:[],ready:!1}},mounted:function(){document.title="Horizon - Dashboard",this.refreshStatsPeriodically()},destroyed:function(){clearTimeout(this.timeout)},computed:{recentJobsPeriod:function(){return this.ready?"Jobs past ".concat(this.determinePeriod(this.stats.periods.recentJobs)):"Jobs past hour"},failedJobsPeriod:function(){return this.ready?"Failed jobs past ".concat(this.determinePeriod(this.stats.periods.failedJobs)):"Failed jobs past 7 days"}},methods:{loadStats:function(){var t=this;return this.$http.get("/"+Horizon.path+"/api/stats").then(function(e){t.stats=e.data,o.a.values(e.data.wait)[0]&&(t.stats.max_wait_time=o.a.values(e.data.wait)[0],t.stats.max_wait_queue=o.a.keys(e.data.wait)[0].split(":")[1])})},loadWorkers:function(){var t=this;return this.$http.get("/"+Horizon.path+"/api/masters").then(function(e){t.workers=e.data})},loadWorkload:function(){var t=this;return this.$http.get("/"+Horizon.path+"/api/workload").then(function(e){t.workload=e.data})},refreshStatsPeriodically:function(){var t=this;Promise.all([this.loadStats(),this.loadWorkers(),this.loadWorkload()]).then(function(){t.ready=!0,t.timeout=setTimeout(function(){t.refreshStatsPeriodically(!1)},5e3)})},countProcesses:function(t){return o.a.chain(t).values().sum().value().toLocaleString()},superVisorDisplayName:function(t,e){return o.a.replace(t,e+":","")},humanTime:function(t){return n.a.duration(t,"seconds").humanize().replace(/^(.)|\s+(.)/g,function(t){return t.toUpperCase()})},determinePeriod:function(t){return n.a.duration(n()().diff(n()().subtract(t,"minutes"))).humanize().replace(/^An?/i,"")}}},r=p("KHd+"),O=Object(r.a)(z,function(){var t=this,e=t.$createElement,p=t._self._c||e;return p("div",[p("div",{staticClass:"card"},[t._m(0),t._v(" "),p("div",{staticClass:"card-bg-secondary"},[p("div",{staticClass:"d-flex"},[p("div",{staticClass:"w-25 border-right border-bottom"},[p("div",{staticClass:"p-4"},[p("small",{staticClass:"text-uppercase"},[t._v("Jobs Per Minute")]),t._v(" "),p("h4",{staticClass:"mt-4 mb-0"},[t._v("\n "+t._s(t.stats.jobsPerMinute?t.stats.jobsPerMinute.toLocaleString():0)+"\n ")])])]),t._v(" "),p("div",{staticClass:"w-25 border-right border-bottom"},[p("div",{staticClass:"p-4"},[p("small",{staticClass:"text-uppercase",domProps:{textContent:t._s(t.recentJobsPeriod)}}),t._v(" "),p("h4",{staticClass:"mt-4 mb-0"},[t._v("\n "+t._s(t.stats.recentJobs?t.stats.recentJobs.toLocaleString():0)+"\n ")])])]),t._v(" "),p("div",{staticClass:"w-25 border-right border-bottom"},[p("div",{staticClass:"p-4"},[p("small",{staticClass:"text-uppercase",domProps:{textContent:t._s(t.failedJobsPeriod)}}),t._v(" "),p("h4",{staticClass:"mt-4 mb-0"},[t._v("\n "+t._s(t.stats.failedJobs?t.stats.failedJobs.toLocaleString():0)+"\n ")])])]),t._v(" "),p("div",{staticClass:"w-25 border-bottom"},[p("div",{staticClass:"p-4"},[p("small",{staticClass:"text-uppercase"},[t._v("Status")]),t._v(" "),p("div",{staticClass:"d-flex align-items-center mt-4"},["running"==t.stats.status?p("svg",{staticClass:"fill-success",staticStyle:{width:"1.5rem",height:"1.5rem"},attrs:{viewBox:"0 0 20 20"}},[p("path",{attrs:{d:"M2.93 17.07A10 10 0 1 1 17.07 2.93 10 10 0 0 1 2.93 17.07zm12.73-1.41A8 8 0 1 0 4.34 4.34a8 8 0 0 0 11.32 11.32zM6.7 9.29L9 11.6l4.3-4.3 1.4 1.42L9 14.4l-3.7-3.7 1.4-1.42z"}})]):t._e(),t._v(" "),"paused"==t.stats.status?p("svg",{staticClass:"fill-warning",staticStyle:{width:"1.5rem",height:"1.5rem"},attrs:{viewBox:"0 0 20 20"}},[p("path",{attrs:{d:"M2.93 17.07A10 10 0 1 1 17.07 2.93 10 10 0 0 1 2.93 17.07zm12.73-1.41A8 8 0 1 0 4.34 4.34a8 8 0 0 0 11.32 11.32zM7 6h2v8H7V6zm4 0h2v8h-2V6z"}})]):t._e(),t._v(" "),"inactive"==t.stats.status?p("svg",{staticClass:"fill-danger",staticStyle:{width:"1.5rem",height:"1.5rem"},attrs:{viewBox:"0 0 20 20"}},[p("path",{attrs:{d:"M2.93 17.07A10 10 0 1 1 17.07 2.93 10 10 0 0 1 2.93 17.07zm1.41-1.41A8 8 0 1 0 15.66 4.34 8 8 0 0 0 4.34 15.66zm9.9-8.49L11.41 10l2.83 2.83-1.41 1.41L10 11.41l-2.83 2.83-1.41-1.41L8.59 10 5.76 7.17l1.41-1.41L10 8.59l2.83-2.83 1.41 1.41z"}})]):t._e(),t._v(" "),p("h4",{staticClass:"mb-0 ml-2"},[t._v(t._s({running:"Active",paused:"Paused",inactive:"Inactive"}[t.stats.status]))])])])])]),t._v(" "),p("div",{staticClass:"d-flex"},[p("div",{staticClass:"w-25 border-right"},[p("div",{staticClass:"p-4 mb-0"},[p("small",{staticClass:"text-uppercase"},[t._v("TOTAL PROCESSES")]),t._v(" "),p("h4",{staticClass:"mt-4"},[t._v("\n "+t._s(t.stats.processes?t.stats.processes.toLocaleString():0)+"\n ")])])]),t._v(" "),p("div",{staticClass:"w-25 border-right"},[p("div",{staticClass:"p-4 mb-0"},[p("small",{staticClass:"text-uppercase"},[t._v("MAX WAIT TIME")]),t._v(" "),t.stats.max_wait_queue?p("small",[t._v("("+t._s(t.stats.max_wait_queue)+")")]):t._e(),t._v(" "),p("h4",{staticClass:"mt-4"},[t._v("\n "+t._s(t.stats.max_wait_time?t.humanTime(t.stats.max_wait_time):"-")+"\n ")])])]),t._v(" "),p("div",{staticClass:"w-25 border-right"},[p("div",{staticClass:"p-4 mb-0"},[p("small",{staticClass:"text-uppercase"},[t._v("MAX RUNTIME")]),t._v(" "),p("h4",{staticClass:"mt-4"},[t._v("\n "+t._s(t.stats.queueWithMaxRuntime?t.stats.queueWithMaxRuntime:"-")+"\n ")])])]),t._v(" "),p("div",{staticClass:"w-25"},[p("div",{staticClass:"p-4 mb-0"},[p("small",{staticClass:"text-uppercase"},[t._v("MAX THROUGHPUT")]),t._v(" "),p("h4",{staticClass:"mt-4"},[t._v("\n "+t._s(t.stats.queueWithMaxThroughput?t.stats.queueWithMaxThroughput:"-")+"\n ")])])])])])]),t._v(" "),t.workload.length?p("div",{staticClass:"card mt-4"},[t._m(1),t._v(" "),p("table",{staticClass:"table table-hover table-sm mb-0"},[t._m(2),t._v(" "),p("tbody",t._l(t.workload,function(e){return p("tr",[p("td",[p("span",[t._v(t._s(e.name.replace(/,/g,", ")))])]),t._v(" "),p("td",[t._v(t._s(e.processes?e.processes.toLocaleString():0))]),t._v(" "),p("td",[t._v(t._s(e.length?e.length.toLocaleString():0))]),t._v(" "),p("td",{staticClass:"text-right"},[t._v(t._s(t.humanTime(e.wait)))])])}),0)])]):t._e(),t._v(" "),t._l(t.workers,function(e){return p("div",{key:e.name,staticClass:"card mt-4"},[p("div",{staticClass:"card-header d-flex align-items-center justify-content-between"},[p("h5",[t._v(t._s(e.name))])]),t._v(" "),p("table",{staticClass:"table table-hover table-sm mb-0"},[t._m(3,!0),t._v(" "),p("tbody",t._l(e.supervisors,function(b){return p("tr",[p("td",[t._v(t._s(t.superVisorDisplayName(b.name,e.name)))]),t._v(" "),p("td",[t._v(t._s(t.countProcesses(b.processes)))]),t._v(" "),p("td",[t._v(t._s(b.options.queue.replace(/,/g,", ")))]),t._v(" "),p("td",{staticClass:"text-right"},[t._v("\n ("+t._s(b.options.balance.charAt(0).toUpperCase()+b.options.balance.slice(1))+")\n ")])])}),0)])])})],2)},[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"card-header d-flex align-items-center justify-content-between"},[e("h5",[this._v("Overview")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"card-header d-flex align-items-center justify-content-between"},[e("h5",[this._v("Current Workload")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("thead",[e("tr",[e("th",[this._v("Queue")]),this._v(" "),e("th",[this._v("Processes")]),this._v(" "),e("th",[this._v("Jobs")]),this._v(" "),e("th",{staticClass:"text-right"},[this._v("Wait")])])])},function(){var t=this.$createElement,e=this._self._c||t;return e("thead",[e("tr",[e("th",[this._v("Supervisor")]),this._v(" "),e("th",[this._v("Processes")]),this._v(" "),e("th",[this._v("Queues")]),this._v(" "),e("th",{staticClass:"text-right"},[this._v("Balancing")])])])}],!1,null,null,null);e.default=O.exports},"5ZZ7":function(t,e,p){"use strict";var b=p("CDJp"),o=p("vvH+"),M=p("RDha");b._set("polarArea",{scale:{type:"radialLinear",angleLines:{display:!1},gridLines:{circular:!0},pointLabels:{display:!1},ticks:{beginAtZero:!0}},animation:{animateRotate:!0,animateScale:!0},startAngle:-.5*Math.PI,legendCallback:function(t){var e=[];e.push('

    ');var p=t.data,b=p.datasets,o=p.labels;if(b.length)for(var M=0;M'),o[M]&&e.push(o[M]),e.push("");return e.push("
"),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(p,b){var o=t.getDatasetMeta(0),n=e.datasets[0],z=o.data[b].custom||{},r=M.valueAtIndexOrDefault,O=t.options.elements.arc;return{text:p,fillStyle:z.backgroundColor?z.backgroundColor:r(n.backgroundColor,b,O.backgroundColor),strokeStyle:z.borderColor?z.borderColor:r(n.borderColor,b,O.borderColor),lineWidth:z.borderWidth?z.borderWidth:r(n.borderWidth,b,O.borderWidth),hidden:isNaN(n.data[b])||o.data[b].hidden,index:b}}):[]}},onClick:function(t,e){var p,b,o,M=e.index,n=this.chart;for(p=0,b=(n.data.datasets||[]).length;p=0;--p)e.isDatasetVisible(p)&&e.drawDataset(p,t);c.notify(e,"afterDatasetsDraw",[t])}},drawDataset:function(t,e){var p=this.getDatasetMeta(t),b={meta:p,index:t,easingValue:e};!1!==c.notify(this,"beforeDatasetDraw",[b])&&(p.controller.draw(e),c.notify(this,"afterDatasetDraw",[b]))},_drawTooltip:function(t){var e=this.tooltip,p={tooltip:e,easingValue:t};!1!==c.notify(this,"beforeTooltipDraw",[p])&&(e.draw(),c.notify(this,"afterTooltipDraw",[p]))},getElementAtEvent:function(t){return z.modes.single(this,t)},getElementsAtEvent:function(t){return z.modes.label(this,t,{intersect:!0})},getElementsAtXAxis:function(t){return z.modes["x-axis"](this,t,{intersect:!0})},getElementsAtEventForMode:function(t,e,p){var b=z.modes[e];return"function"==typeof b?b(this,t,p):[]},getDatasetAtEvent:function(t){return z.modes.dataset(this,t,{intersect:!0})},getDatasetMeta:function(t){var e=this.data.datasets[t];e._meta||(e._meta={});var p=e._meta[this.id];return p||(p=e._meta[this.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),p},getVisibleDatasetCount:function(){for(var t=0,e=0,p=this.data.datasets.length;ep?(e+.05)/(p+.05):(p+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?"AAA":e>=4.5?"AA":""},dark:function(){var t=this.values.rgb;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;e<3;e++)t[e]=255-this.values.rgb[e];return this.setValues("rgb",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues("hsl",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues("hsl",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues("hsl",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues("hsl",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues("hwb",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues("hwb",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues("rgb",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues("alpha",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues("alpha",e+e*t),this},rotate:function(t){var e=this.values.hsl,p=(e[0]+t)%360;return e[0]=p<0?360+p:p,this.setValues("hsl",e),this},mix:function(t,e){var p=t,b=void 0===e?.5:e,o=2*b-1,M=this.alpha()-p.alpha(),n=((o*M==-1?o:(o+M)/(1+o*M))+1)/2,z=1-n;return this.rgb(n*this.red()+z*p.red(),n*this.green()+z*p.green(),n*this.blue()+z*p.blue()).alpha(this.alpha()*b+p.alpha()*(1-b))},toJSON:function(){return this.rgb()},clone:function(){var t,e,p=new M,b=this.values,o=p.values;for(var n in b)b.hasOwnProperty(n)&&(t=b[n],"[object Array]"===(e={}.toString.call(t))?o[n]=t.slice(0):"[object Number]"===e&&(o[n]=t));return p}},M.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},M.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},M.prototype.getValues=function(t){for(var e=this.values,p={},b=0;bo?{start:e-p-5,end:e}:{start:e,end:e+p+5}}function c(t){return 0===t||180===t?"center":t<180?"left":"right"}function i(t,e,p,b){if(o.isArray(e))for(var M=p.y,n=1.5*b,z=0;z270||t<90)&&(p.y-=e.h)}function A(t){return o.isNumber(t)?t:0}var s=t.LinearScaleBase.extend({setDimensions:function(){var t=this,p=t.options,b=p.ticks;t.width=t.maxWidth,t.height=t.maxHeight,t.xCenter=Math.round(t.width/2),t.yCenter=Math.round(t.height/2);var M=o.min([t.height,t.width]),n=o.valueOrDefault(b.fontSize,e.defaultFontSize);t.drawingArea=p.display?M/2-(n/2+b.backdropPaddingY):M/2},determineDataLimits:function(){var t=this,e=t.chart,p=Number.POSITIVE_INFINITY,b=Number.NEGATIVE_INFINITY;o.each(e.data.datasets,function(M,n){if(e.isDatasetVisible(n)){var z=e.getDatasetMeta(n);o.each(M.data,function(e,o){var M=+t.getRightValue(e);isNaN(M)||z.data[o].hidden||(p=Math.min(M,p),b=Math.max(M,b))})}}),t.min=p===Number.POSITIVE_INFINITY?0:p,t.max=b===Number.NEGATIVE_INFINITY?0:b,t.handleTickRangeOptions()},getTickLimit:function(){var t=this.options.ticks,p=o.valueOrDefault(t.fontSize,e.defaultFontSize);return Math.min(t.maxTicksLimit?t.maxTicksLimit:11,Math.ceil(this.drawingArea/(1.5*p)))},convertTicksToLabels:function(){var e=this;t.LinearScaleBase.prototype.convertTicksToLabels.call(e),e.pointLabels=e.chart.data.labels.map(e.options.pointLabels.callback,e)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},fit:function(){var t,e;this.options.pointLabels.display?function(t){var e,p,b,M=r(t),n=Math.min(t.height/2,t.width/2),c={r:t.width,l:0,t:t.height,b:0},i={};t.ctx.font=M.font,t._pointLabelSizes=[];var a,A,s,d=z(t);for(e=0;ec.r&&(c.r=u.end,i.r=q),f.startc.b&&(c.b=f.end,i.b=q)}t.setReductions(n,c,i)}(this):(t=this,e=Math.min(t.height/2,t.width/2),t.drawingArea=Math.round(e),t.setCenterPoint(0,0,0,0))},setReductions:function(t,e,p){var b=e.l/Math.sin(p.l),o=Math.max(e.r-this.width,0)/Math.sin(p.r),M=-e.t/Math.cos(p.t),n=-Math.max(e.b-this.height,0)/Math.cos(p.b);b=A(b),o=A(o),M=A(M),n=A(n),this.drawingArea=Math.min(Math.round(t-(b+o)/2),Math.round(t-(M+n)/2)),this.setCenterPoint(b,o,M,n)},setCenterPoint:function(t,e,p,b){var o=this,M=o.width-e-o.drawingArea,n=t+o.drawingArea,z=p+o.drawingArea,r=o.height-b-o.drawingArea;o.xCenter=Math.round((n+M)/2+o.left),o.yCenter=Math.round((z+r)/2+o.top)},getIndexAngle:function(t){return t*(2*Math.PI/z(this))+(this.chart.options&&this.chart.options.startAngle?this.chart.options.startAngle:0)*Math.PI*2/360},getDistanceFromCenterForValue:function(t){var e=this;if(null===t)return 0;var p=e.drawingArea/(e.max-e.min);return e.options.ticks.reverse?(e.max-t)*p:(t-e.min)*p},getPointPosition:function(t,e){var p=this.getIndexAngle(t)-Math.PI/2;return{x:Math.round(Math.cos(p)*e)+this.xCenter,y:Math.round(Math.sin(p)*e)+this.yCenter}},getPointPositionForValue:function(t,e){return this.getPointPosition(t,this.getDistanceFromCenterForValue(e))},getBasePosition:function(){var t=this.min,e=this.max;return this.getPointPositionForValue(0,this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0)},draw:function(){var t=this,p=t.options,b=p.gridLines,M=p.ticks,n=o.valueOrDefault;if(p.display){var O=t.ctx,A=this.getIndexAngle(0),s=n(M.fontSize,e.defaultFontSize),d=n(M.fontStyle,e.defaultFontStyle),q=n(M.fontFamily,e.defaultFontFamily),l=o.fontString(s,d,q);o.each(t.ticks,function(p,r){if(r>0||M.reverse){var c=t.getDistanceFromCenterForValue(t.ticksAsNumbers[r]);if(b.display&&0!==r&&function(t,e,p,b){var M=t.ctx;if(M.strokeStyle=o.valueAtIndexOrDefault(e.color,b-1),M.lineWidth=o.valueAtIndexOrDefault(e.lineWidth,b-1),t.options.gridLines.circular)M.beginPath(),M.arc(t.xCenter,t.yCenter,p,0,2*Math.PI),M.closePath(),M.stroke();else{var n=z(t);if(0===n)return;M.beginPath();var r=t.getPointPosition(0,p);M.moveTo(r.x,r.y);for(var O=1;O=0;s--){if(M.display){var d=t.getPointPosition(s,O);p.beginPath(),p.moveTo(t.xCenter,t.yCenter),p.lineTo(d.x,d.y),p.stroke(),p.closePath()}if(n.display){var q=t.getPointPosition(s,O+5),l=o.valueAtIndexOrDefault(n.fontColor,s,e.defaultFontColor);p.font=A.font,p.fillStyle=l;var u=t.getIndexAngle(s),f=o.toDegrees(u);p.textAlign=c(f),a(f,t._pointLabelSizes[s],q),i(p,t.pointLabels[s]||"",q,A.size)}}}(t)}}});M.registerScaleType("radialLinear",s,p)}},"8L3F":function(t,e,p){"use strict";p.r(e),function(t){for(var p="undefined"!=typeof window&&"undefined"!=typeof document,b=["Edge","Trident","Firefox"],o=0,M=0;M=0){o=1;break}var n=p&&window.Promise?function(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then(function(){e=!1,t()}))}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout(function(){e=!1,t()},o))}};function z(t){return t&&"[object Function]"==={}.toString.call(t)}function r(t,e){if(1!==t.nodeType)return[];var p=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?p[e]:p}function O(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function c(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=r(t),p=e.overflow,b=e.overflowX,o=e.overflowY;return/(auto|scroll|overlay)/.test(p+o+b)?t:c(O(t))}var i=p&&!(!window.MSInputMethodContext||!document.documentMode),a=p&&/MSIE 10/.test(navigator.userAgent);function A(t){return 11===t?i:10===t?a:i||a}function s(t){if(!t)return document.documentElement;for(var e=A(10)?document.body:null,p=t.offsetParent||null;p===e&&t.nextElementSibling;)p=(t=t.nextElementSibling).offsetParent;var b=p&&p.nodeName;return b&&"BODY"!==b&&"HTML"!==b?-1!==["TH","TD","TABLE"].indexOf(p.nodeName)&&"static"===r(p,"position")?s(p):p:t?t.ownerDocument.documentElement:document.documentElement}function d(t){return null!==t.parentNode?d(t.parentNode):t}function q(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var p=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,b=p?t:e,o=p?e:t,M=document.createRange();M.setStart(b,0),M.setEnd(o,0);var n,z,r=M.commonAncestorContainer;if(t!==r&&e!==r||b.contains(o))return"BODY"===(z=(n=r).nodeName)||"HTML"!==z&&s(n.firstElementChild)!==n?s(r):r;var O=d(t);return O.host?q(O.host,e):q(t,d(e).host)}function l(t){var e="top"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",p=t.nodeName;if("BODY"===p||"HTML"===p){var b=t.ownerDocument.documentElement;return(t.ownerDocument.scrollingElement||b)[e]}return t[e]}function u(t,e){var p="x"===e?"Left":"Top",b="Left"===p?"Right":"Bottom";return parseFloat(t["border"+p+"Width"],10)+parseFloat(t["border"+b+"Width"],10)}function f(t,e,p,b){return Math.max(e["offset"+t],e["scroll"+t],p["client"+t],p["offset"+t],p["scroll"+t],A(10)?parseInt(p["offset"+t])+parseInt(b["margin"+("Height"===t?"Top":"Left")])+parseInt(b["margin"+("Height"===t?"Bottom":"Right")]):0)}function W(t){var e=t.body,p=t.documentElement,b=A(10)&&getComputedStyle(p);return{height:f("Height",e,p,b),width:f("Width",e,p,b)}}var h=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},R=function(){function t(t,e){for(var p=0;p2&&void 0!==arguments[2]&&arguments[2],b=A(10),o="HTML"===e.nodeName,M=B(t),n=B(e),z=c(t),O=r(e),i=parseFloat(O.borderTopWidth,10),a=parseFloat(O.borderLeftWidth,10);p&&o&&(n.top=Math.max(n.top,0),n.left=Math.max(n.left,0));var s=g({top:M.top-n.top-i,left:M.left-n.left-a,width:M.width,height:M.height});if(s.marginTop=0,s.marginLeft=0,!b&&o){var d=parseFloat(O.marginTop,10),q=parseFloat(O.marginLeft,10);s.top-=i-d,s.bottom-=i-d,s.left-=a-q,s.right-=a-q,s.marginTop=d,s.marginLeft=q}return(b&&!p?e.contains(z):e===z&&"BODY"!==z.nodeName)&&(s=function(t,e){var p=arguments.length>2&&void 0!==arguments[2]&&arguments[2],b=l(e,"top"),o=l(e,"left"),M=p?-1:1;return t.top+=b*M,t.bottom+=b*M,t.left+=o*M,t.right+=o*M,t}(s,e)),s}function X(t){if(!t||!t.parentElement||A())return document.documentElement;for(var e=t.parentElement;e&&"none"===r(e,"transform");)e=e.parentElement;return e||document.documentElement}function y(t,e,p,b){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],M={top:0,left:0},n=o?X(t):q(t,e);if("viewport"===b)M=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],p=t.ownerDocument.documentElement,b=L(t,p),o=Math.max(p.clientWidth,window.innerWidth||0),M=Math.max(p.clientHeight,window.innerHeight||0),n=e?0:l(p),z=e?0:l(p,"left");return g({top:n-b.top+b.marginTop,left:z-b.left+b.marginLeft,width:o,height:M})}(n,o);else{var z=void 0;"scrollParent"===b?"BODY"===(z=c(O(e))).nodeName&&(z=t.ownerDocument.documentElement):z="window"===b?t.ownerDocument.documentElement:b;var i=L(z,n,o);if("HTML"!==z.nodeName||function t(e){var p=e.nodeName;if("BODY"===p||"HTML"===p)return!1;if("fixed"===r(e,"position"))return!0;var b=O(e);return!!b&&t(b)}(n))M=i;else{var a=W(t.ownerDocument),A=a.height,s=a.width;M.top+=i.top-i.marginTop,M.bottom=A+i.top,M.left+=i.left-i.marginLeft,M.right=s+i.left}}var d="number"==typeof(p=p||0);return M.left+=d?p:p.left||0,M.top+=d?p:p.top||0,M.right-=d?p:p.right||0,M.bottom-=d?p:p.bottom||0,M}function N(t,e,p,b,o){var M=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===t.indexOf("auto"))return t;var n=y(p,b,M,o),z={top:{width:n.width,height:e.top-n.top},right:{width:n.right-e.right,height:n.height},bottom:{width:n.width,height:n.bottom-e.bottom},left:{width:e.left-n.left,height:n.height}},r=Object.keys(z).map(function(t){return m({key:t},z[t],{area:(e=z[t],e.width*e.height)});var e}).sort(function(t,e){return e.area-t.area}),O=r.filter(function(t){var e=t.width,b=t.height;return e>=p.clientWidth&&b>=p.clientHeight}),c=O.length>0?O[0].key:r[0].key,i=t.split("-")[1];return c+(i?"-"+i:"")}function _(t,e,p){var b=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return L(p,b?X(e):q(e,p),b)}function T(t){var e=t.ownerDocument.defaultView.getComputedStyle(t),p=parseFloat(e.marginTop||0)+parseFloat(e.marginBottom||0),b=parseFloat(e.marginLeft||0)+parseFloat(e.marginRight||0);return{width:t.offsetWidth+b,height:t.offsetHeight+p}}function x(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,function(t){return e[t]})}function w(t,e,p){p=p.split("-")[0];var b=T(t),o={width:b.width,height:b.height},M=-1!==["right","left"].indexOf(p),n=M?"top":"left",z=M?"left":"top",r=M?"height":"width",O=M?"width":"height";return o[n]=e[n]+e[r]/2-b[r]/2,o[z]=p===z?e[z]-b[O]:e[x(z)],o}function C(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function S(t,e,p){return(void 0===p?t:t.slice(0,function(t,e,p){if(Array.prototype.findIndex)return t.findIndex(function(t){return t[e]===p});var b=C(t,function(t){return t[e]===p});return t.indexOf(b)}(t,"name",p))).forEach(function(t){t.function;var p=t.function||t.fn;t.enabled&&z(p)&&(e.offsets.popper=g(e.offsets.popper),e.offsets.reference=g(e.offsets.reference),e=p(e,t))}),e}function H(t,e){return t.some(function(t){var p=t.name;return t.enabled&&p===e})}function E(t){for(var e=[!1,"ms","Webkit","Moz","O"],p=t.charAt(0).toUpperCase()+t.slice(1),b=0;b1&&void 0!==arguments[1]&&arguments[1],p=$.indexOf(t),b=$.slice(p+1).concat($.slice(0,p));return e?b.reverse():b}var K={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"};function G(t,e,p,b){var o=[0,0],M=-1!==["right","left"].indexOf(b),n=t.split(/(\+|\-)/).map(function(t){return t.trim()}),z=n.indexOf(C(n,function(t){return-1!==t.search(/,|\s/)}));n[z]&&n[z].indexOf(",");var r=/\s*,\s*|\s+/,O=-1!==z?[n.slice(0,z).concat([n[z].split(r)[0]]),[n[z].split(r)[1]].concat(n.slice(z+1))]:[n];return(O=O.map(function(t,b){var o=(1===b?!M:M)?"height":"width",n=!1;return t.reduce(function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,n=!0,t):n?(t[t.length-1]+=e,n=!1,t):t.concat(e)},[]).map(function(t){return function(t,e,p,b){var o=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),M=+o[1],n=o[2];if(!M)return t;if(0===n.indexOf("%")){var z=void 0;switch(n){case"%p":z=p;break;case"%":case"%r":default:z=b}return g(z)[e]/100*M}if("vh"===n||"vw"===n)return("vh"===n?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*M;return M}(t,o,e,p)})})).forEach(function(t,e){t.forEach(function(p,b){I(p)&&(o[e]+=p*("-"===t[b-1]?-1:1))})}),o}var J={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(t){var e=t.placement,p=e.split("-")[0],b=e.split("-")[1];if(b){var o=t.offsets,M=o.reference,n=o.popper,z=-1!==["bottom","top"].indexOf(p),r=z?"left":"top",O=z?"width":"height",c={start:v({},r,M[r]),end:v({},r,M[r]+M[O]-n[O])};t.offsets.popper=m({},n,c[b])}return t}},offset:{order:200,enabled:!0,fn:function(t,e){var p=e.offset,b=t.placement,o=t.offsets,M=o.popper,n=o.reference,z=b.split("-")[0],r=void 0;return r=I(+p)?[+p,0]:G(p,M,n,z),"left"===z?(M.top+=r[0],M.left-=r[1]):"right"===z?(M.top+=r[0],M.left+=r[1]):"top"===z?(M.left+=r[0],M.top-=r[1]):"bottom"===z&&(M.left+=r[0],M.top+=r[1]),t.popper=M,t},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,e){var p=e.boundariesElement||s(t.instance.popper);t.instance.reference===p&&(p=s(p));var b=E("transform"),o=t.instance.popper.style,M=o.top,n=o.left,z=o[b];o.top="",o.left="",o[b]="";var r=y(t.instance.popper,t.instance.reference,e.padding,p,t.positionFixed);o.top=M,o.left=n,o[b]=z,e.boundaries=r;var O=e.priority,c=t.offsets.popper,i={primary:function(t){var p=c[t];return c[t]r[t]&&!e.escapeWithReference&&(b=Math.min(c[p],r[t]-("right"===t?c.width:c.height))),v({},p,b)}};return O.forEach(function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";c=m({},c,i[e](t))}),t.offsets.popper=c,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,p=e.popper,b=e.reference,o=t.placement.split("-")[0],M=Math.floor,n=-1!==["top","bottom"].indexOf(o),z=n?"right":"bottom",r=n?"left":"top",O=n?"width":"height";return p[z]M(b[z])&&(t.offsets.popper[r]=M(b[z])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var p;if(!V(t.instance.modifiers,"arrow","keepTogether"))return t;var b=e.element;if("string"==typeof b){if(!(b=t.instance.popper.querySelector(b)))return t}else if(!t.instance.popper.contains(b))return t;var o=t.placement.split("-")[0],M=t.offsets,n=M.popper,z=M.reference,O=-1!==["left","right"].indexOf(o),c=O?"height":"width",i=O?"Top":"Left",a=i.toLowerCase(),A=O?"left":"top",s=O?"bottom":"right",d=T(b)[c];z[s]-dn[s]&&(t.offsets.popper[a]+=z[a]+d-n[s]),t.offsets.popper=g(t.offsets.popper);var q=z[a]+z[c]/2-d/2,l=r(t.instance.popper),u=parseFloat(l["margin"+i],10),f=parseFloat(l["border"+i+"Width"],10),W=q-t.offsets.popper[a]-u-f;return W=Math.max(Math.min(n[c]-d,W),0),t.arrowElement=b,t.offsets.arrow=(v(p={},a,Math.round(W)),v(p,A,""),p),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(t,e){if(H(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;var p=y(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement,t.positionFixed),b=t.placement.split("-")[0],o=x(b),M=t.placement.split("-")[1]||"",n=[];switch(e.behavior){case K.FLIP:n=[b,o];break;case K.CLOCKWISE:n=Y(b);break;case K.COUNTERCLOCKWISE:n=Y(b,!0);break;default:n=e.behavior}return n.forEach(function(z,r){if(b!==z||n.length===r+1)return t;b=t.placement.split("-")[0],o=x(b);var O=t.offsets.popper,c=t.offsets.reference,i=Math.floor,a="left"===b&&i(O.right)>i(c.left)||"right"===b&&i(O.left)i(c.top)||"bottom"===b&&i(O.top)i(p.right),d=i(O.top)i(p.bottom),l="left"===b&&A||"right"===b&&s||"top"===b&&d||"bottom"===b&&q,u=-1!==["top","bottom"].indexOf(b),f=!!e.flipVariations&&(u&&"start"===M&&A||u&&"end"===M&&s||!u&&"start"===M&&d||!u&&"end"===M&&q);(a||l||f)&&(t.flipped=!0,(a||l)&&(b=n[r+1]),f&&(M=function(t){return"end"===t?"start":"start"===t?"end":t}(M)),t.placement=b+(M?"-"+M:""),t.offsets.popper=m({},t.offsets.popper,w(t.instance.popper,t.offsets.reference,t.placement)),t=S(t.instance.modifiers,t,"flip"))}),t},behavior:"flip",padding:5,boundariesElement:"viewport"},inner:{order:700,enabled:!1,fn:function(t){var e=t.placement,p=e.split("-")[0],b=t.offsets,o=b.popper,M=b.reference,n=-1!==["left","right"].indexOf(p),z=-1===["top","left"].indexOf(p);return o[n?"left":"top"]=M[p]-(z?o[n?"width":"height"]:0),t.placement=x(e),t.offsets.popper=g(o),t}},hide:{order:800,enabled:!0,fn:function(t){if(!V(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,p=C(t.instance.modifiers,function(t){return"preventOverflow"===t.name}).boundaries;if(e.bottomp.right||e.top>p.bottom||e.right2&&void 0!==arguments[2]?arguments[2]:{};h(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(b.update)},this.update=n(this.update.bind(this)),this.options=m({},t.Defaults,o),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=e&&e.jquery?e[0]:e,this.popper=p&&p.jquery?p[0]:p,this.options.modifiers={},Object.keys(m({},t.Defaults.modifiers,o.modifiers)).forEach(function(e){b.options.modifiers[e]=m({},t.Defaults.modifiers[e]||{},o.modifiers?o.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(t){return m({name:t},b.options.modifiers[t])}).sort(function(t,e){return t.order-e.order}),this.modifiers.forEach(function(t){t.enabled&&z(t.onLoad)&&t.onLoad(b.reference,b.popper,b.options,t,b.state)}),this.update();var M=this.options.eventsEnabled;M&&this.enableEventListeners(),this.state.eventsEnabled=M}return R(t,[{key:"update",value:function(){return function(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=_(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=N(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,t.offsets.popper=w(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=S(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}.call(this)}},{key:"destroy",value:function(){return function(){return this.state.isDestroyed=!0,H(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.position="",this.popper.style.top="",this.popper.style.left="",this.popper.style.right="",this.popper.style.bottom="",this.popper.style.willChange="",this.popper.style[E("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}.call(this)}},{key:"enableEventListeners",value:function(){return function(){this.state.eventsEnabled||(this.state=k(this.reference,this.options,this.state,this.scheduleUpdate))}.call(this)}},{key:"disableEventListeners",value:function(){return D.call(this)}}]),t}();Q.Utils=("undefined"!=typeof window?window:t).PopperUtils,Q.placements=U,Q.Defaults=J,e.default=Q}.call(this,p("yLpj"))},"8TtQ":function(t,e,p){"use strict";var b=p("cdu6"),o=p("tjFV");t.exports=function(){var t=b.extend({getLabels:function(){var t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels},determineDataLimits:function(){var t,e=this,p=e.getLabels();e.minIndex=0,e.maxIndex=p.length-1,void 0!==e.options.ticks.min&&(t=p.indexOf(e.options.ticks.min),e.minIndex=-1!==t?t:e.minIndex),void 0!==e.options.ticks.max&&(t=p.indexOf(e.options.ticks.max),e.maxIndex=-1!==t?t:e.maxIndex),e.min=p[e.minIndex],e.max=p[e.maxIndex]},buildTicks:function(){var t=this,e=t.getLabels();t.ticks=0===t.minIndex&&t.maxIndex===e.length-1?e:e.slice(t.minIndex,t.maxIndex+1)},getLabelForIndex:function(t,e){var p=this,b=p.chart.data,o=p.isHorizontal();return b.yLabels&&!o?p.getRightValue(b.datasets[e].data[t]):p.ticks[t-p.minIndex]},getPixelForValue:function(t,e){var p,b=this,o=b.options.offset,M=Math.max(b.maxIndex+1-b.minIndex-(o?0:1),1);if(null!=t&&(p=b.isHorizontal()?t.x:t.y),void 0!==p||void 0!==t&&isNaN(e)){t=p||t;var n=b.getLabels().indexOf(t);e=-1!==n?n:e}if(b.isHorizontal()){var z=b.width/M,r=z*(e-b.minIndex);return o&&(r+=z/2),b.left+Math.round(r)}var O=b.height/M,c=O*(e-b.minIndex);return o&&(c+=O/2),b.top+Math.round(c)},getPixelForTick:function(t){return this.getPixelForValue(this.ticks[t],t+this.minIndex,null)},getValueForPixel:function(t){var e=this,p=e.options.offset,b=Math.max(e._ticks.length-(p?0:1),1),o=e.isHorizontal(),M=(o?e.width:e.height)/b;return t-=o?e.left:e.top,p&&(t-=M/2),(t<=0?0:Math.round(t/M))+e.minIndex},getBasePixel:function(){return this.bottom}});o.registerScaleType("category",t,{position:"bottom"})}},"8oxB":function(t,e){var p,b,o=t.exports={};function M(){throw new Error("setTimeout has not been defined")}function n(){throw new Error("clearTimeout has not been defined")}function z(t){if(p===setTimeout)return setTimeout(t,0);if((p===M||!p)&&setTimeout)return p=setTimeout,setTimeout(t,0);try{return p(t,0)}catch(e){try{return p.call(null,t,0)}catch(e){return p.call(this,t,0)}}}!function(){try{p="function"==typeof setTimeout?setTimeout:M}catch(t){p=M}try{b="function"==typeof clearTimeout?clearTimeout:n}catch(t){b=n}}();var r,O=[],c=!1,i=-1;function a(){c&&r&&(c=!1,r.length?O=r.concat(O):i=-1,O.length&&A())}function A(){if(!c){var t=z(a);c=!0;for(var e=O.length;e;){for(r=O,O=[];++i1)for(var p=1;p');for(var p=0;p'),t.data.datasets[p].label&&e.push(t.data.datasets[p].label),e.push("");return e.push(""),e.join("")}});var O=o.extend({initialize:function(t){M.extend(this,t),this.legendHitBoxes=[],this.doughnutMode=!1},beforeUpdate:z,update:function(t,e,p){var b=this;return b.beforeUpdate(),b.maxWidth=t,b.maxHeight=e,b.margins=p,b.beforeSetDimensions(),b.setDimensions(),b.afterSetDimensions(),b.beforeBuildLabels(),b.buildLabels(),b.afterBuildLabels(),b.beforeFit(),b.fit(),b.afterFit(),b.afterUpdate(),b.minSize},afterUpdate:z,beforeSetDimensions:z,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:z,beforeBuildLabels:z,buildLabels:function(){var t=this,e=t.options.labels||{},p=M.callback(e.generateLabels,[t.chart],t)||[];e.filter&&(p=p.filter(function(p){return e.filter(p,t.chart.data)})),t.options.reverse&&p.reverse(),t.legendItems=p},afterBuildLabels:z,beforeFit:z,fit:function(){var t=this,e=t.options,p=e.labels,o=e.display,n=t.ctx,z=b.global,O=M.valueOrDefault,c=O(p.fontSize,z.defaultFontSize),i=O(p.fontStyle,z.defaultFontStyle),a=O(p.fontFamily,z.defaultFontFamily),A=M.fontString(c,i,a),s=t.legendHitBoxes=[],d=t.minSize,q=t.isHorizontal();if(q?(d.width=t.maxWidth,d.height=o?10:0):(d.width=o?10:0,d.height=t.maxHeight),o)if(n.font=A,q){var l=t.lineWidths=[0],u=t.legendItems.length?c+p.padding:0;n.textAlign="left",n.textBaseline="top",M.each(t.legendItems,function(e,b){var o=r(p,c)+c/2+n.measureText(e.text).width;l[l.length-1]+o+p.padding>=t.width&&(u+=c+p.padding,l[l.length]=t.left),s[b]={left:0,top:0,width:o,height:c},l[l.length-1]+=o+p.padding}),d.height+=u}else{var f=p.padding,W=t.columnWidths=[],h=p.padding,R=0,v=0,m=c+f;M.each(t.legendItems,function(t,e){var b=r(p,c)+c/2+n.measureText(t.text).width;v+m>d.height&&(h+=R+p.padding,W.push(R),R=0,v=0),R=Math.max(R,b),v+=m,s[e]={left:0,top:0,width:b,height:c}}),h+=R,W.push(R),d.width+=h}t.width=d.width,t.height=d.height},afterFit:z,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var t=this,e=t.options,p=e.labels,o=b.global,n=o.elements.line,z=t.width,O=t.lineWidths;if(e.display){var c,i=t.ctx,a=M.valueOrDefault,A=a(p.fontColor,o.defaultFontColor),s=a(p.fontSize,o.defaultFontSize),d=a(p.fontStyle,o.defaultFontStyle),q=a(p.fontFamily,o.defaultFontFamily),l=M.fontString(s,d,q);i.textAlign="left",i.textBaseline="middle",i.lineWidth=.5,i.strokeStyle=A,i.fillStyle=A,i.font=l;var u=r(p,s),f=t.legendHitBoxes,W=t.isHorizontal();c=W?{x:t.left+(z-O[0])/2,y:t.top+p.padding,line:0}:{x:t.left+p.padding,y:t.top+p.padding,line:0};var h=s+p.padding;M.each(t.legendItems,function(b,r){var A=i.measureText(b.text).width,d=u+s/2+A,q=c.x,l=c.y;W?q+d>=z&&(l=c.y+=h,c.line++,q=c.x=t.left+(z-O[c.line])/2):l+h>t.bottom&&(q=c.x=q+t.columnWidths[c.line]+p.padding,l=c.y=t.top+p.padding,c.line++),function(t,p,b){if(!(isNaN(u)||u<=0)){i.save(),i.fillStyle=a(b.fillStyle,o.defaultColor),i.lineCap=a(b.lineCap,n.borderCapStyle),i.lineDashOffset=a(b.lineDashOffset,n.borderDashOffset),i.lineJoin=a(b.lineJoin,n.borderJoinStyle),i.lineWidth=a(b.lineWidth,n.borderWidth),i.strokeStyle=a(b.strokeStyle,o.defaultColor);var z=0===a(b.lineWidth,n.borderWidth);if(i.setLineDash&&i.setLineDash(a(b.lineDash,n.borderDash)),e.labels&&e.labels.usePointStyle){var r=s*Math.SQRT2/2,O=r/Math.SQRT2,c=t+O,A=p+O;M.canvas.drawPoint(i,b.pointStyle,r,c,A)}else z||i.strokeRect(t,p,u,s),i.fillRect(t,p,u,s);i.restore()}}(q,l,b),f[r].left=q,f[r].top=l,function(t,e,p,b){var o=s/2,M=u+o+t,n=e+o;i.fillText(p.text,M,n),p.hidden&&(i.beginPath(),i.lineWidth=2,i.moveTo(M,n),i.lineTo(M+b,n),i.stroke())}(q,l,b,A),W?c.x+=d+p.padding:c.y+=h})}},handleEvent:function(t){var e=this,p=e.options,b="mouseup"===t.type?"click":t.type,o=!1;if("mousemove"===b){if(!p.onHover)return}else{if("click"!==b)return;if(!p.onClick)return}var M=t.x,n=t.y;if(M>=e.left&&M<=e.right&&n>=e.top&&n<=e.bottom)for(var z=e.legendHitBoxes,r=0;r=O.left&&M<=O.left+O.width&&n>=O.top&&n<=O.top+O.height){if("click"===b){p.onClick.call(e,t.native,e.legendItems[r]),o=!0;break}if("mousemove"===b){p.onHover.call(e,t.native,e.legendItems[r]),o=!0;break}}}return o}});function c(t,e){var p=new O({ctx:t.ctx,options:e,chart:t});n.configure(t,p,e),n.addBox(t,p),t.legend=p}t.exports={id:"legend",_element:O,beforeInit:function(t){var e=t.options.legend;e&&c(t,e)},beforeUpdate:function(t){var e=t.options.legend,p=t.legend;e?(M.mergeIf(e,b.global.legend),p?(n.configure(t,p,e),p.options=e):c(t,e)):p&&(n.removeBox(t,p),delete t.legend)},afterEvent:function(t,e){var p=t.legend;p&&p.handleEvent(e)}}},As3K:function(t,e,p){"use strict";var b=p("TC34");t.exports={toLineHeight:function(t,e){var p=(""+t).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!p||"normal"===p[1])return 1.2*e;switch(t=+p[2],p[3]){case"px":return t;case"%":t/=100}return e*t},toPadding:function(t){var e,p,o,M;return b.isObject(t)?(e=+t.top||0,p=+t.right||0,o=+t.bottom||0,M=+t.left||0):e=p=o=M=+t||0,{top:e,right:p,bottom:o,left:M,height:e+o,width:M+p}},resolve:function(t,e,p){var o,M,n;for(o=0,M=t.length;o96?t-87:t>64?t-29:t-48}function c(t){var e=0,p=t.split("."),b=p[0],o=p[1]||"",M=1,n=0,z=1;for(45===t.charCodeAt(0)&&(e=1,z=-1);e3){var e=o[R(t)];if(e)return e;L("Moment Timezone found "+t+" from the Intl api, but did not have that data loaded.")}}catch(t){}var p,b,M,n=function(){var t,e,p,b=(new Date).getFullYear()-2,o=new d(new Date(b,0,1)),M=[o];for(p=1;p<48;p++)(e=new d(new Date(b,p,1))).offset!==o.offset&&(t=l(o,e),M.push(t),M.push(new d(new Date(t.at+6e4)))),o=e;for(p=0;p<4;p++)M.push(new d(new Date(b+p,0,1))),M.push(new d(new Date(b+p,6,1)));return M}(),z=n.length,r=W(n),O=[];for(b=0;b0?O[0].zone.name:void 0}function R(t){return(t||"").toLowerCase().replace(/\//g,"_")}function v(t){var e,b,M,n;for("string"==typeof t&&(t=[t]),e=0;e= 2.6.0. You are using Moment.js "+t.version+". See momentjs.com"),s.prototype={_set:function(t){this.name=t.name,this.abbrs=t.abbrs,this.untils=t.untils,this.offsets=t.offsets,this.population=t.population},_index:function(t){var e,p=+t,b=this.untils;for(e=0;eb&&X.moveInvalidForward&&(e=b),M0&&e-1 in t)}v.fn=v.prototype={jquery:"3.4.1",constructor:v,length:0,toArray:function(){return r.call(this)},get:function(t){return null==t?r.call(this):t<0?this[t+this.length]:this[t]},pushStack:function(t){var e=v.merge(this.constructor(),t);return e.prevObject=this,e},each:function(t){return v.each(this,t)},map:function(t){return this.pushStack(v.map(this,function(e,p){return t.call(e,p,e)}))},slice:function(){return this.pushStack(r.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(t){var e=this.length,p=+t+(t<0?e:0);return this.pushStack(p>=0&&p+~]|"+H+")"+H+"*"),V=new RegExp(H+"|>"),U=new RegExp(k),$=new RegExp("^"+E+"$"),Y={ID:new RegExp("^#("+E+")"),CLASS:new RegExp("^\\.("+E+")"),TAG:new RegExp("^("+E+"|[*])"),ATTR:new RegExp("^"+F),PSEUDO:new RegExp("^"+k),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+H+"*(even|odd|(([+-]|)(\\d*)n|)"+H+"*(?:([+-]|)"+H+"*(\\d+)|))"+H+"*\\)|)","i"),bool:new RegExp("^(?:"+S+")$","i"),needsContext:new RegExp("^"+H+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+H+"*((?:-\\d)?\\d*)"+H+"*\\)|)(?=[^-]|$)","i")},K=/HTML$/i,G=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,tt=/[+~]/,et=new RegExp("\\\\([\\da-f]{1,6}"+H+"?|("+H+")|.)","ig"),pt=function(t,e,p){var b="0x"+e-65536;return b!=b||p?e:b<0?String.fromCharCode(b+65536):String.fromCharCode(b>>10|55296,1023&b|56320)},bt=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ot=function(t,e){return e?"\0"===t?"�":t.slice(0,-1)+"\\"+t.charCodeAt(t.length-1).toString(16)+" ":"\\"+t},Mt=function(){a()},nt=Wt(function(t){return!0===t.disabled&&"fieldset"===t.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{x.apply(N=w.call(h.childNodes),h.childNodes),N[h.childNodes.length].nodeType}catch(t){x={apply:N.length?function(t,e){T.apply(t,w.call(e))}:function(t,e){for(var p=t.length,b=0;t[p++]=e[b++];);t.length=p-1}}}function zt(t,e,b,o){var M,z,O,c,i,s,l,u=e&&e.ownerDocument,R=e?e.nodeType:9;if(b=b||[],"string"!=typeof t||!t||1!==R&&9!==R&&11!==R)return b;if(!o&&((e?e.ownerDocument||e:h)!==A&&a(e),e=e||A,d)){if(11!==R&&(i=Z.exec(t)))if(M=i[1]){if(9===R){if(!(O=e.getElementById(M)))return b;if(O.id===M)return b.push(O),b}else if(u&&(O=u.getElementById(M))&&f(e,O)&&O.id===M)return b.push(O),b}else{if(i[2])return x.apply(b,e.getElementsByTagName(t)),b;if((M=i[3])&&p.getElementsByClassName&&e.getElementsByClassName)return x.apply(b,e.getElementsByClassName(M)),b}if(p.qsa&&!L[t+" "]&&(!q||!q.test(t))&&(1!==R||"object"!==e.nodeName.toLowerCase())){if(l=t,u=e,1===R&&V.test(t)){for((c=e.getAttribute("id"))?c=c.replace(bt,ot):e.setAttribute("id",c=W),z=(s=n(t)).length;z--;)s[z]="#"+c+" "+ft(s[z]);l=s.join(","),u=tt.test(t)&<(e.parentNode)||e}try{return x.apply(b,u.querySelectorAll(l)),b}catch(e){L(t,!0)}finally{c===W&&e.removeAttribute("id")}}}return r(t.replace(I,"$1"),e,b,o)}function rt(){var t=[];return function e(p,o){return t.push(p+" ")>b.cacheLength&&delete e[t.shift()],e[p+" "]=o}}function Ot(t){return t[W]=!0,t}function ct(t){var e=A.createElement("fieldset");try{return!!t(e)}catch(t){return!1}finally{e.parentNode&&e.parentNode.removeChild(e),e=null}}function it(t,e){for(var p=t.split("|"),o=p.length;o--;)b.attrHandle[p[o]]=e}function at(t,e){var p=e&&t,b=p&&1===t.nodeType&&1===e.nodeType&&t.sourceIndex-e.sourceIndex;if(b)return b;if(p)for(;p=p.nextSibling;)if(p===e)return-1;return t?1:-1}function At(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function st(t){return function(e){var p=e.nodeName.toLowerCase();return("input"===p||"button"===p)&&e.type===t}}function dt(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&nt(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function qt(t){return Ot(function(e){return e=+e,Ot(function(p,b){for(var o,M=t([],p.length,e),n=M.length;n--;)p[o=M[n]]&&(p[o]=!(b[o]=p[o]))})})}function lt(t){return t&&void 0!==t.getElementsByTagName&&t}for(e in p=zt.support={},M=zt.isXML=function(t){var e=t.namespaceURI,p=(t.ownerDocument||t).documentElement;return!K.test(e||p&&p.nodeName||"HTML")},a=zt.setDocument=function(t){var e,o,n=t?t.ownerDocument||t:h;return n!==A&&9===n.nodeType&&n.documentElement?(s=(A=n).documentElement,d=!M(A),h!==A&&(o=A.defaultView)&&o.top!==o&&(o.addEventListener?o.addEventListener("unload",Mt,!1):o.attachEvent&&o.attachEvent("onunload",Mt)),p.attributes=ct(function(t){return t.className="i",!t.getAttribute("className")}),p.getElementsByTagName=ct(function(t){return t.appendChild(A.createComment("")),!t.getElementsByTagName("*").length}),p.getElementsByClassName=Q.test(A.getElementsByClassName),p.getById=ct(function(t){return s.appendChild(t).id=W,!A.getElementsByName||!A.getElementsByName(W).length}),p.getById?(b.filter.ID=function(t){var e=t.replace(et,pt);return function(t){return t.getAttribute("id")===e}},b.find.ID=function(t,e){if(void 0!==e.getElementById&&d){var p=e.getElementById(t);return p?[p]:[]}}):(b.filter.ID=function(t){var e=t.replace(et,pt);return function(t){var p=void 0!==t.getAttributeNode&&t.getAttributeNode("id");return p&&p.value===e}},b.find.ID=function(t,e){if(void 0!==e.getElementById&&d){var p,b,o,M=e.getElementById(t);if(M){if((p=M.getAttributeNode("id"))&&p.value===t)return[M];for(o=e.getElementsByName(t),b=0;M=o[b++];)if((p=M.getAttributeNode("id"))&&p.value===t)return[M]}return[]}}),b.find.TAG=p.getElementsByTagName?function(t,e){return void 0!==e.getElementsByTagName?e.getElementsByTagName(t):p.qsa?e.querySelectorAll(t):void 0}:function(t,e){var p,b=[],o=0,M=e.getElementsByTagName(t);if("*"===t){for(;p=M[o++];)1===p.nodeType&&b.push(p);return b}return M},b.find.CLASS=p.getElementsByClassName&&function(t,e){if(void 0!==e.getElementsByClassName&&d)return e.getElementsByClassName(t)},l=[],q=[],(p.qsa=Q.test(A.querySelectorAll))&&(ct(function(t){s.appendChild(t).innerHTML="",t.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+H+"*(?:''|\"\")"),t.querySelectorAll("[selected]").length||q.push("\\["+H+"*(?:value|"+S+")"),t.querySelectorAll("[id~="+W+"-]").length||q.push("~="),t.querySelectorAll(":checked").length||q.push(":checked"),t.querySelectorAll("a#"+W+"+*").length||q.push(".#.+[+~]")}),ct(function(t){t.innerHTML="";var e=A.createElement("input");e.setAttribute("type","hidden"),t.appendChild(e).setAttribute("name","D"),t.querySelectorAll("[name=d]").length&&q.push("name"+H+"*[*^$|!~]?="),2!==t.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),s.appendChild(t).disabled=!0,2!==t.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),t.querySelectorAll("*,:x"),q.push(",.*:")})),(p.matchesSelector=Q.test(u=s.matches||s.webkitMatchesSelector||s.mozMatchesSelector||s.oMatchesSelector||s.msMatchesSelector))&&ct(function(t){p.disconnectedMatch=u.call(t,"*"),u.call(t,"[s!='']:x"),l.push("!=",k)}),q=q.length&&new RegExp(q.join("|")),l=l.length&&new RegExp(l.join("|")),e=Q.test(s.compareDocumentPosition),f=e||Q.test(s.contains)?function(t,e){var p=9===t.nodeType?t.documentElement:t,b=e&&e.parentNode;return t===b||!(!b||1!==b.nodeType||!(p.contains?p.contains(b):t.compareDocumentPosition&&16&t.compareDocumentPosition(b)))}:function(t,e){if(e)for(;e=e.parentNode;)if(e===t)return!0;return!1},X=e?function(t,e){if(t===e)return i=!0,0;var b=!t.compareDocumentPosition-!e.compareDocumentPosition;return b||(1&(b=(t.ownerDocument||t)===(e.ownerDocument||e)?t.compareDocumentPosition(e):1)||!p.sortDetached&&e.compareDocumentPosition(t)===b?t===A||t.ownerDocument===h&&f(h,t)?-1:e===A||e.ownerDocument===h&&f(h,e)?1:c?C(c,t)-C(c,e):0:4&b?-1:1)}:function(t,e){if(t===e)return i=!0,0;var p,b=0,o=t.parentNode,M=e.parentNode,n=[t],z=[e];if(!o||!M)return t===A?-1:e===A?1:o?-1:M?1:c?C(c,t)-C(c,e):0;if(o===M)return at(t,e);for(p=t;p=p.parentNode;)n.unshift(p);for(p=e;p=p.parentNode;)z.unshift(p);for(;n[b]===z[b];)b++;return b?at(n[b],z[b]):n[b]===h?-1:z[b]===h?1:0},A):A},zt.matches=function(t,e){return zt(t,null,null,e)},zt.matchesSelector=function(t,e){if((t.ownerDocument||t)!==A&&a(t),p.matchesSelector&&d&&!L[e+" "]&&(!l||!l.test(e))&&(!q||!q.test(e)))try{var b=u.call(t,e);if(b||p.disconnectedMatch||t.document&&11!==t.document.nodeType)return b}catch(t){L(e,!0)}return zt(e,A,null,[t]).length>0},zt.contains=function(t,e){return(t.ownerDocument||t)!==A&&a(t),f(t,e)},zt.attr=function(t,e){(t.ownerDocument||t)!==A&&a(t);var o=b.attrHandle[e.toLowerCase()],M=o&&y.call(b.attrHandle,e.toLowerCase())?o(t,e,!d):void 0;return void 0!==M?M:p.attributes||!d?t.getAttribute(e):(M=t.getAttributeNode(e))&&M.specified?M.value:null},zt.escape=function(t){return(t+"").replace(bt,ot)},zt.error=function(t){throw new Error("Syntax error, unrecognized expression: "+t)},zt.uniqueSort=function(t){var e,b=[],o=0,M=0;if(i=!p.detectDuplicates,c=!p.sortStable&&t.slice(0),t.sort(X),i){for(;e=t[M++];)e===t[M]&&(o=b.push(M));for(;o--;)t.splice(b[o],1)}return c=null,t},o=zt.getText=function(t){var e,p="",b=0,M=t.nodeType;if(M){if(1===M||9===M||11===M){if("string"==typeof t.textContent)return t.textContent;for(t=t.firstChild;t;t=t.nextSibling)p+=o(t)}else if(3===M||4===M)return t.nodeValue}else for(;e=t[b++];)p+=o(e);return p},(b=zt.selectors={cacheLength:50,createPseudo:Ot,match:Y,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(t){return t[1]=t[1].replace(et,pt),t[3]=(t[3]||t[4]||t[5]||"").replace(et,pt),"~="===t[2]&&(t[3]=" "+t[3]+" "),t.slice(0,4)},CHILD:function(t){return t[1]=t[1].toLowerCase(),"nth"===t[1].slice(0,3)?(t[3]||zt.error(t[0]),t[4]=+(t[4]?t[5]+(t[6]||1):2*("even"===t[3]||"odd"===t[3])),t[5]=+(t[7]+t[8]||"odd"===t[3])):t[3]&&zt.error(t[0]),t},PSEUDO:function(t){var e,p=!t[6]&&t[2];return Y.CHILD.test(t[0])?null:(t[3]?t[2]=t[4]||t[5]||"":p&&U.test(p)&&(e=n(p,!0))&&(e=p.indexOf(")",p.length-e)-p.length)&&(t[0]=t[0].slice(0,e),t[2]=p.slice(0,e)),t.slice(0,3))}},filter:{TAG:function(t){var e=t.replace(et,pt).toLowerCase();return"*"===t?function(){return!0}:function(t){return t.nodeName&&t.nodeName.toLowerCase()===e}},CLASS:function(t){var e=m[t+" "];return e||(e=new RegExp("(^|"+H+")"+t+"("+H+"|$)"))&&m(t,function(t){return e.test("string"==typeof t.className&&t.className||void 0!==t.getAttribute&&t.getAttribute("class")||"")})},ATTR:function(t,e,p){return function(b){var o=zt.attr(b,t);return null==o?"!="===e:!e||(o+="","="===e?o===p:"!="===e?o!==p:"^="===e?p&&0===o.indexOf(p):"*="===e?p&&o.indexOf(p)>-1:"$="===e?p&&o.slice(-p.length)===p:"~="===e?(" "+o.replace(D," ")+" ").indexOf(p)>-1:"|="===e&&(o===p||o.slice(0,p.length+1)===p+"-"))}},CHILD:function(t,e,p,b,o){var M="nth"!==t.slice(0,3),n="last"!==t.slice(-4),z="of-type"===e;return 1===b&&0===o?function(t){return!!t.parentNode}:function(e,p,r){var O,c,i,a,A,s,d=M!==n?"nextSibling":"previousSibling",q=e.parentNode,l=z&&e.nodeName.toLowerCase(),u=!r&&!z,f=!1;if(q){if(M){for(;d;){for(a=e;a=a[d];)if(z?a.nodeName.toLowerCase()===l:1===a.nodeType)return!1;s=d="only"===t&&!s&&"nextSibling"}return!0}if(s=[n?q.firstChild:q.lastChild],n&&u){for(f=(A=(O=(c=(i=(a=q)[W]||(a[W]={}))[a.uniqueID]||(i[a.uniqueID]={}))[t]||[])[0]===R&&O[1])&&O[2],a=A&&q.childNodes[A];a=++A&&a&&a[d]||(f=A=0)||s.pop();)if(1===a.nodeType&&++f&&a===e){c[t]=[R,A,f];break}}else if(u&&(f=A=(O=(c=(i=(a=e)[W]||(a[W]={}))[a.uniqueID]||(i[a.uniqueID]={}))[t]||[])[0]===R&&O[1]),!1===f)for(;(a=++A&&a&&a[d]||(f=A=0)||s.pop())&&((z?a.nodeName.toLowerCase()!==l:1!==a.nodeType)||!++f||(u&&((c=(i=a[W]||(a[W]={}))[a.uniqueID]||(i[a.uniqueID]={}))[t]=[R,f]),a!==e)););return(f-=o)===b||f%b==0&&f/b>=0}}},PSEUDO:function(t,e){var p,o=b.pseudos[t]||b.setFilters[t.toLowerCase()]||zt.error("unsupported pseudo: "+t);return o[W]?o(e):o.length>1?(p=[t,t,"",e],b.setFilters.hasOwnProperty(t.toLowerCase())?Ot(function(t,p){for(var b,M=o(t,e),n=M.length;n--;)t[b=C(t,M[n])]=!(p[b]=M[n])}):function(t){return o(t,0,p)}):o}},pseudos:{not:Ot(function(t){var e=[],p=[],b=z(t.replace(I,"$1"));return b[W]?Ot(function(t,e,p,o){for(var M,n=b(t,null,o,[]),z=t.length;z--;)(M=n[z])&&(t[z]=!(e[z]=M))}):function(t,o,M){return e[0]=t,b(e,null,M,p),e[0]=null,!p.pop()}}),has:Ot(function(t){return function(e){return zt(t,e).length>0}}),contains:Ot(function(t){return t=t.replace(et,pt),function(e){return(e.textContent||o(e)).indexOf(t)>-1}}),lang:Ot(function(t){return $.test(t||"")||zt.error("unsupported lang: "+t),t=t.replace(et,pt).toLowerCase(),function(e){var p;do{if(p=d?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(p=p.toLowerCase())===t||0===p.indexOf(t+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var p=t.location&&t.location.hash;return p&&p.slice(1)===e.id},root:function(t){return t===s},focus:function(t){return t===A.activeElement&&(!A.hasFocus||A.hasFocus())&&!!(t.type||t.href||~t.tabIndex)},enabled:dt(!1),disabled:dt(!0),checked:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&!!t.checked||"option"===e&&!!t.selected},selected:function(t){return t.parentNode&&t.parentNode.selectedIndex,!0===t.selected},empty:function(t){for(t=t.firstChild;t;t=t.nextSibling)if(t.nodeType<6)return!1;return!0},parent:function(t){return!b.pseudos.empty(t)},header:function(t){return J.test(t.nodeName)},input:function(t){return G.test(t.nodeName)},button:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&"button"===t.type||"button"===e},text:function(t){var e;return"input"===t.nodeName.toLowerCase()&&"text"===t.type&&(null==(e=t.getAttribute("type"))||"text"===e.toLowerCase())},first:qt(function(){return[0]}),last:qt(function(t,e){return[e-1]}),eq:qt(function(t,e,p){return[p<0?p+e:p]}),even:qt(function(t,e){for(var p=0;pe?e:p;--b>=0;)t.push(b);return t}),gt:qt(function(t,e,p){for(var b=p<0?p+e:p;++b1?function(e,p,b){for(var o=t.length;o--;)if(!t[o](e,p,b))return!1;return!0}:t[0]}function Rt(t,e,p,b,o){for(var M,n=[],z=0,r=t.length,O=null!=e;z-1&&(M[O]=!(n[O]=i))}}else l=Rt(l===n?l.splice(s,l.length):l),o?o(null,n,l,r):x.apply(n,l)})}function mt(t){for(var e,p,o,M=t.length,n=b.relative[t[0].type],z=n||b.relative[" "],r=n?1:0,c=Wt(function(t){return t===e},z,!0),i=Wt(function(t){return C(e,t)>-1},z,!0),a=[function(t,p,b){var o=!n&&(b||p!==O)||((e=p).nodeType?c(t,p,b):i(t,p,b));return e=null,o}];r1&&ht(a),r>1&&ft(t.slice(0,r-1).concat({value:" "===t[r-2].type?"*":""})).replace(I,"$1"),p,r0,o=t.length>0,M=function(M,n,z,r,c){var i,s,q,l=0,u="0",f=M&&[],W=[],h=O,v=M||o&&b.find.TAG("*",c),m=R+=null==h?1:Math.random()||.1,g=v.length;for(c&&(O=n===A||n||c);u!==g&&null!=(i=v[u]);u++){if(o&&i){for(s=0,n||i.ownerDocument===A||(a(i),z=!d);q=t[s++];)if(q(i,n||A,z)){r.push(i);break}c&&(R=m)}p&&((i=!q&&i)&&l--,M&&f.push(i))}if(l+=u,p&&u!==l){for(s=0;q=e[s++];)q(f,W,n,z);if(M){if(l>0)for(;u--;)f[u]||W[u]||(W[u]=_.call(r));W=Rt(W)}x.apply(r,W),c&&!M&&W.length>0&&l+e.length>1&&zt.uniqueSort(r)}return c&&(R=m,O=h),f};return p?Ot(M):M}(M,o))).selector=t}return z},r=zt.select=function(t,e,p,o){var M,r,O,c,i,a="function"==typeof t&&t,A=!o&&n(t=a.selector||t);if(p=p||[],1===A.length){if((r=A[0]=A[0].slice(0)).length>2&&"ID"===(O=r[0]).type&&9===e.nodeType&&d&&b.relative[r[1].type]){if(!(e=(b.find.ID(O.matches[0].replace(et,pt),e)||[])[0]))return p;a&&(e=e.parentNode),t=t.slice(r.shift().value.length)}for(M=Y.needsContext.test(t)?0:r.length;M--&&(O=r[M],!b.relative[c=O.type]);)if((i=b.find[c])&&(o=i(O.matches[0].replace(et,pt),tt.test(r[0].type)&<(e.parentNode)||e))){if(r.splice(M,1),!(t=o.length&&ft(r)))return x.apply(p,o),p;break}}return(a||z(t,A))(o,e,!d,p,!e||tt.test(t)&<(e.parentNode)||e),p},p.sortStable=W.split("").sort(X).join("")===W,p.detectDuplicates=!!i,a(),p.sortDetached=ct(function(t){return 1&t.compareDocumentPosition(A.createElement("fieldset"))}),ct(function(t){return t.innerHTML="","#"===t.firstChild.getAttribute("href")})||it("type|href|height|width",function(t,e,p){if(!p)return t.getAttribute(e,"type"===e.toLowerCase()?1:2)}),p.attributes&&ct(function(t){return t.innerHTML="",t.firstChild.setAttribute("value",""),""===t.firstChild.getAttribute("value")})||it("value",function(t,e,p){if(!p&&"input"===t.nodeName.toLowerCase())return t.defaultValue}),ct(function(t){return null==t.getAttribute("disabled")})||it(S,function(t,e,p){var b;if(!p)return!0===t[e]?e.toLowerCase():(b=t.getAttributeNode(e))&&b.specified?b.value:null}),zt}(p);v.find=B,v.expr=B.selectors,v.expr[":"]=v.expr.pseudos,v.uniqueSort=v.unique=B.uniqueSort,v.text=B.getText,v.isXMLDoc=B.isXML,v.contains=B.contains,v.escapeSelector=B.escape;var L=function(t,e,p){for(var b=[],o=void 0!==p;(t=t[e])&&9!==t.nodeType;)if(1===t.nodeType){if(o&&v(t).is(p))break;b.push(t)}return b},X=function(t,e){for(var p=[];t;t=t.nextSibling)1===t.nodeType&&t!==e&&p.push(t);return p},y=v.expr.match.needsContext;function N(t,e){return t.nodeName&&t.nodeName.toLowerCase()===e.toLowerCase()}var _=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(t,e,p){return u(e)?v.grep(t,function(t,b){return!!e.call(t,b,t)!==p}):e.nodeType?v.grep(t,function(t){return t===e!==p}):"string"!=typeof e?v.grep(t,function(t){return i.call(e,t)>-1!==p}):v.filter(e,t,p)}v.filter=function(t,e,p){var b=e[0];return p&&(t=":not("+t+")"),1===e.length&&1===b.nodeType?v.find.matchesSelector(b,t)?[b]:[]:v.find.matches(t,v.grep(e,function(t){return 1===t.nodeType}))},v.fn.extend({find:function(t){var e,p,b=this.length,o=this;if("string"!=typeof t)return this.pushStack(v(t).filter(function(){for(e=0;e1?v.uniqueSort(p):p},filter:function(t){return this.pushStack(T(this,t||[],!1))},not:function(t){return this.pushStack(T(this,t||[],!0))},is:function(t){return!!T(this,"string"==typeof t&&y.test(t)?v(t):t||[],!1).length}});var x,w=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(v.fn.init=function(t,e,p){var b,o;if(!t)return this;if(p=p||x,"string"==typeof t){if(!(b="<"===t[0]&&">"===t[t.length-1]&&t.length>=3?[null,t,null]:w.exec(t))||!b[1]&&e)return!e||e.jquery?(e||p).find(t):this.constructor(e).find(t);if(b[1]){if(e=e instanceof v?e[0]:e,v.merge(this,v.parseHTML(b[1],e&&e.nodeType?e.ownerDocument||e:n,!0)),_.test(b[1])&&v.isPlainObject(e))for(b in e)u(this[b])?this[b](e[b]):this.attr(b,e[b]);return this}return(o=n.getElementById(b[2]))&&(this[0]=o,this.length=1),this}return t.nodeType?(this[0]=t,this.length=1,this):u(t)?void 0!==p.ready?p.ready(t):t(v):v.makeArray(t,this)}).prototype=v.fn,x=v(n);var C=/^(?:parents|prev(?:Until|All))/,S={children:!0,contents:!0,next:!0,prev:!0};function H(t,e){for(;(t=t[e])&&1!==t.nodeType;);return t}v.fn.extend({has:function(t){var e=v(t,this),p=e.length;return this.filter(function(){for(var t=0;t-1:1===p.nodeType&&v.find.matchesSelector(p,t))){M.push(p);break}return this.pushStack(M.length>1?v.uniqueSort(M):M)},index:function(t){return t?"string"==typeof t?i.call(v(t),this[0]):i.call(this,t.jquery?t[0]:t):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(t,e){return this.pushStack(v.uniqueSort(v.merge(this.get(),v(t,e))))},addBack:function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}}),v.each({parent:function(t){var e=t.parentNode;return e&&11!==e.nodeType?e:null},parents:function(t){return L(t,"parentNode")},parentsUntil:function(t,e,p){return L(t,"parentNode",p)},next:function(t){return H(t,"nextSibling")},prev:function(t){return H(t,"previousSibling")},nextAll:function(t){return L(t,"nextSibling")},prevAll:function(t){return L(t,"previousSibling")},nextUntil:function(t,e,p){return L(t,"nextSibling",p)},prevUntil:function(t,e,p){return L(t,"previousSibling",p)},siblings:function(t){return X((t.parentNode||{}).firstChild,t)},children:function(t){return X(t.firstChild)},contents:function(t){return void 0!==t.contentDocument?t.contentDocument:(N(t,"template")&&(t=t.content||t),v.merge([],t.childNodes))}},function(t,e){v.fn[t]=function(p,b){var o=v.map(this,e,p);return"Until"!==t.slice(-5)&&(b=p),b&&"string"==typeof b&&(o=v.filter(b,o)),this.length>1&&(S[t]||v.uniqueSort(o),C.test(t)&&o.reverse()),this.pushStack(o)}});var E=/[^\x20\t\r\n\f]+/g;function F(t){return t}function k(t){throw t}function D(t,e,p,b){var o;try{t&&u(o=t.promise)?o.call(t).done(e).fail(p):t&&u(o=t.then)?o.call(t,e,p):e.apply(void 0,[t].slice(b))}catch(t){p.apply(void 0,[t])}}v.Callbacks=function(t){t="string"==typeof t?function(t){var e={};return v.each(t.match(E)||[],function(t,p){e[p]=!0}),e}(t):v.extend({},t);var e,p,b,o,M=[],n=[],z=-1,r=function(){for(o=o||t.once,b=e=!0;n.length;z=-1)for(p=n.shift();++z-1;)M.splice(p,1),p<=z&&z--}),this},has:function(t){return t?v.inArray(t,M)>-1:M.length>0},empty:function(){return M&&(M=[]),this},disable:function(){return o=n=[],M=p="",this},disabled:function(){return!M},lock:function(){return o=n=[],p||e||(M=p=""),this},locked:function(){return!!o},fireWith:function(t,p){return o||(p=[t,(p=p||[]).slice?p.slice():p],n.push(p),e||r()),this},fire:function(){return O.fireWith(this,arguments),this},fired:function(){return!!b}};return O},v.extend({Deferred:function(t){var e=[["notify","progress",v.Callbacks("memory"),v.Callbacks("memory"),2],["resolve","done",v.Callbacks("once memory"),v.Callbacks("once memory"),0,"resolved"],["reject","fail",v.Callbacks("once memory"),v.Callbacks("once memory"),1,"rejected"]],b="pending",o={state:function(){return b},always:function(){return M.done(arguments).fail(arguments),this},catch:function(t){return o.then(null,t)},pipe:function(){var t=arguments;return v.Deferred(function(p){v.each(e,function(e,b){var o=u(t[b[4]])&&t[b[4]];M[b[1]](function(){var t=o&&o.apply(this,arguments);t&&u(t.promise)?t.promise().progress(p.notify).done(p.resolve).fail(p.reject):p[b[0]+"With"](this,o?[t]:arguments)})}),t=null}).promise()},then:function(t,b,o){var M=0;function n(t,e,b,o){return function(){var z=this,r=arguments,O=function(){var p,O;if(!(t=M&&(b!==k&&(z=void 0,r=[p]),e.rejectWith(z,r))}};t?c():(v.Deferred.getStackHook&&(c.stackTrace=v.Deferred.getStackHook()),p.setTimeout(c))}}return v.Deferred(function(p){e[0][3].add(n(0,p,u(o)?o:F,p.notifyWith)),e[1][3].add(n(0,p,u(t)?t:F)),e[2][3].add(n(0,p,u(b)?b:k))}).promise()},promise:function(t){return null!=t?v.extend(t,o):o}},M={};return v.each(e,function(t,p){var n=p[2],z=p[5];o[p[1]]=n.add,z&&n.add(function(){b=z},e[3-t][2].disable,e[3-t][3].disable,e[0][2].lock,e[0][3].lock),n.add(p[3].fire),M[p[0]]=function(){return M[p[0]+"With"](this===M?void 0:this,arguments),this},M[p[0]+"With"]=n.fireWith}),o.promise(M),t&&t.call(M,M),M},when:function(t){var e=arguments.length,p=e,b=Array(p),o=r.call(arguments),M=v.Deferred(),n=function(t){return function(p){b[t]=this,o[t]=arguments.length>1?r.call(arguments):p,--e||M.resolveWith(b,o)}};if(e<=1&&(D(t,M.done(n(p)).resolve,M.reject,!e),"pending"===M.state()||u(o[p]&&o[p].then)))return M.then();for(;p--;)D(o[p],n(p),M.reject);return M.promise()}});var I=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;v.Deferred.exceptionHook=function(t,e){p.console&&p.console.warn&&t&&I.test(t.name)&&p.console.warn("jQuery.Deferred exception: "+t.message,t.stack,e)},v.readyException=function(t){p.setTimeout(function(){throw t})};var P=v.Deferred();function j(){n.removeEventListener("DOMContentLoaded",j),p.removeEventListener("load",j),v.ready()}v.fn.ready=function(t){return P.then(t).catch(function(t){v.readyException(t)}),this},v.extend({isReady:!1,readyWait:1,ready:function(t){(!0===t?--v.readyWait:v.isReady)||(v.isReady=!0,!0!==t&&--v.readyWait>0||P.resolveWith(n,[v]))}}),v.ready.then=P.then,"complete"===n.readyState||"loading"!==n.readyState&&!n.documentElement.doScroll?p.setTimeout(v.ready):(n.addEventListener("DOMContentLoaded",j),p.addEventListener("load",j));var V=function(t,e,p,b,o,M,n){var z=0,r=t.length,O=null==p;if("object"===R(p))for(z in o=!0,p)V(t,e,z,p[z],!0,M,n);else if(void 0!==b&&(o=!0,u(b)||(n=!0),O&&(n?(e.call(t,b),e=null):(O=e,e=function(t,e,p){return O.call(v(t),p)})),e))for(;z1,null,!0)},removeData:function(t){return this.each(function(){Z.remove(this,t)})}}),v.extend({queue:function(t,e,p){var b;if(t)return e=(e||"fx")+"queue",b=Q.get(t,e),p&&(!b||Array.isArray(p)?b=Q.access(t,e,v.makeArray(p)):b.push(p)),b||[]},dequeue:function(t,e){e=e||"fx";var p=v.queue(t,e),b=p.length,o=p.shift(),M=v._queueHooks(t,e);"inprogress"===o&&(o=p.shift(),b--),o&&("fx"===e&&p.unshift("inprogress"),delete M.stop,o.call(t,function(){v.dequeue(t,e)},M)),!b&&M&&M.empty.fire()},_queueHooks:function(t,e){var p=e+"queueHooks";return Q.get(t,p)||Q.access(t,p,{empty:v.Callbacks("once memory").add(function(){Q.remove(t,[e+"queue",p])})})}}),v.fn.extend({queue:function(t,e){var p=2;return"string"!=typeof t&&(e=t,t="fx",p--),arguments.length\x20\t\r\n\f]*)/i,lt=/^$|^module$|\/(?:java|ecma)script/i,ut={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ft(t,e){var p;return p=void 0!==t.getElementsByTagName?t.getElementsByTagName(e||"*"):void 0!==t.querySelectorAll?t.querySelectorAll(e||"*"):[],void 0===e||e&&N(t,e)?v.merge([t],p):p}function Wt(t,e){for(var p=0,b=t.length;p-1)o&&o.push(M);else if(O=zt(M),n=ft(i.appendChild(M),"script"),O&&Wt(n),p)for(c=0;M=n[c++];)lt.test(M.type||"")&&p.push(M);return i}ht=n.createDocumentFragment().appendChild(n.createElement("div")),(Rt=n.createElement("input")).setAttribute("type","radio"),Rt.setAttribute("checked","checked"),Rt.setAttribute("name","t"),ht.appendChild(Rt),l.checkClone=ht.cloneNode(!0).cloneNode(!0).lastChild.checked,ht.innerHTML="",l.noCloneChecked=!!ht.cloneNode(!0).lastChild.defaultValue;var gt=/^key/,Bt=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Lt=/^([^.]*)(?:\.(.+)|)/;function Xt(){return!0}function yt(){return!1}function Nt(t,e){return t===function(){try{return n.activeElement}catch(t){}}()==("focus"===e)}function _t(t,e,p,b,o,M){var n,z;if("object"==typeof e){for(z in"string"!=typeof p&&(b=b||p,p=void 0),e)_t(t,z,p,b,e[z],M);return t}if(null==b&&null==o?(o=p,b=p=void 0):null==o&&("string"==typeof p?(o=b,b=void 0):(o=b,b=p,p=void 0)),!1===o)o=yt;else if(!o)return t;return 1===M&&(n=o,(o=function(t){return v().off(t),n.apply(this,arguments)}).guid=n.guid||(n.guid=v.guid++)),t.each(function(){v.event.add(this,e,o,b,p)})}function Tt(t,e,p){p?(Q.set(t,e,!1),v.event.add(t,e,{namespace:!1,handler:function(t){var b,o,M=Q.get(this,e);if(1&t.isTrigger&&this[e]){if(M.length)(v.event.special[e]||{}).delegateType&&t.stopPropagation();else if(M=r.call(arguments),Q.set(this,e,M),b=p(this,e),this[e](),M!==(o=Q.get(this,e))||b?Q.set(this,e,!1):o={},M!==o)return t.stopImmediatePropagation(),t.preventDefault(),o.value}else M.length&&(Q.set(this,e,{value:v.event.trigger(v.extend(M[0],v.Event.prototype),M.slice(1),this)}),t.stopImmediatePropagation())}})):void 0===Q.get(t,e)&&v.event.add(t,e,Xt)}v.event={global:{},add:function(t,e,p,b,o){var M,n,z,r,O,c,i,a,A,s,d,q=Q.get(t);if(q)for(p.handler&&(p=(M=p).handler,o=M.selector),o&&v.find.matchesSelector(nt,o),p.guid||(p.guid=v.guid++),(r=q.events)||(r=q.events={}),(n=q.handle)||(n=q.handle=function(e){return void 0!==v&&v.event.triggered!==e.type?v.event.dispatch.apply(t,arguments):void 0}),O=(e=(e||"").match(E)||[""]).length;O--;)A=d=(z=Lt.exec(e[O])||[])[1],s=(z[2]||"").split(".").sort(),A&&(i=v.event.special[A]||{},A=(o?i.delegateType:i.bindType)||A,i=v.event.special[A]||{},c=v.extend({type:A,origType:d,data:b,handler:p,guid:p.guid,selector:o,needsContext:o&&v.expr.match.needsContext.test(o),namespace:s.join(".")},M),(a=r[A])||((a=r[A]=[]).delegateCount=0,i.setup&&!1!==i.setup.call(t,b,s,n)||t.addEventListener&&t.addEventListener(A,n)),i.add&&(i.add.call(t,c),c.handler.guid||(c.handler.guid=p.guid)),o?a.splice(a.delegateCount++,0,c):a.push(c),v.event.global[A]=!0)},remove:function(t,e,p,b,o){var M,n,z,r,O,c,i,a,A,s,d,q=Q.hasData(t)&&Q.get(t);if(q&&(r=q.events)){for(O=(e=(e||"").match(E)||[""]).length;O--;)if(A=d=(z=Lt.exec(e[O])||[])[1],s=(z[2]||"").split(".").sort(),A){for(i=v.event.special[A]||{},a=r[A=(b?i.delegateType:i.bindType)||A]||[],z=z[2]&&new RegExp("(^|\\.)"+s.join("\\.(?:.*\\.|)")+"(\\.|$)"),n=M=a.length;M--;)c=a[M],!o&&d!==c.origType||p&&p.guid!==c.guid||z&&!z.test(c.namespace)||b&&b!==c.selector&&("**"!==b||!c.selector)||(a.splice(M,1),c.selector&&a.delegateCount--,i.remove&&i.remove.call(t,c));n&&!a.length&&(i.teardown&&!1!==i.teardown.call(t,s,q.handle)||v.removeEvent(t,A,q.handle),delete r[A])}else for(A in r)v.event.remove(t,A+e[O],p,b,!0);v.isEmptyObject(r)&&Q.remove(t,"handle events")}},dispatch:function(t){var e,p,b,o,M,n,z=v.event.fix(t),r=new Array(arguments.length),O=(Q.get(this,"events")||{})[z.type]||[],c=v.event.special[z.type]||{};for(r[0]=z,e=1;e=1))for(;O!==this;O=O.parentNode||this)if(1===O.nodeType&&("click"!==t.type||!0!==O.disabled)){for(M=[],n={},p=0;p-1:v.find(o,this,null,[O]).length),n[o]&&M.push(b);M.length&&z.push({elem:O,handlers:M})}return O=this,r\x20\t\r\n\f]*)[^>]*)\/>/gi,wt=/\s*$/g;function Ht(t,e){return N(t,"table")&&N(11!==e.nodeType?e:e.firstChild,"tr")&&v(t).children("tbody")[0]||t}function Et(t){return t.type=(null!==t.getAttribute("type"))+"/"+t.type,t}function Ft(t){return"true/"===(t.type||"").slice(0,5)?t.type=t.type.slice(5):t.removeAttribute("type"),t}function kt(t,e){var p,b,o,M,n,z,r,O;if(1===e.nodeType){if(Q.hasData(t)&&(M=Q.access(t),n=Q.set(e,M),O=M.events))for(o in delete n.handle,n.events={},O)for(p=0,b=O[o].length;p1&&"string"==typeof s&&!l.checkClone&&Ct.test(s))return t.each(function(o){var M=t.eq(o);d&&(e[0]=s.call(this,o,M.html())),Dt(M,e,p,b)});if(a&&(M=(o=mt(e,t[0].ownerDocument,!1,t,b)).firstChild,1===o.childNodes.length&&(o=M),M||b)){for(z=(n=v.map(ft(o,"script"),Et)).length;i")},clone:function(t,e,p){var b,o,M,n,z,r,O,c=t.cloneNode(!0),i=zt(t);if(!(l.noCloneChecked||1!==t.nodeType&&11!==t.nodeType||v.isXMLDoc(t)))for(n=ft(c),b=0,o=(M=ft(t)).length;b0&&Wt(n,!i&&ft(t,"script")),c},cleanData:function(t){for(var e,p,b,o=v.event.special,M=0;void 0!==(p=t[M]);M++)if(G(p)){if(e=p[Q.expando]){if(e.events)for(b in e.events)o[b]?v.event.remove(p,b):v.removeEvent(p,b,e.handle);p[Q.expando]=void 0}p[Z.expando]&&(p[Z.expando]=void 0)}}}),v.fn.extend({detach:function(t){return It(this,t,!0)},remove:function(t){return It(this,t)},text:function(t){return V(this,function(t){return void 0===t?v.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=t)})},null,t,arguments.length)},append:function(){return Dt(this,arguments,function(t){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Ht(this,t).appendChild(t)})},prepend:function(){return Dt(this,arguments,function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=Ht(this,t);e.insertBefore(t,e.firstChild)}})},before:function(){return Dt(this,arguments,function(t){this.parentNode&&this.parentNode.insertBefore(t,this)})},after:function(){return Dt(this,arguments,function(t){this.parentNode&&this.parentNode.insertBefore(t,this.nextSibling)})},empty:function(){for(var t,e=0;null!=(t=this[e]);e++)1===t.nodeType&&(v.cleanData(ft(t,!1)),t.textContent="");return this},clone:function(t,e){return t=null!=t&&t,e=null==e?t:e,this.map(function(){return v.clone(this,t,e)})},html:function(t){return V(this,function(t){var e=this[0]||{},p=0,b=this.length;if(void 0===t&&1===e.nodeType)return e.innerHTML;if("string"==typeof t&&!wt.test(t)&&!ut[(qt.exec(t)||["",""])[1].toLowerCase()]){t=v.htmlPrefilter(t);try{for(;p=0&&(r+=Math.max(0,Math.ceil(t["offset"+e[0].toUpperCase()+e.slice(1)]-M-r-z-.5))||0),r}function oe(t,e,p){var b=jt(t),o=(!l.boxSizingReliable()||p)&&"border-box"===v.css(t,"boxSizing",!1,b),M=o,n=Ut(t,e,b),z="offset"+e[0].toUpperCase()+e.slice(1);if(Pt.test(n)){if(!p)return n;n="auto"}return(!l.boxSizingReliable()&&o||"auto"===n||!parseFloat(n)&&"inline"===v.css(t,"display",!1,b))&&t.getClientRects().length&&(o="border-box"===v.css(t,"boxSizing",!1,b),(M=z in t)&&(n=t[z])),(n=parseFloat(n)||0)+be(t,e,p||(o?"border":"content"),M,b,n)+"px"}function Me(t,e,p,b,o){return new Me.prototype.init(t,e,p,b,o)}v.extend({cssHooks:{opacity:{get:function(t,e){if(e){var p=Ut(t,"opacity");return""===p?"1":p}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(t,e,p,b){if(t&&3!==t.nodeType&&8!==t.nodeType&&t.style){var o,M,n,z=K(e),r=Zt.test(e),O=t.style;if(r||(e=Jt(z)),n=v.cssHooks[e]||v.cssHooks[z],void 0===p)return n&&"get"in n&&void 0!==(o=n.get(t,!1,b))?o:O[e];"string"===(M=typeof p)&&(o=ot.exec(p))&&o[1]&&(p=it(t,e,o),M="number"),null!=p&&p==p&&("number"!==M||r||(p+=o&&o[3]||(v.cssNumber[z]?"":"px")),l.clearCloneStyle||""!==p||0!==e.indexOf("background")||(O[e]="inherit"),n&&"set"in n&&void 0===(p=n.set(t,p,b))||(r?O.setProperty(e,p):O[e]=p))}},css:function(t,e,p,b){var o,M,n,z=K(e);return Zt.test(e)||(e=Jt(z)),(n=v.cssHooks[e]||v.cssHooks[z])&&"get"in n&&(o=n.get(t,!0,p)),void 0===o&&(o=Ut(t,e,b)),"normal"===o&&e in ee&&(o=ee[e]),""===p||p?(M=parseFloat(o),!0===p||isFinite(M)?M||0:o):o}}),v.each(["height","width"],function(t,e){v.cssHooks[e]={get:function(t,p,b){if(p)return!Qt.test(v.css(t,"display"))||t.getClientRects().length&&t.getBoundingClientRect().width?oe(t,e,b):ct(t,te,function(){return oe(t,e,b)})},set:function(t,p,b){var o,M=jt(t),n=!l.scrollboxSize()&&"absolute"===M.position,z=(n||b)&&"border-box"===v.css(t,"boxSizing",!1,M),r=b?be(t,e,b,z,M):0;return z&&n&&(r-=Math.ceil(t["offset"+e[0].toUpperCase()+e.slice(1)]-parseFloat(M[e])-be(t,e,"border",!1,M)-.5)),r&&(o=ot.exec(p))&&"px"!==(o[3]||"px")&&(t.style[e]=p,p=v.css(t,e)),pe(0,p,r)}}}),v.cssHooks.marginLeft=$t(l.reliableMarginLeft,function(t,e){if(e)return(parseFloat(Ut(t,"marginLeft"))||t.getBoundingClientRect().left-ct(t,{marginLeft:0},function(){return t.getBoundingClientRect().left}))+"px"}),v.each({margin:"",padding:"",border:"Width"},function(t,e){v.cssHooks[t+e]={expand:function(p){for(var b=0,o={},M="string"==typeof p?p.split(" "):[p];b<4;b++)o[t+Mt[b]+e]=M[b]||M[b-2]||M[0];return o}},"margin"!==t&&(v.cssHooks[t+e].set=pe)}),v.fn.extend({css:function(t,e){return V(this,function(t,e,p){var b,o,M={},n=0;if(Array.isArray(e)){for(b=jt(t),o=e.length;n1)}}),v.Tween=Me,Me.prototype={constructor:Me,init:function(t,e,p,b,o,M){this.elem=t,this.prop=p,this.easing=o||v.easing._default,this.options=e,this.start=this.now=this.cur(),this.end=b,this.unit=M||(v.cssNumber[p]?"":"px")},cur:function(){var t=Me.propHooks[this.prop];return t&&t.get?t.get(this):Me.propHooks._default.get(this)},run:function(t){var e,p=Me.propHooks[this.prop];return this.options.duration?this.pos=e=v.easing[this.easing](t,this.options.duration*t,0,1,this.options.duration):this.pos=e=t,this.now=(this.end-this.start)*e+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),p&&p.set?p.set(this):Me.propHooks._default.set(this),this}},Me.prototype.init.prototype=Me.prototype,Me.propHooks={_default:{get:function(t){var e;return 1!==t.elem.nodeType||null!=t.elem[t.prop]&&null==t.elem.style[t.prop]?t.elem[t.prop]:(e=v.css(t.elem,t.prop,""))&&"auto"!==e?e:0},set:function(t){v.fx.step[t.prop]?v.fx.step[t.prop](t):1!==t.elem.nodeType||!v.cssHooks[t.prop]&&null==t.elem.style[Jt(t.prop)]?t.elem[t.prop]=t.now:v.style(t.elem,t.prop,t.now+t.unit)}}},Me.propHooks.scrollTop=Me.propHooks.scrollLeft={set:function(t){t.elem.nodeType&&t.elem.parentNode&&(t.elem[t.prop]=t.now)}},v.easing={linear:function(t){return t},swing:function(t){return.5-Math.cos(t*Math.PI)/2},_default:"swing"},v.fx=Me.prototype.init,v.fx.step={};var ne,ze,re=/^(?:toggle|show|hide)$/,Oe=/queueHooks$/;function ce(){ze&&(!1===n.hidden&&p.requestAnimationFrame?p.requestAnimationFrame(ce):p.setTimeout(ce,v.fx.interval),v.fx.tick())}function ie(){return p.setTimeout(function(){ne=void 0}),ne=Date.now()}function ae(t,e){var p,b=0,o={height:t};for(e=e?1:0;b<4;b+=2-e)o["margin"+(p=Mt[b])]=o["padding"+p]=t;return e&&(o.opacity=o.width=t),o}function Ae(t,e,p){for(var b,o=(se.tweeners[e]||[]).concat(se.tweeners["*"]),M=0,n=o.length;M1)},removeAttr:function(t){return this.each(function(){v.removeAttr(this,t)})}}),v.extend({attr:function(t,e,p){var b,o,M=t.nodeType;if(3!==M&&8!==M&&2!==M)return void 0===t.getAttribute?v.prop(t,e,p):(1===M&&v.isXMLDoc(t)||(o=v.attrHooks[e.toLowerCase()]||(v.expr.match.bool.test(e)?de:void 0)),void 0!==p?null===p?void v.removeAttr(t,e):o&&"set"in o&&void 0!==(b=o.set(t,p,e))?b:(t.setAttribute(e,p+""),p):o&&"get"in o&&null!==(b=o.get(t,e))?b:null==(b=v.find.attr(t,e))?void 0:b)},attrHooks:{type:{set:function(t,e){if(!l.radioValue&&"radio"===e&&N(t,"input")){var p=t.value;return t.setAttribute("type",e),p&&(t.value=p),e}}}},removeAttr:function(t,e){var p,b=0,o=e&&e.match(E);if(o&&1===t.nodeType)for(;p=o[b++];)t.removeAttribute(p)}}),de={set:function(t,e,p){return!1===e?v.removeAttr(t,p):t.setAttribute(p,p),p}},v.each(v.expr.match.bool.source.match(/\w+/g),function(t,e){var p=qe[e]||v.find.attr;qe[e]=function(t,e,b){var o,M,n=e.toLowerCase();return b||(M=qe[n],qe[n]=o,o=null!=p(t,e,b)?n:null,qe[n]=M),o}});var le=/^(?:input|select|textarea|button)$/i,ue=/^(?:a|area)$/i;function fe(t){return(t.match(E)||[]).join(" ")}function We(t){return t.getAttribute&&t.getAttribute("class")||""}function he(t){return Array.isArray(t)?t:"string"==typeof t&&t.match(E)||[]}v.fn.extend({prop:function(t,e){return V(this,v.prop,t,e,arguments.length>1)},removeProp:function(t){return this.each(function(){delete this[v.propFix[t]||t]})}}),v.extend({prop:function(t,e,p){var b,o,M=t.nodeType;if(3!==M&&8!==M&&2!==M)return 1===M&&v.isXMLDoc(t)||(e=v.propFix[e]||e,o=v.propHooks[e]),void 0!==p?o&&"set"in o&&void 0!==(b=o.set(t,p,e))?b:t[e]=p:o&&"get"in o&&null!==(b=o.get(t,e))?b:t[e]},propHooks:{tabIndex:{get:function(t){var e=v.find.attr(t,"tabindex");return e?parseInt(e,10):le.test(t.nodeName)||ue.test(t.nodeName)&&t.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),l.optSelected||(v.propHooks.selected={get:function(t){var e=t.parentNode;return e&&e.parentNode&&e.parentNode.selectedIndex,null},set:function(t){var e=t.parentNode;e&&(e.selectedIndex,e.parentNode&&e.parentNode.selectedIndex)}}),v.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){v.propFix[this.toLowerCase()]=this}),v.fn.extend({addClass:function(t){var e,p,b,o,M,n,z,r=0;if(u(t))return this.each(function(e){v(this).addClass(t.call(this,e,We(this)))});if((e=he(t)).length)for(;p=this[r++];)if(o=We(p),b=1===p.nodeType&&" "+fe(o)+" "){for(n=0;M=e[n++];)b.indexOf(" "+M+" ")<0&&(b+=M+" ");o!==(z=fe(b))&&p.setAttribute("class",z)}return this},removeClass:function(t){var e,p,b,o,M,n,z,r=0;if(u(t))return this.each(function(e){v(this).removeClass(t.call(this,e,We(this)))});if(!arguments.length)return this.attr("class","");if((e=he(t)).length)for(;p=this[r++];)if(o=We(p),b=1===p.nodeType&&" "+fe(o)+" "){for(n=0;M=e[n++];)for(;b.indexOf(" "+M+" ")>-1;)b=b.replace(" "+M+" "," ");o!==(z=fe(b))&&p.setAttribute("class",z)}return this},toggleClass:function(t,e){var p=typeof t,b="string"===p||Array.isArray(t);return"boolean"==typeof e&&b?e?this.addClass(t):this.removeClass(t):u(t)?this.each(function(p){v(this).toggleClass(t.call(this,p,We(this),e),e)}):this.each(function(){var e,o,M,n;if(b)for(o=0,M=v(this),n=he(t);e=n[o++];)M.hasClass(e)?M.removeClass(e):M.addClass(e);else void 0!==t&&"boolean"!==p||((e=We(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===t?"":Q.get(this,"__className__")||""))})},hasClass:function(t){var e,p,b=0;for(e=" "+t+" ";p=this[b++];)if(1===p.nodeType&&(" "+fe(We(p))+" ").indexOf(e)>-1)return!0;return!1}});var Re=/\r/g;v.fn.extend({val:function(t){var e,p,b,o=this[0];return arguments.length?(b=u(t),this.each(function(p){var o;1===this.nodeType&&(null==(o=b?t.call(this,p,v(this).val()):t)?o="":"number"==typeof o?o+="":Array.isArray(o)&&(o=v.map(o,function(t){return null==t?"":t+""})),(e=v.valHooks[this.type]||v.valHooks[this.nodeName.toLowerCase()])&&"set"in e&&void 0!==e.set(this,o,"value")||(this.value=o))})):o?(e=v.valHooks[o.type]||v.valHooks[o.nodeName.toLowerCase()])&&"get"in e&&void 0!==(p=e.get(o,"value"))?p:"string"==typeof(p=o.value)?p.replace(Re,""):null==p?"":p:void 0}}),v.extend({valHooks:{option:{get:function(t){var e=v.find.attr(t,"value");return null!=e?e:fe(v.text(t))}},select:{get:function(t){var e,p,b,o=t.options,M=t.selectedIndex,n="select-one"===t.type,z=n?null:[],r=n?M+1:o.length;for(b=M<0?r:n?M:0;b-1)&&(p=!0);return p||(t.selectedIndex=-1),M}}}}),v.each(["radio","checkbox"],function(){v.valHooks[this]={set:function(t,e){if(Array.isArray(e))return t.checked=v.inArray(v(t).val(),e)>-1}},l.checkOn||(v.valHooks[this].get=function(t){return null===t.getAttribute("value")?"on":t.value})}),l.focusin="onfocusin"in p;var ve=/^(?:focusinfocus|focusoutblur)$/,me=function(t){t.stopPropagation()};v.extend(v.event,{trigger:function(t,e,b,o){var M,z,r,O,c,i,a,A,d=[b||n],q=s.call(t,"type")?t.type:t,l=s.call(t,"namespace")?t.namespace.split("."):[];if(z=A=r=b=b||n,3!==b.nodeType&&8!==b.nodeType&&!ve.test(q+v.event.triggered)&&(q.indexOf(".")>-1&&(l=q.split("."),q=l.shift(),l.sort()),c=q.indexOf(":")<0&&"on"+q,(t=t[v.expando]?t:new v.Event(q,"object"==typeof t&&t)).isTrigger=o?2:3,t.namespace=l.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+l.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=b),e=null==e?[t]:v.makeArray(e,[t]),a=v.event.special[q]||{},o||!a.trigger||!1!==a.trigger.apply(b,e))){if(!o&&!a.noBubble&&!f(b)){for(O=a.delegateType||q,ve.test(O+q)||(z=z.parentNode);z;z=z.parentNode)d.push(z),r=z;r===(b.ownerDocument||n)&&d.push(r.defaultView||r.parentWindow||p)}for(M=0;(z=d[M++])&&!t.isPropagationStopped();)A=z,t.type=M>1?O:a.bindType||q,(i=(Q.get(z,"events")||{})[t.type]&&Q.get(z,"handle"))&&i.apply(z,e),(i=c&&z[c])&&i.apply&&G(z)&&(t.result=i.apply(z,e),!1===t.result&&t.preventDefault());return t.type=q,o||t.isDefaultPrevented()||a._default&&!1!==a._default.apply(d.pop(),e)||!G(b)||c&&u(b[q])&&!f(b)&&((r=b[c])&&(b[c]=null),v.event.triggered=q,t.isPropagationStopped()&&A.addEventListener(q,me),b[q](),t.isPropagationStopped()&&A.removeEventListener(q,me),v.event.triggered=void 0,r&&(b[c]=r)),t.result}},simulate:function(t,e,p){var b=v.extend(new v.Event,p,{type:t,isSimulated:!0});v.event.trigger(b,null,e)}}),v.fn.extend({trigger:function(t,e){return this.each(function(){v.event.trigger(t,e,this)})},triggerHandler:function(t,e){var p=this[0];if(p)return v.event.trigger(t,e,p,!0)}}),l.focusin||v.each({focus:"focusin",blur:"focusout"},function(t,e){var p=function(t){v.event.simulate(e,t.target,v.event.fix(t))};v.event.special[e]={setup:function(){var b=this.ownerDocument||this,o=Q.access(b,e);o||b.addEventListener(t,p,!0),Q.access(b,e,(o||0)+1)},teardown:function(){var b=this.ownerDocument||this,o=Q.access(b,e)-1;o?Q.access(b,e,o):(b.removeEventListener(t,p,!0),Q.remove(b,e))}}});var ge=p.location,Be=Date.now(),Le=/\?/;v.parseXML=function(t){var e;if(!t||"string"!=typeof t)return null;try{e=(new p.DOMParser).parseFromString(t,"text/xml")}catch(t){e=void 0}return e&&!e.getElementsByTagName("parsererror").length||v.error("Invalid XML: "+t),e};var Xe=/\[\]$/,ye=/\r?\n/g,Ne=/^(?:submit|button|image|reset|file)$/i,_e=/^(?:input|select|textarea|keygen)/i;function Te(t,e,p,b){var o;if(Array.isArray(e))v.each(e,function(e,o){p||Xe.test(t)?b(t,o):Te(t+"["+("object"==typeof o&&null!=o?e:"")+"]",o,p,b)});else if(p||"object"!==R(e))b(t,e);else for(o in e)Te(t+"["+o+"]",e[o],p,b)}v.param=function(t,e){var p,b=[],o=function(t,e){var p=u(e)?e():e;b[b.length]=encodeURIComponent(t)+"="+encodeURIComponent(null==p?"":p)};if(null==t)return"";if(Array.isArray(t)||t.jquery&&!v.isPlainObject(t))v.each(t,function(){o(this.name,this.value)});else for(p in t)Te(p,t[p],e,o);return b.join("&")},v.fn.extend({serialize:function(){return v.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var t=v.prop(this,"elements");return t?v.makeArray(t):this}).filter(function(){var t=this.type;return this.name&&!v(this).is(":disabled")&&_e.test(this.nodeName)&&!Ne.test(t)&&(this.checked||!dt.test(t))}).map(function(t,e){var p=v(this).val();return null==p?null:Array.isArray(p)?v.map(p,function(t){return{name:e.name,value:t.replace(ye,"\r\n")}}):{name:e.name,value:p.replace(ye,"\r\n")}}).get()}});var xe=/%20/g,we=/#.*$/,Ce=/([?&])_=[^&]*/,Se=/^(.*?):[ \t]*([^\r\n]*)$/gm,He=/^(?:GET|HEAD)$/,Ee=/^\/\//,Fe={},ke={},De="*/".concat("*"),Ie=n.createElement("a");function Pe(t){return function(e,p){"string"!=typeof e&&(p=e,e="*");var b,o=0,M=e.toLowerCase().match(E)||[];if(u(p))for(;b=M[o++];)"+"===b[0]?(b=b.slice(1)||"*",(t[b]=t[b]||[]).unshift(p)):(t[b]=t[b]||[]).push(p)}}function je(t,e,p,b){var o={},M=t===ke;function n(z){var r;return o[z]=!0,v.each(t[z]||[],function(t,z){var O=z(e,p,b);return"string"!=typeof O||M||o[O]?M?!(r=O):void 0:(e.dataTypes.unshift(O),n(O),!1)}),r}return n(e.dataTypes[0])||!o["*"]&&n("*")}function Ve(t,e){var p,b,o=v.ajaxSettings.flatOptions||{};for(p in e)void 0!==e[p]&&((o[p]?t:b||(b={}))[p]=e[p]);return b&&v.extend(!0,t,b),t}Ie.href=ge.href,v.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ge.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(ge.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":De,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":v.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(t,e){return e?Ve(Ve(t,v.ajaxSettings),e):Ve(v.ajaxSettings,t)},ajaxPrefilter:Pe(Fe),ajaxTransport:Pe(ke),ajax:function(t,e){"object"==typeof t&&(e=t,t=void 0),e=e||{};var b,o,M,z,r,O,c,i,a,A,s=v.ajaxSetup({},e),d=s.context||s,q=s.context&&(d.nodeType||d.jquery)?v(d):v.event,l=v.Deferred(),u=v.Callbacks("once memory"),f=s.statusCode||{},W={},h={},R="canceled",m={readyState:0,getResponseHeader:function(t){var e;if(c){if(!z)for(z={};e=Se.exec(M);)z[e[1].toLowerCase()+" "]=(z[e[1].toLowerCase()+" "]||[]).concat(e[2]);e=z[t.toLowerCase()+" "]}return null==e?null:e.join(", ")},getAllResponseHeaders:function(){return c?M:null},setRequestHeader:function(t,e){return null==c&&(t=h[t.toLowerCase()]=h[t.toLowerCase()]||t,W[t]=e),this},overrideMimeType:function(t){return null==c&&(s.mimeType=t),this},statusCode:function(t){var e;if(t)if(c)m.always(t[m.status]);else for(e in t)f[e]=[f[e],t[e]];return this},abort:function(t){var e=t||R;return b&&b.abort(e),g(0,e),this}};if(l.promise(m),s.url=((t||s.url||ge.href)+"").replace(Ee,ge.protocol+"//"),s.type=e.method||e.type||s.method||s.type,s.dataTypes=(s.dataType||"*").toLowerCase().match(E)||[""],null==s.crossDomain){O=n.createElement("a");try{O.href=s.url,O.href=O.href,s.crossDomain=Ie.protocol+"//"+Ie.host!=O.protocol+"//"+O.host}catch(t){s.crossDomain=!0}}if(s.data&&s.processData&&"string"!=typeof s.data&&(s.data=v.param(s.data,s.traditional)),je(Fe,s,e,m),c)return m;for(a in(i=v.event&&s.global)&&0==v.active++&&v.event.trigger("ajaxStart"),s.type=s.type.toUpperCase(),s.hasContent=!He.test(s.type),o=s.url.replace(we,""),s.hasContent?s.data&&s.processData&&0===(s.contentType||"").indexOf("application/x-www-form-urlencoded")&&(s.data=s.data.replace(xe,"+")):(A=s.url.slice(o.length),s.data&&(s.processData||"string"==typeof s.data)&&(o+=(Le.test(o)?"&":"?")+s.data,delete s.data),!1===s.cache&&(o=o.replace(Ce,"$1"),A=(Le.test(o)?"&":"?")+"_="+Be+++A),s.url=o+A),s.ifModified&&(v.lastModified[o]&&m.setRequestHeader("If-Modified-Since",v.lastModified[o]),v.etag[o]&&m.setRequestHeader("If-None-Match",v.etag[o])),(s.data&&s.hasContent&&!1!==s.contentType||e.contentType)&&m.setRequestHeader("Content-Type",s.contentType),m.setRequestHeader("Accept",s.dataTypes[0]&&s.accepts[s.dataTypes[0]]?s.accepts[s.dataTypes[0]]+("*"!==s.dataTypes[0]?", "+De+"; q=0.01":""):s.accepts["*"]),s.headers)m.setRequestHeader(a,s.headers[a]);if(s.beforeSend&&(!1===s.beforeSend.call(d,m,s)||c))return m.abort();if(R="abort",u.add(s.complete),m.done(s.success),m.fail(s.error),b=je(ke,s,e,m)){if(m.readyState=1,i&&q.trigger("ajaxSend",[m,s]),c)return m;s.async&&s.timeout>0&&(r=p.setTimeout(function(){m.abort("timeout")},s.timeout));try{c=!1,b.send(W,g)}catch(t){if(c)throw t;g(-1,t)}}else g(-1,"No Transport");function g(t,e,n,z){var O,a,A,W,h,R=e;c||(c=!0,r&&p.clearTimeout(r),b=void 0,M=z||"",m.readyState=t>0?4:0,O=t>=200&&t<300||304===t,n&&(W=function(t,e,p){for(var b,o,M,n,z=t.contents,r=t.dataTypes;"*"===r[0];)r.shift(),void 0===b&&(b=t.mimeType||e.getResponseHeader("Content-Type"));if(b)for(o in z)if(z[o]&&z[o].test(b)){r.unshift(o);break}if(r[0]in p)M=r[0];else{for(o in p){if(!r[0]||t.converters[o+" "+r[0]]){M=o;break}n||(n=o)}M=M||n}if(M)return M!==r[0]&&r.unshift(M),p[M]}(s,m,n)),W=function(t,e,p,b){var o,M,n,z,r,O={},c=t.dataTypes.slice();if(c[1])for(n in t.converters)O[n.toLowerCase()]=t.converters[n];for(M=c.shift();M;)if(t.responseFields[M]&&(p[t.responseFields[M]]=e),!r&&b&&t.dataFilter&&(e=t.dataFilter(e,t.dataType)),r=M,M=c.shift())if("*"===M)M=r;else if("*"!==r&&r!==M){if(!(n=O[r+" "+M]||O["* "+M]))for(o in O)if((z=o.split(" "))[1]===M&&(n=O[r+" "+z[0]]||O["* "+z[0]])){!0===n?n=O[o]:!0!==O[o]&&(M=z[0],c.unshift(z[1]));break}if(!0!==n)if(n&&t.throws)e=n(e);else try{e=n(e)}catch(t){return{state:"parsererror",error:n?t:"No conversion from "+r+" to "+M}}}return{state:"success",data:e}}(s,W,m,O),O?(s.ifModified&&((h=m.getResponseHeader("Last-Modified"))&&(v.lastModified[o]=h),(h=m.getResponseHeader("etag"))&&(v.etag[o]=h)),204===t||"HEAD"===s.type?R="nocontent":304===t?R="notmodified":(R=W.state,a=W.data,O=!(A=W.error))):(A=R,!t&&R||(R="error",t<0&&(t=0))),m.status=t,m.statusText=(e||R)+"",O?l.resolveWith(d,[a,R,m]):l.rejectWith(d,[m,R,A]),m.statusCode(f),f=void 0,i&&q.trigger(O?"ajaxSuccess":"ajaxError",[m,s,O?a:A]),u.fireWith(d,[m,R]),i&&(q.trigger("ajaxComplete",[m,s]),--v.active||v.event.trigger("ajaxStop")))}return m},getJSON:function(t,e,p){return v.get(t,e,p,"json")},getScript:function(t,e){return v.get(t,void 0,e,"script")}}),v.each(["get","post"],function(t,e){v[e]=function(t,p,b,o){return u(p)&&(o=o||b,b=p,p=void 0),v.ajax(v.extend({url:t,type:e,dataType:o,data:p,success:b},v.isPlainObject(t)&&t))}}),v._evalUrl=function(t,e){return v.ajax({url:t,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(t){v.globalEval(t,e)}})},v.fn.extend({wrapAll:function(t){var e;return this[0]&&(u(t)&&(t=t.call(this[0])),e=v(t,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&e.insertBefore(this[0]),e.map(function(){for(var t=this;t.firstElementChild;)t=t.firstElementChild;return t}).append(this)),this},wrapInner:function(t){return u(t)?this.each(function(e){v(this).wrapInner(t.call(this,e))}):this.each(function(){var e=v(this),p=e.contents();p.length?p.wrapAll(t):e.append(t)})},wrap:function(t){var e=u(t);return this.each(function(p){v(this).wrapAll(e?t.call(this,p):t)})},unwrap:function(t){return this.parent(t).not("body").each(function(){v(this).replaceWith(this.childNodes)}),this}}),v.expr.pseudos.hidden=function(t){return!v.expr.pseudos.visible(t)},v.expr.pseudos.visible=function(t){return!!(t.offsetWidth||t.offsetHeight||t.getClientRects().length)},v.ajaxSettings.xhr=function(){try{return new p.XMLHttpRequest}catch(t){}};var Ue={0:200,1223:204},$e=v.ajaxSettings.xhr();l.cors=!!$e&&"withCredentials"in $e,l.ajax=$e=!!$e,v.ajaxTransport(function(t){var e,b;if(l.cors||$e&&!t.crossDomain)return{send:function(o,M){var n,z=t.xhr();if(z.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(n in t.xhrFields)z[n]=t.xhrFields[n];for(n in t.mimeType&&z.overrideMimeType&&z.overrideMimeType(t.mimeType),t.crossDomain||o["X-Requested-With"]||(o["X-Requested-With"]="XMLHttpRequest"),o)z.setRequestHeader(n,o[n]);e=function(t){return function(){e&&(e=b=z.onload=z.onerror=z.onabort=z.ontimeout=z.onreadystatechange=null,"abort"===t?z.abort():"error"===t?"number"!=typeof z.status?M(0,"error"):M(z.status,z.statusText):M(Ue[z.status]||z.status,z.statusText,"text"!==(z.responseType||"text")||"string"!=typeof z.responseText?{binary:z.response}:{text:z.responseText},z.getAllResponseHeaders()))}},z.onload=e(),b=z.onerror=z.ontimeout=e("error"),void 0!==z.onabort?z.onabort=b:z.onreadystatechange=function(){4===z.readyState&&p.setTimeout(function(){e&&b()})},e=e("abort");try{z.send(t.hasContent&&t.data||null)}catch(t){if(e)throw t}},abort:function(){e&&e()}}}),v.ajaxPrefilter(function(t){t.crossDomain&&(t.contents.script=!1)}),v.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(t){return v.globalEval(t),t}}}),v.ajaxPrefilter("script",function(t){void 0===t.cache&&(t.cache=!1),t.crossDomain&&(t.type="GET")}),v.ajaxTransport("script",function(t){var e,p;if(t.crossDomain||t.scriptAttrs)return{send:function(b,o){e=v(" diff --git a/vendor/laravel/horizon/resources/js/screens/recentJobs/job.vue b/vendor/laravel/horizon/resources/js/screens/recentJobs/job.vue new file mode 100644 index 000000000..d0a6b3934 --- /dev/null +++ b/vendor/laravel/horizon/resources/js/screens/recentJobs/job.vue @@ -0,0 +1,152 @@ + + + diff --git a/vendor/laravel/horizon/resources/sass/base.scss b/vendor/laravel/horizon/resources/sass/base.scss index 7bd1584ba..62fa81462 100644 --- a/vendor/laravel/horizon/resources/sass/base.scss +++ b/vendor/laravel/horizon/resources/sass/base.scss @@ -268,3 +268,7 @@ button:hover { color: #fff; background: $danger; } + +.badge-sm { + font-size: 0.75rem; +} diff --git a/vendor/laravel/horizon/routes/web.php b/vendor/laravel/horizon/routes/web.php index e19bf923a..9a3337e3d 100644 --- a/vendor/laravel/horizon/routes/web.php +++ b/vendor/laravel/horizon/routes/web.php @@ -28,6 +28,7 @@ Route::prefix('api')->group(function () { // Job Routes... Route::get('/jobs/recent', 'RecentJobsController@index')->name('horizon.recent-jobs.index'); + Route::get('/jobs/recent/{id}', 'RecentJobsController@show')->name('horizon.recent-jobs.show'); Route::get('/jobs/failed', 'FailedJobsController@index')->name('horizon.failed-jobs.index'); Route::get('/jobs/failed/{id}', 'FailedJobsController@show')->name('horizon.failed-jobs.show'); Route::post('/jobs/retry/{id}', 'RetryController@store')->name('horizon.retry-jobs.show'); diff --git a/vendor/laravel/horizon/src/Contracts/HorizonCommandQueue.php b/vendor/laravel/horizon/src/Contracts/HorizonCommandQueue.php index 3aeb5e1a8..3c8091dce 100644 --- a/vendor/laravel/horizon/src/Contracts/HorizonCommandQueue.php +++ b/vendor/laravel/horizon/src/Contracts/HorizonCommandQueue.php @@ -10,6 +10,7 @@ interface HorizonCommandQueue * @param string $name * @param string $command * @param array $options + * @return void */ public function push($name, $command, array $options = []); diff --git a/vendor/laravel/horizon/src/EventMap.php b/vendor/laravel/horizon/src/EventMap.php index 0fd1ba916..4ad26978d 100644 --- a/vendor/laravel/horizon/src/EventMap.php +++ b/vendor/laravel/horizon/src/EventMap.php @@ -13,7 +13,6 @@ trait EventMap Events\JobPushed::class => [ Listeners\StoreJob::class, Listeners\StoreMonitoredTags::class, - Listeners\StoreTagsForRecentJob::class, ], Events\JobReserved::class => [ diff --git a/vendor/laravel/horizon/src/HorizonServiceProvider.php b/vendor/laravel/horizon/src/HorizonServiceProvider.php index 3283a873d..08bbd1780 100644 --- a/vendor/laravel/horizon/src/HorizonServiceProvider.php +++ b/vendor/laravel/horizon/src/HorizonServiceProvider.php @@ -127,7 +127,7 @@ class HorizonServiceProvider extends ServiceProvider __DIR__.'/../config/horizon.php', 'horizon' ); - Horizon::use(config('horizon.use')); + Horizon::use(config('horizon.use', 'default')); } /** diff --git a/vendor/laravel/horizon/src/Http/Controllers/DashboardStatsController.php b/vendor/laravel/horizon/src/Http/Controllers/DashboardStatsController.php index 29240c099..60de417ff 100644 --- a/vendor/laravel/horizon/src/Http/Controllers/DashboardStatsController.php +++ b/vendor/laravel/horizon/src/Http/Controllers/DashboardStatsController.php @@ -27,7 +27,7 @@ class DashboardStatsController extends Controller 'status' => $this->currentStatus(), 'wait' => collect(app(WaitTimeCalculator::class)->calculate())->take(1), 'periods' => [ - 'failedJobs' => config('horizon.trim.recent_failed', config('horizon.trim.recent')), + 'failedJobs' => config('horizon.trim.recent_failed', config('horizon.trim.failed')), 'recentJobs' => config('horizon.trim.recent'), ], ]; diff --git a/vendor/laravel/horizon/src/Http/Controllers/RecentJobsController.php b/vendor/laravel/horizon/src/Http/Controllers/RecentJobsController.php index 63e48725f..d2dfa3f2c 100644 --- a/vendor/laravel/horizon/src/Http/Controllers/RecentJobsController.php +++ b/vendor/laravel/horizon/src/Http/Controllers/RecentJobsController.php @@ -4,7 +4,6 @@ namespace Laravel\Horizon\Http\Controllers; use Illuminate\Http\Request; use Laravel\Horizon\Contracts\JobRepository; -use Laravel\Horizon\Contracts\TagRepository; class RecentJobsController extends Controller { @@ -15,26 +14,17 @@ class RecentJobsController extends Controller */ public $jobs; - /** - * The tag repository implementation. - * - * @var \Laravel\Horizon\Contracts\TagRepository - */ - public $tags; - /** * Create a new controller instance. * * @param \Laravel\Horizon\Contracts\JobRepository $jobs - * @param \Laravel\Horizon\Contracts\TagRepository $tags * @return void */ - public function __construct(JobRepository $jobs, TagRepository $tags) + public function __construct(JobRepository $jobs) { parent::__construct(); $this->jobs = $jobs; - $this->tags = $tags; } /** @@ -45,51 +35,29 @@ class RecentJobsController extends Controller */ public function index(Request $request) { - $jobs = ! $request->query('tag') - ? $this->paginate($request) - : $this->paginateByTag($request, $request->query('tag')); + $jobs = $this->jobs->getRecent($request->query('starting_at', -1))->map(function ($job) { + $job->payload = json_decode($job->payload); - $total = $request->query('tag') - ? $this->tags->count('recent:'.$request->query('tag')) - : $this->jobs->countRecent(); + return $job; + })->values(); return [ 'jobs' => $jobs, - 'total' => $total, + 'total' => $this->jobs->countRecent(), ]; } /** - * Paginate the recent jobs for the request. + * Get the details of a recent job by ID. * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Support\Collection + * @param string $id + * @return array */ - protected function paginate(Request $request) + public function show($id) { - return $this->jobs->getRecent($request->query('starting_at', -1))->map(function ($job) { + return (array) $this->jobs->getJobs([$id])->map(function ($job) { return $this->decode($job); - })->values(); - } - - /** - * Paginate the recent jobs for the request and tag. - * - * @param \Illuminate\Http\Request $request - * @param string $tag - * @return \Illuminate\Support\Collection - */ - protected function paginateByTag(Request $request, $tag) - { - $jobIds = $this->tags->paginate( - 'recent:'.$tag, $request->query('starting_at', -1) + 1, 50 - ); - - $startingAt = $request->query('starting_at', 0); - - return $this->jobs->getJobs($jobIds, $startingAt)->map(function ($job) { - return $this->decode($job); - }); + })->first(); } /** diff --git a/vendor/laravel/horizon/src/Jobs/RetryFailedJob.php b/vendor/laravel/horizon/src/Jobs/RetryFailedJob.php index 5235391db..6e47acd09 100644 --- a/vendor/laravel/horizon/src/Jobs/RetryFailedJob.php +++ b/vendor/laravel/horizon/src/Jobs/RetryFailedJob.php @@ -2,6 +2,7 @@ namespace Laravel\Horizon\Jobs; +use Cake\Chronos\Chronos; use Illuminate\Contracts\Queue\Factory as Queue; use Laravel\Horizon\Contracts\JobRepository; use Laravel\Horizon\JobId; @@ -18,7 +19,7 @@ class RetryFailedJob /** * Create a new job instance. * - * @param string $id; + * @param string $id * @return void */ public function __construct($id) @@ -55,10 +56,26 @@ class RetryFailedJob */ protected function preparePayload($id, $payload) { - return json_encode(array_merge(json_decode($payload, true), [ + $payload = json_decode($payload, true); + + return json_encode(array_merge($payload, [ 'id' => $id, 'attempts' => 0, 'retry_of' => $this->id, + 'timeoutAt' => $this->prepareNewTimeout($payload), ])); } + + /** + * Prepare the timeout. + * + * @param array $payload + * @return int|null + */ + protected function prepareNewTimeout($payload) + { + return $payload['timeoutAt'] + ? Chronos::now()->addSeconds(ceil($payload['timeoutAt'] - $payload['pushedAt']))->getTimestamp() + : null; + } } diff --git a/vendor/laravel/horizon/src/Listeners/StoreTagsForRecentJob.php b/vendor/laravel/horizon/src/Listeners/StoreTagsForRecentJob.php deleted file mode 100644 index 60416b0af..000000000 --- a/vendor/laravel/horizon/src/Listeners/StoreTagsForRecentJob.php +++ /dev/null @@ -1,46 +0,0 @@ -tags = $tags; - } - - /** - * Handle the event. - * - * @param \Laravel\Horizon\Events\JobPushed $event - * @return void - */ - public function handle(JobPushed $event) - { - $tags = collect($event->payload->tags())->map(function ($tag) { - return 'recent:'.$tag; - })->all(); - - $this->tags->addTemporary( - config('horizon.trim.recent', 60), - $event->payload->id(), - $tags - ); - } -} diff --git a/vendor/laravel/horizon/src/RedisHorizonCommandQueue.php b/vendor/laravel/horizon/src/RedisHorizonCommandQueue.php index 1647216a9..1fd8da5ad 100644 --- a/vendor/laravel/horizon/src/RedisHorizonCommandQueue.php +++ b/vendor/laravel/horizon/src/RedisHorizonCommandQueue.php @@ -31,6 +31,7 @@ class RedisHorizonCommandQueue implements HorizonCommandQueue * @param string $name * @param string $command * @param array $options + * @return void */ public function push($name, $command, array $options = []) { diff --git a/vendor/laravel/horizon/src/Repositories/RedisJobRepository.php b/vendor/laravel/horizon/src/Repositories/RedisJobRepository.php index bfb72877f..2350e2528 100644 --- a/vendor/laravel/horizon/src/Repositories/RedisJobRepository.php +++ b/vendor/laravel/horizon/src/Repositories/RedisJobRepository.php @@ -42,6 +42,13 @@ class RedisJobRepository implements JobRepository */ public $recentJobExpires; + /** + * The number of minutes until completed jobs should be purged. + * + * @var int + */ + public $recentCompletedExpires; + /** * The number of minutes until failed jobs should be purged. * @@ -66,6 +73,7 @@ class RedisJobRepository implements JobRepository { $this->redis = $redis; $this->recentJobExpires = config('horizon.trim.recent', 60); + $this->recentCompletedExpires = config('horizon.trim.completed', 60); $this->failedJobExpires = config('horizon.trim.failed', 10080); $this->recentFailedJobExpires = config('horizon.trim.recent_failed', $this->failedJobExpires); $this->monitoredJobExpires = config('horizon.trim.monitored', 10080); @@ -403,7 +411,7 @@ class RedisJobRepository implements JobRepository ? $pipe->hmset($id, ['status' => 'failed']) : $pipe->hmset($id, ['status' => 'completed', 'completed_at' => str_replace(',', '.', microtime(true))]); - $pipe->expireat($id, Chronos::now()->addMinutes($this->recentJobExpires)->getTimestamp()); + $pipe->expireat($id, Chronos::now()->addMinutes($this->recentCompletedExpires)->getTimestamp()); } /** diff --git a/vendor/laravel/horizon/src/Tags.php b/vendor/laravel/horizon/src/Tags.php index 99a5d3660..dc83d99a3 100644 --- a/vendor/laravel/horizon/src/Tags.php +++ b/vendor/laravel/horizon/src/Tags.php @@ -9,6 +9,7 @@ use Illuminate\Events\CallQueuedListener; use Illuminate\Mail\SendQueuedMailable; use Illuminate\Notifications\SendQueuedNotifications; use ReflectionClass; +use ReflectionProperty; use stdClass; class Tags @@ -52,8 +53,8 @@ class Tags protected static function tagsForListener($job) { return collect( - [static::extractListener($job), static::extractEvent($job), - ])->map(function ($job) { + [static::extractListener($job), static::extractEvent($job)] + )->map(function ($job) { return static::for($job); })->collapse()->unique()->toArray(); } @@ -104,10 +105,12 @@ class Tags $models = []; foreach ($targets as $target) { - $models[] = collect((new ReflectionClass($target))->getProperties())->map(function ($property) use ($target) { + $models[] = collect( + (new ReflectionClass($target))->getProperties() + )->map(function ($property) use ($target) { $property->setAccessible(true); - $value = $property->getValue($target); + $value = static::getValue($property, $target); if ($value instanceof Model) { return [$value]; @@ -120,6 +123,22 @@ class Tags return collect($models)->collapse()->unique(); } + /** + * Get the value of the given ReflectionProperty. + * + * @param \ReflectionProperty $property + * @param mixed $target + */ + protected static function getValue(ReflectionProperty $property, $target) + { + if (method_exists($property, 'isInitialized') && + ! $property->isInitialized($target)) { + return; + } + + return $property->getValue($target); + } + /** * Extract the listener from a queued job. * diff --git a/vendor/laravel/horizon/stubs/HorizonServiceProvider.stub b/vendor/laravel/horizon/stubs/HorizonServiceProvider.stub index 16d7b66f6..08881175e 100644 --- a/vendor/laravel/horizon/stubs/HorizonServiceProvider.stub +++ b/vendor/laravel/horizon/stubs/HorizonServiceProvider.stub @@ -2,8 +2,8 @@ namespace App\Providers; -use Laravel\Horizon\Horizon; use Illuminate\Support\Facades\Gate; +use Laravel\Horizon\Horizon; use Laravel\Horizon\HorizonApplicationServiceProvider; class HorizonServiceProvider extends HorizonApplicationServiceProvider @@ -20,7 +20,7 @@ class HorizonServiceProvider extends HorizonApplicationServiceProvider // Horizon::routeSmsNotificationsTo('15556667777'); // Horizon::routeMailNotificationsTo('example@example.com'); // Horizon::routeSlackNotificationsTo('slack-webhook-url', '#channel'); - + // Horizon::night(); } diff --git a/vendor/laravel/socialite/src/Two/GithubProvider.php b/vendor/laravel/socialite/src/Two/GithubProvider.php index 650ac2d92..c26fa596d 100644 --- a/vendor/laravel/socialite/src/Two/GithubProvider.php +++ b/vendor/laravel/socialite/src/Two/GithubProvider.php @@ -35,10 +35,10 @@ class GithubProvider extends AbstractProvider implements ProviderInterface */ protected function getUserByToken($token) { - $userUrl = 'https://api.github.com/user?access_token='.$token; + $userUrl = 'https://api.github.com/user'; $response = $this->getHttpClient()->get( - $userUrl, $this->getRequestOptions() + $userUrl, $this->getRequestOptions($token) ); $user = json_decode($response->getBody(), true); @@ -58,11 +58,11 @@ class GithubProvider extends AbstractProvider implements ProviderInterface */ protected function getEmailByToken($token) { - $emailsUrl = 'https://api.github.com/user/emails?access_token='.$token; + $emailsUrl = 'https://api.github.com/user/emails'; try { $response = $this->getHttpClient()->get( - $emailsUrl, $this->getRequestOptions() + $emailsUrl, $this->getRequestOptions($token) ); } catch (Exception $e) { return; @@ -94,11 +94,12 @@ class GithubProvider extends AbstractProvider implements ProviderInterface * * @return array */ - protected function getRequestOptions() + protected function getRequestOptions($token) { return [ 'headers' => [ 'Accept' => 'application/vnd.github.v3+json', + 'Authorization' => 'token '.$token, ], ]; } diff --git a/vendor/league/flysystem/SECURITY.md b/vendor/league/flysystem/SECURITY.md new file mode 100644 index 000000000..f5b205ed0 --- /dev/null +++ b/vendor/league/flysystem/SECURITY.md @@ -0,0 +1,16 @@ +# Security Policy + +## Supported Versions + +| Version | Supported | +| ------- | ------------------ | +| 1.0.x | :white_check_mark: | +| 2.0.x | :x: | + +## Reporting a Vulnerability + +When you've encountered a security vulnerability, please disclose it securely. + +The security process is described at: +[https://flysystem.thephpleague.com/docs/security/](https://flysystem.thephpleague.com/docs/security/) + diff --git a/vendor/league/flysystem/composer.json b/vendor/league/flysystem/composer.json index 84229e9ff..51169de0e 100644 --- a/vendor/league/flysystem/composer.json +++ b/vendor/league/flysystem/composer.json @@ -1,11 +1,18 @@ { "name": "league/flysystem", + "type": "library", "description": "Filesystem abstraction: Many filesystems, one API.", "keywords": [ "filesystem", "filesystems", "files", "storage", "dropbox", "aws", "abstraction", "s3", "ftp", "sftp", "remote", "webdav", "file systems", "cloud", "cloud files", "rackspace", "copy.com" ], + "funding": [ + { + "type": "other", + "url": "https://offset.earth/frankdejonge" + } + ], "license": "MIT", "authors": [ { @@ -19,7 +26,7 @@ }, "require-dev": { "phpspec/phpspec": "^3.4", - "phpunit/phpunit": "^5.7.10" + "phpunit/phpunit": "^5.7.26" }, "autoload": { "psr-4": { diff --git a/vendor/league/flysystem/src/Adapter/AbstractFtpAdapter.php b/vendor/league/flysystem/src/Adapter/AbstractFtpAdapter.php index 578b49190..95a6b4d09 100644 --- a/vendor/league/flysystem/src/Adapter/AbstractFtpAdapter.php +++ b/vendor/league/flysystem/src/Adapter/AbstractFtpAdapter.php @@ -557,6 +557,10 @@ abstract class AbstractFtpAdapter extends AbstractAdapter */ protected function normalizePermissions($permissions) { + if (is_numeric($permissions)) { + return ((int) $permissions) & 0777; + } + // remove the type identifier $permissions = substr($permissions, 1); diff --git a/vendor/league/flysystem/src/Adapter/Ftp.php b/vendor/league/flysystem/src/Adapter/Ftp.php index c98482432..dc89e4318 100644 --- a/vendor/league/flysystem/src/Adapter/Ftp.php +++ b/vendor/league/flysystem/src/Adapter/Ftp.php @@ -6,9 +6,11 @@ use ErrorException; use League\Flysystem\Adapter\Polyfill\StreamedCopyTrait; use League\Flysystem\AdapterInterface; use League\Flysystem\Config; +use League\Flysystem\ConnectionErrorException; +use League\Flysystem\ConnectionRuntimeException; +use League\Flysystem\InvalidRootException; use League\Flysystem\Util; use League\Flysystem\Util\MimeType; -use RuntimeException; class Ftp extends AbstractFtpAdapter { @@ -129,13 +131,13 @@ class Ftp extends AbstractFtpAdapter public function connect() { if ($this->ssl) { - $this->connection = ftp_ssl_connect($this->getHost(), $this->getPort(), $this->getTimeout()); + $this->connection = @ftp_ssl_connect($this->getHost(), $this->getPort(), $this->getTimeout()); } else { - $this->connection = ftp_connect($this->getHost(), $this->getPort(), $this->getTimeout()); + $this->connection = @ftp_connect($this->getHost(), $this->getPort(), $this->getTimeout()); } if ( ! $this->connection) { - throw new RuntimeException('Could not connect to host: ' . $this->getHost() . ', port:' . $this->getPort()); + throw new ConnectionRuntimeException('Could not connect to host: ' . $this->getHost() . ', port:' . $this->getPort()); } $this->login(); @@ -153,7 +155,7 @@ class Ftp extends AbstractFtpAdapter if ($this->utf8) { $response = ftp_raw($this->connection, "OPTS UTF8 ON"); if (substr($response[0], 0, 3) !== '200') { - throw new RuntimeException( + throw new ConnectionRuntimeException( 'Could not set UTF-8 mode for connection: ' . $this->getHost() . '::' . $this->getPort() ); } @@ -163,7 +165,7 @@ class Ftp extends AbstractFtpAdapter /** * Set the connections to passive mode. * - * @throws RuntimeException + * @throws ConnectionRuntimeException */ protected function setConnectionPassiveMode() { @@ -172,7 +174,7 @@ class Ftp extends AbstractFtpAdapter } if ( ! ftp_pasv($this->connection, $this->passive)) { - throw new RuntimeException( + throw new ConnectionRuntimeException( 'Could not set passive mode for connection: ' . $this->getHost() . '::' . $this->getPort() ); } @@ -187,7 +189,7 @@ class Ftp extends AbstractFtpAdapter $connection = $this->connection; if ($root && ! ftp_chdir($connection, $root)) { - throw new RuntimeException('Root is invalid or does not exist: ' . $this->getRoot()); + throw new InvalidRootException('Root is invalid or does not exist: ' . $this->getRoot()); } // Store absolute path for further reference. @@ -200,7 +202,7 @@ class Ftp extends AbstractFtpAdapter /** * Login. * - * @throws RuntimeException + * @throws ConnectionRuntimeException */ protected function login() { @@ -215,7 +217,7 @@ class Ftp extends AbstractFtpAdapter if ( ! $isLoggedIn) { $this->disconnect(); - throw new RuntimeException( + throw new ConnectionRuntimeException( 'Could not login with connection: ' . $this->getHost() . '::' . $this->getPort( ) . ', username: ' . $this->getUsername() ); @@ -228,7 +230,7 @@ class Ftp extends AbstractFtpAdapter public function disconnect() { if (is_resource($this->connection)) { - ftp_close($this->connection); + @ftp_close($this->connection); } $this->connection = null; @@ -526,19 +528,12 @@ class Ftp extends AbstractFtpAdapter * * @return bool * - * @throws ErrorException + * @throws ConnectionErrorException */ public function isConnected() { - try { - return is_resource($this->connection) && ftp_rawlist($this->connection, $this->getRoot()) !== false; - } catch (ErrorException $e) { - if (strpos($e->getMessage(), 'ftp_rawlist') === false) { - throw $e; - } - - return false; - } + return is_resource($this->connection) + && $this->getRawExecResponseCode('NOOP') === 200; } /** @@ -569,4 +564,11 @@ class Ftp extends AbstractFtpAdapter return ftp_rawlist($connection, $options . ' ' . $path); } + + private function getRawExecResponseCode($command) + { + $response = @ftp_raw($this->connection, trim($command)); + + return (int) preg_replace('/\D/', '', implode(' ', $response)); + } } diff --git a/vendor/league/flysystem/src/ConnectionErrorException.php b/vendor/league/flysystem/src/ConnectionErrorException.php new file mode 100644 index 000000000..adb651d3d --- /dev/null +++ b/vendor/league/flysystem/src/ConnectionErrorException.php @@ -0,0 +1,9 @@ + 'text/plain', 'text' => 'text/plain', 'log' => 'text/plain', + 'markdown' => 'text/markdown', + 'md' => 'text/markdown', 'rtx' => 'text/richtext', 'rtf' => 'text/rtf', 'xml' => 'application/xml', @@ -185,6 +187,7 @@ class MimeType 'odm' => 'application/vnd.oasis.opendocument.text-master', 'odb' => 'application/vnd.oasis.opendocument.database', 'ott' => 'application/vnd.oasis.opendocument.text-template', + 'webp' => 'image/webp', ]; /** diff --git a/vendor/mockery/mockery/CHANGELOG.md b/vendor/mockery/mockery/CHANGELOG.md index 774c27e7c..3a7438793 100644 --- a/vendor/mockery/mockery/CHANGELOG.md +++ b/vendor/mockery/mockery/CHANGELOG.md @@ -1,5 +1,8 @@ # Change Log +## 1.3.1 (2019-12-26) +* Revert improved exception debugging due to BC breaks (#1032) + ## 1.3.0 (2019-11-24) * Added capture `Mockery::capture` convenience matcher (#1020) diff --git a/vendor/mockery/mockery/composer.json b/vendor/mockery/mockery/composer.json index a2bbde94d..bf0bd0e1a 100644 --- a/vendor/mockery/mockery/composer.json +++ b/vendor/mockery/mockery/composer.json @@ -33,8 +33,7 @@ "require": { "php": ">=5.6.0", "lib-pcre": ">=7.0", - "hamcrest/hamcrest-php": "~2.0", - "sebastian/comparator": "^1.2.4|^3.0" + "hamcrest/hamcrest-php": "~2.0" }, "require-dev": { "phpunit/phpunit": "~5.7.10|~6.5|~7.0|~8.0" @@ -51,7 +50,7 @@ }, "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" + "dev-master": "1.3.x-dev" } } } diff --git a/vendor/mockery/mockery/library/Mockery/Exception/NoMatchingExpectationException.php b/vendor/mockery/mockery/library/Mockery/Exception/NoMatchingExpectationException.php index 1cb6fca76..fe5f3515a 100644 --- a/vendor/mockery/mockery/library/Mockery/Exception/NoMatchingExpectationException.php +++ b/vendor/mockery/mockery/library/Mockery/Exception/NoMatchingExpectationException.php @@ -20,186 +20,51 @@ namespace Mockery\Exception; -use Hamcrest\Util; use Mockery; -use SebastianBergmann\Comparator\ComparisonFailure; -use SebastianBergmann\Comparator\Factory; class NoMatchingExpectationException extends Mockery\Exception { - /** - * @var string - */ - protected $method; + protected $method = null; - /** - * @var array - */ - protected $actual; + protected $actual = array(); - /** - * @var Mockery\MockInterface - */ - protected $mockObject; + protected $mockObject = null; - /** - * @param string $methodName - * @param array $actualArguments - * @param array $expectations - */ - public function __construct( - Mockery\MockInterface $mock, - $methodName, - $actualArguments, - $expectations - ) { - $this->setMock($mock); - $this->setMethodName($methodName); - $this->setActualArguments($actualArguments); - - $diffs = []; - foreach ($expectations as $expectation) { - $expectedArguments = $expectation->getExpectedArgs(); - - $diff = $this->diff( - $this->normalizeForDiff($expectedArguments), - $this->normalizeForDiff($actualArguments) - ); - if (null === $diff) { - // If we reach this, it means that the exception has not been - // raised by a non-strict equality. So the diff is null. - // We do the comparison again but this time comparing references - // of objects. - $diff = $this->diff( - $this->normalizeForStrictDiff($expectedArguments), - $this->normalizeForStrictDiff($actualArguments) - ); - } - - $diffs[] = sprintf( - "\n%s::%s with arguments%s", - $expectation->getMock()->mockery_getName(), - $expectation->getName(), - null !== $diff ? $diff : "\n### No diff ###" - ); - } - - $message = 'No matching expectation found for ' - . $this->getMockName() . '::' - . \Mockery::formatArgs($methodName, $actualArguments) - . '. Either the method was unexpected or its arguments matched' - . ' no expected argument list for this method.' - . PHP_EOL . PHP_EOL - . 'Here is the list of available expectations and their diff with actual input:' - . PHP_EOL - . implode('', $diffs); - - parent::__construct($message, 0, null); - } - - /** - * @return $this - */ - private function setMock(Mockery\MockInterface $mock) + public function setMock(Mockery\LegacyMockInterface $mock) { $this->mockObject = $mock; return $this; } - /** - * @param string $name - * - * @return $this - */ - private function setMethodName($name) + public function setMethodName($name) { $this->method = $name; return $this; } - /** - * @param array $count - * - * @return $this - */ - private function setActualArguments($count) + public function setActualArguments($count) { $this->actual = $count; return $this; } - /** - * @return Mockery\MockInterface - */ - private function getMock() + public function getMock() { return $this->mockObject; } - /** - * @return string - */ - private function getMockName() + public function getMethodName() + { + return $this->method; + } + + public function getActualArguments() + { + return $this->actual; + } + + public function getMockName() { return $this->getMock()->mockery_getName(); } - - /** - * @param array $expectedArguments - * @param array $actualArguments - * - * @return string|null - */ - private function diff($expectedArguments, $actualArguments) - { - $comparatorFactory = new Factory(); - $comparator = $comparatorFactory->getComparatorFor( - $expectedArguments, - $actualArguments - ); - try { - $comparator->assertEquals($expectedArguments, $actualArguments); - } catch (ComparisonFailure $e) { - return $e->getDiff(); - } - - return null; - } - - /** - * @param array $args - * - * @return array - */ - private function normalizeForDiff($args) - { - // Wraps items with an IsEqual matcher if it isn't a matcher already - // in order to be sure to compare same nature objects. - return Util::createMatcherArray($args); - } - - /** - * @param array $args - * - * @return array - */ - private function normalizeForStrictDiff($args) - { - $normalized = []; - foreach ($args as $arg) { - if (!is_object($arg)) { - $normalizedArg = Util::createMatcherArray([$arg]); - $normalized[] = reset($normalizedArg); - continue; - } - - $objectRef = function_exists('spl_object_id') - ? spl_object_id($arg) - : spl_object_hash($arg); - - $normalized[] = get_class($arg).'#ref_'.$objectRef; - } - - return $normalized; - } } diff --git a/vendor/mockery/mockery/library/Mockery/Expectation.php b/vendor/mockery/mockery/library/Mockery/Expectation.php index 613082003..4a12fc855 100644 --- a/vendor/mockery/mockery/library/Mockery/Expectation.php +++ b/vendor/mockery/mockery/library/Mockery/Expectation.php @@ -911,12 +911,4 @@ class Expectation implements ExpectationInterface { return $this->_because; } - - /** - * @return array - */ - public function getExpectedArgs() - { - return $this->_expectedArgs; - } } diff --git a/vendor/mockery/mockery/library/Mockery/ExpectationDirector.php b/vendor/mockery/mockery/library/Mockery/ExpectationDirector.php index 84ba5e0af..1310c1b38 100644 --- a/vendor/mockery/mockery/library/Mockery/ExpectationDirector.php +++ b/vendor/mockery/mockery/library/Mockery/ExpectationDirector.php @@ -89,12 +89,19 @@ class ExpectationDirector { $expectation = $this->findExpectation($args); if (is_null($expectation)) { - throw new \Mockery\Exception\NoMatchingExpectationException( - $this->_mock, - $this->_name, - $args, - $this->getExpectations() + $exception = new \Mockery\Exception\NoMatchingExpectationException( + 'No matching handler found for ' + . $this->_mock->mockery_getName() . '::' + . \Mockery::formatArgs($this->_name, $args) + . '. Either the method was unexpected or its arguments matched' + . ' no expected argument list for this method' + . PHP_EOL . PHP_EOL + . \Mockery::formatObjects($args) ); + $exception->setMock($this->_mock) + ->setMethodName($this->_name) + ->setActualArguments($args); + throw $exception; } return $expectation->verifyCall($args); } diff --git a/vendor/mockery/mockery/tests/Mockery/ContainerTest.php b/vendor/mockery/mockery/tests/Mockery/ContainerTest.php index 9cdde4be7..ea35dad48 100644 --- a/vendor/mockery/mockery/tests/Mockery/ContainerTest.php +++ b/vendor/mockery/mockery/tests/Mockery/ContainerTest.php @@ -1239,7 +1239,7 @@ class ContainerTest extends MockeryTestCase $mock->shouldReceive('foo')->with(array('yourself' => 21)); $this->expectException(\Mockery\Exception\NoMatchingExpectationException::class); - $this->expectExceptionMessage("0 => Hamcrest\Core\IsEqual Object (...)"); + $this->expectExceptionMessage('MyTestClass::foo(resource(...))'); $mock->foo(fopen('php://memory', 'r')); } @@ -1252,7 +1252,7 @@ class ContainerTest extends MockeryTestCase $mock->shouldReceive('foo')->with(array('yourself' => 21)); $this->expectException(\Mockery\Exception\NoMatchingExpectationException::class); - $this->expectExceptionMessage("'myself' => Hamcrest\Core\IsEqual Object (...)"); + $this->expectExceptionMessage("MyTestClass::foo(['myself' => [...]])"); $mock->foo($testArray); } diff --git a/vendor/mockery/mockery/tests/Mockery/ExpectationTest.php b/vendor/mockery/mockery/tests/Mockery/ExpectationTest.php index 245072852..c2db568f9 100644 --- a/vendor/mockery/mockery/tests/Mockery/ExpectationTest.php +++ b/vendor/mockery/mockery/tests/Mockery/ExpectationTest.php @@ -1436,7 +1436,7 @@ class ExpectationTest extends MockeryTestCase { $this->mock->shouldReceive('foo')->with(Mockery::type('stdClass')); $this->expectException(\Mockery\Exception::class); - $this->mock->foo(new \DateTime()); + $this->mock->foo(new Exception); Mockery::close(); } diff --git a/vendor/monolog/monolog/CHANGELOG.md b/vendor/monolog/monolog/CHANGELOG.md index a00c1ece8..255297c69 100644 --- a/vendor/monolog/monolog/CHANGELOG.md +++ b/vendor/monolog/monolog/CHANGELOG.md @@ -1,3 +1,10 @@ +### 1.25.3 (2019-12-20) + + * Fixed formatting of resources in JsonFormatter + * Fixed RedisHandler failing to use MULTI properly when passed a proxied Redis instance (e.g. in Symfony with lazy services) + * Fixed FilterHandler triggering a notice when handleBatch was filtering all records passed to it + * Fixed Turkish locale messing up the conversion of level names to their constant values + ### 1.25.2 (2019-11-13) * Fixed normalization of Traversables to avoid traversing them as not all of them are rewindable diff --git a/vendor/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php b/vendor/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php index 96a059179..86966b079 100644 --- a/vendor/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php +++ b/vendor/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php @@ -165,6 +165,10 @@ class JsonFormatter extends NormalizerFormatter return $this->normalizeException($data); } + if (is_resource($data)) { + return parent::normalize($data); + } + return $data; } diff --git a/vendor/monolog/monolog/src/Monolog/Handler/FilterHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/FilterHandler.php index 11ede52e5..949f22718 100644 --- a/vendor/monolog/monolog/src/Monolog/Handler/FilterHandler.php +++ b/vendor/monolog/monolog/src/Monolog/Handler/FilterHandler.php @@ -128,7 +128,9 @@ class FilterHandler extends AbstractHandler } } - $this->getHandler($filtered[count($filtered) - 1])->handleBatch($filtered); + if (count($filtered) > 0) { + $this->getHandler($filtered[count($filtered) - 1])->handleBatch($filtered); + } } /** diff --git a/vendor/monolog/monolog/src/Monolog/Handler/RedisHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/RedisHandler.php index 590f99657..bb00db509 100644 --- a/vendor/monolog/monolog/src/Monolog/Handler/RedisHandler.php +++ b/vendor/monolog/monolog/src/Monolog/Handler/RedisHandler.php @@ -73,7 +73,8 @@ class RedisHandler extends AbstractProcessingHandler protected function writeCapped(array $record) { if ($this->redisClient instanceof \Redis) { - $this->redisClient->multi() + $mode = defined('\Redis::MULTI') ? \Redis::MULTI : 1; + $this->redisClient->multi($mode) ->rpush($this->redisKey, $record["formatted"]) ->ltrim($this->redisKey, -$this->capSize, -1) ->exec(); diff --git a/vendor/monolog/monolog/src/Monolog/Logger.php b/vendor/monolog/monolog/src/Monolog/Logger.php index 05dfc8179..e649af51b 100644 --- a/vendor/monolog/monolog/src/Monolog/Logger.php +++ b/vendor/monolog/monolog/src/Monolog/Logger.php @@ -527,8 +527,13 @@ class Logger implements LoggerInterface, ResettableInterface */ public static function toMonologLevel($level) { - if (is_string($level) && defined(__CLASS__.'::'.strtoupper($level))) { - return constant(__CLASS__.'::'.strtoupper($level)); + if (is_string($level)) { + // Contains chars of all log levels and avoids using strtoupper() which may have + // strange results depending on locale (for example, "i" will become "İ") + $upper = strtr($level, 'abcdefgilmnortuwy', 'ABCDEFGILMNORTUWY'); + if (defined(__CLASS__.'::'.$upper)) { + return constant(__CLASS__ . '::' . $upper); + } } return $level; diff --git a/vendor/myclabs/deep-copy/.github/FUNDING.yml b/vendor/myclabs/deep-copy/.github/FUNDING.yml new file mode 100644 index 000000000..b8da664dd --- /dev/null +++ b/vendor/myclabs/deep-copy/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: "packagist/myclabs/deep-copy" +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/vendor/myclabs/deep-copy/README.md b/vendor/myclabs/deep-copy/README.md index 7abe5dc84..007ad5bb8 100644 --- a/vendor/myclabs/deep-copy/README.md +++ b/vendor/myclabs/deep-copy/README.md @@ -7,11 +7,6 @@ DeepCopy helps you create deep copies (clones) of your objects. It is designed t [![Scrutinizer Quality Score](https://scrutinizer-ci.com/g/myclabs/DeepCopy/badges/quality-score.png?s=2747100c19b275f93a777e3297c6c12d1b68b934)](https://scrutinizer-ci.com/g/myclabs/DeepCopy/) [![Total Downloads](https://poser.pugx.org/myclabs/deep-copy/downloads.svg)](https://packagist.org/packages/myclabs/deep-copy) - -**You are browsing the 1.x version, this version is in maintenance mode only. Please check the new -[2.x](https://github.com/myclabs/DeepCopy/tree/2.x) version.** - - ## Table of Contents 1. [How](#how) @@ -374,3 +369,7 @@ Running the tests is simple: ```php vendor/bin/phpunit ``` + +### Support + +Get professional support via [the Tidelift Subscription](https://tidelift.com/subscription/pkg/packagist-myclabs-deep-copy?utm_source=packagist-myclabs-deep-copy&utm_medium=referral&utm_campaign=readme). diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/DeepCopy.php b/vendor/myclabs/deep-copy/src/DeepCopy/DeepCopy.php index 2e53cf3df..15e5c6893 100644 --- a/vendor/myclabs/deep-copy/src/DeepCopy/DeepCopy.php +++ b/vendor/myclabs/deep-copy/src/DeepCopy/DeepCopy.php @@ -2,19 +2,21 @@ namespace DeepCopy; +use ArrayObject; use DateInterval; use DateTimeInterface; use DateTimeZone; use DeepCopy\Exception\CloneException; use DeepCopy\Filter\Filter; use DeepCopy\Matcher\Matcher; +use DeepCopy\Reflection\ReflectionHelper; use DeepCopy\TypeFilter\Date\DateIntervalFilter; +use DeepCopy\TypeFilter\Spl\ArrayObjectFilter; use DeepCopy\TypeFilter\Spl\SplDoublyLinkedListFilter; use DeepCopy\TypeFilter\TypeFilter; use DeepCopy\TypeMatcher\TypeMatcher; use ReflectionObject; use ReflectionProperty; -use DeepCopy\Reflection\ReflectionHelper; use SplDoublyLinkedList; /** @@ -59,6 +61,7 @@ class DeepCopy { $this->useCloneMethod = $useCloneMethod; + $this->addTypeFilter(new ArrayObjectFilter($this), new TypeMatcher(ArrayObject::class)); $this->addTypeFilter(new DateIntervalFilter(), new TypeMatcher(DateInterval::class)); $this->addTypeFilter(new SplDoublyLinkedListFilter($this), new TypeMatcher(SplDoublyLinkedList::class)); } @@ -237,6 +240,12 @@ class DeepCopy } $property->setAccessible(true); + + // Ignore uninitialized properties (for PHP >7.4) + if (method_exists($property, 'isInitialized') && !$property->isInitialized($object)) { + return; + } + $propertyValue = $property->getValue($object); // Copy the property diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/ArrayObjectFilter.php b/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/ArrayObjectFilter.php new file mode 100644 index 000000000..dbc25a5ed --- /dev/null +++ b/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/ArrayObjectFilter.php @@ -0,0 +1,36 @@ +copier = $copier; + } + + /** + * {@inheritdoc} + */ + public function apply($arrayObject) + { + return new ArrayObject( + $this->copier->copy($arrayObject->getArrayCopy()), + $arrayObject->getFlags(), + $arrayObject->getIteratorClass() + ); + } +} + diff --git a/vendor/nesbot/carbon/composer.json b/vendor/nesbot/carbon/composer.json index 43180b3fb..584a21748 100644 --- a/vendor/nesbot/carbon/composer.json +++ b/vendor/nesbot/carbon/composer.json @@ -24,17 +24,20 @@ "homepage": "http://github.com/kylekatarnls" } ], + "prefer-stable": true, "minimum-stability": "dev", "bin": ["bin/carbon"], "require": { "php": "^7.1.8 || ^8.0", "ext-json": "*", + "symfony/polyfill-mbstring": "^1.0", "symfony/translation": "^3.4 || ^4.0 || ^5.0" }, "require-dev": { + "doctrine/orm": "^2.7", "friendsofphp/php-cs-fixer": "^2.14 || ^3.0", "kylekatarnls/multi-tester": "^1.1", - "phpmd/phpmd": "dev-php-7.1-compatibility", + "phpmd/phpmd": "^2.8", "phpstan/phpstan": "^0.11", "phpunit/phpunit": "^7.5 || ^8.0", "squizlabs/php_codesniffer": "^3.4" diff --git a/vendor/nesbot/carbon/phpmd.xml b/vendor/nesbot/carbon/phpmd.xml index e444c607a..32420228e 100644 --- a/vendor/nesbot/carbon/phpmd.xml +++ b/vendor/nesbot/carbon/phpmd.xml @@ -23,6 +23,7 @@ + diff --git a/vendor/nesbot/carbon/readme.md b/vendor/nesbot/carbon/readme.md index f88a14161..73cfae7db 100644 --- a/vendor/nesbot/carbon/readme.md +++ b/vendor/nesbot/carbon/readme.md @@ -131,3 +131,9 @@ Support this project by becoming a sponsor. Your logo will show up here with a l + +## Carbon for enterprise + +Available as part of the Tidelift Subscription. + +The maintainers of ``Carbon`` and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) diff --git a/vendor/nesbot/carbon/src/Carbon/Carbon.php b/vendor/nesbot/carbon/src/Carbon/Carbon.php index a2c4aa8fb..c5525ea93 100644 --- a/vendor/nesbot/carbon/src/Carbon/Carbon.php +++ b/vendor/nesbot/carbon/src/Carbon/Carbon.php @@ -56,6 +56,8 @@ use DateTime; * @property-read int $daysInMonth number of days in the given month * @property-read string $latinMeridiem "am"/"pm" (Ante meridiem or Post meridiem latin lowercase mark) * @property-read string $latinUpperMeridiem "AM"/"PM" (Ante meridiem or Post meridiem latin uppercase mark) + * @property-read string $timezoneAbbreviatedName the current timezone abbreviated name + * @property-read string $tzAbbrName alias of $timezoneAbbreviatedName * @property-read string $dayName long name of weekday translated according to Carbon locale, in english if no translation available for current language * @property-read string $shortDayName short name of weekday translated according to Carbon locale, in english if no translation available for current language * @property-read string $minDayName very short name of weekday translated according to Carbon locale, in english if no translation available for current language @@ -80,8 +82,6 @@ use DateTime; * @property-read bool $utc checks if the timezone is UTC, true if UTC, false otherwise * @property-read string $timezoneName the current timezone name * @property-read string $tzName alias of $timezoneName - * @property-read string $timezoneAbbreviatedName the current timezone abbreviated name - * @property-read string $tzAbbrName alias of $timezoneAbbreviatedName * @property-read string $locale locale of the current instance * * @method bool isUtc() Check if the current instance has UTC timezone. (Both isUtc and isUTC cases are valid.) diff --git a/vendor/nesbot/carbon/src/Carbon/CarbonImmutable.php b/vendor/nesbot/carbon/src/Carbon/CarbonImmutable.php index c4ce1435f..9bc67067e 100644 --- a/vendor/nesbot/carbon/src/Carbon/CarbonImmutable.php +++ b/vendor/nesbot/carbon/src/Carbon/CarbonImmutable.php @@ -56,6 +56,8 @@ use DateTimeImmutable; * @property-read int $daysInMonth number of days in the given month * @property-read string $latinMeridiem "am"/"pm" (Ante meridiem or Post meridiem latin lowercase mark) * @property-read string $latinUpperMeridiem "AM"/"PM" (Ante meridiem or Post meridiem latin uppercase mark) + * @property-read string $timezoneAbbreviatedName the current timezone abbreviated name + * @property-read string $tzAbbrName alias of $timezoneAbbreviatedName * @property-read string $dayName long name of weekday translated according to Carbon locale, in english if no translation available for current language * @property-read string $shortDayName short name of weekday translated according to Carbon locale, in english if no translation available for current language * @property-read string $minDayName very short name of weekday translated according to Carbon locale, in english if no translation available for current language @@ -80,8 +82,6 @@ use DateTimeImmutable; * @property-read bool $utc checks if the timezone is UTC, true if UTC, false otherwise * @property-read string $timezoneName the current timezone name * @property-read string $tzName alias of $timezoneName - * @property-read string $timezoneAbbreviatedName the current timezone abbreviated name - * @property-read string $tzAbbrName alias of $timezoneAbbreviatedName * @property-read string $locale locale of the current instance * * @method bool isUtc() Check if the current instance has UTC timezone. (Both isUtc and isUTC cases are valid.) diff --git a/vendor/nesbot/carbon/src/Carbon/CarbonInterface.php b/vendor/nesbot/carbon/src/Carbon/CarbonInterface.php index e3cb39f07..a9b70be3e 100644 --- a/vendor/nesbot/carbon/src/Carbon/CarbonInterface.php +++ b/vendor/nesbot/carbon/src/Carbon/CarbonInterface.php @@ -63,6 +63,8 @@ use ReflectionException; * @property-read int $daysInMonth number of days in the given month * @property-read string $latinMeridiem "am"/"pm" (Ante meridiem or Post meridiem latin lowercase mark) * @property-read string $latinUpperMeridiem "AM"/"PM" (Ante meridiem or Post meridiem latin uppercase mark) + * @property-read string $timezoneAbbreviatedName the current timezone abbreviated name + * @property-read string $tzAbbrName alias of $timezoneAbbreviatedName * @property-read string $dayName long name of weekday translated according to Carbon locale, in english if no translation available for current language * @property-read string $shortDayName short name of weekday translated according to Carbon locale, in english if no translation available for current language * @property-read string $minDayName very short name of weekday translated according to Carbon locale, in english if no translation available for current language @@ -87,8 +89,6 @@ use ReflectionException; * @property-read bool $utc checks if the timezone is UTC, true if UTC, false otherwise * @property-read string $timezoneName the current timezone name * @property-read string $tzName alias of $timezoneName - * @property-read string $timezoneAbbreviatedName the current timezone abbreviated name - * @property-read string $tzAbbrName alias of $timezoneAbbreviatedName * @property-read string $locale locale of the current instance * * @method bool isUtc() Check if the current instance has UTC timezone. (Both isUtc and isUTC cases are valid.) @@ -625,14 +625,19 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable */ public static function __callStatic($method, $parameters); + /** + * Update constructedObjectId on cloned. + */ + public function __clone(); + /** * Create a new Carbon instance. * * Please see the testing aids section (specifically static::setTestNow()) * for more on the possibility of this constructor returning a test instance. * - * @param string|null $time - * @param \DateTimeZone|string|null $tz + * @param string|null $time + * @param DateTimeZone|string|null $tz */ public function __construct($time = null, $tz = null); @@ -794,12 +799,16 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable /** * Determines if the instance is between two others. * + * The third argument allow you to specify if bounds are included or not (true by default) + * but for when you including/excluding bounds may produce different results in your application, + * we recommend to use the explicit methods ->betweenIncluded() or ->betweenExcluded() instead. + * * @example * ``` * Carbon::parse('2018-07-25')->between('2018-07-14', '2018-08-01'); // true * Carbon::parse('2018-07-25')->between('2018-08-01', '2018-08-20'); // false - * Carbon::parse('2018-07-25')->between('2018-07-25', '2018-08-01'); // false - * Carbon::parse('2018-07-25')->between('2018-07-25', '2018-08-01', true); // true + * Carbon::parse('2018-07-25')->between('2018-07-25', '2018-08-01'); // true + * Carbon::parse('2018-07-25')->between('2018-07-25', '2018-08-01', false); // false * ``` * * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1 @@ -827,6 +836,23 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable */ public function betweenExcluded($date1, $date2): bool; + /** + * Determines if the instance is between two others, bounds included. + * + * @example + * ``` + * Carbon::parse('2018-07-25')->betweenExcluded('2018-07-14', '2018-08-01'); // true + * Carbon::parse('2018-07-25')->betweenExcluded('2018-08-01', '2018-08-20'); // false + * Carbon::parse('2018-07-25')->betweenExcluded('2018-07-25', '2018-08-01'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1 + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2 + * + * @return bool + */ + public function betweenIncluded($date1, $date2): bool; + /** * Returns either the close date "Friday 15h30", or a calendar date "10/09/2017" is farthest than 7 days from now. * @@ -900,6 +926,15 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable */ public function change($modifier); + /** + * Cleanup properties attached to the public scope of DateTime when a dump of the date is requested. + * foreach ($date as $_) {} + * serializer($date) + * var_export($date) + * get_object_vars($date) + */ + public function cleanupDumpProperties(); + /** * @alias copy * @@ -938,13 +973,13 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable * If $hour is not null then the default values for $minute and $second * will be 0. * - * @param int|null $year - * @param int|null $month - * @param int|null $day - * @param int|null $hour - * @param int|null $minute - * @param int|null $second - * @param \DateTimeZone|string|null $tz + * @param int|null $year + * @param int|null $month + * @param int|null $day + * @param int|null $hour + * @param int|null $minute + * @param int|null $second + * @param DateTimeZone|string|null $tz * * @throws \InvalidArgumentException * @@ -955,10 +990,10 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable /** * Create a Carbon instance from just a date. The time portion is set to now. * - * @param int|null $year - * @param int|null $month - * @param int|null $day - * @param \DateTimeZone|string|null $tz + * @param int|null $year + * @param int|null $month + * @param int|null $day + * @param DateTimeZone|string|null $tz * * @throws \InvalidArgumentException * @@ -969,9 +1004,9 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable /** * Create a Carbon instance from a specific format. * - * @param string $format Datetime format - * @param string $time - * @param \DateTimeZone|string|false|null $tz + * @param string $format Datetime format + * @param string $time + * @param DateTimeZone|string|false|null $tz * * @throws InvalidArgumentException * @@ -984,7 +1019,7 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable * * @param string $format Datetime format * @param string $time - * @param \DateTimeZone|string|false|null $tz optional timezone + * @param DateTimeZone|string|false|null $tz optional timezone * @param string|null $locale locale to be used for LTS, LT, LL, LLL, etc. macro-formats (en by fault, unneeded if no such macro-format in use) * @param \Symfony\Component\Translation\TranslatorInterface $translator optional custom translator to use for macro-formats * @@ -997,10 +1032,10 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable /** * Create a Carbon instance from a specific format and a string in a given language. * - * @param string $format Datetime format - * @param string $locale - * @param string $time - * @param \DateTimeZone|string|false|null $tz + * @param string $format Datetime format + * @param string $locale + * @param string $time + * @param DateTimeZone|string|false|null $tz * * @throws InvalidArgumentException * @@ -1011,10 +1046,10 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable /** * Create a Carbon instance from a specific ISO format and a string in a given language. * - * @param string $format Datetime ISO format - * @param string $locale - * @param string $time - * @param \DateTimeZone|string|false|null $tz + * @param string $format Datetime ISO format + * @param string $locale + * @param string $time + * @param DateTimeZone|string|false|null $tz * * @throws InvalidArgumentException * @@ -1025,10 +1060,10 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable /** * Create a Carbon instance from just a time. The date portion is set to today. * - * @param int|null $hour - * @param int|null $minute - * @param int|null $second - * @param \DateTimeZone|string|null $tz + * @param int|null $hour + * @param int|null $minute + * @param int|null $second + * @param DateTimeZone|string|null $tz * * @throws \InvalidArgumentException * @@ -1039,8 +1074,8 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable /** * Create a Carbon instance from a time string. The date portion is set to today. * - * @param string $time - * @param \DateTimeZone|string|null $tz + * @param string $time + * @param DateTimeZone|string|null $tz * * @throws \InvalidArgumentException * @@ -1061,7 +1096,7 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable /** * Create a Carbon instance from a timestamp in milliseconds. * - * @param int $timestamp + * @param float $timestamp * @param \DateTimeZone|string|null $tz * * @return static @@ -1080,10 +1115,10 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable /** * Create a Carbon instance from just a date. The time portion is set to midnight. * - * @param int|null $year - * @param int|null $month - * @param int|null $day - * @param \DateTimeZone|string|null $tz + * @param int|null $year + * @param int|null $month + * @param int|null $day + * @param DateTimeZone|string|null $tz * * @return static */ @@ -1104,13 +1139,13 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable * If one of the set values is not valid, an \InvalidArgumentException * will be thrown. * - * @param int|null $year - * @param int|null $month - * @param int|null $day - * @param int|null $hour - * @param int|null $minute - * @param int|null $second - * @param \DateTimeZone|string|null $tz + * @param int|null $year + * @param int|null $month + * @param int|null $day + * @param int|null $hour + * @param int|null $minute + * @param int|null $second + * @param DateTimeZone|string|null $tz * * @throws \Carbon\Exceptions\InvalidDateException|\InvalidArgumentException * @@ -1139,7 +1174,7 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable public function diffAsCarbonInterval($date = null, $absolute = true); /** - * Get the difference by the given interval using a filter closure + * Get the difference by the given interval using a filter closure. * * @param CarbonInterval $ci An interval to traverse by * @param Closure $callback @@ -1194,7 +1229,7 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable public function diffForHumans($other = null, $syntax = null, $short = false, $parts = 1, $options = null); /** - * Get the difference in days + * Get the difference in days rounded down. * * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date * @param bool $absolute Get the absolute of the difference @@ -1204,7 +1239,7 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable public function diffInDays($date = null, $absolute = true); /** - * Get the difference in days using a filter closure + * Get the difference in days using a filter closure rounded down. * * @param Closure $callback * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date @@ -1215,7 +1250,7 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable public function diffInDaysFiltered(\Closure $callback, $date = null, $absolute = true); /** - * Get the difference in hours. + * Get the difference in hours rounded down. * * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date * @param bool $absolute Get the absolute of the difference @@ -1225,7 +1260,7 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable public function diffInHours($date = null, $absolute = true); /** - * Get the difference in hours using a filter closure + * Get the difference in hours using a filter closure rounded down. * * @param Closure $callback * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date @@ -1246,7 +1281,7 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable public function diffInMicroseconds($date = null, $absolute = true); /** - * Get the difference in milliseconds. + * Get the difference in milliseconds rounded down. * * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date * @param bool $absolute Get the absolute of the difference @@ -1256,7 +1291,7 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable public function diffInMilliseconds($date = null, $absolute = true); /** - * Get the difference in minutes. + * Get the difference in minutes rounded down. * * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date * @param bool $absolute Get the absolute of the difference @@ -1266,7 +1301,7 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable public function diffInMinutes($date = null, $absolute = true); /** - * Get the difference in months + * Get the difference in months rounded down. * * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date * @param bool $absolute Get the absolute of the difference @@ -1276,7 +1311,7 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable public function diffInMonths($date = null, $absolute = true); /** - * Get the difference in hours using timestamps. + * Get the difference in hours rounded down using timestamps. * * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date * @param bool $absolute Get the absolute of the difference @@ -1296,7 +1331,7 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable public function diffInRealMicroseconds($date = null, $absolute = true); /** - * Get the difference in milliseconds using timestamps. + * Get the difference in milliseconds rounded down using timestamps. * * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date * @param bool $absolute Get the absolute of the difference @@ -1306,7 +1341,7 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable public function diffInRealMilliseconds($date = null, $absolute = true); /** - * Get the difference in minutes using timestamps. + * Get the difference in minutes rounded down using timestamps. * * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date * @param bool $absolute Get the absolute of the difference @@ -1326,7 +1361,7 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable public function diffInRealSeconds($date = null, $absolute = true); /** - * Get the difference in seconds. + * Get the difference in seconds rounded down. * * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date * @param bool $absolute Get the absolute of the difference @@ -1336,7 +1371,7 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable public function diffInSeconds($date = null, $absolute = true); /** - * Get the difference in weekdays + * Get the difference in weekdays rounded down. * * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date * @param bool $absolute Get the absolute of the difference @@ -1346,7 +1381,7 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable public function diffInWeekdays($date = null, $absolute = true); /** - * Get the difference in weekend days using a filter + * Get the difference in weekend days using a filter rounded down. * * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date * @param bool $absolute Get the absolute of the difference @@ -1356,7 +1391,7 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable public function diffInWeekendDays($date = null, $absolute = true); /** - * Get the difference in weeks + * Get the difference in weeks rounded down. * * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date * @param bool $absolute Get the absolute of the difference @@ -1365,6 +1400,16 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable */ public function diffInWeeks($date = null, $absolute = true); + /** + * Get the difference in quarters rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInQuarters($date = null, $absolute = true); + /** * Get the difference in years * @@ -1459,7 +1504,7 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable public function endOfHour(); /** - * Resets the date to end of the century and time to 23:59:59.999999 + * Resets the date to end of the millennium and time to 23:59:59.999999 * * @example * ``` @@ -1980,6 +2025,15 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable */ public static function getLastErrors(); + /** + * Get the raw callable macro registered globally or locally for a given name. + * + * @param string $name + * + * @return callable|null + */ + public function getLocalMacro($name); + /** * Get the translator of the current instance or the default if none set. * @@ -1994,6 +2048,15 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable */ public static function getLocale(); + /** + * Get the raw callable macro registered globally for a given name. + * + * @param string $name + * + * @return callable|null + */ + public static function getMacro($name); + /** * get midday/noon hour * @@ -2257,7 +2320,23 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable public static function hasFormat($date, $format); /** - * Checks if macro is registered. + * Checks if macro is registered globally or locally. + * + * @param string $name + * + * @return bool + */ + public function hasLocalMacro($name); + + /** + * Return true if the current instance has its own translator. + * + * @return bool + */ + public function hasLocalTranslator(); + + /** + * Checks if macro is registered globally. * * @param string $name * @@ -2285,7 +2364,7 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable /** * Create a Carbon instance from a DateTime one. * - * @param \DateTimeInterface $date + * @param DateTimeInterface $date * * @return static */ @@ -3163,7 +3242,7 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable /** * Get a Carbon instance for the current date and time. * - * @param \DateTimeZone|string|null $tz + * @param DateTimeZone|string|null $tz * * @return static */ @@ -3232,8 +3311,8 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable * as it allows you to do Carbon::parse('Monday next week')->fn() rather * than (new Carbon('Monday next week'))->fn(). * - * @param string|null $time - * @param \DateTimeZone|string|null $tz + * @param string|null $time + * @param DateTimeZone|string|null $tz * * @return static */ @@ -3242,9 +3321,9 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable /** * Create a carbon instance from a localized string (in French, Japanese, Arabic, etc.). * - * @param string $time - * @param string $locale - * @param \DateTimeZone|string|null $tz + * @param string $time + * @param string $locale + * @param DateTimeZone|string|null $tz * * @return static */ @@ -3299,9 +3378,9 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable /** * Create a Carbon instance from a specific format. * - * @param string $format Datetime format - * @param string $time - * @param \DateTimeZone|string|false|null $tz + * @param string $format Datetime format + * @param string $time + * @param DateTimeZone|string|false|null $tz * * @throws InvalidArgumentException * @@ -3325,8 +3404,8 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable * as it allows you to do Carbon::parse('Monday next week')->fn() rather * than (new Carbon('Monday next week'))->fn(). * - * @param string|null $time - * @param \DateTimeZone|string|null $tz + * @param string|null $time + * @param DateTimeZone|string|null $tz * * @return static */ @@ -3866,7 +3945,7 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable public function startOfHour(); /** - * Resets the date to the first day of the century and the time to 00:00:00 + * Resets the date to the first day of the millennium and the time to 00:00:00 * * @example * ``` @@ -4481,7 +4560,7 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable /** * Create a Carbon instance for today. * - * @param \DateTimeZone|string|null $tz + * @param DateTimeZone|string|null $tz * * @return static */ @@ -4490,7 +4569,7 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable /** * Create a Carbon instance for tomorrow. * - * @param \DateTimeZone|string|null $tz + * @param DateTimeZone|string|null $tz * * @return static */ @@ -4735,7 +4814,7 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable /** * Create a Carbon instance for yesterday. * - * @param \DateTimeZone|string|null $tz + * @param DateTimeZone|string|null $tz * * @return static */ diff --git a/vendor/nesbot/carbon/src/Carbon/CarbonInterval.php b/vendor/nesbot/carbon/src/Carbon/CarbonInterval.php index 0c8a9d881..6545810ab 100644 --- a/vendor/nesbot/carbon/src/Carbon/CarbonInterval.php +++ b/vendor/nesbot/carbon/src/Carbon/CarbonInterval.php @@ -321,6 +321,14 @@ class CarbonInterval extends DateInterval */ public function __construct($years = 1, $months = null, $weeks = null, $days = null, $hours = null, $minutes = null, $seconds = null, $microseconds = null) { + if ($years instanceof DateInterval) { + parent::__construct(static::getDateIntervalSpec($years)); + $this->f = $years->f; + static::copyNegativeUnits($years, $this); + + return; + } + $spec = $years; if (!is_string($spec) || floatval($years) || preg_match('/^[0-9.]/', $years)) { @@ -817,19 +825,27 @@ class CarbonInterval extends DateInterval $microseconds = $interval->f; $instance = new $className(static::getDateIntervalSpec($interval)); + if ($microseconds) { $instance->f = $microseconds; } - $instance->invert = $interval->invert; - foreach (['y', 'm', 'd', 'h', 'i', 's'] as $unit) { - if ($interval->$unit < 0) { - $instance->$unit *= -1; - } - } + + static::copyNegativeUnits($interval, $instance); return $instance; } + private static function copyNegativeUnits(DateInterval $from, DateInterval $to) + { + $to->invert = $from->invert; + + foreach (['y', 'm', 'd', 'h', 'i', 's'] as $unit) { + if ($from->$unit < 0) { + $to->$unit *= -1; + } + } + } + /** * Cast the current instance into the given class. * @@ -978,7 +994,7 @@ class CarbonInterval extends DateInterval return $this->d % static::getDaysPerWeek(); case 'locale': - return $this->getLocalTranslator()->getLocale(); + return $this->getTranslatorLocale(); default: throw new InvalidArgumentException(sprintf("Unknown getter '%s'", $name)); @@ -1264,9 +1280,30 @@ class CarbonInterval extends DateInterval return $this; } + protected function getForHumansInitialVariables($syntax, $short) + { + if (is_array($syntax)) { + return $syntax; + } + + if (is_int($short)) { + return [ + 'parts' => $short, + 'short' => false, + ]; + } + + if (is_bool($syntax)) { + return [ + 'short' => $syntax, + 'syntax' => CarbonInterface::DIFF_ABSOLUTE, + ]; + } + + return []; + } + /** - * @SuppressWarnings(PHPMD.ElseExpression) - * * @param mixed $syntax * @param mixed $short * @param mixed $parts @@ -1281,20 +1318,8 @@ class CarbonInterval extends DateInterval $join = $default === '' ? '' : ' '; $altNumbers = false; $aUnit = false; - - if (is_array($syntax)) { - extract($syntax); - } else { - if (is_int($short)) { - $parts = $short; - $short = false; - } - - if (is_bool($syntax)) { - $short = $syntax; - $syntax = CarbonInterface::DIFF_ABSOLUTE; - } - } + $minimumUnit = 's'; + extract($this->getForHumansInitialVariables($syntax, $short)); if (is_null($syntax)) { $syntax = CarbonInterface::DIFF_ABSOLUTE; @@ -1357,7 +1382,7 @@ class CarbonInterval extends DateInterval ':optional-space' => $optionalSpace, ]; - return [$syntax, $short, $parts, $options, $join, $aUnit, $altNumbers, $interpolations]; + return [$syntax, $short, $parts, $options, $join, $aUnit, $altNumbers, $interpolations, $minimumUnit]; } protected static function getRoundingMethodFromOptions(int $options): ?string @@ -1453,6 +1478,7 @@ class CarbonInterval extends DateInterval * echo CarbonInterval::fromString('4d 3h 40m')->forHumans(['parts' => 3, 'join' => true]) . "\n"; * echo CarbonInterval::fromString('4d 3h 40m')->forHumans(['short' => true]) . "\n"; * echo CarbonInterval::fromString('1d 24h')->forHumans(['join' => ' or ']) . "\n"; + * echo CarbonInterval::fromString('1d 24h')->forHumans(['minimumUnit' => 'hour']) . "\n"; * ``` * * @param int|array $syntax if array passed, parameters will be extracted from it, the array may contains: @@ -1468,6 +1494,8 @@ class CarbonInterval extends DateInterval * ` will be used instead of the glue for the last item * ` - if $join is true, it will be guessed from the locale ('list' translation file entry) * ` - if $join is missing, a space will be used as glue + * - 'minimumUnit' entry determines the smallest unit of time to display can be long or + * ` short form of the units, e.g. 'hour' or 'h' (default value: s) * if int passed, it add modifiers: * Possible values: * - CarbonInterface::DIFF_ABSOLUTE no modifiers @@ -1482,7 +1510,7 @@ class CarbonInterval extends DateInterval */ public function forHumans($syntax = null, $short = false, $parts = -1, $options = null) { - [$syntax, $short, $parts, $options, $join, $aUnit, $altNumbers, $interpolations] = $this->getForHumansParameters($syntax, $short, $parts, $options); + [$syntax, $short, $parts, $options, $join, $aUnit, $altNumbers, $interpolations, $minimumUnit] = $this->getForHumansParameters($syntax, $short, $parts, $options); $interval = []; @@ -1497,13 +1525,15 @@ class CarbonInterval extends DateInterval /** @var \Symfony\Component\Translation\Translator $translator */ $translator = $this->getLocalTranslator(); - $handleDeclensions = function ($unit, $count) use ($interpolations, $transId, $translator, $altNumbers) { - // Some languages have special pluralization for past and future tense. - $key = $unit.'_'.$transId; - $result = $this->translate($key, $interpolations, $count, $translator, $altNumbers); + $handleDeclensions = function ($unit, $count) use ($interpolations, $transId, $translator, $altNumbers, $absolute) { + if (!$absolute) { + // Some languages have special pluralization for past and future tense. + $key = $unit.'_'.$transId; + $result = $this->translate($key, $interpolations, $count, $translator, $altNumbers); - if ($result !== $key) { - return $result; + if ($result !== $key) { + return $result; + } } $result = $this->translate($unit, $interpolations, $count, $translator, $altNumbers); @@ -1528,16 +1558,17 @@ class CarbonInterval extends DateInterval } $diffIntervalArray = [ - ['value' => $intervalValues->years, 'unit' => 'year', 'unitShort' => 'y'], - ['value' => $intervalValues->months, 'unit' => 'month', 'unitShort' => 'm'], - ['value' => $intervalValues->weeks, 'unit' => 'week', 'unitShort' => 'w'], - ['value' => $intervalValues->daysExcludeWeeks, 'unit' => 'day', 'unitShort' => 'd'], - ['value' => $intervalValues->hours, 'unit' => 'hour', 'unitShort' => 'h'], - ['value' => $intervalValues->minutes, 'unit' => 'minute', 'unitShort' => 'min'], - ['value' => $intervalValues->seconds, 'unit' => 'second', 'unitShort' => 's'], + ['value' => $intervalValues->years, 'unit' => 'year', 'unitShort' => 'y'], + ['value' => $intervalValues->months, 'unit' => 'month', 'unitShort' => 'm'], + ['value' => $intervalValues->weeks, 'unit' => 'week', 'unitShort' => 'w'], + ['value' => $intervalValues->daysExcludeWeeks, 'unit' => 'day', 'unitShort' => 'd'], + ['value' => $intervalValues->hours, 'unit' => 'hour', 'unitShort' => 'h'], + ['value' => $intervalValues->minutes, 'unit' => 'minute', 'unitShort' => 'min'], + ['value' => $intervalValues->seconds, 'unit' => 'second', 'unitShort' => 's'], + ['value' => $intervalValues->milliseconds, 'unit' => 'millisecond', 'unitShort' => 'ms'], ]; - $transChoice = function ($short, $unitData) use ($handleDeclensions, $translator, $aUnit, $altNumbers, $interpolations) { + $transChoice = function ($short, $unitData) use ($absolute, $handleDeclensions, $translator, $aUnit, $altNumbers, $interpolations) { $count = $unitData['value']; if ($short) { @@ -1554,9 +1585,14 @@ class CarbonInterval extends DateInterval } } + if (!$absolute) { + return $handleDeclensions($unitData['unit'], $count); + } + return $this->translate($unitData['unit'], $interpolations, $count, $translator, $altNumbers); }; + $fallbackUnit = ['second', 's']; foreach ($diffIntervalArray as $diffIntervalData) { if ($diffIntervalData['value'] > 0) { $unit = $short ? $diffIntervalData['unitShort'] : $diffIntervalData['unit']; @@ -1570,6 +1606,13 @@ class CarbonInterval extends DateInterval if (count($interval) >= $parts) { break; } + + // break the loop after we have reached the minimum unit + if (in_array($minimumUnit, [$diffIntervalData['unit'], $diffIntervalData['unitShort']])) { + $fallbackUnit = [$diffIntervalData['unit'], $diffIntervalData['unitShort']]; + + break; + } } if (count($interval) === 0) { @@ -1583,7 +1626,7 @@ class CarbonInterval extends DateInterval } $count = $options & CarbonInterface::NO_ZERO_DIFF ? 1 : 0; - $unit = $short ? 's' : 'second'; + $unit = $fallbackUnit[$short ? 1 : 0]; $interval[] = $this->translate($unit, $interpolations, $count, $translator, $altNumbers); } @@ -1621,9 +1664,9 @@ class CarbonInterval extends DateInterval } } - $aTime = $aUnit ? $handleDeclensions('a_'.$unit.'_'.$transId, $count) : null; + $aTime = $aUnit ? $handleDeclensions('a_'.$unit, $count) : null; - $time = $aTime ?: $handleDeclensions($unit.'_'.$transId, $count) ?: $time; + $time = $aTime ?: $handleDeclensions($unit, $count) ?: $time; } $time = [':time' => $time]; @@ -1638,6 +1681,16 @@ class CarbonInterval extends DateInterval */ public function __toString() { + $format = $this->localToStringFormat; + + if ($format) { + if ($format instanceof Closure) { + return $format($this); + } + + return $this->format($format); + } + return $this->forHumans(); } @@ -2007,14 +2060,29 @@ class CarbonInterval extends DateInterval $cumulativeFactor = 0; $unitFound = false; $factors = static::getFlipCascadeFactors(); + $daysPerWeek = static::getDaysPerWeek(); + + $values = [ + 'years' => $this->years, + 'months' => $this->months, + 'weeks' => (int) floor($this->d / $daysPerWeek), + 'dayz' => (int) ($this->d % $daysPerWeek), + 'hours' => $this->hours, + 'minutes' => $this->minutes, + 'seconds' => $this->seconds, + 'milliseconds' => (int) floor($this->microseconds / Carbon::MICROSECONDS_PER_MILLISECOND), + 'microseconds' => (int) ($this->microseconds % Carbon::MICROSECONDS_PER_MILLISECOND), + ]; + + if (isset($factors['dayz']) && $factors['dayz'][0] !== 'weeks') { + $values['dayz'] += $values['weeks'] * $daysPerWeek; + $values['weeks'] = 0; + } foreach ($factors as $source => [$target, $factor]) { if ($source === $realUnit) { $unitFound = true; - $value = $this->$source; - if ($source === 'microseconds' && isset($factors['milliseconds'])) { - $value %= Carbon::MICROSECONDS_PER_MILLISECOND; - } + $value = $values[$source]; $result += $value; $cumulativeFactor = 1; } @@ -2036,22 +2104,18 @@ class CarbonInterval extends DateInterval if ($cumulativeFactor) { $cumulativeFactor *= $factor; - $result += $this->$target * $cumulativeFactor; + $result += $values[$target] * $cumulativeFactor; continue; } - $value = $this->$source; - - if ($source === 'microseconds' && isset($factors['milliseconds'])) { - $value %= Carbon::MICROSECONDS_PER_MILLISECOND; - } + $value = $values[$source]; $result = ($result + $value) / $factor; } if (isset($target) && !$cumulativeFactor) { - $result += $this->$target; + $result += $values[$target]; } if (!$unitFound) { @@ -2059,7 +2123,7 @@ class CarbonInterval extends DateInterval } if ($unit === 'weeks') { - return $result / static::getDaysPerWeek(); + return $result / $daysPerWeek; } return $result; @@ -2230,6 +2294,10 @@ class CarbonInterval extends DateInterval /** * Determines if the instance is between two others. * + * The third argument allow you to specify if bounds are included or not (true by default) + * but for when you including/excluding bounds may produce different results in your application, + * we recommend to use the explicit methods ->betweenIncluded() or ->betweenExcluded() instead. + * * @example * ``` * CarbonInterval::hours(48)->between(CarbonInterval::day(), CarbonInterval::days(3)); // true @@ -2251,6 +2319,26 @@ class CarbonInterval extends DateInterval : $this->greaterThan($interval1) && $this->lessThan($interval2); } + /** + * Determines if the instance is between two others, bounds excluded. + * + * @example + * ``` + * CarbonInterval::hours(48)->betweenExcluded(CarbonInterval::day(), CarbonInterval::days(3)); // true + * CarbonInterval::hours(48)->betweenExcluded(CarbonInterval::day(), CarbonInterval::hours(36)); // false + * CarbonInterval::hours(48)->betweenExcluded(CarbonInterval::day(), CarbonInterval::days(2)); // true + * ``` + * + * @param \Carbon\CarbonInterval|\DateInterval|mixed $interval1 + * @param \Carbon\CarbonInterval|\DateInterval|mixed $interval2 + * + * @return bool + */ + public function betweenIncluded($interval1, $interval2): bool + { + return $this->between($interval1, $interval2, true); + } + /** * Determines if the instance is between two others, bounds excluded. * diff --git a/vendor/nesbot/carbon/src/Carbon/CarbonPeriod.php b/vendor/nesbot/carbon/src/Carbon/CarbonPeriod.php index f6ac34fab..f57c66873 100644 --- a/vendor/nesbot/carbon/src/Carbon/CarbonPeriod.php +++ b/vendor/nesbot/carbon/src/Carbon/CarbonPeriod.php @@ -621,10 +621,30 @@ class CarbonPeriod implements Iterator, Countable, JsonSerializable // Parse and assign arguments one by one. First argument may be an ISO 8601 spec, // which will be first parsed into parts and then processed the same way. - if (count($arguments) && static::isIso8601($iso = $arguments[0])) { + $agumentsCount = count($arguments); + + if ($agumentsCount && static::isIso8601($iso = $arguments[0])) { array_splice($arguments, 0, 1, static::parseIso8601($iso)); } + if ($agumentsCount === 1) { + if ($arguments[0] instanceof DatePeriod) { + $arguments = [ + $arguments[0]->start, + $arguments[0]->end ?: ($arguments[0]->recurrences - 1), + $arguments[0]->interval, + $arguments[0]->include_start_date ? 0 : static::EXCLUDE_START_DATE, + ]; + } elseif ($arguments[0] instanceof self) { + $arguments = [ + $arguments[0]->getStartDate(), + $arguments[0]->getEndDate() ?: $arguments[0]->getRecurrences(), + $arguments[0]->getDateInterval(), + $arguments[0]->getOptions(), + ]; + } + } + foreach ($arguments as $argument) { if ($this->dateInterval === null && ( @@ -1446,10 +1466,11 @@ class CarbonPeriod implements Iterator, Countable, JsonSerializable $this->key = 0; $this->current = call_user_func([$this->dateClass, 'make'], $this->startDate); $settings = $this->getSettings(); - $locale = $this->getLocalTranslator()->getLocale(); - if ($locale) { - $settings['locale'] = $locale; + + if ($this->hasLocalTranslator()) { + $settings['locale'] = $this->getTranslatorLocale(); } + $this->current->settings($settings); $this->timezone = static::intervalHasTime($this->dateInterval) ? $this->current->getTimezone() : null; diff --git a/vendor/nesbot/carbon/src/Carbon/CarbonTimeZone.php b/vendor/nesbot/carbon/src/Carbon/CarbonTimeZone.php index 421c3e65f..195b7f6ec 100644 --- a/vendor/nesbot/carbon/src/Carbon/CarbonTimeZone.php +++ b/vendor/nesbot/carbon/src/Carbon/CarbonTimeZone.php @@ -152,13 +152,9 @@ class CarbonTimeZone extends DateTimeZone */ public function toOffsetName(DateTimeInterface $date = null) { - $minutes = floor($this->getOffset($date ?: Carbon::now($this)) / 60); - - $hours = floor($minutes / 60); - - $minutes = str_pad((string) (abs($minutes) % 60), 2, '0', STR_PAD_LEFT); - - return ($hours < 0 ? '-' : '+').str_pad((string) abs($hours), 2, '0', STR_PAD_LEFT).":$minutes"; + return static::getOffsetNameFromMinuteOffset( + $this->getOffset($date ?: Carbon::now($this)) / 60 + ); } /** @@ -247,4 +243,46 @@ class CarbonTimeZone extends DateTimeZone { return static::instance($object); } + + /** + * Create a CarbonTimeZone from int/float hour offset. + * + * @param float $hourOffset number of hour of the timezone shift (can be decimal). + * + * @return false|static + */ + public static function createFromHourOffset(float $hourOffset) + { + return static::createFromMinuteOffset($hourOffset * Carbon::MINUTES_PER_HOUR); + } + + /** + * Create a CarbonTimeZone from int/float minute offset. + * + * @param float $minuteOffset number of total minutes of the timezone shift. + * + * @return false|static + */ + public static function createFromMinuteOffset(float $minuteOffset) + { + return static::instance(static::getOffsetNameFromMinuteOffset($minuteOffset)); + } + + /** + * Convert a total minutes offset into a standardized timezone offset string. + * + * @param float $minutes number of total minutes of the timezone shift. + * + * @return string + */ + public static function getOffsetNameFromMinuteOffset(float $minutes): string + { + $minutes = round($minutes); + $unsignedMinutes = abs($minutes); + + return ($minutes < 0 ? '-' : '+'). + str_pad((string) floor($unsignedMinutes / 60), 2, '0', STR_PAD_LEFT). + ':'. + str_pad((string) ($unsignedMinutes % 60), 2, '0', STR_PAD_LEFT); + } } diff --git a/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonType.php b/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonType.php new file mode 100644 index 000000000..4f074c7de --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonType.php @@ -0,0 +1,95 @@ +getCarbonClassName(); + + if ($value instanceof DateTimeInterface) { + return $class::instance($value); + } + + $date = $class::parse($value); + + if (!$date) { + throw ConversionException::conversionFailedFormat( + $value, + $this->getName(), + 'Y-m-d H:i:s.u' + ); + } + + return $date; + } + + /** + * @SuppressWarnings(PHPMD.UnusedFormalParameter) + */ + public function convertToDatabaseValue($value, AbstractPlatform $platform) + { + if ($value === null) { + return $value; + } + + if ($value instanceof DateTimeInterface) { + return $value->format('Y-m-d H:i:s.u'); + } + + throw ConversionException::conversionFailedInvalidType( + $value, + $this->getName(), + ['null', 'DateTime'] + ); + } + + /** + * @SuppressWarnings(PHPMD.UnusedFormalParameter) + */ + public function requiresSQLCommentHint(AbstractPlatform $platform) + { + return true; + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeDefaultPrecision.php b/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeDefaultPrecision.php new file mode 100644 index 000000000..f9744b818 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeDefaultPrecision.php @@ -0,0 +1,32 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace Carbon\Exceptions; + +use Exception; +use InvalidArgumentException; + +class NotLocaleAwareException extends InvalidArgumentException +{ + /** + * Constructor. + * + * @param mixed $object + * @param int $code + * @param \Exception|null $previous + */ + public function __construct($object, $code = 0, Exception $previous = null) + { + $dump = is_object($object) ? get_class($object) : gettype($object); + + parent::__construct("$dump does neither implements Symfony\Contracts\Translation\LocaleAwareInterface nor getLocale() method.", $code, $previous); + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Factory.php b/vendor/nesbot/carbon/src/Carbon/Factory.php index e80d67a87..355983648 100644 --- a/vendor/nesbot/carbon/src/Carbon/Factory.php +++ b/vendor/nesbot/carbon/src/Carbon/Factory.php @@ -63,6 +63,7 @@ use Closure; * @method array getIsoUnits() Returns list of locale units for ISO formatting. * @method Carbon getLastErrors() {@inheritdoc} * @method string getLocale() Get the current translator locale. + * @method callable|null getMacro($name) Get the raw callable macro registered globally for a given name. * @method int getMidDayAt() get midday/noon hour * @method Closure|Carbon getTestNow() Get the Carbon instance (real or mock) to be returned when a "now" * instance is created. @@ -73,7 +74,7 @@ use Closure; * @method int getWeekStartsAt() Get the first day of week * @method array getWeekendDays() Get weekend days * @method bool hasFormat($date, $format) Checks if the (date)time string is in a given format. - * @method bool hasMacro($name) Checks if macro is registered. + * @method bool hasMacro($name) Checks if macro is registered globally. * @method bool hasRelativeKeywords($time) Determine if a time string will produce a relative date. * @method bool hasTestNow() Determine if there is a valid test instance set. A valid test instance * is anything that is not null. diff --git a/vendor/nesbot/carbon/src/Carbon/FactoryImmutable.php b/vendor/nesbot/carbon/src/Carbon/FactoryImmutable.php index a910e9978..a30d3d4a3 100644 --- a/vendor/nesbot/carbon/src/Carbon/FactoryImmutable.php +++ b/vendor/nesbot/carbon/src/Carbon/FactoryImmutable.php @@ -63,6 +63,7 @@ use Closure; * @method array getIsoUnits() Returns list of locale units for ISO formatting. * @method CarbonImmutable getLastErrors() {@inheritdoc} * @method string getLocale() Get the current translator locale. + * @method callable|null getMacro($name) Get the raw callable macro registered globally for a given name. * @method int getMidDayAt() get midday/noon hour * @method Closure|CarbonImmutable getTestNow() Get the Carbon instance (real or mock) to be returned when a "now" * instance is created. @@ -73,7 +74,7 @@ use Closure; * @method int getWeekStartsAt() Get the first day of week * @method array getWeekendDays() Get weekend days * @method bool hasFormat($date, $format) Checks if the (date)time string is in a given format. - * @method bool hasMacro($name) Checks if macro is registered. + * @method bool hasMacro($name) Checks if macro is registered globally. * @method bool hasRelativeKeywords($time) Determine if a time string will produce a relative date. * @method bool hasTestNow() Determine if there is a valid test instance set. A valid test instance * is anything that is not null. diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/aa.php b/vendor/nesbot/carbon/src/Carbon/Lang/aa.php index bcbcf6065..f3431e4bc 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/aa.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/aa.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/aa_DJ.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/aa_DJ.php b/vendor/nesbot/carbon/src/Carbon/Lang/aa_DJ.php index 7de98820e..c6e23c0df 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/aa_DJ.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/aa_DJ.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Ge'ez Frontier Foundation locales@geez.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/aa_ER.php b/vendor/nesbot/carbon/src/Carbon/Lang/aa_ER.php index c226bd5f8..f8f395b76 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/aa_ER.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/aa_ER.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Ge'ez Frontier Foundation locales@geez.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/aa_ER@saaho.php b/vendor/nesbot/carbon/src/Carbon/Lang/aa_ER@saaho.php index 4299dfb9d..646122533 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/aa_ER@saaho.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/aa_ER@saaho.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Ge'ez Frontier Foundation locales@geez.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/aa_ET.php b/vendor/nesbot/carbon/src/Carbon/Lang/aa_ET.php index 8c3291bc7..e55e591b5 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/aa_ET.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/aa_ET.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Ge'ez Frontier Foundation locales@geez.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/af.php b/vendor/nesbot/carbon/src/Carbon/Lang/af.php index c87ee7832..401758994 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/af.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/af.php @@ -9,15 +9,15 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - François B * - JD Isaacks * - Pierre du Plessis */ return [ - 'year' => ':count jaar|:count jare', - 'a_year' => '\'n jaar|:count jare', + 'year' => ':count jaar', + 'a_year' => '\'n jaar|:count jaar', 'y' => ':count j.', 'month' => ':count maand|:count maande', 'a_month' => '\'n maand|:count maande', @@ -28,8 +28,8 @@ return [ 'day' => ':count dag|:count dae', 'a_day' => '\'n dag|:count dae', 'd' => ':count d.', - 'hour' => ':count uur|:count ure', - 'a_hour' => '\'n uur|:count ure', + 'hour' => ':count uur', + 'a_hour' => '\'n uur|:count uur', 'h' => ':count u.', 'minute' => ':count minuut|:count minute', 'a_minute' => '\'n minuut|:count minute', @@ -41,6 +41,7 @@ return [ 'from_now' => 'oor :time', 'after' => ':time na', 'before' => ':time voor', + 'diff_now' => 'Nou', 'diff_yesterday' => 'Gister', 'diff_tomorrow' => 'Môre', 'formats' => [ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/agr.php b/vendor/nesbot/carbon/src/Carbon/Lang/agr.php index df58e25cc..8f036ae8c 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/agr.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/agr.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/agr_PE.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/agr_PE.php b/vendor/nesbot/carbon/src/Carbon/Lang/agr_PE.php index 81a174e72..54a326af0 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/agr_PE.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/agr_PE.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - somosazucar.org libc-alpha@sourceware.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ak.php b/vendor/nesbot/carbon/src/Carbon/Lang/ak.php index 3814109b7..5a64be373 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ak.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ak.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/ak_GH.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ak_GH.php b/vendor/nesbot/carbon/src/Carbon/Lang/ak_GH.php index 6745f0fbc..138194675 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ak_GH.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ak_GH.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Sugar Labs // OLPC sugarlabs.org libc-alpha@sourceware.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/am.php b/vendor/nesbot/carbon/src/Carbon/Lang/am.php index 486ad52b3..63bf72d2d 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/am.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/am.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/am_ET.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/am_ET.php b/vendor/nesbot/carbon/src/Carbon/Lang/am_ET.php index 0982f0e46..ece80621a 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/am_ET.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/am_ET.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Ge'ez Frontier Foundation locales@geez.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/an.php b/vendor/nesbot/carbon/src/Carbon/Lang/an.php index 568c9a102..565abf269 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/an.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/an.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/an_ES.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/an_ES.php b/vendor/nesbot/carbon/src/Carbon/Lang/an_ES.php index 284eeaa41..faf8ae072 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/an_ES.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/an_ES.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Softaragones Jordi Mallach Pérez, Juan Pablo Martínez bug-glibc-locales@gnu.org, softaragones@softaragones.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/anp.php b/vendor/nesbot/carbon/src/Carbon/Lang/anp.php index aa2b3f082..b56c67bbb 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/anp.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/anp.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/anp_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/anp_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/anp_IN.php index ed0fcd733..11069be3f 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/anp_IN.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/anp_IN.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - bhashaghar@googlegroups.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_AE.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_AE.php index daff04d02..75fe47f6d 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ar_AE.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_AE.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_BH.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_BH.php index 403701ee3..362009e29 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ar_BH.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_BH.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_EG.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_EG.php index 403701ee3..362009e29 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ar_EG.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_EG.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_IN.php index 350a2d005..5fecf70f6 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ar_IN.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_IN.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_IQ.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_IQ.php index 8f8566c71..0ac09958e 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ar_IQ.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_IQ.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_JO.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_JO.php index 8f8566c71..0ac09958e 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ar_JO.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_JO.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_LB.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_LB.php index 560517329..55bb10c33 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ar_LB.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_LB.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_OM.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_OM.php index 403701ee3..362009e29 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ar_OM.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_OM.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_QA.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_QA.php index 403701ee3..362009e29 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ar_QA.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_QA.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_SD.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_SD.php index 403701ee3..362009e29 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ar_SD.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_SD.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_SS.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_SS.php index 95cb15171..32f32825c 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ar_SS.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_SS.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_SY.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_SY.php index 8f8566c71..0ac09958e 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ar_SY.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_SY.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_YE.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_YE.php index b2dd1a24b..5dc29388e 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ar_YE.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_YE.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/as.php b/vendor/nesbot/carbon/src/Carbon/Lang/as.php index 94015f721..04bc3dfd1 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/as.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/as.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/as_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/as_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/as_IN.php index 74515ed4b..5fbc3dba3 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/as_IN.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/as_IN.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Amitakhya Phukan, Red Hat bug-glibc@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ast.php b/vendor/nesbot/carbon/src/Carbon/Lang/ast.php index 47640f175..c4f573f92 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ast.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ast.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/ast_ES.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ast_ES.php b/vendor/nesbot/carbon/src/Carbon/Lang/ast_ES.php index dea14fab7..d3fef65cd 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ast_ES.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ast_ES.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Jordi Mallach jordi@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ayc.php b/vendor/nesbot/carbon/src/Carbon/Lang/ayc.php index 6fbef7a62..d6a6f638a 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ayc.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ayc.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/ayc_PE.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ayc_PE.php b/vendor/nesbot/carbon/src/Carbon/Lang/ayc_PE.php index a4eb1fca8..ff18504f0 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ayc_PE.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ayc_PE.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - runasimipi.org libc-alpha@sourceware.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/az_AZ.php b/vendor/nesbot/carbon/src/Carbon/Lang/az_AZ.php index c1dfc560f..2acf881a9 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/az_AZ.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/az_AZ.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Pablo Saratxaga pablo@mandrakesoft.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/az_IR.php b/vendor/nesbot/carbon/src/Carbon/Lang/az_IR.php index 7fec8955c..991a0efb2 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/az_IR.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/az_IR.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Mousa Moradi mousamk@gmail.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/be.php b/vendor/nesbot/carbon/src/Carbon/Lang/be.php index 0eec85215..7a3c08136 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/be.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/be.php @@ -92,6 +92,9 @@ return [ 'from_now' => 'праз :time', 'after' => ':time пасля', 'before' => ':time да', + 'diff_now' => 'цяпер', + 'diff_yesterday' => 'учора', + 'diff_tomorrow' => 'заўтра', 'formats' => [ 'LT' => 'HH:mm', 'LTS' => 'HH:mm:ss', @@ -147,7 +150,7 @@ return [ 'months' => ['студзеня', 'лютага', 'сакавіка', 'красавіка', 'траўня', 'чэрвеня', 'ліпеня', 'жніўня', 'верасня', 'кастрычніка', 'лістапада', 'снежня'], 'months_standalone' => ['студзень', 'люты', 'сакавік', 'красавік', 'травень', 'чэрвень', 'ліпень', 'жнівень', 'верасень', 'кастрычнік', 'лістапад', 'снежань'], 'months_short' => ['студ', 'лют', 'сак', 'крас', 'трав', 'чэрв', 'ліп', 'жнів', 'вер', 'каст', 'ліст', 'снеж'], - 'months_regexp' => '/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/', + 'months_regexp' => '/(DD?o?\.?(\[[^\[\]]*\]|\s)+MMMM?|L{2,4}|l{2,4})/', 'weekdays' => ['нядзелю', 'панядзелак', 'аўторак', 'сераду', 'чацвер', 'пятніцу', 'суботу'], 'weekdays_standalone' => ['нядзеля', 'панядзелак', 'аўторак', 'серада', 'чацвер', 'пятніца', 'субота'], 'weekdays_short' => ['нд', 'пн', 'ат', 'ср', 'чц', 'пт', 'сб'], diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/be_BY.php b/vendor/nesbot/carbon/src/Carbon/Lang/be_BY.php index dd62a758e..26684b40e 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/be_BY.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/be_BY.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/be_BY@latin.php b/vendor/nesbot/carbon/src/Carbon/Lang/be_BY@latin.php index ecc1cd882..517ce83af 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/be_BY@latin.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/be_BY@latin.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bem.php b/vendor/nesbot/carbon/src/Carbon/Lang/bem.php index 51c91f1ae..1c3ef0396 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/bem.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bem.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/bem_ZM.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bem_ZM.php b/vendor/nesbot/carbon/src/Carbon/Lang/bem_ZM.php index 19756483e..620b57954 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/bem_ZM.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bem_ZM.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - ANLoc Martin Benjamin locales@africanlocalization.net */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ber.php b/vendor/nesbot/carbon/src/Carbon/Lang/ber.php index 70d004ccd..685603c00 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ber.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ber.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/ber_DZ.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ber_DZ.php b/vendor/nesbot/carbon/src/Carbon/Lang/ber_DZ.php index 15dc11600..38de10ab0 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ber_DZ.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ber_DZ.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Pablo Saratxaga pablo@mandrakesoft.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ber_MA.php b/vendor/nesbot/carbon/src/Carbon/Lang/ber_MA.php index 15dc11600..38de10ab0 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ber_MA.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ber_MA.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Pablo Saratxaga pablo@mandrakesoft.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bg.php b/vendor/nesbot/carbon/src/Carbon/Lang/bg.php index db2229751..2d082d0fe 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/bg.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bg.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Josh Soref * - François B @@ -43,6 +43,9 @@ return [ 'from_now' => 'след :time', 'after' => 'след :time', 'before' => 'преди :time', + 'diff_now' => 'сега', + 'diff_yesterday' => 'вчера', + 'diff_tomorrow' => 'утре', 'formats' => [ 'LT' => 'H:mm', 'LTS' => 'H:mm:ss', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bhb.php b/vendor/nesbot/carbon/src/Carbon/Lang/bhb.php index 45db41a25..49f08032e 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/bhb.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bhb.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/bhb_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bhb_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/bhb_IN.php index 3e9a18298..ab557cbf3 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/bhb_IN.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bhb_IN.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Samsung Electronics Co., Ltd. alexey.merzlyakov@samsung.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bho.php b/vendor/nesbot/carbon/src/Carbon/Lang/bho.php index 93c39007a..e9ed0b687 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/bho.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bho.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/bho_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bho_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/bho_IN.php index 12c47066a..bc54f3631 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/bho_IN.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bho_IN.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - bhashaghar@googlegroups.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bi.php b/vendor/nesbot/carbon/src/Carbon/Lang/bi.php index 17185ba21..dd08128e8 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/bi.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bi.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/bi_VU.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bi_VU.php b/vendor/nesbot/carbon/src/Carbon/Lang/bi_VU.php index 78063c304..1fe777056 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/bi_VU.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bi_VU.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Samsung Electronics Co., Ltd. akhilesh.k@samsung.com & maninder1.s@samsung.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bn.php b/vendor/nesbot/carbon/src/Carbon/Lang/bn.php index 8e67a160a..5e0ada0ef 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/bn.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bn.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Josh Soref * - Shakib Hossain diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bn_BD.php b/vendor/nesbot/carbon/src/Carbon/Lang/bn_BD.php index 1f7d1524f..46d521415 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/bn_BD.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bn_BD.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Ankur Group, http://www.ankurbangla.org, http://www.bengalinux.org Taneem Ahmed, Jamil Ahmed taneem@bengalinux.org, jamil@bengalinux.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bn_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/bn_IN.php index 37927f0ad..8b3a50e56 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/bn_IN.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bn_IN.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bo.php b/vendor/nesbot/carbon/src/Carbon/Lang/bo.php index f009e08b8..6c107efd6 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/bo.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bo.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Josh Soref * - JD Isaacks diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/br.php b/vendor/nesbot/carbon/src/Carbon/Lang/br.php index 040942859..32b4ee897 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/br.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/br.php @@ -32,6 +32,9 @@ return [ 'a_second' => '{1}un nebeud segondennoù|[0,Inf[:count eilenn', 'ago' => ':time \'zo', 'from_now' => 'a-benn :time', + 'diff_now' => 'bremañ', + 'diff_yesterday' => 'decʼh', + 'diff_tomorrow' => 'warcʼhoazh', 'formats' => [ 'LT' => 'HH:mm', 'LTS' => 'HH:mm:ss', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/brx.php b/vendor/nesbot/carbon/src/Carbon/Lang/brx.php index 17fabbc16..a0a7bf9bc 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/brx.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/brx.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/brx_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/brx_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/brx_IN.php index b1e7f9cd7..2d80ced20 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/brx_IN.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/brx_IN.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Red Hat Pune bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bs.php b/vendor/nesbot/carbon/src/Carbon/Lang/bs.php index 684219fd9..25caab89d 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/bs.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bs.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - bokideckonja * - Josh Soref @@ -23,8 +23,8 @@ return [ 'y' => ':count godina|:count godine|:count godina', 'month' => ':count mjesec|:count mjeseca|:count mjeseci', 'm' => ':count mjesec|:count mjeseca|:count mjeseci', - 'week' => ':count nedjelja|:count nedjelje|:count nedjelja', - 'w' => ':count nedjelja|:count nedjelje|:count nedjelja', + 'week' => ':count sedmice|:count sedmicu|:count sedmica', + 'w' => ':count sedmice|:count sedmicu|:count sedmica', 'day' => ':count dan|:count dana|:count dana', 'd' => ':count dan|:count dana|:count dana', 'hour' => ':count sat|:count sata|:count sati', @@ -37,6 +37,7 @@ return [ 'from_now' => 'za :time', 'after' => 'nakon :time', 'before' => ':time ranije', + 'diff_now' => 'sada', 'diff_yesterday' => 'jučer', 'diff_tomorrow' => 'sutra', 'formats' => [ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/byn.php b/vendor/nesbot/carbon/src/Carbon/Lang/byn.php index 83776665d..7125f3d6b 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/byn.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/byn.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/byn_ER.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/byn_ER.php b/vendor/nesbot/carbon/src/Carbon/Lang/byn_ER.php index 5bf13540f..ad6753340 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/byn_ER.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/byn_ER.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Ge'ez Frontier Foundation locales@geez.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ca.php b/vendor/nesbot/carbon/src/Carbon/Lang/ca.php index e5c8d458a..c41649203 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ca.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ca.php @@ -97,8 +97,9 @@ return [ }, 'months' => ['de gener', 'de febrer', 'de març', 'd\'abril', 'de maig', 'de juny', 'de juliol', 'd\'agost', 'de setembre', 'd\'octubre', 'de novembre', 'de desembre'], 'months_standalone' => ['gener', 'febrer', 'març', 'abril', 'maig', 'juny', 'juliol', 'agost', 'setembre', 'octubre', 'novembre', 'desembre'], - 'months_short' => ['gen.', 'febr.', 'març', 'abr.', 'maig', 'juny', 'jul.', 'ag.', 'set.', 'oct.', 'nov.', 'des.'], - 'months_regexp' => '/D[oD]?[\s,]+MMMM?/', + 'months_short' => ['de gen.', 'de febr.', 'de març', 'd\'abr.', 'de maig', 'de juny', 'de jul.', 'd\'ag.', 'de set.', 'd\'oct.', 'de nov.', 'de des.'], + 'months_short_standalone' => ['gen.', 'febr.', 'març', 'abr.', 'maig', 'juny', 'jul.', 'ag.', 'set.', 'oct.', 'nov.', 'des.'], + 'months_regexp' => '/(D[oD]?[\s,]+MMMM?|L{2,4}|l{2,4})/', 'weekdays' => ['diumenge', 'dilluns', 'dimarts', 'dimecres', 'dijous', 'divendres', 'dissabte'], 'weekdays_short' => ['dg.', 'dl.', 'dt.', 'dc.', 'dj.', 'dv.', 'ds.'], 'weekdays_min' => ['dg', 'dl', 'dt', 'dc', 'dj', 'dv', 'ds'], @@ -106,5 +107,4 @@ return [ 'day_of_first_week_of_year' => 4, 'list' => [', ', ' i '], 'meridiem' => ['a. m.', 'p. m.'], - 'months_short_standalone' => ['gen.', 'febr.', 'març', 'abr.', 'maig', 'juny', 'jul.', 'ag.', 'set.', 'oct.', 'nov.', 'des.'], ]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ce.php b/vendor/nesbot/carbon/src/Carbon/Lang/ce.php index 55feb8a14..f99f6ffd5 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ce.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ce.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/ce_RU.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ce_RU.php b/vendor/nesbot/carbon/src/Carbon/Lang/ce_RU.php index b4ea63a06..f76985628 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ce_RU.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ce_RU.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - ANCHR */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/chr.php b/vendor/nesbot/carbon/src/Carbon/Lang/chr.php index 6c9c07978..e26190f15 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/chr.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/chr.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/chr_US.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/chr_US.php b/vendor/nesbot/carbon/src/Carbon/Lang/chr_US.php index 2fdf63553..371353ef8 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/chr_US.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/chr_US.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Cherokee Nation Joseph Erb josepherb7@gmail.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/cmn.php b/vendor/nesbot/carbon/src/Carbon/Lang/cmn.php index d91956030..80b1d694f 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/cmn.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/cmn.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/cmn_TW.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/cmn_TW.php b/vendor/nesbot/carbon/src/Carbon/Lang/cmn_TW.php index 69adf3701..7e43f9de3 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/cmn_TW.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/cmn_TW.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/crh.php b/vendor/nesbot/carbon/src/Carbon/Lang/crh.php index 1fbed7196..a1d7ce631 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/crh.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/crh.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/crh_UA.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/crh_UA.php b/vendor/nesbot/carbon/src/Carbon/Lang/crh_UA.php index f5514714b..05139331e 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/crh_UA.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/crh_UA.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Reşat SABIQ tilde.birlik@gmail.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/cs.php b/vendor/nesbot/carbon/src/Carbon/Lang/cs.php index 93677f742..8cff9a019 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/cs.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/cs.php @@ -74,6 +74,27 @@ return [ 'second' => ':count sekunda|:count sekundy|:count sekund', 's' => ':count sek.', 'a_second' => 'pár sekund|:count sekundy|:count sekund', + + 'month_ago' => ':count měsícem|:count měsíci|:count měsíci', + 'a_month_ago' => 'měsícem|:count měsíci|:count měsíci', + 'day_ago' => ':count dnem|:count dny|:count dny', + 'a_day_ago' => 'dnem|:count dny|:count dny', + 'week_ago' => ':count týdnem|:count týdny|:count týdny', + 'a_week_ago' => 'týdnem|:count týdny|:count týdny', + 'year_ago' => ':count rokem|:count roky|:count lety', + 'y_ago' => ':count rok.|:count rok.|:count let.', + 'a_year_ago' => 'rokem|:count roky|:count lety', + + 'month_before' => ':count měsícem|:count měsíci|:count měsíci', + 'a_month_before' => 'měsícem|:count měsíci|:count měsíci', + 'day_before' => ':count dnem|:count dny|:count dny', + 'a_day_before' => 'dnem|:count dny|:count dny', + 'week_before' => ':count týdnem|:count týdny|:count týdny', + 'a_week_before' => 'týdnem|:count týdny|:count týdny', + 'year_before' => ':count rokem|:count roky|:count lety', + 'y_before' => ':count rok.|:count rok.|:count let.', + 'a_year_before' => 'rokem|:count roky|:count lety', + 'ago' => $pred, 'from_now' => $za, 'before' => $pred, @@ -86,6 +107,9 @@ return [ 'weekdays_short' => ['ned', 'pon', 'úte', 'stř', 'čtv', 'pát', 'sob'], 'weekdays_min' => ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'], 'list' => [', ', ' a '], + 'diff_now' => 'nyní', + 'diff_yesterday' => 'včera', + 'diff_tomorrow' => 'zítra', 'formats' => [ 'LT' => 'HH:mm', 'LTS' => 'HH:mm:ss', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/csb.php b/vendor/nesbot/carbon/src/Carbon/Lang/csb.php index 0bb506bb9..a35d2815f 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/csb.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/csb.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/csb_PL.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/csb_PL.php b/vendor/nesbot/carbon/src/Carbon/Lang/csb_PL.php index 722ffa847..25e0ca89b 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/csb_PL.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/csb_PL.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - csb_PL locale Michal Ostrowski bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/cy.php b/vendor/nesbot/carbon/src/Carbon/Lang/cy.php index ff17bd844..5137a4271 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/cy.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/cy.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - François B * - JD Isaacks @@ -34,8 +34,9 @@ return [ 'from_now' => 'mewn :time', 'after' => ':time ar ôl', 'before' => ':time o\'r blaen', - 'diff_yesterday' => 'Ddoe', - 'diff_tomorrow' => 'Yfory', + 'diff_now' => 'nawr', + 'diff_yesterday' => 'ddoe', + 'diff_tomorrow' => 'yfory', 'formats' => [ 'LT' => 'HH:mm', 'LTS' => 'HH:mm:ss', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/da.php b/vendor/nesbot/carbon/src/Carbon/Lang/da.php index a2bd60fdb..452fc6ba3 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/da.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/da.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Rune Mønnike * - François B @@ -45,6 +45,9 @@ return [ 'from_now' => 'om :time', 'after' => ':time efter', 'before' => ':time før', + 'diff_now' => 'nu', + 'diff_yesterday' => 'i går', + 'diff_tomorrow' => 'i morgen', 'formats' => [ 'LT' => 'HH:mm', 'LTS' => 'HH:mm:ss', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/de.php b/vendor/nesbot/carbon/src/Carbon/Lang/de.php index ac9ee0123..885a60196 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/de.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/de.php @@ -16,6 +16,7 @@ * - dennisoderwald * - Timo * - Karag2006 + * - Pete Scopes (pdscopes) */ return [ 'year' => ':count Jahr|:count Jahre', @@ -39,6 +40,9 @@ return [ 'second' => ':count Sekunde|:count Sekunden', 'a_second' => 'ein paar Sekunden|:count Sekunden', 's' => ':count Sek.', + 'millisecond' => ':count Millisekunde|:count Millisekunde', + 'a_millisecond' => 'eine Millisekunde|:count Millisekunde', + 'ms' => ':countms', 'ago' => 'vor :time', 'from_now' => 'in :time', 'after' => ':time später', @@ -52,10 +56,18 @@ return [ 'month_ago' => ':count Monat|:count Monaten', 'week_ago' => ':count Woche|:count Wochen', 'day_ago' => ':count Tag|:count Tagen', + 'a_year_from_now' => 'ein Jahr|:count Jahren', + 'a_month_from_now' => 'ein Monat|:count Monaten', + 'a_week_from_now' => 'eine Woche|:count Wochen', + 'a_day_from_now' => 'ein Tag|:count Tagen', + 'a_year_ago' => 'ein Jahr|:count Jahren', + 'a_month_ago' => 'ein Monat|:count Monaten', + 'a_week_ago' => 'eine Woche|:count Wochen', + 'a_day_ago' => 'ein Tag|:count Tagen', 'diff_now' => 'Gerade eben', 'diff_yesterday' => 'Gestern', - 'diff_tomorrow' => 'Heute', + 'diff_tomorrow' => 'Morgen', 'diff_before_yesterday' => 'Vorgestern', 'diff_after_tomorrow' => 'Übermorgen', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/de_AT.php b/vendor/nesbot/carbon/src/Carbon/Lang/de_AT.php index 2e280561f..a2ea4c086 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/de_AT.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/de_AT.php @@ -15,5 +15,13 @@ * - Timo * - Michael Hohl * - Namoshek + * - Bernhard Baumrock (BernhardBaumrock) */ -return require __DIR__.'/de.php'; +return array_replace_recursive(require __DIR__.'/de.php', [ + 'months' => [ + 0 => 'Jänner', + ], + 'months_short' => [ + 0 => 'Jän', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/de_BE.php b/vendor/nesbot/carbon/src/Carbon/Lang/de_BE.php index fa449348d..8ed8dc62d 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/de_BE.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/de_BE.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - RAP bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/de_DE.php b/vendor/nesbot/carbon/src/Carbon/Lang/de_DE.php index 15eeaee27..fb1209d21 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/de_DE.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/de_DE.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Free Software Foundation, Inc. bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/de_IT.php b/vendor/nesbot/carbon/src/Carbon/Lang/de_IT.php index edc7d7cc2..604a85682 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/de_IT.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/de_IT.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Matthias Dieter Wallno:fer libc-locales@sourceware.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/de_LU.php b/vendor/nesbot/carbon/src/Carbon/Lang/de_LU.php index fa449348d..8ed8dc62d 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/de_LU.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/de_LU.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - RAP bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/doi.php b/vendor/nesbot/carbon/src/Carbon/Lang/doi.php index 4b713ad53..cb679c587 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/doi.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/doi.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/doi_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/doi_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/doi_IN.php index 0e70711d1..d35972142 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/doi_IN.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/doi_IN.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Red Hat Pune libc-alpha@sourceware.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/dsb.php b/vendor/nesbot/carbon/src/Carbon/Lang/dsb.php index 89eaf3623..1d214d56e 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/dsb.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/dsb.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/dsb_DE.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/dsb_DE.php b/vendor/nesbot/carbon/src/Carbon/Lang/dsb_DE.php index 1183b1a70..1b941870e 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/dsb_DE.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/dsb_DE.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Information from Michael Wolf bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/dz.php b/vendor/nesbot/carbon/src/Carbon/Lang/dz.php index 38ae0ef0a..cc17e69e8 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/dz.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/dz.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/dz_BT.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/dz_BT.php b/vendor/nesbot/carbon/src/Carbon/Lang/dz_BT.php index 0ed4e5f97..bfbcaf468 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/dz_BT.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/dz_BT.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Sherubtse College bug-glibc@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/el.php b/vendor/nesbot/carbon/src/Carbon/Lang/el.php index f76060fe8..7303c14d9 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/el.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/el.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Alessandro Di Felice * - François B @@ -41,10 +41,13 @@ return [ 'second' => ':count δευτερόλεπτο|:count δευτερόλεπτα', 'a_second' => 'λίγα δευτερόλεπτα|:count δευτερόλεπτα', 's' => ':count δευ.', - 'ago' => ':time πριν', + 'ago' => 'πριν :time', 'from_now' => 'σε :time', 'after' => ':time μετά', 'before' => ':time πριν', + 'diff_now' => 'τώρα', + 'diff_yesterday' => 'χθες', + 'diff_tomorrow' => 'αύριο', 'formats' => [ 'LT' => 'h:mm A', 'LTS' => 'h:mm:ss A', @@ -72,7 +75,7 @@ return [ 'meridiem' => ['ΠΜ', 'ΜΜ', 'πμ', 'μμ'], 'months' => ['Ιανουαρίου', 'Φεβρουαρίου', 'Μαρτίου', 'Απριλίου', 'Μαΐου', 'Ιουνίου', 'Ιουλίου', 'Αυγούστου', 'Σεπτεμβρίου', 'Οκτωβρίου', 'Νοεμβρίου', 'Δεκεμβρίου'], 'months_standalone' => ['Ιανουάριος', 'Φεβρουάριος', 'Μάρτιος', 'Απρίλιος', 'Μάιος', 'Ιούνιος', 'Ιούλιος', 'Αύγουστος', 'Σεπτέμβριος', 'Οκτώβριος', 'Νοέμβριος', 'Δεκέμβριος'], - 'months_regexp' => '/D[oD]?[\s,]+MMMM/', + 'months_regexp' => '/(D[oD]?[\s,]+MMMM|L{2,4}|l{2,4})/', 'months_short' => ['Ιαν', 'Φεβ', 'Μαρ', 'Απρ', 'Μαϊ', 'Ιουν', 'Ιουλ', 'Αυγ', 'Σεπ', 'Οκτ', 'Νοε', 'Δεκ'], 'weekdays' => ['Κυριακή', 'Δευτέρα', 'Τρίτη', 'Τετάρτη', 'Πέμπτη', 'Παρασκευή', 'Σάββατο'], 'weekdays_short' => ['Κυρ', 'Δευ', 'Τρι', 'Τετ', 'Πεμ', 'Παρ', 'Σαβ'], diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/el_CY.php b/vendor/nesbot/carbon/src/Carbon/Lang/el_CY.php index b2b47c756..8a693c15d 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/el_CY.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/el_CY.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Greek Debian Translation Team bug-glibc@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/el_GR.php b/vendor/nesbot/carbon/src/Carbon/Lang/el_GR.php index cfc2cf0de..df196af94 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/el_GR.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/el_GR.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - RAP bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en.php b/vendor/nesbot/carbon/src/Carbon/Lang/en.php index 39f0f76ad..028abdacb 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/en.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en.php @@ -13,6 +13,7 @@ * Authors: * - Milos Sakovic * - Paul + * - Pete Scopes (pdscopes) */ return [ 'year' => '{1}:count year|{0}:count years|]1,Inf[:count years', @@ -36,6 +37,9 @@ return [ 'second' => '{1}:count second|{0}:count seconds|]1,Inf[:count seconds', 'a_second' => '{1}a few seconds|{0}:count seconds|]1,Inf[:count seconds', 's' => ':counts', + 'millisecond' => '{1}:count millisecond|{0}:count milliseconds|]1,Inf[:count milliseconds', + 'a_millisecond' => '{1}a millisecond|{0}:count milliseconds|]1,Inf[:count milliseconds', + 'ms' => ':countms', 'ago' => ':time ago', 'from_now' => ':time from now', 'after' => ':time after', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_AG.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_AG.php index 891385864..2c1c64f06 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/en_AG.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_AG.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Free Software Foundation, Inc. bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_AU.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_AU.php index d95b4c043..f16bd4f54 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/en_AU.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_AU.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Kunal Marwaha * - François B diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_CA.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_CA.php index 40c389f85..e65608688 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/en_CA.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_CA.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - François B * - Zhan Tong Zhang diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_CY.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_CY.php index 9c390840f..a44c3508e 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/en_CY.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_CY.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - NehaGautam */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_DK.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_DK.php index 31021f7d6..9e8a8c68b 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/en_DK.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_DK.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Danish Standards Association bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_GB.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_GB.php index 2f65c5cb6..67d9fd649 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/en_GB.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_GB.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - François B * - Mayank Badola diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_HK.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_HK.php index 36d58e9b3..34aae989b 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/en_HK.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_HK.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_IE.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_IE.php index ec383fb3b..c8d3c2fc9 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/en_IE.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_IE.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Martin McWhorter * - François B diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_IL.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_IL.php index 5de0f2982..e607924e7 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/en_IL.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_IL.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Yoav Amit * - François B diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_IN.php index 769843335..00414e9ad 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/en_IN.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_IN.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_NZ.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_NZ.php index 4dc7c2f82..6a206a0d0 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/en_NZ.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_NZ.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - François B * - Mayank Badola diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_PH.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_PH.php index 36d58e9b3..34aae989b 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/en_PH.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_PH.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_ZA.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_ZA.php index 2d865b58d..48ea9471c 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/en_ZA.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_ZA.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_ZM.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_ZM.php index c9b51aaae..d8a8cb598 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/en_ZM.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_ZM.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - ANLoc Martin Benjamin locales@africanlocalization.net */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/eo.php b/vendor/nesbot/carbon/src/Carbon/Lang/eo.php index 859ebfe42..b9a4443d6 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/eo.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/eo.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Josh Soref * - François B diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es.php b/vendor/nesbot/carbon/src/Carbon/Lang/es.php index b15dd284f..1222c21ea 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/es.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Kunal Marwaha * - kostas @@ -25,6 +25,7 @@ * - Sebastian Thierer * - quinterocesar * - Daniel Commesse Liévanos (danielcommesse) + * - Pete Scopes (pdscopes) */ return [ 'year' => ':count año|:count años', @@ -48,6 +49,9 @@ return [ 'second' => ':count segundo|:count segundos', 'a_second' => 'unos segundos|:count segundos', 's' => ':counts', + 'millisecond' => ':count milisegundo|:count milisegundos', + 'a_millisecond' => 'un milisegundo|:count milisegundos', + 'ms' => ':countms', 'ago' => 'hace :time', 'from_now' => 'en :time', 'after' => ':time después', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_419.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_419.php index 9b358dfb8..a74806e84 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/es_419.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_419.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - RAP bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_AR.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_AR.php index 9b358dfb8..a74806e84 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/es_AR.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_AR.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - RAP bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_BO.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_BO.php index 5342c06fb..c9b8432ef 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/es_BO.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_BO.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - RAP bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_CL.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_CL.php index 9b358dfb8..a74806e84 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/es_CL.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_CL.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - RAP bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_CO.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_CO.php index 9b358dfb8..a74806e84 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/es_CO.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_CO.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - RAP bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_CR.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_CR.php index 1d971b5f9..553fc09f4 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/es_CR.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_CR.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Free Software Foundation, Inc. bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_DO.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_DO.php index bf9dd729e..0f855bac4 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/es_DO.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_DO.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - kostas * - François B diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_EC.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_EC.php index 9b358dfb8..a74806e84 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/es_EC.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_EC.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - RAP bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_ES.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_ES.php index 6b7823971..19217c271 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/es_ES.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_ES.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - RAP bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_GT.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_GT.php index 9b358dfb8..a74806e84 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/es_GT.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_GT.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - RAP bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_HN.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_HN.php index 9b358dfb8..a74806e84 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/es_HN.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_HN.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - RAP bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_MX.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_MX.php index 9b358dfb8..a74806e84 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/es_MX.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_MX.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - RAP bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_NI.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_NI.php index 9657a6969..6b964c14d 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/es_NI.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_NI.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Free Software Foundation, Inc. bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_PA.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_PA.php index 9b358dfb8..a74806e84 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/es_PA.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_PA.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - RAP bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_PE.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_PE.php index 9b358dfb8..a74806e84 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/es_PE.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_PE.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - RAP bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_PR.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_PR.php index 9657a6969..6b964c14d 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/es_PR.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_PR.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Free Software Foundation, Inc. bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_PY.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_PY.php index 9b358dfb8..a74806e84 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/es_PY.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_PY.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - RAP bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_SV.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_SV.php index 4e6e1855b..00db08e26 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/es_SV.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_SV.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - RAP bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_US.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_US.php index a872b6a49..f333136f4 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/es_US.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_US.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Kunal Marwaha * - Josh Soref diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_UY.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_UY.php index 980e74147..39baff8b3 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/es_UY.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_UY.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - RAP bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_VE.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_VE.php index 9b358dfb8..a74806e84 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/es_VE.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_VE.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - RAP bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/eu.php b/vendor/nesbot/carbon/src/Carbon/Lang/eu.php index a9d511a89..9f7c9f637 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/eu.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/eu.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Josh Soref * - François B @@ -34,6 +34,7 @@ return [ 'from_now' => ':time barru', 'after' => ':time geroago', 'before' => ':time lehenago', + 'diff_now' => 'orain', 'diff_yesterday' => 'atzo', 'diff_tomorrow' => 'bihar', 'formats' => [ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fa.php b/vendor/nesbot/carbon/src/Carbon/Lang/fa.php index 5c2fb13de..6495fb90a 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/fa.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fa.php @@ -45,6 +45,9 @@ return [ 'from_now' => ':time دیگر', 'after' => ':time پس از', 'before' => ':time پیش از', + 'diff_now' => 'اکنون', + 'diff_yesterday' => 'دیروز', + 'diff_tomorrow' => 'فردا', 'formats' => [ 'LT' => 'OH:Om', 'LTS' => 'OH:Om:Os', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ff.php b/vendor/nesbot/carbon/src/Carbon/Lang/ff.php index 0f7515fdd..9525c95ad 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ff.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ff.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return array_replace_recursive(require __DIR__.'/en.php', [ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ff_SN.php b/vendor/nesbot/carbon/src/Carbon/Lang/ff_SN.php index c55392518..1e4c8b6cb 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ff_SN.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ff_SN.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Pular-Fulfulde.org Ibrahima Sarr admin@pulaar-fulfulde.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fi.php b/vendor/nesbot/carbon/src/Carbon/Lang/fi.php index 883530603..2003e1eab 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/fi.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fi.php @@ -66,6 +66,9 @@ return [ 'first_day_of_week' => 1, 'day_of_first_week_of_year' => 4, 'list' => [', ', ' ja '], + 'diff_now' => 'nyt', + 'diff_yesterday' => 'eilen', + 'diff_tomorrow' => 'huomenna', 'formats' => [ 'LT' => 'HH.mm', 'LTS' => 'HH.mm:ss', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fil.php b/vendor/nesbot/carbon/src/Carbon/Lang/fil.php index f2249c0d0..61114e3a6 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/fil.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fil.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/fil_PH.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fil_PH.php b/vendor/nesbot/carbon/src/Carbon/Lang/fil_PH.php index df75b8685..bcf158078 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/fil_PH.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fil_PH.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Rene Torres Rene Torres, Pablo Saratxaga rgtorre@rocketmail.com, pablo@mandrakesoft.com * - Jaycee Mariano (alohajaycee) diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fo.php b/vendor/nesbot/carbon/src/Carbon/Lang/fo.php index 55fc6655d..931bdfc37 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/fo.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fo.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Kristian Sakarisson * - François B diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr.php index b331038a3..94426e9c7 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/fr.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Dieter Sting * - François B @@ -20,6 +20,7 @@ * - JD Isaacks * - Sebastian Thierer * - Fastfuel + * - Pete Scopes (pdscopes) */ return [ 'year' => ':count an|:count ans', @@ -43,6 +44,9 @@ return [ 'second' => ':count seconde|:count secondes', 'a_second' => 'quelques secondes|:count secondes', 's' => ':count s', + 'millisecond' => ':count milliseconde:count millisecondes', + 'a_millisecond' => 'une milliseconde|:count millisecondes', + 'ms' => ':countms', 'ago' => 'il y a :time', 'from_now' => 'dans :time', 'after' => ':time après', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_BE.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_BE.php index b1f0408db..f6cafe87c 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/fr_BE.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_BE.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - RAP bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_CA.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_CA.php index f881d8fcf..c9f6346fc 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/fr_CA.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_CA.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Dieter Sting * - François B diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_CH.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_CH.php index 67d407474..8674c27d9 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/fr_CH.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_CH.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Dieter Sting * - François B diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_LU.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_LU.php index be750d375..8e37d852b 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/fr_LU.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_LU.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - RAP bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fur.php b/vendor/nesbot/carbon/src/Carbon/Lang/fur.php index b622554c6..36c2564f6 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/fur.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fur.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/fur_IT.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fur_IT.php b/vendor/nesbot/carbon/src/Carbon/Lang/fur_IT.php index 3cbf5b222..0147a596a 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/fur_IT.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fur_IT.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Pablo Saratxaga pablo@mandrakesoft.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fy.php b/vendor/nesbot/carbon/src/Carbon/Lang/fy.php index 46519ae10..92fef61af 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/fy.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fy.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - François B * - Tim Fish diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fy_DE.php b/vendor/nesbot/carbon/src/Carbon/Lang/fy_DE.php index b51fd5aae..8559d5c23 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/fy_DE.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fy_DE.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - information from Kenneth Christiansen Kenneth Christiansen, Pablo Saratxaga kenneth@gnu.org, pablo@mandriva.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fy_NL.php b/vendor/nesbot/carbon/src/Carbon/Lang/fy_NL.php index e647db477..01cc96c34 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/fy_NL.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fy_NL.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Free Software Foundation, Inc. bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ga.php b/vendor/nesbot/carbon/src/Carbon/Lang/ga.php index 6b64da2f2..9730787e5 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ga.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ga.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Thanks to André Silva : https://github.com/askpt */ @@ -39,6 +39,7 @@ return [ 'from_now' => 'i :time', 'after' => ':time tar éis', 'before' => ':time roimh', + 'diff_now' => 'anois', 'diff_yesterday' => 'inné', 'diff_tomorrow' => 'amárach', 'formats' => [ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/gez.php b/vendor/nesbot/carbon/src/Carbon/Lang/gez.php index a4a412e60..b8a2f0ebe 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/gez.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/gez.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/gez_ER.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/gez_ER.php b/vendor/nesbot/carbon/src/Carbon/Lang/gez_ER.php index 7f433ce5a..f19d1df1e 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/gez_ER.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/gez_ER.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Ge'ez Frontier Foundation locales@geez.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/gez_ET.php b/vendor/nesbot/carbon/src/Carbon/Lang/gez_ET.php index ede3efba2..393300962 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/gez_ET.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/gez_ET.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Ge'ez Frontier Foundation locales@geez.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/gl.php b/vendor/nesbot/carbon/src/Carbon/Lang/gl.php index 0d51f02d8..2f608113b 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/gl.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/gl.php @@ -47,6 +47,9 @@ return [ return "en $time"; }, + 'diff_now' => 'agora', + 'diff_yesterday' => 'onte', + 'diff_tomorrow' => 'mañá', 'after' => ':time despois', 'before' => ':time antes', 'formats' => [ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/gom.php b/vendor/nesbot/carbon/src/Carbon/Lang/gom.php index 6acd4bdea..2a0584f88 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/gom.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/gom.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/gom_Latn.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/gsw.php b/vendor/nesbot/carbon/src/Carbon/Lang/gsw.php index 0a70aa637..c5c850edb 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/gsw.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/gsw.php @@ -35,6 +35,9 @@ return [ 'meridiem' => ['am Vormittag', 'am Namittag'], 'ordinal' => ':number.', 'list' => [', ', ' und '], + 'diff_now' => 'now', + 'diff_yesterday' => 'geschter', + 'diff_tomorrow' => 'moorn', 'formats' => [ 'LT' => 'HH:mm', 'LTS' => 'HH:mm:ss', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/gu.php b/vendor/nesbot/carbon/src/Carbon/Lang/gu.php index 205d37f94..797e5d24c 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/gu.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/gu.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Josh Soref * - Kaushik Thanki @@ -34,6 +34,7 @@ return [ 'from_now' => ':time મા', 'after' => ':time પછી', 'before' => ':time પહેલા', + 'diff_now' => 'હમણાં', 'diff_yesterday' => 'ગઇકાલે', 'diff_tomorrow' => 'કાલે', 'formats' => [ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/gv.php b/vendor/nesbot/carbon/src/Carbon/Lang/gv.php index 99a8bdc5e..7c52b940a 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/gv.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/gv.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/gv_GB.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/gv_GB.php b/vendor/nesbot/carbon/src/Carbon/Lang/gv_GB.php index afe3f2c71..6b1168f99 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/gv_GB.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/gv_GB.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Alastair McKinstry bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ha.php b/vendor/nesbot/carbon/src/Carbon/Lang/ha.php index fe71c0250..cd8e34d0d 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ha.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ha.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - pablo@mandriva.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hak.php b/vendor/nesbot/carbon/src/Carbon/Lang/hak.php index 98e13206b..6c3260e8c 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/hak.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/hak.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/hak_TW.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hak_TW.php b/vendor/nesbot/carbon/src/Carbon/Lang/hak_TW.php index 5423d54ea..fe2398650 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/hak_TW.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/hak_TW.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/he.php b/vendor/nesbot/carbon/src/Carbon/Lang/he.php index ccebdb565..2833a60ce 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/he.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/he.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Daniel Cohen Gindi * - JD Isaacks @@ -36,6 +36,9 @@ return [ 'from_now' => 'בעוד :time מעכשיו', 'after' => 'אחרי :time', 'before' => 'לפני :time', + 'diff_now' => 'עכשיו', + 'diff_yesterday' => 'אתמול', + 'diff_tomorrow' => 'מחר', 'formats' => [ 'LT' => 'HH:mm', 'LTS' => 'HH:mm:ss', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hi.php b/vendor/nesbot/carbon/src/Carbon/Lang/hi.php index be6eb09c6..db352d199 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/hi.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/hi.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - abhimanyu003 * - Josh Soref @@ -34,6 +34,7 @@ return [ 'from_now' => ':time में', 'after' => ':time के बाद', 'before' => ':time के पहले', + 'diff_now' => 'अब', 'diff_yesterday' => 'कल', 'diff_tomorrow' => 'कल', 'formats' => [ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hif.php b/vendor/nesbot/carbon/src/Carbon/Lang/hif.php index 0ef3c8aa0..65791dd43 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/hif.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/hif.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/hif_FJ.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hif_FJ.php b/vendor/nesbot/carbon/src/Carbon/Lang/hif_FJ.php index fde9c324d..30ad5e74c 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/hif_FJ.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/hif_FJ.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Samsung Electronics Co., Ltd. akhilesh.k@samsung.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hne.php b/vendor/nesbot/carbon/src/Carbon/Lang/hne.php index debd87d48..4bcb05c73 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/hne.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/hne.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/hne_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hne_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/hne_IN.php index 4725e2ee6..a5ca758b6 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/hne_IN.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/hne_IN.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Red Hat, Pune bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hr.php b/vendor/nesbot/carbon/src/Carbon/Lang/hr.php index 3d03f3251..35666977a 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/hr.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/hr.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Josh Soref * - François B @@ -47,6 +47,7 @@ return [ 'from_now' => 'za :time', 'after' => ':time poslije', 'before' => ':time prije', + 'diff_now' => 'sad', 'diff_yesterday' => 'jučer', 'diff_tomorrow' => 'sutra', 'diff_before_yesterday' => 'prekjučer', @@ -92,7 +93,7 @@ return [ 'months' => ['siječnja', 'veljače', 'ožujka', 'travnja', 'svibnja', 'lipnja', 'srpnja', 'kolovoza', 'rujna', 'listopada', 'studenoga', 'prosinca'], 'months_standalone' => ['siječanj', 'veljača', 'ožujak', 'travanj', 'svibanj', 'lipanj', 'srpanj', 'kolovoz', 'rujan', 'listopad', 'studeni', 'prosinac'], 'months_short' => ['sij.', 'velj.', 'ožu.', 'tra.', 'svi.', 'lip.', 'srp.', 'kol.', 'ruj.', 'lis.', 'stu.', 'pro.'], - 'months_regexp' => '/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/', + 'months_regexp' => '/(D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|L{2,4}|l{2,4})/', 'weekdays' => ['nedjelju', 'ponedjeljak', 'utorak', 'srijedu', 'četvrtak', 'petak', 'subotu'], 'weekdays_standalone' => ['nedjelja', 'ponedjeljak', 'utorak', 'srijeda', 'četvrtak', 'petak', 'subota'], 'weekdays_short' => ['ned.', 'pon.', 'uto.', 'sri.', 'čet.', 'pet.', 'sub.'], diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hr_BA.php b/vendor/nesbot/carbon/src/Carbon/Lang/hr_BA.php index 752c59cb6..7763a4587 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/hr_BA.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/hr_BA.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - DarkoDevelop */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hsb.php b/vendor/nesbot/carbon/src/Carbon/Lang/hsb.php index 829ff6eba..3537b8ba2 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/hsb.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/hsb.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/hsb_DE.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hsb_DE.php b/vendor/nesbot/carbon/src/Carbon/Lang/hsb_DE.php index 0952e518e..6ba227161 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/hsb_DE.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/hsb_DE.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Information from Michael Wolf Andrzej Krzysztofowicz ankry@mif.pg.gda.pl */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ht.php b/vendor/nesbot/carbon/src/Carbon/Lang/ht.php index d1f4ad12e..ebd12ad11 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ht.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ht.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/ht_HT.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ht_HT.php b/vendor/nesbot/carbon/src/Carbon/Lang/ht_HT.php index 71c0b2dfc..139b813b2 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ht_HT.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ht_HT.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Sugar Labs // OLPC sugarlabs.org libc-alpha@sourceware.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hu.php b/vendor/nesbot/carbon/src/Carbon/Lang/hu.php index ec858a388..58af385b4 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/hu.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/hu.php @@ -84,6 +84,9 @@ return [ 'weekdays_short' => ['vas', 'hét', 'kedd', 'sze', 'csüt', 'pén', 'szo'], 'weekdays_min' => ['v', 'h', 'k', 'sze', 'cs', 'p', 'sz'], 'ordinal' => ':number.', + 'diff_now' => 'most', + 'diff_yesterday' => 'tegnap', + 'diff_tomorrow' => 'holnap', 'formats' => [ 'LT' => 'H:mm', 'LTS' => 'H:mm:ss', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hy.php b/vendor/nesbot/carbon/src/Carbon/Lang/hy.php index 805686638..b69a3709f 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/hy.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/hy.php @@ -36,9 +36,10 @@ return [ 'a_second' => 'մի քանի վայրկյան|:count վայրկյան', 's' => ':countվրկ', 'ago' => ':time առաջ', - 'from_now' => ':time ներկա պահից', + 'from_now' => ':timeից', 'after' => ':time հետո', 'before' => ':time առաջ', + 'diff_now' => 'հիմա', 'diff_yesterday' => 'երեկ', 'diff_tomorrow' => 'վաղը', 'formats' => [ @@ -84,7 +85,7 @@ return [ 'months' => ['հունվարի', 'փետրվարի', 'մարտի', 'ապրիլի', 'մայիսի', 'հունիսի', 'հուլիսի', 'օգոստոսի', 'սեպտեմբերի', 'հոկտեմբերի', 'նոյեմբերի', 'դեկտեմբերի'], 'months_standalone' => ['հունվար', 'փետրվար', 'մարտ', 'ապրիլ', 'մայիս', 'հունիս', 'հուլիս', 'օգոստոս', 'սեպտեմբեր', 'հոկտեմբեր', 'նոյեմբեր', 'դեկտեմբեր'], 'months_short' => ['հնվ', 'փտր', 'մրտ', 'ապր', 'մյս', 'հնս', 'հլս', 'օգս', 'սպտ', 'հկտ', 'նմբ', 'դկտ'], - 'months_regexp' => '/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/', + 'months_regexp' => '/(D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|L{2,4}|l{2,4})/', 'weekdays' => ['կիրակի', 'երկուշաբթի', 'երեքշաբթի', 'չորեքշաբթի', 'հինգշաբթի', 'ուրբաթ', 'շաբաթ'], 'weekdays_short' => ['կրկ', 'երկ', 'երք', 'չրք', 'հնգ', 'ուրբ', 'շբթ'], 'weekdays_min' => ['կրկ', 'երկ', 'երք', 'չրք', 'հնգ', 'ուրբ', 'շբթ'], diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hy_AM.php b/vendor/nesbot/carbon/src/Carbon/Lang/hy_AM.php index af059363f..4587df56c 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/hy_AM.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/hy_AM.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Josh Soref * - François B diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ia.php b/vendor/nesbot/carbon/src/Carbon/Lang/ia.php index 15dcf4bb0..0a0d5e611 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ia.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ia.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/ia_FR.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ia_FR.php b/vendor/nesbot/carbon/src/Carbon/Lang/ia_FR.php index 2708d6b11..de4b2fa09 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ia_FR.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ia_FR.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Fedora Project Nik Kalach nikka@fedoraproject.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/id.php b/vendor/nesbot/carbon/src/Carbon/Lang/id.php index 3e6adbc1b..5a3826372 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/id.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/id.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Josh Soref * - du @@ -45,6 +45,9 @@ return [ 'from_now' => ':time dari sekarang', 'after' => ':time setelahnya', 'before' => ':time sebelumnya', + 'diff_now' => 'sekarang', + 'diff_yesterday' => 'kemarin', + 'diff_tomorrow' => 'besok', 'formats' => [ 'LT' => 'HH.mm', 'LTS' => 'HH.mm.ss', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ig.php b/vendor/nesbot/carbon/src/Carbon/Lang/ig.php index 371e198d0..de51e9cc4 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ig.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ig.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/ig_NG.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ig_NG.php b/vendor/nesbot/carbon/src/Carbon/Lang/ig_NG.php index 4c8a1e411..0034e35d8 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ig_NG.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ig_NG.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - pablo@mandriva.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ik.php b/vendor/nesbot/carbon/src/Carbon/Lang/ik.php index a0f59734f..7a13aa2db 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ik.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ik.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/ik_CA.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ik_CA.php b/vendor/nesbot/carbon/src/Carbon/Lang/ik_CA.php index 7ce3b3349..bb2a109b9 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ik_CA.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ik_CA.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - pablo@mandriva.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/is.php b/vendor/nesbot/carbon/src/Carbon/Lang/is.php index bbdc71a5e..9990168c2 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/is.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/is.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Kristján Ingi Geirsson */ @@ -36,6 +36,9 @@ return [ 'day_of_first_week_of_year' => 4, 'list' => [', ', ' og '], 'meridiem' => ['fh', 'eh'], + 'diff_now' => 'núna', + 'diff_yesterday' => 'í gær', + 'diff_tomorrow' => 'á morgun', 'formats' => [ 'LT' => 'HH:mm', 'LTS' => 'HH:mm:ss', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/it.php b/vendor/nesbot/carbon/src/Carbon/Lang/it.php index 5062bd789..490f2f5f4 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/it.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/it.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Ash * - François B @@ -20,6 +20,7 @@ * - Francesco Marasco * - Tizianoz93 * - Davide Casiraghi (davide-casiraghi) + * - Pete Scopes (pdscopes) */ return [ 'year' => ':count anno|:count anni', @@ -43,6 +44,9 @@ return [ 'second' => ':count secondo|:count secondi', 'a_second' => 'alcuni secondi|:count secondi', 's' => ':count sec.', + 'millisecond' => ':count millisecondo|:count millisecondi', + 'a_millisecond' => 'un millisecondo|:count millisecondi', + 'ms' => ':countms', 'ago' => ':time fa', 'from_now' => function ($time) { return (preg_match('/^[0-9].+$/', $time) ? 'tra' : 'in')." $time"; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/it_IT.php b/vendor/nesbot/carbon/src/Carbon/Lang/it_IT.php index d6bd5fcb6..a5d198180 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/it_IT.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/it_IT.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - RAP bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/iu.php b/vendor/nesbot/carbon/src/Carbon/Lang/iu.php index c8981cb22..4fa974274 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/iu.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/iu.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/iu_CA.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/iu_CA.php b/vendor/nesbot/carbon/src/Carbon/Lang/iu_CA.php index f99d4361b..6ab7e1497 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/iu_CA.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/iu_CA.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Pablo Saratxaga pablo@mandriva.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ja.php b/vendor/nesbot/carbon/src/Carbon/Lang/ja.php index a823dffbc..7c7091585 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ja.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ja.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Takuya Sawada * - Atsushi Tanaka @@ -41,6 +41,7 @@ return [ 'from_now' => ':time後', 'after' => ':time後', 'before' => ':time前', + 'diff_now' => '今', 'diff_yesterday' => '昨日', 'diff_tomorrow' => '明日', 'formats' => [ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/jv.php b/vendor/nesbot/carbon/src/Carbon/Lang/jv.php index 96728d530..4c526ac63 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/jv.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/jv.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Josh Soref * - tgfjt diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ka.php b/vendor/nesbot/carbon/src/Carbon/Lang/ka.php index 1d137e2bc..da05fbdaa 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ka.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ka.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Tornike Razmadze * - François B @@ -133,6 +133,7 @@ return [ return "$time უკან"; }, + 'diff_now' => 'ახლა', 'diff_yesterday' => 'გუშინ', 'diff_tomorrow' => 'ხვალ', 'formats' => [ @@ -169,7 +170,7 @@ return [ 'months' => ['იანვარს', 'თებერვალს', 'მარტს', 'აპრილის', 'მაისს', 'ივნისს', 'ივლისს', 'აგვისტს', 'სექტემბერს', 'ოქტომბერს', 'ნოემბერს', 'დეკემბერს'], 'months_standalone' => ['იანვარი', 'თებერვალი', 'მარტი', 'აპრილი', 'მაისი', 'ივნისი', 'ივლისი', 'აგვისტო', 'სექტემბერი', 'ოქტომბერი', 'ნოემბერი', 'დეკემბერი'], 'months_short' => ['იან', 'თებ', 'მარ', 'აპრ', 'მაი', 'ივნ', 'ივლ', 'აგვ', 'სექ', 'ოქტ', 'ნოე', 'დეკ'], - 'months_regexp' => '/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/', + 'months_regexp' => '/(D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|L{2,4}|l{2,4})/', 'weekdays' => ['კვირას', 'ორშაბათს', 'სამშაბათს', 'ოთხშაბათს', 'ხუთშაბათს', 'პარასკევს', 'შაბათს'], 'weekdays_standalone' => ['კვირა', 'ორშაბათი', 'სამშაბათი', 'ოთხშაბათი', 'ხუთშაბათი', 'პარასკევი', 'შაბათი'], 'weekdays_short' => ['კვი', 'ორშ', 'სამ', 'ოთხ', 'ხუთ', 'პარ', 'შაბ'], diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/kab.php b/vendor/nesbot/carbon/src/Carbon/Lang/kab.php index f0fd59b41..94d647373 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/kab.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/kab.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/kab_DZ.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/kab_DZ.php b/vendor/nesbot/carbon/src/Carbon/Lang/kab_DZ.php index c488b5d4d..796660be9 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/kab_DZ.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/kab_DZ.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - belkacem77@gmail.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/kk.php b/vendor/nesbot/carbon/src/Carbon/Lang/kk.php index 4410da76e..50268470e 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/kk.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/kk.php @@ -43,6 +43,9 @@ return [ 'from_now' => ':time ішінде', 'after' => ':time кейін', 'before' => ':time бұрын', + 'diff_now' => 'қазір', + 'diff_yesterday' => 'кеше', + 'diff_tomorrow' => 'ертең', 'formats' => [ 'LT' => 'HH:mm', 'LTS' => 'HH:mm:ss', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/kl.php b/vendor/nesbot/carbon/src/Carbon/Lang/kl.php index 2e445fd08..7329a0753 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/kl.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/kl.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/kl_GL.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/kl_GL.php b/vendor/nesbot/carbon/src/Carbon/Lang/kl_GL.php index b3e25a383..5186a920d 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/kl_GL.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/kl_GL.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Danish Standards Association bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/km.php b/vendor/nesbot/carbon/src/Carbon/Lang/km.php index bb8a8b705..11d8c46b3 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/km.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/km.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Kruy Vanna * - Sereysethy Touch @@ -35,6 +35,9 @@ return [ 'from_now' => ':timeទៀត', 'after' => 'នៅ​ក្រោយ :time', 'before' => 'នៅ​មុន :time', + 'diff_now' => 'ឥឡូវ', + 'diff_yesterday' => 'ម្សិលមិញ', + 'diff_tomorrow' => 'ថ្ងៃ​ស្អែក', 'formats' => [ 'LT' => 'HH:mm', 'LTS' => 'HH:mm:ss', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/kn.php b/vendor/nesbot/carbon/src/Carbon/Lang/kn.php index 2bbed8632..815770207 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/kn.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/kn.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Josh Soref * - MOHAN M U @@ -26,6 +26,7 @@ return [ 'second' => '{1}ಕೆಲವು ಕ್ಷಣಗಳು|]1,Inf[:count ಸೆಕೆಂಡುಗಳು', 'ago' => ':time ಹಿಂದೆ', 'from_now' => ':time ನಂತರ', + 'diff_now' => 'ಈಗ', 'diff_yesterday' => 'ನಿನ್ನೆ', 'diff_tomorrow' => 'ನಾಳೆ', 'formats' => [ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ko.php b/vendor/nesbot/carbon/src/Carbon/Lang/ko.php index 0adca0628..f009c6df7 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ko.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ko.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Kunal Marwaha * - FourwingsY @@ -24,11 +24,11 @@ return [ 'year' => ':count년', 'a_year' => '{1}일년|]1,Inf[:count년', 'y' => ':count년', - 'month' => ':count달', - 'a_month' => '{1}한달|]1,Inf[:count달', + 'month' => ':count개월', + 'a_month' => '{1}한달|]1,Inf[:count개월', 'm' => ':count개월', - 'week' => ':count주일', - 'a_week' => '{1}일주일|]1,Inf[:count 주일', + 'week' => ':count주', + 'a_week' => '{1}일주일|]1,Inf[:count 주', 'w' => ':count주일', 'day' => ':count일', 'a_day' => '{1}하루|]1,Inf[:count일', @@ -46,6 +46,9 @@ return [ 'from_now' => ':time 후', 'after' => ':time 후', 'before' => ':time 전', + 'diff_now' => '지금', + 'diff_yesterday' => '어제', + 'diff_tomorrow' => '내일', 'formats' => [ 'LT' => 'A h:mm', 'LTS' => 'A h:mm:ss', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/kok.php b/vendor/nesbot/carbon/src/Carbon/Lang/kok.php index 2a8ee4a20..4adcddcca 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/kok.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/kok.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/kok_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/kok_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/kok_IN.php index 52c4edf8c..92ba844c5 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/kok_IN.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/kok_IN.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Red Hat, Pune bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ks.php b/vendor/nesbot/carbon/src/Carbon/Lang/ks.php index 1b4e432e9..987607905 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ks.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ks.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/ks_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ks_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/ks_IN.php index d393fb339..ce9d5d4ae 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ks_IN.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ks_IN.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Red Hat, Pune bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ks_IN@devanagari.php b/vendor/nesbot/carbon/src/Carbon/Lang/ks_IN@devanagari.php index 502ae984d..a2ae8b64f 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ks_IN@devanagari.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ks_IN@devanagari.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - ks-gnome-trans-commits@lists.code.indlinux.net */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/kw.php b/vendor/nesbot/carbon/src/Carbon/Lang/kw.php index 23e5ed550..26e242e7d 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/kw.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/kw.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/kw_GB.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/kw_GB.php b/vendor/nesbot/carbon/src/Carbon/Lang/kw_GB.php index 7b6d68710..00bf52bd5 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/kw_GB.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/kw_GB.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Alastair McKinstry bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ky.php b/vendor/nesbot/carbon/src/Carbon/Lang/ky.php index 107d80509..f4106d49f 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ky.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ky.php @@ -45,6 +45,9 @@ return [ 's' => ':count сек.', 'ago' => ':time мурун', 'from_now' => ':time ичинде', + 'diff_now' => 'азыр', + 'diff_yesterday' => 'кечээ', + 'diff_tomorrow' => 'эртең', 'formats' => [ 'LT' => 'HH:mm', 'LTS' => 'HH:mm:ss', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/lg.php b/vendor/nesbot/carbon/src/Carbon/Lang/lg.php index cabd4b98d..48bc68bef 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/lg.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/lg.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/lg_UG.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/lg_UG.php b/vendor/nesbot/carbon/src/Carbon/Lang/lg_UG.php index 0cc2077fe..aa0221404 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/lg_UG.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/lg_UG.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Akademe ya Luganda Kizito Birabwa kompyuta@kizito.uklinux.net */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/li.php b/vendor/nesbot/carbon/src/Carbon/Lang/li.php index 94afcebf7..86c3009eb 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/li.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/li.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/li_NL.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/li_NL.php b/vendor/nesbot/carbon/src/Carbon/Lang/li_NL.php index 1c18a9859..6c5feb79f 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/li_NL.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/li_NL.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - information from Kenneth Christiansen Kenneth Christiansen, Pablo Saratxaga kenneth@gnu.org, pablo@mandriva.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/lij.php b/vendor/nesbot/carbon/src/Carbon/Lang/lij.php index 8c8d70827..45732b55d 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/lij.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/lij.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/lij_IT.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/lij_IT.php b/vendor/nesbot/carbon/src/Carbon/Lang/lij_IT.php index 84f49257e..f8726fd2c 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/lij_IT.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/lij_IT.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Gastaldi alessio.gastaldi@libero.it */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ln.php b/vendor/nesbot/carbon/src/Carbon/Lang/ln.php index 3a88e221a..9d5c35dd8 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ln.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ln.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Ubuntu René Manassé GALEKWA renemanasse@gmail.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ln_CD.php b/vendor/nesbot/carbon/src/Carbon/Lang/ln_CD.php index 637f25d33..13635fcca 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ln_CD.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ln_CD.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Ubuntu René Manassé GALEKWA renemanasse@gmail.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/lo.php b/vendor/nesbot/carbon/src/Carbon/Lang/lo.php index de8284c70..887cbee74 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/lo.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/lo.php @@ -31,6 +31,7 @@ return [ 's' => ':count ວິ. ', 'ago' => ':timeຜ່ານມາ', 'from_now' => 'ອີກ :time', + 'diff_now' => 'ຕອນນີ້', 'diff_yesterday' => 'ມື້ວານນີ້ເວລາ', 'diff_tomorrow' => 'ມື້ອື່ນເວລາ', 'formats' => [ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/lv.php b/vendor/nesbot/carbon/src/Carbon/Lang/lv.php index c4ec17957..3688bd395 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/lv.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/lv.php @@ -29,6 +29,8 @@ * - Nicolás Hock Isaza * - Viesturs Kavacs (Kavacky) * - zakse + * - Janis Eglitis (janiseglitis) + * - Guntars */ return [ 'year' => '0 gadiem|:count gads|:count gadiem', @@ -92,6 +94,9 @@ return [ 'first_day_of_week' => 1, 'day_of_first_week_of_year' => 4, 'list' => [', ', ' un '], + 'diff_now' => 'tagad', + 'diff_yesterday' => 'vakar', + 'diff_tomorrow' => 'rīt', 'formats' => [ 'LT' => 'HH:mm', 'LTS' => 'HH:mm:ss', @@ -103,7 +108,7 @@ return [ 'weekdays' => ['svētdiena', 'pirmdiena', 'otrdiena', 'trešdiena', 'ceturtdiena', 'piektdiena', 'sestdiena'], 'weekdays_short' => ['Sv.', 'P.', 'O.', 'T.', 'C.', 'Pk.', 'S.'], 'weekdays_min' => ['Sv.', 'P.', 'O.', 'T.', 'C.', 'Pk.', 'S.'], - 'months' => ['janvārī', 'ferbruārī', 'martā', 'aprīlī', 'maijā', 'jūnijā', 'jūlijā', 'augustā', 'septembrī', 'oktobrī', 'novembrī', 'decembrī'], - 'months_short' => ['Janv', 'Febr', 'Marts', 'Apr', 'Maijs', 'Jūn', 'Jūl', 'Aug', 'Sept', 'Okt', 'Nov', 'Dec'], + 'months' => ['janvārī', 'februārī', 'martā', 'aprīlī', 'maijā', 'jūnijā', 'jūlijā', 'augustā', 'septembrī', 'oktobrī', 'novembrī', 'decembrī'], + 'months_short' => ['Janv', 'Feb', 'Mar', 'Apr', 'Mai', 'Jūn', 'Jūl', 'Aug', 'Sept', 'Okt', 'Nov', 'Dec'], 'meridiem' => ['priekšpusdiena', 'pēcpusdiena'], ]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/lzh.php b/vendor/nesbot/carbon/src/Carbon/Lang/lzh.php index 90aeccace..1180c6bb1 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/lzh.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/lzh.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/lzh_TW.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/lzh_TW.php b/vendor/nesbot/carbon/src/Carbon/Lang/lzh_TW.php index eaf9c8fe8..3b1493eef 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/lzh_TW.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/lzh_TW.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mag.php b/vendor/nesbot/carbon/src/Carbon/Lang/mag.php index 87baff57a..7532436d0 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/mag.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mag.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/mag_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mag_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/mag_IN.php index 7aec75be6..193f67a7e 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/mag_IN.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mag_IN.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - bhashaghar@googlegroups.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mai.php b/vendor/nesbot/carbon/src/Carbon/Lang/mai.php index 17cd90228..792b97399 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/mai.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mai.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/mai_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mai_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/mai_IN.php index 8270c51f1..03049d458 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/mai_IN.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mai_IN.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Maithili Computing Research Center, Pune, India rajeshkajha@yahoo.com,akhilesh.k@samusng.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mfe.php b/vendor/nesbot/carbon/src/Carbon/Lang/mfe.php index 62cf1d0a0..4d6e6b697 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/mfe.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mfe.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/mfe_MU.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mfe_MU.php b/vendor/nesbot/carbon/src/Carbon/Lang/mfe_MU.php index 83b733afb..2d27b4578 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/mfe_MU.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mfe_MU.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Samsung Electronics Co., Ltd. akhilesh.k@samsung.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mg.php b/vendor/nesbot/carbon/src/Carbon/Lang/mg.php index a872aa1a2..40bc2a825 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/mg.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mg.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/mg_MG.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mg_MG.php b/vendor/nesbot/carbon/src/Carbon/Lang/mg_MG.php index 3fe7a460c..6a14535a5 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/mg_MG.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mg_MG.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - The Debian Project modified by GNU//Linux Malagasy Rado Ramarotafika,Do-Risika RAFIEFERANTSIARONJY rado@linuxmg.org,dourix@free.fr */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mhr.php b/vendor/nesbot/carbon/src/Carbon/Lang/mhr.php index a67ac520d..6bbc9f6dd 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/mhr.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mhr.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/mhr_RU.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mhr_RU.php b/vendor/nesbot/carbon/src/Carbon/Lang/mhr_RU.php index 6f6cbc119..309ead9d4 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/mhr_RU.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mhr_RU.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - PeshSajSoft Ltd. Vyacheslav Kileev slavakileev@yandex.ru */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/miq.php b/vendor/nesbot/carbon/src/Carbon/Lang/miq.php index eccb7e890..51e5a9855 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/miq.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/miq.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/miq_NI.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mjw.php b/vendor/nesbot/carbon/src/Carbon/Lang/mjw.php index 30cd577d2..617154cd0 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/mjw.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mjw.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/mjw_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mjw_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/mjw_IN.php index 41624f5d6..58ed0d189 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/mjw_IN.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mjw_IN.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Jor Teron bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mk.php b/vendor/nesbot/carbon/src/Carbon/Lang/mk.php index c5c241560..975b1a4ee 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/mk.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mk.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Sashko Todorov * - Josh Soref @@ -45,6 +45,9 @@ return [ 'from_now' => 'после :time', 'after' => 'по :time', 'before' => 'пред :time', + 'diff_now' => 'сега', + 'diff_yesterday' => 'вчера', + 'diff_tomorrow' => 'утре', 'formats' => [ 'LT' => 'H:mm', 'LTS' => 'H:mm:ss', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ml.php b/vendor/nesbot/carbon/src/Carbon/Lang/ml.php index a666a4698..9ab29d92c 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ml.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ml.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - JD Isaacks */ @@ -30,6 +30,7 @@ return [ 'a_second' => 'അൽപ നിമിഷങ്ങൾ|:count സെക്കൻഡ്', 'ago' => ':time മുൻപ്', 'from_now' => ':time കഴിഞ്ഞ്', + 'diff_now' => 'ഇപ്പോൾ', 'diff_yesterday' => 'ഇന്നലെ', 'diff_tomorrow' => 'നാളെ', 'formats' => [ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mn.php b/vendor/nesbot/carbon/src/Carbon/Lang/mn.php index cba67b9ae..25f65b332 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/mn.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mn.php @@ -80,6 +80,9 @@ return [ 'second_before' => ':count секунды', 'list' => ', ', + 'diff_now' => 'одоо', + 'diff_yesterday' => 'өчигдөр', + 'diff_tomorrow' => 'маргааш', 'formats' => [ 'LT' => 'HH:mm', 'LTS' => 'HH:mm:ss', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mni.php b/vendor/nesbot/carbon/src/Carbon/Lang/mni.php index b95d4752b..cafa2f874 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/mni.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mni.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/mni_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mni_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/mni_IN.php index 41267419a..45d430ef9 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/mni_IN.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mni_IN.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Red Hat Pune libc-alpha@sourceware.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mr.php b/vendor/nesbot/carbon/src/Carbon/Lang/mr.php index 492512b15..ca3329373 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/mr.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mr.php @@ -34,6 +34,7 @@ return [ 'before' => ':timeपूर्वी', 'after' => ':timeनंतर', + 'diff_now' => 'आत्ता', 'diff_yesterday' => 'काल', 'diff_tomorrow' => 'उद्या', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ms.php b/vendor/nesbot/carbon/src/Carbon/Lang/ms.php index 7a5c493f1..55368aa79 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ms.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ms.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Josh Soref * - Azri Jamil @@ -37,6 +37,9 @@ return [ 'from_now' => ':time dari sekarang', 'after' => ':time selepas', 'before' => ':time sebelum', + 'diff_now' => 'sekarang', + 'diff_yesterday' => 'semalam', + 'diff_tomorrow' => 'esok', 'formats' => [ 'LT' => 'HH.mm', 'LTS' => 'HH.mm.ss', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ms_MY.php b/vendor/nesbot/carbon/src/Carbon/Lang/ms_MY.php index 26fa64021..970d60484 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ms_MY.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ms_MY.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Josh Soref * - Azri Jamil diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mt.php b/vendor/nesbot/carbon/src/Carbon/Lang/mt.php index 63a11d475..1fd71daec 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/mt.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mt.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Alessandro Maruccia */ @@ -30,6 +30,9 @@ return [ 's' => 'sek.|:count sek.|:count sek.|:count sek.', 'ago' => ':time ilu', 'from_now' => 'f’ :time', + 'diff_now' => 'issa', + 'diff_yesterday' => 'lbieraħ', + 'diff_tomorrow' => 'għada', 'formats' => [ 'LT' => 'HH:mm', 'LTS' => 'HH:mm:ss', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nan.php b/vendor/nesbot/carbon/src/Carbon/Lang/nan.php index 1fc1ec706..0affece84 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/nan.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nan.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/nan_TW.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nan_TW.php b/vendor/nesbot/carbon/src/Carbon/Lang/nan_TW.php index 9ef3088f8..5c50aa48d 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/nan_TW.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nan_TW.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nan_TW@latin.php b/vendor/nesbot/carbon/src/Carbon/Lang/nan_TW@latin.php index d83e26ba2..99ca2a425 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/nan_TW@latin.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nan_TW@latin.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Arne Goetje arne@canonical.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nb.php b/vendor/nesbot/carbon/src/Carbon/Lang/nb.php index 172de5576..4d6781f8b 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/nb.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nb.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - François B * - Alexander Tømmerås diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nds.php b/vendor/nesbot/carbon/src/Carbon/Lang/nds.php index 78321062e..c0b3775e7 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/nds.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nds.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/nds_DE.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nds_DE.php b/vendor/nesbot/carbon/src/Carbon/Lang/nds_DE.php index 3a87cdd70..eb6e77e61 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/nds_DE.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nds_DE.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - information from Kenneth Christiansen Kenneth Christiansen, Pablo Saratxaga kenneth@gnu.org, pablo@mandrakesoft.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nds_NL.php b/vendor/nesbot/carbon/src/Carbon/Lang/nds_NL.php index 00783989e..de2c57bcc 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/nds_NL.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nds_NL.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - information from Kenneth Christiansen Kenneth Christiansen, Pablo Saratxaga kenneth@gnu.org, pablo@mandrakesoft.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ne.php b/vendor/nesbot/carbon/src/Carbon/Lang/ne.php index 3b995bb5a..3efafdbbe 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ne.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ne.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - nootanghimire * - Josh Soref @@ -35,6 +35,7 @@ return [ 'from_now' => ':timeमा', 'after' => ':time पछि', 'before' => ':time अघि', + 'diff_now' => 'अहिले', 'diff_yesterday' => 'हिजो', 'diff_tomorrow' => 'भोलि', 'formats' => [ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nhn.php b/vendor/nesbot/carbon/src/Carbon/Lang/nhn.php index dd17acb0d..5a858315c 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/nhn.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nhn.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/nhn_MX.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nhn_MX.php b/vendor/nesbot/carbon/src/Carbon/Lang/nhn_MX.php index 326f89585..9db88a128 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/nhn_MX.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nhn_MX.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - RAP libc-alpha@sourceware.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/niu.php b/vendor/nesbot/carbon/src/Carbon/Lang/niu.php index 476186b6a..bd9be8aae 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/niu.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/niu.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/niu_NU.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/niu_NU.php b/vendor/nesbot/carbon/src/Carbon/Lang/niu_NU.php index b256af06d..6e7a697bd 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/niu_NU.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/niu_NU.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - RockET Systems Emani Fakaotimanava-Lui emani@niue.nu */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nl.php b/vendor/nesbot/carbon/src/Carbon/Lang/nl.php index 141f62cd9..c1785284c 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/nl.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nl.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Roy * - Stephan diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nl_AW.php b/vendor/nesbot/carbon/src/Carbon/Lang/nl_AW.php index 89a685c49..5ec136d1b 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/nl_AW.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nl_AW.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Free Software Foundation, Inc. bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nl_BE.php b/vendor/nesbot/carbon/src/Carbon/Lang/nl_BE.php index 6c651fe1c..037f5b4aa 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/nl_BE.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nl_BE.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Roy * - Stephan diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nl_NL.php b/vendor/nesbot/carbon/src/Carbon/Lang/nl_NL.php index 7e4f86bd0..307b4319c 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/nl_NL.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nl_NL.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - RAP bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nn.php b/vendor/nesbot/carbon/src/Carbon/Lang/nn.php index fb1462bc8..bd86fd873 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/nn.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nn.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - François B * - Alexander Tømmerås diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nr.php b/vendor/nesbot/carbon/src/Carbon/Lang/nr.php index a1f1322e8..1bc999f9d 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/nr.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nr.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/nr_ZA.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nr_ZA.php b/vendor/nesbot/carbon/src/Carbon/Lang/nr_ZA.php index e355c2526..f9a7be82e 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/nr_ZA.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nr_ZA.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nso.php b/vendor/nesbot/carbon/src/Carbon/Lang/nso.php index bdcfcfd95..2a6cabbf1 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/nso.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nso.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/nso_ZA.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nso_ZA.php b/vendor/nesbot/carbon/src/Carbon/Lang/nso_ZA.php index 81115d8c8..b08fe6dcd 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/nso_ZA.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nso_ZA.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/om.php b/vendor/nesbot/carbon/src/Carbon/Lang/om.php index fe4c50d02..b8d5a0b01 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/om.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/om.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Ge'ez Frontier Foundation & Sagalee Oromoo Publishing Co. Inc. locales@geez.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/or.php b/vendor/nesbot/carbon/src/Carbon/Lang/or.php index 36b986c02..3aa717326 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/or.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/or.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/or_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/or_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/or_IN.php index b1c83d20d..57a89f5df 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/or_IN.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/or_IN.php @@ -9,11 +9,14 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - IBM AP Linux Technology Center, Yamato Software Laboratory bug-glibc@gnu.org */ return [ + 'diff_now' => 'ବର୍ତ୍ତମାନ', + 'diff_yesterday' => 'ଗତକାଲି', + 'diff_tomorrow' => 'ଆସନ୍ତାକାଲି', 'formats' => [ 'LT' => 'Oh:Om A', 'LTS' => 'Oh:Om:Os A', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/os.php b/vendor/nesbot/carbon/src/Carbon/Lang/os.php index 3116a43cb..5f55e8a2d 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/os.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/os.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/os_RU.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/os_RU.php b/vendor/nesbot/carbon/src/Carbon/Lang/os_RU.php index 7f2f9b858..9592d15d5 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/os_RU.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/os_RU.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pa.php b/vendor/nesbot/carbon/src/Carbon/Lang/pa.php index f73a1329e..4c83062d4 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/pa.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/pa.php @@ -25,6 +25,7 @@ return [ 'second' => 'ਕੁਝ ਸਕਿੰਟ|:count ਸਕਿੰਟ', 'ago' => ':time ਪਿਛਲੇ', 'from_now' => ':time ਵਿੱਚ', + 'diff_now' => 'ਹੁਣ', 'diff_yesterday' => 'ਕਲ', 'diff_tomorrow' => 'ਕਲ', 'formats' => [ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pa_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/pa_IN.php index 3d792479d..ca67642a5 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/pa_IN.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/pa_IN.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Guo Xiang Tan * - Josh Soref diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pa_PK.php b/vendor/nesbot/carbon/src/Carbon/Lang/pa_PK.php index 39a333c97..f9af11c60 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/pa_PK.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/pa_PK.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pap.php b/vendor/nesbot/carbon/src/Carbon/Lang/pap.php index a90b19426..b4c1706f9 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/pap.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/pap.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return [ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pap_AW.php b/vendor/nesbot/carbon/src/Carbon/Lang/pap_AW.php index b8fbfaa8f..e9a48ffc3 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/pap_AW.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/pap_AW.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - information from native speaker Pablo Saratxaga pablo@mandrakesoft.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pap_CW.php b/vendor/nesbot/carbon/src/Carbon/Lang/pap_CW.php index b8fbfaa8f..e9a48ffc3 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/pap_CW.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/pap_CW.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - information from native speaker Pablo Saratxaga pablo@mandrakesoft.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pl.php b/vendor/nesbot/carbon/src/Carbon/Lang/pl.php index a9914569c..4ee70a51e 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/pl.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/pl.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Wacław Jacek * - François B @@ -101,7 +101,7 @@ return [ 'months' => ['stycznia', 'lutego', 'marca', 'kwietnia', 'maja', 'czerwca', 'lipca', 'sierpnia', 'września', 'października', 'listopada', 'grudnia'], 'months_standalone' => ['styczeń', 'luty', 'marzec', 'kwiecień', 'maj', 'czerwiec', 'lipiec', 'sierpień', 'wrzesień', 'październik', 'listopad', 'grudzień'], 'months_short' => ['sty', 'lut', 'mar', 'kwi', 'maj', 'cze', 'lip', 'sie', 'wrz', 'paź', 'lis', 'gru'], - 'months_regexp' => '/DD?o?\.?(\[[^\[\]]*\]|\s)+MMMM?/', + 'months_regexp' => '/(DD?o?\.?(\[[^\[\]]*\]|\s)+MMMM?|L{2,4}|l{2,4})/', 'weekdays' => ['niedziela', 'poniedziałek', 'wtorek', 'środa', 'czwartek', 'piątek', 'sobota'], 'weekdays_short' => ['ndz', 'pon', 'wt', 'śr', 'czw', 'pt', 'sob'], 'weekdays_min' => ['Nd', 'Pn', 'Wt', 'Śr', 'Cz', 'Pt', 'So'], diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pt_PT.php b/vendor/nesbot/carbon/src/Carbon/Lang/pt_PT.php index 3e4dc67fb..2a76fc1fc 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/pt_PT.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/pt_PT.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - RAP bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/quz.php b/vendor/nesbot/carbon/src/Carbon/Lang/quz.php index c39d9c5d1..1640c02fb 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/quz.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/quz.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/quz_PE.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/quz_PE.php b/vendor/nesbot/carbon/src/Carbon/Lang/quz_PE.php index 87b118fc9..d32291893 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/quz_PE.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/quz_PE.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Sugar Labs // OLPC sugarlabs.org libc-alpha@sourceware.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/raj.php b/vendor/nesbot/carbon/src/Carbon/Lang/raj.php index c086c9a38..26138c9b2 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/raj.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/raj.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/raj_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/raj_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/raj_IN.php index 383b0a78d..7b4589cd3 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/raj_IN.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/raj_IN.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - meghrajsuthar03@gmail.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ro.php b/vendor/nesbot/carbon/src/Carbon/Lang/ro.php index 00bdaaf77..03022d191 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ro.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ro.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Josh Soref * - JD Isaacks @@ -42,6 +42,7 @@ return [ 'from_now' => 'peste :time', 'after' => 'peste :time', 'before' => 'acum :time', + 'diff_now' => 'acum', 'diff_yesterday' => 'ieri', 'diff_tomorrow' => 'mâine', 'formats' => [ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ru.php b/vendor/nesbot/carbon/src/Carbon/Lang/ru.php index 28ec24fc3..2daea3d6c 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ru.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ru.php @@ -172,7 +172,7 @@ return [ 'months_standalone' => ['январь', 'февраль', 'март', 'апрель', 'май', 'июнь', 'июль', 'август', 'сентябрь', 'октябрь', 'ноябрь', 'декабрь'], 'months_short' => ['янв', 'фев', 'мар', 'апр', 'мая', 'июн', 'июл', 'авг', 'сен', 'окт', 'ноя', 'дек'], 'months_short_standalone' => ['янв', 'фев', 'мар', 'апр', 'май', 'июн', 'июл', 'авг', 'сен', 'окт', 'ноя', 'дек'], - 'months_regexp' => '/DD?o?\.?(\[[^\[\]]*\]|\s)+MMMM?/', + 'months_regexp' => '/(DD?o?\.?(\[[^\[\]]*\]|\s)+MMMM?|L{2,4}|l{2,4})/', 'weekdays' => ['воскресенье', 'понедельник', 'вторник', 'среду', 'четверг', 'пятницу', 'субботу'], 'weekdays_standalone' => ['воскресенье', 'понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота'], 'weekdays_short' => ['вск', 'пнд', 'втр', 'срд', 'чтв', 'птн', 'сбт'], diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ru_UA.php b/vendor/nesbot/carbon/src/Carbon/Lang/ru_UA.php index 0567d0e04..db958d686 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ru_UA.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ru_UA.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - RFC 2319 bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/rw.php b/vendor/nesbot/carbon/src/Carbon/Lang/rw.php index ad6903485..bc4a347f0 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/rw.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/rw.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/rw_RW.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/rw_RW.php b/vendor/nesbot/carbon/src/Carbon/Lang/rw_RW.php index 0206fc2b3..9b3e06825 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/rw_RW.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/rw_RW.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Rwanda Steve Murphy murf@e-tools.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sa.php b/vendor/nesbot/carbon/src/Carbon/Lang/sa.php index abeba9878..1357c0305 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sa.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sa.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/sa_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sa_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/sa_IN.php index 1c9c9ea93..cfda9a636 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sa_IN.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sa_IN.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - The Debian project Christian Perrier bubulle@debian.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sah.php b/vendor/nesbot/carbon/src/Carbon/Lang/sah.php index 797ff4d47..b82882423 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sah.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sah.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/sah_RU.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sah_RU.php b/vendor/nesbot/carbon/src/Carbon/Lang/sah_RU.php index 358e39509..94cc0cb02 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sah_RU.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sah_RU.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Valery Timiriliyev Valery Timiriliyev timiriliyev@gmail.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sat.php b/vendor/nesbot/carbon/src/Carbon/Lang/sat.php index b8e0af75a..c9914c668 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sat.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sat.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/sat_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sat_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/sat_IN.php index cca494f1c..632b1af6b 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sat_IN.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sat_IN.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Red Hat Pune libc-alpha@sourceware.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sc.php b/vendor/nesbot/carbon/src/Carbon/Lang/sc.php index b1bdb0051..7178cf4f1 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sc.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sc.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/sc_IT.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sc_IT.php b/vendor/nesbot/carbon/src/Carbon/Lang/sc_IT.php index a34e37f63..5d1e4cecc 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sc_IT.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sc_IT.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Sardinian Translators Team Massimeddu Cireddu massimeddu@gmail.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sd_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/sd_IN.php index d3af2c77e..de1dad051 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sd_IN.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sd_IN.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Red Hat, Pune bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sd_IN@devanagari.php b/vendor/nesbot/carbon/src/Carbon/Lang/sd_IN@devanagari.php index d76b24d7e..061fcc162 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sd_IN@devanagari.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sd_IN@devanagari.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Red Hat, Pune bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sgs.php b/vendor/nesbot/carbon/src/Carbon/Lang/sgs.php index 365dff09c..864b9892c 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sgs.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sgs.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/sgs_LT.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sgs_LT.php b/vendor/nesbot/carbon/src/Carbon/Lang/sgs_LT.php index f055ac9a7..aa9e942e4 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sgs_LT.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sgs_LT.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Arnas Udovičius bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sh.php b/vendor/nesbot/carbon/src/Carbon/Lang/sh.php index b2255ec2d..aaf82026b 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sh.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sh.php @@ -26,6 +26,9 @@ if (class_exists('Symfony\\Component\\Translation\\PluralizationRules')) { * - Miroslav Matkovic (mikki021) */ return [ + 'diff_now' => 'sada', + 'diff_yesterday' => 'juče', + 'diff_tomorrow' => 'sutra', 'formats' => [ 'LT' => 'HH:mm', 'LTS' => 'HH:mm:ss', @@ -35,19 +38,19 @@ return [ 'LLLL' => 'MMMM DD, YYYY HH:mm', ], 'year' => ':count godina|:count godine|:count godina', - 'y' => ':count godina|:count godine|:count godina', + 'y' => ':count g.', 'month' => ':count mesec|:count meseca|:count meseci', - 'm' => ':count mesec|:count meseca|:count meseci', + 'm' => ':count m.', 'week' => ':count nedelja|:count nedelje|:count nedelja', - 'w' => ':count nedelja|:count nedelje|:count nedelja', + 'w' => ':count n.', 'day' => ':count dan|:count dana|:count dana', - 'd' => ':count dan|:count dana|:count dana', - 'hour' => ':count čas|:count časa|:count časova', - 'h' => ':count čas|:count časa|:count časova', + 'd' => ':count d.', + 'hour' => ':count sat|:count sata|:count sati', + 'h' => ':count č.', 'minute' => ':count minut|:count minuta|:count minuta', - 'min' => ':count minut|:count minuta|:count minuta', + 'min' => ':count min.', 'second' => ':count sekund|:count sekunde|:count sekundi', - 's' => ':count sekund|:count sekunde|:count sekundi', + 's' => ':count s.', 'ago' => 'pre :time', 'from_now' => 'za :time', 'after' => 'nakon :time', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/shn.php b/vendor/nesbot/carbon/src/Carbon/Lang/shn.php index fc7792bea..fe7b1ea55 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/shn.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/shn.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/shn_MM.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/shn_MM.php b/vendor/nesbot/carbon/src/Carbon/Lang/shn_MM.php index 9651d8a6f..c3f792c16 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/shn_MM.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/shn_MM.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - ubuntu Myanmar LoCo Team http://www.ubuntu-mm.net Bone Pyae Sone bone.burma@mail.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/shs.php b/vendor/nesbot/carbon/src/Carbon/Lang/shs.php index d2c21834c..8d2e1d7d5 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/shs.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/shs.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/shs_CA.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/shs_CA.php b/vendor/nesbot/carbon/src/Carbon/Lang/shs_CA.php index 092ce7f2d..08d385e66 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/shs_CA.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/shs_CA.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Neskie Manuel bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/si.php b/vendor/nesbot/carbon/src/Carbon/Lang/si.php index 795d816ed..84abe82a7 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/si.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/si.php @@ -18,13 +18,20 @@ return [ 'year' => '{1}වසර|වසර :count', 'month' => '{1}මාසය|මාස :count', - 'week' => '{1}සතියක්|සති :count යි', + 'week' => '{1}සතියක්|සති :count', 'day' => '{1}දිනය|දින :count', 'hour' => '{1}පැය|පැය :count', 'minute' => '{1}මිනිත්තුව|මිනිත්තු :count', 'second' => '{1}තත්පර කිහිපය|තත්පර :count', 'ago' => ':timeකට පෙර', - 'from_now' => ':timeකින්', + 'from_now' => function ($time) { + if (preg_match('/දින \d+/', $time)) { + return $time.'න්'; + } + + return $time.'කින්'; + }, + 'diff_now' => 'දැන්', 'diff_yesterday' => 'ඊයේ', 'diff_tomorrow' => 'හෙට', 'formats' => [ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sid.php b/vendor/nesbot/carbon/src/Carbon/Lang/sid.php index a310f506f..b1c652183 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sid.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sid.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/sid_ET.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sid_ET.php b/vendor/nesbot/carbon/src/Carbon/Lang/sid_ET.php index d4a569887..1296f9be7 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sid_ET.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sid_ET.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Ge'ez Frontier Foundation locales@geez.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sk.php b/vendor/nesbot/carbon/src/Carbon/Lang/sk.php index 1b0daebd8..fd0f6b3e9 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sk.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sk.php @@ -61,6 +61,9 @@ return [ 'first_day_of_week' => 1, 'day_of_first_week_of_year' => 4, 'list' => [', ', ' a '], + 'diff_now' => 'teraz', + 'diff_yesterday' => 'včera', + 'diff_tomorrow' => 'zajtra', 'formats' => [ 'LT' => 'HH:mm', 'LTS' => 'HH:mm:ss', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sl.php b/vendor/nesbot/carbon/src/Carbon/Lang/sl.php index 8edea785e..320975fcf 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sl.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sl.php @@ -27,6 +27,7 @@ * - Glavić * - Anže Časar * - Lovro Tramšek (Lovro1107) + * - burut13 */ return [ 'year' => ':count leto|:count leti|:count leta|:count let', @@ -42,6 +43,7 @@ return [ 'minute' => ':count minuta|:count minuti|:count minute|:count minut', 'min' => ':count min.', 'second' => ':count sekunda|:count sekundi|:count sekunde|:count sekund', + 'a_second' => '{1}nekaj sekund|:count sekunda|:count sekundi|:count sekunde|:count sekund', 's' => ':count s', 'year_ago' => ':count letom|:count leti|:count leti|:count leti', @@ -110,11 +112,11 @@ return [ }, 'sameElse' => 'L', ], - 'months' => ['Januar', 'Februar', 'Marec', 'April', 'Maj', 'Junij', 'Julij', 'Avgust', 'September', 'Oktober', 'November', 'December'], - 'months_short' => ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'Avg', 'Sep', 'Okt', 'Nov', 'Dec'], - 'weekdays' => ['Nedelja', 'Ponedeljek', 'Torek', 'Sreda', 'Četrtek', 'Petek', 'Sobota'], - 'weekdays_short' => ['Ned', 'Pon', 'Tor', 'Sre', 'Čet', 'Pet', 'Sob'], - 'weekdays_min' => ['Ne', 'Po', 'To', 'Sr', 'Če', 'Pe', 'So'], + 'months' => ['januar', 'februar', 'marec', 'april', 'maj', 'junij', 'julij', 'avgust', 'september', 'oktober', 'november', 'december'], + 'months_short' => ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'avg', 'sep', 'okt', 'nov', 'dec'], + 'weekdays' => ['nedelja', 'ponedeljek', 'torek', 'sreda', 'četrtek', 'petek', 'sobota'], + 'weekdays_short' => ['ned', 'pon', 'tor', 'sre', 'čet', 'pet', 'sob'], + 'weekdays_min' => ['ne', 'po', 'to', 'sr', 'če', 'pe', 'so'], 'list' => [', ', ' in '], 'meridiem' => ['dopoldan', 'popoldan'], ]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sm.php b/vendor/nesbot/carbon/src/Carbon/Lang/sm.php index d6e60c7cf..e8c118acf 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sm.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sm.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/sm_WS.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sm_WS.php b/vendor/nesbot/carbon/src/Carbon/Lang/sm_WS.php index 7b4b75067..f06606871 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sm_WS.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sm_WS.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Samsung Electronics Co., Ltd. akhilesh.k@samsung.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/so.php b/vendor/nesbot/carbon/src/Carbon/Lang/so.php index 7ff2991fe..02ce66dea 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/so.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/so.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/so_DJ.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/so_DJ.php b/vendor/nesbot/carbon/src/Carbon/Lang/so_DJ.php index 882e2a82d..4601b1049 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/so_DJ.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/so_DJ.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Ge'ez Frontier Foundation locales@geez.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/so_ET.php b/vendor/nesbot/carbon/src/Carbon/Lang/so_ET.php index f036b148b..cce66c142 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/so_ET.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/so_ET.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Ge'ez Frontier Foundation locales@geez.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/so_KE.php b/vendor/nesbot/carbon/src/Carbon/Lang/so_KE.php index f036b148b..cce66c142 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/so_KE.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/so_KE.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Ge'ez Frontier Foundation locales@geez.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/so_SO.php b/vendor/nesbot/carbon/src/Carbon/Lang/so_SO.php index 2f908c177..16b5206c6 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/so_SO.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/so_SO.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Ge'ez Frontier Foundation locales@geez.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sq.php b/vendor/nesbot/carbon/src/Carbon/Lang/sq.php index 7a133d2bf..ed1eab491 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sq.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sq.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - François B * - JD Isaacks diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sr.php b/vendor/nesbot/carbon/src/Carbon/Lang/sr.php index b3bebb2cf..41232c81e 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sr.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sr.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Josh Soref * - François B @@ -32,7 +32,7 @@ return [ 'h' => ':count č.', 'minute' => ':count minut|:count minuta|:count minuta', 'min' => ':count min.', - 'second' => ':count sekund|:count sekunde|:count sekunde', + 'second' => ':count sekundu|:count sekunde|:count sekundi', 's' => ':count sek.', 'ago' => 'pre :time', 'from_now' => 'za :time', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sr_RS.php b/vendor/nesbot/carbon/src/Carbon/Lang/sr_RS.php index 6c733953b..bc5e04bf8 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sr_RS.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sr_RS.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - sr_YU, sr_CS locale Danilo Segan bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/st.php b/vendor/nesbot/carbon/src/Carbon/Lang/st.php index acb842b65..b065445b5 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/st.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/st.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/st_ZA.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/st_ZA.php b/vendor/nesbot/carbon/src/Carbon/Lang/st_ZA.php index ffb8fe98e..5bce7f20f 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/st_ZA.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/st_ZA.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sv.php b/vendor/nesbot/carbon/src/Carbon/Lang/sv.php index e418821af..7b5093287 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sv.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sv.php @@ -44,8 +44,9 @@ return [ 'from_now' => 'om :time', 'after' => ':time efter', 'before' => ':time före', - 'diff_yesterday' => 'Igår', - 'diff_tomorrow' => 'Imorgon', + 'diff_now' => 'nu', + 'diff_yesterday' => 'i går', + 'diff_tomorrow' => 'i morgon', 'formats' => [ 'LT' => 'HH:mm', 'LTS' => 'HH:mm:ss', @@ -55,10 +56,10 @@ return [ 'LLLL' => 'dddd D MMMM YYYY [kl.] HH:mm', ], 'calendar' => [ - 'sameDay' => '[Idag] LT', - 'nextDay' => '[Imorgon] LT', + 'sameDay' => '[I dag] LT', + 'nextDay' => '[I morgon] LT', 'nextWeek' => '[På] dddd LT', - 'lastDay' => '[Igår] LT', + 'lastDay' => '[I går] LT', 'lastWeek' => '[I] dddd[s] LT', 'sameElse' => 'L', ], diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sw.php b/vendor/nesbot/carbon/src/Carbon/Lang/sw.php index 6d0a29de5..a8ecfcab4 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sw.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sw.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - leyluj * - Josh Soref @@ -41,6 +41,9 @@ return [ 'from_now' => ':time baadaye', 'after' => ':time baada', 'before' => ':time kabla', + 'diff_now' => 'sasa hivi', + 'diff_yesterday' => 'jana', + 'diff_tomorrow' => 'kesho', 'formats' => [ 'LT' => 'HH:mm', 'LTS' => 'HH:mm:ss', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sw_KE.php b/vendor/nesbot/carbon/src/Carbon/Lang/sw_KE.php index b552e7911..2ace0db29 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sw_KE.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sw_KE.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Kamusi Project Martin Benjamin locales@kamusi.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sw_TZ.php b/vendor/nesbot/carbon/src/Carbon/Lang/sw_TZ.php index a0e365500..fab3cd683 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sw_TZ.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sw_TZ.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Kamusi Project Martin Benjamin locales@kamusi.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/szl.php b/vendor/nesbot/carbon/src/Carbon/Lang/szl.php index bd9e7b8a0..4429c4f56 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/szl.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/szl.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/szl_PL.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/szl_PL.php b/vendor/nesbot/carbon/src/Carbon/Lang/szl_PL.php index 47a1e778f..4b0b5410b 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/szl_PL.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/szl_PL.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - szl_PL locale Przemyslaw Buczkowski libc-alpha@sourceware.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ta.php b/vendor/nesbot/carbon/src/Carbon/Lang/ta.php index 3601293e3..f5819f7ac 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ta.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ta.php @@ -9,11 +9,12 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Josh Soref * - François B * - JD Isaacks + * - Satheez */ return [ 'year' => ':count வருடம்|:count ஆண்டுகள்', @@ -39,6 +40,9 @@ return [ 's' => ':count விநா.', 'ago' => ':time முன்', 'from_now' => ':time இல்', + 'before' => ':time முன்', + 'after' => ':time பின்', + 'diff_now' => 'இப்போது', 'diff_yesterday' => 'நேற்று', 'diff_tomorrow' => 'நாளை', 'formats' => [ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ta_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/ta_IN.php index 49313ac77..492d4c56d 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ta_IN.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ta_IN.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ta_LK.php b/vendor/nesbot/carbon/src/Carbon/Lang/ta_LK.php index 9b691bf1b..8e2afbf63 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ta_LK.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ta_LK.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - J.Yogaraj 94-777-315206 yogaraj.ubuntu@gmail.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tcy.php b/vendor/nesbot/carbon/src/Carbon/Lang/tcy.php index 5d22b0bb5..2eb99057c 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/tcy.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tcy.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/tcy_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tcy_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/tcy_IN.php index e266671d9..2ff20e0e6 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/tcy_IN.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tcy_IN.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - IndLinux.org, Samsung Electronics Co., Ltd. alexey.merzlyakov@samsung.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/te.php b/vendor/nesbot/carbon/src/Carbon/Lang/te.php index 5459e02d0..dc0befb19 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/te.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/te.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Kunal Marwaha * - Josh Soref @@ -40,6 +40,7 @@ return [ 's' => ':count సెక.', 'ago' => ':time క్రితం', 'from_now' => ':time లో', + 'diff_now' => 'ప్రస్తుతం', 'diff_yesterday' => 'నిన్న', 'diff_tomorrow' => 'రేపు', 'formats' => [ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/th.php b/vendor/nesbot/carbon/src/Carbon/Lang/th.php index 95d8a6bf1..02d5a178d 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/th.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/th.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Nate Whittaker * - John MacAslan @@ -40,6 +40,9 @@ return [ 'from_now' => 'อีก :time', 'after' => ':timeหลังจากนี้', 'before' => ':timeก่อน', + 'diff_now' => 'ขณะนี้', + 'diff_yesterday' => 'เมื่อวาน', + 'diff_tomorrow' => 'พรุ่งนี้', 'formats' => [ 'LT' => 'H:mm', 'LTS' => 'H:mm:ss', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/the.php b/vendor/nesbot/carbon/src/Carbon/Lang/the.php index d3aef9e9a..85f8333b8 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/the.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/the.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/the_NP.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/the_NP.php b/vendor/nesbot/carbon/src/Carbon/Lang/the_NP.php index 6d863384f..34da16278 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/the_NP.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/the_NP.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Chitwanix OS Development info@chitwanix.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ti.php b/vendor/nesbot/carbon/src/Carbon/Lang/ti.php index dd4f50101..ffd323694 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ti.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ti.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/ti_ER.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ti_ER.php b/vendor/nesbot/carbon/src/Carbon/Lang/ti_ER.php index 99aa6a8b9..310c51cce 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ti_ER.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ti_ER.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Ge'ez Frontier Foundation locales@geez.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ti_ET.php b/vendor/nesbot/carbon/src/Carbon/Lang/ti_ET.php index a85503867..024217f2f 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ti_ET.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ti_ET.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Ge'ez Frontier Foundation locales@geez.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tig.php b/vendor/nesbot/carbon/src/Carbon/Lang/tig.php index ebd711c20..186fe713c 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/tig.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tig.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/tig_ER.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tig_ER.php b/vendor/nesbot/carbon/src/Carbon/Lang/tig_ER.php index 04239e229..46887b05d 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/tig_ER.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tig_ER.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Ge'ez Frontier Foundation locales@geez.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tk.php b/vendor/nesbot/carbon/src/Carbon/Lang/tk.php index 16f79e310..d8f7d19d6 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/tk.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tk.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/tk_TM.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tk_TM.php b/vendor/nesbot/carbon/src/Carbon/Lang/tk_TM.php index bd62ee245..f949a4300 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/tk_TM.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tk_TM.php @@ -13,6 +13,7 @@ * Authors: * - Ghorban M. Tavakoly Pablo Saratxaga & Ghorban M. Tavakoly pablo@walon.org & gmt314@yahoo.com * - SuperManPHP + * - Maksat Meredow (isadma) */ $transformDiff = function ($input) { return strtr($input, [ @@ -29,7 +30,7 @@ return array_replace_recursive(require __DIR__.'/en.php', [ 'months_short' => ['Ýan', 'Few', 'Mar', 'Apr', 'Maý', 'Iýn', 'Iýl', 'Awg', 'Sen', 'Okt', 'Noý', 'Dek'], 'weekdays' => ['Duşenbe', 'Sişenbe', 'Çarşenbe', 'Penşenbe', 'Anna', 'Şenbe', 'Ýekşenbe'], 'weekdays_short' => ['Duş', 'Siş', 'Çar', 'Pen', 'Ann', 'Şen', 'Ýek'], - 'weekdays_min' => ['Duş', 'Siş', 'Çar', 'Pen', 'Ann', 'Şen', 'Ýek'], + 'weekdays_min' => ['Du', 'Si', 'Ça', 'Pe', 'An', 'Şe', 'Ýe'], 'first_day_of_week' => 1, 'day_of_first_week_of_year' => 1, @@ -37,9 +38,9 @@ return array_replace_recursive(require __DIR__.'/en.php', [ 'y' => ':count ýyl', 'a_year' => ':count ýyl', - 'month' => 'aý :count', - 'm' => 'aý :count', - 'a_month' => 'aý :count', + 'month' => ':count aý', + 'm' => ':count aý', + 'a_month' => ':count aý', 'week' => ':count hepde', 'w' => ':count hepde', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tl.php b/vendor/nesbot/carbon/src/Carbon/Lang/tl.php index ca4336b1b..b5a0a1677 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/tl.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tl.php @@ -28,6 +28,9 @@ return [ 's' => ':count seg.', 'ago' => ':time ang nakalipas', 'from_now' => 'sa loob ng :time', + 'diff_now' => 'ngayon', + 'diff_yesterday' => 'kahapon', + 'diff_tomorrow' => 'bukas', 'formats' => [ 'LT' => 'HH:mm', 'LTS' => 'HH:mm:ss', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tl_PH.php b/vendor/nesbot/carbon/src/Carbon/Lang/tl_PH.php index e8afc29cf..95f508c34 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/tl_PH.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tl_PH.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - François B * - Ian De La Cruz diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tn.php b/vendor/nesbot/carbon/src/Carbon/Lang/tn.php index c46bc47f9..f29bdf680 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/tn.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tn.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/tn_ZA.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tn_ZA.php b/vendor/nesbot/carbon/src/Carbon/Lang/tn_ZA.php index d222ba6b6..aada7db58 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/tn_ZA.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tn_ZA.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/to.php b/vendor/nesbot/carbon/src/Carbon/Lang/to.php index f8e35e1c9..20581bbac 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/to.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/to.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/to_TO.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/to_TO.php b/vendor/nesbot/carbon/src/Carbon/Lang/to_TO.php index f4ee8851f..335c69a85 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/to_TO.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/to_TO.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - International Components for Unicode akhilesh.k@samsung.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tpi.php b/vendor/nesbot/carbon/src/Carbon/Lang/tpi.php index ad1594122..7d38daed7 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/tpi.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tpi.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/tpi_PG.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tpi_PG.php b/vendor/nesbot/carbon/src/Carbon/Lang/tpi_PG.php index 66f85e09f..5f58c44c0 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/tpi_PG.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tpi_PG.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Samsung Electronics Co., Ltd. akhilesh.k@samsung.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tr.php b/vendor/nesbot/carbon/src/Carbon/Lang/tr.php index be7c39d5c..528ff3a8b 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/tr.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tr.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Josh Soref * - Alan Agius @@ -47,6 +47,11 @@ return [ 'from_now' => ':time sonra', 'after' => ':time sonra', 'before' => ':time önce', + 'diff_now' => 'şimdi', + 'diff_yesterday' => 'dün', + 'diff_tomorrow' => 'yarın', + 'diff_before_yesterday' => 'evvelsi gün', + 'diff_after_tomorrow' => 'öbür gün', 'formats' => [ 'LT' => 'HH:mm', 'LTS' => 'HH:mm:ss', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ts.php b/vendor/nesbot/carbon/src/Carbon/Lang/ts.php index d6c575b64..525736bfe 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ts.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ts.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/ts_ZA.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ts_ZA.php b/vendor/nesbot/carbon/src/Carbon/Lang/ts_ZA.php index ef76c1704..37a24ec49 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ts_ZA.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ts_ZA.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tt.php b/vendor/nesbot/carbon/src/Carbon/Lang/tt.php index 499e88028..d67d896ec 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/tt.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tt.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/tt_RU.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tt_RU.php b/vendor/nesbot/carbon/src/Carbon/Lang/tt_RU.php index 38bb582c2..38e42d054 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/tt_RU.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tt_RU.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Rinat Norkin Pablo Saratxaga, Rinat Norkin pablo@mandrakesoft.com, rinat@taif.ru */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tt_RU@iqtelif.php b/vendor/nesbot/carbon/src/Carbon/Lang/tt_RU@iqtelif.php index 545512e3a..16b8efb1f 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/tt_RU@iqtelif.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tt_RU@iqtelif.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Reshat Sabiq tatar.iqtelif.i18n@gmail.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ug_CN.php b/vendor/nesbot/carbon/src/Carbon/Lang/ug_CN.php index e91ece25a..deb828c50 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ug_CN.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ug_CN.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Kunal Marwaha * - Alim Boyaq diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/uk.php b/vendor/nesbot/carbon/src/Carbon/Lang/uk.php index e603dadde..6ca025d66 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/uk.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/uk.php @@ -178,7 +178,7 @@ return [ 'months' => ['січня', 'лютого', 'березня', 'квітня', 'травня', 'червня', 'липня', 'серпня', 'вересня', 'жовтня', 'листопада', 'грудня'], 'months_standalone' => ['січень', 'лютий', 'березень', 'квітень', 'травень', 'червень', 'липень', 'серпень', 'вересень', 'жовтень', 'листопад', 'грудень'], 'months_short' => ['січ', 'лют', 'бер', 'кві', 'тра', 'чер', 'лип', 'сер', 'вер', 'жов', 'лис', 'гру'], - 'months_regexp' => '/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/', + 'months_regexp' => '/(D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|L{2,4}|l{2,4})/', 'weekdays' => function (\Carbon\CarbonInterface $date, $format, $index) { static $words = [ 'nominative' => ['неділя', 'понеділок', 'вівторок', 'середа', 'четвер', 'п’ятниця', 'субота'], diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/unm.php b/vendor/nesbot/carbon/src/Carbon/Lang/unm.php index 2ede9f575..d3f19f069 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/unm.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/unm.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/unm_US.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/unm_US.php b/vendor/nesbot/carbon/src/Carbon/Lang/unm_US.php index bd8348636..fa5c374e3 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/unm_US.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/unm_US.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ur.php b/vendor/nesbot/carbon/src/Carbon/Lang/ur.php index 53dd94d48..272f0b650 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ur.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ur.php @@ -58,6 +58,9 @@ return [ 'from_now' => ':time بعد', 'after' => ':time بعد', 'before' => ':time پہلے', + 'diff_now' => 'اب', + 'diff_yesterday' => 'گزشتہ کل', + 'diff_tomorrow' => 'آئندہ کل', 'formats' => [ 'LT' => 'HH:mm', 'LTS' => 'HH:mm:ss', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ur_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/ur_IN.php index e0bd9a893..f81c84d39 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ur_IN.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ur_IN.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Red Hat, Pune bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ur_PK.php b/vendor/nesbot/carbon/src/Carbon/Lang/ur_PK.php index dc2733d1f..8cd593db6 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ur_PK.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ur_PK.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/uz.php b/vendor/nesbot/carbon/src/Carbon/Lang/uz.php index 1122d0aa1..0b81afe5b 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/uz.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/uz.php @@ -23,6 +23,7 @@ * - Max Melentiev * - Juanito Fatas * - Alisher Ulugbekov + * - Ergashev Adizbek */ return [ 'year' => ':count йил', @@ -40,16 +41,17 @@ return [ 'hour' => ':count соат', 'a_hour' => '{1}бир соат|:count соат', 'h' => ':count с', - 'minute' => ':count дакика', - 'a_minute' => '{1}бир дакика|:count дакика', + 'minute' => ':count дақиқа', + 'a_minute' => '{1}бир дақиқа|:count дақиқа', 'min' => ':count д', - 'second' => ':count фурсат', - 'a_second' => '{1}фурсат|:count фурсат', - 's' => ':count ф', - 'ago' => 'Бир неча :time олдин', + 'second' => ':count сония', + 'a_second' => '{1}сония|:count сония', + 's' => ':count с', + 'ago' => ':time аввал', 'from_now' => 'Якин :time ичида', - 'after' => ':time пас аз он', - 'before' => ':time пеш аз он', + 'after' => ':timeдан кейин', + 'before' => ':time олдин', + 'diff_now' => 'ҳозир', 'diff_yesterday' => 'Кеча', 'diff_tomorrow' => 'Эртага', 'formats' => [ @@ -75,6 +77,6 @@ return [ 'weekdays_min' => ['як', 'ду', 'се', 'чо', 'па', 'жу', 'ша'], 'first_day_of_week' => 1, 'day_of_first_week_of_year' => 1, - 'meridiem' => ['ertalab', 'kechasi'], - 'list' => [', ', ' va '], + 'meridiem' => ['эрталаб', 'кечаси'], + 'list' => [', ', ' ва '], ]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/uz_Latn.php b/vendor/nesbot/carbon/src/Carbon/Lang/uz_Latn.php index 4f3e09297..3c63e633c 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/uz_Latn.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/uz_Latn.php @@ -13,6 +13,7 @@ * Authors: * - Josh Soref * - Rasulbek + * - Ilyosjon Kamoldinov (ilyosjon09) */ return [ 'year' => ':count yil', @@ -36,8 +37,10 @@ return [ 'second' => ':count soniya', 'a_second' => '{1}soniya|:count soniya', 's' => ':count son.', - 'ago' => 'Bir necha :time oldin', + 'ago' => ':time avval', 'from_now' => 'Yaqin :time ichida', + 'after' => ':timedan keyin', + 'before' => ':time oldin', 'diff_yesterday' => 'Kecha', 'diff_tomorrow' => 'Ertaga', 'formats' => [ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/uz_UZ.php b/vendor/nesbot/carbon/src/Carbon/Lang/uz_UZ.php index bdbf5a0cb..d41bfee27 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/uz_UZ.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/uz_UZ.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Bobir Ismailov Bobir Ismailov, Pablo Saratxaga, Mashrab Kuvatov bobir_is@yahoo.com, pablo@mandrakesoft.com, kmashrab@uni-bremen.de */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/uz_UZ@cyrillic.php b/vendor/nesbot/carbon/src/Carbon/Lang/uz_UZ@cyrillic.php index 7f34bd4e7..2fa967c94 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/uz_UZ@cyrillic.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/uz_UZ@cyrillic.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Mashrab Kuvatov Mashrab Kuvatov, Pablo Saratxaga kmashrab@uni-bremen.de, pablo@mandrakesoft.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ve.php b/vendor/nesbot/carbon/src/Carbon/Lang/ve.php index eb4675738..7f10aeb95 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ve.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ve.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/ve_ZA.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ve_ZA.php b/vendor/nesbot/carbon/src/Carbon/Lang/ve_ZA.php index ae61fa4e6..5eb2b9128 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ve_ZA.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ve_ZA.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/vi.php b/vendor/nesbot/carbon/src/Carbon/Lang/vi.php index e8a632f43..2a12a11c5 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/vi.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/vi.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - François B * - Andre Polykanine A.K.A. Menelion Elensúlë @@ -41,6 +41,9 @@ return [ 'from_now' => ':time tới', 'after' => ':time sau', 'before' => ':time trước', + 'diff_now' => 'bây giờ', + 'diff_yesterday' => 'Hôm qua', + 'diff_tomorrow' => 'Ngày mai', 'formats' => [ 'LT' => 'HH:mm', 'LTS' => 'HH:mm:ss', diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/wa.php b/vendor/nesbot/carbon/src/Carbon/Lang/wa.php index f630d91bc..f6dc4ccd3 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/wa.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/wa.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/wa_BE.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/wa_BE.php b/vendor/nesbot/carbon/src/Carbon/Lang/wa_BE.php index 2138c26a6..a76d80d93 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/wa_BE.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/wa_BE.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Djan SACRE Pablo Saratxaga pablo@mandrakesoft.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/wae.php b/vendor/nesbot/carbon/src/Carbon/Lang/wae.php index 7ba087a01..bf57f23e6 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/wae.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/wae.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/wae_CH.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/wae_CH.php b/vendor/nesbot/carbon/src/Carbon/Lang/wae_CH.php index 39e7b11e5..2af50b4b2 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/wae_CH.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/wae_CH.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Walser Translation Team ml@translate-wae.ch */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/wal.php b/vendor/nesbot/carbon/src/Carbon/Lang/wal.php index fc50ff317..e8ec40ff6 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/wal.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/wal.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/wal_ET.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/wal_ET.php b/vendor/nesbot/carbon/src/Carbon/Lang/wal_ET.php index 344705d87..a4e619a87 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/wal_ET.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/wal_ET.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Ge'ez Frontier Foundation locales@geez.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/wo.php b/vendor/nesbot/carbon/src/Carbon/Lang/wo.php index c4b1b60c9..74b95df0a 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/wo.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/wo.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/wo_SN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/wo_SN.php b/vendor/nesbot/carbon/src/Carbon/Lang/wo_SN.php index 9a55961e6..f8a85b3e4 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/wo_SN.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/wo_SN.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - The Debian Project Christian Perrier bubulle@debian.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/xh.php b/vendor/nesbot/carbon/src/Carbon/Lang/xh.php index 30c731b42..e88c78d9d 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/xh.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/xh.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/xh_ZA.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/xh_ZA.php b/vendor/nesbot/carbon/src/Carbon/Lang/xh_ZA.php index 632f542c1..910f8311e 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/xh_ZA.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/xh_ZA.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/yi.php b/vendor/nesbot/carbon/src/Carbon/Lang/yi.php index 3beb498ba..8f3202294 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/yi.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/yi.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/yi_US.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/yi_US.php b/vendor/nesbot/carbon/src/Carbon/Lang/yi_US.php index 33ee30ac4..f764d36f6 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/yi_US.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/yi_US.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - http://www.uyip.org/ Pablo Saratxaga pablo@mandrakesoft.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/yue.php b/vendor/nesbot/carbon/src/Carbon/Lang/yue.php index 597ca6804..ce233a4f8 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/yue.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/yue.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/yue_HK.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/yue_HK.php b/vendor/nesbot/carbon/src/Carbon/Lang/yue_HK.php index 5a0c6a24e..4e7d5c368 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/yue_HK.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/yue_HK.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/yuw.php b/vendor/nesbot/carbon/src/Carbon/Lang/yuw.php index 6440e325c..8efdc9378 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/yuw.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/yuw.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/yuw_PG.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/yuw_PG.php b/vendor/nesbot/carbon/src/Carbon/Lang/yuw_PG.php index 765d9c7de..b99ad2e8e 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/yuw_PG.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/yuw_PG.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Information from native speakers Hannah Sarvasy nungon.localization@gmail.com */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/zgh.php b/vendor/nesbot/carbon/src/Carbon/Lang/zgh.php index a65ebbde2..2d8eb46d5 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/zgh.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/zgh.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - BAKTETE Miloud */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/zh_CN.php b/vendor/nesbot/carbon/src/Carbon/Lang/zh_CN.php index cbe33d830..9c05d5a8d 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/zh_CN.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/zh_CN.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - monkeycon * - François B diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hans.php b/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hans.php index 1a8209564..b047481b8 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hans.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hans.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - monkeycon * - François B @@ -43,6 +43,7 @@ return [ 'from_now' => ':time后', 'after' => ':time后', 'before' => ':time前', + 'diff_now' => '现在', 'diff_yesterday' => '昨天', 'diff_tomorrow' => '明天', 'formats' => [ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hant.php b/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hant.php index bb613963d..9080c28a8 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hant.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hant.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Adam * - monkeycon @@ -45,6 +45,7 @@ return [ 'from_now' => ':time後', 'after' => ':time後', 'before' => ':time前', + 'diff_now' => '現在', 'diff_yesterday' => '昨天', 'diff_tomorrow' => '明天', 'formats' => [ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/zh_SG.php b/vendor/nesbot/carbon/src/Carbon/Lang/zh_SG.php index 78cf68015..c451a562c 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/zh_SG.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/zh_SG.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/zh_YUE.php b/vendor/nesbot/carbon/src/Carbon/Lang/zh_YUE.php index bd10ecda4..b0d9ba862 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/zh_YUE.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/zh_YUE.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org */ diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/zu.php b/vendor/nesbot/carbon/src/Carbon/Lang/zu.php index f52cadb31..9a6cce02c 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/zu.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/zu.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Unknown default region, use the first alphabetically. */ return require __DIR__.'/zu_ZA.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/zu_ZA.php b/vendor/nesbot/carbon/src/Carbon/Lang/zu_ZA.php index cb8dd5d71..6bfb72f0a 100644 --- a/vendor/nesbot/carbon/src/Carbon/Lang/zu_ZA.php +++ b/vendor/nesbot/carbon/src/Carbon/Lang/zu_ZA.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * Authors: * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za */ diff --git a/vendor/nesbot/carbon/src/Carbon/List/regions.php b/vendor/nesbot/carbon/src/Carbon/List/regions.php index 7106df23b..8ab8a9e3a 100644 --- a/vendor/nesbot/carbon/src/Carbon/List/regions.php +++ b/vendor/nesbot/carbon/src/Carbon/List/regions.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -/** +/* * ISO 3166-2 */ return [ diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/Boundaries.php b/vendor/nesbot/carbon/src/Carbon/Traits/Boundaries.php index 608dbb508..7bc43d566 100644 --- a/vendor/nesbot/carbon/src/Carbon/Traits/Boundaries.php +++ b/vendor/nesbot/carbon/src/Carbon/Traits/Boundaries.php @@ -223,7 +223,7 @@ trait Boundaries } /** - * Resets the date to the first day of the century and the time to 00:00:00 + * Resets the date to the first day of the millennium and the time to 00:00:00 * * @example * ``` @@ -240,7 +240,7 @@ trait Boundaries } /** - * Resets the date to end of the century and time to 23:59:59.999999 + * Resets the date to end of the millennium and time to 23:59:59.999999 * * @example * ``` diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/Comparison.php b/vendor/nesbot/carbon/src/Carbon/Traits/Comparison.php index 6dd745f21..091585f0a 100644 --- a/vendor/nesbot/carbon/src/Carbon/Traits/Comparison.php +++ b/vendor/nesbot/carbon/src/Carbon/Traits/Comparison.php @@ -315,12 +315,16 @@ trait Comparison /** * Determines if the instance is between two others. * + * The third argument allow you to specify if bounds are included or not (true by default) + * but for when you including/excluding bounds may produce different results in your application, + * we recommend to use the explicit methods ->betweenIncluded() or ->betweenExcluded() instead. + * * @example * ``` * Carbon::parse('2018-07-25')->between('2018-07-14', '2018-08-01'); // true * Carbon::parse('2018-07-25')->between('2018-08-01', '2018-08-20'); // false - * Carbon::parse('2018-07-25')->between('2018-07-25', '2018-08-01'); // false - * Carbon::parse('2018-07-25')->between('2018-07-25', '2018-08-01', true); // true + * Carbon::parse('2018-07-25')->between('2018-07-25', '2018-08-01'); // true + * Carbon::parse('2018-07-25')->between('2018-07-25', '2018-08-01', false); // false * ``` * * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1 @@ -345,6 +349,26 @@ trait Comparison return $this->greaterThan($date1) && $this->lessThan($date2); } + /** + * Determines if the instance is between two others, bounds included. + * + * @example + * ``` + * Carbon::parse('2018-07-25')->betweenIncluded('2018-07-14', '2018-08-01'); // true + * Carbon::parse('2018-07-25')->betweenIncluded('2018-08-01', '2018-08-20'); // false + * Carbon::parse('2018-07-25')->betweenIncluded('2018-07-25', '2018-08-01'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1 + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2 + * + * @return bool + */ + public function betweenIncluded($date1, $date2): bool + { + return $this->between($date1, $date2, true); + } + /** * Determines if the instance is between two others, bounds excluded. * @@ -372,8 +396,8 @@ trait Comparison * ``` * Carbon::parse('2018-07-25')->isBetween('2018-07-14', '2018-08-01'); // true * Carbon::parse('2018-07-25')->isBetween('2018-08-01', '2018-08-20'); // false - * Carbon::parse('2018-07-25')->isBetween('2018-07-25', '2018-08-01'); // false - * Carbon::parse('2018-07-25')->isBetween('2018-07-25', '2018-08-01', true); // true + * Carbon::parse('2018-07-25')->isBetween('2018-07-25', '2018-08-01'); // true + * Carbon::parse('2018-07-25')->isBetween('2018-07-25', '2018-08-01', false); // false * ``` * * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1 diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php b/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php index aeaa0dd23..2655e2d19 100644 --- a/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php +++ b/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php @@ -13,11 +13,11 @@ namespace Carbon\Traits; use Carbon\Carbon; use Carbon\CarbonImmutable; use Carbon\CarbonInterface; -use Carbon\CarbonTimeZone; use Carbon\Exceptions\InvalidDateException; use Carbon\Translator; use Closure; use DateTimeInterface; +use DateTimeZone; use Exception; use InvalidArgumentException; @@ -32,6 +32,8 @@ use InvalidArgumentException; */ trait Creator { + use ObjectInitialisation; + /** * The errors that can occur. * @@ -45,17 +47,19 @@ trait Creator * Please see the testing aids section (specifically static::setTestNow()) * for more on the possibility of this constructor returning a test instance. * - * @param string|null $time - * @param \DateTimeZone|string|null $tz + * @param string|null $time + * @param DateTimeZone|string|null $tz */ public function __construct($time = null, $tz = null) { + if ($time instanceof DateTimeInterface) { + $time = $this->constructTimezoneFromDateTime($time, $tz)->format('Y-m-d H:i:s.u'); + } + if (is_int($time)) { $time = "@$time"; } - $originalTz = $tz; - // If the class has a test now set and we are trying to create a now() // instance then override as required $isNow = empty($time) || $time === 'now'; @@ -68,16 +72,15 @@ trait Creator static::mockConstructorParameters($time, $tz); } - /** @var CarbonTimeZone $timezone */ - $timezone = $this->autoDetectTimeZone($tz, $originalTz); - // Work-around for PHP bug https://bugs.php.net/bug.php?id=67127 if (strpos((string) .1, '.') === false) { $locale = setlocale(LC_NUMERIC, '0'); setlocale(LC_NUMERIC, 'C'); } - parent::__construct($time ?: 'now', $timezone); + parent::__construct($time ?: 'now', static::safeCreateDateTimeZone($tz) ?: null); + + $this->constructedObjectId = spl_object_hash($this); if (isset($locale)) { setlocale(LC_NUMERIC, $locale); @@ -86,10 +89,43 @@ trait Creator static::setLastErrors(parent::getLastErrors()); } + /** + * Get timezone from a datetime instance. + * + * @param DateTimeInterface $date + * @param DateTimeZone|string|null $tz + * + * @return DateTimeInterface + */ + private function constructTimezoneFromDateTime(DateTimeInterface $date, &$tz) + { + if ($tz !== null) { + $safeTz = static::safeCreateDateTimeZone($tz); + + if ($safeTz) { + return $date->setTimezone($safeTz); + } + + return $date; + } + + $tz = $date->getTimezone(); + + return $date; + } + + /** + * Update constructedObjectId on cloned. + */ + public function __clone() + { + $this->constructedObjectId = spl_object_hash($this); + } + /** * Create a Carbon instance from a DateTime one. * - * @param \DateTimeInterface $date + * @param DateTimeInterface $date * * @return static */ @@ -104,7 +140,13 @@ trait Creator $instance = new static($date->format('Y-m-d H:i:s.u'), $date->getTimezone()); if ($date instanceof CarbonInterface || $date instanceof Options) { - $instance->settings($date->getSettings()); + $settings = $date->getSettings(); + + if (!$date->hasLocalTranslator()) { + unset($settings['locale']); + } + + $instance->settings($settings); } return $instance; @@ -117,8 +159,8 @@ trait Creator * as it allows you to do Carbon::parse('Monday next week')->fn() rather * than (new Carbon('Monday next week'))->fn(). * - * @param string|null $time - * @param \DateTimeZone|string|null $tz + * @param string|null $time + * @param DateTimeZone|string|null $tz * * @return static */ @@ -146,8 +188,8 @@ trait Creator * as it allows you to do Carbon::parse('Monday next week')->fn() rather * than (new Carbon('Monday next week'))->fn(). * - * @param string|null $time - * @param \DateTimeZone|string|null $tz + * @param string|null $time + * @param DateTimeZone|string|null $tz * * @return static */ @@ -169,9 +211,9 @@ trait Creator /** * Create a carbon instance from a localized string (in French, Japanese, Arabic, etc.). * - * @param string $time - * @param string $locale - * @param \DateTimeZone|string|null $tz + * @param string $time + * @param string $locale + * @param DateTimeZone|string|null $tz * * @return static */ @@ -183,7 +225,7 @@ trait Creator /** * Get a Carbon instance for the current date and time. * - * @param \DateTimeZone|string|null $tz + * @param DateTimeZone|string|null $tz * * @return static */ @@ -195,7 +237,7 @@ trait Creator /** * Create a Carbon instance for today. * - * @param \DateTimeZone|string|null $tz + * @param DateTimeZone|string|null $tz * * @return static */ @@ -207,7 +249,7 @@ trait Creator /** * Create a Carbon instance for tomorrow. * - * @param \DateTimeZone|string|null $tz + * @param DateTimeZone|string|null $tz * * @return static */ @@ -219,7 +261,7 @@ trait Creator /** * Create a Carbon instance for yesterday. * - * @param \DateTimeZone|string|null $tz + * @param DateTimeZone|string|null $tz * * @return static */ @@ -294,13 +336,13 @@ trait Creator * If $hour is not null then the default values for $minute and $second * will be 0. * - * @param int|null $year - * @param int|null $month - * @param int|null $day - * @param int|null $hour - * @param int|null $minute - * @param int|null $second - * @param \DateTimeZone|string|null $tz + * @param int|null $year + * @param int|null $month + * @param int|null $day + * @param int|null $hour + * @param int|null $minute + * @param int|null $second + * @param DateTimeZone|string|null $tz * * @throws \InvalidArgumentException * @@ -309,7 +351,7 @@ trait Creator public static function create($year = 0, $month = 1, $day = 1, $hour = 0, $minute = 0, $second = 0, $tz = null) { if (is_string($year) && !is_numeric($year)) { - return static::parse($year, $tz); + return static::parse($year, $tz ?: (is_string($month) || $month instanceof DateTimeZone ? $month : null)); } $defaults = null; @@ -379,13 +421,13 @@ trait Creator * If one of the set values is not valid, an \InvalidArgumentException * will be thrown. * - * @param int|null $year - * @param int|null $month - * @param int|null $day - * @param int|null $hour - * @param int|null $minute - * @param int|null $second - * @param \DateTimeZone|string|null $tz + * @param int|null $year + * @param int|null $month + * @param int|null $day + * @param int|null $hour + * @param int|null $minute + * @param int|null $second + * @param DateTimeZone|string|null $tz * * @throws \Carbon\Exceptions\InvalidDateException|\InvalidArgumentException * @@ -423,10 +465,10 @@ trait Creator /** * Create a Carbon instance from just a date. The time portion is set to now. * - * @param int|null $year - * @param int|null $month - * @param int|null $day - * @param \DateTimeZone|string|null $tz + * @param int|null $year + * @param int|null $month + * @param int|null $day + * @param DateTimeZone|string|null $tz * * @throws \InvalidArgumentException * @@ -440,10 +482,10 @@ trait Creator /** * Create a Carbon instance from just a date. The time portion is set to midnight. * - * @param int|null $year - * @param int|null $month - * @param int|null $day - * @param \DateTimeZone|string|null $tz + * @param int|null $year + * @param int|null $month + * @param int|null $day + * @param DateTimeZone|string|null $tz * * @return static */ @@ -455,10 +497,10 @@ trait Creator /** * Create a Carbon instance from just a time. The date portion is set to today. * - * @param int|null $hour - * @param int|null $minute - * @param int|null $second - * @param \DateTimeZone|string|null $tz + * @param int|null $hour + * @param int|null $minute + * @param int|null $second + * @param DateTimeZone|string|null $tz * * @throws \InvalidArgumentException * @@ -472,8 +514,8 @@ trait Creator /** * Create a Carbon instance from a time string. The date portion is set to today. * - * @param string $time - * @param \DateTimeZone|string|null $tz + * @param string $time + * @param DateTimeZone|string|null $tz * * @throws \InvalidArgumentException * @@ -485,9 +527,9 @@ trait Creator } /** - * @param string $format Datetime format - * @param string $time - * @param \DateTimeZone|string|false|null $originalTz + * @param string $format Datetime format + * @param string $time + * @param DateTimeZone|string|false|null $originalTz * * @return \DateTimeInterface|false */ @@ -520,9 +562,9 @@ trait Creator /** * Create a Carbon instance from a specific format. * - * @param string $format Datetime format - * @param string $time - * @param \DateTimeZone|string|false|null $tz + * @param string $format Datetime format + * @param string $time + * @param DateTimeZone|string|false|null $tz * * @throws InvalidArgumentException * @@ -587,9 +629,9 @@ trait Creator /** * Create a Carbon instance from a specific format. * - * @param string $format Datetime format - * @param string $time - * @param \DateTimeZone|string|false|null $tz + * @param string $format Datetime format + * @param string $time + * @param DateTimeZone|string|false|null $tz * * @throws InvalidArgumentException * @@ -615,7 +657,7 @@ trait Creator * * @param string $format Datetime format * @param string $time - * @param \DateTimeZone|string|false|null $tz optional timezone + * @param DateTimeZone|string|false|null $tz optional timezone * @param string|null $locale locale to be used for LTS, LT, LL, LLL, etc. macro-formats (en by fault, unneeded if no such macro-format in use) * @param \Symfony\Component\Translation\TranslatorInterface $translator optional custom translator to use for macro-formats * @@ -755,10 +797,10 @@ trait Creator /** * Create a Carbon instance from a specific format and a string in a given language. * - * @param string $format Datetime format - * @param string $locale - * @param string $time - * @param \DateTimeZone|string|false|null $tz + * @param string $format Datetime format + * @param string $locale + * @param string $time + * @param DateTimeZone|string|false|null $tz * * @throws InvalidArgumentException * @@ -772,10 +814,10 @@ trait Creator /** * Create a Carbon instance from a specific ISO format and a string in a given language. * - * @param string $format Datetime ISO format - * @param string $locale - * @param string $time - * @param \DateTimeZone|string|false|null $tz + * @param string $format Datetime ISO format + * @param string $locale + * @param string $time + * @param DateTimeZone|string|false|null $tz * * @throws InvalidArgumentException * diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/Date.php b/vendor/nesbot/carbon/src/Carbon/Traits/Date.php index e332375aa..8e5017bd2 100644 --- a/vendor/nesbot/carbon/src/Carbon/Traits/Date.php +++ b/vendor/nesbot/carbon/src/Carbon/Traits/Date.php @@ -68,6 +68,8 @@ use RuntimeException; * @property-read int $daysInMonth number of days in the given month * @property-read string $latinMeridiem "am"/"pm" (Ante meridiem or Post meridiem latin lowercase mark) * @property-read string $latinUpperMeridiem "AM"/"PM" (Ante meridiem or Post meridiem latin uppercase mark) + * @property-read string $timezoneAbbreviatedName the current timezone abbreviated name + * @property-read string $tzAbbrName alias of $timezoneAbbreviatedName * @property-read string $dayName long name of weekday translated according to Carbon locale, in english if no translation available for current language * @property-read string $shortDayName short name of weekday translated according to Carbon locale, in english if no translation available for current language * @property-read string $minDayName very short name of weekday translated according to Carbon locale, in english if no translation available for current language @@ -92,8 +94,6 @@ use RuntimeException; * @property-read bool $utc checks if the timezone is UTC, true if UTC, false otherwise * @property-read string $timezoneName the current timezone name * @property-read string $tzName alias of $timezoneName - * @property-read string $timezoneAbbreviatedName the current timezone abbreviated name - * @property-read string $tzAbbrName alias of $timezoneAbbreviatedName * @property-read string $locale locale of the current instance * * @method bool isUtc() Check if the current instance has UTC timezone. (Both isUtc and isUTC cases are valid.) @@ -525,6 +525,7 @@ trait Date use Macro; use Modifiers; use Mutability; + use ObjectInitialisation; use Options; use Rounding; use Serialization; @@ -540,19 +541,19 @@ trait Date */ protected static $days = [ // @call isDayOfWeek - self::SUNDAY => 'Sunday', + CarbonInterface::SUNDAY => 'Sunday', // @call isDayOfWeek - self::MONDAY => 'Monday', + CarbonInterface::MONDAY => 'Monday', // @call isDayOfWeek - self::TUESDAY => 'Tuesday', + CarbonInterface::TUESDAY => 'Tuesday', // @call isDayOfWeek - self::WEDNESDAY => 'Wednesday', + CarbonInterface::WEDNESDAY => 'Wednesday', // @call isDayOfWeek - self::THURSDAY => 'Thursday', + CarbonInterface::THURSDAY => 'Thursday', // @call isDayOfWeek - self::FRIDAY => 'Friday', + CarbonInterface::FRIDAY => 'Friday', // @call isDayOfWeek - self::SATURDAY => 'Saturday', + CarbonInterface::SATURDAY => 'Saturday', ]; /** @@ -615,29 +616,6 @@ trait Date return CarbonTimeZone::instance($object, $objectDump); } - /** - * Creates a DateTimeZone from a string, DateTimeZone or integer offset then convert it as region timezone - * if integer. - * - * @param DateTimeZone|string|int|null $object - * @param DateTimeZone|string|int|null $originalObject if different - * - * @throws \InvalidArgumentException - * - * @return CarbonTimeZone|false - */ - protected function autoDetectTimeZone($object, $originalObject = null) - { - /** @var CarbonTimeZone $timezone */ - $timezone = CarbonTimeZone::instance($object); - - if ($timezone && is_int($originalObject ?: $object)) { - $timezone = $timezone->toRegionTimeZone($this); - } - - return $timezone; - } - /** * Get the TimeZone associated with the Carbon instance (as CarbonTimeZone). * @@ -851,6 +829,10 @@ trait Date 'localeMonth' => '%B', // @property string the abbreviated month in current locale LC_TIME 'shortLocaleMonth' => '%b', + // @property-read string $timezoneAbbreviatedName the current timezone abbreviated name + 'timezoneAbbreviatedName' => 'T', + // @property-read string $tzAbbrName alias of $timezoneAbbreviatedName + 'tzAbbrName' => 'T', ]; switch (true) { @@ -1013,18 +995,15 @@ trait Date case $name === 'timezoneName' || $name === 'tzName': return $this->getTimezone()->getName(); - // @property-read string $timezoneAbbreviatedName the current timezone abbreviated name - // @property-read string $tzAbbrName alias of $timezoneAbbreviatedName - case $name === 'timezoneAbbreviatedName' || $name === 'tzAbbrName': - return CarbonTimeZone::instance($this->getTimezone())->getAbbr($this->dst); - // @property-read string locale of the current instance case $name === 'locale': - return $this->getLocalTranslator()->getLocale(); + return $this->getTranslatorLocale(); default: - if (static::hasMacro($macro = 'get'.ucfirst($name))) { - return $this->$macro(); + $macro = $this->getLocalMacro('get'.ucfirst($name)); + + if ($macro) { + return $this->executeCallableWithContext($macro); } throw new InvalidArgumentException(sprintf("Unknown getter '%s'", $name)); @@ -1061,7 +1040,13 @@ trait Date */ public function __set($name, $value) { - $this->set($name, $value); + if ($this->constructedObjectId === spl_object_hash($this)) { + $this->set($name, $value); + + return; + } + + $this->$name = $value; } /** @@ -1180,8 +1165,10 @@ trait Date break; default: - if (static::hasMacro($macro = 'set'.ucfirst($name))) { - $this->$macro($value); + $macro = $this->getLocalMacro('set'.ucfirst($name)); + + if ($macro) { + $this->executeCallableWithContext($macro, $value); break; } @@ -1529,13 +1516,7 @@ trait Date */ public function setTimezone($value) { - /** @var static $date */ - $date = parent::setTimezone(static::safeCreateDateTimeZone($value)); - // https://bugs.php.net/bug.php?id=72338 - // just workaround on this bug - $date->getTimestamp(); - - return $date; + return parent::setTimezone(static::safeCreateDateTimeZone($value)); } /** @@ -1930,7 +1911,7 @@ trait Date 'YYYYYY' => function (CarbonInterface $date) { return ($date->year < 0 ? '' : '+').$date->getPaddedUnit('year', 6); }, - 'z' => 'tzAbbrName', + 'z' => ['rawFormat', ['T']], 'zz' => 'tzName', 'Z' => ['getOffsetString', []], 'ZZ' => ['getOffsetString', ['']], @@ -2417,6 +2398,13 @@ trait Date return call_user_func_array($macro, $parameters); } + protected function executeCallableWithContext($macro, ...$parameters) + { + return static::bindMacroContext($this, function () use (&$macro, &$parameters) { + return $this->executeCallable($macro, ...$parameters); + }); + } + protected static function getGenericMacros() { foreach (static::$globalGenericMacros as $list) { @@ -2568,7 +2556,7 @@ trait Date try { return $this->isCurrentUnit(strtolower(substr($unit, 9))); } catch (BadUnitException | BadMethodCallException $exception) { - // Try macros + // Try next } } @@ -2578,12 +2566,14 @@ trait Date return $this->range($parameters[0] ?? $this, $parameters[1] ?? 1, $unit); } catch (InvalidArgumentException $exception) { - // Try next + // Try macros } } return static::bindMacroContext($this, function () use (&$method, &$parameters) { - if (!static::hasMacro($method)) { + $macro = $this->getLocalMacro($method); + + if (!$macro) { foreach ([$this->localGenericMacros ?: [], static::getGenericMacros()] as $list) { foreach ($list as $callback) { try { @@ -2601,7 +2591,7 @@ trait Date return null; } - return $this->executeCallable(($this->localMacros ?? [])[$method] ?? static::$globalMacros[$method], ...$parameters); + return $this->executeCallable($macro, ...$parameters); }); } } diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/Difference.php b/vendor/nesbot/carbon/src/Carbon/Traits/Difference.php index 680d773bb..a3db60514 100644 --- a/vendor/nesbot/carbon/src/Carbon/Traits/Difference.php +++ b/vendor/nesbot/carbon/src/Carbon/Traits/Difference.php @@ -151,7 +151,20 @@ trait Difference } /** - * Get the difference in months + * Get the difference in quarters rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInQuarters($date = null, $absolute = true) + { + return (int) ($this->diffInMonths($date, $absolute) / static::MONTHS_PER_QUARTER); + } + + /** + * Get the difference in months rounded down. * * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date * @param bool $absolute Get the absolute of the difference @@ -166,7 +179,7 @@ trait Difference } /** - * Get the difference in weeks + * Get the difference in weeks rounded down. * * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date * @param bool $absolute Get the absolute of the difference @@ -179,7 +192,7 @@ trait Difference } /** - * Get the difference in days + * Get the difference in days rounded down. * * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date * @param bool $absolute Get the absolute of the difference @@ -192,7 +205,7 @@ trait Difference } /** - * Get the difference in days using a filter closure + * Get the difference in days using a filter closure rounded down. * * @param Closure $callback * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date @@ -206,7 +219,7 @@ trait Difference } /** - * Get the difference in hours using a filter closure + * Get the difference in hours using a filter closure rounded down. * * @param Closure $callback * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date @@ -220,7 +233,7 @@ trait Difference } /** - * Get the difference by the given interval using a filter closure + * Get the difference by the given interval using a filter closure. * * @param CarbonInterval $ci An interval to traverse by * @param Closure $callback @@ -248,7 +261,7 @@ trait Difference } /** - * Get the difference in weekdays + * Get the difference in weekdays rounded down. * * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date * @param bool $absolute Get the absolute of the difference @@ -263,7 +276,7 @@ trait Difference } /** - * Get the difference in weekend days using a filter + * Get the difference in weekend days using a filter rounded down. * * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date * @param bool $absolute Get the absolute of the difference @@ -278,7 +291,7 @@ trait Difference } /** - * Get the difference in hours. + * Get the difference in hours rounded down. * * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date * @param bool $absolute Get the absolute of the difference @@ -291,7 +304,7 @@ trait Difference } /** - * Get the difference in hours using timestamps. + * Get the difference in hours rounded down using timestamps. * * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date * @param bool $absolute Get the absolute of the difference @@ -304,7 +317,7 @@ trait Difference } /** - * Get the difference in minutes. + * Get the difference in minutes rounded down. * * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date * @param bool $absolute Get the absolute of the difference @@ -317,7 +330,7 @@ trait Difference } /** - * Get the difference in minutes using timestamps. + * Get the difference in minutes rounded down using timestamps. * * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date * @param bool $absolute Get the absolute of the difference @@ -330,7 +343,7 @@ trait Difference } /** - * Get the difference in seconds. + * Get the difference in seconds rounded down. * * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date * @param bool $absolute Get the absolute of the difference @@ -373,7 +386,7 @@ trait Difference } /** - * Get the difference in milliseconds. + * Get the difference in milliseconds rounded down. * * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date * @param bool $absolute Get the absolute of the difference @@ -421,7 +434,7 @@ trait Difference } /** - * Get the difference in milliseconds using timestamps. + * Get the difference in milliseconds rounded down using timestamps. * * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date * @param bool $absolute Get the absolute of the difference diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/Localization.php b/vendor/nesbot/carbon/src/Carbon/Traits/Localization.php index 07d4c8ec7..4eb4f4ae8 100644 --- a/vendor/nesbot/carbon/src/Carbon/Traits/Localization.php +++ b/vendor/nesbot/carbon/src/Carbon/Traits/Localization.php @@ -11,12 +11,15 @@ namespace Carbon\Traits; use Carbon\CarbonInterface; +use Carbon\Exceptions\NotLocaleAwareException; use Carbon\Language; use Carbon\Translator; use Closure; use InvalidArgumentException; use Symfony\Component\Translation\TranslatorBagInterface; use Symfony\Component\Translation\TranslatorInterface; +use Symfony\Contracts\Translation\LocaleAwareInterface; +use Symfony\Contracts\Translation\TranslatorInterface as ContractsTranslatorInterface; if (!interface_exists('Symfony\\Component\\Translation\\TranslatorInterface')) { class_alias( @@ -135,6 +138,16 @@ trait Localization static::$translator = $translator; } + /** + * Return true if the current instance has its own translator. + * + * @return bool + */ + public function hasLocalTranslator() + { + return isset($this->localTranslator); + } + /** * Get the translator of the current instance or the default if none set. * @@ -177,7 +190,11 @@ trait Localization ); } - $result = $translator->getCatalogue($locale ?? $translator->getLocale())->get($key); + if (!$locale && $translator instanceof LocaleAwareInterface) { + $locale = $translator->getLocale(); + } + + $result = $translator->getCatalogue($locale)->get($key); return $result === $key ? $default : $result; } @@ -222,9 +239,9 @@ trait Localization } // @codeCoverageIgnoreStart - $choice = method_exists($translator, 'transChoice') - ? $translator->transChoice($key, $number, $parameters) - : $translator->trans($key, $parameters); + $choice = $translator instanceof ContractsTranslatorInterface + ? $translator->trans($key, $parameters) + : $translator->transChoice($key, $number, $parameters); // @codeCoverageIgnoreEnd return (string) $choice; @@ -416,7 +433,7 @@ trait Localization */ public function translateTimeStringTo($timeString, $to = null) { - return static::translateTimeString($timeString, $this->getLocalTranslator()->getLocale(), $to); + return static::translateTimeString($timeString, $this->getTranslatorLocale(), $to); } /** @@ -430,10 +447,10 @@ trait Localization public function locale(string $locale = null, ...$fallbackLocales) { if ($locale === null) { - return $this->getLocalTranslator()->getLocale(); + return $this->getTranslatorLocale(); } - if (!$this->localTranslator || $this->localTranslator->getLocale() !== $locale) { + if (!$this->localTranslator || $this->getTranslatorLocale($this->localTranslator) !== $locale) { $translator = Translator::get($locale); if (!empty($fallbackLocales)) { @@ -461,7 +478,7 @@ trait Localization */ public static function getLocale() { - return static::translator()->getLocale(); + return static::getLocaleAwareTranslator()->getLocale(); } /** @@ -474,7 +491,7 @@ trait Localization */ public static function setLocale($locale) { - return static::translator()->setLocale($locale) !== false; + return static::getLocaleAwareTranslator()->setLocale($locale) !== false; } /** @@ -654,7 +671,7 @@ trait Localization */ public static function getAvailableLocales() { - $translator = static::translator(); + $translator = static::getLocaleAwareTranslator(); return $translator instanceof Translator ? $translator->getAvailableLocales() @@ -676,4 +693,35 @@ trait Localization return $languages; } + + protected function getTranslatorLocale($translator = null): ?string + { + if (func_num_args() === 0) { + $translator = $this->getLocalTranslator(); + } + + $translator = static::getLocaleAwareTranslator($translator); + + return $translator ? $translator->getLocale() : null; + } + + /** + * Throw an error if passed object is not LocaleAwareInterface. + * + * @param LocaleAwareInterface|null $translator + * + * @return LocaleAwareInterface|null + */ + protected static function getLocaleAwareTranslator($translator = null) + { + if (func_num_args() === 0) { + $translator = static::translator(); + } + + if ($translator && !($translator instanceof LocaleAwareInterface || method_exists($translator, 'getLocale'))) { + throw new NotLocaleAwareException($translator); + } + + return $translator; + } } diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/Macro.php b/vendor/nesbot/carbon/src/Carbon/Traits/Macro.php index ad2db447a..9f64f3c42 100644 --- a/vendor/nesbot/carbon/src/Carbon/Traits/Macro.php +++ b/vendor/nesbot/carbon/src/Carbon/Traits/Macro.php @@ -99,7 +99,7 @@ trait Macro } /** - * Checks if macro is registered. + * Checks if macro is registered globally. * * @param string $name * @@ -109,4 +109,40 @@ trait Macro { return isset(static::$globalMacros[$name]); } + + /** + * Get the raw callable macro registered globally for a given name. + * + * @param string $name + * + * @return callable|null + */ + public static function getMacro($name) + { + return static::$globalMacros[$name] ?? null; + } + + /** + * Checks if macro is registered globally or locally. + * + * @param string $name + * + * @return bool + */ + public function hasLocalMacro($name) + { + return ($this->localMacros && isset($this->localMacros[$name])) || static::hasMacro($name); + } + + /** + * Get the raw callable macro registered globally or locally for a given name. + * + * @param string $name + * + * @return callable|null + */ + public function getLocalMacro($name) + { + return ($this->localMacros ?? [])[$name] ?? static::getMacro($name); + } } diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/ObjectInitialisation.php b/vendor/nesbot/carbon/src/Carbon/Traits/ObjectInitialisation.php new file mode 100644 index 000000000..fadfeaa8d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Traits/ObjectInitialisation.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace Carbon\Traits; + +trait ObjectInitialisation +{ + /** + * True when parent::__construct has been called. + * + * @var string + */ + protected $constructedObjectId = null; +} diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/Options.php b/vendor/nesbot/carbon/src/Carbon/Traits/Options.php index 8b75e59d0..1a3743402 100644 --- a/vendor/nesbot/carbon/src/Carbon/Traits/Options.php +++ b/vendor/nesbot/carbon/src/Carbon/Traits/Options.php @@ -417,6 +417,12 @@ trait Options return $var; }); + foreach (['dumpProperties', 'constructedObjectId'] as $property) { + if (isset($infos[$property])) { + unset($infos[$property]); + } + } + // @codeCoverageIgnoreStart if ($this instanceof CarbonInterface || $this instanceof DateTimeInterface) { diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/Rounding.php b/vendor/nesbot/carbon/src/Carbon/Traits/Rounding.php index 8ae06b632..082ed5bf0 100644 --- a/vendor/nesbot/carbon/src/Carbon/Traits/Rounding.php +++ b/vendor/nesbot/carbon/src/Carbon/Traits/Rounding.php @@ -23,7 +23,7 @@ use InvalidArgumentException; * Depends on the following methods: * * @method CarbonInterface copy() - * @method CarbonInterface startOfWeek() + * @method CarbonInterface startOfWeek(int $weekStartsAt = null) */ trait Rounding { diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/Serialization.php b/vendor/nesbot/carbon/src/Carbon/Traits/Serialization.php index c74ac3963..00bf1b3e1 100644 --- a/vendor/nesbot/carbon/src/Carbon/Traits/Serialization.php +++ b/vendor/nesbot/carbon/src/Carbon/Traits/Serialization.php @@ -31,6 +31,8 @@ use InvalidArgumentException; */ trait Serialization { + use ObjectInitialisation; + /** * The custom Carbon JSON serializer. * @@ -38,6 +40,13 @@ trait Serialization */ protected static $serializer; + /** + * List of key to use for dump/serialization. + * + * @var string[] + */ + protected $dumpProperties = ['date', 'timezone_type', 'timezone']; + /** * Locale to dump comes here before serialization. * @@ -103,7 +112,8 @@ trait Serialization */ public function __sleep() { - $properties = ['date', 'timezone_type', 'timezone']; + $properties = $this->dumpProperties; + if ($this->localTranslator ?? null) { $properties[] = 'dumpLocale'; $this->dumpLocale = $this->locale ?? null; @@ -120,10 +130,15 @@ trait Serialization if (get_parent_class() && method_exists(parent::class, '__wakeup')) { parent::__wakeup(); } + + $this->constructedObjectId = spl_object_hash($this); + if (isset($this->dumpLocale)) { $this->locale($this->dumpLocale); $this->dumpLocale = null; } + + $this->cleanupDumpProperties(); } /** @@ -157,4 +172,22 @@ trait Serialization { static::$serializer = $callback; } + + /** + * Cleanup properties attached to the public scope of DateTime when a dump of the date is requested. + * foreach ($date as $_) {} + * serializer($date) + * var_export($date) + * get_object_vars($date) + */ + public function cleanupDumpProperties() + { + foreach ($this->dumpProperties as $property) { + if (isset($this->$property)) { + unset($this->$property); + } + } + + return $this; + } } diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/Timestamp.php b/vendor/nesbot/carbon/src/Carbon/Traits/Timestamp.php index e0a0f42fa..d50de5544 100644 --- a/vendor/nesbot/carbon/src/Carbon/Traits/Timestamp.php +++ b/vendor/nesbot/carbon/src/Carbon/Traits/Timestamp.php @@ -10,6 +10,8 @@ */ namespace Carbon\Traits; +use DateTime; + /** * Trait Timestamp. */ @@ -25,13 +27,20 @@ trait Timestamp */ public static function createFromTimestamp($timestamp, $tz = null) { - return static::today($tz)->setTimestamp((int) $timestamp); + $date = new DateTime('@'.((int) $timestamp)); + $tz = static::safeCreateDateTimeZone($tz); + + if ($tz) { + $date->setTimezone($tz); + } + + return (new static($date->format(DateTime::ATOM)))->tz($tz); } /** * Create a Carbon instance from a timestamp in milliseconds. * - * @param int $timestamp + * @param float $timestamp * @param \DateTimeZone|string|null $tz * * @return static diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/Units.php b/vendor/nesbot/carbon/src/Carbon/Traits/Units.php index 7c309f827..50e4e17a0 100644 --- a/vendor/nesbot/carbon/src/Carbon/Traits/Units.php +++ b/vendor/nesbot/carbon/src/Carbon/Traits/Units.php @@ -219,6 +219,7 @@ trait Units 'decade' => [static::YEARS_PER_DECADE, 'year'], 'quarter' => [static::MONTHS_PER_QUARTER, 'month'], ]; + if (isset($metaUnits[$unit])) { [$factor, $unit] = $metaUnits[$unit]; $value *= $factor; @@ -226,14 +227,17 @@ trait Units if ($unit === 'weekday') { $weekendDays = static::getWeekendDays(); + if ($weekendDays !== [static::SATURDAY, static::SUNDAY]) { $absoluteValue = abs($value); $sign = $value / max(1, $absoluteValue); $weekDaysCount = 7 - min(6, count(array_unique($weekendDays))); $weeks = floor($absoluteValue / $weekDaysCount); + for ($diff = $absoluteValue % $weekDaysCount; $diff; $diff--) { /** @var static $date */ $date = $date->addDays($sign); + while (in_array($date->dayOfWeek, $weekendDays)) { $date = $date->addDays($sign); } diff --git a/vendor/nesbot/carbon/src/Carbon/Translator.php b/vendor/nesbot/carbon/src/Carbon/Translator.php index 3a7ffb3d9..84af25bc9 100644 --- a/vendor/nesbot/carbon/src/Carbon/Translator.php +++ b/vendor/nesbot/carbon/src/Carbon/Translator.php @@ -190,9 +190,10 @@ class Translator extends Translation\Translator } foreach ($this->getDirectories() as $directory) { - $directory = rtrim($directory, '\\/'); - if (file_exists($filename = "$directory/$locale.php")) { - $this->messages[$locale] = require $filename; + $data = @include sprintf('%s/%s.php', rtrim($directory, '\\/'), $locale); + + if ($data !== false) { + $this->messages[$locale] = $data; $this->addResource('array', $this->messages[$locale], $locale); return true; @@ -339,33 +340,11 @@ class Translator extends Translation\Translator $completeLocaleChunks = preg_split('/[_.-]+/', $completeLocale); $getScore = function ($language) use ($completeLocaleChunks) { - $chunks = preg_split('/[_.-]+/', $language); - $score = 0; - - foreach ($completeLocaleChunks as $index => $chunk) { - if (!isset($chunks[$index])) { - $score++; - - continue; - } - - if (strtolower($chunks[$index]) === strtolower($chunk)) { - $score += 10; - } - } - - return $score; + return static::compareChunkLists($completeLocaleChunks, preg_split('/[_.-]+/', $language)); }; usort($locales, function ($first, $second) use ($getScore) { - $first = $getScore($first); - $second = $getScore($second); - - if ($first === $second) { - return 0; - } - - return $first < $second ? 1 : -1; + return $getScore($second) <=> $getScore($first); }); $locale = $locales[0]; @@ -402,4 +381,23 @@ class Translator extends Translation\Translator 'locale' => $this->getLocale(), ]; } + + private static function compareChunkLists($referenceChunks, $chunks) + { + $score = 0; + + foreach ($referenceChunks as $index => $chunk) { + if (!isset($chunks[$index])) { + $score++; + + continue; + } + + if (strtolower($chunks[$index]) === strtolower($chunk)) { + $score += 10; + } + } + + return $score; + } } diff --git a/vendor/nikic/php-parser/.gitattributes b/vendor/nikic/php-parser/.gitattributes deleted file mode 100644 index a6c4b04c9..000000000 --- a/vendor/nikic/php-parser/.gitattributes +++ /dev/null @@ -1,8 +0,0 @@ -/test export-ignore -/test_old export-ignore -/doc export-ignore -CHANGELOG.md export-ignore -.travis.yml export-ignore -phpunit.xml.dist export-ignore -UPGRADE-*.md export-ignore -.gitignore export-ignore diff --git a/vendor/nikic/php-parser/grammar/php7.y b/vendor/nikic/php-parser/grammar/php7.y index 7a219fd9a..a90c96953 100644 --- a/vendor/nikic/php-parser/grammar/php7.y +++ b/vendor/nikic/php-parser/grammar/php7.y @@ -232,7 +232,7 @@ non_empty_statement: | T_RETURN optional_expr semi { $$ = Stmt\Return_[$2]; } | T_GLOBAL global_var_list semi { $$ = Stmt\Global_[$2]; } | T_STATIC static_var_list semi { $$ = Stmt\Static_[$2]; } - | T_ECHO expr_list semi { $$ = Stmt\Echo_[$2]; } + | T_ECHO expr_list_forbid_comma semi { $$ = Stmt\Echo_[$2]; } | T_INLINE_HTML { $$ = Stmt\InlineHTML[$1]; } | expr semi { $$ = Stmt\Expression[$1]; } | T_UNSET '(' variables_list ')' semi { $$ = Stmt\Unset_[$3]; } @@ -632,10 +632,14 @@ property_declaration: | property_decl_name '=' expr { $$ = Stmt\PropertyProperty[$1, $3]; } ; -expr_list: +expr_list_forbid_comma: non_empty_expr_list no_comma { $$ = $1; } ; +expr_list_allow_comma: + non_empty_expr_list optional_comma { $$ = $1; } +; + non_empty_expr_list: non_empty_expr_list ',' expr { push($1, $3); } | expr { init($1); } @@ -643,7 +647,7 @@ non_empty_expr_list: for_expr: /* empty */ { $$ = array(); } - | expr_list { $$ = $1; } + | expr_list_forbid_comma { $$ = $1; } ; expr: @@ -706,7 +710,7 @@ expr: | expr '?' expr ':' expr { $$ = Expr\Ternary[$1, $3, $5]; } | expr '?' ':' expr { $$ = Expr\Ternary[$1, null, $4]; } | expr T_COALESCE expr { $$ = Expr\BinaryOp\Coalesce[$1, $3]; } - | T_ISSET '(' variables_list ')' { $$ = Expr\Isset_[$3]; } + | T_ISSET '(' expr_list_allow_comma ')' { $$ = Expr\Isset_[$3]; } | T_EMPTY '(' expr ')' { $$ = Expr\Empty_[$3]; } | T_INCLUDE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_INCLUDE]; } | T_INCLUDE_ONCE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_INCLUDE_ONCE]; } @@ -800,12 +804,13 @@ name: class_name_reference: class_name { $$ = $1; } | new_variable { $$ = $1; } + | '(' expr ')' { $$ = $2; } | error { $$ = Expr\Error[]; $this->errorState = 2; } ; class_name_or_var: class_name { $$ = $1; } - | dereferencable { $$ = $1; } + | fully_dereferencable { $$ = $1; } ; exit_expr: @@ -827,9 +832,20 @@ ctor_arguments: constant: name { $$ = Expr\ConstFetch[$1]; } - | class_name_or_var T_PAAMAYIM_NEKUDOTAYIM identifier_ex + | T_LINE { $$ = Scalar\MagicConst\Line[]; } + | T_FILE { $$ = Scalar\MagicConst\File[]; } + | T_DIR { $$ = Scalar\MagicConst\Dir[]; } + | T_CLASS_C { $$ = Scalar\MagicConst\Class_[]; } + | T_TRAIT_C { $$ = Scalar\MagicConst\Trait_[]; } + | T_METHOD_C { $$ = Scalar\MagicConst\Method[]; } + | T_FUNC_C { $$ = Scalar\MagicConst\Function_[]; } + | T_NS_C { $$ = Scalar\MagicConst\Namespace_[]; } +; + +class_constant: + class_name_or_var T_PAAMAYIM_NEKUDOTAYIM identifier_ex { $$ = Expr\ClassConstFetch[$1, $3]; } - /* We interpret and isolated FOO:: as an unfinished class constant fetch. It could also be + /* We interpret an isolated FOO:: as an unfinished class constant fetch. It could also be an unfinished static property fetch or unfinished scoped call. */ | class_name_or_var T_PAAMAYIM_NEKUDOTAYIM error { $$ = Expr\ClassConstFetch[$1, new Expr\Error(stackAttributes(#3))]; $this->errorState = 2; } @@ -849,28 +865,21 @@ dereferencable_scalar: | T_CONSTANT_ENCAPSED_STRING { $attrs = attributes(); $attrs['kind'] = strKind($1); $$ = new Scalar\String_(Scalar\String_::parse($1), $attrs); } + | '"' encaps_list '"' + { $attrs = attributes(); $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED; + parseEncapsed($2, '"', true); $$ = new Scalar\Encapsed($2, $attrs); } ; scalar: T_LNUMBER { $$ = $this->parseLNumber($1, attributes()); } | T_DNUMBER { $$ = Scalar\DNumber[Scalar\DNumber::parse($1)]; } - | T_LINE { $$ = Scalar\MagicConst\Line[]; } - | T_FILE { $$ = Scalar\MagicConst\File[]; } - | T_DIR { $$ = Scalar\MagicConst\Dir[]; } - | T_CLASS_C { $$ = Scalar\MagicConst\Class_[]; } - | T_TRAIT_C { $$ = Scalar\MagicConst\Trait_[]; } - | T_METHOD_C { $$ = Scalar\MagicConst\Method[]; } - | T_FUNC_C { $$ = Scalar\MagicConst\Function_[]; } - | T_NS_C { $$ = Scalar\MagicConst\Namespace_[]; } | dereferencable_scalar { $$ = $1; } | constant { $$ = $1; } + | class_constant { $$ = $1; } | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC { $$ = $this->parseDocString($1, $2, $3, attributes(), stackAttributes(#3), true); } | T_START_HEREDOC T_END_HEREDOC { $$ = $this->parseDocString($1, '', $2, attributes(), stackAttributes(#2), true); } - | '"' encaps_list '"' - { $attrs = attributes(); $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED; - parseEncapsed($2, '"', true); $$ = new Scalar\Encapsed($2, $attrs); } | T_START_HEREDOC encaps_list T_END_HEREDOC { $$ = $this->parseDocString($1, $2, $3, attributes(), stackAttributes(#3), true); } ; @@ -880,10 +889,16 @@ optional_expr: | expr { $$ = $1; } ; -dereferencable: +fully_dereferencable: variable { $$ = $1; } | '(' expr ')' { $$ = $2; } | dereferencable_scalar { $$ = $1; } + | class_constant { $$ = $1; } +; + +array_object_dereferencable: + fully_dereferencable { $$ = $1; } + | constant { $$ = $1; } ; callable_expr: @@ -894,18 +909,18 @@ callable_expr: callable_variable: simple_variable { $$ = Expr\Variable[$1]; } - | dereferencable '[' optional_expr ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | constant '[' optional_expr ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | dereferencable '{' expr '}' { $$ = Expr\ArrayDimFetch[$1, $3]; } + | array_object_dereferencable '[' optional_expr ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } + | array_object_dereferencable '{' expr '}' { $$ = Expr\ArrayDimFetch[$1, $3]; } | function_call { $$ = $1; } - | dereferencable T_OBJECT_OPERATOR property_name argument_list + | array_object_dereferencable T_OBJECT_OPERATOR property_name argument_list { $$ = Expr\MethodCall[$1, $3, $4]; } ; variable: callable_variable { $$ = $1; } | static_member { $$ = $1; } - | dereferencable T_OBJECT_OPERATOR property_name { $$ = Expr\PropertyFetch[$1, $3]; } + | array_object_dereferencable T_OBJECT_OPERATOR property_name + { $$ = Expr\PropertyFetch[$1, $3]; } ; simple_variable: @@ -950,22 +965,7 @@ property_name: ; list_expr: - T_LIST '(' list_expr_elements ')' { $$ = Expr\List_[$3]; } -; - -list_expr_elements: - list_expr_elements ',' list_expr_element { push($1, $3); } - | list_expr_element { init($1); } -; - -list_expr_element: - variable { $$ = Expr\ArrayItem[$1, null, false]; } - | '&' variable { $$ = Expr\ArrayItem[$2, null, true]; } - | list_expr { $$ = Expr\ArrayItem[$1, null, false]; } - | expr T_DOUBLE_ARROW variable { $$ = Expr\ArrayItem[$3, $1, false]; } - | expr T_DOUBLE_ARROW '&' variable { $$ = Expr\ArrayItem[$4, $1, true]; } - | expr T_DOUBLE_ARROW list_expr { $$ = Expr\ArrayItem[$3, $1, false]; } - | /* empty */ { $$ = null; } + T_LIST '(' inner_array_pair_list ')' { $$ = Expr\List_[$3]; } ; array_pair_list: @@ -985,10 +985,12 @@ inner_array_pair_list: ; array_pair: - expr T_DOUBLE_ARROW expr { $$ = Expr\ArrayItem[$3, $1, false]; } - | expr { $$ = Expr\ArrayItem[$1, null, false]; } - | expr T_DOUBLE_ARROW '&' variable { $$ = Expr\ArrayItem[$4, $1, true]; } + expr { $$ = Expr\ArrayItem[$1, null, false]; } | '&' variable { $$ = Expr\ArrayItem[$2, null, true]; } + | list_expr { $$ = Expr\ArrayItem[$1, null, false]; } + | expr T_DOUBLE_ARROW expr { $$ = Expr\ArrayItem[$3, $1, false]; } + | expr T_DOUBLE_ARROW '&' variable { $$ = Expr\ArrayItem[$4, $1, true]; } + | expr T_DOUBLE_ARROW list_expr { $$ = Expr\ArrayItem[$3, $1, false]; } | T_ELLIPSIS expr { $$ = Expr\ArrayItem[$2, null, false, attributes(), true]; } | /* empty */ { $$ = null; } ; diff --git a/vendor/nikic/php-parser/grammar/rebuildParsers.php b/vendor/nikic/php-parser/grammar/rebuildParsers.php index c36699c33..66bf7055f 100644 --- a/vendor/nikic/php-parser/grammar/rebuildParsers.php +++ b/vendor/nikic/php-parser/grammar/rebuildParsers.php @@ -178,7 +178,7 @@ function resolveMacros($code) { return '$startAttributes = ' . $args[1] . ';' . ' if (isset($startAttributes[\'comments\']))' - . ' { ' . $args[0] . ' = new Stmt\Nop($this->createZeroLengthAttributes($startAttributes)); }' + . ' { ' . $args[0] . ' = new Stmt\Nop($this->createCommentNopAttributes($startAttributes[\'comments\'])); }' . ' else { ' . $args[0] . ' = null; }'; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Builder/Param.php b/vendor/nikic/php-parser/lib/PhpParser/Builder/Param.php index fd3118c71..c6491786e 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Builder/Param.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Builder/Param.php @@ -44,7 +44,7 @@ class Param implements PhpParser\Builder /** * Sets type for the parameter. * - * @param string|Node\Name|Node\NullableType $type Parameter type + * @param string|Node\Name|Node\NullableType|Node\UnionType $type Parameter type * * @return $this The builder instance (for fluid interface) */ @@ -60,7 +60,7 @@ class Param implements PhpParser\Builder /** * Sets type for the parameter. * - * @param string|Node\Name|Node\NullableType $type Parameter type + * @param string|Node\Name|Node\NullableType|Node\UnionType $type Parameter type * * @return $this The builder instance (for fluid interface) * diff --git a/vendor/nikic/php-parser/lib/PhpParser/BuilderHelpers.php b/vendor/nikic/php-parser/lib/PhpParser/BuilderHelpers.php index 790e8877e..b745441e6 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/BuilderHelpers.php +++ b/vendor/nikic/php-parser/lib/PhpParser/BuilderHelpers.php @@ -8,6 +8,7 @@ use PhpParser\Node\Name; use PhpParser\Node\NullableType; use PhpParser\Node\Scalar; use PhpParser\Node\Stmt; +use PhpParser\Node\UnionType; /** * This class defines helpers used in the implementation of builders. Don't use it directly. @@ -158,16 +159,19 @@ final class BuilderHelpers * In particular, builtin types become Identifiers, custom types become Names and nullables * are wrapped in NullableType nodes. * - * @param string|Name|Identifier|NullableType $type The type to normalize + * @param string|Name|Identifier|NullableType|UnionType $type The type to normalize * - * @return Name|Identifier|NullableType The normalized type + * @return Name|Identifier|NullableType|UnionType The normalized type */ public static function normalizeType($type) { if (!is_string($type)) { - if (!$type instanceof Name && !$type instanceof Identifier - && !$type instanceof NullableType) { + if ( + !$type instanceof Name && !$type instanceof Identifier && + !$type instanceof NullableType && !$type instanceof UnionType + ) { throw new \LogicException( - 'Type must be a string, or an instance of Name, Identifier or NullableType'); + 'Type must be a string, or an instance of Name, Identifier, NullableType or UnionType' + ); } return $type; } @@ -193,7 +197,7 @@ final class BuilderHelpers throw new \LogicException('void type cannot be nullable'); } - return $nullable ? new Node\NullableType($type) : $type; + return $nullable ? new NullableType($type) : $type; } /** diff --git a/vendor/nikic/php-parser/lib/PhpParser/Comment.php b/vendor/nikic/php-parser/lib/PhpParser/Comment.php index 5da842095..61e98d3dc 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Comment.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Comment.php @@ -5,9 +5,12 @@ namespace PhpParser; class Comment implements \JsonSerializable { protected $text; - protected $line; - protected $filePos; - protected $tokenPos; + protected $startLine; + protected $startFilePos; + protected $startTokenPos; + protected $endLine; + protected $endFilePos; + protected $endTokenPos; /** * Constructs a comment node. @@ -18,12 +21,17 @@ class Comment implements \JsonSerializable * @param int $startTokenPos Token offset the comment started on */ public function __construct( - string $text, int $startLine = -1, int $startFilePos = -1, int $startTokenPos = -1 + string $text, + int $startLine = -1, int $startFilePos = -1, int $startTokenPos = -1, + int $endLine = -1, int $endFilePos = -1, int $endTokenPos = -1 ) { $this->text = $text; - $this->line = $startLine; - $this->filePos = $startFilePos; - $this->tokenPos = $startTokenPos; + $this->startLine = $startLine; + $this->startFilePos = $startFilePos; + $this->startTokenPos = $startTokenPos; + $this->endLine = $endLine; + $this->endFilePos = $endFilePos; + $this->endTokenPos = $endTokenPos; } /** @@ -38,28 +46,88 @@ class Comment implements \JsonSerializable /** * Gets the line number the comment started on. * - * @return int Line number + * @return int Line number (or -1 if not available) */ - public function getLine() : int { - return $this->line; + public function getStartLine() : int { + return $this->startLine; } /** * Gets the file offset the comment started on. * - * @return int File offset + * @return int File offset (or -1 if not available) */ - public function getFilePos() : int { - return $this->filePos; + public function getStartFilePos() : int { + return $this->startFilePos; } /** * Gets the token offset the comment started on. * + * @return int Token offset (or -1 if not available) + */ + public function getStartTokenPos() : int { + return $this->startTokenPos; + } + + /** + * Gets the line number the comment ends on. + * + * @return int Line number (or -1 if not available) + */ + public function getEndLine() : int { + return $this->endLine; + } + + /** + * Gets the file offset the comment ends on. + * + * @return int File offset (or -1 if not available) + */ + public function getEndFilePos() : int { + return $this->endFilePos; + } + + /** + * Gets the token offset the comment ends on. + * + * @return int Token offset (or -1 if not available) + */ + public function getEndTokenPos() : int { + return $this->endTokenPos; + } + + /** + * Gets the line number the comment started on. + * + * @deprecated Use getStartLine() instead + * + * @return int Line number + */ + public function getLine() : int { + return $this->startLine; + } + + /** + * Gets the file offset the comment started on. + * + * @deprecated Use getStartFilePos() instead + * + * @return int File offset + */ + public function getFilePos() : int { + return $this->startFilePos; + } + + /** + * Gets the token offset the comment started on. + * + * @deprecated Use getStartTokenPos() instead + * * @return int Token offset */ public function getTokenPos() : int { - return $this->tokenPos; + return $this->startTokenPos; } /** @@ -159,9 +227,13 @@ class Comment implements \JsonSerializable return [ 'nodeType' => $type, 'text' => $this->text, - 'line' => $this->line, - 'filePos' => $this->filePos, - 'tokenPos' => $this->tokenPos, + // TODO: Rename these to include "start". + 'line' => $this->startLine, + 'filePos' => $this->startFilePos, + 'tokenPos' => $this->startTokenPos, + 'endLine' => $this->endLine, + 'endFilePos' => $this->endFilePos, + 'endTokenPos' => $this->endTokenPos, ]; } } diff --git a/vendor/nikic/php-parser/lib/PhpParser/JsonDecoder.php b/vendor/nikic/php-parser/lib/PhpParser/JsonDecoder.php index 25d1c6abe..47d2003d4 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/JsonDecoder.php +++ b/vendor/nikic/php-parser/lib/PhpParser/JsonDecoder.php @@ -73,7 +73,9 @@ class JsonDecoder } return new $className( - $value['text'], $value['line'] ?? -1, $value['filePos'] ?? -1, $value['tokenPos'] ?? -1 + $value['text'], + $value['line'] ?? -1, $value['filePos'] ?? -1, $value['tokenPos'] ?? -1, + $value['endLine'] ?? -1, $value['endFilePos'] ?? -1, $value['endTokenPos'] ?? -1 ); } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Lexer.php b/vendor/nikic/php-parser/lib/PhpParser/Lexer.php index 012c1f943..694a8487d 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Lexer.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Lexer.php @@ -300,17 +300,23 @@ class Lexer $this->line += substr_count($value, "\n"); $this->filePos += \strlen($value); } else { + $origLine = $this->line; + $origFilePos = $this->filePos; + $this->line += substr_count($token[1], "\n"); + $this->filePos += \strlen($token[1]); + if (\T_COMMENT === $token[0] || \T_DOC_COMMENT === $token[0]) { if ($this->attributeCommentsUsed) { $comment = \T_DOC_COMMENT === $token[0] - ? new Comment\Doc($token[1], $this->line, $this->filePos, $this->pos) - : new Comment($token[1], $this->line, $this->filePos, $this->pos); + ? new Comment\Doc($token[1], + $origLine, $origFilePos, $this->pos, + $this->line, $this->filePos - 1, $this->pos) + : new Comment($token[1], + $origLine, $origFilePos, $this->pos, + $this->line, $this->filePos - 1, $this->pos); $startAttributes['comments'][] = $comment; } } - - $this->line += substr_count($token[1], "\n"); - $this->filePos += \strlen($token[1]); continue; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NumericLiteralSeparatorEmulator.php b/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NumericLiteralSeparatorEmulator.php index f564c5941..082805f94 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NumericLiteralSeparatorEmulator.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NumericLiteralSeparatorEmulator.php @@ -21,7 +21,8 @@ final class NumericLiteralSeparatorEmulator implements TokenEmulatorInterface return false; } - return preg_match('~[0-9a-f]_[0-9a-f]~i', $code) !== false; + return preg_match('~[0-9]_[0-9]~', $code) + || preg_match('~0x[0-9a-f]+_[0-9a-f]~i', $code); } public function emulate(string $code, array $tokens): array diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node.php b/vendor/nikic/php-parser/lib/PhpParser/Node.php index 7f04c3432..befb25650 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node.php @@ -95,8 +95,6 @@ interface Node /** * Gets the doc comment of the node. * - * The doc comment has to be the last comment associated with the node. - * * @return null|Comment\Doc Doc comment object or null */ public function getDocComment(); diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php index b1cd32639..e5c7622f1 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php @@ -53,6 +53,26 @@ abstract class ClassLike extends Node\Stmt return $properties; } + /** + * Gets property with the given name defined directly in this class/interface/trait. + * + * @param string $name Name of the property + * + * @return Property|null Property node or null if the property does not exist + */ + public function getProperty(string $name) { + foreach ($this->stmts as $stmt) { + if ($stmt instanceof Property) { + foreach ($stmt->props as $prop) { + if ($prop instanceof PropertyProperty && $name === $prop->name->toString()) { + return $stmt; + } + } + } + } + return null; + } + /** * Gets all methods defined directly in this class/interface/trait * diff --git a/vendor/nikic/php-parser/lib/PhpParser/NodeAbstract.php b/vendor/nikic/php-parser/lib/PhpParser/NodeAbstract.php index fda595994..04514da11 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/NodeAbstract.php +++ b/vendor/nikic/php-parser/lib/PhpParser/NodeAbstract.php @@ -108,22 +108,18 @@ abstract class NodeAbstract implements Node, \JsonSerializable /** * Gets the doc comment of the node. * - * The doc comment has to be the last comment associated with the node. - * * @return null|Comment\Doc Doc comment object or null */ public function getDocComment() { $comments = $this->getComments(); - if (!$comments) { - return null; + for ($i = count($comments) - 1; $i >= 0; $i--) { + $comment = $comments[$i]; + if ($comment instanceof Comment\Doc) { + return $comment; + } } - $lastComment = $comments[count($comments) - 1]; - if (!$lastComment instanceof Comment\Doc) { - return null; - } - - return $lastComment; + return null; } /** @@ -135,16 +131,17 @@ abstract class NodeAbstract implements Node, \JsonSerializable */ public function setDocComment(Comment\Doc $docComment) { $comments = $this->getComments(); - - $numComments = count($comments); - if ($numComments > 0 && $comments[$numComments - 1] instanceof Comment\Doc) { - // Replace existing doc comment - $comments[$numComments - 1] = $docComment; - } else { - // Append new comment - $comments[] = $docComment; + for ($i = count($comments) - 1; $i >= 0; $i--) { + if ($comments[$i] instanceof Comment\Doc) { + // Replace existing doc comment. + $comments[$i] = $docComment; + $this->setAttribute('comments', $comments); + return; + } } + // Append new doc comment. + $comments[] = $docComment; $this->setAttribute('comments', $comments); } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Parser/Php5.php b/vendor/nikic/php-parser/lib/PhpParser/Parser/Php5.php index a558d28b7..397e60577 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Parser/Php5.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Parser/Php5.php @@ -944,7 +944,7 @@ class Php5 extends \PhpParser\ParserAbstract $this->semValue = array(); }, 4 => function ($stackPos) { - $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createZeroLengthAttributes($startAttributes)); } else { $nop = null; }; + $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createCommentNopAttributes($startAttributes['comments'])); } else { $nop = null; }; if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 5 => function ($stackPos) { @@ -1317,7 +1317,7 @@ class Php5 extends \PhpParser\ParserAbstract $this->semValue = array(); }, 126 => function ($stackPos) { - $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createZeroLengthAttributes($startAttributes)); } else { $nop = null; }; + $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createCommentNopAttributes($startAttributes['comments'])); } else { $nop = null; }; if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 127 => function ($stackPos) { @@ -1715,7 +1715,7 @@ class Php5 extends \PhpParser\ParserAbstract $this->semValue = array(); }, 255 => function ($stackPos) { - $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createZeroLengthAttributes($startAttributes)); } else { $nop = null; }; + $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createCommentNopAttributes($startAttributes['comments'])); } else { $nop = null; }; if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 256 => function ($stackPos) { diff --git a/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php b/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php index f250ede0c..db988a485 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php @@ -18,16 +18,16 @@ use PhpParser\Node\Stmt; class Php7 extends \PhpParser\ParserAbstract { protected $tokenToSymbolMapSize = 394; - protected $actionTableSize = 966; - protected $gotoTableSize = 527; + protected $actionTableSize = 939; + protected $gotoTableSize = 502; protected $invalidSymbol = 159; protected $errorSymbol = 1; protected $defaultAction = -32766; protected $unexpectedTokenRule = 32767; - protected $YY2TBLSTATE = 350; - protected $numNonLeafStates = 606; + protected $YY2TBLSTATE = 347; + protected $numNonLeafStates = 601; protected $symbolToName = array( "EOF", @@ -235,311 +235,304 @@ class Php7 extends \PhpParser\ParserAbstract ); protected $action = array( - 611, 612, 613, 614, 615, 689, 616, 617, 618, 654, - 655, 0, 32, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115,-32767,-32767,-32767,-32767, - 94, 95, 96, 97, 98,-32766,-32766,-32766, 691, 493, - -500, 911, 912, 913, 910, 909, 908, 911, 912, 913, - 910, 909, 908, 619, 945, 947,-32766, 9,-32766,-32766, - -32766,-32766,-32766,-32766,-32766,-32766,-32766, 620, 621, 622, - 623, 624, 625, 626, 335, 1111, 687,-32766,-32766,-32766, - 850, 1110, 119, 627, 628, 629, 630, 631, 632, 633, - 634, 635, 636, 637, 657, 658, 659, 660, 661, 649, - 650, 651, 679, 652, 653, 638, 639, 640, 641, 642, - 643, 644, 681, 682, 683, 684, 685, 686, 645, 646, - 647, 648, 678, 669, 667, 668, 664, 665, 404, 656, - 662, 663, 670, 671, 673, 672, 674, 675, 45, 46, - 423, 47, 48, 666, 677, 676, 27, 49, 50, 233, - 51,-32766,-32766,-32766, 96, 97, 98, 24,-32766,-32766, - -32766, -461, 261, 121, 1030,-32766,-32766,-32766, 1098, 1080, - -32766,-32766,-32766, 1046,-32766,-32766,-32766,-32766,-32766,-32766, - -499,-32766,-32766,-32766, 52, 53,-32766, -500,-32766,-32766, - 54, 691, 55, 231, 232, 56, 57, 58, 59, 60, - 61, 62, 63, 1023, 24, 242, 64, 371,-32766,-32766, - -32766, 226, 1047, 1048, 425, 1083, 1080, -496, 887, 512, - 1046, 438, 1030, -461, 772, 1080, 239, 335, -503,-32766, - -503,-32766,-32766,-32766,-32766, 863, 252, -461, 278, 380, - 374, 790, 68, 1080, -461, 689, -464, 280, 1133, 405, - 291, 1134, 290, 99, 100, 101, 305, 253, 435, 436, - 826,-32766, 69, 261, 237, 855, 856, 437, 438, 102, - 1052, 1053, 1054, 1055, 1049, 1050, 256, 1023, -459, -459, - 308, 446, 1056, 1051, 377, 133, 565, -239, 365, 66, - 237, 270, 696, 275, 280, 424, -137, -137, -137, -4, - 772, 1080, 312, 280, 1042, 761, 691, 364, 37, 20, - 426, -137, 427, -137, 428, -137, 429, -137, 127, 430, - -298, 280, -298, 38, 39, 372, 373, -499, 273, 40, - 431, 279, 691, 65, 261, 1023, 304, 903, 432, 433, - -459, -459, 335, -497, 434, 44, 42, 747, 795, 375, - 376, -460, -234, 566, -459, -459, 377,-32766,-32766,-32766, - 889, -459, -459, 124, -496, 75, 855, 856, 335, -276, - -263, 424, 772, 774, 580, -137, 261, 125,-32766, 280, - 827, 761, 864, 1080, 37, 20, 426, 240, 427, -178, - 428, 593, 429, 395, 505, 430, 691, 235, 241, 38, - 39, 372, 373, 125, 356, 40, 431, 260, 259, 65, - 269, 691, 304, -460, 432, 433, -299, -177, -299, 24, - 434, 307, 367, 704, 795, 375, 376, -460, 120, 118, - 24, 1080, 30, 368, -460, 1046, -463, 855, 856, 691, - 369, 695, 1080, 424, 293, 772, 1046, 335, -83, 774, - 580, -4, 469, 761, 126, 370, 37, 20, 426, -92, - 427, 280, 428, 446, 429, 1023, 377, 430, -219, -219, - -219, 38, 39, 372, 373, 335, 1023, 40, 431, 855, - 856, 65, 437, 438, 304, 236, 432, 433, 225, 712, - -497, 713, 434, 437, 438, 747, 795, 375, 376, 694, - 389, 136, 1124, 582, 68, 415, 238, 8, 33, 280, - 1060, 227, 712, 691, 713, 68, 424, -263, 539, 21, - 280, 774, 580, -219, 554, 555, 761, 691, 116, 37, - 20, 426, 117, 427, 360, 428, -178, 429, 132, 330, - 430, -218, -218, -218, 38, 39, 372, 373, 691, 335, - 40, 431, 122, 772, 65, 385, 386, 304, 123, 432, - 433, 29, 234, 335, -177, 434, 532, 533, 747, 795, - 375, 376, 129, 855, 856, 135, 76, 77, 78, 1099, - 888, 603, 586, 254, 335, 137, 138, 786, 594, 597, - 262, 771, 131, 253, 774, 580, -218, 31, 263, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 295, 253, 424, 562, 772, 691, 694,-32766, - 102, 478, 689, 43, 761, 102, 1135, 37, 20, 426, - 130, 427, -81, 428, 692, 429, 530, 917, 430, 796, - 1023, 274, 38, 39, 372, 587, 473, 540, 40, 431, - 271, 277, 65, 272, 574, 304, 797, 557, 1059, 1062, - 545, 338, 772, 434, 10, 393, 35, 344, 546, 558, - 788, 581, 1061, 0, -418, 0, 5, 0, 0, 12, - 0, 0, 0, 0, 0, 0, 0, 424, 0, 0, - 0, 588, 774, 580, 0, 0, 0, 761, 0, 0, - 37, 20, 426, 0, 427, 0, 428, 0, 429, 772, - 0, 430, 306, 0, 0, 38, 39, 372, 583, 0, - 0, 40, 431, 345, 349, 65, 598, 389, 304, 475, - 361, 362, 748, 424, 36, 601, 434, 602, 591, 752, - 829, 813, 820, 761, 883, 884, 37, 20, 426, 810, - 427, 821, 428, 750, 429, 772, 808, 430, 892, 895, - 896, 38, 39, 372, 893, 774, 580, 40, 431, 894, - 900, 65, 585, 589, 304, 590, 592, 596, 288, 289, - 424, 354, 434, 355, 595, 584, -488, 1130, 1132, 707, - 761, 794, 706, 37, 20, 426, 716, 427, 793, 428, - 717, 429, 772, 714, 430, 1131, 792, 1011, 38, 39, - 372, 812, 580, -486, 40, 431, 715, 781, 65, 789, - 779, 304, 818, 819, 1129, 1081, 424, 1074, 1088, 434, - 1093, 1096, -430, -464, -463, -462, 761, 23, 25, 37, - 20, 426, 28, 427, 34, 428, 41, 429, 67, 70, - 430, 71, 72, 73, 38, 39, 372, 74, 774, 580, - 40, 431, 128, 134, 65, 139, 229, 304, 230, 246, - 247, 248, 249, 424, 250, 434, 251, 292, 357, 359, - 0, -237, -235, 761, -234, 14, 37, 20, 426, 15, - 427, 16, 428, 17, 429, 19, 327, 430, 406, 408, - 411, 38, 39, 372, 774, 580, 413, 40, 431, 414, - 421, 65, 571, 1034, 304,-32766,-32766,-32766, 984, 1044, - 865, 1015, 434, -92, 13, 18, 22, 265, 326, 503, - 526, 573, 988, 985, 0, 1001,-32766, 1043,-32766,-32766, - -32766,-32766,-32766,-32766,-32767,-32767,-32767,-32767,-32767, 1072, - 1073, 774, 580, 1087, 1127, 536 + 606, 607, 608, 609, 610, 1083, 611, 612, 613, 649, + 650,-32766,-32766,-32766,-32767,-32767,-32767,-32767, 94, 95, + 96, 97, 98, 684,-32766,-32766,-32766, -219, -219, -219, + -32766,-32766,-32766, 368,-32766,-32766,-32766,-32766,-32766,-32766, + -32767,-32767,-32767,-32767,-32767, 428, 429, 906, 907, 908, + 905, 904, 903, 614, 742, 790, 370, 371, 845, 906, + 907, 908, 905, 904, 903, -263, 0, 615, 616, 617, + 618, 619, 620, 621, 9, 400, 682, 96, 97, 98, + 769, 28, -219, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 652, 653, 654, 655, 656, 644, + 645, 646, 674, 647, 648, 633, 634, 635, 636, 637, + 638, 639, 676, 677, 678, 679, 680, 681, 640, 641, + 642, 643, 673, 664, 662, 663, 659, 660, 275, 651, + 657, 658, 665, 666, 668, 667, 669, 670, 785, 76, + 77, 78, -178, 661, 672, 671, 767, 44, 45, 419, + 46, 47, 691, 257, 1047, 75, 48, 49, 1027, 50, + 30, 257, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 1098, 239,-32766,-32766,-32766, + 391, 257, 119, 51, 52, 1027, 401, 821, 102, 53, + 121, 54, 218, 219, 55, 56, 57, 58, 59, 60, + 61, 62, -263, 24, 238, 63, 366, 420,-32766,-32766, + -32766, 1053, 1054, 421, 707, 1080, 708, 756,-32766, 1051, + 36, 20, 422, 1080, 423, 130, 424, 1080, 425,-32766, + 225, 426, 581, -177, 249, 38, 39, 367, 375, 369, + 582, 40, 427, 213, 274, 64, 850, 851, 303, 288, + 534, 21, 684, 223, 850, 851, 430, 431, 432, 355, + 384, 1019, 1080, 577, 1080, 583, 433, 434, -239, 1041, + 1042, 1043, 1044, 1038, 1039, 252, -92,-32766, 588, -178, + 442, 1045, 1040, 372, 850, 851, 575, 287, 65,-32766, + 266, 690, 271, 276, 126, 686, 304, 882, 1019,-32766, + 69, 276,-32766,-32766,-32766, 276,-32766, 822,-32766, 360, + -32766, -464, 220,-32766, -299, 307, -299,-32766,-32766,-32766, + -32766,-32766,-32766,-32766,-32766, 127, -463,-32766, 686,-32766, + -32766, 334,-32766,-32766,-32766, 465, 311, 69,-32766, 359, + 276,-32766, 276,-32766,-32766,-32766,-32766,-32766,-32766, 586, + -465, 858, 769,-32766, 686,-32766,-32766,-32766,-32766, 362, + 769,-32766,-32766,-32766, 223,-32766, 125,-32766,-32766,-32766, + 560, 859,-32766, -464, 590,-32766,-32766,-32766,-32766, 257, + -177, -467,-32766,-32766, -234, 807,-32766, -464, -463,-32766, + 334, 507, 363, 1059, -464, 442, -470,-32766, 372, -298, + -32766, -298, -463, 500, 549, 550, 686, 269, 364, -463, + -32766, -469, -465,-32766,-32766,-32766, 898,-32766, 365,-32766, + 1126,-32766,-32766, 1127,-32766, 68, -465,-32766,-32766,-32766, + -32766, 133, 329, -465,-32766,-32766, 42, 561,-32766, 1102, + 372,-32766, 334, -467, 884, 1101,-32766,-32766, -276,-32766, + 380, 381, 686, 488, 134,-32766,-32766, 222, 137,-32766, + -32766,-32766, 116,-32766, -467,-32766, 32,-32766, -462, 769, + -32766, -499, 117, -499,-32766,-32766,-32766, 125, 122,-32766, + -32766,-32766, 850, 851,-32766, 123, 43,-32766, 334, 411, + 224, 8, 129,-32766, 769,-32766, 136, 212, 255, 686, + 99, 100, 101,-32766, 239, 138,-32766,-32766,-32766,-32766, + -32766, 707,-32766, 708,-32766, 689, 102,-32766, 1117, 118, + 139,-32766,-32766,-32766, -83,-32766,-32766,-32766,-32766, 250, + -462,-32766, 686, 589,-32766, 334,-32766, 592, 124,-32766, + -32766,-32766,-32766,-32766, -462,-32766, 766,-32766, 256,-32766, + -32766, -462, 527, 528,-32766,-32766,-32766, 850, 851, 132, + -32766,-32766, 306, 781,-32766, 883, 598,-32766, 334, 120, + 258, 259,-32766, 292, 239,-32766, 102, 29, 221, 131, + -32766, 557, 686, 1128,-32766, 474, 686, 569, 684, 540, + -32766, 687, 689,-32766,-32766,-32766, 525,-32766, 912,-32766, + 469,-32766, 535, 270,-32766,-32766, 1019, 552,-32766,-32766, + -32766, 791, 792, 268,-32766,-32766, -81, 10,-32766, 226, + -32766,-32766, 334, 388, 267, 783, 686, 541, 553,-32766, + -32766, 337, -428,-32766,-32766,-32766, -237,-32766, 0,-32766, + 576,-32766, 0, 34,-32766, 0, 0, 0,-32766,-32766, + -32766, 24, 273, -493,-32766,-32766, 0, 0,-32766,-32766, + 0,-32766, 334, 1080, 1058, 0, 1060, 1051, 342,-32766, + 31, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, -419, 5, 24, -4, 12, 305, + 343, 346, -235, 0, 384, 471, 0, 1019, 1080,-32766, + 356, 357, 1051,-32766,-32766,-32766, 35, 596, 597, 747, + 824, 808, 941, 943, 433, 434, 815, 1041, 1042, 1043, + 1044, 1038, 1039, -462,-32766, 878,-32766,-32766, 879, 1045, + 1040, 805, 1019, 578, 816, 745, 67,-32766,-32766,-32766, + 271, 276, 803, 887, 890, 891, 888, 889, 769, 895, + 434, 580, 1041, 1042, 1043, 1044, 1038, 1039,-32766, 584, + -32766,-32766,-32766,-32766, 1045, 1040, 585, -137, -137, -137, + 587, 67, 591, 285, 286, 271, 276, 349, 350, 579, + -432, 593, -137, 743, -137, -462, -137, 1123, -137, 1125, + 368, 702, 351, 789, 701, 711, 788, 368, 265, -462, + 712, 709, 428, 429, 1124, 787, -462, -491, 1007, 428, + 429, 699, 790, 370, 371, 710, 776, 784, 742, 790, + 370, 371, -218, -218, -218, 774, 813, 814, 368, 1122, + 1081, 1074, 290,-32766,-32766,-32766, 1088, 769, 1093, -4, + 428, 429, 1096, -234, 769, -470, -137, 14, 1052, 742, + 790, 370, 371, -469,-32766, -468,-32766,-32766,-32766,-32766, + -32766,-32766, 23, 25, 26, 33, 37, 41, 66, 70, + 71, 72, 73, 74, 128, 769, 135, -218, 15, 140, + 217, 243, 0, 244, 245, 246, 247, 248, 289, 352, + 354, 0, 16, 17, 19, 326, 402, 404, 407, 409, + 410, 417, 566, 1031, 980, 1049, 860, 1011, -92, 13, + 18, 22, 261, 325, 497, 521, 568, 984, 1026, 981, + 1099, 0, 997, 0, 1048, 1073, 1087, 1120, 531 ); protected $actionCheck = array( - 2, 3, 4, 5, 6, 78, 8, 9, 10, 11, - 12, 0, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 8, 9, 10, 78, 79, - 7, 114, 115, 116, 117, 118, 119, 114, 115, 116, - 117, 118, 119, 55, 57, 58, 29, 7, 31, 32, - 33, 34, 35, 36, 8, 9, 10, 69, 70, 71, - 72, 73, 74, 75, 114, 1, 78, 8, 9, 10, - 1, 7, 13, 85, 86, 87, 88, 89, 90, 91, + 2, 3, 4, 5, 6, 1, 8, 9, 10, 11, + 12, 8, 9, 10, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 78, 8, 9, 10, 97, 98, 99, + 8, 9, 29, 103, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 115, 116, 114, 115, 116, + 117, 118, 119, 55, 124, 125, 126, 127, 1, 114, + 115, 116, 117, 118, 119, 7, 0, 69, 70, 71, + 72, 73, 74, 75, 7, 30, 78, 48, 49, 50, + 150, 7, 152, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 30, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 2, 3, - 4, 5, 6, 145, 146, 147, 7, 11, 12, 36, - 14, 8, 9, 10, 48, 49, 50, 68, 8, 9, - 10, 68, 29, 7, 1, 8, 9, 10, 1, 80, - 8, 9, 29, 84, 31, 32, 33, 34, 35, 29, - 7, 31, 32, 33, 48, 49, 29, 154, 31, 32, - 54, 78, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 114, 68, 69, 70, 71, 8, 9, - 10, 13, 76, 77, 78, 1, 80, 7, 1, 49, - 84, 132, 1, 130, 1, 80, 7, 114, 154, 29, - 156, 31, 32, 33, 34, 1, 7, 144, 7, 103, - 104, 1, 153, 80, 151, 78, 153, 158, 78, 151, - 114, 81, 7, 51, 52, 53, 7, 55, 122, 123, - 30, 8, 149, 29, 36, 132, 133, 131, 132, 67, - 134, 135, 136, 137, 138, 139, 140, 114, 68, 68, - 7, 145, 146, 147, 148, 13, 78, 154, 125, 153, - 36, 155, 1, 157, 158, 72, 73, 74, 75, 0, - 1, 80, 7, 158, 1, 82, 78, 7, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 151, 96, - 103, 158, 105, 100, 101, 102, 103, 154, 111, 106, - 107, 68, 78, 110, 29, 114, 113, 120, 115, 116, - 130, 130, 114, 7, 121, 68, 68, 124, 125, 126, - 127, 68, 154, 145, 144, 144, 148, 8, 9, 10, - 152, 151, 151, 30, 154, 151, 132, 133, 114, 152, - 7, 72, 1, 150, 151, 152, 29, 149, 29, 158, - 150, 82, 154, 80, 85, 86, 87, 36, 89, 7, - 91, 151, 93, 130, 1, 96, 78, 36, 36, 100, - 101, 102, 103, 149, 105, 106, 107, 130, 130, 110, - 111, 78, 113, 130, 115, 116, 103, 7, 105, 68, - 121, 144, 7, 124, 125, 126, 127, 144, 151, 151, - 68, 80, 7, 7, 151, 84, 153, 132, 133, 78, - 7, 150, 80, 72, 145, 1, 84, 114, 30, 150, - 151, 152, 83, 82, 151, 7, 85, 86, 87, 154, - 89, 158, 91, 145, 93, 114, 148, 96, 97, 98, - 99, 100, 101, 102, 103, 114, 114, 106, 107, 132, - 133, 110, 131, 132, 113, 36, 115, 116, 95, 103, - 154, 105, 121, 131, 132, 124, 125, 126, 127, 80, - 148, 13, 83, 151, 153, 103, 36, 105, 13, 158, - 141, 13, 103, 78, 105, 153, 72, 154, 73, 74, - 158, 150, 151, 152, 73, 74, 82, 78, 15, 85, - 86, 87, 15, 89, 148, 91, 154, 93, 98, 99, - 96, 97, 98, 99, 100, 101, 102, 103, 78, 114, - 106, 107, 15, 1, 110, 103, 104, 113, 15, 115, - 116, 142, 143, 114, 154, 121, 108, 109, 124, 125, - 126, 127, 15, 132, 133, 15, 8, 9, 10, 154, - 150, 151, 30, 30, 114, 15, 15, 36, 30, 30, - 34, 30, 30, 55, 150, 151, 152, 29, 34, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 34, 55, 72, 75, 1, 78, 80, 83, - 67, 87, 78, 68, 82, 67, 81, 85, 86, 87, - 68, 89, 95, 91, 78, 93, 111, 80, 96, 125, - 114, 112, 100, 101, 102, 30, 83, 88, 106, 107, - 128, 128, 110, 129, 90, 113, 125, 92, 141, 141, - 94, 148, 1, 121, 95, 95, 150, 148, 97, 97, - 149, 151, 157, -1, 144, -1, 144, -1, -1, 144, - -1, -1, -1, -1, -1, -1, -1, 72, -1, -1, - -1, 30, 150, 151, -1, -1, -1, 82, -1, -1, - 85, 86, 87, -1, 89, -1, 91, -1, 93, 1, - -1, 96, 144, -1, -1, 100, 101, 102, 151, -1, - -1, 106, 107, 148, 148, 110, 152, 148, 113, 148, - 148, 148, 152, 72, 150, 150, 121, 150, 30, 150, - 150, 150, 150, 82, 150, 150, 85, 86, 87, 150, - 89, 150, 91, 150, 93, 1, 150, 96, 150, 150, - 150, 100, 101, 102, 150, 150, 151, 106, 107, 150, - 150, 110, 151, 151, 113, 151, 151, 151, 151, 151, - 72, 151, 121, 151, 30, 151, 153, 152, 152, 152, - 82, 152, 152, 85, 86, 87, 152, 89, 152, 91, - 152, 93, 1, 152, 96, 152, 152, 152, 100, 101, - 102, 150, 151, 153, 106, 107, 152, 152, 110, 152, - 152, 113, 152, 152, 152, 152, 72, 152, 152, 121, - 152, 152, 155, 153, 153, 153, 82, 153, 153, 85, - 86, 87, 153, 89, 153, 91, 153, 93, 153, 153, - 96, 153, 153, 153, 100, 101, 102, 153, 150, 151, - 106, 107, 153, 153, 110, 153, 153, 113, 153, 153, - 153, 153, 153, 72, 153, 121, 153, 153, 153, 153, - -1, 154, 154, 82, 154, 154, 85, 86, 87, 154, - 89, 154, 91, 154, 93, 154, 154, 96, 154, 154, - 154, 100, 101, 102, 150, 151, 154, 106, 107, 154, - 154, 110, 154, 154, 113, 8, 9, 10, 154, 154, - 154, 154, 121, 154, 154, 154, 154, 154, 154, 154, - 154, 154, 154, 154, -1, 155, 29, 156, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 156, - 156, 150, 151, 156, 156, 156 + 122, 123, 124, 125, 126, 127, 128, 129, 68, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 1, 8, + 9, 10, 7, 145, 146, 147, 1, 2, 3, 4, + 5, 6, 1, 29, 1, 151, 11, 12, 1, 14, + 29, 29, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 1, 55, 8, 9, 10, + 130, 29, 13, 48, 49, 1, 151, 30, 67, 54, + 7, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 154, 68, 69, 70, 71, 72, 8, 9, + 10, 76, 77, 78, 103, 80, 105, 82, 1, 84, + 85, 86, 87, 80, 89, 7, 91, 80, 93, 29, + 7, 96, 30, 7, 7, 100, 101, 102, 103, 104, + 30, 106, 107, 13, 7, 110, 132, 133, 113, 114, + 73, 74, 78, 36, 132, 133, 121, 122, 123, 148, + 148, 114, 80, 151, 80, 30, 131, 132, 154, 134, + 135, 136, 137, 138, 139, 140, 154, 1, 151, 154, + 145, 146, 147, 148, 132, 133, 151, 7, 153, 72, + 155, 150, 157, 158, 151, 78, 7, 1, 114, 82, + 153, 158, 85, 86, 87, 158, 89, 150, 91, 125, + 93, 68, 36, 96, 103, 7, 105, 100, 101, 102, + 8, 9, 10, 106, 107, 151, 68, 110, 78, 1, + 113, 114, 8, 9, 10, 83, 7, 153, 121, 7, + 158, 29, 158, 31, 32, 33, 34, 35, 72, 30, + 68, 1, 150, 29, 78, 31, 32, 33, 82, 7, + 150, 85, 86, 87, 36, 89, 149, 91, 151, 93, + 78, 154, 96, 130, 30, 1, 100, 101, 102, 29, + 154, 68, 106, 107, 154, 150, 110, 144, 130, 113, + 114, 49, 7, 141, 151, 145, 153, 121, 148, 103, + 72, 105, 144, 1, 73, 74, 78, 111, 7, 151, + 82, 153, 130, 85, 86, 87, 120, 89, 7, 91, + 78, 93, 1, 81, 96, 149, 144, 151, 100, 101, + 102, 98, 99, 151, 106, 107, 68, 145, 110, 1, + 148, 113, 114, 130, 152, 7, 72, 8, 152, 121, + 103, 104, 78, 79, 13, 1, 82, 36, 13, 85, + 86, 87, 15, 89, 151, 91, 13, 93, 68, 150, + 96, 154, 15, 156, 100, 101, 102, 149, 15, 151, + 106, 107, 132, 133, 110, 15, 68, 113, 114, 103, + 36, 105, 15, 72, 150, 121, 15, 95, 130, 78, + 51, 52, 53, 82, 55, 15, 85, 86, 87, 1, + 89, 103, 91, 105, 93, 80, 67, 96, 83, 151, + 15, 100, 101, 102, 30, 151, 72, 106, 107, 30, + 130, 110, 78, 30, 113, 114, 82, 30, 30, 85, + 86, 87, 121, 89, 144, 91, 30, 93, 130, 1, + 96, 151, 108, 109, 100, 101, 102, 132, 133, 30, + 106, 107, 144, 36, 110, 150, 151, 113, 114, 151, + 34, 34, 151, 34, 55, 121, 67, 142, 143, 68, + 72, 75, 78, 81, 83, 87, 78, 90, 78, 94, + 82, 78, 80, 85, 86, 87, 111, 89, 80, 91, + 83, 93, 88, 112, 96, 151, 114, 92, 100, 101, + 102, 125, 125, 129, 106, 107, 95, 95, 110, 36, + 72, 113, 114, 95, 128, 149, 78, 97, 97, 121, + 82, 148, 144, 85, 86, 87, 154, 89, -1, 91, + 151, 93, -1, 150, 96, -1, -1, -1, 100, 101, + 102, 68, 128, 153, 106, 107, -1, -1, 110, 151, + -1, 113, 114, 80, 141, -1, 141, 84, 148, 121, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 144, 144, 68, 0, 144, 144, + 148, 148, 154, -1, 148, 148, -1, 114, 80, 151, + 148, 148, 84, 8, 9, 10, 150, 150, 150, 150, + 150, 150, 57, 58, 131, 132, 150, 134, 135, 136, + 137, 138, 139, 68, 29, 150, 31, 32, 150, 146, + 147, 150, 114, 151, 150, 150, 153, 8, 9, 10, + 157, 158, 150, 150, 150, 150, 150, 150, 150, 150, + 132, 151, 134, 135, 136, 137, 138, 139, 29, 151, + 31, 32, 33, 34, 146, 147, 151, 73, 74, 75, + 151, 153, 151, 151, 151, 157, 158, 151, 151, 151, + 155, 152, 88, 152, 90, 130, 92, 152, 94, 152, + 103, 152, 105, 152, 152, 152, 152, 103, 111, 144, + 152, 152, 115, 116, 152, 152, 151, 153, 152, 115, + 116, 124, 125, 126, 127, 152, 152, 152, 124, 125, + 126, 127, 97, 98, 99, 152, 152, 152, 103, 152, + 152, 152, 145, 8, 9, 10, 152, 150, 152, 152, + 115, 116, 152, 154, 150, 153, 152, 154, 157, 124, + 125, 126, 127, 153, 29, 153, 31, 32, 33, 34, + 35, 36, 153, 153, 153, 153, 153, 153, 153, 153, + 153, 153, 153, 153, 153, 150, 153, 152, 154, 153, + 153, 153, -1, 153, 153, 153, 153, 153, 153, 153, + 153, -1, 154, 154, 154, 154, 154, 154, 154, 154, + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 154, -1, 155, -1, 156, 156, 156, 156, 156 ); protected $actionBase = array( - 0, 223, 299, 371, 444, 303, 208, 629, -2, -2, - -73, -2, -2, 625, 718, 718, 764, 718, 552, 671, - 811, 811, 811, 228, 113, 113, 113, 254, 361, -40, - 361, 333, 449, 470, 435, 435, 435, 435, 435, 435, - 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, - 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, - 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, - 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, - 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, - 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, - 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, - 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, - 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, - 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, - 291, 291, 230, 393, 495, 783, 788, 785, 781, 780, - 784, 789, 498, 682, 683, 562, 685, 686, 688, 689, - 786, 809, 782, 787, 568, 568, 568, 568, 568, 568, - 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, - 568, 253, 69, 162, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 349, 349, 349, 157, - 210, 150, 200, 211, 143, 27, 917, 917, 917, 917, - 917, -16, -16, -16, -16, 351, 351, 362, 217, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 163, 313, 106, 106, 133, 133, 133, 133, - 133, 133, 305, 221, 234, 347, 369, 528, 525, 167, - 167, 441, 441, 441, 93, 283, 202, 202, 202, 386, - 573, 536, 536, 536, 536, 419, 419, 536, 536, 170, - 214, 74, 211, 211, 277, 211, 211, 211, 409, 409, - 409, 452, 318, 352, 546, 318, 630, 644, 581, 680, - 582, 681, 278, 592, 145, 593, 145, 145, 145, 458, - 445, 451, 779, 291, 540, 291, 291, 291, 291, 726, - 291, 291, 291, 291, 291, 291, 98, 291, 79, 430, - 230, 240, 240, 588, 240, 452, 538, 263, 637, 410, - 425, 538, 538, 538, 638, 640, 336, 363, 198, 642, - 382, 402, 173, 33, 549, 549, 554, 554, 567, 551, - 549, 549, 549, 549, 549, 694, 694, 554, 548, 554, - 567, 703, 554, 551, 551, 554, 554, 549, 554, 694, - 551, 156, 415, 249, 273, 551, 551, 426, 532, 549, - 533, 533, 433, 554, 219, 554, 139, 534, 694, 694, - 534, 229, 551, 231, 595, 597, 535, 531, 553, 245, - 553, 553, 300, 535, 553, 551, 553, 448, 50, 548, - 295, 553, 11, 705, 706, 418, 708, 701, 709, 735, - 710, 530, 524, 541, 723, 725, 714, 699, 695, 561, - 591, 513, 517, 542, 565, 692, 589, 563, 563, 563, - 565, 690, 563, 563, 563, 563, 563, 563, 563, 563, - 791, 578, 544, 727, 537, 523, 580, 543, 577, 527, - 591, 591, 590, 687, 790, 566, 726, 769, 719, 526, - 557, 751, 728, 584, 529, 585, 729, 731, 752, 774, - 631, 513, 775, 645, 572, 646, 591, 647, 563, 670, - 643, 803, 804, 691, 807, 741, 754, 556, 564, 755, - 586, 649, 555, 808, 650, 776, 632, 634, 594, 745, - 737, 756, 654, 762, 765, 656, 599, 569, 738, 576, - 736, 272, 734, 635, 658, 661, 663, 664, 665, 720, - 600, 747, 575, 749, 740, 601, 602, 560, 674, 488, - 604, 570, 571, 605, 722, 558, 550, 609, 611, 777, - 675, 733, 613, 677, 768, 547, 589, 545, 539, 579, - 574, 636, 766, 559, 616, 618, 619, 620, 678, 624, + 0, 704, 697, -70, 735, 153, 302, 607, -2, -2, + -55, -2, -2, 220, 329, 329, 354, 329, 212, 245, + 608, 608, 608, 227, 286, 286, 286, 286, 338, 384, + 518, 431, 464, 558, 558, 558, 558, 558, 558, 558, + 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, + 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, + 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, + 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, + 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, + 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, + 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, + 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, + 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, + 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, + 558, 151, 151, 167, 412, 463, 768, 773, 770, 774, + 766, 765, 769, 775, 687, 688, 539, 689, 694, 696, + 700, 771, 782, 767, 772, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 449, 179, 22, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 210, 210, 210, + 705, 334, 593, 593, 739, 665, 322, 628, 628, 628, + 628, 628, 628, 628, 628, 628, 628, 835, 3, 3, + 3, 3, 3, -28, -28, -28, -28, 306, 194, 157, + 221, 29, 29, 124, 124, 124, 124, 124, 124, 132, + 360, 162, 262, 535, 701, 184, 184, 435, 435, 435, + 253, 268, 459, 459, 459, 121, 527, 502, 502, 502, + 502, 445, 445, 502, 502, 352, 4, 327, 292, 410, + 410, 428, 410, 410, 410, 418, 418, 418, 357, 260, + 122, 511, 260, 609, 638, 776, 540, 684, 541, 685, + 323, 378, 562, 192, 563, 192, 192, 192, 454, 187, + 341, 764, 151, 550, 151, 151, 151, 151, 738, 151, + 151, 151, 151, 151, 151, 45, 151, 57, 425, 167, + 137, 137, 549, 137, 357, 529, 60, 632, 236, 529, + 529, 529, 633, 636, 58, 240, 637, 135, 396, 514, + 514, 520, 520, 528, 537, 514, 514, 514, 514, 514, + 719, 719, 520, 522, 520, 528, 724, 520, 537, 537, + 520, 520, 514, 520, 719, 537, 193, 362, 299, 318, + 537, 537, 395, 506, 514, 534, 534, 411, 520, 233, + 228, 520, 74, 494, 719, 719, 494, 237, 537, 247, + 567, 568, 495, 486, 509, 290, 509, 509, 342, 495, + 509, 537, 509, 421, 67, 522, 339, 509, 66, 725, + 726, 504, 727, 722, 728, 746, 729, 499, 496, 497, + 737, 723, 730, 721, 720, 526, 557, 457, 467, 551, + 498, 712, 556, 519, 519, 519, 702, 519, 519, 519, + 519, 519, 519, 519, 519, 457, 778, 555, 508, 740, + 473, 493, 538, 480, 592, 533, 557, 557, 641, 635, + 777, 523, 738, 759, 731, 503, 487, 750, 741, 639, + 530, 552, 742, 743, 751, 760, 610, 761, 645, 521, + 647, 557, 649, 519, 664, 510, 779, 710, 457, 780, + 703, 752, 546, 547, 753, 553, 651, 512, 781, 652, + 762, 618, 625, 566, 734, 492, 754, 653, 755, 756, + 654, 569, 524, 548, 505, 747, 451, 745, 629, 658, + 659, 662, 663, 666, 733, 570, 748, 525, 749, 699, + 571, 576, 491, 673, 455, 585, 500, 515, 588, 736, + 513, 516, 591, 594, 763, 674, 744, 595, 675, 758, + 531, 556, 554, 501, 532, 507, 631, 757, 517, 602, + 603, 604, 605, 683, 606, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 136, 136, 136, - 136, -2, -2, -2, 0, 0, -2, 0, 0, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 568, 568, 568, 568, - 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, - 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, + 0, 0, 145, 145, 145, 145, -2, -2, -2, 0, + 0, -2, 0, 0, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 568, 568, 568, - 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, - 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, - 568, 568, 568, 568, 568, 568, -3, 568, 568, -3, - 568, 568, 568, 568, 568, 568, 568, 202, 202, 202, - 202, 318, 318, 318, -67, 318, 318, 318, 318, 318, - 318, 318, 318, 318, 318, 318, 318, 318, 318, -67, - 202, 202, 318, 318, 318, 318, 318, 318, 318, 318, - 318, 318, 419, 419, 419, 145, 145, 318, 318, 318, - 0, 0, 0, 0, 0, 549, 419, 318, 318, 318, - 318, 0, 0, 318, 318, 548, 145, 0, 0, 0, - 0, 0, 0, 0, 549, 549, 549, 548, 0, 549, - 419, 0, 240, 291, 440, 440, 440, 440, 0, 549, - 0, 549, 0, 0, 0, 0, 0, 0, 551, 0, - 694, 0, 0, 0, 0, 554, 0, 0, 0, 0, - 0, 0, 0, 0, 548, 0, 0, 0, 0, 548, - 0, 0, 563, 0, 566, 0, 0, 563, 563, 563, - 566, 566, 0, 0, 0, 566 + 0, 0, 0, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 260, 260, 131, 0, 131, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 131, 131, + 131, 131, 131, 131, 459, 459, 459, 459, -67, 260, + 260, -67, 459, 459, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 445, 445, 445, 192, 192, 260, 260, + 260, 0, 0, 0, 0, 0, 514, 445, 260, 260, + 260, 260, 0, 0, 260, 260, 522, 192, 448, 0, + 0, 0, 0, 0, 0, 0, 514, 514, 514, 522, + 0, 514, 445, 0, 137, 151, 448, 343, 343, 343, + 343, 0, 0, 514, 0, 514, 0, 0, 0, 0, + 0, 0, 537, 0, 719, 0, 0, 0, 0, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 522, 0, + 0, 0, 0, 522, 0, 0, 519, 0, 523, 0, + 519, 519, 519, 523, 523, 0, 0, 523 ); protected $actionDefault = array( 3,32767,32767,32767,32767,32767,32767,32767,32767, 92, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 513, 513, 513, 94, 502,32767, - 502,32767,32767,32767, 317, 317, 317,32767, 457, 457, - 457, 457, 457, 457, 457,32767,32767,32767,32767,32767, - 397,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767, 511, 511, 511, 511, 94,32767, + 32767,32767,32767, 318, 318, 318,32767,32767, 460, 460, + 460, 460, 460, 460,32767,32767,32767,32767,32767, 398, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, @@ -547,110 +540,108 @@ class Php7 extends \PhpParser\ParserAbstract 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767, 92,32767,32767,32767,32767,32767,32767,32767,32767, + 94,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767, 504,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 509,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 380, 381, 383, 384, 316, 458, - 512, 262, 508, 315, 130, 273, 264, 211, 243, 313, - 134, 345, 398, 347, 396, 400, 346, 322, 326, 327, + 32767,32767,32767,32767,32767, 381, 382, 384, 385, 317, + 461, 510, 262, 507, 316, 130, 273, 264, 211, 243, + 313, 134, 346, 399, 348, 397, 401, 347, 323, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, - 338, 320, 321, 399, 401, 402, 377, 376, 375, 343, - 319, 344, 348, 319, 350, 349, 366, 367, 364, 365, - 368, 369, 370, 371, 372,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767, 94, - 32767,32767,32767, 296, 357, 358, 253, 253, 253, 253, - 253, 253, 253,32767,32767, 253,32767,32767,32767,32767, - 32767,32767,32767,32767, 451, 374, 352, 353, 351,32767, - 429,32767,32767,32767,32767,32767, 431,32767, 92,32767, - 32767,32767, 340, 342, 423, 511, 323, 510,32767,32767, - 94, 417,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767, 426,32767,32767, 92,32767,32767, 92, 174, - 230, 232, 179,32767, 434,32767,32767,32767,32767,32767, + 338, 339, 321, 322, 400, 402, 403, 378, 377, 376, + 344, 345,32767,32767, 349, 320, 351,32767,32767,32767, + 32767,32767,32767,32767,32767, 94,32767, 350, 367, 368, + 365, 366, 369, 370, 371, 372, 373,32767,32767,32767, + 296, 358, 359, 253, 253, 253, 253, 253, 253, 253, + 32767, 253,32767,32767,32767,32767,32767,32767,32767,32767, + 454, 375, 353, 354, 352,32767, 431,32767,32767,32767, + 32767,32767, 433,32767, 92,32767,32767,32767, 456, 341, + 343, 424, 505, 324, 508,32767,32767, 94, 418,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767, 417, 362, 520,32767, 459, - 32767, 354, 355, 356,32767,32767, 459, 459, 459,32767, - 459,32767, 459, 459,32767,32767,32767,32767,32767, 179, - 32767,32767,32767,32767, 94, 432, 432, 92, 92, 92, - 92, 427,32767, 179, 179,32767,32767,32767,32767,32767, - 179, 91, 91, 91, 91, 179, 179, 91, 194,32767, - 192, 192, 91,32767, 93,32767, 93, 196,32767, 473, - 196, 91, 179, 91, 216, 216, 408, 181, 255, 93, - 255, 255, 93, 408, 255, 179, 255, 91, 91,32767, - 91, 255,32767,32767,32767, 85,32767,32767,32767,32767, + 455,32767,32767,32767, 92,32767,32767, 92, 174, 230, + 232, 179,32767, 436,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 419,32767, 439,32767, 452, 471,32767, 360, 361, 363, - 32767, 461, 385, 386, 387, 388, 389, 390, 391, 393, - 32767, 422,32767,32767,32767, 87, 121, 272,32767, 518, - 87, 420,32767, 518,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 87, 87,32767,32767,32767,32767, - 32767, 498,32767, 519,32767, 459, 421,32767, 359, 435, - 478,32767,32767, 460,32767,32767,32767, 245, 247,32767, - 87,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 439,32767,32767,32767,32767,32767,32767,32767, 459,32767, + 32767,32767,32767,32767, 418, 363, 518,32767, 462, 355, + 356, 357,32767,32767, 462, 462,32767, 462,32767,32767, + 32767,32767,32767,32767, 179,32767,32767,32767,32767, 94, + 434, 434, 92, 92, 92, 92, 429,32767, 179, 179, + 32767,32767,32767,32767,32767, 179, 91, 91, 91, 91, + 179, 179, 91, 194,32767, 192, 192, 91,32767, 93, + 93,32767, 93, 196,32767, 478, 196, 91, 179, 91, + 216, 216, 409, 181, 255, 93, 255, 255, 93, 409, + 255, 179, 255, 91, 91,32767, 91, 255,32767,32767, + 32767, 85,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767, 420,32767, 449,32767, + 466, 476,32767, 361, 362, 364, 464, 386, 387, 388, + 389, 390, 391, 392, 394, 506,32767, 423,32767,32767, + 32767, 87, 121, 272,32767, 516, 87, 421,32767, 516, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 459,32767,32767, 242,32767,32767, - 32767, 312,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767, 85, 60,32767, 292,32767, + 87, 87,32767,32767,32767,32767,32767,32767, 517,32767, + 462, 422,32767, 360, 445, 483,32767, 463, 509,32767, + 32767,32767, 245, 247,32767, 87,32767,32767,32767,32767, + 32767,32767,32767,32767,32767, 449,32767,32767,32767,32767, + 32767,32767,32767, 462,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767, 462, + 32767,32767, 242,32767,32767,32767, 312,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 136, 136, 3, 275, 3, 275, 136, 136, 136, 275, - 275, 136, 136, 136, 136, 136, 136, 136, 169, 224, - 227, 216, 216, 284, 136, 136 + 85, 60,32767, 292,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767, 136, 136, 3, 275, 3, + 275, 136, 136, 136, 275, 275, 136, 136, 136, 136, + 136, 136, 136, 169, 224, 227, 216, 216, 284, 136, + 136 ); protected $goto = array( - 171, 144, 144, 144, 171, 152, 153, 152, 155, 187, - 172, 168, 168, 168, 168, 169, 169, 169, 169, 169, - 169, 169, 164, 165, 166, 167, 184, 182, 185, 447, - 448, 336, 449, 452, 453, 454, 455, 456, 457, 458, - 459, 931, 141, 145, 146, 147, 170, 148, 149, 143, - 150, 151, 154, 181, 183, 186, 206, 209, 211, 212, - 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 224, 244, 245, 266, 267, 268, 341, 342, 343, 498, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 156, 203, 157, 173, 174, - 175, 207, 176, 158, 159, 160, 177, 161, 208, 142, - 204, 162, 178, 205, 179, 180, 163, 567, 210, 465, - 210, 520, 520, 1045, 769, 1045, 1045, 1045, 1045, 1045, - 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 470, 470, - 470, 576, 702, 470, 500, 317, 321, 477, 501, 502, - 504, 299, 764, 485, 765, 470, 450, 450, 450, 729, - 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, - 450, 450, 450, 451, 451, 451, 703, 451, 451, 451, - 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, - 1121, 1121, 276, 729, 1136, 729, 491, 258, 491, 518, - 541, 499, 899, 579, 470, 470, 467, 561, 897, 1121, - 484, 510, 470, 470, 470, 331, 332, 738, 483, 549, - 906, 334, 690, 600, 527, 529, 296, 471, 542, 560, - 563, 839, 570, 578, 835, 907, 733, 721, 871, 496, - 497, 875, 514, 547, 720, 720, 814, 701, 564, 811, - 730, 730, 730, 732, 719, 844, 492, 804, 828, 809, - 809, 807, 809, 599, 1112, 462, 837, 832, 515, 867, - 1020, 914, 737, 1100, 1016, 509, 521, 523, 524, 572, - 705, 724, 525, 467, 718, 315, 537, 538, 1009, 791, - 543, 1010, 852, 857, 858, 489, 710, 847, 760, 755, - 756, 770, 979, 711, 757, 708, 758, 759, 709, 862, - 763, 803, 329, 575, 358, 348, 544, 352, 1089, 339, - 339, 282, 283, 285, 495, 346, 286, 347, 287, 350, - 528, 353, 1090, 1091, 1019, 1021, 3, 4, 319, 463, - 303, 534, 722, 725, 297, 476, 325, 300, 301, 872, - 486, 487, 604, 1024, 1022, 1076, 548, 854, 854, 854, - 854, 854, 854, 854, 1024, 854, 854, 407, 1017, 1012, - 876, 734, 854, 854, 854, 816, 400, 1120, 1120, 517, - 11, 1086, 1024, 1024, 1024, 1024, 461, 916, 1024, 1024, - 1095, 1095, 1086, 842, 842, 1107, 1120, 461, 1097, 1097, - 416, 0, 0, 777, 0, 0, 778, 0, 0, 0, - 0, 0, 0, 0, 1123, 805, 805, 805, 805, 1082, - 0, 799, 806, 0, 0, 0, 0, 0, 0, 0, + 172, 145, 145, 145, 145, 172, 154, 156, 188, 173, + 169, 169, 169, 169, 169, 170, 170, 170, 170, 170, + 170, 165, 166, 167, 168, 185, 183, 186, 443, 444, + 335, 445, 447, 448, 449, 450, 451, 452, 453, 454, + 927, 142, 146, 147, 148, 171, 149, 150, 151, 144, + 152, 153, 155, 182, 184, 187, 207, 210, 211, 214, + 216, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 241, 242, 262, 263, 264, 339, 340, 341, 493, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 157, 204, 158, 174, 175, + 176, 208, 177, 159, 160, 161, 178, 174, 162, 209, + 143, 205, 163, 179, 206, 180, 181, 164, 562, 461, + 571, 764, 345, 539, 1114, 1114, 1016, 338, 279, 280, + 282, 490, 283, 344, 284, 347, 523, 513, 536, 466, + 466, 466, 495, 1114, 466, 455, 455, 455, 455, 297, + 847, 852, 853, 498, 515, 515, 481, 697, 466, 1050, + 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1068, + 1068, 798, 328, 570, 1068, 1068, 1068, 1068, 1068, 1068, + 1068, 1068, 1068, 1068, 1066, 1066, 759, 1017, 760, 1066, + 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 494, + 894, 574, 698, 466, 466, 556, 892, 1018, 1076, 480, + 505, 466, 466, 466, 330, 331, 1005, 786, 544, 1006, + 333, 733, 446, 446, 724, 293, 467, 446, 446, 446, + 446, 446, 446, 446, 446, 446, 446, 479, 491, 492, + 272, 509, 595, 522, 524, 254, 685, 537, 555, 558, + 834, 565, 573, 830, 457, 457, 696, 1090, 1091, 901, + 520, 724, 902, 724, 532, 533, 806, 823, 804, 804, + 802, 804, 594, 700, 458, 832, 827, 316, 320, 473, + 496, 499, 487, 800, 800, 800, 800, 3, 4, 794, + 801, 705, 295, 755, 750, 751, 765, 1103, 706, 752, + 703, 753, 754, 704, 862, 758, 390, 314, 715, 715, + 1113, 1113, 538, 975, 725, 725, 725, 727, 714, 504, + 516, 518, 519, 567, 318, 459, 1129, 842, 916, 1113, + 510, 472, 857, 837, 837, 353, 482, 483, 302, 463, + 529, 1089, 720, 719, 298, 299, 713, 324, 1116, 294, + 1020, 1020, 717, 867, 403, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 599, 1095, 1095, 11, 1013, 849, + 849, 849, 1008, 543, 729, 1086, 1086, 811, 542, 1020, + 1020, 1020, 1020, 559, 871, 1020, 1020, 396, 512, 911, + 412, 0, 1097, 1097, 0, 728, 716, 866, 0, 0, + 870, 772, 0, 0, 773, 809, 0, 0, 0, 0, + 0, 0, 0, 1082, 463, 839, 0, 799, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 478, 0, + 0, 909, 732, 0, 1012, 0, 0, 0, 0, 0, + 869, 0, 1084, 1084, 869, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 874, 0, 1084, 1084, 874, 0, 0, - 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 464, 480, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 464, 0, - 480, 0, 0, 318, 0, 0, 468, 388, 0, 390, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 728, 0, 1128 + 0, 460, 476, 0, 0, 0, 1015, 0, 0, 0, + 0, 0, 460, 0, 476, 0, 0, 317, 0, 0, + 464, 383, 0, 385, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 723, 0, + 0, 1121 ); protected $gotoCheck = array( @@ -665,86 +656,84 @@ class Php7 extends \PhpParser\ParserAbstract 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 63, 56, 10, - 56, 86, 86, 86, 13, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 10, 10, - 10, 8, 17, 10, 98, 49, 49, 49, 49, 49, - 49, 80, 55, 10, 55, 10, 136, 136, 136, 26, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 138, 138, 138, 18, 138, 138, 138, - 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, - 149, 149, 135, 26, 12, 26, 85, 135, 85, 46, - 46, 7, 7, 7, 10, 10, 12, 7, 7, 149, - 10, 10, 10, 10, 10, 69, 69, 36, 39, 69, - 112, 69, 5, 39, 39, 39, 69, 10, 39, 39, - 39, 39, 39, 39, 39, 112, 14, 14, 14, 10, - 2, 14, 2, 12, 26, 26, 14, 16, 12, 40, - 26, 26, 26, 26, 26, 14, 137, 14, 16, 16, - 16, 16, 16, 16, 147, 16, 16, 16, 15, 95, - 93, 14, 14, 144, 14, 68, 68, 68, 68, 68, - 13, 15, 73, 12, 15, 52, 73, 73, 67, 67, - 54, 67, 91, 91, 91, 53, 13, 88, 13, 13, - 13, 13, 119, 13, 13, 13, 13, 13, 13, 90, - 13, 76, 76, 76, 89, 56, 56, 56, 140, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 142, 142, 12, 93, 37, 37, 65, 65, - 20, 24, 28, 30, 11, 65, 19, 80, 80, 97, - 65, 65, 82, 63, 93, 93, 23, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 65, 128, 125, - 100, 32, 63, 63, 63, 79, 71, 148, 148, 72, - 65, 98, 63, 63, 63, 63, 75, 115, 63, 63, - 8, 8, 98, 85, 85, 85, 148, 75, 98, 98, - 123, -1, -1, 63, -1, -1, 63, -1, -1, -1, - -1, -1, -1, -1, 148, 75, 75, 75, 75, 98, - -1, 75, 75, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 98, -1, 98, 98, 98, -1, -1, - 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 8, 8, -1, + 33, 33, 33, 33, 33, 33, 33, 33, 63, 10, + 8, 13, 56, 56, 150, 150, 93, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 46, 46, 10, + 10, 10, 98, 150, 10, 85, 85, 85, 85, 80, + 91, 91, 91, 85, 86, 86, 10, 17, 10, 86, + 86, 86, 86, 86, 86, 86, 86, 86, 86, 137, + 137, 76, 76, 76, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 138, 138, 55, 93, 55, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 7, + 7, 7, 18, 10, 10, 7, 7, 93, 93, 10, + 10, 10, 10, 10, 69, 69, 67, 67, 69, 67, + 69, 36, 140, 140, 26, 69, 10, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 39, 10, 2, + 136, 2, 39, 39, 39, 136, 5, 39, 39, 39, + 39, 39, 39, 39, 75, 75, 16, 145, 145, 112, + 73, 26, 112, 26, 73, 73, 40, 16, 16, 16, + 16, 16, 16, 13, 16, 16, 16, 49, 49, 49, + 49, 49, 139, 75, 75, 75, 75, 37, 37, 75, + 75, 13, 146, 13, 13, 13, 13, 148, 13, 13, + 13, 13, 13, 13, 95, 13, 117, 52, 26, 26, + 149, 149, 54, 120, 26, 26, 26, 26, 26, 68, + 68, 68, 68, 68, 65, 65, 12, 88, 15, 149, + 15, 65, 90, 85, 85, 89, 65, 65, 20, 12, + 24, 143, 30, 15, 80, 80, 15, 19, 149, 11, + 63, 63, 28, 97, 65, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 82, 8, 8, 65, 129, 63, + 63, 63, 126, 23, 32, 98, 98, 79, 12, 63, + 63, 63, 63, 12, 100, 63, 63, 71, 72, 115, + 124, -1, 98, 98, -1, 14, 14, 14, -1, -1, + 14, 63, -1, -1, 63, 14, -1, -1, -1, -1, + -1, -1, -1, 98, 12, 14, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, - 8, -1, -1, 8, -1, -1, 8, 8, -1, 8, + -1, 14, 14, -1, 14, -1, -1, -1, -1, -1, + 98, -1, 98, 98, 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 8, -1, 8 + -1, 8, 8, -1, -1, -1, 12, -1, -1, -1, + -1, -1, 8, -1, 8, -1, -1, 8, -1, -1, + 8, 8, -1, 8, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, + -1, 8 ); protected $gotoBase = array( - 0, 0, -342, 0, 0, 212, 0, 196, 131, 0, - -150, 51, -85, -17, -146, -128, 245, 140, 174, 43, - 71, 0, 0, 1, 52, 0, -110, 0, 37, 0, - 53, 0, 4, -23, 0, 0, 208, -268, 0, -363, - 230, 0, 0, 0, 0, 0, 164, 0, 0, 106, - 0, 0, 248, 65, 64, 137, 90, 0, 0, 0, - 0, 0, 0, 111, 0, -35, 0, -43, 28, -195, - 0, -15, -21, -303, 0, 144, 39, 0, 0, 6, - -254, 0, 22, 0, 0, 168, -104, 0, 45, 59, - 55, 31, 0, -44, 0, 242, 0, 41, 139, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -8, 0, 0, 17, 0, 0, 0, 49, - 0, 0, 0, -13, 0, 3, 0, 0, 9, 0, - 0, 0, 0, 0, 0, -78, -69, 231, -52, 0, - 58, 0, 26, 0, 243, 0, 0, 238, 120, -67, - 0, 0 + 0, 0, -338, 0, 0, 236, 0, 194, 110, 0, + -146, 59, 51, -21, 18, -62, 254, 155, 200, 45, + 73, 0, 0, 23, 54, 0, -41, 0, 48, 0, + 55, 0, 12, -23, 0, 0, 212, -312, 0, -339, + 247, 0, 0, 0, 0, 0, 103, 0, 0, 238, + 0, 0, 271, 0, 99, 171, -90, 0, 0, 0, + 0, 0, 0, 112, 0, -44, 0, -114, 75, -192, + 0, 1, -8, -320, 0, 16, -97, 0, 0, 13, + -252, 0, 35, 0, 0, 121, -58, 0, 78, 84, + 82, -107, 0, -187, 0, 276, 0, 46, 137, 0, + 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 22, 0, 0, 24, 0, 269, 0, 0, + 74, 0, 0, 0, -19, 0, 11, 0, 0, 14, + 0, 0, 0, 0, 0, 0, -26, -43, -28, 257, + 10, 0, 0, 85, 0, -48, 266, 0, 270, 57, + -129, 0, 0 ); protected $gotoDefault = array( - -32768, 422, 607, 2, 608, 680, 688, 552, 439, 577, - 440, 466, 337, 762, 920, 782, 744, 745, 746, 322, - 363, 313, 320, 535, 522, 412, 731, 383, 723, 409, - 726, 382, 735, 140, 553, 418, 739, 1, 741, 472, - 773, 310, 749, 311, 556, 751, 479, 753, 754, 316, - 323, 324, 924, 488, 519, 766, 213, 481, 767, 309, - 768, 776, 333, 314, 394, 419, 328, 901, 506, 531, - 378, 397, 516, 511, 490, 1031, 801, 403, 392, 815, - 298, 823, 605, 831, 834, 441, 442, 401, 846, 402, - 860, 507, 508, 1039, 396, 866, 384, 873, 1071, 387, - 877, 228, 880, 255, 550, 351, 885, 886, 6, 891, - 568, 569, 7, 243, 417, 915, 551, 381, 930, 366, - 998, 1000, 474, 410, 1013, 391, 559, 420, 1018, 1075, - 379, 443, 398, 284, 302, 257, 444, 460, 264, 445, - 399, 1078, 1085, 340, 1101, 281, 26, 1113, 1122, 294, - 494, 513 + -32768, 418, 602, 2, 603, 675, 683, 547, 435, 572, + 436, 462, 336, 757, 915, 777, 739, 740, 741, 321, + 358, 312, 319, 530, 517, 408, 726, 378, 718, 405, + 721, 377, 730, 141, 548, 414, 734, 1, 736, 468, + 768, 309, 744, 310, 551, 746, 475, 748, 749, 315, + 322, 323, 920, 484, 514, 761, 215, 477, 762, 308, + 763, 771, 332, 313, 389, 415, 327, 896, 501, 526, + 373, 393, 511, 506, 486, 1028, 796, 399, 387, 810, + 296, 818, 600, 826, 829, 437, 438, 397, 841, 398, + 855, 502, 503, 1036, 392, 861, 379, 868, 1072, 382, + 872, 237, 875, 251, 545, 348, 880, 881, 6, 886, + 563, 564, 7, 240, 413, 910, 546, 376, 485, 926, + 361, 994, 996, 470, 406, 1009, 386, 554, 416, 1014, + 1075, 374, 439, 394, 281, 440, 253, 300, 278, 456, + 260, 301, 441, 395, 1078, 1085, 277, 27, 1104, 1115, + 291, 489, 508 ); protected $ruleToNonTerminal = array( @@ -779,7 +768,7 @@ class Php7 extends \PhpParser\ParserAbstract 102, 102, 107, 107, 108, 108, 109, 109, 109, 109, 109, 110, 111, 111, 106, 106, 103, 103, 105, 105, 113, 113, 112, 112, 112, 112, 112, 112, 104, 114, - 114, 116, 115, 115, 52, 117, 117, 46, 46, 33, + 114, 116, 115, 115, 52, 118, 117, 117, 46, 46, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, @@ -788,20 +777,19 @@ class Php7 extends \PhpParser\ParserAbstract 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 124, 118, 118, 123, 123, - 126, 127, 127, 128, 129, 129, 129, 75, 75, 63, - 63, 63, 119, 119, 119, 131, 131, 120, 120, 122, - 122, 122, 125, 125, 136, 136, 136, 86, 138, 138, - 138, 121, 121, 121, 121, 121, 121, 121, 121, 121, - 121, 121, 121, 121, 121, 121, 121, 49, 49, 134, - 134, 134, 130, 130, 130, 139, 139, 139, 139, 139, - 139, 56, 56, 56, 98, 98, 98, 98, 142, 141, - 133, 133, 133, 133, 133, 133, 132, 132, 132, 140, - 140, 140, 140, 85, 143, 143, 144, 144, 144, 144, - 144, 144, 144, 137, 146, 146, 145, 145, 147, 147, - 147, 147, 147, 147, 135, 135, 135, 135, 149, 150, - 148, 148, 148, 148, 148, 148, 148, 151, 151, 151, - 151 + 33, 33, 33, 33, 33, 33, 125, 119, 119, 124, + 124, 127, 128, 128, 129, 130, 130, 130, 75, 75, + 63, 63, 63, 120, 120, 120, 120, 132, 132, 121, + 121, 123, 123, 123, 126, 126, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 138, 138, 86, 140, 140, + 140, 140, 122, 122, 122, 122, 122, 122, 122, 122, + 49, 49, 135, 135, 135, 135, 141, 141, 131, 131, + 131, 142, 142, 142, 142, 142, 56, 56, 56, 98, + 98, 98, 98, 145, 144, 134, 134, 134, 134, 134, + 134, 133, 133, 133, 143, 143, 143, 143, 85, 139, + 147, 147, 146, 146, 148, 148, 148, 148, 148, 148, + 148, 148, 136, 136, 136, 136, 150, 151, 149, 149, + 149, 149, 149, 149, 149, 152, 152, 152, 152 ); protected $ruleToLength = array( @@ -836,29 +824,28 @@ class Php7 extends \PhpParser\ParserAbstract 3, 1, 1, 3, 0, 2, 4, 5, 4, 4, 4, 3, 1, 1, 1, 1, 1, 1, 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, - 3, 1, 1, 3, 2, 3, 1, 0, 1, 1, - 3, 3, 3, 4, 1, 2, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, - 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, + 3, 1, 1, 3, 2, 2, 3, 1, 0, 1, + 1, 3, 3, 3, 4, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 5, 4, 3, 4, 4, - 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 1, 3, 2, 1, 2, 4, - 2, 8, 9, 8, 9, 7, 3, 2, 0, 4, - 2, 1, 3, 2, 2, 2, 4, 1, 1, 1, - 2, 3, 1, 1, 1, 1, 1, 0, 3, 0, - 1, 1, 0, 1, 1, 3, 3, 3, 4, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 3, 2, 3, 3, 0, 1, 1, - 3, 1, 1, 3, 1, 1, 4, 4, 4, 1, - 4, 1, 1, 3, 1, 4, 2, 2, 1, 3, - 1, 4, 4, 3, 3, 3, 1, 3, 1, 1, - 3, 1, 1, 4, 3, 1, 1, 2, 1, 3, - 4, 3, 0, 1, 1, 1, 3, 1, 3, 1, - 4, 2, 2, 0, 2, 2, 1, 2, 1, 1, - 1, 4, 3, 3, 3, 6, 3, 1, 1, 2, - 1 + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 5, 4, 3, 4, + 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 1, 3, 2, 1, 2, + 4, 2, 8, 9, 8, 9, 7, 3, 2, 0, + 4, 2, 1, 3, 2, 2, 2, 4, 1, 1, + 1, 2, 3, 1, 1, 3, 1, 1, 1, 0, + 3, 0, 1, 1, 0, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 3, 3, 3, 4, 1, + 1, 3, 1, 1, 1, 1, 1, 3, 2, 3, + 0, 1, 1, 3, 1, 1, 1, 1, 1, 3, + 1, 1, 4, 4, 1, 4, 1, 1, 3, 1, + 4, 2, 2, 1, 3, 1, 4, 4, 3, 3, + 3, 1, 3, 1, 1, 3, 1, 1, 4, 1, + 1, 1, 3, 1, 1, 2, 1, 3, 4, 3, + 2, 0, 2, 2, 1, 2, 1, 1, 1, 4, + 3, 3, 3, 6, 3, 1, 1, 2, 1 ); protected function initReduceCallbacks() { @@ -876,7 +863,7 @@ class Php7 extends \PhpParser\ParserAbstract $this->semValue = array(); }, 4 => function ($stackPos) { - $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createZeroLengthAttributes($startAttributes)); } else { $nop = null; }; + $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createCommentNopAttributes($startAttributes['comments'])); } else { $nop = null; }; if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 5 => function ($stackPos) { @@ -1282,7 +1269,7 @@ class Php7 extends \PhpParser\ParserAbstract $this->semValue = array(); }, 137 => function ($stackPos) { - $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createZeroLengthAttributes($startAttributes)); } else { $nop = null; }; + $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createCommentNopAttributes($startAttributes['comments'])); } else { $nop = null; }; if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 138 => function ($stackPos) { @@ -1710,7 +1697,7 @@ class Php7 extends \PhpParser\ParserAbstract $this->semValue = array(); }, 276 => function ($stackPos) { - $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createZeroLengthAttributes($startAttributes)); } else { $nop = null; }; + $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createCommentNopAttributes($startAttributes['comments'])); } else { $nop = null; }; if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 277 => function ($stackPos) { @@ -1830,22 +1817,22 @@ class Php7 extends \PhpParser\ParserAbstract $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 315 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 316 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 317 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 318 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = array(); }, 319 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 320 => function ($stackPos) { - $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 321 => function ($stackPos) { $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); @@ -1854,427 +1841,427 @@ class Php7 extends \PhpParser\ParserAbstract $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 323 => function ($stackPos) { - $this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 324 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 325 => function ($stackPos) { - $this->semValue = new Expr\Clone_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 326 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\Clone_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 327 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 328 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 329 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 330 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 331 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 332 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 333 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 334 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 335 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 336 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 337 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 338 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 339 => function ($stackPos) { - $this->semValue = new Expr\PostInc($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 340 => function ($stackPos) { - $this->semValue = new Expr\PreInc($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\PostInc($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 341 => function ($stackPos) { - $this->semValue = new Expr\PostDec($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\PreInc($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 342 => function ($stackPos) { - $this->semValue = new Expr\PreDec($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\PostDec($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 343 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\PreDec($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 344 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 345 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 346 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 347 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 348 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 349 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 350 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 351 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 352 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 353 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 354 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 355 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 356 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 357 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 358 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 359 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 360 => function ($stackPos) { - $this->semValue = new Expr\UnaryPlus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 361 => function ($stackPos) { - $this->semValue = new Expr\UnaryMinus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\UnaryPlus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 362 => function ($stackPos) { - $this->semValue = new Expr\BooleanNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\UnaryMinus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 363 => function ($stackPos) { - $this->semValue = new Expr\BitwiseNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\BooleanNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 364 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BitwiseNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 365 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 366 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 367 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 368 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Spaceship($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 369 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Spaceship($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 370 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 371 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 372 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 373 => function ($stackPos) { - $this->semValue = new Expr\Instanceof_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 374 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = new Expr\Instanceof_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 375 => function ($stackPos) { - $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 376 => function ($stackPos) { - $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(4-1)], null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, 377 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(4-1)], null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 378 => function ($stackPos) { - $this->semValue = new Expr\Isset_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 379 => function ($stackPos) { - $this->semValue = new Expr\Empty_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Isset_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 380 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Empty_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 381 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 382 => function ($stackPos) { - $this->semValue = new Expr\Eval_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 383 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Eval_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 384 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 385 => function ($stackPos) { - $this->semValue = new Expr\Cast\Int_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 386 => function ($stackPos) { + $this->semValue = new Expr\Cast\Int_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 387 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes; $attrs['kind'] = $this->getFloatCastKind($this->semStack[$stackPos-(2-1)]); $this->semValue = new Expr\Cast\Double($this->semStack[$stackPos-(2-2)], $attrs); }, - 387 => function ($stackPos) { + 388 => function ($stackPos) { $this->semValue = new Expr\Cast\String_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 388 => function ($stackPos) { + 389 => function ($stackPos) { $this->semValue = new Expr\Cast\Array_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 389 => function ($stackPos) { + 390 => function ($stackPos) { $this->semValue = new Expr\Cast\Object_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 390 => function ($stackPos) { + 391 => function ($stackPos) { $this->semValue = new Expr\Cast\Bool_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 391 => function ($stackPos) { + 392 => function ($stackPos) { $this->semValue = new Expr\Cast\Unset_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 392 => function ($stackPos) { + 393 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes; $attrs['kind'] = strtolower($this->semStack[$stackPos-(2-1)]) === 'exit' ? Expr\Exit_::KIND_EXIT : Expr\Exit_::KIND_DIE; $this->semValue = new Expr\Exit_($this->semStack[$stackPos-(2-2)], $attrs); }, - 393 => function ($stackPos) { + 394 => function ($stackPos) { $this->semValue = new Expr\ErrorSuppress($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 394 => function ($stackPos) { + 395 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 395 => function ($stackPos) { + 396 => function ($stackPos) { $this->semValue = new Expr\ShellExec($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 396 => function ($stackPos) { + 397 => function ($stackPos) { $this->semValue = new Expr\Print_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 397 => function ($stackPos) { + 398 => function ($stackPos) { $this->semValue = new Expr\Yield_(null, null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 398 => function ($stackPos) { + 399 => function ($stackPos) { $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(2-2)], null, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 399 => function ($stackPos) { + 400 => function ($stackPos) { $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-2)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 400 => function ($stackPos) { + 401 => function ($stackPos) { $this->semValue = new Expr\YieldFrom($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 401 => function ($stackPos) { + 402 => function ($stackPos) { $this->semValue = new Expr\ArrowFunction(['static' => false, 'byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-4)], 'returnType' => $this->semStack[$stackPos-(8-6)], 'expr' => $this->semStack[$stackPos-(8-8)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); }, - 402 => function ($stackPos) { + 403 => function ($stackPos) { $this->semValue = new Expr\ArrowFunction(['static' => true, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'returnType' => $this->semStack[$stackPos-(9-7)], 'expr' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); }, - 403 => function ($stackPos) { + 404 => function ($stackPos) { $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-4)], 'uses' => $this->semStack[$stackPos-(8-6)], 'returnType' => $this->semStack[$stackPos-(8-7)], 'stmts' => $this->semStack[$stackPos-(8-8)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); }, - 404 => function ($stackPos) { + 405 => function ($stackPos) { $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'uses' => $this->semStack[$stackPos-(9-7)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); }, - 405 => function ($stackPos) { + 406 => function ($stackPos) { $this->semValue = array(new Stmt\Class_(null, ['type' => 0, 'extends' => $this->semStack[$stackPos-(7-3)], 'implements' => $this->semStack[$stackPos-(7-4)], 'stmts' => $this->semStack[$stackPos-(7-6)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes), $this->semStack[$stackPos-(7-2)]); $this->checkClass($this->semValue[0], -1); }, - 406 => function ($stackPos) { + 407 => function ($stackPos) { $this->semValue = new Expr\New_($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 407 => function ($stackPos) { + 408 => function ($stackPos) { list($class, $ctorArgs) = $this->semStack[$stackPos-(2-2)]; $this->semValue = new Expr\New_($class, $ctorArgs, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 408 => function ($stackPos) { + 409 => function ($stackPos) { $this->semValue = array(); }, - 409 => function ($stackPos) { + 410 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(4-3)]; }, - 410 => function ($stackPos) { + 411 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(2-1)]; }, - 411 => function ($stackPos) { + 412 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, - 412 => function ($stackPos) { + 413 => function ($stackPos) { $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, - 413 => function ($stackPos) { - $this->semValue = new Expr\ClosureUse($this->semStack[$stackPos-(2-2)], $this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); - }, 414 => function ($stackPos) { - $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\ClosureUse($this->semStack[$stackPos-(2-2)], $this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 415 => function ($stackPos) { $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 416 => function ($stackPos) { - $this->semValue = new Expr\StaticCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 417 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\StaticCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 418 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 419 => function ($stackPos) { $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, + 419 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, 420 => function ($stackPos) { - $this->semValue = new Name\FullyQualified($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 421 => function ($stackPos) { - $this->semValue = new Name\Relative($this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Name\FullyQualified($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 422 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Name\Relative($this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 423 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 424 => function ($stackPos) { - $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 425 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 426 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 427 => function ($stackPos) { - $this->semValue = null; - }, - 428 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(3-2)]; }, - 429 => function ($stackPos) { - $this->semValue = array(); + 426 => function ($stackPos) { + $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; }, - 430 => function ($stackPos) { - $this->semValue = array(new Scalar\EncapsedStringPart(Scalar\String_::parseEscapeSequences($this->semStack[$stackPos-(1-1)], '`'), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes)); - }, - 431 => function ($stackPos) { - foreach ($this->semStack[$stackPos-(1-1)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', true); } }; $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 432 => function ($stackPos) { - $this->semValue = array(); - }, - 433 => function ($stackPos) { + 427 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, + 428 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 429 => function ($stackPos) { + $this->semValue = null; + }, + 430 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 431 => function ($stackPos) { + $this->semValue = array(); + }, + 432 => function ($stackPos) { + $this->semValue = array(new Scalar\EncapsedStringPart(Scalar\String_::parseEscapeSequences($this->semStack[$stackPos-(1-1)], '`'), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes)); + }, + 433 => function ($stackPos) { + foreach ($this->semStack[$stackPos-(1-1)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', true); } }; $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, 434 => function ($stackPos) { - $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = array(); }, 435 => function ($stackPos) { - $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 436 => function ($stackPos) { - $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], new Expr\Error($this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)]), $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->errorState = 2; + $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 437 => function ($stackPos) { + $this->semValue = new Scalar\MagicConst\Line($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 438 => function ($stackPos) { + $this->semValue = new Scalar\MagicConst\File($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 439 => function ($stackPos) { + $this->semValue = new Scalar\MagicConst\Dir($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 440 => function ($stackPos) { + $this->semValue = new Scalar\MagicConst\Class_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 441 => function ($stackPos) { + $this->semValue = new Scalar\MagicConst\Trait_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 442 => function ($stackPos) { + $this->semValue = new Scalar\MagicConst\Method($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 443 => function ($stackPos) { + $this->semValue = new Scalar\MagicConst\Function_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 444 => function ($stackPos) { + $this->semValue = new Scalar\MagicConst\Namespace_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 445 => function ($stackPos) { + $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 446 => function ($stackPos) { + $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], new Expr\Error($this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)]), $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->errorState = 2; + }, + 447 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_SHORT; $this->semValue = new Expr\Array_($this->semStack[$stackPos-(3-2)], $attrs); }, - 438 => function ($stackPos) { + 448 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_LONG; $this->semValue = new Expr\Array_($this->semStack[$stackPos-(4-3)], $attrs); }, - 439 => function ($stackPos) { + 449 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 440 => function ($stackPos) { + 450 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes; $attrs['kind'] = ($this->semStack[$stackPos-(1-1)][0] === "'" || ($this->semStack[$stackPos-(1-1)][1] === "'" && ($this->semStack[$stackPos-(1-1)][0] === 'b' || $this->semStack[$stackPos-(1-1)][0] === 'B')) ? Scalar\String_::KIND_SINGLE_QUOTED : Scalar\String_::KIND_DOUBLE_QUOTED); $this->semValue = new Scalar\String_(Scalar\String_::parse($this->semStack[$stackPos-(1-1)]), $attrs); }, - 441 => function ($stackPos) { - $this->semValue = $this->parseLNumber($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 442 => function ($stackPos) { - $this->semValue = new Scalar\DNumber(Scalar\DNumber::parse($this->semStack[$stackPos-(1-1)]), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 443 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Line($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 444 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\File($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 445 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Dir($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 446 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Class_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 447 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Trait_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 448 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Method($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 449 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Function_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 450 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Namespace_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, 451 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 452 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 453 => function ($stackPos) { - $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], true); - }, - 454 => function ($stackPos) { - $this->semValue = $this->parseDocString($this->semStack[$stackPos-(2-1)], '', $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(2-2)] + $this->endAttributeStack[$stackPos-(2-2)], true); - }, - 455 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED; foreach ($this->semStack[$stackPos-(3-2)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '"', true); } }; $this->semValue = new Scalar\Encapsed($this->semStack[$stackPos-(3-2)], $attrs); }, + 452 => function ($stackPos) { + $this->semValue = $this->parseLNumber($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 453 => function ($stackPos) { + $this->semValue = new Scalar\DNumber(Scalar\DNumber::parse($this->semStack[$stackPos-(1-1)]), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 454 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 455 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, 456 => function ($stackPos) { - $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], true); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 457 => function ($stackPos) { - $this->semValue = null; + $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], true); }, 458 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = $this->parseDocString($this->semStack[$stackPos-(2-1)], '', $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(2-2)] + $this->endAttributeStack[$stackPos-(2-2)], true); }, 459 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], true); }, 460 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = null; }, 461 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; @@ -2289,201 +2276,195 @@ class Php7 extends \PhpParser\ParserAbstract $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 465 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 466 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 467 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 468 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 469 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 470 => function ($stackPos) { - $this->semValue = new Expr\MethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 471 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 472 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 473 => function ($stackPos) { - $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); - }, - 474 => function ($stackPos) { - $this->semValue = substr($this->semStack[$stackPos-(1-1)], 1); - }, - 475 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-3)]; - }, - 476 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); - }, - 477 => function ($stackPos) { - $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); $this->errorState = 2; - }, - 478 => function ($stackPos) { - $var = $this->semStack[$stackPos-(1-1)]; $this->semValue = \is_string($var) ? new Node\VarLikeIdentifier($var, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes) : $var; - }, - 479 => function ($stackPos) { - $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); - }, - 480 => function ($stackPos) { $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 481 => function ($stackPos) { + 472 => function ($stackPos) { $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, + 473 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 474 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 475 => function ($stackPos) { + $this->semValue = new Expr\MethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 476 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 477 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 478 => function ($stackPos) { + $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 479 => function ($stackPos) { + $this->semValue = substr($this->semStack[$stackPos-(1-1)], 1); + }, + 480 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(4-3)]; + }, + 481 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, 482 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); $this->errorState = 2; }, 483 => function ($stackPos) { - $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $var = $this->semStack[$stackPos-(1-1)]; $this->semValue = \is_string($var) ? new Node\VarLikeIdentifier($var, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes) : $var; }, 484 => function ($stackPos) { $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 485 => function ($stackPos) { - $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 486 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 487 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 488 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 489 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 490 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 491 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 492 => function ($stackPos) { - $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; - }, - 493 => function ($stackPos) { - $this->semValue = new Expr\List_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); - }, - 494 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 495 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 496 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 497 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); - }, - 498 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 499 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); - }, - 500 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-1)], true, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); - }, - 501 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); - }, - 502 => function ($stackPos) { - $this->semValue = null; - }, - 503 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; $end = count($this->semValue)-1; if ($this->semValue[$end] === null) array_pop($this->semValue); - }, - 504 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos]; - }, - 505 => function ($stackPos) { - /* do nothing -- prevent default action of $$=$this->semStack[$1]. See $551. */ - }, - 506 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 507 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 508 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); - }, - 509 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 510 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-1)], true, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); - }, - 511 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); - }, - 512 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); - }, - 513 => function ($stackPos) { - $this->semValue = null; - }, - 514 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 515 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 516 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 517 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); - }, - 518 => function ($stackPos) { - $this->semValue = new Scalar\EncapsedStringPart($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 519 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 520 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 521 => function ($stackPos) { $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 522 => function ($stackPos) { + 487 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 488 => function ($stackPos) { $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 523 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + 489 => function ($stackPos) { + $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 524 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + 490 => function ($stackPos) { + $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 525 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-4)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + 491 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 526 => function ($stackPos) { + 492 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(3-2)]; }, - 527 => function ($stackPos) { + 493 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 494 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 495 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 496 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 497 => function ($stackPos) { + $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; + }, + 498 => function ($stackPos) { + $this->semValue = new Expr\List_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 499 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; $end = count($this->semValue)-1; if ($this->semValue[$end] === null) array_pop($this->semValue); + }, + 500 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 501 => function ($stackPos) { + /* do nothing -- prevent default action of $$=$this->semStack[$1]. See $551. */ + }, + 502 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 503 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 504 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 505 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 506 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 507 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 508 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-1)], true, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 509 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 510 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 511 => function ($stackPos) { + $this->semValue = null; + }, + 512 => function ($stackPos) { + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 513 => function ($stackPos) { + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 514 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 515 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); + }, + 516 => function ($stackPos) { + $this->semValue = new Scalar\EncapsedStringPart($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 517 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 518 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 519 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 520 => function ($stackPos) { + $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 521 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 522 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 523 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-4)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + }, + 524 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 525 => function ($stackPos) { $this->semValue = new Scalar\String_($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 528 => function ($stackPos) { + 526 => function ($stackPos) { $this->semValue = $this->parseNumString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 529 => function ($stackPos) { + 527 => function ($stackPos) { $this->semValue = $this->parseNumString('-' . $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 530 => function ($stackPos) { + 528 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, ]; diff --git a/vendor/nikic/php-parser/lib/PhpParser/ParserAbstract.php b/vendor/nikic/php-parser/lib/PhpParser/ParserAbstract.php index 4d968cd3c..80dc560fa 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/ParserAbstract.php +++ b/vendor/nikic/php-parser/lib/PhpParser/ParserAbstract.php @@ -842,21 +842,29 @@ abstract class ParserAbstract implements Parser } /** - * Create attributes for a zero-length node with the given start attributes. + * Create attributes for a zero-length common-capturing nop. * - * @param array $startAttributes + * @param Comment[] $comments * @return array */ - protected function createZeroLengthAttributes(array $startAttributes) { - $attributes = $startAttributes; - if (isset($startAttributes['startLine'])) { - $attributes['endLine'] = $startAttributes['startLine']; + protected function createCommentNopAttributes(array $comments) { + $comment = $comments[count($comments) - 1]; + $commentEndLine = $comment->getEndLine(); + $commentEndFilePos = $comment->getEndFilePos(); + $commentEndTokenPos = $comment->getEndTokenPos(); + + $attributes = ['comments' => $comments]; + if (-1 !== $commentEndLine) { + $attributes['startLine'] = $commentEndLine; + $attributes['endLine'] = $commentEndLine; } - if (isset($startAttributes['startTokenPos'])) { - $attributes['endTokenPos'] = $startAttributes['startTokenPos'] - 1; + if (-1 !== $commentEndFilePos) { + $attributes['startFilePos'] = $commentEndFilePos + 1; + $attributes['endFilePos'] = $commentEndFilePos; } - if (isset($startAttributes['startFilePos'])) { - $attributes['endFilePos'] = $startAttributes['startFilePos'] - 1; + if (-1 !== $commentEndTokenPos) { + $attributes['startTokenPos'] = $commentEndTokenPos + 1; + $attributes['endTokenPos'] = $commentEndTokenPos; } return $attributes; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php b/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php index d554d6c03..05d9ba1dc 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php +++ b/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php @@ -756,20 +756,13 @@ abstract class PrettyPrinterAbstract $itemEndPos = $origArrItem->getEndTokenPos(); \assert($itemStartPos >= 0 && $itemEndPos >= 0); - if ($itemEndPos < $itemStartPos) { - // End can be before start for Nop nodes, because offsets refer to non-whitespace - // locations, which for an "empty" node might result in an inverted order. - assert($origArrItem instanceof Stmt\Nop); - continue; - } - $origIndentLevel = $this->indentLevel; $lastElemIndentLevel = $this->origTokens->getIndentationBefore($itemStartPos) + $indentAdjustment; $this->setIndentLevel($lastElemIndentLevel); $comments = $arrItem->getComments(); $origComments = $origArrItem->getComments(); - $commentStartPos = $origComments ? $origComments[0]->getTokenPos() : $itemStartPos; + $commentStartPos = $origComments ? $origComments[0]->getStartTokenPos() : $itemStartPos; \assert($commentStartPos >= 0); $commentsChanged = $comments !== $origComments; diff --git a/vendor/phpdocumentor/reflection-common/.github/workflows/push.yml b/vendor/phpdocumentor/reflection-common/.github/workflows/push.yml new file mode 100644 index 000000000..31c4e2364 --- /dev/null +++ b/vendor/phpdocumentor/reflection-common/.github/workflows/push.yml @@ -0,0 +1,223 @@ +on: + push: + branches: + - master + pull_request: +name: Qa workflow +jobs: + setup: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + + - name: Restore/cache vendor folder + uses: actions/cache@v1 + with: + path: vendor + key: all-build-${{ hashFiles('**/composer.lock') }} + restore-keys: | + all-build-${{ hashFiles('**/composer.lock') }} + all-build- + + - name: Restore/cache tools folder + uses: actions/cache@v1 + with: + path: tools + key: all-tools-${{ github.sha }} + restore-keys: | + all-tools-${{ github.sha }}- + all-tools- + + - name: composer + uses: docker://composer + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + args: install --no-interaction --prefer-dist --optimize-autoloader + + - name: Install phive + run: make install-phive + + - name: Install PHAR dependencies + run: tools/phive.phar --no-progress install --copy --trust-gpg-keys 4AA394086372C20A,8A03EA3B385DBAA1 --force-accept-unsigned + + phpunit-with-coverage: + runs-on: ubuntu-latest + name: Unit tests + needs: setup + steps: + - uses: actions/checkout@master + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: 7.2 + ini-values: memory_limit=2G, display_errors=On, error_reporting=-1 + coverage: pcov + + - name: Restore/cache tools folder + uses: actions/cache@v1 + with: + path: tools + key: all-tools-${{ github.sha }} + restore-keys: | + all-tools-${{ github.sha }}- + all-tools- + + - name: Get composer cache directory + id: composer-cache + run: echo "::set-output name=dir::$(composer config cache-files-dir)" + + - name: Cache composer dependencies + uses: actions/cache@v1 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ubuntu-latest-composer-${{ hashFiles('**/composer.lock') }} + restore-keys: ubuntu-latest-composer- + + - name: Install Composer dependencies + run: | + composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + + - name: Run PHPUnit + run: php tools/phpunit + + phpunit: + runs-on: ${{ matrix.operating-system }} + strategy: + matrix: + operating-system: + - ubuntu-latest + - windows-latest + - macOS-latest + php-versions: ['7.2', '7.3', '7.4'] + name: Unit tests for PHP version ${{ matrix.php-versions }} on ${{ matrix.operating-system }} + needs: + - setup + - phpunit-with-coverage + steps: + - uses: actions/checkout@master + + - name: Restore/cache tools folder + uses: actions/cache@v1 + with: + path: tools + key: all-tools-${{ github.sha }} + restore-keys: | + all-tools-${{ github.sha }}- + all-tools- + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-versions }} + ini-values: memory_limit=2G, display_errors=On, error_reporting=-1 + coverage: none + + - name: Get composer cache directory + id: composer-cache + run: echo "::set-output name=dir::$(composer config cache-files-dir)" + + - name: Cache composer dependencies + uses: actions/cache@v1 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} + restore-keys: ${{ runner.os }}-composer- + + - name: Install Composer dependencies + run: | + composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + + - name: Run PHPUnit + continue-on-error: true + run: php tools/phpunit + + codestyle: + runs-on: ubuntu-latest + needs: [setup, phpunit] + steps: + - uses: actions/checkout@master + - name: Restore/cache vendor folder + uses: actions/cache@v1 + with: + path: vendor + key: all-build-${{ hashFiles('**/composer.lock') }} + restore-keys: | + all-build-${{ hashFiles('**/composer.lock') }} + all-build- + - name: Code style check + uses: phpDocumentor/coding-standard@master + with: + args: -s + + phpstan: + runs-on: ubuntu-latest + needs: [setup, phpunit] + steps: + - uses: actions/checkout@master + - name: Restore/cache vendor folder + uses: actions/cache@v1 + with: + path: vendor + key: all-build-${{ hashFiles('**/composer.lock') }} + restore-keys: | + all-build-${{ hashFiles('**/composer.lock') }} + all-build- + - name: PHPStan + uses: phpDocumentor/phpstan-ga@master + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + args: analyse src --configuration phpstan.neon + + psalm: + runs-on: ubuntu-latest + needs: [setup, phpunit] + steps: + - uses: actions/checkout@master + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: 7.2 + ini-values: memory_limit=2G, display_errors=On, error_reporting=-1 + tools: psalm + coverage: none + + - name: Get composer cache directory + id: composer-cache + run: echo "::set-output name=dir::$(composer config cache-files-dir)" + + - name: Cache composer dependencies + uses: actions/cache@v1 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} + restore-keys: ${{ runner.os }}-composer- + + - name: Install Composer dependencies + run: | + composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + + - name: Psalm + run: psalm --output-format=github + + bc_check: + name: BC Check + runs-on: ubuntu-latest + needs: [setup, phpunit] + steps: + - uses: actions/checkout@master + - name: fetch tags + run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* + - name: Restore/cache vendor folder + uses: actions/cache@v1 + with: + path: vendor + key: all-build-${{ hashFiles('**/composer.lock') }} + restore-keys: | + all-build-${{ hashFiles('**/composer.lock') }} + all-build- + - name: Roave BC Check + uses: docker://nyholm/roave-bc-check-ga diff --git a/vendor/phpdocumentor/reflection-common/.travis.yml b/vendor/phpdocumentor/reflection-common/.travis.yml index 2263ed436..e3fcdc880 100644 --- a/vendor/phpdocumentor/reflection-common/.travis.yml +++ b/vendor/phpdocumentor/reflection-common/.travis.yml @@ -1,13 +1,9 @@ language: php -php: [ 7.1, 7.2, nightly ] -sudo: false -env: +php: [ 7.1, 7.2, 7.3, 7.4 ] matrix: fast_finish: true - allow_failures: - - php: nightly install: - travis_retry composer install --no-interaction --prefer-dist --optimize-autoloader @@ -30,7 +26,7 @@ jobs: php: 7.1 before_script: - travis_retry wget --no-verbose https://phar.io/releases/phive.phar - - travis_retry php phive.phar --no-progress install --trust-gpg-keys 8E730BA25823D8B5 phpstan + - travis_retry php phive.phar --no-progress install --trust-gpg-keys CF1A108D0E7AE720 phpstan script: - ./tools/phpstan analyse src --level max --configuration phpstan.neon diff --git a/vendor/phpdocumentor/reflection-common/Makefile b/vendor/phpdocumentor/reflection-common/Makefile new file mode 100644 index 000000000..ecd898113 --- /dev/null +++ b/vendor/phpdocumentor/reflection-common/Makefile @@ -0,0 +1,35 @@ +.PHONY: install-phive +install-phive: + mkdir tools; \ + wget -O tools/phive.phar https://github.com/phar-io/phive/releases/download/0.13.2/phive-0.13.2.phar; \ + wget -O tools/phive.phar.asc https://github.com/phar-io/phive/releases/download/0.13.2/phive-0.13.2.phar.asc; \ + gpg --keyserver pool.sks-keyservers.net --recv-keys 0x9D8A98B29B2D5D79; \ + gpg --verify tools/phive.phar.asc tools/phive.phar; \ + chmod +x tools/phive.phar + +.PHONY: setup +setup: install-phive + docker run -it --rm -v${PWD}:/opt/project -w /opt/project phpdoc/phar-ga:latest php tools/phive.phar install --force-accept-unsigned + +.PHONY: phpcs +phpcs: + docker run -it --rm -v${PWD}:/opt/project -w /opt/project phpdoc/phpcs-ga:latest -s + +.PHONY: phpcbf +phpcbf: + docker run -it --rm -v${PWD}:/opt/project -w /opt/project phpdoc/phpcs-ga:latest phpcbf + +.PHONY: phpstan +phpstan: + docker run -it --rm -v${PWD}:/opt/project -w /opt/project phpdoc/phpstan-ga:latest analyse src --no-progress --configuration phpstan.neon + +.PHONY: psalm +psalm: + docker run -it --rm -v${PWD}:/opt/project -w /opt/project php:7.2 tools/psalm --show-info=true +.PHONY: test +test: + docker run -it --rm -v${PWD}:/opt/project -w /opt/project php:7.2 tools/phpunit + +.PHONY: pre-commit-test +pre-commit-test: test phpcs phpstan psalm + diff --git a/vendor/phpdocumentor/reflection-common/composer.json b/vendor/phpdocumentor/reflection-common/composer.json index 6daeb50e4..90afe7287 100644 --- a/vendor/phpdocumentor/reflection-common/composer.json +++ b/vendor/phpdocumentor/reflection-common/composer.json @@ -19,7 +19,6 @@ } }, "require-dev": { - "phpunit/phpunit": "~6" }, "extra": { "branch-alias": { diff --git a/vendor/phpdocumentor/reflection-common/phive.xml b/vendor/phpdocumentor/reflection-common/phive.xml index 5630fde4a..b82f7d096 100644 --- a/vendor/phpdocumentor/reflection-common/phive.xml +++ b/vendor/phpdocumentor/reflection-common/phive.xml @@ -1,5 +1,5 @@ - - + + diff --git a/vendor/phpdocumentor/reflection-common/phpcs.xml.dist b/vendor/phpdocumentor/reflection-common/phpcs.xml.dist new file mode 100644 index 000000000..07c944386 --- /dev/null +++ b/vendor/phpdocumentor/reflection-common/phpcs.xml.dist @@ -0,0 +1,11 @@ + + + The coding standard for phpDocumentor. + + src + tests/unit + + + + + diff --git a/vendor/phpdocumentor/reflection-common/phpstan.neon b/vendor/phpdocumentor/reflection-common/phpstan.neon index e69de29bb..22254bcd0 100644 --- a/vendor/phpdocumentor/reflection-common/phpstan.neon +++ b/vendor/phpdocumentor/reflection-common/phpstan.neon @@ -0,0 +1,2 @@ +parameters: + level: max diff --git a/vendor/phpdocumentor/reflection-common/psalm.xml b/vendor/phpdocumentor/reflection-common/psalm.xml new file mode 100644 index 000000000..817941dac --- /dev/null +++ b/vendor/phpdocumentor/reflection-common/psalm.xml @@ -0,0 +1,14 @@ + + + + + + + + + diff --git a/vendor/phpdocumentor/reflection-common/src/Element.php b/vendor/phpdocumentor/reflection-common/src/Element.php index b3820f8e4..8923e4fb0 100644 --- a/vendor/phpdocumentor/reflection-common/src/Element.php +++ b/vendor/phpdocumentor/reflection-common/src/Element.php @@ -1,4 +1,5 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT * @link http://phpdoc.org */ @@ -22,15 +21,15 @@ interface File /** * Returns the content of the file as a string. */ - public function getContents(): string; + public function getContents() : string; /** * Returns md5 hash of the file. */ - public function md5(): string; + public function md5() : string; /** * Returns an relative path to the file. */ - public function path(): string; + public function path() : string; } diff --git a/vendor/phpdocumentor/reflection-common/src/Fqsen.php b/vendor/phpdocumentor/reflection-common/src/Fqsen.php index 9fc0c6408..8fc5d3441 100644 --- a/vendor/phpdocumentor/reflection-common/src/Fqsen.php +++ b/vendor/phpdocumentor/reflection-common/src/Fqsen.php @@ -1,4 +1,5 @@ name = $matches[2]; } else { $matches = explode('\\', $fqsen); - $this->name = trim(end($matches), '()'); + $name = end($matches); + assert(is_string($name)); + $this->name = trim($name, '()'); } } /** * converts this class to string. */ - public function __toString(): string + public function __toString() : string { return $this->fqsen; } @@ -74,7 +82,7 @@ final class Fqsen /** * Returns the name of the element without path. */ - public function getName(): string + public function getName() : string { return $this->name; } diff --git a/vendor/phpdocumentor/reflection-common/src/Location.php b/vendor/phpdocumentor/reflection-common/src/Location.php index fdb18163b..177deede6 100644 --- a/vendor/phpdocumentor/reflection-common/src/Location.php +++ b/vendor/phpdocumentor/reflection-common/src/Location.php @@ -1,4 +1,5 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT * @link http://phpdoc.org */ @@ -16,6 +15,8 @@ namespace phpDocumentor\Reflection; /** * The location where an element occurs within a file. + * + * @psalm-immutable */ final class Location { @@ -37,7 +38,7 @@ final class Location /** * Returns the line number that is covered by this location. */ - public function getLineNumber(): int + public function getLineNumber() : int { return $this->lineNumber; } @@ -45,7 +46,7 @@ final class Location /** * Returns the column number (character position on a line) for this location object. */ - public function getColumnNumber(): int + public function getColumnNumber() : int { return $this->columnNumber; } diff --git a/vendor/phpdocumentor/reflection-common/src/Project.php b/vendor/phpdocumentor/reflection-common/src/Project.php index 7d4b1768f..57839fd14 100644 --- a/vendor/phpdocumentor/reflection-common/src/Project.php +++ b/vendor/phpdocumentor/reflection-common/src/Project.php @@ -1,4 +1,5 @@ appveyor.yml - - '%LOCALAPPDATA%\Composer\files' - -init: - - SET PATH=C:\Program Files\OpenSSL;c:\tools\php;%PATH% - - SET COMPOSER_NO_INTERACTION=1 - - SET PHP=1 - - SET ANSICON=121x90 (121x90) - - -install: - - IF EXIST c:\tools\php (SET PHP=0) - - ps: appveyor-retry cinst --params '""/InstallDir:C:\tools\php""' --ignore-checksums -y php --version ((choco search php --exact --all-versions -r | select-string -pattern $env:php_ver_target | sort { [version]($_ -split '\|' | select -last 1) } -Descending | Select-Object -first 1) -replace '[php|]','') - - cd c:\tools\php - - IF %PHP%==1 copy /Y php.ini-development php.ini - - IF %PHP%==1 echo max_execution_time=1200 >> php.ini - - IF %PHP%==1 echo date.timezone="UTC" >> php.ini - - IF %PHP%==1 echo extension_dir=ext >> php.ini - - IF %PHP%==1 echo extension=php_curl.dll >> php.ini - - IF %PHP%==1 echo extension=php_openssl.dll >> php.ini - - IF %PHP%==1 echo extension=php_mbstring.dll >> php.ini - - IF %PHP%==1 echo extension=php_fileinfo.dll >> php.ini - - IF %PHP%==1 echo zend.assertions=1 >> php.ini - - IF %PHP%==1 echo assert.exception=On >> php.ini - - IF %PHP%==1 echo @php %%~dp0composer.phar %%* > composer.bat - - appveyor-retry appveyor DownloadFile https://getcomposer.org/composer.phar - - cd c:\reflectiondocblock - - composer install --no-interaction --prefer-dist --no-progress - - composer global require phpunit/phpunit ^6 - - composer global config bin-dir --absolute - -test_script: - - cd c:\reflectiondocblock - - c:\Users\appveyor\AppData\Roaming\Composer\vendor\bin\phpunit --no-coverage diff --git a/vendor/phpdocumentor/reflection-docblock/composer-require-config.json b/vendor/phpdocumentor/reflection-docblock/composer-require-config.json new file mode 100644 index 000000000..19eee4ff7 --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/composer-require-config.json @@ -0,0 +1,15 @@ +{ + "symbol-whitelist" : [ + "null", "true", "false", + "static", "self", "parent", + "array", "string", "int", "float", "bool", "iterable", "callable", "void", "object", "XSLTProcessor" + ], + "php-core-extensions" : [ + "Core", + "pcre", + "Reflection", + "tokenizer", + "SPL", + "standard" + ] +} diff --git a/vendor/phpdocumentor/reflection-docblock/composer.json b/vendor/phpdocumentor/reflection-docblock/composer.json index f15fe3857..008f1d861 100644 --- a/vendor/phpdocumentor/reflection-docblock/composer.json +++ b/vendor/phpdocumentor/reflection-docblock/composer.json @@ -1,34 +1,42 @@ { - "name": "phpdocumentor/reflection-docblock", + "name": "phpdocumentor/reflection-docblock", "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "type": "library", + "type": "library", "license": "MIT", "authors": [ { "name": "Mike van Riel", "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "account@ijaap.nl" } ], "require": { - "php": "^7.0", - "phpdocumentor/reflection-common": "^1.0.0 || ^2.0.0", - "phpdocumentor/type-resolver": "~0.4 || ^1.0.0", - "webmozart/assert": "^1.0" - }, - "autoload": { - "psr-4": {"phpDocumentor\\Reflection\\": ["src/"]} - }, - "autoload-dev": { - "psr-4": {"phpDocumentor\\Reflection\\": ["tests/unit"]} + "php": "^7.2", + "phpdocumentor/type-resolver": "^1.0", + "webmozart/assert": "^1", + "phpdocumentor/reflection-common": "^2.0", + "ext-filter": "^7.1" }, "require-dev": { - "mockery/mockery": "^1.0", - "phpunit/phpunit": "^6.4", - "doctrine/instantiator": "^1.0.5" + "mockery/mockery": "^1", + "doctrine/instantiator": "^1" + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "autoload-dev": { + "psr-4": { + "phpDocumentor\\Reflection\\": "tests/unit" + } }, "extra": { "branch-alias": { - "dev-master": "4.x-dev" + "dev-master": "5.x-dev" } } } diff --git a/vendor/phpdocumentor/reflection-docblock/easy-coding-standard.neon b/vendor/phpdocumentor/reflection-docblock/easy-coding-standard.neon deleted file mode 100644 index 7c2ba6e2d..000000000 --- a/vendor/phpdocumentor/reflection-docblock/easy-coding-standard.neon +++ /dev/null @@ -1,31 +0,0 @@ -includes: - - temp/ecs/config/clean-code.neon - - temp/ecs/config/psr2-checkers.neon - - temp/ecs/config/spaces.neon - - temp/ecs/config/common.neon - -checkers: - PhpCsFixer\Fixer\Operator\ConcatSpaceFixer: - spacing: one - -parameters: - exclude_checkers: - # from temp/ecs/config/common.neon - - PhpCsFixer\Fixer\ClassNotation\OrderedClassElementsFixer - - PhpCsFixer\Fixer\PhpUnit\PhpUnitStrictFixer - - PhpCsFixer\Fixer\ControlStructure\YodaStyleFixer - # from temp/ecs/config/spaces.neon - - PhpCsFixer\Fixer\Operator\NotOperatorWithSuccessorSpaceFixer - - skip: - SlevomatCodingStandard\Sniffs\Classes\UnusedPrivateElementsSniff: - # WIP code - - src/DocBlock/StandardTagFactory.php - PHP_CodeSniffer\Standards\Generic\Sniffs\CodeAnalysis\EmptyStatementSniff: - # WIP code - - src/DocBlock/StandardTagFactory.php - PHP_CodeSniffer\Standards\Squiz\Sniffs\Classes\ValidClassNameSniff: - - src/DocBlock/Tags/Return_.php - - src/DocBlock/Tags/Var_.php - PHP_CodeSniffer\Standards\Generic\Sniffs\NamingConventions\CamelCapsFunctionNameSniff: - - */tests/** diff --git a/vendor/phpdocumentor/reflection-docblock/phive.xml b/vendor/phpdocumentor/reflection-docblock/phive.xml new file mode 100644 index 000000000..76a2c6a12 --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/phive.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/vendor/phpdocumentor/reflection-docblock/phpcs.xml.dist b/vendor/phpdocumentor/reflection-docblock/phpcs.xml.dist new file mode 100644 index 000000000..b20596d3f --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/phpcs.xml.dist @@ -0,0 +1,17 @@ + + + The coding standard for phpDocumentor. + + src + tests/unit + */tests/unit/Types/ContextFactoryTest.php + + + + + + + + */src/*/Abstract*.php + + diff --git a/vendor/phpdocumentor/reflection-docblock/phpstan.neon b/vendor/phpdocumentor/reflection-docblock/phpstan.neon new file mode 100644 index 000000000..b215c6a94 --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/phpstan.neon @@ -0,0 +1,8 @@ +includes: + - /composer/vendor/phpstan/phpstan-mockery/extension.neon + - /composer/vendor/phpstan/phpstan-webmozart-assert/extension.neon + +parameters: + level: max + ignoreErrors: + - '#Call to static method Webmozart\\Assert\\Assert::implementsInterface\(\) with class-string#' \ No newline at end of file diff --git a/vendor/phpdocumentor/reflection-docblock/psalm.xml b/vendor/phpdocumentor/reflection-docblock/psalm.xml new file mode 100644 index 000000000..7324a2c98 --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/psalm.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock.php index 46605b784..f3403d6e8 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock.php @@ -1,12 +1,13 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT * @link http://phpdoc.org */ @@ -18,94 +19,77 @@ use Webmozart\Assert\Assert; final class DocBlock { /** @var string The opening line for this docblock. */ - private $summary = ''; + private $summary; /** @var DocBlock\Description The actual description for this docblock. */ - private $description = null; + private $description; /** @var Tag[] An array containing all the tags in this docblock; except inline. */ private $tags = []; - /** @var Types\Context Information about the context of this DocBlock. */ - private $context = null; + /** @var Types\Context|null Information about the context of this DocBlock. */ + private $context; - /** @var Location Information about the location of this DocBlock. */ - private $location = null; + /** @var Location|null Information about the location of this DocBlock. */ + private $location; /** @var bool Is this DocBlock (the start of) a template? */ - private $isTemplateStart = false; + private $isTemplateStart; /** @var bool Does this DocBlock signify the end of a DocBlock template? */ - private $isTemplateEnd = false; + private $isTemplateEnd; /** - * @param string $summary - * @param DocBlock\Description $description * @param DocBlock\Tag[] $tags - * @param Types\Context $context The context in which the DocBlock occurs. - * @param Location $location The location within the file that this DocBlock occurs in. - * @param bool $isTemplateStart - * @param bool $isTemplateEnd + * @param Types\Context $context The context in which the DocBlock occurs. + * @param Location $location The location within the file that this DocBlock occurs in. */ public function __construct( - $summary = '', - DocBlock\Description $description = null, + string $summary = '', + ?DocBlock\Description $description = null, array $tags = [], - Types\Context $context = null, - Location $location = null, - $isTemplateStart = false, - $isTemplateEnd = false + ?Types\Context $context = null, + ?Location $location = null, + bool $isTemplateStart = false, + bool $isTemplateEnd = false ) { - Assert::string($summary); - Assert::boolean($isTemplateStart); - Assert::boolean($isTemplateEnd); Assert::allIsInstanceOf($tags, Tag::class); - $this->summary = $summary; + $this->summary = $summary; $this->description = $description ?: new DocBlock\Description(''); foreach ($tags as $tag) { $this->addTag($tag); } - $this->context = $context; + $this->context = $context; $this->location = $location; - $this->isTemplateEnd = $isTemplateEnd; + $this->isTemplateEnd = $isTemplateEnd; $this->isTemplateStart = $isTemplateStart; } - /** - * @return string - */ - public function getSummary() + public function getSummary() : string { return $this->summary; } - /** - * @return DocBlock\Description - */ - public function getDescription() + public function getDescription() : DocBlock\Description { return $this->description; } /** * Returns the current context. - * - * @return Types\Context */ - public function getContext() + public function getContext() : ?Types\Context { return $this->context; } /** * Returns the current location. - * - * @return Location */ - public function getLocation() + public function getLocation() : ?Location { return $this->location; } @@ -128,10 +112,8 @@ final class DocBlock * elements that follow until another DocBlock is found that contains the closing marker (`#@-`). * * @see self::isTemplateEnd() for the check whether a closing marker was provided. - * - * @return boolean */ - public function isTemplateStart() + public function isTemplateStart() : bool { return $this->isTemplateStart; } @@ -140,10 +122,8 @@ final class DocBlock * Returns whether this DocBlock is the end of a Template section. * * @see self::isTemplateStart() for a more complete description of the Docblock Template functionality. - * - * @return boolean */ - public function isTemplateEnd() + public function isTemplateEnd() : bool { return $this->isTemplateEnd; } @@ -153,7 +133,7 @@ final class DocBlock * * @return Tag[] */ - public function getTags() + public function getTags() : array { return $this->tags; } @@ -166,13 +146,10 @@ final class DocBlock * * @return Tag[] */ - public function getTagsByName($name) + public function getTagsByName(string $name) : array { - Assert::string($name); - $result = []; - /** @var Tag $tag */ foreach ($this->getTags() as $tag) { if ($tag->getName() !== $name) { continue; @@ -188,14 +165,9 @@ final class DocBlock * Checks if a tag of a certain type is present in this DocBlock. * * @param string $name Tag name to check for. - * - * @return bool */ - public function hasTag($name) + public function hasTag(string $name) : bool { - Assert::string($name); - - /** @var Tag $tag */ foreach ($this->getTags() as $tag) { if ($tag->getName() === $name) { return true; @@ -208,11 +180,9 @@ final class DocBlock /** * Remove a tag from this DocBlock. * - * @param Tag $tag The tag to remove. - * - * @return void + * @param Tag $tagToRemove The tag to remove. */ - public function removeTag(Tag $tagToRemove) + public function removeTag(Tag $tagToRemove) : void { foreach ($this->tags as $key => $tag) { if ($tag === $tagToRemove) { @@ -226,10 +196,8 @@ final class DocBlock * Adds a tag to this DocBlock. * * @param Tag $tag The tag to add. - * - * @return void */ - private function addTag(Tag $tag) + private function addTag(Tag $tag) : void { $this->tags[] = $tag; } diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Description.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Description.php index 25a79e007..7b11b808e 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Description.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Description.php @@ -1,12 +1,13 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT * @link http://phpdoc.org */ @@ -14,7 +15,7 @@ namespace phpDocumentor\Reflection\DocBlock; use phpDocumentor\Reflection\DocBlock\Tags\Formatter; use phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter; -use Webmozart\Assert\Assert; +use function vsprintf; /** * Object representing to description for a DocBlock. @@ -59,15 +60,20 @@ class Description /** * Initializes a Description with its body (template) and a listing of the tags used in the body template. * - * @param string $bodyTemplate * @param Tag[] $tags */ - public function __construct($bodyTemplate, array $tags = []) + public function __construct(string $bodyTemplate, array $tags = []) { - Assert::string($bodyTemplate); - $this->bodyTemplate = $bodyTemplate; - $this->tags = $tags; + $this->tags = $tags; + } + + /** + * Returns the body template. + */ + public function getBodyTemplate() : string + { + return $this->bodyTemplate; } /** @@ -75,7 +81,7 @@ class Description * * @return Tag[] */ - public function getTags() + public function getTags() : array { return $this->tags; } @@ -83,12 +89,8 @@ class Description /** * Renders this description as a string where the provided formatter will format the tags in the expected string * format. - * - * @param Formatter|null $formatter - * - * @return string */ - public function render(Formatter $formatter = null) + public function render(?Formatter $formatter = null) : string { if ($formatter === null) { $formatter = new PassthroughFormatter(); @@ -104,10 +106,8 @@ class Description /** * Returns a plain string representation of this description. - * - * @return string */ - public function __toString() + public function __toString() : string { return $this->render(); } diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/DescriptionFactory.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/DescriptionFactory.php index 48f9c2195..0501c3c15 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/DescriptionFactory.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/DescriptionFactory.php @@ -1,18 +1,32 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT * @link http://phpdoc.org */ namespace phpDocumentor\Reflection\DocBlock; use phpDocumentor\Reflection\Types\Context as TypeContext; +use Webmozart\Assert\Assert; +use function count; +use function explode; +use function implode; +use function ltrim; +use function min; +use function preg_split; +use function str_replace; +use function strlen; +use function strpos; +use function substr; +use function trim; +use const PREG_SPLIT_DELIM_CAPTURE; /** * Creates a new Description object given a body of text. @@ -38,8 +52,6 @@ class DescriptionFactory /** * Initializes this factory with the means to construct (inline) tags. - * - * @param TagFactory $tagFactory */ public function __construct(TagFactory $tagFactory) { @@ -48,27 +60,36 @@ class DescriptionFactory /** * Returns the parsed text of this description. - * - * @param string $contents - * @param TypeContext $context - * - * @return Description */ - public function create($contents, TypeContext $context = null) + public function create(string $contents, ?TypeContext $context = null) : Description { - list($text, $tags) = $this->parse($this->lex($contents), $context); + $tokens = $this->lex($contents); + $count = count($tokens); + $tagCount = 0; + $tags = []; - return new Description($text, $tags); + for ($i = 1; $i < $count; $i += 2) { + $tags[] = $this->tagFactory->create($tokens[$i], $context); + $tokens[$i] = '%' . ++$tagCount . '$s'; + } + + //In order to allow "literal" inline tags, the otherwise invalid + //sequence "{@}" is changed to "@", and "{}" is changed to "}". + //"%" is escaped to "%%" because of vsprintf. + //See unit tests for examples. + for ($i = 0; $i < $count; $i += 2) { + $tokens[$i] = str_replace(['{@}', '{}', '%'], ['@', '}', '%%'], $tokens[$i]); + } + + return new Description(implode('', $tokens), $tags); } /** * Strips the contents from superfluous whitespace and splits the description into a series of tokens. * - * @param string $contents - * * @return string[] A series of tokens of which the description text is composed. */ - private function lex($contents) + private function lex(string $contents) : array { $contents = $this->removeSuperfluousStartingWhitespace($contents); @@ -77,7 +98,7 @@ class DescriptionFactory return [$contents]; } - return preg_split( + $parts = preg_split( '/\{ # "{@}" is not a valid inline tag. This ensures that we do not treat it as one, but treat it literally. (?!@\}) @@ -103,39 +124,12 @@ class DescriptionFactory ) \}/Sux', $contents, - null, + 0, PREG_SPLIT_DELIM_CAPTURE ); - } + Assert::isArray($parts); - /** - * Parses the stream of tokens in to a new set of tokens containing Tags. - * - * @param string[] $tokens - * @param TypeContext $context - * - * @return string[]|Tag[] - */ - private function parse($tokens, TypeContext $context) - { - $count = count($tokens); - $tagCount = 0; - $tags = []; - - for ($i = 1; $i < $count; $i += 2) { - $tags[] = $this->tagFactory->create($tokens[$i], $context); - $tokens[$i] = '%' . ++$tagCount . '$s'; - } - - //In order to allow "literal" inline tags, the otherwise invalid - //sequence "{@}" is changed to "@", and "{}" is changed to "}". - //"%" is escaped to "%%" because of vsprintf. - //See unit tests for examples. - for ($i = 0; $i < $count; $i += 2) { - $tokens[$i] = str_replace(['{@}', '{}', '%'], ['@', '}', '%%'], $tokens[$i]); - } - - return [implode('', $tokens), $tags]; + return $parts; } /** @@ -151,12 +145,8 @@ class DescriptionFactory * * If we do not normalize the indentation then we have superfluous whitespace on the second and subsequent * lines and this may cause rendering issues when, for example, using a Markdown converter. - * - * @param string $contents - * - * @return string */ - private function removeSuperfluousStartingWhitespace($contents) + private function removeSuperfluousStartingWhitespace(string $contents) : string { $lines = explode("\n", $contents); @@ -168,9 +158,9 @@ class DescriptionFactory // determine how many whitespace characters need to be stripped $startingSpaceCount = 9999999; - for ($i = 1; $i < count($lines); $i++) { + for ($i = 1, $iMax = count($lines); $i < $iMax; ++$i) { // lines with a no length do not count as they are not indented at all - if (strlen(trim($lines[$i])) === 0) { + if (trim($lines[$i]) === '') { continue; } @@ -181,7 +171,7 @@ class DescriptionFactory // strip the number of spaces from each line if ($startingSpaceCount > 0) { - for ($i = 1; $i < count($lines); $i++) { + for ($i = 1, $iMax = count($lines); $i < $iMax; ++$i) { $lines[$i] = substr($lines[$i], $startingSpaceCount); } } diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/ExampleFinder.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/ExampleFinder.php index 571ed7499..7249efb04 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/ExampleFinder.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/ExampleFinder.php @@ -1,18 +1,28 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT * @link http://phpdoc.org */ namespace phpDocumentor\Reflection\DocBlock; use phpDocumentor\Reflection\DocBlock\Tags\Example; +use function array_slice; +use function file; +use function getcwd; +use function implode; +use function is_readable; +use function rtrim; +use function sprintf; +use function trim; +use const DIRECTORY_SEPARATOR; /** * Class used to find an example file's location based on a given ExampleDescriptor. @@ -27,18 +37,14 @@ class ExampleFinder /** * Attempts to find the example contents for the given descriptor. - * - * @param Example $example - * - * @return string */ - public function find(Example $example) + public function find(Example $example) : string { $filename = $example->getFilePath(); $file = $this->getExampleFileContents($filename); if (!$file) { - return "** File not found : {$filename} **"; + return sprintf('** File not found : %s **', $filename); } return implode('', array_slice($file, $example->getStartingLine() - 1, $example->getLineCount())); @@ -46,22 +52,16 @@ class ExampleFinder /** * Registers the project's root directory where an 'examples' folder can be expected. - * - * @param string $directory - * - * @return void */ - public function setSourceDirectory($directory = '') + public function setSourceDirectory(string $directory = '') : void { $this->sourceDirectory = $directory; } /** * Returns the project's root directory where an 'examples' folder can be expected. - * - * @return string */ - public function getSourceDirectory() + public function getSourceDirectory() : string { return $this->sourceDirectory; } @@ -71,7 +71,7 @@ class ExampleFinder * * @param string[] $directories */ - public function setExampleDirectories(array $directories) + public function setExampleDirectories(array $directories) : void { $this->exampleDirectories = $directories; } @@ -81,7 +81,7 @@ class ExampleFinder * * @return string[] */ - public function getExampleDirectories() + public function getExampleDirectories() : array { return $this->exampleDirectories; } @@ -97,11 +97,9 @@ class ExampleFinder * 3. Checks the 'examples' folder in the current working directory for examples * 4. Checks the path relative to the current working directory for the given filename * - * @param string $filename - * - * @return string|null + * @return string[] all lines of the example file */ - private function getExampleFileContents($filename) + private function getExampleFileContents(string $filename) : ?array { $normalizedPath = null; @@ -123,42 +121,31 @@ class ExampleFinder } } - return $normalizedPath && is_readable($normalizedPath) ? file($normalizedPath) : null; + $lines = $normalizedPath && is_readable($normalizedPath) ? file($normalizedPath) : false; + + return $lines !== false ? $lines : null; } /** * Get example filepath based on the example directory inside your project. - * - * @param string $file - * - * @return string */ - private function getExamplePathFromExampleDirectory($file) + private function getExamplePathFromExampleDirectory(string $file) : string { return getcwd() . DIRECTORY_SEPARATOR . 'examples' . DIRECTORY_SEPARATOR . $file; } /** * Returns a path to the example file in the given directory.. - * - * @param string $directory - * @param string $file - * - * @return string */ - private function constructExamplePath($directory, $file) + private function constructExamplePath(string $directory, string $file) : string { return rtrim($directory, '\\/') . DIRECTORY_SEPARATOR . $file; } /** * Get example filepath based on sourcecode. - * - * @param string $file - * - * @return string */ - private function getExamplePathFromSource($file) + private function getExamplePathFromSource(string $file) : string { return sprintf( '%s%s%s', diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Serializer.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Serializer.php index 0f355f588..531970b92 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Serializer.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Serializer.php @@ -1,19 +1,26 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org + * @link http://phpdoc.org */ namespace phpDocumentor\Reflection\DocBlock; use phpDocumentor\Reflection\DocBlock; -use Webmozart\Assert\Assert; +use phpDocumentor\Reflection\DocBlock\Tags\Formatter; +use phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter; +use function sprintf; +use function str_repeat; +use function str_replace; +use function strlen; +use function wordwrap; /** * Converts a DocBlock back from an object to a complete DocComment including Asterisks. @@ -30,33 +37,32 @@ class Serializer protected $isFirstLineIndented = true; /** @var int|null The max length of a line. */ - protected $lineLength = null; + protected $lineLength; - /** @var DocBlock\Tags\Formatter A custom tag formatter. */ - protected $tagFormatter = null; + /** @var Formatter A custom tag formatter. */ + protected $tagFormatter; /** * Create a Serializer instance. * - * @param int $indent The number of times the indent string is repeated. - * @param string $indentString The string to indent the comment with. - * @param bool $indentFirstLine Whether to indent the first line. - * @param int|null $lineLength The max length of a line or NULL to disable line wrapping. - * @param DocBlock\Tags\Formatter $tagFormatter A custom tag formatter, defaults to PassthroughFormatter. + * @param int $indent The number of times the indent string is repeated. + * @param string $indentString The string to indent the comment with. + * @param bool $indentFirstLine Whether to indent the first line. + * @param int|null $lineLength The max length of a line or NULL to disable line wrapping. + * @param Formatter $tagFormatter A custom tag formatter, defaults to PassthroughFormatter. */ - public function __construct($indent = 0, $indentString = ' ', $indentFirstLine = true, $lineLength = null, $tagFormatter = null) - { - Assert::integer($indent); - Assert::string($indentString); - Assert::boolean($indentFirstLine); - Assert::nullOrInteger($lineLength); - Assert::nullOrIsInstanceOf($tagFormatter, 'phpDocumentor\Reflection\DocBlock\Tags\Formatter'); - - $this->indent = $indent; - $this->indentString = $indentString; + public function __construct( + int $indent = 0, + string $indentString = ' ', + bool $indentFirstLine = true, + ?int $lineLength = null, + ?Formatter $tagFormatter = null + ) { + $this->indent = $indent; + $this->indentString = $indentString; $this->isFirstLineIndented = $indentFirstLine; - $this->lineLength = $lineLength; - $this->tagFormatter = $tagFormatter ?: new DocBlock\Tags\Formatter\PassthroughFormatter(); + $this->lineLength = $lineLength; + $this->tagFormatter = $tagFormatter ?: new PassthroughFormatter(); } /** @@ -66,9 +72,9 @@ class Serializer * * @return string The serialized doc block. */ - public function getDocComment(DocBlock $docblock) + public function getDocComment(DocBlock $docblock) : string { - $indent = str_repeat($this->indentString, $this->indent); + $indent = str_repeat($this->indentString, $this->indent); $firstIndent = $this->isFirstLineIndented ? $indent : ''; // 3 === strlen(' * ') $wrapLength = $this->lineLength ? $this->lineLength - strlen($indent) - 3 : null; @@ -81,63 +87,49 @@ class Serializer ) ); - $comment = "{$firstIndent}/**\n"; + $comment = $firstIndent . "/**\n"; if ($text) { - $comment .= "{$indent} * {$text}\n"; - $comment .= "{$indent} *\n"; + $comment .= $indent . ' * ' . $text . "\n"; + $comment .= $indent . " *\n"; } $comment = $this->addTagBlock($docblock, $wrapLength, $indent, $comment); - $comment .= $indent . ' */'; - return $comment; + return $comment . $indent . ' */'; } - /** - * @param $indent - * @param $text - * @return mixed - */ - private function removeTrailingSpaces($indent, $text) + private function removeTrailingSpaces(string $indent, string $text) : string { - return str_replace("\n{$indent} * \n", "\n{$indent} *\n", $text); + return str_replace( + sprintf("\n%s * \n", $indent), + sprintf("\n%s *\n", $indent), + $text + ); } - /** - * @param $indent - * @param $text - * @return mixed - */ - private function addAsterisksForEachLine($indent, $text) + private function addAsterisksForEachLine(string $indent, string $text) : string { - return str_replace("\n", "\n{$indent} * ", $text); + return str_replace( + "\n", + sprintf("\n%s * ", $indent), + $text + ); } - /** - * @param DocBlock $docblock - * @param $wrapLength - * @return string - */ - private function getSummaryAndDescriptionTextBlock(DocBlock $docblock, $wrapLength) + private function getSummaryAndDescriptionTextBlock(DocBlock $docblock, ?int $wrapLength) : string { - $text = $docblock->getSummary() . ((string)$docblock->getDescription() ? "\n\n" . $docblock->getDescription() + $text = $docblock->getSummary() . ((string) $docblock->getDescription() ? "\n\n" . $docblock->getDescription() : ''); if ($wrapLength !== null) { $text = wordwrap($text, $wrapLength); + return $text; } return $text; } - /** - * @param DocBlock $docblock - * @param $wrapLength - * @param $indent - * @param $comment - * @return string - */ - private function addTagBlock(DocBlock $docblock, $wrapLength, $indent, $comment) + private function addTagBlock(DocBlock $docblock, ?int $wrapLength, string $indent, string $comment) : string { foreach ($docblock->getTags() as $tag) { $tagText = $this->tagFormatter->format($tag); @@ -145,9 +137,13 @@ class Serializer $tagText = wordwrap($tagText, $wrapLength); } - $tagText = str_replace("\n", "\n{$indent} * ", $tagText); + $tagText = str_replace( + "\n", + sprintf("\n%s * ", $indent), + $tagText + ); - $comment .= "{$indent} * {$tagText}\n"; + $comment .= sprintf("%s * %s\n", $indent, $tagText); } return $comment; diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/StandardTagFactory.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/StandardTagFactory.php index 5a8143cf9..9a58c2913 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/StandardTagFactory.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/StandardTagFactory.php @@ -1,22 +1,52 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org + * @link http://phpdoc.org */ namespace phpDocumentor\Reflection\DocBlock; +use InvalidArgumentException; +use phpDocumentor\Reflection\DocBlock\Tags\Author; +use phpDocumentor\Reflection\DocBlock\Tags\Covers; +use phpDocumentor\Reflection\DocBlock\Tags\Deprecated; use phpDocumentor\Reflection\DocBlock\Tags\Factory\StaticMethod; use phpDocumentor\Reflection\DocBlock\Tags\Generic; +use phpDocumentor\Reflection\DocBlock\Tags\InvalidTag; +use phpDocumentor\Reflection\DocBlock\Tags\Link as LinkTag; +use phpDocumentor\Reflection\DocBlock\Tags\Method; +use phpDocumentor\Reflection\DocBlock\Tags\Param; +use phpDocumentor\Reflection\DocBlock\Tags\Property; +use phpDocumentor\Reflection\DocBlock\Tags\PropertyRead; +use phpDocumentor\Reflection\DocBlock\Tags\PropertyWrite; +use phpDocumentor\Reflection\DocBlock\Tags\Return_; +use phpDocumentor\Reflection\DocBlock\Tags\See as SeeTag; +use phpDocumentor\Reflection\DocBlock\Tags\Since; +use phpDocumentor\Reflection\DocBlock\Tags\Source; +use phpDocumentor\Reflection\DocBlock\Tags\Throws; +use phpDocumentor\Reflection\DocBlock\Tags\Uses; +use phpDocumentor\Reflection\DocBlock\Tags\Var_; +use phpDocumentor\Reflection\DocBlock\Tags\Version; use phpDocumentor\Reflection\FqsenResolver; use phpDocumentor\Reflection\Types\Context as TypeContext; +use ReflectionMethod; +use ReflectionParameter; use Webmozart\Assert\Assert; +use function array_merge; +use function array_slice; +use function call_user_func_array; +use function count; +use function get_class; +use function preg_match; +use function strpos; +use function trim; /** * Creates a Tag object given the contents of a tag. @@ -38,41 +68,47 @@ use Webmozart\Assert\Assert; final class StandardTagFactory implements TagFactory { /** PCRE regular expression matching a tag name. */ - const REGEX_TAGNAME = '[\w\-\_\\\\]+'; + public const REGEX_TAGNAME = '[\w\-\_\\\\:]+'; /** - * @var string[] An array with a tag as a key, and an FQCN to a class that handles it as an array value. + * @var array> An array with a tag as a key, and an + * FQCN to a class that handles it as an array value. */ private $tagHandlerMappings = [ - 'author' => '\phpDocumentor\Reflection\DocBlock\Tags\Author', - 'covers' => '\phpDocumentor\Reflection\DocBlock\Tags\Covers', - 'deprecated' => '\phpDocumentor\Reflection\DocBlock\Tags\Deprecated', + 'author' => Author::class, + 'covers' => Covers::class, + 'deprecated' => Deprecated::class, // 'example' => '\phpDocumentor\Reflection\DocBlock\Tags\Example', - 'link' => '\phpDocumentor\Reflection\DocBlock\Tags\Link', - 'method' => '\phpDocumentor\Reflection\DocBlock\Tags\Method', - 'param' => '\phpDocumentor\Reflection\DocBlock\Tags\Param', - 'property-read' => '\phpDocumentor\Reflection\DocBlock\Tags\PropertyRead', - 'property' => '\phpDocumentor\Reflection\DocBlock\Tags\Property', - 'property-write' => '\phpDocumentor\Reflection\DocBlock\Tags\PropertyWrite', - 'return' => '\phpDocumentor\Reflection\DocBlock\Tags\Return_', - 'see' => '\phpDocumentor\Reflection\DocBlock\Tags\See', - 'since' => '\phpDocumentor\Reflection\DocBlock\Tags\Since', - 'source' => '\phpDocumentor\Reflection\DocBlock\Tags\Source', - 'throw' => '\phpDocumentor\Reflection\DocBlock\Tags\Throws', - 'throws' => '\phpDocumentor\Reflection\DocBlock\Tags\Throws', - 'uses' => '\phpDocumentor\Reflection\DocBlock\Tags\Uses', - 'var' => '\phpDocumentor\Reflection\DocBlock\Tags\Var_', - 'version' => '\phpDocumentor\Reflection\DocBlock\Tags\Version' + 'link' => LinkTag::class, + 'method' => Method::class, + 'param' => Param::class, + 'property-read' => PropertyRead::class, + 'property' => Property::class, + 'property-write' => PropertyWrite::class, + 'return' => Return_::class, + 'see' => SeeTag::class, + 'since' => Since::class, + 'source' => Source::class, + 'throw' => Throws::class, + 'throws' => Throws::class, + 'uses' => Uses::class, + 'var' => Var_::class, + 'version' => Version::class, ]; /** - * @var \ReflectionParameter[][] a lazy-loading cache containing parameters for each tagHandler that has been used. + * @var array> An array with a anotation s a key, and an + * FQCN to a class that handles it as an array value. + */ + private $annotationMappings = []; + + /** + * @var ReflectionParameter[][] a lazy-loading cache containing parameters + * for each tagHandler that has been used. */ private $tagHandlerParameterCache = []; - /** - * @var FqsenResolver - */ + /** @var FqsenResolver */ private $fqsenResolver; /** @@ -87,12 +123,11 @@ final class StandardTagFactory implements TagFactory * If no tag handlers are provided than the default list in the {@see self::$tagHandlerMappings} property * is used. * - * @param FqsenResolver $fqsenResolver - * @param string[] $tagHandlers - * * @see self::registerTagHandler() to add a new tag handler to the existing default list. + * + * @param array> $tagHandlers */ - public function __construct(FqsenResolver $fqsenResolver, array $tagHandlers = null) + public function __construct(FqsenResolver $fqsenResolver, ?array $tagHandlers = null) { $this->fqsenResolver = $fqsenResolver; if ($tagHandlers !== null) { @@ -102,54 +137,38 @@ final class StandardTagFactory implements TagFactory $this->addService($fqsenResolver, FqsenResolver::class); } - /** - * {@inheritDoc} - */ - public function create($tagLine, TypeContext $context = null) + public function create(string $tagLine, ?TypeContext $context = null) : Tag { - if (! $context) { + if (!$context) { $context = new TypeContext(''); } - list($tagName, $tagBody) = $this->extractTagParts($tagLine); + [$tagName, $tagBody] = $this->extractTagParts($tagLine); - if ($tagBody !== '' && $tagBody[0] === '[') { - throw new \InvalidArgumentException( - 'The tag "' . $tagLine . '" does not seem to be wellformed, please check it for errors' - ); - } - - return $this->createTag($tagBody, $tagName, $context); + return $this->createTag(trim($tagBody), $tagName, $context); } /** - * {@inheritDoc} + * @param mixed $value */ - public function addParameter($name, $value) + public function addParameter(string $name, $value) : void { $this->serviceLocator[$name] = $value; } - /** - * {@inheritDoc} - */ - public function addService($service, $alias = null) + public function addService(object $service, ?string $alias = null) : void { $this->serviceLocator[$alias ?: get_class($service)] = $service; } - /** - * {@inheritDoc} - */ - public function registerTagHandler($tagName, $handler) + public function registerTagHandler(string $tagName, string $handler) : void { Assert::stringNotEmpty($tagName); - Assert::stringNotEmpty($handler); Assert::classExists($handler); Assert::implementsInterface($handler, StaticMethod::class); if (strpos($tagName, '\\') && $tagName[0] !== '\\') { - throw new \InvalidArgumentException( + throw new InvalidArgumentException( 'A namespaced tag must have a leading backslash as it must be fully qualified' ); } @@ -160,15 +179,13 @@ final class StandardTagFactory implements TagFactory /** * Extracts all components for a tag. * - * @param string $tagLine - * * @return string[] */ - private function extractTagParts($tagLine) + private function extractTagParts(string $tagLine) : array { $matches = []; - if (! preg_match('/^@(' . self::REGEX_TAGNAME . ')(?:\s*([^\s].*)|$)/us', $tagLine, $matches)) { - throw new \InvalidArgumentException( + if (!preg_match('/^@(' . self::REGEX_TAGNAME . ')((?:[\s\(\{])\s*([^\s].*)|$)/us', $tagLine, $matches)) { + throw new InvalidArgumentException( 'The tag "' . $tagLine . '" does not seem to be wellformed, please check it for errors' ); } @@ -183,14 +200,8 @@ final class StandardTagFactory implements TagFactory /** * Creates a new tag object with the given name and body or returns null if the tag name was recognized but the * body was invalid. - * - * @param string $body - * @param string $name - * @param TypeContext $context - * - * @return Tag|null */ - private function createTag($body, $name, TypeContext $context) + private function createTag(string $body, string $name, TypeContext $context) : Tag { $handlerClassName = $this->findHandlerClassName($name, $context); $arguments = $this->getArgumentsForParametersFromWiring( @@ -198,28 +209,34 @@ final class StandardTagFactory implements TagFactory $this->getServiceLocatorWithDynamicParameters($context, $name, $body) ); - return call_user_func_array([$handlerClassName, 'create'], $arguments); + try { + $callable = [$handlerClassName, 'create']; + Assert::isCallable($callable); + /** @phpstan-var callable(string): ?Tag $callable */ + $tag = call_user_func_array($callable, $arguments); + + return $tag ?? InvalidTag::create($body, $name); + } catch (InvalidArgumentException $e) { + return InvalidTag::create($body, $name)->withError($e); + } } /** * Determines the Fully Qualified Class Name of the Factory or Tag (containing a Factory Method `create`). * - * @param string $tagName - * @param TypeContext $context - * - * @return string + * @return class-string */ - private function findHandlerClassName($tagName, TypeContext $context) + private function findHandlerClassName(string $tagName, TypeContext $context) : string { $handlerClassName = Generic::class; if (isset($this->tagHandlerMappings[$tagName])) { $handlerClassName = $this->tagHandlerMappings[$tagName]; } elseif ($this->isAnnotation($tagName)) { // TODO: Annotation support is planned for a later stage and as such is disabled for now - // $tagName = (string)$this->fqsenResolver->resolve($tagName, $context); - // if (isset($this->annotationMappings[$tagName])) { - // $handlerClassName = $this->annotationMappings[$tagName]; - // } + $tagName = (string) $this->fqsenResolver->resolve($tagName, $context); + if (isset($this->annotationMappings[$tagName])) { + $handlerClassName = $this->annotationMappings[$tagName]; + } } return $handlerClassName; @@ -228,17 +245,22 @@ final class StandardTagFactory implements TagFactory /** * Retrieves the arguments that need to be passed to the Factory Method with the given Parameters. * - * @param \ReflectionParameter[] $parameters - * @param mixed[] $locator + * @param ReflectionParameter[] $parameters + * @param mixed[] $locator * * @return mixed[] A series of values that can be passed to the Factory Method of the tag whose parameters * is provided with this method. */ - private function getArgumentsForParametersFromWiring($parameters, $locator) + private function getArgumentsForParametersFromWiring(array $parameters, array $locator) : array { $arguments = []; - foreach ($parameters as $index => $parameter) { - $typeHint = $parameter->getClass() ? $parameter->getClass()->getName() : null; + foreach ($parameters as $parameter) { + $class = $parameter->getClass(); + $typeHint = null; + if ($class !== null) { + $typeHint = $class->getName(); + } + if (isset($locator[$typeHint])) { $arguments[] = $locator[$typeHint]; continue; @@ -260,14 +282,12 @@ final class StandardTagFactory implements TagFactory * Retrieves a series of ReflectionParameter objects for the static 'create' method of the given * tag handler class name. * - * @param string $handlerClassName - * - * @return \ReflectionParameter[] + * @return ReflectionParameter[] */ - private function fetchParametersForHandlerFactoryMethod($handlerClassName) + private function fetchParametersForHandlerFactoryMethod(string $handlerClassName) : array { - if (! isset($this->tagHandlerParameterCache[$handlerClassName])) { - $methodReflection = new \ReflectionMethod($handlerClassName, 'create'); + if (!isset($this->tagHandlerParameterCache[$handlerClassName])) { + $methodReflection = new ReflectionMethod($handlerClassName, 'create'); $this->tagHandlerParameterCache[$handlerClassName] = $methodReflection->getParameters(); } @@ -275,39 +295,39 @@ final class StandardTagFactory implements TagFactory } /** - * Returns a copy of this class' Service Locator with added dynamic parameters, such as the tag's name, body and - * Context. + * Returns a copy of this class' Service Locator with added dynamic parameters, + * such as the tag's name, body and Context. * - * @param TypeContext $context The Context (namespace and aliasses) that may be passed and is used to resolve FQSENs. - * @param string $tagName The name of the tag that may be passed onto the factory method of the Tag class. - * @param string $tagBody The body of the tag that may be passed onto the factory method of the Tag class. + * @param TypeContext $context The Context (namespace and aliasses) that may be + * passed and is used to resolve FQSENs. + * @param string $tagName The name of the tag that may be + * passed onto the factory method of the Tag class. + * @param string $tagBody The body of the tag that may be + * passed onto the factory method of the Tag class. * * @return mixed[] */ - private function getServiceLocatorWithDynamicParameters(TypeContext $context, $tagName, $tagBody) - { - $locator = array_merge( + private function getServiceLocatorWithDynamicParameters( + TypeContext $context, + string $tagName, + string $tagBody + ) : array { + return array_merge( $this->serviceLocator, [ - 'name' => $tagName, - 'body' => $tagBody, - TypeContext::class => $context + 'name' => $tagName, + 'body' => $tagBody, + TypeContext::class => $context, ] ); - - return $locator; } /** * Returns whether the given tag belongs to an annotation. * - * @param string $tagContent - * * @todo this method should be populated once we implement Annotation notation support. - * - * @return bool */ - private function isAnnotation($tagContent) + private function isAnnotation(string $tagContent) : bool { // 1. Contains a namespace separator // 2. Contains parenthesis diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tag.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tag.php index e76536788..f55de9169 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tag.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tag.php @@ -1,12 +1,13 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT * @link http://phpdoc.org */ @@ -16,11 +17,16 @@ use phpDocumentor\Reflection\DocBlock\Tags\Formatter; interface Tag { - public function getName(); + public function getName() : string; - public static function create($body); + /** + * @return Tag|mixed Class that implements Tag + * + * @phpstan-return ?Tag + */ + public static function create(string $body); - public function render(Formatter $formatter = null); + public function render(?Formatter $formatter = null) : string; - public function __toString(); + public function __toString() : string; } diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/TagFactory.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/TagFactory.php index 3c1d1132b..0d318d1be 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/TagFactory.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/TagFactory.php @@ -1,17 +1,19 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org + * @link http://phpdoc.org */ namespace phpDocumentor\Reflection\DocBlock; +use InvalidArgumentException; use phpDocumentor\Reflection\Types\Context as TypeContext; interface TagFactory @@ -34,12 +36,20 @@ interface TagFactory * * These parameters are injected at the last moment and will override any existing parameter with those names. * - * @param string $name - * @param mixed $value - * - * @return void + * @param mixed $value */ - public function addParameter($name, $value); + public function addParameter(string $name, $value) : void; + + /** + * Factory method responsible for instantiating the correct sub type. + * + * @param string $tagLine The text for this tag, including description. + * + * @return Tag A new tag object. + * + * @throws InvalidArgumentException If an invalid tag line was presented. + */ + public function create(string $tagLine, ?TypeContext $context = null) : Tag; /** * Registers a service with the Service Locator using the FQCN of the class or the alias, if provided. @@ -49,45 +59,26 @@ interface TagFactory * * Because interfaces are regularly used as type-hints this method provides an alias parameter; if the FQCN of the * interface is passed as alias then every time that interface is requested the provided service will be returned. - * - * @param object $service - * @param string $alias - * - * @return void */ - public function addService($service); - - /** - * Factory method responsible for instantiating the correct sub type. - * - * @param string $tagLine The text for this tag, including description. - * @param TypeContext $context - * - * @throws \InvalidArgumentException if an invalid tag line was presented. - * - * @return Tag A new tag object. - */ - public function create($tagLine, TypeContext $context = null); + public function addService(object $service) : void; /** * Registers a handler for tags. * - * If you want to use your own tags then you can use this method to instruct the TagFactory to register the name - * of a tag with the FQCN of a 'Tag Handler'. The Tag handler should implement the {@see Tag} interface (and thus - * the create method). + * If you want to use your own tags then you can use this method to instruct the TagFactory + * to register the name of a tag with the FQCN of a 'Tag Handler'. The Tag handler should implement + * the {@see Tag} interface (and thus the create method). * - * @param string $tagName Name of tag to register a handler for. When registering a namespaced tag, the full - * name, along with a prefixing slash MUST be provided. - * @param string $handler FQCN of handler. + * @param string $tagName Name of tag to register a handler for. When registering a namespaced + * tag, the full name, along with a prefixing slash MUST be provided. + * @param class-string $handler FQCN of handler. * - * @throws \InvalidArgumentException if the tag name is not a string - * @throws \InvalidArgumentException if the tag name is namespaced (contains backslashes) but does not start with - * a backslash - * @throws \InvalidArgumentException if the handler is not a string - * @throws \InvalidArgumentException if the handler is not an existing class - * @throws \InvalidArgumentException if the handler does not implement the {@see Tag} interface - * - * @return void + * @throws InvalidArgumentException If the tag name is not a string. + * @throws InvalidArgumentException If the tag name is namespaced (contains backslashes) but + * does not start with a backslash. + * @throws InvalidArgumentException If the handler is not a string. + * @throws InvalidArgumentException If the handler is not an existing class. + * @throws InvalidArgumentException If the handler does not implement the {@see Tag} interface. */ - public function registerTagHandler($tagName, $handler); + public function registerTagHandler(string $tagName, string $handler) : void; } diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Author.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Author.php index 29d7f1de1..f3c49ad5f 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Author.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Author.php @@ -1,18 +1,23 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org + * @link http://phpdoc.org */ namespace phpDocumentor\Reflection\DocBlock\Tags; -use Webmozart\Assert\Assert; +use InvalidArgumentException; +use function filter_var; +use function preg_match; +use function trim; +use const FILTER_VALIDATE_EMAIL; /** * Reflection class for an {@}author tag in a Docblock. @@ -23,23 +28,18 @@ final class Author extends BaseTag implements Factory\StaticMethod protected $name = 'author'; /** @var string The name of the author */ - private $authorName = ''; + private $authorName; /** @var string The email of the author */ - private $authorEmail = ''; + private $authorEmail; /** * Initializes this tag with the author name and e-mail. - * - * @param string $authorName - * @param string $authorEmail */ - public function __construct($authorName, $authorEmail) + public function __construct(string $authorName, string $authorEmail) { - Assert::string($authorName); - Assert::string($authorEmail); if ($authorEmail && !filter_var($authorEmail, FILTER_VALIDATE_EMAIL)) { - throw new \InvalidArgumentException('The author tag does not have a valid e-mail address'); + throw new InvalidArgumentException('The author tag does not have a valid e-mail address'); } $this->authorName = $authorName; @@ -51,7 +51,7 @@ final class Author extends BaseTag implements Factory\StaticMethod * * @return string The author's name. */ - public function getAuthorName() + public function getAuthorName() : string { return $this->authorName; } @@ -61,39 +61,31 @@ final class Author extends BaseTag implements Factory\StaticMethod * * @return string The author's email. */ - public function getEmail() + public function getEmail() : string { return $this->authorEmail; } /** * Returns this tag in string form. - * - * @return string */ - public function __toString() + public function __toString() : string { - return $this->authorName . (strlen($this->authorEmail) ? ' <' . $this->authorEmail . '>' : ''); + return $this->authorName . ($this->authorEmail !== '' ? ' <' . $this->authorEmail . '>' : ''); } /** * Attempts to create a new Author object based on †he tag body. - * - * @param string $body - * - * @return static */ - public static function create($body) + public static function create(string $body) : ?self { - Assert::string($body); - $splitTagContent = preg_match('/^([^\<]*)(?:\<([^\>]*)\>)?$/u', $body, $matches); if (!$splitTagContent) { return null; } $authorName = trim($matches[1]); - $email = isset($matches[2]) ? trim($matches[2]) : ''; + $email = isset($matches[2]) ? trim($matches[2]) : ''; return new static($authorName, $email); } diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/BaseTag.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/BaseTag.php index 14bb71771..fbcd4022f 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/BaseTag.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/BaseTag.php @@ -1,13 +1,14 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org + * @link http://phpdoc.org */ namespace phpDocumentor\Reflection\DocBlock\Tags; @@ -31,17 +32,17 @@ abstract class BaseTag implements DocBlock\Tag * * @return string The name of this tag. */ - public function getName() + public function getName() : string { return $this->name; } - public function getDescription() + public function getDescription() : ?Description { return $this->description; } - public function render(Formatter $formatter = null) + public function render(?Formatter $formatter = null) : string { if ($formatter === null) { $formatter = new Formatter\PassthroughFormatter(); diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Covers.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Covers.php index 8d65403fe..77edf4a36 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Covers.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Covers.php @@ -1,13 +1,14 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org + * @link http://phpdoc.org */ namespace phpDocumentor\Reflection\DocBlock\Tags; @@ -18,65 +19,59 @@ use phpDocumentor\Reflection\Fqsen; use phpDocumentor\Reflection\FqsenResolver; use phpDocumentor\Reflection\Types\Context as TypeContext; use Webmozart\Assert\Assert; +use function preg_split; /** * Reflection class for a @covers tag in a Docblock. */ final class Covers extends BaseTag implements Factory\StaticMethod { + /** @var string */ protected $name = 'covers'; /** @var Fqsen */ - private $refers = null; + private $refers; /** * Initializes this tag. - * - * @param Fqsen $refers - * @param Description $description */ - public function __construct(Fqsen $refers, Description $description = null) + public function __construct(Fqsen $refers, ?Description $description = null) { - $this->refers = $refers; + $this->refers = $refers; $this->description = $description; } - /** - * {@inheritdoc} - */ public static function create( - $body, - DescriptionFactory $descriptionFactory = null, - FqsenResolver $resolver = null, - TypeContext $context = null - ) { - Assert::string($body); + string $body, + ?DescriptionFactory $descriptionFactory = null, + ?FqsenResolver $resolver = null, + ?TypeContext $context = null + ) : self { Assert::notEmpty($body); + Assert::notNull($descriptionFactory); + Assert::notNull($resolver); $parts = preg_split('/\s+/Su', $body, 2); + Assert::isArray($parts); return new static( $resolver->resolve($parts[0], $context), - $descriptionFactory->create(isset($parts[1]) ? $parts[1] : '', $context) + $descriptionFactory->create($parts[1] ?? '', $context) ); } /** * Returns the structural element this tag refers to. - * - * @return Fqsen */ - public function getReference() + public function getReference() : Fqsen { return $this->refers; } /** * Returns a string representation of this tag. - * - * @return string */ - public function __toString() + public function __toString() : string { return $this->refers . ($this->description ? ' ' . $this->description->render() : ''); } diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Deprecated.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Deprecated.php index 822c30500..2a9f1bfd6 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Deprecated.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Deprecated.php @@ -1,12 +1,13 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT * @link http://phpdoc.org */ @@ -16,19 +17,21 @@ use phpDocumentor\Reflection\DocBlock\Description; use phpDocumentor\Reflection\DocBlock\DescriptionFactory; use phpDocumentor\Reflection\Types\Context as TypeContext; use Webmozart\Assert\Assert; +use function preg_match; /** * Reflection class for a {@}deprecated tag in a Docblock. */ final class Deprecated extends BaseTag implements Factory\StaticMethod { + /** @var string */ protected $name = 'deprecated'; /** * PCRE regular expression matching a version vector. * Assumes the "x" modifier. */ - const REGEX_VECTOR = '(?: + public const REGEX_VECTOR = '(?: # Normal release vectors. \d\S* | @@ -40,23 +43,25 @@ final class Deprecated extends BaseTag implements Factory\StaticMethod [^\s\:]+\:\s*\$[^\$]+\$ )'; - /** @var string The version vector. */ - private $version = ''; + /** @var string|null The version vector. */ + private $version; - public function __construct($version = null, Description $description = null) + public function __construct(?string $version = null, ?Description $description = null) { Assert::nullOrStringNotEmpty($version); - $this->version = $version; + $this->version = $version; $this->description = $description; } /** * @return static */ - public static function create($body, DescriptionFactory $descriptionFactory = null, TypeContext $context = null) - { - Assert::nullOrString($body); + public static function create( + ?string $body, + ?DescriptionFactory $descriptionFactory = null, + ?TypeContext $context = null + ) : self { if (empty($body)) { return new static(); } @@ -65,33 +70,31 @@ final class Deprecated extends BaseTag implements Factory\StaticMethod if (!preg_match('/^(' . self::REGEX_VECTOR . ')\s*(.+)?$/sux', $body, $matches)) { return new static( null, - null !== $descriptionFactory ? $descriptionFactory->create($body, $context) : null + $descriptionFactory !== null ? $descriptionFactory->create($body, $context) : null ); } + Assert::notNull($descriptionFactory); + return new static( $matches[1], - $descriptionFactory->create(isset($matches[2]) ? $matches[2] : '', $context) + $descriptionFactory->create($matches[2] ?? '', $context) ); } /** * Gets the version section of the tag. - * - * @return string */ - public function getVersion() + public function getVersion() : ?string { return $this->version; } /** * Returns a string representation for this tag. - * - * @return string */ - public function __toString() + public function __toString() : string { - return $this->version . ($this->description ? ' ' . $this->description->render() : ''); + return ($this->version ?? '') . ($this->description ? ' ' . $this->description->render() : ''); } } diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Example.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Example.php index ecb199b49..8ccb4fdc4 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Example.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Example.php @@ -1,103 +1,104 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT * @link http://phpdoc.org */ namespace phpDocumentor\Reflection\DocBlock\Tags; -use phpDocumentor\Reflection\DocBlock\Description; use phpDocumentor\Reflection\DocBlock\Tag; use Webmozart\Assert\Assert; +use function array_key_exists; +use function preg_match; +use function rawurlencode; +use function str_replace; +use function strpos; +use function trim; /** * Reflection class for a {@}example tag in a Docblock. */ -final class Example extends BaseTag +final class Example implements Tag, Factory\StaticMethod { - /** - * @var string Path to a file to use as an example. May also be an absolute URI. - */ + /** @var string Path to a file to use as an example. May also be an absolute URI. */ private $filePath; /** * @var bool Whether the file path component represents an URI. This determines how the file portion * appears at {@link getContent()}. */ - private $isURI = false; + private $isURI; - /** - * @var int - */ + /** @var int */ private $startingLine; - /** - * @var int - */ + /** @var int */ private $lineCount; - public function __construct($filePath, $isURI, $startingLine, $lineCount, $description) + /** @var string|null */ + private $content; + + public function __construct(string $filePath, bool $isURI, int $startingLine, int $lineCount, ?string $content) { Assert::notEmpty($filePath); - Assert::integer($startingLine); Assert::greaterThanEq($startingLine, 0); + Assert::greaterThanEq($lineCount, 0); - $this->filePath = $filePath; + $this->filePath = $filePath; $this->startingLine = $startingLine; - $this->lineCount = $lineCount; - $this->name = 'example'; - if ($description !== null) { - $this->description = trim($description); + $this->lineCount = $lineCount; + if ($content !== null) { + $this->content = trim($content); } $this->isURI = $isURI; } - /** - * {@inheritdoc} - */ - public function getContent() + public function getContent() : string { - if (null === $this->description) { + if ($this->content === null) { $filePath = '"' . $this->filePath . '"'; if ($this->isURI) { $filePath = $this->isUriRelative($this->filePath) ? str_replace('%2F', '/', rawurlencode($this->filePath)) - :$this->filePath; + : $this->filePath; } - return trim($filePath . ' ' . parent::getDescription()); + return trim($filePath); } - return $this->description; + return $this->content; } - /** - * {@inheritdoc} - */ - public static function create($body) + public function getDescription() : ?string + { + return $this->content; + } + + public static function create(string $body) : ?Tag { // File component: File path in quotes or File URI / Source information - if (! preg_match('/^(?:\"([^\"]+)\"|(\S+))(?:\s+(.*))?$/sux', $body, $matches)) { + if (!preg_match('/^(?:\"([^\"]+)\"|(\S+))(?:\s+(.*))?$/sux', $body, $matches)) { return null; } $filePath = null; $fileUri = null; - if ('' !== $matches[1]) { + if ($matches[1] !== '') { $filePath = $matches[1]; } else { $fileUri = $matches[2]; } $startingLine = 1; - $lineCount = null; + $lineCount = 0; $description = null; if (array_key_exists(3, $matches)) { @@ -105,9 +106,9 @@ final class Example extends BaseTag // Starting line / Number of lines / Description if (preg_match('/^([1-9]\d*)(?:\s+((?1))\s*)?(.*)$/sux', $matches[3], $contentMatches)) { - $startingLine = (int)$contentMatches[1]; + $startingLine = (int) $contentMatches[1]; if (isset($contentMatches[2]) && $contentMatches[2] !== '') { - $lineCount = (int)$contentMatches[2]; + $lineCount = (int) $contentMatches[2]; } if (array_key_exists(3, $contentMatches)) { @@ -117,7 +118,7 @@ final class Example extends BaseTag } return new static( - $filePath !== null?$filePath:$fileUri, + $filePath ?? ($fileUri ?? ''), $fileUri !== null, $startingLine, $lineCount, @@ -131,46 +132,48 @@ final class Example extends BaseTag * @return string Path to a file to use as an example. * May also be an absolute URI. */ - public function getFilePath() + public function getFilePath() : string { return $this->filePath; } /** * Returns a string representation for this tag. - * - * @return string */ - public function __toString() + public function __toString() : string { - return $this->filePath . ($this->description ? ' ' . $this->description : ''); + return $this->filePath . ($this->content ? ' ' . $this->content : ''); } /** * Returns true if the provided URI is relative or contains a complete scheme (and thus is absolute). - * - * @param string $uri - * - * @return bool */ - private function isUriRelative($uri) + private function isUriRelative(string $uri) : bool { - return false === strpos($uri, ':'); + return strpos($uri, ':') === false; } - /** - * @return int - */ - public function getStartingLine() + public function getStartingLine() : int { return $this->startingLine; } - /** - * @return int - */ - public function getLineCount() + public function getLineCount() : int { return $this->lineCount; } + + public function getName() : string + { + return 'example'; + } + + public function render(?Formatter $formatter = null) : string + { + if ($formatter === null) { + $formatter = new Formatter\PassthroughFormatter(); + } + + return $formatter->format($this); + } } diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/StaticMethod.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/StaticMethod.php index 98aea455c..f6f0bb5a4 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/StaticMethod.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/StaticMethod.php @@ -1,18 +1,25 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT * @link http://phpdoc.org */ namespace phpDocumentor\Reflection\DocBlock\Tags\Factory; +/** + * @deprecated This contract is totally covered by Tag contract. Every class using StaticMethod also use Tag + */ interface StaticMethod { - public static function create($body); + /** + * @return mixed + */ + public static function create(string $body); } diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/Strategy.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/Strategy.php deleted file mode 100644 index b9ca0b8ab..000000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/Strategy.php +++ /dev/null @@ -1,18 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags\Factory; - -interface Strategy -{ - public function create($body); -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter.php index 64b2c6034..92fb9e6c4 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter.php @@ -1,12 +1,13 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT * @link http://phpdoc.org */ @@ -18,10 +19,6 @@ interface Formatter { /** * Formats a tag into a string representation according to a specific format, such as Markdown. - * - * @param Tag $tag - * - * @return string */ - public function format(Tag $tag); + public function format(Tag $tag) : string; } diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/AlignFormatter.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/AlignFormatter.php index ceb40cc32..b1a406c0f 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/AlignFormatter.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/AlignFormatter.php @@ -1,13 +1,13 @@ - * @copyright 2017 Mike van Riel - * @license http://www.opensource.org/licenses/mit-license.php MIT * @link http://phpdoc.org */ @@ -15,6 +15,9 @@ namespace phpDocumentor\Reflection\DocBlock\Tags\Formatter; use phpDocumentor\Reflection\DocBlock\Tag; use phpDocumentor\Reflection\DocBlock\Tags\Formatter; +use function max; +use function str_repeat; +use function strlen; class AlignFormatter implements Formatter { @@ -22,8 +25,6 @@ class AlignFormatter implements Formatter protected $maxLen = 0; /** - * Constructor. - * * @param Tag[] $tags All tags that should later be aligned with the formatter. */ public function __construct(array $tags) @@ -35,13 +36,14 @@ class AlignFormatter implements Formatter /** * Formats the given tag to return a simple plain text version. - * - * @param Tag $tag - * - * @return string */ - public function format(Tag $tag) + public function format(Tag $tag) : string { - return '@' . $tag->getName() . str_repeat(' ', $this->maxLen - strlen($tag->getName()) + 1) . (string)$tag; + return '@' . $tag->getName() . + str_repeat( + ' ', + $this->maxLen - strlen($tag->getName()) + 1 + ) . + $tag; } } diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/PassthroughFormatter.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/PassthroughFormatter.php index 4e2c57626..f26d22fb6 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/PassthroughFormatter.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/PassthroughFormatter.php @@ -1,12 +1,13 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT * @link http://phpdoc.org */ @@ -14,18 +15,15 @@ namespace phpDocumentor\Reflection\DocBlock\Tags\Formatter; use phpDocumentor\Reflection\DocBlock\Tag; use phpDocumentor\Reflection\DocBlock\Tags\Formatter; +use function trim; class PassthroughFormatter implements Formatter { /** * Formats the given tag to return a simple plain text version. - * - * @param Tag $tag - * - * @return string */ - public function format(Tag $tag) + public function format(Tag $tag) : string { - return trim('@' . $tag->getName() . ' ' . (string)$tag); + return trim('@' . $tag->getName() . ' ' . $tag); } } diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Generic.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Generic.php index 88b4ebf88..7509ff1a3 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Generic.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Generic.php @@ -1,88 +1,79 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT * @link http://phpdoc.org */ namespace phpDocumentor\Reflection\DocBlock\Tags; +use InvalidArgumentException; use phpDocumentor\Reflection\DocBlock\Description; use phpDocumentor\Reflection\DocBlock\DescriptionFactory; use phpDocumentor\Reflection\DocBlock\StandardTagFactory; use phpDocumentor\Reflection\Types\Context as TypeContext; use Webmozart\Assert\Assert; +use function preg_match; /** * Parses a tag definition for a DocBlock. */ -class Generic extends BaseTag implements Factory\StaticMethod +final class Generic extends BaseTag implements Factory\StaticMethod { /** * Parses a tag and populates the member variables. * - * @param string $name Name of the tag. + * @param string $name Name of the tag. * @param Description $description The contents of the given tag. */ - public function __construct($name, Description $description = null) + public function __construct(string $name, ?Description $description = null) { $this->validateTagName($name); - $this->name = $name; + $this->name = $name; $this->description = $description; } /** * Creates a new tag that represents any unknown tag type. * - * @param string $body - * @param string $name - * @param DescriptionFactory $descriptionFactory - * @param TypeContext $context - * * @return static */ public static function create( - $body, - $name = '', - DescriptionFactory $descriptionFactory = null, - TypeContext $context = null - ) { - Assert::string($body); + string $body, + string $name = '', + ?DescriptionFactory $descriptionFactory = null, + ?TypeContext $context = null + ) : self { Assert::stringNotEmpty($name); Assert::notNull($descriptionFactory); - $description = $descriptionFactory && $body !== "" ? $descriptionFactory->create($body, $context) : null; + $description = $body !== '' ? $descriptionFactory->create($body, $context) : null; return new static($name, $description); } /** * Returns the tag as a serialized string - * - * @return string */ - public function __toString() + public function __toString() : string { - return ($this->description ? $this->description->render() : ''); + return $this->description ? $this->description->render() : ''; } /** * Validates if the tag name matches the expected format, otherwise throws an exception. - * - * @param string $name - * - * @return void */ - private function validateTagName($name) + private function validateTagName(string $name) : void { - if (! preg_match('/^' . StandardTagFactory::REGEX_TAGNAME . '$/u', $name)) { - throw new \InvalidArgumentException( + if (!preg_match('/^' . StandardTagFactory::REGEX_TAGNAME . '$/u', $name)) { + throw new InvalidArgumentException( 'The tag name "' . $name . '" is not wellformed. Tags may only consist of letters, underscores, ' . 'hyphens and backslashes.' ); diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/InvalidTag.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/InvalidTag.php new file mode 100644 index 000000000..9f632cb36 --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/InvalidTag.php @@ -0,0 +1,133 @@ +name = $name; + $this->body = $body; + } + + public function getException() : ?Throwable + { + return $this->throwable; + } + + public function getName() : string + { + return $this->name; + } + + public static function create(string $body, string $name = '') : self + { + return new self($name, $body); + } + + public function withError(Throwable $exception) : self + { + $this->flattenExceptionBacktrace($exception); + $tag = new self($this->name, $this->body); + $tag->throwable = $exception; + + return $tag; + } + + /** + * Removes all complex types from backtrace + * + * Not all objects are serializable. So we need to remove them from the + * stored exception to be sure that we do not break existing library usage. + */ + private function flattenExceptionBacktrace(Throwable $exception) : void + { + $traceProperty = (new ReflectionClass(Exception::class))->getProperty('trace'); + $traceProperty->setAccessible(true); + + $flatten = + /** @param mixed $value */ + static function (&$value) : void { + if ($value instanceof Closure) { + $closureReflection = new ReflectionFunction($value); + $value = sprintf( + '(Closure at %s:%s)', + $closureReflection->getFileName(), + $closureReflection->getStartLine() + ); + } elseif (is_object($value)) { + $value = sprintf('object(%s)', get_class($value)); + } elseif (is_resource($value)) { + $value = sprintf('resource(%s)', get_resource_type($value)); + } + }; + + do { + $trace = $exception->getTrace(); + if (isset($trace[0]['args'])) { + $trace = array_map( + static function (array $call) use ($flatten) : array { + array_walk_recursive($call['args'], $flatten); + + return $call; + }, + $trace + ); + } + + $traceProperty->setValue($exception, $trace); + $exception = $exception->getPrevious(); + } while ($exception !== null); + + $traceProperty->setAccessible(false); + } + + public function render(?Formatter $formatter = null) : string + { + if ($formatter === null) { + $formatter = new Formatter\PassthroughFormatter(); + } + + return $formatter->format($this); + } + + public function __toString() : string + { + return $this->body; + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Link.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Link.php index 9c0e367eb..0588f722a 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Link.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Link.php @@ -1,13 +1,14 @@ - * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com) - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org + * @link http://phpdoc.org */ namespace phpDocumentor\Reflection\DocBlock\Tags; @@ -16,61 +17,54 @@ use phpDocumentor\Reflection\DocBlock\Description; use phpDocumentor\Reflection\DocBlock\DescriptionFactory; use phpDocumentor\Reflection\Types\Context as TypeContext; use Webmozart\Assert\Assert; +use function preg_split; /** * Reflection class for a @link tag in a Docblock. */ final class Link extends BaseTag implements Factory\StaticMethod { + /** @var string */ protected $name = 'link'; /** @var string */ - private $link = ''; + private $link; /** * Initializes a link to a URL. - * - * @param string $link - * @param Description $description */ - public function __construct($link, Description $description = null) + public function __construct(string $link, ?Description $description = null) { - Assert::string($link); - - $this->link = $link; + $this->link = $link; $this->description = $description; } - /** - * {@inheritdoc} - */ - public static function create($body, DescriptionFactory $descriptionFactory = null, TypeContext $context = null) - { - Assert::string($body); + public static function create( + string $body, + ?DescriptionFactory $descriptionFactory = null, + ?TypeContext $context = null + ) : self { Assert::notNull($descriptionFactory); $parts = preg_split('/\s+/Su', $body, 2); + Assert::isArray($parts); $description = isset($parts[1]) ? $descriptionFactory->create($parts[1], $context) : null; return new static($parts[0], $description); } /** - * Gets the link - * - * @return string - */ - public function getLink() + * Gets the link + */ + public function getLink() : string { return $this->link; } /** * Returns a string representation for this tag. - * - * @return string */ - public function __toString() + public function __toString() : string { return $this->link . ($this->description ? ' ' . $this->description->render() : ''); } diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Method.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Method.php index 752252992..834f1bdef 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Method.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Method.php @@ -1,53 +1,74 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org + * @link http://phpdoc.org */ namespace phpDocumentor\Reflection\DocBlock\Tags; +use InvalidArgumentException; use phpDocumentor\Reflection\DocBlock\Description; use phpDocumentor\Reflection\DocBlock\DescriptionFactory; use phpDocumentor\Reflection\Type; use phpDocumentor\Reflection\TypeResolver; use phpDocumentor\Reflection\Types\Context as TypeContext; +use phpDocumentor\Reflection\Types\Mixed_; use phpDocumentor\Reflection\Types\Void_; use Webmozart\Assert\Assert; +use function array_keys; +use function explode; +use function implode; +use function is_string; +use function preg_match; +use function sort; +use function strpos; +use function substr; +use function trim; +use function var_export; /** * Reflection class for an {@}method in a Docblock. */ final class Method extends BaseTag implements Factory\StaticMethod { + /** @var string */ protected $name = 'method'; /** @var string */ - private $methodName = ''; + private $methodName; - /** @var string[] */ - private $arguments = []; + /** + * @phpstan-var array + * @var array> + */ + private $arguments; /** @var bool */ - private $isStatic = false; + private $isStatic; /** @var Type */ private $returnType; + /** + * @param array> $arguments + * + * @phpstan-param array $arguments + */ public function __construct( - $methodName, + string $methodName, array $arguments = [], - Type $returnType = null, - $static = false, - Description $description = null + ?Type $returnType = null, + bool $static = false, + ?Description $description = null ) { Assert::stringNotEmpty($methodName); - Assert::boolean($static); if ($returnType === null) { $returnType = new Void_(); @@ -60,17 +81,15 @@ final class Method extends BaseTag implements Factory\StaticMethod $this->description = $description; } - /** - * {@inheritdoc} - */ public static function create( - $body, - TypeResolver $typeResolver = null, - DescriptionFactory $descriptionFactory = null, - TypeContext $context = null - ) { + string $body, + ?TypeResolver $typeResolver = null, + ?DescriptionFactory $descriptionFactory = null, + ?TypeContext $context = null + ) : ?self { Assert::stringNotEmpty($body); - Assert::allNotNull([ $typeResolver, $descriptionFactory ]); + Assert::notNull($typeResolver); + Assert::notNull($descriptionFactory); // 1. none or more whitespace // 2. optionally the keyword "static" followed by whitespace @@ -91,23 +110,19 @@ final class Method extends BaseTag implements Factory\StaticMethod )? # Return type (?: - ( + ( (?:[\w\|_\\\\]*\$this[\w\|_\\\\]*) | (?: (?:[\w\|_\\\\]+) - # array notation + # array notation (?:\[\])* - )* + )*+ ) \s+ )? - # Legacy method name (not captured) - (?: - [\w_]+\(\)\s+ - )? # Method name - ([\w\|_\\\\]+) + ([\w_]+) # Arguments (?: \(([^\)]*)\) @@ -122,9 +137,9 @@ final class Method extends BaseTag implements Factory\StaticMethod return null; } - list(, $static, $returnType, $methodName, $arguments, $description) = $matches; + [, $static, $returnType, $methodName, $argumentLines, $description] = $matches; - $static = $static === 'static'; + $static = $static === 'static'; if ($returnType === '') { $returnType = 'void'; @@ -133,26 +148,26 @@ final class Method extends BaseTag implements Factory\StaticMethod $returnType = $typeResolver->resolve($returnType, $context); $description = $descriptionFactory->create($description, $context); - if (is_string($arguments) && strlen($arguments) > 0) { - $arguments = explode(',', $arguments); - foreach ($arguments as &$argument) { + /** @phpstan-var array $arguments */ + $arguments = []; + if ($argumentLines !== '') { + $argumentsExploded = explode(',', $argumentLines); + foreach ($argumentsExploded as $argument) { $argument = explode(' ', self::stripRestArg(trim($argument)), 2); - if ($argument[0][0] === '$') { + if (strpos($argument[0], '$') === 0) { $argumentName = substr($argument[0], 1); - $argumentType = new Void_(); + $argumentType = new Mixed_(); } else { $argumentType = $typeResolver->resolve($argument[0], $context); $argumentName = ''; if (isset($argument[1])) { - $argument[1] = self::stripRestArg($argument[1]); + $argument[1] = self::stripRestArg($argument[1]); $argumentName = substr($argument[1], 1); } } - $argument = [ 'name' => $argumentName, 'type' => $argumentType]; + $arguments[] = ['name' => $argumentName, 'type' => $argumentType]; } - } else { - $arguments = []; } return new static($methodName, $arguments, $returnType, $static, $description); @@ -160,18 +175,18 @@ final class Method extends BaseTag implements Factory\StaticMethod /** * Retrieves the method name. - * - * @return string */ - public function getMethodName() + public function getMethodName() : string { return $this->methodName; } /** - * @return string[] + * @return array> + * + * @phpstan-return array */ - public function getArguments() + public function getArguments() : array { return $this->arguments; } @@ -181,20 +196,17 @@ final class Method extends BaseTag implements Factory\StaticMethod * * @return bool TRUE if the method declaration is for a static method, FALSE otherwise. */ - public function isStatic() + public function isStatic() : bool { return $this->isStatic; } - /** - * @return Type - */ - public function getReturnType() + public function getReturnType() : Type { return $this->returnType; } - public function __toString() + public function __toString() : string { $arguments = []; foreach ($this->arguments as $argument) { @@ -202,36 +214,47 @@ final class Method extends BaseTag implements Factory\StaticMethod } return trim(($this->isStatic() ? 'static ' : '') - . (string)$this->returnType . ' ' + . (string) $this->returnType . ' ' . $this->methodName . '(' . implode(', ', $arguments) . ')' . ($this->description ? ' ' . $this->description->render() : '')); } - private function filterArguments($arguments) + /** + * @param mixed[][]|string[] $arguments + * + * @return mixed[][] + * + * @phpstan-param array $arguments + * @phpstan-return array + */ + private function filterArguments(array $arguments = []) : array { - foreach ($arguments as &$argument) { + $result = []; + foreach ($arguments as $argument) { if (is_string($argument)) { - $argument = [ 'name' => $argument ]; + $argument = ['name' => $argument]; } - if (! isset($argument['type'])) { - $argument['type'] = new Void_(); + if (!isset($argument['type'])) { + $argument['type'] = new Mixed_(); } $keys = array_keys($argument); sort($keys); - if ($keys !== [ 'name', 'type' ]) { - throw new \InvalidArgumentException( + if ($keys !== ['name', 'type']) { + throw new InvalidArgumentException( 'Arguments can only have the "name" and "type" fields, found: ' . var_export($keys, true) ); } + + $result[] = $argument; } - return $arguments; + return $result; } - private static function stripRestArg($argument) + private static function stripRestArg(string $argument) : string { if (strpos($argument, '...') === 0) { $argument = trim(substr($argument, 3)); diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Param.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Param.php index 7d699d88d..7f94361a9 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Param.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Param.php @@ -1,12 +1,13 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT * @link http://phpdoc.org */ @@ -18,75 +19,77 @@ use phpDocumentor\Reflection\Type; use phpDocumentor\Reflection\TypeResolver; use phpDocumentor\Reflection\Types\Context as TypeContext; use Webmozart\Assert\Assert; +use function array_shift; +use function array_unshift; +use function implode; +use function preg_split; +use function strpos; +use function substr; +use const PREG_SPLIT_DELIM_CAPTURE; /** * Reflection class for the {@}param tag in a Docblock. */ -final class Param extends BaseTag implements Factory\StaticMethod +final class Param extends TagWithType implements Factory\StaticMethod { - /** @var string */ - protected $name = 'param'; - - /** @var Type */ - private $type; - - /** @var string */ - private $variableName = ''; + /** @var string|null */ + private $variableName; /** @var bool determines whether this is a variadic argument */ - private $isVariadic = false; - - /** - * @param string $variableName - * @param Type $type - * @param bool $isVariadic - * @param Description $description - */ - public function __construct($variableName, Type $type = null, $isVariadic = false, Description $description = null) - { - Assert::string($variableName); - Assert::boolean($isVariadic); + private $isVariadic; + public function __construct( + ?string $variableName, + ?Type $type = null, + bool $isVariadic = false, + ?Description $description = null + ) { + $this->name = 'param'; $this->variableName = $variableName; - $this->type = $type; - $this->isVariadic = $isVariadic; - $this->description = $description; + $this->type = $type; + $this->isVariadic = $isVariadic; + $this->description = $description; } - /** - * {@inheritdoc} - */ public static function create( - $body, - TypeResolver $typeResolver = null, - DescriptionFactory $descriptionFactory = null, - TypeContext $context = null - ) { + string $body, + ?TypeResolver $typeResolver = null, + ?DescriptionFactory $descriptionFactory = null, + ?TypeContext $context = null + ) : self { Assert::stringNotEmpty($body); - Assert::allNotNull([$typeResolver, $descriptionFactory]); + Assert::notNull($typeResolver); + Assert::notNull($descriptionFactory); - $parts = preg_split('/(\s+)/Su', $body, 3, PREG_SPLIT_DELIM_CAPTURE); - $type = null; + [$firstPart, $body] = self::extractTypeFromBody($body); + + $type = null; + $parts = preg_split('/(\s+)/Su', $body, 2, PREG_SPLIT_DELIM_CAPTURE); + Assert::isArray($parts); $variableName = ''; - $isVariadic = false; + $isVariadic = false; // if the first item that is encountered is not a variable; it is a type - if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] !== '$')) { - $type = $typeResolver->resolve(array_shift($parts), $context); - array_shift($parts); + if ($firstPart && $firstPart[0] !== '$') { + $type = $typeResolver->resolve($firstPart, $context); + } else { + // first part is not a type; we should prepend it to the parts array for further processing + array_unshift($parts, $firstPart); } // if the next item starts with a $ or ...$ it must be the variable name - if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] === '$' || substr($parts[0], 0, 4) === '...$')) { + if (isset($parts[0]) && (strpos($parts[0], '$') === 0 || strpos($parts[0], '...$') === 0)) { $variableName = array_shift($parts); array_shift($parts); - if (substr($variableName, 0, 3) === '...') { - $isVariadic = true; + Assert::notNull($variableName); + + if (strpos($variableName, '...') === 0) { + $isVariadic = true; $variableName = substr($variableName, 3); } - if (substr($variableName, 0, 1) === '$') { + if (strpos($variableName, '$') === 0) { $variableName = substr($variableName, 1); } } @@ -98,44 +101,28 @@ final class Param extends BaseTag implements Factory\StaticMethod /** * Returns the variable's name. - * - * @return string */ - public function getVariableName() + public function getVariableName() : ?string { return $this->variableName; } - /** - * Returns the variable's type or null if unknown. - * - * @return Type|null - */ - public function getType() - { - return $this->type; - } - /** * Returns whether this tag is variadic. - * - * @return boolean */ - public function isVariadic() + public function isVariadic() : bool { return $this->isVariadic; } /** * Returns a string representation for this tag. - * - * @return string */ - public function __toString() + public function __toString() : string { return ($this->type ? $this->type . ' ' : '') - . ($this->isVariadic() ? '...' : '') - . '$' . $this->variableName - . ($this->description ? ' ' . $this->description : ''); + . ($this->isVariadic() ? '...' : '') + . ($this->variableName !== null ? '$' . $this->variableName : '') + . ($this->description ? ' ' . $this->description : ''); } } diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Property.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Property.php index f0ef7c07b..0da0233dd 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Property.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Property.php @@ -1,12 +1,13 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT * @link http://phpdoc.org */ @@ -18,65 +19,64 @@ use phpDocumentor\Reflection\Type; use phpDocumentor\Reflection\TypeResolver; use phpDocumentor\Reflection\Types\Context as TypeContext; use Webmozart\Assert\Assert; +use function array_shift; +use function array_unshift; +use function implode; +use function preg_split; +use function strpos; +use function substr; +use const PREG_SPLIT_DELIM_CAPTURE; /** * Reflection class for a {@}property tag in a Docblock. */ -class Property extends BaseTag implements Factory\StaticMethod +final class Property extends TagWithType implements Factory\StaticMethod { - /** @var string */ - protected $name = 'property'; + /** @var string|null */ + protected $variableName; - /** @var Type */ - private $type; - - /** @var string */ - protected $variableName = ''; - - /** - * @param string $variableName - * @param Type $type - * @param Description $description - */ - public function __construct($variableName, Type $type = null, Description $description = null) + public function __construct(?string $variableName, ?Type $type = null, ?Description $description = null) { Assert::string($variableName); + $this->name = 'property'; $this->variableName = $variableName; - $this->type = $type; - $this->description = $description; + $this->type = $type; + $this->description = $description; } - /** - * {@inheritdoc} - */ public static function create( - $body, - TypeResolver $typeResolver = null, - DescriptionFactory $descriptionFactory = null, - TypeContext $context = null - ) { + string $body, + ?TypeResolver $typeResolver = null, + ?DescriptionFactory $descriptionFactory = null, + ?TypeContext $context = null + ) : self { Assert::stringNotEmpty($body); - Assert::allNotNull([$typeResolver, $descriptionFactory]); + Assert::notNull($typeResolver); + Assert::notNull($descriptionFactory); - $parts = preg_split('/(\s+)/Su', $body, 3, PREG_SPLIT_DELIM_CAPTURE); - $type = null; + [$firstPart, $body] = self::extractTypeFromBody($body); + $type = null; + $parts = preg_split('/(\s+)/Su', $body, 2, PREG_SPLIT_DELIM_CAPTURE); + Assert::isArray($parts); $variableName = ''; // if the first item that is encountered is not a variable; it is a type - if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] !== '$')) { - $type = $typeResolver->resolve(array_shift($parts), $context); - array_shift($parts); + if ($firstPart && $firstPart[0] !== '$') { + $type = $typeResolver->resolve($firstPart, $context); + } else { + // first part is not a type; we should prepend it to the parts array for further processing + array_unshift($parts, $firstPart); } // if the next item starts with a $ or ...$ it must be the variable name - if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] === '$')) { + if (isset($parts[0]) && strpos($parts[0], '$') === 0) { $variableName = array_shift($parts); array_shift($parts); - if (substr($variableName, 0, 1) === '$') { - $variableName = substr($variableName, 1); - } + Assert::notNull($variableName); + + $variableName = substr($variableName, 1); } $description = $descriptionFactory->create(implode('', $parts), $context); @@ -86,33 +86,19 @@ class Property extends BaseTag implements Factory\StaticMethod /** * Returns the variable's name. - * - * @return string */ - public function getVariableName() + public function getVariableName() : ?string { return $this->variableName; } - /** - * Returns the variable's type or null if unknown. - * - * @return Type|null - */ - public function getType() - { - return $this->type; - } - /** * Returns a string representation for this tag. - * - * @return string */ - public function __toString() + public function __toString() : string { return ($this->type ? $this->type . ' ' : '') - . '$' . $this->variableName - . ($this->description ? ' ' . $this->description : ''); + . ($this->variableName ? '$' . $this->variableName : '') + . ($this->description ? ' ' . $this->description : ''); } } diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyRead.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyRead.php index e41c0c1ce..af768fb57 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyRead.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyRead.php @@ -1,12 +1,13 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT * @link http://phpdoc.org */ @@ -18,65 +19,64 @@ use phpDocumentor\Reflection\Type; use phpDocumentor\Reflection\TypeResolver; use phpDocumentor\Reflection\Types\Context as TypeContext; use Webmozart\Assert\Assert; +use function array_shift; +use function array_unshift; +use function implode; +use function preg_split; +use function strpos; +use function substr; +use const PREG_SPLIT_DELIM_CAPTURE; /** * Reflection class for a {@}property-read tag in a Docblock. */ -class PropertyRead extends BaseTag implements Factory\StaticMethod +final class PropertyRead extends TagWithType implements Factory\StaticMethod { - /** @var string */ - protected $name = 'property-read'; + /** @var string|null */ + protected $variableName; - /** @var Type */ - private $type; - - /** @var string */ - protected $variableName = ''; - - /** - * @param string $variableName - * @param Type $type - * @param Description $description - */ - public function __construct($variableName, Type $type = null, Description $description = null) + public function __construct(?string $variableName, ?Type $type = null, ?Description $description = null) { Assert::string($variableName); + $this->name = 'property-read'; $this->variableName = $variableName; - $this->type = $type; - $this->description = $description; + $this->type = $type; + $this->description = $description; } - /** - * {@inheritdoc} - */ public static function create( - $body, - TypeResolver $typeResolver = null, - DescriptionFactory $descriptionFactory = null, - TypeContext $context = null - ) { + string $body, + ?TypeResolver $typeResolver = null, + ?DescriptionFactory $descriptionFactory = null, + ?TypeContext $context = null + ) : self { Assert::stringNotEmpty($body); - Assert::allNotNull([$typeResolver, $descriptionFactory]); + Assert::notNull($typeResolver); + Assert::notNull($descriptionFactory); - $parts = preg_split('/(\s+)/Su', $body, 3, PREG_SPLIT_DELIM_CAPTURE); - $type = null; + [$firstPart, $body] = self::extractTypeFromBody($body); + $type = null; + $parts = preg_split('/(\s+)/Su', $body, 2, PREG_SPLIT_DELIM_CAPTURE); + Assert::isArray($parts); $variableName = ''; // if the first item that is encountered is not a variable; it is a type - if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] !== '$')) { - $type = $typeResolver->resolve(array_shift($parts), $context); - array_shift($parts); + if ($firstPart && $firstPart[0] !== '$') { + $type = $typeResolver->resolve($firstPart, $context); + } else { + // first part is not a type; we should prepend it to the parts array for further processing + array_unshift($parts, $firstPart); } // if the next item starts with a $ or ...$ it must be the variable name - if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] === '$')) { + if (isset($parts[0]) && strpos($parts[0], '$') === 0) { $variableName = array_shift($parts); array_shift($parts); - if (substr($variableName, 0, 1) === '$') { - $variableName = substr($variableName, 1); - } + Assert::notNull($variableName); + + $variableName = substr($variableName, 1); } $description = $descriptionFactory->create(implode('', $parts), $context); @@ -86,33 +86,19 @@ class PropertyRead extends BaseTag implements Factory\StaticMethod /** * Returns the variable's name. - * - * @return string */ - public function getVariableName() + public function getVariableName() : ?string { return $this->variableName; } - /** - * Returns the variable's type or null if unknown. - * - * @return Type|null - */ - public function getType() - { - return $this->type; - } - /** * Returns a string representation for this tag. - * - * @return string */ - public function __toString() + public function __toString() : string { return ($this->type ? $this->type . ' ' : '') - . '$' . $this->variableName - . ($this->description ? ' ' . $this->description : ''); + . ($this->variableName ? '$' . $this->variableName : '') + . ($this->description ? ' ' . $this->description : ''); } } diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyWrite.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyWrite.php index cfdb0ed00..34cd75fc3 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyWrite.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyWrite.php @@ -1,12 +1,13 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT * @link http://phpdoc.org */ @@ -18,65 +19,64 @@ use phpDocumentor\Reflection\Type; use phpDocumentor\Reflection\TypeResolver; use phpDocumentor\Reflection\Types\Context as TypeContext; use Webmozart\Assert\Assert; +use function array_shift; +use function array_unshift; +use function implode; +use function preg_split; +use function strpos; +use function substr; +use const PREG_SPLIT_DELIM_CAPTURE; /** * Reflection class for a {@}property-write tag in a Docblock. */ -class PropertyWrite extends BaseTag implements Factory\StaticMethod +final class PropertyWrite extends TagWithType implements Factory\StaticMethod { /** @var string */ - protected $name = 'property-write'; + protected $variableName; - /** @var Type */ - private $type; - - /** @var string */ - protected $variableName = ''; - - /** - * @param string $variableName - * @param Type $type - * @param Description $description - */ - public function __construct($variableName, Type $type = null, Description $description = null) + public function __construct(?string $variableName, ?Type $type = null, ?Description $description = null) { Assert::string($variableName); + $this->name = 'property-write'; $this->variableName = $variableName; - $this->type = $type; - $this->description = $description; + $this->type = $type; + $this->description = $description; } - /** - * {@inheritdoc} - */ public static function create( - $body, - TypeResolver $typeResolver = null, - DescriptionFactory $descriptionFactory = null, - TypeContext $context = null - ) { + string $body, + ?TypeResolver $typeResolver = null, + ?DescriptionFactory $descriptionFactory = null, + ?TypeContext $context = null + ) : self { Assert::stringNotEmpty($body); - Assert::allNotNull([$typeResolver, $descriptionFactory]); + Assert::notNull($typeResolver); + Assert::notNull($descriptionFactory); - $parts = preg_split('/(\s+)/Su', $body, 3, PREG_SPLIT_DELIM_CAPTURE); - $type = null; + [$firstPart, $body] = self::extractTypeFromBody($body); + $type = null; + $parts = preg_split('/(\s+)/Su', $body, 2, PREG_SPLIT_DELIM_CAPTURE); + Assert::isArray($parts); $variableName = ''; // if the first item that is encountered is not a variable; it is a type - if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] !== '$')) { - $type = $typeResolver->resolve(array_shift($parts), $context); - array_shift($parts); + if ($firstPart && $firstPart[0] !== '$') { + $type = $typeResolver->resolve($firstPart, $context); + } else { + // first part is not a type; we should prepend it to the parts array for further processing + array_unshift($parts, $firstPart); } // if the next item starts with a $ or ...$ it must be the variable name - if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] === '$')) { + if (isset($parts[0]) && strpos($parts[0], '$') === 0) { $variableName = array_shift($parts); array_shift($parts); - if (substr($variableName, 0, 1) === '$') { - $variableName = substr($variableName, 1); - } + Assert::notNull($variableName); + + $variableName = substr($variableName, 1); } $description = $descriptionFactory->create(implode('', $parts), $context); @@ -86,33 +86,19 @@ class PropertyWrite extends BaseTag implements Factory\StaticMethod /** * Returns the variable's name. - * - * @return string */ - public function getVariableName() + public function getVariableName() : ?string { return $this->variableName; } - /** - * Returns the variable's type or null if unknown. - * - * @return Type|null - */ - public function getType() - { - return $this->type; - } - /** * Returns a string representation for this tag. - * - * @return string */ - public function __toString() + public function __toString() : string { return ($this->type ? $this->type . ' ' : '') - . '$' . $this->variableName - . ($this->description ? ' ' . $this->description : ''); + . ($this->variableName ? '$' . $this->variableName : '') + . ($this->description ? ' ' . $this->description : ''); } } diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Fqsen.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Fqsen.php index dc7b8b6d4..cede74c17 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Fqsen.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Fqsen.php @@ -1,13 +1,14 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org + * @link http://phpdoc.org */ namespace phpDocumentor\Reflection\DocBlock\Tags\Reference; @@ -15,18 +16,13 @@ namespace phpDocumentor\Reflection\DocBlock\Tags\Reference; use phpDocumentor\Reflection\Fqsen as RealFqsen; /** - * Fqsen reference used by {@see phpDocumentor\Reflection\DocBlock\Tags\See} + * Fqsen reference used by {@see \phpDocumentor\Reflection\DocBlock\Tags\See} */ final class Fqsen implements Reference { - /** - * @var RealFqsen - */ + /** @var RealFqsen */ private $fqsen; - /** - * Fqsen constructor. - */ public function __construct(RealFqsen $fqsen) { $this->fqsen = $fqsen; @@ -35,8 +31,8 @@ final class Fqsen implements Reference /** * @return string string representation of the referenced fqsen */ - public function __toString() + public function __toString() : string { - return (string)$this->fqsen; + return (string) $this->fqsen; } } diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Reference.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Reference.php index a3ffd24c9..5eedcbc36 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Reference.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Reference.php @@ -1,21 +1,22 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org + * @link http://phpdoc.org */ namespace phpDocumentor\Reflection\DocBlock\Tags\Reference; /** - * Interface for references in {@see phpDocumentor\Reflection\DocBlock\Tags\See} + * Interface for references in {@see \phpDocumentor\Reflection\DocBlock\Tags\See} */ interface Reference { - public function __toString(); + public function __toString() : string; } diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Url.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Url.php index 2671d5e13..1b2374b9c 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Url.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Url.php @@ -1,13 +1,14 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org + * @link http://phpdoc.org */ namespace phpDocumentor\Reflection\DocBlock\Tags\Reference; @@ -15,25 +16,20 @@ namespace phpDocumentor\Reflection\DocBlock\Tags\Reference; use Webmozart\Assert\Assert; /** - * Url reference used by {@see phpDocumentor\Reflection\DocBlock\Tags\See} + * Url reference used by {@see \phpDocumentor\Reflection\DocBlock\Tags\See} */ final class Url implements Reference { - /** - * @var string - */ + /** @var string */ private $uri; - /** - * Url constructor. - */ - public function __construct($uri) + public function __construct(string $uri) { Assert::stringNotEmpty($uri); $this->uri = $uri; } - public function __toString() + public function __toString() : string { return $this->uri; } diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Return_.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Return_.php index ca5bda705..60ba86038 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Return_.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Return_.php @@ -1,12 +1,13 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT * @link http://phpdoc.org */ @@ -22,51 +23,34 @@ use Webmozart\Assert\Assert; /** * Reflection class for a {@}return tag in a Docblock. */ -final class Return_ extends BaseTag implements Factory\StaticMethod +final class Return_ extends TagWithType implements Factory\StaticMethod { - protected $name = 'return'; - - /** @var Type */ - private $type; - - public function __construct(Type $type, Description $description = null) + public function __construct(Type $type, ?Description $description = null) { - $this->type = $type; + $this->name = 'return'; + $this->type = $type; $this->description = $description; } - /** - * {@inheritdoc} - */ public static function create( - $body, - TypeResolver $typeResolver = null, - DescriptionFactory $descriptionFactory = null, - TypeContext $context = null - ) { - Assert::string($body); - Assert::allNotNull([$typeResolver, $descriptionFactory]); + string $body, + ?TypeResolver $typeResolver = null, + ?DescriptionFactory $descriptionFactory = null, + ?TypeContext $context = null + ) : self { + Assert::notNull($typeResolver); + Assert::notNull($descriptionFactory); - $parts = preg_split('/\s+/Su', $body, 2); + [$type, $description] = self::extractTypeFromBody($body); - $type = $typeResolver->resolve(isset($parts[0]) ? $parts[0] : '', $context); - $description = $descriptionFactory->create(isset($parts[1]) ? $parts[1] : '', $context); + $type = $typeResolver->resolve($type, $context); + $description = $descriptionFactory->create($description, $context); return new static($type, $description); } - /** - * Returns the type section of the variable. - * - * @return Type - */ - public function getType() + public function __toString() : string { - return $this->type; - } - - public function __toString() - { - return $this->type . ' ' . $this->description; + return ($this->type ?: 'mixed') . ' ' . (string) $this->description; } } diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/See.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/See.php index 9e9e723bd..190973d61 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/See.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/See.php @@ -1,13 +1,14 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org + * @link http://phpdoc.org */ namespace phpDocumentor\Reflection\DocBlock\Tags; @@ -20,42 +21,40 @@ use phpDocumentor\Reflection\DocBlock\Tags\Reference\Url; use phpDocumentor\Reflection\FqsenResolver; use phpDocumentor\Reflection\Types\Context as TypeContext; use Webmozart\Assert\Assert; +use function preg_match; +use function preg_split; /** * Reflection class for an {@}see tag in a Docblock. */ -class See extends BaseTag implements Factory\StaticMethod +final class See extends BaseTag implements Factory\StaticMethod { + /** @var string */ protected $name = 'see'; /** @var Reference */ - protected $refers = null; + protected $refers; /** * Initializes this tag. - * - * @param Reference $refers - * @param Description $description */ - public function __construct(Reference $refers, Description $description = null) + public function __construct(Reference $refers, ?Description $description = null) { - $this->refers = $refers; + $this->refers = $refers; $this->description = $description; } - /** - * {@inheritdoc} - */ public static function create( - $body, - FqsenResolver $resolver = null, - DescriptionFactory $descriptionFactory = null, - TypeContext $context = null - ) { - Assert::string($body); - Assert::allNotNull([$resolver, $descriptionFactory]); + string $body, + ?FqsenResolver $typeResolver = null, + ?DescriptionFactory $descriptionFactory = null, + ?TypeContext $context = null + ) : self { + Assert::notNull($typeResolver); + Assert::notNull($descriptionFactory); - $parts = preg_split('/\s+/Su', $body, 2); + $parts = preg_split('/\s+/Su', $body, 2); + Assert::isArray($parts); $description = isset($parts[1]) ? $descriptionFactory->create($parts[1], $context) : null; // https://tools.ietf.org/html/rfc2396#section-3 @@ -63,25 +62,21 @@ class See extends BaseTag implements Factory\StaticMethod return new static(new Url($parts[0]), $description); } - return new static(new FqsenRef($resolver->resolve($parts[0], $context)), $description); + return new static(new FqsenRef($typeResolver->resolve($parts[0], $context)), $description); } /** * Returns the ref of this tag. - * - * @return Reference */ - public function getReference() + public function getReference() : Reference { return $this->refers; } /** * Returns a string representation of this tag. - * - * @return string */ - public function __toString() + public function __toString() : string { return $this->refers . ($this->description ? ' ' . $this->description->render() : ''); } diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Since.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Since.php index 835fb0dcd..d00ca3806 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Since.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Since.php @@ -1,12 +1,13 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT * @link http://phpdoc.org */ @@ -16,19 +17,21 @@ use phpDocumentor\Reflection\DocBlock\Description; use phpDocumentor\Reflection\DocBlock\DescriptionFactory; use phpDocumentor\Reflection\Types\Context as TypeContext; use Webmozart\Assert\Assert; +use function preg_match; /** * Reflection class for a {@}since tag in a Docblock. */ final class Since extends BaseTag implements Factory\StaticMethod { + /** @var string */ protected $name = 'since'; /** * PCRE regular expression matching a version vector. * Assumes the "x" modifier. */ - const REGEX_VECTOR = '(?: + public const REGEX_VECTOR = '(?: # Normal release vectors. \d\S* | @@ -40,10 +43,10 @@ final class Since extends BaseTag implements Factory\StaticMethod [^\s\:]+\:\s*\$[^\$]+\$ )'; - /** @var string The version vector. */ - private $version = ''; + /** @var string|null The version vector. */ + private $version; - public function __construct($version = null, Description $description = null) + public function __construct(?string $version = null, ?Description $description = null) { Assert::nullOrStringNotEmpty($version); @@ -51,44 +54,41 @@ final class Since extends BaseTag implements Factory\StaticMethod $this->description = $description; } - /** - * @return static - */ - public static function create($body, DescriptionFactory $descriptionFactory = null, TypeContext $context = null) - { - Assert::nullOrString($body); + public static function create( + ?string $body, + ?DescriptionFactory $descriptionFactory = null, + ?TypeContext $context = null + ) : ?self { if (empty($body)) { return new static(); } $matches = []; - if (! preg_match('/^(' . self::REGEX_VECTOR . ')\s*(.+)?$/sux', $body, $matches)) { + if (!preg_match('/^(' . self::REGEX_VECTOR . ')\s*(.+)?$/sux', $body, $matches)) { return null; } + Assert::notNull($descriptionFactory); + return new static( $matches[1], - $descriptionFactory->create(isset($matches[2]) ? $matches[2] : '', $context) + $descriptionFactory->create($matches[2] ?? '', $context) ); } /** * Gets the version section of the tag. - * - * @return string */ - public function getVersion() + public function getVersion() : ?string { return $this->version; } /** * Returns a string representation for this tag. - * - * @return string */ - public function __toString() + public function __toString() : string { - return $this->version . ($this->description ? ' ' . $this->description->render() : ''); + return (string) $this->version . ($this->description ? ' ' . (string) $this->description : ''); } } diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Source.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Source.php index 247b1b3ba..6d3c6cb78 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Source.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Source.php @@ -1,12 +1,13 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT * @link http://phpdoc.org */ @@ -16,6 +17,7 @@ use phpDocumentor\Reflection\DocBlock\Description; use phpDocumentor\Reflection\DocBlock\DescriptionFactory; use phpDocumentor\Reflection\Types\Context as TypeContext; use Webmozart\Assert\Assert; +use function preg_match; /** * Reflection class for a {@}source tag in a Docblock. @@ -26,26 +28,30 @@ final class Source extends BaseTag implements Factory\StaticMethod protected $name = 'source'; /** @var int The starting line, relative to the structural element's location. */ - private $startingLine = 1; + private $startingLine; /** @var int|null The number of lines, relative to the starting line. NULL means "to the end". */ - private $lineCount = null; + private $lineCount; - public function __construct($startingLine, $lineCount = null, Description $description = null) + /** + * @param int|string $startingLine should be a to int convertible value + * @param int|string|null $lineCount should be a to int convertible value + */ + public function __construct($startingLine, $lineCount = null, ?Description $description = null) { Assert::integerish($startingLine); Assert::nullOrIntegerish($lineCount); - $this->startingLine = (int)$startingLine; - $this->lineCount = $lineCount !== null ? (int)$lineCount : null; + $this->startingLine = (int) $startingLine; + $this->lineCount = $lineCount !== null ? (int) $lineCount : null; $this->description = $description; } - /** - * {@inheritdoc} - */ - public static function create($body, DescriptionFactory $descriptionFactory = null, TypeContext $context = null) - { + public static function create( + string $body, + ?DescriptionFactory $descriptionFactory = null, + ?TypeContext $context = null + ) : self { Assert::stringNotEmpty($body); Assert::notNull($descriptionFactory); @@ -55,15 +61,15 @@ final class Source extends BaseTag implements Factory\StaticMethod // Starting line / Number of lines / Description if (preg_match('/^([1-9]\d*)\s*(?:((?1))\s+)?(.*)$/sux', $body, $matches)) { - $startingLine = (int)$matches[1]; + $startingLine = (int) $matches[1]; if (isset($matches[2]) && $matches[2] !== '') { - $lineCount = (int)$matches[2]; + $lineCount = (int) $matches[2]; } $description = $matches[3]; } - return new static($startingLine, $lineCount, $descriptionFactory->create($description, $context)); + return new static($startingLine, $lineCount, $descriptionFactory->create($description??'', $context)); } /** @@ -72,7 +78,7 @@ final class Source extends BaseTag implements Factory\StaticMethod * @return int The starting line, relative to the structural element's * location. */ - public function getStartingLine() + public function getStartingLine() : int { return $this->startingLine; } @@ -83,15 +89,15 @@ final class Source extends BaseTag implements Factory\StaticMethod * @return int|null The number of lines, relative to the starting line. NULL * means "to the end". */ - public function getLineCount() + public function getLineCount() : ?int { return $this->lineCount; } - public function __toString() + public function __toString() : string { return $this->startingLine - . ($this->lineCount !== null ? ' ' . $this->lineCount : '') - . ($this->description ? ' ' . $this->description->render() : ''); + . ($this->lineCount !== null ? ' ' . $this->lineCount : '') + . ($this->description ? ' ' . (string) $this->description : ''); } } diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/TagWithType.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/TagWithType.php new file mode 100644 index 000000000..0083d34b2 --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/TagWithType.php @@ -0,0 +1,65 @@ +type; + } + + /** + * @return string[] + */ + protected static function extractTypeFromBody(string $body) : array + { + $type = ''; + $nestingLevel = 0; + for ($i = 0, $iMax = strlen($body); $i < $iMax; $i++) { + $character = $body[$i]; + + if ($nestingLevel === 0 && trim($character) === '') { + break; + } + + $type .= $character; + if (in_array($character, ['<', '(', '[', '{'])) { + $nestingLevel++; + continue; + } + + if (in_array($character, ['>', ')', ']', '}'])) { + $nestingLevel--; + continue; + } + } + + $description = trim(substr($body, strlen($type))); + + return [$type, $description]; + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Throws.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Throws.php index 349e773bb..13f07cec9 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Throws.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Throws.php @@ -1,12 +1,13 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT * @link http://phpdoc.org */ @@ -22,51 +23,34 @@ use Webmozart\Assert\Assert; /** * Reflection class for a {@}throws tag in a Docblock. */ -final class Throws extends BaseTag implements Factory\StaticMethod +final class Throws extends TagWithType implements Factory\StaticMethod { - protected $name = 'throws'; - - /** @var Type */ - private $type; - - public function __construct(Type $type, Description $description = null) + public function __construct(Type $type, ?Description $description = null) { + $this->name = 'throws'; $this->type = $type; $this->description = $description; } - /** - * {@inheritdoc} - */ public static function create( - $body, - TypeResolver $typeResolver = null, - DescriptionFactory $descriptionFactory = null, - TypeContext $context = null - ) { - Assert::string($body); - Assert::allNotNull([$typeResolver, $descriptionFactory]); + string $body, + ?TypeResolver $typeResolver = null, + ?DescriptionFactory $descriptionFactory = null, + ?TypeContext $context = null + ) : self { + Assert::notNull($typeResolver); + Assert::notNull($descriptionFactory); - $parts = preg_split('/\s+/Su', $body, 2); + [$type, $description] = self::extractTypeFromBody($body); - $type = $typeResolver->resolve(isset($parts[0]) ? $parts[0] : '', $context); - $description = $descriptionFactory->create(isset($parts[1]) ? $parts[1] : '', $context); + $type = $typeResolver->resolve($type, $context); + $description = $descriptionFactory->create($description, $context); return new static($type, $description); } - /** - * Returns the type section of the variable. - * - * @return Type - */ - public function getType() + public function __toString() : string { - return $this->type; - } - - public function __toString() - { - return $this->type . ' ' . $this->description; + return (string) $this->type . ' ' . (string) $this->description; } } diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Uses.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Uses.php index 00dc3e3bc..1be71f66f 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Uses.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Uses.php @@ -1,13 +1,14 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org + * @link http://phpdoc.org */ namespace phpDocumentor\Reflection\DocBlock\Tags; @@ -18,66 +19,60 @@ use phpDocumentor\Reflection\Fqsen; use phpDocumentor\Reflection\FqsenResolver; use phpDocumentor\Reflection\Types\Context as TypeContext; use Webmozart\Assert\Assert; +use function preg_split; /** * Reflection class for a {@}uses tag in a Docblock. */ final class Uses extends BaseTag implements Factory\StaticMethod { + /** @var string */ protected $name = 'uses'; /** @var Fqsen */ - protected $refers = null; + protected $refers; /** * Initializes this tag. - * - * @param Fqsen $refers - * @param Description $description */ - public function __construct(Fqsen $refers, Description $description = null) + public function __construct(Fqsen $refers, ?Description $description = null) { $this->refers = $refers; $this->description = $description; } - /** - * {@inheritdoc} - */ public static function create( - $body, - FqsenResolver $resolver = null, - DescriptionFactory $descriptionFactory = null, - TypeContext $context = null - ) { - Assert::string($body); - Assert::allNotNull([$resolver, $descriptionFactory]); + string $body, + ?FqsenResolver $resolver = null, + ?DescriptionFactory $descriptionFactory = null, + ?TypeContext $context = null + ) : self { + Assert::notNull($resolver); + Assert::notNull($descriptionFactory); $parts = preg_split('/\s+/Su', $body, 2); + Assert::isArray($parts); + Assert::allString($parts); return new static( $resolver->resolve($parts[0], $context), - $descriptionFactory->create(isset($parts[1]) ? $parts[1] : '', $context) + $descriptionFactory->create($parts[1] ?? '', $context) ); } /** * Returns the structural element this tag refers to. - * - * @return Fqsen */ - public function getReference() + public function getReference() : Fqsen { return $this->refers; } /** * Returns a string representation of this tag. - * - * @return string */ - public function __toString() + public function __toString() : string { - return $this->refers . ' ' . $this->description->render(); + return $this->refers . ' ' . (string) $this->description; } } diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Var_.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Var_.php index 8907c951f..e03f994c0 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Var_.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Var_.php @@ -1,12 +1,13 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT * @link http://phpdoc.org */ @@ -18,65 +19,65 @@ use phpDocumentor\Reflection\Type; use phpDocumentor\Reflection\TypeResolver; use phpDocumentor\Reflection\Types\Context as TypeContext; use Webmozart\Assert\Assert; +use function array_shift; +use function array_unshift; +use function implode; +use function preg_split; +use function strpos; +use function substr; +use const PREG_SPLIT_DELIM_CAPTURE; /** * Reflection class for a {@}var tag in a Docblock. */ -class Var_ extends BaseTag implements Factory\StaticMethod +final class Var_ extends TagWithType implements Factory\StaticMethod { - /** @var string */ - protected $name = 'var'; - - /** @var Type */ - private $type; - - /** @var string */ + /** @var string|null */ protected $variableName = ''; - /** - * @param string $variableName - * @param Type $type - * @param Description $description - */ - public function __construct($variableName, Type $type = null, Description $description = null) + public function __construct(?string $variableName, ?Type $type = null, ?Description $description = null) { Assert::string($variableName); + $this->name = 'var'; $this->variableName = $variableName; $this->type = $type; $this->description = $description; } - /** - * {@inheritdoc} - */ public static function create( - $body, - TypeResolver $typeResolver = null, - DescriptionFactory $descriptionFactory = null, - TypeContext $context = null - ) { + string $body, + ?TypeResolver $typeResolver = null, + ?DescriptionFactory $descriptionFactory = null, + ?TypeContext $context = null + ) : self { Assert::stringNotEmpty($body); - Assert::allNotNull([$typeResolver, $descriptionFactory]); + Assert::notNull($typeResolver); + Assert::notNull($descriptionFactory); - $parts = preg_split('/(\s+)/Su', $body, 3, PREG_SPLIT_DELIM_CAPTURE); + [$firstPart, $body] = self::extractTypeFromBody($body); + + $parts = preg_split('/(\s+)/Su', $body, 2, PREG_SPLIT_DELIM_CAPTURE); + Assert::isArray($parts); $type = null; $variableName = ''; // if the first item that is encountered is not a variable; it is a type - if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] !== '$')) { - $type = $typeResolver->resolve(array_shift($parts), $context); - array_shift($parts); + if ($firstPart && $firstPart[0] !== '$') { + $type = $typeResolver->resolve($firstPart, $context); + } else { + // first part is not a type; we should prepend it to the parts array for further processing + array_unshift($parts, $firstPart); } // if the next item starts with a $ or ...$ it must be the variable name - if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] === '$')) { + if (isset($parts[0]) && strpos($parts[0], '$') === 0) { $variableName = array_shift($parts); array_shift($parts); - if (substr($variableName, 0, 1) === '$') { - $variableName = substr($variableName, 1); - } + Assert::notNull($variableName); + + $variableName = substr($variableName, 1); } $description = $descriptionFactory->create(implode('', $parts), $context); @@ -86,33 +87,19 @@ class Var_ extends BaseTag implements Factory\StaticMethod /** * Returns the variable's name. - * - * @return string */ - public function getVariableName() + public function getVariableName() : ?string { return $this->variableName; } - /** - * Returns the variable's type or null if unknown. - * - * @return Type|null - */ - public function getType() - { - return $this->type; - } - /** * Returns a string representation for this tag. - * - * @return string */ - public function __toString() + public function __toString() : string { return ($this->type ? $this->type . ' ' : '') - . (empty($this->variableName) ? null : ('$' . $this->variableName)) + . (empty($this->variableName) ? '' : '$' . $this->variableName) . ($this->description ? ' ' . $this->description : ''); } } diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Version.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Version.php index 7bb042073..eaadf4d3a 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Version.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Version.php @@ -1,13 +1,14 @@ - * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com) - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org + * @link http://phpdoc.org */ namespace phpDocumentor\Reflection\DocBlock\Tags; @@ -16,19 +17,21 @@ use phpDocumentor\Reflection\DocBlock\Description; use phpDocumentor\Reflection\DocBlock\DescriptionFactory; use phpDocumentor\Reflection\Types\Context as TypeContext; use Webmozart\Assert\Assert; +use function preg_match; /** * Reflection class for a {@}version tag in a Docblock. */ final class Version extends BaseTag implements Factory\StaticMethod { + /** @var string */ protected $name = 'version'; /** * PCRE regular expression matching a version vector. * Assumes the "x" modifier. */ - const REGEX_VECTOR = '(?: + public const REGEX_VECTOR = '(?: # Normal release vectors. \d\S* | @@ -40,23 +43,22 @@ final class Version extends BaseTag implements Factory\StaticMethod [^\s\:]+\:\s*\$[^\$]+\$ )'; - /** @var string The version vector. */ - private $version = ''; + /** @var string|null The version vector. */ + private $version; - public function __construct($version = null, Description $description = null) + public function __construct(?string $version = null, ?Description $description = null) { Assert::nullOrStringNotEmpty($version); - $this->version = $version; + $this->version = $version; $this->description = $description; } - /** - * @return static - */ - public static function create($body, DescriptionFactory $descriptionFactory = null, TypeContext $context = null) - { - Assert::nullOrString($body); + public static function create( + ?string $body, + ?DescriptionFactory $descriptionFactory = null, + ?TypeContext $context = null + ) : ?self { if (empty($body)) { return new static(); } @@ -66,29 +68,31 @@ final class Version extends BaseTag implements Factory\StaticMethod return null; } + $description = null; + if ($descriptionFactory !== null) { + $description = $descriptionFactory->create($matches[2] ?? '', $context); + } + return new static( $matches[1], - $descriptionFactory->create(isset($matches[2]) ? $matches[2] : '', $context) + $description ); } /** * Gets the version section of the tag. - * - * @return string */ - public function getVersion() + public function getVersion() : ?string { return $this->version; } /** * Returns a string representation for this tag. - * - * @return string */ - public function __toString() + public function __toString() : string { - return $this->version . ($this->description ? ' ' . $this->description->render() : ''); + return ((string) $this->version) . + ($this->description instanceof Description ? ' ' . $this->description->render() : ''); } } diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlockFactory.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlockFactory.php index 1bdb8f4df..cf04e5a55 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlockFactory.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlockFactory.php @@ -1,22 +1,36 @@ - * @license http://www.opensource.org/licenses/mit-license.php MIT * @link http://phpdoc.org */ namespace phpDocumentor\Reflection; +use InvalidArgumentException; +use LogicException; use phpDocumentor\Reflection\DocBlock\DescriptionFactory; use phpDocumentor\Reflection\DocBlock\StandardTagFactory; use phpDocumentor\Reflection\DocBlock\Tag; use phpDocumentor\Reflection\DocBlock\TagFactory; use Webmozart\Assert\Assert; +use function array_shift; +use function count; +use function explode; +use function is_object; +use function method_exists; +use function preg_match; +use function preg_replace; +use function str_replace; +use function strpos; +use function substr; +use function trim; final class DocBlockFactory implements DocBlockFactoryInterface { @@ -28,27 +42,22 @@ final class DocBlockFactory implements DocBlockFactoryInterface /** * Initializes this factory with the required subcontractors. - * - * @param DescriptionFactory $descriptionFactory - * @param TagFactory $tagFactory */ public function __construct(DescriptionFactory $descriptionFactory, TagFactory $tagFactory) { $this->descriptionFactory = $descriptionFactory; - $this->tagFactory = $tagFactory; + $this->tagFactory = $tagFactory; } /** * Factory method for easy instantiation. * - * @param string[] $additionalTags - * - * @return DocBlockFactory + * @param array> $additionalTags */ - public static function createInstance(array $additionalTags = []) + public static function createInstance(array $additionalTags = []) : self { - $fqsenResolver = new FqsenResolver(); - $tagFactory = new StandardTagFactory($fqsenResolver); + $fqsenResolver = new FqsenResolver(); + $tagFactory = new StandardTagFactory($fqsenResolver); $descriptionFactory = new DescriptionFactory($tagFactory); $tagFactory->addService($descriptionFactory); @@ -65,20 +74,18 @@ final class DocBlockFactory implements DocBlockFactoryInterface /** * @param object|string $docblock A string containing the DocBlock to parse or an object supporting the * getDocComment method (such as a ReflectionClass object). - * @param Types\Context $context - * @param Location $location - * - * @return DocBlock */ - public function create($docblock, Types\Context $context = null, Location $location = null) + public function create($docblock, ?Types\Context $context = null, ?Location $location = null) : DocBlock { if (is_object($docblock)) { if (!method_exists($docblock, 'getDocComment')) { $exceptionMessage = 'Invalid object passed; the given object must support the getDocComment method'; - throw new \InvalidArgumentException($exceptionMessage); + + throw new InvalidArgumentException($exceptionMessage); } $docblock = $docblock->getDocComment(); + Assert::string($docblock); } Assert::stringNotEmpty($docblock); @@ -88,14 +95,13 @@ final class DocBlockFactory implements DocBlockFactoryInterface } $parts = $this->splitDocBlock($this->stripDocComment($docblock)); - list($templateMarker, $summary, $description, $tags) = $parts; + + [$templateMarker, $summary, $description, $tags] = $parts; return new DocBlock( $summary, $description ? $this->descriptionFactory->create($description, $context) : null, - array_filter($this->parseTagBlock($tags, $context), function ($tag) { - return $tag instanceof Tag; - }), + $this->parseTagBlock($tags, $context), $context, $location, $templateMarker === '#@+', @@ -103,7 +109,10 @@ final class DocBlockFactory implements DocBlockFactoryInterface ); } - public function registerTagHandler($tagName, $handler) + /** + * @param class-string $handler + */ + public function registerTagHandler(string $tagName, string $handler) : void { $this->tagFactory->registerTagHandler($tagName, $handler); } @@ -112,12 +121,12 @@ final class DocBlockFactory implements DocBlockFactoryInterface * Strips the asterisks from the DocBlock comment. * * @param string $comment String containing the comment text. - * - * @return string */ - private function stripDocComment($comment) + private function stripDocComment(string $comment) : string { - $comment = trim(preg_replace('#[ \t]*(?:\/\*\*|\*\/|\*)?[ \t]{0,1}(.*)?#u', '$1', $comment)); + $comment = preg_replace('#[ \t]*(?:\/\*\*|\*\/|\*)?[ \t]?(.*)?#u', '$1', $comment); + Assert::string($comment); + $comment = trim($comment); // reg ex above is not able to remove */ from a single line docblock if (substr($comment, -2) === '*/') { @@ -127,18 +136,21 @@ final class DocBlockFactory implements DocBlockFactoryInterface return str_replace(["\r\n", "\r"], "\n", $comment); } + // phpcs:disable /** * Splits the DocBlock into a template marker, summary, description and block of tags. * * @param string $comment Comment to split into the sub-parts. * - * @author Richard van Velzen (@_richardJ) Special thanks to Richard for the regex responsible for the split. + * @return string[] containing the template marker (if any), summary, description and a string containing the tags. + * * @author Mike van Riel for extending the regex with template marker support. * - * @return string[] containing the template marker (if any), summary, description and a string containing the tags. + * @author Richard van Velzen (@_richardJ) Special thanks to Richard for the regex responsible for the split. */ - private function splitDocBlock($comment) + private function splitDocBlock(string $comment) : array { + // phpcs:enable // Performance improvement cheat: if the first character is an @ then only tags are in this DocBlock. This // method does not split tags so we return this verbatim as the fourth result (tags). This saves us the // performance impact of running a regular expression @@ -148,7 +160,7 @@ final class DocBlockFactory implements DocBlockFactoryInterface // clears all extra horizontal whitespace from the line endings to prevent parsing issues $comment = preg_replace('/\h*$/Sum', '', $comment); - + Assert::string($comment); /* * Splits the docblock into a template marker, summary, description and tags section. * @@ -176,7 +188,7 @@ final class DocBlockFactory implements DocBlockFactoryInterface [^\n.]+ (?: (?! \. \n | \n{2} ) # End summary upon a dot followed by newline or two newlines - [\n.] (?! [ \t]* @\pL ) # End summary when an @ is found as first character on a new line + [\n.]* (?! [ \t]* @\pL ) # End summary when an @ is found as first character on a new line [^\n.]+ # Include anything else )* \.? @@ -214,20 +226,21 @@ final class DocBlockFactory implements DocBlockFactoryInterface /** * Creates the tag objects. * - * @param string $tags Tag block to parse. + * @param string $tags Tag block to parse. * @param Types\Context $context Context of the parsed Tag * * @return DocBlock\Tag[] */ - private function parseTagBlock($tags, Types\Context $context) + private function parseTagBlock(string $tags, Types\Context $context) : array { $tags = $this->filterTagBlock($tags); - if (!$tags) { + if ($tags === null) { return []; } - $result = $this->splitTagBlockIntoTagLines($tags); - foreach ($result as $key => $tagLine) { + $result = []; + $lines = $this->splitTagBlockIntoTagLines($tags); + foreach ($lines as $key => $tagLine) { $result[$key] = $this->tagFactory->create(trim($tagLine), $context); } @@ -235,40 +248,36 @@ final class DocBlockFactory implements DocBlockFactoryInterface } /** - * @param string $tags - * * @return string[] */ - private function splitTagBlockIntoTagLines($tags) + private function splitTagBlockIntoTagLines(string $tags) : array { $result = []; - foreach (explode("\n", $tags) as $tag_line) { - if (isset($tag_line[0]) && ($tag_line[0] === '@')) { - $result[] = $tag_line; + foreach (explode("\n", $tags) as $tagLine) { + if ($tagLine !== '' && strpos($tagLine, '@') === 0) { + $result[] = $tagLine; } else { - $result[count($result) - 1] .= "\n" . $tag_line; + $result[count($result) - 1] .= "\n" . $tagLine; } } return $result; } - /** - * @param $tags - * @return string - */ - private function filterTagBlock($tags) + private function filterTagBlock(string $tags) : ?string { $tags = trim($tags); if (!$tags) { return null; } - if ('@' !== $tags[0]) { + if ($tags[0] !== '@') { // @codeCoverageIgnoreStart // Can't simulate this; this only happens if there is an error with the parsing of the DocBlock that // we didn't foresee. - throw new \LogicException('A tag block started with text instead of an at-sign(@): ' . $tags); + + throw new LogicException('A tag block started with text instead of an at-sign(@): ' . $tags); + // @codeCoverageIgnoreEnd } diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlockFactoryInterface.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlockFactoryInterface.php index b35334295..ef039a4d8 100644 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlockFactoryInterface.php +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlockFactoryInterface.php @@ -1,23 +1,23 @@ > $additionalTags */ - public static function createInstance(array $additionalTags = []); + public static function createInstance(array $additionalTags = []) : DocBlockFactory; /** - * @param string $docblock - * @param Types\Context $context - * @param Location $location - * - * @return DocBlock + * @param string|object $docblock */ - public function create($docblock, Types\Context $context = null, Location $location = null); + public function create($docblock, ?Types\Context $context = null, ?Location $location = null) : DocBlock; } diff --git a/vendor/phpdocumentor/type-resolver/.github/workflows/push.yml b/vendor/phpdocumentor/type-resolver/.github/workflows/push.yml index f218c25f4..9fade746a 100644 --- a/vendor/phpdocumentor/type-resolver/.github/workflows/push.yml +++ b/vendor/phpdocumentor/type-resolver/.github/workflows/push.yml @@ -1,35 +1,201 @@ -on: push +on: + push: + branches: + - master + pull_request: name: Qa workflow jobs: - composer: + setup: runs-on: ubuntu-latest steps: - - uses: actions/checkout@master - - name: composer - uses: docker://composer - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - args: install --no-interaction --prefer-dist --optimize-autoloader - - name: Code style check - uses: docker://phpdoc/phpcs-ga:master - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - args: -d memory_limit=1024M -s - - name: composer-require-checker - uses: docker://phpga/composer-require-checker-ga - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - args: check --config-file ./composer-require-config.json composer.json - - name: Psalm - uses: docker://mickaelandrieu/psalm-ga - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: PHPStan - uses: docker://oskarstark/phpstan-ga - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - args: analyse src tests --level max --configuration phpstan.neon + - uses: actions/checkout@master + - name: Restore/cache vendor folder + uses: actions/cache@v1 + with: + path: vendor + key: all-build-${{ hashFiles('**/composer.lock') }} + restore-keys: | + all-build-${{ hashFiles('**/composer.lock') }} + all-build- + - name: Restore/cache tools folder + uses: actions/cache@v1 + with: + path: tools + key: all-tools-${{ github.sha }} + restore-keys: | + all-tools-${{ github.sha }}- + all-tools- + - name: composer + uses: docker://composer + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + args: install --no-interaction --prefer-dist --optimize-autoloader + - name: composer-require-checker + uses: docker://phpga/composer-require-checker-ga + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + args: check --config-file ./composer-require-config.json composer.json + - name: Install phive + run: make install-phive + - name: Install PHAR dependencies + run: tools/phive.phar --no-progress install --copy --trust-gpg-keys 4AA394086372C20A,D2CCAC42F6295E7D,E82B2FB314E9906E,8E730BA25823D8B5 --force-accept-unsigned + + phpunit-with-coverage: + runs-on: ubuntu-latest + name: Unit tests + needs: setup + steps: + - uses: actions/checkout@master + - name: Restore/cache vendor folder + uses: actions/cache@v1 + with: + path: vendor + key: all-build-${{ hashFiles('**/composer.lock') }} + restore-keys: | + all-build-${{ hashFiles('**/composer.lock') }} + all-build- + - name: Restore/cache tools folder + uses: actions/cache@v1 + with: + path: tools + key: all-tools-${{ github.sha }} + restore-keys: | + all-tools-${{ github.sha }}- + all-tools- + - name: Setup PHP + uses: shivammathur/setup-php@master + with: + php-version: 7.2 + extension-csv: mbstring, intl, iconv, libxml, dom, json, simplexml, zlib + ini-values-csv: memory_limit=2G, display_errors=On, error_reporting=-1 + coverage: xdebug + pecl: false + - name: Run PHPUnit + run: php tools/phpunit + + phpunit: + runs-on: ${{ matrix.operating-system }} + strategy: + matrix: + operating-system: + - ubuntu-latest + - windows-latest + - macOS-latest + php-versions: ['7.2', '7.3', '7.4'] + name: Unit tests for PHP version ${{ matrix.php-versions }} on ${{ matrix.operating-system }} + needs: + - setup + - phpunit-with-coverage + steps: + - uses: actions/checkout@master + - name: Restore/cache vendor folder + uses: actions/cache@v1 + with: + path: vendor + key: all-build-${{ hashFiles('**/composer.lock') }} + restore-keys: | + all-build-${{ hashFiles('**/composer.lock') }} + all-build- + - name: Restore/cache tools folder + uses: actions/cache@v1 + with: + path: tools + key: all-tools-${{ github.sha }} + restore-keys: | + all-tools-${{ github.sha }}- + all-tools- + - name: Setup PHP + uses: shivammathur/setup-php@master + with: + php-version: ${{ matrix.php-versions }} + extension-csv: mbstring, intl, iconv, libxml, dom, json, simplexml, zlib + ini-values-csv: memory_limit=2G, display_errors=On, error_reporting=-1 + pecl: false + - name: Run PHPUnit + continue-on-error: true + run: php tools/phpunit + + codestyle: + runs-on: ubuntu-latest + needs: [setup, phpunit] + steps: + - uses: actions/checkout@master + - name: Restore/cache vendor folder + uses: actions/cache@v1 + with: + path: vendor + key: all-build-${{ hashFiles('**/composer.lock') }} + restore-keys: | + all-build-${{ hashFiles('**/composer.lock') }} + all-build- + - name: Code style check + uses: phpDocumentor/coding-standard@master + with: + args: -s + + phpstan: + runs-on: ubuntu-latest + needs: [setup, phpunit] + steps: + - uses: actions/checkout@master + - name: Restore/cache vendor folder + uses: actions/cache@v1 + with: + path: vendor + key: all-build-${{ hashFiles('**/composer.lock') }} + restore-keys: | + all-build-${{ hashFiles('**/composer.lock') }} + all-build- + - name: PHPStan + uses: phpDocumentor/phpstan-ga@master + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + args: analyse src --configuration phpstan.neon + + psalm: + runs-on: ubuntu-latest + needs: [setup, phpunit] + steps: + - uses: actions/checkout@master + - name: Restore/cache vendor folder + uses: actions/cache@v1 + with: + path: vendor + key: all-build-${{ hashFiles('**/composer.lock') }} + restore-keys: | + all-build-${{ hashFiles('**/composer.lock') }} + all-build- + - name: Restore/cache tools folder + uses: actions/cache@v1 + with: + path: tools + key: all-tools-${{ github.sha }} + restore-keys: | + all-tools-${{ github.sha }}- + all-tools- + - name: Psalm + uses: docker://mickaelandrieu/psalm-ga + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + bc_check: + name: BC Check + runs-on: ubuntu-latest + needs: [setup, phpunit] + steps: + - uses: actions/checkout@master + - name: fetch tags + run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* + - name: Restore/cache vendor folder + uses: actions/cache@v1 + with: + path: vendor + key: all-build-${{ hashFiles('**/composer.lock') }} + restore-keys: | + all-build-${{ hashFiles('**/composer.lock') }} + all-build- + - name: Roave BC Check + uses: docker://nyholm/roave-bc-check-ga diff --git a/vendor/phpdocumentor/type-resolver/Makefile b/vendor/phpdocumentor/type-resolver/Makefile new file mode 100644 index 000000000..b8c82315a --- /dev/null +++ b/vendor/phpdocumentor/type-resolver/Makefile @@ -0,0 +1,32 @@ +.PHONY: install-phive +install-phive: + mkdir tools; \ + wget -O tools/phive.phar https://phar.io/releases/phive.phar; \ + wget -O tools/phive.phar.asc https://phar.io/releases/phive.phar.asc; \ + gpg --keyserver pool.sks-keyservers.net --recv-keys 0x9D8A98B29B2D5D79; \ + gpg --verify tools/phive.phar.asc tools/phive.phar; \ + chmod +x tools/phive.phar + +.PHONY: setup +setup: install-phive + docker run -it --rm -v${PWD}:/opt/project -w /opt/project phpdoc/phar-ga:latest php tools/phive.phar install --force-accept-unsigned + +.PHONY: phpcs +phpcs: + docker run -it --rm -v${PWD}:/opt/project -w /opt/project phpdoc/phpcs-ga:v1.0.0 -s + +.PHONY: phpstan +phpstan: + docker run -it --rm -v${PWD}:/opt/project -w /opt/project phpdoc/phpstan-ga:latest analyse src --no-progress --configuration phpstan.neon + +.PHONY: psaml +psalm: + docker run -it --rm -v${PWD}:/opt/project -w /opt/project mickaelandrieu/psalm-ga + +.PHONY: test +test: + docker run -it --rm -v${PWD}:/opt/project -w /opt/project php:7.2 tools/phpunit + +.PHONY: pre-commit-test +pre-commit-test: test phpcs phpstan psalm + diff --git a/vendor/phpdocumentor/type-resolver/README.md b/vendor/phpdocumentor/type-resolver/README.md index 72fc36c6c..846eae295 100644 --- a/vendor/phpdocumentor/type-resolver/README.md +++ b/vendor/phpdocumentor/type-resolver/README.md @@ -1,12 +1,10 @@ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) -[![Travis Status](https://img.shields.io/travis/phpDocumentor/TypeResolver.svg?label=Linux)](https://travis-ci.org/phpDocumentor/TypeResolver) -[![Appveyor Status](https://img.shields.io/appveyor/ci/phpDocumentor/TypeResolver.svg?label=Windows)](https://ci.appveyor.com/project/phpDocumentor/TypeResolver/branch/master) +![](https://github.com/phpdocumentor/typeresolver/workflows/Qa%20workflow/badge.svg?branch=master) [![Coveralls Coverage](https://img.shields.io/coveralls/github/phpDocumentor/TypeResolver.svg)](https://coveralls.io/github/phpDocumentor/TypeResolver?branch=master) [![Scrutinizer Code Coverage](https://img.shields.io/scrutinizer/coverage/g/phpDocumentor/TypeResolver.svg)](https://scrutinizer-ci.com/g/phpDocumentor/TypeResolver/?branch=master) [![Scrutinizer Code Quality](https://img.shields.io/scrutinizer/g/phpDocumentor/TypeResolver.svg)](https://scrutinizer-ci.com/g/phpDocumentor/TypeResolver/?branch=master) -[![Stable Version](https://img.shields.io/packagist/v/phpDocumentor/Type-Resolver.svg)](https://packagist.org/packages/phpDocumentor/TypeResolver) -[![Unstable Version](https://img.shields.io/packagist/vpre/phpDocumentor/Type-Resolver.svg)](https://packagist.org/packages/phpDocumentor/TypeResolver) - +![Packagist Version](https://img.shields.io/packagist/v/phpdocumentor/type-resolver?label=Packagist%20stable) +![Packagist Version](https://img.shields.io/packagist/vpre/phpdocumentor/type-resolver?label=Packagist%20unstable) TypeResolver and FqsenResolver ============================== diff --git a/vendor/phpdocumentor/type-resolver/appveyor.yml b/vendor/phpdocumentor/type-resolver/appveyor.yml deleted file mode 100644 index 9dda46ca6..000000000 --- a/vendor/phpdocumentor/type-resolver/appveyor.yml +++ /dev/null @@ -1,52 +0,0 @@ -build: false -clone_folder: c:\typeresolver -max_jobs: 3 -platform: x86 -pull_requests: - do_not_increment_build_number: true -version: '{build}.{branch}' -skip_tags: true -branches: - only: - - master - -environment: - matrix: - - php_ver_target: 7.1 - - php_ver_target: 7.2 -matrix: - fast_finish: false - -cache: - - c:\php -> appveyor.yml - - '%LOCALAPPDATA%\Composer\files' - -init: - - SET PATH=C:\Program Files\OpenSSL;c:\tools\php;%PATH% - - SET COMPOSER_NO_INTERACTION=1 - - SET PHP=1 - - SET ANSICON=121x90 (121x90) - - -install: - - IF EXIST c:\tools\php (SET PHP=0) - - ps: appveyor-retry cinst --params '""/InstallDir:C:\tools\php""' --ignore-checksums -y php --version ((choco search php --exact --all-versions -r | select-string -pattern $env:php_ver_target | sort { [version]($_ -split '\|' | select -last 1) } -Descending | Select-Object -first 1) -replace '[php|]','') - - cd c:\tools\php - - IF %PHP%==1 copy /Y php.ini-development php.ini - - IF %PHP%==1 echo max_execution_time=1200 >> php.ini - - IF %PHP%==1 echo date.timezone="UTC" >> php.ini - - IF %PHP%==1 echo extension_dir=ext >> php.ini - - IF %PHP%==1 echo extension=php_curl.dll >> php.ini - - IF %PHP%==1 echo extension=php_openssl.dll >> php.ini - - IF %PHP%==1 echo extension=php_mbstring.dll >> php.ini - - IF %PHP%==1 echo extension=php_fileinfo.dll >> php.ini - - IF %PHP%==1 echo zend.assertions=1 >> php.ini - - IF %PHP%==1 echo assert.exception=On >> php.ini - - IF %PHP%==1 echo @php %%~dp0composer.phar %%* > composer.bat - - appveyor-retry appveyor DownloadFile https://getcomposer.org/composer.phar - - cd c:\typeresolver - - composer install --no-interaction --prefer-dist --no-progress - -test_script: - - cd c:\typeresolver - - vendor\bin\phpunit --no-coverage diff --git a/vendor/phpdocumentor/type-resolver/composer.json b/vendor/phpdocumentor/type-resolver/composer.json index f784935c3..601532cff 100644 --- a/vendor/phpdocumentor/type-resolver/composer.json +++ b/vendor/phpdocumentor/type-resolver/composer.json @@ -10,13 +10,12 @@ } ], "require": { - "php": "^7.1", + "php": "^7.2", "phpdocumentor/reflection-common": "^2.0" }, "require-dev": { "mockery/mockery": "~1", - "ext-tokenizer": "^7.1", - "phpunit/phpunit": "^7.0" + "ext-tokenizer": "^7.2" }, "autoload": { "psr-4": { diff --git a/vendor/phpdocumentor/type-resolver/composer.lock b/vendor/phpdocumentor/type-resolver/composer.lock index 529abe60c..f6fde1a3a 100644 --- a/vendor/phpdocumentor/type-resolver/composer.lock +++ b/vendor/phpdocumentor/type-resolver/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "8168e5df1ad1444a9512e8b63bab2bfe", + "content-hash": "2442731855d696520d47913fd007c143", "packages": [ { "name": "phpdocumentor/reflection-common", @@ -60,62 +60,6 @@ } ], "packages-dev": [ - { - "name": "doctrine/instantiator", - "version": "1.2.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "a2c590166b2133a4633738648b6b064edae0814a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/a2c590166b2133a4633738648b6b064edae0814a", - "reference": "a2c590166b2133a4633738648b6b064edae0814a", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "require-dev": { - "doctrine/coding-standard": "^6.0", - "ext-pdo": "*", - "ext-phar": "*", - "phpbench/phpbench": "^0.13", - "phpstan/phpstan-phpunit": "^0.11", - "phpstan/phpstan-shim": "^0.11", - "phpunit/phpunit": "^7.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" - } - ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", - "keywords": [ - "constructor", - "instantiate" - ], - "time": "2019-03-17T17:37:11+00:00" - }, { "name": "hamcrest/hamcrest-php", "version": "v2.0.0", @@ -166,22 +110,23 @@ }, { "name": "mockery/mockery", - "version": "1.2.2", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/mockery/mockery.git", - "reference": "0eb0b48c3f07b3b89f5169ce005b7d05b18cf1d2" + "reference": "5571962a4f733fbb57bede39778f71647fae8e66" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/0eb0b48c3f07b3b89f5169ce005b7d05b18cf1d2", - "reference": "0eb0b48c3f07b3b89f5169ce005b7d05b18cf1d2", + "url": "https://api.github.com/repos/mockery/mockery/zipball/5571962a4f733fbb57bede39778f71647fae8e66", + "reference": "5571962a4f733fbb57bede39778f71647fae8e66", "shasum": "" }, "require": { "hamcrest/hamcrest-php": "~2.0", "lib-pcre": ">=7.0", - "php": ">=5.6.0" + "php": ">=5.6.0", + "sebastian/comparator": "^1.2.4|^3.0" }, "require-dev": { "phpunit/phpunit": "~5.7.10|~6.5|~7.0|~8.0" @@ -189,7 +134,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.2.x-dev" } }, "autoload": { @@ -227,650 +172,7 @@ "test double", "testing" ], - "time": "2019-02-13T09:37:52+00:00" - }, - { - "name": "myclabs/deep-copy", - "version": "1.9.1", - "source": { - "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "e6828efaba2c9b79f4499dae1d66ef8bfa7b2b72" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/e6828efaba2c9b79f4499dae1d66ef8bfa7b2b72", - "reference": "e6828efaba2c9b79f4499dae1d66ef8bfa7b2b72", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "replace": { - "myclabs/deep-copy": "self.version" - }, - "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^7.1" - }, - "type": "library", - "autoload": { - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - }, - "files": [ - "src/DeepCopy/deep_copy.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Create deep copies (clones) of your objects", - "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" - ], - "time": "2019-04-07T13:18:21+00:00" - }, - { - "name": "phar-io/manifest", - "version": "1.0.3", - "source": { - "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", - "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-phar": "*", - "phar-io/version": "^2.0", - "php": "^5.6 || ^7.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "time": "2018-07-08T19:23:20+00:00" - }, - { - "name": "phar-io/version", - "version": "2.0.1", - "source": { - "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6", - "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Library for handling version information and constraints", - "time": "2018-07-08T19:19:57+00:00" - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "2.0.5", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "e6a969a640b00d8daa3c66518b0405fb41ae0c4b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/e6a969a640b00d8daa3c66518b0405fb41ae0c4b", - "reference": "e6a969a640b00d8daa3c66518b0405fb41ae0c4b", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.0" - }, - "suggest": { - "dflydev/markdown": "~1.0", - "erusev/parsedown": "~1.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "psr-0": { - "phpDocumentor": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "mike.vanriel@naenius.com" - } - ], - "time": "2016-01-25T08:17:30+00:00" - }, - { - "name": "phpspec/prophecy", - "version": "1.8.0", - "source": { - "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06", - "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", - "sebastian/comparator": "^1.1|^2.0|^3.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0" - }, - "require-dev": { - "phpspec/phpspec": "^2.5|^3.2", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.8.x-dev" - } - }, - "autoload": { - "psr-0": { - "Prophecy\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, - { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" - } - ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ], - "time": "2018-08-05T17:53:17+00:00" - }, - { - "name": "phpunit/php-code-coverage", - "version": "6.1.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/807e6013b00af69b6c5d9ceb4282d0393dbb9d8d", - "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-xmlwriter": "*", - "php": "^7.1", - "phpunit/php-file-iterator": "^2.0", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-token-stream": "^3.0", - "sebastian/code-unit-reverse-lookup": "^1.0.1", - "sebastian/environment": "^3.1 || ^4.0", - "sebastian/version": "^2.0.1", - "theseer/tokenizer": "^1.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.0" - }, - "suggest": { - "ext-xdebug": "^2.6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "keywords": [ - "coverage", - "testing", - "xunit" - ], - "time": "2018-10-31T16:06:48+00:00" - }, - { - "name": "phpunit/php-file-iterator", - "version": "2.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "050bedf145a257b1ff02746c31894800e5122946" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946", - "reference": "050bedf145a257b1ff02746c31894800e5122946", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", - "keywords": [ - "filesystem", - "iterator" - ], - "time": "2018-09-13T20:33:42+00:00" - }, - { - "name": "phpunit/php-text-template", - "version": "1.2.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", - "keywords": [ - "template" - ], - "time": "2015-06-21T13:50:34+00:00" - }, - { - "name": "phpunit/php-timer", - "version": "2.1.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "1038454804406b0b5f5f520358e78c1c2f71501e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e", - "reference": "1038454804406b0b5f5f520358e78c1c2f71501e", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" - ], - "time": "2019-06-07T04:22:29+00:00" - }, - { - "name": "phpunit/php-token-stream", - "version": "3.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "c99e3be9d3e85f60646f152f9002d46ed7770d18" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/c99e3be9d3e85f60646f152f9002d46ed7770d18", - "reference": "c99e3be9d3e85f60646f152f9002d46ed7770d18", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": "^7.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", - "keywords": [ - "tokenizer" - ], - "time": "2018-10-30T05:52:18+00:00" - }, - { - "name": "phpunit/phpunit", - "version": "7.5.12", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "9ba59817745b0fe0c1a5a3032dfd4a6d2994ad1c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9ba59817745b0fe0c1a5a3032dfd4a6d2994ad1c", - "reference": "9ba59817745b0fe0c1a5a3032dfd4a6d2994ad1c", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.1", - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "myclabs/deep-copy": "^1.7", - "phar-io/manifest": "^1.0.2", - "phar-io/version": "^2.0", - "php": "^7.1", - "phpspec/prophecy": "^1.7", - "phpunit/php-code-coverage": "^6.0.7", - "phpunit/php-file-iterator": "^2.0.1", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-timer": "^2.1", - "sebastian/comparator": "^3.0", - "sebastian/diff": "^3.0", - "sebastian/environment": "^4.0", - "sebastian/exporter": "^3.1", - "sebastian/global-state": "^2.0", - "sebastian/object-enumerator": "^3.0.3", - "sebastian/resource-operations": "^2.0", - "sebastian/version": "^2.0.1" - }, - "conflict": { - "phpunit/phpunit-mock-objects": "*" - }, - "require-dev": { - "ext-pdo": "*" - }, - "suggest": { - "ext-soap": "*", - "ext-xdebug": "*", - "phpunit/php-invoker": "^2.0" - }, - "bin": [ - "phpunit" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "7.5-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ], - "time": "2019-05-28T11:59:40+00:00" - }, - { - "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "time": "2017-03-04T06:30:41+00:00" + "time": "2019-11-24T07:54:50+00:00" }, { "name": "sebastian/comparator", @@ -992,71 +294,18 @@ ], "time": "2019-02-04T06:01:07+00:00" }, - { - "name": "sebastian/environment", - "version": "4.2.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/f2a2c8e1c97c11ace607a7a667d73d47c19fe404", - "reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.5" - }, - "suggest": { - "ext-posix": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.2-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", - "keywords": [ - "Xdebug", - "environment", - "hhvm" - ], - "time": "2019-05-05T09:05:15+00:00" - }, { "name": "sebastian/exporter", - "version": "3.1.0", + "version": "3.1.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "234199f4528de6d12aaa58b612e98f7d36adb937" + "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937", - "reference": "234199f4528de6d12aaa58b612e98f7d36adb937", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/68609e1261d215ea5b21b7987539cbfbe156ec3e", + "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e", "shasum": "" }, "require": { @@ -1083,6 +332,10 @@ "BSD-3-Clause" ], "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, { "name": "Jeff Welch", "email": "whatthejeff@gmail.com" @@ -1091,17 +344,13 @@ "name": "Volker Dusch", "email": "github@wallbash.com" }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, { "name": "Adam Harvey", "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" } ], "description": "Provides the functionality to export PHP variables for visualization", @@ -1110,150 +359,7 @@ "export", "exporter" ], - "time": "2017-04-03T13:19:02+00:00" - }, - { - "name": "sebastian/global-state", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", - "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", - "shasum": "" - }, - "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "suggest": { - "ext-uopz": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", - "keywords": [ - "global state" - ], - "time": "2017-04-27T15:39:26+00:00" - }, - { - "name": "sebastian/object-enumerator", - "version": "3.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", - "shasum": "" - }, - "require": { - "php": "^7.0", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "time": "2017-08-03T12:35:26+00:00" - }, - { - "name": "sebastian/object-reflector", - "version": "1.1.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "773f97c67f28de00d397be301821b06708fca0be" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", - "reference": "773f97c67f28de00d397be301821b06708fca0be", - "shasum": "" - }, - "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "time": "2017-03-29T09:07:27+00:00" + "time": "2019-09-14T09:02:43+00:00" }, { "name": "sebastian/recursion-context", @@ -1307,131 +413,6 @@ "description": "Provides functionality to recursively process PHP variables", "homepage": "http://www.github.com/sebastianbergmann/recursion-context", "time": "2017-03-03T06:23:57+00:00" - }, - { - "name": "sebastian/resource-operations", - "version": "2.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9", - "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "time": "2018-10-04T04:07:39+00:00" - }, - { - "name": "sebastian/version", - "version": "2.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", - "shasum": "" - }, - "require": { - "php": ">=5.6" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", - "time": "2016-10-03T07:35:21+00:00" - }, - { - "name": "theseer/tokenizer", - "version": "1.1.2", - "source": { - "type": "git", - "url": "https://github.com/theseer/tokenizer.git", - "reference": "1c42705be2b6c1de5904f8afacef5895cab44bf8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/1c42705be2b6c1de5904f8afacef5895cab44bf8", - "reference": "1c42705be2b6c1de5904f8afacef5895cab44bf8", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": "^7.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - } - ], - "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "time": "2019-04-04T09:56:43+00:00" } ], "aliases": [], @@ -1440,9 +421,9 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "^7.1" + "php": "^7.2" }, "platform-dev": { - "ext-tokenizer": "^7.1" + "ext-tokenizer": "^7.2" } } diff --git a/vendor/phpdocumentor/type-resolver/phive.xml b/vendor/phpdocumentor/type-resolver/phive.xml index 9908931e4..290682aad 100644 --- a/vendor/phpdocumentor/type-resolver/phive.xml +++ b/vendor/phpdocumentor/type-resolver/phive.xml @@ -1,5 +1,4 @@ - - + diff --git a/vendor/phpdocumentor/type-resolver/phpcs.xml.dist b/vendor/phpdocumentor/type-resolver/phpcs.xml.dist index c030e8def..1cb3002e8 100644 --- a/vendor/phpdocumentor/type-resolver/phpcs.xml.dist +++ b/vendor/phpdocumentor/type-resolver/phpcs.xml.dist @@ -6,25 +6,11 @@ tests/unit */tests/unit/Types/ContextFactoryTest.php - - *\.php - - - - - - - */src/*_.php + */src/*/Abstract*.php - - - - - - diff --git a/vendor/phpdocumentor/type-resolver/phpstan.neon b/vendor/phpdocumentor/type-resolver/phpstan.neon index 73a7e5163..1c62d3670 100644 --- a/vendor/phpdocumentor/type-resolver/phpstan.neon +++ b/vendor/phpdocumentor/type-resolver/phpstan.neon @@ -1,7 +1,4 @@ parameters: - ignoreErrors: - - - message: '#Parameter \#1 \$types of class phpDocumentor\\Reflection\\Types\\Compound constructor expects array, array given\.#' - path: %currentWorkingDirectory%/tests/unit/Types/CompoundTest.php - - message: '#Parameter \#2 \$fileContents of method phpDocumentor\\Reflection\\Types\\ContextFactory::createForNamespace\(\) expects string, string|false given\.#' - path: %currentWorkingDirectory%/tests/unit/Types/ContextFactoryTest.php + level: max + checkGenericClassInNonGenericObjectType: false + checkMissingIterableValueType: false diff --git a/vendor/phpdocumentor/type-resolver/src/TypeResolver.php b/vendor/phpdocumentor/type-resolver/src/TypeResolver.php index d849d5a38..8a2c858cf 100644 --- a/vendor/phpdocumentor/type-resolver/src/TypeResolver.php +++ b/vendor/phpdocumentor/type-resolver/src/TypeResolver.php @@ -16,6 +16,7 @@ namespace phpDocumentor\Reflection; use ArrayIterator; use InvalidArgumentException; use phpDocumentor\Reflection\Types\Array_; +use phpDocumentor\Reflection\Types\ClassString; use phpDocumentor\Reflection\Types\Collection; use phpDocumentor\Reflection\Types\Compound; use phpDocumentor\Reflection\Types\Context; @@ -25,8 +26,6 @@ use phpDocumentor\Reflection\Types\Nullable; use phpDocumentor\Reflection\Types\Object_; use phpDocumentor\Reflection\Types\String_; use RuntimeException; -use const PREG_SPLIT_DELIM_CAPTURE; -use const PREG_SPLIT_NO_EMPTY; use function array_keys; use function array_pop; use function class_exists; @@ -39,6 +38,8 @@ use function strpos; use function strtolower; use function substr; use function trim; +use const PREG_SPLIT_DELIM_CAPTURE; +use const PREG_SPLIT_NO_EMPTY; final class TypeResolver { @@ -66,6 +67,7 @@ final class TypeResolver */ private $keywords = [ 'string' => Types\String_::class, + 'class-string' => Types\ClassString::class, 'int' => Types\Integer::class, 'integer' => Types\Integer::class, 'bool' => Types\Boolean::class, @@ -221,7 +223,11 @@ final class TypeResolver $classType = array_pop($types); if ($classType !== null) { - $types[] = $this->resolveCollection($tokens, $classType, $context); + if ((string) $classType === 'class-string') { + $types[] = $this->resolveClassString($tokens, $context); + } else { + $types[] = $this->resolveCollection($tokens, $classType, $context); + } } $tokens->next(); @@ -289,6 +295,7 @@ final class TypeResolver return $this->resolveTypedObject($type); case $this->isPartialStructuralElementName($type): return $this->resolveTypedObject($type, $context); + // @codeCoverageIgnoreStart default: // I haven't got the foggiest how the logic would come here but added this as a defense. @@ -302,6 +309,8 @@ final class TypeResolver /** * Adds a keyword to the list of Keywords and associates it with a specific Value Object. + * + * @psalm-param class-string $typeClassName */ public function addKeyword(string $keyword, string $typeClassName) : void { @@ -373,6 +382,7 @@ final class TypeResolver private function resolveKeyword(string $type) : Type { $className = $this->keywords[strtolower($type)]; + return new $className(); } @@ -384,17 +394,48 @@ final class TypeResolver return new Object_($this->fqsenResolver->resolve($type, $context)); } + /** + * Resolves class string + */ + private function resolveClassString(ArrayIterator $tokens, Context $context) : Type + { + $tokens->next(); + + $classType = $this->parseTypes($tokens, $context, self::PARSER_IN_COLLECTION_EXPRESSION); + + if (!$classType instanceof Object_ || $classType->getFqsen() === null) { + throw new RuntimeException( + $classType . ' is not a class string' + ); + } + + if ($tokens->current() !== '>') { + if (empty($tokens->current())) { + throw new RuntimeException( + 'class-string: ">" is missing' + ); + } + + throw new RuntimeException( + 'Unexpected character "' . $tokens->current() . '", ">" is missing' + ); + } + + return new ClassString($classType->getFqsen()); + } + /** * Resolves the collection values and keys * - * @return Array_|Collection + * @return Array_|Iterable_|Collection */ private function resolveCollection(ArrayIterator $tokens, Type $classType, Context $context) : Type { - $isArray = ((string) $classType === 'array'); + $isArray = ((string) $classType === 'array'); + $isIterable = ((string) $classType === 'iterable'); - // allow only "array" or class name before "<" - if (!$isArray + // allow only "array", "iterable" or class name before "<" + if (!$isArray && !$isIterable && (!$classType instanceof Object_ || $classType->getFqsen() === null)) { throw new RuntimeException( $classType . ' is not a collection' @@ -455,6 +496,10 @@ final class TypeResolver return new Array_($valueType, $keyType); } + if ($isIterable) { + return new Iterable_($valueType, $keyType); + } + /** @psalm-suppress RedundantCondition */ if ($classType instanceof Object_) { return $this->makeCollectionFromObject($classType, $valueType, $keyType); diff --git a/vendor/phpdocumentor/type-resolver/src/Types/ClassString.php b/vendor/phpdocumentor/type-resolver/src/Types/ClassString.php new file mode 100644 index 000000000..b6fbd43a9 --- /dev/null +++ b/vendor/phpdocumentor/type-resolver/src/Types/ClassString.php @@ -0,0 +1,54 @@ +fqsen = $fqsen; + } + + /** + * Returns the FQSEN associated with this object. + */ + public function getFqsen() : ?Fqsen + { + return $this->fqsen; + } + + /** + * Returns a rendered output of the Type as it would be used in a DocBlock. + */ + public function __toString() : string + { + if ($this->fqsen === null) { + return 'class-string'; + } + + return 'class-string<' . (string) $this->fqsen . '>'; + } +} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Compound.php b/vendor/phpdocumentor/type-resolver/src/Types/Compound.php index 1da7bf972..30654e609 100644 --- a/vendor/phpdocumentor/type-resolver/src/Types/Compound.php +++ b/vendor/phpdocumentor/type-resolver/src/Types/Compound.php @@ -14,7 +14,6 @@ declare(strict_types=1); namespace phpDocumentor\Reflection\Types; use ArrayIterator; -use InvalidArgumentException; use IteratorAggregate; use phpDocumentor\Reflection\Type; use function implode; @@ -29,25 +28,18 @@ use function implode; final class Compound implements Type, IteratorAggregate { /** @var Type[] */ - private $types; + private $types = []; /** * Initializes a compound type (i.e. `string|int`) and tests if the provided types all implement the Type interface. * * @param Type[] $types - * - * @throws InvalidArgumentException When types are not all instance of Type. */ public function __construct(array $types) { foreach ($types as $type) { - /** @psalm-suppress RedundantConditionGivenDocblockType */ - if (!$type instanceof Type) { - throw new InvalidArgumentException('A compound type can only have other types as elements'); - } + $this->add($type); } - - $this->types = $types; } /** @@ -70,6 +62,21 @@ final class Compound implements Type, IteratorAggregate return isset($this->types[$index]); } + /** + * Tests if this compound type contains the given type. + */ + public function contains(Type $type) : bool + { + foreach ($this->types as $typePart) { + // if the type is duplicate; do not add it + if ((string) $typePart === (string) $type) { + return true; + } + } + + return false; + } + /** * Returns a rendered output of the Type as it would be used in a DocBlock. */ @@ -85,4 +92,14 @@ final class Compound implements Type, IteratorAggregate { return new ArrayIterator($this->types); } + + private function add(Type $type) : void + { + // if the type is duplicate; do not add it + if ($this->contains($type)) { + return; + } + + $this->types[] = $type; + } } diff --git a/vendor/phpdocumentor/type-resolver/src/Types/ContextFactory.php b/vendor/phpdocumentor/type-resolver/src/Types/ContextFactory.php index 851a3c22d..5e522b4b2 100644 --- a/vendor/phpdocumentor/type-resolver/src/Types/ContextFactory.php +++ b/vendor/phpdocumentor/type-resolver/src/Types/ContextFactory.php @@ -23,6 +23,13 @@ use ReflectionProperty; use Reflector; use RuntimeException; use UnexpectedValueException; +use function array_merge; +use function file_exists; +use function file_get_contents; +use function get_class; +use function is_string; +use function token_get_all; +use function trim; use const T_AS; use const T_CLASS; use const T_CURLY_OPEN; @@ -31,13 +38,6 @@ use const T_NAMESPACE; use const T_NS_SEPARATOR; use const T_STRING; use const T_USE; -use function array_merge; -use function file_exists; -use function file_get_contents; -use function get_class; -use function is_string; -use function token_get_all; -use function trim; /** * Convenience class to create a Context for DocBlocks when not using the Reflection Component of phpDocumentor. @@ -172,11 +172,13 @@ final class ContextFactory $tokens->next(); } + break; case T_USE: if ($currentNamespace === $namespace) { $useStatements = array_merge($useStatements, $this->parseUseStatement($tokens)); } + break; } @@ -220,6 +222,10 @@ final class ContextFactory if ($tokens->current()[0] === self::T_LITERAL_END_OF_USE) { return $uses; } + + if ($tokens->current() === false) { + break; + } } return $uses; @@ -278,6 +284,7 @@ final class ContextFactory default: break; } + break; case 'start-alias': switch ($tokenId) { @@ -291,6 +298,7 @@ final class ContextFactory default: break; } + break; case 'grouped': switch ($tokenId) { @@ -314,6 +322,7 @@ final class ContextFactory default: break; } + break; case 'grouped-alias': switch ($tokenId) { diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Iterable_.php b/vendor/phpdocumentor/type-resolver/src/Types/Iterable_.php index 491695189..f2fb19884 100644 --- a/vendor/phpdocumentor/type-resolver/src/Types/Iterable_.php +++ b/vendor/phpdocumentor/type-resolver/src/Types/Iterable_.php @@ -13,18 +13,24 @@ declare(strict_types=1); namespace phpDocumentor\Reflection\Types; -use phpDocumentor\Reflection\Type; - /** * Value Object representing iterable type */ -final class Iterable_ implements Type +final class Iterable_ extends AbstractList { /** * Returns a rendered output of the Type as it would be used in a DocBlock. */ public function __toString() : string { - return 'iterable'; + if ($this->keyType) { + return 'iterable<' . $this->keyType . ',' . $this->valueType . '>'; + } + + if ($this->valueType instanceof Mixed_) { + return 'iterable'; + } + + return 'iterable<' . $this->valueType . '>'; } } diff --git a/vendor/phpoption/phpoption/composer.json b/vendor/phpoption/phpoption/composer.json index f43df5a64..77868bdbd 100644 --- a/vendor/phpoption/phpoption/composer.json +++ b/vendor/phpoption/phpoption/composer.json @@ -14,7 +14,7 @@ } ], "require": { - "php": "^5.5.9 || ^7.0" + "php": "^5.5.9 || ^7.0 || ^8.0" }, "require-dev": { "phpunit/phpunit": "^4.8.35 || ^5.0 || ^6.0 || ^7.0", diff --git a/vendor/phpoption/phpoption/src/PhpOption/LazyOption.php b/vendor/phpoption/phpoption/src/PhpOption/LazyOption.php index 5fdb1af5a..e192b1107 100644 --- a/vendor/phpoption/phpoption/src/PhpOption/LazyOption.php +++ b/vendor/phpoption/phpoption/src/PhpOption/LazyOption.php @@ -25,10 +25,10 @@ namespace PhpOption; */ final class LazyOption extends Option { - /** @var callable */ + /** @var callable(mixed...):(Option) */ private $callback; - /** @var array */ + /** @var array */ private $arguments; /** @var Option|null */ @@ -36,9 +36,8 @@ final class LazyOption extends Option /** * @template S - * - * @param callable $callback - * @param array $arguments + * @param callable(mixed...):(Option) $callback + * @param array $arguments * * @return LazyOption */ @@ -48,8 +47,8 @@ final class LazyOption extends Option } /** - * @param callable $callback - * @param array $arguments + * @param callable(mixed...):(Option) $callback + * @param array $arguments */ public function __construct($callback, array $arguments = []) { diff --git a/vendor/phpoption/phpoption/src/PhpOption/None.php b/vendor/phpoption/phpoption/src/PhpOption/None.php index 2c91e4597..13b2b4e10 100644 --- a/vendor/phpoption/phpoption/src/PhpOption/None.php +++ b/vendor/phpoption/phpoption/src/PhpOption/None.php @@ -21,17 +21,15 @@ namespace PhpOption; use EmptyIterator; /** - * @template T - * - * @extends Option + * @extends Option */ final class None extends Option { - /** @var None */ + /** @var None|null */ private static $instance; /** - * @return None + * @return None */ public static function create() { diff --git a/vendor/phpoption/phpoption/src/PhpOption/Option.php b/vendor/phpoption/phpoption/src/PhpOption/Option.php index 70b56ab46..bdc215f11 100644 --- a/vendor/phpoption/phpoption/src/PhpOption/Option.php +++ b/vendor/phpoption/phpoption/src/PhpOption/Option.php @@ -94,6 +94,7 @@ abstract class Option implements IteratorAggregate public static function fromReturn($callback, array $arguments = [], $noneValue = null) { return new LazyOption(function () use ($callback, $arguments, $noneValue) { + /** @var mixed */ $return = call_user_func_array($callback, $arguments); if ($return === $noneValue) { @@ -126,6 +127,7 @@ abstract class Option implements IteratorAggregate return $value; } elseif (is_callable($value)) { return new LazyOption(function () use ($value, $noneValue) { + /** @var mixed */ $return = $value(); if ($return instanceof self) { @@ -158,20 +160,32 @@ abstract class Option implements IteratorAggregate public static function lift($callback, $noneValue = null) { return function () use ($callback, $noneValue) { + /** @var array */ $args = func_get_args(); + $reduced_args = array_reduce( + $args, + /** @param bool $status */ + function ($status, self $o) { + return $o->isEmpty() ? true : $status; + }, + false + ); // if at least one parameter is empty, return None - if (array_reduce($args, function ($status, self $o) { - return $o->isEmpty() ? true : $status; - }, false)) { + if ($reduced_args) { return None::create(); } - $args = array_map(function (self $o) { - // it is safe to do so because the fold above checked - // that all arguments are of type Some - return $o->get(); - }, $args); + $args = array_map( + /** @return T */ + function (self $o) { + // it is safe to do so because the fold above checked + // that all arguments are of type Some + /** @var T */ + return $o->get(); + }, + $args + ); return self::ensure(call_user_func_array($callback, $args), $noneValue); }; @@ -205,7 +219,7 @@ abstract class Option implements IteratorAggregate * * @template S * - * @param callable(): S $callable + * @param callable():S $callable * * @return T|S */ @@ -270,7 +284,7 @@ abstract class Option implements IteratorAggregate * * @deprecated Use forAll() instead. * - * @param callable $callable + * @param callable(T):mixed $callable * * @return void */ @@ -283,7 +297,7 @@ abstract class Option implements IteratorAggregate * option is empty. This method is preferred for callables with side-effects, while map() * is intended for callables without side-effects. * - * @param callable(T): void $callable + * @param callable(T):mixed $callable * * @return Option */ @@ -301,7 +315,7 @@ abstract class Option implements IteratorAggregate * * @template S * - * @param callable(T): S $callable + * @param callable(T):S $callable * * @return Option */ @@ -316,7 +330,7 @@ abstract class Option implements IteratorAggregate * * @template S * - * @param callable(T): Option $callable must return an Option + * @param callable(T):Option $callable must return an Option * * @return Option */ @@ -328,7 +342,7 @@ abstract class Option implements IteratorAggregate * If the option is non-empty, the callable is applied, and if it returns true, * the option itself is returned; otherwise, None is returned. * - * @param callable(T): bool $callable + * @param callable(T):bool $callable * * @return Option */ @@ -340,7 +354,7 @@ abstract class Option implements IteratorAggregate * If the option is non-empty, the callable is applied, and if it returns false, * the option itself is returned; otherwise, None is returned. * - * @param callable(T): bool $callable + * @param callable(T):bool $callable * * @return Option */ @@ -399,8 +413,8 @@ abstract class Option implements IteratorAggregate * * @template S * - * @param S $initialValue - * @param callable $callable function(initialValue, callable): result + * @param S $initialValue + * @param callable(S, T):S $callable * * @return S */ @@ -411,8 +425,8 @@ abstract class Option implements IteratorAggregate * * @template S * - * @param S $initialValue - * @param callable $callable function(callable, initialValue): result + * @param S $initialValue + * @param callable(T, S):S $callable * * @return S */ diff --git a/vendor/phpoption/phpoption/src/PhpOption/Some.php b/vendor/phpoption/phpoption/src/PhpOption/Some.php index 3f05c4159..2961576de 100644 --- a/vendor/phpoption/phpoption/src/PhpOption/Some.php +++ b/vendor/phpoption/phpoption/src/PhpOption/Some.php @@ -39,9 +39,11 @@ final class Some extends Option } /** - * @param T $value + * @template U * - * @return Some + * @param U $value + * + * @return Some */ public static function create($value) { diff --git a/vendor/phpspec/prophecy/CHANGES.md b/vendor/phpspec/prophecy/CHANGES.md index 35f7b64ba..97baaf1cd 100644 --- a/vendor/phpspec/prophecy/CHANGES.md +++ b/vendor/phpspec/prophecy/CHANGES.md @@ -1,3 +1,26 @@ +1.10.3 / 2020/03/05 +=================== + +* [fixed] removed fatal error when phpdocumentor/reflection-docblock 5 parses an invalid `@method` tag (@stof) + +1.10.2 / 2020/01/20 +=================== + +* [added] support for new versions of `sebastian/comparator` and `sebastian/recursion-context` (@sebastianbergmann) + +1.10.1 / 2019/12/22 +=================== + +* [fixed] identical callables no longer match as arguments (@ciaranmcnulty) + +1.10.0 / 2019/12/17 +=================== + +* [added] shouldHaveBeenCalled evaluation happens later so un-stubbed calls don't throw (@elvetemedve) +* [added] methods can now be doubled case-insensitively to match PHP semantics (@michalbundyra) +* [fixed] reduced memory usage by optimising CachedDoubler (@DonCallisto) +* [fixed] removed fatal error nesting level when comparing large objects (@scroach) + 1.9.0 / 2019/10/03 ================== diff --git a/vendor/phpspec/prophecy/composer.json b/vendor/phpspec/prophecy/composer.json index 7d22143aa..7151160ff 100644 --- a/vendor/phpspec/prophecy/composer.json +++ b/vendor/phpspec/prophecy/composer.json @@ -20,13 +20,13 @@ "require": { "php": "^5.3|^7.0", "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", - "sebastian/comparator": "^1.1|^2.0|^3.0", + "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0", "doctrine/instantiator": "^1.0.2", - "sebastian/recursion-context": "^1.0|^2.0|^3.0" + "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0" }, "require-dev": { - "phpspec/phpspec": "^2.5|^3.2", + "phpspec/phpspec": "^2.5 || ^3.2", "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" }, @@ -44,7 +44,7 @@ "extra": { "branch-alias": { - "dev-master": "1.8.x-dev" + "dev-master": "1.10.x-dev" } } } diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php index aa960f3fb..045a1b90f 100644 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php +++ b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php @@ -59,7 +59,9 @@ class ExactValueToken implements TokenInterface try { $comparator->assertEquals($argument, $this->value); return 10; - } catch (ComparisonFailure $failure) {} + } catch (ComparisonFailure $failure) { + return false; + } } // If either one is an object it should be castable to a string diff --git a/vendor/phpspec/prophecy/src/Prophecy/Call/CallCenter.php b/vendor/phpspec/prophecy/src/Prophecy/Call/CallCenter.php index d52ad61e1..d4bdba04d 100644 --- a/vendor/phpspec/prophecy/src/Prophecy/Call/CallCenter.php +++ b/vendor/phpspec/prophecy/src/Prophecy/Call/CallCenter.php @@ -16,6 +16,7 @@ use Prophecy\Prophecy\ObjectProphecy; use Prophecy\Argument\ArgumentsWildcard; use Prophecy\Util\StringUtil; use Prophecy\Exception\Call\UnexpectedCallException; +use SplObjectStorage; /** * Calls receiver & manager. @@ -31,6 +32,11 @@ class CallCenter */ private $recordedCalls = array(); + /** + * @var SplObjectStorage + */ + private $unexpectedCalls; + /** * Initializes call center. * @@ -39,6 +45,7 @@ class CallCenter public function __construct(StringUtil $util = null) { $this->util = $util ?: new StringUtil; + $this->unexpectedCalls = new SplObjectStorage(); } /** @@ -73,23 +80,21 @@ class CallCenter } // If no method prophecies defined, then it's a dummy, so we'll just return null - if ('__destruct' === $methodName || 0 == count($prophecy->getMethodProphecies())) { + if ('__destruct' === strtolower($methodName) || 0 == count($prophecy->getMethodProphecies())) { $this->recordedCalls[] = new Call($methodName, $arguments, null, null, $file, $line); return null; } // There are method prophecies, so it's a fake/stub. Searching prophecy for this call - $matches = array(); - foreach ($prophecy->getMethodProphecies($methodName) as $methodProphecy) { - if (0 < $score = $methodProphecy->getArgumentsWildcard()->scoreArguments($arguments)) { - $matches[] = array($score, $methodProphecy); - } - } + $matches = $this->findMethodProphecies($prophecy, $methodName, $arguments); // If fake/stub doesn't have method prophecy for this call - throw exception if (!count($matches)) { - throw $this->createUnexpectedCallException($prophecy, $methodName, $arguments); + $this->unexpectedCalls->attach(new Call($methodName, $arguments, null, null, $file, $line), $prophecy); + $this->recordedCalls[] = new Call($methodName, $arguments, null, null, $file, $line); + + return null; } // Sort matches by their score value @@ -137,15 +142,33 @@ class CallCenter */ public function findCalls($methodName, ArgumentsWildcard $wildcard) { + $methodName = strtolower($methodName); + return array_values( array_filter($this->recordedCalls, function (Call $call) use ($methodName, $wildcard) { - return $methodName === $call->getMethodName() + return $methodName === strtolower($call->getMethodName()) && 0 < $call->getScore($wildcard) ; }) ); } + /** + * @throws UnexpectedCallException + */ + public function checkUnexpectedCalls() + { + /** @var Call $call */ + foreach ($this->unexpectedCalls as $call) { + $prophecy = $this->unexpectedCalls[$call]; + + // If fake/stub doesn't have method prophecy for this call - throw exception + if (!count($this->findMethodProphecies($prophecy, $call->getMethodName(), $call->getArguments()))) { + throw $this->createUnexpectedCallException($prophecy, $call->getMethodName(), $call->getArguments()); + } + } + } + private function createUnexpectedCallException(ObjectProphecy $prophecy, $methodName, array $arguments) { @@ -203,4 +226,23 @@ class CallCenter $arguments ); } + + /** + * @param ObjectProphecy $prophecy + * @param string $methodName + * @param array $arguments + * + * @return array + */ + private function findMethodProphecies(ObjectProphecy $prophecy, $methodName, array $arguments) + { + $matches = array(); + foreach ($prophecy->getMethodProphecies($methodName) as $methodProphecy) { + if (0 < $score = $methodProphecy->getArgumentsWildcard()->scoreArguments($arguments)) { + $matches[] = array($score, $methodProphecy); + } + } + + return $matches; + } } diff --git a/vendor/phpspec/prophecy/src/Prophecy/Comparator/ClosureComparator.php b/vendor/phpspec/prophecy/src/Prophecy/Comparator/ClosureComparator.php index 874e474cc..fa4f578ee 100644 --- a/vendor/phpspec/prophecy/src/Prophecy/Comparator/ClosureComparator.php +++ b/vendor/phpspec/prophecy/src/Prophecy/Comparator/ClosureComparator.php @@ -27,16 +27,18 @@ final class ClosureComparator extends Comparator && is_object($actual) && $actual instanceof \Closure; } - public function assertEquals($expected, $actual, $delta = 0.0, $canonicalize = false, $ignoreCase = false) + public function assertEquals($expected, $actual, $delta = 0.0, $canonicalize = false, $ignoreCase = false, array &$processed = array()) { - throw new ComparisonFailure( - $expected, - $actual, - // we don't need a diff - '', - '', - false, - 'all closures are born different' - ); + if ($expected !== $actual) { + throw new ComparisonFailure( + $expected, + $actual, + // we don't need a diff + '', + '', + false, + 'all closures are different if not identical' + ); + } } } diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php index d6b6b1a9e..2b875211a 100644 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php +++ b/vendor/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php @@ -21,17 +21,7 @@ use ReflectionClass; */ class CachedDoubler extends Doubler { - private $classes = array(); - - /** - * {@inheritdoc} - */ - public function registerClassPatch(ClassPatch\ClassPatchInterface $patch) - { - $this->classes[] = array(); - - parent::registerClassPatch($patch); - } + private static $classes = array(); /** * {@inheritdoc} @@ -39,11 +29,11 @@ class CachedDoubler extends Doubler protected function createDoubleClass(ReflectionClass $class = null, array $interfaces) { $classId = $this->generateClassId($class, $interfaces); - if (isset($this->classes[$classId])) { - return $this->classes[$classId]; + if (isset(self::$classes[$classId])) { + return self::$classes[$classId]; } - return $this->classes[$classId] = parent::createDoubleClass($class, $interfaces); + return self::$classes[$classId] = parent::createDoubleClass($class, $interfaces); } /** @@ -61,8 +51,16 @@ class CachedDoubler extends Doubler foreach ($interfaces as $interface) { $parts[] = $interface->getName(); } + foreach ($this->getClassPatches() as $patch) { + $parts[] = get_class($patch); + } sort($parts); return md5(implode('', $parts)); } + + public function resetCache() + { + self::$classes = array(); + } } diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php index 081dea82a..ef4036667 100644 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php +++ b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php @@ -43,7 +43,7 @@ class ProphecySubjectPatch implements ClassPatchInterface public function apply(ClassNode $node) { $node->addInterface('Prophecy\Prophecy\ProphecySubjectInterface'); - $node->addProperty('objectProphecy', 'private'); + $node->addProperty('objectProphecyClosure', 'private'); foreach ($node->getMethods() as $name => $method) { if ('__construct' === strtolower($name)) { @@ -65,10 +65,10 @@ class ProphecySubjectPatch implements ClassPatchInterface $prophecyArgument = new ArgumentNode('prophecy'); $prophecyArgument->setTypeHint('Prophecy\Prophecy\ProphecyInterface'); $prophecySetter->addArgument($prophecyArgument); - $prophecySetter->setCode('$this->objectProphecy = $prophecy;'); + $prophecySetter->setCode('$this->objectProphecyClosure = function () use ($prophecy) { return $prophecy; };'); $prophecyGetter = new MethodNode('getProphecy'); - $prophecyGetter->setCode('return $this->objectProphecy;'); + $prophecyGetter->setCode('return call_user_func($this->objectProphecyClosure);'); if ($node->hasMethod('__call')) { $__call = $node->getMethod('__call'); diff --git a/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassTagRetriever.php b/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassTagRetriever.php index 1d2da8f03..9817a4479 100644 --- a/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassTagRetriever.php +++ b/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassTagRetriever.php @@ -44,7 +44,15 @@ final class ClassTagRetriever implements MethodTagRetrieverInterface $this->contextFactory->createFromReflector($reflectionClass) ); - return $phpdoc->getTagsByName('method'); + $methods = array(); + + foreach ($phpdoc->getTagsByName('method') as $tag) { + if ($tag instanceof Method) { + $methods[] = $tag; + } + } + + return $methods; } catch (\InvalidArgumentException $e) { return array(); } diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php b/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php index 8d8f8a1bb..11b87cf1b 100644 --- a/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php +++ b/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php @@ -146,7 +146,7 @@ class ObjectProphecy implements ProphecyInterface ), $methodProphecy); } - $methodName = $methodProphecy->getMethodName(); + $methodName = strtolower($methodProphecy->getMethodName()); if (!isset($this->methodProphecies[$methodName])) { $this->methodProphecies[$methodName] = array(); @@ -168,6 +168,8 @@ class ObjectProphecy implements ProphecyInterface return $this->methodProphecies; } + $methodName = strtolower($methodName); + if (!isset($this->methodProphecies[$methodName])) { return array(); } @@ -208,12 +210,15 @@ class ObjectProphecy implements ProphecyInterface * Checks that registered method predictions do not fail. * * @throws \Prophecy\Exception\Prediction\AggregateException If any of registered predictions fail + * @throws \Prophecy\Exception\Call\UnexpectedCallException */ public function checkProphecyMethodsPredictions() { $exception = new AggregateException(sprintf("%s:\n", get_class($this->reveal()))); $exception->setObjectProphecy($this); + $this->callCenter->checkUnexpectedCalls(); + foreach ($this->methodProphecies as $prophecies) { foreach ($prophecies as $prophecy) { try { diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prophet.php b/vendor/phpspec/prophecy/src/Prophecy/Prophet.php index a4fe4b0d2..d37c92a34 100644 --- a/vendor/phpspec/prophecy/src/Prophecy/Prophet.php +++ b/vendor/phpspec/prophecy/src/Prophecy/Prophet.php @@ -11,6 +11,7 @@ namespace Prophecy; +use Prophecy\Doubler\CachedDoubler; use Prophecy\Doubler\Doubler; use Prophecy\Doubler\LazyDouble; use Prophecy\Doubler\ClassPatch; @@ -45,11 +46,13 @@ class Prophet * @param null|RevealerInterface $revealer * @param null|StringUtil $util */ - public function __construct(Doubler $doubler = null, RevealerInterface $revealer = null, - StringUtil $util = null) - { + public function __construct( + Doubler $doubler = null, + RevealerInterface $revealer = null, + StringUtil $util = null + ) { if (null === $doubler) { - $doubler = new Doubler; + $doubler = new CachedDoubler(); $doubler->registerClassPatch(new ClassPatch\SplFileInfoPatch); $doubler->registerClassPatch(new ClassPatch\TraversablePatch); $doubler->registerClassPatch(new ClassPatch\ThrowablePatch); diff --git a/vendor/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php b/vendor/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php index 50dd3f325..1090a801e 100644 --- a/vendor/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php +++ b/vendor/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php @@ -181,9 +181,7 @@ class ExportUtil if (is_object($value)) { $class = get_class($value); - if ($value instanceof ProphecyInterface) { - return sprintf('%s Object (*Prophecy*)', $class); - } elseif ($hash = $processed->contains($value)) { + if ($hash = $processed->contains($value)) { return sprintf('%s:%s Object', $class, $hash); } diff --git a/vendor/phpunit/phpunit/.github/workflows/ci.yml b/vendor/phpunit/phpunit/.github/workflows/ci.yml index e7b370e15..aa2403a8e 100644 --- a/vendor/phpunit/phpunit/.github/workflows/ci.yml +++ b/vendor/phpunit/phpunit/.github/workflows/ci.yml @@ -14,7 +14,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@master + uses: actions/checkout@v2 - name: Run friendsofphp/php-cs-fixer run: php7.3 ./tools/php-cs-fixer fix --diff-format=udiff --dry-run --show-progress=dots --using-cache=no --verbose @@ -26,7 +26,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@master + uses: actions/checkout@v2 - name: Build Docker image uses: ./.docker/lint-xml-configuration @@ -54,7 +54,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@master + uses: actions/checkout@v2 - name: "Cache dependencies installed with composer" uses: actions/cache@v1 diff --git a/vendor/phpunit/phpunit/ChangeLog-7.5.md b/vendor/phpunit/phpunit/ChangeLog-7.5.md index 96194b5bc..c57c5e8c6 100644 --- a/vendor/phpunit/phpunit/ChangeLog-7.5.md +++ b/vendor/phpunit/phpunit/ChangeLog-7.5.md @@ -2,6 +2,18 @@ All notable changes of the PHPUnit 7.5 release series are documented in this file using the [Keep a CHANGELOG](https://keepachangelog.com/) principles. +## [7.5.20] - 2020-01-08 + +### Removed + +* `eval-stdin.php` has been removed, it was not used anymore since PHPUnit 7.2.7 + +## [7.5.19] - 2020-01-06 + +### Changed + +* `eval-stdin.php` can now only be executed with `cli` and `phpdbg` + ## [7.5.18] - 2019-12-06 ### Fixed @@ -159,6 +171,8 @@ All notable changes of the PHPUnit 7.5 release series are documented in this fil * Fixed [#3429](https://github.com/sebastianbergmann/phpunit/pull/3429): Inefficient loop in `getHookMethods()` * Fixed [#3437](https://github.com/sebastianbergmann/phpunit/pull/3437): JUnit logger skips PHPT tests +[7.5.20]: https://github.com/sebastianbergmann/phpunit/compare/7.5.19...7.5.20 +[7.5.19]: https://github.com/sebastianbergmann/phpunit/compare/7.5.18...7.5.19 [7.5.18]: https://github.com/sebastianbergmann/phpunit/compare/7.5.17...7.5.18 [7.5.17]: https://github.com/sebastianbergmann/phpunit/compare/7.5.16...7.5.17 [7.5.16]: https://github.com/sebastianbergmann/phpunit/compare/7.5.15...7.5.16 diff --git a/vendor/phpunit/phpunit/src/Runner/Version.php b/vendor/phpunit/phpunit/src/Runner/Version.php index 1e256a12a..672626b7b 100644 --- a/vendor/phpunit/phpunit/src/Runner/Version.php +++ b/vendor/phpunit/phpunit/src/Runner/Version.php @@ -30,7 +30,7 @@ class Version } if (self::$version === null) { - $version = new VersionId('7.5.18', \dirname(__DIR__, 2)); + $version = new VersionId('7.5.20', \dirname(__DIR__, 2)); self::$version = $version->getVersion(); } diff --git a/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php b/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php deleted file mode 100644 index 37de8ed09..000000000 --- a/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php +++ /dev/null @@ -1,10 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -eval('?>' . \file_get_contents('php://stdin')); diff --git a/vendor/psr/log/.gitignore b/vendor/psr/log/.gitignore deleted file mode 100644 index 22d0d82f8..000000000 --- a/vendor/psr/log/.gitignore +++ /dev/null @@ -1 +0,0 @@ -vendor diff --git a/vendor/psr/log/Psr/Log/LoggerInterface.php b/vendor/psr/log/Psr/Log/LoggerInterface.php index e695046e3..2206cfde4 100644 --- a/vendor/psr/log/Psr/Log/LoggerInterface.php +++ b/vendor/psr/log/Psr/Log/LoggerInterface.php @@ -22,8 +22,8 @@ interface LoggerInterface /** * System is unusable. * - * @param string $message - * @param array $context + * @param string $message + * @param mixed[] $context * * @return void */ @@ -35,8 +35,8 @@ interface LoggerInterface * Example: Entire website down, database unavailable, etc. This should * trigger the SMS alerts and wake you up. * - * @param string $message - * @param array $context + * @param string $message + * @param mixed[] $context * * @return void */ @@ -47,8 +47,8 @@ interface LoggerInterface * * Example: Application component unavailable, unexpected exception. * - * @param string $message - * @param array $context + * @param string $message + * @param mixed[] $context * * @return void */ @@ -58,8 +58,8 @@ interface LoggerInterface * Runtime errors that do not require immediate action but should typically * be logged and monitored. * - * @param string $message - * @param array $context + * @param string $message + * @param mixed[] $context * * @return void */ @@ -71,8 +71,8 @@ interface LoggerInterface * Example: Use of deprecated APIs, poor use of an API, undesirable things * that are not necessarily wrong. * - * @param string $message - * @param array $context + * @param string $message + * @param mixed[] $context * * @return void */ @@ -81,8 +81,8 @@ interface LoggerInterface /** * Normal but significant events. * - * @param string $message - * @param array $context + * @param string $message + * @param mixed[] $context * * @return void */ @@ -93,8 +93,8 @@ interface LoggerInterface * * Example: User logs in, SQL logs. * - * @param string $message - * @param array $context + * @param string $message + * @param mixed[] $context * * @return void */ @@ -103,8 +103,8 @@ interface LoggerInterface /** * Detailed debug information. * - * @param string $message - * @param array $context + * @param string $message + * @param mixed[] $context * * @return void */ @@ -113,9 +113,9 @@ interface LoggerInterface /** * Logs with an arbitrary level. * - * @param mixed $level - * @param string $message - * @param array $context + * @param mixed $level + * @param string $message + * @param mixed[] $context * * @return void * diff --git a/vendor/psr/log/Psr/Log/Test/DummyTest.php b/vendor/psr/log/Psr/Log/Test/DummyTest.php new file mode 100644 index 000000000..9638c1101 --- /dev/null +++ b/vendor/psr/log/Psr/Log/Test/DummyTest.php @@ -0,0 +1,18 @@ +assertEquals($expected, $this->getLogs()); } } - -class DummyTest -{ - public function __toString() - { - return 'DummyTest'; - } -} diff --git a/vendor/ramsey/uuid/CHANGELOG.md b/vendor/ramsey/uuid/CHANGELOG.md index f2f1548e2..57b7f5ea7 100644 --- a/vendor/ramsey/uuid/CHANGELOG.md +++ b/vendor/ramsey/uuid/CHANGELOG.md @@ -21,6 +21,23 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ### Security +## [3.9.3] - 2020-02-20 + +### Fixed + +* For v1 UUIDs, round down for timestamps so that microseconds do not bump the + timestamp to the next second. + + As an example, consider the case of timestamp `1` with `600000` microseconds + (`1.600000`). This is the first second after midnight on January 1, 1970, UTC. + Previous versions of this library had a bug that would round this to `2`, so + the rendered time was `1970-01-01 00:00:02`. This was incorrect. Despite + having `600000` microseconds, the time should not round up to the next second. + Rather, the time should be `1970-01-01 00:00:01.600000`. Since this version of + ramsey/uuid does not support microseconds, the microseconds are dropped, and + the time is `1970-01-01 00:00:01`. No rounding should occur. + + ## [3.9.2] - 2019-12-17 ### Fixed @@ -591,7 +608,8 @@ versions leading up to this release.* [ramsey/uuid-doctrine]: https://github.com/ramsey/uuid-doctrine [ramsey/uuid-console]: https://github.com/ramsey/uuid-console -[unreleased]: https://github.com/ramsey/uuid/compare/3.9.2...HEAD +[unreleased]: https://github.com/ramsey/uuid/compare/3.9.3...HEAD +[3.9.3]: https://github.com/ramsey/uuid/compare/3.9.2...3.9.3 [3.9.2]: https://github.com/ramsey/uuid/compare/3.9.1...3.9.2 [3.9.1]: https://github.com/ramsey/uuid/compare/3.9.0...3.9.1 [3.9.0]: https://github.com/ramsey/uuid/compare/3.8.0...3.9.0 diff --git a/vendor/ramsey/uuid/LICENSE b/vendor/ramsey/uuid/LICENSE index f6f7e8043..b2aa4b587 100644 --- a/vendor/ramsey/uuid/LICENSE +++ b/vendor/ramsey/uuid/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2012-2019 Ben Ramsey +Copyright (c) 2012-2020 Ben Ramsey Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/ramsey/uuid/src/Codec/TimestampFirstCombCodec.php b/vendor/ramsey/uuid/src/Codec/TimestampFirstCombCodec.php index 270a1e75b..9d13af70c 100644 --- a/vendor/ramsey/uuid/src/Codec/TimestampFirstCombCodec.php +++ b/vendor/ramsey/uuid/src/Codec/TimestampFirstCombCodec.php @@ -17,7 +17,7 @@ use Ramsey\Uuid\Exception\InvalidUuidStringException; use Ramsey\Uuid\UuidInterface; /** - * TimestampLastCombCodec encodes and decodes COMB UUIDs which have the timestamp as the first 48 bits. + * TimestampFirstCombCodec encodes and decodes COMB UUIDs which have the timestamp as the first 48 bits. * To be used with MySQL, PostgreSQL, Oracle. */ class TimestampFirstCombCodec extends StringCodec diff --git a/vendor/ramsey/uuid/src/Converter/TimeConverterInterface.php b/vendor/ramsey/uuid/src/Converter/TimeConverterInterface.php index c851792f3..23cf1640b 100644 --- a/vendor/ramsey/uuid/src/Converter/TimeConverterInterface.php +++ b/vendor/ramsey/uuid/src/Converter/TimeConverterInterface.php @@ -28,7 +28,7 @@ interface TimeConverterInterface * * @param string $seconds * @param string $microSeconds - * @return string[] An array guaranteed to contain `low`, `mid`, and `high` keys + * @return string[] An array guaranteed to contain `low`, `mid`, and `hi` keys * @throws UnsatisfiedDependencyException if called on a 32-bit system and * `Moontoast\Math\BigNumber` is not present * @link http://tools.ietf.org/html/rfc4122#section-4.2.2 diff --git a/vendor/ramsey/uuid/src/DegradedUuid.php b/vendor/ramsey/uuid/src/DegradedUuid.php index 26697615c..4e11272d0 100644 --- a/vendor/ramsey/uuid/src/DegradedUuid.php +++ b/vendor/ramsey/uuid/src/DegradedUuid.php @@ -40,7 +40,7 @@ class DegradedUuid extends Uuid $ts = new BigNumber($time, 20); $ts->subtract('122192928000000000'); $ts->divide('10000000.0'); - $ts->round(); + $ts->floor(); $unixTime = $ts->getValue(); return new DateTime("@{$unixTime}"); diff --git a/vendor/ramsey/uuid/src/Uuid.php b/vendor/ramsey/uuid/src/Uuid.php index 38fbd5ed6..f2912b48a 100644 --- a/vendor/ramsey/uuid/src/Uuid.php +++ b/vendor/ramsey/uuid/src/Uuid.php @@ -350,8 +350,8 @@ class Uuid implements UuidInterface throw new UnsupportedOperationException('Not a time-based UUID'); } - $unixTime = ($this->getTimestamp() - 0x01b21dd213814000) / 1e7; - $unixTime = number_format($unixTime, 0, '', ''); + $unixTimeNanoseconds = $this->getTimestamp() - 0x01b21dd213814000; + $unixTime = ($unixTimeNanoseconds - $unixTimeNanoseconds % 1e7) / 1e7; return new DateTime("@{$unixTime}"); } @@ -676,7 +676,7 @@ class Uuid implements UuidInterface */ public static function isValid($uuid) { - $uuid = str_replace(['urn:', 'uuid:', '{', '}'], '', $uuid); + $uuid = str_replace(['urn:', 'uuid:', 'URN:', 'UUID:', '{', '}'], '', $uuid); if ($uuid == self::NIL) { return true; diff --git a/vendor/symfony/console/.gitattributes b/vendor/symfony/console/.gitattributes deleted file mode 100644 index ebb928704..000000000 --- a/vendor/symfony/console/.gitattributes +++ /dev/null @@ -1,3 +0,0 @@ -/Tests export-ignore -/phpunit.xml.dist export-ignore -/.gitignore export-ignore diff --git a/vendor/symfony/console/Application.php b/vendor/symfony/console/Application.php index 6d1770927..4cea086b7 100644 --- a/vendor/symfony/console/Application.php +++ b/vendor/symfony/console/Application.php @@ -36,7 +36,6 @@ use Symfony\Component\Console\Input\InputAwareInterface; use Symfony\Component\Console\Input\InputDefinition; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; -use Symfony\Component\Console\Input\StreamableInputInterface; use Symfony\Component\Console\Output\ConsoleOutput; use Symfony\Component\Console\Output\ConsoleOutputInterface; use Symfony\Component\Console\Output\OutputInterface; @@ -600,7 +599,7 @@ class Application implements ResetInterface $exact = \in_array($namespace, $namespaces, true); if (\count($namespaces) > 1 && !$exact) { - throw new NamespaceNotFoundException(sprintf("The namespace \"%s\" is ambiguous.\nDid you mean one of these?\n%s", $namespace, $this->getAbbreviationSuggestions(array_values($namespaces))), array_values($namespaces)); + throw new NamespaceNotFoundException(sprintf("The namespace \"%s\" is ambiguous.\nDid you mean one of these?\n%s.", $namespace, $this->getAbbreviationSuggestions(array_values($namespaces))), array_values($namespaces)); } return $exact ? $namespace : reset($namespaces); @@ -673,8 +672,13 @@ class Application implements ResetInterface // filter out aliases for commands which are already on the list if (\count($commands) > 1) { $commandList = $this->commandLoader ? array_merge(array_flip($this->commandLoader->getNames()), $this->commands) : $this->commands; - $commands = array_unique(array_filter($commands, function ($nameOrAlias) use ($commandList, $commands, &$aliases) { - $commandName = $commandList[$nameOrAlias] instanceof Command ? $commandList[$nameOrAlias]->getName() : $nameOrAlias; + $commands = array_unique(array_filter($commands, function ($nameOrAlias) use (&$commandList, $commands, &$aliases) { + if (!$commandList[$nameOrAlias] instanceof Command) { + $commandList[$nameOrAlias] = $this->commandLoader->get($nameOrAlias); + } + + $commandName = $commandList[$nameOrAlias]->getName(); + $aliases[$nameOrAlias] = $commandName; return $commandName === $nameOrAlias || !\in_array($commandName, $commands); @@ -689,10 +693,6 @@ class Application implements ResetInterface $maxLen = max(Helper::strlen($abbrev), $maxLen); } $abbrevs = array_map(function ($cmd) use ($commandList, $usableWidth, $maxLen, &$commands) { - if (!$commandList[$cmd] instanceof Command) { - $commandList[$cmd] = $this->commandLoader->get($cmd); - } - if ($commandList[$cmd]->isHidden()) { unset($commands[array_search($cmd, $commands)]); @@ -707,7 +707,7 @@ class Application implements ResetInterface if (\count($commands) > 1) { $suggestions = $this->getAbbreviationSuggestions(array_filter($abbrevs)); - throw new CommandNotFoundException(sprintf("Command \"%s\" is ambiguous.\nDid you mean one of these?\n%s", $name, $suggestions), array_values($commands)); + throw new CommandNotFoundException(sprintf("Command \"%s\" is ambiguous.\nDid you mean one of these?\n%s.", $name, $suggestions), array_values($commands)); } } @@ -804,7 +804,7 @@ class Application implements ResetInterface public function renderThrowable(\Throwable $e, OutputInterface $output): void { - if (__CLASS__ !== \get_class($this) && __CLASS__ === (new \ReflectionMethod($this, 'renderThrowable'))->getDeclaringClass()->getName() && __CLASS__ !== (new \ReflectionMethod($this, 'renderException'))->getDeclaringClass()->getName()) { + if (__CLASS__ !== static::class && __CLASS__ === (new \ReflectionMethod($this, 'renderThrowable'))->getDeclaringClass()->getName() && __CLASS__ !== (new \ReflectionMethod($this, 'renderException'))->getDeclaringClass()->getName()) { @trigger_error(sprintf('The "%s::renderException()" method is deprecated since Symfony 4.4, use "renderThrowable()" instead.', __CLASS__), E_USER_DEPRECATED); if (!$e instanceof \Exception) { @@ -843,7 +843,7 @@ class Application implements ResetInterface protected function doRenderThrowable(\Throwable $e, OutputInterface $output): void { - if (__CLASS__ !== \get_class($this) && __CLASS__ === (new \ReflectionMethod($this, 'doRenderThrowable'))->getDeclaringClass()->getName() && __CLASS__ !== (new \ReflectionMethod($this, 'doRenderException'))->getDeclaringClass()->getName()) { + if (__CLASS__ !== static::class && __CLASS__ === (new \ReflectionMethod($this, 'doRenderThrowable'))->getDeclaringClass()->getName() && __CLASS__ !== (new \ReflectionMethod($this, 'doRenderException'))->getDeclaringClass()->getName()) { @trigger_error(sprintf('The "%s::doRenderException()" method is deprecated since Symfony 4.4, use "doRenderThrowable()" instead.', __CLASS__), E_USER_DEPRECATED); if (!$e instanceof \Exception) { @@ -872,7 +872,7 @@ class Application implements ResetInterface } if (false !== strpos($message, "class@anonymous\0")) { - $message = preg_replace_callback('/class@anonymous\x00.*?\.php0x?[0-9a-fA-F]++/', function ($m) { + $message = preg_replace_callback('/class@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)[0-9a-fA-F]++/', function ($m) { return class_exists($m[0], false) ? get_parent_class($m[0]).'@anonymous' : $m[0]; }, $message); } @@ -946,16 +946,6 @@ class Application implements ResetInterface if (true === $input->hasParameterOption(['--no-interaction', '-n'], true)) { $input->setInteractive(false); - } elseif (\function_exists('posix_isatty')) { - $inputStream = null; - - if ($input instanceof StreamableInputInterface) { - $inputStream = $input->getStream(); - } - - if (!@posix_isatty($inputStream) && false === getenv('SHELL_INTERACTIVE')) { - $input->setInteractive(false); - } } switch ($shellVerbosity = (int) getenv('SHELL_VERBOSITY')) { diff --git a/vendor/symfony/console/Command/Command.php b/vendor/symfony/console/Command/Command.php index 00010d6db..3a520c1b4 100644 --- a/vendor/symfony/console/Command/Command.php +++ b/vendor/symfony/console/Command/Command.php @@ -55,7 +55,7 @@ class Command */ public static function getDefaultName() { - $class = \get_called_class(); + $class = static::class; $r = new \ReflectionProperty($class, 'defaultName'); return $class === $r->class ? static::$defaultName : null; @@ -255,7 +255,7 @@ class Command $statusCode = $this->execute($input, $output); if (!\is_int($statusCode)) { - @trigger_error(sprintf('Return value of "%s::execute()" should always be of the type int since Symfony 4.4, %s returned.', \get_class($this), \gettype($statusCode)), E_USER_DEPRECATED); + @trigger_error(sprintf('Return value of "%s::execute()" should always be of the type int since Symfony 4.4, %s returned.', static::class, \gettype($statusCode)), E_USER_DEPRECATED); } } @@ -344,7 +344,7 @@ class Command public function getDefinition() { if (null === $this->definition) { - throw new LogicException(sprintf('Command class "%s" is not correctly initialized. You probably forgot to call the parent constructor.', \get_class($this))); + throw new LogicException(sprintf('Command class "%s" is not correctly initialized. You probably forgot to call the parent constructor.', static::class)); } return $this->definition; @@ -559,7 +559,7 @@ class Command public function setAliases($aliases) { if (!\is_array($aliases) && !$aliases instanceof \Traversable) { - throw new InvalidArgumentException('$aliases must be an array or an instance of \Traversable'); + throw new InvalidArgumentException('$aliases must be an array or an instance of \Traversable.'); } foreach ($aliases as $alias) { diff --git a/vendor/symfony/console/Descriptor/ApplicationDescription.php b/vendor/symfony/console/Descriptor/ApplicationDescription.php index af8836391..d361b4890 100644 --- a/vendor/symfony/console/Descriptor/ApplicationDescription.php +++ b/vendor/symfony/console/Descriptor/ApplicationDescription.php @@ -77,7 +77,7 @@ class ApplicationDescription public function getCommand(string $name): Command { if (!isset($this->commands[$name]) && !isset($this->aliases[$name])) { - throw new CommandNotFoundException(sprintf('Command %s does not exist.', $name)); + throw new CommandNotFoundException(sprintf('Command "%s" does not exist.', $name)); } return isset($this->commands[$name]) ? $this->commands[$name] : $this->aliases[$name]; diff --git a/vendor/symfony/console/Exception/MissingInputException.php b/vendor/symfony/console/Exception/MissingInputException.php new file mode 100644 index 000000000..04f02ade4 --- /dev/null +++ b/vendor/symfony/console/Exception/MissingInputException.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\Exception; + +/** + * Represents failure to read input from stdin. + * + * @author Gabriel Ostrolucký + */ +class MissingInputException extends RuntimeException implements ExceptionInterface +{ +} diff --git a/vendor/symfony/console/Formatter/OutputFormatter.php b/vendor/symfony/console/Formatter/OutputFormatter.php index d0673e745..27b608585 100644 --- a/vendor/symfony/console/Formatter/OutputFormatter.php +++ b/vendor/symfony/console/Formatter/OutputFormatter.php @@ -115,7 +115,7 @@ class OutputFormatter implements WrappableOutputFormatterInterface public function getStyle($name) { if (!$this->hasStyle($name)) { - throw new InvalidArgumentException(sprintf('Undefined style: %s', $name)); + throw new InvalidArgumentException(sprintf('Undefined style: "%s".', $name)); } return $this->styles[strtolower($name)]; diff --git a/vendor/symfony/console/Formatter/OutputFormatterStyle.php b/vendor/symfony/console/Formatter/OutputFormatterStyle.php index 16994202e..272c3e6a2 100644 --- a/vendor/symfony/console/Formatter/OutputFormatterStyle.php +++ b/vendor/symfony/console/Formatter/OutputFormatterStyle.php @@ -87,7 +87,7 @@ class OutputFormatterStyle implements OutputFormatterStyleInterface } if (!isset(static::$availableForegroundColors[$color])) { - throw new InvalidArgumentException(sprintf('Invalid foreground color specified: "%s". Expected one of (%s)', $color, implode(', ', array_keys(static::$availableForegroundColors)))); + throw new InvalidArgumentException(sprintf('Invalid foreground color specified: "%s". Expected one of (%s).', $color, implode(', ', array_keys(static::$availableForegroundColors)))); } $this->foreground = static::$availableForegroundColors[$color]; @@ -105,7 +105,7 @@ class OutputFormatterStyle implements OutputFormatterStyleInterface } if (!isset(static::$availableBackgroundColors[$color])) { - throw new InvalidArgumentException(sprintf('Invalid background color specified: "%s". Expected one of (%s)', $color, implode(', ', array_keys(static::$availableBackgroundColors)))); + throw new InvalidArgumentException(sprintf('Invalid background color specified: "%s". Expected one of (%s).', $color, implode(', ', array_keys(static::$availableBackgroundColors)))); } $this->background = static::$availableBackgroundColors[$color]; @@ -122,7 +122,7 @@ class OutputFormatterStyle implements OutputFormatterStyleInterface public function setOption($option) { if (!isset(static::$availableOptions[$option])) { - throw new InvalidArgumentException(sprintf('Invalid option specified: "%s". Expected one of (%s)', $option, implode(', ', array_keys(static::$availableOptions)))); + throw new InvalidArgumentException(sprintf('Invalid option specified: "%s". Expected one of (%s).', $option, implode(', ', array_keys(static::$availableOptions)))); } if (!\in_array(static::$availableOptions[$option], $this->options)) { @@ -136,7 +136,7 @@ class OutputFormatterStyle implements OutputFormatterStyleInterface public function unsetOption($option) { if (!isset(static::$availableOptions[$option])) { - throw new InvalidArgumentException(sprintf('Invalid option specified: "%s". Expected one of (%s)', $option, implode(', ', array_keys(static::$availableOptions)))); + throw new InvalidArgumentException(sprintf('Invalid option specified: "%s". Expected one of (%s).', $option, implode(', ', array_keys(static::$availableOptions)))); } $pos = array_search(static::$availableOptions[$option], $this->options); diff --git a/vendor/symfony/console/Helper/FormatterHelper.php b/vendor/symfony/console/Helper/FormatterHelper.php index 4ad63856d..d6eccee8e 100644 --- a/vendor/symfony/console/Helper/FormatterHelper.php +++ b/vendor/symfony/console/Helper/FormatterHelper.php @@ -54,12 +54,12 @@ class FormatterHelper extends Helper foreach ($messages as $message) { $message = OutputFormatter::escape($message); $lines[] = sprintf($large ? ' %s ' : ' %s ', $message); - $len = max($this->strlen($message) + ($large ? 4 : 2), $len); + $len = max(self::strlen($message) + ($large ? 4 : 2), $len); } $messages = $large ? [str_repeat(' ', $len)] : []; for ($i = 0; isset($lines[$i]); ++$i) { - $messages[] = $lines[$i].str_repeat(' ', $len - $this->strlen($lines[$i])); + $messages[] = $lines[$i].str_repeat(' ', $len - self::strlen($lines[$i])); } if ($large) { $messages[] = str_repeat(' ', $len); @@ -83,17 +83,13 @@ class FormatterHelper extends Helper */ public function truncate($message, $length, $suffix = '...') { - $computedLength = $length - $this->strlen($suffix); + $computedLength = $length - self::strlen($suffix); - if ($computedLength > $this->strlen($message)) { + if ($computedLength > self::strlen($message)) { return $message; } - if (false === $encoding = mb_detect_encoding($message, null, true)) { - return substr($message, 0, $length).$suffix; - } - - return mb_substr($message, 0, $length, $encoding).$suffix; + return self::substr($message, 0, $length).$suffix; } /** diff --git a/vendor/symfony/console/Helper/QuestionHelper.php b/vendor/symfony/console/Helper/QuestionHelper.php index faf2648bd..b383252c5 100644 --- a/vendor/symfony/console/Helper/QuestionHelper.php +++ b/vendor/symfony/console/Helper/QuestionHelper.php @@ -11,6 +11,7 @@ namespace Symfony\Component\Console\Helper; +use Symfony\Component\Console\Exception\MissingInputException; use Symfony\Component\Console\Exception\RuntimeException; use Symfony\Component\Console\Formatter\OutputFormatter; use Symfony\Component\Console\Formatter\OutputFormatterStyle; @@ -48,44 +49,32 @@ class QuestionHelper extends Helper } if (!$input->isInteractive()) { - $default = $question->getDefault(); - - if (null === $default) { - return $default; - } - - if ($validator = $question->getValidator()) { - return \call_user_func($question->getValidator(), $default); - } elseif ($question instanceof ChoiceQuestion) { - $choices = $question->getChoices(); - - if (!$question->isMultiselect()) { - return isset($choices[$default]) ? $choices[$default] : $default; - } - - $default = explode(',', $default); - foreach ($default as $k => $v) { - $v = $question->isTrimmable() ? trim($v) : $v; - $default[$k] = isset($choices[$v]) ? $choices[$v] : $v; - } - } - - return $default; + return $this->getDefaultAnswer($question); } if ($input instanceof StreamableInputInterface && $stream = $input->getStream()) { $this->inputStream = $stream; } - if (!$question->getValidator()) { - return $this->doAsk($output, $question); + try { + if (!$question->getValidator()) { + return $this->doAsk($output, $question); + } + + $interviewer = function () use ($output, $question) { + return $this->doAsk($output, $question); + }; + + return $this->validateAttempts($interviewer, $output, $question); + } catch (MissingInputException $exception) { + $input->setInteractive(false); + + if (null === $fallbackOutput = $this->getDefaultAnswer($question)) { + throw $exception; + } + + return $fallbackOutput; } - - $interviewer = function () use ($output, $question) { - return $this->doAsk($output, $question); - }; - - return $this->validateAttempts($interviewer, $output, $question); } /** @@ -134,7 +123,7 @@ class QuestionHelper extends Helper if (false === $ret) { $ret = fgets($inputStream, 4096); if (false === $ret) { - throw new RuntimeException('Aborted.'); + throw new MissingInputException('Aborted.'); } if ($question->isTrimmable()) { $ret = trim($ret); @@ -158,6 +147,36 @@ class QuestionHelper extends Helper return $ret; } + /** + * @return mixed + */ + private function getDefaultAnswer(Question $question) + { + $default = $question->getDefault(); + + if (null === $default) { + return $default; + } + + if ($validator = $question->getValidator()) { + return \call_user_func($question->getValidator(), $default); + } elseif ($question instanceof ChoiceQuestion) { + $choices = $question->getChoices(); + + if (!$question->isMultiselect()) { + return isset($choices[$default]) ? $choices[$default] : $default; + } + + $default = explode(',', $default); + foreach ($default as $k => $v) { + $v = $question->isTrimmable() ? trim($v) : $v; + $default[$k] = isset($choices[$v]) ? $choices[$v] : $v; + } + } + + return $default; + } + /** * Outputs the question prompt. */ @@ -166,15 +185,9 @@ class QuestionHelper extends Helper $message = $question->getQuestion(); if ($question instanceof ChoiceQuestion) { - $maxWidth = max(array_map([$this, 'strlen'], array_keys($question->getChoices()))); - - $messages = (array) $question->getQuestion(); - foreach ($question->getChoices() as $key => $value) { - $width = $maxWidth - $this->strlen($key); - $messages[] = ' ['.$key.str_repeat(' ', $width).'] '.$value; - } - - $output->writeln($messages); + $output->writeln(array_merge([ + $question->getQuestion(), + ], $this->formatChoiceQuestionChoices($question, 'info'))); $message = $question->getPrompt(); } @@ -182,6 +195,26 @@ class QuestionHelper extends Helper $output->write($message); } + /** + * @param string $tag + * + * @return string[] + */ + protected function formatChoiceQuestionChoices(ChoiceQuestion $question, $tag) + { + $messages = []; + + $maxWidth = max(array_map('self::strlen', array_keys($choices = $question->getChoices()))); + + foreach ($choices as $key => $value) { + $padding = str_repeat(' ', $maxWidth - self::strlen($key)); + + $messages[] = sprintf(" [<$tag>%s$padding] %s", $key, $value); + } + + return $messages; + } + /** * Outputs an error message. */ @@ -226,7 +259,7 @@ class QuestionHelper extends Helper // as opposed to fgets(), fread() returns an empty string when the stream content is empty, not false. if (false === $c || ('' === $ret && '' === $c && null === $question->getDefault())) { shell_exec(sprintf('stty %s', $sttyMode)); - throw new RuntimeException('Aborted.'); + throw new MissingInputException('Aborted.'); } elseif ("\177" === $c) { // Backspace Character if (0 === $numMatches && 0 !== $i) { --$i; @@ -392,7 +425,7 @@ class QuestionHelper extends Helper shell_exec(sprintf('stty %s', $sttyMode)); if (false === $value) { - throw new RuntimeException('Aborted.'); + throw new MissingInputException('Aborted.'); } if ($trimmable) { $value = trim($value); diff --git a/vendor/symfony/console/Helper/SymfonyQuestionHelper.php b/vendor/symfony/console/Helper/SymfonyQuestionHelper.php index 260c03e20..e4e87b2f9 100644 --- a/vendor/symfony/console/Helper/SymfonyQuestionHelper.php +++ b/vendor/symfony/console/Helper/SymfonyQuestionHelper.php @@ -68,15 +68,15 @@ class SymfonyQuestionHelper extends QuestionHelper $output->writeln($text); - if ($question instanceof ChoiceQuestion) { - $width = max(array_map('strlen', array_keys($question->getChoices()))); + $prompt = ' > '; - foreach ($question->getChoices() as $key => $value) { - $output->writeln(sprintf(" [%-${width}s] %s", $key, $value)); - } + if ($question instanceof ChoiceQuestion) { + $output->writeln($this->formatChoiceQuestionChoices($question, 'comment')); + + $prompt = $question->getPrompt(); } - $output->write(' > '); + $output->write($prompt); } /** diff --git a/vendor/symfony/console/Helper/Table.php b/vendor/symfony/console/Helper/Table.php index 24613bb99..756b8465b 100644 --- a/vendor/symfony/console/Helper/Table.php +++ b/vendor/symfony/console/Helper/Table.php @@ -601,7 +601,9 @@ class Table ++$numberOfRows; // Add row for header separator } - ++$numberOfRows; // Add row for footer separator + if (\count($this->rows) > 0) { + ++$numberOfRows; // Add row for footer separator + } return $numberOfRows; } @@ -616,7 +618,7 @@ class Table $unmergedRows = []; foreach ($rows[$line] as $column => $cell) { if (null !== $cell && !$cell instanceof TableCell && !is_scalar($cell) && !(\is_object($cell) && method_exists($cell, '__toString'))) { - throw new InvalidArgumentException(sprintf('A cell must be a TableCell, a scalar or an object implementing __toString, %s given.', \gettype($cell))); + throw new InvalidArgumentException(sprintf('A cell must be a TableCell, a scalar or an object implementing "__toString()", "%s" given.', \gettype($cell))); } if ($cell instanceof TableCell && $cell->getRowspan() > 1) { $nbLines = $cell->getRowspan() - 1; diff --git a/vendor/symfony/console/Helper/TableStyle.php b/vendor/symfony/console/Helper/TableStyle.php index b8f75e7db..6166f11dc 100644 --- a/vendor/symfony/console/Helper/TableStyle.php +++ b/vendor/symfony/console/Helper/TableStyle.php @@ -58,7 +58,7 @@ class TableStyle public function setPaddingChar($paddingChar) { if (!$paddingChar) { - throw new LogicException('The padding char must not be empty'); + throw new LogicException('The padding char must not be empty.'); } $this->paddingChar = $paddingChar; diff --git a/vendor/symfony/console/Input/StringInput.php b/vendor/symfony/console/Input/StringInput.php index 0ec019778..6fddf6488 100644 --- a/vendor/symfony/console/Input/StringInput.php +++ b/vendor/symfony/console/Input/StringInput.php @@ -57,7 +57,7 @@ class StringInput extends ArgvInput $tokens[] = stripcslashes($match[1]); } else { // should never happen - throw new InvalidArgumentException(sprintf('Unable to parse input near "... %s ..."', substr($input, $cursor, 10))); + throw new InvalidArgumentException(sprintf('Unable to parse input near "... %s ...".', substr($input, $cursor, 10))); } $cursor += \strlen($match[0]); diff --git a/vendor/symfony/console/LICENSE b/vendor/symfony/console/LICENSE index a677f4376..9e936ec04 100644 --- a/vendor/symfony/console/LICENSE +++ b/vendor/symfony/console/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2019 Fabien Potencier +Copyright (c) 2004-2020 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/symfony/console/Output/StreamOutput.php b/vendor/symfony/console/Output/StreamOutput.php index 312621086..f39422a57 100644 --- a/vendor/symfony/console/Output/StreamOutput.php +++ b/vendor/symfony/console/Output/StreamOutput.php @@ -12,7 +12,6 @@ namespace Symfony\Component\Console\Output; use Symfony\Component\Console\Exception\InvalidArgumentException; -use Symfony\Component\Console\Exception\RuntimeException; use Symfony\Component\Console\Formatter\OutputFormatterInterface; /** @@ -74,10 +73,7 @@ class StreamOutput extends Output $message .= PHP_EOL; } - if (false === @fwrite($this->stream, $message)) { - // should never happen - throw new RuntimeException('Unable to write output.'); - } + @fwrite($this->stream, $message); fflush($this->stream); } diff --git a/vendor/symfony/console/Question/ChoiceQuestion.php b/vendor/symfony/console/Question/ChoiceQuestion.php index a4b302db3..72703fb16 100644 --- a/vendor/symfony/console/Question/ChoiceQuestion.php +++ b/vendor/symfony/console/Question/ChoiceQuestion.php @@ -156,7 +156,7 @@ class ChoiceQuestion extends Question } if (\count($results) > 1) { - throw new InvalidArgumentException(sprintf('The provided answer is ambiguous. Value should be one of %s.', implode(' or ', $results))); + throw new InvalidArgumentException(sprintf('The provided answer is ambiguous. Value should be one of "%s".', implode('" or "', $results))); } $result = array_search($value, $choices); diff --git a/vendor/symfony/console/README.md b/vendor/symfony/console/README.md index 664a37c0e..3e2fc605e 100644 --- a/vendor/symfony/console/README.md +++ b/vendor/symfony/console/README.md @@ -7,7 +7,7 @@ interfaces. Resources --------- - * [Documentation](https://symfony.com/doc/current/components/console/index.html) + * [Documentation](https://symfony.com/doc/current/components/console.html) * [Contributing](https://symfony.com/doc/current/contributing/index.html) * [Report issues](https://github.com/symfony/symfony/issues) and [send Pull Requests](https://github.com/symfony/symfony/pulls) diff --git a/vendor/symfony/console/Style/SymfonyStyle.php b/vendor/symfony/console/Style/SymfonyStyle.php index 4f11b2074..5efe2d4b1 100644 --- a/vendor/symfony/console/Style/SymfonyStyle.php +++ b/vendor/symfony/console/Style/SymfonyStyle.php @@ -295,7 +295,7 @@ class SymfonyStyle extends OutputStyle { if (null !== $default) { $values = array_flip($choices); - $default = $values[$default]; + $default = isset($values[$default]) ? $values[$default] : $default; } return $this->askQuestion(new ChoiceQuestion($question, $choices, $default)); diff --git a/vendor/symfony/console/Tester/ApplicationTester.php b/vendor/symfony/console/Tester/ApplicationTester.php index ced56cff2..4f99da18d 100644 --- a/vendor/symfony/console/Tester/ApplicationTester.php +++ b/vendor/symfony/console/Tester/ApplicationTester.php @@ -59,19 +59,12 @@ class ApplicationTester $this->input->setInteractive($options['interactive']); } - $shellInteractive = getenv('SHELL_INTERACTIVE'); - if ($this->inputs) { $this->input->setStream(self::createStream($this->inputs)); - putenv('SHELL_INTERACTIVE=1'); } $this->initOutput($options); - $this->statusCode = $this->application->run($this->input, $this->output); - - putenv($shellInteractive ? "SHELL_INTERACTIVE=$shellInteractive" : 'SHELL_INTERACTIVE'); - - return $this->statusCode; + return $this->statusCode = $this->application->run($this->input, $this->output); } } diff --git a/vendor/symfony/css-selector/.gitattributes b/vendor/symfony/css-selector/.gitattributes deleted file mode 100644 index ebb928704..000000000 --- a/vendor/symfony/css-selector/.gitattributes +++ /dev/null @@ -1,3 +0,0 @@ -/Tests export-ignore -/phpunit.xml.dist export-ignore -/.gitignore export-ignore diff --git a/vendor/symfony/css-selector/LICENSE b/vendor/symfony/css-selector/LICENSE index a677f4376..9e936ec04 100644 --- a/vendor/symfony/css-selector/LICENSE +++ b/vendor/symfony/css-selector/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2019 Fabien Potencier +Copyright (c) 2004-2020 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/symfony/css-selector/Node/AbstractNode.php b/vendor/symfony/css-selector/Node/AbstractNode.php index 9c5cbddc0..1306aeacb 100644 --- a/vendor/symfony/css-selector/Node/AbstractNode.php +++ b/vendor/symfony/css-selector/Node/AbstractNode.php @@ -31,7 +31,7 @@ abstract class AbstractNode implements NodeInterface public function getNodeName(): string { if (null === $this->nodeName) { - $this->nodeName = preg_replace('~.*\\\\([^\\\\]+)Node$~', '$1', \get_called_class()); + $this->nodeName = preg_replace('~.*\\\\([^\\\\]+)Node$~', '$1', static::class); } return $this->nodeName; diff --git a/vendor/symfony/css-selector/Parser/Handler/StringHandler.php b/vendor/symfony/css-selector/Parser/Handler/StringHandler.php index 38c8dc154..6ce83cdc9 100644 --- a/vendor/symfony/css-selector/Parser/Handler/StringHandler.php +++ b/vendor/symfony/css-selector/Parser/Handler/StringHandler.php @@ -55,7 +55,7 @@ class StringHandler implements HandlerInterface $match = $reader->findPattern($this->patterns->getQuotedStringPattern($quote)); if (!$match) { - throw new InternalErrorException(sprintf('Should have found at least an empty match at %s.', $reader->getPosition())); + throw new InternalErrorException(sprintf('Should have found at least an empty match at %d.', $reader->getPosition())); } // check unclosed strings diff --git a/vendor/symfony/css-selector/XPath/Extension/FunctionExtension.php b/vendor/symfony/css-selector/XPath/Extension/FunctionExtension.php index 4b889de1e..2b79aaafc 100644 --- a/vendor/symfony/css-selector/XPath/Extension/FunctionExtension.php +++ b/vendor/symfony/css-selector/XPath/Extension/FunctionExtension.php @@ -53,7 +53,7 @@ class FunctionExtension extends AbstractExtension try { list($a, $b) = Parser::parseSeries($function->getArguments()); } catch (SyntaxErrorException $e) { - throw new ExpressionErrorException(sprintf('Invalid series: %s', implode(', ', $function->getArguments())), 0, $e); + throw new ExpressionErrorException(sprintf('Invalid series: "%s".', implode('", "', $function->getArguments())), 0, $e); } $xpath->addStarPrefix(); diff --git a/vendor/symfony/debug/.gitattributes b/vendor/symfony/debug/.gitattributes deleted file mode 100644 index ebb928704..000000000 --- a/vendor/symfony/debug/.gitattributes +++ /dev/null @@ -1,3 +0,0 @@ -/Tests export-ignore -/phpunit.xml.dist export-ignore -/.gitignore export-ignore diff --git a/vendor/symfony/debug/DebugClassLoader.php b/vendor/symfony/debug/DebugClassLoader.php index 9e071fc76..3ff450b70 100644 --- a/vendor/symfony/debug/DebugClassLoader.php +++ b/vendor/symfony/debug/DebugClassLoader.php @@ -391,7 +391,7 @@ class DebugClassLoader foreach ($matches as list(, $parameterType, $parameterName)) { if (!isset($definedParameters[$parameterName])) { $parameterType = trim($parameterType); - self::$annotatedParameters[$class][$method->name][$parameterName] = sprintf('The "%%s::%s()" method will require a new "%s$%s" argument in the next major version of its parent class "%s", not defining it is deprecated.', $method->name, $parameterType ? $parameterType.' ' : '', $parameterName, $method->class); + self::$annotatedParameters[$class][$method->name][$parameterName] = sprintf('The "%%s::%s()" method will require a new "%s$%s" argument in the next major version of its %s "%s", not defining it is deprecated.', $method->name, $parameterType ? $parameterType.' ' : '', $parameterName, interface_exists($class) ? 'interface' : 'parent class', $method->class); } } } diff --git a/vendor/symfony/debug/ErrorHandler.php b/vendor/symfony/debug/ErrorHandler.php index b7ca74dc0..fe84ba5da 100644 --- a/vendor/symfony/debug/ErrorHandler.php +++ b/vendor/symfony/debug/ErrorHandler.php @@ -226,14 +226,14 @@ class ErrorHandler if (!\is_array($log)) { $log = [$log]; } elseif (!\array_key_exists(0, $log)) { - throw new \InvalidArgumentException('No logger provided'); + throw new \InvalidArgumentException('No logger provided.'); } if (null === $log[0]) { $this->loggedErrors &= ~$type; } elseif ($log[0] instanceof LoggerInterface) { $this->loggedErrors |= $type; } else { - throw new \InvalidArgumentException('Invalid logger provided'); + throw new \InvalidArgumentException('Invalid logger provided.'); } $this->loggers[$type] = $log + $prev[$type]; @@ -499,7 +499,7 @@ class ErrorHandler if ($this->isRecursive) { $log = 0; } else { - if (!\defined('HHVM_VERSION')) { + if (\PHP_VERSION_ID < (\PHP_VERSION_ID < 70400 ? 70316 : 70404) && !\defined('HHVM_VERSION')) { $currentErrorHandler = set_error_handler('var_dump'); restore_error_handler(); } @@ -511,7 +511,7 @@ class ErrorHandler } finally { $this->isRecursive = false; - if (!\defined('HHVM_VERSION')) { + if (\PHP_VERSION_ID < (\PHP_VERSION_ID < 70400 ? 70316 : 70404) && !\defined('HHVM_VERSION')) { set_error_handler($currentErrorHandler); } } diff --git a/vendor/symfony/debug/Exception/FlattenException.php b/vendor/symfony/debug/Exception/FlattenException.php index f55f71b0c..a4cb517cb 100644 --- a/vendor/symfony/debug/Exception/FlattenException.php +++ b/vendor/symfony/debug/Exception/FlattenException.php @@ -180,7 +180,7 @@ class FlattenException public function setMessage($message) { if (false !== strpos($message, "class@anonymous\0")) { - $message = preg_replace_callback('/class@anonymous\x00.*?\.php0x?[0-9a-fA-F]++/', function ($m) { + $message = preg_replace_callback('/class@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)[0-9a-fA-F]++/', function ($m) { return class_exists($m[0], false) ? get_parent_class($m[0]).'@anonymous' : $m[0]; }, $message); } diff --git a/vendor/symfony/debug/ExceptionHandler.php b/vendor/symfony/debug/ExceptionHandler.php index fee3e48cf..deee58b7f 100644 --- a/vendor/symfony/debug/ExceptionHandler.php +++ b/vendor/symfony/debug/ExceptionHandler.php @@ -256,7 +256,11 @@ EOF foreach ($e['trace'] as $trace) { $content .= ''; if ($trace['function']) { - $content .= sprintf('at %s%s%s(%s)', $this->formatClass($trace['class']), $trace['type'], $trace['function'], $this->formatArgs($trace['args'])); + $content .= sprintf('at %s%s%s', $this->formatClass($trace['class']), $trace['type'], $trace['function']); + + if (isset($trace['args'])) { + $content .= sprintf('(%s)', $this->formatArgs($trace['args'])); + } } if (isset($trace['file']) && isset($trace['line'])) { $content .= $this->formatPath($trace['file'], $trace['line']); diff --git a/vendor/symfony/debug/LICENSE b/vendor/symfony/debug/LICENSE index a677f4376..9e936ec04 100644 --- a/vendor/symfony/debug/LICENSE +++ b/vendor/symfony/debug/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2019 Fabien Potencier +Copyright (c) 2004-2020 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/symfony/debug/README.md b/vendor/symfony/debug/README.md index a1d16175c..90b36f0cb 100644 --- a/vendor/symfony/debug/README.md +++ b/vendor/symfony/debug/README.md @@ -1,12 +1,29 @@ Debug Component =============== +**CAUTION**: this component is deprecated since Symfony 4.4. Instead, use the +[ErrorHandler component](https://github.com/symfony/symfony/tree/master/src/Symfony/Component/ErrorHandler). + +----- + The Debug component provides tools to ease debugging PHP code. +Getting Started +--------------- + +``` +$ composer install symfony/debug +``` + +```php +use Symfony\Component\Debug\Debug; + +Debug::enable(); +``` + Resources --------- - * [Documentation](https://symfony.com/doc/current/components/debug/index.html) * [Contributing](https://symfony.com/doc/current/contributing/index.html) * [Report issues](https://github.com/symfony/symfony/issues) and [send Pull Requests](https://github.com/symfony/symfony/pulls) diff --git a/vendor/symfony/error-handler/.gitattributes b/vendor/symfony/error-handler/.gitattributes deleted file mode 100644 index ebb928704..000000000 --- a/vendor/symfony/error-handler/.gitattributes +++ /dev/null @@ -1,3 +0,0 @@ -/Tests export-ignore -/phpunit.xml.dist export-ignore -/.gitignore export-ignore diff --git a/vendor/symfony/error-handler/Debug.php b/vendor/symfony/error-handler/Debug.php index f95334e01..9cc8ec17a 100644 --- a/vendor/symfony/error-handler/Debug.php +++ b/vendor/symfony/error-handler/Debug.php @@ -29,8 +29,13 @@ class Debug ini_set('display_errors', 1); } + @ini_set('zend.assertions', 1); + ini_set('assert.active', 1); + ini_set('assert.warning', 0); + ini_set('assert.exception', 1); + DebugClassLoader::enable(); - return ErrorHandler::register(new ErrorHandler(new BufferingLogger())); + return ErrorHandler::register(new ErrorHandler(new BufferingLogger(), true)); } } diff --git a/vendor/symfony/error-handler/DebugClassLoader.php b/vendor/symfony/error-handler/DebugClassLoader.php index cd419098c..71f21f50f 100644 --- a/vendor/symfony/error-handler/DebugClassLoader.php +++ b/vendor/symfony/error-handler/DebugClassLoader.php @@ -11,7 +11,8 @@ namespace Symfony\Component\ErrorHandler; -use Doctrine\Common\Persistence\Proxy; +use Doctrine\Common\Persistence\Proxy as LegacyProxy; +use Doctrine\Persistence\Proxy; use PHPUnit\Framework\MockObject\Matcher\StatelessInvocation; use PHPUnit\Framework\MockObject\MockObject; use Prophecy\Prophecy\ProphecySubjectInterface; @@ -298,6 +299,7 @@ class DebugClassLoader && !is_subclass_of($symbols[$i], ProphecySubjectInterface::class) && !is_subclass_of($symbols[$i], Proxy::class) && !is_subclass_of($symbols[$i], ProxyInterface::class) + && !is_subclass_of($symbols[$i], LegacyProxy::class) ) { $loader->checkClass($symbols[$i]); } @@ -426,17 +428,17 @@ class DebugClassLoader } } - if ($refl->isInterface() && false !== strpos($doc, 'method') && preg_match_all('#\n \* @method\s+(static\s+)?+(?:[\w\|&\[\]\\\]+\s+)?(\w+(?:\s*\([^\)]*\))?)+(.+?([[:punct:]]\s*)?)?(?=\r?\n \*(?: @|/$|\r?\n))#', $doc, $notice, PREG_SET_ORDER)) { + if ($refl->isInterface() && false !== strpos($doc, 'method') && preg_match_all('#\n \* @method\s+(static\s+)?+([\w\|&\[\]\\\]+\s+)?(\w+(?:\s*\([^\)]*\))?)+(.+?([[:punct:]]\s*)?)?(?=\r?\n \*(?: @|/$|\r?\n))#', $doc, $notice, PREG_SET_ORDER)) { foreach ($notice as $method) { - $static = '' !== $method[1]; - $name = $method[2]; - $description = $method[3] ?? null; + $static = '' !== $method[1] && !empty($method[2]); + $name = $method[3]; + $description = $method[4] ?? null; if (false === strpos($name, '(')) { $name .= '()'; } if (null !== $description) { $description = trim($description); - if (!isset($method[4])) { + if (!isset($method[5])) { $description .= '.'; } } @@ -605,7 +607,7 @@ class DebugClassLoader if ($canAddReturnType && 'docblock' === $this->patchTypes['force'] && false === strpos($method->getFileName(), \DIRECTORY_SEPARATOR.'vendor'.\DIRECTORY_SEPARATOR)) { $this->patchMethod($method, $returnType, $declaringFile, $normalizedType); } elseif ('' !== $declaringClass && $this->patchTypes['deprecations']) { - $deprecations[] = sprintf('Method "%s::%s()" will return "%s" as of its next major version. Doing the same in child class "%s" will be required when upgrading.', $declaringClass, $method->name, $normalizedType, $className); + $deprecations[] = sprintf('Method "%s::%s()" will return "%s" as of its next major version. Doing the same in %s "%s" will be required when upgrading.', $declaringClass, $method->name, $normalizedType, interface_exists($declaringClass) ? 'implementation' : 'child class', $className); } } } @@ -662,7 +664,7 @@ class DebugClassLoader foreach ($matches as list(, $parameterType, $parameterName)) { if (!isset($definedParameters[$parameterName])) { $parameterType = trim($parameterType); - self::$annotatedParameters[$class][$method->name][$parameterName] = sprintf('The "%%s::%s()" method will require a new "%s$%s" argument in the next major version of its parent class "%s", not defining it is deprecated.', $method->name, $parameterType ? $parameterType.' ' : '', $parameterName, $className); + self::$annotatedParameters[$class][$method->name][$parameterName] = sprintf('The "%%s::%s()" method will require a new "%s$%s" argument in the next major version of its %s "%s", not defining it is deprecated.', $method->name, $parameterType ? $parameterType.' ' : '', $parameterName, interface_exists($className) ? 'interface' : 'parent class', $className); } } } diff --git a/vendor/symfony/error-handler/ErrorHandler.php b/vendor/symfony/error-handler/ErrorHandler.php index 7e2bf11ef..0c8edfcd9 100644 --- a/vendor/symfony/error-handler/ErrorHandler.php +++ b/vendor/symfony/error-handler/ErrorHandler.php @@ -92,6 +92,7 @@ class ErrorHandler private $screamedErrors = 0x55; // E_ERROR + E_CORE_ERROR + E_COMPILE_ERROR + E_PARSE private $loggedErrors = 0; private $traceReflector; + private $debug; private $isRecursive = 0; private $isRoot = false; @@ -180,7 +181,7 @@ class ErrorHandler } } - public function __construct(BufferingLogger $bootstrappingLogger = null) + public function __construct(BufferingLogger $bootstrappingLogger = null, bool $debug = false) { if ($bootstrappingLogger) { $this->bootstrappingLogger = $bootstrappingLogger; @@ -188,6 +189,7 @@ class ErrorHandler } $this->traceReflector = new \ReflectionProperty('Exception', 'trace'); $this->traceReflector->setAccessible(true); + $this->debug = $debug; } /** @@ -244,14 +246,14 @@ class ErrorHandler if (!\is_array($log)) { $log = [$log]; } elseif (!\array_key_exists(0, $log)) { - throw new \InvalidArgumentException('No logger provided'); + throw new \InvalidArgumentException('No logger provided.'); } if (null === $log[0]) { $this->loggedErrors &= ~$type; } elseif ($log[0] instanceof LoggerInterface) { $this->loggedErrors |= $type; } else { - throw new \InvalidArgumentException('Invalid logger provided'); + throw new \InvalidArgumentException('Invalid logger provided.'); } $this->loggers[$type] = $log + $prev[$type]; @@ -411,6 +413,11 @@ class ErrorHandler $throw = $this->thrownErrors & $type & $level; $type &= $level | $this->screamedErrors; + // Never throw on warnings triggered by assert() + if (E_WARNING === $type && 'a' === $message[0] && 0 === strncmp($message, 'assert(): ', 10)) { + $throw = 0; + } + if (!$type || (!$log && !$throw)) { return !$silenced && $type && $log; } @@ -512,7 +519,7 @@ class ErrorHandler if ($this->isRecursive) { $log = 0; } else { - if (!\defined('HHVM_VERSION')) { + if (\PHP_VERSION_ID < (\PHP_VERSION_ID < 70400 ? 70316 : 70404)) { $currentErrorHandler = set_error_handler('var_dump'); restore_error_handler(); } @@ -524,7 +531,7 @@ class ErrorHandler } finally { $this->isRecursive = false; - if (!\defined('HHVM_VERSION')) { + if (\PHP_VERSION_ID < (\PHP_VERSION_ID < 70400 ? 70316 : 70404)) { set_error_handler($currentErrorHandler); } } @@ -697,7 +704,7 @@ class ErrorHandler */ private function renderException(\Throwable $exception): void { - $renderer = \in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) ? new CliErrorRenderer() : new HtmlErrorRenderer(0 !== $this->scopedErrors); + $renderer = \in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) ? new CliErrorRenderer() : new HtmlErrorRenderer($this->debug); $exception = $renderer->render($exception); @@ -761,7 +768,7 @@ class ErrorHandler */ private function parseAnonymousClass(string $message): string { - return preg_replace_callback('/class@anonymous\x00.*?\.php0x?[0-9a-fA-F]++/', static function ($m) { + return preg_replace_callback('/class@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)[0-9a-fA-F]++/', static function ($m) { return class_exists($m[0], false) ? get_parent_class($m[0]).'@anonymous' : $m[0]; }, $message); } diff --git a/vendor/symfony/error-handler/ErrorRenderer/CliErrorRenderer.php b/vendor/symfony/error-handler/ErrorRenderer/CliErrorRenderer.php index aa132d1cf..5c0f6a7dc 100644 --- a/vendor/symfony/error-handler/ErrorRenderer/CliErrorRenderer.php +++ b/vendor/symfony/error-handler/ErrorRenderer/CliErrorRenderer.php @@ -15,6 +15,9 @@ use Symfony\Component\ErrorHandler\Exception\FlattenException; use Symfony\Component\VarDumper\Cloner\VarCloner; use Symfony\Component\VarDumper\Dumper\CliDumper; +// Help opcache.preload discover always-needed symbols +class_exists(CliDumper::class); + /** * @author Nicolas Grekas */ diff --git a/vendor/symfony/error-handler/ErrorRenderer/HtmlErrorRenderer.php b/vendor/symfony/error-handler/ErrorRenderer/HtmlErrorRenderer.php index 883a94f68..ce8cab6d6 100644 --- a/vendor/symfony/error-handler/ErrorRenderer/HtmlErrorRenderer.php +++ b/vendor/symfony/error-handler/ErrorRenderer/HtmlErrorRenderer.php @@ -46,11 +46,11 @@ class HtmlErrorRenderer implements ErrorRendererInterface public function __construct($debug = false, string $charset = null, $fileLinkFormat = null, string $projectDir = null, $outputBuffer = '', LoggerInterface $logger = null) { if (!\is_bool($debug) && !\is_callable($debug)) { - throw new \TypeError(sprintf('Argument 1 passed to %s() must be a boolean or a callable, %s given.', __METHOD__, \is_object($debug) ? \get_class($debug) : \gettype($debug))); + throw new \TypeError(sprintf('Argument 1 passed to "%s()" must be a boolean or a callable, "%s" given.', __METHOD__, \is_object($debug) ? \get_class($debug) : \gettype($debug))); } if (!\is_string($outputBuffer) && !\is_callable($outputBuffer)) { - throw new \TypeError(sprintf('Argument 5 passed to %s() must be a string or a callable, %s given.', __METHOD__, \is_object($outputBuffer) ? \get_class($outputBuffer) : \gettype($outputBuffer))); + throw new \TypeError(sprintf('Argument 5 passed to "%s()" must be a string or a callable, "%s" given.', __METHOD__, \is_object($outputBuffer) ? \get_class($outputBuffer) : \gettype($outputBuffer))); } $this->debug = $debug; diff --git a/vendor/symfony/error-handler/ErrorRenderer/SerializerErrorRenderer.php b/vendor/symfony/error-handler/ErrorRenderer/SerializerErrorRenderer.php index 6cc363d0d..e0640850a 100644 --- a/vendor/symfony/error-handler/ErrorRenderer/SerializerErrorRenderer.php +++ b/vendor/symfony/error-handler/ErrorRenderer/SerializerErrorRenderer.php @@ -12,6 +12,7 @@ namespace Symfony\Component\ErrorHandler\ErrorRenderer; use Symfony\Component\ErrorHandler\Exception\FlattenException; +use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\RequestStack; use Symfony\Component\Serializer\Exception\NotEncodableValueException; use Symfony\Component\Serializer\SerializerInterface; @@ -30,16 +31,17 @@ class SerializerErrorRenderer implements ErrorRendererInterface /** * @param string|callable(FlattenException) $format The format as a string or a callable that should return it + * formats not supported by Request::getMimeTypes() should be given as mime types * @param bool|callable $debug The debugging mode as a boolean or a callable that should return it */ public function __construct(SerializerInterface $serializer, $format, ErrorRendererInterface $fallbackErrorRenderer = null, $debug = false) { if (!\is_string($format) && !\is_callable($format)) { - throw new \TypeError(sprintf('Argument 2 passed to %s() must be a string or a callable, %s given.', __METHOD__, \is_object($format) ? \get_class($format) : \gettype($format))); + throw new \TypeError(sprintf('Argument 2 passed to "%s()" must be a string or a callable, "%s" given.', __METHOD__, \is_object($format) ? \get_class($format) : \gettype($format))); } if (!\is_bool($debug) && !\is_callable($debug)) { - throw new \TypeError(sprintf('Argument 4 passed to %s() must be a boolean or a callable, %s given.', __METHOD__, \is_object($debug) ? \get_class($debug) : \gettype($debug))); + throw new \TypeError(sprintf('Argument 4 passed to "%s()" must be a boolean or a callable, "%s" given.', __METHOD__, \is_object($debug) ? \get_class($debug) : \gettype($debug))); } $this->serializer = $serializer; @@ -57,11 +59,16 @@ class SerializerErrorRenderer implements ErrorRendererInterface try { $format = \is_string($this->format) ? $this->format : ($this->format)($flattenException); + $headers = [ + 'Content-Type' => Request::getMimeTypes($format)[0] ?? $format, + 'Vary' => 'Accept', + ]; return $flattenException->setAsString($this->serializer->serialize($flattenException, $format, [ 'exception' => $exception, 'debug' => \is_bool($this->debug) ? $this->debug : ($this->debug)($exception), - ])); + ])) + ->setHeaders($flattenException->getHeaders() + $headers); } catch (NotEncodableValueException $e) { return $this->fallbackErrorRenderer->render($exception); } diff --git a/vendor/symfony/error-handler/Exception/FlattenException.php b/vendor/symfony/error-handler/Exception/FlattenException.php index 818cb9a27..61a3497ad 100644 --- a/vendor/symfony/error-handler/Exception/FlattenException.php +++ b/vendor/symfony/error-handler/Exception/FlattenException.php @@ -196,7 +196,7 @@ class FlattenException extends LegacyFlattenException public function setMessage($message): self { if (false !== strpos($message, "class@anonymous\0")) { - $message = preg_replace_callback('/class@anonymous\x00.*?\.php0x?[0-9a-fA-F]++/', function ($m) { + $message = preg_replace_callback('/class@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)[0-9a-fA-F]++/', function ($m) { return class_exists($m[0], false) ? get_parent_class($m[0]).'@anonymous' : $m[0]; }, $message); } @@ -206,7 +206,10 @@ class FlattenException extends LegacyFlattenException return $this; } - public function getCode(): int + /** + * @return int|string int most of the time (might be a string with PDOException) + */ + public function getCode() { return $this->code; } diff --git a/vendor/symfony/error-handler/LICENSE b/vendor/symfony/error-handler/LICENSE index 1a1869751..4bf0fef4f 100644 --- a/vendor/symfony/error-handler/LICENSE +++ b/vendor/symfony/error-handler/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2019 Fabien Potencier +Copyright (c) 2019-2020 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/symfony/error-handler/Resources/views/trace.html.php b/vendor/symfony/error-handler/Resources/views/trace.html.php index 3112af4ab..153f7d6f8 100644 --- a/vendor/symfony/error-handler/Resources/views/trace.html.php +++ b/vendor/symfony/error-handler/Resources/views/trace.html.php @@ -5,7 +5,7 @@ - abbrClass($trace['class']); ?>(formatArgs($trace['args']); ?>) + abbrClass($trace['class']); ?>(formatArgs($trace['args']); ?>) diff --git a/vendor/symfony/error-handler/Resources/views/traces_text.html.php b/vendor/symfony/error-handler/Resources/views/traces_text.html.php index 1b06954dc..a7090fbe8 100644 --- a/vendor/symfony/error-handler/Resources/views/traces_text.html.php +++ b/vendor/symfony/error-handler/Resources/views/traces_text.html.php @@ -20,15 +20,15 @@
 escape($exception['class']).":\n";
                     if ($exception['message']) {
-                        echo $exception['message']."\n";
+                        echo $this->escape($exception['message'])."\n";
                     }
 
                     foreach ($exception['trace'] as $trace) {
                         echo "\n  ";
                         if ($trace['function']) {
-                            echo 'at '.$trace['class'].$trace['type'].$trace['function'].'('.$this->formatArgsAsText($trace['args']).')';
+                            echo $this->escape('at '.$trace['class'].$trace['type'].$trace['function']).'('.(isset($trace['args']) ? $this->formatArgsAsText($trace['args']) : '').')';
                         }
                         if ($trace['file'] && $trace['line']) {
                             echo($trace['function'] ? "\n     (" : 'at ').strtr(strip_tags($this->formatFile($trace['file'], $trace['line'])), [' at line '.$trace['line'] => '']).':'.$trace['line'].($trace['function'] ? ')' : '');
diff --git a/vendor/symfony/error-handler/composer.json b/vendor/symfony/error-handler/composer.json
index cfe822f4e..614bd4f5a 100644
--- a/vendor/symfony/error-handler/composer.json
+++ b/vendor/symfony/error-handler/composer.json
@@ -18,7 +18,7 @@
     "require": {
         "php": "^7.1.3",
         "psr/log": "~1.0",
-        "symfony/debug": "^4.4",
+        "symfony/debug": "^4.4.5",
         "symfony/var-dumper": "^4.4|^5.0"
     },
     "require-dev": {
diff --git a/vendor/symfony/event-dispatcher/.gitattributes b/vendor/symfony/event-dispatcher/.gitattributes
deleted file mode 100644
index ebb928704..000000000
--- a/vendor/symfony/event-dispatcher/.gitattributes
+++ /dev/null
@@ -1,3 +0,0 @@
-/Tests export-ignore
-/phpunit.xml.dist export-ignore
-/.gitignore export-ignore
diff --git a/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php b/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php
index fdc65fd31..4c556c8a4 100644
--- a/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php
+++ b/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php
@@ -151,7 +151,7 @@ class TraceableEventDispatcher implements TraceableEventDispatcherInterface
             $eventName = $swap;
 
             if (!$event instanceof Event) {
-                throw new \TypeError(sprintf('Argument 1 passed to "%s::dispatch()" must be an instance of %s, %s given.', EventDispatcherInterface::class, Event::class, \is_object($event) ? \get_class($event) : \gettype($event)));
+                throw new \TypeError(sprintf('Argument 1 passed to "%s::dispatch()" must be an instance of "%s", "%s" given.', EventDispatcherInterface::class, Event::class, \is_object($event) ? \get_class($event) : \gettype($event)));
             }
         }
 
diff --git a/vendor/symfony/event-dispatcher/EventDispatcher.php b/vendor/symfony/event-dispatcher/EventDispatcher.php
index 9a2459cdc..9f523dca3 100644
--- a/vendor/symfony/event-dispatcher/EventDispatcher.php
+++ b/vendor/symfony/event-dispatcher/EventDispatcher.php
@@ -38,7 +38,7 @@ class EventDispatcher implements EventDispatcherInterface
 
     public function __construct()
     {
-        if (__CLASS__ === \get_class($this)) {
+        if (__CLASS__ === static::class) {
             $this->optimized = [];
         }
     }
@@ -60,7 +60,7 @@ class EventDispatcher implements EventDispatcherInterface
             $event = $eventName ?? new Event();
             $eventName = $swap;
         } else {
-            throw new \TypeError(sprintf('Argument 1 passed to "%s::dispatch()" must be an object, %s given.', EventDispatcherInterface::class, \is_object($event) ? \get_class($event) : \gettype($event)));
+            throw new \TypeError(sprintf('Argument 1 passed to "%s::dispatch()" must be an object, "%s" given.', EventDispatcherInterface::class, \is_object($event) ? \get_class($event) : \gettype($event)));
         }
 
         if (null !== $this->optimized && null !== $eventName) {
@@ -274,7 +274,7 @@ class EventDispatcher implements EventDispatcherInterface
         $this->sorted[$eventName] = [];
 
         foreach ($this->listeners[$eventName] as &$listeners) {
-            foreach ($listeners as $k => $listener) {
+            foreach ($listeners as $k => &$listener) {
                 if (\is_array($listener) && isset($listener[0]) && $listener[0] instanceof \Closure && 2 >= \count($listener)) {
                     $listener[0] = $listener[0]();
                     $listener[1] = $listener[1] ?? '__invoke';
diff --git a/vendor/symfony/event-dispatcher/LICENSE b/vendor/symfony/event-dispatcher/LICENSE
index a677f4376..9e936ec04 100644
--- a/vendor/symfony/event-dispatcher/LICENSE
+++ b/vendor/symfony/event-dispatcher/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2019 Fabien Potencier
+Copyright (c) 2004-2020 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/vendor/symfony/event-dispatcher/LegacyEventDispatcherProxy.php b/vendor/symfony/event-dispatcher/LegacyEventDispatcherProxy.php
index 513e260e9..0a8fa16d3 100644
--- a/vendor/symfony/event-dispatcher/LegacyEventDispatcherProxy.php
+++ b/vendor/symfony/event-dispatcher/LegacyEventDispatcherProxy.php
@@ -65,7 +65,7 @@ final class LegacyEventDispatcherProxy implements EventDispatcherInterface
             $event = $eventName ?? new Event();
             $eventName = $swap;
         } else {
-            throw new \TypeError(sprintf('Argument 1 passed to "%s::dispatch()" must be an object, %s given.', ContractsEventDispatcherInterface::class, \is_object($event) ? \get_class($event) : \gettype($event)));
+            throw new \TypeError(sprintf('Argument 1 passed to "%s::dispatch()" must be an object, "%s" given.', ContractsEventDispatcherInterface::class, \is_object($event) ? \get_class($event) : \gettype($event)));
         }
 
         $listeners = $this->getListeners($eventName);
diff --git a/vendor/symfony/event-dispatcher/README.md b/vendor/symfony/event-dispatcher/README.md
index 185c3fecf..e0d38eed0 100644
--- a/vendor/symfony/event-dispatcher/README.md
+++ b/vendor/symfony/event-dispatcher/README.md
@@ -8,7 +8,7 @@ them.
 Resources
 ---------
 
-  * [Documentation](https://symfony.com/doc/current/components/event_dispatcher/index.html)
+  * [Documentation](https://symfony.com/doc/current/components/event_dispatcher.html)
   * [Contributing](https://symfony.com/doc/current/contributing/index.html)
   * [Report issues](https://github.com/symfony/symfony/issues) and
     [send Pull Requests](https://github.com/symfony/symfony/pulls)
diff --git a/vendor/symfony/finder/.gitattributes b/vendor/symfony/finder/.gitattributes
deleted file mode 100644
index ebb928704..000000000
--- a/vendor/symfony/finder/.gitattributes
+++ /dev/null
@@ -1,3 +0,0 @@
-/Tests export-ignore
-/phpunit.xml.dist export-ignore
-/.gitignore export-ignore
diff --git a/vendor/symfony/finder/Finder.php b/vendor/symfony/finder/Finder.php
index ecc3515ed..e1f27a8e2 100644
--- a/vendor/symfony/finder/Finder.php
+++ b/vendor/symfony/finder/Finder.php
@@ -440,7 +440,7 @@ class Finder implements \IteratorAggregate, \Countable
      */
     public function sortByName(/* bool $useNaturalSort = false */)
     {
-        if (\func_num_args() < 1 && __CLASS__ !== \get_class($this) && __CLASS__ !== (new \ReflectionMethod($this, __FUNCTION__))->getDeclaringClass()->getName() && !$this instanceof \PHPUnit\Framework\MockObject\MockObject && !$this instanceof \Prophecy\Prophecy\ProphecySubjectInterface) {
+        if (\func_num_args() < 1 && __CLASS__ !== static::class && __CLASS__ !== (new \ReflectionMethod($this, __FUNCTION__))->getDeclaringClass()->getName() && !$this instanceof \PHPUnit\Framework\MockObject\MockObject && !$this instanceof \Prophecy\Prophecy\ProphecySubjectInterface) {
             @trigger_error(sprintf('The "%s()" method will have a new "bool $useNaturalSort = false" argument in version 5.0, not defining it is deprecated since Symfony 4.2.', __METHOD__), E_USER_DEPRECATED);
         }
         $useNaturalSort = 0 < \func_num_args() && func_get_arg(0);
@@ -797,6 +797,10 @@ class Finder implements \IteratorAggregate, \Countable
      */
     private function normalizeDir(string $dir): string
     {
+        if ('/' === $dir) {
+            return $dir;
+        }
+
         $dir = rtrim($dir, '/'.\DIRECTORY_SEPARATOR);
 
         if (preg_match('#^(ssh2\.)?s?ftp://#', $dir)) {
diff --git a/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php b/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php
index 3facef58a..7616b14a2 100644
--- a/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php
+++ b/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php
@@ -70,7 +70,11 @@ class RecursiveDirectoryIterator extends \RecursiveDirectoryIterator
         }
         $subPathname .= $this->getFilename();
 
-        return new SplFileInfo($this->rootPath.$this->directorySeparator.$subPathname, $this->subPath, $subPathname);
+        if ('/' !== $basePath = $this->rootPath) {
+            $basePath .= $this->directorySeparator;
+        }
+
+        return new SplFileInfo($basePath.$subPathname, $this->subPath, $subPathname);
     }
 
     /**
diff --git a/vendor/symfony/finder/LICENSE b/vendor/symfony/finder/LICENSE
index a677f4376..9e936ec04 100644
--- a/vendor/symfony/finder/LICENSE
+++ b/vendor/symfony/finder/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2019 Fabien Potencier
+Copyright (c) 2004-2020 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/vendor/symfony/http-foundation/.gitattributes b/vendor/symfony/http-foundation/.gitattributes
deleted file mode 100644
index ebb928704..000000000
--- a/vendor/symfony/http-foundation/.gitattributes
+++ /dev/null
@@ -1,3 +0,0 @@
-/Tests export-ignore
-/phpunit.xml.dist export-ignore
-/.gitignore export-ignore
diff --git a/vendor/symfony/http-foundation/AcceptHeader.php b/vendor/symfony/http-foundation/AcceptHeader.php
index bbbd62a6d..c3c8d0c35 100644
--- a/vendor/symfony/http-foundation/AcceptHeader.php
+++ b/vendor/symfony/http-foundation/AcceptHeader.php
@@ -11,6 +11,9 @@
 
 namespace Symfony\Component\HttpFoundation;
 
+// Help opcache.preload discover always-needed symbols
+class_exists(AcceptHeaderItem::class);
+
 /**
  * Represents an Accept-* header.
  *
diff --git a/vendor/symfony/http-foundation/BinaryFileResponse.php b/vendor/symfony/http-foundation/BinaryFileResponse.php
index 64800b3fa..7bdbf4def 100644
--- a/vendor/symfony/http-foundation/BinaryFileResponse.php
+++ b/vendor/symfony/http-foundation/BinaryFileResponse.php
@@ -217,7 +217,7 @@ class BinaryFileResponse extends Response
             }
             if ('x-accel-redirect' === strtolower($type)) {
                 // Do X-Accel-Mapping substitutions.
-                // @link http://wiki.nginx.org/X-accel#X-Accel-Redirect
+                // @link https://www.nginx.com/resources/wiki/start/topics/examples/x-accel/#x-accel-redirect
                 $parts = HeaderUtils::split($request->headers->get('X-Accel-Mapping', ''), ',=');
                 foreach ($parts as $part) {
                     list($pathPrefix, $location) = $part;
diff --git a/vendor/symfony/http-foundation/File/File.php b/vendor/symfony/http-foundation/File/File.php
index 4906588a7..c72a6d991 100644
--- a/vendor/symfony/http-foundation/File/File.php
+++ b/vendor/symfony/http-foundation/File/File.php
@@ -91,7 +91,7 @@ class File extends \SplFileInfo
         $renamed = rename($this->getPathname(), $target);
         restore_error_handler();
         if (!$renamed) {
-            throw new FileException(sprintf('Could not move the file "%s" to "%s" (%s)', $this->getPathname(), $target, strip_tags($error)));
+            throw new FileException(sprintf('Could not move the file "%s" to "%s" (%s).', $this->getPathname(), $target, strip_tags($error)));
         }
 
         @chmod($target, 0666 & ~umask());
@@ -106,10 +106,10 @@ class File extends \SplFileInfo
     {
         if (!is_dir($directory)) {
             if (false === @mkdir($directory, 0777, true) && !is_dir($directory)) {
-                throw new FileException(sprintf('Unable to create the "%s" directory', $directory));
+                throw new FileException(sprintf('Unable to create the "%s" directory.', $directory));
             }
         } elseif (!is_writable($directory)) {
-            throw new FileException(sprintf('Unable to write in the "%s" directory', $directory));
+            throw new FileException(sprintf('Unable to write in the "%s" directory.', $directory));
         }
 
         $target = rtrim($directory, '/\\').\DIRECTORY_SEPARATOR.(null === $name ? $this->getBasename() : $this->getName($name));
diff --git a/vendor/symfony/http-foundation/File/MimeType/MimeTypeGuesser.php b/vendor/symfony/http-foundation/File/MimeType/MimeTypeGuesser.php
index ece2109ca..65b4b25be 100644
--- a/vendor/symfony/http-foundation/File/MimeType/MimeTypeGuesser.php
+++ b/vendor/symfony/http-foundation/File/MimeType/MimeTypeGuesser.php
@@ -130,7 +130,7 @@ class MimeTypeGuesser implements MimeTypeGuesserInterface
         }
 
         if (2 === \count($this->guessers) && !FileBinaryMimeTypeGuesser::isSupported() && !FileinfoMimeTypeGuesser::isSupported()) {
-            throw new \LogicException('Unable to guess the mime type as no guessers are available (Did you enable the php_fileinfo extension?)');
+            throw new \LogicException('Unable to guess the mime type as no guessers are available (Did you enable the php_fileinfo extension?).');
         }
 
         return null;
diff --git a/vendor/symfony/http-foundation/File/UploadedFile.php b/vendor/symfony/http-foundation/File/UploadedFile.php
index 0c67f8907..36fd1e65c 100644
--- a/vendor/symfony/http-foundation/File/UploadedFile.php
+++ b/vendor/symfony/http-foundation/File/UploadedFile.php
@@ -208,7 +208,7 @@ class UploadedFile extends File
             $moved = move_uploaded_file($this->getPathname(), $target);
             restore_error_handler();
             if (!$moved) {
-                throw new FileException(sprintf('Could not move the file "%s" to "%s" (%s)', $this->getPathname(), $target, strip_tags($error)));
+                throw new FileException(sprintf('Could not move the file "%s" to "%s" (%s).', $this->getPathname(), $target, strip_tags($error)));
             }
 
             @chmod($target, 0666 & ~umask());
diff --git a/vendor/symfony/http-foundation/HeaderBag.php b/vendor/symfony/http-foundation/HeaderBag.php
index 9ffe6f4fe..da794554b 100644
--- a/vendor/symfony/http-foundation/HeaderBag.php
+++ b/vendor/symfony/http-foundation/HeaderBag.php
@@ -219,7 +219,7 @@ class HeaderBag implements \IteratorAggregate, \Countable
         }
 
         if (false === $date = \DateTime::createFromFormat(DATE_RFC2822, $value)) {
-            throw new \RuntimeException(sprintf('The %s HTTP header is not parseable (%s).', $key, $value));
+            throw new \RuntimeException(sprintf('The "%s" HTTP header is not parseable (%s).', $key, $value));
         }
 
         return $date;
diff --git a/vendor/symfony/http-foundation/LICENSE b/vendor/symfony/http-foundation/LICENSE
index a677f4376..9e936ec04 100644
--- a/vendor/symfony/http-foundation/LICENSE
+++ b/vendor/symfony/http-foundation/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2019 Fabien Potencier
+Copyright (c) 2004-2020 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/vendor/symfony/http-foundation/README.md b/vendor/symfony/http-foundation/README.md
index 8907f0b96..ac98f9b80 100644
--- a/vendor/symfony/http-foundation/README.md
+++ b/vendor/symfony/http-foundation/README.md
@@ -7,7 +7,7 @@ specification.
 Resources
 ---------
 
-  * [Documentation](https://symfony.com/doc/current/components/http_foundation/index.html)
+  * [Documentation](https://symfony.com/doc/current/components/http_foundation.html)
   * [Contributing](https://symfony.com/doc/current/contributing/index.html)
   * [Report issues](https://github.com/symfony/symfony/issues) and
     [send Pull Requests](https://github.com/symfony/symfony/pulls)
diff --git a/vendor/symfony/http-foundation/RedirectResponse.php b/vendor/symfony/http-foundation/RedirectResponse.php
index 687bc04d9..4347f3a84 100644
--- a/vendor/symfony/http-foundation/RedirectResponse.php
+++ b/vendor/symfony/http-foundation/RedirectResponse.php
@@ -47,7 +47,7 @@ class RedirectResponse extends Response
             throw new \InvalidArgumentException(sprintf('The HTTP status code is not a redirect ("%s" given).', $status));
         }
 
-        if (301 == $status && !\array_key_exists('cache-control', array_change_key_case($headers, \CASE_LOWER))) {
+        if (301 == $status && !\array_key_exists('cache-control', array_change_key_case($headers, CASE_LOWER))) {
             $this->headers->remove('cache-control');
         }
     }
diff --git a/vendor/symfony/http-foundation/Request.php b/vendor/symfony/http-foundation/Request.php
index bb5409123..33f4efb5e 100644
--- a/vendor/symfony/http-foundation/Request.php
+++ b/vendor/symfony/http-foundation/Request.php
@@ -15,6 +15,14 @@ use Symfony\Component\HttpFoundation\Exception\ConflictingHeadersException;
 use Symfony\Component\HttpFoundation\Exception\SuspiciousOperationException;
 use Symfony\Component\HttpFoundation\Session\SessionInterface;
 
+// Help opcache.preload discover always-needed symbols
+class_exists(AcceptHeader::class);
+class_exists(FileBag::class);
+class_exists(HeaderBag::class);
+class_exists(HeaderUtils::class);
+class_exists(ParameterBag::class);
+class_exists(ServerBag::class);
+
 /**
  * Request represents an HTTP request.
  *
@@ -725,7 +733,7 @@ class Request
 
         if (null === $session) {
             @trigger_error(sprintf('Calling "%s()" when no session has been set is deprecated since Symfony 4.1 and will throw an exception in 5.0. Use "hasSession()" instead.', __METHOD__), E_USER_DEPRECATED);
-            // throw new \BadMethodCallException('Session has not been set');
+            // throw new \BadMethodCallException('Session has not been set.');
         }
 
         return $session;
@@ -1582,24 +1590,23 @@ class Request
      * Gets the preferred format for the response by inspecting, in the following order:
      *   * the request format set using setRequestFormat
      *   * the values of the Accept HTTP header
-     *   * the content type of the body of the request.
+     *
+     * Note that if you use this method, you should send the "Vary: Accept" header
+     * in the response to prevent any issues with intermediary HTTP caches.
      */
     public function getPreferredFormat(?string $default = 'html'): ?string
     {
-        if (null !== $this->preferredFormat) {
+        if (null !== $this->preferredFormat || null !== $this->preferredFormat = $this->getRequestFormat(null)) {
             return $this->preferredFormat;
         }
 
-        $preferredFormat = null;
-        foreach ($this->getAcceptableContentTypes() as $contentType) {
-            if ($preferredFormat = $this->getFormat($contentType)) {
-                break;
+        foreach ($this->getAcceptableContentTypes() as $mimeType) {
+            if ($this->preferredFormat = $this->getFormat($mimeType)) {
+                return $this->preferredFormat;
             }
         }
 
-        $this->preferredFormat = $this->getRequestFormat($preferredFormat ?: $this->getContentType());
-
-        return $this->preferredFormat ?: $default;
+        return $default;
     }
 
     /**
diff --git a/vendor/symfony/http-foundation/Response.php b/vendor/symfony/http-foundation/Response.php
index c1a2e1488..b9177934a 100644
--- a/vendor/symfony/http-foundation/Response.php
+++ b/vendor/symfony/http-foundation/Response.php
@@ -11,6 +11,9 @@
 
 namespace Symfony\Component\HttpFoundation;
 
+// Help opcache.preload discover always-needed symbols
+class_exists(ResponseHeaderBag::class);
+
 /**
  * Response represents an HTTP response.
  *
@@ -267,10 +270,12 @@ class Response
             $this->setContent(null);
             $headers->remove('Content-Type');
             $headers->remove('Content-Length');
+            // prevent PHP from sending the Content-Type header based on default_mimetype
+            ini_set('default_mimetype', '');
         } else {
             // Content-type based on the Request
             if (!$headers->has('Content-Type')) {
-                $format = $request->getPreferredFormat();
+                $format = $request->getRequestFormat(null);
                 if (null !== $format && $mimeType = $request->getMimeType($format)) {
                     $headers->set('Content-Type', $mimeType);
                 }
@@ -628,7 +633,7 @@ class Response
     }
 
     /**
-     * Returns true if the response must be revalidated by caches.
+     * Returns true if the response must be revalidated by shared caches once it has become stale.
      *
      * This method indicates that the response must not be served stale by a
      * cache in any circumstance without first revalidating with the origin.
diff --git a/vendor/symfony/http-foundation/ResponseHeaderBag.php b/vendor/symfony/http-foundation/ResponseHeaderBag.php
index f5b7a27fd..e71034aba 100644
--- a/vendor/symfony/http-foundation/ResponseHeaderBag.php
+++ b/vendor/symfony/http-foundation/ResponseHeaderBag.php
@@ -252,10 +252,13 @@ class ResponseHeaderBag extends HeaderBag
      * @param string $domain
      * @param bool   $secure
      * @param bool   $httpOnly
+     * @param string $sameSite
      */
-    public function clearCookie($name, $path = '/', $domain = null, $secure = false, $httpOnly = true)
+    public function clearCookie($name, $path = '/', $domain = null, $secure = false, $httpOnly = true/*, $sameSite = null*/)
     {
-        $this->setCookie(new Cookie($name, null, 1, $path, $domain, $secure, $httpOnly, false, null));
+        $sameSite = \func_num_args() > 5 ? func_get_arg(5) : null;
+
+        $this->setCookie(new Cookie($name, null, 1, $path, $domain, $secure, $httpOnly, false, $sameSite));
     }
 
     /**
@@ -276,13 +279,13 @@ class ResponseHeaderBag extends HeaderBag
      */
     protected function computeCacheControlValue()
     {
-        if (!$this->cacheControl && !$this->has('ETag') && !$this->has('Last-Modified') && !$this->has('Expires')) {
-            return 'no-cache, private';
-        }
-
         if (!$this->cacheControl) {
+            if ($this->has('Last-Modified') || $this->has('Expires')) {
+                return 'private, must-revalidate'; // allows for heuristic expiration (RFC 7234 Section 4.2.2) in the case of "Last-Modified"
+            }
+
             // conservative by default
-            return 'private, must-revalidate';
+            return 'no-cache, private';
         }
 
         $header = $this->getCacheControlHeader();
diff --git a/vendor/symfony/http-foundation/Session/Session.php b/vendor/symfony/http-foundation/Session/Session.php
index 2192c629e..b6973aaab 100644
--- a/vendor/symfony/http-foundation/Session/Session.php
+++ b/vendor/symfony/http-foundation/Session/Session.php
@@ -18,6 +18,11 @@ use Symfony\Component\HttpFoundation\Session\Flash\FlashBagInterface;
 use Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage;
 use Symfony\Component\HttpFoundation\Session\Storage\SessionStorageInterface;
 
+// Help opcache.preload discover always-needed symbols
+class_exists(AttributeBag::class);
+class_exists(FlashBag::class);
+class_exists(SessionBagProxy::class);
+
 /**
  * @author Fabien Potencier 
  * @author Drak 
diff --git a/vendor/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php b/vendor/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php
index bcde59ee6..c4fa1fae2 100644
--- a/vendor/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php
+++ b/vendor/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php
@@ -71,6 +71,15 @@ abstract class AbstractSessionHandler implements \SessionHandlerInterface, \Sess
         $this->prefetchData = $this->read($sessionId);
         $this->prefetchId = $sessionId;
 
+        if (\PHP_VERSION_ID < 70317 || (70400 <= \PHP_VERSION_ID && \PHP_VERSION_ID < 70405)) {
+            // work around https://bugs.php.net/79413
+            foreach (debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS) as $frame) {
+                if (!isset($frame['class']) && isset($frame['function']) && \in_array($frame['function'], ['session_regenerate_id', 'session_create_id'], true)) {
+                    return '' === $this->prefetchData;
+                }
+            }
+        }
+
         return '' !== $this->prefetchData;
     }
 
@@ -121,7 +130,7 @@ abstract class AbstractSessionHandler implements \SessionHandlerInterface, \Sess
     {
         if (!headers_sent() && filter_var(ini_get('session.use_cookies'), FILTER_VALIDATE_BOOLEAN)) {
             if (!$this->sessionName) {
-                throw new \LogicException(sprintf('Session name cannot be empty, did you forget to call "parent::open()" in "%s"?.', \get_class($this)));
+                throw new \LogicException(sprintf('Session name cannot be empty, did you forget to call "parent::open()" in "%s"?.', static::class));
             }
             $cookie = SessionUtils::popSessionCookie($this->sessionName, $sessionId);
 
diff --git a/vendor/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php b/vendor/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php
index a399be5fd..6711e0a55 100644
--- a/vendor/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php
+++ b/vendor/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php
@@ -47,7 +47,7 @@ class MemcachedSessionHandler extends AbstractSessionHandler
         $this->memcached = $memcached;
 
         if ($diff = array_diff(array_keys($options), ['prefix', 'expiretime'])) {
-            throw new \InvalidArgumentException(sprintf('The following options are not supported "%s"', implode(', ', $diff)));
+            throw new \InvalidArgumentException(sprintf('The following options are not supported "%s".', implode(', ', $diff)));
         }
 
         $this->ttl = isset($options['expiretime']) ? (int) $options['expiretime'] : 86400;
diff --git a/vendor/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php b/vendor/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php
index 27e080021..6cb884778 100644
--- a/vendor/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php
+++ b/vendor/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php
@@ -66,7 +66,7 @@ class MongoDbSessionHandler extends AbstractSessionHandler
     public function __construct(\MongoDB\Client $mongo, array $options)
     {
         if (!isset($options['database']) || !isset($options['collection'])) {
-            throw new \InvalidArgumentException('You must provide the "database" and "collection" option for MongoDBSessionHandler');
+            throw new \InvalidArgumentException('You must provide the "database" and "collection" option for MongoDBSessionHandler.');
         }
 
         $this->mongo = $mongo;
diff --git a/vendor/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php b/vendor/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php
index bdfc9d819..effc9db54 100644
--- a/vendor/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php
+++ b/vendor/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php
@@ -38,7 +38,7 @@ class NativeFileSessionHandler extends \SessionHandler
 
         if ($count = substr_count($savePath, ';')) {
             if ($count > 2) {
-                throw new \InvalidArgumentException(sprintf('Invalid argument $savePath \'%s\'', $savePath));
+                throw new \InvalidArgumentException(sprintf('Invalid argument $savePath \'%s\'.', $savePath));
             }
 
             // characters after last ';' are the path
@@ -46,7 +46,7 @@ class NativeFileSessionHandler extends \SessionHandler
         }
 
         if ($baseDir && !is_dir($baseDir) && !@mkdir($baseDir, 0777, true) && !is_dir($baseDir)) {
-            throw new \RuntimeException(sprintf('Session Storage was not able to create directory "%s"', $baseDir));
+            throw new \RuntimeException(sprintf('Session Storage was not able to create directory "%s".', $baseDir));
         }
 
         ini_set('session.save_path', $savePath);
diff --git a/vendor/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php b/vendor/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php
index 7942e0a57..330ac7f2a 100644
--- a/vendor/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php
+++ b/vendor/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php
@@ -174,7 +174,7 @@ class PdoSessionHandler extends AbstractSessionHandler
     {
         if ($pdoOrDsn instanceof \PDO) {
             if (\PDO::ERRMODE_EXCEPTION !== $pdoOrDsn->getAttribute(\PDO::ATTR_ERRMODE)) {
-                throw new \InvalidArgumentException(sprintf('"%s" requires PDO error mode attribute be set to throw Exceptions (i.e. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION))', __CLASS__));
+                throw new \InvalidArgumentException(sprintf('"%s" requires PDO error mode attribute be set to throw Exceptions (i.e. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)).', __CLASS__));
             }
 
             $this->pdo = $pdoOrDsn;
@@ -219,7 +219,7 @@ class PdoSessionHandler extends AbstractSessionHandler
                 // - trailing space removal
                 // - case-insensitivity
                 // - language processing like é == e
-                $sql = "CREATE TABLE $this->table ($this->idCol VARBINARY(128) NOT NULL PRIMARY KEY, $this->dataCol BLOB NOT NULL, $this->lifetimeCol INTEGER UNSIGNED NOT NULL, $this->timeCol INTEGER UNSIGNED NOT NULL) COLLATE utf8_bin, ENGINE = InnoDB";
+                $sql = "CREATE TABLE $this->table ($this->idCol VARBINARY(128) NOT NULL PRIMARY KEY, $this->dataCol BLOB NOT NULL, $this->lifetimeCol INTEGER UNSIGNED NOT NULL, $this->timeCol INTEGER UNSIGNED NOT NULL) COLLATE utf8mb4_bin, ENGINE = InnoDB";
                 break;
             case 'sqlite':
                 $sql = "CREATE TABLE $this->table ($this->idCol TEXT NOT NULL PRIMARY KEY, $this->dataCol BLOB NOT NULL, $this->lifetimeCol INTEGER NOT NULL, $this->timeCol INTEGER NOT NULL)";
@@ -468,7 +468,7 @@ class PdoSessionHandler extends AbstractSessionHandler
         }
 
         if (!isset($params['scheme'])) {
-            throw new \InvalidArgumentException('URLs without scheme are not supported to configure the PdoSessionHandler');
+            throw new \InvalidArgumentException('URLs without scheme are not supported to configure the PdoSessionHandler.');
         }
 
         $driverAliasMap = [
@@ -871,10 +871,10 @@ class PdoSessionHandler extends AbstractSessionHandler
             $mergeStmt->bindParam(2, $sessionId, \PDO::PARAM_STR);
             $mergeStmt->bindParam(3, $data, \PDO::PARAM_LOB);
             $mergeStmt->bindValue(4, time() + $maxlifetime, \PDO::PARAM_INT);
-            $mergeStmt->bindValue(4, time(), \PDO::PARAM_INT);
-            $mergeStmt->bindParam(5, $data, \PDO::PARAM_LOB);
-            $mergeStmt->bindValue(6, time() + $maxlifetime, \PDO::PARAM_INT);
-            $mergeStmt->bindValue(6, time(), \PDO::PARAM_INT);
+            $mergeStmt->bindValue(5, time(), \PDO::PARAM_INT);
+            $mergeStmt->bindParam(6, $data, \PDO::PARAM_LOB);
+            $mergeStmt->bindValue(7, time() + $maxlifetime, \PDO::PARAM_INT);
+            $mergeStmt->bindValue(8, time(), \PDO::PARAM_INT);
         } else {
             $mergeStmt->bindParam(':id', $sessionId, \PDO::PARAM_STR);
             $mergeStmt->bindParam(':data', $data, \PDO::PARAM_LOB);
diff --git a/vendor/symfony/http-foundation/Session/Storage/Handler/RedisSessionHandler.php b/vendor/symfony/http-foundation/Session/Storage/Handler/RedisSessionHandler.php
index d8c1f8cb9..699d6da6f 100644
--- a/vendor/symfony/http-foundation/Session/Storage/Handler/RedisSessionHandler.php
+++ b/vendor/symfony/http-foundation/Session/Storage/Handler/RedisSessionHandler.php
@@ -54,16 +54,16 @@ class RedisSessionHandler extends AbstractSessionHandler
             !$redis instanceof RedisProxy &&
             !$redis instanceof RedisClusterProxy
         ) {
-            throw new \InvalidArgumentException(sprintf('%s() expects parameter 1 to be Redis, RedisArray, RedisCluster or Predis\ClientInterface, %s given', __METHOD__, \is_object($redis) ? \get_class($redis) : \gettype($redis)));
+            throw new \InvalidArgumentException(sprintf('"%s()" expects parameter 1 to be Redis, RedisArray, RedisCluster or Predis\ClientInterface, "%s" given.', __METHOD__, \is_object($redis) ? \get_class($redis) : \gettype($redis)));
         }
 
         if ($diff = array_diff(array_keys($options), ['prefix', 'ttl'])) {
-            throw new \InvalidArgumentException(sprintf('The following options are not supported "%s"', implode(', ', $diff)));
+            throw new \InvalidArgumentException(sprintf('The following options are not supported "%s".', implode(', ', $diff)));
         }
 
         $this->redis = $redis;
         $this->prefix = $options['prefix'] ?? 'sf_s';
-        $this->ttl = $options['ttl'] ?? (int) ini_get('session.gc_maxlifetime');
+        $this->ttl = $options['ttl'] ?? null;
     }
 
     /**
@@ -79,7 +79,7 @@ class RedisSessionHandler extends AbstractSessionHandler
      */
     protected function doWrite($sessionId, $data): bool
     {
-        $result = $this->redis->setEx($this->prefix.$sessionId, $this->ttl, $data);
+        $result = $this->redis->setEx($this->prefix.$sessionId, (int) ($this->ttl ?? ini_get('session.gc_maxlifetime')), $data);
 
         return $result && !$result instanceof ErrorInterface;
     }
@@ -115,6 +115,6 @@ class RedisSessionHandler extends AbstractSessionHandler
      */
     public function updateTimestamp($sessionId, $data)
     {
-        return (bool) $this->redis->expire($this->prefix.$sessionId, $this->ttl);
+        return (bool) $this->redis->expire($this->prefix.$sessionId, (int) ($this->ttl ?? ini_get('session.gc_maxlifetime')));
     }
 }
diff --git a/vendor/symfony/http-foundation/Session/Storage/Handler/SessionHandlerFactory.php b/vendor/symfony/http-foundation/Session/Storage/Handler/SessionHandlerFactory.php
index f4feeac09..a5ebd29eb 100644
--- a/vendor/symfony/http-foundation/Session/Storage/Handler/SessionHandlerFactory.php
+++ b/vendor/symfony/http-foundation/Session/Storage/Handler/SessionHandlerFactory.php
@@ -27,7 +27,7 @@ class SessionHandlerFactory
     public static function createHandler($connection): AbstractSessionHandler
     {
         if (!\is_string($connection) && !\is_object($connection)) {
-            throw new \TypeError(sprintf('Argument 1 passed to %s() must be a string or a connection object, %s given.', __METHOD__, \gettype($connection)));
+            throw new \TypeError(sprintf('Argument 1 passed to "%s()" must be a string or a connection object, "%s" given.', __METHOD__, \gettype($connection)));
         }
 
         switch (true) {
@@ -46,17 +46,17 @@ class SessionHandlerFactory
                 return new PdoSessionHandler($connection);
 
             case !\is_string($connection):
-                throw new \InvalidArgumentException(sprintf('Unsupported Connection: %s.', \get_class($connection)));
+                throw new \InvalidArgumentException(sprintf('Unsupported Connection: "%s".', \get_class($connection)));
             case 0 === strpos($connection, 'file://'):
                 return new StrictSessionHandler(new NativeFileSessionHandler(substr($connection, 7)));
 
-            case 0 === strpos($connection, 'redis://'):
-            case 0 === strpos($connection, 'rediss://'):
-            case 0 === strpos($connection, 'memcached://'):
+            case 0 === strpos($connection, 'redis:'):
+            case 0 === strpos($connection, 'rediss:'):
+            case 0 === strpos($connection, 'memcached:'):
                 if (!class_exists(AbstractAdapter::class)) {
-                    throw new InvalidArgumentException(sprintf('Unsupported DSN "%s". Try running "composer require symfony/cache".', $connection));
+                    throw new \InvalidArgumentException(sprintf('Unsupported DSN "%s". Try running "composer require symfony/cache".', $connection));
                 }
-                $handlerClass = 0 === strpos($connection, 'memcached://') ? MemcachedSessionHandler::class : RedisSessionHandler::class;
+                $handlerClass = 0 === strpos($connection, 'memcached:') ? MemcachedSessionHandler::class : RedisSessionHandler::class;
                 $connection = AbstractAdapter::createConnection($connection, ['lazy' => true]);
 
                 return new $handlerClass($connection);
@@ -80,6 +80,6 @@ class SessionHandlerFactory
                 return new PdoSessionHandler($connection);
         }
 
-        throw new \InvalidArgumentException(sprintf('Unsupported Connection: %s.', $connection));
+        throw new \InvalidArgumentException(sprintf('Unsupported Connection: "%s".', $connection));
     }
 }
diff --git a/vendor/symfony/http-foundation/Session/Storage/MockArraySessionStorage.php b/vendor/symfony/http-foundation/Session/Storage/MockArraySessionStorage.php
index 37b6f145b..db8f85e75 100644
--- a/vendor/symfony/http-foundation/Session/Storage/MockArraySessionStorage.php
+++ b/vendor/symfony/http-foundation/Session/Storage/MockArraySessionStorage.php
@@ -148,7 +148,7 @@ class MockArraySessionStorage implements SessionStorageInterface
     public function save()
     {
         if (!$this->started || $this->closed) {
-            throw new \RuntimeException('Trying to save a session that was not started yet or was already closed');
+            throw new \RuntimeException('Trying to save a session that was not started yet or was already closed.');
         }
         // nothing to do since we don't persist the session data
         $this->closed = false;
@@ -186,7 +186,7 @@ class MockArraySessionStorage implements SessionStorageInterface
     public function getBag($name)
     {
         if (!isset($this->bags[$name])) {
-            throw new \InvalidArgumentException(sprintf('The SessionBagInterface %s is not registered.', $name));
+            throw new \InvalidArgumentException(sprintf('The SessionBagInterface "%s" is not registered.', $name));
         }
 
         if (!$this->started) {
diff --git a/vendor/symfony/http-foundation/Session/Storage/MockFileSessionStorage.php b/vendor/symfony/http-foundation/Session/Storage/MockFileSessionStorage.php
index 02fe4dad4..c96b3cd9d 100644
--- a/vendor/symfony/http-foundation/Session/Storage/MockFileSessionStorage.php
+++ b/vendor/symfony/http-foundation/Session/Storage/MockFileSessionStorage.php
@@ -37,7 +37,7 @@ class MockFileSessionStorage extends MockArraySessionStorage
         }
 
         if (!is_dir($savePath) && !@mkdir($savePath, 0777, true) && !is_dir($savePath)) {
-            throw new \RuntimeException(sprintf('Session Storage was not able to create directory "%s"', $savePath));
+            throw new \RuntimeException(sprintf('Session Storage was not able to create directory "%s".', $savePath));
         }
 
         $this->savePath = $savePath;
@@ -87,7 +87,7 @@ class MockFileSessionStorage extends MockArraySessionStorage
     public function save()
     {
         if (!$this->started) {
-            throw new \RuntimeException('Trying to save a session that was not started yet or was already closed');
+            throw new \RuntimeException('Trying to save a session that was not started yet or was already closed.');
         }
 
         $data = $this->data;
diff --git a/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php b/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php
index 3bc2b2eb4..b6cce8165 100644
--- a/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php
+++ b/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php
@@ -17,6 +17,11 @@ use Symfony\Component\HttpFoundation\Session\Storage\Handler\StrictSessionHandle
 use Symfony\Component\HttpFoundation\Session\Storage\Proxy\AbstractProxy;
 use Symfony\Component\HttpFoundation\Session\Storage\Proxy\SessionHandlerProxy;
 
+// Help opcache.preload discover always-needed symbols
+class_exists(MetadataBag::class);
+class_exists(StrictSessionHandler::class);
+class_exists(SessionHandlerProxy::class);
+
 /**
  * This provides a base class for session attribute storage.
  *
@@ -139,7 +144,7 @@ class NativeSessionStorage implements SessionStorageInterface
             return true;
         }
 
-        if (\PHP_SESSION_ACTIVE === session_status()) {
+        if (PHP_SESSION_ACTIVE === session_status()) {
             throw new \RuntimeException('Failed to start the session: already started by PHP.');
         }
 
@@ -149,7 +154,7 @@ class NativeSessionStorage implements SessionStorageInterface
 
         // ok to try and start the session
         if (!session_start()) {
-            throw new \RuntimeException('Failed to start the session');
+            throw new \RuntimeException('Failed to start the session.');
         }
 
         if (null !== $this->emulateSameSite) {
@@ -202,7 +207,7 @@ class NativeSessionStorage implements SessionStorageInterface
     public function regenerate($destroy = false, $lifetime = null)
     {
         // Cannot regenerate the session ID for non-active sessions.
-        if (\PHP_SESSION_ACTIVE !== session_status()) {
+        if (PHP_SESSION_ACTIVE !== session_status()) {
             return false;
         }
 
@@ -210,8 +215,10 @@ class NativeSessionStorage implements SessionStorageInterface
             return false;
         }
 
-        if (null !== $lifetime) {
+        if (null !== $lifetime && $lifetime != ini_get('session.cookie_lifetime')) {
+            $this->save();
             ini_set('session.cookie_lifetime', $lifetime);
+            $this->start();
         }
 
         if ($destroy) {
@@ -220,10 +227,6 @@ class NativeSessionStorage implements SessionStorageInterface
 
         $isRegenerated = session_regenerate_id($destroy);
 
-        // The reference to $_SESSION in session bags is lost in PHP7 and we need to re-create it.
-        // @see https://bugs.php.net/70013
-        $this->loadSession();
-
         if (null !== $this->emulateSameSite) {
             $originalCookie = SessionUtils::popSessionCookie(session_name(), session_id());
             if (null !== $originalCookie) {
@@ -311,7 +314,7 @@ class NativeSessionStorage implements SessionStorageInterface
     public function getBag($name)
     {
         if (!isset($this->bags[$name])) {
-            throw new \InvalidArgumentException(sprintf('The SessionBagInterface %s is not registered.', $name));
+            throw new \InvalidArgumentException(sprintf('The SessionBagInterface "%s" is not registered.', $name));
         }
 
         if (!$this->started && $this->saveHandler->isActive()) {
@@ -362,7 +365,7 @@ class NativeSessionStorage implements SessionStorageInterface
      */
     public function setOptions(array $options)
     {
-        if (headers_sent() || \PHP_SESSION_ACTIVE === session_status()) {
+        if (headers_sent() || PHP_SESSION_ACTIVE === session_status()) {
             return;
         }
 
@@ -401,13 +404,11 @@ class NativeSessionStorage implements SessionStorageInterface
      *     ini_set('session.save_path', '/tmp');
      *
      * or pass in a \SessionHandler instance which configures session.save_handler in the
-     * constructor, for a template see NativeFileSessionHandler or use handlers in
-     * composer package drak/native-session
+     * constructor, for a template see NativeFileSessionHandler.
      *
      * @see https://php.net/session-set-save-handler
      * @see https://php.net/sessionhandlerinterface
      * @see https://php.net/sessionhandler
-     * @see https://github.com/zikula/NativeSession
      *
      * @param AbstractProxy|\SessionHandlerInterface|null $saveHandler
      *
@@ -429,7 +430,7 @@ class NativeSessionStorage implements SessionStorageInterface
         }
         $this->saveHandler = $saveHandler;
 
-        if (headers_sent() || \PHP_SESSION_ACTIVE === session_status()) {
+        if (headers_sent() || PHP_SESSION_ACTIVE === session_status()) {
             return;
         }
 
diff --git a/vendor/symfony/http-foundation/Session/Storage/Proxy/AbstractProxy.php b/vendor/symfony/http-foundation/Session/Storage/Proxy/AbstractProxy.php
index 0303729e7..b9c2682b3 100644
--- a/vendor/symfony/http-foundation/Session/Storage/Proxy/AbstractProxy.php
+++ b/vendor/symfony/http-foundation/Session/Storage/Proxy/AbstractProxy.php
@@ -65,7 +65,7 @@ abstract class AbstractProxy
      */
     public function isActive()
     {
-        return \PHP_SESSION_ACTIVE === session_status();
+        return PHP_SESSION_ACTIVE === session_status();
     }
 
     /**
@@ -88,7 +88,7 @@ abstract class AbstractProxy
     public function setId($id)
     {
         if ($this->isActive()) {
-            throw new \LogicException('Cannot change the ID of an active session');
+            throw new \LogicException('Cannot change the ID of an active session.');
         }
 
         session_id($id);
@@ -114,7 +114,7 @@ abstract class AbstractProxy
     public function setName($name)
     {
         if ($this->isActive()) {
-            throw new \LogicException('Cannot change the name of an active session');
+            throw new \LogicException('Cannot change the name of an active session.');
         }
 
         session_name($name);
diff --git a/vendor/symfony/http-kernel/.gitattributes b/vendor/symfony/http-kernel/.gitattributes
deleted file mode 100644
index ebb928704..000000000
--- a/vendor/symfony/http-kernel/.gitattributes
+++ /dev/null
@@ -1,3 +0,0 @@
-/Tests export-ignore
-/phpunit.xml.dist export-ignore
-/.gitignore export-ignore
diff --git a/vendor/symfony/http-kernel/Bundle/Bundle.php b/vendor/symfony/http-kernel/Bundle/Bundle.php
index 2ff356c9f..e8057737e 100644
--- a/vendor/symfony/http-kernel/Bundle/Bundle.php
+++ b/vendor/symfony/http-kernel/Bundle/Bundle.php
@@ -69,7 +69,7 @@ abstract class Bundle implements BundleInterface
 
             if (null !== $extension) {
                 if (!$extension instanceof ExtensionInterface) {
-                    throw new \LogicException(sprintf('Extension %s must implement Symfony\Component\DependencyInjection\Extension\ExtensionInterface.', \get_class($extension)));
+                    throw new \LogicException(sprintf('Extension "%s" must implement Symfony\Component\DependencyInjection\Extension\ExtensionInterface.', \get_class($extension)));
                 }
 
                 // check naming convention
diff --git a/vendor/symfony/http-kernel/CacheClearer/Psr6CacheClearer.php b/vendor/symfony/http-kernel/CacheClearer/Psr6CacheClearer.php
index 47a6ece5c..f5670f1b9 100644
--- a/vendor/symfony/http-kernel/CacheClearer/Psr6CacheClearer.php
+++ b/vendor/symfony/http-kernel/CacheClearer/Psr6CacheClearer.php
@@ -31,7 +31,7 @@ class Psr6CacheClearer implements CacheClearerInterface
     public function getPool($name)
     {
         if (!$this->hasPool($name)) {
-            throw new \InvalidArgumentException(sprintf('Cache pool not found: %s.', $name));
+            throw new \InvalidArgumentException(sprintf('Cache pool not found: "%s".', $name));
         }
 
         return $this->pools[$name];
@@ -40,7 +40,7 @@ class Psr6CacheClearer implements CacheClearerInterface
     public function clearPool($name)
     {
         if (!isset($this->pools[$name])) {
-            throw new \InvalidArgumentException(sprintf('Cache pool not found: %s.', $name));
+            throw new \InvalidArgumentException(sprintf('Cache pool not found: "%s".', $name));
         }
 
         return $this->pools[$name]->clear();
diff --git a/vendor/symfony/http-kernel/Config/FileLocator.php b/vendor/symfony/http-kernel/Config/FileLocator.php
index 8683a3eef..03dfe3de3 100644
--- a/vendor/symfony/http-kernel/Config/FileLocator.php
+++ b/vendor/symfony/http-kernel/Config/FileLocator.php
@@ -65,20 +65,24 @@ class FileLocator extends BaseFileLocator
             || (\strlen($file) > 3 && ctype_alpha($file[0]) && ':' === $file[1] && ('\\' === $file[2] || '/' === $file[2]))
             || null !== parse_url($file, PHP_URL_SCHEME)
         )) {
+            $deprecation = false;
+
             // no need to trigger deprecations when the loaded file is given as absolute path
             foreach ($this->paths as $deprecatedPath) {
-                if (\is_array($locations)) {
-                    foreach ($locations as $location) {
-                        if (0 === strpos($location, $deprecatedPath) && (null === $currentPath || false === strpos($location, $currentPath))) {
-                            @trigger_error(sprintf('Loading the file "%s" from the global resource directory "%s" is deprecated since Symfony 4.4 and will be removed in 5.0.', $file, $deprecatedPath), E_USER_DEPRECATED);
-                        }
+                foreach ((array) $locations as $location) {
+                    if (null !== $currentPath && 0 === strpos($location, $currentPath)) {
+                        return $locations;
                     }
-                } else {
-                    if (0 === strpos($locations, $deprecatedPath) && (null === $currentPath || false === strpos($locations, $currentPath))) {
-                        @trigger_error(sprintf('Loading the file "%s" from the global resource directory "%s" is deprecated since Symfony 4.4 and will be removed in 5.0.', $file, $deprecatedPath), E_USER_DEPRECATED);
+
+                    if (0 === strpos($location, $deprecatedPath) && (null === $currentPath || false === strpos($location, $currentPath))) {
+                        $deprecation = sprintf('Loading the file "%s" from the global resource directory "%s" is deprecated since Symfony 4.4 and will be removed in 5.0.', $file, $deprecatedPath);
                     }
                 }
             }
+
+            if ($deprecation) {
+                @trigger_error($deprecation, E_USER_DEPRECATED);
+            }
         }
 
         return $locations;
diff --git a/vendor/symfony/http-kernel/Controller/ArgumentResolver.php b/vendor/symfony/http-kernel/Controller/ArgumentResolver.php
index 89154ece7..3504ae614 100644
--- a/vendor/symfony/http-kernel/Controller/ArgumentResolver.php
+++ b/vendor/symfony/http-kernel/Controller/ArgumentResolver.php
@@ -62,7 +62,7 @@ final class ArgumentResolver implements ArgumentResolverInterface
                 }
 
                 if (!$atLeastOne) {
-                    throw new \InvalidArgumentException(sprintf('%s::resolve() must yield at least one value.', \get_class($resolver)));
+                    throw new \InvalidArgumentException(sprintf('"%s::resolve()" must yield at least one value.', \get_class($resolver)));
                 }
 
                 // continue to the next controller argument
diff --git a/vendor/symfony/http-kernel/Controller/ContainerControllerResolver.php b/vendor/symfony/http-kernel/Controller/ContainerControllerResolver.php
index 015eea91f..7eb028de1 100644
--- a/vendor/symfony/http-kernel/Controller/ContainerControllerResolver.php
+++ b/vendor/symfony/http-kernel/Controller/ContainerControllerResolver.php
@@ -64,7 +64,7 @@ class ContainerControllerResolver extends ControllerResolver
             throw new \InvalidArgumentException(sprintf('Controller "%s" has required constructor arguments and does not exist in the container. Did you forget to define the controller as a service?', $class), 0, $e);
         }
 
-        throw new \InvalidArgumentException(sprintf('Controller "%s" does neither exist as service nor as class', $class), 0, $e);
+        throw new \InvalidArgumentException(sprintf('Controller "%s" does neither exist as service nor as class.', $class), 0, $e);
     }
 
     private function throwExceptionIfControllerWasRemoved(string $controller, \Throwable $previous)
diff --git a/vendor/symfony/http-kernel/Controller/ControllerResolver.php b/vendor/symfony/http-kernel/Controller/ControllerResolver.php
index 22907ce58..b3e21e5f2 100644
--- a/vendor/symfony/http-kernel/Controller/ControllerResolver.php
+++ b/vendor/symfony/http-kernel/Controller/ControllerResolver.php
@@ -64,7 +64,7 @@ class ControllerResolver implements ControllerResolverInterface
             }
 
             if (!\is_callable($controller)) {
-                throw new \InvalidArgumentException(sprintf('The controller for URI "%s" is not callable. %s', $request->getPathInfo(), $this->getControllerError($controller)));
+                throw new \InvalidArgumentException(sprintf('The controller for URI "%s" is not callable: '.$this->getControllerError($controller), $request->getPathInfo()));
             }
 
             return $controller;
@@ -72,7 +72,7 @@ class ControllerResolver implements ControllerResolverInterface
 
         if (\is_object($controller)) {
             if (!\is_callable($controller)) {
-                throw new \InvalidArgumentException(sprintf('The controller for URI "%s" is not callable. %s', $request->getPathInfo(), $this->getControllerError($controller)));
+                throw new \InvalidArgumentException(sprintf('The controller for URI "%s" is not callable: '.$this->getControllerError($controller), $request->getPathInfo()));
             }
 
             return $controller;
@@ -85,11 +85,11 @@ class ControllerResolver implements ControllerResolverInterface
         try {
             $callable = $this->createController($controller);
         } catch (\InvalidArgumentException $e) {
-            throw new \InvalidArgumentException(sprintf('The controller for URI "%s" is not callable. %s', $request->getPathInfo(), $e->getMessage()));
+            throw new \InvalidArgumentException(sprintf('The controller for URI "%s" is not callable: '.$e->getMessage(), $request->getPathInfo()), 0, $e);
         }
 
         if (!\is_callable($callable)) {
-            throw new \InvalidArgumentException(sprintf('The controller for URI "%s" is not callable. %s', $request->getPathInfo(), $this->getControllerError($callable)));
+            throw new \InvalidArgumentException(sprintf('The controller for URI "%s" is not callable: '.$this->getControllerError($callable), $request->getPathInfo()));
         }
 
         return $callable;
diff --git a/vendor/symfony/http-kernel/ControllerMetadata/ArgumentMetadata.php b/vendor/symfony/http-kernel/ControllerMetadata/ArgumentMetadata.php
index e73b848e6..6fc7e7034 100644
--- a/vendor/symfony/http-kernel/ControllerMetadata/ArgumentMetadata.php
+++ b/vendor/symfony/http-kernel/ControllerMetadata/ArgumentMetadata.php
@@ -99,7 +99,7 @@ class ArgumentMetadata
     public function getDefaultValue()
     {
         if (!$this->hasDefaultValue) {
-            throw new \LogicException(sprintf('Argument $%s does not have a default value. Use %s::hasDefaultValue() to avoid this exception.', $this->name, __CLASS__));
+            throw new \LogicException(sprintf('Argument $%s does not have a default value. Use "%s::hasDefaultValue()" to avoid this exception.', $this->name, __CLASS__));
         }
 
         return $this->defaultValue;
diff --git a/vendor/symfony/http-kernel/DataCollector/DumpDataCollector.php b/vendor/symfony/http-kernel/DataCollector/DumpDataCollector.php
index 6ed9abea5..d9f381b3d 100644
--- a/vendor/symfony/http-kernel/DataCollector/DumpDataCollector.php
+++ b/vendor/symfony/http-kernel/DataCollector/DumpDataCollector.php
@@ -198,7 +198,7 @@ class DumpDataCollector extends DataCollector implements DataDumperInterface
             $dumper = new HtmlDumper($data, $this->charset);
             $dumper->setDisplayOptions(['fileLinkFormat' => $this->fileLinkFormat]);
         } else {
-            throw new \InvalidArgumentException(sprintf('Invalid dump format: %s', $format));
+            throw new \InvalidArgumentException(sprintf('Invalid dump format: "%s".', $format));
         }
         $dumps = [];
 
diff --git a/vendor/symfony/http-kernel/DataCollector/LoggerDataCollector.php b/vendor/symfony/http-kernel/DataCollector/LoggerDataCollector.php
index 9314e432e..3bce904cc 100644
--- a/vendor/symfony/http-kernel/DataCollector/LoggerDataCollector.php
+++ b/vendor/symfony/http-kernel/DataCollector/LoggerDataCollector.php
@@ -179,7 +179,7 @@ class LoggerDataCollector extends DataCollector implements LateDataCollectorInte
                 continue;
             }
 
-            $message = $log['message'];
+            $message = '_'.$log['message'];
             $exception = $log['context']['exception'];
 
             if ($exception instanceof SilencedErrorContext) {
diff --git a/vendor/symfony/http-kernel/EventListener/DebugHandlersListener.php b/vendor/symfony/http-kernel/EventListener/DebugHandlersListener.php
index 8ed6a10e5..0e672a299 100644
--- a/vendor/symfony/http-kernel/EventListener/DebugHandlersListener.php
+++ b/vendor/symfony/http-kernel/EventListener/DebugHandlersListener.php
@@ -15,6 +15,7 @@ use Psr\Log\LoggerInterface;
 use Symfony\Component\Console\ConsoleEvents;
 use Symfony\Component\Console\Event\ConsoleEvent;
 use Symfony\Component\Console\Output\ConsoleOutputInterface;
+use Symfony\Component\Debug\ErrorHandler as LegacyErrorHandler;
 use Symfony\Component\Debug\Exception\FatalThrowableError;
 use Symfony\Component\ErrorHandler\ErrorHandler;
 use Symfony\Component\EventDispatcher\Event;
@@ -66,6 +67,9 @@ class DebugHandlersListener implements EventSubscriberInterface
      */
     public function configure(Event $event = null)
     {
+        if ($event instanceof ConsoleEvent && !\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true)) {
+            return;
+        }
         if (!$event instanceof KernelEvent ? !$this->firstCall : !$event->isMasterRequest()) {
             return;
         }
@@ -76,7 +80,7 @@ class DebugHandlersListener implements EventSubscriberInterface
         restore_exception_handler();
 
         if ($this->logger || null !== $this->throwAt) {
-            if ($handler instanceof ErrorHandler) {
+            if ($handler instanceof ErrorHandler || $handler instanceof LegacyErrorHandler) {
                 if ($this->logger) {
                     $handler->setDefaultLogger($this->logger, $this->levels);
                     if (\is_array($this->levels)) {
@@ -135,7 +139,7 @@ class DebugHandlersListener implements EventSubscriberInterface
             }
         }
         if ($this->exceptionHandler) {
-            if ($handler instanceof ErrorHandler) {
+            if ($handler instanceof ErrorHandler || $handler instanceof LegacyErrorHandler) {
                 $handler->setExceptionHandler($this->exceptionHandler);
             }
             $this->exceptionHandler = null;
@@ -146,7 +150,7 @@ class DebugHandlersListener implements EventSubscriberInterface
     {
         $events = [KernelEvents::REQUEST => ['configure', 2048]];
 
-        if ('cli' === \PHP_SAPI && \defined('Symfony\Component\Console\ConsoleEvents::COMMAND')) {
+        if (\defined('Symfony\Component\Console\ConsoleEvents::COMMAND')) {
             $events[ConsoleEvents::COMMAND] = ['configure', 2048];
         }
 
diff --git a/vendor/symfony/http-kernel/EventListener/TranslatorListener.php b/vendor/symfony/http-kernel/EventListener/TranslatorListener.php
index d28eee2b1..e276b3bd7 100644
--- a/vendor/symfony/http-kernel/EventListener/TranslatorListener.php
+++ b/vendor/symfony/http-kernel/EventListener/TranslatorListener.php
@@ -40,7 +40,7 @@ class TranslatorListener implements EventSubscriberInterface
     public function __construct($translator, RequestStack $requestStack)
     {
         if (!$translator instanceof TranslatorInterface && !$translator instanceof LocaleAwareInterface) {
-            throw new \TypeError(sprintf('Argument 1 passed to %s() must be an instance of %s, %s given.', __METHOD__, LocaleAwareInterface::class, \is_object($translator) ? \get_class($translator) : \gettype($translator)));
+            throw new \TypeError(sprintf('Argument 1 passed to "%s()" must be an instance of "%s", "%s" given.', __METHOD__, LocaleAwareInterface::class, \is_object($translator) ? \get_class($translator) : \gettype($translator)));
         }
         $this->translator = $translator;
         $this->requestStack = $requestStack;
diff --git a/vendor/symfony/http-kernel/Fragment/FragmentHandler.php b/vendor/symfony/http-kernel/Fragment/FragmentHandler.php
index 624f57847..e981291b8 100644
--- a/vendor/symfony/http-kernel/Fragment/FragmentHandler.php
+++ b/vendor/symfony/http-kernel/Fragment/FragmentHandler.php
@@ -98,7 +98,7 @@ class FragmentHandler
     protected function deliver(Response $response)
     {
         if (!$response->isSuccessful()) {
-            throw new \RuntimeException(sprintf('Error when rendering "%s" (Status code is %s).', $this->requestStack->getCurrentRequest()->getUri(), $response->getStatusCode()));
+            throw new \RuntimeException(sprintf('Error when rendering "%s" (Status code is %d).', $this->requestStack->getCurrentRequest()->getUri(), $response->getStatusCode()));
         }
 
         if (!$response instanceof StreamedResponse) {
diff --git a/vendor/symfony/http-kernel/Fragment/HIncludeFragmentRenderer.php b/vendor/symfony/http-kernel/Fragment/HIncludeFragmentRenderer.php
index 7859c3684..5b01fec47 100644
--- a/vendor/symfony/http-kernel/Fragment/HIncludeFragmentRenderer.php
+++ b/vendor/symfony/http-kernel/Fragment/HIncludeFragmentRenderer.php
@@ -57,7 +57,7 @@ class HIncludeFragmentRenderer extends RoutableFragmentRenderer
     public function setTemplating($templating)
     {
         if (null !== $templating && !$templating instanceof EngineInterface && !$templating instanceof Environment) {
-            throw new \InvalidArgumentException('The hinclude rendering strategy needs an instance of Twig\Environment or Symfony\Component\Templating\EngineInterface');
+            throw new \InvalidArgumentException('The hinclude rendering strategy needs an instance of Twig\Environment or Symfony\Component\Templating\EngineInterface.');
         }
 
         if ($templating instanceof EngineInterface) {
diff --git a/vendor/symfony/http-kernel/HttpCache/AbstractSurrogate.php b/vendor/symfony/http-kernel/HttpCache/AbstractSurrogate.php
index 9b4541793..472d87e48 100644
--- a/vendor/symfony/http-kernel/HttpCache/AbstractSurrogate.php
+++ b/vendor/symfony/http-kernel/HttpCache/AbstractSurrogate.php
@@ -96,7 +96,7 @@ abstract class AbstractSurrogate implements SurrogateInterface
             $response = $cache->handle($subRequest, HttpKernelInterface::SUB_REQUEST, true);
 
             if (!$response->isSuccessful()) {
-                throw new \RuntimeException(sprintf('Error when rendering "%s" (Status code is %s).', $subRequest->getUri(), $response->getStatusCode()));
+                throw new \RuntimeException(sprintf('Error when rendering "%s" (Status code is %d).', $subRequest->getUri(), $response->getStatusCode()));
             }
 
             return $response->getContent();
diff --git a/vendor/symfony/http-kernel/HttpCache/HttpCache.php b/vendor/symfony/http-kernel/HttpCache/HttpCache.php
index 716dcac09..6c4715802 100644
--- a/vendor/symfony/http-kernel/HttpCache/HttpCache.php
+++ b/vendor/symfony/http-kernel/HttpCache/HttpCache.php
@@ -350,6 +350,10 @@ class HttpCache implements HttpKernelInterface, TerminableInterface
             return $this->validate($request, $entry, $catch);
         }
 
+        if ($entry->headers->hasCacheControlDirective('no-cache')) {
+            return $this->validate($request, $entry, $catch);
+        }
+
         $this->record($request, 'fresh');
 
         $entry->headers->set('Age', $entry->getAge());
@@ -472,13 +476,37 @@ class HttpCache implements HttpKernelInterface, TerminableInterface
         // always a "master" request (as the real master request can be in cache)
         $response = SubRequestHandler::handle($this->kernel, $request, HttpKernelInterface::MASTER_REQUEST, $catch);
 
-        // we don't implement the stale-if-error on Requests, which is nonetheless part of the RFC
-        if (null !== $entry && \in_array($response->getStatusCode(), [500, 502, 503, 504])) {
+        /*
+         * Support stale-if-error given on Responses or as a config option.
+         * RFC 7234 summarizes in Section 4.2.4 (but also mentions with the individual
+         * Cache-Control directives) that
+         *
+         *      A cache MUST NOT generate a stale response if it is prohibited by an
+         *      explicit in-protocol directive (e.g., by a "no-store" or "no-cache"
+         *      cache directive, a "must-revalidate" cache-response-directive, or an
+         *      applicable "s-maxage" or "proxy-revalidate" cache-response-directive;
+         *      see Section 5.2.2).
+         *
+         * https://tools.ietf.org/html/rfc7234#section-4.2.4
+         *
+         * We deviate from this in one detail, namely that we *do* serve entries in the
+         * stale-if-error case even if they have a `s-maxage` Cache-Control directive.
+         */
+        if (null !== $entry
+            && \in_array($response->getStatusCode(), [500, 502, 503, 504])
+            && !$entry->headers->hasCacheControlDirective('no-cache')
+            && !$entry->mustRevalidate()
+        ) {
             if (null === $age = $entry->headers->getCacheControlDirective('stale-if-error')) {
                 $age = $this->options['stale_if_error'];
             }
 
-            if (abs($entry->getTtl()) < $age) {
+            /*
+             * stale-if-error gives the (extra) time that the Response may be used *after* it has become stale.
+             * So we compare the time the $entry has been sitting in the cache already with the
+             * time it was fresh plus the allowed grace period.
+             */
+            if ($entry->getAge() <= $entry->getMaxAge() + $age) {
                 $this->record($request, 'stale-if-error');
 
                 return $entry;
diff --git a/vendor/symfony/http-kernel/HttpCache/ResponseCacheStrategy.php b/vendor/symfony/http-kernel/HttpCache/ResponseCacheStrategy.php
index 39038a932..c30fface6 100644
--- a/vendor/symfony/http-kernel/HttpCache/ResponseCacheStrategy.php
+++ b/vendor/symfony/http-kernel/HttpCache/ResponseCacheStrategy.php
@@ -110,8 +110,6 @@ class ResponseCacheStrategy implements ResponseCacheStrategyInterface
         $response->headers->set('Age', $this->age);
 
         if ($this->isNotCacheableResponseEmbedded) {
-            $response->setExpires($response->getDate());
-
             if ($this->flagDirectives['no-store']) {
                 $response->headers->set('Cache-Control', 'no-cache, no-store, must-revalidate');
             } else {
diff --git a/vendor/symfony/http-kernel/HttpClientKernel.php b/vendor/symfony/http-kernel/HttpClientKernel.php
index c8421a4b1..912ce313f 100644
--- a/vendor/symfony/http-kernel/HttpClientKernel.php
+++ b/vendor/symfony/http-kernel/HttpClientKernel.php
@@ -21,6 +21,9 @@ use Symfony\Component\Mime\Part\Multipart\FormDataPart;
 use Symfony\Component\Mime\Part\TextPart;
 use Symfony\Contracts\HttpClient\HttpClientInterface;
 
+// Help opcache.preload discover always-needed symbols
+class_exists(ResponseHeaderBag::class);
+
 /**
  * An implementation of a Symfony HTTP kernel using a "real" HTTP client.
  *
diff --git a/vendor/symfony/http-kernel/HttpKernel.php b/vendor/symfony/http-kernel/HttpKernel.php
index f1b601361..681e96321 100644
--- a/vendor/symfony/http-kernel/HttpKernel.php
+++ b/vendor/symfony/http-kernel/HttpKernel.php
@@ -33,6 +33,18 @@ use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
 use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
 use Symfony\Contracts\EventDispatcher\EventDispatcherInterface;
 
+// Help opcache.preload discover always-needed symbols
+class_exists(LegacyEventDispatcherProxy::class);
+class_exists(ControllerArgumentsEvent::class);
+class_exists(ControllerEvent::class);
+class_exists(ExceptionEvent::class);
+class_exists(FinishRequestEvent::class);
+class_exists(RequestEvent::class);
+class_exists(ResponseEvent::class);
+class_exists(TerminateEvent::class);
+class_exists(ViewEvent::class);
+class_exists(KernelEvents::class);
+
 /**
  * HttpKernel notifies events to convert a Request object to a Response one.
  *
diff --git a/vendor/symfony/http-kernel/Kernel.php b/vendor/symfony/http-kernel/Kernel.php
index 737e2777f..9cb3a034d 100644
--- a/vendor/symfony/http-kernel/Kernel.php
+++ b/vendor/symfony/http-kernel/Kernel.php
@@ -76,11 +76,11 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
 
     private static $freshCache = [];
 
-    const VERSION = '4.4.1';
-    const VERSION_ID = 40401;
+    const VERSION = '4.4.8';
+    const VERSION_ID = 40408;
     const MAJOR_VERSION = 4;
     const MINOR_VERSION = 4;
-    const RELEASE_VERSION = 1;
+    const RELEASE_VERSION = 8;
     const EXTRA_VERSION = '';
 
     const END_OF_MAINTENANCE = '11/2022';
@@ -228,10 +228,10 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
     public function getBundle($name)
     {
         if (!isset($this->bundles[$name])) {
-            $class = \get_class($this);
+            $class = static::class;
             $class = 'c' === $class[0] && 0 === strpos($class, "class@anonymous\0") ? get_parent_class($class).'@anonymous' : $class;
 
-            throw new \InvalidArgumentException(sprintf('Bundle "%s" does not exist or it is not enabled. Maybe you forgot to add it in the registerBundles() method of your %s.php file?', $name, $class));
+            throw new \InvalidArgumentException(sprintf('Bundle "%s" does not exist or it is not enabled. Maybe you forgot to add it in the "registerBundles()" method of your "%s.php" file?', $name, $class));
         }
 
         return $this->bundles[$name];
@@ -449,7 +449,7 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
         foreach ($this->registerBundles() as $bundle) {
             $name = $bundle->getName();
             if (isset($this->bundles[$name])) {
-                throw new \LogicException(sprintf('Trying to register two bundles with the same name "%s"', $name));
+                throw new \LogicException(sprintf('Trying to register two bundles with the same name "%s".', $name));
             }
             $this->bundles[$name] = $bundle;
         }
@@ -473,7 +473,7 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
      */
     protected function getContainerClass()
     {
-        $class = \get_class($this);
+        $class = static::class;
         $class = 'c' === $class[0] && 0 === strpos($class, "class@anonymous\0") ? get_parent_class($class).str_replace('.', '_', ContainerBuilder::hash($class)) : $class;
         $class = $this->name.str_replace('\\', '_', $class).ucfirst($this->environment).($this->debug ? 'Debug' : '').'Container';
 
@@ -510,7 +510,7 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
         $cachePath = $cache->getPath();
 
         // Silence E_WARNING to ignore "include" failures - don't use "@" to prevent silencing fatal errors
-        $errorLevel = error_reporting(\E_ALL ^ \E_WARNING);
+        $errorLevel = error_reporting(E_ALL ^ E_WARNING);
 
         try {
             if (file_exists($cachePath) && \is_object($this->container = include $cachePath)
@@ -530,47 +530,20 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
         try {
             is_dir($cacheDir) ?: mkdir($cacheDir, 0777, true);
 
-            if ($lock = fopen($cachePath, 'w')) {
-                chmod($cachePath, 0666 & ~umask());
+            if ($lock = fopen($cachePath.'.lock', 'w')) {
                 flock($lock, LOCK_EX | LOCK_NB, $wouldBlock);
 
                 if (!flock($lock, $wouldBlock ? LOCK_SH : LOCK_EX)) {
                     fclose($lock);
-                } else {
-                    $cache = new class($cachePath, $this->debug) extends ConfigCache {
-                        public $lock;
+                    $lock = null;
+                } elseif (!\is_object($this->container = include $cachePath)) {
+                    $this->container = null;
+                } elseif (!$oldContainer || \get_class($this->container) !== $oldContainer->name) {
+                    flock($lock, LOCK_UN);
+                    fclose($lock);
+                    $this->container->set('kernel', $this);
 
-                        public function write($content, array $metadata = null)
-                        {
-                            rewind($this->lock);
-                            ftruncate($this->lock, 0);
-                            fwrite($this->lock, $content);
-
-                            if (null !== $metadata) {
-                                file_put_contents($this->getPath().'.meta', serialize($metadata));
-                                @chmod($this->getPath().'.meta', 0666 & ~umask());
-                            }
-
-                            if (\function_exists('opcache_invalidate') && filter_var(ini_get('opcache.enable'), FILTER_VALIDATE_BOOLEAN)) {
-                                opcache_invalidate($this->getPath(), true);
-                            }
-                        }
-
-                        public function __destruct()
-                        {
-                            flock($this->lock, LOCK_UN);
-                            fclose($this->lock);
-                        }
-                    };
-                    $cache->lock = $lock;
-
-                    if (!\is_object($this->container = include $cachePath)) {
-                        $this->container = null;
-                    } elseif (!$oldContainer || \get_class($this->container) !== $oldContainer->name) {
-                        $this->container->set('kernel', $this);
-
-                        return;
-                    }
+                    return;
                 }
             }
         } catch (\Throwable $e) {
@@ -634,7 +607,12 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
         }
 
         $this->dumpContainer($cache, $container, $class, $this->getContainerBaseClass());
-        unset($cache);
+
+        if ($lock) {
+            flock($lock, LOCK_UN);
+            fclose($lock);
+        }
+
         $this->container = require $cachePath;
         $this->container->set('kernel', $this);
 
@@ -710,10 +688,10 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
         foreach (['cache' => $this->warmupDir ?: $this->getCacheDir(), 'logs' => $this->getLogDir()] as $name => $dir) {
             if (!is_dir($dir)) {
                 if (false === @mkdir($dir, 0777, true) && !is_dir($dir)) {
-                    throw new \RuntimeException(sprintf("Unable to create the %s directory (%s)\n", $name, $dir));
+                    throw new \RuntimeException(sprintf('Unable to create the "%s" directory (%s).', $name, $dir));
                 }
             } elseif (!is_writable($dir)) {
-                throw new \RuntimeException(sprintf("Unable to write in the %s directory (%s)\n", $name, $dir));
+                throw new \RuntimeException(sprintf('Unable to write in the "%s" directory (%s).', $name, $dir));
             }
         }
 
@@ -802,6 +780,7 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
             'as_files' => true,
             'debug' => $this->debug,
             'build_time' => $container->hasParameter('kernel.container_build_time') ? $container->getParameter('kernel.container_build_time') : time(),
+            'preload_classes' => array_map('get_class', $this->bundles),
         ]);
 
         $rootCode = array_pop($content);
diff --git a/vendor/symfony/http-kernel/LICENSE b/vendor/symfony/http-kernel/LICENSE
index a677f4376..9e936ec04 100644
--- a/vendor/symfony/http-kernel/LICENSE
+++ b/vendor/symfony/http-kernel/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2019 Fabien Potencier
+Copyright (c) 2004-2020 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/vendor/symfony/http-kernel/Log/Logger.php b/vendor/symfony/http-kernel/Log/Logger.php
index c27bb3f07..e3badc367 100644
--- a/vendor/symfony/http-kernel/Log/Logger.php
+++ b/vendor/symfony/http-kernel/Log/Logger.php
@@ -79,7 +79,7 @@ class Logger extends AbstractLogger
         }
 
         $formatter = $this->formatter;
-        fwrite($this->handle, $formatter($level, $message, $context));
+        @fwrite($this->handle, $formatter($level, $message, $context));
     }
 
     private function format(string $level, string $message, array $context): string
@@ -101,6 +101,6 @@ class Logger extends AbstractLogger
             $message = strtr($message, $replacements);
         }
 
-        return sprintf('%s [%s] %s', date(\DateTime::RFC3339), $level, $message).\PHP_EOL;
+        return sprintf('%s [%s] %s', date(\DateTime::RFC3339), $level, $message).PHP_EOL;
     }
 }
diff --git a/vendor/symfony/http-kernel/README.md b/vendor/symfony/http-kernel/README.md
index cc5e74b6b..abdaf513f 100644
--- a/vendor/symfony/http-kernel/README.md
+++ b/vendor/symfony/http-kernel/README.md
@@ -9,7 +9,7 @@ an advanced CMS system (Drupal).
 Resources
 ---------
 
-  * [Documentation](https://symfony.com/doc/current/components/http_kernel/index.html)
+  * [Documentation](https://symfony.com/doc/current/components/http_kernel.html)
   * [Contributing](https://symfony.com/doc/current/contributing/index.html)
   * [Report issues](https://github.com/symfony/symfony/issues) and
     [send Pull Requests](https://github.com/symfony/symfony/pulls)
diff --git a/vendor/symfony/mime/.gitattributes b/vendor/symfony/mime/.gitattributes
deleted file mode 100644
index ebb928704..000000000
--- a/vendor/symfony/mime/.gitattributes
+++ /dev/null
@@ -1,3 +0,0 @@
-/Tests export-ignore
-/phpunit.xml.dist export-ignore
-/.gitignore export-ignore
diff --git a/vendor/symfony/mime/Crypto/SMime.php b/vendor/symfony/mime/Crypto/SMime.php
index 55941be9f..ad88c1987 100644
--- a/vendor/symfony/mime/Crypto/SMime.php
+++ b/vendor/symfony/mime/Crypto/SMime.php
@@ -24,7 +24,7 @@ abstract class SMime
     protected function normalizeFilePath(string $path): string
     {
         if (!file_exists($path)) {
-            throw new RuntimeException(sprintf('File does not exist: %s.', $path));
+            throw new RuntimeException(sprintf('File does not exist: "%s".', $path));
         }
 
         return 'file://'.str_replace('\\', '/', realpath($path));
@@ -65,7 +65,7 @@ abstract class SMime
     protected function getStreamIterator($stream): iterable
     {
         while (!feof($stream)) {
-            yield fread($stream, 16372);
+            yield str_replace("\n", "\r\n", str_replace("\r\n", "\n", fread($stream, 16372)));
         }
     }
 
diff --git a/vendor/symfony/mime/Encoder/Base64ContentEncoder.php b/vendor/symfony/mime/Encoder/Base64ContentEncoder.php
index 338490b3e..cb7f91167 100644
--- a/vendor/symfony/mime/Encoder/Base64ContentEncoder.php
+++ b/vendor/symfony/mime/Encoder/Base64ContentEncoder.php
@@ -24,7 +24,7 @@ final class Base64ContentEncoder extends Base64Encoder implements ContentEncoder
             throw new \TypeError(sprintf('Method "%s" takes a stream as a first argument.', __METHOD__));
         }
 
-        $filter = stream_filter_append($stream, 'convert.base64-encode', \STREAM_FILTER_READ, [
+        $filter = stream_filter_append($stream, 'convert.base64-encode', STREAM_FILTER_READ, [
             'line-length' => 0 >= $maxLineLength || 76 < $maxLineLength ? 76 : $maxLineLength,
             'line-break-chars' => "\r\n",
         ]);
diff --git a/vendor/symfony/mime/Encoder/IdnAddressEncoder.php b/vendor/symfony/mime/Encoder/IdnAddressEncoder.php
index 1c5e32c06..cdd5d4cad 100644
--- a/vendor/symfony/mime/Encoder/IdnAddressEncoder.php
+++ b/vendor/symfony/mime/Encoder/IdnAddressEncoder.php
@@ -20,9 +20,7 @@ use Symfony\Component\Mime\Exception\AddressEncoderException;
  * SMTP servers.
  *
  * This encoder does not support email addresses with non-ASCII characters in
- * local-part (the substring before @). To send to such addresses, use
- * Utf8AddressEncoder together with SmtpUtf8Handler. Your outbound SMTP server must support
- * the SMTPUTF8 extension.
+ * local-part (the substring before @).
  *
  * @author Christian Schmidt
  */
diff --git a/vendor/symfony/mime/Encoder/QpEncoder.php b/vendor/symfony/mime/Encoder/QpEncoder.php
index ff9b0cc12..4f249e069 100644
--- a/vendor/symfony/mime/Encoder/QpEncoder.php
+++ b/vendor/symfony/mime/Encoder/QpEncoder.php
@@ -89,7 +89,7 @@ class QpEncoder implements EncoderInterface
 
     public function __construct()
     {
-        $id = \get_class($this);
+        $id = static::class;
         if (!isset(self::$safeMapShare[$id])) {
             $this->initSafeMap();
             self::$safeMapShare[$id] = $this->safeMap;
diff --git a/vendor/symfony/mime/LICENSE b/vendor/symfony/mime/LICENSE
index 9a9a61b1c..d53be6835 100644
--- a/vendor/symfony/mime/LICENSE
+++ b/vendor/symfony/mime/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2010-2019 Fabien Potencier
+Copyright (c) 2010-2020 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/vendor/symfony/mime/Message.php b/vendor/symfony/mime/Message.php
index 5b4e67f1d..94a49764e 100644
--- a/vendor/symfony/mime/Message.php
+++ b/vendor/symfony/mime/Message.php
@@ -74,7 +74,10 @@ class Message extends RawMessage
         $headers = clone $this->headers;
 
         if (!$headers->has('From')) {
-            throw new LogicException('An email must have a "From" header.');
+            if (!$headers->has('Sender')) {
+                throw new LogicException('An email must have a "From" or a "Sender" header.');
+            }
+            $headers->addMailboxListHeader('From', [$headers->get('Sender')->getAddress()]);
         }
 
         $headers->addTextHeader('MIME-Version', '1.0');
@@ -119,8 +122,12 @@ class Message extends RawMessage
 
     public function ensureValidity()
     {
-        if (!$this->headers->has('From')) {
-            throw new LogicException('An email must have a "From" header.');
+        if (!$this->headers->has('To')) {
+            throw new LogicException('An email must have a "To" header.');
+        }
+
+        if (!$this->headers->has('From') && !$this->headers->has('Sender')) {
+            throw new LogicException('An email must have a "From" or a "Sender" header.');
         }
 
         parent::ensureValidity();
@@ -133,7 +140,7 @@ class Message extends RawMessage
         } elseif ($this->headers->has('From')) {
             $sender = $this->headers->get('From')->getAddresses()[0];
         } else {
-            throw new LogicException('An email must have a "From" or a "Sender" header to compute a Messsage ID.');
+            throw new LogicException('An email must have a "From" or a "Sender" header.');
         }
 
         return bin2hex(random_bytes(16)).strstr($sender->getAddress(), '@');
diff --git a/vendor/symfony/mime/Part/AbstractMultipartPart.php b/vendor/symfony/mime/Part/AbstractMultipartPart.php
index 48b862023..685d25062 100644
--- a/vendor/symfony/mime/Part/AbstractMultipartPart.php
+++ b/vendor/symfony/mime/Part/AbstractMultipartPart.php
@@ -91,7 +91,7 @@ abstract class AbstractMultipartPart extends AbstractPart
     private function getBoundary(): string
     {
         if (null === $this->boundary) {
-            $this->boundary = '_=_symfony_'.time().'_'.bin2hex(random_bytes(16)).'_=_';
+            $this->boundary = strtr(base64_encode(random_bytes(6)), '+/', '-_');
         }
 
         return $this->boundary;
diff --git a/vendor/symfony/mime/Part/DataPart.php b/vendor/symfony/mime/Part/DataPart.php
index 423185fef..c6f1cb974 100644
--- a/vendor/symfony/mime/Part/DataPart.php
+++ b/vendor/symfony/mime/Part/DataPart.php
@@ -57,7 +57,7 @@ class DataPart extends TextPart
         }
 
         if (false === $handle = @fopen($path, 'r', false)) {
-            throw new InvalidArgumentException(sprintf('Unable to open path "%s"', $path));
+            throw new InvalidArgumentException(sprintf('Unable to open path "%s".', $path));
         }
         $p = new self($handle, $name ?: basename($path), $contentType);
         $p->handle = $handle;
diff --git a/vendor/symfony/mime/Test/Constraint/EmailAttachmentCount.php b/vendor/symfony/mime/Test/Constraint/EmailAttachmentCount.php
index b219f28b9..c0adbe3a0 100644
--- a/vendor/symfony/mime/Test/Constraint/EmailAttachmentCount.php
+++ b/vendor/symfony/mime/Test/Constraint/EmailAttachmentCount.php
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Mime\Test\Constraint;
 
 use PHPUnit\Framework\Constraint\Constraint;
+use Symfony\Component\Mime\Message;
 use Symfony\Component\Mime\RawMessage;
 
 final class EmailAttachmentCount extends Constraint
diff --git a/vendor/symfony/mime/Test/Constraint/EmailHtmlBodyContains.php b/vendor/symfony/mime/Test/Constraint/EmailHtmlBodyContains.php
index 896519514..3c61376e1 100644
--- a/vendor/symfony/mime/Test/Constraint/EmailHtmlBodyContains.php
+++ b/vendor/symfony/mime/Test/Constraint/EmailHtmlBodyContains.php
@@ -12,6 +12,8 @@
 namespace Symfony\Component\Mime\Test\Constraint;
 
 use PHPUnit\Framework\Constraint\Constraint;
+use Symfony\Component\Mime\Message;
+use Symfony\Component\Mime\RawMessage;
 
 final class EmailHtmlBodyContains extends Constraint
 {
diff --git a/vendor/symfony/mime/Test/Constraint/EmailTextBodyContains.php b/vendor/symfony/mime/Test/Constraint/EmailTextBodyContains.php
index b5e87f96f..063d96306 100644
--- a/vendor/symfony/mime/Test/Constraint/EmailTextBodyContains.php
+++ b/vendor/symfony/mime/Test/Constraint/EmailTextBodyContains.php
@@ -12,6 +12,8 @@
 namespace Symfony\Component\Mime\Test\Constraint;
 
 use PHPUnit\Framework\Constraint\Constraint;
+use Symfony\Component\Mime\Message;
+use Symfony\Component\Mime\RawMessage;
 
 final class EmailTextBodyContains extends Constraint
 {
diff --git a/vendor/symfony/polyfill-ctype/bootstrap.php b/vendor/symfony/polyfill-ctype/bootstrap.php
index 14d1d0faa..8d6fc4bec 100644
--- a/vendor/symfony/polyfill-ctype/bootstrap.php
+++ b/vendor/symfony/polyfill-ctype/bootstrap.php
@@ -13,14 +13,34 @@ use Symfony\Polyfill\Ctype as p;
 
 if (!function_exists('ctype_alnum')) {
     function ctype_alnum($text) { return p\Ctype::ctype_alnum($text); }
+}
+if (!function_exists('ctype_alpha')) {
     function ctype_alpha($text) { return p\Ctype::ctype_alpha($text); }
+}
+if (!function_exists('ctype_cntrl')) {
     function ctype_cntrl($text) { return p\Ctype::ctype_cntrl($text); }
+}
+if (!function_exists('ctype_digit')) {
     function ctype_digit($text) { return p\Ctype::ctype_digit($text); }
+}
+if (!function_exists('ctype_graph')) {
     function ctype_graph($text) { return p\Ctype::ctype_graph($text); }
+}
+if (!function_exists('ctype_lower')) {
     function ctype_lower($text) { return p\Ctype::ctype_lower($text); }
+}
+if (!function_exists('ctype_print')) {
     function ctype_print($text) { return p\Ctype::ctype_print($text); }
+}
+if (!function_exists('ctype_punct')) {
     function ctype_punct($text) { return p\Ctype::ctype_punct($text); }
+}
+if (!function_exists('ctype_space')) {
     function ctype_space($text) { return p\Ctype::ctype_space($text); }
+}
+if (!function_exists('ctype_upper')) {
     function ctype_upper($text) { return p\Ctype::ctype_upper($text); }
+}
+if (!function_exists('ctype_xdigit')) {
     function ctype_xdigit($text) { return p\Ctype::ctype_xdigit($text); }
 }
diff --git a/vendor/symfony/polyfill-ctype/composer.json b/vendor/symfony/polyfill-ctype/composer.json
index 2a2ea044b..8399aab35 100644
--- a/vendor/symfony/polyfill-ctype/composer.json
+++ b/vendor/symfony/polyfill-ctype/composer.json
@@ -28,7 +28,7 @@
     "minimum-stability": "dev",
     "extra": {
         "branch-alias": {
-            "dev-master": "1.13-dev"
+            "dev-master": "1.16-dev"
         }
     }
 }
diff --git a/vendor/symfony/polyfill-iconv/README.md b/vendor/symfony/polyfill-iconv/README.md
index 2421831c6..b0c8984cd 100644
--- a/vendor/symfony/polyfill-iconv/README.md
+++ b/vendor/symfony/polyfill-iconv/README.md
@@ -2,8 +2,8 @@ Symfony Polyfill / Iconv
 ========================
 
 This component provides a native PHP implementation of the
-[php.net/iconv](http://php.net/iconv) functions
-(short of [`ob_iconv_handler`](http://php.net/manual/en/function.ob-iconv-handler.php)).
+[php.net/iconv](https://php.net/iconv) functions
+(short of [`ob_iconv_handler`](https://php.net/ob-iconv-handler)).
 
 More information can be found in the
 [main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md).
diff --git a/vendor/symfony/polyfill-iconv/Resources/charset/translit.php b/vendor/symfony/polyfill-iconv/Resources/charset/translit.php
index 829ea1275..ed59858dc 100644
--- a/vendor/symfony/polyfill-iconv/Resources/charset/translit.php
+++ b/vendor/symfony/polyfill-iconv/Resources/charset/translit.php
@@ -866,6 +866,7 @@ static $data = array (
   '㋼' => '(ヰ)',
   '㋽' => '(ヱ)',
   '㋾' => '(ヲ)',
+  '㋿' => '令和',
   '㌀' => 'アパート',
   '㌁' => 'アルファ',
   '㌂' => 'アンペア',
@@ -3133,6 +3134,7 @@ static $data = array (
   '🈸' => '申',
   '🈹' => '割',
   '🈺' => '営',
+  '🈻' => '配',
   '🉀' => '〔本〕',
   '🉁' => '〔三〕',
   '🉂' => '〔二〕',
@@ -3878,6 +3880,104 @@ static $data = array (
   'ỽ' => 'v',
   'Ỿ' => 'Y',
   'ỿ' => 'y',
+  'Ⱡ' => 'L',
+  'ⱡ' => 'l',
+  'Ɫ' => 'L',
+  'Ᵽ' => 'P',
+  'Ɽ' => 'R',
+  'ⱥ' => 'a',
+  'ⱦ' => 't',
+  'Ⱨ' => 'H',
+  'ⱨ' => 'h',
+  'Ⱪ' => 'K',
+  'ⱪ' => 'k',
+  'Ⱬ' => 'Z',
+  'ⱬ' => 'z',
+  'Ɱ' => 'M',
+  'ⱱ' => 'v',
+  'Ⱳ' => 'W',
+  'ⱳ' => 'w',
+  'ⱴ' => 'v',
+  'ⱸ' => 'e',
+  'ⱺ' => 'o',
+  'Ȿ' => 'S',
+  'Ɀ' => 'Z',
+  'ꜰ' => 'F',
+  'ꜱ' => 'S',
+  'Ꜳ' => 'AA',
+  'ꜳ' => 'aa',
+  'Ꜵ' => 'AO',
+  'ꜵ' => 'ao',
+  'Ꜷ' => 'AU',
+  'ꜷ' => 'au',
+  'Ꜹ' => 'AV',
+  'ꜹ' => 'av',
+  'Ꜻ' => 'AV',
+  'ꜻ' => 'av',
+  'Ꜽ' => 'AY',
+  'ꜽ' => 'ay',
+  'Ꝁ' => 'K',
+  'ꝁ' => 'k',
+  'Ꝃ' => 'K',
+  'ꝃ' => 'k',
+  'Ꝅ' => 'K',
+  'ꝅ' => 'k',
+  'Ꝇ' => 'L',
+  'ꝇ' => 'l',
+  'Ꝉ' => 'L',
+  'ꝉ' => 'l',
+  'Ꝋ' => 'O',
+  'ꝋ' => 'o',
+  'Ꝍ' => 'O',
+  'ꝍ' => 'o',
+  'Ꝏ' => 'OO',
+  'ꝏ' => 'oo',
+  'Ꝑ' => 'P',
+  'ꝑ' => 'p',
+  'Ꝓ' => 'P',
+  'ꝓ' => 'p',
+  'Ꝕ' => 'P',
+  'ꝕ' => 'p',
+  'Ꝗ' => 'Q',
+  'ꝗ' => 'q',
+  'Ꝙ' => 'Q',
+  'ꝙ' => 'q',
+  'Ꝟ' => 'V',
+  'ꝟ' => 'v',
+  'Ꝡ' => 'VY',
+  'ꝡ' => 'vy',
+  'Ꝥ' => 'TH',
+  'ꝥ' => 'th',
+  'Ꝧ' => 'TH',
+  'ꝧ' => 'th',
+  'ꝱ' => 'd',
+  'ꝲ' => 'l',
+  'ꝳ' => 'm',
+  'ꝴ' => 'n',
+  'ꝵ' => 'r',
+  'ꝶ' => 'R',
+  'ꝷ' => 't',
+  'Ꝺ' => 'D',
+  'ꝺ' => 'd',
+  'Ꝼ' => 'F',
+  'ꝼ' => 'f',
+  'Ꞇ' => 'T',
+  'ꞇ' => 't',
+  'Ꞑ' => 'N',
+  'ꞑ' => 'n',
+  'Ꞓ' => 'C',
+  'ꞓ' => 'c',
+  'Ꞡ' => 'G',
+  'ꞡ' => 'g',
+  'Ꞣ' => 'K',
+  'ꞣ' => 'k',
+  'Ꞥ' => 'N',
+  'ꞥ' => 'n',
+  'Ꞧ' => 'R',
+  'ꞧ' => 'r',
+  'Ꞩ' => 'S',
+  'ꞩ' => 's',
+  'Ɦ' => 'H',
   '©' => '(C)',
   '®' => '(R)',
   '₠' => 'CE',
@@ -3887,8 +3987,28 @@ static $data = array (
   '₧' => 'Pts',
   '₺' => 'TL',
   '₹' => 'Rs',
+  '℗' => '(P)',
+  '℘' => 'P',
   '℞' => 'Rx',
   '〇' => '0',
+  ' ' => ' ',
+  ' ' => ' ',
+  ' ' => ' ',
+  ' ' => ' ',
+  ' ' => ' ',
+  ' ' => ' ',
+  ' ' => ' ',
+  ' ' => ' ',
+  ' ' => ' ',
+  ' ' => ' ',
+  ' ' => ' ',
+  'ʹ' => '\'',
+  'ʺ' => '"',
+  'ʻ' => '\'',
+  'ʼ' => '\'',
+  'ʽ' => '\'',
+  'ˈ' => '\'',
+  'ˋ' => '`',
   '‘' => '\'',
   '’' => '\'',
   '‚' => ',',
@@ -3904,6 +4024,7 @@ static $data = array (
   '»' => '>>',
   '‹' => '<',
   '›' => '>',
+  '­' => '-',
   '‐' => '-',
   '‑' => '-',
   '‒' => '-',
@@ -3912,6 +4033,12 @@ static $data = array (
   '―' => '-',
   '︱' => '-',
   '︲' => '-',
+  '˂' => '<',
+  '˃' => '>',
+  '˄' => '^',
+  'ˆ' => '^',
+  'ː' => ':',
+  '˜' => '~',
   '‖' => '||',
   '⁄' => '/',
   '⁅' => '[',
@@ -3952,6 +4079,8 @@ static $data = array (
   '﹈' => ']',
   '×' => '*',
   '÷' => '/',
+  '˖' => '+',
+  '˗' => '-',
   '−' => '-',
   '∕' => '/',
   '∖' => '\\',
diff --git a/vendor/symfony/polyfill-iconv/bootstrap.php b/vendor/symfony/polyfill-iconv/bootstrap.php
index 52747329d..f6ee93990 100644
--- a/vendor/symfony/polyfill-iconv/bootstrap.php
+++ b/vendor/symfony/polyfill-iconv/bootstrap.php
@@ -11,34 +11,70 @@
 
 use Symfony\Polyfill\Iconv as p;
 
-if (!function_exists('iconv')) {
+if (!defined('ICONV_IMPL')) {
     define('ICONV_IMPL', 'Symfony');
+}
+if (!defined('ICONV_VERSION')) {
     define('ICONV_VERSION', '1.0');
+}
+if (!defined('ICONV_MIME_DECODE_STRICT')) {
     define('ICONV_MIME_DECODE_STRICT', 1);
+}
+if (!defined('ICONV_MIME_DECODE_CONTINUE_ON_ERROR')) {
     define('ICONV_MIME_DECODE_CONTINUE_ON_ERROR', 2);
+}
 
+if (!function_exists('iconv')) {
     function iconv($from, $to, $s) { return p\Iconv::iconv($from, $to, $s); }
+}
+if (!function_exists('iconv_get_encoding')) {
     function iconv_get_encoding($type = 'all') { return p\Iconv::iconv_get_encoding($type); }
+}
+if (!function_exists('iconv_set_encoding')) {
     function iconv_set_encoding($type, $charset) { return p\Iconv::iconv_set_encoding($type, $charset); }
+}
+if (!function_exists('iconv_mime_encode')) {
     function iconv_mime_encode($name, $value, $pref = null) { return p\Iconv::iconv_mime_encode($name, $value, $pref); }
+}
+if (!function_exists('iconv_mime_decode_headers')) {
     function iconv_mime_decode_headers($encodedHeaders, $mode = 0, $enc = null) { return p\Iconv::iconv_mime_decode_headers($encodedHeaders, $mode, $enc); }
+}
 
-    if (extension_loaded('mbstring')) {
+if (extension_loaded('mbstring')) {
+    if (!function_exists('iconv_strlen')) {
         function iconv_strlen($s, $enc = null) { null === $enc and $enc = p\Iconv::$internalEncoding; return mb_strlen($s, $enc); }
+    }
+    if (!function_exists('iconv_strpos')) {
         function iconv_strpos($s, $needle, $offset = 0, $enc = null) { null === $enc and $enc = p\Iconv::$internalEncoding; return mb_strpos($s, $needle, $offset, $enc); }
+    }
+    if (!function_exists('iconv_strrpos')) {
         function iconv_strrpos($s, $needle, $enc = null) { null === $enc and $enc = p\Iconv::$internalEncoding; return mb_strrpos($s, $needle, 0, $enc); }
+    }
+    if (!function_exists('iconv_substr')) {
         function iconv_substr($s, $start, $length = 2147483647, $enc = null) { null === $enc and $enc = p\Iconv::$internalEncoding; return mb_substr($s, $start, $length, $enc); }
+    }
+    if (!function_exists('iconv_mime_decode')) {
         function iconv_mime_decode($encodedHeaders, $mode = 0, $enc = null) { null === $enc and $enc = p\Iconv::$internalEncoding; return mb_decode_mimeheader($encodedHeaders, $mode, $enc); }
-    } else {
+    }
+} else {
+    if (!function_exists('iconv_strlen')) {
         if (extension_loaded('xml')) {
             function iconv_strlen($s, $enc = null) { return p\Iconv::strlen1($s, $enc); }
         } else {
             function iconv_strlen($s, $enc = null) { return p\Iconv::strlen2($s, $enc); }
         }
+    }
 
+    if (!function_exists('iconv_strpos')) {
         function iconv_strpos($s, $needle, $offset = 0, $enc = null) { return p\Iconv::iconv_strpos($s, $needle, $offset, $enc); }
+    }
+    if (!function_exists('iconv_strrpos')) {
         function iconv_strrpos($s, $needle, $enc = null) { return p\Iconv::iconv_strrpos($s, $needle, $enc); }
+    }
+    if (!function_exists('iconv_substr')) {
         function iconv_substr($s, $start, $length = 2147483647, $enc = null) { return p\Iconv::iconv_substr($s, $start, $length, $enc); }
+    }
+    if (!function_exists('iconv_mime_decode')) {
         function iconv_mime_decode($encodedHeaders, $mode = 0, $enc = null) { return p\Iconv::iconv_mime_decode($encodedHeaders, $mode, $enc); }
     }
 }
diff --git a/vendor/symfony/polyfill-iconv/composer.json b/vendor/symfony/polyfill-iconv/composer.json
index 0161be6c2..95cf9f6ad 100644
--- a/vendor/symfony/polyfill-iconv/composer.json
+++ b/vendor/symfony/polyfill-iconv/composer.json
@@ -28,7 +28,7 @@
     "minimum-stability": "dev",
     "extra": {
         "branch-alias": {
-            "dev-master": "1.13-dev"
+            "dev-master": "1.16-dev"
         }
     }
 }
diff --git a/vendor/symfony/polyfill-intl-idn/Idn.php b/vendor/symfony/polyfill-intl-idn/Idn.php
index adb718d29..f54ffd535 100644
--- a/vendor/symfony/polyfill-intl-idn/Idn.php
+++ b/vendor/symfony/polyfill-intl-idn/Idn.php
@@ -127,6 +127,10 @@ final class Idn
 
     private static function encodePart($input)
     {
+        if (\substr($input, 0, 1) === '-' || \substr($input, -1) === '-') {
+            return false;
+        }
+
         $codePoints = self::listCodePoints($input);
 
         $n = 128;
diff --git a/vendor/symfony/polyfill-intl-idn/README.md b/vendor/symfony/polyfill-intl-idn/README.md
index 5fd8c6e97..2e75f2e52 100644
--- a/vendor/symfony/polyfill-intl-idn/README.md
+++ b/vendor/symfony/polyfill-intl-idn/README.md
@@ -1,7 +1,7 @@
 Symfony Polyfill / Intl: Idn
 ============================
 
-This component provides `idn_to_ascii` and `idn_to_utf8` functions to users who run php versions without the intl extension.
+This component provides [`idn_to_ascii`](https://php.net/idn-to-ascii) and [`idn_to_utf8`](https://php.net/idn-to-utf8) functions to users who run php versions without the [Intl](https://php.net/intl) extension.
 
 More information can be found in the
 [main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md).
diff --git a/vendor/symfony/polyfill-intl-idn/bootstrap.php b/vendor/symfony/polyfill-intl-idn/bootstrap.php
index c6e3921d7..b62b27a7a 100644
--- a/vendor/symfony/polyfill-intl-idn/bootstrap.php
+++ b/vendor/symfony/polyfill-intl-idn/bootstrap.php
@@ -11,49 +11,127 @@
 
 use Symfony\Polyfill\Intl\Idn as p;
 
-if (!function_exists('idn_to_ascii')) {
+if (!defined('U_IDNA_PROHIBITED_ERROR')) {
     define('U_IDNA_PROHIBITED_ERROR', 66560);
+}
+if (!defined('U_IDNA_ERROR_START')) {
     define('U_IDNA_ERROR_START', 66560);
+}
+if (!defined('U_IDNA_UNASSIGNED_ERROR')) {
     define('U_IDNA_UNASSIGNED_ERROR', 66561);
+}
+if (!defined('U_IDNA_CHECK_BIDI_ERROR')) {
     define('U_IDNA_CHECK_BIDI_ERROR', 66562);
+}
+if (!defined('U_IDNA_STD3_ASCII_RULES_ERROR')) {
     define('U_IDNA_STD3_ASCII_RULES_ERROR', 66563);
+}
+if (!defined('U_IDNA_ACE_PREFIX_ERROR')) {
     define('U_IDNA_ACE_PREFIX_ERROR', 66564);
+}
+if (!defined('U_IDNA_VERIFICATION_ERROR')) {
     define('U_IDNA_VERIFICATION_ERROR', 66565);
+}
+if (!defined('U_IDNA_LABEL_TOO_LONG_ERROR')) {
     define('U_IDNA_LABEL_TOO_LONG_ERROR', 66566);
+}
+if (!defined('U_IDNA_ZERO_LENGTH_LABEL_ERROR')) {
     define('U_IDNA_ZERO_LENGTH_LABEL_ERROR', 66567);
+}
+if (!defined('U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR')) {
     define('U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR', 66568);
+}
+if (!defined('U_IDNA_ERROR_LIMIT')) {
     define('U_IDNA_ERROR_LIMIT', 66569);
+}
+if (!defined('U_STRINGPREP_PROHIBITED_ERROR')) {
     define('U_STRINGPREP_PROHIBITED_ERROR', 66560);
+}
+if (!defined('U_STRINGPREP_UNASSIGNED_ERROR')) {
     define('U_STRINGPREP_UNASSIGNED_ERROR', 66561);
+}
+if (!defined('U_STRINGPREP_CHECK_BIDI_ERROR')) {
     define('U_STRINGPREP_CHECK_BIDI_ERROR', 66562);
+}
+if (!defined('IDNA_DEFAULT')) {
     define('IDNA_DEFAULT', 0);
+}
+if (!defined('IDNA_ALLOW_UNASSIGNED')) {
     define('IDNA_ALLOW_UNASSIGNED', 1);
+}
+if (!defined('IDNA_USE_STD3_RULES')) {
     define('IDNA_USE_STD3_RULES', 2);
+}
+if (!defined('IDNA_CHECK_BIDI')) {
     define('IDNA_CHECK_BIDI', 4);
+}
+if (!defined('IDNA_CHECK_CONTEXTJ')) {
     define('IDNA_CHECK_CONTEXTJ', 8);
+}
+if (!defined('IDNA_NONTRANSITIONAL_TO_ASCII')) {
     define('IDNA_NONTRANSITIONAL_TO_ASCII', 16);
+}
+if (!defined('IDNA_NONTRANSITIONAL_TO_UNICODE')) {
     define('IDNA_NONTRANSITIONAL_TO_UNICODE', 32);
+}
+if (!defined('INTL_IDNA_VARIANT_2003')) {
     define('INTL_IDNA_VARIANT_2003', 0);
+}
+if (!defined('INTL_IDNA_VARIANT_UTS46')) {
     define('INTL_IDNA_VARIANT_UTS46', 1);
+}
+if (!defined('IDNA_ERROR_EMPTY_LABEL')) {
     define('IDNA_ERROR_EMPTY_LABEL', 1);
+}
+if (!defined('IDNA_ERROR_LABEL_TOO_LONG')) {
     define('IDNA_ERROR_LABEL_TOO_LONG', 2);
+}
+if (!defined('IDNA_ERROR_DOMAIN_NAME_TOO_LONG')) {
     define('IDNA_ERROR_DOMAIN_NAME_TOO_LONG', 4);
+}
+if (!defined('IDNA_ERROR_LEADING_HYPHEN')) {
     define('IDNA_ERROR_LEADING_HYPHEN', 8);
+}
+if (!defined('IDNA_ERROR_TRAILING_HYPHEN')) {
     define('IDNA_ERROR_TRAILING_HYPHEN', 16);
+}
+if (!defined('IDNA_ERROR_HYPHEN_3_4')) {
     define('IDNA_ERROR_HYPHEN_3_4', 32);
+}
+if (!defined('IDNA_ERROR_LEADING_COMBINING_MARK')) {
     define('IDNA_ERROR_LEADING_COMBINING_MARK', 64);
+}
+if (!defined('IDNA_ERROR_DISALLOWED')) {
     define('IDNA_ERROR_DISALLOWED', 128);
+}
+if (!defined('IDNA_ERROR_PUNYCODE')) {
     define('IDNA_ERROR_PUNYCODE', 256);
+}
+if (!defined('IDNA_ERROR_LABEL_HAS_DOT')) {
     define('IDNA_ERROR_LABEL_HAS_DOT', 512);
+}
+if (!defined('IDNA_ERROR_INVALID_ACE_LABEL')) {
     define('IDNA_ERROR_INVALID_ACE_LABEL', 1024);
+}
+if (!defined('IDNA_ERROR_BIDI')) {
     define('IDNA_ERROR_BIDI', 2048);
+}
+if (!defined('IDNA_ERROR_CONTEXTJ')) {
     define('IDNA_ERROR_CONTEXTJ', 4096);
+}
 
-    if (PHP_VERSION_ID < 70400) {
+if (PHP_VERSION_ID < 70400) {
+    if (!function_exists('idn_to_ascii')) {
         function idn_to_ascii($domain, $options = IDNA_DEFAULT, $variant = INTL_IDNA_VARIANT_2003, &$idna_info = array()) { return p\Idn::idn_to_ascii($domain, $options, $variant, $idna_info); }
+    }
+    if (!function_exists('idn_to_utf8')) {
         function idn_to_utf8($domain, $options = IDNA_DEFAULT, $variant = INTL_IDNA_VARIANT_2003, &$idna_info = array()) { return p\Idn::idn_to_utf8($domain, $options, $variant, $idna_info); }
-    } else {
+    }
+} else {
+    if (!function_exists('idn_to_ascii')) {
         function idn_to_ascii($domain, $options = IDNA_DEFAULT, $variant = INTL_IDNA_VARIANT_UTS46, &$idna_info = array()) { return p\Idn::idn_to_ascii($domain, $options, $variant, $idna_info); }
+    }
+    if (!function_exists('idn_to_utf8')) {
         function idn_to_utf8($domain, $options = IDNA_DEFAULT, $variant = INTL_IDNA_VARIANT_UTS46, &$idna_info = array()) { return p\Idn::idn_to_utf8($domain, $options, $variant, $idna_info); }
     }
 }
diff --git a/vendor/symfony/polyfill-intl-idn/composer.json b/vendor/symfony/polyfill-intl-idn/composer.json
index 428c13e6d..bca79e8d6 100644
--- a/vendor/symfony/polyfill-intl-idn/composer.json
+++ b/vendor/symfony/polyfill-intl-idn/composer.json
@@ -18,7 +18,7 @@
     "require": {
         "php": ">=5.3.3",
         "symfony/polyfill-mbstring": "^1.3",
-        "symfony/polyfill-php72": "^1.9"
+        "symfony/polyfill-php72": "^1.10"
     },
     "autoload": {
         "psr-4": { "Symfony\\Polyfill\\Intl\\Idn\\": "" },
@@ -30,7 +30,7 @@
     "minimum-stability": "dev",
     "extra": {
         "branch-alias": {
-            "dev-master": "1.13-dev"
+            "dev-master": "1.16-dev"
         }
     }
 }
diff --git a/vendor/symfony/polyfill-mbstring/Mbstring.php b/vendor/symfony/polyfill-mbstring/Mbstring.php
index bf882ba26..15503bc9d 100644
--- a/vendor/symfony/polyfill-mbstring/Mbstring.php
+++ b/vendor/symfony/polyfill-mbstring/Mbstring.php
@@ -545,7 +545,14 @@ final class Mbstring
         }
 
         if ('UTF-8' === $encoding = self::getEncoding($encoding)) {
-            return preg_split("/(.{{$split_length}})/u", $string, null, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
+            $rx = '/(';
+            while (65535 < $split_length) {
+                $rx .= '.{65535}';
+                $split_length -= 65535;
+            }
+            $rx .= '.{'.$split_length.'})/us';
+
+            return preg_split($rx, $string, null, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
         }
 
         $result = array();
diff --git a/vendor/symfony/polyfill-mbstring/README.md b/vendor/symfony/polyfill-mbstring/README.md
index 342e8286d..4efb599d8 100644
--- a/vendor/symfony/polyfill-mbstring/README.md
+++ b/vendor/symfony/polyfill-mbstring/README.md
@@ -2,7 +2,7 @@ Symfony Polyfill / Mbstring
 ===========================
 
 This component provides a partial, native PHP implementation for the
-[Mbstring](http://php.net/mbstring) extension.
+[Mbstring](https://php.net/mbstring) extension.
 
 More information can be found in the
 [main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md).
diff --git a/vendor/symfony/polyfill-mbstring/bootstrap.php b/vendor/symfony/polyfill-mbstring/bootstrap.php
index 204a41ba2..1d9f41887 100644
--- a/vendor/symfony/polyfill-mbstring/bootstrap.php
+++ b/vendor/symfony/polyfill-mbstring/bootstrap.php
@@ -11,52 +11,127 @@
 
 use Symfony\Polyfill\Mbstring as p;
 
-if (!function_exists('mb_strlen')) {
+if (!defined('MB_CASE_UPPER')) {
     define('MB_CASE_UPPER', 0);
+}
+if (!defined('MB_CASE_LOWER')) {
     define('MB_CASE_LOWER', 1);
+}
+if (!defined('MB_CASE_TITLE')) {
     define('MB_CASE_TITLE', 2);
+}
 
+if (!function_exists('mb_convert_encoding')) {
     function mb_convert_encoding($s, $to, $from = null) { return p\Mbstring::mb_convert_encoding($s, $to, $from); }
+}
+if (!function_exists('mb_decode_mimeheader')) {
     function mb_decode_mimeheader($s) { return p\Mbstring::mb_decode_mimeheader($s); }
+}
+if (!function_exists('mb_encode_mimeheader')) {
     function mb_encode_mimeheader($s, $charset = null, $transferEnc = null, $lf = null, $indent = null) { return p\Mbstring::mb_encode_mimeheader($s, $charset, $transferEnc, $lf, $indent); }
+}
+if (!function_exists('mb_decode_numericentity')) {
     function mb_decode_numericentity($s, $convmap, $enc = null) { return p\Mbstring::mb_decode_numericentity($s, $convmap, $enc); }
+}
+if (!function_exists('mb_encode_numericentity')) {
     function mb_encode_numericentity($s, $convmap, $enc = null, $is_hex = false) { return p\Mbstring::mb_encode_numericentity($s, $convmap, $enc, $is_hex); }
+}
+if (!function_exists('mb_convert_case')) {
     function mb_convert_case($s, $mode, $enc = null) { return p\Mbstring::mb_convert_case($s, $mode, $enc); }
+}
+if (!function_exists('mb_internal_encoding')) {
     function mb_internal_encoding($enc = null) { return p\Mbstring::mb_internal_encoding($enc); }
+}
+if (!function_exists('mb_language')) {
     function mb_language($lang = null) { return p\Mbstring::mb_language($lang); }
+}
+if (!function_exists('mb_list_encodings')) {
     function mb_list_encodings() { return p\Mbstring::mb_list_encodings(); }
+}
+if (!function_exists('mb_encoding_aliases')) {
     function mb_encoding_aliases($encoding) { return p\Mbstring::mb_encoding_aliases($encoding); }
+}
+if (!function_exists('mb_check_encoding')) {
     function mb_check_encoding($var = null, $encoding = null) { return p\Mbstring::mb_check_encoding($var, $encoding); }
+}
+if (!function_exists('mb_detect_encoding')) {
     function mb_detect_encoding($str, $encodingList = null, $strict = false) { return p\Mbstring::mb_detect_encoding($str, $encodingList, $strict); }
+}
+if (!function_exists('mb_detect_order')) {
     function mb_detect_order($encodingList = null) { return p\Mbstring::mb_detect_order($encodingList); }
+}
+if (!function_exists('mb_parse_str')) {
     function mb_parse_str($s, &$result = array()) { parse_str($s, $result); }
+}
+if (!function_exists('mb_strlen')) {
     function mb_strlen($s, $enc = null) { return p\Mbstring::mb_strlen($s, $enc); }
+}
+if (!function_exists('mb_strpos')) {
     function mb_strpos($s, $needle, $offset = 0, $enc = null) { return p\Mbstring::mb_strpos($s, $needle, $offset, $enc); }
+}
+if (!function_exists('mb_strtolower')) {
     function mb_strtolower($s, $enc = null) { return p\Mbstring::mb_strtolower($s, $enc); }
+}
+if (!function_exists('mb_strtoupper')) {
     function mb_strtoupper($s, $enc = null) { return p\Mbstring::mb_strtoupper($s, $enc); }
+}
+if (!function_exists('mb_substitute_character')) {
     function mb_substitute_character($char = null) { return p\Mbstring::mb_substitute_character($char); }
+}
+if (!function_exists('mb_substr')) {
     function mb_substr($s, $start, $length = 2147483647, $enc = null) { return p\Mbstring::mb_substr($s, $start, $length, $enc); }
+}
+if (!function_exists('mb_stripos')) {
     function mb_stripos($s, $needle, $offset = 0, $enc = null) { return p\Mbstring::mb_stripos($s, $needle, $offset, $enc); }
+}
+if (!function_exists('mb_stristr')) {
     function mb_stristr($s, $needle, $part = false, $enc = null) { return p\Mbstring::mb_stristr($s, $needle, $part, $enc); }
+}
+if (!function_exists('mb_strrchr')) {
     function mb_strrchr($s, $needle, $part = false, $enc = null) { return p\Mbstring::mb_strrchr($s, $needle, $part, $enc); }
+}
+if (!function_exists('mb_strrichr')) {
     function mb_strrichr($s, $needle, $part = false, $enc = null) { return p\Mbstring::mb_strrichr($s, $needle, $part, $enc); }
+}
+if (!function_exists('mb_strripos')) {
     function mb_strripos($s, $needle, $offset = 0, $enc = null) { return p\Mbstring::mb_strripos($s, $needle, $offset, $enc); }
+}
+if (!function_exists('mb_strrpos')) {
     function mb_strrpos($s, $needle, $offset = 0, $enc = null) { return p\Mbstring::mb_strrpos($s, $needle, $offset, $enc); }
+}
+if (!function_exists('mb_strstr')) {
     function mb_strstr($s, $needle, $part = false, $enc = null) { return p\Mbstring::mb_strstr($s, $needle, $part, $enc); }
+}
+if (!function_exists('mb_get_info')) {
     function mb_get_info($type = 'all') { return p\Mbstring::mb_get_info($type); }
+}
+if (!function_exists('mb_http_output')) {
     function mb_http_output($enc = null) { return p\Mbstring::mb_http_output($enc); }
+}
+if (!function_exists('mb_strwidth')) {
     function mb_strwidth($s, $enc = null) { return p\Mbstring::mb_strwidth($s, $enc); }
+}
+if (!function_exists('mb_substr_count')) {
     function mb_substr_count($haystack, $needle, $enc = null) { return p\Mbstring::mb_substr_count($haystack, $needle, $enc); }
+}
+if (!function_exists('mb_output_handler')) {
     function mb_output_handler($contents, $status) { return p\Mbstring::mb_output_handler($contents, $status); }
+}
+if (!function_exists('mb_http_input')) {
     function mb_http_input($type = '') { return p\Mbstring::mb_http_input($type); }
+}
+if (!function_exists('mb_convert_variables')) {
     function mb_convert_variables($toEncoding, $fromEncoding, &$a = null, &$b = null, &$c = null, &$d = null, &$e = null, &$f = null) { return p\Mbstring::mb_convert_variables($toEncoding, $fromEncoding, $a, $b, $c, $d, $e, $f); }
 }
-if (!function_exists('mb_chr')) {
+if (!function_exists('mb_ord')) {
     function mb_ord($s, $enc = null) { return p\Mbstring::mb_ord($s, $enc); }
+}
+if (!function_exists('mb_chr')) {
     function mb_chr($code, $enc = null) { return p\Mbstring::mb_chr($code, $enc); }
+}
+if (!function_exists('mb_scrub')) {
     function mb_scrub($s, $enc = null) { $enc = null === $enc ? mb_internal_encoding() : $enc; return mb_convert_encoding($s, $enc, $enc); }
 }
-
 if (!function_exists('mb_str_split')) {
     function mb_str_split($string, $split_length = 1, $encoding = null) { return p\Mbstring::mb_str_split($string, $split_length, $encoding); }
 }
diff --git a/vendor/symfony/polyfill-mbstring/composer.json b/vendor/symfony/polyfill-mbstring/composer.json
index c96807433..985abc3dd 100644
--- a/vendor/symfony/polyfill-mbstring/composer.json
+++ b/vendor/symfony/polyfill-mbstring/composer.json
@@ -28,7 +28,7 @@
     "minimum-stability": "dev",
     "extra": {
         "branch-alias": {
-            "dev-master": "1.13-dev"
+            "dev-master": "1.16-dev"
         }
     }
 }
diff --git a/vendor/symfony/polyfill-php72/Php72.php b/vendor/symfony/polyfill-php72/Php72.php
index d531e8441..9b3edc7c7 100644
--- a/vendor/symfony/polyfill-php72/Php72.php
+++ b/vendor/symfony/polyfill-php72/Php72.php
@@ -95,7 +95,8 @@ final class Php72
             return;
         }
 
-        return self::$hashMask ^ hexdec(substr($hash, 16 - \PHP_INT_SIZE, \PHP_INT_SIZE));
+        // On 32-bit systems, PHP_INT_SIZE is 4,
+        return self::$hashMask ^ hexdec(substr($hash, 16 - (\PHP_INT_SIZE * 2 - 1), (\PHP_INT_SIZE * 2 - 1)));
     }
 
     public static function sapi_windows_vt100_support($stream, $enable = null)
@@ -166,7 +167,7 @@ final class Php72
             self::$hashMask = (int) substr(ob_get_clean(), 17);
         }
 
-        self::$hashMask ^= hexdec(substr(spl_object_hash($obj), 16 - \PHP_INT_SIZE, \PHP_INT_SIZE));
+        self::$hashMask ^= hexdec(substr(spl_object_hash($obj), 16 - (\PHP_INT_SIZE * 2 - 1), (\PHP_INT_SIZE * 2 - 1)));
     }
 
     public static function mb_chr($code, $encoding = null)
diff --git a/vendor/symfony/polyfill-php72/README.md b/vendor/symfony/polyfill-php72/README.md
index 82c45f7a5..b20b906ea 100644
--- a/vendor/symfony/polyfill-php72/README.md
+++ b/vendor/symfony/polyfill-php72/README.md
@@ -16,7 +16,8 @@ Moved to core since 7.2 (was in the optional XML extension earlier):
 - [`utf8_decode`](https://php.net/utf8_decode)
 
 Also, it provides a constant added to PHP 7.2:
-- [`PHP_OS_FAMILY`](http://php.net/manual/en/reserved.constants.php#constant.php-os-family)
+- [`PHP_FLOAT_*`](https://php.net/reserved.constants#constant.php-float-dig)
+- [`PHP_OS_FAMILY`](https://php.net/reserved.constants#constant.php-os-family)
 
 More information can be found in the
 [main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md).
diff --git a/vendor/symfony/polyfill-php72/bootstrap.php b/vendor/symfony/polyfill-php72/bootstrap.php
index 519056de4..0c164d1f4 100644
--- a/vendor/symfony/polyfill-php72/bootstrap.php
+++ b/vendor/symfony/polyfill-php72/bootstrap.php
@@ -12,6 +12,22 @@
 use Symfony\Polyfill\Php72 as p;
 
 if (PHP_VERSION_ID < 70200) {
+    if (!defined('PHP_FLOAT_DIG')) {
+        define('PHP_FLOAT_DIG', 15);
+    }
+    if (!defined('PHP_FLOAT_EPSILON')) {
+        define('PHP_FLOAT_EPSILON', 2.2204460492503E-16);
+    }
+    if (!defined('PHP_FLOAT_MIN')) {
+        define('PHP_FLOAT_MIN', 2.2250738585072E-308);
+    }
+    if (!defined('PHP_FLOAT_MAX')) {
+        define('PHP_FLOAT_MAX', 1.7976931348623157E+308);
+    }
+    if (!defined('PHP_OS_FAMILY')) {
+        define('PHP_OS_FAMILY', p\Php72::php_os_family());
+    }
+
     if ('\\' === DIRECTORY_SEPARATOR && !function_exists('sapi_windows_vt100_support')) {
         function sapi_windows_vt100_support($stream, $enable = null) { return p\Php72::sapi_windows_vt100_support($stream, $enable); }
     }
@@ -20,17 +36,20 @@ if (PHP_VERSION_ID < 70200) {
     }
     if (!function_exists('utf8_encode')) {
         function utf8_encode($s) { return p\Php72::utf8_encode($s); }
+    }
+    if (!function_exists('utf8_decode')) {
         function utf8_decode($s) { return p\Php72::utf8_decode($s); }
     }
     if (!function_exists('spl_object_id')) {
         function spl_object_id($s) { return p\Php72::spl_object_id($s); }
     }
-    if (!defined('PHP_OS_FAMILY')) {
-        define('PHP_OS_FAMILY', p\Php72::php_os_family());
+    if (!function_exists('mb_ord')) {
+        function mb_ord($s, $enc = null) { return p\Php72::mb_ord($s, $enc); }
     }
     if (!function_exists('mb_chr')) {
-        function mb_ord($s, $enc = null) { return p\Php72::mb_ord($s, $enc); }
         function mb_chr($code, $enc = null) { return p\Php72::mb_chr($code, $enc); }
+    }
+    if (!function_exists('mb_scrub')) {
         function mb_scrub($s, $enc = null) { $enc = null === $enc ? mb_internal_encoding() : $enc; return mb_convert_encoding($s, $enc, $enc); }
     }
 }
diff --git a/vendor/symfony/polyfill-php72/composer.json b/vendor/symfony/polyfill-php72/composer.json
index 0d37167f2..a4cd8be61 100644
--- a/vendor/symfony/polyfill-php72/composer.json
+++ b/vendor/symfony/polyfill-php72/composer.json
@@ -25,7 +25,7 @@
     "minimum-stability": "dev",
     "extra": {
         "branch-alias": {
-            "dev-master": "1.13-dev"
+            "dev-master": "1.16-dev"
         }
     }
 }
diff --git a/vendor/symfony/polyfill-php73/composer.json b/vendor/symfony/polyfill-php73/composer.json
index cffa32fa0..ebfa636e2 100644
--- a/vendor/symfony/polyfill-php73/composer.json
+++ b/vendor/symfony/polyfill-php73/composer.json
@@ -26,7 +26,7 @@
     "minimum-stability": "dev",
     "extra": {
         "branch-alias": {
-            "dev-master": "1.13-dev"
+            "dev-master": "1.16-dev"
         }
     }
 }
diff --git a/vendor/symfony/process/.gitattributes b/vendor/symfony/process/.gitattributes
deleted file mode 100644
index ebb928704..000000000
--- a/vendor/symfony/process/.gitattributes
+++ /dev/null
@@ -1,3 +0,0 @@
-/Tests export-ignore
-/phpunit.xml.dist export-ignore
-/.gitignore export-ignore
diff --git a/vendor/symfony/process/InputStream.php b/vendor/symfony/process/InputStream.php
index c952daf59..c86fca868 100644
--- a/vendor/symfony/process/InputStream.php
+++ b/vendor/symfony/process/InputStream.php
@@ -45,7 +45,7 @@ class InputStream implements \IteratorAggregate
             return;
         }
         if ($this->isClosed()) {
-            throw new RuntimeException(sprintf('%s is closed', static::class));
+            throw new RuntimeException(sprintf('"%s" is closed.', static::class));
         }
         $this->input[] = ProcessUtils::validateInput(__METHOD__, $input);
     }
diff --git a/vendor/symfony/process/LICENSE b/vendor/symfony/process/LICENSE
index a677f4376..9e936ec04 100644
--- a/vendor/symfony/process/LICENSE
+++ b/vendor/symfony/process/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2019 Fabien Potencier
+Copyright (c) 2004-2020 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/vendor/symfony/process/PhpProcess.php b/vendor/symfony/process/PhpProcess.php
index 126d9b754..22fc1b385 100644
--- a/vendor/symfony/process/PhpProcess.php
+++ b/vendor/symfony/process/PhpProcess.php
@@ -11,6 +11,7 @@
 
 namespace Symfony\Component\Process;
 
+use Symfony\Component\Process\Exception\LogicException;
 use Symfony\Component\Process\Exception\RuntimeException;
 
 /**
@@ -49,6 +50,14 @@ class PhpProcess extends Process
         parent::__construct($php, $cwd, $env, $script, $timeout);
     }
 
+    /**
+     * {@inheritdoc}
+     */
+    public static function fromShellCommandline(string $command, string $cwd = null, array $env = null, $input = null, ?float $timeout = 60)
+    {
+        throw new LogicException(sprintf('The "%s()" method cannot be called when using "%s".', __METHOD__, self::class));
+    }
+
     /**
      * Sets the path to the PHP binary to use.
      *
diff --git a/vendor/symfony/process/Pipes/AbstractPipes.php b/vendor/symfony/process/Pipes/AbstractPipes.php
index 54a622138..6b72aed7d 100644
--- a/vendor/symfony/process/Pipes/AbstractPipes.php
+++ b/vendor/symfony/process/Pipes/AbstractPipes.php
@@ -103,7 +103,7 @@ abstract class AbstractPipes implements PipesInterface
             } elseif (!isset($this->inputBuffer[0])) {
                 if (!\is_string($input)) {
                     if (!is_scalar($input)) {
-                        throw new InvalidArgumentException(sprintf('%s yielded a value of type "%s", but only scalars and stream resources are supported', \get_class($this->input), \gettype($input)));
+                        throw new InvalidArgumentException(sprintf('"%s" yielded a value of type "%s", but only scalars and stream resources are supported.', \get_class($this->input), \gettype($input)));
                     }
                     $input = (string) $input;
                 }
diff --git a/vendor/symfony/process/Pipes/UnixPipes.php b/vendor/symfony/process/Pipes/UnixPipes.php
index 603d726b4..70fdd2957 100644
--- a/vendor/symfony/process/Pipes/UnixPipes.php
+++ b/vendor/symfony/process/Pipes/UnixPipes.php
@@ -118,7 +118,7 @@ class UnixPipes extends AbstractPipes
             $read[$type = array_search($pipe, $this->pipes, true)] = '';
 
             do {
-                $data = fread($pipe, self::CHUNK_SIZE);
+                $data = @fread($pipe, self::CHUNK_SIZE);
                 $read[$type] .= $data;
             } while (isset($data[0]) && ($close || isset($data[self::CHUNK_SIZE - 1])));
 
diff --git a/vendor/symfony/process/Pipes/WindowsPipes.php b/vendor/symfony/process/Pipes/WindowsPipes.php
index 0a265b907..c548092c5 100644
--- a/vendor/symfony/process/Pipes/WindowsPipes.php
+++ b/vendor/symfony/process/Pipes/WindowsPipes.php
@@ -57,7 +57,7 @@ class WindowsPipes extends AbstractPipes
 
                     if (!$h = fopen($file.'.lock', 'w')) {
                         restore_error_handler();
-                        throw new RuntimeException(sprintf('A temporary file could not be opened to write the process output: %s', $lastError));
+                        throw new RuntimeException('A temporary file could not be opened to write the process output: '.$lastError);
                     }
                     if (!flock($h, LOCK_EX | LOCK_NB)) {
                         continue 2;
diff --git a/vendor/symfony/process/Process.php b/vendor/symfony/process/Process.php
index b71d4dadb..81568a1c0 100644
--- a/vendor/symfony/process/Process.php
+++ b/vendor/symfony/process/Process.php
@@ -135,7 +135,7 @@ class Process implements \IteratorAggregate
      * @param mixed|null     $input   The input as stream resource, scalar or \Traversable, or null for no input
      * @param int|float|null $timeout The timeout in seconds or null to disable
      *
-     * @throws RuntimeException When proc_open is not installed
+     * @throws LogicException When proc_open is not installed
      */
     public function __construct($command, string $cwd = null, array $env = null, $input = null, ?float $timeout = 60)
     {
@@ -188,7 +188,7 @@ class Process implements \IteratorAggregate
      *
      * @return static
      *
-     * @throws RuntimeException When proc_open is not installed
+     * @throws LogicException When proc_open is not installed
      */
     public static function fromShellCommandline(string $command, string $cwd = null, array $env = null, $input = null, ?float $timeout = 60)
     {
@@ -223,9 +223,11 @@ class Process implements \IteratorAggregate
      *
      * @return int The exit status code
      *
-     * @throws RuntimeException When process can't be launched
-     * @throws RuntimeException When process stopped after receiving signal
-     * @throws LogicException   In case a callback is provided and output has been disabled
+     * @throws RuntimeException         When process can't be launched
+     * @throws RuntimeException         When process is already running
+     * @throws ProcessTimedOutException When process timed out
+     * @throws ProcessSignaledException When process stopped after receiving signal
+     * @throws LogicException           In case a callback is provided and output has been disabled
      *
      * @final
      */
@@ -279,7 +281,7 @@ class Process implements \IteratorAggregate
     public function start(callable $callback = null, array $env = [])
     {
         if ($this->isRunning()) {
-            throw new RuntimeException('Process is already running');
+            throw new RuntimeException('Process is already running.');
         }
 
         $this->resetProcessData();
@@ -334,7 +336,7 @@ class Process implements \IteratorAggregate
             throw new RuntimeException(sprintf('The provided cwd "%s" does not exist.', $this->cwd));
         }
 
-        $this->process = proc_open($commandline, $descriptors, $this->processPipes->pipes, $this->cwd, $envPairs, $options);
+        $this->process = @proc_open($commandline, $descriptors, $this->processPipes->pipes, $this->cwd, $envPairs, $options);
 
         if (!\is_resource($this->process)) {
             throw new RuntimeException('Unable to launch a new process.');
@@ -373,7 +375,7 @@ class Process implements \IteratorAggregate
     public function restart(callable $callback = null, array $env = []): self
     {
         if ($this->isRunning()) {
-            throw new RuntimeException('Process is already running');
+            throw new RuntimeException('Process is already running.');
         }
 
         $process = clone $this;
@@ -393,9 +395,9 @@ class Process implements \IteratorAggregate
      *
      * @return int The exitcode of the process
      *
-     * @throws RuntimeException When process timed out
-     * @throws RuntimeException When process stopped after receiving signal
-     * @throws LogicException   When process is not yet started
+     * @throws ProcessTimedOutException When process timed out
+     * @throws ProcessSignaledException When process stopped after receiving signal
+     * @throws LogicException           When process is not yet started
      */
     public function wait(callable $callback = null)
     {
@@ -406,7 +408,7 @@ class Process implements \IteratorAggregate
         if (null !== $callback) {
             if (!$this->processPipes->haveReadSupport()) {
                 $this->stop(0);
-                throw new \LogicException('Pass the callback to the "Process::start" method or call enableOutput to use a callback with "Process::wait"');
+                throw new LogicException('Pass the callback to the "Process::start" method or call enableOutput to use a callback with "Process::wait".');
             }
             $this->callback = $this->buildCallback($callback);
         }
@@ -436,8 +438,9 @@ class Process implements \IteratorAggregate
      * from the output in real-time while writing the standard input to the process.
      * It allows to have feedback from the independent process during execution.
      *
-     * @throws RuntimeException When process timed out
-     * @throws LogicException   When process is not yet started
+     * @throws RuntimeException         When process timed out
+     * @throws LogicException           When process is not yet started
+     * @throws ProcessTimedOutException In case the timeout was reached
      */
     public function waitUntil(callable $callback): bool
     {
@@ -446,7 +449,7 @@ class Process implements \IteratorAggregate
 
         if (!$this->processPipes->haveReadSupport()) {
             $this->stop(0);
-            throw new \LogicException('Pass the callback to the "Process::start" method or call enableOutput to use a callback with "Process::waitUntil".');
+            throw new LogicException('Pass the callback to the "Process::start" method or call enableOutput to use a callback with "Process::waitUntil".');
         }
         $callback = $this->buildCallback($callback);
 
@@ -1603,7 +1606,7 @@ class Process implements \IteratorAggregate
     private function requireProcessIsStarted(string $functionName)
     {
         if (!$this->isStarted()) {
-            throw new LogicException(sprintf('Process must be started before calling %s.', $functionName));
+            throw new LogicException(sprintf('Process must be started before calling "%s()".', $functionName));
         }
     }
 
@@ -1615,7 +1618,7 @@ class Process implements \IteratorAggregate
     private function requireProcessIsTerminated(string $functionName)
     {
         if (!$this->isTerminated()) {
-            throw new LogicException(sprintf('Process must be terminated before calling %s.', $functionName));
+            throw new LogicException(sprintf('Process must be terminated before calling "%s()".', $functionName));
         }
     }
 
@@ -1643,12 +1646,12 @@ class Process implements \IteratorAggregate
 
     private function replacePlaceholders(string $commandline, array $env)
     {
-        return preg_replace_callback('/"\$([_a-zA-Z]++[_a-zA-Z0-9]*+)"/', function ($matches) use ($commandline, $env) {
+        return preg_replace_callback('/"\$\{:([_a-zA-Z]++[_a-zA-Z0-9]*+)\}"/', function ($matches) use ($commandline, $env) {
             if (!isset($env[$matches[1]]) || false === $env[$matches[1]]) {
-                throw new InvalidArgumentException(sprintf('Command line is missing a value for key %s: %s.', $matches[0], $commandline));
+                throw new InvalidArgumentException(sprintf('Command line is missing a value for parameter "%s": '.$commandline, $matches[1]));
             }
 
-            return '\\' === \DIRECTORY_SEPARATOR ? $this->escapeArgument($env[$matches[1]]) : $matches[0];
+            return $this->escapeArgument($env[$matches[1]]);
         }, $commandline);
     }
 
diff --git a/vendor/symfony/process/ProcessUtils.php b/vendor/symfony/process/ProcessUtils.php
index 2f9c4be4d..eb39a4a9e 100644
--- a/vendor/symfony/process/ProcessUtils.php
+++ b/vendor/symfony/process/ProcessUtils.php
@@ -61,7 +61,7 @@ class ProcessUtils
                 return new \IteratorIterator($input);
             }
 
-            throw new InvalidArgumentException(sprintf('%s only accepts strings, Traversable objects or stream resources.', $caller));
+            throw new InvalidArgumentException(sprintf('"%s" only accepts strings, Traversable objects or stream resources.', $caller));
         }
 
         return $input;
diff --git a/vendor/symfony/routing/.gitattributes b/vendor/symfony/routing/.gitattributes
deleted file mode 100644
index ebb928704..000000000
--- a/vendor/symfony/routing/.gitattributes
+++ /dev/null
@@ -1,3 +0,0 @@
-/Tests export-ignore
-/phpunit.xml.dist export-ignore
-/.gitignore export-ignore
diff --git a/vendor/symfony/routing/Annotation/Route.php b/vendor/symfony/routing/Annotation/Route.php
index 4d5f61811..52b208c41 100644
--- a/vendor/symfony/routing/Annotation/Route.php
+++ b/vendor/symfony/routing/Annotation/Route.php
@@ -31,9 +31,6 @@ class Route
     private $methods = [];
     private $schemes = [];
     private $condition;
-    private $locale;
-    private $format;
-    private $utf8;
 
     /**
      * @param array $data An array of key/value parameters
@@ -43,7 +40,7 @@ class Route
     public function __construct(array $data)
     {
         if (isset($data['localized_paths'])) {
-            throw new \BadMethodCallException(sprintf('Unknown property "localized_paths" on annotation "%s".', \get_class($this)));
+            throw new \BadMethodCallException(sprintf('Unknown property "localized_paths" on annotation "%s".', static::class));
         }
 
         if (isset($data['value'])) {
@@ -74,7 +71,7 @@ class Route
         foreach ($data as $key => $value) {
             $method = 'set'.str_replace('_', '', $key);
             if (!method_exists($this, $method)) {
-                throw new \BadMethodCallException(sprintf('Unknown property "%s" on annotation "%s".', $key, \get_class($this)));
+                throw new \BadMethodCallException(sprintf('Unknown property "%s" on annotation "%s".', $key, static::class));
             }
             $this->$method($value);
         }
diff --git a/vendor/symfony/routing/Generator/CompiledUrlGenerator.php b/vendor/symfony/routing/Generator/CompiledUrlGenerator.php
index 41cd5893a..adcc99e31 100644
--- a/vendor/symfony/routing/Generator/CompiledUrlGenerator.php
+++ b/vendor/symfony/routing/Generator/CompiledUrlGenerator.php
@@ -40,7 +40,6 @@ class CompiledUrlGenerator extends UrlGenerator
         if (null !== $locale) {
             do {
                 if (($this->compiledRoutes[$name.'.'.$locale][1]['_canonical_route'] ?? null) === $name) {
-                    unset($parameters['_locale']);
                     $name .= '.'.$locale;
                     break;
                 }
@@ -53,6 +52,14 @@ class CompiledUrlGenerator extends UrlGenerator
 
         list($variables, $defaults, $requirements, $tokens, $hostTokens, $requiredSchemes) = $this->compiledRoutes[$name];
 
+        if (isset($defaults['_canonical_route']) && isset($defaults['_locale'])) {
+            if (!\in_array('_locale', $variables, true)) {
+                unset($parameters['_locale']);
+            } elseif (!isset($parameters['_locale'])) {
+                $parameters['_locale'] = $defaults['_locale'];
+            }
+        }
+
         return $this->doGenerate($variables, $defaults, $requirements, $tokens, $parameters, $name, $referenceType, $hostTokens, $requiredSchemes);
     }
 }
diff --git a/vendor/symfony/routing/Generator/Dumper/PhpGeneratorDumper.php b/vendor/symfony/routing/Generator/Dumper/PhpGeneratorDumper.php
index 4a03653eb..3602525f7 100644
--- a/vendor/symfony/routing/Generator/Dumper/PhpGeneratorDumper.php
+++ b/vendor/symfony/routing/Generator/Dumper/PhpGeneratorDumper.php
@@ -116,7 +116,6 @@ EOF;
         if (null !== $locale && null !== $name) {
             do {
                 if ((self::$declaredRoutes[$name.'.'.$locale][1]['_canonical_route'] ?? null) === $name) {
-                    unset($parameters['_locale']);
                     $name .= '.'.$locale;
                     break;
                 }
@@ -129,6 +128,14 @@ EOF;
 
         list($variables, $defaults, $requirements, $tokens, $hostTokens, $requiredSchemes) = self::$declaredRoutes[$name];
 
+        if (isset($defaults['_canonical_route']) && isset($defaults['_locale'])) {
+            if (!\in_array('_locale', $variables, true)) {
+                unset($parameters['_locale']);
+            } elseif (!isset($parameters['_locale'])) {
+                $parameters['_locale'] = $defaults['_locale'];
+            }
+        }
+
         return $this->doGenerate($variables, $defaults, $requirements, $tokens, $parameters, $name, $referenceType, $hostTokens, $requiredSchemes);
     }
 EOF;
diff --git a/vendor/symfony/routing/Generator/UrlGenerator.php b/vendor/symfony/routing/Generator/UrlGenerator.php
index 8be593bf9..728706699 100644
--- a/vendor/symfony/routing/Generator/UrlGenerator.php
+++ b/vendor/symfony/routing/Generator/UrlGenerator.php
@@ -134,7 +134,6 @@ class UrlGenerator implements UrlGeneratorInterface, ConfigurableRequirementsInt
         if (null !== $locale) {
             do {
                 if (null !== ($route = $this->routes->get($name.'.'.$locale)) && $route->getDefault('_canonical_route') === $name) {
-                    unset($parameters['_locale']);
                     break;
                 }
             } while (false !== $locale = strstr($locale, '_', true));
@@ -147,7 +146,18 @@ class UrlGenerator implements UrlGeneratorInterface, ConfigurableRequirementsInt
         // the Route has a cache of its own and is not recompiled as long as it does not get modified
         $compiledRoute = $route->compile();
 
-        return $this->doGenerate($compiledRoute->getVariables(), $route->getDefaults(), $route->getRequirements(), $compiledRoute->getTokens(), $parameters, $name, $referenceType, $compiledRoute->getHostTokens(), $route->getSchemes());
+        $defaults = $route->getDefaults();
+        $variables = $compiledRoute->getVariables();
+
+        if (isset($defaults['_canonical_route']) && isset($defaults['_locale'])) {
+            if (!\in_array('_locale', $variables, true)) {
+                unset($parameters['_locale']);
+            } elseif (!isset($parameters['_locale'])) {
+                $parameters['_locale'] = $defaults['_locale'];
+            }
+        }
+
+        return $this->doGenerate($variables, $defaults, $route->getRequirements(), $compiledRoute->getTokens(), $parameters, $name, $referenceType, $compiledRoute->getHostTokens(), $route->getSchemes());
     }
 
     /**
diff --git a/vendor/symfony/routing/LICENSE b/vendor/symfony/routing/LICENSE
index a677f4376..9e936ec04 100644
--- a/vendor/symfony/routing/LICENSE
+++ b/vendor/symfony/routing/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2019 Fabien Potencier
+Copyright (c) 2004-2020 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/vendor/symfony/routing/Loader/AnnotationClassLoader.php b/vendor/symfony/routing/Loader/AnnotationClassLoader.php
index 6390a79f5..ce61032ac 100644
--- a/vendor/symfony/routing/Loader/AnnotationClassLoader.php
+++ b/vendor/symfony/routing/Loader/AnnotationClassLoader.php
@@ -18,6 +18,7 @@ use Symfony\Component\Config\Resource\FileResource;
 use Symfony\Component\Routing\Annotation\Route as RouteAnnotation;
 use Symfony\Component\Routing\Route;
 use Symfony\Component\Routing\RouteCollection;
+use Symfony\Component\Routing\RouteCompiler;
 
 /**
  * AnnotationClassLoader loads routing information from a PHP class and its methods.
@@ -211,6 +212,7 @@ abstract class AnnotationClassLoader implements LoaderInterface
             $this->configureRoute($route, $class, $method, $annot);
             if (0 !== $locale) {
                 $route->setDefault('_locale', $locale);
+                $route->setRequirement('_locale', preg_quote($locale, RouteCompiler::REGEX_DELIMITER));
                 $route->setDefault('_canonical_route', $name);
                 $collection->add($name.'.'.$locale, $route);
             } else {
diff --git a/vendor/symfony/routing/Loader/Configurator/ImportConfigurator.php b/vendor/symfony/routing/Loader/Configurator/ImportConfigurator.php
index f11b79575..0059a632a 100644
--- a/vendor/symfony/routing/Loader/Configurator/ImportConfigurator.php
+++ b/vendor/symfony/routing/Loader/Configurator/ImportConfigurator.php
@@ -13,6 +13,7 @@ namespace Symfony\Component\Routing\Loader\Configurator;
 
 use Symfony\Component\Routing\Route;
 use Symfony\Component\Routing\RouteCollection;
+use Symfony\Component\Routing\RouteCompiler;
 
 /**
  * @author Nicolas Grekas 
@@ -63,6 +64,7 @@ class ImportConfigurator
                     foreach ($prefix as $locale => $localePrefix) {
                         $localizedRoute = clone $route;
                         $localizedRoute->setDefault('_locale', $locale);
+                        $localizedRoute->setRequirement('_locale', preg_quote($locale, RouteCompiler::REGEX_DELIMITER));
                         $localizedRoute->setDefault('_canonical_route', $name);
                         $localizedRoute->setPath($localePrefix.(!$trailingSlashOnRoot && '/' === $route->getPath() ? '' : $route->getPath()));
                         $this->route->add($name.'.'.$locale, $localizedRoute);
diff --git a/vendor/symfony/routing/Loader/Configurator/Traits/AddTrait.php b/vendor/symfony/routing/Loader/Configurator/Traits/AddTrait.php
index 085fde4bc..84899aa2e 100644
--- a/vendor/symfony/routing/Loader/Configurator/Traits/AddTrait.php
+++ b/vendor/symfony/routing/Loader/Configurator/Traits/AddTrait.php
@@ -15,6 +15,7 @@ use Symfony\Component\Routing\Loader\Configurator\CollectionConfigurator;
 use Symfony\Component\Routing\Loader\Configurator\RouteConfigurator;
 use Symfony\Component\Routing\Route;
 use Symfony\Component\Routing\RouteCollection;
+use Symfony\Component\Routing\RouteCompiler;
 
 trait AddTrait
 {
@@ -67,6 +68,7 @@ trait AddTrait
             $routes->add($name.'.'.$locale, $route = $this->createRoute($path));
             $this->collection->add($this->name.$name.'.'.$locale, $route);
             $route->setDefault('_locale', $locale);
+            $route->setRequirement('_locale', preg_quote($locale, RouteCompiler::REGEX_DELIMITER));
             $route->setDefault('_canonical_route', $this->name.$name);
         }
 
diff --git a/vendor/symfony/routing/Loader/ObjectLoader.php b/vendor/symfony/routing/Loader/ObjectLoader.php
index 16dd6c9a3..b700929bd 100644
--- a/vendor/symfony/routing/Loader/ObjectLoader.php
+++ b/vendor/symfony/routing/Loader/ObjectLoader.php
@@ -57,11 +57,11 @@ abstract class ObjectLoader extends Loader
         $loaderObject = $this->getObject($parts[0]);
 
         if (!\is_object($loaderObject)) {
-            throw new \TypeError(sprintf('%s:getObject() must return an object: %s returned', \get_class($this), \gettype($loaderObject)));
+            throw new \TypeError(sprintf('"%s:getObject()" must return an object: "%s" returned.', static::class, \gettype($loaderObject)));
         }
 
         if (!\is_callable([$loaderObject, $method])) {
-            throw new \BadMethodCallException(sprintf('Method "%s" not found on "%s" when importing routing resource "%s"', $method, \get_class($loaderObject), $resource));
+            throw new \BadMethodCallException(sprintf('Method "%s" not found on "%s" when importing routing resource "%s".', $method, \get_class($loaderObject), $resource));
         }
 
         $routeCollection = $loaderObject->$method($this);
@@ -69,7 +69,7 @@ abstract class ObjectLoader extends Loader
         if (!$routeCollection instanceof RouteCollection) {
             $type = \is_object($routeCollection) ? \get_class($routeCollection) : \gettype($routeCollection);
 
-            throw new \LogicException(sprintf('The %s::%s method must return a RouteCollection: %s returned', \get_class($loaderObject), $method, $type));
+            throw new \LogicException(sprintf('The "%s::%s()" method must return a RouteCollection: "%s" returned.', \get_class($loaderObject), $method, $type));
         }
 
         // make the object file tracked so that if it changes, the cache rebuilds
diff --git a/vendor/symfony/routing/Loader/XmlFileLoader.php b/vendor/symfony/routing/Loader/XmlFileLoader.php
index dc208f28e..31c614950 100644
--- a/vendor/symfony/routing/Loader/XmlFileLoader.php
+++ b/vendor/symfony/routing/Loader/XmlFileLoader.php
@@ -16,6 +16,7 @@ use Symfony\Component\Config\Resource\FileResource;
 use Symfony\Component\Config\Util\XmlUtils;
 use Symfony\Component\Routing\Route;
 use Symfony\Component\Routing\RouteCollection;
+use Symfony\Component\Routing\RouteCompiler;
 
 /**
  * XmlFileLoader loads XML routing files.
@@ -129,6 +130,7 @@ class XmlFileLoader extends FileLoader
             foreach ($paths as $locale => $p) {
                 $defaults['_locale'] = $locale;
                 $defaults['_canonical_route'] = $id;
+                $requirements['_locale'] = preg_quote($locale, RouteCompiler::REGEX_DELIMITER);
                 $route = new Route($p, $defaults, $requirements, $options, $node->getAttribute('host'), $schemes, $methods, $condition);
                 $collection->add($id.'.'.$locale, $route);
             }
@@ -209,6 +211,7 @@ class XmlFileLoader extends FileLoader
                             $localizedRoute = clone $route;
                             $localizedRoute->setPath($localePrefix.(!$trailingSlashOnRoot && '/' === $route->getPath() ? '' : $route->getPath()));
                             $localizedRoute->setDefault('_locale', $locale);
+                            $localizedRoute->setRequirement('_locale', preg_quote($locale, RouteCompiler::REGEX_DELIMITER));
                             $localizedRoute->setDefault('_canonical_route', $name);
                             $subCollection->add($name.'.'.$locale, $localizedRoute);
                         }
@@ -312,9 +315,9 @@ class XmlFileLoader extends FileLoader
 
         if ($controller = $node->getAttribute('controller')) {
             if (isset($defaults['_controller'])) {
-                $name = $node->hasAttribute('id') ? sprintf('"%s"', $node->getAttribute('id')) : sprintf('the "%s" tag', $node->tagName);
+                $name = $node->hasAttribute('id') ? sprintf('"%s".', $node->getAttribute('id')) : sprintf('the "%s" tag.', $node->tagName);
 
-                throw new \InvalidArgumentException(sprintf('The routing file "%s" must not specify both the "controller" attribute and the defaults key "_controller" for %s.', $path, $name));
+                throw new \InvalidArgumentException(sprintf('The routing file "%s" must not specify both the "controller" attribute and the defaults key "_controller" for ', $path).$name);
             }
 
             $defaults['_controller'] = $controller;
diff --git a/vendor/symfony/routing/Loader/YamlFileLoader.php b/vendor/symfony/routing/Loader/YamlFileLoader.php
index 0de36c93b..8d4b9abdb 100644
--- a/vendor/symfony/routing/Loader/YamlFileLoader.php
+++ b/vendor/symfony/routing/Loader/YamlFileLoader.php
@@ -15,6 +15,7 @@ use Symfony\Component\Config\Loader\FileLoader;
 use Symfony\Component\Config\Resource\FileResource;
 use Symfony\Component\Routing\Route;
 use Symfony\Component\Routing\RouteCollection;
+use Symfony\Component\Routing\RouteCompiler;
 use Symfony\Component\Yaml\Exception\ParseException;
 use Symfony\Component\Yaml\Parser as YamlParser;
 use Symfony\Component\Yaml\Yaml;
@@ -140,6 +141,7 @@ class YamlFileLoader extends FileLoader
             foreach ($config['path'] as $locale => $path) {
                 $localizedRoute = clone $route;
                 $localizedRoute->setDefault('_locale', $locale);
+                $localizedRoute->setRequirement('_locale', preg_quote($locale, RouteCompiler::REGEX_DELIMITER));
                 $localizedRoute->setDefault('_canonical_route', $name);
                 $localizedRoute->setPath($path);
                 $collection->add($name.'.'.$locale, $localizedRoute);
@@ -214,6 +216,7 @@ class YamlFileLoader extends FileLoader
                         foreach ($prefix as $locale => $localePrefix) {
                             $localizedRoute = clone $route;
                             $localizedRoute->setDefault('_locale', $locale);
+                            $localizedRoute->setRequirement('_locale', preg_quote($locale, RouteCompiler::REGEX_DELIMITER));
                             $localizedRoute->setDefault('_canonical_route', $name);
                             $localizedRoute->setPath($localePrefix.(!$trailingSlashOnRoot && '/' === $route->getPath() ? '' : $route->getPath()));
                             $subCollection->add($name.'.'.$locale, $localizedRoute);
diff --git a/vendor/symfony/routing/README.md b/vendor/symfony/routing/README.md
index 88fb1fde5..03b258ec8 100644
--- a/vendor/symfony/routing/README.md
+++ b/vendor/symfony/routing/README.md
@@ -3,10 +3,48 @@ Routing Component
 
 The Routing component maps an HTTP request to a set of configuration variables.
 
+Getting Started
+---------------
+
+```
+$ composer require symfony/routing
+```
+
+```php
+use App\Controller\BlogController;
+use Symfony\Component\Routing\Generator\UrlGenerator;
+use Symfony\Component\Routing\Matcher\UrlMatcher;
+use Symfony\Component\Routing\RequestContext;
+use Symfony\Component\Routing\Route;
+use Symfony\Component\Routing\RouteCollection;
+
+$route = new Route('/blog/{slug}', ['_controller' => BlogController::class]);
+$routes = new RouteCollection();
+$routes->add('blog_show', $route);
+
+$context = new RequestContext();
+
+// Routing can match routes with incoming requests
+$matcher = new UrlMatcher($routes, $context);
+$parameters = $matcher->match('/blog/lorem-ipsum');
+// $parameters = [
+//     '_controller' => 'App\Controller\BlogController',
+//     'slug' => 'lorem-ipsum',
+//     '_route' => 'blog_show'
+// ]
+
+// Routing can also generate URLs for a given route
+$generator = new UrlGenerator($routes, $context);
+$url = $generator->generate('blog_show', [
+    'slug' => 'my-blog-post',
+]);
+// $url = '/blog/my-blog-post'
+```
+
 Resources
 ---------
 
-  * [Documentation](https://symfony.com/doc/current/components/routing/index.html)
+  * [Documentation](https://symfony.com/doc/current/routing.html)
   * [Contributing](https://symfony.com/doc/current/contributing/index.html)
   * [Report issues](https://github.com/symfony/symfony/issues) and
     [send Pull Requests](https://github.com/symfony/symfony/pulls)
diff --git a/vendor/symfony/routing/Route.php b/vendor/symfony/routing/Route.php
index 03ec76e0d..de98e1d76 100644
--- a/vendor/symfony/routing/Route.php
+++ b/vendor/symfony/routing/Route.php
@@ -376,6 +376,10 @@ class Route implements \Serializable
      */
     public function addDefaults(array $defaults)
     {
+        if (isset($defaults['_locale']) && $this->isLocalized()) {
+            unset($defaults['_locale']);
+        }
+
         foreach ($defaults as $name => $default) {
             $this->defaults[$name] = $default;
         }
@@ -418,6 +422,10 @@ class Route implements \Serializable
      */
     public function setDefault($name, $default)
     {
+        if ('_locale' === $name && $this->isLocalized()) {
+            return $this;
+        }
+
         $this->defaults[$name] = $default;
         $this->compiled = null;
 
@@ -461,6 +469,10 @@ class Route implements \Serializable
      */
     public function addRequirements(array $requirements)
     {
+        if (isset($requirements['_locale']) && $this->isLocalized()) {
+            unset($requirements['_locale']);
+        }
+
         foreach ($requirements as $key => $regex) {
             $this->requirements[$key] = $this->sanitizeRequirement($key, $regex);
         }
@@ -503,6 +515,10 @@ class Route implements \Serializable
      */
     public function setRequirement($key, $regex)
     {
+        if ('_locale' === $key && $this->isLocalized()) {
+            return $this;
+        }
+
         $this->requirements[$key] = $this->sanitizeRequirement($key, $regex);
         $this->compiled = null;
 
@@ -577,4 +593,9 @@ class Route implements \Serializable
 
         return $regex;
     }
+
+    private function isLocalized(): bool
+    {
+        return isset($this->defaults['_locale']) && isset($this->defaults['_canonical_route']) && ($this->requirements['_locale'] ?? null) === preg_quote($this->defaults['_locale'], RouteCompiler::REGEX_DELIMITER);
+    }
 }
diff --git a/vendor/symfony/routing/RouteCompiler.php b/vendor/symfony/routing/RouteCompiler.php
index 59f3a327e..aac2ee893 100644
--- a/vendor/symfony/routing/RouteCompiler.php
+++ b/vendor/symfony/routing/RouteCompiler.php
@@ -61,6 +61,14 @@ class RouteCompiler implements RouteCompilerInterface
             $hostRegex = $result['regex'];
         }
 
+        $locale = $route->getDefault('_locale');
+        if (null !== $locale && null !== $route->getDefault('_canonical_route') && preg_quote($locale, self::REGEX_DELIMITER) === $route->getRequirement('_locale')) {
+            $requirements = $route->getRequirements();
+            unset($requirements['_locale']);
+            $route->setRequirements($requirements);
+            $route->setPath(str_replace('{_locale}', $locale, $route->getPath()));
+        }
+
         $path = $route->getPath();
 
         $result = self::compilePattern($route, $path, false);
@@ -139,7 +147,7 @@ class RouteCompiler implements RouteCompilerInterface
             }
 
             if (\strlen($varName) > self::VARIABLE_MAXIMUM_LENGTH) {
-                throw new \DomainException(sprintf('Variable name "%s" cannot be longer than %s characters in route pattern "%s". Please use a shorter name.', $varName, self::VARIABLE_MAXIMUM_LENGTH, $pattern));
+                throw new \DomainException(sprintf('Variable name "%s" cannot be longer than %d characters in route pattern "%s". Please use a shorter name.', $varName, self::VARIABLE_MAXIMUM_LENGTH, $pattern));
             }
 
             if ($isSeparator && $precedingText !== $precedingChar) {
diff --git a/vendor/symfony/routing/Router.php b/vendor/symfony/routing/Router.php
index fe540e70f..9351fa097 100644
--- a/vendor/symfony/routing/Router.php
+++ b/vendor/symfony/routing/Router.php
@@ -97,6 +97,8 @@ class Router implements RouterInterface, RequestMatcherInterface
      */
     private $expressionLanguageProviders = [];
 
+    private static $cache = [];
+
     /**
      * @param mixed $resource The main resource to load
      */
@@ -283,7 +285,7 @@ class Router implements RouterInterface, RequestMatcherInterface
             return $this->matcher;
         }
 
-        $compiled = is_a($this->options['matcher_class'], CompiledUrlMatcher::class, true) && (UrlMatcher::class === $this->options['matcher_base_class'] || RedirectableUrlMatcher::class === $this->options['matcher_base_class']);
+        $compiled = is_a($this->options['matcher_class'], CompiledUrlMatcher::class, true) && (UrlMatcher::class === $this->options['matcher_base_class'] || RedirectableUrlMatcher::class === $this->options['matcher_base_class']) && is_a($this->options['matcher_dumper_class'], CompiledUrlMatcherDumper::class, true);
 
         if (null === $this->options['cache_dir'] || null === $this->options['matcher_cache_class']) {
             $routes = $this->getRouteCollection();
@@ -319,7 +321,7 @@ class Router implements RouterInterface, RequestMatcherInterface
         );
 
         if ($compiled) {
-            return $this->matcher = new $this->options['matcher_class'](require $cache->getPath(), $this->context);
+            return $this->matcher = new $this->options['matcher_class'](self::getCompiledRoutes($cache->getPath()), $this->context);
         }
 
         if (!class_exists($this->options['matcher_cache_class'], false)) {
@@ -340,7 +342,7 @@ class Router implements RouterInterface, RequestMatcherInterface
             return $this->generator;
         }
 
-        $compiled = is_a($this->options['generator_class'], CompiledUrlGenerator::class, true) && UrlGenerator::class === $this->options['generator_base_class'];
+        $compiled = is_a($this->options['generator_class'], CompiledUrlGenerator::class, true) && UrlGenerator::class === $this->options['generator_base_class'] && is_a($this->options['generator_dumper_class'], CompiledUrlGeneratorDumper::class, true);
 
         if (null === $this->options['cache_dir'] || null === $this->options['generator_cache_class']) {
             $routes = $this->getRouteCollection();
@@ -363,7 +365,7 @@ class Router implements RouterInterface, RequestMatcherInterface
             );
 
             if ($compiled) {
-                $this->generator = new $this->options['generator_class'](require $cache->getPath(), $this->context, $this->logger, $this->defaultLocale);
+                $this->generator = new $this->options['generator_class'](self::getCompiledRoutes($cache->getPath()), $this->context, $this->logger, $this->defaultLocale);
             } else {
                 if (!class_exists($this->options['generator_cache_class'], false)) {
                     require_once $cache->getPath();
@@ -390,8 +392,8 @@ class Router implements RouterInterface, RequestMatcherInterface
      */
     protected function getGeneratorDumperInstance()
     {
-        // For BC, fallback to PhpGeneratorDumper if the UrlGenerator and UrlGeneratorDumper are not consistent with each other
-        if (is_a($this->options['generator_class'], CompiledUrlGenerator::class, true) !== is_a($this->options['generator_dumper_class'], CompiledUrlGeneratorDumper::class, true)) {
+        // For BC, fallback to PhpGeneratorDumper (which is the old default value) if the old UrlGenerator is used with the new default CompiledUrlGeneratorDumper
+        if (!is_a($this->options['generator_class'], CompiledUrlGenerator::class, true) && is_a($this->options['generator_dumper_class'], CompiledUrlGeneratorDumper::class, true)) {
             return new PhpGeneratorDumper($this->getRouteCollection());
         }
 
@@ -403,8 +405,8 @@ class Router implements RouterInterface, RequestMatcherInterface
      */
     protected function getMatcherDumperInstance()
     {
-        // For BC, fallback to PhpMatcherDumper if the UrlMatcher and UrlMatcherDumper are not consistent with each other
-        if (is_a($this->options['matcher_class'], CompiledUrlMatcher::class, true) !== is_a($this->options['matcher_dumper_class'], CompiledUrlMatcherDumper::class, true)) {
+        // For BC, fallback to PhpMatcherDumper (which is the old default value) if the old UrlMatcher is used with the new default CompiledUrlMatcherDumper
+        if (!is_a($this->options['matcher_class'], CompiledUrlMatcher::class, true) && is_a($this->options['matcher_dumper_class'], CompiledUrlMatcherDumper::class, true)) {
             return new PhpMatcherDumper($this->getRouteCollection());
         }
 
@@ -434,4 +436,21 @@ class Router implements RouterInterface, RequestMatcherInterface
                 @trigger_error(sprintf('Option "%s" given to router %s is deprecated since Symfony 4.3.', $key, static::class), E_USER_DEPRECATED);
         }
     }
+
+    private static function getCompiledRoutes(string $path): array
+    {
+        if ([] === self::$cache && \function_exists('opcache_invalidate') && filter_var(ini_get('opcache.enable'), FILTER_VALIDATE_BOOLEAN) && (!\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) || filter_var(ini_get('opcache.enable_cli'), FILTER_VALIDATE_BOOLEAN))) {
+            self::$cache = null;
+        }
+
+        if (null === self::$cache) {
+            return require $path;
+        }
+
+        if (isset(self::$cache[$path])) {
+            return self::$cache[$path];
+        }
+
+        return self::$cache[$path] = require $path;
+    }
 }
diff --git a/vendor/symfony/translation/.gitattributes b/vendor/symfony/translation/.gitattributes
deleted file mode 100644
index ebb928704..000000000
--- a/vendor/symfony/translation/.gitattributes
+++ /dev/null
@@ -1,3 +0,0 @@
-/Tests export-ignore
-/phpunit.xml.dist export-ignore
-/.gitignore export-ignore
diff --git a/vendor/symfony/translation/Catalogue/AbstractOperation.php b/vendor/symfony/translation/Catalogue/AbstractOperation.php
index 919bab8ff..4953563db 100644
--- a/vendor/symfony/translation/Catalogue/AbstractOperation.php
+++ b/vendor/symfony/translation/Catalogue/AbstractOperation.php
@@ -91,7 +91,7 @@ abstract class AbstractOperation implements OperationInterface
     public function getMessages($domain)
     {
         if (!\in_array($domain, $this->getDomains())) {
-            throw new InvalidArgumentException(sprintf('Invalid domain: %s.', $domain));
+            throw new InvalidArgumentException(sprintf('Invalid domain: "%s".', $domain));
         }
 
         if (!isset($this->messages[$domain]['all'])) {
@@ -107,7 +107,7 @@ abstract class AbstractOperation implements OperationInterface
     public function getNewMessages($domain)
     {
         if (!\in_array($domain, $this->getDomains())) {
-            throw new InvalidArgumentException(sprintf('Invalid domain: %s.', $domain));
+            throw new InvalidArgumentException(sprintf('Invalid domain: "%s".', $domain));
         }
 
         if (!isset($this->messages[$domain]['new'])) {
@@ -123,7 +123,7 @@ abstract class AbstractOperation implements OperationInterface
     public function getObsoleteMessages($domain)
     {
         if (!\in_array($domain, $this->getDomains())) {
-            throw new InvalidArgumentException(sprintf('Invalid domain: %s.', $domain));
+            throw new InvalidArgumentException(sprintf('Invalid domain: "%s".', $domain));
         }
 
         if (!isset($this->messages[$domain]['obsolete'])) {
diff --git a/vendor/symfony/translation/Command/XliffLintCommand.php b/vendor/symfony/translation/Command/XliffLintCommand.php
index 770a15e20..3f8fe7321 100644
--- a/vendor/symfony/translation/Command/XliffLintCommand.php
+++ b/vendor/symfony/translation/Command/XliffLintCommand.php
@@ -18,6 +18,7 @@ use Symfony\Component\Console\Input\InputInterface;
 use Symfony\Component\Console\Input\InputOption;
 use Symfony\Component\Console\Output\OutputInterface;
 use Symfony\Component\Console\Style\SymfonyStyle;
+use Symfony\Component\Translation\Exception\InvalidArgumentException;
 use Symfony\Component\Translation\Util\XliffUtils;
 
 /**
diff --git a/vendor/symfony/translation/DataCollector/TranslationDataCollector.php b/vendor/symfony/translation/DataCollector/TranslationDataCollector.php
index 92c52dc9d..9b6da1102 100644
--- a/vendor/symfony/translation/DataCollector/TranslationDataCollector.php
+++ b/vendor/symfony/translation/DataCollector/TranslationDataCollector.php
@@ -16,6 +16,7 @@ use Symfony\Component\HttpFoundation\Response;
 use Symfony\Component\HttpKernel\DataCollector\DataCollector;
 use Symfony\Component\HttpKernel\DataCollector\LateDataCollectorInterface;
 use Symfony\Component\Translation\DataCollectorTranslator;
+use Symfony\Component\VarDumper\Cloner\Data;
 
 /**
  * @author Abdellatif Ait boudad 
diff --git a/vendor/symfony/translation/DataCollectorTranslator.php b/vendor/symfony/translation/DataCollectorTranslator.php
index 1c672b7f4..94b9e3e5c 100644
--- a/vendor/symfony/translation/DataCollectorTranslator.php
+++ b/vendor/symfony/translation/DataCollectorTranslator.php
@@ -39,7 +39,7 @@ class DataCollectorTranslator implements LegacyTranslatorInterface, TranslatorIn
     public function __construct($translator)
     {
         if (!$translator instanceof LegacyTranslatorInterface && !$translator instanceof TranslatorInterface) {
-            throw new \TypeError(sprintf('Argument 1 passed to %s() must be an instance of %s, %s given.', __METHOD__, TranslatorInterface::class, \is_object($translator) ? \get_class($translator) : \gettype($translator)));
+            throw new \TypeError(sprintf('Argument 1 passed to "%s()" must be an instance of "%s", "%s" given.', __METHOD__, TranslatorInterface::class, \is_object($translator) ? \get_class($translator) : \gettype($translator)));
         }
         if (!$translator instanceof TranslatorBagInterface || !$translator instanceof LocaleAwareInterface) {
             throw new InvalidArgumentException(sprintf('The Translator "%s" must implement TranslatorInterface, TranslatorBagInterface and LocaleAwareInterface.', \get_class($translator)));
diff --git a/vendor/symfony/translation/Extractor/PhpExtractor.php b/vendor/symfony/translation/Extractor/PhpExtractor.php
index 265b8d768..5237bf662 100644
--- a/vendor/symfony/translation/Extractor/PhpExtractor.php
+++ b/vendor/symfony/translation/Extractor/PhpExtractor.php
@@ -200,7 +200,7 @@ class PhpExtractor extends AbstractFileExtractor implements ExtractorInterface
      */
     protected function parseTokens($tokens, MessageCatalogue $catalog/*, string $filename*/)
     {
-        if (\func_num_args() < 3 && __CLASS__ !== \get_class($this) && __CLASS__ !== (new \ReflectionMethod($this, __FUNCTION__))->getDeclaringClass()->getName() && !$this instanceof \PHPUnit\Framework\MockObject\MockObject && !$this instanceof \Prophecy\Prophecy\ProphecySubjectInterface) {
+        if (\func_num_args() < 3 && __CLASS__ !== static::class && __CLASS__ !== (new \ReflectionMethod($this, __FUNCTION__))->getDeclaringClass()->getName() && !$this instanceof \PHPUnit\Framework\MockObject\MockObject && !$this instanceof \Prophecy\Prophecy\ProphecySubjectInterface) {
             @trigger_error(sprintf('The "%s()" method will have a new "string $filename" argument in version 5.0, not defining it is deprecated since Symfony 4.3.', __METHOD__), E_USER_DEPRECATED);
         }
         $filename = 2 < \func_num_args() ? func_get_arg(2) : '';
diff --git a/vendor/symfony/translation/Formatter/IntlFormatter.php b/vendor/symfony/translation/Formatter/IntlFormatter.php
index ad4a45b95..9101a63aa 100644
--- a/vendor/symfony/translation/Formatter/IntlFormatter.php
+++ b/vendor/symfony/translation/Formatter/IntlFormatter.php
@@ -40,7 +40,7 @@ class IntlFormatter implements IntlFormatterInterface
             try {
                 $this->cache[$locale][$message] = $formatter = new \MessageFormatter($locale, $message);
             } catch (\IntlException $e) {
-                throw new InvalidArgumentException(sprintf('Invalid message format (error #%d): %s.', intl_get_error_code(), intl_get_error_message()), 0, $e);
+                throw new InvalidArgumentException(sprintf('Invalid message format (error #%d): '.intl_get_error_message(), intl_get_error_code()), 0, $e);
             }
         }
 
@@ -52,7 +52,7 @@ class IntlFormatter implements IntlFormatterInterface
         }
 
         if (false === $message = $formatter->format($parameters)) {
-            throw new InvalidArgumentException(sprintf('Unable to format message (error #%s): %s.', $formatter->getErrorCode(), $formatter->getErrorMessage()));
+            throw new InvalidArgumentException(sprintf('Unable to format message (error #%s): '.$formatter->getErrorMessage(), $formatter->getErrorCode()));
         }
 
         return $message;
diff --git a/vendor/symfony/translation/Formatter/MessageFormatter.php b/vendor/symfony/translation/Formatter/MessageFormatter.php
index 030d7a5c3..a16764069 100644
--- a/vendor/symfony/translation/Formatter/MessageFormatter.php
+++ b/vendor/symfony/translation/Formatter/MessageFormatter.php
@@ -16,6 +16,9 @@ use Symfony\Component\Translation\MessageSelector;
 use Symfony\Component\Translation\TranslatorInterface as LegacyTranslatorInterface;
 use Symfony\Contracts\Translation\TranslatorInterface;
 
+// Help opcache.preload discover always-needed symbols
+class_exists(IntlFormatter::class);
+
 /**
  * @author Abdellatif Ait boudad 
  */
@@ -32,7 +35,7 @@ class MessageFormatter implements MessageFormatterInterface, IntlFormatterInterf
         if ($translator instanceof MessageSelector) {
             $translator = new IdentityTranslator($translator);
         } elseif (null !== $translator && !$translator instanceof TranslatorInterface && !$translator instanceof LegacyTranslatorInterface) {
-            throw new \TypeError(sprintf('Argument 1 passed to %s() must be an instance of %s, %s given.', __METHOD__, TranslatorInterface::class, \is_object($translator) ? \get_class($translator) : \gettype($translator)));
+            throw new \TypeError(sprintf('Argument 1 passed to "%s()" must be an instance of "%s", "%s" given.', __METHOD__, TranslatorInterface::class, \is_object($translator) ? \get_class($translator) : \gettype($translator)));
         }
 
         $this->translator = $translator ?? new IdentityTranslator();
diff --git a/vendor/symfony/translation/IdentityTranslator.php b/vendor/symfony/translation/IdentityTranslator.php
index 9a5a47c20..87b40bf8f 100644
--- a/vendor/symfony/translation/IdentityTranslator.php
+++ b/vendor/symfony/translation/IdentityTranslator.php
@@ -33,7 +33,7 @@ class IdentityTranslator implements LegacyTranslatorInterface, TranslatorInterfa
     {
         $this->selector = $selector;
 
-        if (__CLASS__ !== \get_class($this)) {
+        if (__CLASS__ !== static::class) {
             @trigger_error(sprintf('Calling "%s()" is deprecated since Symfony 4.2.', __METHOD__), E_USER_DEPRECATED);
         }
     }
diff --git a/vendor/symfony/translation/LICENSE b/vendor/symfony/translation/LICENSE
index a677f4376..9e936ec04 100644
--- a/vendor/symfony/translation/LICENSE
+++ b/vendor/symfony/translation/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2019 Fabien Potencier
+Copyright (c) 2004-2020 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/vendor/symfony/translation/Loader/IcuDatFileLoader.php b/vendor/symfony/translation/Loader/IcuDatFileLoader.php
index 7bbf4c200..545c2b02b 100644
--- a/vendor/symfony/translation/Loader/IcuDatFileLoader.php
+++ b/vendor/symfony/translation/Loader/IcuDatFileLoader.php
@@ -43,7 +43,7 @@ class IcuDatFileLoader extends IcuResFileLoader
         }
 
         if (!$rb) {
-            throw new InvalidResourceException(sprintf('Cannot load resource "%s"', $resource));
+            throw new InvalidResourceException(sprintf('Cannot load resource "%s".', $resource));
         } elseif (intl_is_failure($rb->getErrorCode())) {
             throw new InvalidResourceException($rb->getErrorMessage(), $rb->getErrorCode());
         }
diff --git a/vendor/symfony/translation/Loader/IcuResFileLoader.php b/vendor/symfony/translation/Loader/IcuResFileLoader.php
index 005f26084..6dddf63f2 100644
--- a/vendor/symfony/translation/Loader/IcuResFileLoader.php
+++ b/vendor/symfony/translation/Loader/IcuResFileLoader.php
@@ -43,7 +43,7 @@ class IcuResFileLoader implements LoaderInterface
         }
 
         if (!$rb) {
-            throw new InvalidResourceException(sprintf('Cannot load resource "%s"', $resource));
+            throw new InvalidResourceException(sprintf('Cannot load resource "%s".', $resource));
         } elseif (intl_is_failure($rb->getErrorCode())) {
             throw new InvalidResourceException($rb->getErrorMessage(), $rb->getErrorCode());
         }
diff --git a/vendor/symfony/translation/Loader/JsonFileLoader.php b/vendor/symfony/translation/Loader/JsonFileLoader.php
index e3e7c75d1..9f15dbc62 100644
--- a/vendor/symfony/translation/Loader/JsonFileLoader.php
+++ b/vendor/symfony/translation/Loader/JsonFileLoader.php
@@ -30,7 +30,7 @@ class JsonFileLoader extends FileLoader
             $messages = json_decode($data, true);
 
             if (0 < $errorCode = json_last_error()) {
-                throw new InvalidResourceException(sprintf('Error parsing JSON - %s', $this->getJSONErrorMessage($errorCode)));
+                throw new InvalidResourceException('Error parsing JSON: '.$this->getJSONErrorMessage($errorCode));
             }
         }
 
diff --git a/vendor/symfony/translation/Loader/PhpFileLoader.php b/vendor/symfony/translation/Loader/PhpFileLoader.php
index a0050e8db..0991c3d3a 100644
--- a/vendor/symfony/translation/Loader/PhpFileLoader.php
+++ b/vendor/symfony/translation/Loader/PhpFileLoader.php
@@ -18,11 +18,25 @@ namespace Symfony\Component\Translation\Loader;
  */
 class PhpFileLoader extends FileLoader
 {
+    private static $cache = [];
+
     /**
      * {@inheritdoc}
      */
     protected function loadResource($resource)
     {
-        return require $resource;
+        if ([] === self::$cache && \function_exists('opcache_invalidate') && filter_var(ini_get('opcache.enable'), FILTER_VALIDATE_BOOLEAN) && (!\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) || filter_var(ini_get('opcache.enable_cli'), FILTER_VALIDATE_BOOLEAN))) {
+            self::$cache = null;
+        }
+
+        if (null === self::$cache) {
+            return require $resource;
+        }
+
+        if (isset(self::$cache[$resource])) {
+            return self::$cache[$resource];
+        }
+
+        return self::$cache[$resource] = require $resource;
     }
 }
diff --git a/vendor/symfony/translation/Loader/XliffFileLoader.php b/vendor/symfony/translation/Loader/XliffFileLoader.php
index 15a6ee5cf..d7741a071 100644
--- a/vendor/symfony/translation/Loader/XliffFileLoader.php
+++ b/vendor/symfony/translation/Loader/XliffFileLoader.php
@@ -53,12 +53,12 @@ class XliffFileLoader implements LoaderInterface
         try {
             $dom = XmlUtils::loadFile($resource);
         } catch (\InvalidArgumentException $e) {
-            throw new InvalidResourceException(sprintf('Unable to load "%s": %s', $resource, $e->getMessage()), $e->getCode(), $e);
+            throw new InvalidResourceException(sprintf('Unable to load "%s": '.$e->getMessage(), $resource), $e->getCode(), $e);
         }
 
         $xliffVersion = XliffUtils::getVersionNumber($dom);
         if ($errors = XliffUtils::validateSchema($dom)) {
-            throw new InvalidResourceException(sprintf('Invalid resource provided: "%s"; Errors: %s', $resource, XliffUtils::getErrorsAsString($errors)));
+            throw new InvalidResourceException(sprintf('Invalid resource provided: "%s"; Errors: '.XliffUtils::getErrorsAsString($errors), $resource));
         }
 
         if ('1.2' === $xliffVersion) {
diff --git a/vendor/symfony/translation/Loader/YamlFileLoader.php b/vendor/symfony/translation/Loader/YamlFileLoader.php
index 438d7d764..9502e167c 100644
--- a/vendor/symfony/translation/Loader/YamlFileLoader.php
+++ b/vendor/symfony/translation/Loader/YamlFileLoader.php
@@ -42,7 +42,7 @@ class YamlFileLoader extends FileLoader
         try {
             $messages = $this->yamlParser->parseFile($resource, Yaml::PARSE_CONSTANT);
         } catch (ParseException $e) {
-            throw new InvalidResourceException(sprintf('Error parsing YAML, invalid file "%s"', $resource), 0, $e);
+            throw new InvalidResourceException(sprintf('Error parsing YAML, invalid file "%s".', $resource), 0, $e);
         }
 
         if (null !== $messages && !\is_array($messages)) {
diff --git a/vendor/symfony/translation/LoggingTranslator.php b/vendor/symfony/translation/LoggingTranslator.php
index 812136fcd..a00119295 100644
--- a/vendor/symfony/translation/LoggingTranslator.php
+++ b/vendor/symfony/translation/LoggingTranslator.php
@@ -35,7 +35,7 @@ class LoggingTranslator implements TranslatorInterface, LegacyTranslatorInterfac
     public function __construct($translator, LoggerInterface $logger)
     {
         if (!$translator instanceof LegacyTranslatorInterface && !$translator instanceof TranslatorInterface) {
-            throw new \TypeError(sprintf('Argument 1 passed to %s() must be an instance of %s, %s given.', __METHOD__, TranslatorInterface::class, \is_object($translator) ? \get_class($translator) : \gettype($translator)));
+            throw new \TypeError(sprintf('Argument 1 passed to "%s()" must be an instance of "%s", "%s" given.', __METHOD__, TranslatorInterface::class, \is_object($translator) ? \get_class($translator) : \gettype($translator)));
         }
         if (!$translator instanceof TranslatorBagInterface || !$translator instanceof LocaleAwareInterface) {
             throw new InvalidArgumentException(sprintf('The Translator "%s" must implement TranslatorInterface, TranslatorBagInterface and LocaleAwareInterface.', \get_class($translator)));
diff --git a/vendor/symfony/translation/MessageCatalogue.php b/vendor/symfony/translation/MessageCatalogue.php
index 40714a628..0aee3f849 100644
--- a/vendor/symfony/translation/MessageCatalogue.php
+++ b/vendor/symfony/translation/MessageCatalogue.php
@@ -158,9 +158,19 @@ class MessageCatalogue implements MessageCatalogueInterface, MetadataAwareInterf
     public function add($messages, $domain = 'messages')
     {
         if (!isset($this->messages[$domain])) {
-            $this->messages[$domain] = $messages;
-        } else {
-            $this->messages[$domain] = array_replace($this->messages[$domain], $messages);
+            $this->messages[$domain] = [];
+        }
+        $intlDomain = $domain;
+        $suffixLength = \strlen(self::INTL_DOMAIN_SUFFIX);
+        if (\strlen($domain) > $suffixLength && false !== strpos($domain, self::INTL_DOMAIN_SUFFIX, -$suffixLength)) {
+            $intlDomain .= self::INTL_DOMAIN_SUFFIX;
+        }
+        foreach ($messages as $id => $message) {
+            if (isset($this->messages[$intlDomain]) && \array_key_exists($id, $this->messages[$intlDomain])) {
+                $this->messages[$intlDomain][$id] = $message;
+            } else {
+                $this->messages[$domain][$id] = $message;
+            }
         }
     }
 
@@ -170,7 +180,7 @@ class MessageCatalogue implements MessageCatalogueInterface, MetadataAwareInterf
     public function addCatalogue(MessageCatalogueInterface $catalogue)
     {
         if ($catalogue->getLocale() !== $this->locale) {
-            throw new LogicException(sprintf('Cannot add a catalogue for locale "%s" as the current locale for this catalogue is "%s"', $catalogue->getLocale(), $this->locale));
+            throw new LogicException(sprintf('Cannot add a catalogue for locale "%s" as the current locale for this catalogue is "%s".', $catalogue->getLocale(), $this->locale));
         }
 
         foreach ($catalogue->all() as $domain => $messages) {
diff --git a/vendor/symfony/translation/README.md b/vendor/symfony/translation/README.md
index 46f3d1f2f..f4f170667 100644
--- a/vendor/symfony/translation/README.md
+++ b/vendor/symfony/translation/README.md
@@ -3,10 +3,28 @@ Translation Component
 
 The Translation component provides tools to internationalize your application.
 
+Getting Started
+---------------
+
+```
+$ composer require symfony/translation
+```
+
+```php
+use Symfony\Component\Translation\Translator;
+
+$translator = new Translator('fr_FR');
+$translator->addResource('array', [
+    'Hello World!' => 'Bonjour !',
+], 'fr_FR');
+
+echo $translator->trans('Hello World!'); // outputs « Bonjour ! »
+```
+
 Resources
 ---------
 
-  * [Documentation](https://symfony.com/doc/current/components/translation/index.html)
+  * [Documentation](https://symfony.com/doc/current/translation.html)
   * [Contributing](https://symfony.com/doc/current/contributing/index.html)
   * [Report issues](https://github.com/symfony/symfony/issues) and
     [send Pull Requests](https://github.com/symfony/symfony/pulls)
diff --git a/vendor/symfony/translation/Translator.php b/vendor/symfony/translation/Translator.php
index 4e413da7a..9876051ea 100644
--- a/vendor/symfony/translation/Translator.php
+++ b/vendor/symfony/translation/Translator.php
@@ -471,10 +471,17 @@ EOF
         while ($locale) {
             $parent = $parentLocales[$locale] ?? null;
 
-            if (!$parent && false !== strrchr($locale, '_')) {
-                $locale = substr($locale, 0, -\strlen(strrchr($locale, '_')));
-            } elseif ('root' !== $parent) {
-                $locale = $parent;
+            if ($parent) {
+                $locale = 'root' !== $parent ? $parent : null;
+            } elseif (\function_exists('locale_parse')) {
+                $localeSubTags = locale_parse($locale);
+                $locale = null;
+                if (1 < \count($localeSubTags)) {
+                    array_pop($localeSubTags);
+                    $locale = locale_compose($localeSubTags) ?: null;
+                }
+            } elseif ($i = strrpos($locale, '_') ?: strrpos($locale, '-')) {
+                $locale = substr($locale, 0, $i);
             } else {
                 $locale = null;
             }
diff --git a/vendor/symfony/translation/Util/XliffUtils.php b/vendor/symfony/translation/Util/XliffUtils.php
index 3ace285bf..b5ff4ef4a 100644
--- a/vendor/symfony/translation/Util/XliffUtils.php
+++ b/vendor/symfony/translation/Util/XliffUtils.php
@@ -41,7 +41,7 @@ class XliffUtils
             $namespace = $xliff->attributes->getNamedItem('xmlns');
             if ($namespace) {
                 if (0 !== substr_compare('urn:oasis:names:tc:xliff:document:', $namespace->nodeValue, 0, 34)) {
-                    throw new InvalidArgumentException(sprintf('Not a valid XLIFF namespace "%s"', $namespace));
+                    throw new InvalidArgumentException(sprintf('Not a valid XLIFF namespace "%s".', $namespace));
                 }
 
                 return substr($namespace, 34);
diff --git a/vendor/symfony/translation/Writer/TranslationWriter.php b/vendor/symfony/translation/Writer/TranslationWriter.php
index d40244313..a981b8d62 100644
--- a/vendor/symfony/translation/Writer/TranslationWriter.php
+++ b/vendor/symfony/translation/Writer/TranslationWriter.php
@@ -79,7 +79,7 @@ class TranslationWriter implements TranslationWriterInterface
         $dumper = $this->dumpers[$format];
 
         if (isset($options['path']) && !is_dir($options['path']) && !@mkdir($options['path'], 0777, true) && !is_dir($options['path'])) {
-            throw new RuntimeException(sprintf('Translation Writer was not able to create directory "%s"', $options['path']));
+            throw new RuntimeException(sprintf('Translation Writer was not able to create directory "%s".', $options['path']));
         }
 
         // save
diff --git a/vendor/symfony/var-dumper/.gitattributes b/vendor/symfony/var-dumper/.gitattributes
deleted file mode 100644
index ebb928704..000000000
--- a/vendor/symfony/var-dumper/.gitattributes
+++ /dev/null
@@ -1,3 +0,0 @@
-/Tests export-ignore
-/phpunit.xml.dist export-ignore
-/.gitignore export-ignore
diff --git a/vendor/symfony/var-dumper/Caster/ClassStub.php b/vendor/symfony/var-dumper/Caster/ClassStub.php
index 758fe57bb..c998b49f2 100644
--- a/vendor/symfony/var-dumper/Caster/ClassStub.php
+++ b/vendor/symfony/var-dumper/Caster/ClassStub.php
@@ -56,7 +56,7 @@ class ClassStub extends ConstStub
             }
 
             if (false !== strpos($identifier, "class@anonymous\0")) {
-                $this->value = $identifier = preg_replace_callback('/class@anonymous\x00.*?\.php(?:0x?|:)[0-9a-fA-F]++/', function ($m) {
+                $this->value = $identifier = preg_replace_callback('/class@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)[0-9a-fA-F]++/', function ($m) {
                     return class_exists($m[0], false) ? get_parent_class($m[0]).'@anonymous' : $m[0];
                 }, $identifier);
             }
diff --git a/vendor/symfony/var-dumper/Caster/DateCaster.php b/vendor/symfony/var-dumper/Caster/DateCaster.php
index 26925170a..6b264c795 100644
--- a/vendor/symfony/var-dumper/Caster/DateCaster.php
+++ b/vendor/symfony/var-dumper/Caster/DateCaster.php
@@ -35,7 +35,11 @@ class DateCaster
             .($location ? ($d->format('I') ? "\nDST On" : "\nDST Off") : '')
         ;
 
-        $a = [];
+        unset(
+            $a[Caster::PREFIX_DYNAMIC.'date'],
+            $a[Caster::PREFIX_DYNAMIC.'timezone'],
+            $a[Caster::PREFIX_DYNAMIC.'timezone_type']
+        );
         $a[$prefix.'date'] = new ConstStub(self::formatDateTime($d, $location ? ' e (P)' : ' P'), $title);
 
         $stub->class .= $d->format(' @U');
diff --git a/vendor/symfony/var-dumper/Caster/ExceptionCaster.php b/vendor/symfony/var-dumper/Caster/ExceptionCaster.php
index a2a21a56e..9fe1e39ae 100644
--- a/vendor/symfony/var-dumper/Caster/ExceptionCaster.php
+++ b/vendor/symfony/var-dumper/Caster/ExceptionCaster.php
@@ -283,7 +283,7 @@ class ExceptionCaster
         unset($a[$xPrefix.'string'], $a[Caster::PREFIX_DYNAMIC.'xdebug_message'], $a[Caster::PREFIX_DYNAMIC.'__destructorException']);
 
         if (isset($a[Caster::PREFIX_PROTECTED.'message']) && false !== strpos($a[Caster::PREFIX_PROTECTED.'message'], "class@anonymous\0")) {
-            $a[Caster::PREFIX_PROTECTED.'message'] = preg_replace_callback('/class@anonymous\x00.*?\.php(?:0x?|:)[0-9a-fA-F]++/', function ($m) {
+            $a[Caster::PREFIX_PROTECTED.'message'] = preg_replace_callback('/class@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)[0-9a-fA-F]++/', function ($m) {
                 return class_exists($m[0], false) ? get_parent_class($m[0]).'@anonymous' : $m[0];
             }, $a[Caster::PREFIX_PROTECTED.'message']);
         }
diff --git a/vendor/symfony/var-dumper/Cloner/Data.php b/vendor/symfony/var-dumper/Cloner/Data.php
index 7e148bf49..8461de948 100644
--- a/vendor/symfony/var-dumper/Cloner/Data.php
+++ b/vendor/symfony/var-dumper/Cloner/Data.php
@@ -122,7 +122,7 @@ class Data implements \ArrayAccess, \Countable, \IteratorAggregate
     public function getIterator()
     {
         if (!\is_array($value = $this->getValue())) {
-            throw new \LogicException(sprintf('%s object holds non-iterable type "%s".', self::class, \gettype($value)));
+            throw new \LogicException(sprintf('"%s" object holds non-iterable type "%s".', self::class, \gettype($value)));
         }
 
         yield from $value;
@@ -396,7 +396,7 @@ class Data implements \ArrayAccess, \Countable, \IteratorAggregate
                     break;
 
                 default:
-                    throw new \RuntimeException(sprintf('Unexpected Stub type: %s', $item->type));
+                    throw new \RuntimeException(sprintf('Unexpected Stub type: "%s".', $item->type));
             }
         } elseif ('array' === $type) {
             $dumper->enterHash($cursor, Cursor::HASH_INDEXED, 0, false);
diff --git a/vendor/symfony/var-dumper/Cloner/Stub.php b/vendor/symfony/var-dumper/Cloner/Stub.php
index 7e9eb6d59..7f6d05d33 100644
--- a/vendor/symfony/var-dumper/Cloner/Stub.php
+++ b/vendor/symfony/var-dumper/Cloner/Stub.php
@@ -48,7 +48,7 @@ class Stub
     {
         $properties = [];
 
-        if (!isset(self::$defaultProperties[$c = \get_class($this)])) {
+        if (!isset(self::$defaultProperties[$c = static::class])) {
             self::$defaultProperties[$c] = get_class_vars($c);
 
             foreach ((new \ReflectionClass($c))->getStaticProperties() as $k => $v) {
diff --git a/vendor/symfony/var-dumper/Cloner/VarCloner.php b/vendor/symfony/var-dumper/Cloner/VarCloner.php
index f64033811..75829d743 100644
--- a/vendor/symfony/var-dumper/Cloner/VarCloner.php
+++ b/vendor/symfony/var-dumper/Cloner/VarCloner.php
@@ -46,7 +46,7 @@ class VarCloner extends AbstractCloner
                                         // or null if the original value is used directly
 
         if (!$gid = self::$gid) {
-            $gid = self::$gid = uniqid(mt_rand(), true); // Unique string used to detect the special $GLOBALS variable
+            $gid = self::$gid = md5(random_bytes(6)); // Unique string used to detect the special $GLOBALS variable
         }
         $arrayStub = new Stub();
         $arrayStub->type = Stub::TYPE_ARRAY;
diff --git a/vendor/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php b/vendor/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php
index e7f8ccf17..38f878971 100644
--- a/vendor/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php
+++ b/vendor/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php
@@ -25,7 +25,7 @@ final class CliContextProvider implements ContextProviderInterface
         }
 
         return [
-            'command_line' => $commandLine = implode(' ', $_SERVER['argv']),
+            'command_line' => $commandLine = implode(' ', $_SERVER['argv'] ?? []),
             'identifier' => hash('crc32b', $commandLine.$_SERVER['REQUEST_TIME_FLOAT']),
         ];
     }
diff --git a/vendor/symfony/var-dumper/LICENSE b/vendor/symfony/var-dumper/LICENSE
index cf8b3ebe8..684fbf94d 100644
--- a/vendor/symfony/var-dumper/LICENSE
+++ b/vendor/symfony/var-dumper/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2014-2019 Fabien Potencier
+Copyright (c) 2014-2020 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/vendor/symfony/var-dumper/Resources/functions/dump.php b/vendor/symfony/var-dumper/Resources/functions/dump.php
index e1543a8df..a485d573a 100644
--- a/vendor/symfony/var-dumper/Resources/functions/dump.php
+++ b/vendor/symfony/var-dumper/Resources/functions/dump.php
@@ -38,6 +38,6 @@ if (!function_exists('dd')) {
             VarDumper::dump($v);
         }
 
-        die(1);
+        exit(1);
     }
 }
diff --git a/vendor/symfony/var-dumper/Server/DumpServer.php b/vendor/symfony/var-dumper/Server/DumpServer.php
index ad920bd4f..46546d167 100644
--- a/vendor/symfony/var-dumper/Server/DumpServer.php
+++ b/vendor/symfony/var-dumper/Server/DumpServer.php
@@ -41,7 +41,7 @@ class DumpServer
     public function start(): void
     {
         if (!$this->socket = stream_socket_server($this->host, $errno, $errstr)) {
-            throw new \RuntimeException(sprintf('Server start failed on "%s": %s %s.', $this->host, $errstr, $errno));
+            throw new \RuntimeException(sprintf('Server start failed on "%s": '.$errstr.' '.$errno, $this->host));
         }
     }
 
diff --git a/vendor/vlucas/phpdotenv/composer.json b/vendor/vlucas/phpdotenv/composer.json
index 190b8022c..77618aff5 100644
--- a/vendor/vlucas/phpdotenv/composer.json
+++ b/vendor/vlucas/phpdotenv/composer.json
@@ -2,8 +2,8 @@
     "name": "vlucas/phpdotenv",
     "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.",
     "keywords": ["env", "dotenv", "environment"],
-    "license" : "BSD-3-Clause",
-    "authors" : [
+    "license": "BSD-3-Clause",
+    "authors": [
         {
             "name": "Graham Campbell",
             "email": "graham@alt-three.com",
@@ -16,11 +16,13 @@
         }
     ],
     "require": {
-        "php": "^5.4 || ^7.0",
+        "php": "^5.4 || ^7.0 || ^8.0",
         "phpoption/phpoption": "^1.5",
         "symfony/polyfill-ctype": "^1.9"
     },
     "require-dev": {
+        "ext-filter": "*",
+        "ext-pcre": "*",
         "phpunit/phpunit": "^4.8.35 || ^5.0 || ^6.0 || ^7.0"
     },
     "autoload": {
@@ -28,6 +30,14 @@
             "Dotenv\\": "src/"
         }
     },
+    "suggest": {
+        "ext-filter": "Required to use the boolean validator.",
+        "ext-pcre": "Required to use most of the library."
+    },
+    "config": {
+        "preferred-install": "dist",
+        "platform-check": false
+    },
     "extra": {
         "branch-alias": {
             "dev-master": "3.6-dev"
diff --git a/vendor/vlucas/phpdotenv/src/Environment/AbstractVariables.php b/vendor/vlucas/phpdotenv/src/Environment/AbstractVariables.php
index 44f41053a..9a9669ab8 100644
--- a/vendor/vlucas/phpdotenv/src/Environment/AbstractVariables.php
+++ b/vendor/vlucas/phpdotenv/src/Environment/AbstractVariables.php
@@ -64,7 +64,7 @@ abstract class AbstractVariables implements VariablesInterface
      *
      * @return string|null
      */
-    protected abstract function getInternal($name);
+    abstract protected function getInternal($name);
 
     /**
      * Set an environment variable.
@@ -100,7 +100,7 @@ abstract class AbstractVariables implements VariablesInterface
      *
      * @return void
      */
-    protected abstract function setInternal($name, $value = null);
+    abstract protected function setInternal($name, $value = null);
 
     /**
      * Clear an environment variable.
@@ -132,7 +132,7 @@ abstract class AbstractVariables implements VariablesInterface
      *
      * @return void
      */
-    protected abstract function clearInternal($name);
+    abstract protected function clearInternal($name);
 
     /**
      * Determine if the environment is immutable.
diff --git a/vendor/vlucas/phpdotenv/src/Lines.php b/vendor/vlucas/phpdotenv/src/Lines.php
index 1fa6c325c..05c534bb0 100644
--- a/vendor/vlucas/phpdotenv/src/Lines.php
+++ b/vendor/vlucas/phpdotenv/src/Lines.php
@@ -22,7 +22,7 @@ class Lines
         foreach ($lines as $line) {
             list($multiline, $line, $multilineBuffer) = self::multilineProcess($multiline, $line, $multilineBuffer);
 
-            if (!$multiline && !self::isComment($line) && self::isSetter($line)) {
+            if (!$multiline && !self::isCommentOrWhitespace($line)) {
                 $output[] = $line;
             }
         }
@@ -115,28 +115,20 @@ class Lines
     }
 
     /**
-     * Determine if the line in the file is a comment, e.g. begins with a #.
+     * Determine if the line in the file is a comment or whitespace.
      *
      * @param string $line
      *
      * @return bool
      */
-    private static function isComment($line)
+    private static function isCommentOrWhitespace($line)
     {
+        if (trim($line) === '') {
+            return true;
+        }
+
         $line = ltrim($line);
 
         return isset($line[0]) && $line[0] === '#';
     }
-
-    /**
-     * Determine if the given line looks like it's setting a variable.
-     *
-     * @param string $line
-     *
-     * @return bool
-     */
-    private static function isSetter($line)
-    {
-        return strpos($line, '=') !== false;
-    }
 }
diff --git a/vendor/vlucas/phpdotenv/src/Parser.php b/vendor/vlucas/phpdotenv/src/Parser.php
index 0d8d46a56..581243800 100644
--- a/vendor/vlucas/phpdotenv/src/Parser.php
+++ b/vendor/vlucas/phpdotenv/src/Parser.php
@@ -135,7 +135,7 @@ class Parser
                     if ($char === $value[0] || $char === '\\') {
                         return [$data[0].$char, self::QUOTED_STATE];
                     } elseif (in_array($char, ['f', 'n', 'r', 't', 'v'], true)) {
-                        return [$data[0].stripcslashes('\\' . $char), self::QUOTED_STATE];
+                        return [$data[0].stripcslashes('\\'.$char), self::QUOTED_STATE];
                     } else {
                         throw new InvalidFileException(
                             self::getErrorMessage('an unexpected escape sequence', $value)
diff --git a/vendor/vlucas/phpdotenv/src/Validator.php b/vendor/vlucas/phpdotenv/src/Validator.php
index d8cdef472..39d2fe4d8 100644
--- a/vendor/vlucas/phpdotenv/src/Validator.php
+++ b/vendor/vlucas/phpdotenv/src/Validator.php
@@ -50,7 +50,6 @@ class Validator
                 'is missing'
             );
         }
-
     }
 
     /**
@@ -133,6 +132,10 @@ class Validator
     {
         return $this->assertCallback(
             function ($value) use ($choices) {
+                if ($value === null) {
+                    return true;
+                }
+
                 return in_array($value, $choices, true);
             },
             sprintf('is not one of [%s]', implode(', ', $choices))
@@ -151,15 +154,14 @@ class Validator
     public function allowedRegexValues($regex)
     {
         return $this->assertCallback(
-            function ($value) use ($regex)
-            {
+            function ($value) use ($regex) {
                 if ($value === null) {
                     return true;
                 }
 
                 return Regex::match($regex, $value)->success()->getOrElse(0) === 1;
             },
-            sprintf('does not match "%s"' , $regex)
+            sprintf('does not match "%s"', $regex)
         );
     }
 
diff --git a/vendor/webmozart/assert/CHANGELOG.md b/vendor/webmozart/assert/CHANGELOG.md
index 2af1baa28..6326a2d6b 100644
--- a/vendor/webmozart/assert/CHANGELOG.md
+++ b/vendor/webmozart/assert/CHANGELOG.md
@@ -3,6 +3,30 @@ Changelog
 
 ## UNRELEASED
 
+
+## 1.8.0
+
+### Added
+
+* added `Assert::notStartsWith()`
+* added `Assert::notEndsWith()`
+* added `Assert::inArray()`
+* added `@psalm-pure` annotations to pure assertions
+
+### Fixed
+
+* Exception messages of comparisons between `DateTime(Immutalbe)` objects now display their date & time.
+* Custom Exception messages for `Assert::count()` now use the values to render the exception message.
+
+## 1.7.0 (2020-02-14)
+
+### Added
+
+* added `Assert::notFalse()`
+* added `Assert::isAOf()`
+* added `Assert::isAnyOf()`
+* added `Assert::isNotA()`
+
 ## 1.6.0 (2019-11-24)
 
 ### Added
@@ -15,7 +39,7 @@ Changelog
 
 ### Fixed
 
-* `ResourceBundle` & `SimpleXMLElement` now pass the `isCountable` assertions. 
+* `ResourceBundle` & `SimpleXMLElement` now pass the `isCountable` assertions.
 They are countable, without implementing the `Countable` interface.
 * The doc block of `range` now has the proper variables.
 * An empty array will now pass `isList` and `isMap`. As it is a valid form of both.
@@ -28,12 +52,12 @@ If a non empty variant is needed, use `isNonEmptyList` or `isNonEmptyMap`.
   * [#145](https://github.com/webmozart/assert/issues/145)
   * [#146](https://github.com/webmozart/assert/pull/146)
   * [#150](https://github.com/webmozart/assert/pull/150)
-* If you use psalm, the minimum version needed is `3.6.0`. Which is enforced through a composer conflict. 
+* If you use psalm, the minimum version needed is `3.6.0`. Which is enforced through a composer conflict.
 If you don't use psalm, then this has no impact.
 
 ## 1.5.0 (2019-08-24)
 
-### Added 
+### Added
 
 * added `Assert::uniqueValues()`
 * added `Assert::unicodeLetters()`
diff --git a/vendor/webmozart/assert/README.md b/vendor/webmozart/assert/README.md
index 615c8b277..e316d5384 100644
--- a/vendor/webmozart/assert/README.md
+++ b/vendor/webmozart/assert/README.md
@@ -106,15 +106,19 @@ Method                                                   | Description
 `isInstanceOf($value, $class, $message = '')`            | Check that a value is an `instanceof` a class
 `isInstanceOfAny($value, array $classes, $message = '')` | Check that a value is an `instanceof` a at least one class on the array of classes
 `notInstanceOf($value, $class, $message = '')`           | Check that a value is not an `instanceof` a class
+`isAOf($value, $class, $message = '')`                   | Check that a value is of the class or has one of its parents
+`isAnyOf($value, array $classes, $message = '')`         | Check that a value a at least one of the class or has one of its parents
+`isNotA($value, $class, $message = '')`                  | Check that a value is not of the class or has not one of its parents
 `isArrayAccessible($value, $message = '')`               | Check that a value can be accessed as an array
 `uniqueValues($values, $message = '')`                   | Check that the given array contains unique values
 
 ### Comparison Assertions
 
 Method                                          | Description
------------------------------------------------ | --------------------------------------------------
+----------------------------------------------- | ------------------------------------------------------------------
 `true($value, $message = '')`                   | Check that a value is `true`
 `false($value, $message = '')`                  | Check that a value is `false`
+`notFalse($value, $message = '')`               | Check that a value is not `false`
 `null($value, $message = '')`                   | Check that a value is `null`
 `notNull($value, $message = '')`                | Check that a value is not `null`
 `isEmpty($value, $message = '')`                | Check that a value is `empty()`
@@ -128,7 +132,8 @@ Method                                          | Description
 `lessThan($value, $value2, $message = '')`      | Check that a value is less than another
 `lessThanEq($value, $value2, $message = '')`    | Check that a value is less than or equal to another
 `range($value, $min, $max, $message = '')`      | Check that a value is within a range
-`oneOf($value, array $values, $message = '')`   | Check that a value is one of a list of values
+`inArray($value, array $values, $message = '')` | Check that a value is one of a list of values
+`oneOf($value, array $values, $message = '')`   | Check that a value is one of a list of values (alias of `inArray`)
 
 ### String Assertions
 
@@ -140,8 +145,10 @@ Method                                              | Description
 `contains($value, $subString, $message = '')`       | Check that a string contains a substring
 `notContains($value, $subString, $message = '')`    | Check that a string does not contains a substring
 `startsWith($value, $prefix, $message = '')`        | Check that a string has a prefix
+`notStartsWith($value, $prefix, $message = '')`     | Check that a string does not have a prefix
 `startsWithLetter($value, $message = '')`           | Check that a string starts with a letter
 `endsWith($value, $suffix, $message = '')`          | Check that a string has a suffix
+`notEndsWith($value, $suffix, $message = '')`       | Check that a string does not have a suffix
 `regex($value, $pattern, $message = '')`            | Check that a string matches a regular expression
 `notRegex($value, $pattern, $message = '')`         | Check that a string does not match a regular expression
 `unicodeLetters($value, $message = '')`             | Check that a string contains Unicode letters only
@@ -240,7 +247,7 @@ Overriding the following methods in your assertion class allows you to change th
 * `protected static function typeToString($value)`
   * This method is used for error messages, to convert the a value to a string representing its type.
 * `protected static function strlen($value)`
-  * This method is used to calculate string lenght for relevant methods, using the `mb_strlen` if available and usefull.
+  * This method is used to calculate string length for relevant methods, using the `mb_strlen` if available and useful.
 * `protected static function reportInvalidArgument($message)`
   * This method is called when an assertion fails, with the specified error message. Here you can throw your own exception, or log something.
 
@@ -267,7 +274,7 @@ All contents of this package are licensed under the [MIT license].
 [beberlei/assert]: https://github.com/beberlei/assert
 [assert package]: https://github.com/beberlei/assert
 [Composer]: https://getcomposer.org
-[Bernhard Schussek]: http://webmozarts.com
+[Bernhard Schussek]: https://webmozarts.com
 [The Community Contributors]: https://github.com/webmozart/assert/graphs/contributors
 [issue tracker]: https://github.com/webmozart/assert/issues
 [Git repository]: https://github.com/webmozart/assert
diff --git a/vendor/webmozart/assert/ci/composer.json b/vendor/webmozart/assert/ci/composer.json
deleted file mode 100644
index 14a099d59..000000000
--- a/vendor/webmozart/assert/ci/composer.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-    "require": {
-        "vimeo/psalm": "^3.6"
-    }
-}
diff --git a/vendor/webmozart/assert/composer.json b/vendor/webmozart/assert/composer.json
index 34350b29e..033a02241 100644
--- a/vendor/webmozart/assert/composer.json
+++ b/vendor/webmozart/assert/composer.json
@@ -21,7 +21,7 @@
         "phpunit/phpunit": "^4.8.36 || ^7.5.13"
     },
     "conflict": {
-        "vimeo/psalm": "<3.6.0"
+        "vimeo/psalm": "<3.9.1"
     },
     "autoload": {
         "psr-4": {
diff --git a/vendor/webmozart/assert/psalm.xml b/vendor/webmozart/assert/psalm.xml
index 44d37aabe..ac9d4db99 100644
--- a/vendor/webmozart/assert/psalm.xml
+++ b/vendor/webmozart/assert/psalm.xml
@@ -4,6 +4,7 @@
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns="https://getpsalm.org/schema/config"
     xsi:schemaLocation="https://getpsalm.org/schema/config ci/vendor/vimeo/psalm/config.xsd"
+    phpVersion="7.3"
 >
     
         
diff --git a/vendor/webmozart/assert/src/Assert.php b/vendor/webmozart/assert/src/Assert.php
index dd9ec92a7..05970a716 100644
--- a/vendor/webmozart/assert/src/Assert.php
+++ b/vendor/webmozart/assert/src/Assert.php
@@ -15,6 +15,8 @@ use ArrayAccess;
 use BadMethodCallException;
 use Closure;
 use Countable;
+use DateTime;
+use DateTimeImmutable;
 use Exception;
 use InvalidArgumentException;
 use ResourceBundle;
@@ -45,10 +47,14 @@ use Traversable;
  * @method static void nullOrIsInstanceOf($value, $class, $message = '')
  * @method static void nullOrNotInstanceOf($value, $class, $message = '')
  * @method static void nullOrIsInstanceOfAny($value, $classes, $message = '')
+ * @method static void nullOrIsAOf($value, $classes, $message = '')
+ * @method static void nullOrIsAnyOf($value, $classes, $message = '')
+ * @method static void nullOrIsNotA($value, $classes, $message = '')
  * @method static void nullOrIsEmpty($value, $message = '')
  * @method static void nullOrNotEmpty($value, $message = '')
  * @method static void nullOrTrue($value, $message = '')
  * @method static void nullOrFalse($value, $message = '')
+ * @method static void nullOrNotFalse($value, $message = '')
  * @method static void nullOrIp($value, $message = '')
  * @method static void nullOrIpv4($value, $message = '')
  * @method static void nullOrIpv6($value, $message = '')
@@ -64,12 +70,15 @@ use Traversable;
  * @method static void nullOrLessThanEq($value, $limit, $message = '')
  * @method static void nullOrRange($value, $min, $max, $message = '')
  * @method static void nullOrOneOf($value, $values, $message = '')
+ * @method static void nullOrInArray($value, $values, $message = '')
  * @method static void nullOrContains($value, $subString, $message = '')
  * @method static void nullOrNotContains($value, $subString, $message = '')
  * @method static void nullOrNotWhitespaceOnly($value, $message = '')
  * @method static void nullOrStartsWith($value, $prefix, $message = '')
+ * @method static void nullOrNotStartsWith($value, $prefix, $message = '')
  * @method static void nullOrStartsWithLetter($value, $message = '')
  * @method static void nullOrEndsWith($value, $suffix, $message = '')
+ * @method static void nullOrNotEndsWith($value, $suffix, $message = '')
  * @method static void nullOrRegex($value, $pattern, $message = '')
  * @method static void nullOrNotRegex($value, $pattern, $message = '')
  * @method static void nullOrUnicodeLetters($value, $message = '')
@@ -128,12 +137,16 @@ use Traversable;
  * @method static void allIsInstanceOf($values, $class, $message = '')
  * @method static void allNotInstanceOf($values, $class, $message = '')
  * @method static void allIsInstanceOfAny($values, $classes, $message = '')
+ * @method static void allIsAOf($values, $class, $message = '')
+ * @method static void allIsAnyOf($values, $class, $message = '')
+ * @method static void allIsNotA($values, $class, $message = '')
  * @method static void allNull($values, $message = '')
  * @method static void allNotNull($values, $message = '')
  * @method static void allIsEmpty($values, $message = '')
  * @method static void allNotEmpty($values, $message = '')
  * @method static void allTrue($values, $message = '')
  * @method static void allFalse($values, $message = '')
+ * @method static void allNotFalse($values, $message = '')
  * @method static void allIp($values, $message = '')
  * @method static void allIpv4($values, $message = '')
  * @method static void allIpv6($values, $message = '')
@@ -149,12 +162,15 @@ use Traversable;
  * @method static void allLessThanEq($values, $limit, $message = '')
  * @method static void allRange($values, $min, $max, $message = '')
  * @method static void allOneOf($values, $values, $message = '')
+ * @method static void allInArray($values, $values, $message = '')
  * @method static void allContains($values, $subString, $message = '')
  * @method static void allNotContains($values, $subString, $message = '')
  * @method static void allNotWhitespaceOnly($values, $message = '')
  * @method static void allStartsWith($values, $prefix, $message = '')
+ * @method static void allNotStartsWith($values, $prefix, $message = '')
  * @method static void allStartsWithLetter($values, $message = '')
  * @method static void allEndsWith($values, $suffix, $message = '')
+ * @method static void allNotEndsWith($values, $suffix, $message = '')
  * @method static void allRegex($values, $pattern, $message = '')
  * @method static void allNotRegex($values, $pattern, $message = '')
  * @method static void allUnicodeLetters($values, $message = '')
@@ -201,6 +217,7 @@ use Traversable;
 class Assert
 {
     /**
+     * @psalm-pure
      * @psalm-assert string $value
      *
      * @param mixed  $value
@@ -219,6 +236,10 @@ class Assert
     }
 
     /**
+     * @psalm-pure
+     * @psalm-assert string $value
+     * @psalm-assert !empty $value
+     *
      * @param mixed  $value
      * @param string $message
      *
@@ -231,6 +252,7 @@ class Assert
     }
 
     /**
+     * @psalm-pure
      * @psalm-assert int $value
      *
      * @param mixed  $value
@@ -249,6 +271,7 @@ class Assert
     }
 
     /**
+     * @psalm-pure
      * @psalm-assert numeric $value
      *
      * @param mixed  $value
@@ -267,6 +290,7 @@ class Assert
     }
 
     /**
+     * @psalm-pure
      * @psalm-assert float $value
      *
      * @param mixed  $value
@@ -285,6 +309,7 @@ class Assert
     }
 
     /**
+     * @psalm-pure
      * @psalm-assert numeric $value
      *
      * @param mixed  $value
@@ -303,6 +328,7 @@ class Assert
     }
 
     /**
+     * @psalm-pure
      * @psalm-assert int $value
      *
      * @param mixed  $value
@@ -321,6 +347,7 @@ class Assert
     }
 
     /**
+     * @psalm-pure
      * @psalm-assert bool $value
      *
      * @param mixed  $value
@@ -339,6 +366,7 @@ class Assert
     }
 
     /**
+     * @psalm-pure
      * @psalm-assert scalar $value
      *
      * @param mixed  $value
@@ -357,6 +385,7 @@ class Assert
     }
 
     /**
+     * @psalm-pure
      * @psalm-assert object $value
      *
      * @param mixed  $value
@@ -375,6 +404,7 @@ class Assert
     }
 
     /**
+     * @psalm-pure
      * @psalm-assert resource $value
      *
      * @param mixed       $value
@@ -402,6 +432,7 @@ class Assert
     }
 
     /**
+     * @psalm-pure
      * @psalm-assert callable $value
      *
      * @param mixed  $value
@@ -420,6 +451,7 @@ class Assert
     }
 
     /**
+     * @psalm-pure
      * @psalm-assert array $value
      *
      * @param mixed  $value
@@ -438,6 +470,7 @@ class Assert
     }
 
     /**
+     * @psalm-pure
      * @psalm-assert iterable $value
      *
      * @deprecated use "isIterable" or "isInstanceOf" instead
@@ -466,6 +499,9 @@ class Assert
     }
 
     /**
+     * @psalm-pure
+     * @psalm-assert array|ArrayAccess $value
+     *
      * @param mixed  $value
      * @param string $message
      *
@@ -482,6 +518,7 @@ class Assert
     }
 
     /**
+     * @psalm-pure
      * @psalm-assert countable $value
      *
      * @param mixed  $value
@@ -505,6 +542,7 @@ class Assert
     }
 
     /**
+     * @psalm-pure
      * @psalm-assert iterable $value
      *
      * @param mixed  $value
@@ -523,6 +561,7 @@ class Assert
     }
 
     /**
+     * @psalm-pure
      * @psalm-template ExpectedType of object
      * @psalm-param class-string $class
      * @psalm-assert ExpectedType $value
@@ -545,6 +584,7 @@ class Assert
     }
 
     /**
+     * @psalm-pure
      * @psalm-template ExpectedType of object
      * @psalm-param class-string $class
      * @psalm-assert !ExpectedType $value
@@ -567,6 +607,9 @@ class Assert
     }
 
     /**
+     * @psalm-pure
+     * @psalm-param array $classes
+     *
      * @param mixed                $value
      * @param array $classes
      * @param string               $message
@@ -589,6 +632,85 @@ class Assert
     }
 
     /**
+     * @psalm-pure
+     * @psalm-template ExpectedType of object
+     * @psalm-param class-string $class
+     * @psalm-assert ExpectedType|class-string $value
+     *
+     * @param object|string $value
+     * @param string        $class
+     * @param string        $message
+     *
+     * @throws InvalidArgumentException
+     */
+    public static function isAOf($value, $class, $message = '')
+    {
+        static::string($class, 'Expected class as a string. Got: %s');
+
+        if (!\is_a($value, $class, \is_string($value))) {
+            static::reportInvalidArgument(sprintf(
+                $message ?: 'Expected an instance of this class or to this class among his parents %2$s. Got: %s',
+                static::typeToString($value),
+                $class
+            ));
+        }
+    }
+
+    /**
+     * @psalm-pure
+     * @psalm-template UnexpectedType of object
+     * @psalm-param class-string $class
+     * @psalm-assert !UnexpectedType $value
+     * @psalm-assert !class-string $value
+     *
+     * @param object|string $value
+     * @param string        $class
+     * @param string        $message
+     *
+     * @throws InvalidArgumentException
+     */
+    public static function isNotA($value, $class, $message = '')
+    {
+        static::string($class, 'Expected class as a string. Got: %s');
+
+        if (\is_a($value, $class, \is_string($value))) {
+            static::reportInvalidArgument(sprintf(
+                $message ?: 'Expected an instance of this class or to this class among his parents other than %2$s. Got: %s',
+                static::typeToString($value),
+                $class
+            ));
+        }
+    }
+
+    /**
+     * @psalm-pure
+     * @psalm-param array $classes
+     *
+     * @param object|string $value
+     * @param string[]      $classes
+     * @param string        $message
+     *
+     * @throws InvalidArgumentException
+     */
+    public static function isAnyOf($value, array $classes, $message = '')
+    {
+        foreach ($classes as $class) {
+            static::string($class, 'Expected class as a string. Got: %s');
+
+            if (\is_a($value, $class, \is_string($value))) {
+                return;
+            }
+        }
+
+        static::reportInvalidArgument(sprintf(
+            $message ?: 'Expected an any of instance of this class or to this class among his parents other than %2$s. Got: %s',
+            static::typeToString($value),
+            \implode(', ', \array_map(array('static', 'valueToString'), $classes))
+        ));
+    }
+
+    /**
+     * @psalm-pure
      * @psalm-assert empty $value
      *
      * @param mixed  $value
@@ -607,6 +729,7 @@ class Assert
     }
 
     /**
+     * @psalm-pure
      * @psalm-assert !empty $value
      *
      * @param mixed  $value
@@ -625,6 +748,7 @@ class Assert
     }
 
     /**
+     * @psalm-pure
      * @psalm-assert null $value
      *
      * @param mixed  $value
@@ -643,6 +767,7 @@ class Assert
     }
 
     /**
+     * @psalm-pure
      * @psalm-assert !null $value
      *
      * @param mixed  $value
@@ -660,6 +785,7 @@ class Assert
     }
 
     /**
+     * @psalm-pure
      * @psalm-assert true $value
      *
      * @param mixed  $value
@@ -678,6 +804,7 @@ class Assert
     }
 
     /**
+     * @psalm-pure
      * @psalm-assert false $value
      *
      * @param mixed  $value
@@ -695,6 +822,23 @@ class Assert
         }
     }
 
+    /**
+     * @psalm-assert !false $value
+     *
+     * @param mixed  $value
+     * @param string $message
+     *
+     * @throws InvalidArgumentException
+     */
+    public static function notFalse($value, $message = '')
+    {
+        if (false === $value) {
+            static::reportInvalidArgument(
+                $message ?: 'Expected a value other than false.'
+            );
+        }
+    }
+
     /**
      * @param mixed  $value
      * @param string $message
@@ -819,6 +963,8 @@ class Assert
     }
 
     /**
+     * @psalm-pure
+     *
      * @param mixed  $value
      * @param mixed  $expect
      * @param string $message
@@ -837,6 +983,8 @@ class Assert
     }
 
     /**
+     * @psalm-pure
+     *
      * @param mixed  $value
      * @param mixed  $expect
      * @param string $message
@@ -854,6 +1002,8 @@ class Assert
     }
 
     /**
+     * @psalm-pure
+     *
      * @param mixed  $value
      * @param mixed  $limit
      * @param string $message
@@ -872,6 +1022,8 @@ class Assert
     }
 
     /**
+     * @psalm-pure
+     *
      * @param mixed  $value
      * @param mixed  $limit
      * @param string $message
@@ -890,6 +1042,8 @@ class Assert
     }
 
     /**
+     * @psalm-pure
+     *
      * @param mixed  $value
      * @param mixed  $limit
      * @param string $message
@@ -908,6 +1062,8 @@ class Assert
     }
 
     /**
+     * @psalm-pure
+     *
      * @param mixed  $value
      * @param mixed  $limit
      * @param string $message
@@ -928,6 +1084,8 @@ class Assert
     /**
      * Inclusive range, so Assert::(3, 3, 5) passes.
      *
+     * @psalm-pure
+     *
      * @param mixed  $value
      * @param mixed  $min
      * @param mixed  $max
@@ -948,7 +1106,9 @@ class Assert
     }
 
     /**
-     * Does strict comparison, so Assert::oneOf(3, ['3']) does not pass the assertion.
+     * A more human-readable alias of Assert::inArray().
+     *
+     * @psalm-pure
      *
      * @param mixed  $value
      * @param array  $values
@@ -957,6 +1117,22 @@ class Assert
      * @throws InvalidArgumentException
      */
     public static function oneOf($value, array $values, $message = '')
+    {
+        static::inArray($value, $values, $message);
+    }
+
+    /**
+     * Does strict comparison, so Assert::inArray(3, ['3']) does not pass the assertion.
+     *
+     * @psalm-pure
+     *
+     * @param mixed  $value
+     * @param array  $values
+     * @param string $message
+     *
+     * @throws InvalidArgumentException
+     */
+    public static function inArray($value, array $values, $message = '')
     {
         if (!\in_array($value, $values, true)) {
             static::reportInvalidArgument(\sprintf(
@@ -968,7 +1144,9 @@ class Assert
     }
 
     /**
-     * @param mixed  $value
+     * @psalm-pure
+     *
+     * @param string $value
      * @param string $subString
      * @param string $message
      *
@@ -986,7 +1164,9 @@ class Assert
     }
 
     /**
-     * @param mixed  $value
+     * @psalm-pure
+     *
+     * @param string $value
      * @param string $subString
      * @param string $message
      *
@@ -1004,7 +1184,9 @@ class Assert
     }
 
     /**
-     * @param mixed  $value
+     * @psalm-pure
+     *
+     * @param string $value
      * @param string $message
      *
      * @throws InvalidArgumentException
@@ -1020,7 +1202,9 @@ class Assert
     }
 
     /**
-     * @param mixed  $value
+     * @psalm-pure
+     *
+     * @param string $value
      * @param string $prefix
      * @param string $message
      *
@@ -1038,6 +1222,28 @@ class Assert
     }
 
     /**
+     * @psalm-pure
+     *
+     * @param string $value
+     * @param string $prefix
+     * @param string $message
+     *
+     * @throws InvalidArgumentException
+     */
+    public static function notStartsWith($value, $prefix, $message = '')
+    {
+        if (0 === \strpos($value, $prefix)) {
+            static::reportInvalidArgument(\sprintf(
+                $message ?: 'Expected a value not to start with %2$s. Got: %s',
+                static::valueToString($value),
+                static::valueToString($prefix)
+            ));
+        }
+    }
+
+    /**
+     * @psalm-pure
+     *
      * @param mixed  $value
      * @param string $message
      *
@@ -1065,7 +1271,9 @@ class Assert
     }
 
     /**
-     * @param mixed  $value
+     * @psalm-pure
+     *
+     * @param string $value
      * @param string $suffix
      * @param string $message
      *
@@ -1083,8 +1291,30 @@ class Assert
     }
 
     /**
-     * @param mixed  $value
-     * @param mixed  $pattern
+     * @psalm-pure
+     *
+     * @param string $value
+     * @param string $suffix
+     * @param string $message
+     *
+     * @throws InvalidArgumentException
+     */
+    public static function notEndsWith($value, $suffix, $message = '')
+    {
+        if ($suffix === \substr($value, -\strlen($suffix))) {
+            static::reportInvalidArgument(\sprintf(
+                $message ?: 'Expected a value not to end with %2$s. Got: %s',
+                static::valueToString($value),
+                static::valueToString($suffix)
+            ));
+        }
+    }
+
+    /**
+     * @psalm-pure
+     *
+     * @param string $value
+     * @param string $pattern
      * @param string $message
      *
      * @throws InvalidArgumentException
@@ -1100,8 +1330,10 @@ class Assert
     }
 
     /**
-     * @param mixed  $value
-     * @param mixed  $pattern
+     * @psalm-pure
+     *
+     * @param string $value
+     * @param string $pattern
      * @param string $message
      *
      * @throws InvalidArgumentException
@@ -1119,6 +1351,8 @@ class Assert
     }
 
     /**
+     * @psalm-pure
+     *
      * @param mixed  $value
      * @param string $message
      *
@@ -1137,6 +1371,8 @@ class Assert
     }
 
     /**
+     * @psalm-pure
+     *
      * @param mixed  $value
      * @param string $message
      *
@@ -1160,7 +1396,9 @@ class Assert
     }
 
     /**
-     * @param mixed  $value
+     * @psalm-pure
+     *
+     * @param string $value
      * @param string $message
      *
      * @throws InvalidArgumentException
@@ -1181,7 +1419,9 @@ class Assert
     }
 
     /**
-     * @param mixed  $value
+     * @psalm-pure
+     *
+     * @param string $value
      * @param string $message
      *
      * @throws InvalidArgumentException
@@ -1202,7 +1442,10 @@ class Assert
     }
 
     /**
-     * @param mixed  $value
+     * @psalm-pure
+     * @psalm-assert lowercase-string $value
+     *
+     * @param string $value
      * @param string $message
      *
      * @throws InvalidArgumentException
@@ -1223,7 +1466,10 @@ class Assert
     }
 
     /**
-     * @param mixed  $value
+     * @psalm-pure
+     * @psalm-assert !lowercase-string $value
+     *
+     * @param string $value
      * @param string $message
      *
      * @throws InvalidArgumentException
@@ -1244,8 +1490,10 @@ class Assert
     }
 
     /**
-     * @param mixed  $value
-     * @param mixed  $length
+     * @psalm-pure
+     *
+     * @param string $value
+     * @param int    $length
      * @param string $message
      *
      * @throws InvalidArgumentException
@@ -1264,9 +1512,11 @@ class Assert
     /**
      * Inclusive min.
      *
-     * @param mixed  $value
-     * @param mixed  $min
-     * @param string $message
+     * @psalm-pure
+     *
+     * @param string    $value
+     * @param int|float $min
+     * @param string    $message
      *
      * @throws InvalidArgumentException
      */
@@ -1284,9 +1534,11 @@ class Assert
     /**
      * Inclusive max.
      *
-     * @param mixed  $value
-     * @param mixed  $max
-     * @param string $message
+     * @psalm-pure
+     *
+     * @param string    $value
+     * @param int|float $max
+     * @param string    $message
      *
      * @throws InvalidArgumentException
      */
@@ -1304,10 +1556,12 @@ class Assert
     /**
      * Inclusive , so Assert::lengthBetween('asd', 3, 5); passes the assertion.
      *
-     * @param mixed  $value
-     * @param mixed  $min
-     * @param mixed  $max
-     * @param string $message
+     * @psalm-pure
+     *
+     * @param string    $value
+     * @param int|float $min
+     * @param int|float $max
+     * @param string    $message
      *
      * @throws InvalidArgumentException
      */
@@ -1382,7 +1636,7 @@ class Assert
     }
 
     /**
-     * @param mixed  $value
+     * @param string $value
      * @param string $message
      *
      * @throws InvalidArgumentException
@@ -1398,7 +1652,7 @@ class Assert
     }
 
     /**
-     * @param mixed  $value
+     * @param string $value
      * @param string $message
      *
      * @throws InvalidArgumentException
@@ -1414,8 +1668,6 @@ class Assert
     }
 
     /**
-     * @psalm-assert class-string $value
-     *
      * @param mixed  $value
      * @param string $message
      *
@@ -1432,6 +1684,11 @@ class Assert
     }
 
     /**
+     * @psalm-pure
+     * @psalm-template ExpectedType of object
+     * @psalm-param class-string $class
+     * @psalm-assert class-string|ExpectedType $value
+     *
      * @param mixed         $value
      * @param string|object $class
      * @param string        $message
@@ -1450,8 +1707,6 @@ class Assert
     }
 
     /**
-     * @psalm-assert class-string $value
-     *
      * @param mixed  $value
      * @param string $message
      *
@@ -1468,6 +1723,11 @@ class Assert
     }
 
     /**
+     * @psalm-pure
+     * @psalm-template ExpectedType of object
+     * @psalm-param class-string $interface
+     * @psalm-assert class-string $value
+     *
      * @param mixed  $value
      * @param mixed  $interface
      * @param string $message
@@ -1486,6 +1746,9 @@ class Assert
     }
 
     /**
+     * @psalm-pure
+     * @psalm-param class-string|object $classOrObject
+     *
      * @param string|object $classOrObject
      * @param mixed         $property
      * @param string        $message
@@ -1503,6 +1766,9 @@ class Assert
     }
 
     /**
+     * @psalm-pure
+     * @psalm-param class-string|object $classOrObject
+     *
      * @param string|object $classOrObject
      * @param mixed         $property
      * @param string        $message
@@ -1520,6 +1786,9 @@ class Assert
     }
 
     /**
+     * @psalm-pure
+     * @psalm-param class-string|object $classOrObject
+     *
      * @param string|object $classOrObject
      * @param mixed         $method
      * @param string        $message
@@ -1537,6 +1806,9 @@ class Assert
     }
 
     /**
+     * @psalm-pure
+     * @psalm-param class-string|object $classOrObject
+     *
      * @param string|object $classOrObject
      * @param mixed         $method
      * @param string        $message
@@ -1554,6 +1826,8 @@ class Assert
     }
 
     /**
+     * @psalm-pure
+     *
      * @param array      $array
      * @param string|int $key
      * @param string     $message
@@ -1571,6 +1845,8 @@ class Assert
     }
 
     /**
+     * @psalm-pure
+     *
      * @param array      $array
      * @param string|int $key
      * @param string     $message
@@ -1590,6 +1866,7 @@ class Assert
     /**
      * Checks if a value is a valid array key (int or string).
      *
+     * @psalm-pure
      * @psalm-assert array-key $value
      *
      * @param mixed  $value
@@ -1610,9 +1887,9 @@ class Assert
     /**
      * Does not check if $array is countable, this can generate a warning on php versions after 7.2.
      *
-     * @param mixed  $array
-     * @param mixed  $number
-     * @param string $message
+     * @param Countable|array $array
+     * @param int             $number
+     * @param string          $message
      *
      * @throws InvalidArgumentException
      */
@@ -1621,16 +1898,20 @@ class Assert
         static::eq(
             \count($array),
             $number,
-            $message ?: \sprintf('Expected an array to contain %d elements. Got: %d.', $number, \count($array))
+            \sprintf(
+                $message ?: 'Expected an array to contain %d elements. Got: %d.',
+                $number,
+                \count($array)
+            )
         );
     }
 
     /**
      * Does not check if $array is countable, this can generate a warning on php versions after 7.2.
      *
-     * @param mixed  $array
-     * @param mixed  $min
-     * @param string $message
+     * @param Countable|array $array
+     * @param int|float       $min
+     * @param string          $message
      *
      * @throws InvalidArgumentException
      */
@@ -1648,9 +1929,9 @@ class Assert
     /**
      * Does not check if $array is countable, this can generate a warning on php versions after 7.2.
      *
-     * @param mixed  $array
-     * @param mixed  $max
-     * @param string $message
+     * @param Countable|array $array
+     * @param int|float       $max
+     * @param string          $message
      *
      * @throws InvalidArgumentException
      */
@@ -1668,10 +1949,10 @@ class Assert
     /**
      * Does not check if $array is countable, this can generate a warning on php versions after 7.2.
      *
-     * @param mixed  $array
-     * @param mixed  $min
-     * @param mixed  $max
-     * @param string $message
+     * @param Countable|array $array
+     * @param int|float       $min
+     * @param int|float       $max
+     * @param string          $message
      *
      * @throws InvalidArgumentException
      */
@@ -1690,6 +1971,7 @@ class Assert
     }
 
     /**
+     * @psalm-pure
      * @psalm-assert list $array
      *
      * @param mixed  $array
@@ -1707,7 +1989,9 @@ class Assert
     }
 
     /**
-     * @psalm-assert non-empty-list $array
+     * @psalm-pure
+     * @psalm-assert list $array
+     * @psalm-assert !empty $array
      *
      * @param mixed  $array
      * @param string $message
@@ -1721,6 +2005,11 @@ class Assert
     }
 
     /**
+     * @psalm-pure
+     * @psalm-template T
+     * @psalm-param mixed|array $array
+     * @psalm-assert array $array
+     *
      * @param mixed  $array
      * @param string $message
      *
@@ -1739,6 +2028,12 @@ class Assert
     }
 
     /**
+     * @psalm-pure
+     * @psalm-template T
+     * @psalm-param mixed|array $array
+     * @psalm-assert array $array
+     * @psalm-assert !empty $array
+     *
      * @param mixed  $array
      * @param string $message
      *
@@ -1751,7 +2046,9 @@ class Assert
     }
 
     /**
-     * @param mixed  $value
+     * @psalm-pure
+     *
+     * @param string $value
      * @param string $message
      *
      * @throws InvalidArgumentException
@@ -1775,9 +2072,11 @@ class Assert
     }
 
     /**
-     * @param Closure       $expression
-     * @param string|object $class
-     * @param string        $message
+     * @psalm-param class-string
+     *
+     * @param Closure $expression
+     * @param string  $class
+     * @param string  $message
      *
      * @throws InvalidArgumentException
      */
@@ -1868,6 +2167,10 @@ class Assert
                 return \get_class($value).': '.self::valueToString($value->__toString());
             }
 
+            if ($value instanceof DateTime || $value instanceof DateTimeImmutable) {
+                return \get_class($value).': '.self::valueToString($value->format('c'));
+            }
+
             return \get_class($value);
         }
 
@@ -1909,6 +2212,8 @@ class Assert
      * @param string $message
      *
      * @throws InvalidArgumentException
+     *
+     * @psalm-pure this method is not supposed to perform side-effects
      */
     protected static function reportInvalidArgument($message)
     {