commit 76f5abedcdc0fc578bf16b861aab071f181b62c3 Author: J. King Date: Thu Apr 16 14:44:36 2020 -0400 Initial export from Lax diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..aaa63b7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,7 @@ +* text=auto encoding=utf-8 + +*.html diff=html +*.php diff=php +*.bat eol=crlf +*.cmd eol=crlf +.gitignore -eol diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e841c0f --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +/vendor +/vendor-bin/*/vendor +/tests/coverage +/tests/.phpunit.result.cache +/.php_cs.cache diff --git a/.php_cs.dist b/.php_cs.dist new file mode 100644 index 0000000..8bef6af --- /dev/null +++ b/.php_cs.dist @@ -0,0 +1,79 @@ + ['comment_type' => "phpdocs_only"], + 'array_syntax' => ['syntax' => "short"], + 'binary_operator_spaces' => [ + 'default' => "single_space", + 'operators' => ['=>' => "align_single_space"], + ], + 'cast_spaces' => ['space' => "single"], + 'concat_space' => ['spacing' => "none"], + 'list_syntax' => ['syntax' => "short"], + 'magic_constant_casing' => true, + 'magic_method_casing' => true, + 'modernize_types_casting' => true, + 'native_function_casing' => true, + 'native_function_type_declaration_casing' => true, + 'no_binary_string' => true, + 'no_blank_lines_after_phpdoc' => true, + 'no_empty_comment' => true, + 'no_empty_phpdoc' => true, + 'no_extra_blank_lines' => true, // this could probably use more configuration + 'no_mixed_echo_print' => ['use' => "echo"], + 'no_short_bool_cast' => true, + 'no_trailing_comma_in_singleline_array' => true, + 'no_unneeded_control_parentheses' => true, + 'no_unneeded_curly_braces' => true, + 'no_unused_imports' => true, + 'no_whitespace_before_comma_in_array' => true, + 'normalize_index_brace' => true, + 'object_operator_without_whitespace' => true, + 'pow_to_exponentiation' => true, + 'set_type_to_cast' => true, + 'standardize_not_equals' => true, + 'trailing_comma_in_multiline_array' => true, + 'unary_operator_spaces' => true, + 'yoda_style' => false, + // PSR standard to apply + '@PSR2' => true, + // PSR-12 rules; php-cs-fixer does not yet support PSR-12 natively + 'compact_nullable_typehint' => true, + 'declare_equal_normalize' => ['space' => "none"], + 'function_typehint_space' => true, + 'lowercase_cast' => true, + 'lowercase_static_reference' => true, + 'no_alternative_syntax' => true, + 'no_empty_statement' => true, + 'no_leading_import_slash' => true, + 'no_leading_namespace_whitespace' => true, + 'no_whitespace_in_blank_line' => true, + 'return_type_declaration' => ['space_before' => "none"], + 'single_trait_insert_per_statement' => true, + 'short_scalar_cast' => true, + 'visibility_required' => ['elements' => ["const", "property", "method"]], + // house exceptions to PSR rules + 'braces' => ['position_after_functions_and_oop_constructs' => "same"], + 'function_declaration' => ['closure_function_spacing' => "none"], + 'new_with_braces' => false, // no option to specify absence of braces + ]; + +$finder = \PhpCsFixer\Finder::create(); +foreach ($paths as $path) { + if (is_file($path)) { + $finder = $finder->append([$path]); + } else { + $finder = $finder->in($path); + } +} +return \PhpCsFixer\Config::create()->setRiskyAllowed(true)->setRules($rules)->setFinder($finder); diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..048ba9d --- /dev/null +++ b/AUTHORS @@ -0,0 +1,3 @@ +Prohect lead +------------- +J. King https://jkingweb.ca/ diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..1f57609 --- /dev/null +++ b/LICENSE @@ -0,0 +1,22 @@ +Copyright (c) 2018 J. King + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. diff --git a/RoboFile.php b/RoboFile.php new file mode 100644 index 0000000..565a764 --- /dev/null +++ b/RoboFile.php @@ -0,0 +1,146 @@ +runTests(escapeshellarg(\PHP_BINARY), "typical", $args); + } + + /** Runs the full test suite + * + * This includes pedantic tests which may help to identify problems. + * See help for the "test" task for more details. + */ + public function testFull(array $args): Result { + return $this->runTests(escapeshellarg(\PHP_BINARY), "full", $args); + } + + /** + * Runs a quick subset of the test suite + * + * See help for the "test" task for more details. + */ + public function testQuick(array $args): Result { + return $this->runTests(escapeshellarg(\PHP_BINARY), "quick", $args); + } + + /** Produces a code coverage report + * + * By default this task produces an HTML-format coverage report in + * tests/coverage/. Additional reports may be produced by passing + * arguments to this task as one would to PHPUnit. + * + * Robo first tries to use pcov and will fall back first to xdebug then + * phpdbg. Neither pcov nor xdebug need to be enabled to be used; they + * only need to be present in the extension load path to be used. + */ + public function coverage(array $args): Result { + // run tests with code coverage reporting enabled + $exec = $this->findCoverageEngine(); + return $this->runTests($exec, "coverage", array_merge(["--coverage-html", BASE_TEST."coverage"], $args)); + } + + /** Produces a code coverage report, with redundant tests + * + * Depending on the environment, some tests that normally provide + * coverage may be skipped, while working alternatives are normally + * suppressed for reasons of time. This coverage report will try to + * run all tests which may cover code. + * + * See also help for the "coverage" task for more details. + */ + public function coverageFull(array $args): Result { + // run tests with code coverage reporting enabled + $exec = $this->findCoverageEngine(); + return $this->runTests($exec, "typical", array_merge(["--coverage-html", BASE_TEST."coverage"], $args)); + } + + /** Runs the coding standards fixer */ + public function clean($opts = ['demo|d' => false]): Result { + $t = $this->taskExec(norm(BASE."vendor/bin/php-cs-fixer")); + $t->arg("fix"); + if ($opts['demo']) { + $t->args("--dry-run", "--diff")->option("--diff-format", "udiff"); + } + return $t->run(); + } + + protected function findCoverageEngine(): string { + $dir = rtrim(ini_get("extension_dir"), "/").\DIRECTORY_SEPARATOR; + $ext = IS_WIN ? "dll" : (IS_MAC ? "dylib" : "so"); + $php = escapeshellarg(\PHP_BINARY); + $code = escapeshellarg(BASE."lib"); + if (extension_loaded("pcov")) { + return "$php -d pcov.enabled=1 -d pcov.directory=$code"; + } elseif (extension_loaded("xdebug")) { + return $php; + } elseif (file_exists($dir."pcov.$ext")) { + return "$php -d extension=pcov.$ext -d pcov.enabled=1 -d pcov.directory=$code"; + } elseif (file_exists($dir."pcov.$ext")) { + return "$php -d zend_extension=xdebug.$ext"; + } else { + if (IS_WIN) { + $dbg = dirname(\PHP_BINARY)."\\phpdbg.exe"; + $dbg = file_exists($dbg) ? $dbg : ""; + } else { + $dbg = trim(`which phpdbg 2>/dev/null`); + } + if ($dbg) { + return escapeshellarg($dbg)." -qrr"; + } else { + return $php; + } + } + } + + protected function blackhole(bool $all = false): string { + $hole = IS_WIN ? "nul" : "/dev/null"; + return $all ? ">$hole 2>&1" : "2>$hole"; + } + + protected function runTests(string $executor, string $set, array $args): Result { + switch ($set) { + case "typical": + $set = ["--exclude-group", "optional"]; + break; + case "quick": + $set = ["--exclude-group", "optional,slow"]; + break; + case "coverage": + $set = ["--exclude-group", "optional,coverageOptional"]; + break; + case "full": + $set = []; + break; + default: + throw new \Exception; + } + $execpath = norm(BASE."vendor-bin/phpunit/vendor/phpunit/phpunit/phpunit"); + $confpath = realpath(BASE_TEST."phpunit.dist.xml") ?: norm(BASE_TEST."phpunit.xml"); + //$this->taskServer(8000)->host("localhost")->dir(BASE_TEST."docroot")->rawArg("-n")->arg(BASE_TEST."server.php")->rawArg($this->blackhole())->background()->run(); + return $this->taskExec($executor)->option("-d", "zend.assertions=1")->arg($execpath)->option("-c", $confpath)->args(array_merge($set, $args))->run(); + } +} diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..1f26846 --- /dev/null +++ b/composer.json @@ -0,0 +1,39 @@ +{ + "name": "mensbeam/mimesniff", + "type": "library", + "description": "An implementation of the WHATWG Mimesniff specification", + "keywords": ["whatwg", "mime", "mimesniff"], + "license": "MIT", + "authors": [ + { + "name": "J. King", + "email": "jking@jkingweb.ca", + "homepage": "https://jkingweb.ca/" + } + ], + "require": { + "php": "^7.1" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.3" + }, + "config": { + "platform": { + "php": "7.1.33" + } + }, + "scripts": { + "post-install-cmd": ["@composer bin all install"], + "post-update-cmd": ["@composer bin all update"] + }, + "autoload": { + "psr-4": { + "MensBeam\\Mime\\": "lib/" + } + }, + "autoload-dev": { + "psr-4": { + "MensBeam\\Mime\\TestCase\\": "tests/cases/" + } + } +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..8aa10be --- /dev/null +++ b/composer.lock @@ -0,0 +1,63 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "8ccabde36f4d647880e48bda8d68b1bc", + "packages": [], + "packages-dev": [ + { + "name": "bamarni/composer-bin-plugin", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/bamarni/composer-bin-plugin.git", + "reference": "67f9d314dc7ecf7245b8637906e151ccc62b8d24" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/bamarni/composer-bin-plugin/zipball/67f9d314dc7ecf7245b8637906e151ccc62b8d24", + "reference": "67f9d314dc7ecf7245b8637906e151ccc62b8d24", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0" + }, + "require-dev": { + "composer/composer": "dev-master", + "symfony/console": "^2.5 || ^3.0 || ^4.0" + }, + "type": "composer-plugin", + "extra": { + "class": "Bamarni\\Composer\\Bin\\Plugin", + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "Bamarni\\Composer\\Bin\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "time": "2019-03-17T12:38:04+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": "^7.1" + }, + "platform-dev": [], + "platform-overrides": { + "php": "7.1.33" + }, + "plugin-api-version": "1.1.0" +} diff --git a/lib/MimeType.php b/lib/MimeType.php new file mode 100644 index 0000000..7a50424 --- /dev/null +++ b/lib/MimeType.php @@ -0,0 +1,158 @@ +sx +PATTERN; + protected const PARAM_PATTERN = <<<'PATTERN' + < + [;\t\r\n ]* # parameter delimiter and leading whitespace, all optional + ([^=;]*) # parameter name; may be empty + (?:= # parameter name/value delimiter + ( + "(?:\\"|[^"])*(?:"|$)[^;]* # quoted parameter value and optional garbage + |[^;]* # unquoted parameter value (possibly with trailing whitespace) + ) + )? + ;? # optional trailing parameter delimiter + [\t\r\n ]* # optional trailing whitespace + >sx +PATTERN; + protected const TOKEN_PATTERN = '<^[A-Za-z0-9!#$%&\'*+\-\.\^_`|~]+$>s'; + protected const BARE_VALUE_PATTERN = '<^[\t\x{20}-\x{7E}\x{80}-\x{FF}]+$>su'; + protected const QUOTED_VALUE_PATTERN = '<^"((?:\\\"|[\t !\x{23}-\x{7E}\x{80}-\x{FF}])*)(?:"|$)>su'; + protected const ESCAPE_PATTERN = '<\\\(.)>s'; + protected const CHAR_MAP = [0x80 => "\u{80}","\u{81}","\u{82}","\u{83}","\u{84}","\u{85}","\u{86}","\u{87}","\u{88}","\u{89}","\u{8a}","\u{8b}","\u{8c}","\u{8d}","\u{8e}","\u{8f}","\u{90}","\u{91}","\u{92}","\u{93}","\u{94}","\u{95}","\u{96}","\u{97}","\u{98}","\u{99}","\u{9a}","\u{9b}","\u{9c}","\u{9d}","\u{9e}","\u{9f}","\u{a0}","\u{a1}","\u{a2}","\u{a3}","\u{a4}","\u{a5}","\u{a6}","\u{a7}","\u{a8}","\u{a9}","\u{aa}","\u{ab}","\u{ac}","\u{ad}","\u{ae}","\u{af}","\u{b0}","\u{b1}","\u{b2}","\u{b3}","\u{b4}","\u{b5}","\u{b6}","\u{b7}","\u{b8}","\u{b9}","\u{ba}","\u{bb}","\u{bc}","\u{bd}","\u{be}","\u{bf}","\u{c0}","\u{c1}","\u{c2}","\u{c3}","\u{c4}","\u{c5}","\u{c6}","\u{c7}","\u{c8}","\u{c9}","\u{ca}","\u{cb}","\u{cc}","\u{cd}","\u{ce}","\u{cf}","\u{d0}","\u{d1}","\u{d2}","\u{d3}","\u{d4}","\u{d5}","\u{d6}","\u{d7}","\u{d8}","\u{d9}","\u{da}","\u{db}","\u{dc}","\u{dd}","\u{de}","\u{df}","\u{e0}","\u{e1}","\u{e2}","\u{e3}","\u{e4}","\u{e5}","\u{e6}","\u{e7}","\u{e8}","\u{e9}","\u{ea}","\u{eb}","\u{ec}","\u{ed}","\u{ee}","\u{ef}","\u{f0}","\u{f1}","\u{f2}","\u{f3}","\u{f4}","\u{f5}","\u{f6}","\u{f7}","\u{f8}","\u{f9}","\u{fa}","\u{fb}","\u{fc}","\u{fd}","\u{fe}","\u{ff}"]; + + private $type = ""; + private $subtype = ""; + private $params = []; + private $essence; + + private function __construct(string $type = "", string $subtype = "", array $params = []) { + $this->type = $type; + $this->subtype = $subtype; + $this->params = $params; + } + + public function __get(string $name) { + if ($name === "essence") { + return $this->type."/".$this->subtype; + } + return $this->$name ?? null; + } + + public function __toString(): string { + $out = $this->__get("essence"); + if (is_array($this->params) && sizeof($this->params)) { + foreach ($this->params as $name => $value) { + $out .= ";$name=".(preg_match(self::TOKEN_PATTERN, $value) ? $value : '"'.str_replace(["\\", '"'], ["\\\\", "\\\""], $value).'"'); + } + } + return $out; + } + + public static function parse(string $mimeType): ?self { + if (preg_match(self::TYPE_PATTERN, $mimeType, $match)) { + [$mimeType, $type, $subtype, $params] = array_pad($match, 4, ""); + if (strlen($type = static::parseHttpToken($type)) && strlen($subtype = static::parseHttpToken(rtrim($subtype, "\t\r\n ")))) { + return new static(strtolower($type), strtolower($subtype), static::parseParams($params)); + } + } + return null; + } + + public static function parseBytes(string $mimeType): ?self { + return static::parse(static::decode($mimeType)); + } + + public static function decode(string $bytes): string { + $out = ""; + for ($a = 0; $a < strlen($bytes); $a++) { + $c = $bytes[$a]; + $p = ord($c); + $out .= $p < 0x80 ? $c : self::CHAR_MAP[$a]; + } + return $out; + } + + public static function encode(string $chars): ?string { + $map = array_combine(array_values(self::CHAR_MAP), range(chr(0x80), chr(0xFF))); + $out = ""; + foreach (preg_split("<>u", $chars) as $c) { + if (strlen($c) === 1) { + $out .= $c; + } elseif (isset($map[$c])) { + $out .= $map[$c]; + } else { + return null; + } + } + return $out; + } + + protected static function parseParams(string $params): array { + $out = []; + if (preg_match_all(self::PARAM_PATTERN, $params, $matches, \PREG_SET_ORDER)) { + foreach ($matches as $match) { + [$param, $name, $value] = array_pad($match, 3, ""); + $name = strtolower(static::parseHttpToken($name)); + if (!strlen($name) || isset($out[$name])) { + continue; + } elseif (strlen($value) && $value[0] === '"') { + $value = static::parseHttpQuotedValue($value); + if (is_null($value)) { + continue; + } + } else { + $value = static::parseHttpBareValue($value); + if (!strlen($value)) { + continue; + } + } + $out[$name] = $value; + } + } + return $out; + } + + protected static function parseHttpToken(string $token): string { + if (preg_match(self::TOKEN_PATTERN, $token, $match)) { + return $token; + } + return ""; + } + + protected static function parseHttpBareValue(string $value): string { + $value = rtrim($value, "\t\r\n "); + if (preg_match(self::BARE_VALUE_PATTERN, $value, $match)) { + return $value; + } + return ""; + } + + protected static function parseHttpQuotedValue(string $value): ?string { + if (preg_match(self::QUOTED_VALUE_PATTERN, $value, $match)) { + return preg_replace(self::ESCAPE_PATTERN, '$1', $match[1]); + } + return null; + } +} diff --git a/robo b/robo new file mode 100755 index 0000000..e096c36 --- /dev/null +++ b/robo @@ -0,0 +1,14 @@ +#! /bin/sh +base=`dirname "$0"` +roboCommand="$1" +if [ $# -eq 0 ]; then + "$base/vendor/bin/robo" +else + shift + ulimit -n 2048 + if [ "$1" = "clean" ]; then + "$base/vendor/bin/robo" "$roboCommand" "$@" + else + "$base/vendor/bin/robo" "$roboCommand" -- "$@" + fi +fi diff --git a/robo.bat b/robo.bat new file mode 100644 index 0000000..297f954 --- /dev/null +++ b/robo.bat @@ -0,0 +1,21 @@ +@echo off +setlocal +set base=%~dp0 +set roboCommand=%1 + +rem get all arguments except the first +shift +set "args=" +:parse +if "%~1" neq "" ( + set args=%args% %1 + shift + goto :parse +) +if defined args set args=%args:~1% + +if "%1"=="clean" ( + call "%base%vendor\bin\robo" "%roboCommand%" %args% +) else ( + call "%base%vendor\bin\robo" "%roboCommand%" -- %args% +) diff --git a/tests/bootstrap.php b/tests/bootstrap.php new file mode 100644 index 0000000..e156bf5 --- /dev/null +++ b/tests/bootstrap.php @@ -0,0 +1,20 @@ +assertNull(Mime::parse($input)); + } else { + $this->assertSame($exp, (string) Mime::parse($input)); + } + } + + public function provideStandardTests(): iterable { + foreach (new \GlobIterator(__DIR__."/*.json", \FilesystemIterator::CURRENT_AS_PATHNAME | \FilesystemIterator::KEY_AS_FILENAME) as $file => $path) { + $indexOffset = 0; + $description = ""; + foreach (json_decode(file_get_contents($path)) as $index => $test) { + if (is_string($test)) { + // the array member is a description of the next member + // the index offset should be decremented, the description stored, and this entry skipped + $indexOffset--; + $description = $test; + continue; + } else { + $index += $indexOffset; + $description = $description ? ": $description" : ""; + yield "$file #$index$description" => [$test->input, $test->output]; + $description = null; + } + } + } + } +} diff --git a/tests/cases/README b/tests/cases/README new file mode 100644 index 0000000..7e947ff --- /dev/null +++ b/tests/cases/README @@ -0,0 +1,20 @@ +The MimeType class is an original work, but its test suite is derived +in part from an existing test corpus from the following source: + +The Web Platform Test suite + + +The license text is reproduced below, but please note that the license text +has changed since the last time the mimesniff portion of the test suite was +modified; the text included here is current as of 2019-04-25. + + +Copyright 2019 web-platform-tests contributors + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/tests/cases/generated-mime-types.json b/tests/cases/generated-mime-types.json new file mode 100644 index 0000000..4b3a6ff --- /dev/null +++ b/tests/cases/generated-mime-types.json @@ -0,0 +1,3526 @@ +[ + { + "input": "\u0000/x", + "output": null + }, + { + "input": "x/\u0000", + "output": null + }, + { + "input": "x/x;\u0000=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0000;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\"\u0000\";bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "\u0001/x", + "output": null + }, + { + "input": "x/\u0001", + "output": null + }, + { + "input": "x/x;\u0001=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0001;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\"\u0001\";bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "\u0002/x", + "output": null + }, + { + "input": "x/\u0002", + "output": null + }, + { + "input": "x/x;\u0002=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0002;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\"\u0002\";bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "\u0003/x", + "output": null + }, + { + "input": "x/\u0003", + "output": null + }, + { + "input": "x/x;\u0003=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0003;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\"\u0003\";bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "\u0004/x", + "output": null + }, + { + "input": "x/\u0004", + "output": null + }, + { + "input": "x/x;\u0004=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0004;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\"\u0004\";bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "\u0005/x", + "output": null + }, + { + "input": "x/\u0005", + "output": null + }, + { + "input": "x/x;\u0005=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0005;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\"\u0005\";bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "\u0006/x", + "output": null + }, + { + "input": "x/\u0006", + "output": null + }, + { + "input": "x/x;\u0006=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0006;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\"\u0006\";bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "\u0007/x", + "output": null + }, + { + "input": "x/\u0007", + "output": null + }, + { + "input": "x/x;\u0007=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0007;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\"\u0007\";bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "\b/x", + "output": null + }, + { + "input": "x/\b", + "output": null + }, + { + "input": "x/x;\b=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\b;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\"\b\";bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "\t/x", + "output": null + }, + { + "input": "x/\t", + "output": null + }, + { + "input": "x/x;\t=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "\n/x", + "output": null + }, + { + "input": "x/\n", + "output": null + }, + { + "input": "x/x;\n=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\n;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\"\n\";bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "\u000b/x", + "output": null + }, + { + "input": "x/\u000b", + "output": null + }, + { + "input": "x/x;\u000b=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u000b;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\"\u000b\";bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "\f/x", + "output": null + }, + { + "input": "x/\f", + "output": null + }, + { + "input": "x/x;\f=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\f;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\"\f\";bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "\r/x", + "output": null + }, + { + "input": "x/\r", + "output": null + }, + { + "input": "x/x;\r=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\r;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\"\r\";bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "\u000e/x", + "output": null + }, + { + "input": "x/\u000e", + "output": null + }, + { + "input": "x/x;\u000e=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u000e;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\"\u000e\";bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "\u000f/x", + "output": null + }, + { + "input": "x/\u000f", + "output": null + }, + { + "input": "x/x;\u000f=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u000f;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\"\u000f\";bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "\u0010/x", + "output": null + }, + { + "input": "x/\u0010", + "output": null + }, + { + "input": "x/x;\u0010=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0010;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\"\u0010\";bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "\u0011/x", + "output": null + }, + { + "input": "x/\u0011", + "output": null + }, + { + "input": "x/x;\u0011=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0011;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\"\u0011\";bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "\u0012/x", + "output": null + }, + { + "input": "x/\u0012", + "output": null + }, + { + "input": "x/x;\u0012=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0012;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\"\u0012\";bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "\u0013/x", + "output": null + }, + { + "input": "x/\u0013", + "output": null + }, + { + "input": "x/x;\u0013=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0013;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\"\u0013\";bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "\u0014/x", + "output": null + }, + { + "input": "x/\u0014", + "output": null + }, + { + "input": "x/x;\u0014=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0014;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\"\u0014\";bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "\u0015/x", + "output": null + }, + { + "input": "x/\u0015", + "output": null + }, + { + "input": "x/x;\u0015=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0015;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\"\u0015\";bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "\u0016/x", + "output": null + }, + { + "input": "x/\u0016", + "output": null + }, + { + "input": "x/x;\u0016=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0016;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\"\u0016\";bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "\u0017/x", + "output": null + }, + { + "input": "x/\u0017", + "output": null + }, + { + "input": "x/x;\u0017=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0017;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\"\u0017\";bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "\u0018/x", + "output": null + }, + { + "input": "x/\u0018", + "output": null + }, + { + "input": "x/x;\u0018=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0018;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\"\u0018\";bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "\u0019/x", + "output": null + }, + { + "input": "x/\u0019", + "output": null + }, + { + "input": "x/x;\u0019=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0019;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\"\u0019\";bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "\u001a/x", + "output": null + }, + { + "input": "x/\u001a", + "output": null + }, + { + "input": "x/x;\u001a=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u001a;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\"\u001a\";bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "\u001b/x", + "output": null + }, + { + "input": "x/\u001b", + "output": null + }, + { + "input": "x/x;\u001b=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u001b;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\"\u001b\";bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "\u001c/x", + "output": null + }, + { + "input": "x/\u001c", + "output": null + }, + { + "input": "x/x;\u001c=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u001c;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\"\u001c\";bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "\u001d/x", + "output": null + }, + { + "input": "x/\u001d", + "output": null + }, + { + "input": "x/x;\u001d=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u001d;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\"\u001d\";bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "\u001e/x", + "output": null + }, + { + "input": "x/\u001e", + "output": null + }, + { + "input": "x/x;\u001e=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u001e;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\"\u001e\";bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "\u001f/x", + "output": null + }, + { + "input": "x/\u001f", + "output": null + }, + { + "input": "x/x;\u001f=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u001f;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\"\u001f\";bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": " /x", + "output": null + }, + { + "input": "x/ ", + "output": null + }, + { + "input": "x/x; =x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "\"/x", + "output": null + }, + { + "input": "x/\"", + "output": null + }, + { + "input": "x/x;\"=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "(/x", + "output": null + }, + { + "input": "x/(", + "output": null + }, + { + "input": "x/x;(=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=(;bonus=x", + "output": "x/x;x=\"(\";bonus=x" + }, + { + "input": "x/x;x=\"(\";bonus=x", + "output": "x/x;x=\"(\";bonus=x" + }, + { + "input": ")/x", + "output": null + }, + { + "input": "x/)", + "output": null + }, + { + "input": "x/x;)=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=);bonus=x", + "output": "x/x;x=\")\";bonus=x" + }, + { + "input": "x/x;x=\")\";bonus=x", + "output": "x/x;x=\")\";bonus=x" + }, + { + "input": ",/x", + "output": null + }, + { + "input": "x/,", + "output": null + }, + { + "input": "x/x;,=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=,;bonus=x", + "output": "x/x;x=\",\";bonus=x" + }, + { + "input": "x/x;x=\",\";bonus=x", + "output": "x/x;x=\",\";bonus=x" + }, + { + "input": "x/x;/=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=/;bonus=x", + "output": "x/x;x=\"/\";bonus=x" + }, + { + "input": "x/x;x=\"/\";bonus=x", + "output": "x/x;x=\"/\";bonus=x" + }, + { + "input": ":/x", + "output": null + }, + { + "input": "x/:", + "output": null + }, + { + "input": "x/x;:=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=:;bonus=x", + "output": "x/x;x=\":\";bonus=x" + }, + { + "input": "x/x;x=\":\";bonus=x", + "output": "x/x;x=\":\";bonus=x" + }, + { + "input": ";/x", + "output": null + }, + { + "input": "x/;", + "output": null + }, + { + "input": "/x", + "output": null + }, + { + "input": "x/>", + "output": null + }, + { + "input": "x/x;>=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=>;bonus=x", + "output": "x/x;x=\">\";bonus=x" + }, + { + "input": "x/x;x=\">\";bonus=x", + "output": "x/x;x=\">\";bonus=x" + }, + { + "input": "?/x", + "output": null + }, + { + "input": "x/?", + "output": null + }, + { + "input": "x/x;?=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=?;bonus=x", + "output": "x/x;x=\"?\";bonus=x" + }, + { + "input": "x/x;x=\"?\";bonus=x", + "output": "x/x;x=\"?\";bonus=x" + }, + { + "input": "@/x", + "output": null + }, + { + "input": "x/@", + "output": null + }, + { + "input": "x/x;@=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=@;bonus=x", + "output": "x/x;x=\"@\";bonus=x" + }, + { + "input": "x/x;x=\"@\";bonus=x", + "output": "x/x;x=\"@\";bonus=x" + }, + { + "input": "[/x", + "output": null + }, + { + "input": "x/[", + "output": null + }, + { + "input": "x/x;[=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=[;bonus=x", + "output": "x/x;x=\"[\";bonus=x" + }, + { + "input": "x/x;x=\"[\";bonus=x", + "output": "x/x;x=\"[\";bonus=x" + }, + { + "input": "\\/x", + "output": null + }, + { + "input": "x/\\", + "output": null + }, + { + "input": "x/x;\\=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "]/x", + "output": null + }, + { + "input": "x/]", + "output": null + }, + { + "input": "x/x;]=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=];bonus=x", + "output": "x/x;x=\"]\";bonus=x" + }, + { + "input": "x/x;x=\"]\";bonus=x", + "output": "x/x;x=\"]\";bonus=x" + }, + { + "input": "{/x", + "output": null + }, + { + "input": "x/{", + "output": null + }, + { + "input": "x/x;{=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x={;bonus=x", + "output": "x/x;x=\"{\";bonus=x" + }, + { + "input": "x/x;x=\"{\";bonus=x", + "output": "x/x;x=\"{\";bonus=x" + }, + { + "input": "}/x", + "output": null + }, + { + "input": "x/}", + "output": null + }, + { + "input": "x/x;}=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=};bonus=x", + "output": "x/x;x=\"}\";bonus=x" + }, + { + "input": "x/x;x=\"}\";bonus=x", + "output": "x/x;x=\"}\";bonus=x" + }, + { + "input": "\u007f/x", + "output": null + }, + { + "input": "x/\u007f", + "output": null + }, + { + "input": "x/x;\u007f=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u007f;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\"\u007f\";bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "\u0080/x", + "output": null + }, + { + "input": "x/\u0080", + "output": null + }, + { + "input": "x/x;\u0080=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0080;bonus=x", + "output": "x/x;x=\"\u0080\";bonus=x" + }, + { + "input": "x/x;x=\"\u0080\";bonus=x", + "output": "x/x;x=\"\u0080\";bonus=x" + }, + { + "input": "\u0081/x", + "output": null + }, + { + "input": "x/\u0081", + "output": null + }, + { + "input": "x/x;\u0081=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0081;bonus=x", + "output": "x/x;x=\"\u0081\";bonus=x" + }, + { + "input": "x/x;x=\"\u0081\";bonus=x", + "output": "x/x;x=\"\u0081\";bonus=x" + }, + { + "input": "\u0082/x", + "output": null + }, + { + "input": "x/\u0082", + "output": null + }, + { + "input": "x/x;\u0082=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0082;bonus=x", + "output": "x/x;x=\"\u0082\";bonus=x" + }, + { + "input": "x/x;x=\"\u0082\";bonus=x", + "output": "x/x;x=\"\u0082\";bonus=x" + }, + { + "input": "\u0083/x", + "output": null + }, + { + "input": "x/\u0083", + "output": null + }, + { + "input": "x/x;\u0083=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0083;bonus=x", + "output": "x/x;x=\"\u0083\";bonus=x" + }, + { + "input": "x/x;x=\"\u0083\";bonus=x", + "output": "x/x;x=\"\u0083\";bonus=x" + }, + { + "input": "\u0084/x", + "output": null + }, + { + "input": "x/\u0084", + "output": null + }, + { + "input": "x/x;\u0084=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0084;bonus=x", + "output": "x/x;x=\"\u0084\";bonus=x" + }, + { + "input": "x/x;x=\"\u0084\";bonus=x", + "output": "x/x;x=\"\u0084\";bonus=x" + }, + { + "input": "\u0085/x", + "output": null + }, + { + "input": "x/\u0085", + "output": null + }, + { + "input": "x/x;\u0085=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0085;bonus=x", + "output": "x/x;x=\"\u0085\";bonus=x" + }, + { + "input": "x/x;x=\"\u0085\";bonus=x", + "output": "x/x;x=\"\u0085\";bonus=x" + }, + { + "input": "\u0086/x", + "output": null + }, + { + "input": "x/\u0086", + "output": null + }, + { + "input": "x/x;\u0086=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0086;bonus=x", + "output": "x/x;x=\"\u0086\";bonus=x" + }, + { + "input": "x/x;x=\"\u0086\";bonus=x", + "output": "x/x;x=\"\u0086\";bonus=x" + }, + { + "input": "\u0087/x", + "output": null + }, + { + "input": "x/\u0087", + "output": null + }, + { + "input": "x/x;\u0087=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0087;bonus=x", + "output": "x/x;x=\"\u0087\";bonus=x" + }, + { + "input": "x/x;x=\"\u0087\";bonus=x", + "output": "x/x;x=\"\u0087\";bonus=x" + }, + { + "input": "\u0088/x", + "output": null + }, + { + "input": "x/\u0088", + "output": null + }, + { + "input": "x/x;\u0088=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0088;bonus=x", + "output": "x/x;x=\"\u0088\";bonus=x" + }, + { + "input": "x/x;x=\"\u0088\";bonus=x", + "output": "x/x;x=\"\u0088\";bonus=x" + }, + { + "input": "\u0089/x", + "output": null + }, + { + "input": "x/\u0089", + "output": null + }, + { + "input": "x/x;\u0089=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0089;bonus=x", + "output": "x/x;x=\"\u0089\";bonus=x" + }, + { + "input": "x/x;x=\"\u0089\";bonus=x", + "output": "x/x;x=\"\u0089\";bonus=x" + }, + { + "input": "\u008a/x", + "output": null + }, + { + "input": "x/\u008a", + "output": null + }, + { + "input": "x/x;\u008a=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u008a;bonus=x", + "output": "x/x;x=\"\u008a\";bonus=x" + }, + { + "input": "x/x;x=\"\u008a\";bonus=x", + "output": "x/x;x=\"\u008a\";bonus=x" + }, + { + "input": "\u008b/x", + "output": null + }, + { + "input": "x/\u008b", + "output": null + }, + { + "input": "x/x;\u008b=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u008b;bonus=x", + "output": "x/x;x=\"\u008b\";bonus=x" + }, + { + "input": "x/x;x=\"\u008b\";bonus=x", + "output": "x/x;x=\"\u008b\";bonus=x" + }, + { + "input": "\u008c/x", + "output": null + }, + { + "input": "x/\u008c", + "output": null + }, + { + "input": "x/x;\u008c=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u008c;bonus=x", + "output": "x/x;x=\"\u008c\";bonus=x" + }, + { + "input": "x/x;x=\"\u008c\";bonus=x", + "output": "x/x;x=\"\u008c\";bonus=x" + }, + { + "input": "\u008d/x", + "output": null + }, + { + "input": "x/\u008d", + "output": null + }, + { + "input": "x/x;\u008d=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u008d;bonus=x", + "output": "x/x;x=\"\u008d\";bonus=x" + }, + { + "input": "x/x;x=\"\u008d\";bonus=x", + "output": "x/x;x=\"\u008d\";bonus=x" + }, + { + "input": "\u008e/x", + "output": null + }, + { + "input": "x/\u008e", + "output": null + }, + { + "input": "x/x;\u008e=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u008e;bonus=x", + "output": "x/x;x=\"\u008e\";bonus=x" + }, + { + "input": "x/x;x=\"\u008e\";bonus=x", + "output": "x/x;x=\"\u008e\";bonus=x" + }, + { + "input": "\u008f/x", + "output": null + }, + { + "input": "x/\u008f", + "output": null + }, + { + "input": "x/x;\u008f=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u008f;bonus=x", + "output": "x/x;x=\"\u008f\";bonus=x" + }, + { + "input": "x/x;x=\"\u008f\";bonus=x", + "output": "x/x;x=\"\u008f\";bonus=x" + }, + { + "input": "\u0090/x", + "output": null + }, + { + "input": "x/\u0090", + "output": null + }, + { + "input": "x/x;\u0090=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0090;bonus=x", + "output": "x/x;x=\"\u0090\";bonus=x" + }, + { + "input": "x/x;x=\"\u0090\";bonus=x", + "output": "x/x;x=\"\u0090\";bonus=x" + }, + { + "input": "\u0091/x", + "output": null + }, + { + "input": "x/\u0091", + "output": null + }, + { + "input": "x/x;\u0091=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0091;bonus=x", + "output": "x/x;x=\"\u0091\";bonus=x" + }, + { + "input": "x/x;x=\"\u0091\";bonus=x", + "output": "x/x;x=\"\u0091\";bonus=x" + }, + { + "input": "\u0092/x", + "output": null + }, + { + "input": "x/\u0092", + "output": null + }, + { + "input": "x/x;\u0092=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0092;bonus=x", + "output": "x/x;x=\"\u0092\";bonus=x" + }, + { + "input": "x/x;x=\"\u0092\";bonus=x", + "output": "x/x;x=\"\u0092\";bonus=x" + }, + { + "input": "\u0093/x", + "output": null + }, + { + "input": "x/\u0093", + "output": null + }, + { + "input": "x/x;\u0093=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0093;bonus=x", + "output": "x/x;x=\"\u0093\";bonus=x" + }, + { + "input": "x/x;x=\"\u0093\";bonus=x", + "output": "x/x;x=\"\u0093\";bonus=x" + }, + { + "input": "\u0094/x", + "output": null + }, + { + "input": "x/\u0094", + "output": null + }, + { + "input": "x/x;\u0094=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0094;bonus=x", + "output": "x/x;x=\"\u0094\";bonus=x" + }, + { + "input": "x/x;x=\"\u0094\";bonus=x", + "output": "x/x;x=\"\u0094\";bonus=x" + }, + { + "input": "\u0095/x", + "output": null + }, + { + "input": "x/\u0095", + "output": null + }, + { + "input": "x/x;\u0095=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0095;bonus=x", + "output": "x/x;x=\"\u0095\";bonus=x" + }, + { + "input": "x/x;x=\"\u0095\";bonus=x", + "output": "x/x;x=\"\u0095\";bonus=x" + }, + { + "input": "\u0096/x", + "output": null + }, + { + "input": "x/\u0096", + "output": null + }, + { + "input": "x/x;\u0096=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0096;bonus=x", + "output": "x/x;x=\"\u0096\";bonus=x" + }, + { + "input": "x/x;x=\"\u0096\";bonus=x", + "output": "x/x;x=\"\u0096\";bonus=x" + }, + { + "input": "\u0097/x", + "output": null + }, + { + "input": "x/\u0097", + "output": null + }, + { + "input": "x/x;\u0097=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0097;bonus=x", + "output": "x/x;x=\"\u0097\";bonus=x" + }, + { + "input": "x/x;x=\"\u0097\";bonus=x", + "output": "x/x;x=\"\u0097\";bonus=x" + }, + { + "input": "\u0098/x", + "output": null + }, + { + "input": "x/\u0098", + "output": null + }, + { + "input": "x/x;\u0098=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0098;bonus=x", + "output": "x/x;x=\"\u0098\";bonus=x" + }, + { + "input": "x/x;x=\"\u0098\";bonus=x", + "output": "x/x;x=\"\u0098\";bonus=x" + }, + { + "input": "\u0099/x", + "output": null + }, + { + "input": "x/\u0099", + "output": null + }, + { + "input": "x/x;\u0099=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u0099;bonus=x", + "output": "x/x;x=\"\u0099\";bonus=x" + }, + { + "input": "x/x;x=\"\u0099\";bonus=x", + "output": "x/x;x=\"\u0099\";bonus=x" + }, + { + "input": "\u009a/x", + "output": null + }, + { + "input": "x/\u009a", + "output": null + }, + { + "input": "x/x;\u009a=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u009a;bonus=x", + "output": "x/x;x=\"\u009a\";bonus=x" + }, + { + "input": "x/x;x=\"\u009a\";bonus=x", + "output": "x/x;x=\"\u009a\";bonus=x" + }, + { + "input": "\u009b/x", + "output": null + }, + { + "input": "x/\u009b", + "output": null + }, + { + "input": "x/x;\u009b=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u009b;bonus=x", + "output": "x/x;x=\"\u009b\";bonus=x" + }, + { + "input": "x/x;x=\"\u009b\";bonus=x", + "output": "x/x;x=\"\u009b\";bonus=x" + }, + { + "input": "\u009c/x", + "output": null + }, + { + "input": "x/\u009c", + "output": null + }, + { + "input": "x/x;\u009c=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u009c;bonus=x", + "output": "x/x;x=\"\u009c\";bonus=x" + }, + { + "input": "x/x;x=\"\u009c\";bonus=x", + "output": "x/x;x=\"\u009c\";bonus=x" + }, + { + "input": "\u009d/x", + "output": null + }, + { + "input": "x/\u009d", + "output": null + }, + { + "input": "x/x;\u009d=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u009d;bonus=x", + "output": "x/x;x=\"\u009d\";bonus=x" + }, + { + "input": "x/x;x=\"\u009d\";bonus=x", + "output": "x/x;x=\"\u009d\";bonus=x" + }, + { + "input": "\u009e/x", + "output": null + }, + { + "input": "x/\u009e", + "output": null + }, + { + "input": "x/x;\u009e=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u009e;bonus=x", + "output": "x/x;x=\"\u009e\";bonus=x" + }, + { + "input": "x/x;x=\"\u009e\";bonus=x", + "output": "x/x;x=\"\u009e\";bonus=x" + }, + { + "input": "\u009f/x", + "output": null + }, + { + "input": "x/\u009f", + "output": null + }, + { + "input": "x/x;\u009f=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u009f;bonus=x", + "output": "x/x;x=\"\u009f\";bonus=x" + }, + { + "input": "x/x;x=\"\u009f\";bonus=x", + "output": "x/x;x=\"\u009f\";bonus=x" + }, + { + "input": "\u00a0/x", + "output": null + }, + { + "input": "x/\u00a0", + "output": null + }, + { + "input": "x/x;\u00a0=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00a0;bonus=x", + "output": "x/x;x=\"\u00a0\";bonus=x" + }, + { + "input": "x/x;x=\"\u00a0\";bonus=x", + "output": "x/x;x=\"\u00a0\";bonus=x" + }, + { + "input": "\u00a1/x", + "output": null + }, + { + "input": "x/\u00a1", + "output": null + }, + { + "input": "x/x;\u00a1=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00a1;bonus=x", + "output": "x/x;x=\"\u00a1\";bonus=x" + }, + { + "input": "x/x;x=\"\u00a1\";bonus=x", + "output": "x/x;x=\"\u00a1\";bonus=x" + }, + { + "input": "\u00a2/x", + "output": null + }, + { + "input": "x/\u00a2", + "output": null + }, + { + "input": "x/x;\u00a2=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00a2;bonus=x", + "output": "x/x;x=\"\u00a2\";bonus=x" + }, + { + "input": "x/x;x=\"\u00a2\";bonus=x", + "output": "x/x;x=\"\u00a2\";bonus=x" + }, + { + "input": "\u00a3/x", + "output": null + }, + { + "input": "x/\u00a3", + "output": null + }, + { + "input": "x/x;\u00a3=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00a3;bonus=x", + "output": "x/x;x=\"\u00a3\";bonus=x" + }, + { + "input": "x/x;x=\"\u00a3\";bonus=x", + "output": "x/x;x=\"\u00a3\";bonus=x" + }, + { + "input": "\u00a4/x", + "output": null + }, + { + "input": "x/\u00a4", + "output": null + }, + { + "input": "x/x;\u00a4=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00a4;bonus=x", + "output": "x/x;x=\"\u00a4\";bonus=x" + }, + { + "input": "x/x;x=\"\u00a4\";bonus=x", + "output": "x/x;x=\"\u00a4\";bonus=x" + }, + { + "input": "\u00a5/x", + "output": null + }, + { + "input": "x/\u00a5", + "output": null + }, + { + "input": "x/x;\u00a5=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00a5;bonus=x", + "output": "x/x;x=\"\u00a5\";bonus=x" + }, + { + "input": "x/x;x=\"\u00a5\";bonus=x", + "output": "x/x;x=\"\u00a5\";bonus=x" + }, + { + "input": "\u00a6/x", + "output": null + }, + { + "input": "x/\u00a6", + "output": null + }, + { + "input": "x/x;\u00a6=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00a6;bonus=x", + "output": "x/x;x=\"\u00a6\";bonus=x" + }, + { + "input": "x/x;x=\"\u00a6\";bonus=x", + "output": "x/x;x=\"\u00a6\";bonus=x" + }, + { + "input": "\u00a7/x", + "output": null + }, + { + "input": "x/\u00a7", + "output": null + }, + { + "input": "x/x;\u00a7=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00a7;bonus=x", + "output": "x/x;x=\"\u00a7\";bonus=x" + }, + { + "input": "x/x;x=\"\u00a7\";bonus=x", + "output": "x/x;x=\"\u00a7\";bonus=x" + }, + { + "input": "\u00a8/x", + "output": null + }, + { + "input": "x/\u00a8", + "output": null + }, + { + "input": "x/x;\u00a8=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00a8;bonus=x", + "output": "x/x;x=\"\u00a8\";bonus=x" + }, + { + "input": "x/x;x=\"\u00a8\";bonus=x", + "output": "x/x;x=\"\u00a8\";bonus=x" + }, + { + "input": "\u00a9/x", + "output": null + }, + { + "input": "x/\u00a9", + "output": null + }, + { + "input": "x/x;\u00a9=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00a9;bonus=x", + "output": "x/x;x=\"\u00a9\";bonus=x" + }, + { + "input": "x/x;x=\"\u00a9\";bonus=x", + "output": "x/x;x=\"\u00a9\";bonus=x" + }, + { + "input": "\u00aa/x", + "output": null + }, + { + "input": "x/\u00aa", + "output": null + }, + { + "input": "x/x;\u00aa=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00aa;bonus=x", + "output": "x/x;x=\"\u00aa\";bonus=x" + }, + { + "input": "x/x;x=\"\u00aa\";bonus=x", + "output": "x/x;x=\"\u00aa\";bonus=x" + }, + { + "input": "\u00ab/x", + "output": null + }, + { + "input": "x/\u00ab", + "output": null + }, + { + "input": "x/x;\u00ab=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00ab;bonus=x", + "output": "x/x;x=\"\u00ab\";bonus=x" + }, + { + "input": "x/x;x=\"\u00ab\";bonus=x", + "output": "x/x;x=\"\u00ab\";bonus=x" + }, + { + "input": "\u00ac/x", + "output": null + }, + { + "input": "x/\u00ac", + "output": null + }, + { + "input": "x/x;\u00ac=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00ac;bonus=x", + "output": "x/x;x=\"\u00ac\";bonus=x" + }, + { + "input": "x/x;x=\"\u00ac\";bonus=x", + "output": "x/x;x=\"\u00ac\";bonus=x" + }, + { + "input": "\u00ad/x", + "output": null + }, + { + "input": "x/\u00ad", + "output": null + }, + { + "input": "x/x;\u00ad=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00ad;bonus=x", + "output": "x/x;x=\"\u00ad\";bonus=x" + }, + { + "input": "x/x;x=\"\u00ad\";bonus=x", + "output": "x/x;x=\"\u00ad\";bonus=x" + }, + { + "input": "\u00ae/x", + "output": null + }, + { + "input": "x/\u00ae", + "output": null + }, + { + "input": "x/x;\u00ae=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00ae;bonus=x", + "output": "x/x;x=\"\u00ae\";bonus=x" + }, + { + "input": "x/x;x=\"\u00ae\";bonus=x", + "output": "x/x;x=\"\u00ae\";bonus=x" + }, + { + "input": "\u00af/x", + "output": null + }, + { + "input": "x/\u00af", + "output": null + }, + { + "input": "x/x;\u00af=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00af;bonus=x", + "output": "x/x;x=\"\u00af\";bonus=x" + }, + { + "input": "x/x;x=\"\u00af\";bonus=x", + "output": "x/x;x=\"\u00af\";bonus=x" + }, + { + "input": "\u00b0/x", + "output": null + }, + { + "input": "x/\u00b0", + "output": null + }, + { + "input": "x/x;\u00b0=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00b0;bonus=x", + "output": "x/x;x=\"\u00b0\";bonus=x" + }, + { + "input": "x/x;x=\"\u00b0\";bonus=x", + "output": "x/x;x=\"\u00b0\";bonus=x" + }, + { + "input": "\u00b1/x", + "output": null + }, + { + "input": "x/\u00b1", + "output": null + }, + { + "input": "x/x;\u00b1=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00b1;bonus=x", + "output": "x/x;x=\"\u00b1\";bonus=x" + }, + { + "input": "x/x;x=\"\u00b1\";bonus=x", + "output": "x/x;x=\"\u00b1\";bonus=x" + }, + { + "input": "\u00b2/x", + "output": null + }, + { + "input": "x/\u00b2", + "output": null + }, + { + "input": "x/x;\u00b2=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00b2;bonus=x", + "output": "x/x;x=\"\u00b2\";bonus=x" + }, + { + "input": "x/x;x=\"\u00b2\";bonus=x", + "output": "x/x;x=\"\u00b2\";bonus=x" + }, + { + "input": "\u00b3/x", + "output": null + }, + { + "input": "x/\u00b3", + "output": null + }, + { + "input": "x/x;\u00b3=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00b3;bonus=x", + "output": "x/x;x=\"\u00b3\";bonus=x" + }, + { + "input": "x/x;x=\"\u00b3\";bonus=x", + "output": "x/x;x=\"\u00b3\";bonus=x" + }, + { + "input": "\u00b4/x", + "output": null + }, + { + "input": "x/\u00b4", + "output": null + }, + { + "input": "x/x;\u00b4=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00b4;bonus=x", + "output": "x/x;x=\"\u00b4\";bonus=x" + }, + { + "input": "x/x;x=\"\u00b4\";bonus=x", + "output": "x/x;x=\"\u00b4\";bonus=x" + }, + { + "input": "\u00b5/x", + "output": null + }, + { + "input": "x/\u00b5", + "output": null + }, + { + "input": "x/x;\u00b5=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00b5;bonus=x", + "output": "x/x;x=\"\u00b5\";bonus=x" + }, + { + "input": "x/x;x=\"\u00b5\";bonus=x", + "output": "x/x;x=\"\u00b5\";bonus=x" + }, + { + "input": "\u00b6/x", + "output": null + }, + { + "input": "x/\u00b6", + "output": null + }, + { + "input": "x/x;\u00b6=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00b6;bonus=x", + "output": "x/x;x=\"\u00b6\";bonus=x" + }, + { + "input": "x/x;x=\"\u00b6\";bonus=x", + "output": "x/x;x=\"\u00b6\";bonus=x" + }, + { + "input": "\u00b7/x", + "output": null + }, + { + "input": "x/\u00b7", + "output": null + }, + { + "input": "x/x;\u00b7=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00b7;bonus=x", + "output": "x/x;x=\"\u00b7\";bonus=x" + }, + { + "input": "x/x;x=\"\u00b7\";bonus=x", + "output": "x/x;x=\"\u00b7\";bonus=x" + }, + { + "input": "\u00b8/x", + "output": null + }, + { + "input": "x/\u00b8", + "output": null + }, + { + "input": "x/x;\u00b8=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00b8;bonus=x", + "output": "x/x;x=\"\u00b8\";bonus=x" + }, + { + "input": "x/x;x=\"\u00b8\";bonus=x", + "output": "x/x;x=\"\u00b8\";bonus=x" + }, + { + "input": "\u00b9/x", + "output": null + }, + { + "input": "x/\u00b9", + "output": null + }, + { + "input": "x/x;\u00b9=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00b9;bonus=x", + "output": "x/x;x=\"\u00b9\";bonus=x" + }, + { + "input": "x/x;x=\"\u00b9\";bonus=x", + "output": "x/x;x=\"\u00b9\";bonus=x" + }, + { + "input": "\u00ba/x", + "output": null + }, + { + "input": "x/\u00ba", + "output": null + }, + { + "input": "x/x;\u00ba=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00ba;bonus=x", + "output": "x/x;x=\"\u00ba\";bonus=x" + }, + { + "input": "x/x;x=\"\u00ba\";bonus=x", + "output": "x/x;x=\"\u00ba\";bonus=x" + }, + { + "input": "\u00bb/x", + "output": null + }, + { + "input": "x/\u00bb", + "output": null + }, + { + "input": "x/x;\u00bb=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00bb;bonus=x", + "output": "x/x;x=\"\u00bb\";bonus=x" + }, + { + "input": "x/x;x=\"\u00bb\";bonus=x", + "output": "x/x;x=\"\u00bb\";bonus=x" + }, + { + "input": "\u00bc/x", + "output": null + }, + { + "input": "x/\u00bc", + "output": null + }, + { + "input": "x/x;\u00bc=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00bc;bonus=x", + "output": "x/x;x=\"\u00bc\";bonus=x" + }, + { + "input": "x/x;x=\"\u00bc\";bonus=x", + "output": "x/x;x=\"\u00bc\";bonus=x" + }, + { + "input": "\u00bd/x", + "output": null + }, + { + "input": "x/\u00bd", + "output": null + }, + { + "input": "x/x;\u00bd=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00bd;bonus=x", + "output": "x/x;x=\"\u00bd\";bonus=x" + }, + { + "input": "x/x;x=\"\u00bd\";bonus=x", + "output": "x/x;x=\"\u00bd\";bonus=x" + }, + { + "input": "\u00be/x", + "output": null + }, + { + "input": "x/\u00be", + "output": null + }, + { + "input": "x/x;\u00be=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00be;bonus=x", + "output": "x/x;x=\"\u00be\";bonus=x" + }, + { + "input": "x/x;x=\"\u00be\";bonus=x", + "output": "x/x;x=\"\u00be\";bonus=x" + }, + { + "input": "\u00bf/x", + "output": null + }, + { + "input": "x/\u00bf", + "output": null + }, + { + "input": "x/x;\u00bf=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00bf;bonus=x", + "output": "x/x;x=\"\u00bf\";bonus=x" + }, + { + "input": "x/x;x=\"\u00bf\";bonus=x", + "output": "x/x;x=\"\u00bf\";bonus=x" + }, + { + "input": "\u00c0/x", + "output": null + }, + { + "input": "x/\u00c0", + "output": null + }, + { + "input": "x/x;\u00c0=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00c0;bonus=x", + "output": "x/x;x=\"\u00c0\";bonus=x" + }, + { + "input": "x/x;x=\"\u00c0\";bonus=x", + "output": "x/x;x=\"\u00c0\";bonus=x" + }, + { + "input": "\u00c1/x", + "output": null + }, + { + "input": "x/\u00c1", + "output": null + }, + { + "input": "x/x;\u00c1=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00c1;bonus=x", + "output": "x/x;x=\"\u00c1\";bonus=x" + }, + { + "input": "x/x;x=\"\u00c1\";bonus=x", + "output": "x/x;x=\"\u00c1\";bonus=x" + }, + { + "input": "\u00c2/x", + "output": null + }, + { + "input": "x/\u00c2", + "output": null + }, + { + "input": "x/x;\u00c2=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00c2;bonus=x", + "output": "x/x;x=\"\u00c2\";bonus=x" + }, + { + "input": "x/x;x=\"\u00c2\";bonus=x", + "output": "x/x;x=\"\u00c2\";bonus=x" + }, + { + "input": "\u00c3/x", + "output": null + }, + { + "input": "x/\u00c3", + "output": null + }, + { + "input": "x/x;\u00c3=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00c3;bonus=x", + "output": "x/x;x=\"\u00c3\";bonus=x" + }, + { + "input": "x/x;x=\"\u00c3\";bonus=x", + "output": "x/x;x=\"\u00c3\";bonus=x" + }, + { + "input": "\u00c4/x", + "output": null + }, + { + "input": "x/\u00c4", + "output": null + }, + { + "input": "x/x;\u00c4=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00c4;bonus=x", + "output": "x/x;x=\"\u00c4\";bonus=x" + }, + { + "input": "x/x;x=\"\u00c4\";bonus=x", + "output": "x/x;x=\"\u00c4\";bonus=x" + }, + { + "input": "\u00c5/x", + "output": null + }, + { + "input": "x/\u00c5", + "output": null + }, + { + "input": "x/x;\u00c5=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00c5;bonus=x", + "output": "x/x;x=\"\u00c5\";bonus=x" + }, + { + "input": "x/x;x=\"\u00c5\";bonus=x", + "output": "x/x;x=\"\u00c5\";bonus=x" + }, + { + "input": "\u00c6/x", + "output": null + }, + { + "input": "x/\u00c6", + "output": null + }, + { + "input": "x/x;\u00c6=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00c6;bonus=x", + "output": "x/x;x=\"\u00c6\";bonus=x" + }, + { + "input": "x/x;x=\"\u00c6\";bonus=x", + "output": "x/x;x=\"\u00c6\";bonus=x" + }, + { + "input": "\u00c7/x", + "output": null + }, + { + "input": "x/\u00c7", + "output": null + }, + { + "input": "x/x;\u00c7=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00c7;bonus=x", + "output": "x/x;x=\"\u00c7\";bonus=x" + }, + { + "input": "x/x;x=\"\u00c7\";bonus=x", + "output": "x/x;x=\"\u00c7\";bonus=x" + }, + { + "input": "\u00c8/x", + "output": null + }, + { + "input": "x/\u00c8", + "output": null + }, + { + "input": "x/x;\u00c8=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00c8;bonus=x", + "output": "x/x;x=\"\u00c8\";bonus=x" + }, + { + "input": "x/x;x=\"\u00c8\";bonus=x", + "output": "x/x;x=\"\u00c8\";bonus=x" + }, + { + "input": "\u00c9/x", + "output": null + }, + { + "input": "x/\u00c9", + "output": null + }, + { + "input": "x/x;\u00c9=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00c9;bonus=x", + "output": "x/x;x=\"\u00c9\";bonus=x" + }, + { + "input": "x/x;x=\"\u00c9\";bonus=x", + "output": "x/x;x=\"\u00c9\";bonus=x" + }, + { + "input": "\u00ca/x", + "output": null + }, + { + "input": "x/\u00ca", + "output": null + }, + { + "input": "x/x;\u00ca=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00ca;bonus=x", + "output": "x/x;x=\"\u00ca\";bonus=x" + }, + { + "input": "x/x;x=\"\u00ca\";bonus=x", + "output": "x/x;x=\"\u00ca\";bonus=x" + }, + { + "input": "\u00cb/x", + "output": null + }, + { + "input": "x/\u00cb", + "output": null + }, + { + "input": "x/x;\u00cb=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00cb;bonus=x", + "output": "x/x;x=\"\u00cb\";bonus=x" + }, + { + "input": "x/x;x=\"\u00cb\";bonus=x", + "output": "x/x;x=\"\u00cb\";bonus=x" + }, + { + "input": "\u00cc/x", + "output": null + }, + { + "input": "x/\u00cc", + "output": null + }, + { + "input": "x/x;\u00cc=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00cc;bonus=x", + "output": "x/x;x=\"\u00cc\";bonus=x" + }, + { + "input": "x/x;x=\"\u00cc\";bonus=x", + "output": "x/x;x=\"\u00cc\";bonus=x" + }, + { + "input": "\u00cd/x", + "output": null + }, + { + "input": "x/\u00cd", + "output": null + }, + { + "input": "x/x;\u00cd=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00cd;bonus=x", + "output": "x/x;x=\"\u00cd\";bonus=x" + }, + { + "input": "x/x;x=\"\u00cd\";bonus=x", + "output": "x/x;x=\"\u00cd\";bonus=x" + }, + { + "input": "\u00ce/x", + "output": null + }, + { + "input": "x/\u00ce", + "output": null + }, + { + "input": "x/x;\u00ce=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00ce;bonus=x", + "output": "x/x;x=\"\u00ce\";bonus=x" + }, + { + "input": "x/x;x=\"\u00ce\";bonus=x", + "output": "x/x;x=\"\u00ce\";bonus=x" + }, + { + "input": "\u00cf/x", + "output": null + }, + { + "input": "x/\u00cf", + "output": null + }, + { + "input": "x/x;\u00cf=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00cf;bonus=x", + "output": "x/x;x=\"\u00cf\";bonus=x" + }, + { + "input": "x/x;x=\"\u00cf\";bonus=x", + "output": "x/x;x=\"\u00cf\";bonus=x" + }, + { + "input": "\u00d0/x", + "output": null + }, + { + "input": "x/\u00d0", + "output": null + }, + { + "input": "x/x;\u00d0=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00d0;bonus=x", + "output": "x/x;x=\"\u00d0\";bonus=x" + }, + { + "input": "x/x;x=\"\u00d0\";bonus=x", + "output": "x/x;x=\"\u00d0\";bonus=x" + }, + { + "input": "\u00d1/x", + "output": null + }, + { + "input": "x/\u00d1", + "output": null + }, + { + "input": "x/x;\u00d1=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00d1;bonus=x", + "output": "x/x;x=\"\u00d1\";bonus=x" + }, + { + "input": "x/x;x=\"\u00d1\";bonus=x", + "output": "x/x;x=\"\u00d1\";bonus=x" + }, + { + "input": "\u00d2/x", + "output": null + }, + { + "input": "x/\u00d2", + "output": null + }, + { + "input": "x/x;\u00d2=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00d2;bonus=x", + "output": "x/x;x=\"\u00d2\";bonus=x" + }, + { + "input": "x/x;x=\"\u00d2\";bonus=x", + "output": "x/x;x=\"\u00d2\";bonus=x" + }, + { + "input": "\u00d3/x", + "output": null + }, + { + "input": "x/\u00d3", + "output": null + }, + { + "input": "x/x;\u00d3=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00d3;bonus=x", + "output": "x/x;x=\"\u00d3\";bonus=x" + }, + { + "input": "x/x;x=\"\u00d3\";bonus=x", + "output": "x/x;x=\"\u00d3\";bonus=x" + }, + { + "input": "\u00d4/x", + "output": null + }, + { + "input": "x/\u00d4", + "output": null + }, + { + "input": "x/x;\u00d4=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00d4;bonus=x", + "output": "x/x;x=\"\u00d4\";bonus=x" + }, + { + "input": "x/x;x=\"\u00d4\";bonus=x", + "output": "x/x;x=\"\u00d4\";bonus=x" + }, + { + "input": "\u00d5/x", + "output": null + }, + { + "input": "x/\u00d5", + "output": null + }, + { + "input": "x/x;\u00d5=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00d5;bonus=x", + "output": "x/x;x=\"\u00d5\";bonus=x" + }, + { + "input": "x/x;x=\"\u00d5\";bonus=x", + "output": "x/x;x=\"\u00d5\";bonus=x" + }, + { + "input": "\u00d6/x", + "output": null + }, + { + "input": "x/\u00d6", + "output": null + }, + { + "input": "x/x;\u00d6=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00d6;bonus=x", + "output": "x/x;x=\"\u00d6\";bonus=x" + }, + { + "input": "x/x;x=\"\u00d6\";bonus=x", + "output": "x/x;x=\"\u00d6\";bonus=x" + }, + { + "input": "\u00d7/x", + "output": null + }, + { + "input": "x/\u00d7", + "output": null + }, + { + "input": "x/x;\u00d7=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00d7;bonus=x", + "output": "x/x;x=\"\u00d7\";bonus=x" + }, + { + "input": "x/x;x=\"\u00d7\";bonus=x", + "output": "x/x;x=\"\u00d7\";bonus=x" + }, + { + "input": "\u00d8/x", + "output": null + }, + { + "input": "x/\u00d8", + "output": null + }, + { + "input": "x/x;\u00d8=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00d8;bonus=x", + "output": "x/x;x=\"\u00d8\";bonus=x" + }, + { + "input": "x/x;x=\"\u00d8\";bonus=x", + "output": "x/x;x=\"\u00d8\";bonus=x" + }, + { + "input": "\u00d9/x", + "output": null + }, + { + "input": "x/\u00d9", + "output": null + }, + { + "input": "x/x;\u00d9=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00d9;bonus=x", + "output": "x/x;x=\"\u00d9\";bonus=x" + }, + { + "input": "x/x;x=\"\u00d9\";bonus=x", + "output": "x/x;x=\"\u00d9\";bonus=x" + }, + { + "input": "\u00da/x", + "output": null + }, + { + "input": "x/\u00da", + "output": null + }, + { + "input": "x/x;\u00da=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00da;bonus=x", + "output": "x/x;x=\"\u00da\";bonus=x" + }, + { + "input": "x/x;x=\"\u00da\";bonus=x", + "output": "x/x;x=\"\u00da\";bonus=x" + }, + { + "input": "\u00db/x", + "output": null + }, + { + "input": "x/\u00db", + "output": null + }, + { + "input": "x/x;\u00db=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00db;bonus=x", + "output": "x/x;x=\"\u00db\";bonus=x" + }, + { + "input": "x/x;x=\"\u00db\";bonus=x", + "output": "x/x;x=\"\u00db\";bonus=x" + }, + { + "input": "\u00dc/x", + "output": null + }, + { + "input": "x/\u00dc", + "output": null + }, + { + "input": "x/x;\u00dc=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00dc;bonus=x", + "output": "x/x;x=\"\u00dc\";bonus=x" + }, + { + "input": "x/x;x=\"\u00dc\";bonus=x", + "output": "x/x;x=\"\u00dc\";bonus=x" + }, + { + "input": "\u00dd/x", + "output": null + }, + { + "input": "x/\u00dd", + "output": null + }, + { + "input": "x/x;\u00dd=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00dd;bonus=x", + "output": "x/x;x=\"\u00dd\";bonus=x" + }, + { + "input": "x/x;x=\"\u00dd\";bonus=x", + "output": "x/x;x=\"\u00dd\";bonus=x" + }, + { + "input": "\u00de/x", + "output": null + }, + { + "input": "x/\u00de", + "output": null + }, + { + "input": "x/x;\u00de=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00de;bonus=x", + "output": "x/x;x=\"\u00de\";bonus=x" + }, + { + "input": "x/x;x=\"\u00de\";bonus=x", + "output": "x/x;x=\"\u00de\";bonus=x" + }, + { + "input": "\u00df/x", + "output": null + }, + { + "input": "x/\u00df", + "output": null + }, + { + "input": "x/x;\u00df=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00df;bonus=x", + "output": "x/x;x=\"\u00df\";bonus=x" + }, + { + "input": "x/x;x=\"\u00df\";bonus=x", + "output": "x/x;x=\"\u00df\";bonus=x" + }, + { + "input": "\u00e0/x", + "output": null + }, + { + "input": "x/\u00e0", + "output": null + }, + { + "input": "x/x;\u00e0=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00e0;bonus=x", + "output": "x/x;x=\"\u00e0\";bonus=x" + }, + { + "input": "x/x;x=\"\u00e0\";bonus=x", + "output": "x/x;x=\"\u00e0\";bonus=x" + }, + { + "input": "\u00e1/x", + "output": null + }, + { + "input": "x/\u00e1", + "output": null + }, + { + "input": "x/x;\u00e1=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00e1;bonus=x", + "output": "x/x;x=\"\u00e1\";bonus=x" + }, + { + "input": "x/x;x=\"\u00e1\";bonus=x", + "output": "x/x;x=\"\u00e1\";bonus=x" + }, + { + "input": "\u00e2/x", + "output": null + }, + { + "input": "x/\u00e2", + "output": null + }, + { + "input": "x/x;\u00e2=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00e2;bonus=x", + "output": "x/x;x=\"\u00e2\";bonus=x" + }, + { + "input": "x/x;x=\"\u00e2\";bonus=x", + "output": "x/x;x=\"\u00e2\";bonus=x" + }, + { + "input": "\u00e3/x", + "output": null + }, + { + "input": "x/\u00e3", + "output": null + }, + { + "input": "x/x;\u00e3=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00e3;bonus=x", + "output": "x/x;x=\"\u00e3\";bonus=x" + }, + { + "input": "x/x;x=\"\u00e3\";bonus=x", + "output": "x/x;x=\"\u00e3\";bonus=x" + }, + { + "input": "\u00e4/x", + "output": null + }, + { + "input": "x/\u00e4", + "output": null + }, + { + "input": "x/x;\u00e4=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00e4;bonus=x", + "output": "x/x;x=\"\u00e4\";bonus=x" + }, + { + "input": "x/x;x=\"\u00e4\";bonus=x", + "output": "x/x;x=\"\u00e4\";bonus=x" + }, + { + "input": "\u00e5/x", + "output": null + }, + { + "input": "x/\u00e5", + "output": null + }, + { + "input": "x/x;\u00e5=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00e5;bonus=x", + "output": "x/x;x=\"\u00e5\";bonus=x" + }, + { + "input": "x/x;x=\"\u00e5\";bonus=x", + "output": "x/x;x=\"\u00e5\";bonus=x" + }, + { + "input": "\u00e6/x", + "output": null + }, + { + "input": "x/\u00e6", + "output": null + }, + { + "input": "x/x;\u00e6=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00e6;bonus=x", + "output": "x/x;x=\"\u00e6\";bonus=x" + }, + { + "input": "x/x;x=\"\u00e6\";bonus=x", + "output": "x/x;x=\"\u00e6\";bonus=x" + }, + { + "input": "\u00e7/x", + "output": null + }, + { + "input": "x/\u00e7", + "output": null + }, + { + "input": "x/x;\u00e7=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00e7;bonus=x", + "output": "x/x;x=\"\u00e7\";bonus=x" + }, + { + "input": "x/x;x=\"\u00e7\";bonus=x", + "output": "x/x;x=\"\u00e7\";bonus=x" + }, + { + "input": "\u00e8/x", + "output": null + }, + { + "input": "x/\u00e8", + "output": null + }, + { + "input": "x/x;\u00e8=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00e8;bonus=x", + "output": "x/x;x=\"\u00e8\";bonus=x" + }, + { + "input": "x/x;x=\"\u00e8\";bonus=x", + "output": "x/x;x=\"\u00e8\";bonus=x" + }, + { + "input": "\u00e9/x", + "output": null + }, + { + "input": "x/\u00e9", + "output": null + }, + { + "input": "x/x;\u00e9=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00e9;bonus=x", + "output": "x/x;x=\"\u00e9\";bonus=x" + }, + { + "input": "x/x;x=\"\u00e9\";bonus=x", + "output": "x/x;x=\"\u00e9\";bonus=x" + }, + { + "input": "\u00ea/x", + "output": null + }, + { + "input": "x/\u00ea", + "output": null + }, + { + "input": "x/x;\u00ea=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00ea;bonus=x", + "output": "x/x;x=\"\u00ea\";bonus=x" + }, + { + "input": "x/x;x=\"\u00ea\";bonus=x", + "output": "x/x;x=\"\u00ea\";bonus=x" + }, + { + "input": "\u00eb/x", + "output": null + }, + { + "input": "x/\u00eb", + "output": null + }, + { + "input": "x/x;\u00eb=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00eb;bonus=x", + "output": "x/x;x=\"\u00eb\";bonus=x" + }, + { + "input": "x/x;x=\"\u00eb\";bonus=x", + "output": "x/x;x=\"\u00eb\";bonus=x" + }, + { + "input": "\u00ec/x", + "output": null + }, + { + "input": "x/\u00ec", + "output": null + }, + { + "input": "x/x;\u00ec=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00ec;bonus=x", + "output": "x/x;x=\"\u00ec\";bonus=x" + }, + { + "input": "x/x;x=\"\u00ec\";bonus=x", + "output": "x/x;x=\"\u00ec\";bonus=x" + }, + { + "input": "\u00ed/x", + "output": null + }, + { + "input": "x/\u00ed", + "output": null + }, + { + "input": "x/x;\u00ed=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00ed;bonus=x", + "output": "x/x;x=\"\u00ed\";bonus=x" + }, + { + "input": "x/x;x=\"\u00ed\";bonus=x", + "output": "x/x;x=\"\u00ed\";bonus=x" + }, + { + "input": "\u00ee/x", + "output": null + }, + { + "input": "x/\u00ee", + "output": null + }, + { + "input": "x/x;\u00ee=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00ee;bonus=x", + "output": "x/x;x=\"\u00ee\";bonus=x" + }, + { + "input": "x/x;x=\"\u00ee\";bonus=x", + "output": "x/x;x=\"\u00ee\";bonus=x" + }, + { + "input": "\u00ef/x", + "output": null + }, + { + "input": "x/\u00ef", + "output": null + }, + { + "input": "x/x;\u00ef=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00ef;bonus=x", + "output": "x/x;x=\"\u00ef\";bonus=x" + }, + { + "input": "x/x;x=\"\u00ef\";bonus=x", + "output": "x/x;x=\"\u00ef\";bonus=x" + }, + { + "input": "\u00f0/x", + "output": null + }, + { + "input": "x/\u00f0", + "output": null + }, + { + "input": "x/x;\u00f0=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00f0;bonus=x", + "output": "x/x;x=\"\u00f0\";bonus=x" + }, + { + "input": "x/x;x=\"\u00f0\";bonus=x", + "output": "x/x;x=\"\u00f0\";bonus=x" + }, + { + "input": "\u00f1/x", + "output": null + }, + { + "input": "x/\u00f1", + "output": null + }, + { + "input": "x/x;\u00f1=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00f1;bonus=x", + "output": "x/x;x=\"\u00f1\";bonus=x" + }, + { + "input": "x/x;x=\"\u00f1\";bonus=x", + "output": "x/x;x=\"\u00f1\";bonus=x" + }, + { + "input": "\u00f2/x", + "output": null + }, + { + "input": "x/\u00f2", + "output": null + }, + { + "input": "x/x;\u00f2=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00f2;bonus=x", + "output": "x/x;x=\"\u00f2\";bonus=x" + }, + { + "input": "x/x;x=\"\u00f2\";bonus=x", + "output": "x/x;x=\"\u00f2\";bonus=x" + }, + { + "input": "\u00f3/x", + "output": null + }, + { + "input": "x/\u00f3", + "output": null + }, + { + "input": "x/x;\u00f3=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00f3;bonus=x", + "output": "x/x;x=\"\u00f3\";bonus=x" + }, + { + "input": "x/x;x=\"\u00f3\";bonus=x", + "output": "x/x;x=\"\u00f3\";bonus=x" + }, + { + "input": "\u00f4/x", + "output": null + }, + { + "input": "x/\u00f4", + "output": null + }, + { + "input": "x/x;\u00f4=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00f4;bonus=x", + "output": "x/x;x=\"\u00f4\";bonus=x" + }, + { + "input": "x/x;x=\"\u00f4\";bonus=x", + "output": "x/x;x=\"\u00f4\";bonus=x" + }, + { + "input": "\u00f5/x", + "output": null + }, + { + "input": "x/\u00f5", + "output": null + }, + { + "input": "x/x;\u00f5=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00f5;bonus=x", + "output": "x/x;x=\"\u00f5\";bonus=x" + }, + { + "input": "x/x;x=\"\u00f5\";bonus=x", + "output": "x/x;x=\"\u00f5\";bonus=x" + }, + { + "input": "\u00f6/x", + "output": null + }, + { + "input": "x/\u00f6", + "output": null + }, + { + "input": "x/x;\u00f6=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00f6;bonus=x", + "output": "x/x;x=\"\u00f6\";bonus=x" + }, + { + "input": "x/x;x=\"\u00f6\";bonus=x", + "output": "x/x;x=\"\u00f6\";bonus=x" + }, + { + "input": "\u00f7/x", + "output": null + }, + { + "input": "x/\u00f7", + "output": null + }, + { + "input": "x/x;\u00f7=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00f7;bonus=x", + "output": "x/x;x=\"\u00f7\";bonus=x" + }, + { + "input": "x/x;x=\"\u00f7\";bonus=x", + "output": "x/x;x=\"\u00f7\";bonus=x" + }, + { + "input": "\u00f8/x", + "output": null + }, + { + "input": "x/\u00f8", + "output": null + }, + { + "input": "x/x;\u00f8=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00f8;bonus=x", + "output": "x/x;x=\"\u00f8\";bonus=x" + }, + { + "input": "x/x;x=\"\u00f8\";bonus=x", + "output": "x/x;x=\"\u00f8\";bonus=x" + }, + { + "input": "\u00f9/x", + "output": null + }, + { + "input": "x/\u00f9", + "output": null + }, + { + "input": "x/x;\u00f9=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00f9;bonus=x", + "output": "x/x;x=\"\u00f9\";bonus=x" + }, + { + "input": "x/x;x=\"\u00f9\";bonus=x", + "output": "x/x;x=\"\u00f9\";bonus=x" + }, + { + "input": "\u00fa/x", + "output": null + }, + { + "input": "x/\u00fa", + "output": null + }, + { + "input": "x/x;\u00fa=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00fa;bonus=x", + "output": "x/x;x=\"\u00fa\";bonus=x" + }, + { + "input": "x/x;x=\"\u00fa\";bonus=x", + "output": "x/x;x=\"\u00fa\";bonus=x" + }, + { + "input": "\u00fb/x", + "output": null + }, + { + "input": "x/\u00fb", + "output": null + }, + { + "input": "x/x;\u00fb=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00fb;bonus=x", + "output": "x/x;x=\"\u00fb\";bonus=x" + }, + { + "input": "x/x;x=\"\u00fb\";bonus=x", + "output": "x/x;x=\"\u00fb\";bonus=x" + }, + { + "input": "\u00fc/x", + "output": null + }, + { + "input": "x/\u00fc", + "output": null + }, + { + "input": "x/x;\u00fc=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00fc;bonus=x", + "output": "x/x;x=\"\u00fc\";bonus=x" + }, + { + "input": "x/x;x=\"\u00fc\";bonus=x", + "output": "x/x;x=\"\u00fc\";bonus=x" + }, + { + "input": "\u00fd/x", + "output": null + }, + { + "input": "x/\u00fd", + "output": null + }, + { + "input": "x/x;\u00fd=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00fd;bonus=x", + "output": "x/x;x=\"\u00fd\";bonus=x" + }, + { + "input": "x/x;x=\"\u00fd\";bonus=x", + "output": "x/x;x=\"\u00fd\";bonus=x" + }, + { + "input": "\u00fe/x", + "output": null + }, + { + "input": "x/\u00fe", + "output": null + }, + { + "input": "x/x;\u00fe=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00fe;bonus=x", + "output": "x/x;x=\"\u00fe\";bonus=x" + }, + { + "input": "x/x;x=\"\u00fe\";bonus=x", + "output": "x/x;x=\"\u00fe\";bonus=x" + }, + { + "input": "\u00ff/x", + "output": null + }, + { + "input": "x/\u00ff", + "output": null + }, + { + "input": "x/x;\u00ff=x;bonus=x", + "output": "x/x;bonus=x" + }, + { + "input": "x/x;x=\u00ff;bonus=x", + "output": "x/x;x=\"\u00ff\";bonus=x" + }, + { + "input": "x/x;x=\"\u00ff\";bonus=x", + "output": "x/x;x=\"\u00ff\";bonus=x" + } + ] diff --git a/tests/cases/mime-types.json b/tests/cases/mime-types.json new file mode 100644 index 0000000..e3cf13d --- /dev/null +++ b/tests/cases/mime-types.json @@ -0,0 +1,383 @@ +[ + "Basics", + { + "input": "text/html;charset=gbk", + "output": "text/html;charset=gbk", + "navigable": true, + "encoding": "GBK" + }, + { + "input": "TEXT/HTML;CHARSET=GBK", + "output": "text/html;charset=GBK", + "navigable": true, + "encoding": "GBK" + }, + "Legacy comment syntax", + { + "input": "text/html;charset=gbk(", + "output": "text/html;charset=\"gbk(\"", + "navigable": true, + "encoding": null + }, + { + "input": "text/html;x=(;charset=gbk", + "output": "text/html;x=\"(\";charset=gbk", + "navigable": true, + "encoding": "GBK" + }, + "Duplicate parameter", + { + "input": "text/html;charset=gbk;charset=windows-1255", + "output": "text/html;charset=gbk", + "navigable": true, + "encoding": "GBK" + }, + { + "input": "text/html;charset=();charset=GBK", + "output": "text/html;charset=\"()\"", + "navigable": true, + "encoding": null + }, + "Spaces", + { + "input": "text/html;charset =gbk", + "output": "text/html", + "navigable": true, + "encoding": null + }, + { + "input": "text/html ;charset=gbk", + "output": "text/html;charset=gbk", + "navigable": true, + "encoding": "GBK" + }, + { + "input": "text/html; charset=gbk", + "output": "text/html;charset=gbk", + "navigable": true, + "encoding": "GBK" + }, + { + "input": "text/html;charset= gbk", + "output": "text/html;charset=\" gbk\"", + "navigable": true, + "encoding": "GBK" + }, + { + "input": "text/html;charset= \"gbk\"", + "output": "text/html;charset=\" \\\"gbk\\\"\"", + "navigable": true, + "encoding": null + }, + "0x0B and 0x0C", + { + "input": "text/html;charset=\u000Bgbk", + "output": "text/html", + "navigable": true, + "encoding": null + }, + { + "input": "text/html;charset=\u000Cgbk", + "output": "text/html", + "navigable": true, + "encoding": null + }, + { + "input": "text/html;\u000Bcharset=gbk", + "output": "text/html", + "navigable": true, + "encoding": null + }, + { + "input": "text/html;\u000Ccharset=gbk", + "output": "text/html", + "navigable": true, + "encoding": null + }, + "Single quotes are a token, not a delimiter", + { + "input": "text/html;charset='gbk'", + "output": "text/html;charset='gbk'", + "navigable": true, + "encoding": null + }, + { + "input": "text/html;charset='gbk", + "output": "text/html;charset='gbk", + "navigable": true, + "encoding": null + }, + { + "input": "text/html;charset=gbk'", + "output": "text/html;charset=gbk'", + "navigable": true, + "encoding": null + }, + { + "input": "text/html;charset=';charset=GBK", + "output": "text/html;charset='", + "navigable": true, + "encoding": null + }, + "Invalid parameters", + { + "input": "text/html;test;charset=gbk", + "output": "text/html;charset=gbk", + "navigable": true, + "encoding": "GBK" + }, + { + "input": "text/html;test=;charset=gbk", + "output": "text/html;charset=gbk", + "navigable": true, + "encoding": "GBK" + }, + { + "input": "text/html;';charset=gbk", + "output": "text/html;charset=gbk", + "navigable": true, + "encoding": "GBK" + }, + { + "input": "text/html;\";charset=gbk", + "output": "text/html;charset=gbk", + "navigable": true, + "encoding": "GBK" + }, + { + "input": "text/html ; ; charset=gbk", + "output": "text/html;charset=gbk", + "navigable": true, + "encoding": "GBK" + }, + { + "input": "text/html;;;;charset=gbk", + "output": "text/html;charset=gbk", + "navigable": true, + "encoding": "GBK" + }, + { + "input": "text/html;charset= \"\u007F;charset=GBK", + "output": "text/html;charset=GBK", + "navigable": true, + "encoding": "GBK" + }, + { + "input": "text/html;charset=\"\u007F;charset=foo\";charset=GBK", + "output": "text/html;charset=GBK", + "navigable": true, + "encoding": "GBK" + }, + "Double quotes", + { + "input": "text/html;charset=\"gbk\"", + "output": "text/html;charset=gbk", + "navigable": true, + "encoding": "GBK" + }, + { + "input": "text/html;charset=\"gbk", + "output": "text/html;charset=gbk", + "navigable": true, + "encoding": "GBK" + }, + { + "input": "text/html;charset=gbk\"", + "output": "text/html;charset=\"gbk\\\"\"", + "navigable": true, + "encoding": null + }, + { + "input": "text/html;charset=\" gbk\"", + "output": "text/html;charset=\" gbk\"", + "navigable": true, + "encoding": "GBK" + }, + { + "input": "text/html;charset=\"gbk \"", + "output": "text/html;charset=\"gbk \"", + "navigable": true, + "encoding": "GBK" + }, + { + "input": "text/html;charset=\"\\ gbk\"", + "output": "text/html;charset=\" gbk\"", + "navigable": true, + "encoding": "GBK" + }, + { + "input": "text/html;charset=\"\\g\\b\\k\"", + "output": "text/html;charset=gbk", + "navigable": true, + "encoding": "GBK" + }, + { + "input": "text/html;charset=\"gbk\"x", + "output": "text/html;charset=gbk", + "navigable": true, + "encoding": "GBK" + }, + { + "input": "text/html;charset=\"\";charset=GBK", + "output": "text/html;charset=\"\"", + "navigable": true, + "encoding": null + }, + { + "input": "text/html;charset=\";charset=GBK", + "output": "text/html;charset=\";charset=GBK\"", + "navigable": true, + "encoding": null + }, + "Unexpected code points", + { + "input": "text/html;charset={gbk}", + "output": "text/html;charset=\"{gbk}\"", + "navigable": true, + "encoding": null + }, + "Parameter name longer than 127", + { + "input": "text/html;0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789=x;charset=gbk", + "output": "text/html;0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789=x;charset=gbk", + "navigable": true, + "encoding": "GBK" + }, + "type/subtype longer than 127", + { + "input": "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789/0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789", + "output": "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789/0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" + }, + "Valid", + { + "input": "!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz;!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz=!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", + "output": "!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz/!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz;!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz=!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" + }, + { + "input": "x/x;x=\"\t !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097\u0098\u0099\u009A\u009B\u009C\u009D\u009E\u009F\u00A0\u00A1\u00A2\u00A3\u00A4\u00A5\u00A6\u00A7\u00A8\u00A9\u00AA\u00AB\u00AC\u00AD\u00AE\u00AF\u00B0\u00B1\u00B2\u00B3\u00B4\u00B5\u00B6\u00B7\u00B8\u00B9\u00BA\u00BB\u00BC\u00BD\u00BE\u00BF\u00C0\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7\u00C8\u00C9\u00CA\u00CB\u00CC\u00CD\u00CE\u00CF\u00D0\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6\u00D7\u00D8\u00D9\u00DA\u00DB\u00DC\u00DD\u00DE\u00DF\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5\u00E6\u00E7\u00E8\u00E9\u00EA\u00EB\u00EC\u00ED\u00EE\u00EF\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7\u00F8\u00F9\u00FA\u00FB\u00FC\u00FD\u00FE\u00FF\"", + "output": "x/x;x=\"\t !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097\u0098\u0099\u009A\u009B\u009C\u009D\u009E\u009F\u00A0\u00A1\u00A2\u00A3\u00A4\u00A5\u00A6\u00A7\u00A8\u00A9\u00AA\u00AB\u00AC\u00AD\u00AE\u00AF\u00B0\u00B1\u00B2\u00B3\u00B4\u00B5\u00B6\u00B7\u00B8\u00B9\u00BA\u00BB\u00BC\u00BD\u00BE\u00BF\u00C0\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7\u00C8\u00C9\u00CA\u00CB\u00CC\u00CD\u00CE\u00CF\u00D0\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6\u00D7\u00D8\u00D9\u00DA\u00DB\u00DC\u00DD\u00DE\u00DF\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5\u00E6\u00E7\u00E8\u00E9\u00EA\u00EB\u00EC\u00ED\u00EE\u00EF\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7\u00F8\u00F9\u00FA\u00FB\u00FC\u00FD\u00FE\u00FF\"" + }, + "End-of-file handling", + { + "input": "x/x;test", + "output": "x/x" + }, + { + "input": "x/x;test=\"\\", + "output": "x/x;test=\"\\\\\"" + }, + "Whitespace (not handled by generated-mime-types.json or above)", + { + "input": "x/x;x= ", + "output": "x/x" + }, + { + "input": "x/x;x=\t", + "output": "x/x" + }, + { + "input": "x/x\n\r\t ;x=x", + "output": "x/x;x=x" + }, + { + "input": "\n\r\t x/x;x=x\n\r\t ", + "output": "x/x;x=x" + }, + { + "input": "x/x;\n\r\t x=x\n\r\t ;x=y", + "output": "x/x;x=x" + }, + "Latin1", + { + "input": "text/html;test=\u00FF;charset=gbk", + "output": "text/html;test=\"\u00FF\";charset=gbk", + "navigable": true, + "encoding": "GBK" + }, + ">Latin1", + { + "input": "x/x;test=\uFFFD;x=x", + "output": "x/x;x=x" + }, + "Failure", + { + "input": "\u000Bx/x", + "output": null + }, + { + "input": "\u000Cx/x", + "output": null + }, + { + "input": "x/x\u000B", + "output": null + }, + { + "input": "x/x\u000C", + "output": null + }, + { + "input": "", + "output": null + }, + { + "input": "\t", + "output": null + }, + { + "input": "/", + "output": null + }, + { + "input": "bogus", + "output": null + }, + { + "input": "bogus/", + "output": null + }, + { + "input": "bogus/ ", + "output": null + }, + { + "input": "bogus/bogus/;", + "output": null + }, + { + "input": "", + "output": null + }, + { + "input": "(/)", + "output": null + }, + { + "input": "ÿ/ÿ", + "output": null + }, + { + "input": "text/html(;doesnot=matter", + "output": null + }, + { + "input": "{/}", + "output": null + }, + { + "input": "\u0100/\u0100", + "output": null + }, + { + "input": "text /html", + "output": null + }, + { + "input": "text/ html", + "output": null + }, + { + "input": "\"text/html\"", + "output": null + } +] diff --git a/tests/phpunit.dist.xml b/tests/phpunit.dist.xml new file mode 100644 index 0000000..2c4c5b5 --- /dev/null +++ b/tests/phpunit.dist.xml @@ -0,0 +1,26 @@ + + + + + + ../lib + + + + + + cases + + + diff --git a/vendor-bin/csfixer/composer.json b/vendor-bin/csfixer/composer.json new file mode 100644 index 0000000..6d9218d --- /dev/null +++ b/vendor-bin/csfixer/composer.json @@ -0,0 +1,5 @@ +{ + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.16" + } +} diff --git a/vendor-bin/csfixer/composer.lock b/vendor-bin/csfixer/composer.lock new file mode 100644 index 0000000..b8aa3bf --- /dev/null +++ b/vendor-bin/csfixer/composer.lock @@ -0,0 +1,1499 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "4bdcf336f35491d1c29392d1d2e5a157", + "packages": [], + "packages-dev": [ + { + "name": "composer/semver", + "version": "1.5.1", + "source": { + "type": "git", + "url": "https://github.com/composer/semver.git", + "reference": "c6bea70230ef4dd483e6bbcab6005f682ed3a8de" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/semver/zipball/c6bea70230ef4dd483e6bbcab6005f682ed3a8de", + "reference": "c6bea70230ef4dd483e6bbcab6005f682ed3a8de", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.5 || ^5.0.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Semver\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "Semver library that offers utilities, version constraint parsing and validation.", + "keywords": [ + "semantic", + "semver", + "validation", + "versioning" + ], + "time": "2020-01-13T12:06:48+00:00" + }, + { + "name": "composer/xdebug-handler", + "version": "1.4.1", + "source": { + "type": "git", + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "1ab9842d69e64fb3a01be6b656501032d1b78cb7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/1ab9842d69e64fb3a01be6b656501032d1b78cb7", + "reference": "1ab9842d69e64fb3a01be6b656501032d1b78cb7", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0", + "psr/log": "^1.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8" + }, + "type": "library", + "autoload": { + "psr-4": { + "Composer\\XdebugHandler\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" + } + ], + "description": "Restarts a process without Xdebug.", + "keywords": [ + "Xdebug", + "performance" + ], + "time": "2020-03-01T12:26:26+00:00" + }, + { + "name": "doctrine/annotations", + "version": "1.10.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/annotations.git", + "reference": "5eb79f3dbdffed6544e1fc287572c0f462bd29bb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/5eb79f3dbdffed6544e1fc287572c0f462bd29bb", + "reference": "5eb79f3dbdffed6544e1fc287572c0f462bd29bb", + "shasum": "" + }, + "require": { + "doctrine/lexer": "1.*", + "ext-tokenizer": "*", + "php": "^7.1" + }, + "require-dev": { + "doctrine/cache": "1.*", + "phpunit/phpunit": "^7.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.9.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Docblock Annotations Parser", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "annotations", + "docblock", + "parser" + ], + "time": "2020-04-02T12:33:25+00:00" + }, + { + "name": "doctrine/lexer", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/lexer.git", + "reference": "5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6", + "reference": "5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6", + "shasum": "" + }, + "require": { + "php": "^7.2" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0", + "phpstan/phpstan": "^0.11.8", + "phpunit/phpunit": "^8.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", + "keywords": [ + "annotations", + "docblock", + "lexer", + "parser", + "php" + ], + "time": "2019-10-30T14:39:59+00:00" + }, + { + "name": "friendsofphp/php-cs-fixer", + "version": "v2.16.3", + "source": { + "type": "git", + "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", + "reference": "83baf823a33a1cbd5416c8626935cf3f843c10b0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/83baf823a33a1cbd5416c8626935cf3f843c10b0", + "reference": "83baf823a33a1cbd5416c8626935cf3f843c10b0", + "shasum": "" + }, + "require": { + "composer/semver": "^1.4", + "composer/xdebug-handler": "^1.2", + "doctrine/annotations": "^1.2", + "ext-json": "*", + "ext-tokenizer": "*", + "php": "^5.6 || ^7.0", + "php-cs-fixer/diff": "^1.3", + "symfony/console": "^3.4.17 || ^4.1.6 || ^5.0", + "symfony/event-dispatcher": "^3.0 || ^4.0 || ^5.0", + "symfony/filesystem": "^3.0 || ^4.0 || ^5.0", + "symfony/finder": "^3.0 || ^4.0 || ^5.0", + "symfony/options-resolver": "^3.0 || ^4.0 || ^5.0", + "symfony/polyfill-php70": "^1.0", + "symfony/polyfill-php72": "^1.4", + "symfony/process": "^3.0 || ^4.0 || ^5.0", + "symfony/stopwatch": "^3.0 || ^4.0 || ^5.0" + }, + "require-dev": { + "johnkary/phpunit-speedtrap": "^1.1 || ^2.0 || ^3.0", + "justinrainbow/json-schema": "^5.0", + "keradus/cli-executor": "^1.2", + "mikey179/vfsstream": "^1.6", + "php-coveralls/php-coveralls": "^2.1", + "php-cs-fixer/accessible-object": "^1.0", + "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.1", + "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.1", + "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.1", + "phpunitgoodpractices/traits": "^1.8", + "symfony/phpunit-bridge": "^4.3 || ^5.0", + "symfony/yaml": "^3.0 || ^4.0 || ^5.0" + }, + "suggest": { + "ext-dom": "For handling output formats in XML", + "ext-mbstring": "For handling non-UTF8 characters in cache signature.", + "php-cs-fixer/phpunit-constraint-isidenticalstring": "For IsIdenticalString constraint.", + "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "For XmlMatchesXsd constraint.", + "symfony/polyfill-mbstring": "When enabling `ext-mbstring` is not possible." + }, + "bin": [ + "php-cs-fixer" + ], + "type": "application", + "autoload": { + "psr-4": { + "PhpCsFixer\\": "src/" + }, + "classmap": [ + "tests/Test/AbstractFixerTestCase.php", + "tests/Test/AbstractIntegrationCaseFactory.php", + "tests/Test/AbstractIntegrationTestCase.php", + "tests/Test/Assert/AssertTokensTrait.php", + "tests/Test/IntegrationCase.php", + "tests/Test/IntegrationCaseFactory.php", + "tests/Test/IntegrationCaseFactoryInterface.php", + "tests/Test/InternalIntegrationCaseFactory.php", + "tests/Test/IsIdenticalConstraint.php", + "tests/TestCase.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Dariusz Rumiński", + "email": "dariusz.ruminski@gmail.com" + } + ], + "description": "A tool to automatically fix PHP code style", + "time": "2020-04-15T18:51:10+00:00" + }, + { + "name": "paragonie/random_compat", + "version": "v9.99.99", + "source": { + "type": "git", + "url": "https://github.com/paragonie/random_compat.git", + "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", + "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", + "shasum": "" + }, + "require": { + "php": "^7" + }, + "require-dev": { + "phpunit/phpunit": "4.*|5.*", + "vimeo/psalm": "^1" + }, + "suggest": { + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + }, + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" + } + ], + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "keywords": [ + "csprng", + "polyfill", + "pseudorandom", + "random" + ], + "time": "2018-07-02T15:55:56+00:00" + }, + { + "name": "php-cs-fixer/diff", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/PHP-CS-Fixer/diff.git", + "reference": "78bb099e9c16361126c86ce82ec4405ebab8e756" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHP-CS-Fixer/diff/zipball/78bb099e9c16361126c86ce82ec4405ebab8e756", + "reference": "78bb099e9c16361126c86ce82ec4405ebab8e756", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.7.23 || ^6.4.3", + "symfony/process": "^3.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "SpacePossum" + } + ], + "description": "sebastian/diff v2 backport support for PHP5.6", + "homepage": "https://github.com/PHP-CS-Fixer", + "keywords": [ + "diff" + ], + "time": "2018-02-15T16:58:55+00:00" + }, + { + "name": "psr/container", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "time": "2017-02-14T16:28:37+00:00" + }, + { + "name": "psr/event-dispatcher", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", + "shasum": "" + }, + "require": { + "php": ">=7.2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\EventDispatcher\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Standard interfaces for event handling.", + "keywords": [ + "events", + "psr", + "psr-14" + ], + "time": "2019-01-08T18:20:26+00:00" + }, + { + "name": "psr/log", + "version": "1.1.3", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "time": "2020-03-23T09:12:05+00:00" + }, + { + "name": "symfony/console", + "version": "v5.0.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "5fa1caadc8cdaa17bcfb25219f3b53fe294a9935" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/5fa1caadc8cdaa17bcfb25219f3b53fe294a9935", + "reference": "5fa1caadc8cdaa17bcfb25219f3b53fe294a9935", + "shasum": "" + }, + "require": { + "php": "^7.2.5", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.8", + "symfony/service-contracts": "^1.1|^2" + }, + "conflict": { + "symfony/dependency-injection": "<4.4", + "symfony/event-dispatcher": "<4.4", + "symfony/lock": "<4.4", + "symfony/process": "<4.4" + }, + "provide": { + "psr/log-implementation": "1.0" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/event-dispatcher": "^4.4|^5.0", + "symfony/lock": "^4.4|^5.0", + "symfony/process": "^4.4|^5.0", + "symfony/var-dumper": "^4.4|^5.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Console Component", + "homepage": "https://symfony.com", + "time": "2020-03-30T11:42:42+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v5.0.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "24f40d95385774ed5c71dbf014edd047e2f2f3dc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/24f40d95385774ed5c71dbf014edd047e2f2f3dc", + "reference": "24f40d95385774ed5c71dbf014edd047e2f2f3dc", + "shasum": "" + }, + "require": { + "php": "^7.2.5", + "symfony/event-dispatcher-contracts": "^2" + }, + "conflict": { + "symfony/dependency-injection": "<4.4" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "2.0" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/expression-language": "^4.4|^5.0", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/service-contracts": "^1.1|^2", + "symfony/stopwatch": "^4.4|^5.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony EventDispatcher Component", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-03-27T16:56:45+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v2.0.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "af23c2584d4577d54661c434446fb8fbed6025dd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/af23c2584d4577d54661c434446fb8fbed6025dd", + "reference": "af23c2584d4577d54661c434446fb8fbed6025dd", + "shasum": "" + }, + "require": { + "php": "^7.2.5", + "psr/event-dispatcher": "^1" + }, + "suggest": { + "symfony/event-dispatcher-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2019-11-18T17:27:11+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v5.0.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "ca3b87dd09fff9b771731637f5379965fbfab420" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/ca3b87dd09fff9b771731637f5379965fbfab420", + "reference": "ca3b87dd09fff9b771731637f5379965fbfab420", + "shasum": "" + }, + "require": { + "php": "^7.2.5", + "symfony/polyfill-ctype": "~1.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Filesystem Component", + "homepage": "https://symfony.com", + "time": "2020-03-27T16:56:45+00:00" + }, + { + "name": "symfony/finder", + "version": "v5.0.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "600a52c29afc0d1caa74acbec8d3095ca7e9910d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/600a52c29afc0d1caa74acbec8d3095ca7e9910d", + "reference": "600a52c29afc0d1caa74acbec8d3095ca7e9910d", + "shasum": "" + }, + "require": { + "php": "^7.2.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Finder Component", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-03-27T16:56:45+00:00" + }, + { + "name": "symfony/options-resolver", + "version": "v5.0.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/options-resolver.git", + "reference": "09dccfffd24b311df7f184aa80ee7b61ad61ed8d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/09dccfffd24b311df7f184aa80ee7b61ad61ed8d", + "reference": "09dccfffd24b311df7f184aa80ee7b61ad61ed8d", + "shasum": "" + }, + "require": { + "php": "^7.2.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\OptionsResolver\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony OptionsResolver Component", + "homepage": "https://symfony.com", + "keywords": [ + "config", + "configuration", + "options" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-03-27T16:56:45+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.15.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "4719fa9c18b0464d399f1a63bf624b42b6fa8d14" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/4719fa9c18b0464d399f1a63bf624b42b6fa8d14", + "reference": "4719fa9c18b0464d399f1a63bf624b42b6fa8d14", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.15-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-02-27T09:26:54+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.15.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "81ffd3a9c6d707be22e3012b827de1c9775fc5ac" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/81ffd3a9c6d707be22e3012b827de1c9775fc5ac", + "reference": "81ffd3a9c6d707be22e3012b827de1c9775fc5ac", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.15-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-03-09T19:04:49+00:00" + }, + { + "name": "symfony/polyfill-php70", + "version": "v1.15.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php70.git", + "reference": "2a18e37a489803559284416df58c71ccebe50bf0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/2a18e37a489803559284416df58c71ccebe50bf0", + "reference": "2a18e37a489803559284416df58c71ccebe50bf0", + "shasum": "" + }, + "require": { + "paragonie/random_compat": "~1.0|~2.0|~9.99", + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.15-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php70\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2020-02-27T09:26:54+00:00" + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.15.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "37b0976c78b94856543260ce09b460a7bc852747" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/37b0976c78b94856543260ce09b460a7bc852747", + "reference": "37b0976c78b94856543260ce09b460a7bc852747", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.15-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-02-27T09:26:54+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.15.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "0f27e9f464ea3da33cbe7ca3bdf4eb66def9d0f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/0f27e9f464ea3da33cbe7ca3bdf4eb66def9d0f7", + "reference": "0f27e9f464ea3da33cbe7ca3bdf4eb66def9d0f7", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.15-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-02-27T09:26:54+00:00" + }, + { + "name": "symfony/process", + "version": "v5.0.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "c5ca4a0fc16a0c888067d43fbcfe1f8a53d8e70e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/c5ca4a0fc16a0c888067d43fbcfe1f8a53d8e70e", + "reference": "c5ca4a0fc16a0c888067d43fbcfe1f8a53d8e70e", + "shasum": "" + }, + "require": { + "php": "^7.2.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Process Component", + "homepage": "https://symfony.com", + "time": "2020-03-27T16:56:45+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v2.0.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "144c5e51266b281231e947b51223ba14acf1a749" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/144c5e51266b281231e947b51223ba14acf1a749", + "reference": "144c5e51266b281231e947b51223ba14acf1a749", + "shasum": "" + }, + "require": { + "php": "^7.2.5", + "psr/container": "^1.0" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2019-11-18T17:27:11+00:00" + }, + { + "name": "symfony/stopwatch", + "version": "v5.0.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/stopwatch.git", + "reference": "a1d86d30d4522423afc998f32404efa34fcf5a73" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/a1d86d30d4522423afc998f32404efa34fcf5a73", + "reference": "a1d86d30d4522423afc998f32404efa34fcf5a73", + "shasum": "" + }, + "require": { + "php": "^7.2.5", + "symfony/service-contracts": "^1.0|^2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Stopwatch\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Stopwatch Component", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-03-27T16:56:45+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": [], + "plugin-api-version": "1.1.0" +} diff --git a/vendor-bin/phpunit/composer.json b/vendor-bin/phpunit/composer.json new file mode 100644 index 0000000..bc16564 --- /dev/null +++ b/vendor-bin/phpunit/composer.json @@ -0,0 +1,6 @@ +{ + "require-dev": { + "phpunit/phpunit": "^9.0", + "symfony/yaml": "^5.0" + } +} diff --git a/vendor-bin/phpunit/composer.lock b/vendor-bin/phpunit/composer.lock new file mode 100644 index 0000000..a3e47d0 --- /dev/null +++ b/vendor-bin/phpunit/composer.lock @@ -0,0 +1,1720 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "5f6ef85b0137813e2008ed286079c104", + "packages": [], + "packages-dev": [ + { + "name": "doctrine/instantiator", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "ae466f726242e637cebdd526a7d991b9433bacf1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/ae466f726242e637cebdd526a7d991b9433bacf1", + "reference": "ae466f726242e637cebdd526a7d991b9433bacf1", + "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-10-21T16:45:58+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.9.5", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/b2c28789e80a97badd14145fda39b545d83ca3ef", + "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef", + "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": "2020-01-17T21:11:47+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-common", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/63a995caa1ca9e5590304cd845c15ad6d482a62a", + "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "phpunit/phpunit": "~6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "time": "2018-08-07T13:53:10+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "5.1.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e", + "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e", + "shasum": "" + }, + "require": { + "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", + "mockery/mockery": "^1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "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": "2020-02-22T12:28:44+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "7462d5f123dfc080dfdf26897032a6513644fc95" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/7462d5f123dfc080dfdf26897032a6513644fc95", + "reference": "7462d5f123dfc080dfdf26897032a6513644fc95", + "shasum": "" + }, + "require": { + "php": "^7.2", + "phpdocumentor/reflection-common": "^2.0" + }, + "require-dev": { + "ext-tokenizer": "^7.2", + "mockery/mockery": "~1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "time": "2020-02-18T18:59:58+00:00" + }, + { + "name": "phpspec/prophecy", + "version": "v1.10.3", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy.git", + "reference": "451c3cd1418cf640de218914901e51b064abb093" + }, + "dist": { + "type": "zip", + "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.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", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10.x-dev" + } + }, + "autoload": { + "psr-4": { + "Prophecy\\": "src/Prophecy" + } + }, + "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": "2020-03-05T15:02:03+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "8.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "31e94ccc084025d6abee0585df533eb3a792b96a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/31e94ccc084025d6abee0585df533eb3a792b96a", + "reference": "31e94ccc084025d6abee0585df533eb3a792b96a", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-xmlwriter": "*", + "php": "^7.3", + "phpunit/php-file-iterator": "^3.0", + "phpunit/php-text-template": "^2.0", + "phpunit/php-token-stream": "^4.0", + "sebastian/code-unit-reverse-lookup": "^2.0", + "sebastian/environment": "^5.0", + "sebastian/version": "^3.0", + "theseer/tokenizer": "^1.1.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" + }, + "suggest": { + "ext-pcov": "*", + "ext-xdebug": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "8.0-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": "2020-02-19T13:41:19+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "354d4a5faa7449a377a18b94a2026ca3415e3d7a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/354d4a5faa7449a377a18b94a2026ca3415e3d7a", + "reference": "354d4a5faa7449a377a18b94a2026ca3415e3d7a", + "shasum": "" + }, + "require": { + "php": "^7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.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", + "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": "2020-02-07T06:05:22+00:00" + }, + { + "name": "phpunit/php-invoker", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "7579d5a1ba7f3ac11c80004d205877911315ae7a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/7579d5a1ba7f3ac11c80004d205877911315ae7a", + "reference": "7579d5a1ba7f3ac11c80004d205877911315ae7a", + "shasum": "" + }, + "require": { + "php": "^7.3" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^9.0" + }, + "suggest": { + "ext-pcntl": "*" + }, + "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", + "role": "lead" + } + ], + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" + ], + "time": "2020-02-07T06:06:11+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "526dc996cc0ebdfa428cd2dfccd79b7b53fee346" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/526dc996cc0ebdfa428cd2dfccd79b7b53fee346", + "reference": "526dc996cc0ebdfa428cd2dfccd79b7b53fee346", + "shasum": "" + }, + "require": { + "php": "^7.3" + }, + "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", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "time": "2020-02-01T07:43:44+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "4118013a4d0f97356eae8e7fb2f6c6472575d1df" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/4118013a4d0f97356eae8e7fb2f6c6472575d1df", + "reference": "4118013a4d0f97356eae8e7fb2f6c6472575d1df", + "shasum": "" + }, + "require": { + "php": "^7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.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", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "time": "2020-02-07T06:08:11+00:00" + }, + { + "name": "phpunit/php-token-stream", + "version": "4.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "b2560a0c33f7710e4d7f8780964193e8e8f8effe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/b2560a0c33f7710e4d7f8780964193e8e8f8effe", + "reference": "b2560a0c33f7710e4d7f8780964193e8e8f8effe", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": "^7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.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": "2020-02-07T06:19:00+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "9.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "848f6521c906500e66229668768576d35de0227e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/848f6521c906500e66229668768576d35de0227e", + "reference": "848f6521c906500e66229668768576d35de0227e", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.2.0", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.9.1", + "phar-io/manifest": "^1.0.3", + "phar-io/version": "^2.0.1", + "php": "^7.3", + "phpspec/prophecy": "^1.8.1", + "phpunit/php-code-coverage": "^8.0.1", + "phpunit/php-file-iterator": "^3.0", + "phpunit/php-invoker": "^3.0", + "phpunit/php-text-template": "^2.0", + "phpunit/php-timer": "^3.0", + "sebastian/code-unit": "^1.0", + "sebastian/comparator": "^4.0", + "sebastian/diff": "^4.0", + "sebastian/environment": "^5.0.1", + "sebastian/exporter": "^4.0", + "sebastian/global-state": "^4.0", + "sebastian/object-enumerator": "^4.0", + "sebastian/resource-operations": "^3.0", + "sebastian/type": "^2.0", + "sebastian/version": "^3.0" + }, + "require-dev": { + "ext-pdo": "*" + }, + "suggest": { + "ext-soap": "*", + "ext-xdebug": "*" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ], + "files": [ + "src/Framework/Assert/Functions.php" + ] + }, + "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": "2020-04-03T14:40:04+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "8d8f09bd47c75159921e6e84fdef146343962866" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/8d8f09bd47c75159921e6e84fdef146343962866", + "reference": "8d8f09bd47c75159921e6e84fdef146343962866", + "shasum": "" + }, + "require": { + "php": "^7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-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": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "time": "2020-03-30T11:59:20+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "5b5dbe0044085ac41df47e79d34911a15b96d82e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/5b5dbe0044085ac41df47e79d34911a15b96d82e", + "reference": "5b5dbe0044085ac41df47e79d34911a15b96d82e", + "shasum": "" + }, + "require": { + "php": "^7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" + }, + "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": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "time": "2020-02-07T06:20:13+00:00" + }, + { + "name": "sebastian/comparator", + "version": "4.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "85b3435da967696ed618ff745f32be3ff4a2b8e8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/85b3435da967696ed618ff745f32be3ff4a2b8e8", + "reference": "85b3435da967696ed618ff745f32be3ff4a2b8e8", + "shasum": "" + }, + "require": { + "php": "^7.3", + "sebastian/diff": "^4.0", + "sebastian/exporter": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "time": "2020-02-07T06:08:51+00:00" + }, + { + "name": "sebastian/diff", + "version": "4.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "c0c26c9188b538bfa985ae10c9f05d278f12060d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/c0c26c9188b538bfa985ae10c9f05d278f12060d", + "reference": "c0c26c9188b538bfa985ae10c9f05d278f12060d", + "shasum": "" + }, + "require": { + "php": "^7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0", + "symfony/process": "^4 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "time": "2020-02-07T06:09:38+00:00" + }, + { + "name": "sebastian/environment", + "version": "5.1.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "c753f04d68cd489b6973cf9b4e505e191af3b05c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/c753f04d68cd489b6973cf9b4e505e191af3b05c", + "reference": "c753f04d68cd489b6973cf9b4e505e191af3b05c", + "shasum": "" + }, + "require": { + "php": "^7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.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 functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "time": "2020-04-14T13:36:52+00:00" + }, + { + "name": "sebastian/exporter", + "version": "4.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "80c26562e964016538f832f305b2286e1ec29566" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/80c26562e964016538f832f305b2286e1ec29566", + "reference": "80c26562e964016538f832f305b2286e1ec29566", + "shasum": "" + }, + "require": { + "php": "^7.3", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "http://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "time": "2020-02-07T06:10:52+00:00" + }, + { + "name": "sebastian/global-state", + "version": "4.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "bdb1e7c79e592b8c82cb1699be3c8743119b8a72" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bdb1e7c79e592b8c82cb1699be3c8743119b8a72", + "reference": "bdb1e7c79e592b8c82cb1699be3c8743119b8a72", + "shasum": "" + }, + "require": { + "php": "^7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^9.0" + }, + "suggest": { + "ext-uopz": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.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": "2020-02-07T06:11:37+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "4.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "e67516b175550abad905dc952f43285957ef4363" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/e67516b175550abad905dc952f43285957ef4363", + "reference": "e67516b175550abad905dc952f43285957ef4363", + "shasum": "" + }, + "require": { + "php": "^7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-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": "2020-02-07T06:12:23+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "f4fd0835cabb0d4a6546d9fe291e5740037aa1e7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/f4fd0835cabb0d4a6546d9fe291e5740037aa1e7", + "reference": "f4fd0835cabb0d4a6546d9fe291e5740037aa1e7", + "shasum": "" + }, + "require": { + "php": "^7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" + }, + "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": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "time": "2020-02-07T06:19:40+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "4.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "cdd86616411fc3062368b720b0425de10bd3d579" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cdd86616411fc3062368b720b0425de10bd3d579", + "reference": "cdd86616411fc3062368b720b0425de10bd3d579", + "shasum": "" + }, + "require": { + "php": "^7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "time": "2020-02-07T06:18:20+00:00" + }, + { + "name": "sebastian/resource-operations", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "8c98bf0dfa1f9256d0468b9803a1e1df31b6fa98" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/8c98bf0dfa1f9256d0468b9803a1e1df31b6fa98", + "reference": "8c98bf0dfa1f9256d0468b9803a1e1df31b6fa98", + "shasum": "" + }, + "require": { + "php": "^7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.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": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "time": "2020-02-07T06:13:02+00:00" + }, + { + "name": "sebastian/type", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "9e8f42f740afdea51f5f4e8cec2035580e797ee1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/9e8f42f740afdea51f5f4e8cec2035580e797ee1", + "reference": "9e8f42f740afdea51f5f4e8cec2035580e797ee1", + "shasum": "" + }, + "require": { + "php": "^7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" + }, + "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", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "time": "2020-02-07T06:13:43+00:00" + }, + { + "name": "sebastian/version", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "0411bde656dce64202b39c2f4473993a9081d39e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/0411bde656dce64202b39c2f4473993a9081d39e", + "reference": "0411bde656dce64202b39c2f4473993a9081d39e", + "shasum": "" + }, + "require": { + "php": "^7.3" + }, + "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", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "time": "2020-01-21T06:36:37+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.15.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "4719fa9c18b0464d399f1a63bf624b42b6fa8d14" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/4719fa9c18b0464d399f1a63bf624b42b6fa8d14", + "reference": "4719fa9c18b0464d399f1a63bf624b42b6fa8d14", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.15-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-02-27T09:26:54+00:00" + }, + { + "name": "symfony/yaml", + "version": "v5.0.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "ad5e9c83ade5bbb3a96a3f30588a0622708caefd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/ad5e9c83ade5bbb3a96a3f30588a0622708caefd", + "reference": "ad5e9c83ade5bbb3a96a3f30588a0622708caefd", + "shasum": "" + }, + "require": { + "php": "^7.2.5", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/console": "<4.4" + }, + "require-dev": { + "symfony/console": "^4.4|^5.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Yaml Component", + "homepage": "https://symfony.com", + "time": "2020-03-30T11:42:42+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.1.3", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9", + "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9", + "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-06-13T22:48:21+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.7.0", + "source": { + "type": "git", + "url": "https://github.com/webmozart/assert.git", + "reference": "aed98a490f9a8f78468232db345ab9cf606cf598" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozart/assert/zipball/aed98a490f9a8f78468232db345ab9cf606cf598", + "reference": "aed98a490f9a8f78468232db345ab9cf606cf598", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "vimeo/psalm": "<3.6.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.36 || ^7.5.13" + }, + "type": "library", + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "time": "2020-02-14T12:15:55+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": [], + "plugin-api-version": "1.1.0" +} diff --git a/vendor-bin/robo/composer.json b/vendor-bin/robo/composer.json new file mode 100644 index 0000000..4528263 --- /dev/null +++ b/vendor-bin/robo/composer.json @@ -0,0 +1,5 @@ +{ + "require-dev": { + "consolidation/robo": "^2.0" + } +} diff --git a/vendor-bin/robo/composer.lock b/vendor-bin/robo/composer.lock new file mode 100644 index 0000000..d8852ca --- /dev/null +++ b/vendor-bin/robo/composer.lock @@ -0,0 +1,1473 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "152a2d2d7508cb6a8e6c1e367af45b04", + "packages": [], + "packages-dev": [ + { + "name": "consolidation/annotated-command", + "version": "4.1.0", + "source": { + "type": "git", + "url": "https://github.com/consolidation/annotated-command.git", + "reference": "33e472d3cceb0f22a527d13ccfa3f76c4d21c178" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/consolidation/annotated-command/zipball/33e472d3cceb0f22a527d13ccfa3f76c4d21c178", + "reference": "33e472d3cceb0f22a527d13ccfa3f76c4d21c178", + "shasum": "" + }, + "require": { + "consolidation/output-formatters": "^4.1", + "php": ">=7.1.3", + "psr/log": "^1|^2", + "symfony/console": "^4|^5", + "symfony/event-dispatcher": "^4|^5", + "symfony/finder": "^4|^5" + }, + "require-dev": { + "g1a/composer-test-scenarios": "^3", + "php-coveralls/php-coveralls": "^1", + "phpunit/phpunit": "^6", + "squizlabs/php_codesniffer": "^3" + }, + "type": "library", + "extra": { + "scenarios": { + "symfony4": { + "require": { + "symfony/console": "^4.0" + } + } + }, + "branch-alias": { + "dev-master": "4.x-dev" + } + }, + "autoload": { + "psr-4": { + "Consolidation\\AnnotatedCommand\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Greg Anderson", + "email": "greg.1.anderson@greenknowe.org" + } + ], + "description": "Initialize Symfony Console commands from annotated command class methods.", + "time": "2020-02-07T03:35:30+00:00" + }, + { + "name": "consolidation/config", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/consolidation/config.git", + "reference": "cac1279bae7efb5c7fb2ca4c3ba4b8eb741a96c1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/consolidation/config/zipball/cac1279bae7efb5c7fb2ca4c3ba4b8eb741a96c1", + "reference": "cac1279bae7efb5c7fb2ca4c3ba4b8eb741a96c1", + "shasum": "" + }, + "require": { + "dflydev/dot-access-data": "^1.1.0", + "grasmash/expander": "^1", + "php": ">=5.4.0" + }, + "require-dev": { + "g1a/composer-test-scenarios": "^3", + "php-coveralls/php-coveralls": "^1", + "phpunit/phpunit": "^5", + "squizlabs/php_codesniffer": "2.*", + "symfony/console": "^2.5|^3|^4", + "symfony/yaml": "^2.8.11|^3|^4" + }, + "suggest": { + "symfony/yaml": "Required to use Consolidation\\Config\\Loader\\YamlConfigLoader" + }, + "type": "library", + "extra": { + "scenarios": { + "symfony4": { + "require-dev": { + "symfony/console": "^4.0" + }, + "config": { + "platform": { + "php": "7.1.3" + } + } + }, + "symfony2": { + "require-dev": { + "symfony/console": "^2.8", + "symfony/event-dispatcher": "^2.8", + "phpunit/phpunit": "^4.8.36" + }, + "remove": [ + "php-coveralls/php-coveralls" + ], + "config": { + "platform": { + "php": "5.4.8" + } + } + } + }, + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Consolidation\\Config\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Greg Anderson", + "email": "greg.1.anderson@greenknowe.org" + } + ], + "description": "Provide configuration services for a commandline tool.", + "time": "2019-03-03T19:37:04+00:00" + }, + { + "name": "consolidation/log", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/consolidation/log.git", + "reference": "446f804476db4f73957fa4bcb66ab2facf5397ff" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/consolidation/log/zipball/446f804476db4f73957fa4bcb66ab2facf5397ff", + "reference": "446f804476db4f73957fa4bcb66ab2facf5397ff", + "shasum": "" + }, + "require": { + "php": ">=5.4.5", + "psr/log": "^1.0", + "symfony/console": "^4|^5" + }, + "require-dev": { + "g1a/composer-test-scenarios": "^3", + "php-coveralls/php-coveralls": "^1", + "phpunit/phpunit": "^6", + "squizlabs/php_codesniffer": "^3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.x-dev" + } + }, + "autoload": { + "psr-4": { + "Consolidation\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Greg Anderson", + "email": "greg.1.anderson@greenknowe.org" + } + ], + "description": "Improved Psr-3 / Psr\\Log logger based on Symfony Console components.", + "time": "2020-02-07T01:22:27+00:00" + }, + { + "name": "consolidation/output-formatters", + "version": "4.1.0", + "source": { + "type": "git", + "url": "https://github.com/consolidation/output-formatters.git", + "reference": "eae721c3a916707c40d4390efbf48d4c799709cc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/consolidation/output-formatters/zipball/eae721c3a916707c40d4390efbf48d4c799709cc", + "reference": "eae721c3a916707c40d4390efbf48d4c799709cc", + "shasum": "" + }, + "require": { + "dflydev/dot-access-data": "^1.1.0", + "php": ">=7.1.3", + "symfony/console": "^4|^5", + "symfony/finder": "^4|^5" + }, + "require-dev": { + "g1a/composer-test-scenarios": "^3", + "php-coveralls/php-coveralls": "^1", + "phpunit/phpunit": "^6", + "squizlabs/php_codesniffer": "^3", + "symfony/var-dumper": "^4", + "symfony/yaml": "^4", + "victorjonsson/markdowndocs": "^1.3" + }, + "suggest": { + "symfony/var-dumper": "For using the var_dump formatter" + }, + "type": "library", + "extra": { + "scenarios": { + "symfony4": { + "require": { + "symfony/console": "^4.0" + } + } + }, + "branch-alias": { + "dev-master": "4.x-dev" + } + }, + "autoload": { + "psr-4": { + "Consolidation\\OutputFormatters\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Greg Anderson", + "email": "greg.1.anderson@greenknowe.org" + } + ], + "description": "Format text by applying transformations provided by plug-in formatters.", + "time": "2020-02-07T03:22:30+00:00" + }, + { + "name": "consolidation/robo", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/consolidation/Robo.git", + "reference": "7bbc66f9485736e64df6fc946bee1b1deb722667" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/consolidation/Robo/zipball/7bbc66f9485736e64df6fc946bee1b1deb722667", + "reference": "7bbc66f9485736e64df6fc946bee1b1deb722667", + "shasum": "" + }, + "require": { + "consolidation/annotated-command": "^4.1", + "consolidation/config": "^1.2.1", + "consolidation/log": "^1.1.1|^2", + "consolidation/output-formatters": "^4.1", + "consolidation/self-update": "^1.1.5", + "grasmash/yaml-expander": "^1.4", + "league/container": "^2.4.1", + "php": ">=7.1.3", + "symfony/console": "^4.4.3", + "symfony/event-dispatcher": "^4.4.3", + "symfony/filesystem": "^4.4.3", + "symfony/finder": "^4.4.3", + "symfony/process": "^4.4.3" + }, + "conflict": { + "codegyre/robo": "*" + }, + "require-dev": { + "g1a/composer-test-scenarios": "^3", + "natxet/cssmin": "3.0.4", + "patchwork/jsqueeze": "^2", + "pear/archive_tar": "^1.4.4", + "php-coveralls/php-coveralls": "^1", + "phpdocumentor/reflection-docblock": "^4.3.2", + "phpunit/phpunit": "^6.5.14", + "squizlabs/php_codesniffer": "^3" + }, + "suggest": { + "henrikbjorn/lurker": "For monitoring filesystem changes in taskWatch", + "natxet/cssmin": "For minifying CSS files in taskMinify", + "patchwork/jsqueeze": "For minifying JS files in taskMinify", + "pear/archive_tar": "Allows tar archives to be created and extracted in taskPack and taskExtract, respectively." + }, + "bin": [ + "robo" + ], + "type": "library", + "extra": { + "scenarios": { + "php71": { + "require": { + "phpunit/phpunit": "^6", + "nikic/php-parser": "^2" + }, + "remove": [ + "codeception/phpunit-wrapper" + ], + "config": { + "platform": { + "php": "7.1.3" + } + } + } + }, + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Robo\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Davert", + "email": "davert.php@resend.cc" + } + ], + "description": "Modern task runner", + "time": "2020-02-19T01:58:49+00:00" + }, + { + "name": "consolidation/self-update", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/consolidation/self-update.git", + "reference": "dba6b2c0708f20fa3ba8008a2353b637578849b4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/consolidation/self-update/zipball/dba6b2c0708f20fa3ba8008a2353b637578849b4", + "reference": "dba6b2c0708f20fa3ba8008a2353b637578849b4", + "shasum": "" + }, + "require": { + "php": ">=5.5.0", + "symfony/console": "^2.8|^3|^4|^5", + "symfony/filesystem": "^2.5|^3|^4|^5" + }, + "bin": [ + "scripts/release" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "SelfUpdate\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alexander Menk", + "email": "menk@mestrona.net" + }, + { + "name": "Greg Anderson", + "email": "greg.1.anderson@greenknowe.org" + } + ], + "description": "Provides a self:update command for Symfony Console applications.", + "time": "2020-04-13T02:49:20+00:00" + }, + { + "name": "container-interop/container-interop", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/container-interop/container-interop.git", + "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/container-interop/container-interop/zipball/79cbf1341c22ec75643d841642dd5d6acd83bdb8", + "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8", + "shasum": "" + }, + "require": { + "psr/container": "^1.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Interop\\Container\\": "src/Interop/Container/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Promoting the interoperability of container objects (DIC, SL, etc.)", + "homepage": "https://github.com/container-interop/container-interop", + "abandoned": "psr/container", + "time": "2017-02-14T19:40:03+00:00" + }, + { + "name": "dflydev/dot-access-data", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/dflydev/dflydev-dot-access-data.git", + "reference": "3fbd874921ab2c041e899d044585a2ab9795df8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/3fbd874921ab2c041e899d044585a2ab9795df8a", + "reference": "3fbd874921ab2c041e899d044585a2ab9795df8a", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-0": { + "Dflydev\\DotAccessData": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + }, + { + "name": "Carlos Frutos", + "email": "carlos@kiwing.it", + "homepage": "https://github.com/cfrutos" + } + ], + "description": "Given a deep data structure, access data by dot notation.", + "homepage": "https://github.com/dflydev/dflydev-dot-access-data", + "keywords": [ + "access", + "data", + "dot", + "notation" + ], + "time": "2017-01-20T21:14:22+00:00" + }, + { + "name": "grasmash/expander", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/grasmash/expander.git", + "reference": "95d6037344a4be1dd5f8e0b0b2571a28c397578f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/grasmash/expander/zipball/95d6037344a4be1dd5f8e0b0b2571a28c397578f", + "reference": "95d6037344a4be1dd5f8e0b0b2571a28c397578f", + "shasum": "" + }, + "require": { + "dflydev/dot-access-data": "^1.1.0", + "php": ">=5.4" + }, + "require-dev": { + "greg-1-anderson/composer-test-scenarios": "^1", + "phpunit/phpunit": "^4|^5.5.4", + "satooshi/php-coveralls": "^1.0.2|dev-master", + "squizlabs/php_codesniffer": "^2.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Grasmash\\Expander\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matthew Grasmick" + } + ], + "description": "Expands internal property references in PHP arrays file.", + "time": "2017-12-21T22:14:55+00:00" + }, + { + "name": "grasmash/yaml-expander", + "version": "1.4.0", + "source": { + "type": "git", + "url": "https://github.com/grasmash/yaml-expander.git", + "reference": "3f0f6001ae707a24f4d9733958d77d92bf9693b1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/grasmash/yaml-expander/zipball/3f0f6001ae707a24f4d9733958d77d92bf9693b1", + "reference": "3f0f6001ae707a24f4d9733958d77d92bf9693b1", + "shasum": "" + }, + "require": { + "dflydev/dot-access-data": "^1.1.0", + "php": ">=5.4", + "symfony/yaml": "^2.8.11|^3|^4" + }, + "require-dev": { + "greg-1-anderson/composer-test-scenarios": "^1", + "phpunit/phpunit": "^4.8|^5.5.4", + "satooshi/php-coveralls": "^1.0.2|dev-master", + "squizlabs/php_codesniffer": "^2.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Grasmash\\YamlExpander\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matthew Grasmick" + } + ], + "description": "Expands internal property references in a yaml file.", + "time": "2017-12-16T16:06:03+00:00" + }, + { + "name": "league/container", + "version": "2.4.1", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/container.git", + "reference": "43f35abd03a12977a60ffd7095efd6a7808488c0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/container/zipball/43f35abd03a12977a60ffd7095efd6a7808488c0", + "reference": "43f35abd03a12977a60ffd7095efd6a7808488c0", + "shasum": "" + }, + "require": { + "container-interop/container-interop": "^1.2", + "php": "^5.4.0 || ^7.0" + }, + "provide": { + "container-interop/container-interop-implementation": "^1.2", + "psr/container-implementation": "^1.0" + }, + "replace": { + "orno/di": "~2.0" + }, + "require-dev": { + "phpunit/phpunit": "4.*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-2.x": "2.x-dev", + "dev-1.x": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Container\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Phil Bennett", + "email": "philipobenito@gmail.com", + "homepage": "http://www.philipobenito.com", + "role": "Developer" + } + ], + "description": "A fast and intuitive dependency injection container.", + "homepage": "https://github.com/thephpleague/container", + "keywords": [ + "container", + "dependency", + "di", + "injection", + "league", + "provider", + "service" + ], + "time": "2017-05-10T09:20:27+00:00" + }, + { + "name": "psr/container", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "time": "2017-02-14T16:28:37+00:00" + }, + { + "name": "psr/log", + "version": "1.1.3", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "time": "2020-03-23T09:12:05+00:00" + }, + { + "name": "symfony/console", + "version": "v4.4.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "10bb3ee3c97308869d53b3e3d03f6ac23ff985f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/10bb3ee3c97308869d53b3e3d03f6ac23ff985f7", + "reference": "10bb3ee3c97308869d53b3e3d03f6ac23ff985f7", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.8", + "symfony/service-contracts": "^1.1|^2" + }, + "conflict": { + "symfony/dependency-injection": "<3.4", + "symfony/event-dispatcher": "<4.3|>=5", + "symfony/lock": "<4.4", + "symfony/process": "<3.3" + }, + "provide": { + "psr/log-implementation": "1.0" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/event-dispatcher": "^4.3", + "symfony/lock": "^4.4|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/var-dumper": "^4.3|^5.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Console Component", + "homepage": "https://symfony.com", + "time": "2020-03-30T11:41:10+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v4.4.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "abc8e3618bfdb55e44c8c6a00abd333f831bbfed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/abc8e3618bfdb55e44c8c6a00abd333f831bbfed", + "reference": "abc8e3618bfdb55e44c8c6a00abd333f831bbfed", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/event-dispatcher-contracts": "^1.1" + }, + "conflict": { + "symfony/dependency-injection": "<3.4" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "1.1" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/service-contracts": "^1.1|^2", + "symfony/stopwatch": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony EventDispatcher Component", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-03-27T16:54:36+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v1.1.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "c43ab685673fb6c8d84220c77897b1d6cdbe1d18" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/c43ab685673fb6c8d84220c77897b1d6cdbe1d18", + "reference": "c43ab685673fb6c8d84220c77897b1d6cdbe1d18", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "suggest": { + "psr/event-dispatcher": "", + "symfony/event-dispatcher-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2019-09-17T09:54:03+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v4.4.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "fe297193bf2e6866ed900ed2d5869362768df6a7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/fe297193bf2e6866ed900ed2d5869362768df6a7", + "reference": "fe297193bf2e6866ed900ed2d5869362768df6a7", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-ctype": "~1.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Filesystem Component", + "homepage": "https://symfony.com", + "time": "2020-03-27T16:54:36+00:00" + }, + { + "name": "symfony/finder", + "version": "v4.4.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "5729f943f9854c5781984ed4907bbb817735776b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/5729f943f9854c5781984ed4907bbb817735776b", + "reference": "5729f943f9854c5781984ed4907bbb817735776b", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Finder Component", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-03-27T16:54:36+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.15.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "4719fa9c18b0464d399f1a63bf624b42b6fa8d14" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/4719fa9c18b0464d399f1a63bf624b42b6fa8d14", + "reference": "4719fa9c18b0464d399f1a63bf624b42b6fa8d14", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.15-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-02-27T09:26:54+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.15.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "81ffd3a9c6d707be22e3012b827de1c9775fc5ac" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/81ffd3a9c6d707be22e3012b827de1c9775fc5ac", + "reference": "81ffd3a9c6d707be22e3012b827de1c9775fc5ac", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.15-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-03-09T19:04:49+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.15.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "0f27e9f464ea3da33cbe7ca3bdf4eb66def9d0f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/0f27e9f464ea3da33cbe7ca3bdf4eb66def9d0f7", + "reference": "0f27e9f464ea3da33cbe7ca3bdf4eb66def9d0f7", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.15-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-02-27T09:26:54+00:00" + }, + { + "name": "symfony/process", + "version": "v4.4.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "3e40e87a20eaf83a1db825e1fa5097ae89042db3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/3e40e87a20eaf83a1db825e1fa5097ae89042db3", + "reference": "3e40e87a20eaf83a1db825e1fa5097ae89042db3", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Process Component", + "homepage": "https://symfony.com", + "time": "2020-03-27T16:54:36+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v2.0.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "144c5e51266b281231e947b51223ba14acf1a749" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/144c5e51266b281231e947b51223ba14acf1a749", + "reference": "144c5e51266b281231e947b51223ba14acf1a749", + "shasum": "" + }, + "require": { + "php": "^7.2.5", + "psr/container": "^1.0" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2019-11-18T17:27:11+00:00" + }, + { + "name": "symfony/yaml", + "version": "v4.4.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "ef166890d821518106da3560086bfcbeb4fadfec" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/ef166890d821518106da3560086bfcbeb4fadfec", + "reference": "ef166890d821518106da3560086bfcbeb4fadfec", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/console": "<3.4" + }, + "require-dev": { + "symfony/console": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Yaml Component", + "homepage": "https://symfony.com", + "time": "2020-03-30T11:41:10+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": [], + "plugin-api-version": "1.1.0" +}