$payload The data of the event being captured
+ */
+function captureEvent(array $payload): ?string
+{
+ return SentrySdk::getCurrentHub()->captureEvent($payload);
+}
+
+/**
+ * Logs the most recent error (obtained with {@link error_get_last}).
+ */
+function captureLastError(): ?string
+{
+ return SentrySdk::getCurrentHub()->captureLastError();
+}
+
+/**
+ * Records a new breadcrumb which will be attached to future events. They
+ * will be added to subsequent events to provide more context on user's
+ * actions prior to an error or crash.
+ *
+ * @param Breadcrumb $breadcrumb The breadcrumb to record
+ */
+function addBreadcrumb(Breadcrumb $breadcrumb): void
+{
+ SentrySdk::getCurrentHub()->addBreadcrumb($breadcrumb);
+}
+
+/**
+ * Calls the given callback passing to it the current scope so that any
+ * operation can be run within its context.
+ *
+ * @param callable $callback The callback to be executed
+ */
+function configureScope(callable $callback): void
+{
+ SentrySdk::getCurrentHub()->configureScope($callback);
+}
+
+/**
+ * Creates a new scope with and executes the given operation within. The scope
+ * is automatically removed once the operation finishes or throws.
+ *
+ * @param callable $callback The callback to be executed
+ */
+function withScope(callable $callback): void
+{
+ SentrySdk::getCurrentHub()->withScope($callback);
+}
diff --git a/vendor/symfony/deprecation-contracts/.gitignore b/vendor/symfony/deprecation-contracts/.gitignore
new file mode 100644
index 0000000..c49a5d8
--- /dev/null
+++ b/vendor/symfony/deprecation-contracts/.gitignore
@@ -0,0 +1,3 @@
+vendor/
+composer.lock
+phpunit.xml
diff --git a/vendor/symfony/deprecation-contracts/CHANGELOG.md b/vendor/symfony/deprecation-contracts/CHANGELOG.md
new file mode 100644
index 0000000..e984777
--- /dev/null
+++ b/vendor/symfony/deprecation-contracts/CHANGELOG.md
@@ -0,0 +1,5 @@
+CHANGELOG
+=========
+
+The changelog is maintained for all Symfony contracts at the following URL:
+https://github.com/symfony/contracts/blob/master/CHANGELOG.md
diff --git a/vendor/symfony/deprecation-contracts/LICENSE b/vendor/symfony/deprecation-contracts/LICENSE
new file mode 100644
index 0000000..5593b1d
--- /dev/null
+++ b/vendor/symfony/deprecation-contracts/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2020 Fabien Potencier
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+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/vendor/symfony/deprecation-contracts/README.md b/vendor/symfony/deprecation-contracts/README.md
new file mode 100644
index 0000000..4957933
--- /dev/null
+++ b/vendor/symfony/deprecation-contracts/README.md
@@ -0,0 +1,26 @@
+Symfony Deprecation Contracts
+=============================
+
+A generic function and convention to trigger deprecation notices.
+
+This package provides a single global function named `trigger_deprecation()` that triggers silenced deprecation notices.
+
+By using a custom PHP error handler such as the one provided by the Symfony ErrorHandler component,
+the triggered deprecations can be caught and logged for later discovery, both on dev and prod environments.
+
+The function requires at least 3 arguments:
+ - the name of the Composer package that is triggering the deprecation
+ - the version of the package that introduced the deprecation
+ - the message of the deprecation
+ - more arguments can be provided: they will be inserted in the message using `printf()` formatting
+
+Example:
+```php
+trigger_deprecation('symfony/blockchain', '8.9', 'Using "%s" is deprecated, use "%s" instead.', 'bitcoin', 'fabcoin');
+```
+
+This will generate the following message:
+`Since symfony/blockchain 8.9: Using "bitcoin" is deprecated, use "fabcoin" instead.`
+
+While not necessarily recommended, the deprecation notices can be completely ignored by declaring an empty
+`function trigger_deprecation() {}` in your application.
diff --git a/vendor/symfony/deprecation-contracts/composer.json b/vendor/symfony/deprecation-contracts/composer.json
new file mode 100644
index 0000000..2aa3b5d
--- /dev/null
+++ b/vendor/symfony/deprecation-contracts/composer.json
@@ -0,0 +1,35 @@
+{
+ "name": "symfony/deprecation-contracts",
+ "type": "library",
+ "description": "A generic function and convention to trigger deprecation notices",
+ "homepage": "https://symfony.com",
+ "license": "MIT",
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "require": {
+ "php": ">=7.1"
+ },
+ "autoload": {
+ "files": [
+ "function.php"
+ ]
+ },
+ "minimum-stability": "dev",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.1-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ }
+}
diff --git a/vendor/symfony/deprecation-contracts/function.php b/vendor/symfony/deprecation-contracts/function.php
new file mode 100644
index 0000000..0d3451f
--- /dev/null
+++ b/vendor/symfony/deprecation-contracts/function.php
@@ -0,0 +1,27 @@
+
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+if (!function_exists('trigger_deprecation')) {
+ /**
+ * Triggers a silenced deprecation notice.
+ *
+ * @param string $package The name of the Composer package that is triggering the deprecation
+ * @param string $version The version of the package that introduced the deprecation
+ * @param string $message The message of the deprecation
+ * @param mixed ...$args Values to insert in the message using printf() formatting
+ *
+ * @author Nicolas Grekas
+ */
+ function trigger_deprecation(string $package, string $version, string $message, ...$args): void
+ {
+ @trigger_error(($package || $version ? "Since $package $version: " : '').($args ? vsprintf($message, $args) : $message), E_USER_DEPRECATED);
+ }
+}
diff --git a/vendor/symfony/options-resolver/CHANGELOG.md b/vendor/symfony/options-resolver/CHANGELOG.md
new file mode 100644
index 0000000..d996e30
--- /dev/null
+++ b/vendor/symfony/options-resolver/CHANGELOG.md
@@ -0,0 +1,76 @@
+CHANGELOG
+=========
+
+5.1.0
+-----
+
+ * added fluent configuration of options using `OptionResolver::define()`
+ * added `setInfo()` and `getInfo()` methods
+ * updated the signature of method `OptionsResolver::setDeprecated()` to `OptionsResolver::setDeprecation(string $option, string $package, string $version, $message)`
+ * deprecated `OptionsResolverIntrospector::getDeprecationMessage()`, use `OptionsResolverIntrospector::getDeprecation()` instead
+
+5.0.0
+-----
+
+ * added argument `$triggerDeprecation` to `OptionsResolver::offsetGet()`
+
+4.3.0
+-----
+
+ * added `OptionsResolver::addNormalizer` method
+
+4.2.0
+-----
+
+ * added support for nested options definition
+ * added `setDeprecated` and `isDeprecated` methods
+
+3.4.0
+-----
+
+ * added `OptionsResolverIntrospector` to inspect options definitions inside an `OptionsResolver` instance
+ * added array of types support in allowed types (e.g int[])
+
+2.6.0
+-----
+
+ * deprecated OptionsResolverInterface
+ * [BC BREAK] removed "array" type hint from OptionsResolverInterface methods
+ setRequired(), setAllowedValues(), addAllowedValues(), setAllowedTypes() and
+ addAllowedTypes()
+ * added OptionsResolver::setDefault()
+ * added OptionsResolver::hasDefault()
+ * added OptionsResolver::setNormalizer()
+ * added OptionsResolver::isRequired()
+ * added OptionsResolver::getRequiredOptions()
+ * added OptionsResolver::isMissing()
+ * added OptionsResolver::getMissingOptions()
+ * added OptionsResolver::setDefined()
+ * added OptionsResolver::isDefined()
+ * added OptionsResolver::getDefinedOptions()
+ * added OptionsResolver::remove()
+ * added OptionsResolver::clear()
+ * deprecated OptionsResolver::replaceDefaults()
+ * deprecated OptionsResolver::setOptional() in favor of setDefined()
+ * deprecated OptionsResolver::isKnown() in favor of isDefined()
+ * [BC BREAK] OptionsResolver::isRequired() returns true now if a required
+ option has a default value set
+ * [BC BREAK] merged Options into OptionsResolver and turned Options into an
+ interface
+ * deprecated Options::overload() (now in OptionsResolver)
+ * deprecated Options::set() (now in OptionsResolver)
+ * deprecated Options::get() (now in OptionsResolver)
+ * deprecated Options::has() (now in OptionsResolver)
+ * deprecated Options::replace() (now in OptionsResolver)
+ * [BC BREAK] Options::get() (now in OptionsResolver) can only be used within
+ lazy option/normalizer closures now
+ * [BC BREAK] removed Traversable interface from Options since using within
+ lazy option/normalizer closures resulted in exceptions
+ * [BC BREAK] removed Options::all() since using within lazy option/normalizer
+ closures resulted in exceptions
+ * [BC BREAK] OptionDefinitionException now extends LogicException instead of
+ RuntimeException
+ * [BC BREAK] normalizers are not executed anymore for unset options
+ * normalizers are executed after validating the options now
+ * [BC BREAK] an UndefinedOptionsException is now thrown instead of an
+ InvalidOptionsException when non-existing options are passed
diff --git a/vendor/symfony/options-resolver/Debug/OptionsResolverIntrospector.php b/vendor/symfony/options-resolver/Debug/OptionsResolverIntrospector.php
new file mode 100644
index 0000000..95909f3
--- /dev/null
+++ b/vendor/symfony/options-resolver/Debug/OptionsResolverIntrospector.php
@@ -0,0 +1,120 @@
+
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\OptionsResolver\Debug;
+
+use Symfony\Component\OptionsResolver\Exception\NoConfigurationException;
+use Symfony\Component\OptionsResolver\Exception\UndefinedOptionsException;
+use Symfony\Component\OptionsResolver\OptionsResolver;
+
+/**
+ * @author Maxime Steinhausser
+ *
+ * @final
+ */
+class OptionsResolverIntrospector
+{
+ private $get;
+
+ public function __construct(OptionsResolver $optionsResolver)
+ {
+ $this->get = \Closure::bind(function ($property, $option, $message) {
+ /** @var OptionsResolver $this */
+ if (!$this->isDefined($option)) {
+ throw new UndefinedOptionsException(sprintf('The option "%s" does not exist.', $option));
+ }
+
+ if (!\array_key_exists($option, $this->{$property})) {
+ throw new NoConfigurationException($message);
+ }
+
+ return $this->{$property}[$option];
+ }, $optionsResolver, $optionsResolver);
+ }
+
+ /**
+ * @return mixed
+ *
+ * @throws NoConfigurationException on no configured value
+ */
+ public function getDefault(string $option)
+ {
+ return ($this->get)('defaults', $option, sprintf('No default value was set for the "%s" option.', $option));
+ }
+
+ /**
+ * @return \Closure[]
+ *
+ * @throws NoConfigurationException on no configured closures
+ */
+ public function getLazyClosures(string $option): array
+ {
+ return ($this->get)('lazy', $option, sprintf('No lazy closures were set for the "%s" option.', $option));
+ }
+
+ /**
+ * @return string[]
+ *
+ * @throws NoConfigurationException on no configured types
+ */
+ public function getAllowedTypes(string $option): array
+ {
+ return ($this->get)('allowedTypes', $option, sprintf('No allowed types were set for the "%s" option.', $option));
+ }
+
+ /**
+ * @return mixed[]
+ *
+ * @throws NoConfigurationException on no configured values
+ */
+ public function getAllowedValues(string $option): array
+ {
+ return ($this->get)('allowedValues', $option, sprintf('No allowed values were set for the "%s" option.', $option));
+ }
+
+ /**
+ * @throws NoConfigurationException on no configured normalizer
+ */
+ public function getNormalizer(string $option): \Closure
+ {
+ return current($this->getNormalizers($option));
+ }
+
+ /**
+ * @throws NoConfigurationException when no normalizer is configured
+ */
+ public function getNormalizers(string $option): array
+ {
+ return ($this->get)('normalizers', $option, sprintf('No normalizer was set for the "%s" option.', $option));
+ }
+
+ /**
+ * @return string|\Closure
+ *
+ * @throws NoConfigurationException on no configured deprecation
+ *
+ * @deprecated since Symfony 5.1, use "getDeprecation()" instead.
+ */
+ public function getDeprecationMessage(string $option)
+ {
+ trigger_deprecation('symfony/options-resolver', '5.1', 'The "%s()" method is deprecated, use "getDeprecation()" instead.', __METHOD__);
+
+ return $this->getDeprecation($option)['message'];
+ }
+
+ /**
+ * @throws NoConfigurationException on no configured deprecation
+ */
+ public function getDeprecation(string $option): array
+ {
+ return ($this->get)('deprecated', $option, sprintf('No deprecation was set for the "%s" option.', $option));
+ }
+}
diff --git a/vendor/symfony/options-resolver/Exception/AccessException.php b/vendor/symfony/options-resolver/Exception/AccessException.php
new file mode 100644
index 0000000..c12b680
--- /dev/null
+++ b/vendor/symfony/options-resolver/Exception/AccessException.php
@@ -0,0 +1,22 @@
+
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\OptionsResolver\Exception;
+
+/**
+ * Thrown when trying to read an option outside of or write it inside of
+ * {@link \Symfony\Component\OptionsResolver\Options::resolve()}.
+ *
+ * @author Bernhard Schussek
+ */
+class AccessException extends \LogicException implements ExceptionInterface
+{
+}
diff --git a/vendor/symfony/options-resolver/Exception/ExceptionInterface.php b/vendor/symfony/options-resolver/Exception/ExceptionInterface.php
new file mode 100644
index 0000000..ea99d05
--- /dev/null
+++ b/vendor/symfony/options-resolver/Exception/ExceptionInterface.php
@@ -0,0 +1,21 @@
+
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\OptionsResolver\Exception;
+
+/**
+ * Marker interface for all exceptions thrown by the OptionsResolver component.
+ *
+ * @author Bernhard Schussek
+ */
+interface ExceptionInterface extends \Throwable
+{
+}
diff --git a/vendor/symfony/options-resolver/Exception/InvalidArgumentException.php b/vendor/symfony/options-resolver/Exception/InvalidArgumentException.php
new file mode 100644
index 0000000..6d421d6
--- /dev/null
+++ b/vendor/symfony/options-resolver/Exception/InvalidArgumentException.php
@@ -0,0 +1,21 @@
+
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\OptionsResolver\Exception;
+
+/**
+ * Thrown when an argument is invalid.
+ *
+ * @author Bernhard Schussek
+ */
+class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface
+{
+}
diff --git a/vendor/symfony/options-resolver/Exception/InvalidOptionsException.php b/vendor/symfony/options-resolver/Exception/InvalidOptionsException.php
new file mode 100644
index 0000000..6fd4f12
--- /dev/null
+++ b/vendor/symfony/options-resolver/Exception/InvalidOptionsException.php
@@ -0,0 +1,23 @@
+
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\OptionsResolver\Exception;
+
+/**
+ * Thrown when the value of an option does not match its validation rules.
+ *
+ * You should make sure a valid value is passed to the option.
+ *
+ * @author Bernhard Schussek
+ */
+class InvalidOptionsException extends InvalidArgumentException
+{
+}
diff --git a/vendor/symfony/options-resolver/Exception/MissingOptionsException.php b/vendor/symfony/options-resolver/Exception/MissingOptionsException.php
new file mode 100644
index 0000000..faa487f
--- /dev/null
+++ b/vendor/symfony/options-resolver/Exception/MissingOptionsException.php
@@ -0,0 +1,23 @@
+
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\OptionsResolver\Exception;
+
+/**
+ * Exception thrown when a required option is missing.
+ *
+ * Add the option to the passed options array.
+ *
+ * @author Bernhard Schussek
+ */
+class MissingOptionsException extends InvalidArgumentException
+{
+}
diff --git a/vendor/symfony/options-resolver/Exception/NoConfigurationException.php b/vendor/symfony/options-resolver/Exception/NoConfigurationException.php
new file mode 100644
index 0000000..6693ec1
--- /dev/null
+++ b/vendor/symfony/options-resolver/Exception/NoConfigurationException.php
@@ -0,0 +1,26 @@
+
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\OptionsResolver\Exception;
+
+use Symfony\Component\OptionsResolver\Debug\OptionsResolverIntrospector;
+
+/**
+ * Thrown when trying to introspect an option definition property
+ * for which no value was configured inside the OptionsResolver instance.
+ *
+ * @see OptionsResolverIntrospector
+ *
+ * @author Maxime Steinhausser
+ */
+class NoConfigurationException extends \RuntimeException implements ExceptionInterface
+{
+}
diff --git a/vendor/symfony/options-resolver/Exception/NoSuchOptionException.php b/vendor/symfony/options-resolver/Exception/NoSuchOptionException.php
new file mode 100644
index 0000000..4c3280f
--- /dev/null
+++ b/vendor/symfony/options-resolver/Exception/NoSuchOptionException.php
@@ -0,0 +1,26 @@
+
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\OptionsResolver\Exception;
+
+/**
+ * Thrown when trying to read an option that has no value set.
+ *
+ * When accessing optional options from within a lazy option or normalizer you should first
+ * check whether the optional option is set. You can do this with `isset($options['optional'])`.
+ * In contrast to the {@link UndefinedOptionsException}, this is a runtime exception that can
+ * occur when evaluating lazy options.
+ *
+ * @author Tobias Schultze
+ */
+class NoSuchOptionException extends \OutOfBoundsException implements ExceptionInterface
+{
+}
diff --git a/vendor/symfony/options-resolver/Exception/OptionDefinitionException.php b/vendor/symfony/options-resolver/Exception/OptionDefinitionException.php
new file mode 100644
index 0000000..e8e339d
--- /dev/null
+++ b/vendor/symfony/options-resolver/Exception/OptionDefinitionException.php
@@ -0,0 +1,21 @@
+
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\OptionsResolver\Exception;
+
+/**
+ * Thrown when two lazy options have a cyclic dependency.
+ *
+ * @author Bernhard Schussek
+ */
+class OptionDefinitionException extends \LogicException implements ExceptionInterface
+{
+}
diff --git a/vendor/symfony/options-resolver/Exception/UndefinedOptionsException.php b/vendor/symfony/options-resolver/Exception/UndefinedOptionsException.php
new file mode 100644
index 0000000..6ca3fce
--- /dev/null
+++ b/vendor/symfony/options-resolver/Exception/UndefinedOptionsException.php
@@ -0,0 +1,24 @@
+
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\OptionsResolver\Exception;
+
+/**
+ * Exception thrown when an undefined option is passed.
+ *
+ * You should remove the options in question from your code or define them
+ * beforehand.
+ *
+ * @author Bernhard Schussek
+ */
+class UndefinedOptionsException extends InvalidArgumentException
+{
+}
diff --git a/vendor/symfony/options-resolver/LICENSE b/vendor/symfony/options-resolver/LICENSE
new file mode 100644
index 0000000..9e936ec
--- /dev/null
+++ b/vendor/symfony/options-resolver/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2004-2020 Fabien Potencier
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+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/vendor/symfony/options-resolver/OptionConfigurator.php b/vendor/symfony/options-resolver/OptionConfigurator.php
new file mode 100644
index 0000000..47f5bea
--- /dev/null
+++ b/vendor/symfony/options-resolver/OptionConfigurator.php
@@ -0,0 +1,143 @@
+
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\OptionsResolver;
+
+use Symfony\Component\OptionsResolver\Exception\AccessException;
+
+final class OptionConfigurator
+{
+ private $name;
+ private $resolver;
+
+ public function __construct(string $name, OptionsResolver $resolver)
+ {
+ $this->name = $name;
+ $this->resolver = $resolver;
+ $this->resolver->setDefined($name);
+ }
+
+ /**
+ * Adds allowed types for this option.
+ *
+ * @param string ...$types One or more accepted types
+ *
+ * @return $this
+ *
+ * @throws AccessException If called from a lazy option or normalizer
+ */
+ public function allowedTypes(string ...$types): self
+ {
+ $this->resolver->setAllowedTypes($this->name, $types);
+
+ return $this;
+ }
+
+ /**
+ * Sets allowed values for this option.
+ *
+ * @param mixed ...$values One or more acceptable values/closures
+ *
+ * @return $this
+ *
+ * @throws AccessException If called from a lazy option or normalizer
+ */
+ public function allowedValues(...$values): self
+ {
+ $this->resolver->setAllowedValues($this->name, $values);
+
+ return $this;
+ }
+
+ /**
+ * Sets the default value for this option.
+ *
+ * @param mixed $value The default value of the option
+ *
+ * @return $this
+ *
+ * @throws AccessException If called from a lazy option or normalizer
+ */
+ public function default($value): self
+ {
+ $this->resolver->setDefault($this->name, $value);
+
+ return $this;
+ }
+
+ /**
+ * Defines an option configurator with the given name.
+ */
+ public function define(string $option): self
+ {
+ return $this->resolver->define($option);
+ }
+
+ /**
+ * Marks this option as deprecated.
+ *
+ * @param string $package The name of the composer package that is triggering the deprecation
+ * @param string $version The version of the package that introduced the deprecation
+ * @param string|\Closure $message The deprecation message to use
+ *
+ * @return $this
+ */
+ public function deprecated(string $package, string $version, $message = 'The option "%name%" is deprecated.'): self
+ {
+ $this->resolver->setDeprecated($this->name, $package, $version, $message);
+
+ return $this;
+ }
+
+ /**
+ * Sets the normalizer for this option.
+ *
+ * @param \Closure $normalizer The normalizer
+ *
+ * @return $this
+ *
+ * @throws AccessException If called from a lazy option or normalizer
+ */
+ public function normalize(\Closure $normalizer): self
+ {
+ $this->resolver->setNormalizer($this->name, $normalizer);
+
+ return $this;
+ }
+
+ /**
+ * Marks this option as required.
+ *
+ * @return $this
+ *
+ * @throws AccessException If called from a lazy option or normalizer
+ */
+ public function required(): self
+ {
+ $this->resolver->setRequired($this->name);
+
+ return $this;
+ }
+
+ /**
+ * Sets an info message for an option.
+ *
+ * @return $this
+ *
+ * @throws AccessException If called from a lazy option or normalizer
+ */
+ public function info(string $info): self
+ {
+ $this->resolver->setInfo($this->name, $info);
+
+ return $this;
+ }
+}
diff --git a/vendor/symfony/options-resolver/Options.php b/vendor/symfony/options-resolver/Options.php
new file mode 100644
index 0000000..d444ec4
--- /dev/null
+++ b/vendor/symfony/options-resolver/Options.php
@@ -0,0 +1,22 @@
+
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\OptionsResolver;
+
+/**
+ * Contains resolved option values.
+ *
+ * @author Bernhard Schussek
+ * @author Tobias Schultze
+ */
+interface Options extends \ArrayAccess, \Countable
+{
+}
diff --git a/vendor/symfony/options-resolver/OptionsResolver.php b/vendor/symfony/options-resolver/OptionsResolver.php
new file mode 100644
index 0000000..a7883d2
--- /dev/null
+++ b/vendor/symfony/options-resolver/OptionsResolver.php
@@ -0,0 +1,1293 @@
+
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\OptionsResolver;
+
+use Symfony\Component\OptionsResolver\Exception\AccessException;
+use Symfony\Component\OptionsResolver\Exception\InvalidArgumentException;
+use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException;
+use Symfony\Component\OptionsResolver\Exception\MissingOptionsException;
+use Symfony\Component\OptionsResolver\Exception\NoSuchOptionException;
+use Symfony\Component\OptionsResolver\Exception\OptionDefinitionException;
+use Symfony\Component\OptionsResolver\Exception\UndefinedOptionsException;
+
+/**
+ * Validates options and merges them with default values.
+ *
+ * @author Bernhard Schussek
+ * @author Tobias Schultze
+ */
+class OptionsResolver implements Options
+{
+ /**
+ * The names of all defined options.
+ */
+ private $defined = [];
+
+ /**
+ * The default option values.
+ */
+ private $defaults = [];
+
+ /**
+ * A list of closure for nested options.
+ *
+ * @var \Closure[][]
+ */
+ private $nested = [];
+
+ /**
+ * The names of required options.
+ */
+ private $required = [];
+
+ /**
+ * The resolved option values.
+ */
+ private $resolved = [];
+
+ /**
+ * A list of normalizer closures.
+ *
+ * @var \Closure[][]
+ */
+ private $normalizers = [];
+
+ /**
+ * A list of accepted values for each option.
+ */
+ private $allowedValues = [];
+
+ /**
+ * A list of accepted types for each option.
+ */
+ private $allowedTypes = [];
+
+ /**
+ * A list of info messages for each option.
+ */
+ private $info = [];
+
+ /**
+ * A list of closures for evaluating lazy options.
+ */
+ private $lazy = [];
+
+ /**
+ * A list of lazy options whose closure is currently being called.
+ *
+ * This list helps detecting circular dependencies between lazy options.
+ */
+ private $calling = [];
+
+ /**
+ * A list of deprecated options.
+ */
+ private $deprecated = [];
+
+ /**
+ * The list of options provided by the user.
+ */
+ private $given = [];
+
+ /**
+ * Whether the instance is locked for reading.
+ *
+ * Once locked, the options cannot be changed anymore. This is
+ * necessary in order to avoid inconsistencies during the resolving
+ * process. If any option is changed after being read, all evaluated
+ * lazy options that depend on this option would become invalid.
+ */
+ private $locked = false;
+
+ private $parentsOptions = [];
+
+ private static $typeAliases = [
+ 'boolean' => 'bool',
+ 'integer' => 'int',
+ 'double' => 'float',
+ ];
+
+ /**
+ * Sets the default value of a given option.
+ *
+ * If the default value should be set based on other options, you can pass
+ * a closure with the following signature:
+ *
+ * function (Options $options) {
+ * // ...
+ * }
+ *
+ * The closure will be evaluated when {@link resolve()} is called. The
+ * closure has access to the resolved values of other options through the
+ * passed {@link Options} instance:
+ *
+ * function (Options $options) {
+ * if (isset($options['port'])) {
+ * // ...
+ * }
+ * }
+ *
+ * If you want to access the previously set default value, add a second
+ * argument to the closure's signature:
+ *
+ * $options->setDefault('name', 'Default Name');
+ *
+ * $options->setDefault('name', function (Options $options, $previousValue) {
+ * // 'Default Name' === $previousValue
+ * });
+ *
+ * This is mostly useful if the configuration of the {@link Options} object
+ * is spread across different locations of your code, such as base and
+ * sub-classes.
+ *
+ * If you want to define nested options, you can pass a closure with the
+ * following signature:
+ *
+ * $options->setDefault('database', function (OptionsResolver $resolver) {
+ * $resolver->setDefined(['dbname', 'host', 'port', 'user', 'pass']);
+ * }
+ *
+ * To get access to the parent options, add a second argument to the closure's
+ * signature:
+ *
+ * function (OptionsResolver $resolver, Options $parent) {
+ * // 'default' === $parent['connection']
+ * }
+ *
+ * @param string $option The name of the option
+ * @param mixed $value The default value of the option
+ *
+ * @return $this
+ *
+ * @throws AccessException If called from a lazy option or normalizer
+ */
+ public function setDefault(string $option, $value)
+ {
+ // Setting is not possible once resolving starts, because then lazy
+ // options could manipulate the state of the object, leading to
+ // inconsistent results.
+ if ($this->locked) {
+ throw new AccessException('Default values cannot be set from a lazy option or normalizer.');
+ }
+
+ // If an option is a closure that should be evaluated lazily, store it
+ // in the "lazy" property.
+ if ($value instanceof \Closure) {
+ $reflClosure = new \ReflectionFunction($value);
+ $params = $reflClosure->getParameters();
+
+ if (isset($params[0]) && Options::class === $this->getParameterClassName($params[0])) {
+ // Initialize the option if no previous value exists
+ if (!isset($this->defaults[$option])) {
+ $this->defaults[$option] = null;
+ }
+
+ // Ignore previous lazy options if the closure has no second parameter
+ if (!isset($this->lazy[$option]) || !isset($params[1])) {
+ $this->lazy[$option] = [];
+ }
+
+ // Store closure for later evaluation
+ $this->lazy[$option][] = $value;
+ $this->defined[$option] = true;
+
+ // Make sure the option is processed and is not nested anymore
+ unset($this->resolved[$option], $this->nested[$option]);
+
+ return $this;
+ }
+
+ if (isset($params[0]) && null !== ($type = $params[0]->getType()) && self::class === $type->getName() && (!isset($params[1]) || (($type = $params[1]->getType()) instanceof \ReflectionNamedType && Options::class === $type->getName()))) {
+ // Store closure for later evaluation
+ $this->nested[$option][] = $value;
+ $this->defaults[$option] = [];
+ $this->defined[$option] = true;
+
+ // Make sure the option is processed and is not lazy anymore
+ unset($this->resolved[$option], $this->lazy[$option]);
+
+ return $this;
+ }
+ }
+
+ // This option is not lazy nor nested anymore
+ unset($this->lazy[$option], $this->nested[$option]);
+
+ // Yet undefined options can be marked as resolved, because we only need
+ // to resolve options with lazy closures, normalizers or validation
+ // rules, none of which can exist for undefined options
+ // If the option was resolved before, update the resolved value
+ if (!isset($this->defined[$option]) || \array_key_exists($option, $this->resolved)) {
+ $this->resolved[$option] = $value;
+ }
+
+ $this->defaults[$option] = $value;
+ $this->defined[$option] = true;
+
+ return $this;
+ }
+
+ /**
+ * Sets a list of default values.
+ *
+ * @param array $defaults The default values to set
+ *
+ * @return $this
+ *
+ * @throws AccessException If called from a lazy option or normalizer
+ */
+ public function setDefaults(array $defaults)
+ {
+ foreach ($defaults as $option => $value) {
+ $this->setDefault($option, $value);
+ }
+
+ return $this;
+ }
+
+ /**
+ * Returns whether a default value is set for an option.
+ *
+ * Returns true if {@link setDefault()} was called for this option.
+ * An option is also considered set if it was set to null.
+ *
+ * @param string $option The option name
+ *
+ * @return bool Whether a default value is set
+ */
+ public function hasDefault(string $option)
+ {
+ return \array_key_exists($option, $this->defaults);
+ }
+
+ /**
+ * Marks one or more options as required.
+ *
+ * @param string|string[] $optionNames One or more option names
+ *
+ * @return $this
+ *
+ * @throws AccessException If called from a lazy option or normalizer
+ */
+ public function setRequired($optionNames)
+ {
+ if ($this->locked) {
+ throw new AccessException('Options cannot be made required from a lazy option or normalizer.');
+ }
+
+ foreach ((array) $optionNames as $option) {
+ $this->defined[$option] = true;
+ $this->required[$option] = true;
+ }
+
+ return $this;
+ }
+
+ /**
+ * Returns whether an option is required.
+ *
+ * An option is required if it was passed to {@link setRequired()}.
+ *
+ * @param string $option The name of the option
+ *
+ * @return bool Whether the option is required
+ */
+ public function isRequired(string $option)
+ {
+ return isset($this->required[$option]);
+ }
+
+ /**
+ * Returns the names of all required options.
+ *
+ * @return string[] The names of the required options
+ *
+ * @see isRequired()
+ */
+ public function getRequiredOptions()
+ {
+ return array_keys($this->required);
+ }
+
+ /**
+ * Returns whether an option is missing a default value.
+ *
+ * An option is missing if it was passed to {@link setRequired()}, but not
+ * to {@link setDefault()}. This option must be passed explicitly to
+ * {@link resolve()}, otherwise an exception will be thrown.
+ *
+ * @param string $option The name of the option
+ *
+ * @return bool Whether the option is missing
+ */
+ public function isMissing(string $option)
+ {
+ return isset($this->required[$option]) && !\array_key_exists($option, $this->defaults);
+ }
+
+ /**
+ * Returns the names of all options missing a default value.
+ *
+ * @return string[] The names of the missing options
+ *
+ * @see isMissing()
+ */
+ public function getMissingOptions()
+ {
+ return array_keys(array_diff_key($this->required, $this->defaults));
+ }
+
+ /**
+ * Defines a valid option name.
+ *
+ * Defines an option name without setting a default value. The option will
+ * be accepted when passed to {@link resolve()}. When not passed, the
+ * option will not be included in the resolved options.
+ *
+ * @param string|string[] $optionNames One or more option names
+ *
+ * @return $this
+ *
+ * @throws AccessException If called from a lazy option or normalizer
+ */
+ public function setDefined($optionNames)
+ {
+ if ($this->locked) {
+ throw new AccessException('Options cannot be defined from a lazy option or normalizer.');
+ }
+
+ foreach ((array) $optionNames as $option) {
+ $this->defined[$option] = true;
+ }
+
+ return $this;
+ }
+
+ /**
+ * Returns whether an option is defined.
+ *
+ * Returns true for any option passed to {@link setDefault()},
+ * {@link setRequired()} or {@link setDefined()}.
+ *
+ * @param string $option The option name
+ *
+ * @return bool Whether the option is defined
+ */
+ public function isDefined(string $option)
+ {
+ return isset($this->defined[$option]);
+ }
+
+ /**
+ * Returns the names of all defined options.
+ *
+ * @return string[] The names of the defined options
+ *
+ * @see isDefined()
+ */
+ public function getDefinedOptions()
+ {
+ return array_keys($this->defined);
+ }
+
+ public function isNested(string $option): bool
+ {
+ return isset($this->nested[$option]);
+ }
+
+ /**
+ * Deprecates an option, allowed types or values.
+ *
+ * Instead of passing the message, you may also pass a closure with the
+ * following signature:
+ *
+ * function (Options $options, $value): string {
+ * // ...
+ * }
+ *
+ * The closure receives the value as argument and should return a string.
+ * Return an empty string to ignore the option deprecation.
+ *
+ * The closure is invoked when {@link resolve()} is called. The parameter
+ * passed to the closure is the value of the option after validating it
+ * and before normalizing it.
+ *
+ * @param string $package The name of the composer package that is triggering the deprecation
+ * @param string $version The version of the package that introduced the deprecation
+ * @param string|\Closure $message The deprecation message to use
+ */
+ public function setDeprecated(string $option/*, string $package, string $version, $message = 'The option "%name%" is deprecated.' */): self
+ {
+ if ($this->locked) {
+ throw new AccessException('Options cannot be deprecated from a lazy option or normalizer.');
+ }
+
+ if (!isset($this->defined[$option])) {
+ throw new UndefinedOptionsException(sprintf('The option "%s" does not exist, defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
+ }
+
+ $args = \func_get_args();
+
+ if (\func_num_args() < 3) {
+ trigger_deprecation('symfony/options-resolver', '5.1', 'The signature of method "%s()" requires 2 new arguments: "string $package, string $version", not defining them is deprecated.', __METHOD__);
+
+ $message = $args[1] ?? 'The option "%name%" is deprecated.';
+ $package = $version = '';
+ } else {
+ $package = $args[1];
+ $version = $args[2];
+ $message = $args[3] ?? 'The option "%name%" is deprecated.';
+ }
+
+ if (!\is_string($message) && !$message instanceof \Closure) {
+ throw new InvalidArgumentException(sprintf('Invalid type for deprecation message argument, expected string or \Closure, but got "%s".', get_debug_type($message)));
+ }
+
+ // ignore if empty string
+ if ('' === $message) {
+ return $this;
+ }
+
+ $this->deprecated[$option] = [
+ 'package' => $package,
+ 'version' => $version,
+ 'message' => $message,
+ ];
+
+ // Make sure the option is processed
+ unset($this->resolved[$option]);
+
+ return $this;
+ }
+
+ public function isDeprecated(string $option): bool
+ {
+ return isset($this->deprecated[$option]);
+ }
+
+ /**
+ * Sets the normalizer for an option.
+ *
+ * The normalizer should be a closure with the following signature:
+ *
+ * function (Options $options, $value) {
+ * // ...
+ * }
+ *
+ * The closure is invoked when {@link resolve()} is called. The closure
+ * has access to the resolved values of other options through the passed
+ * {@link Options} instance.
+ *
+ * The second parameter passed to the closure is the value of
+ * the option.
+ *
+ * The resolved option value is set to the return value of the closure.
+ *
+ * @param string $option The option name
+ * @param \Closure $normalizer The normalizer
+ *
+ * @return $this
+ *
+ * @throws UndefinedOptionsException If the option is undefined
+ * @throws AccessException If called from a lazy option or normalizer
+ */
+ public function setNormalizer(string $option, \Closure $normalizer)
+ {
+ if ($this->locked) {
+ throw new AccessException('Normalizers cannot be set from a lazy option or normalizer.');
+ }
+
+ if (!isset($this->defined[$option])) {
+ throw new UndefinedOptionsException(sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
+ }
+
+ $this->normalizers[$option] = [$normalizer];
+
+ // Make sure the option is processed
+ unset($this->resolved[$option]);
+
+ return $this;
+ }
+
+ /**
+ * Adds a normalizer for an option.
+ *
+ * The normalizer should be a closure with the following signature:
+ *
+ * function (Options $options, $value): mixed {
+ * // ...
+ * }
+ *
+ * The closure is invoked when {@link resolve()} is called. The closure
+ * has access to the resolved values of other options through the passed
+ * {@link Options} instance.
+ *
+ * The second parameter passed to the closure is the value of
+ * the option.
+ *
+ * The resolved option value is set to the return value of the closure.
+ *
+ * @param string $option The option name
+ * @param \Closure $normalizer The normalizer
+ * @param bool $forcePrepend If set to true, prepend instead of appending
+ *
+ * @return $this
+ *
+ * @throws UndefinedOptionsException If the option is undefined
+ * @throws AccessException If called from a lazy option or normalizer
+ */
+ public function addNormalizer(string $option, \Closure $normalizer, bool $forcePrepend = false): self
+ {
+ if ($this->locked) {
+ throw new AccessException('Normalizers cannot be set from a lazy option or normalizer.');
+ }
+
+ if (!isset($this->defined[$option])) {
+ throw new UndefinedOptionsException(sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
+ }
+
+ if ($forcePrepend) {
+ $this->normalizers[$option] = $this->normalizers[$option] ?? [];
+ array_unshift($this->normalizers[$option], $normalizer);
+ } else {
+ $this->normalizers[$option][] = $normalizer;
+ }
+
+ // Make sure the option is processed
+ unset($this->resolved[$option]);
+
+ return $this;
+ }
+
+ /**
+ * Sets allowed values for an option.
+ *
+ * Instead of passing values, you may also pass a closures with the
+ * following signature:
+ *
+ * function ($value) {
+ * // return true or false
+ * }
+ *
+ * The closure receives the value as argument and should return true to
+ * accept the value and false to reject the value.
+ *
+ * @param string $option The option name
+ * @param mixed $allowedValues One or more acceptable values/closures
+ *
+ * @return $this
+ *
+ * @throws UndefinedOptionsException If the option is undefined
+ * @throws AccessException If called from a lazy option or normalizer
+ */
+ public function setAllowedValues(string $option, $allowedValues)
+ {
+ if ($this->locked) {
+ throw new AccessException('Allowed values cannot be set from a lazy option or normalizer.');
+ }
+
+ if (!isset($this->defined[$option])) {
+ throw new UndefinedOptionsException(sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
+ }
+
+ $this->allowedValues[$option] = \is_array($allowedValues) ? $allowedValues : [$allowedValues];
+
+ // Make sure the option is processed
+ unset($this->resolved[$option]);
+
+ return $this;
+ }
+
+ /**
+ * Adds allowed values for an option.
+ *
+ * The values are merged with the allowed values defined previously.
+ *
+ * Instead of passing values, you may also pass a closures with the
+ * following signature:
+ *
+ * function ($value) {
+ * // return true or false
+ * }
+ *
+ * The closure receives the value as argument and should return true to
+ * accept the value and false to reject the value.
+ *
+ * @param string $option The option name
+ * @param mixed $allowedValues One or more acceptable values/closures
+ *
+ * @return $this
+ *
+ * @throws UndefinedOptionsException If the option is undefined
+ * @throws AccessException If called from a lazy option or normalizer
+ */
+ public function addAllowedValues(string $option, $allowedValues)
+ {
+ if ($this->locked) {
+ throw new AccessException('Allowed values cannot be added from a lazy option or normalizer.');
+ }
+
+ if (!isset($this->defined[$option])) {
+ throw new UndefinedOptionsException(sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
+ }
+
+ if (!\is_array($allowedValues)) {
+ $allowedValues = [$allowedValues];
+ }
+
+ if (!isset($this->allowedValues[$option])) {
+ $this->allowedValues[$option] = $allowedValues;
+ } else {
+ $this->allowedValues[$option] = array_merge($this->allowedValues[$option], $allowedValues);
+ }
+
+ // Make sure the option is processed
+ unset($this->resolved[$option]);
+
+ return $this;
+ }
+
+ /**
+ * Sets allowed types for an option.
+ *
+ * Any type for which a corresponding is_() function exists is
+ * acceptable. Additionally, fully-qualified class or interface names may
+ * be passed.
+ *
+ * @param string $option The option name
+ * @param string|string[] $allowedTypes One or more accepted types
+ *
+ * @return $this
+ *
+ * @throws UndefinedOptionsException If the option is undefined
+ * @throws AccessException If called from a lazy option or normalizer
+ */
+ public function setAllowedTypes(string $option, $allowedTypes)
+ {
+ if ($this->locked) {
+ throw new AccessException('Allowed types cannot be set from a lazy option or normalizer.');
+ }
+
+ if (!isset($this->defined[$option])) {
+ throw new UndefinedOptionsException(sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
+ }
+
+ $this->allowedTypes[$option] = (array) $allowedTypes;
+
+ // Make sure the option is processed
+ unset($this->resolved[$option]);
+
+ return $this;
+ }
+
+ /**
+ * Adds allowed types for an option.
+ *
+ * The types are merged with the allowed types defined previously.
+ *
+ * Any type for which a corresponding is_() function exists is
+ * acceptable. Additionally, fully-qualified class or interface names may
+ * be passed.
+ *
+ * @param string $option The option name
+ * @param string|string[] $allowedTypes One or more accepted types
+ *
+ * @return $this
+ *
+ * @throws UndefinedOptionsException If the option is undefined
+ * @throws AccessException If called from a lazy option or normalizer
+ */
+ public function addAllowedTypes(string $option, $allowedTypes)
+ {
+ if ($this->locked) {
+ throw new AccessException('Allowed types cannot be added from a lazy option or normalizer.');
+ }
+
+ if (!isset($this->defined[$option])) {
+ throw new UndefinedOptionsException(sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
+ }
+
+ if (!isset($this->allowedTypes[$option])) {
+ $this->allowedTypes[$option] = (array) $allowedTypes;
+ } else {
+ $this->allowedTypes[$option] = array_merge($this->allowedTypes[$option], (array) $allowedTypes);
+ }
+
+ // Make sure the option is processed
+ unset($this->resolved[$option]);
+
+ return $this;
+ }
+
+ /**
+ * Defines an option configurator with the given name.
+ */
+ public function define(string $option): OptionConfigurator
+ {
+ if (isset($this->defined[$option])) {
+ throw new OptionDefinitionException(sprintf('The option "%s" is already defined.', $option));
+ }
+
+ return new OptionConfigurator($option, $this);
+ }
+
+ /**
+ * Sets an info message for an option.
+ *
+ * @return $this
+ *
+ * @throws UndefinedOptionsException If the option is undefined
+ * @throws AccessException If called from a lazy option or normalizer
+ */
+ public function setInfo(string $option, string $info): self
+ {
+ if ($this->locked) {
+ throw new AccessException('The Info message cannot be set from a lazy option or normalizer.');
+ }
+
+ if (!isset($this->defined[$option])) {
+ throw new UndefinedOptionsException(sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
+ }
+
+ $this->info[$option] = $info;
+
+ return $this;
+ }
+
+ /**
+ * Gets the info message for an option.
+ */
+ public function getInfo(string $option): ?string
+ {
+ if (!isset($this->defined[$option])) {
+ throw new UndefinedOptionsException(sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
+ }
+
+ return $this->info[$option] ?? null;
+ }
+
+ /**
+ * Removes the option with the given name.
+ *
+ * Undefined options are ignored.
+ *
+ * @param string|string[] $optionNames One or more option names
+ *
+ * @return $this
+ *
+ * @throws AccessException If called from a lazy option or normalizer
+ */
+ public function remove($optionNames)
+ {
+ if ($this->locked) {
+ throw new AccessException('Options cannot be removed from a lazy option or normalizer.');
+ }
+
+ foreach ((array) $optionNames as $option) {
+ unset($this->defined[$option], $this->defaults[$option], $this->required[$option], $this->resolved[$option]);
+ unset($this->lazy[$option], $this->normalizers[$option], $this->allowedTypes[$option], $this->allowedValues[$option], $this->info[$option]);
+ }
+
+ return $this;
+ }
+
+ /**
+ * Removes all options.
+ *
+ * @return $this
+ *
+ * @throws AccessException If called from a lazy option or normalizer
+ */
+ public function clear()
+ {
+ if ($this->locked) {
+ throw new AccessException('Options cannot be cleared from a lazy option or normalizer.');
+ }
+
+ $this->defined = [];
+ $this->defaults = [];
+ $this->nested = [];
+ $this->required = [];
+ $this->resolved = [];
+ $this->lazy = [];
+ $this->normalizers = [];
+ $this->allowedTypes = [];
+ $this->allowedValues = [];
+ $this->deprecated = [];
+ $this->info = [];
+
+ return $this;
+ }
+
+ /**
+ * Merges options with the default values stored in the container and
+ * validates them.
+ *
+ * Exceptions are thrown if:
+ *
+ * - Undefined options are passed;
+ * - Required options are missing;
+ * - Options have invalid types;
+ * - Options have invalid values.
+ *
+ * @param array $options A map of option names to values
+ *
+ * @return array The merged and validated options
+ *
+ * @throws UndefinedOptionsException If an option name is undefined
+ * @throws InvalidOptionsException If an option doesn't fulfill the
+ * specified validation rules
+ * @throws MissingOptionsException If a required option is missing
+ * @throws OptionDefinitionException If there is a cyclic dependency between
+ * lazy options and/or normalizers
+ * @throws NoSuchOptionException If a lazy option reads an unavailable option
+ * @throws AccessException If called from a lazy option or normalizer
+ */
+ public function resolve(array $options = [])
+ {
+ if ($this->locked) {
+ throw new AccessException('Options cannot be resolved from a lazy option or normalizer.');
+ }
+
+ // Allow this method to be called multiple times
+ $clone = clone $this;
+
+ // Make sure that no unknown options are passed
+ $diff = array_diff_key($options, $clone->defined);
+
+ if (\count($diff) > 0) {
+ ksort($clone->defined);
+ ksort($diff);
+
+ throw new UndefinedOptionsException(sprintf((\count($diff) > 1 ? 'The options "%s" do not exist.' : 'The option "%s" does not exist.').' Defined options are: "%s".', $this->formatOptions(array_keys($diff)), implode('", "', array_keys($clone->defined))));
+ }
+
+ // Override options set by the user
+ foreach ($options as $option => $value) {
+ $clone->given[$option] = true;
+ $clone->defaults[$option] = $value;
+ unset($clone->resolved[$option], $clone->lazy[$option]);
+ }
+
+ // Check whether any required option is missing
+ $diff = array_diff_key($clone->required, $clone->defaults);
+
+ if (\count($diff) > 0) {
+ ksort($diff);
+
+ throw new MissingOptionsException(sprintf(\count($diff) > 1 ? 'The required options "%s" are missing.' : 'The required option "%s" is missing.', $this->formatOptions(array_keys($diff))));
+ }
+
+ // Lock the container
+ $clone->locked = true;
+
+ // Now process the individual options. Use offsetGet(), which resolves
+ // the option itself and any options that the option depends on
+ foreach ($clone->defaults as $option => $_) {
+ $clone->offsetGet($option);
+ }
+
+ return $clone->resolved;
+ }
+
+ /**
+ * Returns the resolved value of an option.
+ *
+ * @param string $option The option name
+ * @param bool $triggerDeprecation Whether to trigger the deprecation or not (true by default)
+ *
+ * @return mixed The option value
+ *
+ * @throws AccessException If accessing this method outside of
+ * {@link resolve()}
+ * @throws NoSuchOptionException If the option is not set
+ * @throws InvalidOptionsException If the option doesn't fulfill the
+ * specified validation rules
+ * @throws OptionDefinitionException If there is a cyclic dependency between
+ * lazy options and/or normalizers
+ */
+ public function offsetGet($option, bool $triggerDeprecation = true)
+ {
+ if (!$this->locked) {
+ throw new AccessException('Array access is only supported within closures of lazy options and normalizers.');
+ }
+
+ // Shortcut for resolved options
+ if (isset($this->resolved[$option]) || \array_key_exists($option, $this->resolved)) {
+ if ($triggerDeprecation && isset($this->deprecated[$option]) && (isset($this->given[$option]) || $this->calling) && \is_string($this->deprecated[$option]['message'])) {
+ trigger_deprecation($this->deprecated[$option]['package'], $this->deprecated[$option]['version'], strtr($this->deprecated[$option]['message'], ['%name%' => $option]));
+ }
+
+ return $this->resolved[$option];
+ }
+
+ // Check whether the option is set at all
+ if (!isset($this->defaults[$option]) && !\array_key_exists($option, $this->defaults)) {
+ if (!isset($this->defined[$option])) {
+ throw new NoSuchOptionException(sprintf('The option "%s" does not exist. Defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
+ }
+
+ throw new NoSuchOptionException(sprintf('The optional option "%s" has no value set. You should make sure it is set with "isset" before reading it.', $this->formatOptions([$option])));
+ }
+
+ $value = $this->defaults[$option];
+
+ // Resolve the option if it is a nested definition
+ if (isset($this->nested[$option])) {
+ // If the closure is already being called, we have a cyclic dependency
+ if (isset($this->calling[$option])) {
+ throw new OptionDefinitionException(sprintf('The options "%s" have a cyclic dependency.', $this->formatOptions(array_keys($this->calling))));
+ }
+
+ if (!\is_array($value)) {
+ throw new InvalidOptionsException(sprintf('The nested option "%s" with value %s is expected to be of type array, but is of type "%s".', $this->formatOptions([$option]), $this->formatValue($value), get_debug_type($value)));
+ }
+
+ // The following section must be protected from cyclic calls.
+ $this->calling[$option] = true;
+ try {
+ $resolver = new self();
+ $resolver->parentsOptions = $this->parentsOptions;
+ $resolver->parentsOptions[] = $option;
+ foreach ($this->nested[$option] as $closure) {
+ $closure($resolver, $this);
+ }
+ $value = $resolver->resolve($value);
+ } finally {
+ unset($this->calling[$option]);
+ }
+ }
+
+ // Resolve the option if the default value is lazily evaluated
+ if (isset($this->lazy[$option])) {
+ // If the closure is already being called, we have a cyclic
+ // dependency
+ if (isset($this->calling[$option])) {
+ throw new OptionDefinitionException(sprintf('The options "%s" have a cyclic dependency.', $this->formatOptions(array_keys($this->calling))));
+ }
+
+ // The following section must be protected from cyclic
+ // calls. Set $calling for the current $option to detect a cyclic
+ // dependency
+ // BEGIN
+ $this->calling[$option] = true;
+ try {
+ foreach ($this->lazy[$option] as $closure) {
+ $value = $closure($this, $value);
+ }
+ } finally {
+ unset($this->calling[$option]);
+ }
+ // END
+ }
+
+ // Validate the type of the resolved option
+ if (isset($this->allowedTypes[$option])) {
+ $valid = true;
+ $invalidTypes = [];
+
+ foreach ($this->allowedTypes[$option] as $type) {
+ $type = self::$typeAliases[$type] ?? $type;
+
+ if ($valid = $this->verifyTypes($type, $value, $invalidTypes)) {
+ break;
+ }
+ }
+
+ if (!$valid) {
+ $fmtActualValue = $this->formatValue($value);
+ $fmtAllowedTypes = implode('" or "', $this->allowedTypes[$option]);
+ $fmtProvidedTypes = implode('|', array_keys($invalidTypes));
+ $allowedContainsArrayType = \count(array_filter($this->allowedTypes[$option], static function ($item) {
+ return '[]' === substr(self::$typeAliases[$item] ?? $item, -2);
+ })) > 0;
+
+ if (\is_array($value) && $allowedContainsArrayType) {
+ throw new InvalidOptionsException(sprintf('The option "%s" with value %s is expected to be of type "%s", but one of the elements is of type "%s".', $this->formatOptions([$option]), $fmtActualValue, $fmtAllowedTypes, $fmtProvidedTypes));
+ }
+
+ throw new InvalidOptionsException(sprintf('The option "%s" with value %s is expected to be of type "%s", but is of type "%s".', $this->formatOptions([$option]), $fmtActualValue, $fmtAllowedTypes, $fmtProvidedTypes));
+ }
+ }
+
+ // Validate the value of the resolved option
+ if (isset($this->allowedValues[$option])) {
+ $success = false;
+ $printableAllowedValues = [];
+
+ foreach ($this->allowedValues[$option] as $allowedValue) {
+ if ($allowedValue instanceof \Closure) {
+ if ($allowedValue($value)) {
+ $success = true;
+ break;
+ }
+
+ // Don't include closures in the exception message
+ continue;
+ }
+
+ if ($value === $allowedValue) {
+ $success = true;
+ break;
+ }
+
+ $printableAllowedValues[] = $allowedValue;
+ }
+
+ if (!$success) {
+ $message = sprintf(
+ 'The option "%s" with value %s is invalid.',
+ $option,
+ $this->formatValue($value)
+ );
+
+ if (\count($printableAllowedValues) > 0) {
+ $message .= sprintf(
+ ' Accepted values are: %s.',
+ $this->formatValues($printableAllowedValues)
+ );
+ }
+
+ if (isset($this->info[$option])) {
+ $message .= sprintf(' Info: %s.', $this->info[$option]);
+ }
+
+ throw new InvalidOptionsException($message);
+ }
+ }
+
+ // Check whether the option is deprecated
+ // and it is provided by the user or is being called from a lazy evaluation
+ if ($triggerDeprecation && isset($this->deprecated[$option]) && (isset($this->given[$option]) || ($this->calling && \is_string($this->deprecated[$option])))) {
+ $deprecation = $this->deprecated[$option];
+ $message = $this->deprecated[$option]['message'];
+
+ if ($message instanceof \Closure) {
+ // If the closure is already being called, we have a cyclic dependency
+ if (isset($this->calling[$option])) {
+ throw new OptionDefinitionException(sprintf('The options "%s" have a cyclic dependency.', $this->formatOptions(array_keys($this->calling))));
+ }
+
+ $this->calling[$option] = true;
+ try {
+ if (!\is_string($message = $message($this, $value))) {
+ throw new InvalidOptionsException(sprintf('Invalid type for deprecation message, expected string but got "%s", return an empty string to ignore.', get_debug_type($message)));
+ }
+ } finally {
+ unset($this->calling[$option]);
+ }
+ }
+
+ if ('' !== $message) {
+ trigger_deprecation($deprecation['package'], $deprecation['version'], strtr($message, ['%name%' => $option]));
+ }
+ }
+
+ // Normalize the validated option
+ if (isset($this->normalizers[$option])) {
+ // If the closure is already being called, we have a cyclic
+ // dependency
+ if (isset($this->calling[$option])) {
+ throw new OptionDefinitionException(sprintf('The options "%s" have a cyclic dependency.', $this->formatOptions(array_keys($this->calling))));
+ }
+
+ // The following section must be protected from cyclic
+ // calls. Set $calling for the current $option to detect a cyclic
+ // dependency
+ // BEGIN
+ $this->calling[$option] = true;
+ try {
+ foreach ($this->normalizers[$option] as $normalizer) {
+ $value = $normalizer($this, $value);
+ }
+ } finally {
+ unset($this->calling[$option]);
+ }
+ // END
+ }
+
+ // Mark as resolved
+ $this->resolved[$option] = $value;
+
+ return $value;
+ }
+
+ private function verifyTypes(string $type, $value, array &$invalidTypes, int $level = 0): bool
+ {
+ if (\is_array($value) && '[]' === substr($type, -2)) {
+ $type = substr($type, 0, -2);
+ $valid = true;
+
+ foreach ($value as $val) {
+ if (!$this->verifyTypes($type, $val, $invalidTypes, $level + 1)) {
+ $valid = false;
+ }
+ }
+
+ return $valid;
+ }
+
+ if (('null' === $type && null === $value) || (\function_exists($func = 'is_'.$type) && $func($value)) || $value instanceof $type) {
+ return true;
+ }
+
+ if (!$invalidTypes || $level > 0) {
+ $invalidTypes[get_debug_type($value)] = true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Returns whether a resolved option with the given name exists.
+ *
+ * @param string $option The option name
+ *
+ * @return bool Whether the option is set
+ *
+ * @throws AccessException If accessing this method outside of {@link resolve()}
+ *
+ * @see \ArrayAccess::offsetExists()
+ */
+ public function offsetExists($option)
+ {
+ if (!$this->locked) {
+ throw new AccessException('Array access is only supported within closures of lazy options and normalizers.');
+ }
+
+ return \array_key_exists($option, $this->defaults);
+ }
+
+ /**
+ * Not supported.
+ *
+ * @throws AccessException
+ */
+ public function offsetSet($option, $value)
+ {
+ throw new AccessException('Setting options via array access is not supported. Use setDefault() instead.');
+ }
+
+ /**
+ * Not supported.
+ *
+ * @throws AccessException
+ */
+ public function offsetUnset($option)
+ {
+ throw new AccessException('Removing options via array access is not supported. Use remove() instead.');
+ }
+
+ /**
+ * Returns the number of set options.
+ *
+ * This may be only a subset of the defined options.
+ *
+ * @return int Number of options
+ *
+ * @throws AccessException If accessing this method outside of {@link resolve()}
+ *
+ * @see \Countable::count()
+ */
+ public function count()
+ {
+ if (!$this->locked) {
+ throw new AccessException('Counting is only supported within closures of lazy options and normalizers.');
+ }
+
+ return \count($this->defaults);
+ }
+
+ /**
+ * Returns a string representation of the value.
+ *
+ * This method returns the equivalent PHP tokens for most scalar types
+ * (i.e. "false" for false, "1" for 1 etc.). Strings are always wrapped
+ * in double quotes (").
+ *
+ * @param mixed $value The value to format as string
+ */
+ private function formatValue($value): string
+ {
+ if (\is_object($value)) {
+ return \get_class($value);
+ }
+
+ if (\is_array($value)) {
+ return 'array';
+ }
+
+ if (\is_string($value)) {
+ return '"'.$value.'"';
+ }
+
+ if (\is_resource($value)) {
+ return 'resource';
+ }
+
+ if (null === $value) {
+ return 'null';
+ }
+
+ if (false === $value) {
+ return 'false';
+ }
+
+ if (true === $value) {
+ return 'true';
+ }
+
+ return (string) $value;
+ }
+
+ /**
+ * Returns a string representation of a list of values.
+ *
+ * Each of the values is converted to a string using
+ * {@link formatValue()}. The values are then concatenated with commas.
+ *
+ * @see formatValue()
+ */
+ private function formatValues(array $values): string
+ {
+ foreach ($values as $key => $value) {
+ $values[$key] = $this->formatValue($value);
+ }
+
+ return implode(', ', $values);
+ }
+
+ private function formatOptions(array $options): string
+ {
+ if ($this->parentsOptions) {
+ $prefix = array_shift($this->parentsOptions);
+ if ($this->parentsOptions) {
+ $prefix .= sprintf('[%s]', implode('][', $this->parentsOptions));
+ }
+
+ $options = array_map(static function (string $option) use ($prefix): string {
+ return sprintf('%s[%s]', $prefix, $option);
+ }, $options);
+ }
+
+ return implode('", "', $options);
+ }
+
+ private function getParameterClassName(\ReflectionParameter $parameter): ?string
+ {
+ if (!($type = $parameter->getType()) instanceof \ReflectionNamedType || $type->isBuiltin()) {
+ return null;
+ }
+
+ return $type->getName();
+ }
+}
diff --git a/vendor/symfony/options-resolver/README.md b/vendor/symfony/options-resolver/README.md
new file mode 100644
index 0000000..245e69b
--- /dev/null
+++ b/vendor/symfony/options-resolver/README.md
@@ -0,0 +1,15 @@
+OptionsResolver Component
+=========================
+
+The OptionsResolver component is `array_replace` on steroids. It allows you to
+create an options system with required options, defaults, validation (type,
+value), normalization and more.
+
+Resources
+---------
+
+ * [Documentation](https://symfony.com/doc/current/components/options_resolver.html)
+ * [Contributing](https://symfony.com/doc/current/contributing/index.html)
+ * [Report issues](https://github.com/symfony/symfony/issues) and
+ [send Pull Requests](https://github.com/symfony/symfony/pulls)
+ in the [main Symfony repository](https://github.com/symfony/symfony)
diff --git a/vendor/symfony/options-resolver/composer.json b/vendor/symfony/options-resolver/composer.json
new file mode 100644
index 0000000..3d098cf
--- /dev/null
+++ b/vendor/symfony/options-resolver/composer.json
@@ -0,0 +1,35 @@
+{
+ "name": "symfony/options-resolver",
+ "type": "library",
+ "description": "Symfony OptionsResolver Component",
+ "keywords": ["options", "config", "configuration"],
+ "homepage": "https://symfony.com",
+ "license": "MIT",
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1",
+ "symfony/polyfill-php80": "^1.15"
+ },
+ "autoload": {
+ "psr-4": { "Symfony\\Component\\OptionsResolver\\": "" },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "minimum-stability": "dev",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.1-dev"
+ }
+ }
+}
diff --git a/vendor/symfony/polyfill-intl-idn/Idn.php b/vendor/symfony/polyfill-intl-idn/Idn.php
new file mode 100644
index 0000000..127437e
--- /dev/null
+++ b/vendor/symfony/polyfill-intl-idn/Idn.php
@@ -0,0 +1,915 @@
+ and Trevor Rowbotham
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Polyfill\Intl\Idn;
+
+use Exception;
+use Normalizer;
+use Symfony\Polyfill\Intl\Idn\Resources\unidata\DisallowedRanges;
+use Symfony\Polyfill\Intl\Idn\Resources\unidata\Regex;
+
+/**
+ * @see https://www.unicode.org/reports/tr46/
+ *
+ * @internal
+ */
+final class Idn
+{
+ const ERROR_EMPTY_LABEL = 1;
+ const ERROR_LABEL_TOO_LONG = 2;
+ const ERROR_DOMAIN_NAME_TOO_LONG = 4;
+ const ERROR_LEADING_HYPHEN = 8;
+ const ERROR_TRAILING_HYPHEN = 0x10;
+ const ERROR_HYPHEN_3_4 = 0x20;
+ const ERROR_LEADING_COMBINING_MARK = 0x40;
+ const ERROR_DISALLOWED = 0x80;
+ const ERROR_PUNYCODE = 0x100;
+ const ERROR_LABEL_HAS_DOT = 0x200;
+ const ERROR_INVALID_ACE_LABEL = 0x400;
+ const ERROR_BIDI = 0x800;
+ const ERROR_CONTEXTJ = 0x1000;
+ const ERROR_CONTEXTO_PUNCTUATION = 0x2000;
+ const ERROR_CONTEXTO_DIGITS = 0x4000;
+
+ const INTL_IDNA_VARIANT_2003 = 0;
+ const INTL_IDNA_VARIANT_UTS46 = 1;
+
+ const MAX_DOMAIN_SIZE = 253;
+ const MAX_LABEL_SIZE = 63;
+
+ const BASE = 36;
+ const TMIN = 1;
+ const TMAX = 26;
+ const SKEW = 38;
+ const DAMP = 700;
+ const INITIAL_BIAS = 72;
+ const INITIAL_N = 128;
+ const DELIMITER = '-';
+ const MAX_INT = 2147483647;
+
+ /**
+ * Contains the numeric value of a basic code point (for use in representing integers) in the
+ * range 0 to BASE-1, or -1 if b is does not represent a value.
+ *
+ * @var array
+ */
+ private static $basicToDigit = array(
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1, -1,
+
+ -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1,
+
+ -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1,
+
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ );
+
+ /**
+ * @var array
+ */
+ private static $virama;
+
+ /**
+ * @var array
+ */
+ private static $mapped;
+
+ /**
+ * @var array
+ */
+ private static $ignored;
+
+ /**
+ * @var array
+ */
+ private static $deviation;
+
+ /**
+ * @var array
+ */
+ private static $disallowed;
+
+ /**
+ * @var array
+ */
+ private static $disallowed_STD3_mapped;
+
+ /**
+ * @var array
+ */
+ private static $disallowed_STD3_valid;
+
+ /**
+ * @var bool
+ */
+ private static $mappingTableLoaded = false;
+
+ /**
+ * @see https://www.unicode.org/reports/tr46/#ToASCII
+ *
+ * @param string $domainName
+ * @param int $options
+ * @param int $variant
+ * @param array $idna_info
+ *
+ * @return string|false
+ */
+ public static function idn_to_ascii($domainName, $options = IDNA_DEFAULT, $variant = self::INTL_IDNA_VARIANT_UTS46, &$idna_info = array())
+ {
+ if (\PHP_VERSION_ID >= 70200 && self::INTL_IDNA_VARIANT_2003 === $variant) {
+ @trigger_error('idn_to_ascii(): INTL_IDNA_VARIANT_2003 is deprecated', E_USER_DEPRECATED);
+ }
+
+ $options = array(
+ 'CheckHyphens' => true,
+ 'CheckBidi' => self::INTL_IDNA_VARIANT_2003 === $variant || 0 !== ($options & \IDNA_CHECK_BIDI),
+ 'CheckJoiners' => self::INTL_IDNA_VARIANT_UTS46 === $variant && 0 !== ($options & \IDNA_CHECK_CONTEXTJ),
+ 'UseSTD3ASCIIRules' => 0 !== ($options & \IDNA_USE_STD3_RULES),
+ 'Transitional_Processing' => self::INTL_IDNA_VARIANT_2003 === $variant || 0 === ($options & \IDNA_NONTRANSITIONAL_TO_ASCII),
+ 'VerifyDnsLength' => true,
+ );
+ $info = new Info();
+ $labels = self::process((string) $domainName, $options, $info);
+
+ foreach ($labels as $i => $label) {
+ // Only convert labels to punycode that contain non-ASCII code points
+ if (1 === preg_match('/[^\x00-\x7F]/', $label)) {
+ try {
+ $label = 'xn--'.self::punycodeEncode($label);
+ } catch (Exception $e) {
+ $info->errors |= self::ERROR_PUNYCODE;
+ }
+
+ $labels[$i] = $label;
+ }
+ }
+
+ if ($options['VerifyDnsLength']) {
+ self::validateDomainAndLabelLength($labels, $info);
+ }
+
+ $idna_info = array(
+ 'result' => implode('.', $labels),
+ 'isTransitionalDifferent' => $info->transitionalDifferent,
+ 'errors' => $info->errors,
+ );
+
+ return 0 === $info->errors ? $idna_info['result'] : false;
+ }
+
+ /**
+ * @see https://www.unicode.org/reports/tr46/#ToUnicode
+ *
+ * @param string $domainName
+ * @param int $options
+ * @param int $variant
+ * @param array $idna_info
+ *
+ * @return string|false
+ */
+ public static function idn_to_utf8($domainName, $options = IDNA_DEFAULT, $variant = self::INTL_IDNA_VARIANT_UTS46, &$idna_info = array())
+ {
+ if (\PHP_VERSION_ID >= 70200 && self::INTL_IDNA_VARIANT_2003 === $variant) {
+ @trigger_error('idn_to_utf8(): INTL_IDNA_VARIANT_2003 is deprecated', E_USER_DEPRECATED);
+ }
+
+ $info = new Info();
+ $labels = self::process((string) $domainName, array(
+ 'CheckHyphens' => true,
+ 'CheckBidi' => self::INTL_IDNA_VARIANT_2003 === $variant || 0 !== ($options & \IDNA_CHECK_BIDI),
+ 'CheckJoiners' => self::INTL_IDNA_VARIANT_UTS46 === $variant && 0 !== ($options & \IDNA_CHECK_CONTEXTJ),
+ 'UseSTD3ASCIIRules' => 0 !== ($options & \IDNA_USE_STD3_RULES),
+ 'Transitional_Processing' => self::INTL_IDNA_VARIANT_2003 === $variant || 0 === ($options & \IDNA_NONTRANSITIONAL_TO_UNICODE),
+ ), $info);
+ $idna_info = array(
+ 'result' => implode('.', $labels),
+ 'isTransitionalDifferent' => $info->transitionalDifferent,
+ 'errors' => $info->errors,
+ );
+
+ return 0 === $info->errors ? $idna_info['result'] : false;
+ }
+
+ /**
+ * @param string $label
+ *
+ * @return bool
+ */
+ private static function isValidContextJ(array $codePoints, $label)
+ {
+ if (!isset(self::$virama)) {
+ self::$virama = require __DIR__.\DIRECTORY_SEPARATOR.'Resources'.\DIRECTORY_SEPARATOR.'unidata'.\DIRECTORY_SEPARATOR.'virama.php';
+ }
+
+ $offset = 0;
+
+ foreach ($codePoints as $i => $codePoint) {
+ if (0x200C !== $codePoint && 0x200D !== $codePoint) {
+ continue;
+ }
+
+ if (!isset($codePoints[$i - 1])) {
+ return false;
+ }
+
+ // If Canonical_Combining_Class(Before(cp)) .eq. Virama Then True;
+ if (isset(self::$virama[$codePoints[$i - 1]])) {
+ continue;
+ }
+
+ // If RegExpMatch((Joining_Type:{L,D})(Joining_Type:T)*\u200C(Joining_Type:T)*(Joining_Type:{R,D})) Then
+ // True;
+ // Generated RegExp = ([Joining_Type:{L,D}][Joining_Type:T]*\u200C[Joining_Type:T]*)[Joining_Type:{R,D}]
+ if (0x200C === $codePoint && 1 === preg_match(Regex::ZWNJ, $label, $matches, PREG_OFFSET_CAPTURE, $offset)) {
+ $offset += \strlen($matches[1][0]);
+
+ continue;
+ }
+
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * @see https://www.unicode.org/reports/tr46/#ProcessingStepMap
+ *
+ * @param string $input
+ * @param array $options
+ *
+ * @return string
+ */
+ private static function mapCodePoints($input, array $options, Info $info)
+ {
+ $str = '';
+ $useSTD3ASCIIRules = $options['UseSTD3ASCIIRules'];
+ $transitional = $options['Transitional_Processing'];
+
+ foreach (self::utf8Decode($input) as $codePoint) {
+ $data = self::lookupCodePointStatus($codePoint, $useSTD3ASCIIRules);
+
+ switch ($data['status']) {
+ case 'disallowed':
+ $info->errors |= self::ERROR_DISALLOWED;
+
+ // no break.
+
+ case 'valid':
+ $str .= mb_chr($codePoint, 'utf-8');
+
+ break;
+
+ case 'ignored':
+ // Do nothing.
+ break;
+
+ case 'mapped':
+ $str .= $data['mapping'];
+
+ break;
+
+ case 'deviation':
+ $info->transitionalDifferent = true;
+ $str .= ($transitional ? $data['mapping'] : mb_chr($codePoint, 'utf-8'));
+
+ break;
+ }
+ }
+
+ return $str;
+ }
+
+ /**
+ * @see https://www.unicode.org/reports/tr46/#Processing
+ *
+ * @param string $domain
+ * @param array $options
+ *
+ * @return array
+ */
+ private static function process($domain, array $options, Info $info)
+ {
+ // If VerifyDnsLength is not set, we are doing ToUnicode otherwise we are doing ToASCII and
+ // we need to respect the VerifyDnsLength option.
+ $checkForEmptyLabels = !isset($options['VerifyDnsLength']) || $options['VerifyDnsLength'];
+
+ if ($checkForEmptyLabels && '' === $domain) {
+ $info->errors |= self::ERROR_EMPTY_LABEL;
+
+ return array($domain);
+ }
+
+ // Step 1. Map each code point in the domain name string
+ $domain = self::mapCodePoints($domain, $options, $info);
+
+ // Step 2. Normalize the domain name string to Unicode Normalization Form C.
+ if (!Normalizer::isNormalized($domain, Normalizer::FORM_C)) {
+ $domain = Normalizer::normalize($domain, Normalizer::FORM_C);
+ }
+
+ // Step 3. Break the string into labels at U+002E (.) FULL STOP.
+ $labels = explode('.', $domain);
+ $lastLabelIndex = \count($labels) - 1;
+
+ // Step 4. Convert and validate each label in the domain name string.
+ foreach ($labels as $i => $label) {
+ $validationOptions = $options;
+
+ if ('xn--' === substr($label, 0, 4)) {
+ try {
+ $label = self::punycodeDecode(substr($label, 4));
+ } catch (Exception $e) {
+ $info->errors |= self::ERROR_PUNYCODE;
+
+ continue;
+ }
+
+ $validationOptions['Transitional_Processing'] = false;
+ $labels[$i] = $label;
+ }
+
+ self::validateLabel($label, $info, $validationOptions, $i > 0 && $i === $lastLabelIndex);
+ }
+
+ if ($info->bidiDomain && !$info->validBidiDomain) {
+ $info->errors |= self::ERROR_BIDI;
+ }
+
+ // Any input domain name string that does not record an error has been successfully
+ // processed according to this specification. Conversely, if an input domain_name string
+ // causes an error, then the processing of the input domain_name string fails. Determining
+ // what to do with error input is up to the caller, and not in the scope of this document.
+ return $labels;
+ }
+
+ /**
+ * @see https://tools.ietf.org/html/rfc5893#section-2
+ *
+ * @param string $label
+ */
+ private static function validateBidiLabel($label, Info $info)
+ {
+ if (1 === preg_match(Regex::RTL_LABEL, $label)) {
+ $info->bidiDomain = true;
+
+ // Step 1. The first character must be a character with Bidi property L, R, or AL.
+ // If it has the R or AL property, it is an RTL label
+ if (1 !== preg_match(Regex::BIDI_STEP_1_RTL, $label)) {
+ $info->validBidiDomain = false;
+
+ return;
+ }
+
+ // Step 2. In an RTL label, only characters with the Bidi properties R, AL, AN, EN, ES,
+ // CS, ET, ON, BN, or NSM are allowed.
+ if (1 === preg_match(Regex::BIDI_STEP_2, $label)) {
+ $info->validBidiDomain = false;
+
+ return;
+ }
+
+ // Step 3. In an RTL label, the end of the label must be a character with Bidi property
+ // R, AL, EN, or AN, followed by zero or more characters with Bidi property NSM.
+ if (1 !== preg_match(Regex::BIDI_STEP_3, $label)) {
+ $info->validBidiDomain = false;
+
+ return;
+ }
+
+ // Step 4. In an RTL label, if an EN is present, no AN may be present, and vice versa.
+ if (1 === preg_match(Regex::BIDI_STEP_4_AN, $label) && 1 === preg_match(Regex::BIDI_STEP_4_EN, $label)) {
+ $info->validBidiDomain = false;
+
+ return;
+ }
+
+ return;
+ }
+
+ // We are a LTR label
+ // Step 1. The first character must be a character with Bidi property L, R, or AL.
+ // If it has the L property, it is an LTR label.
+ if (1 !== preg_match(Regex::BIDI_STEP_1_LTR, $label)) {
+ $info->validBidiDomain = false;
+
+ return;
+ }
+
+ // Step 5. In an LTR label, only characters with the Bidi properties L, EN,
+ // ES, CS, ET, ON, BN, or NSM are allowed.
+ if (1 === preg_match(Regex::BIDI_STEP_5, $label)) {
+ $info->validBidiDomain = false;
+
+ return;
+ }
+
+ // Step 6.In an LTR label, the end of the label must be a character with Bidi property L or
+ // EN, followed by zero or more characters with Bidi property NSM.
+ if (1 !== preg_match(Regex::BIDI_STEP_6, $label)) {
+ $info->validBidiDomain = false;
+
+ return;
+ }
+ }
+
+ /**
+ * @param array $labels
+ */
+ private static function validateDomainAndLabelLength(array $labels, Info $info)
+ {
+ $maxDomainSize = self::MAX_DOMAIN_SIZE;
+ $length = \count($labels);
+
+ // Number of "." delimiters.
+ $domainLength = $length - 1;
+
+ // If the last label is empty and it is not the first label, then it is the root label.
+ // Increase the max size by 1, making it 254, to account for the root label's "."
+ // delimiter. This also means we don't need to check the last label's length for being too
+ // long.
+ if ($length > 1 && '' === $labels[$length - 1]) {
+ ++$maxDomainSize;
+ --$length;
+ }
+
+ for ($i = 0; $i < $length; ++$i) {
+ $bytes = \strlen($labels[$i]);
+ $domainLength += $bytes;
+
+ if ($bytes > self::MAX_LABEL_SIZE) {
+ $info->errors |= self::ERROR_LABEL_TOO_LONG;
+ }
+ }
+
+ if ($domainLength > $maxDomainSize) {
+ $info->errors |= self::ERROR_DOMAIN_NAME_TOO_LONG;
+ }
+ }
+
+ /**
+ * @see https://www.unicode.org/reports/tr46/#Validity_Criteria
+ *
+ * @param string $label
+ * @param array $options
+ * @param bool $canBeEmpty
+ */
+ private static function validateLabel($label, Info $info, array $options, $canBeEmpty)
+ {
+ if ('' === $label) {
+ if (!$canBeEmpty && (!isset($options['VerifyDnsLength']) || $options['VerifyDnsLength'])) {
+ $info->errors |= self::ERROR_EMPTY_LABEL;
+ }
+
+ return;
+ }
+
+ // Step 1. The label must be in Unicode Normalization Form C.
+ if (!Normalizer::isNormalized($label, Normalizer::FORM_C)) {
+ $info->errors |= self::ERROR_INVALID_ACE_LABEL;
+ }
+
+ $codePoints = self::utf8Decode($label);
+
+ if ($options['CheckHyphens']) {
+ // Step 2. If CheckHyphens, the label must not contain a U+002D HYPHEN-MINUS character
+ // in both the thrid and fourth positions.
+ if (isset($codePoints[2], $codePoints[3]) && 0x002D === $codePoints[2] && 0x002D === $codePoints[3]) {
+ $info->errors |= self::ERROR_HYPHEN_3_4;
+ }
+
+ // Step 3. If CheckHyphens, the label must neither begin nor end with a U+002D
+ // HYPHEN-MINUS character.
+ if ('-' === substr($label, 0, 1)) {
+ $info->errors |= self::ERROR_LEADING_HYPHEN;
+ }
+
+ if ('-' === substr($label, -1, 1)) {
+ $info->errors |= self::ERROR_TRAILING_HYPHEN;
+ }
+ }
+
+ // Step 4. The label must not contain a U+002E (.) FULL STOP.
+ if (false !== strpos($label, '.')) {
+ $info->errors |= self::ERROR_LABEL_HAS_DOT;
+ }
+
+ // Step 5. The label must not begin with a combining mark, that is: General_Category=Mark.
+ if (1 === preg_match(Regex::COMBINING_MARK, $label)) {
+ $info->errors |= self::ERROR_LEADING_COMBINING_MARK;
+ }
+
+ // Step 6. Each code point in the label must only have certain status values according to
+ // Section 5, IDNA Mapping Table:
+ $transitional = $options['Transitional_Processing'];
+ $useSTD3ASCIIRules = $options['UseSTD3ASCIIRules'];
+
+ foreach ($codePoints as $codePoint) {
+ $data = self::lookupCodePointStatus($codePoint, $useSTD3ASCIIRules);
+ $status = $data['status'];
+
+ if ('valid' === $status || (!$transitional && 'deviation' === $status)) {
+ continue;
+ }
+
+ $info->errors |= self::ERROR_DISALLOWED;
+
+ break;
+ }
+
+ // Step 7. If CheckJoiners, the label must satisify the ContextJ rules from Appendix A, in
+ // The Unicode Code Points and Internationalized Domain Names for Applications (IDNA)
+ // [IDNA2008].
+ if ($options['CheckJoiners'] && !self::isValidContextJ($codePoints, $label)) {
+ $info->errors |= self::ERROR_CONTEXTJ;
+ }
+
+ // Step 8. If CheckBidi, and if the domain name is a Bidi domain name, then the label must
+ // satisfy all six of the numbered conditions in [IDNA2008] RFC 5893, Section 2.
+ if ($options['CheckBidi'] && (!$info->bidiDomain || $info->validBidiDomain)) {
+ self::validateBidiLabel($label, $info);
+ }
+ }
+
+ /**
+ * @see https://tools.ietf.org/html/rfc3492#section-6.2
+ *
+ * @param string $input
+ *
+ * @return string
+ */
+ private static function punycodeDecode($input)
+ {
+ $n = self::INITIAL_N;
+ $out = 0;
+ $i = 0;
+ $bias = self::INITIAL_BIAS;
+ $lastDelimIndex = strrpos($input, self::DELIMITER);
+ $b = false === $lastDelimIndex ? 0 : $lastDelimIndex;
+ $inputLength = \strlen($input);
+ $output = array();
+ $bytes = array_map('ord', str_split($input));
+
+ for ($j = 0; $j < $b; ++$j) {
+ if ($bytes[$j] > 0x7F) {
+ throw new Exception('Invalid input');
+ }
+
+ $output[$out++] = $input[$j];
+ }
+
+ if ($b > 0) {
+ ++$b;
+ }
+
+ for ($in = $b; $in < $inputLength; ++$out) {
+ $oldi = $i;
+ $w = 1;
+
+ for ($k = self::BASE; /* no condition */; $k += self::BASE) {
+ if ($in >= $inputLength) {
+ throw new Exception('Invalid input');
+ }
+
+ $digit = self::$basicToDigit[$bytes[$in++] & 0xFF];
+
+ if ($digit < 0) {
+ throw new Exception('Invalid input');
+ }
+
+ if ($digit > intdiv(self::MAX_INT - $i, $w)) {
+ throw new Exception('Integer overflow');
+ }
+
+ $i += $digit * $w;
+
+ if ($k <= $bias) {
+ $t = self::TMIN;
+ } elseif ($k >= $bias + self::TMAX) {
+ $t = self::TMAX;
+ } else {
+ $t = $k - $bias;
+ }
+
+ if ($digit < $t) {
+ break;
+ }
+
+ $baseMinusT = self::BASE - $t;
+
+ if ($w > intdiv(self::MAX_INT, $baseMinusT)) {
+ throw new Exception('Integer overflow');
+ }
+
+ $w *= $baseMinusT;
+ }
+
+ $outPlusOne = $out + 1;
+ $bias = self::adaptBias($i - $oldi, $outPlusOne, 0 === $oldi);
+
+ if (intdiv($i, $outPlusOne) > self::MAX_INT - $n) {
+ throw new Exception('Integer overflow');
+ }
+
+ $n += intdiv($i, $outPlusOne);
+ $i %= $outPlusOne;
+ array_splice($output, $i++, 0, array(mb_chr($n, 'utf-8')));
+ }
+
+ return implode('', $output);
+ }
+
+ /**
+ * @see https://tools.ietf.org/html/rfc3492#section-6.3
+ *
+ * @param string $input
+ *
+ * @return string
+ */
+ private static function punycodeEncode($input)
+ {
+ $n = self::INITIAL_N;
+ $delta = 0;
+ $out = 0;
+ $bias = self::INITIAL_BIAS;
+ $inputLength = 0;
+ $output = '';
+ $iter = self::utf8Decode($input);
+
+ foreach ($iter as $codePoint) {
+ ++$inputLength;
+
+ if ($codePoint < 0x80) {
+ $output .= \chr($codePoint);
+ ++$out;
+ }
+ }
+
+ $h = $out;
+ $b = $out;
+
+ if ($b > 0) {
+ $output .= self::DELIMITER;
+ ++$out;
+ }
+
+ while ($h < $inputLength) {
+ $m = self::MAX_INT;
+
+ foreach ($iter as $codePoint) {
+ if ($codePoint >= $n && $codePoint < $m) {
+ $m = $codePoint;
+ }
+ }
+
+ if ($m - $n > intdiv(self::MAX_INT - $delta, $h + 1)) {
+ throw new Exception('Integer overflow');
+ }
+
+ $delta += ($m - $n) * ($h + 1);
+ $n = $m;
+
+ foreach ($iter as $codePoint) {
+ if ($codePoint < $n && 0 === ++$delta) {
+ throw new Exception('Integer overflow');
+ } elseif ($codePoint === $n) {
+ $q = $delta;
+
+ for ($k = self::BASE; /* no condition */; $k += self::BASE) {
+ if ($k <= $bias) {
+ $t = self::TMIN;
+ } elseif ($k >= $bias + self::TMAX) {
+ $t = self::TMAX;
+ } else {
+ $t = $k - $bias;
+ }
+
+ if ($q < $t) {
+ break;
+ }
+
+ $qMinusT = $q - $t;
+ $baseMinusT = self::BASE - $t;
+ $output .= self::encodeDigit($t + ($qMinusT) % ($baseMinusT), false);
+ ++$out;
+ $q = intdiv($qMinusT, $baseMinusT);
+ }
+
+ $output .= self::encodeDigit($q, false);
+ ++$out;
+ $bias = self::adaptBias($delta, $h + 1, $h === $b);
+ $delta = 0;
+ ++$h;
+ }
+ }
+
+ ++$delta;
+ ++$n;
+ }
+
+ return $output;
+ }
+
+ /**
+ * @see https://tools.ietf.org/html/rfc3492#section-6.1
+ *
+ * @param int $delta
+ * @param int $numPoints
+ * @param bool $firstTime
+ *
+ * @return int
+ */
+ private static function adaptBias($delta, $numPoints, $firstTime)
+ {
+ // xxx >> 1 is a faster way of doing intdiv(xxx, 2)
+ $delta = $firstTime ? intdiv($delta, self::DAMP) : $delta >> 1;
+ $delta += intdiv($delta, $numPoints);
+ $k = 0;
+
+ while ($delta > ((self::BASE - self::TMIN) * self::TMAX) >> 1) {
+ $delta = intdiv($delta, self::BASE - self::TMIN);
+ $k += self::BASE;
+ }
+
+ return $k + intdiv((self::BASE - self::TMIN + 1) * $delta, $delta + self::SKEW);
+ }
+
+ /**
+ * @param int $d
+ * @param bool $flag
+ *
+ * @return string
+ */
+ private static function encodeDigit($d, $flag)
+ {
+ return \chr($d + 22 + 75 * ($d < 26 ? 1 : 0) - (($flag ? 1 : 0) << 5));
+ }
+
+ /**
+ * Takes a UTF-8 encoded string and converts it into a series of integer code points. Any
+ * invalid byte sequences will be replaced by a U+FFFD replacement code point.
+ *
+ * @see https://encoding.spec.whatwg.org/#utf-8-decoder
+ *
+ * @param string $input
+ *
+ * @return array
+ */
+ private static function utf8Decode($input)
+ {
+ $bytesSeen = 0;
+ $bytesNeeded = 0;
+ $lowerBoundary = 0x80;
+ $upperBoundary = 0xBF;
+ $codePoint = 0;
+ $codePoints = array();
+ $length = \strlen($input);
+
+ for ($i = 0; $i < $length; ++$i) {
+ $byte = \ord($input[$i]);
+
+ if (0 === $bytesNeeded) {
+ if ($byte >= 0x00 && $byte <= 0x7F) {
+ $codePoints[] = $byte;
+
+ continue;
+ }
+
+ if ($byte >= 0xC2 && $byte <= 0xDF) {
+ $bytesNeeded = 1;
+ $codePoint = $byte & 0x1F;
+ } elseif ($byte >= 0xE0 && $byte <= 0xEF) {
+ if (0xE0 === $byte) {
+ $lowerBoundary = 0xA0;
+ } elseif (0xED === $byte) {
+ $upperBoundary = 0x9F;
+ }
+
+ $bytesNeeded = 2;
+ $codePoint = $byte & 0xF;
+ } elseif ($byte >= 0xF0 && $byte <= 0xF4) {
+ if (0xF0 === $byte) {
+ $lowerBoundary = 0x90;
+ } elseif (0xF4 === $byte) {
+ $upperBoundary = 0x8F;
+ }
+
+ $bytesNeeded = 3;
+ $codePoint = $byte & 0x7;
+ } else {
+ $codePoints[] = 0xFFFD;
+ }
+
+ continue;
+ }
+
+ if ($byte < $lowerBoundary || $byte > $upperBoundary) {
+ $codePoint = 0;
+ $bytesNeeded = 0;
+ $bytesSeen = 0;
+ $lowerBoundary = 0x80;
+ $upperBoundary = 0xBF;
+ --$i;
+ $codePoints[] = 0xFFFD;
+
+ continue;
+ }
+
+ $lowerBoundary = 0x80;
+ $upperBoundary = 0xBF;
+ $codePoint = ($codePoint << 6) | ($byte & 0x3F);
+
+ if (++$bytesSeen !== $bytesNeeded) {
+ continue;
+ }
+
+ $codePoints[] = $codePoint;
+ $codePoint = 0;
+ $bytesNeeded = 0;
+ $bytesSeen = 0;
+ }
+
+ // String unexpectedly ended, so append a U+FFFD code point.
+ if (0 !== $bytesNeeded) {
+ $codePoints[] = 0xFFFD;
+ }
+
+ return $codePoints;
+ }
+
+ /**
+ * @param int $codePoint
+ * @param bool $useSTD3ASCIIRules
+ *
+ * @return array{status: string, mapping?: string}
+ */
+ private static function lookupCodePointStatus($codePoint, $useSTD3ASCIIRules)
+ {
+ if (!self::$mappingTableLoaded) {
+ self::$mappingTableLoaded = true;
+ self::$mapped = require __DIR__.'/Resources/unidata/mapped.php';
+ self::$ignored = require __DIR__.'/Resources/unidata/ignored.php';
+ self::$deviation = require __DIR__.'/Resources/unidata/deviation.php';
+ self::$disallowed = require __DIR__.'/Resources/unidata/disallowed.php';
+ self::$disallowed_STD3_mapped = require __DIR__.'/Resources/unidata/disallowed_STD3_mapped.php';
+ self::$disallowed_STD3_valid = require __DIR__.'/Resources/unidata/disallowed_STD3_valid.php';
+ }
+
+ if (isset(self::$mapped[$codePoint])) {
+ return array('status' => 'mapped', 'mapping' => self::$mapped[$codePoint]);
+ }
+
+ if (isset(self::$ignored[$codePoint])) {
+ return array('status' => 'ignored');
+ }
+
+ if (isset(self::$deviation[$codePoint])) {
+ return array('status' => 'deviation', 'mapping' => self::$deviation[$codePoint]);
+ }
+
+ if (isset(self::$disallowed[$codePoint]) || DisallowedRanges::inRange($codePoint)) {
+ return array('status' => 'disallowed');
+ }
+
+ $isDisallowedMapped = isset(self::$disallowed_STD3_mapped[$codePoint]);
+
+ if ($isDisallowedMapped || isset(self::$disallowed_STD3_valid[$codePoint])) {
+ $status = 'disallowed';
+
+ if (!$useSTD3ASCIIRules) {
+ $status = $isDisallowedMapped ? 'mapped' : 'valid';
+ }
+
+ if ($isDisallowedMapped) {
+ return array('status' => $status, 'mapping' => self::$disallowed_STD3_mapped[$codePoint]);
+ }
+
+ return array('status' => $status);
+ }
+
+ return array('status' => 'valid');
+ }
+}
diff --git a/vendor/symfony/polyfill-intl-idn/Info.php b/vendor/symfony/polyfill-intl-idn/Info.php
new file mode 100644
index 0000000..25c3582
--- /dev/null
+++ b/vendor/symfony/polyfill-intl-idn/Info.php
@@ -0,0 +1,23 @@
+ and Trevor Rowbotham
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Polyfill\Intl\Idn;
+
+/**
+ * @internal
+ */
+class Info
+{
+ public $bidiDomain = false;
+ public $errors = 0;
+ public $validBidiDomain = true;
+ public $transitionalDifferent = false;
+}
diff --git a/vendor/symfony/polyfill-intl-idn/LICENSE b/vendor/symfony/polyfill-intl-idn/LICENSE
new file mode 100644
index 0000000..03c5e25
--- /dev/null
+++ b/vendor/symfony/polyfill-intl-idn/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2018-2019 Fabien Potencier and Trevor Rowbotham
+
+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/vendor/symfony/polyfill-intl-idn/README.md b/vendor/symfony/polyfill-intl-idn/README.md
new file mode 100644
index 0000000..2e75f2e
--- /dev/null
+++ b/vendor/symfony/polyfill-intl-idn/README.md
@@ -0,0 +1,12 @@
+Symfony Polyfill / Intl: Idn
+============================
+
+This component provides [`idn_to_ascii`](https://php.net/idn-to-ascii) and [`idn_to_utf8`](https://php.net/idn-to-utf8) functions to users who run php versions without the [Intl](https://php.net/intl) extension.
+
+More information can be found in the
+[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md).
+
+License
+=======
+
+This library is released under the [MIT license](LICENSE).
diff --git a/vendor/symfony/polyfill-intl-idn/Resources/unidata/DisallowedRanges.php b/vendor/symfony/polyfill-intl-idn/Resources/unidata/DisallowedRanges.php
new file mode 100644
index 0000000..5bb70e4
--- /dev/null
+++ b/vendor/symfony/polyfill-intl-idn/Resources/unidata/DisallowedRanges.php
@@ -0,0 +1,375 @@
+= 128 && $codePoint <= 159) {
+ return true;
+ }
+
+ if ($codePoint >= 2155 && $codePoint <= 2207) {
+ return true;
+ }
+
+ if ($codePoint >= 3676 && $codePoint <= 3712) {
+ return true;
+ }
+
+ if ($codePoint >= 3808 && $codePoint <= 3839) {
+ return true;
+ }
+
+ if ($codePoint >= 4059 && $codePoint <= 4095) {
+ return true;
+ }
+
+ if ($codePoint >= 4256 && $codePoint <= 4293) {
+ return true;
+ }
+
+ if ($codePoint >= 6849 && $codePoint <= 6911) {
+ return true;
+ }
+
+ if ($codePoint >= 11859 && $codePoint <= 11903) {
+ return true;
+ }
+
+ if ($codePoint >= 42955 && $codePoint <= 42996) {
+ return true;
+ }
+
+ if ($codePoint >= 55296 && $codePoint <= 57343) {
+ return true;
+ }
+
+ if ($codePoint >= 57344 && $codePoint <= 63743) {
+ return true;
+ }
+
+ if ($codePoint >= 64218 && $codePoint <= 64255) {
+ return true;
+ }
+
+ if ($codePoint >= 64976 && $codePoint <= 65007) {
+ return true;
+ }
+
+ if ($codePoint >= 65630 && $codePoint <= 65663) {
+ return true;
+ }
+
+ if ($codePoint >= 65953 && $codePoint <= 65999) {
+ return true;
+ }
+
+ if ($codePoint >= 66046 && $codePoint <= 66175) {
+ return true;
+ }
+
+ if ($codePoint >= 66518 && $codePoint <= 66559) {
+ return true;
+ }
+
+ if ($codePoint >= 66928 && $codePoint <= 67071) {
+ return true;
+ }
+
+ if ($codePoint >= 67432 && $codePoint <= 67583) {
+ return true;
+ }
+
+ if ($codePoint >= 67760 && $codePoint <= 67807) {
+ return true;
+ }
+
+ if ($codePoint >= 67904 && $codePoint <= 67967) {
+ return true;
+ }
+
+ if ($codePoint >= 68256 && $codePoint <= 68287) {
+ return true;
+ }
+
+ if ($codePoint >= 68528 && $codePoint <= 68607) {
+ return true;
+ }
+
+ if ($codePoint >= 68681 && $codePoint <= 68735) {
+ return true;
+ }
+
+ if ($codePoint >= 68922 && $codePoint <= 69215) {
+ return true;
+ }
+
+ if ($codePoint >= 69298 && $codePoint <= 69375) {
+ return true;
+ }
+
+ if ($codePoint >= 69466 && $codePoint <= 69551) {
+ return true;
+ }
+
+ if ($codePoint >= 70207 && $codePoint <= 70271) {
+ return true;
+ }
+
+ if ($codePoint >= 70517 && $codePoint <= 70655) {
+ return true;
+ }
+
+ if ($codePoint >= 70874 && $codePoint <= 71039) {
+ return true;
+ }
+
+ if ($codePoint >= 71134 && $codePoint <= 71167) {
+ return true;
+ }
+
+ if ($codePoint >= 71370 && $codePoint <= 71423) {
+ return true;
+ }
+
+ if ($codePoint >= 71488 && $codePoint <= 71679) {
+ return true;
+ }
+
+ if ($codePoint >= 71740 && $codePoint <= 71839) {
+ return true;
+ }
+
+ if ($codePoint >= 72026 && $codePoint <= 72095) {
+ return true;
+ }
+
+ if ($codePoint >= 72441 && $codePoint <= 72703) {
+ return true;
+ }
+
+ if ($codePoint >= 72887 && $codePoint <= 72959) {
+ return true;
+ }
+
+ if ($codePoint >= 73130 && $codePoint <= 73439) {
+ return true;
+ }
+
+ if ($codePoint >= 73465 && $codePoint <= 73647) {
+ return true;
+ }
+
+ if ($codePoint >= 74650 && $codePoint <= 74751) {
+ return true;
+ }
+
+ if ($codePoint >= 75076 && $codePoint <= 77823) {
+ return true;
+ }
+
+ if ($codePoint >= 78905 && $codePoint <= 82943) {
+ return true;
+ }
+
+ if ($codePoint >= 83527 && $codePoint <= 92159) {
+ return true;
+ }
+
+ if ($codePoint >= 92784 && $codePoint <= 92879) {
+ return true;
+ }
+
+ if ($codePoint >= 93072 && $codePoint <= 93759) {
+ return true;
+ }
+
+ if ($codePoint >= 93851 && $codePoint <= 93951) {
+ return true;
+ }
+
+ if ($codePoint >= 94112 && $codePoint <= 94175) {
+ return true;
+ }
+
+ if ($codePoint >= 101590 && $codePoint <= 101631) {
+ return true;
+ }
+
+ if ($codePoint >= 101641 && $codePoint <= 110591) {
+ return true;
+ }
+
+ if ($codePoint >= 110879 && $codePoint <= 110927) {
+ return true;
+ }
+
+ if ($codePoint >= 111356 && $codePoint <= 113663) {
+ return true;
+ }
+
+ if ($codePoint >= 113828 && $codePoint <= 118783) {
+ return true;
+ }
+
+ if ($codePoint >= 119366 && $codePoint <= 119519) {
+ return true;
+ }
+
+ if ($codePoint >= 119673 && $codePoint <= 119807) {
+ return true;
+ }
+
+ if ($codePoint >= 121520 && $codePoint <= 122879) {
+ return true;
+ }
+
+ if ($codePoint >= 122923 && $codePoint <= 123135) {
+ return true;
+ }
+
+ if ($codePoint >= 123216 && $codePoint <= 123583) {
+ return true;
+ }
+
+ if ($codePoint >= 123648 && $codePoint <= 124927) {
+ return true;
+ }
+
+ if ($codePoint >= 125143 && $codePoint <= 125183) {
+ return true;
+ }
+
+ if ($codePoint >= 125280 && $codePoint <= 126064) {
+ return true;
+ }
+
+ if ($codePoint >= 126133 && $codePoint <= 126208) {
+ return true;
+ }
+
+ if ($codePoint >= 126270 && $codePoint <= 126463) {
+ return true;
+ }
+
+ if ($codePoint >= 126652 && $codePoint <= 126703) {
+ return true;
+ }
+
+ if ($codePoint >= 126706 && $codePoint <= 126975) {
+ return true;
+ }
+
+ if ($codePoint >= 127406 && $codePoint <= 127461) {
+ return true;
+ }
+
+ if ($codePoint >= 127590 && $codePoint <= 127743) {
+ return true;
+ }
+
+ if ($codePoint >= 129202 && $codePoint <= 129279) {
+ return true;
+ }
+
+ if ($codePoint >= 129751 && $codePoint <= 129791) {
+ return true;
+ }
+
+ if ($codePoint >= 129995 && $codePoint <= 130031) {
+ return true;
+ }
+
+ if ($codePoint >= 130042 && $codePoint <= 131069) {
+ return true;
+ }
+
+ if ($codePoint >= 173790 && $codePoint <= 173823) {
+ return true;
+ }
+
+ if ($codePoint >= 191457 && $codePoint <= 194559) {
+ return true;
+ }
+
+ if ($codePoint >= 195102 && $codePoint <= 196605) {
+ return true;
+ }
+
+ if ($codePoint >= 201547 && $codePoint <= 262141) {
+ return true;
+ }
+
+ if ($codePoint >= 262144 && $codePoint <= 327677) {
+ return true;
+ }
+
+ if ($codePoint >= 327680 && $codePoint <= 393213) {
+ return true;
+ }
+
+ if ($codePoint >= 393216 && $codePoint <= 458749) {
+ return true;
+ }
+
+ if ($codePoint >= 458752 && $codePoint <= 524285) {
+ return true;
+ }
+
+ if ($codePoint >= 524288 && $codePoint <= 589821) {
+ return true;
+ }
+
+ if ($codePoint >= 589824 && $codePoint <= 655357) {
+ return true;
+ }
+
+ if ($codePoint >= 655360 && $codePoint <= 720893) {
+ return true;
+ }
+
+ if ($codePoint >= 720896 && $codePoint <= 786429) {
+ return true;
+ }
+
+ if ($codePoint >= 786432 && $codePoint <= 851965) {
+ return true;
+ }
+
+ if ($codePoint >= 851968 && $codePoint <= 917501) {
+ return true;
+ }
+
+ if ($codePoint >= 917536 && $codePoint <= 917631) {
+ return true;
+ }
+
+ if ($codePoint >= 917632 && $codePoint <= 917759) {
+ return true;
+ }
+
+ if ($codePoint >= 918000 && $codePoint <= 983037) {
+ return true;
+ }
+
+ if ($codePoint >= 983040 && $codePoint <= 1048573) {
+ return true;
+ }
+
+ if ($codePoint >= 1048576 && $codePoint <= 1114109) {
+ return true;
+ }
+
+ return false;
+ }
+}
diff --git a/vendor/symfony/polyfill-intl-idn/Resources/unidata/Regex.php b/vendor/symfony/polyfill-intl-idn/Resources/unidata/Regex.php
new file mode 100644
index 0000000..5c1c51d
--- /dev/null
+++ b/vendor/symfony/polyfill-intl-idn/Resources/unidata/Regex.php
@@ -0,0 +1,24 @@
+ 'ss',
+ 962 => 'σ',
+ 8204 => '',
+ 8205 => '',
+);
diff --git a/vendor/symfony/polyfill-intl-idn/Resources/unidata/disallowed.php b/vendor/symfony/polyfill-intl-idn/Resources/unidata/disallowed.php
new file mode 100644
index 0000000..25a5f56
--- /dev/null
+++ b/vendor/symfony/polyfill-intl-idn/Resources/unidata/disallowed.php
@@ -0,0 +1,2638 @@
+ true,
+ 889 => true,
+ 896 => true,
+ 897 => true,
+ 898 => true,
+ 899 => true,
+ 907 => true,
+ 909 => true,
+ 930 => true,
+ 1216 => true,
+ 1328 => true,
+ 1367 => true,
+ 1368 => true,
+ 1419 => true,
+ 1420 => true,
+ 1424 => true,
+ 1480 => true,
+ 1481 => true,
+ 1482 => true,
+ 1483 => true,
+ 1484 => true,
+ 1485 => true,
+ 1486 => true,
+ 1487 => true,
+ 1515 => true,
+ 1516 => true,
+ 1517 => true,
+ 1518 => true,
+ 1525 => true,
+ 1526 => true,
+ 1527 => true,
+ 1528 => true,
+ 1529 => true,
+ 1530 => true,
+ 1531 => true,
+ 1532 => true,
+ 1533 => true,
+ 1534 => true,
+ 1535 => true,
+ 1536 => true,
+ 1537 => true,
+ 1538 => true,
+ 1539 => true,
+ 1540 => true,
+ 1541 => true,
+ 1564 => true,
+ 1565 => true,
+ 1757 => true,
+ 1806 => true,
+ 1807 => true,
+ 1867 => true,
+ 1868 => true,
+ 1970 => true,
+ 1971 => true,
+ 1972 => true,
+ 1973 => true,
+ 1974 => true,
+ 1975 => true,
+ 1976 => true,
+ 1977 => true,
+ 1978 => true,
+ 1979 => true,
+ 1980 => true,
+ 1981 => true,
+ 1982 => true,
+ 1983 => true,
+ 2043 => true,
+ 2044 => true,
+ 2094 => true,
+ 2095 => true,
+ 2111 => true,
+ 2140 => true,
+ 2141 => true,
+ 2143 => true,
+ 2229 => true,
+ 2248 => true,
+ 2249 => true,
+ 2250 => true,
+ 2251 => true,
+ 2252 => true,
+ 2253 => true,
+ 2254 => true,
+ 2255 => true,
+ 2256 => true,
+ 2257 => true,
+ 2258 => true,
+ 2274 => true,
+ 2436 => true,
+ 2445 => true,
+ 2446 => true,
+ 2449 => true,
+ 2450 => true,
+ 2473 => true,
+ 2481 => true,
+ 2483 => true,
+ 2484 => true,
+ 2485 => true,
+ 2490 => true,
+ 2491 => true,
+ 2501 => true,
+ 2502 => true,
+ 2505 => true,
+ 2506 => true,
+ 2511 => true,
+ 2512 => true,
+ 2513 => true,
+ 2514 => true,
+ 2515 => true,
+ 2516 => true,
+ 2517 => true,
+ 2518 => true,
+ 2520 => true,
+ 2521 => true,
+ 2522 => true,
+ 2523 => true,
+ 2526 => true,
+ 2532 => true,
+ 2533 => true,
+ 2559 => true,
+ 2560 => true,
+ 2564 => true,
+ 2571 => true,
+ 2572 => true,
+ 2573 => true,
+ 2574 => true,
+ 2577 => true,
+ 2578 => true,
+ 2601 => true,
+ 2609 => true,
+ 2612 => true,
+ 2615 => true,
+ 2618 => true,
+ 2619 => true,
+ 2621 => true,
+ 2627 => true,
+ 2628 => true,
+ 2629 => true,
+ 2630 => true,
+ 2633 => true,
+ 2634 => true,
+ 2638 => true,
+ 2639 => true,
+ 2640 => true,
+ 2642 => true,
+ 2643 => true,
+ 2644 => true,
+ 2645 => true,
+ 2646 => true,
+ 2647 => true,
+ 2648 => true,
+ 2653 => true,
+ 2655 => true,
+ 2656 => true,
+ 2657 => true,
+ 2658 => true,
+ 2659 => true,
+ 2660 => true,
+ 2661 => true,
+ 2679 => true,
+ 2680 => true,
+ 2681 => true,
+ 2682 => true,
+ 2683 => true,
+ 2684 => true,
+ 2685 => true,
+ 2686 => true,
+ 2687 => true,
+ 2688 => true,
+ 2692 => true,
+ 2702 => true,
+ 2706 => true,
+ 2729 => true,
+ 2737 => true,
+ 2740 => true,
+ 2746 => true,
+ 2747 => true,
+ 2758 => true,
+ 2762 => true,
+ 2766 => true,
+ 2767 => true,
+ 2769 => true,
+ 2770 => true,
+ 2771 => true,
+ 2772 => true,
+ 2773 => true,
+ 2774 => true,
+ 2775 => true,
+ 2776 => true,
+ 2777 => true,
+ 2778 => true,
+ 2779 => true,
+ 2780 => true,
+ 2781 => true,
+ 2782 => true,
+ 2783 => true,
+ 2788 => true,
+ 2789 => true,
+ 2802 => true,
+ 2803 => true,
+ 2804 => true,
+ 2805 => true,
+ 2806 => true,
+ 2807 => true,
+ 2808 => true,
+ 2816 => true,
+ 2820 => true,
+ 2829 => true,
+ 2830 => true,
+ 2833 => true,
+ 2834 => true,
+ 2857 => true,
+ 2865 => true,
+ 2868 => true,
+ 2874 => true,
+ 2875 => true,
+ 2885 => true,
+ 2886 => true,
+ 2889 => true,
+ 2890 => true,
+ 2894 => true,
+ 2895 => true,
+ 2896 => true,
+ 2897 => true,
+ 2898 => true,
+ 2899 => true,
+ 2900 => true,
+ 2904 => true,
+ 2905 => true,
+ 2906 => true,
+ 2907 => true,
+ 2910 => true,
+ 2916 => true,
+ 2917 => true,
+ 2936 => true,
+ 2937 => true,
+ 2938 => true,
+ 2939 => true,
+ 2940 => true,
+ 2941 => true,
+ 2942 => true,
+ 2943 => true,
+ 2944 => true,
+ 2945 => true,
+ 2948 => true,
+ 2955 => true,
+ 2956 => true,
+ 2957 => true,
+ 2961 => true,
+ 2966 => true,
+ 2967 => true,
+ 2968 => true,
+ 2971 => true,
+ 2973 => true,
+ 2976 => true,
+ 2977 => true,
+ 2978 => true,
+ 2981 => true,
+ 2982 => true,
+ 2983 => true,
+ 2987 => true,
+ 2988 => true,
+ 2989 => true,
+ 3002 => true,
+ 3003 => true,
+ 3004 => true,
+ 3005 => true,
+ 3011 => true,
+ 3012 => true,
+ 3013 => true,
+ 3017 => true,
+ 3022 => true,
+ 3023 => true,
+ 3025 => true,
+ 3026 => true,
+ 3027 => true,
+ 3028 => true,
+ 3029 => true,
+ 3030 => true,
+ 3032 => true,
+ 3033 => true,
+ 3034 => true,
+ 3035 => true,
+ 3036 => true,
+ 3037 => true,
+ 3038 => true,
+ 3039 => true,
+ 3040 => true,
+ 3041 => true,
+ 3042 => true,
+ 3043 => true,
+ 3044 => true,
+ 3045 => true,
+ 3067 => true,
+ 3068 => true,
+ 3069 => true,
+ 3070 => true,
+ 3071 => true,
+ 3085 => true,
+ 3089 => true,
+ 3113 => true,
+ 3130 => true,
+ 3131 => true,
+ 3132 => true,
+ 3141 => true,
+ 3145 => true,
+ 3150 => true,
+ 3151 => true,
+ 3152 => true,
+ 3153 => true,
+ 3154 => true,
+ 3155 => true,
+ 3156 => true,
+ 3159 => true,
+ 3163 => true,
+ 3164 => true,
+ 3165 => true,
+ 3166 => true,
+ 3167 => true,
+ 3172 => true,
+ 3173 => true,
+ 3184 => true,
+ 3185 => true,
+ 3186 => true,
+ 3187 => true,
+ 3188 => true,
+ 3189 => true,
+ 3190 => true,
+ 3213 => true,
+ 3217 => true,
+ 3241 => true,
+ 3252 => true,
+ 3258 => true,
+ 3259 => true,
+ 3269 => true,
+ 3273 => true,
+ 3278 => true,
+ 3279 => true,
+ 3280 => true,
+ 3281 => true,
+ 3282 => true,
+ 3283 => true,
+ 3284 => true,
+ 3287 => true,
+ 3288 => true,
+ 3289 => true,
+ 3290 => true,
+ 3291 => true,
+ 3292 => true,
+ 3293 => true,
+ 3295 => true,
+ 3300 => true,
+ 3301 => true,
+ 3312 => true,
+ 3315 => true,
+ 3316 => true,
+ 3317 => true,
+ 3318 => true,
+ 3319 => true,
+ 3320 => true,
+ 3321 => true,
+ 3322 => true,
+ 3323 => true,
+ 3324 => true,
+ 3325 => true,
+ 3326 => true,
+ 3327 => true,
+ 3341 => true,
+ 3345 => true,
+ 3397 => true,
+ 3401 => true,
+ 3408 => true,
+ 3409 => true,
+ 3410 => true,
+ 3411 => true,
+ 3428 => true,
+ 3429 => true,
+ 3456 => true,
+ 3460 => true,
+ 3479 => true,
+ 3480 => true,
+ 3481 => true,
+ 3506 => true,
+ 3516 => true,
+ 3518 => true,
+ 3519 => true,
+ 3527 => true,
+ 3528 => true,
+ 3529 => true,
+ 3531 => true,
+ 3532 => true,
+ 3533 => true,
+ 3534 => true,
+ 3541 => true,
+ 3543 => true,
+ 3552 => true,
+ 3553 => true,
+ 3554 => true,
+ 3555 => true,
+ 3556 => true,
+ 3557 => true,
+ 3568 => true,
+ 3569 => true,
+ 3573 => true,
+ 3574 => true,
+ 3575 => true,
+ 3576 => true,
+ 3577 => true,
+ 3578 => true,
+ 3579 => true,
+ 3580 => true,
+ 3581 => true,
+ 3582 => true,
+ 3583 => true,
+ 3584 => true,
+ 3643 => true,
+ 3644 => true,
+ 3645 => true,
+ 3646 => true,
+ 3715 => true,
+ 3717 => true,
+ 3723 => true,
+ 3748 => true,
+ 3750 => true,
+ 3774 => true,
+ 3775 => true,
+ 3781 => true,
+ 3783 => true,
+ 3790 => true,
+ 3791 => true,
+ 3802 => true,
+ 3803 => true,
+ 3912 => true,
+ 3949 => true,
+ 3950 => true,
+ 3951 => true,
+ 3952 => true,
+ 3992 => true,
+ 4029 => true,
+ 4045 => true,
+ 4294 => true,
+ 4296 => true,
+ 4297 => true,
+ 4298 => true,
+ 4299 => true,
+ 4300 => true,
+ 4302 => true,
+ 4303 => true,
+ 4447 => true,
+ 4448 => true,
+ 4681 => true,
+ 4686 => true,
+ 4687 => true,
+ 4695 => true,
+ 4697 => true,
+ 4702 => true,
+ 4703 => true,
+ 4745 => true,
+ 4750 => true,
+ 4751 => true,
+ 4785 => true,
+ 4790 => true,
+ 4791 => true,
+ 4799 => true,
+ 4801 => true,
+ 4806 => true,
+ 4807 => true,
+ 4823 => true,
+ 4881 => true,
+ 4886 => true,
+ 4887 => true,
+ 4955 => true,
+ 4956 => true,
+ 4989 => true,
+ 4990 => true,
+ 4991 => true,
+ 5018 => true,
+ 5019 => true,
+ 5020 => true,
+ 5021 => true,
+ 5022 => true,
+ 5023 => true,
+ 5110 => true,
+ 5111 => true,
+ 5118 => true,
+ 5119 => true,
+ 5760 => true,
+ 5789 => true,
+ 5790 => true,
+ 5791 => true,
+ 5881 => true,
+ 5882 => true,
+ 5883 => true,
+ 5884 => true,
+ 5885 => true,
+ 5886 => true,
+ 5887 => true,
+ 5901 => true,
+ 5909 => true,
+ 5910 => true,
+ 5911 => true,
+ 5912 => true,
+ 5913 => true,
+ 5914 => true,
+ 5915 => true,
+ 5916 => true,
+ 5917 => true,
+ 5918 => true,
+ 5919 => true,
+ 5943 => true,
+ 5944 => true,
+ 5945 => true,
+ 5946 => true,
+ 5947 => true,
+ 5948 => true,
+ 5949 => true,
+ 5950 => true,
+ 5951 => true,
+ 5972 => true,
+ 5973 => true,
+ 5974 => true,
+ 5975 => true,
+ 5976 => true,
+ 5977 => true,
+ 5978 => true,
+ 5979 => true,
+ 5980 => true,
+ 5981 => true,
+ 5982 => true,
+ 5983 => true,
+ 5997 => true,
+ 6001 => true,
+ 6004 => true,
+ 6005 => true,
+ 6006 => true,
+ 6007 => true,
+ 6008 => true,
+ 6009 => true,
+ 6010 => true,
+ 6011 => true,
+ 6012 => true,
+ 6013 => true,
+ 6014 => true,
+ 6015 => true,
+ 6068 => true,
+ 6069 => true,
+ 6110 => true,
+ 6111 => true,
+ 6122 => true,
+ 6123 => true,
+ 6124 => true,
+ 6125 => true,
+ 6126 => true,
+ 6127 => true,
+ 6138 => true,
+ 6139 => true,
+ 6140 => true,
+ 6141 => true,
+ 6142 => true,
+ 6143 => true,
+ 6150 => true,
+ 6158 => true,
+ 6159 => true,
+ 6170 => true,
+ 6171 => true,
+ 6172 => true,
+ 6173 => true,
+ 6174 => true,
+ 6175 => true,
+ 6265 => true,
+ 6266 => true,
+ 6267 => true,
+ 6268 => true,
+ 6269 => true,
+ 6270 => true,
+ 6271 => true,
+ 6315 => true,
+ 6316 => true,
+ 6317 => true,
+ 6318 => true,
+ 6319 => true,
+ 6390 => true,
+ 6391 => true,
+ 6392 => true,
+ 6393 => true,
+ 6394 => true,
+ 6395 => true,
+ 6396 => true,
+ 6397 => true,
+ 6398 => true,
+ 6399 => true,
+ 6431 => true,
+ 6444 => true,
+ 6445 => true,
+ 6446 => true,
+ 6447 => true,
+ 6460 => true,
+ 6461 => true,
+ 6462 => true,
+ 6463 => true,
+ 6465 => true,
+ 6466 => true,
+ 6467 => true,
+ 6510 => true,
+ 6511 => true,
+ 6517 => true,
+ 6518 => true,
+ 6519 => true,
+ 6520 => true,
+ 6521 => true,
+ 6522 => true,
+ 6523 => true,
+ 6524 => true,
+ 6525 => true,
+ 6526 => true,
+ 6527 => true,
+ 6572 => true,
+ 6573 => true,
+ 6574 => true,
+ 6575 => true,
+ 6602 => true,
+ 6603 => true,
+ 6604 => true,
+ 6605 => true,
+ 6606 => true,
+ 6607 => true,
+ 6619 => true,
+ 6620 => true,
+ 6621 => true,
+ 6684 => true,
+ 6685 => true,
+ 6751 => true,
+ 6781 => true,
+ 6782 => true,
+ 6794 => true,
+ 6795 => true,
+ 6796 => true,
+ 6797 => true,
+ 6798 => true,
+ 6799 => true,
+ 6810 => true,
+ 6811 => true,
+ 6812 => true,
+ 6813 => true,
+ 6814 => true,
+ 6815 => true,
+ 6830 => true,
+ 6831 => true,
+ 6988 => true,
+ 6989 => true,
+ 6990 => true,
+ 6991 => true,
+ 7037 => true,
+ 7038 => true,
+ 7039 => true,
+ 7156 => true,
+ 7157 => true,
+ 7158 => true,
+ 7159 => true,
+ 7160 => true,
+ 7161 => true,
+ 7162 => true,
+ 7163 => true,
+ 7224 => true,
+ 7225 => true,
+ 7226 => true,
+ 7242 => true,
+ 7243 => true,
+ 7244 => true,
+ 7305 => true,
+ 7306 => true,
+ 7307 => true,
+ 7308 => true,
+ 7309 => true,
+ 7310 => true,
+ 7311 => true,
+ 7355 => true,
+ 7356 => true,
+ 7368 => true,
+ 7369 => true,
+ 7370 => true,
+ 7371 => true,
+ 7372 => true,
+ 7373 => true,
+ 7374 => true,
+ 7375 => true,
+ 7419 => true,
+ 7420 => true,
+ 7421 => true,
+ 7422 => true,
+ 7423 => true,
+ 7674 => true,
+ 7958 => true,
+ 7959 => true,
+ 7966 => true,
+ 7967 => true,
+ 8006 => true,
+ 8007 => true,
+ 8014 => true,
+ 8015 => true,
+ 8024 => true,
+ 8026 => true,
+ 8028 => true,
+ 8030 => true,
+ 8062 => true,
+ 8063 => true,
+ 8117 => true,
+ 8133 => true,
+ 8148 => true,
+ 8149 => true,
+ 8156 => true,
+ 8176 => true,
+ 8177 => true,
+ 8181 => true,
+ 8191 => true,
+ 8206 => true,
+ 8207 => true,
+ 8228 => true,
+ 8229 => true,
+ 8230 => true,
+ 8232 => true,
+ 8233 => true,
+ 8234 => true,
+ 8235 => true,
+ 8236 => true,
+ 8237 => true,
+ 8238 => true,
+ 8289 => true,
+ 8290 => true,
+ 8291 => true,
+ 8293 => true,
+ 8294 => true,
+ 8295 => true,
+ 8296 => true,
+ 8297 => true,
+ 8298 => true,
+ 8299 => true,
+ 8300 => true,
+ 8301 => true,
+ 8302 => true,
+ 8303 => true,
+ 8306 => true,
+ 8307 => true,
+ 8335 => true,
+ 8349 => true,
+ 8350 => true,
+ 8351 => true,
+ 8384 => true,
+ 8385 => true,
+ 8386 => true,
+ 8387 => true,
+ 8388 => true,
+ 8389 => true,
+ 8390 => true,
+ 8391 => true,
+ 8392 => true,
+ 8393 => true,
+ 8394 => true,
+ 8395 => true,
+ 8396 => true,
+ 8397 => true,
+ 8398 => true,
+ 8399 => true,
+ 8433 => true,
+ 8434 => true,
+ 8435 => true,
+ 8436 => true,
+ 8437 => true,
+ 8438 => true,
+ 8439 => true,
+ 8440 => true,
+ 8441 => true,
+ 8442 => true,
+ 8443 => true,
+ 8444 => true,
+ 8445 => true,
+ 8446 => true,
+ 8447 => true,
+ 8498 => true,
+ 8579 => true,
+ 8588 => true,
+ 8589 => true,
+ 8590 => true,
+ 8591 => true,
+ 9255 => true,
+ 9256 => true,
+ 9257 => true,
+ 9258 => true,
+ 9259 => true,
+ 9260 => true,
+ 9261 => true,
+ 9262 => true,
+ 9263 => true,
+ 9264 => true,
+ 9265 => true,
+ 9266 => true,
+ 9267 => true,
+ 9268 => true,
+ 9269 => true,
+ 9270 => true,
+ 9271 => true,
+ 9272 => true,
+ 9273 => true,
+ 9274 => true,
+ 9275 => true,
+ 9276 => true,
+ 9277 => true,
+ 9278 => true,
+ 9279 => true,
+ 9291 => true,
+ 9292 => true,
+ 9293 => true,
+ 9294 => true,
+ 9295 => true,
+ 9296 => true,
+ 9297 => true,
+ 9298 => true,
+ 9299 => true,
+ 9300 => true,
+ 9301 => true,
+ 9302 => true,
+ 9303 => true,
+ 9304 => true,
+ 9305 => true,
+ 9306 => true,
+ 9307 => true,
+ 9308 => true,
+ 9309 => true,
+ 9310 => true,
+ 9311 => true,
+ 9352 => true,
+ 9353 => true,
+ 9354 => true,
+ 9355 => true,
+ 9356 => true,
+ 9357 => true,
+ 9358 => true,
+ 9359 => true,
+ 9360 => true,
+ 9361 => true,
+ 9362 => true,
+ 9363 => true,
+ 9364 => true,
+ 9365 => true,
+ 9366 => true,
+ 9367 => true,
+ 9368 => true,
+ 9369 => true,
+ 9370 => true,
+ 9371 => true,
+ 11124 => true,
+ 11125 => true,
+ 11158 => true,
+ 11311 => true,
+ 11359 => true,
+ 11508 => true,
+ 11509 => true,
+ 11510 => true,
+ 11511 => true,
+ 11512 => true,
+ 11558 => true,
+ 11560 => true,
+ 11561 => true,
+ 11562 => true,
+ 11563 => true,
+ 11564 => true,
+ 11566 => true,
+ 11567 => true,
+ 11624 => true,
+ 11625 => true,
+ 11626 => true,
+ 11627 => true,
+ 11628 => true,
+ 11629 => true,
+ 11630 => true,
+ 11633 => true,
+ 11634 => true,
+ 11635 => true,
+ 11636 => true,
+ 11637 => true,
+ 11638 => true,
+ 11639 => true,
+ 11640 => true,
+ 11641 => true,
+ 11642 => true,
+ 11643 => true,
+ 11644 => true,
+ 11645 => true,
+ 11646 => true,
+ 11671 => true,
+ 11672 => true,
+ 11673 => true,
+ 11674 => true,
+ 11675 => true,
+ 11676 => true,
+ 11677 => true,
+ 11678 => true,
+ 11679 => true,
+ 11687 => true,
+ 11695 => true,
+ 11703 => true,
+ 11711 => true,
+ 11719 => true,
+ 11727 => true,
+ 11735 => true,
+ 11743 => true,
+ 11930 => true,
+ 12020 => true,
+ 12021 => true,
+ 12022 => true,
+ 12023 => true,
+ 12024 => true,
+ 12025 => true,
+ 12026 => true,
+ 12027 => true,
+ 12028 => true,
+ 12029 => true,
+ 12030 => true,
+ 12031 => true,
+ 12246 => true,
+ 12247 => true,
+ 12248 => true,
+ 12249 => true,
+ 12250 => true,
+ 12251 => true,
+ 12252 => true,
+ 12253 => true,
+ 12254 => true,
+ 12255 => true,
+ 12256 => true,
+ 12257 => true,
+ 12258 => true,
+ 12259 => true,
+ 12260 => true,
+ 12261 => true,
+ 12262 => true,
+ 12263 => true,
+ 12264 => true,
+ 12265 => true,
+ 12266 => true,
+ 12267 => true,
+ 12268 => true,
+ 12269 => true,
+ 12270 => true,
+ 12271 => true,
+ 12272 => true,
+ 12273 => true,
+ 12274 => true,
+ 12275 => true,
+ 12276 => true,
+ 12277 => true,
+ 12278 => true,
+ 12279 => true,
+ 12280 => true,
+ 12281 => true,
+ 12282 => true,
+ 12283 => true,
+ 12284 => true,
+ 12285 => true,
+ 12286 => true,
+ 12287 => true,
+ 12352 => true,
+ 12439 => true,
+ 12440 => true,
+ 12544 => true,
+ 12545 => true,
+ 12546 => true,
+ 12547 => true,
+ 12548 => true,
+ 12592 => true,
+ 12644 => true,
+ 12687 => true,
+ 12772 => true,
+ 12773 => true,
+ 12774 => true,
+ 12775 => true,
+ 12776 => true,
+ 12777 => true,
+ 12778 => true,
+ 12779 => true,
+ 12780 => true,
+ 12781 => true,
+ 12782 => true,
+ 12783 => true,
+ 12831 => true,
+ 13250 => true,
+ 13255 => true,
+ 13272 => true,
+ 40957 => true,
+ 40958 => true,
+ 40959 => true,
+ 42125 => true,
+ 42126 => true,
+ 42127 => true,
+ 42183 => true,
+ 42184 => true,
+ 42185 => true,
+ 42186 => true,
+ 42187 => true,
+ 42188 => true,
+ 42189 => true,
+ 42190 => true,
+ 42191 => true,
+ 42540 => true,
+ 42541 => true,
+ 42542 => true,
+ 42543 => true,
+ 42544 => true,
+ 42545 => true,
+ 42546 => true,
+ 42547 => true,
+ 42548 => true,
+ 42549 => true,
+ 42550 => true,
+ 42551 => true,
+ 42552 => true,
+ 42553 => true,
+ 42554 => true,
+ 42555 => true,
+ 42556 => true,
+ 42557 => true,
+ 42558 => true,
+ 42559 => true,
+ 42744 => true,
+ 42745 => true,
+ 42746 => true,
+ 42747 => true,
+ 42748 => true,
+ 42749 => true,
+ 42750 => true,
+ 42751 => true,
+ 42944 => true,
+ 42945 => true,
+ 43053 => true,
+ 43054 => true,
+ 43055 => true,
+ 43066 => true,
+ 43067 => true,
+ 43068 => true,
+ 43069 => true,
+ 43070 => true,
+ 43071 => true,
+ 43128 => true,
+ 43129 => true,
+ 43130 => true,
+ 43131 => true,
+ 43132 => true,
+ 43133 => true,
+ 43134 => true,
+ 43135 => true,
+ 43206 => true,
+ 43207 => true,
+ 43208 => true,
+ 43209 => true,
+ 43210 => true,
+ 43211 => true,
+ 43212 => true,
+ 43213 => true,
+ 43226 => true,
+ 43227 => true,
+ 43228 => true,
+ 43229 => true,
+ 43230 => true,
+ 43231 => true,
+ 43348 => true,
+ 43349 => true,
+ 43350 => true,
+ 43351 => true,
+ 43352 => true,
+ 43353 => true,
+ 43354 => true,
+ 43355 => true,
+ 43356 => true,
+ 43357 => true,
+ 43358 => true,
+ 43389 => true,
+ 43390 => true,
+ 43391 => true,
+ 43470 => true,
+ 43482 => true,
+ 43483 => true,
+ 43484 => true,
+ 43485 => true,
+ 43519 => true,
+ 43575 => true,
+ 43576 => true,
+ 43577 => true,
+ 43578 => true,
+ 43579 => true,
+ 43580 => true,
+ 43581 => true,
+ 43582 => true,
+ 43583 => true,
+ 43598 => true,
+ 43599 => true,
+ 43610 => true,
+ 43611 => true,
+ 43715 => true,
+ 43716 => true,
+ 43717 => true,
+ 43718 => true,
+ 43719 => true,
+ 43720 => true,
+ 43721 => true,
+ 43722 => true,
+ 43723 => true,
+ 43724 => true,
+ 43725 => true,
+ 43726 => true,
+ 43727 => true,
+ 43728 => true,
+ 43729 => true,
+ 43730 => true,
+ 43731 => true,
+ 43732 => true,
+ 43733 => true,
+ 43734 => true,
+ 43735 => true,
+ 43736 => true,
+ 43737 => true,
+ 43738 => true,
+ 43767 => true,
+ 43768 => true,
+ 43769 => true,
+ 43770 => true,
+ 43771 => true,
+ 43772 => true,
+ 43773 => true,
+ 43774 => true,
+ 43775 => true,
+ 43776 => true,
+ 43783 => true,
+ 43784 => true,
+ 43791 => true,
+ 43792 => true,
+ 43799 => true,
+ 43800 => true,
+ 43801 => true,
+ 43802 => true,
+ 43803 => true,
+ 43804 => true,
+ 43805 => true,
+ 43806 => true,
+ 43807 => true,
+ 43815 => true,
+ 43823 => true,
+ 43884 => true,
+ 43885 => true,
+ 43886 => true,
+ 43887 => true,
+ 44014 => true,
+ 44015 => true,
+ 44026 => true,
+ 44027 => true,
+ 44028 => true,
+ 44029 => true,
+ 44030 => true,
+ 44031 => true,
+ 55204 => true,
+ 55205 => true,
+ 55206 => true,
+ 55207 => true,
+ 55208 => true,
+ 55209 => true,
+ 55210 => true,
+ 55211 => true,
+ 55212 => true,
+ 55213 => true,
+ 55214 => true,
+ 55215 => true,
+ 55239 => true,
+ 55240 => true,
+ 55241 => true,
+ 55242 => true,
+ 55292 => true,
+ 55293 => true,
+ 55294 => true,
+ 55295 => true,
+ 64110 => true,
+ 64111 => true,
+ 64263 => true,
+ 64264 => true,
+ 64265 => true,
+ 64266 => true,
+ 64267 => true,
+ 64268 => true,
+ 64269 => true,
+ 64270 => true,
+ 64271 => true,
+ 64272 => true,
+ 64273 => true,
+ 64274 => true,
+ 64280 => true,
+ 64281 => true,
+ 64282 => true,
+ 64283 => true,
+ 64284 => true,
+ 64311 => true,
+ 64317 => true,
+ 64319 => true,
+ 64322 => true,
+ 64325 => true,
+ 64450 => true,
+ 64451 => true,
+ 64452 => true,
+ 64453 => true,
+ 64454 => true,
+ 64455 => true,
+ 64456 => true,
+ 64457 => true,
+ 64458 => true,
+ 64459 => true,
+ 64460 => true,
+ 64461 => true,
+ 64462 => true,
+ 64463 => true,
+ 64464 => true,
+ 64465 => true,
+ 64466 => true,
+ 64832 => true,
+ 64833 => true,
+ 64834 => true,
+ 64835 => true,
+ 64836 => true,
+ 64837 => true,
+ 64838 => true,
+ 64839 => true,
+ 64840 => true,
+ 64841 => true,
+ 64842 => true,
+ 64843 => true,
+ 64844 => true,
+ 64845 => true,
+ 64846 => true,
+ 64847 => true,
+ 64912 => true,
+ 64913 => true,
+ 64968 => true,
+ 64969 => true,
+ 64970 => true,
+ 64971 => true,
+ 64972 => true,
+ 64973 => true,
+ 64974 => true,
+ 64975 => true,
+ 65022 => true,
+ 65023 => true,
+ 65042 => true,
+ 65049 => true,
+ 65050 => true,
+ 65051 => true,
+ 65052 => true,
+ 65053 => true,
+ 65054 => true,
+ 65055 => true,
+ 65072 => true,
+ 65106 => true,
+ 65107 => true,
+ 65127 => true,
+ 65132 => true,
+ 65133 => true,
+ 65134 => true,
+ 65135 => true,
+ 65141 => true,
+ 65277 => true,
+ 65278 => true,
+ 65280 => true,
+ 65440 => true,
+ 65471 => true,
+ 65472 => true,
+ 65473 => true,
+ 65480 => true,
+ 65481 => true,
+ 65488 => true,
+ 65489 => true,
+ 65496 => true,
+ 65497 => true,
+ 65501 => true,
+ 65502 => true,
+ 65503 => true,
+ 65511 => true,
+ 65519 => true,
+ 65520 => true,
+ 65521 => true,
+ 65522 => true,
+ 65523 => true,
+ 65524 => true,
+ 65525 => true,
+ 65526 => true,
+ 65527 => true,
+ 65528 => true,
+ 65529 => true,
+ 65530 => true,
+ 65531 => true,
+ 65532 => true,
+ 65533 => true,
+ 65534 => true,
+ 65535 => true,
+ 65548 => true,
+ 65575 => true,
+ 65595 => true,
+ 65598 => true,
+ 65614 => true,
+ 65615 => true,
+ 65787 => true,
+ 65788 => true,
+ 65789 => true,
+ 65790 => true,
+ 65791 => true,
+ 65795 => true,
+ 65796 => true,
+ 65797 => true,
+ 65798 => true,
+ 65844 => true,
+ 65845 => true,
+ 65846 => true,
+ 65935 => true,
+ 65949 => true,
+ 65950 => true,
+ 65951 => true,
+ 66205 => true,
+ 66206 => true,
+ 66207 => true,
+ 66257 => true,
+ 66258 => true,
+ 66259 => true,
+ 66260 => true,
+ 66261 => true,
+ 66262 => true,
+ 66263 => true,
+ 66264 => true,
+ 66265 => true,
+ 66266 => true,
+ 66267 => true,
+ 66268 => true,
+ 66269 => true,
+ 66270 => true,
+ 66271 => true,
+ 66300 => true,
+ 66301 => true,
+ 66302 => true,
+ 66303 => true,
+ 66340 => true,
+ 66341 => true,
+ 66342 => true,
+ 66343 => true,
+ 66344 => true,
+ 66345 => true,
+ 66346 => true,
+ 66347 => true,
+ 66348 => true,
+ 66379 => true,
+ 66380 => true,
+ 66381 => true,
+ 66382 => true,
+ 66383 => true,
+ 66427 => true,
+ 66428 => true,
+ 66429 => true,
+ 66430 => true,
+ 66431 => true,
+ 66462 => true,
+ 66500 => true,
+ 66501 => true,
+ 66502 => true,
+ 66503 => true,
+ 66718 => true,
+ 66719 => true,
+ 66730 => true,
+ 66731 => true,
+ 66732 => true,
+ 66733 => true,
+ 66734 => true,
+ 66735 => true,
+ 66772 => true,
+ 66773 => true,
+ 66774 => true,
+ 66775 => true,
+ 66812 => true,
+ 66813 => true,
+ 66814 => true,
+ 66815 => true,
+ 66856 => true,
+ 66857 => true,
+ 66858 => true,
+ 66859 => true,
+ 66860 => true,
+ 66861 => true,
+ 66862 => true,
+ 66863 => true,
+ 66916 => true,
+ 66917 => true,
+ 66918 => true,
+ 66919 => true,
+ 66920 => true,
+ 66921 => true,
+ 66922 => true,
+ 66923 => true,
+ 66924 => true,
+ 66925 => true,
+ 66926 => true,
+ 67383 => true,
+ 67384 => true,
+ 67385 => true,
+ 67386 => true,
+ 67387 => true,
+ 67388 => true,
+ 67389 => true,
+ 67390 => true,
+ 67391 => true,
+ 67414 => true,
+ 67415 => true,
+ 67416 => true,
+ 67417 => true,
+ 67418 => true,
+ 67419 => true,
+ 67420 => true,
+ 67421 => true,
+ 67422 => true,
+ 67423 => true,
+ 67590 => true,
+ 67591 => true,
+ 67593 => true,
+ 67638 => true,
+ 67641 => true,
+ 67642 => true,
+ 67643 => true,
+ 67645 => true,
+ 67646 => true,
+ 67670 => true,
+ 67743 => true,
+ 67744 => true,
+ 67745 => true,
+ 67746 => true,
+ 67747 => true,
+ 67748 => true,
+ 67749 => true,
+ 67750 => true,
+ 67827 => true,
+ 67830 => true,
+ 67831 => true,
+ 67832 => true,
+ 67833 => true,
+ 67834 => true,
+ 67868 => true,
+ 67869 => true,
+ 67870 => true,
+ 67898 => true,
+ 67899 => true,
+ 67900 => true,
+ 67901 => true,
+ 67902 => true,
+ 68024 => true,
+ 68025 => true,
+ 68026 => true,
+ 68027 => true,
+ 68048 => true,
+ 68049 => true,
+ 68100 => true,
+ 68103 => true,
+ 68104 => true,
+ 68105 => true,
+ 68106 => true,
+ 68107 => true,
+ 68116 => true,
+ 68120 => true,
+ 68150 => true,
+ 68151 => true,
+ 68155 => true,
+ 68156 => true,
+ 68157 => true,
+ 68158 => true,
+ 68169 => true,
+ 68170 => true,
+ 68171 => true,
+ 68172 => true,
+ 68173 => true,
+ 68174 => true,
+ 68175 => true,
+ 68185 => true,
+ 68186 => true,
+ 68187 => true,
+ 68188 => true,
+ 68189 => true,
+ 68190 => true,
+ 68191 => true,
+ 68327 => true,
+ 68328 => true,
+ 68329 => true,
+ 68330 => true,
+ 68343 => true,
+ 68344 => true,
+ 68345 => true,
+ 68346 => true,
+ 68347 => true,
+ 68348 => true,
+ 68349 => true,
+ 68350 => true,
+ 68351 => true,
+ 68406 => true,
+ 68407 => true,
+ 68408 => true,
+ 68438 => true,
+ 68439 => true,
+ 68467 => true,
+ 68468 => true,
+ 68469 => true,
+ 68470 => true,
+ 68471 => true,
+ 68498 => true,
+ 68499 => true,
+ 68500 => true,
+ 68501 => true,
+ 68502 => true,
+ 68503 => true,
+ 68504 => true,
+ 68509 => true,
+ 68510 => true,
+ 68511 => true,
+ 68512 => true,
+ 68513 => true,
+ 68514 => true,
+ 68515 => true,
+ 68516 => true,
+ 68517 => true,
+ 68518 => true,
+ 68519 => true,
+ 68520 => true,
+ 68787 => true,
+ 68788 => true,
+ 68789 => true,
+ 68790 => true,
+ 68791 => true,
+ 68792 => true,
+ 68793 => true,
+ 68794 => true,
+ 68795 => true,
+ 68796 => true,
+ 68797 => true,
+ 68798 => true,
+ 68799 => true,
+ 68851 => true,
+ 68852 => true,
+ 68853 => true,
+ 68854 => true,
+ 68855 => true,
+ 68856 => true,
+ 68857 => true,
+ 68904 => true,
+ 68905 => true,
+ 68906 => true,
+ 68907 => true,
+ 68908 => true,
+ 68909 => true,
+ 68910 => true,
+ 68911 => true,
+ 69247 => true,
+ 69290 => true,
+ 69294 => true,
+ 69295 => true,
+ 69416 => true,
+ 69417 => true,
+ 69418 => true,
+ 69419 => true,
+ 69420 => true,
+ 69421 => true,
+ 69422 => true,
+ 69423 => true,
+ 69580 => true,
+ 69581 => true,
+ 69582 => true,
+ 69583 => true,
+ 69584 => true,
+ 69585 => true,
+ 69586 => true,
+ 69587 => true,
+ 69588 => true,
+ 69589 => true,
+ 69590 => true,
+ 69591 => true,
+ 69592 => true,
+ 69593 => true,
+ 69594 => true,
+ 69595 => true,
+ 69596 => true,
+ 69597 => true,
+ 69598 => true,
+ 69599 => true,
+ 69623 => true,
+ 69624 => true,
+ 69625 => true,
+ 69626 => true,
+ 69627 => true,
+ 69628 => true,
+ 69629 => true,
+ 69630 => true,
+ 69631 => true,
+ 69710 => true,
+ 69711 => true,
+ 69712 => true,
+ 69713 => true,
+ 69744 => true,
+ 69745 => true,
+ 69746 => true,
+ 69747 => true,
+ 69748 => true,
+ 69749 => true,
+ 69750 => true,
+ 69751 => true,
+ 69752 => true,
+ 69753 => true,
+ 69754 => true,
+ 69755 => true,
+ 69756 => true,
+ 69757 => true,
+ 69758 => true,
+ 69821 => true,
+ 69826 => true,
+ 69827 => true,
+ 69828 => true,
+ 69829 => true,
+ 69830 => true,
+ 69831 => true,
+ 69832 => true,
+ 69833 => true,
+ 69834 => true,
+ 69835 => true,
+ 69836 => true,
+ 69837 => true,
+ 69838 => true,
+ 69839 => true,
+ 69865 => true,
+ 69866 => true,
+ 69867 => true,
+ 69868 => true,
+ 69869 => true,
+ 69870 => true,
+ 69871 => true,
+ 69882 => true,
+ 69883 => true,
+ 69884 => true,
+ 69885 => true,
+ 69886 => true,
+ 69887 => true,
+ 69941 => true,
+ 69960 => true,
+ 69961 => true,
+ 69962 => true,
+ 69963 => true,
+ 69964 => true,
+ 69965 => true,
+ 69966 => true,
+ 69967 => true,
+ 70007 => true,
+ 70008 => true,
+ 70009 => true,
+ 70010 => true,
+ 70011 => true,
+ 70012 => true,
+ 70013 => true,
+ 70014 => true,
+ 70015 => true,
+ 70112 => true,
+ 70133 => true,
+ 70134 => true,
+ 70135 => true,
+ 70136 => true,
+ 70137 => true,
+ 70138 => true,
+ 70139 => true,
+ 70140 => true,
+ 70141 => true,
+ 70142 => true,
+ 70143 => true,
+ 70162 => true,
+ 70279 => true,
+ 70281 => true,
+ 70286 => true,
+ 70302 => true,
+ 70314 => true,
+ 70315 => true,
+ 70316 => true,
+ 70317 => true,
+ 70318 => true,
+ 70319 => true,
+ 70379 => true,
+ 70380 => true,
+ 70381 => true,
+ 70382 => true,
+ 70383 => true,
+ 70394 => true,
+ 70395 => true,
+ 70396 => true,
+ 70397 => true,
+ 70398 => true,
+ 70399 => true,
+ 70404 => true,
+ 70413 => true,
+ 70414 => true,
+ 70417 => true,
+ 70418 => true,
+ 70441 => true,
+ 70449 => true,
+ 70452 => true,
+ 70458 => true,
+ 70469 => true,
+ 70470 => true,
+ 70473 => true,
+ 70474 => true,
+ 70478 => true,
+ 70479 => true,
+ 70481 => true,
+ 70482 => true,
+ 70483 => true,
+ 70484 => true,
+ 70485 => true,
+ 70486 => true,
+ 70488 => true,
+ 70489 => true,
+ 70490 => true,
+ 70491 => true,
+ 70492 => true,
+ 70500 => true,
+ 70501 => true,
+ 70509 => true,
+ 70510 => true,
+ 70511 => true,
+ 70748 => true,
+ 70754 => true,
+ 70755 => true,
+ 70756 => true,
+ 70757 => true,
+ 70758 => true,
+ 70759 => true,
+ 70760 => true,
+ 70761 => true,
+ 70762 => true,
+ 70763 => true,
+ 70764 => true,
+ 70765 => true,
+ 70766 => true,
+ 70767 => true,
+ 70768 => true,
+ 70769 => true,
+ 70770 => true,
+ 70771 => true,
+ 70772 => true,
+ 70773 => true,
+ 70774 => true,
+ 70775 => true,
+ 70776 => true,
+ 70777 => true,
+ 70778 => true,
+ 70779 => true,
+ 70780 => true,
+ 70781 => true,
+ 70782 => true,
+ 70783 => true,
+ 70856 => true,
+ 70857 => true,
+ 70858 => true,
+ 70859 => true,
+ 70860 => true,
+ 70861 => true,
+ 70862 => true,
+ 70863 => true,
+ 71094 => true,
+ 71095 => true,
+ 71237 => true,
+ 71238 => true,
+ 71239 => true,
+ 71240 => true,
+ 71241 => true,
+ 71242 => true,
+ 71243 => true,
+ 71244 => true,
+ 71245 => true,
+ 71246 => true,
+ 71247 => true,
+ 71258 => true,
+ 71259 => true,
+ 71260 => true,
+ 71261 => true,
+ 71262 => true,
+ 71263 => true,
+ 71277 => true,
+ 71278 => true,
+ 71279 => true,
+ 71280 => true,
+ 71281 => true,
+ 71282 => true,
+ 71283 => true,
+ 71284 => true,
+ 71285 => true,
+ 71286 => true,
+ 71287 => true,
+ 71288 => true,
+ 71289 => true,
+ 71290 => true,
+ 71291 => true,
+ 71292 => true,
+ 71293 => true,
+ 71294 => true,
+ 71295 => true,
+ 71353 => true,
+ 71354 => true,
+ 71355 => true,
+ 71356 => true,
+ 71357 => true,
+ 71358 => true,
+ 71359 => true,
+ 71451 => true,
+ 71452 => true,
+ 71468 => true,
+ 71469 => true,
+ 71470 => true,
+ 71471 => true,
+ 71923 => true,
+ 71924 => true,
+ 71925 => true,
+ 71926 => true,
+ 71927 => true,
+ 71928 => true,
+ 71929 => true,
+ 71930 => true,
+ 71931 => true,
+ 71932 => true,
+ 71933 => true,
+ 71934 => true,
+ 71943 => true,
+ 71944 => true,
+ 71946 => true,
+ 71947 => true,
+ 71956 => true,
+ 71959 => true,
+ 71990 => true,
+ 71993 => true,
+ 71994 => true,
+ 72007 => true,
+ 72008 => true,
+ 72009 => true,
+ 72010 => true,
+ 72011 => true,
+ 72012 => true,
+ 72013 => true,
+ 72014 => true,
+ 72015 => true,
+ 72104 => true,
+ 72105 => true,
+ 72152 => true,
+ 72153 => true,
+ 72165 => true,
+ 72166 => true,
+ 72167 => true,
+ 72168 => true,
+ 72169 => true,
+ 72170 => true,
+ 72171 => true,
+ 72172 => true,
+ 72173 => true,
+ 72174 => true,
+ 72175 => true,
+ 72176 => true,
+ 72177 => true,
+ 72178 => true,
+ 72179 => true,
+ 72180 => true,
+ 72181 => true,
+ 72182 => true,
+ 72183 => true,
+ 72184 => true,
+ 72185 => true,
+ 72186 => true,
+ 72187 => true,
+ 72188 => true,
+ 72189 => true,
+ 72190 => true,
+ 72191 => true,
+ 72264 => true,
+ 72265 => true,
+ 72266 => true,
+ 72267 => true,
+ 72268 => true,
+ 72269 => true,
+ 72270 => true,
+ 72271 => true,
+ 72355 => true,
+ 72356 => true,
+ 72357 => true,
+ 72358 => true,
+ 72359 => true,
+ 72360 => true,
+ 72361 => true,
+ 72362 => true,
+ 72363 => true,
+ 72364 => true,
+ 72365 => true,
+ 72366 => true,
+ 72367 => true,
+ 72368 => true,
+ 72369 => true,
+ 72370 => true,
+ 72371 => true,
+ 72372 => true,
+ 72373 => true,
+ 72374 => true,
+ 72375 => true,
+ 72376 => true,
+ 72377 => true,
+ 72378 => true,
+ 72379 => true,
+ 72380 => true,
+ 72381 => true,
+ 72382 => true,
+ 72383 => true,
+ 72713 => true,
+ 72759 => true,
+ 72774 => true,
+ 72775 => true,
+ 72776 => true,
+ 72777 => true,
+ 72778 => true,
+ 72779 => true,
+ 72780 => true,
+ 72781 => true,
+ 72782 => true,
+ 72783 => true,
+ 72813 => true,
+ 72814 => true,
+ 72815 => true,
+ 72848 => true,
+ 72849 => true,
+ 72872 => true,
+ 72967 => true,
+ 72970 => true,
+ 73015 => true,
+ 73016 => true,
+ 73017 => true,
+ 73019 => true,
+ 73022 => true,
+ 73032 => true,
+ 73033 => true,
+ 73034 => true,
+ 73035 => true,
+ 73036 => true,
+ 73037 => true,
+ 73038 => true,
+ 73039 => true,
+ 73050 => true,
+ 73051 => true,
+ 73052 => true,
+ 73053 => true,
+ 73054 => true,
+ 73055 => true,
+ 73062 => true,
+ 73065 => true,
+ 73103 => true,
+ 73106 => true,
+ 73113 => true,
+ 73114 => true,
+ 73115 => true,
+ 73116 => true,
+ 73117 => true,
+ 73118 => true,
+ 73119 => true,
+ 73649 => true,
+ 73650 => true,
+ 73651 => true,
+ 73652 => true,
+ 73653 => true,
+ 73654 => true,
+ 73655 => true,
+ 73656 => true,
+ 73657 => true,
+ 73658 => true,
+ 73659 => true,
+ 73660 => true,
+ 73661 => true,
+ 73662 => true,
+ 73663 => true,
+ 73714 => true,
+ 73715 => true,
+ 73716 => true,
+ 73717 => true,
+ 73718 => true,
+ 73719 => true,
+ 73720 => true,
+ 73721 => true,
+ 73722 => true,
+ 73723 => true,
+ 73724 => true,
+ 73725 => true,
+ 73726 => true,
+ 74863 => true,
+ 74869 => true,
+ 74870 => true,
+ 74871 => true,
+ 74872 => true,
+ 74873 => true,
+ 74874 => true,
+ 74875 => true,
+ 74876 => true,
+ 74877 => true,
+ 74878 => true,
+ 74879 => true,
+ 78895 => true,
+ 78896 => true,
+ 78897 => true,
+ 78898 => true,
+ 78899 => true,
+ 78900 => true,
+ 78901 => true,
+ 78902 => true,
+ 78903 => true,
+ 78904 => true,
+ 92729 => true,
+ 92730 => true,
+ 92731 => true,
+ 92732 => true,
+ 92733 => true,
+ 92734 => true,
+ 92735 => true,
+ 92767 => true,
+ 92778 => true,
+ 92779 => true,
+ 92780 => true,
+ 92781 => true,
+ 92910 => true,
+ 92911 => true,
+ 92918 => true,
+ 92919 => true,
+ 92920 => true,
+ 92921 => true,
+ 92922 => true,
+ 92923 => true,
+ 92924 => true,
+ 92925 => true,
+ 92926 => true,
+ 92927 => true,
+ 92998 => true,
+ 92999 => true,
+ 93000 => true,
+ 93001 => true,
+ 93002 => true,
+ 93003 => true,
+ 93004 => true,
+ 93005 => true,
+ 93006 => true,
+ 93007 => true,
+ 93018 => true,
+ 93026 => true,
+ 93048 => true,
+ 93049 => true,
+ 93050 => true,
+ 93051 => true,
+ 93052 => true,
+ 94027 => true,
+ 94028 => true,
+ 94029 => true,
+ 94030 => true,
+ 94088 => true,
+ 94089 => true,
+ 94090 => true,
+ 94091 => true,
+ 94092 => true,
+ 94093 => true,
+ 94094 => true,
+ 94181 => true,
+ 94182 => true,
+ 94183 => true,
+ 94184 => true,
+ 94185 => true,
+ 94186 => true,
+ 94187 => true,
+ 94188 => true,
+ 94189 => true,
+ 94190 => true,
+ 94191 => true,
+ 94194 => true,
+ 94195 => true,
+ 94196 => true,
+ 94197 => true,
+ 94198 => true,
+ 94199 => true,
+ 94200 => true,
+ 94201 => true,
+ 94202 => true,
+ 94203 => true,
+ 94204 => true,
+ 94205 => true,
+ 94206 => true,
+ 94207 => true,
+ 100344 => true,
+ 100345 => true,
+ 100346 => true,
+ 100347 => true,
+ 100348 => true,
+ 100349 => true,
+ 100350 => true,
+ 100351 => true,
+ 110931 => true,
+ 110932 => true,
+ 110933 => true,
+ 110934 => true,
+ 110935 => true,
+ 110936 => true,
+ 110937 => true,
+ 110938 => true,
+ 110939 => true,
+ 110940 => true,
+ 110941 => true,
+ 110942 => true,
+ 110943 => true,
+ 110944 => true,
+ 110945 => true,
+ 110946 => true,
+ 110947 => true,
+ 110952 => true,
+ 110953 => true,
+ 110954 => true,
+ 110955 => true,
+ 110956 => true,
+ 110957 => true,
+ 110958 => true,
+ 110959 => true,
+ 113771 => true,
+ 113772 => true,
+ 113773 => true,
+ 113774 => true,
+ 113775 => true,
+ 113789 => true,
+ 113790 => true,
+ 113791 => true,
+ 113801 => true,
+ 113802 => true,
+ 113803 => true,
+ 113804 => true,
+ 113805 => true,
+ 113806 => true,
+ 113807 => true,
+ 113818 => true,
+ 113819 => true,
+ 119030 => true,
+ 119031 => true,
+ 119032 => true,
+ 119033 => true,
+ 119034 => true,
+ 119035 => true,
+ 119036 => true,
+ 119037 => true,
+ 119038 => true,
+ 119039 => true,
+ 119079 => true,
+ 119080 => true,
+ 119155 => true,
+ 119156 => true,
+ 119157 => true,
+ 119158 => true,
+ 119159 => true,
+ 119160 => true,
+ 119161 => true,
+ 119162 => true,
+ 119273 => true,
+ 119274 => true,
+ 119275 => true,
+ 119276 => true,
+ 119277 => true,
+ 119278 => true,
+ 119279 => true,
+ 119280 => true,
+ 119281 => true,
+ 119282 => true,
+ 119283 => true,
+ 119284 => true,
+ 119285 => true,
+ 119286 => true,
+ 119287 => true,
+ 119288 => true,
+ 119289 => true,
+ 119290 => true,
+ 119291 => true,
+ 119292 => true,
+ 119293 => true,
+ 119294 => true,
+ 119295 => true,
+ 119540 => true,
+ 119541 => true,
+ 119542 => true,
+ 119543 => true,
+ 119544 => true,
+ 119545 => true,
+ 119546 => true,
+ 119547 => true,
+ 119548 => true,
+ 119549 => true,
+ 119550 => true,
+ 119551 => true,
+ 119639 => true,
+ 119640 => true,
+ 119641 => true,
+ 119642 => true,
+ 119643 => true,
+ 119644 => true,
+ 119645 => true,
+ 119646 => true,
+ 119647 => true,
+ 119893 => true,
+ 119965 => true,
+ 119968 => true,
+ 119969 => true,
+ 119971 => true,
+ 119972 => true,
+ 119975 => true,
+ 119976 => true,
+ 119981 => true,
+ 119994 => true,
+ 119996 => true,
+ 120004 => true,
+ 120070 => true,
+ 120075 => true,
+ 120076 => true,
+ 120085 => true,
+ 120093 => true,
+ 120122 => true,
+ 120127 => true,
+ 120133 => true,
+ 120135 => true,
+ 120136 => true,
+ 120137 => true,
+ 120145 => true,
+ 120486 => true,
+ 120487 => true,
+ 120780 => true,
+ 120781 => true,
+ 121484 => true,
+ 121485 => true,
+ 121486 => true,
+ 121487 => true,
+ 121488 => true,
+ 121489 => true,
+ 121490 => true,
+ 121491 => true,
+ 121492 => true,
+ 121493 => true,
+ 121494 => true,
+ 121495 => true,
+ 121496 => true,
+ 121497 => true,
+ 121498 => true,
+ 121504 => true,
+ 122887 => true,
+ 122905 => true,
+ 122906 => true,
+ 122914 => true,
+ 122917 => true,
+ 123181 => true,
+ 123182 => true,
+ 123183 => true,
+ 123198 => true,
+ 123199 => true,
+ 123210 => true,
+ 123211 => true,
+ 123212 => true,
+ 123213 => true,
+ 123642 => true,
+ 123643 => true,
+ 123644 => true,
+ 123645 => true,
+ 123646 => true,
+ 125125 => true,
+ 125126 => true,
+ 125260 => true,
+ 125261 => true,
+ 125262 => true,
+ 125263 => true,
+ 125274 => true,
+ 125275 => true,
+ 125276 => true,
+ 125277 => true,
+ 126468 => true,
+ 126496 => true,
+ 126499 => true,
+ 126501 => true,
+ 126502 => true,
+ 126504 => true,
+ 126515 => true,
+ 126520 => true,
+ 126522 => true,
+ 126524 => true,
+ 126525 => true,
+ 126526 => true,
+ 126527 => true,
+ 126528 => true,
+ 126529 => true,
+ 126531 => true,
+ 126532 => true,
+ 126533 => true,
+ 126534 => true,
+ 126536 => true,
+ 126538 => true,
+ 126540 => true,
+ 126544 => true,
+ 126547 => true,
+ 126549 => true,
+ 126550 => true,
+ 126552 => true,
+ 126554 => true,
+ 126556 => true,
+ 126558 => true,
+ 126560 => true,
+ 126563 => true,
+ 126565 => true,
+ 126566 => true,
+ 126571 => true,
+ 126579 => true,
+ 126584 => true,
+ 126589 => true,
+ 126591 => true,
+ 126602 => true,
+ 126620 => true,
+ 126621 => true,
+ 126622 => true,
+ 126623 => true,
+ 126624 => true,
+ 126628 => true,
+ 126634 => true,
+ 127020 => true,
+ 127021 => true,
+ 127022 => true,
+ 127023 => true,
+ 127124 => true,
+ 127125 => true,
+ 127126 => true,
+ 127127 => true,
+ 127128 => true,
+ 127129 => true,
+ 127130 => true,
+ 127131 => true,
+ 127132 => true,
+ 127133 => true,
+ 127134 => true,
+ 127135 => true,
+ 127151 => true,
+ 127152 => true,
+ 127168 => true,
+ 127184 => true,
+ 127222 => true,
+ 127223 => true,
+ 127224 => true,
+ 127225 => true,
+ 127226 => true,
+ 127227 => true,
+ 127228 => true,
+ 127229 => true,
+ 127230 => true,
+ 127231 => true,
+ 127232 => true,
+ 127491 => true,
+ 127492 => true,
+ 127493 => true,
+ 127494 => true,
+ 127495 => true,
+ 127496 => true,
+ 127497 => true,
+ 127498 => true,
+ 127499 => true,
+ 127500 => true,
+ 127501 => true,
+ 127502 => true,
+ 127503 => true,
+ 127548 => true,
+ 127549 => true,
+ 127550 => true,
+ 127551 => true,
+ 127561 => true,
+ 127562 => true,
+ 127563 => true,
+ 127564 => true,
+ 127565 => true,
+ 127566 => true,
+ 127567 => true,
+ 127570 => true,
+ 127571 => true,
+ 127572 => true,
+ 127573 => true,
+ 127574 => true,
+ 127575 => true,
+ 127576 => true,
+ 127577 => true,
+ 127578 => true,
+ 127579 => true,
+ 127580 => true,
+ 127581 => true,
+ 127582 => true,
+ 127583 => true,
+ 128728 => true,
+ 128729 => true,
+ 128730 => true,
+ 128731 => true,
+ 128732 => true,
+ 128733 => true,
+ 128734 => true,
+ 128735 => true,
+ 128749 => true,
+ 128750 => true,
+ 128751 => true,
+ 128765 => true,
+ 128766 => true,
+ 128767 => true,
+ 128884 => true,
+ 128885 => true,
+ 128886 => true,
+ 128887 => true,
+ 128888 => true,
+ 128889 => true,
+ 128890 => true,
+ 128891 => true,
+ 128892 => true,
+ 128893 => true,
+ 128894 => true,
+ 128895 => true,
+ 128985 => true,
+ 128986 => true,
+ 128987 => true,
+ 128988 => true,
+ 128989 => true,
+ 128990 => true,
+ 128991 => true,
+ 129004 => true,
+ 129005 => true,
+ 129006 => true,
+ 129007 => true,
+ 129008 => true,
+ 129009 => true,
+ 129010 => true,
+ 129011 => true,
+ 129012 => true,
+ 129013 => true,
+ 129014 => true,
+ 129015 => true,
+ 129016 => true,
+ 129017 => true,
+ 129018 => true,
+ 129019 => true,
+ 129020 => true,
+ 129021 => true,
+ 129022 => true,
+ 129023 => true,
+ 129036 => true,
+ 129037 => true,
+ 129038 => true,
+ 129039 => true,
+ 129096 => true,
+ 129097 => true,
+ 129098 => true,
+ 129099 => true,
+ 129100 => true,
+ 129101 => true,
+ 129102 => true,
+ 129103 => true,
+ 129114 => true,
+ 129115 => true,
+ 129116 => true,
+ 129117 => true,
+ 129118 => true,
+ 129119 => true,
+ 129160 => true,
+ 129161 => true,
+ 129162 => true,
+ 129163 => true,
+ 129164 => true,
+ 129165 => true,
+ 129166 => true,
+ 129167 => true,
+ 129198 => true,
+ 129199 => true,
+ 129401 => true,
+ 129484 => true,
+ 129620 => true,
+ 129621 => true,
+ 129622 => true,
+ 129623 => true,
+ 129624 => true,
+ 129625 => true,
+ 129626 => true,
+ 129627 => true,
+ 129628 => true,
+ 129629 => true,
+ 129630 => true,
+ 129631 => true,
+ 129646 => true,
+ 129647 => true,
+ 129653 => true,
+ 129654 => true,
+ 129655 => true,
+ 129659 => true,
+ 129660 => true,
+ 129661 => true,
+ 129662 => true,
+ 129663 => true,
+ 129671 => true,
+ 129672 => true,
+ 129673 => true,
+ 129674 => true,
+ 129675 => true,
+ 129676 => true,
+ 129677 => true,
+ 129678 => true,
+ 129679 => true,
+ 129705 => true,
+ 129706 => true,
+ 129707 => true,
+ 129708 => true,
+ 129709 => true,
+ 129710 => true,
+ 129711 => true,
+ 129719 => true,
+ 129720 => true,
+ 129721 => true,
+ 129722 => true,
+ 129723 => true,
+ 129724 => true,
+ 129725 => true,
+ 129726 => true,
+ 129727 => true,
+ 129731 => true,
+ 129732 => true,
+ 129733 => true,
+ 129734 => true,
+ 129735 => true,
+ 129736 => true,
+ 129737 => true,
+ 129738 => true,
+ 129739 => true,
+ 129740 => true,
+ 129741 => true,
+ 129742 => true,
+ 129743 => true,
+ 129939 => true,
+ 131070 => true,
+ 131071 => true,
+ 177973 => true,
+ 177974 => true,
+ 177975 => true,
+ 177976 => true,
+ 177977 => true,
+ 177978 => true,
+ 177979 => true,
+ 177980 => true,
+ 177981 => true,
+ 177982 => true,
+ 177983 => true,
+ 178206 => true,
+ 178207 => true,
+ 183970 => true,
+ 183971 => true,
+ 183972 => true,
+ 183973 => true,
+ 183974 => true,
+ 183975 => true,
+ 183976 => true,
+ 183977 => true,
+ 183978 => true,
+ 183979 => true,
+ 183980 => true,
+ 183981 => true,
+ 183982 => true,
+ 183983 => true,
+ 194664 => true,
+ 194676 => true,
+ 194847 => true,
+ 194911 => true,
+ 195007 => true,
+ 196606 => true,
+ 196607 => true,
+ 262142 => true,
+ 262143 => true,
+ 327678 => true,
+ 327679 => true,
+ 393214 => true,
+ 393215 => true,
+ 458750 => true,
+ 458751 => true,
+ 524286 => true,
+ 524287 => true,
+ 589822 => true,
+ 589823 => true,
+ 655358 => true,
+ 655359 => true,
+ 720894 => true,
+ 720895 => true,
+ 786430 => true,
+ 786431 => true,
+ 851966 => true,
+ 851967 => true,
+ 917502 => true,
+ 917503 => true,
+ 917504 => true,
+ 917505 => true,
+ 917506 => true,
+ 917507 => true,
+ 917508 => true,
+ 917509 => true,
+ 917510 => true,
+ 917511 => true,
+ 917512 => true,
+ 917513 => true,
+ 917514 => true,
+ 917515 => true,
+ 917516 => true,
+ 917517 => true,
+ 917518 => true,
+ 917519 => true,
+ 917520 => true,
+ 917521 => true,
+ 917522 => true,
+ 917523 => true,
+ 917524 => true,
+ 917525 => true,
+ 917526 => true,
+ 917527 => true,
+ 917528 => true,
+ 917529 => true,
+ 917530 => true,
+ 917531 => true,
+ 917532 => true,
+ 917533 => true,
+ 917534 => true,
+ 917535 => true,
+ 983038 => true,
+ 983039 => true,
+ 1048574 => true,
+ 1048575 => true,
+ 1114110 => true,
+ 1114111 => true,
+);
diff --git a/vendor/symfony/polyfill-intl-idn/Resources/unidata/disallowed_STD3_mapped.php b/vendor/symfony/polyfill-intl-idn/Resources/unidata/disallowed_STD3_mapped.php
new file mode 100644
index 0000000..54f21cc
--- /dev/null
+++ b/vendor/symfony/polyfill-intl-idn/Resources/unidata/disallowed_STD3_mapped.php
@@ -0,0 +1,308 @@
+ ' ',
+ 168 => ' ̈',
+ 175 => ' ̄',
+ 180 => ' ́',
+ 184 => ' ̧',
+ 728 => ' ̆',
+ 729 => ' ̇',
+ 730 => ' ̊',
+ 731 => ' ̨',
+ 732 => ' ̃',
+ 733 => ' ̋',
+ 890 => ' ι',
+ 894 => ';',
+ 900 => ' ́',
+ 901 => ' ̈́',
+ 8125 => ' ̓',
+ 8127 => ' ̓',
+ 8128 => ' ͂',
+ 8129 => ' ̈͂',
+ 8141 => ' ̓̀',
+ 8142 => ' ̓́',
+ 8143 => ' ̓͂',
+ 8157 => ' ̔̀',
+ 8158 => ' ̔́',
+ 8159 => ' ̔͂',
+ 8173 => ' ̈̀',
+ 8174 => ' ̈́',
+ 8175 => '`',
+ 8189 => ' ́',
+ 8190 => ' ̔',
+ 8192 => ' ',
+ 8193 => ' ',
+ 8194 => ' ',
+ 8195 => ' ',
+ 8196 => ' ',
+ 8197 => ' ',
+ 8198 => ' ',
+ 8199 => ' ',
+ 8200 => ' ',
+ 8201 => ' ',
+ 8202 => ' ',
+ 8215 => ' ̳',
+ 8239 => ' ',
+ 8252 => '!!',
+ 8254 => ' ̅',
+ 8263 => '??',
+ 8264 => '?!',
+ 8265 => '!?',
+ 8287 => ' ',
+ 8314 => '+',
+ 8316 => '=',
+ 8317 => '(',
+ 8318 => ')',
+ 8330 => '+',
+ 8332 => '=',
+ 8333 => '(',
+ 8334 => ')',
+ 8448 => 'a/c',
+ 8449 => 'a/s',
+ 8453 => 'c/o',
+ 8454 => 'c/u',
+ 9332 => '(1)',
+ 9333 => '(2)',
+ 9334 => '(3)',
+ 9335 => '(4)',
+ 9336 => '(5)',
+ 9337 => '(6)',
+ 9338 => '(7)',
+ 9339 => '(8)',
+ 9340 => '(9)',
+ 9341 => '(10)',
+ 9342 => '(11)',
+ 9343 => '(12)',
+ 9344 => '(13)',
+ 9345 => '(14)',
+ 9346 => '(15)',
+ 9347 => '(16)',
+ 9348 => '(17)',
+ 9349 => '(18)',
+ 9350 => '(19)',
+ 9351 => '(20)',
+ 9372 => '(a)',
+ 9373 => '(b)',
+ 9374 => '(c)',
+ 9375 => '(d)',
+ 9376 => '(e)',
+ 9377 => '(f)',
+ 9378 => '(g)',
+ 9379 => '(h)',
+ 9380 => '(i)',
+ 9381 => '(j)',
+ 9382 => '(k)',
+ 9383 => '(l)',
+ 9384 => '(m)',
+ 9385 => '(n)',
+ 9386 => '(o)',
+ 9387 => '(p)',
+ 9388 => '(q)',
+ 9389 => '(r)',
+ 9390 => '(s)',
+ 9391 => '(t)',
+ 9392 => '(u)',
+ 9393 => '(v)',
+ 9394 => '(w)',
+ 9395 => '(x)',
+ 9396 => '(y)',
+ 9397 => '(z)',
+ 10868 => '::=',
+ 10869 => '==',
+ 10870 => '===',
+ 12288 => ' ',
+ 12443 => ' ゙',
+ 12444 => ' ゚',
+ 12800 => '(ᄀ)',
+ 12801 => '(ᄂ)',
+ 12802 => '(ᄃ)',
+ 12803 => '(ᄅ)',
+ 12804 => '(ᄆ)',
+ 12805 => '(ᄇ)',
+ 12806 => '(ᄉ)',
+ 12807 => '(ᄋ)',
+ 12808 => '(ᄌ)',
+ 12809 => '(ᄎ)',
+ 12810 => '(ᄏ)',
+ 12811 => '(ᄐ)',
+ 12812 => '(ᄑ)',
+ 12813 => '(ᄒ)',
+ 12814 => '(가)',
+ 12815 => '(나)',
+ 12816 => '(다)',
+ 12817 => '(라)',
+ 12818 => '(마)',
+ 12819 => '(바)',
+ 12820 => '(사)',
+ 12821 => '(아)',
+ 12822 => '(자)',
+ 12823 => '(차)',
+ 12824 => '(카)',
+ 12825 => '(타)',
+ 12826 => '(파)',
+ 12827 => '(하)',
+ 12828 => '(주)',
+ 12829 => '(오전)',
+ 12830 => '(오후)',
+ 12832 => '(一)',
+ 12833 => '(二)',
+ 12834 => '(三)',
+ 12835 => '(四)',
+ 12836 => '(五)',
+ 12837 => '(六)',
+ 12838 => '(七)',
+ 12839 => '(八)',
+ 12840 => '(九)',
+ 12841 => '(十)',
+ 12842 => '(月)',
+ 12843 => '(火)',
+ 12844 => '(水)',
+ 12845 => '(木)',
+ 12846 => '(金)',
+ 12847 => '(土)',
+ 12848 => '(日)',
+ 12849 => '(株)',
+ 12850 => '(有)',
+ 12851 => '(社)',
+ 12852 => '(名)',
+ 12853 => '(特)',
+ 12854 => '(財)',
+ 12855 => '(祝)',
+ 12856 => '(労)',
+ 12857 => '(代)',
+ 12858 => '(呼)',
+ 12859 => '(学)',
+ 12860 => '(監)',
+ 12861 => '(企)',
+ 12862 => '(資)',
+ 12863 => '(協)',
+ 12864 => '(祭)',
+ 12865 => '(休)',
+ 12866 => '(自)',
+ 12867 => '(至)',
+ 64297 => '+',
+ 64606 => ' ٌّ',
+ 64607 => ' ٍّ',
+ 64608 => ' َّ',
+ 64609 => ' ُّ',
+ 64610 => ' ِّ',
+ 64611 => ' ّٰ',
+ 65018 => 'صلى الله عليه وسلم',
+ 65019 => 'جل جلاله',
+ 65040 => ',',
+ 65043 => ':',
+ 65044 => ';',
+ 65045 => '!',
+ 65046 => '?',
+ 65075 => '_',
+ 65076 => '_',
+ 65077 => '(',
+ 65078 => ')',
+ 65079 => '{',
+ 65080 => '}',
+ 65095 => '[',
+ 65096 => ']',
+ 65097 => ' ̅',
+ 65098 => ' ̅',
+ 65099 => ' ̅',
+ 65100 => ' ̅',
+ 65101 => '_',
+ 65102 => '_',
+ 65103 => '_',
+ 65104 => ',',
+ 65108 => ';',
+ 65109 => ':',
+ 65110 => '?',
+ 65111 => '!',
+ 65113 => '(',
+ 65114 => ')',
+ 65115 => '{',
+ 65116 => '}',
+ 65119 => '#',
+ 65120 => '&',
+ 65121 => '*',
+ 65122 => '+',
+ 65124 => '<',
+ 65125 => '>',
+ 65126 => '=',
+ 65128 => '\\',
+ 65129 => '$',
+ 65130 => '%',
+ 65131 => '@',
+ 65136 => ' ً',
+ 65138 => ' ٌ',
+ 65140 => ' ٍ',
+ 65142 => ' َ',
+ 65144 => ' ُ',
+ 65146 => ' ِ',
+ 65148 => ' ّ',
+ 65150 => ' ْ',
+ 65281 => '!',
+ 65282 => '"',
+ 65283 => '#',
+ 65284 => '$',
+ 65285 => '%',
+ 65286 => '&',
+ 65287 => '\'',
+ 65288 => '(',
+ 65289 => ')',
+ 65290 => '*',
+ 65291 => '+',
+ 65292 => ',',
+ 65295 => '/',
+ 65306 => ':',
+ 65307 => ';',
+ 65308 => '<',
+ 65309 => '=',
+ 65310 => '>',
+ 65311 => '?',
+ 65312 => '@',
+ 65339 => '[',
+ 65340 => '\\',
+ 65341 => ']',
+ 65342 => '^',
+ 65343 => '_',
+ 65344 => '`',
+ 65371 => '{',
+ 65372 => '|',
+ 65373 => '}',
+ 65374 => '~',
+ 65507 => ' ̄',
+ 127233 => '0,',
+ 127234 => '1,',
+ 127235 => '2,',
+ 127236 => '3,',
+ 127237 => '4,',
+ 127238 => '5,',
+ 127239 => '6,',
+ 127240 => '7,',
+ 127241 => '8,',
+ 127242 => '9,',
+ 127248 => '(a)',
+ 127249 => '(b)',
+ 127250 => '(c)',
+ 127251 => '(d)',
+ 127252 => '(e)',
+ 127253 => '(f)',
+ 127254 => '(g)',
+ 127255 => '(h)',
+ 127256 => '(i)',
+ 127257 => '(j)',
+ 127258 => '(k)',
+ 127259 => '(l)',
+ 127260 => '(m)',
+ 127261 => '(n)',
+ 127262 => '(o)',
+ 127263 => '(p)',
+ 127264 => '(q)',
+ 127265 => '(r)',
+ 127266 => '(s)',
+ 127267 => '(t)',
+ 127268 => '(u)',
+ 127269 => '(v)',
+ 127270 => '(w)',
+ 127271 => '(x)',
+ 127272 => '(y)',
+ 127273 => '(z)',
+);
diff --git a/vendor/symfony/polyfill-intl-idn/Resources/unidata/disallowed_STD3_valid.php b/vendor/symfony/polyfill-intl-idn/Resources/unidata/disallowed_STD3_valid.php
new file mode 100644
index 0000000..223396e
--- /dev/null
+++ b/vendor/symfony/polyfill-intl-idn/Resources/unidata/disallowed_STD3_valid.php
@@ -0,0 +1,71 @@
+ true,
+ 1 => true,
+ 2 => true,
+ 3 => true,
+ 4 => true,
+ 5 => true,
+ 6 => true,
+ 7 => true,
+ 8 => true,
+ 9 => true,
+ 10 => true,
+ 11 => true,
+ 12 => true,
+ 13 => true,
+ 14 => true,
+ 15 => true,
+ 16 => true,
+ 17 => true,
+ 18 => true,
+ 19 => true,
+ 20 => true,
+ 21 => true,
+ 22 => true,
+ 23 => true,
+ 24 => true,
+ 25 => true,
+ 26 => true,
+ 27 => true,
+ 28 => true,
+ 29 => true,
+ 30 => true,
+ 31 => true,
+ 32 => true,
+ 33 => true,
+ 34 => true,
+ 35 => true,
+ 36 => true,
+ 37 => true,
+ 38 => true,
+ 39 => true,
+ 40 => true,
+ 41 => true,
+ 42 => true,
+ 43 => true,
+ 44 => true,
+ 47 => true,
+ 58 => true,
+ 59 => true,
+ 60 => true,
+ 61 => true,
+ 62 => true,
+ 63 => true,
+ 64 => true,
+ 91 => true,
+ 92 => true,
+ 93 => true,
+ 94 => true,
+ 95 => true,
+ 96 => true,
+ 123 => true,
+ 124 => true,
+ 125 => true,
+ 126 => true,
+ 127 => true,
+ 8800 => true,
+ 8814 => true,
+ 8815 => true,
+);
diff --git a/vendor/symfony/polyfill-intl-idn/Resources/unidata/ignored.php b/vendor/symfony/polyfill-intl-idn/Resources/unidata/ignored.php
new file mode 100644
index 0000000..b377844
--- /dev/null
+++ b/vendor/symfony/polyfill-intl-idn/Resources/unidata/ignored.php
@@ -0,0 +1,273 @@
+ true,
+ 847 => true,
+ 6155 => true,
+ 6156 => true,
+ 6157 => true,
+ 8203 => true,
+ 8288 => true,
+ 8292 => true,
+ 65024 => true,
+ 65025 => true,
+ 65026 => true,
+ 65027 => true,
+ 65028 => true,
+ 65029 => true,
+ 65030 => true,
+ 65031 => true,
+ 65032 => true,
+ 65033 => true,
+ 65034 => true,
+ 65035 => true,
+ 65036 => true,
+ 65037 => true,
+ 65038 => true,
+ 65039 => true,
+ 65279 => true,
+ 113824 => true,
+ 113825 => true,
+ 113826 => true,
+ 113827 => true,
+ 917760 => true,
+ 917761 => true,
+ 917762 => true,
+ 917763 => true,
+ 917764 => true,
+ 917765 => true,
+ 917766 => true,
+ 917767 => true,
+ 917768 => true,
+ 917769 => true,
+ 917770 => true,
+ 917771 => true,
+ 917772 => true,
+ 917773 => true,
+ 917774 => true,
+ 917775 => true,
+ 917776 => true,
+ 917777 => true,
+ 917778 => true,
+ 917779 => true,
+ 917780 => true,
+ 917781 => true,
+ 917782 => true,
+ 917783 => true,
+ 917784 => true,
+ 917785 => true,
+ 917786 => true,
+ 917787 => true,
+ 917788 => true,
+ 917789 => true,
+ 917790 => true,
+ 917791 => true,
+ 917792 => true,
+ 917793 => true,
+ 917794 => true,
+ 917795 => true,
+ 917796 => true,
+ 917797 => true,
+ 917798 => true,
+ 917799 => true,
+ 917800 => true,
+ 917801 => true,
+ 917802 => true,
+ 917803 => true,
+ 917804 => true,
+ 917805 => true,
+ 917806 => true,
+ 917807 => true,
+ 917808 => true,
+ 917809 => true,
+ 917810 => true,
+ 917811 => true,
+ 917812 => true,
+ 917813 => true,
+ 917814 => true,
+ 917815 => true,
+ 917816 => true,
+ 917817 => true,
+ 917818 => true,
+ 917819 => true,
+ 917820 => true,
+ 917821 => true,
+ 917822 => true,
+ 917823 => true,
+ 917824 => true,
+ 917825 => true,
+ 917826 => true,
+ 917827 => true,
+ 917828 => true,
+ 917829 => true,
+ 917830 => true,
+ 917831 => true,
+ 917832 => true,
+ 917833 => true,
+ 917834 => true,
+ 917835 => true,
+ 917836 => true,
+ 917837 => true,
+ 917838 => true,
+ 917839 => true,
+ 917840 => true,
+ 917841 => true,
+ 917842 => true,
+ 917843 => true,
+ 917844 => true,
+ 917845 => true,
+ 917846 => true,
+ 917847 => true,
+ 917848 => true,
+ 917849 => true,
+ 917850 => true,
+ 917851 => true,
+ 917852 => true,
+ 917853 => true,
+ 917854 => true,
+ 917855 => true,
+ 917856 => true,
+ 917857 => true,
+ 917858 => true,
+ 917859 => true,
+ 917860 => true,
+ 917861 => true,
+ 917862 => true,
+ 917863 => true,
+ 917864 => true,
+ 917865 => true,
+ 917866 => true,
+ 917867 => true,
+ 917868 => true,
+ 917869 => true,
+ 917870 => true,
+ 917871 => true,
+ 917872 => true,
+ 917873 => true,
+ 917874 => true,
+ 917875 => true,
+ 917876 => true,
+ 917877 => true,
+ 917878 => true,
+ 917879 => true,
+ 917880 => true,
+ 917881 => true,
+ 917882 => true,
+ 917883 => true,
+ 917884 => true,
+ 917885 => true,
+ 917886 => true,
+ 917887 => true,
+ 917888 => true,
+ 917889 => true,
+ 917890 => true,
+ 917891 => true,
+ 917892 => true,
+ 917893 => true,
+ 917894 => true,
+ 917895 => true,
+ 917896 => true,
+ 917897 => true,
+ 917898 => true,
+ 917899 => true,
+ 917900 => true,
+ 917901 => true,
+ 917902 => true,
+ 917903 => true,
+ 917904 => true,
+ 917905 => true,
+ 917906 => true,
+ 917907 => true,
+ 917908 => true,
+ 917909 => true,
+ 917910 => true,
+ 917911 => true,
+ 917912 => true,
+ 917913 => true,
+ 917914 => true,
+ 917915 => true,
+ 917916 => true,
+ 917917 => true,
+ 917918 => true,
+ 917919 => true,
+ 917920 => true,
+ 917921 => true,
+ 917922 => true,
+ 917923 => true,
+ 917924 => true,
+ 917925 => true,
+ 917926 => true,
+ 917927 => true,
+ 917928 => true,
+ 917929 => true,
+ 917930 => true,
+ 917931 => true,
+ 917932 => true,
+ 917933 => true,
+ 917934 => true,
+ 917935 => true,
+ 917936 => true,
+ 917937 => true,
+ 917938 => true,
+ 917939 => true,
+ 917940 => true,
+ 917941 => true,
+ 917942 => true,
+ 917943 => true,
+ 917944 => true,
+ 917945 => true,
+ 917946 => true,
+ 917947 => true,
+ 917948 => true,
+ 917949 => true,
+ 917950 => true,
+ 917951 => true,
+ 917952 => true,
+ 917953 => true,
+ 917954 => true,
+ 917955 => true,
+ 917956 => true,
+ 917957 => true,
+ 917958 => true,
+ 917959 => true,
+ 917960 => true,
+ 917961 => true,
+ 917962 => true,
+ 917963 => true,
+ 917964 => true,
+ 917965 => true,
+ 917966 => true,
+ 917967 => true,
+ 917968 => true,
+ 917969 => true,
+ 917970 => true,
+ 917971 => true,
+ 917972 => true,
+ 917973 => true,
+ 917974 => true,
+ 917975 => true,
+ 917976 => true,
+ 917977 => true,
+ 917978 => true,
+ 917979 => true,
+ 917980 => true,
+ 917981 => true,
+ 917982 => true,
+ 917983 => true,
+ 917984 => true,
+ 917985 => true,
+ 917986 => true,
+ 917987 => true,
+ 917988 => true,
+ 917989 => true,
+ 917990 => true,
+ 917991 => true,
+ 917992 => true,
+ 917993 => true,
+ 917994 => true,
+ 917995 => true,
+ 917996 => true,
+ 917997 => true,
+ 917998 => true,
+ 917999 => true,
+);
diff --git a/vendor/symfony/polyfill-intl-idn/Resources/unidata/mapped.php b/vendor/symfony/polyfill-intl-idn/Resources/unidata/mapped.php
new file mode 100644
index 0000000..9b85fe9
--- /dev/null
+++ b/vendor/symfony/polyfill-intl-idn/Resources/unidata/mapped.php
@@ -0,0 +1,5778 @@
+ 'a',
+ 66 => 'b',
+ 67 => 'c',
+ 68 => 'd',
+ 69 => 'e',
+ 70 => 'f',
+ 71 => 'g',
+ 72 => 'h',
+ 73 => 'i',
+ 74 => 'j',
+ 75 => 'k',
+ 76 => 'l',
+ 77 => 'm',
+ 78 => 'n',
+ 79 => 'o',
+ 80 => 'p',
+ 81 => 'q',
+ 82 => 'r',
+ 83 => 's',
+ 84 => 't',
+ 85 => 'u',
+ 86 => 'v',
+ 87 => 'w',
+ 88 => 'x',
+ 89 => 'y',
+ 90 => 'z',
+ 170 => 'a',
+ 178 => '2',
+ 179 => '3',
+ 181 => 'μ',
+ 185 => '1',
+ 186 => 'o',
+ 188 => '1⁄4',
+ 189 => '1⁄2',
+ 190 => '3⁄4',
+ 192 => 'à',
+ 193 => 'á',
+ 194 => 'â',
+ 195 => 'ã',
+ 196 => 'ä',
+ 197 => 'å',
+ 198 => 'æ',
+ 199 => 'ç',
+ 200 => 'è',
+ 201 => 'é',
+ 202 => 'ê',
+ 203 => 'ë',
+ 204 => 'ì',
+ 205 => 'í',
+ 206 => 'î',
+ 207 => 'ï',
+ 208 => 'ð',
+ 209 => 'ñ',
+ 210 => 'ò',
+ 211 => 'ó',
+ 212 => 'ô',
+ 213 => 'õ',
+ 214 => 'ö',
+ 216 => 'ø',
+ 217 => 'ù',
+ 218 => 'ú',
+ 219 => 'û',
+ 220 => 'ü',
+ 221 => 'ý',
+ 222 => 'þ',
+ 256 => 'ā',
+ 258 => 'ă',
+ 260 => 'ą',
+ 262 => 'ć',
+ 264 => 'ĉ',
+ 266 => 'ċ',
+ 268 => 'č',
+ 270 => 'ď',
+ 272 => 'đ',
+ 274 => 'ē',
+ 276 => 'ĕ',
+ 278 => 'ė',
+ 280 => 'ę',
+ 282 => 'ě',
+ 284 => 'ĝ',
+ 286 => 'ğ',
+ 288 => 'ġ',
+ 290 => 'ģ',
+ 292 => 'ĥ',
+ 294 => 'ħ',
+ 296 => 'ĩ',
+ 298 => 'ī',
+ 300 => 'ĭ',
+ 302 => 'į',
+ 304 => 'i̇',
+ 306 => 'ij',
+ 307 => 'ij',
+ 308 => 'ĵ',
+ 310 => 'ķ',
+ 313 => 'ĺ',
+ 315 => 'ļ',
+ 317 => 'ľ',
+ 319 => 'l·',
+ 320 => 'l·',
+ 321 => 'ł',
+ 323 => 'ń',
+ 325 => 'ņ',
+ 327 => 'ň',
+ 329 => 'ʼn',
+ 330 => 'ŋ',
+ 332 => 'ō',
+ 334 => 'ŏ',
+ 336 => 'ő',
+ 338 => 'œ',
+ 340 => 'ŕ',
+ 342 => 'ŗ',
+ 344 => 'ř',
+ 346 => 'ś',
+ 348 => 'ŝ',
+ 350 => 'ş',
+ 352 => 'š',
+ 354 => 'ţ',
+ 356 => 'ť',
+ 358 => 'ŧ',
+ 360 => 'ũ',
+ 362 => 'ū',
+ 364 => 'ŭ',
+ 366 => 'ů',
+ 368 => 'ű',
+ 370 => 'ų',
+ 372 => 'ŵ',
+ 374 => 'ŷ',
+ 376 => 'ÿ',
+ 377 => 'ź',
+ 379 => 'ż',
+ 381 => 'ž',
+ 383 => 's',
+ 385 => 'ɓ',
+ 386 => 'ƃ',
+ 388 => 'ƅ',
+ 390 => 'ɔ',
+ 391 => 'ƈ',
+ 393 => 'ɖ',
+ 394 => 'ɗ',
+ 395 => 'ƌ',
+ 398 => 'ǝ',
+ 399 => 'ə',
+ 400 => 'ɛ',
+ 401 => 'ƒ',
+ 403 => 'ɠ',
+ 404 => 'ɣ',
+ 406 => 'ɩ',
+ 407 => 'ɨ',
+ 408 => 'ƙ',
+ 412 => 'ɯ',
+ 413 => 'ɲ',
+ 415 => 'ɵ',
+ 416 => 'ơ',
+ 418 => 'ƣ',
+ 420 => 'ƥ',
+ 422 => 'ʀ',
+ 423 => 'ƨ',
+ 425 => 'ʃ',
+ 428 => 'ƭ',
+ 430 => 'ʈ',
+ 431 => 'ư',
+ 433 => 'ʊ',
+ 434 => 'ʋ',
+ 435 => 'ƴ',
+ 437 => 'ƶ',
+ 439 => 'ʒ',
+ 440 => 'ƹ',
+ 444 => 'ƽ',
+ 452 => 'dž',
+ 453 => 'dž',
+ 454 => 'dž',
+ 455 => 'lj',
+ 456 => 'lj',
+ 457 => 'lj',
+ 458 => 'nj',
+ 459 => 'nj',
+ 460 => 'nj',
+ 461 => 'ǎ',
+ 463 => 'ǐ',
+ 465 => 'ǒ',
+ 467 => 'ǔ',
+ 469 => 'ǖ',
+ 471 => 'ǘ',
+ 473 => 'ǚ',
+ 475 => 'ǜ',
+ 478 => 'ǟ',
+ 480 => 'ǡ',
+ 482 => 'ǣ',
+ 484 => 'ǥ',
+ 486 => 'ǧ',
+ 488 => 'ǩ',
+ 490 => 'ǫ',
+ 492 => 'ǭ',
+ 494 => 'ǯ',
+ 497 => 'dz',
+ 498 => 'dz',
+ 499 => 'dz',
+ 500 => 'ǵ',
+ 502 => 'ƕ',
+ 503 => 'ƿ',
+ 504 => 'ǹ',
+ 506 => 'ǻ',
+ 508 => 'ǽ',
+ 510 => 'ǿ',
+ 512 => 'ȁ',
+ 514 => 'ȃ',
+ 516 => 'ȅ',
+ 518 => 'ȇ',
+ 520 => 'ȉ',
+ 522 => 'ȋ',
+ 524 => 'ȍ',
+ 526 => 'ȏ',
+ 528 => 'ȑ',
+ 530 => 'ȓ',
+ 532 => 'ȕ',
+ 534 => 'ȗ',
+ 536 => 'ș',
+ 538 => 'ț',
+ 540 => 'ȝ',
+ 542 => 'ȟ',
+ 544 => 'ƞ',
+ 546 => 'ȣ',
+ 548 => 'ȥ',
+ 550 => 'ȧ',
+ 552 => 'ȩ',
+ 554 => 'ȫ',
+ 556 => 'ȭ',
+ 558 => 'ȯ',
+ 560 => 'ȱ',
+ 562 => 'ȳ',
+ 570 => 'ⱥ',
+ 571 => 'ȼ',
+ 573 => 'ƚ',
+ 574 => 'ⱦ',
+ 577 => 'ɂ',
+ 579 => 'ƀ',
+ 580 => 'ʉ',
+ 581 => 'ʌ',
+ 582 => 'ɇ',
+ 584 => 'ɉ',
+ 586 => 'ɋ',
+ 588 => 'ɍ',
+ 590 => 'ɏ',
+ 688 => 'h',
+ 689 => 'ɦ',
+ 690 => 'j',
+ 691 => 'r',
+ 692 => 'ɹ',
+ 693 => 'ɻ',
+ 694 => 'ʁ',
+ 695 => 'w',
+ 696 => 'y',
+ 736 => 'ɣ',
+ 737 => 'l',
+ 738 => 's',
+ 739 => 'x',
+ 740 => 'ʕ',
+ 832 => '̀',
+ 833 => '́',
+ 835 => '̓',
+ 836 => '̈́',
+ 837 => 'ι',
+ 880 => 'ͱ',
+ 882 => 'ͳ',
+ 884 => 'ʹ',
+ 886 => 'ͷ',
+ 895 => 'ϳ',
+ 902 => 'ά',
+ 903 => '·',
+ 904 => 'έ',
+ 905 => 'ή',
+ 906 => 'ί',
+ 908 => 'ό',
+ 910 => 'ύ',
+ 911 => 'ώ',
+ 913 => 'α',
+ 914 => 'β',
+ 915 => 'γ',
+ 916 => 'δ',
+ 917 => 'ε',
+ 918 => 'ζ',
+ 919 => 'η',
+ 920 => 'θ',
+ 921 => 'ι',
+ 922 => 'κ',
+ 923 => 'λ',
+ 924 => 'μ',
+ 925 => 'ν',
+ 926 => 'ξ',
+ 927 => 'ο',
+ 928 => 'π',
+ 929 => 'ρ',
+ 931 => 'σ',
+ 932 => 'τ',
+ 933 => 'υ',
+ 934 => 'φ',
+ 935 => 'χ',
+ 936 => 'ψ',
+ 937 => 'ω',
+ 938 => 'ϊ',
+ 939 => 'ϋ',
+ 975 => 'ϗ',
+ 976 => 'β',
+ 977 => 'θ',
+ 978 => 'υ',
+ 979 => 'ύ',
+ 980 => 'ϋ',
+ 981 => 'φ',
+ 982 => 'π',
+ 984 => 'ϙ',
+ 986 => 'ϛ',
+ 988 => 'ϝ',
+ 990 => 'ϟ',
+ 992 => 'ϡ',
+ 994 => 'ϣ',
+ 996 => 'ϥ',
+ 998 => 'ϧ',
+ 1000 => 'ϩ',
+ 1002 => 'ϫ',
+ 1004 => 'ϭ',
+ 1006 => 'ϯ',
+ 1008 => 'κ',
+ 1009 => 'ρ',
+ 1010 => 'σ',
+ 1012 => 'θ',
+ 1013 => 'ε',
+ 1015 => 'ϸ',
+ 1017 => 'σ',
+ 1018 => 'ϻ',
+ 1021 => 'ͻ',
+ 1022 => 'ͼ',
+ 1023 => 'ͽ',
+ 1024 => 'ѐ',
+ 1025 => 'ё',
+ 1026 => 'ђ',
+ 1027 => 'ѓ',
+ 1028 => 'є',
+ 1029 => 'ѕ',
+ 1030 => 'і',
+ 1031 => 'ї',
+ 1032 => 'ј',
+ 1033 => 'љ',
+ 1034 => 'њ',
+ 1035 => 'ћ',
+ 1036 => 'ќ',
+ 1037 => 'ѝ',
+ 1038 => 'ў',
+ 1039 => 'џ',
+ 1040 => 'а',
+ 1041 => 'б',
+ 1042 => 'в',
+ 1043 => 'г',
+ 1044 => 'д',
+ 1045 => 'е',
+ 1046 => 'ж',
+ 1047 => 'з',
+ 1048 => 'и',
+ 1049 => 'й',
+ 1050 => 'к',
+ 1051 => 'л',
+ 1052 => 'м',
+ 1053 => 'н',
+ 1054 => 'о',
+ 1055 => 'п',
+ 1056 => 'р',
+ 1057 => 'с',
+ 1058 => 'т',
+ 1059 => 'у',
+ 1060 => 'ф',
+ 1061 => 'х',
+ 1062 => 'ц',
+ 1063 => 'ч',
+ 1064 => 'ш',
+ 1065 => 'щ',
+ 1066 => 'ъ',
+ 1067 => 'ы',
+ 1068 => 'ь',
+ 1069 => 'э',
+ 1070 => 'ю',
+ 1071 => 'я',
+ 1120 => 'ѡ',
+ 1122 => 'ѣ',
+ 1124 => 'ѥ',
+ 1126 => 'ѧ',
+ 1128 => 'ѩ',
+ 1130 => 'ѫ',
+ 1132 => 'ѭ',
+ 1134 => 'ѯ',
+ 1136 => 'ѱ',
+ 1138 => 'ѳ',
+ 1140 => 'ѵ',
+ 1142 => 'ѷ',
+ 1144 => 'ѹ',
+ 1146 => 'ѻ',
+ 1148 => 'ѽ',
+ 1150 => 'ѿ',
+ 1152 => 'ҁ',
+ 1162 => 'ҋ',
+ 1164 => 'ҍ',
+ 1166 => 'ҏ',
+ 1168 => 'ґ',
+ 1170 => 'ғ',
+ 1172 => 'ҕ',
+ 1174 => 'җ',
+ 1176 => 'ҙ',
+ 1178 => 'қ',
+ 1180 => 'ҝ',
+ 1182 => 'ҟ',
+ 1184 => 'ҡ',
+ 1186 => 'ң',
+ 1188 => 'ҥ',
+ 1190 => 'ҧ',
+ 1192 => 'ҩ',
+ 1194 => 'ҫ',
+ 1196 => 'ҭ',
+ 1198 => 'ү',
+ 1200 => 'ұ',
+ 1202 => 'ҳ',
+ 1204 => 'ҵ',
+ 1206 => 'ҷ',
+ 1208 => 'ҹ',
+ 1210 => 'һ',
+ 1212 => 'ҽ',
+ 1214 => 'ҿ',
+ 1217 => 'ӂ',
+ 1219 => 'ӄ',
+ 1221 => 'ӆ',
+ 1223 => 'ӈ',
+ 1225 => 'ӊ',
+ 1227 => 'ӌ',
+ 1229 => 'ӎ',
+ 1232 => 'ӑ',
+ 1234 => 'ӓ',
+ 1236 => 'ӕ',
+ 1238 => 'ӗ',
+ 1240 => 'ә',
+ 1242 => 'ӛ',
+ 1244 => 'ӝ',
+ 1246 => 'ӟ',
+ 1248 => 'ӡ',
+ 1250 => 'ӣ',
+ 1252 => 'ӥ',
+ 1254 => 'ӧ',
+ 1256 => 'ө',
+ 1258 => 'ӫ',
+ 1260 => 'ӭ',
+ 1262 => 'ӯ',
+ 1264 => 'ӱ',
+ 1266 => 'ӳ',
+ 1268 => 'ӵ',
+ 1270 => 'ӷ',
+ 1272 => 'ӹ',
+ 1274 => 'ӻ',
+ 1276 => 'ӽ',
+ 1278 => 'ӿ',
+ 1280 => 'ԁ',
+ 1282 => 'ԃ',
+ 1284 => 'ԅ',
+ 1286 => 'ԇ',
+ 1288 => 'ԉ',
+ 1290 => 'ԋ',
+ 1292 => 'ԍ',
+ 1294 => 'ԏ',
+ 1296 => 'ԑ',
+ 1298 => 'ԓ',
+ 1300 => 'ԕ',
+ 1302 => 'ԗ',
+ 1304 => 'ԙ',
+ 1306 => 'ԛ',
+ 1308 => 'ԝ',
+ 1310 => 'ԟ',
+ 1312 => 'ԡ',
+ 1314 => 'ԣ',
+ 1316 => 'ԥ',
+ 1318 => 'ԧ',
+ 1320 => 'ԩ',
+ 1322 => 'ԫ',
+ 1324 => 'ԭ',
+ 1326 => 'ԯ',
+ 1329 => 'ա',
+ 1330 => 'բ',
+ 1331 => 'գ',
+ 1332 => 'դ',
+ 1333 => 'ե',
+ 1334 => 'զ',
+ 1335 => 'է',
+ 1336 => 'ը',
+ 1337 => 'թ',
+ 1338 => 'ժ',
+ 1339 => 'ի',
+ 1340 => 'լ',
+ 1341 => 'խ',
+ 1342 => 'ծ',
+ 1343 => 'կ',
+ 1344 => 'հ',
+ 1345 => 'ձ',
+ 1346 => 'ղ',
+ 1347 => 'ճ',
+ 1348 => 'մ',
+ 1349 => 'յ',
+ 1350 => 'ն',
+ 1351 => 'շ',
+ 1352 => 'ո',
+ 1353 => 'չ',
+ 1354 => 'պ',
+ 1355 => 'ջ',
+ 1356 => 'ռ',
+ 1357 => 'ս',
+ 1358 => 'վ',
+ 1359 => 'տ',
+ 1360 => 'ր',
+ 1361 => 'ց',
+ 1362 => 'ւ',
+ 1363 => 'փ',
+ 1364 => 'ք',
+ 1365 => 'օ',
+ 1366 => 'ֆ',
+ 1415 => 'եւ',
+ 1653 => 'اٴ',
+ 1654 => 'وٴ',
+ 1655 => 'ۇٴ',
+ 1656 => 'يٴ',
+ 2392 => 'क़',
+ 2393 => 'ख़',
+ 2394 => 'ग़',
+ 2395 => 'ज़',
+ 2396 => 'ड़',
+ 2397 => 'ढ़',
+ 2398 => 'फ़',
+ 2399 => 'य़',
+ 2524 => 'ড়',
+ 2525 => 'ঢ়',
+ 2527 => 'য়',
+ 2611 => 'ਲ਼',
+ 2614 => 'ਸ਼',
+ 2649 => 'ਖ਼',
+ 2650 => 'ਗ਼',
+ 2651 => 'ਜ਼',
+ 2654 => 'ਫ਼',
+ 2908 => 'ଡ଼',
+ 2909 => 'ଢ଼',
+ 3635 => 'ํา',
+ 3763 => 'ໍາ',
+ 3804 => 'ຫນ',
+ 3805 => 'ຫມ',
+ 3852 => '་',
+ 3907 => 'གྷ',
+ 3917 => 'ཌྷ',
+ 3922 => 'དྷ',
+ 3927 => 'བྷ',
+ 3932 => 'ཛྷ',
+ 3945 => 'ཀྵ',
+ 3955 => 'ཱི',
+ 3957 => 'ཱུ',
+ 3958 => 'ྲྀ',
+ 3959 => 'ྲཱྀ',
+ 3960 => 'ླྀ',
+ 3961 => 'ླཱྀ',
+ 3969 => 'ཱྀ',
+ 3987 => 'ྒྷ',
+ 3997 => 'ྜྷ',
+ 4002 => 'ྡྷ',
+ 4007 => 'ྦྷ',
+ 4012 => 'ྫྷ',
+ 4025 => 'ྐྵ',
+ 4295 => 'ⴧ',
+ 4301 => 'ⴭ',
+ 4348 => 'ნ',
+ 5112 => 'Ᏸ',
+ 5113 => 'Ᏹ',
+ 5114 => 'Ᏺ',
+ 5115 => 'Ᏻ',
+ 5116 => 'Ᏼ',
+ 5117 => 'Ᏽ',
+ 7296 => 'в',
+ 7297 => 'д',
+ 7298 => 'о',
+ 7299 => 'с',
+ 7300 => 'т',
+ 7301 => 'т',
+ 7302 => 'ъ',
+ 7303 => 'ѣ',
+ 7304 => 'ꙋ',
+ 7312 => 'ა',
+ 7313 => 'ბ',
+ 7314 => 'გ',
+ 7315 => 'დ',
+ 7316 => 'ე',
+ 7317 => 'ვ',
+ 7318 => 'ზ',
+ 7319 => 'თ',
+ 7320 => 'ი',
+ 7321 => 'კ',
+ 7322 => 'ლ',
+ 7323 => 'მ',
+ 7324 => 'ნ',
+ 7325 => 'ო',
+ 7326 => 'პ',
+ 7327 => 'ჟ',
+ 7328 => 'რ',
+ 7329 => 'ს',
+ 7330 => 'ტ',
+ 7331 => 'უ',
+ 7332 => 'ფ',
+ 7333 => 'ქ',
+ 7334 => 'ღ',
+ 7335 => 'ყ',
+ 7336 => 'შ',
+ 7337 => 'ჩ',
+ 7338 => 'ც',
+ 7339 => 'ძ',
+ 7340 => 'წ',
+ 7341 => 'ჭ',
+ 7342 => 'ხ',
+ 7343 => 'ჯ',
+ 7344 => 'ჰ',
+ 7345 => 'ჱ',
+ 7346 => 'ჲ',
+ 7347 => 'ჳ',
+ 7348 => 'ჴ',
+ 7349 => 'ჵ',
+ 7350 => 'ჶ',
+ 7351 => 'ჷ',
+ 7352 => 'ჸ',
+ 7353 => 'ჹ',
+ 7354 => 'ჺ',
+ 7357 => 'ჽ',
+ 7358 => 'ჾ',
+ 7359 => 'ჿ',
+ 7468 => 'a',
+ 7469 => 'æ',
+ 7470 => 'b',
+ 7472 => 'd',
+ 7473 => 'e',
+ 7474 => 'ǝ',
+ 7475 => 'g',
+ 7476 => 'h',
+ 7477 => 'i',
+ 7478 => 'j',
+ 7479 => 'k',
+ 7480 => 'l',
+ 7481 => 'm',
+ 7482 => 'n',
+ 7484 => 'o',
+ 7485 => 'ȣ',
+ 7486 => 'p',
+ 7487 => 'r',
+ 7488 => 't',
+ 7489 => 'u',
+ 7490 => 'w',
+ 7491 => 'a',
+ 7492 => 'ɐ',
+ 7493 => 'ɑ',
+ 7494 => 'ᴂ',
+ 7495 => 'b',
+ 7496 => 'd',
+ 7497 => 'e',
+ 7498 => 'ə',
+ 7499 => 'ɛ',
+ 7500 => 'ɜ',
+ 7501 => 'g',
+ 7503 => 'k',
+ 7504 => 'm',
+ 7505 => 'ŋ',
+ 7506 => 'o',
+ 7507 => 'ɔ',
+ 7508 => 'ᴖ',
+ 7509 => 'ᴗ',
+ 7510 => 'p',
+ 7511 => 't',
+ 7512 => 'u',
+ 7513 => 'ᴝ',
+ 7514 => 'ɯ',
+ 7515 => 'v',
+ 7516 => 'ᴥ',
+ 7517 => 'β',
+ 7518 => 'γ',
+ 7519 => 'δ',
+ 7520 => 'φ',
+ 7521 => 'χ',
+ 7522 => 'i',
+ 7523 => 'r',
+ 7524 => 'u',
+ 7525 => 'v',
+ 7526 => 'β',
+ 7527 => 'γ',
+ 7528 => 'ρ',
+ 7529 => 'φ',
+ 7530 => 'χ',
+ 7544 => 'н',
+ 7579 => 'ɒ',
+ 7580 => 'c',
+ 7581 => 'ɕ',
+ 7582 => 'ð',
+ 7583 => 'ɜ',
+ 7584 => 'f',
+ 7585 => 'ɟ',
+ 7586 => 'ɡ',
+ 7587 => 'ɥ',
+ 7588 => 'ɨ',
+ 7589 => 'ɩ',
+ 7590 => 'ɪ',
+ 7591 => 'ᵻ',
+ 7592 => 'ʝ',
+ 7593 => 'ɭ',
+ 7594 => 'ᶅ',
+ 7595 => 'ʟ',
+ 7596 => 'ɱ',
+ 7597 => 'ɰ',
+ 7598 => 'ɲ',
+ 7599 => 'ɳ',
+ 7600 => 'ɴ',
+ 7601 => 'ɵ',
+ 7602 => 'ɸ',
+ 7603 => 'ʂ',
+ 7604 => 'ʃ',
+ 7605 => 'ƫ',
+ 7606 => 'ʉ',
+ 7607 => 'ʊ',
+ 7608 => 'ᴜ',
+ 7609 => 'ʋ',
+ 7610 => 'ʌ',
+ 7611 => 'z',
+ 7612 => 'ʐ',
+ 7613 => 'ʑ',
+ 7614 => 'ʒ',
+ 7615 => 'θ',
+ 7680 => 'ḁ',
+ 7682 => 'ḃ',
+ 7684 => 'ḅ',
+ 7686 => 'ḇ',
+ 7688 => 'ḉ',
+ 7690 => 'ḋ',
+ 7692 => 'ḍ',
+ 7694 => 'ḏ',
+ 7696 => 'ḑ',
+ 7698 => 'ḓ',
+ 7700 => 'ḕ',
+ 7702 => 'ḗ',
+ 7704 => 'ḙ',
+ 7706 => 'ḛ',
+ 7708 => 'ḝ',
+ 7710 => 'ḟ',
+ 7712 => 'ḡ',
+ 7714 => 'ḣ',
+ 7716 => 'ḥ',
+ 7718 => 'ḧ',
+ 7720 => 'ḩ',
+ 7722 => 'ḫ',
+ 7724 => 'ḭ',
+ 7726 => 'ḯ',
+ 7728 => 'ḱ',
+ 7730 => 'ḳ',
+ 7732 => 'ḵ',
+ 7734 => 'ḷ',
+ 7736 => 'ḹ',
+ 7738 => 'ḻ',
+ 7740 => 'ḽ',
+ 7742 => 'ḿ',
+ 7744 => 'ṁ',
+ 7746 => 'ṃ',
+ 7748 => 'ṅ',
+ 7750 => 'ṇ',
+ 7752 => 'ṉ',
+ 7754 => 'ṋ',
+ 7756 => 'ṍ',
+ 7758 => 'ṏ',
+ 7760 => 'ṑ',
+ 7762 => 'ṓ',
+ 7764 => 'ṕ',
+ 7766 => 'ṗ',
+ 7768 => 'ṙ',
+ 7770 => 'ṛ',
+ 7772 => 'ṝ',
+ 7774 => 'ṟ',
+ 7776 => 'ṡ',
+ 7778 => 'ṣ',
+ 7780 => 'ṥ',
+ 7782 => 'ṧ',
+ 7784 => 'ṩ',
+ 7786 => 'ṫ',
+ 7788 => 'ṭ',
+ 7790 => 'ṯ',
+ 7792 => 'ṱ',
+ 7794 => 'ṳ',
+ 7796 => 'ṵ',
+ 7798 => 'ṷ',
+ 7800 => 'ṹ',
+ 7802 => 'ṻ',
+ 7804 => 'ṽ',
+ 7806 => 'ṿ',
+ 7808 => 'ẁ',
+ 7810 => 'ẃ',
+ 7812 => 'ẅ',
+ 7814 => 'ẇ',
+ 7816 => 'ẉ',
+ 7818 => 'ẋ',
+ 7820 => 'ẍ',
+ 7822 => 'ẏ',
+ 7824 => 'ẑ',
+ 7826 => 'ẓ',
+ 7828 => 'ẕ',
+ 7834 => 'aʾ',
+ 7835 => 'ṡ',
+ 7838 => 'ss',
+ 7840 => 'ạ',
+ 7842 => 'ả',
+ 7844 => 'ấ',
+ 7846 => 'ầ',
+ 7848 => 'ẩ',
+ 7850 => 'ẫ',
+ 7852 => 'ậ',
+ 7854 => 'ắ',
+ 7856 => 'ằ',
+ 7858 => 'ẳ',
+ 7860 => 'ẵ',
+ 7862 => 'ặ',
+ 7864 => 'ẹ',
+ 7866 => 'ẻ',
+ 7868 => 'ẽ',
+ 7870 => 'ế',
+ 7872 => 'ề',
+ 7874 => 'ể',
+ 7876 => 'ễ',
+ 7878 => 'ệ',
+ 7880 => 'ỉ',
+ 7882 => 'ị',
+ 7884 => 'ọ',
+ 7886 => 'ỏ',
+ 7888 => 'ố',
+ 7890 => 'ồ',
+ 7892 => 'ổ',
+ 7894 => 'ỗ',
+ 7896 => 'ộ',
+ 7898 => 'ớ',
+ 7900 => 'ờ',
+ 7902 => 'ở',
+ 7904 => 'ỡ',
+ 7906 => 'ợ',
+ 7908 => 'ụ',
+ 7910 => 'ủ',
+ 7912 => 'ứ',
+ 7914 => 'ừ',
+ 7916 => 'ử',
+ 7918 => 'ữ',
+ 7920 => 'ự',
+ 7922 => 'ỳ',
+ 7924 => 'ỵ',
+ 7926 => 'ỷ',
+ 7928 => 'ỹ',
+ 7930 => 'ỻ',
+ 7932 => 'ỽ',
+ 7934 => 'ỿ',
+ 7944 => 'ἀ',
+ 7945 => 'ἁ',
+ 7946 => 'ἂ',
+ 7947 => 'ἃ',
+ 7948 => 'ἄ',
+ 7949 => 'ἅ',
+ 7950 => 'ἆ',
+ 7951 => 'ἇ',
+ 7960 => 'ἐ',
+ 7961 => 'ἑ',
+ 7962 => 'ἒ',
+ 7963 => 'ἓ',
+ 7964 => 'ἔ',
+ 7965 => 'ἕ',
+ 7976 => 'ἠ',
+ 7977 => 'ἡ',
+ 7978 => 'ἢ',
+ 7979 => 'ἣ',
+ 7980 => 'ἤ',
+ 7981 => 'ἥ',
+ 7982 => 'ἦ',
+ 7983 => 'ἧ',
+ 7992 => 'ἰ',
+ 7993 => 'ἱ',
+ 7994 => 'ἲ',
+ 7995 => 'ἳ',
+ 7996 => 'ἴ',
+ 7997 => 'ἵ',
+ 7998 => 'ἶ',
+ 7999 => 'ἷ',
+ 8008 => 'ὀ',
+ 8009 => 'ὁ',
+ 8010 => 'ὂ',
+ 8011 => 'ὃ',
+ 8012 => 'ὄ',
+ 8013 => 'ὅ',
+ 8025 => 'ὑ',
+ 8027 => 'ὓ',
+ 8029 => 'ὕ',
+ 8031 => 'ὗ',
+ 8040 => 'ὠ',
+ 8041 => 'ὡ',
+ 8042 => 'ὢ',
+ 8043 => 'ὣ',
+ 8044 => 'ὤ',
+ 8045 => 'ὥ',
+ 8046 => 'ὦ',
+ 8047 => 'ὧ',
+ 8049 => 'ά',
+ 8051 => 'έ',
+ 8053 => 'ή',
+ 8055 => 'ί',
+ 8057 => 'ό',
+ 8059 => 'ύ',
+ 8061 => 'ώ',
+ 8064 => 'ἀι',
+ 8065 => 'ἁι',
+ 8066 => 'ἂι',
+ 8067 => 'ἃι',
+ 8068 => 'ἄι',
+ 8069 => 'ἅι',
+ 8070 => 'ἆι',
+ 8071 => 'ἇι',
+ 8072 => 'ἀι',
+ 8073 => 'ἁι',
+ 8074 => 'ἂι',
+ 8075 => 'ἃι',
+ 8076 => 'ἄι',
+ 8077 => 'ἅι',
+ 8078 => 'ἆι',
+ 8079 => 'ἇι',
+ 8080 => 'ἠι',
+ 8081 => 'ἡι',
+ 8082 => 'ἢι',
+ 8083 => 'ἣι',
+ 8084 => 'ἤι',
+ 8085 => 'ἥι',
+ 8086 => 'ἦι',
+ 8087 => 'ἧι',
+ 8088 => 'ἠι',
+ 8089 => 'ἡι',
+ 8090 => 'ἢι',
+ 8091 => 'ἣι',
+ 8092 => 'ἤι',
+ 8093 => 'ἥι',
+ 8094 => 'ἦι',
+ 8095 => 'ἧι',
+ 8096 => 'ὠι',
+ 8097 => 'ὡι',
+ 8098 => 'ὢι',
+ 8099 => 'ὣι',
+ 8100 => 'ὤι',
+ 8101 => 'ὥι',
+ 8102 => 'ὦι',
+ 8103 => 'ὧι',
+ 8104 => 'ὠι',
+ 8105 => 'ὡι',
+ 8106 => 'ὢι',
+ 8107 => 'ὣι',
+ 8108 => 'ὤι',
+ 8109 => 'ὥι',
+ 8110 => 'ὦι',
+ 8111 => 'ὧι',
+ 8114 => 'ὰι',
+ 8115 => 'αι',
+ 8116 => 'άι',
+ 8119 => 'ᾶι',
+ 8120 => 'ᾰ',
+ 8121 => 'ᾱ',
+ 8122 => 'ὰ',
+ 8123 => 'ά',
+ 8124 => 'αι',
+ 8126 => 'ι',
+ 8130 => 'ὴι',
+ 8131 => 'ηι',
+ 8132 => 'ήι',
+ 8135 => 'ῆι',
+ 8136 => 'ὲ',
+ 8137 => 'έ',
+ 8138 => 'ὴ',
+ 8139 => 'ή',
+ 8140 => 'ηι',
+ 8147 => 'ΐ',
+ 8152 => 'ῐ',
+ 8153 => 'ῑ',
+ 8154 => 'ὶ',
+ 8155 => 'ί',
+ 8163 => 'ΰ',
+ 8168 => 'ῠ',
+ 8169 => 'ῡ',
+ 8170 => 'ὺ',
+ 8171 => 'ύ',
+ 8172 => 'ῥ',
+ 8178 => 'ὼι',
+ 8179 => 'ωι',
+ 8180 => 'ώι',
+ 8183 => 'ῶι',
+ 8184 => 'ὸ',
+ 8185 => 'ό',
+ 8186 => 'ὼ',
+ 8187 => 'ώ',
+ 8188 => 'ωι',
+ 8209 => '‐',
+ 8243 => '′′',
+ 8244 => '′′′',
+ 8246 => '‵‵',
+ 8247 => '‵‵‵',
+ 8279 => '′′′′',
+ 8304 => '0',
+ 8305 => 'i',
+ 8308 => '4',
+ 8309 => '5',
+ 8310 => '6',
+ 8311 => '7',
+ 8312 => '8',
+ 8313 => '9',
+ 8315 => '−',
+ 8319 => 'n',
+ 8320 => '0',
+ 8321 => '1',
+ 8322 => '2',
+ 8323 => '3',
+ 8324 => '4',
+ 8325 => '5',
+ 8326 => '6',
+ 8327 => '7',
+ 8328 => '8',
+ 8329 => '9',
+ 8331 => '−',
+ 8336 => 'a',
+ 8337 => 'e',
+ 8338 => 'o',
+ 8339 => 'x',
+ 8340 => 'ə',
+ 8341 => 'h',
+ 8342 => 'k',
+ 8343 => 'l',
+ 8344 => 'm',
+ 8345 => 'n',
+ 8346 => 'p',
+ 8347 => 's',
+ 8348 => 't',
+ 8360 => 'rs',
+ 8450 => 'c',
+ 8451 => '°c',
+ 8455 => 'ɛ',
+ 8457 => '°f',
+ 8458 => 'g',
+ 8459 => 'h',
+ 8460 => 'h',
+ 8461 => 'h',
+ 8462 => 'h',
+ 8463 => 'ħ',
+ 8464 => 'i',
+ 8465 => 'i',
+ 8466 => 'l',
+ 8467 => 'l',
+ 8469 => 'n',
+ 8470 => 'no',
+ 8473 => 'p',
+ 8474 => 'q',
+ 8475 => 'r',
+ 8476 => 'r',
+ 8477 => 'r',
+ 8480 => 'sm',
+ 8481 => 'tel',
+ 8482 => 'tm',
+ 8484 => 'z',
+ 8486 => 'ω',
+ 8488 => 'z',
+ 8490 => 'k',
+ 8491 => 'å',
+ 8492 => 'b',
+ 8493 => 'c',
+ 8495 => 'e',
+ 8496 => 'e',
+ 8497 => 'f',
+ 8499 => 'm',
+ 8500 => 'o',
+ 8501 => 'א',
+ 8502 => 'ב',
+ 8503 => 'ג',
+ 8504 => 'ד',
+ 8505 => 'i',
+ 8507 => 'fax',
+ 8508 => 'π',
+ 8509 => 'γ',
+ 8510 => 'γ',
+ 8511 => 'π',
+ 8512 => '∑',
+ 8517 => 'd',
+ 8518 => 'd',
+ 8519 => 'e',
+ 8520 => 'i',
+ 8521 => 'j',
+ 8528 => '1⁄7',
+ 8529 => '1⁄9',
+ 8530 => '1⁄10',
+ 8531 => '1⁄3',
+ 8532 => '2⁄3',
+ 8533 => '1⁄5',
+ 8534 => '2⁄5',
+ 8535 => '3⁄5',
+ 8536 => '4⁄5',
+ 8537 => '1⁄6',
+ 8538 => '5⁄6',
+ 8539 => '1⁄8',
+ 8540 => '3⁄8',
+ 8541 => '5⁄8',
+ 8542 => '7⁄8',
+ 8543 => '1⁄',
+ 8544 => 'i',
+ 8545 => 'ii',
+ 8546 => 'iii',
+ 8547 => 'iv',
+ 8548 => 'v',
+ 8549 => 'vi',
+ 8550 => 'vii',
+ 8551 => 'viii',
+ 8552 => 'ix',
+ 8553 => 'x',
+ 8554 => 'xi',
+ 8555 => 'xii',
+ 8556 => 'l',
+ 8557 => 'c',
+ 8558 => 'd',
+ 8559 => 'm',
+ 8560 => 'i',
+ 8561 => 'ii',
+ 8562 => 'iii',
+ 8563 => 'iv',
+ 8564 => 'v',
+ 8565 => 'vi',
+ 8566 => 'vii',
+ 8567 => 'viii',
+ 8568 => 'ix',
+ 8569 => 'x',
+ 8570 => 'xi',
+ 8571 => 'xii',
+ 8572 => 'l',
+ 8573 => 'c',
+ 8574 => 'd',
+ 8575 => 'm',
+ 8585 => '0⁄3',
+ 8748 => '∫∫',
+ 8749 => '∫∫∫',
+ 8751 => '∮∮',
+ 8752 => '∮∮∮',
+ 9001 => '〈',
+ 9002 => '〉',
+ 9312 => '1',
+ 9313 => '2',
+ 9314 => '3',
+ 9315 => '4',
+ 9316 => '5',
+ 9317 => '6',
+ 9318 => '7',
+ 9319 => '8',
+ 9320 => '9',
+ 9321 => '10',
+ 9322 => '11',
+ 9323 => '12',
+ 9324 => '13',
+ 9325 => '14',
+ 9326 => '15',
+ 9327 => '16',
+ 9328 => '17',
+ 9329 => '18',
+ 9330 => '19',
+ 9331 => '20',
+ 9398 => 'a',
+ 9399 => 'b',
+ 9400 => 'c',
+ 9401 => 'd',
+ 9402 => 'e',
+ 9403 => 'f',
+ 9404 => 'g',
+ 9405 => 'h',
+ 9406 => 'i',
+ 9407 => 'j',
+ 9408 => 'k',
+ 9409 => 'l',
+ 9410 => 'm',
+ 9411 => 'n',
+ 9412 => 'o',
+ 9413 => 'p',
+ 9414 => 'q',
+ 9415 => 'r',
+ 9416 => 's',
+ 9417 => 't',
+ 9418 => 'u',
+ 9419 => 'v',
+ 9420 => 'w',
+ 9421 => 'x',
+ 9422 => 'y',
+ 9423 => 'z',
+ 9424 => 'a',
+ 9425 => 'b',
+ 9426 => 'c',
+ 9427 => 'd',
+ 9428 => 'e',
+ 9429 => 'f',
+ 9430 => 'g',
+ 9431 => 'h',
+ 9432 => 'i',
+ 9433 => 'j',
+ 9434 => 'k',
+ 9435 => 'l',
+ 9436 => 'm',
+ 9437 => 'n',
+ 9438 => 'o',
+ 9439 => 'p',
+ 9440 => 'q',
+ 9441 => 'r',
+ 9442 => 's',
+ 9443 => 't',
+ 9444 => 'u',
+ 9445 => 'v',
+ 9446 => 'w',
+ 9447 => 'x',
+ 9448 => 'y',
+ 9449 => 'z',
+ 9450 => '0',
+ 10764 => '∫∫∫∫',
+ 10972 => '⫝̸',
+ 11264 => 'ⰰ',
+ 11265 => 'ⰱ',
+ 11266 => 'ⰲ',
+ 11267 => 'ⰳ',
+ 11268 => 'ⰴ',
+ 11269 => 'ⰵ',
+ 11270 => 'ⰶ',
+ 11271 => 'ⰷ',
+ 11272 => 'ⰸ',
+ 11273 => 'ⰹ',
+ 11274 => 'ⰺ',
+ 11275 => 'ⰻ',
+ 11276 => 'ⰼ',
+ 11277 => 'ⰽ',
+ 11278 => 'ⰾ',
+ 11279 => 'ⰿ',
+ 11280 => 'ⱀ',
+ 11281 => 'ⱁ',
+ 11282 => 'ⱂ',
+ 11283 => 'ⱃ',
+ 11284 => 'ⱄ',
+ 11285 => 'ⱅ',
+ 11286 => 'ⱆ',
+ 11287 => 'ⱇ',
+ 11288 => 'ⱈ',
+ 11289 => 'ⱉ',
+ 11290 => 'ⱊ',
+ 11291 => 'ⱋ',
+ 11292 => 'ⱌ',
+ 11293 => 'ⱍ',
+ 11294 => 'ⱎ',
+ 11295 => 'ⱏ',
+ 11296 => 'ⱐ',
+ 11297 => 'ⱑ',
+ 11298 => 'ⱒ',
+ 11299 => 'ⱓ',
+ 11300 => 'ⱔ',
+ 11301 => 'ⱕ',
+ 11302 => 'ⱖ',
+ 11303 => 'ⱗ',
+ 11304 => 'ⱘ',
+ 11305 => 'ⱙ',
+ 11306 => 'ⱚ',
+ 11307 => 'ⱛ',
+ 11308 => 'ⱜ',
+ 11309 => 'ⱝ',
+ 11310 => 'ⱞ',
+ 11360 => 'ⱡ',
+ 11362 => 'ɫ',
+ 11363 => 'ᵽ',
+ 11364 => 'ɽ',
+ 11367 => 'ⱨ',
+ 11369 => 'ⱪ',
+ 11371 => 'ⱬ',
+ 11373 => 'ɑ',
+ 11374 => 'ɱ',
+ 11375 => 'ɐ',
+ 11376 => 'ɒ',
+ 11378 => 'ⱳ',
+ 11381 => 'ⱶ',
+ 11388 => 'j',
+ 11389 => 'v',
+ 11390 => 'ȿ',
+ 11391 => 'ɀ',
+ 11392 => 'ⲁ',
+ 11394 => 'ⲃ',
+ 11396 => 'ⲅ',
+ 11398 => 'ⲇ',
+ 11400 => 'ⲉ',
+ 11402 => 'ⲋ',
+ 11404 => 'ⲍ',
+ 11406 => 'ⲏ',
+ 11408 => 'ⲑ',
+ 11410 => 'ⲓ',
+ 11412 => 'ⲕ',
+ 11414 => 'ⲗ',
+ 11416 => 'ⲙ',
+ 11418 => 'ⲛ',
+ 11420 => 'ⲝ',
+ 11422 => 'ⲟ',
+ 11424 => 'ⲡ',
+ 11426 => 'ⲣ',
+ 11428 => 'ⲥ',
+ 11430 => 'ⲧ',
+ 11432 => 'ⲩ',
+ 11434 => 'ⲫ',
+ 11436 => 'ⲭ',
+ 11438 => 'ⲯ',
+ 11440 => 'ⲱ',
+ 11442 => 'ⲳ',
+ 11444 => 'ⲵ',
+ 11446 => 'ⲷ',
+ 11448 => 'ⲹ',
+ 11450 => 'ⲻ',
+ 11452 => 'ⲽ',
+ 11454 => 'ⲿ',
+ 11456 => 'ⳁ',
+ 11458 => 'ⳃ',
+ 11460 => 'ⳅ',
+ 11462 => 'ⳇ',
+ 11464 => 'ⳉ',
+ 11466 => 'ⳋ',
+ 11468 => 'ⳍ',
+ 11470 => 'ⳏ',
+ 11472 => 'ⳑ',
+ 11474 => 'ⳓ',
+ 11476 => 'ⳕ',
+ 11478 => 'ⳗ',
+ 11480 => 'ⳙ',
+ 11482 => 'ⳛ',
+ 11484 => 'ⳝ',
+ 11486 => 'ⳟ',
+ 11488 => 'ⳡ',
+ 11490 => 'ⳣ',
+ 11499 => 'ⳬ',
+ 11501 => 'ⳮ',
+ 11506 => 'ⳳ',
+ 11631 => 'ⵡ',
+ 11935 => '母',
+ 12019 => '龟',
+ 12032 => '一',
+ 12033 => '丨',
+ 12034 => '丶',
+ 12035 => '丿',
+ 12036 => '乙',
+ 12037 => '亅',
+ 12038 => '二',
+ 12039 => '亠',
+ 12040 => '人',
+ 12041 => '儿',
+ 12042 => '入',
+ 12043 => '八',
+ 12044 => '冂',
+ 12045 => '冖',
+ 12046 => '冫',
+ 12047 => '几',
+ 12048 => '凵',
+ 12049 => '刀',
+ 12050 => '力',
+ 12051 => '勹',
+ 12052 => '匕',
+ 12053 => '匚',
+ 12054 => '匸',
+ 12055 => '十',
+ 12056 => '卜',
+ 12057 => '卩',
+ 12058 => '厂',
+ 12059 => '厶',
+ 12060 => '又',
+ 12061 => '口',
+ 12062 => '囗',
+ 12063 => '土',
+ 12064 => '士',
+ 12065 => '夂',
+ 12066 => '夊',
+ 12067 => '夕',
+ 12068 => '大',
+ 12069 => '女',
+ 12070 => '子',
+ 12071 => '宀',
+ 12072 => '寸',
+ 12073 => '小',
+ 12074 => '尢',
+ 12075 => '尸',
+ 12076 => '屮',
+ 12077 => '山',
+ 12078 => '巛',
+ 12079 => '工',
+ 12080 => '己',
+ 12081 => '巾',
+ 12082 => '干',
+ 12083 => '幺',
+ 12084 => '广',
+ 12085 => '廴',
+ 12086 => '廾',
+ 12087 => '弋',
+ 12088 => '弓',
+ 12089 => '彐',
+ 12090 => '彡',
+ 12091 => '彳',
+ 12092 => '心',
+ 12093 => '戈',
+ 12094 => '戶',
+ 12095 => '手',
+ 12096 => '支',
+ 12097 => '攴',
+ 12098 => '文',
+ 12099 => '斗',
+ 12100 => '斤',
+ 12101 => '方',
+ 12102 => '无',
+ 12103 => '日',
+ 12104 => '曰',
+ 12105 => '月',
+ 12106 => '木',
+ 12107 => '欠',
+ 12108 => '止',
+ 12109 => '歹',
+ 12110 => '殳',
+ 12111 => '毋',
+ 12112 => '比',
+ 12113 => '毛',
+ 12114 => '氏',
+ 12115 => '气',
+ 12116 => '水',
+ 12117 => '火',
+ 12118 => '爪',
+ 12119 => '父',
+ 12120 => '爻',
+ 12121 => '爿',
+ 12122 => '片',
+ 12123 => '牙',
+ 12124 => '牛',
+ 12125 => '犬',
+ 12126 => '玄',
+ 12127 => '玉',
+ 12128 => '瓜',
+ 12129 => '瓦',
+ 12130 => '甘',
+ 12131 => '生',
+ 12132 => '用',
+ 12133 => '田',
+ 12134 => '疋',
+ 12135 => '疒',
+ 12136 => '癶',
+ 12137 => '白',
+ 12138 => '皮',
+ 12139 => '皿',
+ 12140 => '目',
+ 12141 => '矛',
+ 12142 => '矢',
+ 12143 => '石',
+ 12144 => '示',
+ 12145 => '禸',
+ 12146 => '禾',
+ 12147 => '穴',
+ 12148 => '立',
+ 12149 => '竹',
+ 12150 => '米',
+ 12151 => '糸',
+ 12152 => '缶',
+ 12153 => '网',
+ 12154 => '羊',
+ 12155 => '羽',
+ 12156 => '老',
+ 12157 => '而',
+ 12158 => '耒',
+ 12159 => '耳',
+ 12160 => '聿',
+ 12161 => '肉',
+ 12162 => '臣',
+ 12163 => '自',
+ 12164 => '至',
+ 12165 => '臼',
+ 12166 => '舌',
+ 12167 => '舛',
+ 12168 => '舟',
+ 12169 => '艮',
+ 12170 => '色',
+ 12171 => '艸',
+ 12172 => '虍',
+ 12173 => '虫',
+ 12174 => '血',
+ 12175 => '行',
+ 12176 => '衣',
+ 12177 => '襾',
+ 12178 => '見',
+ 12179 => '角',
+ 12180 => '言',
+ 12181 => '谷',
+ 12182 => '豆',
+ 12183 => '豕',
+ 12184 => '豸',
+ 12185 => '貝',
+ 12186 => '赤',
+ 12187 => '走',
+ 12188 => '足',
+ 12189 => '身',
+ 12190 => '車',
+ 12191 => '辛',
+ 12192 => '辰',
+ 12193 => '辵',
+ 12194 => '邑',
+ 12195 => '酉',
+ 12196 => '釆',
+ 12197 => '里',
+ 12198 => '金',
+ 12199 => '長',
+ 12200 => '門',
+ 12201 => '阜',
+ 12202 => '隶',
+ 12203 => '隹',
+ 12204 => '雨',
+ 12205 => '靑',
+ 12206 => '非',
+ 12207 => '面',
+ 12208 => '革',
+ 12209 => '韋',
+ 12210 => '韭',
+ 12211 => '音',
+ 12212 => '頁',
+ 12213 => '風',
+ 12214 => '飛',
+ 12215 => '食',
+ 12216 => '首',
+ 12217 => '香',
+ 12218 => '馬',
+ 12219 => '骨',
+ 12220 => '高',
+ 12221 => '髟',
+ 12222 => '鬥',
+ 12223 => '鬯',
+ 12224 => '鬲',
+ 12225 => '鬼',
+ 12226 => '魚',
+ 12227 => '鳥',
+ 12228 => '鹵',
+ 12229 => '鹿',
+ 12230 => '麥',
+ 12231 => '麻',
+ 12232 => '黃',
+ 12233 => '黍',
+ 12234 => '黑',
+ 12235 => '黹',
+ 12236 => '黽',
+ 12237 => '鼎',
+ 12238 => '鼓',
+ 12239 => '鼠',
+ 12240 => '鼻',
+ 12241 => '齊',
+ 12242 => '齒',
+ 12243 => '龍',
+ 12244 => '龜',
+ 12245 => '龠',
+ 12290 => '.',
+ 12342 => '〒',
+ 12344 => '十',
+ 12345 => '卄',
+ 12346 => '卅',
+ 12447 => 'より',
+ 12543 => 'コト',
+ 12593 => 'ᄀ',
+ 12594 => 'ᄁ',
+ 12595 => 'ᆪ',
+ 12596 => 'ᄂ',
+ 12597 => 'ᆬ',
+ 12598 => 'ᆭ',
+ 12599 => 'ᄃ',
+ 12600 => 'ᄄ',
+ 12601 => 'ᄅ',
+ 12602 => 'ᆰ',
+ 12603 => 'ᆱ',
+ 12604 => 'ᆲ',
+ 12605 => 'ᆳ',
+ 12606 => 'ᆴ',
+ 12607 => 'ᆵ',
+ 12608 => 'ᄚ',
+ 12609 => 'ᄆ',
+ 12610 => 'ᄇ',
+ 12611 => 'ᄈ',
+ 12612 => 'ᄡ',
+ 12613 => 'ᄉ',
+ 12614 => 'ᄊ',
+ 12615 => 'ᄋ',
+ 12616 => 'ᄌ',
+ 12617 => 'ᄍ',
+ 12618 => 'ᄎ',
+ 12619 => 'ᄏ',
+ 12620 => 'ᄐ',
+ 12621 => 'ᄑ',
+ 12622 => 'ᄒ',
+ 12623 => 'ᅡ',
+ 12624 => 'ᅢ',
+ 12625 => 'ᅣ',
+ 12626 => 'ᅤ',
+ 12627 => 'ᅥ',
+ 12628 => 'ᅦ',
+ 12629 => 'ᅧ',
+ 12630 => 'ᅨ',
+ 12631 => 'ᅩ',
+ 12632 => 'ᅪ',
+ 12633 => 'ᅫ',
+ 12634 => 'ᅬ',
+ 12635 => 'ᅭ',
+ 12636 => 'ᅮ',
+ 12637 => 'ᅯ',
+ 12638 => 'ᅰ',
+ 12639 => 'ᅱ',
+ 12640 => 'ᅲ',
+ 12641 => 'ᅳ',
+ 12642 => 'ᅴ',
+ 12643 => 'ᅵ',
+ 12645 => 'ᄔ',
+ 12646 => 'ᄕ',
+ 12647 => 'ᇇ',
+ 12648 => 'ᇈ',
+ 12649 => 'ᇌ',
+ 12650 => 'ᇎ',
+ 12651 => 'ᇓ',
+ 12652 => 'ᇗ',
+ 12653 => 'ᇙ',
+ 12654 => 'ᄜ',
+ 12655 => 'ᇝ',
+ 12656 => 'ᇟ',
+ 12657 => 'ᄝ',
+ 12658 => 'ᄞ',
+ 12659 => 'ᄠ',
+ 12660 => 'ᄢ',
+ 12661 => 'ᄣ',
+ 12662 => 'ᄧ',
+ 12663 => 'ᄩ',
+ 12664 => 'ᄫ',
+ 12665 => 'ᄬ',
+ 12666 => 'ᄭ',
+ 12667 => 'ᄮ',
+ 12668 => 'ᄯ',
+ 12669 => 'ᄲ',
+ 12670 => 'ᄶ',
+ 12671 => 'ᅀ',
+ 12672 => 'ᅇ',
+ 12673 => 'ᅌ',
+ 12674 => 'ᇱ',
+ 12675 => 'ᇲ',
+ 12676 => 'ᅗ',
+ 12677 => 'ᅘ',
+ 12678 => 'ᅙ',
+ 12679 => 'ᆄ',
+ 12680 => 'ᆅ',
+ 12681 => 'ᆈ',
+ 12682 => 'ᆑ',
+ 12683 => 'ᆒ',
+ 12684 => 'ᆔ',
+ 12685 => 'ᆞ',
+ 12686 => 'ᆡ',
+ 12690 => '一',
+ 12691 => '二',
+ 12692 => '三',
+ 12693 => '四',
+ 12694 => '上',
+ 12695 => '中',
+ 12696 => '下',
+ 12697 => '甲',
+ 12698 => '乙',
+ 12699 => '丙',
+ 12700 => '丁',
+ 12701 => '天',
+ 12702 => '地',
+ 12703 => '人',
+ 12868 => '問',
+ 12869 => '幼',
+ 12870 => '文',
+ 12871 => '箏',
+ 12880 => 'pte',
+ 12881 => '21',
+ 12882 => '22',
+ 12883 => '23',
+ 12884 => '24',
+ 12885 => '25',
+ 12886 => '26',
+ 12887 => '27',
+ 12888 => '28',
+ 12889 => '29',
+ 12890 => '30',
+ 12891 => '31',
+ 12892 => '32',
+ 12893 => '33',
+ 12894 => '34',
+ 12895 => '35',
+ 12896 => 'ᄀ',
+ 12897 => 'ᄂ',
+ 12898 => 'ᄃ',
+ 12899 => 'ᄅ',
+ 12900 => 'ᄆ',
+ 12901 => 'ᄇ',
+ 12902 => 'ᄉ',
+ 12903 => 'ᄋ',
+ 12904 => 'ᄌ',
+ 12905 => 'ᄎ',
+ 12906 => 'ᄏ',
+ 12907 => 'ᄐ',
+ 12908 => 'ᄑ',
+ 12909 => 'ᄒ',
+ 12910 => '가',
+ 12911 => '나',
+ 12912 => '다',
+ 12913 => '라',
+ 12914 => '마',
+ 12915 => '바',
+ 12916 => '사',
+ 12917 => '아',
+ 12918 => '자',
+ 12919 => '차',
+ 12920 => '카',
+ 12921 => '타',
+ 12922 => '파',
+ 12923 => '하',
+ 12924 => '참고',
+ 12925 => '주의',
+ 12926 => '우',
+ 12928 => '一',
+ 12929 => '二',
+ 12930 => '三',
+ 12931 => '四',
+ 12932 => '五',
+ 12933 => '六',
+ 12934 => '七',
+ 12935 => '八',
+ 12936 => '九',
+ 12937 => '十',
+ 12938 => '月',
+ 12939 => '火',
+ 12940 => '水',
+ 12941 => '木',
+ 12942 => '金',
+ 12943 => '土',
+ 12944 => '日',
+ 12945 => '株',
+ 12946 => '有',
+ 12947 => '社',
+ 12948 => '名',
+ 12949 => '特',
+ 12950 => '財',
+ 12951 => '祝',
+ 12952 => '労',
+ 12953 => '秘',
+ 12954 => '男',
+ 12955 => '女',
+ 12956 => '適',
+ 12957 => '優',
+ 12958 => '印',
+ 12959 => '注',
+ 12960 => '項',
+ 12961 => '休',
+ 12962 => '写',
+ 12963 => '正',
+ 12964 => '上',
+ 12965 => '中',
+ 12966 => '下',
+ 12967 => '左',
+ 12968 => '右',
+ 12969 => '医',
+ 12970 => '宗',
+ 12971 => '学',
+ 12972 => '監',
+ 12973 => '企',
+ 12974 => '資',
+ 12975 => '協',
+ 12976 => '夜',
+ 12977 => '36',
+ 12978 => '37',
+ 12979 => '38',
+ 12980 => '39',
+ 12981 => '40',
+ 12982 => '41',
+ 12983 => '42',
+ 12984 => '43',
+ 12985 => '44',
+ 12986 => '45',
+ 12987 => '46',
+ 12988 => '47',
+ 12989 => '48',
+ 12990 => '49',
+ 12991 => '50',
+ 12992 => '1月',
+ 12993 => '2月',
+ 12994 => '3月',
+ 12995 => '4月',
+ 12996 => '5月',
+ 12997 => '6月',
+ 12998 => '7月',
+ 12999 => '8月',
+ 13000 => '9月',
+ 13001 => '10月',
+ 13002 => '11月',
+ 13003 => '12月',
+ 13004 => 'hg',
+ 13005 => 'erg',
+ 13006 => 'ev',
+ 13007 => 'ltd',
+ 13008 => 'ア',
+ 13009 => 'イ',
+ 13010 => 'ウ',
+ 13011 => 'エ',
+ 13012 => 'オ',
+ 13013 => 'カ',
+ 13014 => 'キ',
+ 13015 => 'ク',
+ 13016 => 'ケ',
+ 13017 => 'コ',
+ 13018 => 'サ',
+ 13019 => 'シ',
+ 13020 => 'ス',
+ 13021 => 'セ',
+ 13022 => 'ソ',
+ 13023 => 'タ',
+ 13024 => 'チ',
+ 13025 => 'ツ',
+ 13026 => 'テ',
+ 13027 => 'ト',
+ 13028 => 'ナ',
+ 13029 => 'ニ',
+ 13030 => 'ヌ',
+ 13031 => 'ネ',
+ 13032 => 'ノ',
+ 13033 => 'ハ',
+ 13034 => 'ヒ',
+ 13035 => 'フ',
+ 13036 => 'ヘ',
+ 13037 => 'ホ',
+ 13038 => 'マ',
+ 13039 => 'ミ',
+ 13040 => 'ム',
+ 13041 => 'メ',
+ 13042 => 'モ',
+ 13043 => 'ヤ',
+ 13044 => 'ユ',
+ 13045 => 'ヨ',
+ 13046 => 'ラ',
+ 13047 => 'リ',
+ 13048 => 'ル',
+ 13049 => 'レ',
+ 13050 => 'ロ',
+ 13051 => 'ワ',
+ 13052 => 'ヰ',
+ 13053 => 'ヱ',
+ 13054 => 'ヲ',
+ 13055 => '令和',
+ 13056 => 'アパート',
+ 13057 => 'アルファ',
+ 13058 => 'アンペア',
+ 13059 => 'アール',
+ 13060 => 'イニング',
+ 13061 => 'インチ',
+ 13062 => 'ウォン',
+ 13063 => 'エスクード',
+ 13064 => 'エーカー',
+ 13065 => 'オンス',
+ 13066 => 'オーム',
+ 13067 => 'カイリ',
+ 13068 => 'カラット',
+ 13069 => 'カロリー',
+ 13070 => 'ガロン',
+ 13071 => 'ガンマ',
+ 13072 => 'ギガ',
+ 13073 => 'ギニー',
+ 13074 => 'キュリー',
+ 13075 => 'ギルダー',
+ 13076 => 'キロ',
+ 13077 => 'キログラム',
+ 13078 => 'キロメートル',
+ 13079 => 'キロワット',
+ 13080 => 'グラム',
+ 13081 => 'グラムトン',
+ 13082 => 'クルゼイロ',
+ 13083 => 'クローネ',
+ 13084 => 'ケース',
+ 13085 => 'コルナ',
+ 13086 => 'コーポ',
+ 13087 => 'サイクル',
+ 13088 => 'サンチーム',
+ 13089 => 'シリング',
+ 13090 => 'センチ',
+ 13091 => 'セント',
+ 13092 => 'ダース',
+ 13093 => 'デシ',
+ 13094 => 'ドル',
+ 13095 => 'トン',
+ 13096 => 'ナノ',
+ 13097 => 'ノット',
+ 13098 => 'ハイツ',
+ 13099 => 'パーセント',
+ 13100 => 'パーツ',
+ 13101 => 'バーレル',
+ 13102 => 'ピアストル',
+ 13103 => 'ピクル',
+ 13104 => 'ピコ',
+ 13105 => 'ビル',
+ 13106 => 'ファラッド',
+ 13107 => 'フィート',
+ 13108 => 'ブッシェル',
+ 13109 => 'フラン',
+ 13110 => 'ヘクタール',
+ 13111 => 'ペソ',
+ 13112 => 'ペニヒ',
+ 13113 => 'ヘルツ',
+ 13114 => 'ペンス',
+ 13115 => 'ページ',
+ 13116 => 'ベータ',
+ 13117 => 'ポイント',
+ 13118 => 'ボルト',
+ 13119 => 'ホン',
+ 13120 => 'ポンド',
+ 13121 => 'ホール',
+ 13122 => 'ホーン',
+ 13123 => 'マイクロ',
+ 13124 => 'マイル',
+ 13125 => 'マッハ',
+ 13126 => 'マルク',
+ 13127 => 'マンション',
+ 13128 => 'ミクロン',
+ 13129 => 'ミリ',
+ 13130 => 'ミリバール',
+ 13131 => 'メガ',
+ 13132 => 'メガトン',
+ 13133 => 'メートル',
+ 13134 => 'ヤード',
+ 13135 => 'ヤール',
+ 13136 => 'ユアン',
+ 13137 => 'リットル',
+ 13138 => 'リラ',
+ 13139 => 'ルピー',
+ 13140 => 'ルーブル',
+ 13141 => 'レム',
+ 13142 => 'レントゲン',
+ 13143 => 'ワット',
+ 13144 => '0点',
+ 13145 => '1点',
+ 13146 => '2点',
+ 13147 => '3点',
+ 13148 => '4点',
+ 13149 => '5点',
+ 13150 => '6点',
+ 13151 => '7点',
+ 13152 => '8点',
+ 13153 => '9点',
+ 13154 => '10点',
+ 13155 => '11点',
+ 13156 => '12点',
+ 13157 => '13点',
+ 13158 => '14点',
+ 13159 => '15点',
+ 13160 => '16点',
+ 13161 => '17点',
+ 13162 => '18点',
+ 13163 => '19点',
+ 13164 => '20点',
+ 13165 => '21点',
+ 13166 => '22点',
+ 13167 => '23点',
+ 13168 => '24点',
+ 13169 => 'hpa',
+ 13170 => 'da',
+ 13171 => 'au',
+ 13172 => 'bar',
+ 13173 => 'ov',
+ 13174 => 'pc',
+ 13175 => 'dm',
+ 13176 => 'dm2',
+ 13177 => 'dm3',
+ 13178 => 'iu',
+ 13179 => '平成',
+ 13180 => '昭和',
+ 13181 => '大正',
+ 13182 => '明治',
+ 13183 => '株式会社',
+ 13184 => 'pa',
+ 13185 => 'na',
+ 13186 => 'μa',
+ 13187 => 'ma',
+ 13188 => 'ka',
+ 13189 => 'kb',
+ 13190 => 'mb',
+ 13191 => 'gb',
+ 13192 => 'cal',
+ 13193 => 'kcal',
+ 13194 => 'pf',
+ 13195 => 'nf',
+ 13196 => 'μf',
+ 13197 => 'μg',
+ 13198 => 'mg',
+ 13199 => 'kg',
+ 13200 => 'hz',
+ 13201 => 'khz',
+ 13202 => 'mhz',
+ 13203 => 'ghz',
+ 13204 => 'thz',
+ 13205 => 'μl',
+ 13206 => 'ml',
+ 13207 => 'dl',
+ 13208 => 'kl',
+ 13209 => 'fm',
+ 13210 => 'nm',
+ 13211 => 'μm',
+ 13212 => 'mm',
+ 13213 => 'cm',
+ 13214 => 'km',
+ 13215 => 'mm2',
+ 13216 => 'cm2',
+ 13217 => 'm2',
+ 13218 => 'km2',
+ 13219 => 'mm3',
+ 13220 => 'cm3',
+ 13221 => 'm3',
+ 13222 => 'km3',
+ 13223 => 'm∕s',
+ 13224 => 'm∕s2',
+ 13225 => 'pa',
+ 13226 => 'kpa',
+ 13227 => 'mpa',
+ 13228 => 'gpa',
+ 13229 => 'rad',
+ 13230 => 'rad∕s',
+ 13231 => 'rad∕s2',
+ 13232 => 'ps',
+ 13233 => 'ns',
+ 13234 => 'μs',
+ 13235 => 'ms',
+ 13236 => 'pv',
+ 13237 => 'nv',
+ 13238 => 'μv',
+ 13239 => 'mv',
+ 13240 => 'kv',
+ 13241 => 'mv',
+ 13242 => 'pw',
+ 13243 => 'nw',
+ 13244 => 'μw',
+ 13245 => 'mw',
+ 13246 => 'kw',
+ 13247 => 'mw',
+ 13248 => 'kω',
+ 13249 => 'mω',
+ 13251 => 'bq',
+ 13252 => 'cc',
+ 13253 => 'cd',
+ 13254 => 'c∕kg',
+ 13256 => 'db',
+ 13257 => 'gy',
+ 13258 => 'ha',
+ 13259 => 'hp',
+ 13260 => 'in',
+ 13261 => 'kk',
+ 13262 => 'km',
+ 13263 => 'kt',
+ 13264 => 'lm',
+ 13265 => 'ln',
+ 13266 => 'log',
+ 13267 => 'lx',
+ 13268 => 'mb',
+ 13269 => 'mil',
+ 13270 => 'mol',
+ 13271 => 'ph',
+ 13273 => 'ppm',
+ 13274 => 'pr',
+ 13275 => 'sr',
+ 13276 => 'sv',
+ 13277 => 'wb',
+ 13278 => 'v∕m',
+ 13279 => 'a∕m',
+ 13280 => '1日',
+ 13281 => '2日',
+ 13282 => '3日',
+ 13283 => '4日',
+ 13284 => '5日',
+ 13285 => '6日',
+ 13286 => '7日',
+ 13287 => '8日',
+ 13288 => '9日',
+ 13289 => '10日',
+ 13290 => '11日',
+ 13291 => '12日',
+ 13292 => '13日',
+ 13293 => '14日',
+ 13294 => '15日',
+ 13295 => '16日',
+ 13296 => '17日',
+ 13297 => '18日',
+ 13298 => '19日',
+ 13299 => '20日',
+ 13300 => '21日',
+ 13301 => '22日',
+ 13302 => '23日',
+ 13303 => '24日',
+ 13304 => '25日',
+ 13305 => '26日',
+ 13306 => '27日',
+ 13307 => '28日',
+ 13308 => '29日',
+ 13309 => '30日',
+ 13310 => '31日',
+ 13311 => 'gal',
+ 42560 => 'ꙁ',
+ 42562 => 'ꙃ',
+ 42564 => 'ꙅ',
+ 42566 => 'ꙇ',
+ 42568 => 'ꙉ',
+ 42570 => 'ꙋ',
+ 42572 => 'ꙍ',
+ 42574 => 'ꙏ',
+ 42576 => 'ꙑ',
+ 42578 => 'ꙓ',
+ 42580 => 'ꙕ',
+ 42582 => 'ꙗ',
+ 42584 => 'ꙙ',
+ 42586 => 'ꙛ',
+ 42588 => 'ꙝ',
+ 42590 => 'ꙟ',
+ 42592 => 'ꙡ',
+ 42594 => 'ꙣ',
+ 42596 => 'ꙥ',
+ 42598 => 'ꙧ',
+ 42600 => 'ꙩ',
+ 42602 => 'ꙫ',
+ 42604 => 'ꙭ',
+ 42624 => 'ꚁ',
+ 42626 => 'ꚃ',
+ 42628 => 'ꚅ',
+ 42630 => 'ꚇ',
+ 42632 => 'ꚉ',
+ 42634 => 'ꚋ',
+ 42636 => 'ꚍ',
+ 42638 => 'ꚏ',
+ 42640 => 'ꚑ',
+ 42642 => 'ꚓ',
+ 42644 => 'ꚕ',
+ 42646 => 'ꚗ',
+ 42648 => 'ꚙ',
+ 42650 => 'ꚛ',
+ 42652 => 'ъ',
+ 42653 => 'ь',
+ 42786 => 'ꜣ',
+ 42788 => 'ꜥ',
+ 42790 => 'ꜧ',
+ 42792 => 'ꜩ',
+ 42794 => 'ꜫ',
+ 42796 => 'ꜭ',
+ 42798 => 'ꜯ',
+ 42802 => 'ꜳ',
+ 42804 => 'ꜵ',
+ 42806 => 'ꜷ',
+ 42808 => 'ꜹ',
+ 42810 => 'ꜻ',
+ 42812 => 'ꜽ',
+ 42814 => 'ꜿ',
+ 42816 => 'ꝁ',
+ 42818 => 'ꝃ',
+ 42820 => 'ꝅ',
+ 42822 => 'ꝇ',
+ 42824 => 'ꝉ',
+ 42826 => 'ꝋ',
+ 42828 => 'ꝍ',
+ 42830 => 'ꝏ',
+ 42832 => 'ꝑ',
+ 42834 => 'ꝓ',
+ 42836 => 'ꝕ',
+ 42838 => 'ꝗ',
+ 42840 => 'ꝙ',
+ 42842 => 'ꝛ',
+ 42844 => 'ꝝ',
+ 42846 => 'ꝟ',
+ 42848 => 'ꝡ',
+ 42850 => 'ꝣ',
+ 42852 => 'ꝥ',
+ 42854 => 'ꝧ',
+ 42856 => 'ꝩ',
+ 42858 => 'ꝫ',
+ 42860 => 'ꝭ',
+ 42862 => 'ꝯ',
+ 42864 => 'ꝯ',
+ 42873 => 'ꝺ',
+ 42875 => 'ꝼ',
+ 42877 => 'ᵹ',
+ 42878 => 'ꝿ',
+ 42880 => 'ꞁ',
+ 42882 => 'ꞃ',
+ 42884 => 'ꞅ',
+ 42886 => 'ꞇ',
+ 42891 => 'ꞌ',
+ 42893 => 'ɥ',
+ 42896 => 'ꞑ',
+ 42898 => 'ꞓ',
+ 42902 => 'ꞗ',
+ 42904 => 'ꞙ',
+ 42906 => 'ꞛ',
+ 42908 => 'ꞝ',
+ 42910 => 'ꞟ',
+ 42912 => 'ꞡ',
+ 42914 => 'ꞣ',
+ 42916 => 'ꞥ',
+ 42918 => 'ꞧ',
+ 42920 => 'ꞩ',
+ 42922 => 'ɦ',
+ 42923 => 'ɜ',
+ 42924 => 'ɡ',
+ 42925 => 'ɬ',
+ 42926 => 'ɪ',
+ 42928 => 'ʞ',
+ 42929 => 'ʇ',
+ 42930 => 'ʝ',
+ 42931 => 'ꭓ',
+ 42932 => 'ꞵ',
+ 42934 => 'ꞷ',
+ 42936 => 'ꞹ',
+ 42938 => 'ꞻ',
+ 42940 => 'ꞽ',
+ 42942 => 'ꞿ',
+ 42946 => 'ꟃ',
+ 42948 => 'ꞔ',
+ 42949 => 'ʂ',
+ 42950 => 'ᶎ',
+ 42951 => 'ꟈ',
+ 42953 => 'ꟊ',
+ 42997 => 'ꟶ',
+ 43000 => 'ħ',
+ 43001 => 'œ',
+ 43868 => 'ꜧ',
+ 43869 => 'ꬷ',
+ 43870 => 'ɫ',
+ 43871 => 'ꭒ',
+ 43881 => 'ʍ',
+ 43888 => 'Ꭰ',
+ 43889 => 'Ꭱ',
+ 43890 => 'Ꭲ',
+ 43891 => 'Ꭳ',
+ 43892 => 'Ꭴ',
+ 43893 => 'Ꭵ',
+ 43894 => 'Ꭶ',
+ 43895 => 'Ꭷ',
+ 43896 => 'Ꭸ',
+ 43897 => 'Ꭹ',
+ 43898 => 'Ꭺ',
+ 43899 => 'Ꭻ',
+ 43900 => 'Ꭼ',
+ 43901 => 'Ꭽ',
+ 43902 => 'Ꭾ',
+ 43903 => 'Ꭿ',
+ 43904 => 'Ꮀ',
+ 43905 => 'Ꮁ',
+ 43906 => 'Ꮂ',
+ 43907 => 'Ꮃ',
+ 43908 => 'Ꮄ',
+ 43909 => 'Ꮅ',
+ 43910 => 'Ꮆ',
+ 43911 => 'Ꮇ',
+ 43912 => 'Ꮈ',
+ 43913 => 'Ꮉ',
+ 43914 => 'Ꮊ',
+ 43915 => 'Ꮋ',
+ 43916 => 'Ꮌ',
+ 43917 => 'Ꮍ',
+ 43918 => 'Ꮎ',
+ 43919 => 'Ꮏ',
+ 43920 => 'Ꮐ',
+ 43921 => 'Ꮑ',
+ 43922 => 'Ꮒ',
+ 43923 => 'Ꮓ',
+ 43924 => 'Ꮔ',
+ 43925 => 'Ꮕ',
+ 43926 => 'Ꮖ',
+ 43927 => 'Ꮗ',
+ 43928 => 'Ꮘ',
+ 43929 => 'Ꮙ',
+ 43930 => 'Ꮚ',
+ 43931 => 'Ꮛ',
+ 43932 => 'Ꮜ',
+ 43933 => 'Ꮝ',
+ 43934 => 'Ꮞ',
+ 43935 => 'Ꮟ',
+ 43936 => 'Ꮠ',
+ 43937 => 'Ꮡ',
+ 43938 => 'Ꮢ',
+ 43939 => 'Ꮣ',
+ 43940 => 'Ꮤ',
+ 43941 => 'Ꮥ',
+ 43942 => 'Ꮦ',
+ 43943 => 'Ꮧ',
+ 43944 => 'Ꮨ',
+ 43945 => 'Ꮩ',
+ 43946 => 'Ꮪ',
+ 43947 => 'Ꮫ',
+ 43948 => 'Ꮬ',
+ 43949 => 'Ꮭ',
+ 43950 => 'Ꮮ',
+ 43951 => 'Ꮯ',
+ 43952 => 'Ꮰ',
+ 43953 => 'Ꮱ',
+ 43954 => 'Ꮲ',
+ 43955 => 'Ꮳ',
+ 43956 => 'Ꮴ',
+ 43957 => 'Ꮵ',
+ 43958 => 'Ꮶ',
+ 43959 => 'Ꮷ',
+ 43960 => 'Ꮸ',
+ 43961 => 'Ꮹ',
+ 43962 => 'Ꮺ',
+ 43963 => 'Ꮻ',
+ 43964 => 'Ꮼ',
+ 43965 => 'Ꮽ',
+ 43966 => 'Ꮾ',
+ 43967 => 'Ꮿ',
+ 63744 => '豈',
+ 63745 => '更',
+ 63746 => '車',
+ 63747 => '賈',
+ 63748 => '滑',
+ 63749 => '串',
+ 63750 => '句',
+ 63751 => '龜',
+ 63752 => '龜',
+ 63753 => '契',
+ 63754 => '金',
+ 63755 => '喇',
+ 63756 => '奈',
+ 63757 => '懶',
+ 63758 => '癩',
+ 63759 => '羅',
+ 63760 => '蘿',
+ 63761 => '螺',
+ 63762 => '裸',
+ 63763 => '邏',
+ 63764 => '樂',
+ 63765 => '洛',
+ 63766 => '烙',
+ 63767 => '珞',
+ 63768 => '落',
+ 63769 => '酪',
+ 63770 => '駱',
+ 63771 => '亂',
+ 63772 => '卵',
+ 63773 => '欄',
+ 63774 => '爛',
+ 63775 => '蘭',
+ 63776 => '鸞',
+ 63777 => '嵐',
+ 63778 => '濫',
+ 63779 => '藍',
+ 63780 => '襤',
+ 63781 => '拉',
+ 63782 => '臘',
+ 63783 => '蠟',
+ 63784 => '廊',
+ 63785 => '朗',
+ 63786 => '浪',
+ 63787 => '狼',
+ 63788 => '郎',
+ 63789 => '來',
+ 63790 => '冷',
+ 63791 => '勞',
+ 63792 => '擄',
+ 63793 => '櫓',
+ 63794 => '爐',
+ 63795 => '盧',
+ 63796 => '老',
+ 63797 => '蘆',
+ 63798 => '虜',
+ 63799 => '路',
+ 63800 => '露',
+ 63801 => '魯',
+ 63802 => '鷺',
+ 63803 => '碌',
+ 63804 => '祿',
+ 63805 => '綠',
+ 63806 => '菉',
+ 63807 => '錄',
+ 63808 => '鹿',
+ 63809 => '論',
+ 63810 => '壟',
+ 63811 => '弄',
+ 63812 => '籠',
+ 63813 => '聾',
+ 63814 => '牢',
+ 63815 => '磊',
+ 63816 => '賂',
+ 63817 => '雷',
+ 63818 => '壘',
+ 63819 => '屢',
+ 63820 => '樓',
+ 63821 => '淚',
+ 63822 => '漏',
+ 63823 => '累',
+ 63824 => '縷',
+ 63825 => '陋',
+ 63826 => '勒',
+ 63827 => '肋',
+ 63828 => '凜',
+ 63829 => '凌',
+ 63830 => '稜',
+ 63831 => '綾',
+ 63832 => '菱',
+ 63833 => '陵',
+ 63834 => '讀',
+ 63835 => '拏',
+ 63836 => '樂',
+ 63837 => '諾',
+ 63838 => '丹',
+ 63839 => '寧',
+ 63840 => '怒',
+ 63841 => '率',
+ 63842 => '異',
+ 63843 => '北',
+ 63844 => '磻',
+ 63845 => '便',
+ 63846 => '復',
+ 63847 => '不',
+ 63848 => '泌',
+ 63849 => '數',
+ 63850 => '索',
+ 63851 => '參',
+ 63852 => '塞',
+ 63853 => '省',
+ 63854 => '葉',
+ 63855 => '說',
+ 63856 => '殺',
+ 63857 => '辰',
+ 63858 => '沈',
+ 63859 => '拾',
+ 63860 => '若',
+ 63861 => '掠',
+ 63862 => '略',
+ 63863 => '亮',
+ 63864 => '兩',
+ 63865 => '凉',
+ 63866 => '梁',
+ 63867 => '糧',
+ 63868 => '良',
+ 63869 => '諒',
+ 63870 => '量',
+ 63871 => '勵',
+ 63872 => '呂',
+ 63873 => '女',
+ 63874 => '廬',
+ 63875 => '旅',
+ 63876 => '濾',
+ 63877 => '礪',
+ 63878 => '閭',
+ 63879 => '驪',
+ 63880 => '麗',
+ 63881 => '黎',
+ 63882 => '力',
+ 63883 => '曆',
+ 63884 => '歷',
+ 63885 => '轢',
+ 63886 => '年',
+ 63887 => '憐',
+ 63888 => '戀',
+ 63889 => '撚',
+ 63890 => '漣',
+ 63891 => '煉',
+ 63892 => '璉',
+ 63893 => '秊',
+ 63894 => '練',
+ 63895 => '聯',
+ 63896 => '輦',
+ 63897 => '蓮',
+ 63898 => '連',
+ 63899 => '鍊',
+ 63900 => '列',
+ 63901 => '劣',
+ 63902 => '咽',
+ 63903 => '烈',
+ 63904 => '裂',
+ 63905 => '說',
+ 63906 => '廉',
+ 63907 => '念',
+ 63908 => '捻',
+ 63909 => '殮',
+ 63910 => '簾',
+ 63911 => '獵',
+ 63912 => '令',
+ 63913 => '囹',
+ 63914 => '寧',
+ 63915 => '嶺',
+ 63916 => '怜',
+ 63917 => '玲',
+ 63918 => '瑩',
+ 63919 => '羚',
+ 63920 => '聆',
+ 63921 => '鈴',
+ 63922 => '零',
+ 63923 => '靈',
+ 63924 => '領',
+ 63925 => '例',
+ 63926 => '禮',
+ 63927 => '醴',
+ 63928 => '隸',
+ 63929 => '惡',
+ 63930 => '了',
+ 63931 => '僚',
+ 63932 => '寮',
+ 63933 => '尿',
+ 63934 => '料',
+ 63935 => '樂',
+ 63936 => '燎',
+ 63937 => '療',
+ 63938 => '蓼',
+ 63939 => '遼',
+ 63940 => '龍',
+ 63941 => '暈',
+ 63942 => '阮',
+ 63943 => '劉',
+ 63944 => '杻',
+ 63945 => '柳',
+ 63946 => '流',
+ 63947 => '溜',
+ 63948 => '琉',
+ 63949 => '留',
+ 63950 => '硫',
+ 63951 => '紐',
+ 63952 => '類',
+ 63953 => '六',
+ 63954 => '戮',
+ 63955 => '陸',
+ 63956 => '倫',
+ 63957 => '崙',
+ 63958 => '淪',
+ 63959 => '輪',
+ 63960 => '律',
+ 63961 => '慄',
+ 63962 => '栗',
+ 63963 => '率',
+ 63964 => '隆',
+ 63965 => '利',
+ 63966 => '吏',
+ 63967 => '履',
+ 63968 => '易',
+ 63969 => '李',
+ 63970 => '梨',
+ 63971 => '泥',
+ 63972 => '理',
+ 63973 => '痢',
+ 63974 => '罹',
+ 63975 => '裏',
+ 63976 => '裡',
+ 63977 => '里',
+ 63978 => '離',
+ 63979 => '匿',
+ 63980 => '溺',
+ 63981 => '吝',
+ 63982 => '燐',
+ 63983 => '璘',
+ 63984 => '藺',
+ 63985 => '隣',
+ 63986 => '鱗',
+ 63987 => '麟',
+ 63988 => '林',
+ 63989 => '淋',
+ 63990 => '臨',
+ 63991 => '立',
+ 63992 => '笠',
+ 63993 => '粒',
+ 63994 => '狀',
+ 63995 => '炙',
+ 63996 => '識',
+ 63997 => '什',
+ 63998 => '茶',
+ 63999 => '刺',
+ 64000 => '切',
+ 64001 => '度',
+ 64002 => '拓',
+ 64003 => '糖',
+ 64004 => '宅',
+ 64005 => '洞',
+ 64006 => '暴',
+ 64007 => '輻',
+ 64008 => '行',
+ 64009 => '降',
+ 64010 => '見',
+ 64011 => '廓',
+ 64012 => '兀',
+ 64013 => '嗀',
+ 64016 => '塚',
+ 64018 => '晴',
+ 64021 => '凞',
+ 64022 => '猪',
+ 64023 => '益',
+ 64024 => '礼',
+ 64025 => '神',
+ 64026 => '祥',
+ 64027 => '福',
+ 64028 => '靖',
+ 64029 => '精',
+ 64030 => '羽',
+ 64032 => '蘒',
+ 64034 => '諸',
+ 64037 => '逸',
+ 64038 => '都',
+ 64042 => '飯',
+ 64043 => '飼',
+ 64044 => '館',
+ 64045 => '鶴',
+ 64046 => '郞',
+ 64047 => '隷',
+ 64048 => '侮',
+ 64049 => '僧',
+ 64050 => '免',
+ 64051 => '勉',
+ 64052 => '勤',
+ 64053 => '卑',
+ 64054 => '喝',
+ 64055 => '嘆',
+ 64056 => '器',
+ 64057 => '塀',
+ 64058 => '墨',
+ 64059 => '層',
+ 64060 => '屮',
+ 64061 => '悔',
+ 64062 => '慨',
+ 64063 => '憎',
+ 64064 => '懲',
+ 64065 => '敏',
+ 64066 => '既',
+ 64067 => '暑',
+ 64068 => '梅',
+ 64069 => '海',
+ 64070 => '渚',
+ 64071 => '漢',
+ 64072 => '煮',
+ 64073 => '爫',
+ 64074 => '琢',
+ 64075 => '碑',
+ 64076 => '社',
+ 64077 => '祉',
+ 64078 => '祈',
+ 64079 => '祐',
+ 64080 => '祖',
+ 64081 => '祝',
+ 64082 => '禍',
+ 64083 => '禎',
+ 64084 => '穀',
+ 64085 => '突',
+ 64086 => '節',
+ 64087 => '練',
+ 64088 => '縉',
+ 64089 => '繁',
+ 64090 => '署',
+ 64091 => '者',
+ 64092 => '臭',
+ 64093 => '艹',
+ 64094 => '艹',
+ 64095 => '著',
+ 64096 => '褐',
+ 64097 => '視',
+ 64098 => '謁',
+ 64099 => '謹',
+ 64100 => '賓',
+ 64101 => '贈',
+ 64102 => '辶',
+ 64103 => '逸',
+ 64104 => '難',
+ 64105 => '響',
+ 64106 => '頻',
+ 64107 => '恵',
+ 64108 => '𤋮',
+ 64109 => '舘',
+ 64112 => '並',
+ 64113 => '况',
+ 64114 => '全',
+ 64115 => '侀',
+ 64116 => '充',
+ 64117 => '冀',
+ 64118 => '勇',
+ 64119 => '勺',
+ 64120 => '喝',
+ 64121 => '啕',
+ 64122 => '喙',
+ 64123 => '嗢',
+ 64124 => '塚',
+ 64125 => '墳',
+ 64126 => '奄',
+ 64127 => '奔',
+ 64128 => '婢',
+ 64129 => '嬨',
+ 64130 => '廒',
+ 64131 => '廙',
+ 64132 => '彩',
+ 64133 => '徭',
+ 64134 => '惘',
+ 64135 => '慎',
+ 64136 => '愈',
+ 64137 => '憎',
+ 64138 => '慠',
+ 64139 => '懲',
+ 64140 => '戴',
+ 64141 => '揄',
+ 64142 => '搜',
+ 64143 => '摒',
+ 64144 => '敖',
+ 64145 => '晴',
+ 64146 => '朗',
+ 64147 => '望',
+ 64148 => '杖',
+ 64149 => '歹',
+ 64150 => '殺',
+ 64151 => '流',
+ 64152 => '滛',
+ 64153 => '滋',
+ 64154 => '漢',
+ 64155 => '瀞',
+ 64156 => '煮',
+ 64157 => '瞧',
+ 64158 => '爵',
+ 64159 => '犯',
+ 64160 => '猪',
+ 64161 => '瑱',
+ 64162 => '甆',
+ 64163 => '画',
+ 64164 => '瘝',
+ 64165 => '瘟',
+ 64166 => '益',
+ 64167 => '盛',
+ 64168 => '直',
+ 64169 => '睊',
+ 64170 => '着',
+ 64171 => '磌',
+ 64172 => '窱',
+ 64173 => '節',
+ 64174 => '类',
+ 64175 => '絛',
+ 64176 => '練',
+ 64177 => '缾',
+ 64178 => '者',
+ 64179 => '荒',
+ 64180 => '華',
+ 64181 => '蝹',
+ 64182 => '襁',
+ 64183 => '覆',
+ 64184 => '視',
+ 64185 => '調',
+ 64186 => '諸',
+ 64187 => '請',
+ 64188 => '謁',
+ 64189 => '諾',
+ 64190 => '諭',
+ 64191 => '謹',
+ 64192 => '變',
+ 64193 => '贈',
+ 64194 => '輸',
+ 64195 => '遲',
+ 64196 => '醙',
+ 64197 => '鉶',
+ 64198 => '陼',
+ 64199 => '難',
+ 64200 => '靖',
+ 64201 => '韛',
+ 64202 => '響',
+ 64203 => '頋',
+ 64204 => '頻',
+ 64205 => '鬒',
+ 64206 => '龜',
+ 64207 => '𢡊',
+ 64208 => '𢡄',
+ 64209 => '𣏕',
+ 64210 => '㮝',
+ 64211 => '䀘',
+ 64212 => '䀹',
+ 64213 => '𥉉',
+ 64214 => '𥳐',
+ 64215 => '𧻓',
+ 64216 => '齃',
+ 64217 => '龎',
+ 64256 => 'ff',
+ 64257 => 'fi',
+ 64258 => 'fl',
+ 64259 => 'ffi',
+ 64260 => 'ffl',
+ 64261 => 'st',
+ 64262 => 'st',
+ 64275 => 'մն',
+ 64276 => 'մե',
+ 64277 => 'մի',
+ 64278 => 'վն',
+ 64279 => 'մխ',
+ 64285 => 'יִ',
+ 64287 => 'ײַ',
+ 64288 => 'ע',
+ 64289 => 'א',
+ 64290 => 'ד',
+ 64291 => 'ה',
+ 64292 => 'כ',
+ 64293 => 'ל',
+ 64294 => 'ם',
+ 64295 => 'ר',
+ 64296 => 'ת',
+ 64298 => 'שׁ',
+ 64299 => 'שׂ',
+ 64300 => 'שּׁ',
+ 64301 => 'שּׂ',
+ 64302 => 'אַ',
+ 64303 => 'אָ',
+ 64304 => 'אּ',
+ 64305 => 'בּ',
+ 64306 => 'גּ',
+ 64307 => 'דּ',
+ 64308 => 'הּ',
+ 64309 => 'וּ',
+ 64310 => 'זּ',
+ 64312 => 'טּ',
+ 64313 => 'יּ',
+ 64314 => 'ךּ',
+ 64315 => 'כּ',
+ 64316 => 'לּ',
+ 64318 => 'מּ',
+ 64320 => 'נּ',
+ 64321 => 'סּ',
+ 64323 => 'ףּ',
+ 64324 => 'פּ',
+ 64326 => 'צּ',
+ 64327 => 'קּ',
+ 64328 => 'רּ',
+ 64329 => 'שּ',
+ 64330 => 'תּ',
+ 64331 => 'וֹ',
+ 64332 => 'בֿ',
+ 64333 => 'כֿ',
+ 64334 => 'פֿ',
+ 64335 => 'אל',
+ 64336 => 'ٱ',
+ 64337 => 'ٱ',
+ 64338 => 'ٻ',
+ 64339 => 'ٻ',
+ 64340 => 'ٻ',
+ 64341 => 'ٻ',
+ 64342 => 'پ',
+ 64343 => 'پ',
+ 64344 => 'پ',
+ 64345 => 'پ',
+ 64346 => 'ڀ',
+ 64347 => 'ڀ',
+ 64348 => 'ڀ',
+ 64349 => 'ڀ',
+ 64350 => 'ٺ',
+ 64351 => 'ٺ',
+ 64352 => 'ٺ',
+ 64353 => 'ٺ',
+ 64354 => 'ٿ',
+ 64355 => 'ٿ',
+ 64356 => 'ٿ',
+ 64357 => 'ٿ',
+ 64358 => 'ٹ',
+ 64359 => 'ٹ',
+ 64360 => 'ٹ',
+ 64361 => 'ٹ',
+ 64362 => 'ڤ',
+ 64363 => 'ڤ',
+ 64364 => 'ڤ',
+ 64365 => 'ڤ',
+ 64366 => 'ڦ',
+ 64367 => 'ڦ',
+ 64368 => 'ڦ',
+ 64369 => 'ڦ',
+ 64370 => 'ڄ',
+ 64371 => 'ڄ',
+ 64372 => 'ڄ',
+ 64373 => 'ڄ',
+ 64374 => 'ڃ',
+ 64375 => 'ڃ',
+ 64376 => 'ڃ',
+ 64377 => 'ڃ',
+ 64378 => 'چ',
+ 64379 => 'چ',
+ 64380 => 'چ',
+ 64381 => 'چ',
+ 64382 => 'ڇ',
+ 64383 => 'ڇ',
+ 64384 => 'ڇ',
+ 64385 => 'ڇ',
+ 64386 => 'ڍ',
+ 64387 => 'ڍ',
+ 64388 => 'ڌ',
+ 64389 => 'ڌ',
+ 64390 => 'ڎ',
+ 64391 => 'ڎ',
+ 64392 => 'ڈ',
+ 64393 => 'ڈ',
+ 64394 => 'ژ',
+ 64395 => 'ژ',
+ 64396 => 'ڑ',
+ 64397 => 'ڑ',
+ 64398 => 'ک',
+ 64399 => 'ک',
+ 64400 => 'ک',
+ 64401 => 'ک',
+ 64402 => 'گ',
+ 64403 => 'گ',
+ 64404 => 'گ',
+ 64405 => 'گ',
+ 64406 => 'ڳ',
+ 64407 => 'ڳ',
+ 64408 => 'ڳ',
+ 64409 => 'ڳ',
+ 64410 => 'ڱ',
+ 64411 => 'ڱ',
+ 64412 => 'ڱ',
+ 64413 => 'ڱ',
+ 64414 => 'ں',
+ 64415 => 'ں',
+ 64416 => 'ڻ',
+ 64417 => 'ڻ',
+ 64418 => 'ڻ',
+ 64419 => 'ڻ',
+ 64420 => 'ۀ',
+ 64421 => 'ۀ',
+ 64422 => 'ہ',
+ 64423 => 'ہ',
+ 64424 => 'ہ',
+ 64425 => 'ہ',
+ 64426 => 'ھ',
+ 64427 => 'ھ',
+ 64428 => 'ھ',
+ 64429 => 'ھ',
+ 64430 => 'ے',
+ 64431 => 'ے',
+ 64432 => 'ۓ',
+ 64433 => 'ۓ',
+ 64467 => 'ڭ',
+ 64468 => 'ڭ',
+ 64469 => 'ڭ',
+ 64470 => 'ڭ',
+ 64471 => 'ۇ',
+ 64472 => 'ۇ',
+ 64473 => 'ۆ',
+ 64474 => 'ۆ',
+ 64475 => 'ۈ',
+ 64476 => 'ۈ',
+ 64477 => 'ۇٴ',
+ 64478 => 'ۋ',
+ 64479 => 'ۋ',
+ 64480 => 'ۅ',
+ 64481 => 'ۅ',
+ 64482 => 'ۉ',
+ 64483 => 'ۉ',
+ 64484 => 'ې',
+ 64485 => 'ې',
+ 64486 => 'ې',
+ 64487 => 'ې',
+ 64488 => 'ى',
+ 64489 => 'ى',
+ 64490 => 'ئا',
+ 64491 => 'ئا',
+ 64492 => 'ئە',
+ 64493 => 'ئە',
+ 64494 => 'ئو',
+ 64495 => 'ئو',
+ 64496 => 'ئۇ',
+ 64497 => 'ئۇ',
+ 64498 => 'ئۆ',
+ 64499 => 'ئۆ',
+ 64500 => 'ئۈ',
+ 64501 => 'ئۈ',
+ 64502 => 'ئې',
+ 64503 => 'ئې',
+ 64504 => 'ئې',
+ 64505 => 'ئى',
+ 64506 => 'ئى',
+ 64507 => 'ئى',
+ 64508 => 'ی',
+ 64509 => 'ی',
+ 64510 => 'ی',
+ 64511 => 'ی',
+ 64512 => 'ئج',
+ 64513 => 'ئح',
+ 64514 => 'ئم',
+ 64515 => 'ئى',
+ 64516 => 'ئي',
+ 64517 => 'بج',
+ 64518 => 'بح',
+ 64519 => 'بخ',
+ 64520 => 'بم',
+ 64521 => 'بى',
+ 64522 => 'بي',
+ 64523 => 'تج',
+ 64524 => 'تح',
+ 64525 => 'تخ',
+ 64526 => 'تم',
+ 64527 => 'تى',
+ 64528 => 'تي',
+ 64529 => 'ثج',
+ 64530 => 'ثم',
+ 64531 => 'ثى',
+ 64532 => 'ثي',
+ 64533 => 'جح',
+ 64534 => 'جم',
+ 64535 => 'حج',
+ 64536 => 'حم',
+ 64537 => 'خج',
+ 64538 => 'خح',
+ 64539 => 'خم',
+ 64540 => 'سج',
+ 64541 => 'سح',
+ 64542 => 'سخ',
+ 64543 => 'سم',
+ 64544 => 'صح',
+ 64545 => 'صم',
+ 64546 => 'ضج',
+ 64547 => 'ضح',
+ 64548 => 'ضخ',
+ 64549 => 'ضم',
+ 64550 => 'طح',
+ 64551 => 'طم',
+ 64552 => 'ظم',
+ 64553 => 'عج',
+ 64554 => 'عم',
+ 64555 => 'غج',
+ 64556 => 'غم',
+ 64557 => 'فج',
+ 64558 => 'فح',
+ 64559 => 'فخ',
+ 64560 => 'فم',
+ 64561 => 'فى',
+ 64562 => 'في',
+ 64563 => 'قح',
+ 64564 => 'قم',
+ 64565 => 'قى',
+ 64566 => 'قي',
+ 64567 => 'كا',
+ 64568 => 'كج',
+ 64569 => 'كح',
+ 64570 => 'كخ',
+ 64571 => 'كل',
+ 64572 => 'كم',
+ 64573 => 'كى',
+ 64574 => 'كي',
+ 64575 => 'لج',
+ 64576 => 'لح',
+ 64577 => 'لخ',
+ 64578 => 'لم',
+ 64579 => 'لى',
+ 64580 => 'لي',
+ 64581 => 'مج',
+ 64582 => 'مح',
+ 64583 => 'مخ',
+ 64584 => 'مم',
+ 64585 => 'مى',
+ 64586 => 'مي',
+ 64587 => 'نج',
+ 64588 => 'نح',
+ 64589 => 'نخ',
+ 64590 => 'نم',
+ 64591 => 'نى',
+ 64592 => 'ني',
+ 64593 => 'هج',
+ 64594 => 'هم',
+ 64595 => 'هى',
+ 64596 => 'هي',
+ 64597 => 'يج',
+ 64598 => 'يح',
+ 64599 => 'يخ',
+ 64600 => 'يم',
+ 64601 => 'يى',
+ 64602 => 'يي',
+ 64603 => 'ذٰ',
+ 64604 => 'رٰ',
+ 64605 => 'ىٰ',
+ 64612 => 'ئر',
+ 64613 => 'ئز',
+ 64614 => 'ئم',
+ 64615 => 'ئن',
+ 64616 => 'ئى',
+ 64617 => 'ئي',
+ 64618 => 'بر',
+ 64619 => 'بز',
+ 64620 => 'بم',
+ 64621 => 'بن',
+ 64622 => 'بى',
+ 64623 => 'بي',
+ 64624 => 'تر',
+ 64625 => 'تز',
+ 64626 => 'تم',
+ 64627 => 'تن',
+ 64628 => 'تى',
+ 64629 => 'تي',
+ 64630 => 'ثر',
+ 64631 => 'ثز',
+ 64632 => 'ثم',
+ 64633 => 'ثن',
+ 64634 => 'ثى',
+ 64635 => 'ثي',
+ 64636 => 'فى',
+ 64637 => 'في',
+ 64638 => 'قى',
+ 64639 => 'قي',
+ 64640 => 'كا',
+ 64641 => 'كل',
+ 64642 => 'كم',
+ 64643 => 'كى',
+ 64644 => 'كي',
+ 64645 => 'لم',
+ 64646 => 'لى',
+ 64647 => 'لي',
+ 64648 => 'ما',
+ 64649 => 'مم',
+ 64650 => 'نر',
+ 64651 => 'نز',
+ 64652 => 'نم',
+ 64653 => 'نن',
+ 64654 => 'نى',
+ 64655 => 'ني',
+ 64656 => 'ىٰ',
+ 64657 => 'ير',
+ 64658 => 'يز',
+ 64659 => 'يم',
+ 64660 => 'ين',
+ 64661 => 'يى',
+ 64662 => 'يي',
+ 64663 => 'ئج',
+ 64664 => 'ئح',
+ 64665 => 'ئخ',
+ 64666 => 'ئم',
+ 64667 => 'ئه',
+ 64668 => 'بج',
+ 64669 => 'بح',
+ 64670 => 'بخ',
+ 64671 => 'بم',
+ 64672 => 'به',
+ 64673 => 'تج',
+ 64674 => 'تح',
+ 64675 => 'تخ',
+ 64676 => 'تم',
+ 64677 => 'ته',
+ 64678 => 'ثم',
+ 64679 => 'جح',
+ 64680 => 'جم',
+ 64681 => 'حج',
+ 64682 => 'حم',
+ 64683 => 'خج',
+ 64684 => 'خم',
+ 64685 => 'سج',
+ 64686 => 'سح',
+ 64687 => 'سخ',
+ 64688 => 'سم',
+ 64689 => 'صح',
+ 64690 => 'صخ',
+ 64691 => 'صم',
+ 64692 => 'ضج',
+ 64693 => 'ضح',
+ 64694 => 'ضخ',
+ 64695 => 'ضم',
+ 64696 => 'طح',
+ 64697 => 'ظم',
+ 64698 => 'عج',
+ 64699 => 'عم',
+ 64700 => 'غج',
+ 64701 => 'غم',
+ 64702 => 'فج',
+ 64703 => 'فح',
+ 64704 => 'فخ',
+ 64705 => 'فم',
+ 64706 => 'قح',
+ 64707 => 'قم',
+ 64708 => 'كج',
+ 64709 => 'كح',
+ 64710 => 'كخ',
+ 64711 => 'كل',
+ 64712 => 'كم',
+ 64713 => 'لج',
+ 64714 => 'لح',
+ 64715 => 'لخ',
+ 64716 => 'لم',
+ 64717 => 'له',
+ 64718 => 'مج',
+ 64719 => 'مح',
+ 64720 => 'مخ',
+ 64721 => 'مم',
+ 64722 => 'نج',
+ 64723 => 'نح',
+ 64724 => 'نخ',
+ 64725 => 'نم',
+ 64726 => 'نه',
+ 64727 => 'هج',
+ 64728 => 'هم',
+ 64729 => 'هٰ',
+ 64730 => 'يج',
+ 64731 => 'يح',
+ 64732 => 'يخ',
+ 64733 => 'يم',
+ 64734 => 'يه',
+ 64735 => 'ئم',
+ 64736 => 'ئه',
+ 64737 => 'بم',
+ 64738 => 'به',
+ 64739 => 'تم',
+ 64740 => 'ته',
+ 64741 => 'ثم',
+ 64742 => 'ثه',
+ 64743 => 'سم',
+ 64744 => 'سه',
+ 64745 => 'شم',
+ 64746 => 'شه',
+ 64747 => 'كل',
+ 64748 => 'كم',
+ 64749 => 'لم',
+ 64750 => 'نم',
+ 64751 => 'نه',
+ 64752 => 'يم',
+ 64753 => 'يه',
+ 64754 => 'ـَّ',
+ 64755 => 'ـُّ',
+ 64756 => 'ـِّ',
+ 64757 => 'طى',
+ 64758 => 'طي',
+ 64759 => 'عى',
+ 64760 => 'عي',
+ 64761 => 'غى',
+ 64762 => 'غي',
+ 64763 => 'سى',
+ 64764 => 'سي',
+ 64765 => 'شى',
+ 64766 => 'شي',
+ 64767 => 'حى',
+ 64768 => 'حي',
+ 64769 => 'جى',
+ 64770 => 'جي',
+ 64771 => 'خى',
+ 64772 => 'خي',
+ 64773 => 'صى',
+ 64774 => 'صي',
+ 64775 => 'ضى',
+ 64776 => 'ضي',
+ 64777 => 'شج',
+ 64778 => 'شح',
+ 64779 => 'شخ',
+ 64780 => 'شم',
+ 64781 => 'شر',
+ 64782 => 'سر',
+ 64783 => 'صر',
+ 64784 => 'ضر',
+ 64785 => 'طى',
+ 64786 => 'طي',
+ 64787 => 'عى',
+ 64788 => 'عي',
+ 64789 => 'غى',
+ 64790 => 'غي',
+ 64791 => 'سى',
+ 64792 => 'سي',
+ 64793 => 'شى',
+ 64794 => 'شي',
+ 64795 => 'حى',
+ 64796 => 'حي',
+ 64797 => 'جى',
+ 64798 => 'جي',
+ 64799 => 'خى',
+ 64800 => 'خي',
+ 64801 => 'صى',
+ 64802 => 'صي',
+ 64803 => 'ضى',
+ 64804 => 'ضي',
+ 64805 => 'شج',
+ 64806 => 'شح',
+ 64807 => 'شخ',
+ 64808 => 'شم',
+ 64809 => 'شر',
+ 64810 => 'سر',
+ 64811 => 'صر',
+ 64812 => 'ضر',
+ 64813 => 'شج',
+ 64814 => 'شح',
+ 64815 => 'شخ',
+ 64816 => 'شم',
+ 64817 => 'سه',
+ 64818 => 'شه',
+ 64819 => 'طم',
+ 64820 => 'سج',
+ 64821 => 'سح',
+ 64822 => 'سخ',
+ 64823 => 'شج',
+ 64824 => 'شح',
+ 64825 => 'شخ',
+ 64826 => 'طم',
+ 64827 => 'ظم',
+ 64828 => 'اً',
+ 64829 => 'اً',
+ 64848 => 'تجم',
+ 64849 => 'تحج',
+ 64850 => 'تحج',
+ 64851 => 'تحم',
+ 64852 => 'تخم',
+ 64853 => 'تمج',
+ 64854 => 'تمح',
+ 64855 => 'تمخ',
+ 64856 => 'جمح',
+ 64857 => 'جمح',
+ 64858 => 'حمي',
+ 64859 => 'حمى',
+ 64860 => 'سحج',
+ 64861 => 'سجح',
+ 64862 => 'سجى',
+ 64863 => 'سمح',
+ 64864 => 'سمح',
+ 64865 => 'سمج',
+ 64866 => 'سمم',
+ 64867 => 'سمم',
+ 64868 => 'صحح',
+ 64869 => 'صحح',
+ 64870 => 'صمم',
+ 64871 => 'شحم',
+ 64872 => 'شحم',
+ 64873 => 'شجي',
+ 64874 => 'شمخ',
+ 64875 => 'شمخ',
+ 64876 => 'شمم',
+ 64877 => 'شمم',
+ 64878 => 'ضحى',
+ 64879 => 'ضخم',
+ 64880 => 'ضخم',
+ 64881 => 'طمح',
+ 64882 => 'طمح',
+ 64883 => 'طمم',
+ 64884 => 'طمي',
+ 64885 => 'عجم',
+ 64886 => 'عمم',
+ 64887 => 'عمم',
+ 64888 => 'عمى',
+ 64889 => 'غمم',
+ 64890 => 'غمي',
+ 64891 => 'غمى',
+ 64892 => 'فخم',
+ 64893 => 'فخم',
+ 64894 => 'قمح',
+ 64895 => 'قمم',
+ 64896 => 'لحم',
+ 64897 => 'لحي',
+ 64898 => 'لحى',
+ 64899 => 'لجج',
+ 64900 => 'لجج',
+ 64901 => 'لخم',
+ 64902 => 'لخم',
+ 64903 => 'لمح',
+ 64904 => 'لمح',
+ 64905 => 'محج',
+ 64906 => 'محم',
+ 64907 => 'محي',
+ 64908 => 'مجح',
+ 64909 => 'مجم',
+ 64910 => 'مخج',
+ 64911 => 'مخم',
+ 64914 => 'مجخ',
+ 64915 => 'همج',
+ 64916 => 'همم',
+ 64917 => 'نحم',
+ 64918 => 'نحى',
+ 64919 => 'نجم',
+ 64920 => 'نجم',
+ 64921 => 'نجى',
+ 64922 => 'نمي',
+ 64923 => 'نمى',
+ 64924 => 'يمم',
+ 64925 => 'يمم',
+ 64926 => 'بخي',
+ 64927 => 'تجي',
+ 64928 => 'تجى',
+ 64929 => 'تخي',
+ 64930 => 'تخى',
+ 64931 => 'تمي',
+ 64932 => 'تمى',
+ 64933 => 'جمي',
+ 64934 => 'جحى',
+ 64935 => 'جمى',
+ 64936 => 'سخى',
+ 64937 => 'صحي',
+ 64938 => 'شحي',
+ 64939 => 'ضحي',
+ 64940 => 'لجي',
+ 64941 => 'لمي',
+ 64942 => 'يحي',
+ 64943 => 'يجي',
+ 64944 => 'يمي',
+ 64945 => 'ممي',
+ 64946 => 'قمي',
+ 64947 => 'نحي',
+ 64948 => 'قمح',
+ 64949 => 'لحم',
+ 64950 => 'عمي',
+ 64951 => 'كمي',
+ 64952 => 'نجح',
+ 64953 => 'مخي',
+ 64954 => 'لجم',
+ 64955 => 'كمم',
+ 64956 => 'لجم',
+ 64957 => 'نجح',
+ 64958 => 'جحي',
+ 64959 => 'حجي',
+ 64960 => 'مجي',
+ 64961 => 'فمي',
+ 64962 => 'بحي',
+ 64963 => 'كمم',
+ 64964 => 'عجم',
+ 64965 => 'صمم',
+ 64966 => 'سخي',
+ 64967 => 'نجي',
+ 65008 => 'صلے',
+ 65009 => 'قلے',
+ 65010 => 'الله',
+ 65011 => 'اكبر',
+ 65012 => 'محمد',
+ 65013 => 'صلعم',
+ 65014 => 'رسول',
+ 65015 => 'عليه',
+ 65016 => 'وسلم',
+ 65017 => 'صلى',
+ 65020 => 'ریال',
+ 65041 => '、',
+ 65047 => '〖',
+ 65048 => '〗',
+ 65073 => '—',
+ 65074 => '–',
+ 65081 => '〔',
+ 65082 => '〕',
+ 65083 => '【',
+ 65084 => '】',
+ 65085 => '《',
+ 65086 => '》',
+ 65087 => '〈',
+ 65088 => '〉',
+ 65089 => '「',
+ 65090 => '」',
+ 65091 => '『',
+ 65092 => '』',
+ 65105 => '、',
+ 65112 => '—',
+ 65117 => '〔',
+ 65118 => '〕',
+ 65123 => '-',
+ 65137 => 'ـً',
+ 65143 => 'ـَ',
+ 65145 => 'ـُ',
+ 65147 => 'ـِ',
+ 65149 => 'ـّ',
+ 65151 => 'ـْ',
+ 65152 => 'ء',
+ 65153 => 'آ',
+ 65154 => 'آ',
+ 65155 => 'أ',
+ 65156 => 'أ',
+ 65157 => 'ؤ',
+ 65158 => 'ؤ',
+ 65159 => 'إ',
+ 65160 => 'إ',
+ 65161 => 'ئ',
+ 65162 => 'ئ',
+ 65163 => 'ئ',
+ 65164 => 'ئ',
+ 65165 => 'ا',
+ 65166 => 'ا',
+ 65167 => 'ب',
+ 65168 => 'ب',
+ 65169 => 'ب',
+ 65170 => 'ب',
+ 65171 => 'ة',
+ 65172 => 'ة',
+ 65173 => 'ت',
+ 65174 => 'ت',
+ 65175 => 'ت',
+ 65176 => 'ت',
+ 65177 => 'ث',
+ 65178 => 'ث',
+ 65179 => 'ث',
+ 65180 => 'ث',
+ 65181 => 'ج',
+ 65182 => 'ج',
+ 65183 => 'ج',
+ 65184 => 'ج',
+ 65185 => 'ح',
+ 65186 => 'ح',
+ 65187 => 'ح',
+ 65188 => 'ح',
+ 65189 => 'خ',
+ 65190 => 'خ',
+ 65191 => 'خ',
+ 65192 => 'خ',
+ 65193 => 'د',
+ 65194 => 'د',
+ 65195 => 'ذ',
+ 65196 => 'ذ',
+ 65197 => 'ر',
+ 65198 => 'ر',
+ 65199 => 'ز',
+ 65200 => 'ز',
+ 65201 => 'س',
+ 65202 => 'س',
+ 65203 => 'س',
+ 65204 => 'س',
+ 65205 => 'ش',
+ 65206 => 'ش',
+ 65207 => 'ش',
+ 65208 => 'ش',
+ 65209 => 'ص',
+ 65210 => 'ص',
+ 65211 => 'ص',
+ 65212 => 'ص',
+ 65213 => 'ض',
+ 65214 => 'ض',
+ 65215 => 'ض',
+ 65216 => 'ض',
+ 65217 => 'ط',
+ 65218 => 'ط',
+ 65219 => 'ط',
+ 65220 => 'ط',
+ 65221 => 'ظ',
+ 65222 => 'ظ',
+ 65223 => 'ظ',
+ 65224 => 'ظ',
+ 65225 => 'ع',
+ 65226 => 'ع',
+ 65227 => 'ع',
+ 65228 => 'ع',
+ 65229 => 'غ',
+ 65230 => 'غ',
+ 65231 => 'غ',
+ 65232 => 'غ',
+ 65233 => 'ف',
+ 65234 => 'ف',
+ 65235 => 'ف',
+ 65236 => 'ف',
+ 65237 => 'ق',
+ 65238 => 'ق',
+ 65239 => 'ق',
+ 65240 => 'ق',
+ 65241 => 'ك',
+ 65242 => 'ك',
+ 65243 => 'ك',
+ 65244 => 'ك',
+ 65245 => 'ل',
+ 65246 => 'ل',
+ 65247 => 'ل',
+ 65248 => 'ل',
+ 65249 => 'م',
+ 65250 => 'م',
+ 65251 => 'م',
+ 65252 => 'م',
+ 65253 => 'ن',
+ 65254 => 'ن',
+ 65255 => 'ن',
+ 65256 => 'ن',
+ 65257 => 'ه',
+ 65258 => 'ه',
+ 65259 => 'ه',
+ 65260 => 'ه',
+ 65261 => 'و',
+ 65262 => 'و',
+ 65263 => 'ى',
+ 65264 => 'ى',
+ 65265 => 'ي',
+ 65266 => 'ي',
+ 65267 => 'ي',
+ 65268 => 'ي',
+ 65269 => 'لآ',
+ 65270 => 'لآ',
+ 65271 => 'لأ',
+ 65272 => 'لأ',
+ 65273 => 'لإ',
+ 65274 => 'لإ',
+ 65275 => 'لا',
+ 65276 => 'لا',
+ 65293 => '-',
+ 65294 => '.',
+ 65296 => '0',
+ 65297 => '1',
+ 65298 => '2',
+ 65299 => '3',
+ 65300 => '4',
+ 65301 => '5',
+ 65302 => '6',
+ 65303 => '7',
+ 65304 => '8',
+ 65305 => '9',
+ 65313 => 'a',
+ 65314 => 'b',
+ 65315 => 'c',
+ 65316 => 'd',
+ 65317 => 'e',
+ 65318 => 'f',
+ 65319 => 'g',
+ 65320 => 'h',
+ 65321 => 'i',
+ 65322 => 'j',
+ 65323 => 'k',
+ 65324 => 'l',
+ 65325 => 'm',
+ 65326 => 'n',
+ 65327 => 'o',
+ 65328 => 'p',
+ 65329 => 'q',
+ 65330 => 'r',
+ 65331 => 's',
+ 65332 => 't',
+ 65333 => 'u',
+ 65334 => 'v',
+ 65335 => 'w',
+ 65336 => 'x',
+ 65337 => 'y',
+ 65338 => 'z',
+ 65345 => 'a',
+ 65346 => 'b',
+ 65347 => 'c',
+ 65348 => 'd',
+ 65349 => 'e',
+ 65350 => 'f',
+ 65351 => 'g',
+ 65352 => 'h',
+ 65353 => 'i',
+ 65354 => 'j',
+ 65355 => 'k',
+ 65356 => 'l',
+ 65357 => 'm',
+ 65358 => 'n',
+ 65359 => 'o',
+ 65360 => 'p',
+ 65361 => 'q',
+ 65362 => 'r',
+ 65363 => 's',
+ 65364 => 't',
+ 65365 => 'u',
+ 65366 => 'v',
+ 65367 => 'w',
+ 65368 => 'x',
+ 65369 => 'y',
+ 65370 => 'z',
+ 65375 => '⦅',
+ 65376 => '⦆',
+ 65377 => '.',
+ 65378 => '「',
+ 65379 => '」',
+ 65380 => '、',
+ 65381 => '・',
+ 65382 => 'ヲ',
+ 65383 => 'ァ',
+ 65384 => 'ィ',
+ 65385 => 'ゥ',
+ 65386 => 'ェ',
+ 65387 => 'ォ',
+ 65388 => 'ャ',
+ 65389 => 'ュ',
+ 65390 => 'ョ',
+ 65391 => 'ッ',
+ 65392 => 'ー',
+ 65393 => 'ア',
+ 65394 => 'イ',
+ 65395 => 'ウ',
+ 65396 => 'エ',
+ 65397 => 'オ',
+ 65398 => 'カ',
+ 65399 => 'キ',
+ 65400 => 'ク',
+ 65401 => 'ケ',
+ 65402 => 'コ',
+ 65403 => 'サ',
+ 65404 => 'シ',
+ 65405 => 'ス',
+ 65406 => 'セ',
+ 65407 => 'ソ',
+ 65408 => 'タ',
+ 65409 => 'チ',
+ 65410 => 'ツ',
+ 65411 => 'テ',
+ 65412 => 'ト',
+ 65413 => 'ナ',
+ 65414 => 'ニ',
+ 65415 => 'ヌ',
+ 65416 => 'ネ',
+ 65417 => 'ノ',
+ 65418 => 'ハ',
+ 65419 => 'ヒ',
+ 65420 => 'フ',
+ 65421 => 'ヘ',
+ 65422 => 'ホ',
+ 65423 => 'マ',
+ 65424 => 'ミ',
+ 65425 => 'ム',
+ 65426 => 'メ',
+ 65427 => 'モ',
+ 65428 => 'ヤ',
+ 65429 => 'ユ',
+ 65430 => 'ヨ',
+ 65431 => 'ラ',
+ 65432 => 'リ',
+ 65433 => 'ル',
+ 65434 => 'レ',
+ 65435 => 'ロ',
+ 65436 => 'ワ',
+ 65437 => 'ン',
+ 65438 => '゙',
+ 65439 => '゚',
+ 65441 => 'ᄀ',
+ 65442 => 'ᄁ',
+ 65443 => 'ᆪ',
+ 65444 => 'ᄂ',
+ 65445 => 'ᆬ',
+ 65446 => 'ᆭ',
+ 65447 => 'ᄃ',
+ 65448 => 'ᄄ',
+ 65449 => 'ᄅ',
+ 65450 => 'ᆰ',
+ 65451 => 'ᆱ',
+ 65452 => 'ᆲ',
+ 65453 => 'ᆳ',
+ 65454 => 'ᆴ',
+ 65455 => 'ᆵ',
+ 65456 => 'ᄚ',
+ 65457 => 'ᄆ',
+ 65458 => 'ᄇ',
+ 65459 => 'ᄈ',
+ 65460 => 'ᄡ',
+ 65461 => 'ᄉ',
+ 65462 => 'ᄊ',
+ 65463 => 'ᄋ',
+ 65464 => 'ᄌ',
+ 65465 => 'ᄍ',
+ 65466 => 'ᄎ',
+ 65467 => 'ᄏ',
+ 65468 => 'ᄐ',
+ 65469 => 'ᄑ',
+ 65470 => 'ᄒ',
+ 65474 => 'ᅡ',
+ 65475 => 'ᅢ',
+ 65476 => 'ᅣ',
+ 65477 => 'ᅤ',
+ 65478 => 'ᅥ',
+ 65479 => 'ᅦ',
+ 65482 => 'ᅧ',
+ 65483 => 'ᅨ',
+ 65484 => 'ᅩ',
+ 65485 => 'ᅪ',
+ 65486 => 'ᅫ',
+ 65487 => 'ᅬ',
+ 65490 => 'ᅭ',
+ 65491 => 'ᅮ',
+ 65492 => 'ᅯ',
+ 65493 => 'ᅰ',
+ 65494 => 'ᅱ',
+ 65495 => 'ᅲ',
+ 65498 => 'ᅳ',
+ 65499 => 'ᅴ',
+ 65500 => 'ᅵ',
+ 65504 => '¢',
+ 65505 => '£',
+ 65506 => '¬',
+ 65508 => '¦',
+ 65509 => '¥',
+ 65510 => '₩',
+ 65512 => '│',
+ 65513 => '←',
+ 65514 => '↑',
+ 65515 => '→',
+ 65516 => '↓',
+ 65517 => '■',
+ 65518 => '○',
+ 66560 => '𐐨',
+ 66561 => '𐐩',
+ 66562 => '𐐪',
+ 66563 => '𐐫',
+ 66564 => '𐐬',
+ 66565 => '𐐭',
+ 66566 => '𐐮',
+ 66567 => '𐐯',
+ 66568 => '𐐰',
+ 66569 => '𐐱',
+ 66570 => '𐐲',
+ 66571 => '𐐳',
+ 66572 => '𐐴',
+ 66573 => '𐐵',
+ 66574 => '𐐶',
+ 66575 => '𐐷',
+ 66576 => '𐐸',
+ 66577 => '𐐹',
+ 66578 => '𐐺',
+ 66579 => '𐐻',
+ 66580 => '𐐼',
+ 66581 => '𐐽',
+ 66582 => '𐐾',
+ 66583 => '𐐿',
+ 66584 => '𐑀',
+ 66585 => '𐑁',
+ 66586 => '𐑂',
+ 66587 => '𐑃',
+ 66588 => '𐑄',
+ 66589 => '𐑅',
+ 66590 => '𐑆',
+ 66591 => '𐑇',
+ 66592 => '𐑈',
+ 66593 => '𐑉',
+ 66594 => '𐑊',
+ 66595 => '𐑋',
+ 66596 => '𐑌',
+ 66597 => '𐑍',
+ 66598 => '𐑎',
+ 66599 => '𐑏',
+ 66736 => '𐓘',
+ 66737 => '𐓙',
+ 66738 => '𐓚',
+ 66739 => '𐓛',
+ 66740 => '𐓜',
+ 66741 => '𐓝',
+ 66742 => '𐓞',
+ 66743 => '𐓟',
+ 66744 => '𐓠',
+ 66745 => '𐓡',
+ 66746 => '𐓢',
+ 66747 => '𐓣',
+ 66748 => '𐓤',
+ 66749 => '𐓥',
+ 66750 => '𐓦',
+ 66751 => '𐓧',
+ 66752 => '𐓨',
+ 66753 => '𐓩',
+ 66754 => '𐓪',
+ 66755 => '𐓫',
+ 66756 => '𐓬',
+ 66757 => '𐓭',
+ 66758 => '𐓮',
+ 66759 => '𐓯',
+ 66760 => '𐓰',
+ 66761 => '𐓱',
+ 66762 => '𐓲',
+ 66763 => '𐓳',
+ 66764 => '𐓴',
+ 66765 => '𐓵',
+ 66766 => '𐓶',
+ 66767 => '𐓷',
+ 66768 => '𐓸',
+ 66769 => '𐓹',
+ 66770 => '𐓺',
+ 66771 => '𐓻',
+ 68736 => '𐳀',
+ 68737 => '𐳁',
+ 68738 => '𐳂',
+ 68739 => '𐳃',
+ 68740 => '𐳄',
+ 68741 => '𐳅',
+ 68742 => '𐳆',
+ 68743 => '𐳇',
+ 68744 => '𐳈',
+ 68745 => '𐳉',
+ 68746 => '𐳊',
+ 68747 => '𐳋',
+ 68748 => '𐳌',
+ 68749 => '𐳍',
+ 68750 => '𐳎',
+ 68751 => '𐳏',
+ 68752 => '𐳐',
+ 68753 => '𐳑',
+ 68754 => '𐳒',
+ 68755 => '𐳓',
+ 68756 => '𐳔',
+ 68757 => '𐳕',
+ 68758 => '𐳖',
+ 68759 => '𐳗',
+ 68760 => '𐳘',
+ 68761 => '𐳙',
+ 68762 => '𐳚',
+ 68763 => '𐳛',
+ 68764 => '𐳜',
+ 68765 => '𐳝',
+ 68766 => '𐳞',
+ 68767 => '𐳟',
+ 68768 => '𐳠',
+ 68769 => '𐳡',
+ 68770 => '𐳢',
+ 68771 => '𐳣',
+ 68772 => '𐳤',
+ 68773 => '𐳥',
+ 68774 => '𐳦',
+ 68775 => '𐳧',
+ 68776 => '𐳨',
+ 68777 => '𐳩',
+ 68778 => '𐳪',
+ 68779 => '𐳫',
+ 68780 => '𐳬',
+ 68781 => '𐳭',
+ 68782 => '𐳮',
+ 68783 => '𐳯',
+ 68784 => '𐳰',
+ 68785 => '𐳱',
+ 68786 => '𐳲',
+ 71840 => '𑣀',
+ 71841 => '𑣁',
+ 71842 => '𑣂',
+ 71843 => '𑣃',
+ 71844 => '𑣄',
+ 71845 => '𑣅',
+ 71846 => '𑣆',
+ 71847 => '𑣇',
+ 71848 => '𑣈',
+ 71849 => '𑣉',
+ 71850 => '𑣊',
+ 71851 => '𑣋',
+ 71852 => '𑣌',
+ 71853 => '𑣍',
+ 71854 => '𑣎',
+ 71855 => '𑣏',
+ 71856 => '𑣐',
+ 71857 => '𑣑',
+ 71858 => '𑣒',
+ 71859 => '𑣓',
+ 71860 => '𑣔',
+ 71861 => '𑣕',
+ 71862 => '𑣖',
+ 71863 => '𑣗',
+ 71864 => '𑣘',
+ 71865 => '𑣙',
+ 71866 => '𑣚',
+ 71867 => '𑣛',
+ 71868 => '𑣜',
+ 71869 => '𑣝',
+ 71870 => '𑣞',
+ 71871 => '𑣟',
+ 93760 => '𖹠',
+ 93761 => '𖹡',
+ 93762 => '𖹢',
+ 93763 => '𖹣',
+ 93764 => '𖹤',
+ 93765 => '𖹥',
+ 93766 => '𖹦',
+ 93767 => '𖹧',
+ 93768 => '𖹨',
+ 93769 => '𖹩',
+ 93770 => '𖹪',
+ 93771 => '𖹫',
+ 93772 => '𖹬',
+ 93773 => '𖹭',
+ 93774 => '𖹮',
+ 93775 => '𖹯',
+ 93776 => '𖹰',
+ 93777 => '𖹱',
+ 93778 => '𖹲',
+ 93779 => '𖹳',
+ 93780 => '𖹴',
+ 93781 => '𖹵',
+ 93782 => '𖹶',
+ 93783 => '𖹷',
+ 93784 => '𖹸',
+ 93785 => '𖹹',
+ 93786 => '𖹺',
+ 93787 => '𖹻',
+ 93788 => '𖹼',
+ 93789 => '𖹽',
+ 93790 => '𖹾',
+ 93791 => '𖹿',
+ 119134 => '𝅗𝅥',
+ 119135 => '𝅘𝅥',
+ 119136 => '𝅘𝅥𝅮',
+ 119137 => '𝅘𝅥𝅯',
+ 119138 => '𝅘𝅥𝅰',
+ 119139 => '𝅘𝅥𝅱',
+ 119140 => '𝅘𝅥𝅲',
+ 119227 => '𝆹𝅥',
+ 119228 => '𝆺𝅥',
+ 119229 => '𝆹𝅥𝅮',
+ 119230 => '𝆺𝅥𝅮',
+ 119231 => '𝆹𝅥𝅯',
+ 119232 => '𝆺𝅥𝅯',
+ 119808 => 'a',
+ 119809 => 'b',
+ 119810 => 'c',
+ 119811 => 'd',
+ 119812 => 'e',
+ 119813 => 'f',
+ 119814 => 'g',
+ 119815 => 'h',
+ 119816 => 'i',
+ 119817 => 'j',
+ 119818 => 'k',
+ 119819 => 'l',
+ 119820 => 'm',
+ 119821 => 'n',
+ 119822 => 'o',
+ 119823 => 'p',
+ 119824 => 'q',
+ 119825 => 'r',
+ 119826 => 's',
+ 119827 => 't',
+ 119828 => 'u',
+ 119829 => 'v',
+ 119830 => 'w',
+ 119831 => 'x',
+ 119832 => 'y',
+ 119833 => 'z',
+ 119834 => 'a',
+ 119835 => 'b',
+ 119836 => 'c',
+ 119837 => 'd',
+ 119838 => 'e',
+ 119839 => 'f',
+ 119840 => 'g',
+ 119841 => 'h',
+ 119842 => 'i',
+ 119843 => 'j',
+ 119844 => 'k',
+ 119845 => 'l',
+ 119846 => 'm',
+ 119847 => 'n',
+ 119848 => 'o',
+ 119849 => 'p',
+ 119850 => 'q',
+ 119851 => 'r',
+ 119852 => 's',
+ 119853 => 't',
+ 119854 => 'u',
+ 119855 => 'v',
+ 119856 => 'w',
+ 119857 => 'x',
+ 119858 => 'y',
+ 119859 => 'z',
+ 119860 => 'a',
+ 119861 => 'b',
+ 119862 => 'c',
+ 119863 => 'd',
+ 119864 => 'e',
+ 119865 => 'f',
+ 119866 => 'g',
+ 119867 => 'h',
+ 119868 => 'i',
+ 119869 => 'j',
+ 119870 => 'k',
+ 119871 => 'l',
+ 119872 => 'm',
+ 119873 => 'n',
+ 119874 => 'o',
+ 119875 => 'p',
+ 119876 => 'q',
+ 119877 => 'r',
+ 119878 => 's',
+ 119879 => 't',
+ 119880 => 'u',
+ 119881 => 'v',
+ 119882 => 'w',
+ 119883 => 'x',
+ 119884 => 'y',
+ 119885 => 'z',
+ 119886 => 'a',
+ 119887 => 'b',
+ 119888 => 'c',
+ 119889 => 'd',
+ 119890 => 'e',
+ 119891 => 'f',
+ 119892 => 'g',
+ 119894 => 'i',
+ 119895 => 'j',
+ 119896 => 'k',
+ 119897 => 'l',
+ 119898 => 'm',
+ 119899 => 'n',
+ 119900 => 'o',
+ 119901 => 'p',
+ 119902 => 'q',
+ 119903 => 'r',
+ 119904 => 's',
+ 119905 => 't',
+ 119906 => 'u',
+ 119907 => 'v',
+ 119908 => 'w',
+ 119909 => 'x',
+ 119910 => 'y',
+ 119911 => 'z',
+ 119912 => 'a',
+ 119913 => 'b',
+ 119914 => 'c',
+ 119915 => 'd',
+ 119916 => 'e',
+ 119917 => 'f',
+ 119918 => 'g',
+ 119919 => 'h',
+ 119920 => 'i',
+ 119921 => 'j',
+ 119922 => 'k',
+ 119923 => 'l',
+ 119924 => 'm',
+ 119925 => 'n',
+ 119926 => 'o',
+ 119927 => 'p',
+ 119928 => 'q',
+ 119929 => 'r',
+ 119930 => 's',
+ 119931 => 't',
+ 119932 => 'u',
+ 119933 => 'v',
+ 119934 => 'w',
+ 119935 => 'x',
+ 119936 => 'y',
+ 119937 => 'z',
+ 119938 => 'a',
+ 119939 => 'b',
+ 119940 => 'c',
+ 119941 => 'd',
+ 119942 => 'e',
+ 119943 => 'f',
+ 119944 => 'g',
+ 119945 => 'h',
+ 119946 => 'i',
+ 119947 => 'j',
+ 119948 => 'k',
+ 119949 => 'l',
+ 119950 => 'm',
+ 119951 => 'n',
+ 119952 => 'o',
+ 119953 => 'p',
+ 119954 => 'q',
+ 119955 => 'r',
+ 119956 => 's',
+ 119957 => 't',
+ 119958 => 'u',
+ 119959 => 'v',
+ 119960 => 'w',
+ 119961 => 'x',
+ 119962 => 'y',
+ 119963 => 'z',
+ 119964 => 'a',
+ 119966 => 'c',
+ 119967 => 'd',
+ 119970 => 'g',
+ 119973 => 'j',
+ 119974 => 'k',
+ 119977 => 'n',
+ 119978 => 'o',
+ 119979 => 'p',
+ 119980 => 'q',
+ 119982 => 's',
+ 119983 => 't',
+ 119984 => 'u',
+ 119985 => 'v',
+ 119986 => 'w',
+ 119987 => 'x',
+ 119988 => 'y',
+ 119989 => 'z',
+ 119990 => 'a',
+ 119991 => 'b',
+ 119992 => 'c',
+ 119993 => 'd',
+ 119995 => 'f',
+ 119997 => 'h',
+ 119998 => 'i',
+ 119999 => 'j',
+ 120000 => 'k',
+ 120001 => 'l',
+ 120002 => 'm',
+ 120003 => 'n',
+ 120005 => 'p',
+ 120006 => 'q',
+ 120007 => 'r',
+ 120008 => 's',
+ 120009 => 't',
+ 120010 => 'u',
+ 120011 => 'v',
+ 120012 => 'w',
+ 120013 => 'x',
+ 120014 => 'y',
+ 120015 => 'z',
+ 120016 => 'a',
+ 120017 => 'b',
+ 120018 => 'c',
+ 120019 => 'd',
+ 120020 => 'e',
+ 120021 => 'f',
+ 120022 => 'g',
+ 120023 => 'h',
+ 120024 => 'i',
+ 120025 => 'j',
+ 120026 => 'k',
+ 120027 => 'l',
+ 120028 => 'm',
+ 120029 => 'n',
+ 120030 => 'o',
+ 120031 => 'p',
+ 120032 => 'q',
+ 120033 => 'r',
+ 120034 => 's',
+ 120035 => 't',
+ 120036 => 'u',
+ 120037 => 'v',
+ 120038 => 'w',
+ 120039 => 'x',
+ 120040 => 'y',
+ 120041 => 'z',
+ 120042 => 'a',
+ 120043 => 'b',
+ 120044 => 'c',
+ 120045 => 'd',
+ 120046 => 'e',
+ 120047 => 'f',
+ 120048 => 'g',
+ 120049 => 'h',
+ 120050 => 'i',
+ 120051 => 'j',
+ 120052 => 'k',
+ 120053 => 'l',
+ 120054 => 'm',
+ 120055 => 'n',
+ 120056 => 'o',
+ 120057 => 'p',
+ 120058 => 'q',
+ 120059 => 'r',
+ 120060 => 's',
+ 120061 => 't',
+ 120062 => 'u',
+ 120063 => 'v',
+ 120064 => 'w',
+ 120065 => 'x',
+ 120066 => 'y',
+ 120067 => 'z',
+ 120068 => 'a',
+ 120069 => 'b',
+ 120071 => 'd',
+ 120072 => 'e',
+ 120073 => 'f',
+ 120074 => 'g',
+ 120077 => 'j',
+ 120078 => 'k',
+ 120079 => 'l',
+ 120080 => 'm',
+ 120081 => 'n',
+ 120082 => 'o',
+ 120083 => 'p',
+ 120084 => 'q',
+ 120086 => 's',
+ 120087 => 't',
+ 120088 => 'u',
+ 120089 => 'v',
+ 120090 => 'w',
+ 120091 => 'x',
+ 120092 => 'y',
+ 120094 => 'a',
+ 120095 => 'b',
+ 120096 => 'c',
+ 120097 => 'd',
+ 120098 => 'e',
+ 120099 => 'f',
+ 120100 => 'g',
+ 120101 => 'h',
+ 120102 => 'i',
+ 120103 => 'j',
+ 120104 => 'k',
+ 120105 => 'l',
+ 120106 => 'm',
+ 120107 => 'n',
+ 120108 => 'o',
+ 120109 => 'p',
+ 120110 => 'q',
+ 120111 => 'r',
+ 120112 => 's',
+ 120113 => 't',
+ 120114 => 'u',
+ 120115 => 'v',
+ 120116 => 'w',
+ 120117 => 'x',
+ 120118 => 'y',
+ 120119 => 'z',
+ 120120 => 'a',
+ 120121 => 'b',
+ 120123 => 'd',
+ 120124 => 'e',
+ 120125 => 'f',
+ 120126 => 'g',
+ 120128 => 'i',
+ 120129 => 'j',
+ 120130 => 'k',
+ 120131 => 'l',
+ 120132 => 'm',
+ 120134 => 'o',
+ 120138 => 's',
+ 120139 => 't',
+ 120140 => 'u',
+ 120141 => 'v',
+ 120142 => 'w',
+ 120143 => 'x',
+ 120144 => 'y',
+ 120146 => 'a',
+ 120147 => 'b',
+ 120148 => 'c',
+ 120149 => 'd',
+ 120150 => 'e',
+ 120151 => 'f',
+ 120152 => 'g',
+ 120153 => 'h',
+ 120154 => 'i',
+ 120155 => 'j',
+ 120156 => 'k',
+ 120157 => 'l',
+ 120158 => 'm',
+ 120159 => 'n',
+ 120160 => 'o',
+ 120161 => 'p',
+ 120162 => 'q',
+ 120163 => 'r',
+ 120164 => 's',
+ 120165 => 't',
+ 120166 => 'u',
+ 120167 => 'v',
+ 120168 => 'w',
+ 120169 => 'x',
+ 120170 => 'y',
+ 120171 => 'z',
+ 120172 => 'a',
+ 120173 => 'b',
+ 120174 => 'c',
+ 120175 => 'd',
+ 120176 => 'e',
+ 120177 => 'f',
+ 120178 => 'g',
+ 120179 => 'h',
+ 120180 => 'i',
+ 120181 => 'j',
+ 120182 => 'k',
+ 120183 => 'l',
+ 120184 => 'm',
+ 120185 => 'n',
+ 120186 => 'o',
+ 120187 => 'p',
+ 120188 => 'q',
+ 120189 => 'r',
+ 120190 => 's',
+ 120191 => 't',
+ 120192 => 'u',
+ 120193 => 'v',
+ 120194 => 'w',
+ 120195 => 'x',
+ 120196 => 'y',
+ 120197 => 'z',
+ 120198 => 'a',
+ 120199 => 'b',
+ 120200 => 'c',
+ 120201 => 'd',
+ 120202 => 'e',
+ 120203 => 'f',
+ 120204 => 'g',
+ 120205 => 'h',
+ 120206 => 'i',
+ 120207 => 'j',
+ 120208 => 'k',
+ 120209 => 'l',
+ 120210 => 'm',
+ 120211 => 'n',
+ 120212 => 'o',
+ 120213 => 'p',
+ 120214 => 'q',
+ 120215 => 'r',
+ 120216 => 's',
+ 120217 => 't',
+ 120218 => 'u',
+ 120219 => 'v',
+ 120220 => 'w',
+ 120221 => 'x',
+ 120222 => 'y',
+ 120223 => 'z',
+ 120224 => 'a',
+ 120225 => 'b',
+ 120226 => 'c',
+ 120227 => 'd',
+ 120228 => 'e',
+ 120229 => 'f',
+ 120230 => 'g',
+ 120231 => 'h',
+ 120232 => 'i',
+ 120233 => 'j',
+ 120234 => 'k',
+ 120235 => 'l',
+ 120236 => 'm',
+ 120237 => 'n',
+ 120238 => 'o',
+ 120239 => 'p',
+ 120240 => 'q',
+ 120241 => 'r',
+ 120242 => 's',
+ 120243 => 't',
+ 120244 => 'u',
+ 120245 => 'v',
+ 120246 => 'w',
+ 120247 => 'x',
+ 120248 => 'y',
+ 120249 => 'z',
+ 120250 => 'a',
+ 120251 => 'b',
+ 120252 => 'c',
+ 120253 => 'd',
+ 120254 => 'e',
+ 120255 => 'f',
+ 120256 => 'g',
+ 120257 => 'h',
+ 120258 => 'i',
+ 120259 => 'j',
+ 120260 => 'k',
+ 120261 => 'l',
+ 120262 => 'm',
+ 120263 => 'n',
+ 120264 => 'o',
+ 120265 => 'p',
+ 120266 => 'q',
+ 120267 => 'r',
+ 120268 => 's',
+ 120269 => 't',
+ 120270 => 'u',
+ 120271 => 'v',
+ 120272 => 'w',
+ 120273 => 'x',
+ 120274 => 'y',
+ 120275 => 'z',
+ 120276 => 'a',
+ 120277 => 'b',
+ 120278 => 'c',
+ 120279 => 'd',
+ 120280 => 'e',
+ 120281 => 'f',
+ 120282 => 'g',
+ 120283 => 'h',
+ 120284 => 'i',
+ 120285 => 'j',
+ 120286 => 'k',
+ 120287 => 'l',
+ 120288 => 'm',
+ 120289 => 'n',
+ 120290 => 'o',
+ 120291 => 'p',
+ 120292 => 'q',
+ 120293 => 'r',
+ 120294 => 's',
+ 120295 => 't',
+ 120296 => 'u',
+ 120297 => 'v',
+ 120298 => 'w',
+ 120299 => 'x',
+ 120300 => 'y',
+ 120301 => 'z',
+ 120302 => 'a',
+ 120303 => 'b',
+ 120304 => 'c',
+ 120305 => 'd',
+ 120306 => 'e',
+ 120307 => 'f',
+ 120308 => 'g',
+ 120309 => 'h',
+ 120310 => 'i',
+ 120311 => 'j',
+ 120312 => 'k',
+ 120313 => 'l',
+ 120314 => 'm',
+ 120315 => 'n',
+ 120316 => 'o',
+ 120317 => 'p',
+ 120318 => 'q',
+ 120319 => 'r',
+ 120320 => 's',
+ 120321 => 't',
+ 120322 => 'u',
+ 120323 => 'v',
+ 120324 => 'w',
+ 120325 => 'x',
+ 120326 => 'y',
+ 120327 => 'z',
+ 120328 => 'a',
+ 120329 => 'b',
+ 120330 => 'c',
+ 120331 => 'd',
+ 120332 => 'e',
+ 120333 => 'f',
+ 120334 => 'g',
+ 120335 => 'h',
+ 120336 => 'i',
+ 120337 => 'j',
+ 120338 => 'k',
+ 120339 => 'l',
+ 120340 => 'm',
+ 120341 => 'n',
+ 120342 => 'o',
+ 120343 => 'p',
+ 120344 => 'q',
+ 120345 => 'r',
+ 120346 => 's',
+ 120347 => 't',
+ 120348 => 'u',
+ 120349 => 'v',
+ 120350 => 'w',
+ 120351 => 'x',
+ 120352 => 'y',
+ 120353 => 'z',
+ 120354 => 'a',
+ 120355 => 'b',
+ 120356 => 'c',
+ 120357 => 'd',
+ 120358 => 'e',
+ 120359 => 'f',
+ 120360 => 'g',
+ 120361 => 'h',
+ 120362 => 'i',
+ 120363 => 'j',
+ 120364 => 'k',
+ 120365 => 'l',
+ 120366 => 'm',
+ 120367 => 'n',
+ 120368 => 'o',
+ 120369 => 'p',
+ 120370 => 'q',
+ 120371 => 'r',
+ 120372 => 's',
+ 120373 => 't',
+ 120374 => 'u',
+ 120375 => 'v',
+ 120376 => 'w',
+ 120377 => 'x',
+ 120378 => 'y',
+ 120379 => 'z',
+ 120380 => 'a',
+ 120381 => 'b',
+ 120382 => 'c',
+ 120383 => 'd',
+ 120384 => 'e',
+ 120385 => 'f',
+ 120386 => 'g',
+ 120387 => 'h',
+ 120388 => 'i',
+ 120389 => 'j',
+ 120390 => 'k',
+ 120391 => 'l',
+ 120392 => 'm',
+ 120393 => 'n',
+ 120394 => 'o',
+ 120395 => 'p',
+ 120396 => 'q',
+ 120397 => 'r',
+ 120398 => 's',
+ 120399 => 't',
+ 120400 => 'u',
+ 120401 => 'v',
+ 120402 => 'w',
+ 120403 => 'x',
+ 120404 => 'y',
+ 120405 => 'z',
+ 120406 => 'a',
+ 120407 => 'b',
+ 120408 => 'c',
+ 120409 => 'd',
+ 120410 => 'e',
+ 120411 => 'f',
+ 120412 => 'g',
+ 120413 => 'h',
+ 120414 => 'i',
+ 120415 => 'j',
+ 120416 => 'k',
+ 120417 => 'l',
+ 120418 => 'm',
+ 120419 => 'n',
+ 120420 => 'o',
+ 120421 => 'p',
+ 120422 => 'q',
+ 120423 => 'r',
+ 120424 => 's',
+ 120425 => 't',
+ 120426 => 'u',
+ 120427 => 'v',
+ 120428 => 'w',
+ 120429 => 'x',
+ 120430 => 'y',
+ 120431 => 'z',
+ 120432 => 'a',
+ 120433 => 'b',
+ 120434 => 'c',
+ 120435 => 'd',
+ 120436 => 'e',
+ 120437 => 'f',
+ 120438 => 'g',
+ 120439 => 'h',
+ 120440 => 'i',
+ 120441 => 'j',
+ 120442 => 'k',
+ 120443 => 'l',
+ 120444 => 'm',
+ 120445 => 'n',
+ 120446 => 'o',
+ 120447 => 'p',
+ 120448 => 'q',
+ 120449 => 'r',
+ 120450 => 's',
+ 120451 => 't',
+ 120452 => 'u',
+ 120453 => 'v',
+ 120454 => 'w',
+ 120455 => 'x',
+ 120456 => 'y',
+ 120457 => 'z',
+ 120458 => 'a',
+ 120459 => 'b',
+ 120460 => 'c',
+ 120461 => 'd',
+ 120462 => 'e',
+ 120463 => 'f',
+ 120464 => 'g',
+ 120465 => 'h',
+ 120466 => 'i',
+ 120467 => 'j',
+ 120468 => 'k',
+ 120469 => 'l',
+ 120470 => 'm',
+ 120471 => 'n',
+ 120472 => 'o',
+ 120473 => 'p',
+ 120474 => 'q',
+ 120475 => 'r',
+ 120476 => 's',
+ 120477 => 't',
+ 120478 => 'u',
+ 120479 => 'v',
+ 120480 => 'w',
+ 120481 => 'x',
+ 120482 => 'y',
+ 120483 => 'z',
+ 120484 => 'ı',
+ 120485 => 'ȷ',
+ 120488 => 'α',
+ 120489 => 'β',
+ 120490 => 'γ',
+ 120491 => 'δ',
+ 120492 => 'ε',
+ 120493 => 'ζ',
+ 120494 => 'η',
+ 120495 => 'θ',
+ 120496 => 'ι',
+ 120497 => 'κ',
+ 120498 => 'λ',
+ 120499 => 'μ',
+ 120500 => 'ν',
+ 120501 => 'ξ',
+ 120502 => 'ο',
+ 120503 => 'π',
+ 120504 => 'ρ',
+ 120505 => 'θ',
+ 120506 => 'σ',
+ 120507 => 'τ',
+ 120508 => 'υ',
+ 120509 => 'φ',
+ 120510 => 'χ',
+ 120511 => 'ψ',
+ 120512 => 'ω',
+ 120513 => '∇',
+ 120514 => 'α',
+ 120515 => 'β',
+ 120516 => 'γ',
+ 120517 => 'δ',
+ 120518 => 'ε',
+ 120519 => 'ζ',
+ 120520 => 'η',
+ 120521 => 'θ',
+ 120522 => 'ι',
+ 120523 => 'κ',
+ 120524 => 'λ',
+ 120525 => 'μ',
+ 120526 => 'ν',
+ 120527 => 'ξ',
+ 120528 => 'ο',
+ 120529 => 'π',
+ 120530 => 'ρ',
+ 120531 => 'σ',
+ 120532 => 'σ',
+ 120533 => 'τ',
+ 120534 => 'υ',
+ 120535 => 'φ',
+ 120536 => 'χ',
+ 120537 => 'ψ',
+ 120538 => 'ω',
+ 120539 => '∂',
+ 120540 => 'ε',
+ 120541 => 'θ',
+ 120542 => 'κ',
+ 120543 => 'φ',
+ 120544 => 'ρ',
+ 120545 => 'π',
+ 120546 => 'α',
+ 120547 => 'β',
+ 120548 => 'γ',
+ 120549 => 'δ',
+ 120550 => 'ε',
+ 120551 => 'ζ',
+ 120552 => 'η',
+ 120553 => 'θ',
+ 120554 => 'ι',
+ 120555 => 'κ',
+ 120556 => 'λ',
+ 120557 => 'μ',
+ 120558 => 'ν',
+ 120559 => 'ξ',
+ 120560 => 'ο',
+ 120561 => 'π',
+ 120562 => 'ρ',
+ 120563 => 'θ',
+ 120564 => 'σ',
+ 120565 => 'τ',
+ 120566 => 'υ',
+ 120567 => 'φ',
+ 120568 => 'χ',
+ 120569 => 'ψ',
+ 120570 => 'ω',
+ 120571 => '∇',
+ 120572 => 'α',
+ 120573 => 'β',
+ 120574 => 'γ',
+ 120575 => 'δ',
+ 120576 => 'ε',
+ 120577 => 'ζ',
+ 120578 => 'η',
+ 120579 => 'θ',
+ 120580 => 'ι',
+ 120581 => 'κ',
+ 120582 => 'λ',
+ 120583 => 'μ',
+ 120584 => 'ν',
+ 120585 => 'ξ',
+ 120586 => 'ο',
+ 120587 => 'π',
+ 120588 => 'ρ',
+ 120589 => 'σ',
+ 120590 => 'σ',
+ 120591 => 'τ',
+ 120592 => 'υ',
+ 120593 => 'φ',
+ 120594 => 'χ',
+ 120595 => 'ψ',
+ 120596 => 'ω',
+ 120597 => '∂',
+ 120598 => 'ε',
+ 120599 => 'θ',
+ 120600 => 'κ',
+ 120601 => 'φ',
+ 120602 => 'ρ',
+ 120603 => 'π',
+ 120604 => 'α',
+ 120605 => 'β',
+ 120606 => 'γ',
+ 120607 => 'δ',
+ 120608 => 'ε',
+ 120609 => 'ζ',
+ 120610 => 'η',
+ 120611 => 'θ',
+ 120612 => 'ι',
+ 120613 => 'κ',
+ 120614 => 'λ',
+ 120615 => 'μ',
+ 120616 => 'ν',
+ 120617 => 'ξ',
+ 120618 => 'ο',
+ 120619 => 'π',
+ 120620 => 'ρ',
+ 120621 => 'θ',
+ 120622 => 'σ',
+ 120623 => 'τ',
+ 120624 => 'υ',
+ 120625 => 'φ',
+ 120626 => 'χ',
+ 120627 => 'ψ',
+ 120628 => 'ω',
+ 120629 => '∇',
+ 120630 => 'α',
+ 120631 => 'β',
+ 120632 => 'γ',
+ 120633 => 'δ',
+ 120634 => 'ε',
+ 120635 => 'ζ',
+ 120636 => 'η',
+ 120637 => 'θ',
+ 120638 => 'ι',
+ 120639 => 'κ',
+ 120640 => 'λ',
+ 120641 => 'μ',
+ 120642 => 'ν',
+ 120643 => 'ξ',
+ 120644 => 'ο',
+ 120645 => 'π',
+ 120646 => 'ρ',
+ 120647 => 'σ',
+ 120648 => 'σ',
+ 120649 => 'τ',
+ 120650 => 'υ',
+ 120651 => 'φ',
+ 120652 => 'χ',
+ 120653 => 'ψ',
+ 120654 => 'ω',
+ 120655 => '∂',
+ 120656 => 'ε',
+ 120657 => 'θ',
+ 120658 => 'κ',
+ 120659 => 'φ',
+ 120660 => 'ρ',
+ 120661 => 'π',
+ 120662 => 'α',
+ 120663 => 'β',
+ 120664 => 'γ',
+ 120665 => 'δ',
+ 120666 => 'ε',
+ 120667 => 'ζ',
+ 120668 => 'η',
+ 120669 => 'θ',
+ 120670 => 'ι',
+ 120671 => 'κ',
+ 120672 => 'λ',
+ 120673 => 'μ',
+ 120674 => 'ν',
+ 120675 => 'ξ',
+ 120676 => 'ο',
+ 120677 => 'π',
+ 120678 => 'ρ',
+ 120679 => 'θ',
+ 120680 => 'σ',
+ 120681 => 'τ',
+ 120682 => 'υ',
+ 120683 => 'φ',
+ 120684 => 'χ',
+ 120685 => 'ψ',
+ 120686 => 'ω',
+ 120687 => '∇',
+ 120688 => 'α',
+ 120689 => 'β',
+ 120690 => 'γ',
+ 120691 => 'δ',
+ 120692 => 'ε',
+ 120693 => 'ζ',
+ 120694 => 'η',
+ 120695 => 'θ',
+ 120696 => 'ι',
+ 120697 => 'κ',
+ 120698 => 'λ',
+ 120699 => 'μ',
+ 120700 => 'ν',
+ 120701 => 'ξ',
+ 120702 => 'ο',
+ 120703 => 'π',
+ 120704 => 'ρ',
+ 120705 => 'σ',
+ 120706 => 'σ',
+ 120707 => 'τ',
+ 120708 => 'υ',
+ 120709 => 'φ',
+ 120710 => 'χ',
+ 120711 => 'ψ',
+ 120712 => 'ω',
+ 120713 => '∂',
+ 120714 => 'ε',
+ 120715 => 'θ',
+ 120716 => 'κ',
+ 120717 => 'φ',
+ 120718 => 'ρ',
+ 120719 => 'π',
+ 120720 => 'α',
+ 120721 => 'β',
+ 120722 => 'γ',
+ 120723 => 'δ',
+ 120724 => 'ε',
+ 120725 => 'ζ',
+ 120726 => 'η',
+ 120727 => 'θ',
+ 120728 => 'ι',
+ 120729 => 'κ',
+ 120730 => 'λ',
+ 120731 => 'μ',
+ 120732 => 'ν',
+ 120733 => 'ξ',
+ 120734 => 'ο',
+ 120735 => 'π',
+ 120736 => 'ρ',
+ 120737 => 'θ',
+ 120738 => 'σ',
+ 120739 => 'τ',
+ 120740 => 'υ',
+ 120741 => 'φ',
+ 120742 => 'χ',
+ 120743 => 'ψ',
+ 120744 => 'ω',
+ 120745 => '∇',
+ 120746 => 'α',
+ 120747 => 'β',
+ 120748 => 'γ',
+ 120749 => 'δ',
+ 120750 => 'ε',
+ 120751 => 'ζ',
+ 120752 => 'η',
+ 120753 => 'θ',
+ 120754 => 'ι',
+ 120755 => 'κ',
+ 120756 => 'λ',
+ 120757 => 'μ',
+ 120758 => 'ν',
+ 120759 => 'ξ',
+ 120760 => 'ο',
+ 120761 => 'π',
+ 120762 => 'ρ',
+ 120763 => 'σ',
+ 120764 => 'σ',
+ 120765 => 'τ',
+ 120766 => 'υ',
+ 120767 => 'φ',
+ 120768 => 'χ',
+ 120769 => 'ψ',
+ 120770 => 'ω',
+ 120771 => '∂',
+ 120772 => 'ε',
+ 120773 => 'θ',
+ 120774 => 'κ',
+ 120775 => 'φ',
+ 120776 => 'ρ',
+ 120777 => 'π',
+ 120778 => 'ϝ',
+ 120779 => 'ϝ',
+ 120782 => '0',
+ 120783 => '1',
+ 120784 => '2',
+ 120785 => '3',
+ 120786 => '4',
+ 120787 => '5',
+ 120788 => '6',
+ 120789 => '7',
+ 120790 => '8',
+ 120791 => '9',
+ 120792 => '0',
+ 120793 => '1',
+ 120794 => '2',
+ 120795 => '3',
+ 120796 => '4',
+ 120797 => '5',
+ 120798 => '6',
+ 120799 => '7',
+ 120800 => '8',
+ 120801 => '9',
+ 120802 => '0',
+ 120803 => '1',
+ 120804 => '2',
+ 120805 => '3',
+ 120806 => '4',
+ 120807 => '5',
+ 120808 => '6',
+ 120809 => '7',
+ 120810 => '8',
+ 120811 => '9',
+ 120812 => '0',
+ 120813 => '1',
+ 120814 => '2',
+ 120815 => '3',
+ 120816 => '4',
+ 120817 => '5',
+ 120818 => '6',
+ 120819 => '7',
+ 120820 => '8',
+ 120821 => '9',
+ 120822 => '0',
+ 120823 => '1',
+ 120824 => '2',
+ 120825 => '3',
+ 120826 => '4',
+ 120827 => '5',
+ 120828 => '6',
+ 120829 => '7',
+ 120830 => '8',
+ 120831 => '9',
+ 125184 => '𞤢',
+ 125185 => '𞤣',
+ 125186 => '𞤤',
+ 125187 => '𞤥',
+ 125188 => '𞤦',
+ 125189 => '𞤧',
+ 125190 => '𞤨',
+ 125191 => '𞤩',
+ 125192 => '𞤪',
+ 125193 => '𞤫',
+ 125194 => '𞤬',
+ 125195 => '𞤭',
+ 125196 => '𞤮',
+ 125197 => '𞤯',
+ 125198 => '𞤰',
+ 125199 => '𞤱',
+ 125200 => '𞤲',
+ 125201 => '𞤳',
+ 125202 => '𞤴',
+ 125203 => '𞤵',
+ 125204 => '𞤶',
+ 125205 => '𞤷',
+ 125206 => '𞤸',
+ 125207 => '𞤹',
+ 125208 => '𞤺',
+ 125209 => '𞤻',
+ 125210 => '𞤼',
+ 125211 => '𞤽',
+ 125212 => '𞤾',
+ 125213 => '𞤿',
+ 125214 => '𞥀',
+ 125215 => '𞥁',
+ 125216 => '𞥂',
+ 125217 => '𞥃',
+ 126464 => 'ا',
+ 126465 => 'ب',
+ 126466 => 'ج',
+ 126467 => 'د',
+ 126469 => 'و',
+ 126470 => 'ز',
+ 126471 => 'ح',
+ 126472 => 'ط',
+ 126473 => 'ي',
+ 126474 => 'ك',
+ 126475 => 'ل',
+ 126476 => 'م',
+ 126477 => 'ن',
+ 126478 => 'س',
+ 126479 => 'ع',
+ 126480 => 'ف',
+ 126481 => 'ص',
+ 126482 => 'ق',
+ 126483 => 'ر',
+ 126484 => 'ش',
+ 126485 => 'ت',
+ 126486 => 'ث',
+ 126487 => 'خ',
+ 126488 => 'ذ',
+ 126489 => 'ض',
+ 126490 => 'ظ',
+ 126491 => 'غ',
+ 126492 => 'ٮ',
+ 126493 => 'ں',
+ 126494 => 'ڡ',
+ 126495 => 'ٯ',
+ 126497 => 'ب',
+ 126498 => 'ج',
+ 126500 => 'ه',
+ 126503 => 'ح',
+ 126505 => 'ي',
+ 126506 => 'ك',
+ 126507 => 'ل',
+ 126508 => 'م',
+ 126509 => 'ن',
+ 126510 => 'س',
+ 126511 => 'ع',
+ 126512 => 'ف',
+ 126513 => 'ص',
+ 126514 => 'ق',
+ 126516 => 'ش',
+ 126517 => 'ت',
+ 126518 => 'ث',
+ 126519 => 'خ',
+ 126521 => 'ض',
+ 126523 => 'غ',
+ 126530 => 'ج',
+ 126535 => 'ح',
+ 126537 => 'ي',
+ 126539 => 'ل',
+ 126541 => 'ن',
+ 126542 => 'س',
+ 126543 => 'ع',
+ 126545 => 'ص',
+ 126546 => 'ق',
+ 126548 => 'ش',
+ 126551 => 'خ',
+ 126553 => 'ض',
+ 126555 => 'غ',
+ 126557 => 'ں',
+ 126559 => 'ٯ',
+ 126561 => 'ب',
+ 126562 => 'ج',
+ 126564 => 'ه',
+ 126567 => 'ح',
+ 126568 => 'ط',
+ 126569 => 'ي',
+ 126570 => 'ك',
+ 126572 => 'م',
+ 126573 => 'ن',
+ 126574 => 'س',
+ 126575 => 'ع',
+ 126576 => 'ف',
+ 126577 => 'ص',
+ 126578 => 'ق',
+ 126580 => 'ش',
+ 126581 => 'ت',
+ 126582 => 'ث',
+ 126583 => 'خ',
+ 126585 => 'ض',
+ 126586 => 'ظ',
+ 126587 => 'غ',
+ 126588 => 'ٮ',
+ 126590 => 'ڡ',
+ 126592 => 'ا',
+ 126593 => 'ب',
+ 126594 => 'ج',
+ 126595 => 'د',
+ 126596 => 'ه',
+ 126597 => 'و',
+ 126598 => 'ز',
+ 126599 => 'ح',
+ 126600 => 'ط',
+ 126601 => 'ي',
+ 126603 => 'ل',
+ 126604 => 'م',
+ 126605 => 'ن',
+ 126606 => 'س',
+ 126607 => 'ع',
+ 126608 => 'ف',
+ 126609 => 'ص',
+ 126610 => 'ق',
+ 126611 => 'ر',
+ 126612 => 'ش',
+ 126613 => 'ت',
+ 126614 => 'ث',
+ 126615 => 'خ',
+ 126616 => 'ذ',
+ 126617 => 'ض',
+ 126618 => 'ظ',
+ 126619 => 'غ',
+ 126625 => 'ب',
+ 126626 => 'ج',
+ 126627 => 'د',
+ 126629 => 'و',
+ 126630 => 'ز',
+ 126631 => 'ح',
+ 126632 => 'ط',
+ 126633 => 'ي',
+ 126635 => 'ل',
+ 126636 => 'م',
+ 126637 => 'ن',
+ 126638 => 'س',
+ 126639 => 'ع',
+ 126640 => 'ف',
+ 126641 => 'ص',
+ 126642 => 'ق',
+ 126643 => 'ر',
+ 126644 => 'ش',
+ 126645 => 'ت',
+ 126646 => 'ث',
+ 126647 => 'خ',
+ 126648 => 'ذ',
+ 126649 => 'ض',
+ 126650 => 'ظ',
+ 126651 => 'غ',
+ 127274 => '〔s〕',
+ 127275 => 'c',
+ 127276 => 'r',
+ 127277 => 'cd',
+ 127278 => 'wz',
+ 127280 => 'a',
+ 127281 => 'b',
+ 127282 => 'c',
+ 127283 => 'd',
+ 127284 => 'e',
+ 127285 => 'f',
+ 127286 => 'g',
+ 127287 => 'h',
+ 127288 => 'i',
+ 127289 => 'j',
+ 127290 => 'k',
+ 127291 => 'l',
+ 127292 => 'm',
+ 127293 => 'n',
+ 127294 => 'o',
+ 127295 => 'p',
+ 127296 => 'q',
+ 127297 => 'r',
+ 127298 => 's',
+ 127299 => 't',
+ 127300 => 'u',
+ 127301 => 'v',
+ 127302 => 'w',
+ 127303 => 'x',
+ 127304 => 'y',
+ 127305 => 'z',
+ 127306 => 'hv',
+ 127307 => 'mv',
+ 127308 => 'sd',
+ 127309 => 'ss',
+ 127310 => 'ppv',
+ 127311 => 'wc',
+ 127338 => 'mc',
+ 127339 => 'md',
+ 127340 => 'mr',
+ 127376 => 'dj',
+ 127488 => 'ほか',
+ 127489 => 'ココ',
+ 127490 => 'サ',
+ 127504 => '手',
+ 127505 => '字',
+ 127506 => '双',
+ 127507 => 'デ',
+ 127508 => '二',
+ 127509 => '多',
+ 127510 => '解',
+ 127511 => '天',
+ 127512 => '交',
+ 127513 => '映',
+ 127514 => '無',
+ 127515 => '料',
+ 127516 => '前',
+ 127517 => '後',
+ 127518 => '再',
+ 127519 => '新',
+ 127520 => '初',
+ 127521 => '終',
+ 127522 => '生',
+ 127523 => '販',
+ 127524 => '声',
+ 127525 => '吹',
+ 127526 => '演',
+ 127527 => '投',
+ 127528 => '捕',
+ 127529 => '一',
+ 127530 => '三',
+ 127531 => '遊',
+ 127532 => '左',
+ 127533 => '中',
+ 127534 => '右',
+ 127535 => '指',
+ 127536 => '走',
+ 127537 => '打',
+ 127538 => '禁',
+ 127539 => '空',
+ 127540 => '合',
+ 127541 => '満',
+ 127542 => '有',
+ 127543 => '月',
+ 127544 => '申',
+ 127545 => '割',
+ 127546 => '営',
+ 127547 => '配',
+ 127552 => '〔本〕',
+ 127553 => '〔三〕',
+ 127554 => '〔二〕',
+ 127555 => '〔安〕',
+ 127556 => '〔点〕',
+ 127557 => '〔打〕',
+ 127558 => '〔盗〕',
+ 127559 => '〔勝〕',
+ 127560 => '〔敗〕',
+ 127568 => '得',
+ 127569 => '可',
+ 130032 => '0',
+ 130033 => '1',
+ 130034 => '2',
+ 130035 => '3',
+ 130036 => '4',
+ 130037 => '5',
+ 130038 => '6',
+ 130039 => '7',
+ 130040 => '8',
+ 130041 => '9',
+ 194560 => '丽',
+ 194561 => '丸',
+ 194562 => '乁',
+ 194563 => '𠄢',
+ 194564 => '你',
+ 194565 => '侮',
+ 194566 => '侻',
+ 194567 => '倂',
+ 194568 => '偺',
+ 194569 => '備',
+ 194570 => '僧',
+ 194571 => '像',
+ 194572 => '㒞',
+ 194573 => '𠘺',
+ 194574 => '免',
+ 194575 => '兔',
+ 194576 => '兤',
+ 194577 => '具',
+ 194578 => '𠔜',
+ 194579 => '㒹',
+ 194580 => '內',
+ 194581 => '再',
+ 194582 => '𠕋',
+ 194583 => '冗',
+ 194584 => '冤',
+ 194585 => '仌',
+ 194586 => '冬',
+ 194587 => '况',
+ 194588 => '𩇟',
+ 194589 => '凵',
+ 194590 => '刃',
+ 194591 => '㓟',
+ 194592 => '刻',
+ 194593 => '剆',
+ 194594 => '割',
+ 194595 => '剷',
+ 194596 => '㔕',
+ 194597 => '勇',
+ 194598 => '勉',
+ 194599 => '勤',
+ 194600 => '勺',
+ 194601 => '包',
+ 194602 => '匆',
+ 194603 => '北',
+ 194604 => '卉',
+ 194605 => '卑',
+ 194606 => '博',
+ 194607 => '即',
+ 194608 => '卽',
+ 194609 => '卿',
+ 194610 => '卿',
+ 194611 => '卿',
+ 194612 => '𠨬',
+ 194613 => '灰',
+ 194614 => '及',
+ 194615 => '叟',
+ 194616 => '𠭣',
+ 194617 => '叫',
+ 194618 => '叱',
+ 194619 => '吆',
+ 194620 => '咞',
+ 194621 => '吸',
+ 194622 => '呈',
+ 194623 => '周',
+ 194624 => '咢',
+ 194625 => '哶',
+ 194626 => '唐',
+ 194627 => '啓',
+ 194628 => '啣',
+ 194629 => '善',
+ 194630 => '善',
+ 194631 => '喙',
+ 194632 => '喫',
+ 194633 => '喳',
+ 194634 => '嗂',
+ 194635 => '圖',
+ 194636 => '嘆',
+ 194637 => '圗',
+ 194638 => '噑',
+ 194639 => '噴',
+ 194640 => '切',
+ 194641 => '壮',
+ 194642 => '城',
+ 194643 => '埴',
+ 194644 => '堍',
+ 194645 => '型',
+ 194646 => '堲',
+ 194647 => '報',
+ 194648 => '墬',
+ 194649 => '𡓤',
+ 194650 => '売',
+ 194651 => '壷',
+ 194652 => '夆',
+ 194653 => '多',
+ 194654 => '夢',
+ 194655 => '奢',
+ 194656 => '𡚨',
+ 194657 => '𡛪',
+ 194658 => '姬',
+ 194659 => '娛',
+ 194660 => '娧',
+ 194661 => '姘',
+ 194662 => '婦',
+ 194663 => '㛮',
+ 194665 => '嬈',
+ 194666 => '嬾',
+ 194667 => '嬾',
+ 194668 => '𡧈',
+ 194669 => '寃',
+ 194670 => '寘',
+ 194671 => '寧',
+ 194672 => '寳',
+ 194673 => '𡬘',
+ 194674 => '寿',
+ 194675 => '将',
+ 194677 => '尢',
+ 194678 => '㞁',
+ 194679 => '屠',
+ 194680 => '屮',
+ 194681 => '峀',
+ 194682 => '岍',
+ 194683 => '𡷤',
+ 194684 => '嵃',
+ 194685 => '𡷦',
+ 194686 => '嵮',
+ 194687 => '嵫',
+ 194688 => '嵼',
+ 194689 => '巡',
+ 194690 => '巢',
+ 194691 => '㠯',
+ 194692 => '巽',
+ 194693 => '帨',
+ 194694 => '帽',
+ 194695 => '幩',
+ 194696 => '㡢',
+ 194697 => '𢆃',
+ 194698 => '㡼',
+ 194699 => '庰',
+ 194700 => '庳',
+ 194701 => '庶',
+ 194702 => '廊',
+ 194703 => '𪎒',
+ 194704 => '廾',
+ 194705 => '𢌱',
+ 194706 => '𢌱',
+ 194707 => '舁',
+ 194708 => '弢',
+ 194709 => '弢',
+ 194710 => '㣇',
+ 194711 => '𣊸',
+ 194712 => '𦇚',
+ 194713 => '形',
+ 194714 => '彫',
+ 194715 => '㣣',
+ 194716 => '徚',
+ 194717 => '忍',
+ 194718 => '志',
+ 194719 => '忹',
+ 194720 => '悁',
+ 194721 => '㤺',
+ 194722 => '㤜',
+ 194723 => '悔',
+ 194724 => '𢛔',
+ 194725 => '惇',
+ 194726 => '慈',
+ 194727 => '慌',
+ 194728 => '慎',
+ 194729 => '慌',
+ 194730 => '慺',
+ 194731 => '憎',
+ 194732 => '憲',
+ 194733 => '憤',
+ 194734 => '憯',
+ 194735 => '懞',
+ 194736 => '懲',
+ 194737 => '懶',
+ 194738 => '成',
+ 194739 => '戛',
+ 194740 => '扝',
+ 194741 => '抱',
+ 194742 => '拔',
+ 194743 => '捐',
+ 194744 => '𢬌',
+ 194745 => '挽',
+ 194746 => '拼',
+ 194747 => '捨',
+ 194748 => '掃',
+ 194749 => '揤',
+ 194750 => '𢯱',
+ 194751 => '搢',
+ 194752 => '揅',
+ 194753 => '掩',
+ 194754 => '㨮',
+ 194755 => '摩',
+ 194756 => '摾',
+ 194757 => '撝',
+ 194758 => '摷',
+ 194759 => '㩬',
+ 194760 => '敏',
+ 194761 => '敬',
+ 194762 => '𣀊',
+ 194763 => '旣',
+ 194764 => '書',
+ 194765 => '晉',
+ 194766 => '㬙',
+ 194767 => '暑',
+ 194768 => '㬈',
+ 194769 => '㫤',
+ 194770 => '冒',
+ 194771 => '冕',
+ 194772 => '最',
+ 194773 => '暜',
+ 194774 => '肭',
+ 194775 => '䏙',
+ 194776 => '朗',
+ 194777 => '望',
+ 194778 => '朡',
+ 194779 => '杞',
+ 194780 => '杓',
+ 194781 => '𣏃',
+ 194782 => '㭉',
+ 194783 => '柺',
+ 194784 => '枅',
+ 194785 => '桒',
+ 194786 => '梅',
+ 194787 => '𣑭',
+ 194788 => '梎',
+ 194789 => '栟',
+ 194790 => '椔',
+ 194791 => '㮝',
+ 194792 => '楂',
+ 194793 => '榣',
+ 194794 => '槪',
+ 194795 => '檨',
+ 194796 => '𣚣',
+ 194797 => '櫛',
+ 194798 => '㰘',
+ 194799 => '次',
+ 194800 => '𣢧',
+ 194801 => '歔',
+ 194802 => '㱎',
+ 194803 => '歲',
+ 194804 => '殟',
+ 194805 => '殺',
+ 194806 => '殻',
+ 194807 => '𣪍',
+ 194808 => '𡴋',
+ 194809 => '𣫺',
+ 194810 => '汎',
+ 194811 => '𣲼',
+ 194812 => '沿',
+ 194813 => '泍',
+ 194814 => '汧',
+ 194815 => '洖',
+ 194816 => '派',
+ 194817 => '海',
+ 194818 => '流',
+ 194819 => '浩',
+ 194820 => '浸',
+ 194821 => '涅',
+ 194822 => '𣴞',
+ 194823 => '洴',
+ 194824 => '港',
+ 194825 => '湮',
+ 194826 => '㴳',
+ 194827 => '滋',
+ 194828 => '滇',
+ 194829 => '𣻑',
+ 194830 => '淹',
+ 194831 => '潮',
+ 194832 => '𣽞',
+ 194833 => '𣾎',
+ 194834 => '濆',
+ 194835 => '瀹',
+ 194836 => '瀞',
+ 194837 => '瀛',
+ 194838 => '㶖',
+ 194839 => '灊',
+ 194840 => '災',
+ 194841 => '灷',
+ 194842 => '炭',
+ 194843 => '𠔥',
+ 194844 => '煅',
+ 194845 => '𤉣',
+ 194846 => '熜',
+ 194848 => '爨',
+ 194849 => '爵',
+ 194850 => '牐',
+ 194851 => '𤘈',
+ 194852 => '犀',
+ 194853 => '犕',
+ 194854 => '𤜵',
+ 194855 => '𤠔',
+ 194856 => '獺',
+ 194857 => '王',
+ 194858 => '㺬',
+ 194859 => '玥',
+ 194860 => '㺸',
+ 194861 => '㺸',
+ 194862 => '瑇',
+ 194863 => '瑜',
+ 194864 => '瑱',
+ 194865 => '璅',
+ 194866 => '瓊',
+ 194867 => '㼛',
+ 194868 => '甤',
+ 194869 => '𤰶',
+ 194870 => '甾',
+ 194871 => '𤲒',
+ 194872 => '異',
+ 194873 => '𢆟',
+ 194874 => '瘐',
+ 194875 => '𤾡',
+ 194876 => '𤾸',
+ 194877 => '𥁄',
+ 194878 => '㿼',
+ 194879 => '䀈',
+ 194880 => '直',
+ 194881 => '𥃳',
+ 194882 => '𥃲',
+ 194883 => '𥄙',
+ 194884 => '𥄳',
+ 194885 => '眞',
+ 194886 => '真',
+ 194887 => '真',
+ 194888 => '睊',
+ 194889 => '䀹',
+ 194890 => '瞋',
+ 194891 => '䁆',
+ 194892 => '䂖',
+ 194893 => '𥐝',
+ 194894 => '硎',
+ 194895 => '碌',
+ 194896 => '磌',
+ 194897 => '䃣',
+ 194898 => '𥘦',
+ 194899 => '祖',
+ 194900 => '𥚚',
+ 194901 => '𥛅',
+ 194902 => '福',
+ 194903 => '秫',
+ 194904 => '䄯',
+ 194905 => '穀',
+ 194906 => '穊',
+ 194907 => '穏',
+ 194908 => '𥥼',
+ 194909 => '𥪧',
+ 194910 => '𥪧',
+ 194912 => '䈂',
+ 194913 => '𥮫',
+ 194914 => '篆',
+ 194915 => '築',
+ 194916 => '䈧',
+ 194917 => '𥲀',
+ 194918 => '糒',
+ 194919 => '䊠',
+ 194920 => '糨',
+ 194921 => '糣',
+ 194922 => '紀',
+ 194923 => '𥾆',
+ 194924 => '絣',
+ 194925 => '䌁',
+ 194926 => '緇',
+ 194927 => '縂',
+ 194928 => '繅',
+ 194929 => '䌴',
+ 194930 => '𦈨',
+ 194931 => '𦉇',
+ 194932 => '䍙',
+ 194933 => '𦋙',
+ 194934 => '罺',
+ 194935 => '𦌾',
+ 194936 => '羕',
+ 194937 => '翺',
+ 194938 => '者',
+ 194939 => '𦓚',
+ 194940 => '𦔣',
+ 194941 => '聠',
+ 194942 => '𦖨',
+ 194943 => '聰',
+ 194944 => '𣍟',
+ 194945 => '䏕',
+ 194946 => '育',
+ 194947 => '脃',
+ 194948 => '䐋',
+ 194949 => '脾',
+ 194950 => '媵',
+ 194951 => '𦞧',
+ 194952 => '𦞵',
+ 194953 => '𣎓',
+ 194954 => '𣎜',
+ 194955 => '舁',
+ 194956 => '舄',
+ 194957 => '辞',
+ 194958 => '䑫',
+ 194959 => '芑',
+ 194960 => '芋',
+ 194961 => '芝',
+ 194962 => '劳',
+ 194963 => '花',
+ 194964 => '芳',
+ 194965 => '芽',
+ 194966 => '苦',
+ 194967 => '𦬼',
+ 194968 => '若',
+ 194969 => '茝',
+ 194970 => '荣',
+ 194971 => '莭',
+ 194972 => '茣',
+ 194973 => '莽',
+ 194974 => '菧',
+ 194975 => '著',
+ 194976 => '荓',
+ 194977 => '菊',
+ 194978 => '菌',
+ 194979 => '菜',
+ 194980 => '𦰶',
+ 194981 => '𦵫',
+ 194982 => '𦳕',
+ 194983 => '䔫',
+ 194984 => '蓱',
+ 194985 => '蓳',
+ 194986 => '蔖',
+ 194987 => '𧏊',
+ 194988 => '蕤',
+ 194989 => '𦼬',
+ 194990 => '䕝',
+ 194991 => '䕡',
+ 194992 => '𦾱',
+ 194993 => '𧃒',
+ 194994 => '䕫',
+ 194995 => '虐',
+ 194996 => '虜',
+ 194997 => '虧',
+ 194998 => '虩',
+ 194999 => '蚩',
+ 195000 => '蚈',
+ 195001 => '蜎',
+ 195002 => '蛢',
+ 195003 => '蝹',
+ 195004 => '蜨',
+ 195005 => '蝫',
+ 195006 => '螆',
+ 195008 => '蟡',
+ 195009 => '蠁',
+ 195010 => '䗹',
+ 195011 => '衠',
+ 195012 => '衣',
+ 195013 => '𧙧',
+ 195014 => '裗',
+ 195015 => '裞',
+ 195016 => '䘵',
+ 195017 => '裺',
+ 195018 => '㒻',
+ 195019 => '𧢮',
+ 195020 => '𧥦',
+ 195021 => '䚾',
+ 195022 => '䛇',
+ 195023 => '誠',
+ 195024 => '諭',
+ 195025 => '變',
+ 195026 => '豕',
+ 195027 => '𧲨',
+ 195028 => '貫',
+ 195029 => '賁',
+ 195030 => '贛',
+ 195031 => '起',
+ 195032 => '𧼯',
+ 195033 => '𠠄',
+ 195034 => '跋',
+ 195035 => '趼',
+ 195036 => '跰',
+ 195037 => '𠣞',
+ 195038 => '軔',
+ 195039 => '輸',
+ 195040 => '𨗒',
+ 195041 => '𨗭',
+ 195042 => '邔',
+ 195043 => '郱',
+ 195044 => '鄑',
+ 195045 => '𨜮',
+ 195046 => '鄛',
+ 195047 => '鈸',
+ 195048 => '鋗',
+ 195049 => '鋘',
+ 195050 => '鉼',
+ 195051 => '鏹',
+ 195052 => '鐕',
+ 195053 => '𨯺',
+ 195054 => '開',
+ 195055 => '䦕',
+ 195056 => '閷',
+ 195057 => '𨵷',
+ 195058 => '䧦',
+ 195059 => '雃',
+ 195060 => '嶲',
+ 195061 => '霣',
+ 195062 => '𩅅',
+ 195063 => '𩈚',
+ 195064 => '䩮',
+ 195065 => '䩶',
+ 195066 => '韠',
+ 195067 => '𩐊',
+ 195068 => '䪲',
+ 195069 => '𩒖',
+ 195070 => '頋',
+ 195071 => '頋',
+ 195072 => '頩',
+ 195073 => '𩖶',
+ 195074 => '飢',
+ 195075 => '䬳',
+ 195076 => '餩',
+ 195077 => '馧',
+ 195078 => '駂',
+ 195079 => '駾',
+ 195080 => '䯎',
+ 195081 => '𩬰',
+ 195082 => '鬒',
+ 195083 => '鱀',
+ 195084 => '鳽',
+ 195085 => '䳎',
+ 195086 => '䳭',
+ 195087 => '鵧',
+ 195088 => '𪃎',
+ 195089 => '䳸',
+ 195090 => '𪄅',
+ 195091 => '𪈎',
+ 195092 => '𪊑',
+ 195093 => '麻',
+ 195094 => '䵖',
+ 195095 => '黹',
+ 195096 => '黾',
+ 195097 => '鼅',
+ 195098 => '鼏',
+ 195099 => '鼖',
+ 195100 => '鼻',
+ 195101 => '𪘀',
+);
diff --git a/vendor/symfony/polyfill-intl-idn/Resources/unidata/virama.php b/vendor/symfony/polyfill-intl-idn/Resources/unidata/virama.php
new file mode 100644
index 0000000..1958e37
--- /dev/null
+++ b/vendor/symfony/polyfill-intl-idn/Resources/unidata/virama.php
@@ -0,0 +1,65 @@
+ 9,
+ 2509 => 9,
+ 2637 => 9,
+ 2765 => 9,
+ 2893 => 9,
+ 3021 => 9,
+ 3149 => 9,
+ 3277 => 9,
+ 3387 => 9,
+ 3388 => 9,
+ 3405 => 9,
+ 3530 => 9,
+ 3642 => 9,
+ 3770 => 9,
+ 3972 => 9,
+ 4153 => 9,
+ 4154 => 9,
+ 5908 => 9,
+ 5940 => 9,
+ 6098 => 9,
+ 6752 => 9,
+ 6980 => 9,
+ 7082 => 9,
+ 7083 => 9,
+ 7154 => 9,
+ 7155 => 9,
+ 11647 => 9,
+ 43014 => 9,
+ 43052 => 9,
+ 43204 => 9,
+ 43347 => 9,
+ 43456 => 9,
+ 43766 => 9,
+ 44013 => 9,
+ 68159 => 9,
+ 69702 => 9,
+ 69759 => 9,
+ 69817 => 9,
+ 69939 => 9,
+ 69940 => 9,
+ 70080 => 9,
+ 70197 => 9,
+ 70378 => 9,
+ 70477 => 9,
+ 70722 => 9,
+ 70850 => 9,
+ 71103 => 9,
+ 71231 => 9,
+ 71350 => 9,
+ 71467 => 9,
+ 71737 => 9,
+ 71997 => 9,
+ 71998 => 9,
+ 72160 => 9,
+ 72244 => 9,
+ 72263 => 9,
+ 72345 => 9,
+ 72767 => 9,
+ 73028 => 9,
+ 73029 => 9,
+ 73111 => 9,
+);
diff --git a/vendor/symfony/polyfill-intl-idn/bootstrap.php b/vendor/symfony/polyfill-intl-idn/bootstrap.php
new file mode 100644
index 0000000..f02d5de
--- /dev/null
+++ b/vendor/symfony/polyfill-intl-idn/bootstrap.php
@@ -0,0 +1,141 @@
+
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+use Symfony\Polyfill\Intl\Idn as p;
+
+if (extension_loaded('intl')) {
+ return;
+}
+
+if (!defined('U_IDNA_PROHIBITED_ERROR')) {
+ define('U_IDNA_PROHIBITED_ERROR', 66560);
+}
+if (!defined('U_IDNA_ERROR_START')) {
+ define('U_IDNA_ERROR_START', 66560);
+}
+if (!defined('U_IDNA_UNASSIGNED_ERROR')) {
+ define('U_IDNA_UNASSIGNED_ERROR', 66561);
+}
+if (!defined('U_IDNA_CHECK_BIDI_ERROR')) {
+ define('U_IDNA_CHECK_BIDI_ERROR', 66562);
+}
+if (!defined('U_IDNA_STD3_ASCII_RULES_ERROR')) {
+ define('U_IDNA_STD3_ASCII_RULES_ERROR', 66563);
+}
+if (!defined('U_IDNA_ACE_PREFIX_ERROR')) {
+ define('U_IDNA_ACE_PREFIX_ERROR', 66564);
+}
+if (!defined('U_IDNA_VERIFICATION_ERROR')) {
+ define('U_IDNA_VERIFICATION_ERROR', 66565);
+}
+if (!defined('U_IDNA_LABEL_TOO_LONG_ERROR')) {
+ define('U_IDNA_LABEL_TOO_LONG_ERROR', 66566);
+}
+if (!defined('U_IDNA_ZERO_LENGTH_LABEL_ERROR')) {
+ define('U_IDNA_ZERO_LENGTH_LABEL_ERROR', 66567);
+}
+if (!defined('U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR')) {
+ define('U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR', 66568);
+}
+if (!defined('U_IDNA_ERROR_LIMIT')) {
+ define('U_IDNA_ERROR_LIMIT', 66569);
+}
+if (!defined('U_STRINGPREP_PROHIBITED_ERROR')) {
+ define('U_STRINGPREP_PROHIBITED_ERROR', 66560);
+}
+if (!defined('U_STRINGPREP_UNASSIGNED_ERROR')) {
+ define('U_STRINGPREP_UNASSIGNED_ERROR', 66561);
+}
+if (!defined('U_STRINGPREP_CHECK_BIDI_ERROR')) {
+ define('U_STRINGPREP_CHECK_BIDI_ERROR', 66562);
+}
+if (!defined('IDNA_DEFAULT')) {
+ define('IDNA_DEFAULT', 0);
+}
+if (!defined('IDNA_ALLOW_UNASSIGNED')) {
+ define('IDNA_ALLOW_UNASSIGNED', 1);
+}
+if (!defined('IDNA_USE_STD3_RULES')) {
+ define('IDNA_USE_STD3_RULES', 2);
+}
+if (!defined('IDNA_CHECK_BIDI')) {
+ define('IDNA_CHECK_BIDI', 4);
+}
+if (!defined('IDNA_CHECK_CONTEXTJ')) {
+ define('IDNA_CHECK_CONTEXTJ', 8);
+}
+if (!defined('IDNA_NONTRANSITIONAL_TO_ASCII')) {
+ define('IDNA_NONTRANSITIONAL_TO_ASCII', 16);
+}
+if (!defined('IDNA_NONTRANSITIONAL_TO_UNICODE')) {
+ define('IDNA_NONTRANSITIONAL_TO_UNICODE', 32);
+}
+if (!defined('INTL_IDNA_VARIANT_2003')) {
+ define('INTL_IDNA_VARIANT_2003', 0);
+}
+if (!defined('INTL_IDNA_VARIANT_UTS46')) {
+ define('INTL_IDNA_VARIANT_UTS46', 1);
+}
+if (!defined('IDNA_ERROR_EMPTY_LABEL')) {
+ define('IDNA_ERROR_EMPTY_LABEL', 1);
+}
+if (!defined('IDNA_ERROR_LABEL_TOO_LONG')) {
+ define('IDNA_ERROR_LABEL_TOO_LONG', 2);
+}
+if (!defined('IDNA_ERROR_DOMAIN_NAME_TOO_LONG')) {
+ define('IDNA_ERROR_DOMAIN_NAME_TOO_LONG', 4);
+}
+if (!defined('IDNA_ERROR_LEADING_HYPHEN')) {
+ define('IDNA_ERROR_LEADING_HYPHEN', 8);
+}
+if (!defined('IDNA_ERROR_TRAILING_HYPHEN')) {
+ define('IDNA_ERROR_TRAILING_HYPHEN', 16);
+}
+if (!defined('IDNA_ERROR_HYPHEN_3_4')) {
+ define('IDNA_ERROR_HYPHEN_3_4', 32);
+}
+if (!defined('IDNA_ERROR_LEADING_COMBINING_MARK')) {
+ define('IDNA_ERROR_LEADING_COMBINING_MARK', 64);
+}
+if (!defined('IDNA_ERROR_DISALLOWED')) {
+ define('IDNA_ERROR_DISALLOWED', 128);
+}
+if (!defined('IDNA_ERROR_PUNYCODE')) {
+ define('IDNA_ERROR_PUNYCODE', 256);
+}
+if (!defined('IDNA_ERROR_LABEL_HAS_DOT')) {
+ define('IDNA_ERROR_LABEL_HAS_DOT', 512);
+}
+if (!defined('IDNA_ERROR_INVALID_ACE_LABEL')) {
+ define('IDNA_ERROR_INVALID_ACE_LABEL', 1024);
+}
+if (!defined('IDNA_ERROR_BIDI')) {
+ define('IDNA_ERROR_BIDI', 2048);
+}
+if (!defined('IDNA_ERROR_CONTEXTJ')) {
+ define('IDNA_ERROR_CONTEXTJ', 4096);
+}
+
+if (PHP_VERSION_ID < 70400) {
+ if (!function_exists('idn_to_ascii')) {
+ function idn_to_ascii($domain, $options = IDNA_DEFAULT, $variant = INTL_IDNA_VARIANT_2003, &$idna_info = array()) { return p\Idn::idn_to_ascii($domain, $options, $variant, $idna_info); }
+ }
+ if (!function_exists('idn_to_utf8')) {
+ function idn_to_utf8($domain, $options = IDNA_DEFAULT, $variant = INTL_IDNA_VARIANT_2003, &$idna_info = array()) { return p\Idn::idn_to_utf8($domain, $options, $variant, $idna_info); }
+ }
+} else {
+ if (!function_exists('idn_to_ascii')) {
+ function idn_to_ascii($domain, $options = IDNA_DEFAULT, $variant = INTL_IDNA_VARIANT_UTS46, &$idna_info = array()) { return p\Idn::idn_to_ascii($domain, $options, $variant, $idna_info); }
+ }
+ if (!function_exists('idn_to_utf8')) {
+ function idn_to_utf8($domain, $options = IDNA_DEFAULT, $variant = INTL_IDNA_VARIANT_UTS46, &$idna_info = array()) { return p\Idn::idn_to_utf8($domain, $options, $variant, $idna_info); }
+ }
+}
diff --git a/vendor/symfony/polyfill-intl-idn/composer.json b/vendor/symfony/polyfill-intl-idn/composer.json
new file mode 100644
index 0000000..af34193
--- /dev/null
+++ b/vendor/symfony/polyfill-intl-idn/composer.json
@@ -0,0 +1,45 @@
+{
+ "name": "symfony/polyfill-intl-idn",
+ "type": "library",
+ "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions",
+ "keywords": ["polyfill", "shim", "compatibility", "portable", "intl", "idn"],
+ "homepage": "https://symfony.com",
+ "license": "MIT",
+ "authors": [
+ {
+ "name": "Laurent Bassin",
+ "email": "laurent@bassin.info"
+ },
+ {
+ "name": "Trevor Rowbotham",
+ "email": "trevor.rowbotham@pm.me"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "require": {
+ "php": ">=5.3.3",
+ "symfony/polyfill-intl-normalizer": "^1.10",
+ "symfony/polyfill-php70": "^1.10",
+ "symfony/polyfill-php72": "^1.10"
+ },
+ "autoload": {
+ "psr-4": { "Symfony\\Polyfill\\Intl\\Idn\\": "" },
+ "files": [ "bootstrap.php" ]
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "minimum-stability": "dev",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.18-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ }
+}
diff --git a/vendor/symfony/polyfill-intl-normalizer/LICENSE b/vendor/symfony/polyfill-intl-normalizer/LICENSE
new file mode 100644
index 0000000..4cd8bdd
--- /dev/null
+++ b/vendor/symfony/polyfill-intl-normalizer/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2015-2019 Fabien Potencier
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+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/vendor/symfony/polyfill-intl-normalizer/Normalizer.php b/vendor/symfony/polyfill-intl-normalizer/Normalizer.php
new file mode 100644
index 0000000..a60fae6
--- /dev/null
+++ b/vendor/symfony/polyfill-intl-normalizer/Normalizer.php
@@ -0,0 +1,308 @@
+
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Polyfill\Intl\Normalizer;
+
+/**
+ * Normalizer is a PHP fallback implementation of the Normalizer class provided by the intl extension.
+ *
+ * It has been validated with Unicode 6.3 Normalization Conformance Test.
+ * See http://www.unicode.org/reports/tr15/ for detailed info about Unicode normalizations.
+ *
+ * @author Nicolas Grekas
+ *
+ * @internal
+ */
+class Normalizer
+{
+ const FORM_D = \Normalizer::FORM_D;
+ const FORM_KD = \Normalizer::FORM_KD;
+ const FORM_C = \Normalizer::FORM_C;
+ const FORM_KC = \Normalizer::FORM_KC;
+ const NFD = \Normalizer::NFD;
+ const NFKD = \Normalizer::NFKD;
+ const NFC = \Normalizer::NFC;
+ const NFKC = \Normalizer::NFKC;
+
+ private static $C;
+ private static $D;
+ private static $KD;
+ private static $cC;
+ private static $ulenMask = array("\xC0" => 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4);
+ private static $ASCII = "\x20\x65\x69\x61\x73\x6E\x74\x72\x6F\x6C\x75\x64\x5D\x5B\x63\x6D\x70\x27\x0A\x67\x7C\x68\x76\x2E\x66\x62\x2C\x3A\x3D\x2D\x71\x31\x30\x43\x32\x2A\x79\x78\x29\x28\x4C\x39\x41\x53\x2F\x50\x22\x45\x6A\x4D\x49\x6B\x33\x3E\x35\x54\x3C\x44\x34\x7D\x42\x7B\x38\x46\x77\x52\x36\x37\x55\x47\x4E\x3B\x4A\x7A\x56\x23\x48\x4F\x57\x5F\x26\x21\x4B\x3F\x58\x51\x25\x59\x5C\x09\x5A\x2B\x7E\x5E\x24\x40\x60\x7F\x00\x01\x02\x03\x04\x05\x06\x07\x08\x0B\x0C\x0D\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F";
+
+ public static function isNormalized($s, $form = self::NFC)
+ {
+ if (!\in_array($form, array(self::NFD, self::NFKD, self::NFC, self::NFKC))) {
+ return false;
+ }
+ $s = (string) $s;
+ if (!isset($s[strspn($s, self::$ASCII)])) {
+ return true;
+ }
+ if (self::NFC == $form && preg_match('//u', $s) && !preg_match('/[^\x00-\x{2FF}]/u', $s)) {
+ return true;
+ }
+
+ return self::normalize($s, $form) === $s;
+ }
+
+ public static function normalize($s, $form = self::NFC)
+ {
+ $s = (string) $s;
+ if (!preg_match('//u', $s)) {
+ return false;
+ }
+
+ switch ($form) {
+ case self::NFC: $C = true; $K = false; break;
+ case self::NFD: $C = false; $K = false; break;
+ case self::NFKC: $C = true; $K = true; break;
+ case self::NFKD: $C = false; $K = true; break;
+ default:
+ if (\defined('Normalizer::NONE') && \Normalizer::NONE == $form) {
+ return $s;
+ }
+
+ return false;
+ }
+
+ if ('' === $s) {
+ return '';
+ }
+
+ if ($K && null === self::$KD) {
+ self::$KD = self::getData('compatibilityDecomposition');
+ }
+
+ if (null === self::$D) {
+ self::$D = self::getData('canonicalDecomposition');
+ self::$cC = self::getData('combiningClass');
+ }
+
+ if (null !== $mbEncoding = (2 /* MB_OVERLOAD_STRING */ & (int) ini_get('mbstring.func_overload')) ? mb_internal_encoding() : null) {
+ mb_internal_encoding('8bit');
+ }
+
+ $r = self::decompose($s, $K);
+
+ if ($C) {
+ if (null === self::$C) {
+ self::$C = self::getData('canonicalComposition');
+ }
+
+ $r = self::recompose($r);
+ }
+ if (null !== $mbEncoding) {
+ mb_internal_encoding($mbEncoding);
+ }
+
+ return $r;
+ }
+
+ private static function recompose($s)
+ {
+ $ASCII = self::$ASCII;
+ $compMap = self::$C;
+ $combClass = self::$cC;
+ $ulenMask = self::$ulenMask;
+
+ $result = $tail = '';
+
+ $i = $s[0] < "\x80" ? 1 : $ulenMask[$s[0] & "\xF0"];
+ $len = \strlen($s);
+
+ $lastUchr = substr($s, 0, $i);
+ $lastUcls = isset($combClass[$lastUchr]) ? 256 : 0;
+
+ while ($i < $len) {
+ if ($s[$i] < "\x80") {
+ // ASCII chars
+
+ if ($tail) {
+ $lastUchr .= $tail;
+ $tail = '';
+ }
+
+ if ($j = strspn($s, $ASCII, $i + 1)) {
+ $lastUchr .= substr($s, $i, $j);
+ $i += $j;
+ }
+
+ $result .= $lastUchr;
+ $lastUchr = $s[$i];
+ $lastUcls = 0;
+ ++$i;
+ continue;
+ }
+
+ $ulen = $ulenMask[$s[$i] & "\xF0"];
+ $uchr = substr($s, $i, $ulen);
+
+ if ($lastUchr < "\xE1\x84\x80" || "\xE1\x84\x92" < $lastUchr
+ || $uchr < "\xE1\x85\xA1" || "\xE1\x85\xB5" < $uchr
+ || $lastUcls) {
+ // Table lookup and combining chars composition
+
+ $ucls = isset($combClass[$uchr]) ? $combClass[$uchr] : 0;
+
+ if (isset($compMap[$lastUchr.$uchr]) && (!$lastUcls || $lastUcls < $ucls)) {
+ $lastUchr = $compMap[$lastUchr.$uchr];
+ } elseif ($lastUcls = $ucls) {
+ $tail .= $uchr;
+ } else {
+ if ($tail) {
+ $lastUchr .= $tail;
+ $tail = '';
+ }
+
+ $result .= $lastUchr;
+ $lastUchr = $uchr;
+ }
+ } else {
+ // Hangul chars
+
+ $L = \ord($lastUchr[2]) - 0x80;
+ $V = \ord($uchr[2]) - 0xA1;
+ $T = 0;
+
+ $uchr = substr($s, $i + $ulen, 3);
+
+ if ("\xE1\x86\xA7" <= $uchr && $uchr <= "\xE1\x87\x82") {
+ $T = \ord($uchr[2]) - 0xA7;
+ 0 > $T && $T += 0x40;
+ $ulen += 3;
+ }
+
+ $L = 0xAC00 + ($L * 21 + $V) * 28 + $T;
+ $lastUchr = \chr(0xE0 | $L >> 12).\chr(0x80 | $L >> 6 & 0x3F).\chr(0x80 | $L & 0x3F);
+ }
+
+ $i += $ulen;
+ }
+
+ return $result.$lastUchr.$tail;
+ }
+
+ private static function decompose($s, $c)
+ {
+ $result = '';
+
+ $ASCII = self::$ASCII;
+ $decompMap = self::$D;
+ $combClass = self::$cC;
+ $ulenMask = self::$ulenMask;
+ if ($c) {
+ $compatMap = self::$KD;
+ }
+
+ $c = array();
+ $i = 0;
+ $len = \strlen($s);
+
+ while ($i < $len) {
+ if ($s[$i] < "\x80") {
+ // ASCII chars
+
+ if ($c) {
+ ksort($c);
+ $result .= implode('', $c);
+ $c = array();
+ }
+
+ $j = 1 + strspn($s, $ASCII, $i + 1);
+ $result .= substr($s, $i, $j);
+ $i += $j;
+ continue;
+ }
+
+ $ulen = $ulenMask[$s[$i] & "\xF0"];
+ $uchr = substr($s, $i, $ulen);
+ $i += $ulen;
+
+ if ($uchr < "\xEA\xB0\x80" || "\xED\x9E\xA3" < $uchr) {
+ // Table lookup
+
+ if ($uchr !== $j = isset($compatMap[$uchr]) ? $compatMap[$uchr] : (isset($decompMap[$uchr]) ? $decompMap[$uchr] : $uchr)) {
+ $uchr = $j;
+
+ $j = \strlen($uchr);
+ $ulen = $uchr[0] < "\x80" ? 1 : $ulenMask[$uchr[0] & "\xF0"];
+
+ if ($ulen != $j) {
+ // Put trailing chars in $s
+
+ $j -= $ulen;
+ $i -= $j;
+
+ if (0 > $i) {
+ $s = str_repeat(' ', -$i).$s;
+ $len -= $i;
+ $i = 0;
+ }
+
+ while ($j--) {
+ $s[$i + $j] = $uchr[$ulen + $j];
+ }
+
+ $uchr = substr($uchr, 0, $ulen);
+ }
+ }
+ if (isset($combClass[$uchr])) {
+ // Combining chars, for sorting
+
+ if (!isset($c[$combClass[$uchr]])) {
+ $c[$combClass[$uchr]] = '';
+ }
+ $c[$combClass[$uchr]] .= $uchr;
+ continue;
+ }
+ } else {
+ // Hangul chars
+
+ $uchr = unpack('C*', $uchr);
+ $j = (($uchr[1] - 224) << 12) + (($uchr[2] - 128) << 6) + $uchr[3] - 0xAC80;
+
+ $uchr = "\xE1\x84".\chr(0x80 + (int) ($j / 588))
+ ."\xE1\x85".\chr(0xA1 + (int) (($j % 588) / 28));
+
+ if ($j %= 28) {
+ $uchr .= $j < 25
+ ? ("\xE1\x86".\chr(0xA7 + $j))
+ : ("\xE1\x87".\chr(0x67 + $j));
+ }
+ }
+ if ($c) {
+ ksort($c);
+ $result .= implode('', $c);
+ $c = array();
+ }
+
+ $result .= $uchr;
+ }
+
+ if ($c) {
+ ksort($c);
+ $result .= implode('', $c);
+ }
+
+ return $result;
+ }
+
+ private static function getData($file)
+ {
+ if (file_exists($file = __DIR__.'/Resources/unidata/'.$file.'.php')) {
+ return require $file;
+ }
+
+ return false;
+ }
+}
diff --git a/vendor/symfony/polyfill-intl-normalizer/README.md b/vendor/symfony/polyfill-intl-normalizer/README.md
new file mode 100644
index 0000000..15060c5
--- /dev/null
+++ b/vendor/symfony/polyfill-intl-normalizer/README.md
@@ -0,0 +1,14 @@
+Symfony Polyfill / Intl: Normalizer
+===================================
+
+This component provides a fallback implementation for the
+[`Normalizer`](https://php.net/Normalizer) class provided
+by the [Intl](https://php.net/intl) extension.
+
+More information can be found in the
+[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md).
+
+License
+=======
+
+This library is released under the [MIT license](LICENSE).
diff --git a/vendor/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php b/vendor/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php
new file mode 100644
index 0000000..ca18eff
--- /dev/null
+++ b/vendor/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php
@@ -0,0 +1,17 @@
+ 'À',
+ 'Á' => 'Á',
+ 'Â' => 'Â',
+ 'Ã' => 'Ã',
+ 'Ä' => 'Ä',
+ 'Å' => 'Å',
+ 'Ç' => 'Ç',
+ 'È' => 'È',
+ 'É' => 'É',
+ 'Ê' => 'Ê',
+ 'Ë' => 'Ë',
+ 'Ì' => 'Ì',
+ 'Í' => 'Í',
+ 'Î' => 'Î',
+ 'Ï' => 'Ï',
+ 'Ñ' => 'Ñ',
+ 'Ò' => 'Ò',
+ 'Ó' => 'Ó',
+ 'Ô' => 'Ô',
+ 'Õ' => 'Õ',
+ 'Ö' => 'Ö',
+ 'Ù' => 'Ù',
+ 'Ú' => 'Ú',
+ 'Û' => 'Û',
+ 'Ü' => 'Ü',
+ 'Ý' => 'Ý',
+ 'à' => 'à',
+ 'á' => 'á',
+ 'â' => 'â',
+ 'ã' => 'ã',
+ 'ä' => 'ä',
+ 'å' => 'å',
+ 'ç' => 'ç',
+ 'è' => 'è',
+ 'é' => 'é',
+ 'ê' => 'ê',
+ 'ë' => 'ë',
+ 'ì' => 'ì',
+ 'í' => 'í',
+ 'î' => 'î',
+ 'ï' => 'ï',
+ 'ñ' => 'ñ',
+ 'ò' => 'ò',
+ 'ó' => 'ó',
+ 'ô' => 'ô',
+ 'õ' => 'õ',
+ 'ö' => 'ö',
+ 'ù' => 'ù',
+ 'ú' => 'ú',
+ 'û' => 'û',
+ 'ü' => 'ü',
+ 'ý' => 'ý',
+ 'ÿ' => 'ÿ',
+ 'Ā' => 'Ā',
+ 'ā' => 'ā',
+ 'Ă' => 'Ă',
+ 'ă' => 'ă',
+ 'Ą' => 'Ą',
+ 'ą' => 'ą',
+ 'Ć' => 'Ć',
+ 'ć' => 'ć',
+ 'Ĉ' => 'Ĉ',
+ 'ĉ' => 'ĉ',
+ 'Ċ' => 'Ċ',
+ 'ċ' => 'ċ',
+ 'Č' => 'Č',
+ 'č' => 'č',
+ 'Ď' => 'Ď',
+ 'ď' => 'ď',
+ 'Ē' => 'Ē',
+ 'ē' => 'ē',
+ 'Ĕ' => 'Ĕ',
+ 'ĕ' => 'ĕ',
+ 'Ė' => 'Ė',
+ 'ė' => 'ė',
+ 'Ę' => 'Ę',
+ 'ę' => 'ę',
+ 'Ě' => 'Ě',
+ 'ě' => 'ě',
+ 'Ĝ' => 'Ĝ',
+ 'ĝ' => 'ĝ',
+ 'Ğ' => 'Ğ',
+ 'ğ' => 'ğ',
+ 'Ġ' => 'Ġ',
+ 'ġ' => 'ġ',
+ 'Ģ' => 'Ģ',
+ 'ģ' => 'ģ',
+ 'Ĥ' => 'Ĥ',
+ 'ĥ' => 'ĥ',
+ 'Ĩ' => 'Ĩ',
+ 'ĩ' => 'ĩ',
+ 'Ī' => 'Ī',
+ 'ī' => 'ī',
+ 'Ĭ' => 'Ĭ',
+ 'ĭ' => 'ĭ',
+ 'Į' => 'Į',
+ 'į' => 'į',
+ 'İ' => 'İ',
+ 'Ĵ' => 'Ĵ',
+ 'ĵ' => 'ĵ',
+ 'Ķ' => 'Ķ',
+ 'ķ' => 'ķ',
+ 'Ĺ' => 'Ĺ',
+ 'ĺ' => 'ĺ',
+ 'Ļ' => 'Ļ',
+ 'ļ' => 'ļ',
+ 'Ľ' => 'Ľ',
+ 'ľ' => 'ľ',
+ 'Ń' => 'Ń',
+ 'ń' => 'ń',
+ 'Ņ' => 'Ņ',
+ 'ņ' => 'ņ',
+ 'Ň' => 'Ň',
+ 'ň' => 'ň',
+ 'Ō' => 'Ō',
+ 'ō' => 'ō',
+ 'Ŏ' => 'Ŏ',
+ 'ŏ' => 'ŏ',
+ 'Ő' => 'Ő',
+ 'ő' => 'ő',
+ 'Ŕ' => 'Ŕ',
+ 'ŕ' => 'ŕ',
+ 'Ŗ' => 'Ŗ',
+ 'ŗ' => 'ŗ',
+ 'Ř' => 'Ř',
+ 'ř' => 'ř',
+ 'Ś' => 'Ś',
+ 'ś' => 'ś',
+ 'Ŝ' => 'Ŝ',
+ 'ŝ' => 'ŝ',
+ 'Ş' => 'Ş',
+ 'ş' => 'ş',
+ 'Š' => 'Š',
+ 'š' => 'š',
+ 'Ţ' => 'Ţ',
+ 'ţ' => 'ţ',
+ 'Ť' => 'Ť',
+ 'ť' => 'ť',
+ 'Ũ' => 'Ũ',
+ 'ũ' => 'ũ',
+ 'Ū' => 'Ū',
+ 'ū' => 'ū',
+ 'Ŭ' => 'Ŭ',
+ 'ŭ' => 'ŭ',
+ 'Ů' => 'Ů',
+ 'ů' => 'ů',
+ 'Ű' => 'Ű',
+ 'ű' => 'ű',
+ 'Ų' => 'Ų',
+ 'ų' => 'ų',
+ 'Ŵ' => 'Ŵ',
+ 'ŵ' => 'ŵ',
+ 'Ŷ' => 'Ŷ',
+ 'ŷ' => 'ŷ',
+ 'Ÿ' => 'Ÿ',
+ 'Ź' => 'Ź',
+ 'ź' => 'ź',
+ 'Ż' => 'Ż',
+ 'ż' => 'ż',
+ 'Ž' => 'Ž',
+ 'ž' => 'ž',
+ 'Ơ' => 'Ơ',
+ 'ơ' => 'ơ',
+ 'Ư' => 'Ư',
+ 'ư' => 'ư',
+ 'Ǎ' => 'Ǎ',
+ 'ǎ' => 'ǎ',
+ 'Ǐ' => 'Ǐ',
+ 'ǐ' => 'ǐ',
+ 'Ǒ' => 'Ǒ',
+ 'ǒ' => 'ǒ',
+ 'Ǔ' => 'Ǔ',
+ 'ǔ' => 'ǔ',
+ 'Ǖ' => 'Ǖ',
+ 'ǖ' => 'ǖ',
+ 'Ǘ' => 'Ǘ',
+ 'ǘ' => 'ǘ',
+ 'Ǚ' => 'Ǚ',
+ 'ǚ' => 'ǚ',
+ 'Ǜ' => 'Ǜ',
+ 'ǜ' => 'ǜ',
+ 'Ǟ' => 'Ǟ',
+ 'ǟ' => 'ǟ',
+ 'Ǡ' => 'Ǡ',
+ 'ǡ' => 'ǡ',
+ 'Ǣ' => 'Ǣ',
+ 'ǣ' => 'ǣ',
+ 'Ǧ' => 'Ǧ',
+ 'ǧ' => 'ǧ',
+ 'Ǩ' => 'Ǩ',
+ 'ǩ' => 'ǩ',
+ 'Ǫ' => 'Ǫ',
+ 'ǫ' => 'ǫ',
+ 'Ǭ' => 'Ǭ',
+ 'ǭ' => 'ǭ',
+ 'Ǯ' => 'Ǯ',
+ 'ǯ' => 'ǯ',
+ 'ǰ' => 'ǰ',
+ 'Ǵ' => 'Ǵ',
+ 'ǵ' => 'ǵ',
+ 'Ǹ' => 'Ǹ',
+ 'ǹ' => 'ǹ',
+ 'Ǻ' => 'Ǻ',
+ 'ǻ' => 'ǻ',
+ 'Ǽ' => 'Ǽ',
+ 'ǽ' => 'ǽ',
+ 'Ǿ' => 'Ǿ',
+ 'ǿ' => 'ǿ',
+ 'Ȁ' => 'Ȁ',
+ 'ȁ' => 'ȁ',
+ 'Ȃ' => 'Ȃ',
+ 'ȃ' => 'ȃ',
+ 'Ȅ' => 'Ȅ',
+ 'ȅ' => 'ȅ',
+ 'Ȇ' => 'Ȇ',
+ 'ȇ' => 'ȇ',
+ 'Ȉ' => 'Ȉ',
+ 'ȉ' => 'ȉ',
+ 'Ȋ' => 'Ȋ',
+ 'ȋ' => 'ȋ',
+ 'Ȍ' => 'Ȍ',
+ 'ȍ' => 'ȍ',
+ 'Ȏ' => 'Ȏ',
+ 'ȏ' => 'ȏ',
+ 'Ȑ' => 'Ȑ',
+ 'ȑ' => 'ȑ',
+ 'Ȓ' => 'Ȓ',
+ 'ȓ' => 'ȓ',
+ 'Ȕ' => 'Ȕ',
+ 'ȕ' => 'ȕ',
+ 'Ȗ' => 'Ȗ',
+ 'ȗ' => 'ȗ',
+ 'Ș' => 'Ș',
+ 'ș' => 'ș',
+ 'Ț' => 'Ț',
+ 'ț' => 'ț',
+ 'Ȟ' => 'Ȟ',
+ 'ȟ' => 'ȟ',
+ 'Ȧ' => 'Ȧ',
+ 'ȧ' => 'ȧ',
+ 'Ȩ' => 'Ȩ',
+ 'ȩ' => 'ȩ',
+ 'Ȫ' => 'Ȫ',
+ 'ȫ' => 'ȫ',
+ 'Ȭ' => 'Ȭ',
+ 'ȭ' => 'ȭ',
+ 'Ȯ' => 'Ȯ',
+ 'ȯ' => 'ȯ',
+ 'Ȱ' => 'Ȱ',
+ 'ȱ' => 'ȱ',
+ 'Ȳ' => 'Ȳ',
+ 'ȳ' => 'ȳ',
+ '΅' => '΅',
+ 'Ά' => 'Ά',
+ 'Έ' => 'Έ',
+ 'Ή' => 'Ή',
+ 'Ί' => 'Ί',
+ 'Ό' => 'Ό',
+ 'Ύ' => 'Ύ',
+ 'Ώ' => 'Ώ',
+ 'ΐ' => 'ΐ',
+ 'Ϊ' => 'Ϊ',
+ 'Ϋ' => 'Ϋ',
+ 'ά' => 'ά',
+ 'έ' => 'έ',
+ 'ή' => 'ή',
+ 'ί' => 'ί',
+ 'ΰ' => 'ΰ',
+ 'ϊ' => 'ϊ',
+ 'ϋ' => 'ϋ',
+ 'ό' => 'ό',
+ 'ύ' => 'ύ',
+ 'ώ' => 'ώ',
+ 'ϓ' => 'ϓ',
+ 'ϔ' => 'ϔ',
+ 'Ѐ' => 'Ѐ',
+ 'Ё' => 'Ё',
+ 'Ѓ' => 'Ѓ',
+ 'Ї' => 'Ї',
+ 'Ќ' => 'Ќ',
+ 'Ѝ' => 'Ѝ',
+ 'Ў' => 'Ў',
+ 'Й' => 'Й',
+ 'й' => 'й',
+ 'ѐ' => 'ѐ',
+ 'ё' => 'ё',
+ 'ѓ' => 'ѓ',
+ 'ї' => 'ї',
+ 'ќ' => 'ќ',
+ 'ѝ' => 'ѝ',
+ 'ў' => 'ў',
+ 'Ѷ' => 'Ѷ',
+ 'ѷ' => 'ѷ',
+ 'Ӂ' => 'Ӂ',
+ 'ӂ' => 'ӂ',
+ 'Ӑ' => 'Ӑ',
+ 'ӑ' => 'ӑ',
+ 'Ӓ' => 'Ӓ',
+ 'ӓ' => 'ӓ',
+ 'Ӗ' => 'Ӗ',
+ 'ӗ' => 'ӗ',
+ 'Ӛ' => 'Ӛ',
+ 'ӛ' => 'ӛ',
+ 'Ӝ' => 'Ӝ',
+ 'ӝ' => 'ӝ',
+ 'Ӟ' => 'Ӟ',
+ 'ӟ' => 'ӟ',
+ 'Ӣ' => 'Ӣ',
+ 'ӣ' => 'ӣ',
+ 'Ӥ' => 'Ӥ',
+ 'ӥ' => 'ӥ',
+ 'Ӧ' => 'Ӧ',
+ 'ӧ' => 'ӧ',
+ 'Ӫ' => 'Ӫ',
+ 'ӫ' => 'ӫ',
+ 'Ӭ' => 'Ӭ',
+ 'ӭ' => 'ӭ',
+ 'Ӯ' => 'Ӯ',
+ 'ӯ' => 'ӯ',
+ 'Ӱ' => 'Ӱ',
+ 'ӱ' => 'ӱ',
+ 'Ӳ' => 'Ӳ',
+ 'ӳ' => 'ӳ',
+ 'Ӵ' => 'Ӵ',
+ 'ӵ' => 'ӵ',
+ 'Ӹ' => 'Ӹ',
+ 'ӹ' => 'ӹ',
+ 'آ' => 'آ',
+ 'أ' => 'أ',
+ 'ؤ' => 'ؤ',
+ 'إ' => 'إ',
+ 'ئ' => 'ئ',
+ 'ۀ' => 'ۀ',
+ 'ۂ' => 'ۂ',
+ 'ۓ' => 'ۓ',
+ 'ऩ' => 'ऩ',
+ 'ऱ' => 'ऱ',
+ 'ऴ' => 'ऴ',
+ 'ো' => 'ো',
+ 'ৌ' => 'ৌ',
+ 'ୈ' => 'ୈ',
+ 'ୋ' => 'ୋ',
+ 'ୌ' => 'ୌ',
+ 'ஔ' => 'ஔ',
+ 'ொ' => 'ொ',
+ 'ோ' => 'ோ',
+ 'ௌ' => 'ௌ',
+ 'ై' => 'ై',
+ 'ೀ' => 'ೀ',
+ 'ೇ' => 'ೇ',
+ 'ೈ' => 'ೈ',
+ 'ೊ' => 'ೊ',
+ 'ೋ' => 'ೋ',
+ 'ൊ' => 'ൊ',
+ 'ോ' => 'ോ',
+ 'ൌ' => 'ൌ',
+ 'ේ' => 'ේ',
+ 'ො' => 'ො',
+ 'ෝ' => 'ෝ',
+ 'ෞ' => 'ෞ',
+ 'ဦ' => 'ဦ',
+ 'ᬆ' => 'ᬆ',
+ 'ᬈ' => 'ᬈ',
+ 'ᬊ' => 'ᬊ',
+ 'ᬌ' => 'ᬌ',
+ 'ᬎ' => 'ᬎ',
+ 'ᬒ' => 'ᬒ',
+ 'ᬻ' => 'ᬻ',
+ 'ᬽ' => 'ᬽ',
+ 'ᭀ' => 'ᭀ',
+ 'ᭁ' => 'ᭁ',
+ 'ᭃ' => 'ᭃ',
+ 'Ḁ' => 'Ḁ',
+ 'ḁ' => 'ḁ',
+ 'Ḃ' => 'Ḃ',
+ 'ḃ' => 'ḃ',
+ 'Ḅ' => 'Ḅ',
+ 'ḅ' => 'ḅ',
+ 'Ḇ' => 'Ḇ',
+ 'ḇ' => 'ḇ',
+ 'Ḉ' => 'Ḉ',
+ 'ḉ' => 'ḉ',
+ 'Ḋ' => 'Ḋ',
+ 'ḋ' => 'ḋ',
+ 'Ḍ' => 'Ḍ',
+ 'ḍ' => 'ḍ',
+ 'Ḏ' => 'Ḏ',
+ 'ḏ' => 'ḏ',
+ 'Ḑ' => 'Ḑ',
+ 'ḑ' => 'ḑ',
+ 'Ḓ' => 'Ḓ',
+ 'ḓ' => 'ḓ',
+ 'Ḕ' => 'Ḕ',
+ 'ḕ' => 'ḕ',
+ 'Ḗ' => 'Ḗ',
+ 'ḗ' => 'ḗ',
+ 'Ḙ' => 'Ḙ',
+ 'ḙ' => 'ḙ',
+ 'Ḛ' => 'Ḛ',
+ 'ḛ' => 'ḛ',
+ 'Ḝ' => 'Ḝ',
+ 'ḝ' => 'ḝ',
+ 'Ḟ' => 'Ḟ',
+ 'ḟ' => 'ḟ',
+ 'Ḡ' => 'Ḡ',
+ 'ḡ' => 'ḡ',
+ 'Ḣ' => 'Ḣ',
+ 'ḣ' => 'ḣ',
+ 'Ḥ' => 'Ḥ',
+ 'ḥ' => 'ḥ',
+ 'Ḧ' => 'Ḧ',
+ 'ḧ' => 'ḧ',
+ 'Ḩ' => 'Ḩ',
+ 'ḩ' => 'ḩ',
+ 'Ḫ' => 'Ḫ',
+ 'ḫ' => 'ḫ',
+ 'Ḭ' => 'Ḭ',
+ 'ḭ' => 'ḭ',
+ 'Ḯ' => 'Ḯ',
+ 'ḯ' => 'ḯ',
+ 'Ḱ' => 'Ḱ',
+ 'ḱ' => 'ḱ',
+ 'Ḳ' => 'Ḳ',
+ 'ḳ' => 'ḳ',
+ 'Ḵ' => 'Ḵ',
+ 'ḵ' => 'ḵ',
+ 'Ḷ' => 'Ḷ',
+ 'ḷ' => 'ḷ',
+ 'Ḹ' => 'Ḹ',
+ 'ḹ' => 'ḹ',
+ 'Ḻ' => 'Ḻ',
+ 'ḻ' => 'ḻ',
+ 'Ḽ' => 'Ḽ',
+ 'ḽ' => 'ḽ',
+ 'Ḿ' => 'Ḿ',
+ 'ḿ' => 'ḿ',
+ 'Ṁ' => 'Ṁ',
+ 'ṁ' => 'ṁ',
+ 'Ṃ' => 'Ṃ',
+ 'ṃ' => 'ṃ',
+ 'Ṅ' => 'Ṅ',
+ 'ṅ' => 'ṅ',
+ 'Ṇ' => 'Ṇ',
+ 'ṇ' => 'ṇ',
+ 'Ṉ' => 'Ṉ',
+ 'ṉ' => 'ṉ',
+ 'Ṋ' => 'Ṋ',
+ 'ṋ' => 'ṋ',
+ 'Ṍ' => 'Ṍ',
+ 'ṍ' => 'ṍ',
+ 'Ṏ' => 'Ṏ',
+ 'ṏ' => 'ṏ',
+ 'Ṑ' => 'Ṑ',
+ 'ṑ' => 'ṑ',
+ 'Ṓ' => 'Ṓ',
+ 'ṓ' => 'ṓ',
+ 'Ṕ' => 'Ṕ',
+ 'ṕ' => 'ṕ',
+ 'Ṗ' => 'Ṗ',
+ 'ṗ' => 'ṗ',
+ 'Ṙ' => 'Ṙ',
+ 'ṙ' => 'ṙ',
+ 'Ṛ' => 'Ṛ',
+ 'ṛ' => 'ṛ',
+ 'Ṝ' => 'Ṝ',
+ 'ṝ' => 'ṝ',
+ 'Ṟ' => 'Ṟ',
+ 'ṟ' => 'ṟ',
+ 'Ṡ' => 'Ṡ',
+ 'ṡ' => 'ṡ',
+ 'Ṣ' => 'Ṣ',
+ 'ṣ' => 'ṣ',
+ 'Ṥ' => 'Ṥ',
+ 'ṥ' => 'ṥ',
+ 'Ṧ' => 'Ṧ',
+ 'ṧ' => 'ṧ',
+ 'Ṩ' => 'Ṩ',
+ 'ṩ' => 'ṩ',
+ 'Ṫ' => 'Ṫ',
+ 'ṫ' => 'ṫ',
+ 'Ṭ' => 'Ṭ',
+ 'ṭ' => 'ṭ',
+ 'Ṯ' => 'Ṯ',
+ 'ṯ' => 'ṯ',
+ 'Ṱ' => 'Ṱ',
+ 'ṱ' => 'ṱ',
+ 'Ṳ' => 'Ṳ',
+ 'ṳ' => 'ṳ',
+ 'Ṵ' => 'Ṵ',
+ 'ṵ' => 'ṵ',
+ 'Ṷ' => 'Ṷ',
+ 'ṷ' => 'ṷ',
+ 'Ṹ' => 'Ṹ',
+ 'ṹ' => 'ṹ',
+ 'Ṻ' => 'Ṻ',
+ 'ṻ' => 'ṻ',
+ 'Ṽ' => 'Ṽ',
+ 'ṽ' => 'ṽ',
+ 'Ṿ' => 'Ṿ',
+ 'ṿ' => 'ṿ',
+ 'Ẁ' => 'Ẁ',
+ 'ẁ' => 'ẁ',
+ 'Ẃ' => 'Ẃ',
+ 'ẃ' => 'ẃ',
+ 'Ẅ' => 'Ẅ',
+ 'ẅ' => 'ẅ',
+ 'Ẇ' => 'Ẇ',
+ 'ẇ' => 'ẇ',
+ 'Ẉ' => 'Ẉ',
+ 'ẉ' => 'ẉ',
+ 'Ẋ' => 'Ẋ',
+ 'ẋ' => 'ẋ',
+ 'Ẍ' => 'Ẍ',
+ 'ẍ' => 'ẍ',
+ 'Ẏ' => 'Ẏ',
+ 'ẏ' => 'ẏ',
+ 'Ẑ' => 'Ẑ',
+ 'ẑ' => 'ẑ',
+ 'Ẓ' => 'Ẓ',
+ 'ẓ' => 'ẓ',
+ 'Ẕ' => 'Ẕ',
+ 'ẕ' => 'ẕ',
+ 'ẖ' => 'ẖ',
+ 'ẗ' => 'ẗ',
+ 'ẘ' => 'ẘ',
+ 'ẙ' => 'ẙ',
+ 'ẛ' => 'ẛ',
+ 'Ạ' => 'Ạ',
+ 'ạ' => 'ạ',
+ 'Ả' => 'Ả',
+ 'ả' => 'ả',
+ 'Ấ' => 'Ấ',
+ 'ấ' => 'ấ',
+ 'Ầ' => 'Ầ',
+ 'ầ' => 'ầ',
+ 'Ẩ' => 'Ẩ',
+ 'ẩ' => 'ẩ',
+ 'Ẫ' => 'Ẫ',
+ 'ẫ' => 'ẫ',
+ 'Ậ' => 'Ậ',
+ 'ậ' => 'ậ',
+ 'Ắ' => 'Ắ',
+ 'ắ' => 'ắ',
+ 'Ằ' => 'Ằ',
+ 'ằ' => 'ằ',
+ 'Ẳ' => 'Ẳ',
+ 'ẳ' => 'ẳ',
+ 'Ẵ' => 'Ẵ',
+ 'ẵ' => 'ẵ',
+ 'Ặ' => 'Ặ',
+ 'ặ' => 'ặ',
+ 'Ẹ' => 'Ẹ',
+ 'ẹ' => 'ẹ',
+ 'Ẻ' => 'Ẻ',
+ 'ẻ' => 'ẻ',
+ 'Ẽ' => 'Ẽ',
+ 'ẽ' => 'ẽ',
+ 'Ế' => 'Ế',
+ 'ế' => 'ế',
+ 'Ề' => 'Ề',
+ 'ề' => 'ề',
+ 'Ể' => 'Ể',
+ 'ể' => 'ể',
+ 'Ễ' => 'Ễ',
+ 'ễ' => 'ễ',
+ 'Ệ' => 'Ệ',
+ 'ệ' => 'ệ',
+ 'Ỉ' => 'Ỉ',
+ 'ỉ' => 'ỉ',
+ 'Ị' => 'Ị',
+ 'ị' => 'ị',
+ 'Ọ' => 'Ọ',
+ 'ọ' => 'ọ',
+ 'Ỏ' => 'Ỏ',
+ 'ỏ' => 'ỏ',
+ 'Ố' => 'Ố',
+ 'ố' => 'ố',
+ 'Ồ' => 'Ồ',
+ 'ồ' => 'ồ',
+ 'Ổ' => 'Ổ',
+ 'ổ' => 'ổ',
+ 'Ỗ' => 'Ỗ',
+ 'ỗ' => 'ỗ',
+ 'Ộ' => 'Ộ',
+ 'ộ' => 'ộ',
+ 'Ớ' => 'Ớ',
+ 'ớ' => 'ớ',
+ 'Ờ' => 'Ờ',
+ 'ờ' => 'ờ',
+ 'Ở' => 'Ở',
+ 'ở' => 'ở',
+ 'Ỡ' => 'Ỡ',
+ 'ỡ' => 'ỡ',
+ 'Ợ' => 'Ợ',
+ 'ợ' => 'ợ',
+ 'Ụ' => 'Ụ',
+ 'ụ' => 'ụ',
+ 'Ủ' => 'Ủ',
+ 'ủ' => 'ủ',
+ 'Ứ' => 'Ứ',
+ 'ứ' => 'ứ',
+ 'Ừ' => 'Ừ',
+ 'ừ' => 'ừ',
+ 'Ử' => 'Ử',
+ 'ử' => 'ử',
+ 'Ữ' => 'Ữ',
+ 'ữ' => 'ữ',
+ 'Ự' => 'Ự',
+ 'ự' => 'ự',
+ 'Ỳ' => 'Ỳ',
+ 'ỳ' => 'ỳ',
+ 'Ỵ' => 'Ỵ',
+ 'ỵ' => 'ỵ',
+ 'Ỷ' => 'Ỷ',
+ 'ỷ' => 'ỷ',
+ 'Ỹ' => 'Ỹ',
+ 'ỹ' => 'ỹ',
+ 'ἀ' => 'ἀ',
+ 'ἁ' => 'ἁ',
+ 'ἂ' => 'ἂ',
+ 'ἃ' => 'ἃ',
+ 'ἄ' => 'ἄ',
+ 'ἅ' => 'ἅ',
+ 'ἆ' => 'ἆ',
+ 'ἇ' => 'ἇ',
+ 'Ἀ' => 'Ἀ',
+ 'Ἁ' => 'Ἁ',
+ 'Ἂ' => 'Ἂ',
+ 'Ἃ' => 'Ἃ',
+ 'Ἄ' => 'Ἄ',
+ 'Ἅ' => 'Ἅ',
+ 'Ἆ' => 'Ἆ',
+ 'Ἇ' => 'Ἇ',
+ 'ἐ' => 'ἐ',
+ 'ἑ' => 'ἑ',
+ 'ἒ' => 'ἒ',
+ 'ἓ' => 'ἓ',
+ 'ἔ' => 'ἔ',
+ 'ἕ' => 'ἕ',
+ 'Ἐ' => 'Ἐ',
+ 'Ἑ' => 'Ἑ',
+ 'Ἒ' => 'Ἒ',
+ 'Ἓ' => 'Ἓ',
+ 'Ἔ' => 'Ἔ',
+ 'Ἕ' => 'Ἕ',
+ 'ἠ' => 'ἠ',
+ 'ἡ' => 'ἡ',
+ 'ἢ' => 'ἢ',
+ 'ἣ' => 'ἣ',
+ 'ἤ' => 'ἤ',
+ 'ἥ' => 'ἥ',
+ 'ἦ' => 'ἦ',
+ 'ἧ' => 'ἧ',
+ 'Ἠ' => 'Ἠ',
+ 'Ἡ' => 'Ἡ',
+ 'Ἢ' => 'Ἢ',
+ 'Ἣ' => 'Ἣ',
+ 'Ἤ' => 'Ἤ',
+ 'Ἥ' => 'Ἥ',
+ 'Ἦ' => 'Ἦ',
+ 'Ἧ' => 'Ἧ',
+ 'ἰ' => 'ἰ',
+ 'ἱ' => 'ἱ',
+ 'ἲ' => 'ἲ',
+ 'ἳ' => 'ἳ',
+ 'ἴ' => 'ἴ',
+ 'ἵ' => 'ἵ',
+ 'ἶ' => 'ἶ',
+ 'ἷ' => 'ἷ',
+ 'Ἰ' => 'Ἰ',
+ 'Ἱ' => 'Ἱ',
+ 'Ἲ' => 'Ἲ',
+ 'Ἳ' => 'Ἳ',
+ 'Ἴ' => 'Ἴ',
+ 'Ἵ' => 'Ἵ',
+ 'Ἶ' => 'Ἶ',
+ 'Ἷ' => 'Ἷ',
+ 'ὀ' => 'ὀ',
+ 'ὁ' => 'ὁ',
+ 'ὂ' => 'ὂ',
+ 'ὃ' => 'ὃ',
+ 'ὄ' => 'ὄ',
+ 'ὅ' => 'ὅ',
+ 'Ὀ' => 'Ὀ',
+ 'Ὁ' => 'Ὁ',
+ 'Ὂ' => 'Ὂ',
+ 'Ὃ' => 'Ὃ',
+ 'Ὄ' => 'Ὄ',
+ 'Ὅ' => 'Ὅ',
+ 'ὐ' => 'ὐ',
+ 'ὑ' => 'ὑ',
+ 'ὒ' => 'ὒ',
+ 'ὓ' => 'ὓ',
+ 'ὔ' => 'ὔ',
+ 'ὕ' => 'ὕ',
+ 'ὖ' => 'ὖ',
+ 'ὗ' => 'ὗ',
+ 'Ὑ' => 'Ὑ',
+ 'Ὓ' => 'Ὓ',
+ 'Ὕ' => 'Ὕ',
+ 'Ὗ' => 'Ὗ',
+ 'ὠ' => 'ὠ',
+ 'ὡ' => 'ὡ',
+ 'ὢ' => 'ὢ',
+ 'ὣ' => 'ὣ',
+ 'ὤ' => 'ὤ',
+ 'ὥ' => 'ὥ',
+ 'ὦ' => 'ὦ',
+ 'ὧ' => 'ὧ',
+ 'Ὠ' => 'Ὠ',
+ 'Ὡ' => 'Ὡ',
+ 'Ὢ' => 'Ὢ',
+ 'Ὣ' => 'Ὣ',
+ 'Ὤ' => 'Ὤ',
+ 'Ὥ' => 'Ὥ',
+ 'Ὦ' => 'Ὦ',
+ 'Ὧ' => 'Ὧ',
+ 'ὰ' => 'ὰ',
+ 'ὲ' => 'ὲ',
+ 'ὴ' => 'ὴ',
+ 'ὶ' => 'ὶ',
+ 'ὸ' => 'ὸ',
+ 'ὺ' => 'ὺ',
+ 'ὼ' => 'ὼ',
+ 'ᾀ' => 'ᾀ',
+ 'ᾁ' => 'ᾁ',
+ 'ᾂ' => 'ᾂ',
+ 'ᾃ' => 'ᾃ',
+ 'ᾄ' => 'ᾄ',
+ 'ᾅ' => 'ᾅ',
+ 'ᾆ' => 'ᾆ',
+ 'ᾇ' => 'ᾇ',
+ 'ᾈ' => 'ᾈ',
+ 'ᾉ' => 'ᾉ',
+ 'ᾊ' => 'ᾊ',
+ 'ᾋ' => 'ᾋ',
+ 'ᾌ' => 'ᾌ',
+ 'ᾍ' => 'ᾍ',
+ 'ᾎ' => 'ᾎ',
+ 'ᾏ' => 'ᾏ',
+ 'ᾐ' => 'ᾐ',
+ 'ᾑ' => 'ᾑ',
+ 'ᾒ' => 'ᾒ',
+ 'ᾓ' => 'ᾓ',
+ 'ᾔ' => 'ᾔ',
+ 'ᾕ' => 'ᾕ',
+ 'ᾖ' => 'ᾖ',
+ 'ᾗ' => 'ᾗ',
+ 'ᾘ' => 'ᾘ',
+ 'ᾙ' => 'ᾙ',
+ 'ᾚ' => 'ᾚ',
+ 'ᾛ' => 'ᾛ',
+ 'ᾜ' => 'ᾜ',
+ 'ᾝ' => 'ᾝ',
+ 'ᾞ' => 'ᾞ',
+ 'ᾟ' => 'ᾟ',
+ 'ᾠ' => 'ᾠ',
+ 'ᾡ' => 'ᾡ',
+ 'ᾢ' => 'ᾢ',
+ 'ᾣ' => 'ᾣ',
+ 'ᾤ' => 'ᾤ',
+ 'ᾥ' => 'ᾥ',
+ 'ᾦ' => 'ᾦ',
+ 'ᾧ' => 'ᾧ',
+ 'ᾨ' => 'ᾨ',
+ 'ᾩ' => 'ᾩ',
+ 'ᾪ' => 'ᾪ',
+ 'ᾫ' => 'ᾫ',
+ 'ᾬ' => 'ᾬ',
+ 'ᾭ' => 'ᾭ',
+ 'ᾮ' => 'ᾮ',
+ 'ᾯ' => 'ᾯ',
+ 'ᾰ' => 'ᾰ',
+ 'ᾱ' => 'ᾱ',
+ 'ᾲ' => 'ᾲ',
+ 'ᾳ' => 'ᾳ',
+ 'ᾴ' => 'ᾴ',
+ 'ᾶ' => 'ᾶ',
+ 'ᾷ' => 'ᾷ',
+ 'Ᾰ' => 'Ᾰ',
+ 'Ᾱ' => 'Ᾱ',
+ 'Ὰ' => 'Ὰ',
+ 'ᾼ' => 'ᾼ',
+ '῁' => '῁',
+ 'ῂ' => 'ῂ',
+ 'ῃ' => 'ῃ',
+ 'ῄ' => 'ῄ',
+ 'ῆ' => 'ῆ',
+ 'ῇ' => 'ῇ',
+ 'Ὲ' => 'Ὲ',
+ 'Ὴ' => 'Ὴ',
+ 'ῌ' => 'ῌ',
+ '῍' => '῍',
+ '῎' => '῎',
+ '῏' => '῏',
+ 'ῐ' => 'ῐ',
+ 'ῑ' => 'ῑ',
+ 'ῒ' => 'ῒ',
+ 'ῖ' => 'ῖ',
+ 'ῗ' => 'ῗ',
+ 'Ῐ' => 'Ῐ',
+ 'Ῑ' => 'Ῑ',
+ 'Ὶ' => 'Ὶ',
+ '῝' => '῝',
+ '῞' => '῞',
+ '῟' => '῟',
+ 'ῠ' => 'ῠ',
+ 'ῡ' => 'ῡ',
+ 'ῢ' => 'ῢ',
+ 'ῤ' => 'ῤ',
+ 'ῥ' => 'ῥ',
+ 'ῦ' => 'ῦ',
+ 'ῧ' => 'ῧ',
+ 'Ῠ' => 'Ῠ',
+ 'Ῡ' => 'Ῡ',
+ 'Ὺ' => 'Ὺ',
+ 'Ῥ' => 'Ῥ',
+ '῭' => '῭',
+ 'ῲ' => 'ῲ',
+ 'ῳ' => 'ῳ',
+ 'ῴ' => 'ῴ',
+ 'ῶ' => 'ῶ',
+ 'ῷ' => 'ῷ',
+ 'Ὸ' => 'Ὸ',
+ 'Ὼ' => 'Ὼ',
+ 'ῼ' => 'ῼ',
+ '↚' => '↚',
+ '↛' => '↛',
+ '↮' => '↮',
+ '⇍' => '⇍',
+ '⇎' => '⇎',
+ '⇏' => '⇏',
+ '∄' => '∄',
+ '∉' => '∉',
+ '∌' => '∌',
+ '∤' => '∤',
+ '∦' => '∦',
+ '≁' => '≁',
+ '≄' => '≄',
+ '≇' => '≇',
+ '≉' => '≉',
+ '≠' => '≠',
+ '≢' => '≢',
+ '≭' => '≭',
+ '≮' => '≮',
+ '≯' => '≯',
+ '≰' => '≰',
+ '≱' => '≱',
+ '≴' => '≴',
+ '≵' => '≵',
+ '≸' => '≸',
+ '≹' => '≹',
+ '⊀' => '⊀',
+ '⊁' => '⊁',
+ '⊄' => '⊄',
+ '⊅' => '⊅',
+ '⊈' => '⊈',
+ '⊉' => '⊉',
+ '⊬' => '⊬',
+ '⊭' => '⊭',
+ '⊮' => '⊮',
+ '⊯' => '⊯',
+ '⋠' => '⋠',
+ '⋡' => '⋡',
+ '⋢' => '⋢',
+ '⋣' => '⋣',
+ '⋪' => '⋪',
+ '⋫' => '⋫',
+ '⋬' => '⋬',
+ '⋭' => '⋭',
+ 'が' => 'が',
+ 'ぎ' => 'ぎ',
+ 'ぐ' => 'ぐ',
+ 'げ' => 'げ',
+ 'ご' => 'ご',
+ 'ざ' => 'ざ',
+ 'じ' => 'じ',
+ 'ず' => 'ず',
+ 'ぜ' => 'ぜ',
+ 'ぞ' => 'ぞ',
+ 'だ' => 'だ',
+ 'ぢ' => 'ぢ',
+ 'づ' => 'づ',
+ 'で' => 'で',
+ 'ど' => 'ど',
+ 'ば' => 'ば',
+ 'ぱ' => 'ぱ',
+ 'び' => 'び',
+ 'ぴ' => 'ぴ',
+ 'ぶ' => 'ぶ',
+ 'ぷ' => 'ぷ',
+ 'べ' => 'べ',
+ 'ぺ' => 'ぺ',
+ 'ぼ' => 'ぼ',
+ 'ぽ' => 'ぽ',
+ 'ゔ' => 'ゔ',
+ 'ゞ' => 'ゞ',
+ 'ガ' => 'ガ',
+ 'ギ' => 'ギ',
+ 'グ' => 'グ',
+ 'ゲ' => 'ゲ',
+ 'ゴ' => 'ゴ',
+ 'ザ' => 'ザ',
+ 'ジ' => 'ジ',
+ 'ズ' => 'ズ',
+ 'ゼ' => 'ゼ',
+ 'ゾ' => 'ゾ',
+ 'ダ' => 'ダ',
+ 'ヂ' => 'ヂ',
+ 'ヅ' => 'ヅ',
+ 'デ' => 'デ',
+ 'ド' => 'ド',
+ 'バ' => 'バ',
+ 'パ' => 'パ',
+ 'ビ' => 'ビ',
+ 'ピ' => 'ピ',
+ 'ブ' => 'ブ',
+ 'プ' => 'プ',
+ 'ベ' => 'ベ',
+ 'ペ' => 'ペ',
+ 'ボ' => 'ボ',
+ 'ポ' => 'ポ',
+ 'ヴ' => 'ヴ',
+ 'ヷ' => 'ヷ',
+ 'ヸ' => 'ヸ',
+ 'ヹ' => 'ヹ',
+ 'ヺ' => 'ヺ',
+ 'ヾ' => 'ヾ',
+ '𑂚' => '𑂚',
+ '𑂜' => '𑂜',
+ '𑂫' => '𑂫',
+ '𑄮' => '𑄮',
+ '𑄯' => '𑄯',
+ '𑍋' => '𑍋',
+ '𑍌' => '𑍌',
+ '𑒻' => '𑒻',
+ '𑒼' => '𑒼',
+ '𑒾' => '𑒾',
+ '𑖺' => '𑖺',
+ '𑖻' => '𑖻',
+ '𑤸' => '𑤸',
+);
diff --git a/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/canonicalDecomposition.php b/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/canonicalDecomposition.php
new file mode 100644
index 0000000..5a3e8e0
--- /dev/null
+++ b/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/canonicalDecomposition.php
@@ -0,0 +1,2065 @@
+ 'À',
+ 'Á' => 'Á',
+ 'Â' => 'Â',
+ 'Ã' => 'Ã',
+ 'Ä' => 'Ä',
+ 'Å' => 'Å',
+ 'Ç' => 'Ç',
+ 'È' => 'È',
+ 'É' => 'É',
+ 'Ê' => 'Ê',
+ 'Ë' => 'Ë',
+ 'Ì' => 'Ì',
+ 'Í' => 'Í',
+ 'Î' => 'Î',
+ 'Ï' => 'Ï',
+ 'Ñ' => 'Ñ',
+ 'Ò' => 'Ò',
+ 'Ó' => 'Ó',
+ 'Ô' => 'Ô',
+ 'Õ' => 'Õ',
+ 'Ö' => 'Ö',
+ 'Ù' => 'Ù',
+ 'Ú' => 'Ú',
+ 'Û' => 'Û',
+ 'Ü' => 'Ü',
+ 'Ý' => 'Ý',
+ 'à' => 'à',
+ 'á' => 'á',
+ 'â' => 'â',
+ 'ã' => 'ã',
+ 'ä' => 'ä',
+ 'å' => 'å',
+ 'ç' => 'ç',
+ 'è' => 'è',
+ 'é' => 'é',
+ 'ê' => 'ê',
+ 'ë' => 'ë',
+ 'ì' => 'ì',
+ 'í' => 'í',
+ 'î' => 'î',
+ 'ï' => 'ï',
+ 'ñ' => 'ñ',
+ 'ò' => 'ò',
+ 'ó' => 'ó',
+ 'ô' => 'ô',
+ 'õ' => 'õ',
+ 'ö' => 'ö',
+ 'ù' => 'ù',
+ 'ú' => 'ú',
+ 'û' => 'û',
+ 'ü' => 'ü',
+ 'ý' => 'ý',
+ 'ÿ' => 'ÿ',
+ 'Ā' => 'Ā',
+ 'ā' => 'ā',
+ 'Ă' => 'Ă',
+ 'ă' => 'ă',
+ 'Ą' => 'Ą',
+ 'ą' => 'ą',
+ 'Ć' => 'Ć',
+ 'ć' => 'ć',
+ 'Ĉ' => 'Ĉ',
+ 'ĉ' => 'ĉ',
+ 'Ċ' => 'Ċ',
+ 'ċ' => 'ċ',
+ 'Č' => 'Č',
+ 'č' => 'č',
+ 'Ď' => 'Ď',
+ 'ď' => 'ď',
+ 'Ē' => 'Ē',
+ 'ē' => 'ē',
+ 'Ĕ' => 'Ĕ',
+ 'ĕ' => 'ĕ',
+ 'Ė' => 'Ė',
+ 'ė' => 'ė',
+ 'Ę' => 'Ę',
+ 'ę' => 'ę',
+ 'Ě' => 'Ě',
+ 'ě' => 'ě',
+ 'Ĝ' => 'Ĝ',
+ 'ĝ' => 'ĝ',
+ 'Ğ' => 'Ğ',
+ 'ğ' => 'ğ',
+ 'Ġ' => 'Ġ',
+ 'ġ' => 'ġ',
+ 'Ģ' => 'Ģ',
+ 'ģ' => 'ģ',
+ 'Ĥ' => 'Ĥ',
+ 'ĥ' => 'ĥ',
+ 'Ĩ' => 'Ĩ',
+ 'ĩ' => 'ĩ',
+ 'Ī' => 'Ī',
+ 'ī' => 'ī',
+ 'Ĭ' => 'Ĭ',
+ 'ĭ' => 'ĭ',
+ 'Į' => 'Į',
+ 'į' => 'į',
+ 'İ' => 'İ',
+ 'Ĵ' => 'Ĵ',
+ 'ĵ' => 'ĵ',
+ 'Ķ' => 'Ķ',
+ 'ķ' => 'ķ',
+ 'Ĺ' => 'Ĺ',
+ 'ĺ' => 'ĺ',
+ 'Ļ' => 'Ļ',
+ 'ļ' => 'ļ',
+ 'Ľ' => 'Ľ',
+ 'ľ' => 'ľ',
+ 'Ń' => 'Ń',
+ 'ń' => 'ń',
+ 'Ņ' => 'Ņ',
+ 'ņ' => 'ņ',
+ 'Ň' => 'Ň',
+ 'ň' => 'ň',
+ 'Ō' => 'Ō',
+ 'ō' => 'ō',
+ 'Ŏ' => 'Ŏ',
+ 'ŏ' => 'ŏ',
+ 'Ő' => 'Ő',
+ 'ő' => 'ő',
+ 'Ŕ' => 'Ŕ',
+ 'ŕ' => 'ŕ',
+ 'Ŗ' => 'Ŗ',
+ 'ŗ' => 'ŗ',
+ 'Ř' => 'Ř',
+ 'ř' => 'ř',
+ 'Ś' => 'Ś',
+ 'ś' => 'ś',
+ 'Ŝ' => 'Ŝ',
+ 'ŝ' => 'ŝ',
+ 'Ş' => 'Ş',
+ 'ş' => 'ş',
+ 'Š' => 'Š',
+ 'š' => 'š',
+ 'Ţ' => 'Ţ',
+ 'ţ' => 'ţ',
+ 'Ť' => 'Ť',
+ 'ť' => 'ť',
+ 'Ũ' => 'Ũ',
+ 'ũ' => 'ũ',
+ 'Ū' => 'Ū',
+ 'ū' => 'ū',
+ 'Ŭ' => 'Ŭ',
+ 'ŭ' => 'ŭ',
+ 'Ů' => 'Ů',
+ 'ů' => 'ů',
+ 'Ű' => 'Ű',
+ 'ű' => 'ű',
+ 'Ų' => 'Ų',
+ 'ų' => 'ų',
+ 'Ŵ' => 'Ŵ',
+ 'ŵ' => 'ŵ',
+ 'Ŷ' => 'Ŷ',
+ 'ŷ' => 'ŷ',
+ 'Ÿ' => 'Ÿ',
+ 'Ź' => 'Ź',
+ 'ź' => 'ź',
+ 'Ż' => 'Ż',
+ 'ż' => 'ż',
+ 'Ž' => 'Ž',
+ 'ž' => 'ž',
+ 'Ơ' => 'Ơ',
+ 'ơ' => 'ơ',
+ 'Ư' => 'Ư',
+ 'ư' => 'ư',
+ 'Ǎ' => 'Ǎ',
+ 'ǎ' => 'ǎ',
+ 'Ǐ' => 'Ǐ',
+ 'ǐ' => 'ǐ',
+ 'Ǒ' => 'Ǒ',
+ 'ǒ' => 'ǒ',
+ 'Ǔ' => 'Ǔ',
+ 'ǔ' => 'ǔ',
+ 'Ǖ' => 'Ǖ',
+ 'ǖ' => 'ǖ',
+ 'Ǘ' => 'Ǘ',
+ 'ǘ' => 'ǘ',
+ 'Ǚ' => 'Ǚ',
+ 'ǚ' => 'ǚ',
+ 'Ǜ' => 'Ǜ',
+ 'ǜ' => 'ǜ',
+ 'Ǟ' => 'Ǟ',
+ 'ǟ' => 'ǟ',
+ 'Ǡ' => 'Ǡ',
+ 'ǡ' => 'ǡ',
+ 'Ǣ' => 'Ǣ',
+ 'ǣ' => 'ǣ',
+ 'Ǧ' => 'Ǧ',
+ 'ǧ' => 'ǧ',
+ 'Ǩ' => 'Ǩ',
+ 'ǩ' => 'ǩ',
+ 'Ǫ' => 'Ǫ',
+ 'ǫ' => 'ǫ',
+ 'Ǭ' => 'Ǭ',
+ 'ǭ' => 'ǭ',
+ 'Ǯ' => 'Ǯ',
+ 'ǯ' => 'ǯ',
+ 'ǰ' => 'ǰ',
+ 'Ǵ' => 'Ǵ',
+ 'ǵ' => 'ǵ',
+ 'Ǹ' => 'Ǹ',
+ 'ǹ' => 'ǹ',
+ 'Ǻ' => 'Ǻ',
+ 'ǻ' => 'ǻ',
+ 'Ǽ' => 'Ǽ',
+ 'ǽ' => 'ǽ',
+ 'Ǿ' => 'Ǿ',
+ 'ǿ' => 'ǿ',
+ 'Ȁ' => 'Ȁ',
+ 'ȁ' => 'ȁ',
+ 'Ȃ' => 'Ȃ',
+ 'ȃ' => 'ȃ',
+ 'Ȅ' => 'Ȅ',
+ 'ȅ' => 'ȅ',
+ 'Ȇ' => 'Ȇ',
+ 'ȇ' => 'ȇ',
+ 'Ȉ' => 'Ȉ',
+ 'ȉ' => 'ȉ',
+ 'Ȋ' => 'Ȋ',
+ 'ȋ' => 'ȋ',
+ 'Ȍ' => 'Ȍ',
+ 'ȍ' => 'ȍ',
+ 'Ȏ' => 'Ȏ',
+ 'ȏ' => 'ȏ',
+ 'Ȑ' => 'Ȑ',
+ 'ȑ' => 'ȑ',
+ 'Ȓ' => 'Ȓ',
+ 'ȓ' => 'ȓ',
+ 'Ȕ' => 'Ȕ',
+ 'ȕ' => 'ȕ',
+ 'Ȗ' => 'Ȗ',
+ 'ȗ' => 'ȗ',
+ 'Ș' => 'Ș',
+ 'ș' => 'ș',
+ 'Ț' => 'Ț',
+ 'ț' => 'ț',
+ 'Ȟ' => 'Ȟ',
+ 'ȟ' => 'ȟ',
+ 'Ȧ' => 'Ȧ',
+ 'ȧ' => 'ȧ',
+ 'Ȩ' => 'Ȩ',
+ 'ȩ' => 'ȩ',
+ 'Ȫ' => 'Ȫ',
+ 'ȫ' => 'ȫ',
+ 'Ȭ' => 'Ȭ',
+ 'ȭ' => 'ȭ',
+ 'Ȯ' => 'Ȯ',
+ 'ȯ' => 'ȯ',
+ 'Ȱ' => 'Ȱ',
+ 'ȱ' => 'ȱ',
+ 'Ȳ' => 'Ȳ',
+ 'ȳ' => 'ȳ',
+ '̀' => '̀',
+ '́' => '́',
+ '̓' => '̓',
+ '̈́' => '̈́',
+ 'ʹ' => 'ʹ',
+ ';' => ';',
+ '΅' => '΅',
+ 'Ά' => 'Ά',
+ '·' => '·',
+ 'Έ' => 'Έ',
+ 'Ή' => 'Ή',
+ 'Ί' => 'Ί',
+ 'Ό' => 'Ό',
+ 'Ύ' => 'Ύ',
+ 'Ώ' => 'Ώ',
+ 'ΐ' => 'ΐ',
+ 'Ϊ' => 'Ϊ',
+ 'Ϋ' => 'Ϋ',
+ 'ά' => 'ά',
+ 'έ' => 'έ',
+ 'ή' => 'ή',
+ 'ί' => 'ί',
+ 'ΰ' => 'ΰ',
+ 'ϊ' => 'ϊ',
+ 'ϋ' => 'ϋ',
+ 'ό' => 'ό',
+ 'ύ' => 'ύ',
+ 'ώ' => 'ώ',
+ 'ϓ' => 'ϓ',
+ 'ϔ' => 'ϔ',
+ 'Ѐ' => 'Ѐ',
+ 'Ё' => 'Ё',
+ 'Ѓ' => 'Ѓ',
+ 'Ї' => 'Ї',
+ 'Ќ' => 'Ќ',
+ 'Ѝ' => 'Ѝ',
+ 'Ў' => 'Ў',
+ 'Й' => 'Й',
+ 'й' => 'й',
+ 'ѐ' => 'ѐ',
+ 'ё' => 'ё',
+ 'ѓ' => 'ѓ',
+ 'ї' => 'ї',
+ 'ќ' => 'ќ',
+ 'ѝ' => 'ѝ',
+ 'ў' => 'ў',
+ 'Ѷ' => 'Ѷ',
+ 'ѷ' => 'ѷ',
+ 'Ӂ' => 'Ӂ',
+ 'ӂ' => 'ӂ',
+ 'Ӑ' => 'Ӑ',
+ 'ӑ' => 'ӑ',
+ 'Ӓ' => 'Ӓ',
+ 'ӓ' => 'ӓ',
+ 'Ӗ' => 'Ӗ',
+ 'ӗ' => 'ӗ',
+ 'Ӛ' => 'Ӛ',
+ 'ӛ' => 'ӛ',
+ 'Ӝ' => 'Ӝ',
+ 'ӝ' => 'ӝ',
+ 'Ӟ' => 'Ӟ',
+ 'ӟ' => 'ӟ',
+ 'Ӣ' => 'Ӣ',
+ 'ӣ' => 'ӣ',
+ 'Ӥ' => 'Ӥ',
+ 'ӥ' => 'ӥ',
+ 'Ӧ' => 'Ӧ',
+ 'ӧ' => 'ӧ',
+ 'Ӫ' => 'Ӫ',
+ 'ӫ' => 'ӫ',
+ 'Ӭ' => 'Ӭ',
+ 'ӭ' => 'ӭ',
+ 'Ӯ' => 'Ӯ',
+ 'ӯ' => 'ӯ',
+ 'Ӱ' => 'Ӱ',
+ 'ӱ' => 'ӱ',
+ 'Ӳ' => 'Ӳ',
+ 'ӳ' => 'ӳ',
+ 'Ӵ' => 'Ӵ',
+ 'ӵ' => 'ӵ',
+ 'Ӹ' => 'Ӹ',
+ 'ӹ' => 'ӹ',
+ 'آ' => 'آ',
+ 'أ' => 'أ',
+ 'ؤ' => 'ؤ',
+ 'إ' => 'إ',
+ 'ئ' => 'ئ',
+ 'ۀ' => 'ۀ',
+ 'ۂ' => 'ۂ',
+ 'ۓ' => 'ۓ',
+ 'ऩ' => 'ऩ',
+ 'ऱ' => 'ऱ',
+ 'ऴ' => 'ऴ',
+ 'क़' => 'क़',
+ 'ख़' => 'ख़',
+ 'ग़' => 'ग़',
+ 'ज़' => 'ज़',
+ 'ड़' => 'ड़',
+ 'ढ़' => 'ढ़',
+ 'फ़' => 'फ़',
+ 'य़' => 'य़',
+ 'ো' => 'ো',
+ 'ৌ' => 'ৌ',
+ 'ড়' => 'ড়',
+ 'ঢ়' => 'ঢ়',
+ 'য়' => 'য়',
+ 'ਲ਼' => 'ਲ਼',
+ 'ਸ਼' => 'ਸ਼',
+ 'ਖ਼' => 'ਖ਼',
+ 'ਗ਼' => 'ਗ਼',
+ 'ਜ਼' => 'ਜ਼',
+ 'ਫ਼' => 'ਫ਼',
+ 'ୈ' => 'ୈ',
+ 'ୋ' => 'ୋ',
+ 'ୌ' => 'ୌ',
+ 'ଡ଼' => 'ଡ଼',
+ 'ଢ଼' => 'ଢ଼',
+ 'ஔ' => 'ஔ',
+ 'ொ' => 'ொ',
+ 'ோ' => 'ோ',
+ 'ௌ' => 'ௌ',
+ 'ై' => 'ై',
+ 'ೀ' => 'ೀ',
+ 'ೇ' => 'ೇ',
+ 'ೈ' => 'ೈ',
+ 'ೊ' => 'ೊ',
+ 'ೋ' => 'ೋ',
+ 'ൊ' => 'ൊ',
+ 'ോ' => 'ോ',
+ 'ൌ' => 'ൌ',
+ 'ේ' => 'ේ',
+ 'ො' => 'ො',
+ 'ෝ' => 'ෝ',
+ 'ෞ' => 'ෞ',
+ 'གྷ' => 'གྷ',
+ 'ཌྷ' => 'ཌྷ',
+ 'དྷ' => 'དྷ',
+ 'བྷ' => 'བྷ',
+ 'ཛྷ' => 'ཛྷ',
+ 'ཀྵ' => 'ཀྵ',
+ 'ཱི' => 'ཱི',
+ 'ཱུ' => 'ཱུ',
+ 'ྲྀ' => 'ྲྀ',
+ 'ླྀ' => 'ླྀ',
+ 'ཱྀ' => 'ཱྀ',
+ 'ྒྷ' => 'ྒྷ',
+ 'ྜྷ' => 'ྜྷ',
+ 'ྡྷ' => 'ྡྷ',
+ 'ྦྷ' => 'ྦྷ',
+ 'ྫྷ' => 'ྫྷ',
+ 'ྐྵ' => 'ྐྵ',
+ 'ဦ' => 'ဦ',
+ 'ᬆ' => 'ᬆ',
+ 'ᬈ' => 'ᬈ',
+ 'ᬊ' => 'ᬊ',
+ 'ᬌ' => 'ᬌ',
+ 'ᬎ' => 'ᬎ',
+ 'ᬒ' => 'ᬒ',
+ 'ᬻ' => 'ᬻ',
+ 'ᬽ' => 'ᬽ',
+ 'ᭀ' => 'ᭀ',
+ 'ᭁ' => 'ᭁ',
+ 'ᭃ' => 'ᭃ',
+ 'Ḁ' => 'Ḁ',
+ 'ḁ' => 'ḁ',
+ 'Ḃ' => 'Ḃ',
+ 'ḃ' => 'ḃ',
+ 'Ḅ' => 'Ḅ',
+ 'ḅ' => 'ḅ',
+ 'Ḇ' => 'Ḇ',
+ 'ḇ' => 'ḇ',
+ 'Ḉ' => 'Ḉ',
+ 'ḉ' => 'ḉ',
+ 'Ḋ' => 'Ḋ',
+ 'ḋ' => 'ḋ',
+ 'Ḍ' => 'Ḍ',
+ 'ḍ' => 'ḍ',
+ 'Ḏ' => 'Ḏ',
+ 'ḏ' => 'ḏ',
+ 'Ḑ' => 'Ḑ',
+ 'ḑ' => 'ḑ',
+ 'Ḓ' => 'Ḓ',
+ 'ḓ' => 'ḓ',
+ 'Ḕ' => 'Ḕ',
+ 'ḕ' => 'ḕ',
+ 'Ḗ' => 'Ḗ',
+ 'ḗ' => 'ḗ',
+ 'Ḙ' => 'Ḙ',
+ 'ḙ' => 'ḙ',
+ 'Ḛ' => 'Ḛ',
+ 'ḛ' => 'ḛ',
+ 'Ḝ' => 'Ḝ',
+ 'ḝ' => 'ḝ',
+ 'Ḟ' => 'Ḟ',
+ 'ḟ' => 'ḟ',
+ 'Ḡ' => 'Ḡ',
+ 'ḡ' => 'ḡ',
+ 'Ḣ' => 'Ḣ',
+ 'ḣ' => 'ḣ',
+ 'Ḥ' => 'Ḥ',
+ 'ḥ' => 'ḥ',
+ 'Ḧ' => 'Ḧ',
+ 'ḧ' => 'ḧ',
+ 'Ḩ' => 'Ḩ',
+ 'ḩ' => 'ḩ',
+ 'Ḫ' => 'Ḫ',
+ 'ḫ' => 'ḫ',
+ 'Ḭ' => 'Ḭ',
+ 'ḭ' => 'ḭ',
+ 'Ḯ' => 'Ḯ',
+ 'ḯ' => 'ḯ',
+ 'Ḱ' => 'Ḱ',
+ 'ḱ' => 'ḱ',
+ 'Ḳ' => 'Ḳ',
+ 'ḳ' => 'ḳ',
+ 'Ḵ' => 'Ḵ',
+ 'ḵ' => 'ḵ',
+ 'Ḷ' => 'Ḷ',
+ 'ḷ' => 'ḷ',
+ 'Ḹ' => 'Ḹ',
+ 'ḹ' => 'ḹ',
+ 'Ḻ' => 'Ḻ',
+ 'ḻ' => 'ḻ',
+ 'Ḽ' => 'Ḽ',
+ 'ḽ' => 'ḽ',
+ 'Ḿ' => 'Ḿ',
+ 'ḿ' => 'ḿ',
+ 'Ṁ' => 'Ṁ',
+ 'ṁ' => 'ṁ',
+ 'Ṃ' => 'Ṃ',
+ 'ṃ' => 'ṃ',
+ 'Ṅ' => 'Ṅ',
+ 'ṅ' => 'ṅ',
+ 'Ṇ' => 'Ṇ',
+ 'ṇ' => 'ṇ',
+ 'Ṉ' => 'Ṉ',
+ 'ṉ' => 'ṉ',
+ 'Ṋ' => 'Ṋ',
+ 'ṋ' => 'ṋ',
+ 'Ṍ' => 'Ṍ',
+ 'ṍ' => 'ṍ',
+ 'Ṏ' => 'Ṏ',
+ 'ṏ' => 'ṏ',
+ 'Ṑ' => 'Ṑ',
+ 'ṑ' => 'ṑ',
+ 'Ṓ' => 'Ṓ',
+ 'ṓ' => 'ṓ',
+ 'Ṕ' => 'Ṕ',
+ 'ṕ' => 'ṕ',
+ 'Ṗ' => 'Ṗ',
+ 'ṗ' => 'ṗ',
+ 'Ṙ' => 'Ṙ',
+ 'ṙ' => 'ṙ',
+ 'Ṛ' => 'Ṛ',
+ 'ṛ' => 'ṛ',
+ 'Ṝ' => 'Ṝ',
+ 'ṝ' => 'ṝ',
+ 'Ṟ' => 'Ṟ',
+ 'ṟ' => 'ṟ',
+ 'Ṡ' => 'Ṡ',
+ 'ṡ' => 'ṡ',
+ 'Ṣ' => 'Ṣ',
+ 'ṣ' => 'ṣ',
+ 'Ṥ' => 'Ṥ',
+ 'ṥ' => 'ṥ',
+ 'Ṧ' => 'Ṧ',
+ 'ṧ' => 'ṧ',
+ 'Ṩ' => 'Ṩ',
+ 'ṩ' => 'ṩ',
+ 'Ṫ' => 'Ṫ',
+ 'ṫ' => 'ṫ',
+ 'Ṭ' => 'Ṭ',
+ 'ṭ' => 'ṭ',
+ 'Ṯ' => 'Ṯ',
+ 'ṯ' => 'ṯ',
+ 'Ṱ' => 'Ṱ',
+ 'ṱ' => 'ṱ',
+ 'Ṳ' => 'Ṳ',
+ 'ṳ' => 'ṳ',
+ 'Ṵ' => 'Ṵ',
+ 'ṵ' => 'ṵ',
+ 'Ṷ' => 'Ṷ',
+ 'ṷ' => 'ṷ',
+ 'Ṹ' => 'Ṹ',
+ 'ṹ' => 'ṹ',
+ 'Ṻ' => 'Ṻ',
+ 'ṻ' => 'ṻ',
+ 'Ṽ' => 'Ṽ',
+ 'ṽ' => 'ṽ',
+ 'Ṿ' => 'Ṿ',
+ 'ṿ' => 'ṿ',
+ 'Ẁ' => 'Ẁ',
+ 'ẁ' => 'ẁ',
+ 'Ẃ' => 'Ẃ',
+ 'ẃ' => 'ẃ',
+ 'Ẅ' => 'Ẅ',
+ 'ẅ' => 'ẅ',
+ 'Ẇ' => 'Ẇ',
+ 'ẇ' => 'ẇ',
+ 'Ẉ' => 'Ẉ',
+ 'ẉ' => 'ẉ',
+ 'Ẋ' => 'Ẋ',
+ 'ẋ' => 'ẋ',
+ 'Ẍ' => 'Ẍ',
+ 'ẍ' => 'ẍ',
+ 'Ẏ' => 'Ẏ',
+ 'ẏ' => 'ẏ',
+ 'Ẑ' => 'Ẑ',
+ 'ẑ' => 'ẑ',
+ 'Ẓ' => 'Ẓ',
+ 'ẓ' => 'ẓ',
+ 'Ẕ' => 'Ẕ',
+ 'ẕ' => 'ẕ',
+ 'ẖ' => 'ẖ',
+ 'ẗ' => 'ẗ',
+ 'ẘ' => 'ẘ',
+ 'ẙ' => 'ẙ',
+ 'ẛ' => 'ẛ',
+ 'Ạ' => 'Ạ',
+ 'ạ' => 'ạ',
+ 'Ả' => 'Ả',
+ 'ả' => 'ả',
+ 'Ấ' => 'Ấ',
+ 'ấ' => 'ấ',
+ 'Ầ' => 'Ầ',
+ 'ầ' => 'ầ',
+ 'Ẩ' => 'Ẩ',
+ 'ẩ' => 'ẩ',
+ 'Ẫ' => 'Ẫ',
+ 'ẫ' => 'ẫ',
+ 'Ậ' => 'Ậ',
+ 'ậ' => 'ậ',
+ 'Ắ' => 'Ắ',
+ 'ắ' => 'ắ',
+ 'Ằ' => 'Ằ',
+ 'ằ' => 'ằ',
+ 'Ẳ' => 'Ẳ',
+ 'ẳ' => 'ẳ',
+ 'Ẵ' => 'Ẵ',
+ 'ẵ' => 'ẵ',
+ 'Ặ' => 'Ặ',
+ 'ặ' => 'ặ',
+ 'Ẹ' => 'Ẹ',
+ 'ẹ' => 'ẹ',
+ 'Ẻ' => 'Ẻ',
+ 'ẻ' => 'ẻ',
+ 'Ẽ' => 'Ẽ',
+ 'ẽ' => 'ẽ',
+ 'Ế' => 'Ế',
+ 'ế' => 'ế',
+ 'Ề' => 'Ề',
+ 'ề' => 'ề',
+ 'Ể' => 'Ể',
+ 'ể' => 'ể',
+ 'Ễ' => 'Ễ',
+ 'ễ' => 'ễ',
+ 'Ệ' => 'Ệ',
+ 'ệ' => 'ệ',
+ 'Ỉ' => 'Ỉ',
+ 'ỉ' => 'ỉ',
+ 'Ị' => 'Ị',
+ 'ị' => 'ị',
+ 'Ọ' => 'Ọ',
+ 'ọ' => 'ọ',
+ 'Ỏ' => 'Ỏ',
+ 'ỏ' => 'ỏ',
+ 'Ố' => 'Ố',
+ 'ố' => 'ố',
+ 'Ồ' => 'Ồ',
+ 'ồ' => 'ồ',
+ 'Ổ' => 'Ổ',
+ 'ổ' => 'ổ',
+ 'Ỗ' => 'Ỗ',
+ 'ỗ' => 'ỗ',
+ 'Ộ' => 'Ộ',
+ 'ộ' => 'ộ',
+ 'Ớ' => 'Ớ',
+ 'ớ' => 'ớ',
+ 'Ờ' => 'Ờ',
+ 'ờ' => 'ờ',
+ 'Ở' => 'Ở',
+ 'ở' => 'ở',
+ 'Ỡ' => 'Ỡ',
+ 'ỡ' => 'ỡ',
+ 'Ợ' => 'Ợ',
+ 'ợ' => 'ợ',
+ 'Ụ' => 'Ụ',
+ 'ụ' => 'ụ',
+ 'Ủ' => 'Ủ',
+ 'ủ' => 'ủ',
+ 'Ứ' => 'Ứ',
+ 'ứ' => 'ứ',
+ 'Ừ' => 'Ừ',
+ 'ừ' => 'ừ',
+ 'Ử' => 'Ử',
+ 'ử' => 'ử',
+ 'Ữ' => 'Ữ',
+ 'ữ' => 'ữ',
+ 'Ự' => 'Ự',
+ 'ự' => 'ự',
+ 'Ỳ' => 'Ỳ',
+ 'ỳ' => 'ỳ',
+ 'Ỵ' => 'Ỵ',
+ 'ỵ' => 'ỵ',
+ 'Ỷ' => 'Ỷ',
+ 'ỷ' => 'ỷ',
+ 'Ỹ' => 'Ỹ',
+ 'ỹ' => 'ỹ',
+ 'ἀ' => 'ἀ',
+ 'ἁ' => 'ἁ',
+ 'ἂ' => 'ἂ',
+ 'ἃ' => 'ἃ',
+ 'ἄ' => 'ἄ',
+ 'ἅ' => 'ἅ',
+ 'ἆ' => 'ἆ',
+ 'ἇ' => 'ἇ',
+ 'Ἀ' => 'Ἀ',
+ 'Ἁ' => 'Ἁ',
+ 'Ἂ' => 'Ἂ',
+ 'Ἃ' => 'Ἃ',
+ 'Ἄ' => 'Ἄ',
+ 'Ἅ' => 'Ἅ',
+ 'Ἆ' => 'Ἆ',
+ 'Ἇ' => 'Ἇ',
+ 'ἐ' => 'ἐ',
+ 'ἑ' => 'ἑ',
+ 'ἒ' => 'ἒ',
+ 'ἓ' => 'ἓ',
+ 'ἔ' => 'ἔ',
+ 'ἕ' => 'ἕ',
+ 'Ἐ' => 'Ἐ',
+ 'Ἑ' => 'Ἑ',
+ 'Ἒ' => 'Ἒ',
+ 'Ἓ' => 'Ἓ',
+ 'Ἔ' => 'Ἔ',
+ 'Ἕ' => 'Ἕ',
+ 'ἠ' => 'ἠ',
+ 'ἡ' => 'ἡ',
+ 'ἢ' => 'ἢ',
+ 'ἣ' => 'ἣ',
+ 'ἤ' => 'ἤ',
+ 'ἥ' => 'ἥ',
+ 'ἦ' => 'ἦ',
+ 'ἧ' => 'ἧ',
+ 'Ἠ' => 'Ἠ',
+ 'Ἡ' => 'Ἡ',
+ 'Ἢ' => 'Ἢ',
+ 'Ἣ' => 'Ἣ',
+ 'Ἤ' => 'Ἤ',
+ 'Ἥ' => 'Ἥ',
+ 'Ἦ' => 'Ἦ',
+ 'Ἧ' => 'Ἧ',
+ 'ἰ' => 'ἰ',
+ 'ἱ' => 'ἱ',
+ 'ἲ' => 'ἲ',
+ 'ἳ' => 'ἳ',
+ 'ἴ' => 'ἴ',
+ 'ἵ' => 'ἵ',
+ 'ἶ' => 'ἶ',
+ 'ἷ' => 'ἷ',
+ 'Ἰ' => 'Ἰ',
+ 'Ἱ' => 'Ἱ',
+ 'Ἲ' => 'Ἲ',
+ 'Ἳ' => 'Ἳ',
+ 'Ἴ' => 'Ἴ',
+ 'Ἵ' => 'Ἵ',
+ 'Ἶ' => 'Ἶ',
+ 'Ἷ' => 'Ἷ',
+ 'ὀ' => 'ὀ',
+ 'ὁ' => 'ὁ',
+ 'ὂ' => 'ὂ',
+ 'ὃ' => 'ὃ',
+ 'ὄ' => 'ὄ',
+ 'ὅ' => 'ὅ',
+ 'Ὀ' => 'Ὀ',
+ 'Ὁ' => 'Ὁ',
+ 'Ὂ' => 'Ὂ',
+ 'Ὃ' => 'Ὃ',
+ 'Ὄ' => 'Ὄ',
+ 'Ὅ' => 'Ὅ',
+ 'ὐ' => 'ὐ',
+ 'ὑ' => 'ὑ',
+ 'ὒ' => 'ὒ',
+ 'ὓ' => 'ὓ',
+ 'ὔ' => 'ὔ',
+ 'ὕ' => 'ὕ',
+ 'ὖ' => 'ὖ',
+ 'ὗ' => 'ὗ',
+ 'Ὑ' => 'Ὑ',
+ 'Ὓ' => 'Ὓ',
+ 'Ὕ' => 'Ὕ',
+ 'Ὗ' => 'Ὗ',
+ 'ὠ' => 'ὠ',
+ 'ὡ' => 'ὡ',
+ 'ὢ' => 'ὢ',
+ 'ὣ' => 'ὣ',
+ 'ὤ' => 'ὤ',
+ 'ὥ' => 'ὥ',
+ 'ὦ' => 'ὦ',
+ 'ὧ' => 'ὧ',
+ 'Ὠ' => 'Ὠ',
+ 'Ὡ' => 'Ὡ',
+ 'Ὢ' => 'Ὢ',
+ 'Ὣ' => 'Ὣ',
+ 'Ὤ' => 'Ὤ',
+ 'Ὥ' => 'Ὥ',
+ 'Ὦ' => 'Ὦ',
+ 'Ὧ' => 'Ὧ',
+ 'ὰ' => 'ὰ',
+ 'ά' => 'ά',
+ 'ὲ' => 'ὲ',
+ 'έ' => 'έ',
+ 'ὴ' => 'ὴ',
+ 'ή' => 'ή',
+ 'ὶ' => 'ὶ',
+ 'ί' => 'ί',
+ 'ὸ' => 'ὸ',
+ 'ό' => 'ό',
+ 'ὺ' => 'ὺ',
+ 'ύ' => 'ύ',
+ 'ὼ' => 'ὼ',
+ 'ώ' => 'ώ',
+ 'ᾀ' => 'ᾀ',
+ 'ᾁ' => 'ᾁ',
+ 'ᾂ' => 'ᾂ',
+ 'ᾃ' => 'ᾃ',
+ 'ᾄ' => 'ᾄ',
+ 'ᾅ' => 'ᾅ',
+ 'ᾆ' => 'ᾆ',
+ 'ᾇ' => 'ᾇ',
+ 'ᾈ' => 'ᾈ',
+ 'ᾉ' => 'ᾉ',
+ 'ᾊ' => 'ᾊ',
+ 'ᾋ' => 'ᾋ',
+ 'ᾌ' => 'ᾌ',
+ 'ᾍ' => 'ᾍ',
+ 'ᾎ' => 'ᾎ',
+ 'ᾏ' => 'ᾏ',
+ 'ᾐ' => 'ᾐ',
+ 'ᾑ' => 'ᾑ',
+ 'ᾒ' => 'ᾒ',
+ 'ᾓ' => 'ᾓ',
+ 'ᾔ' => 'ᾔ',
+ 'ᾕ' => 'ᾕ',
+ 'ᾖ' => 'ᾖ',
+ 'ᾗ' => 'ᾗ',
+ 'ᾘ' => 'ᾘ',
+ 'ᾙ' => 'ᾙ',
+ 'ᾚ' => 'ᾚ',
+ 'ᾛ' => 'ᾛ',
+ 'ᾜ' => 'ᾜ',
+ 'ᾝ' => 'ᾝ',
+ 'ᾞ' => 'ᾞ',
+ 'ᾟ' => 'ᾟ',
+ 'ᾠ' => 'ᾠ',
+ 'ᾡ' => 'ᾡ',
+ 'ᾢ' => 'ᾢ',
+ 'ᾣ' => 'ᾣ',
+ 'ᾤ' => 'ᾤ',
+ 'ᾥ' => 'ᾥ',
+ 'ᾦ' => 'ᾦ',
+ 'ᾧ' => 'ᾧ',
+ 'ᾨ' => 'ᾨ',
+ 'ᾩ' => 'ᾩ',
+ 'ᾪ' => 'ᾪ',
+ 'ᾫ' => 'ᾫ',
+ 'ᾬ' => 'ᾬ',
+ 'ᾭ' => 'ᾭ',
+ 'ᾮ' => 'ᾮ',
+ 'ᾯ' => 'ᾯ',
+ 'ᾰ' => 'ᾰ',
+ 'ᾱ' => 'ᾱ',
+ 'ᾲ' => 'ᾲ',
+ 'ᾳ' => 'ᾳ',
+ 'ᾴ' => 'ᾴ',
+ 'ᾶ' => 'ᾶ',
+ 'ᾷ' => 'ᾷ',
+ 'Ᾰ' => 'Ᾰ',
+ 'Ᾱ' => 'Ᾱ',
+ 'Ὰ' => 'Ὰ',
+ 'Ά' => 'Ά',
+ 'ᾼ' => 'ᾼ',
+ 'ι' => 'ι',
+ '῁' => '῁',
+ 'ῂ' => 'ῂ',
+ 'ῃ' => 'ῃ',
+ 'ῄ' => 'ῄ',
+ 'ῆ' => 'ῆ',
+ 'ῇ' => 'ῇ',
+ 'Ὲ' => 'Ὲ',
+ 'Έ' => 'Έ',
+ 'Ὴ' => 'Ὴ',
+ 'Ή' => 'Ή',
+ 'ῌ' => 'ῌ',
+ '῍' => '῍',
+ '῎' => '῎',
+ '῏' => '῏',
+ 'ῐ' => 'ῐ',
+ 'ῑ' => 'ῑ',
+ 'ῒ' => 'ῒ',
+ 'ΐ' => 'ΐ',
+ 'ῖ' => 'ῖ',
+ 'ῗ' => 'ῗ',
+ 'Ῐ' => 'Ῐ',
+ 'Ῑ' => 'Ῑ',
+ 'Ὶ' => 'Ὶ',
+ 'Ί' => 'Ί',
+ '῝' => '῝',
+ '῞' => '῞',
+ '῟' => '῟',
+ 'ῠ' => 'ῠ',
+ 'ῡ' => 'ῡ',
+ 'ῢ' => 'ῢ',
+ 'ΰ' => 'ΰ',
+ 'ῤ' => 'ῤ',
+ 'ῥ' => 'ῥ',
+ 'ῦ' => 'ῦ',
+ 'ῧ' => 'ῧ',
+ 'Ῠ' => 'Ῠ',
+ 'Ῡ' => 'Ῡ',
+ 'Ὺ' => 'Ὺ',
+ 'Ύ' => 'Ύ',
+ 'Ῥ' => 'Ῥ',
+ '῭' => '῭',
+ '΅' => '΅',
+ '`' => '`',
+ 'ῲ' => 'ῲ',
+ 'ῳ' => 'ῳ',
+ 'ῴ' => 'ῴ',
+ 'ῶ' => 'ῶ',
+ 'ῷ' => 'ῷ',
+ 'Ὸ' => 'Ὸ',
+ 'Ό' => 'Ό',
+ 'Ὼ' => 'Ὼ',
+ 'Ώ' => 'Ώ',
+ 'ῼ' => 'ῼ',
+ '´' => '´',
+ ' ' => ' ',
+ ' ' => ' ',
+ 'Ω' => 'Ω',
+ 'K' => 'K',
+ 'Å' => 'Å',
+ '↚' => '↚',
+ '↛' => '↛',
+ '↮' => '↮',
+ '⇍' => '⇍',
+ '⇎' => '⇎',
+ '⇏' => '⇏',
+ '∄' => '∄',
+ '∉' => '∉',
+ '∌' => '∌',
+ '∤' => '∤',
+ '∦' => '∦',
+ '≁' => '≁',
+ '≄' => '≄',
+ '≇' => '≇',
+ '≉' => '≉',
+ '≠' => '≠',
+ '≢' => '≢',
+ '≭' => '≭',
+ '≮' => '≮',
+ '≯' => '≯',
+ '≰' => '≰',
+ '≱' => '≱',
+ '≴' => '≴',
+ '≵' => '≵',
+ '≸' => '≸',
+ '≹' => '≹',
+ '⊀' => '⊀',
+ '⊁' => '⊁',
+ '⊄' => '⊄',
+ '⊅' => '⊅',
+ '⊈' => '⊈',
+ '⊉' => '⊉',
+ '⊬' => '⊬',
+ '⊭' => '⊭',
+ '⊮' => '⊮',
+ '⊯' => '⊯',
+ '⋠' => '⋠',
+ '⋡' => '⋡',
+ '⋢' => '⋢',
+ '⋣' => '⋣',
+ '⋪' => '⋪',
+ '⋫' => '⋫',
+ '⋬' => '⋬',
+ '⋭' => '⋭',
+ '〈' => '〈',
+ '〉' => '〉',
+ '⫝̸' => '⫝̸',
+ 'が' => 'が',
+ 'ぎ' => 'ぎ',
+ 'ぐ' => 'ぐ',
+ 'げ' => 'げ',
+ 'ご' => 'ご',
+ 'ざ' => 'ざ',
+ 'じ' => 'じ',
+ 'ず' => 'ず',
+ 'ぜ' => 'ぜ',
+ 'ぞ' => 'ぞ',
+ 'だ' => 'だ',
+ 'ぢ' => 'ぢ',
+ 'づ' => 'づ',
+ 'で' => 'で',
+ 'ど' => 'ど',
+ 'ば' => 'ば',
+ 'ぱ' => 'ぱ',
+ 'び' => 'び',
+ 'ぴ' => 'ぴ',
+ 'ぶ' => 'ぶ',
+ 'ぷ' => 'ぷ',
+ 'べ' => 'べ',
+ 'ぺ' => 'ぺ',
+ 'ぼ' => 'ぼ',
+ 'ぽ' => 'ぽ',
+ 'ゔ' => 'ゔ',
+ 'ゞ' => 'ゞ',
+ 'ガ' => 'ガ',
+ 'ギ' => 'ギ',
+ 'グ' => 'グ',
+ 'ゲ' => 'ゲ',
+ 'ゴ' => 'ゴ',
+ 'ザ' => 'ザ',
+ 'ジ' => 'ジ',
+ 'ズ' => 'ズ',
+ 'ゼ' => 'ゼ',
+ 'ゾ' => 'ゾ',
+ 'ダ' => 'ダ',
+ 'ヂ' => 'ヂ',
+ 'ヅ' => 'ヅ',
+ 'デ' => 'デ',
+ 'ド' => 'ド',
+ 'バ' => 'バ',
+ 'パ' => 'パ',
+ 'ビ' => 'ビ',
+ 'ピ' => 'ピ',
+ 'ブ' => 'ブ',
+ 'プ' => 'プ',
+ 'ベ' => 'ベ',
+ 'ペ' => 'ペ',
+ 'ボ' => 'ボ',
+ 'ポ' => 'ポ',
+ 'ヴ' => 'ヴ',
+ 'ヷ' => 'ヷ',
+ 'ヸ' => 'ヸ',
+ 'ヹ' => 'ヹ',
+ 'ヺ' => 'ヺ',
+ 'ヾ' => 'ヾ',
+ '豈' => '豈',
+ '更' => '更',
+ '車' => '車',
+ '賈' => '賈',
+ '滑' => '滑',
+ '串' => '串',
+ '句' => '句',
+ '龜' => '龜',
+ '龜' => '龜',
+ '契' => '契',
+ '金' => '金',
+ '喇' => '喇',
+ '奈' => '奈',
+ '懶' => '懶',
+ '癩' => '癩',
+ '羅' => '羅',
+ '蘿' => '蘿',
+ '螺' => '螺',
+ '裸' => '裸',
+ '邏' => '邏',
+ '樂' => '樂',
+ '洛' => '洛',
+ '烙' => '烙',
+ '珞' => '珞',
+ '落' => '落',
+ '酪' => '酪',
+ '駱' => '駱',
+ '亂' => '亂',
+ '卵' => '卵',
+ '欄' => '欄',
+ '爛' => '爛',
+ '蘭' => '蘭',
+ '鸞' => '鸞',
+ '嵐' => '嵐',
+ '濫' => '濫',
+ '藍' => '藍',
+ '襤' => '襤',
+ '拉' => '拉',
+ '臘' => '臘',
+ '蠟' => '蠟',
+ '廊' => '廊',
+ '朗' => '朗',
+ '浪' => '浪',
+ '狼' => '狼',
+ '郎' => '郎',
+ '來' => '來',
+ '冷' => '冷',
+ '勞' => '勞',
+ '擄' => '擄',
+ '櫓' => '櫓',
+ '爐' => '爐',
+ '盧' => '盧',
+ '老' => '老',
+ '蘆' => '蘆',
+ '虜' => '虜',
+ '路' => '路',
+ '露' => '露',
+ '魯' => '魯',
+ '鷺' => '鷺',
+ '碌' => '碌',
+ '祿' => '祿',
+ '綠' => '綠',
+ '菉' => '菉',
+ '錄' => '錄',
+ '鹿' => '鹿',
+ '論' => '論',
+ '壟' => '壟',
+ '弄' => '弄',
+ '籠' => '籠',
+ '聾' => '聾',
+ '牢' => '牢',
+ '磊' => '磊',
+ '賂' => '賂',
+ '雷' => '雷',
+ '壘' => '壘',
+ '屢' => '屢',
+ '樓' => '樓',
+ '淚' => '淚',
+ '漏' => '漏',
+ '累' => '累',
+ '縷' => '縷',
+ '陋' => '陋',
+ '勒' => '勒',
+ '肋' => '肋',
+ '凜' => '凜',
+ '凌' => '凌',
+ '稜' => '稜',
+ '綾' => '綾',
+ '菱' => '菱',
+ '陵' => '陵',
+ '讀' => '讀',
+ '拏' => '拏',
+ '樂' => '樂',
+ '諾' => '諾',
+ '丹' => '丹',
+ '寧' => '寧',
+ '怒' => '怒',
+ '率' => '率',
+ '異' => '異',
+ '北' => '北',
+ '磻' => '磻',
+ '便' => '便',
+ '復' => '復',
+ '不' => '不',
+ '泌' => '泌',
+ '數' => '數',
+ '索' => '索',
+ '參' => '參',
+ '塞' => '塞',
+ '省' => '省',
+ '葉' => '葉',
+ '說' => '說',
+ '殺' => '殺',
+ '辰' => '辰',
+ '沈' => '沈',
+ '拾' => '拾',
+ '若' => '若',
+ '掠' => '掠',
+ '略' => '略',
+ '亮' => '亮',
+ '兩' => '兩',
+ '凉' => '凉',
+ '梁' => '梁',
+ '糧' => '糧',
+ '良' => '良',
+ '諒' => '諒',
+ '量' => '量',
+ '勵' => '勵',
+ '呂' => '呂',
+ '女' => '女',
+ '廬' => '廬',
+ '旅' => '旅',
+ '濾' => '濾',
+ '礪' => '礪',
+ '閭' => '閭',
+ '驪' => '驪',
+ '麗' => '麗',
+ '黎' => '黎',
+ '力' => '力',
+ '曆' => '曆',
+ '歷' => '歷',
+ '轢' => '轢',
+ '年' => '年',
+ '憐' => '憐',
+ '戀' => '戀',
+ '撚' => '撚',
+ '漣' => '漣',
+ '煉' => '煉',
+ '璉' => '璉',
+ '秊' => '秊',
+ '練' => '練',
+ '聯' => '聯',
+ '輦' => '輦',
+ '蓮' => '蓮',
+ '連' => '連',
+ '鍊' => '鍊',
+ '列' => '列',
+ '劣' => '劣',
+ '咽' => '咽',
+ '烈' => '烈',
+ '裂' => '裂',
+ '說' => '說',
+ '廉' => '廉',
+ '念' => '念',
+ '捻' => '捻',
+ '殮' => '殮',
+ '簾' => '簾',
+ '獵' => '獵',
+ '令' => '令',
+ '囹' => '囹',
+ '寧' => '寧',
+ '嶺' => '嶺',
+ '怜' => '怜',
+ '玲' => '玲',
+ '瑩' => '瑩',
+ '羚' => '羚',
+ '聆' => '聆',
+ '鈴' => '鈴',
+ '零' => '零',
+ '靈' => '靈',
+ '領' => '領',
+ '例' => '例',
+ '禮' => '禮',
+ '醴' => '醴',
+ '隸' => '隸',
+ '惡' => '惡',
+ '了' => '了',
+ '僚' => '僚',
+ '寮' => '寮',
+ '尿' => '尿',
+ '料' => '料',
+ '樂' => '樂',
+ '燎' => '燎',
+ '療' => '療',
+ '蓼' => '蓼',
+ '遼' => '遼',
+ '龍' => '龍',
+ '暈' => '暈',
+ '阮' => '阮',
+ '劉' => '劉',
+ '杻' => '杻',
+ '柳' => '柳',
+ '流' => '流',
+ '溜' => '溜',
+ '琉' => '琉',
+ '留' => '留',
+ '硫' => '硫',
+ '紐' => '紐',
+ '類' => '類',
+ '六' => '六',
+ '戮' => '戮',
+ '陸' => '陸',
+ '倫' => '倫',
+ '崙' => '崙',
+ '淪' => '淪',
+ '輪' => '輪',
+ '律' => '律',
+ '慄' => '慄',
+ '栗' => '栗',
+ '率' => '率',
+ '隆' => '隆',
+ '利' => '利',
+ '吏' => '吏',
+ '履' => '履',
+ '易' => '易',
+ '李' => '李',
+ '梨' => '梨',
+ '泥' => '泥',
+ '理' => '理',
+ '痢' => '痢',
+ '罹' => '罹',
+ '裏' => '裏',
+ '裡' => '裡',
+ '里' => '里',
+ '離' => '離',
+ '匿' => '匿',
+ '溺' => '溺',
+ '吝' => '吝',
+ '燐' => '燐',
+ '璘' => '璘',
+ '藺' => '藺',
+ '隣' => '隣',
+ '鱗' => '鱗',
+ '麟' => '麟',
+ '林' => '林',
+ '淋' => '淋',
+ '臨' => '臨',
+ '立' => '立',
+ '笠' => '笠',
+ '粒' => '粒',
+ '狀' => '狀',
+ '炙' => '炙',
+ '識' => '識',
+ '什' => '什',
+ '茶' => '茶',
+ '刺' => '刺',
+ '切' => '切',
+ '度' => '度',
+ '拓' => '拓',
+ '糖' => '糖',
+ '宅' => '宅',
+ '洞' => '洞',
+ '暴' => '暴',
+ '輻' => '輻',
+ '行' => '行',
+ '降' => '降',
+ '見' => '見',
+ '廓' => '廓',
+ '兀' => '兀',
+ '嗀' => '嗀',
+ '塚' => '塚',
+ '晴' => '晴',
+ '凞' => '凞',
+ '猪' => '猪',
+ '益' => '益',
+ '礼' => '礼',
+ '神' => '神',
+ '祥' => '祥',
+ '福' => '福',
+ '靖' => '靖',
+ '精' => '精',
+ '羽' => '羽',
+ '蘒' => '蘒',
+ '諸' => '諸',
+ '逸' => '逸',
+ '都' => '都',
+ '飯' => '飯',
+ '飼' => '飼',
+ '館' => '館',
+ '鶴' => '鶴',
+ '郞' => '郞',
+ '隷' => '隷',
+ '侮' => '侮',
+ '僧' => '僧',
+ '免' => '免',
+ '勉' => '勉',
+ '勤' => '勤',
+ '卑' => '卑',
+ '喝' => '喝',
+ '嘆' => '嘆',
+ '器' => '器',
+ '塀' => '塀',
+ '墨' => '墨',
+ '層' => '層',
+ '屮' => '屮',
+ '悔' => '悔',
+ '慨' => '慨',
+ '憎' => '憎',
+ '懲' => '懲',
+ '敏' => '敏',
+ '既' => '既',
+ '暑' => '暑',
+ '梅' => '梅',
+ '海' => '海',
+ '渚' => '渚',
+ '漢' => '漢',
+ '煮' => '煮',
+ '爫' => '爫',
+ '琢' => '琢',
+ '碑' => '碑',
+ '社' => '社',
+ '祉' => '祉',
+ '祈' => '祈',
+ '祐' => '祐',
+ '祖' => '祖',
+ '祝' => '祝',
+ '禍' => '禍',
+ '禎' => '禎',
+ '穀' => '穀',
+ '突' => '突',
+ '節' => '節',
+ '練' => '練',
+ '縉' => '縉',
+ '繁' => '繁',
+ '署' => '署',
+ '者' => '者',
+ '臭' => '臭',
+ '艹' => '艹',
+ '艹' => '艹',
+ '著' => '著',
+ '褐' => '褐',
+ '視' => '視',
+ '謁' => '謁',
+ '謹' => '謹',
+ '賓' => '賓',
+ '贈' => '贈',
+ '辶' => '辶',
+ '逸' => '逸',
+ '難' => '難',
+ '響' => '響',
+ '頻' => '頻',
+ '恵' => '恵',
+ '𤋮' => '𤋮',
+ '舘' => '舘',
+ '並' => '並',
+ '况' => '况',
+ '全' => '全',
+ '侀' => '侀',
+ '充' => '充',
+ '冀' => '冀',
+ '勇' => '勇',
+ '勺' => '勺',
+ '喝' => '喝',
+ '啕' => '啕',
+ '喙' => '喙',
+ '嗢' => '嗢',
+ '塚' => '塚',
+ '墳' => '墳',
+ '奄' => '奄',
+ '奔' => '奔',
+ '婢' => '婢',
+ '嬨' => '嬨',
+ '廒' => '廒',
+ '廙' => '廙',
+ '彩' => '彩',
+ '徭' => '徭',
+ '惘' => '惘',
+ '慎' => '慎',
+ '愈' => '愈',
+ '憎' => '憎',
+ '慠' => '慠',
+ '懲' => '懲',
+ '戴' => '戴',
+ '揄' => '揄',
+ '搜' => '搜',
+ '摒' => '摒',
+ '敖' => '敖',
+ '晴' => '晴',
+ '朗' => '朗',
+ '望' => '望',
+ '杖' => '杖',
+ '歹' => '歹',
+ '殺' => '殺',
+ '流' => '流',
+ '滛' => '滛',
+ '滋' => '滋',
+ '漢' => '漢',
+ '瀞' => '瀞',
+ '煮' => '煮',
+ '瞧' => '瞧',
+ '爵' => '爵',
+ '犯' => '犯',
+ '猪' => '猪',
+ '瑱' => '瑱',
+ '甆' => '甆',
+ '画' => '画',
+ '瘝' => '瘝',
+ '瘟' => '瘟',
+ '益' => '益',
+ '盛' => '盛',
+ '直' => '直',
+ '睊' => '睊',
+ '着' => '着',
+ '磌' => '磌',
+ '窱' => '窱',
+ '節' => '節',
+ '类' => '类',
+ '絛' => '絛',
+ '練' => '練',
+ '缾' => '缾',
+ '者' => '者',
+ '荒' => '荒',
+ '華' => '華',
+ '蝹' => '蝹',
+ '襁' => '襁',
+ '覆' => '覆',
+ '視' => '視',
+ '調' => '調',
+ '諸' => '諸',
+ '請' => '請',
+ '謁' => '謁',
+ '諾' => '諾',
+ '諭' => '諭',
+ '謹' => '謹',
+ '變' => '變',
+ '贈' => '贈',
+ '輸' => '輸',
+ '遲' => '遲',
+ '醙' => '醙',
+ '鉶' => '鉶',
+ '陼' => '陼',
+ '難' => '難',
+ '靖' => '靖',
+ '韛' => '韛',
+ '響' => '響',
+ '頋' => '頋',
+ '頻' => '頻',
+ '鬒' => '鬒',
+ '龜' => '龜',
+ '𢡊' => '𢡊',
+ '𢡄' => '𢡄',
+ '𣏕' => '𣏕',
+ '㮝' => '㮝',
+ '䀘' => '䀘',
+ '䀹' => '䀹',
+ '𥉉' => '𥉉',
+ '𥳐' => '𥳐',
+ '𧻓' => '𧻓',
+ '齃' => '齃',
+ '龎' => '龎',
+ 'יִ' => 'יִ',
+ 'ײַ' => 'ײַ',
+ 'שׁ' => 'שׁ',
+ 'שׂ' => 'שׂ',
+ 'שּׁ' => 'שּׁ',
+ 'שּׂ' => 'שּׂ',
+ 'אַ' => 'אַ',
+ 'אָ' => 'אָ',
+ 'אּ' => 'אּ',
+ 'בּ' => 'בּ',
+ 'גּ' => 'גּ',
+ 'דּ' => 'דּ',
+ 'הּ' => 'הּ',
+ 'וּ' => 'וּ',
+ 'זּ' => 'זּ',
+ 'טּ' => 'טּ',
+ 'יּ' => 'יּ',
+ 'ךּ' => 'ךּ',
+ 'כּ' => 'כּ',
+ 'לּ' => 'לּ',
+ 'מּ' => 'מּ',
+ 'נּ' => 'נּ',
+ 'סּ' => 'סּ',
+ 'ףּ' => 'ףּ',
+ 'פּ' => 'פּ',
+ 'צּ' => 'צּ',
+ 'קּ' => 'קּ',
+ 'רּ' => 'רּ',
+ 'שּ' => 'שּ',
+ 'תּ' => 'תּ',
+ 'וֹ' => 'וֹ',
+ 'בֿ' => 'בֿ',
+ 'כֿ' => 'כֿ',
+ 'פֿ' => 'פֿ',
+ '𑂚' => '𑂚',
+ '𑂜' => '𑂜',
+ '𑂫' => '𑂫',
+ '𑄮' => '𑄮',
+ '𑄯' => '𑄯',
+ '𑍋' => '𑍋',
+ '𑍌' => '𑍌',
+ '𑒻' => '𑒻',
+ '𑒼' => '𑒼',
+ '𑒾' => '𑒾',
+ '𑖺' => '𑖺',
+ '𑖻' => '𑖻',
+ '𑤸' => '𑤸',
+ '𝅗𝅥' => '𝅗𝅥',
+ '𝅘𝅥' => '𝅘𝅥',
+ '𝅘𝅥𝅮' => '𝅘𝅥𝅮',
+ '𝅘𝅥𝅯' => '𝅘𝅥𝅯',
+ '𝅘𝅥𝅰' => '𝅘𝅥𝅰',
+ '𝅘𝅥𝅱' => '𝅘𝅥𝅱',
+ '𝅘𝅥𝅲' => '𝅘𝅥𝅲',
+ '𝆹𝅥' => '𝆹𝅥',
+ '𝆺𝅥' => '𝆺𝅥',
+ '𝆹𝅥𝅮' => '𝆹𝅥𝅮',
+ '𝆺𝅥𝅮' => '𝆺𝅥𝅮',
+ '𝆹𝅥𝅯' => '𝆹𝅥𝅯',
+ '𝆺𝅥𝅯' => '𝆺𝅥𝅯',
+ '丽' => '丽',
+ '丸' => '丸',
+ '乁' => '乁',
+ '𠄢' => '𠄢',
+ '你' => '你',
+ '侮' => '侮',
+ '侻' => '侻',
+ '倂' => '倂',
+ '偺' => '偺',
+ '備' => '備',
+ '僧' => '僧',
+ '像' => '像',
+ '㒞' => '㒞',
+ '𠘺' => '𠘺',
+ '免' => '免',
+ '兔' => '兔',
+ '兤' => '兤',
+ '具' => '具',
+ '𠔜' => '𠔜',
+ '㒹' => '㒹',
+ '內' => '內',
+ '再' => '再',
+ '𠕋' => '𠕋',
+ '冗' => '冗',
+ '冤' => '冤',
+ '仌' => '仌',
+ '冬' => '冬',
+ '况' => '况',
+ '𩇟' => '𩇟',
+ '凵' => '凵',
+ '刃' => '刃',
+ '㓟' => '㓟',
+ '刻' => '刻',
+ '剆' => '剆',
+ '割' => '割',
+ '剷' => '剷',
+ '㔕' => '㔕',
+ '勇' => '勇',
+ '勉' => '勉',
+ '勤' => '勤',
+ '勺' => '勺',
+ '包' => '包',
+ '匆' => '匆',
+ '北' => '北',
+ '卉' => '卉',
+ '卑' => '卑',
+ '博' => '博',
+ '即' => '即',
+ '卽' => '卽',
+ '卿' => '卿',
+ '卿' => '卿',
+ '卿' => '卿',
+ '𠨬' => '𠨬',
+ '灰' => '灰',
+ '及' => '及',
+ '叟' => '叟',
+ '𠭣' => '𠭣',
+ '叫' => '叫',
+ '叱' => '叱',
+ '吆' => '吆',
+ '咞' => '咞',
+ '吸' => '吸',
+ '呈' => '呈',
+ '周' => '周',
+ '咢' => '咢',
+ '哶' => '哶',
+ '唐' => '唐',
+ '啓' => '啓',
+ '啣' => '啣',
+ '善' => '善',
+ '善' => '善',
+ '喙' => '喙',
+ '喫' => '喫',
+ '喳' => '喳',
+ '嗂' => '嗂',
+ '圖' => '圖',
+ '嘆' => '嘆',
+ '圗' => '圗',
+ '噑' => '噑',
+ '噴' => '噴',
+ '切' => '切',
+ '壮' => '壮',
+ '城' => '城',
+ '埴' => '埴',
+ '堍' => '堍',
+ '型' => '型',
+ '堲' => '堲',
+ '報' => '報',
+ '墬' => '墬',
+ '𡓤' => '𡓤',
+ '売' => '売',
+ '壷' => '壷',
+ '夆' => '夆',
+ '多' => '多',
+ '夢' => '夢',
+ '奢' => '奢',
+ '𡚨' => '𡚨',
+ '𡛪' => '𡛪',
+ '姬' => '姬',
+ '娛' => '娛',
+ '娧' => '娧',
+ '姘' => '姘',
+ '婦' => '婦',
+ '㛮' => '㛮',
+ '㛼' => '㛼',
+ '嬈' => '嬈',
+ '嬾' => '嬾',
+ '嬾' => '嬾',
+ '𡧈' => '𡧈',
+ '寃' => '寃',
+ '寘' => '寘',
+ '寧' => '寧',
+ '寳' => '寳',
+ '𡬘' => '𡬘',
+ '寿' => '寿',
+ '将' => '将',
+ '当' => '当',
+ '尢' => '尢',
+ '㞁' => '㞁',
+ '屠' => '屠',
+ '屮' => '屮',
+ '峀' => '峀',
+ '岍' => '岍',
+ '𡷤' => '𡷤',
+ '嵃' => '嵃',
+ '𡷦' => '𡷦',
+ '嵮' => '嵮',
+ '嵫' => '嵫',
+ '嵼' => '嵼',
+ '巡' => '巡',
+ '巢' => '巢',
+ '㠯' => '㠯',
+ '巽' => '巽',
+ '帨' => '帨',
+ '帽' => '帽',
+ '幩' => '幩',
+ '㡢' => '㡢',
+ '𢆃' => '𢆃',
+ '㡼' => '㡼',
+ '庰' => '庰',
+ '庳' => '庳',
+ '庶' => '庶',
+ '廊' => '廊',
+ '𪎒' => '𪎒',
+ '廾' => '廾',
+ '𢌱' => '𢌱',
+ '𢌱' => '𢌱',
+ '舁' => '舁',
+ '弢' => '弢',
+ '弢' => '弢',
+ '㣇' => '㣇',
+ '𣊸' => '𣊸',
+ '𦇚' => '𦇚',
+ '形' => '形',
+ '彫' => '彫',
+ '㣣' => '㣣',
+ '徚' => '徚',
+ '忍' => '忍',
+ '志' => '志',
+ '忹' => '忹',
+ '悁' => '悁',
+ '㤺' => '㤺',
+ '㤜' => '㤜',
+ '悔' => '悔',
+ '𢛔' => '𢛔',
+ '惇' => '惇',
+ '慈' => '慈',
+ '慌' => '慌',
+ '慎' => '慎',
+ '慌' => '慌',
+ '慺' => '慺',
+ '憎' => '憎',
+ '憲' => '憲',
+ '憤' => '憤',
+ '憯' => '憯',
+ '懞' => '懞',
+ '懲' => '懲',
+ '懶' => '懶',
+ '成' => '成',
+ '戛' => '戛',
+ '扝' => '扝',
+ '抱' => '抱',
+ '拔' => '拔',
+ '捐' => '捐',
+ '𢬌' => '𢬌',
+ '挽' => '挽',
+ '拼' => '拼',
+ '捨' => '捨',
+ '掃' => '掃',
+ '揤' => '揤',
+ '𢯱' => '𢯱',
+ '搢' => '搢',
+ '揅' => '揅',
+ '掩' => '掩',
+ '㨮' => '㨮',
+ '摩' => '摩',
+ '摾' => '摾',
+ '撝' => '撝',
+ '摷' => '摷',
+ '㩬' => '㩬',
+ '敏' => '敏',
+ '敬' => '敬',
+ '𣀊' => '𣀊',
+ '旣' => '旣',
+ '書' => '書',
+ '晉' => '晉',
+ '㬙' => '㬙',
+ '暑' => '暑',
+ '㬈' => '㬈',
+ '㫤' => '㫤',
+ '冒' => '冒',
+ '冕' => '冕',
+ '最' => '最',
+ '暜' => '暜',
+ '肭' => '肭',
+ '䏙' => '䏙',
+ '朗' => '朗',
+ '望' => '望',
+ '朡' => '朡',
+ '杞' => '杞',
+ '杓' => '杓',
+ '𣏃' => '𣏃',
+ '㭉' => '㭉',
+ '柺' => '柺',
+ '枅' => '枅',
+ '桒' => '桒',
+ '梅' => '梅',
+ '𣑭' => '𣑭',
+ '梎' => '梎',
+ '栟' => '栟',
+ '椔' => '椔',
+ '㮝' => '㮝',
+ '楂' => '楂',
+ '榣' => '榣',
+ '槪' => '槪',
+ '檨' => '檨',
+ '𣚣' => '𣚣',
+ '櫛' => '櫛',
+ '㰘' => '㰘',
+ '次' => '次',
+ '𣢧' => '𣢧',
+ '歔' => '歔',
+ '㱎' => '㱎',
+ '歲' => '歲',
+ '殟' => '殟',
+ '殺' => '殺',
+ '殻' => '殻',
+ '𣪍' => '𣪍',
+ '𡴋' => '𡴋',
+ '𣫺' => '𣫺',
+ '汎' => '汎',
+ '𣲼' => '𣲼',
+ '沿' => '沿',
+ '泍' => '泍',
+ '汧' => '汧',
+ '洖' => '洖',
+ '派' => '派',
+ '海' => '海',
+ '流' => '流',
+ '浩' => '浩',
+ '浸' => '浸',
+ '涅' => '涅',
+ '𣴞' => '𣴞',
+ '洴' => '洴',
+ '港' => '港',
+ '湮' => '湮',
+ '㴳' => '㴳',
+ '滋' => '滋',
+ '滇' => '滇',
+ '𣻑' => '𣻑',
+ '淹' => '淹',
+ '潮' => '潮',
+ '𣽞' => '𣽞',
+ '𣾎' => '𣾎',
+ '濆' => '濆',
+ '瀹' => '瀹',
+ '瀞' => '瀞',
+ '瀛' => '瀛',
+ '㶖' => '㶖',
+ '灊' => '灊',
+ '災' => '災',
+ '灷' => '灷',
+ '炭' => '炭',
+ '𠔥' => '𠔥',
+ '煅' => '煅',
+ '𤉣' => '𤉣',
+ '熜' => '熜',
+ '𤎫' => '𤎫',
+ '爨' => '爨',
+ '爵' => '爵',
+ '牐' => '牐',
+ '𤘈' => '𤘈',
+ '犀' => '犀',
+ '犕' => '犕',
+ '𤜵' => '𤜵',
+ '𤠔' => '𤠔',
+ '獺' => '獺',
+ '王' => '王',
+ '㺬' => '㺬',
+ '玥' => '玥',
+ '㺸' => '㺸',
+ '㺸' => '㺸',
+ '瑇' => '瑇',
+ '瑜' => '瑜',
+ '瑱' => '瑱',
+ '璅' => '璅',
+ '瓊' => '瓊',
+ '㼛' => '㼛',
+ '甤' => '甤',
+ '𤰶' => '𤰶',
+ '甾' => '甾',
+ '𤲒' => '𤲒',
+ '異' => '異',
+ '𢆟' => '𢆟',
+ '瘐' => '瘐',
+ '𤾡' => '𤾡',
+ '𤾸' => '𤾸',
+ '𥁄' => '𥁄',
+ '㿼' => '㿼',
+ '䀈' => '䀈',
+ '直' => '直',
+ '𥃳' => '𥃳',
+ '𥃲' => '𥃲',
+ '𥄙' => '𥄙',
+ '𥄳' => '𥄳',
+ '眞' => '眞',
+ '真' => '真',
+ '真' => '真',
+ '睊' => '睊',
+ '䀹' => '䀹',
+ '瞋' => '瞋',
+ '䁆' => '䁆',
+ '䂖' => '䂖',
+ '𥐝' => '𥐝',
+ '硎' => '硎',
+ '碌' => '碌',
+ '磌' => '磌',
+ '䃣' => '䃣',
+ '𥘦' => '𥘦',
+ '祖' => '祖',
+ '𥚚' => '𥚚',
+ '𥛅' => '𥛅',
+ '福' => '福',
+ '秫' => '秫',
+ '䄯' => '䄯',
+ '穀' => '穀',
+ '穊' => '穊',
+ '穏' => '穏',
+ '𥥼' => '𥥼',
+ '𥪧' => '𥪧',
+ '𥪧' => '𥪧',
+ '竮' => '竮',
+ '䈂' => '䈂',
+ '𥮫' => '𥮫',
+ '篆' => '篆',
+ '築' => '築',
+ '䈧' => '䈧',
+ '𥲀' => '𥲀',
+ '糒' => '糒',
+ '䊠' => '䊠',
+ '糨' => '糨',
+ '糣' => '糣',
+ '紀' => '紀',
+ '𥾆' => '𥾆',
+ '絣' => '絣',
+ '䌁' => '䌁',
+ '緇' => '緇',
+ '縂' => '縂',
+ '繅' => '繅',
+ '䌴' => '䌴',
+ '𦈨' => '𦈨',
+ '𦉇' => '𦉇',
+ '䍙' => '䍙',
+ '𦋙' => '𦋙',
+ '罺' => '罺',
+ '𦌾' => '𦌾',
+ '羕' => '羕',
+ '翺' => '翺',
+ '者' => '者',
+ '𦓚' => '𦓚',
+ '𦔣' => '𦔣',
+ '聠' => '聠',
+ '𦖨' => '𦖨',
+ '聰' => '聰',
+ '𣍟' => '𣍟',
+ '䏕' => '䏕',
+ '育' => '育',
+ '脃' => '脃',
+ '䐋' => '䐋',
+ '脾' => '脾',
+ '媵' => '媵',
+ '𦞧' => '𦞧',
+ '𦞵' => '𦞵',
+ '𣎓' => '𣎓',
+ '𣎜' => '𣎜',
+ '舁' => '舁',
+ '舄' => '舄',
+ '辞' => '辞',
+ '䑫' => '䑫',
+ '芑' => '芑',
+ '芋' => '芋',
+ '芝' => '芝',
+ '劳' => '劳',
+ '花' => '花',
+ '芳' => '芳',
+ '芽' => '芽',
+ '苦' => '苦',
+ '𦬼' => '𦬼',
+ '若' => '若',
+ '茝' => '茝',
+ '荣' => '荣',
+ '莭' => '莭',
+ '茣' => '茣',
+ '莽' => '莽',
+ '菧' => '菧',
+ '著' => '著',
+ '荓' => '荓',
+ '菊' => '菊',
+ '菌' => '菌',
+ '菜' => '菜',
+ '𦰶' => '𦰶',
+ '𦵫' => '𦵫',
+ '𦳕' => '𦳕',
+ '䔫' => '䔫',
+ '蓱' => '蓱',
+ '蓳' => '蓳',
+ '蔖' => '蔖',
+ '𧏊' => '𧏊',
+ '蕤' => '蕤',
+ '𦼬' => '𦼬',
+ '䕝' => '䕝',
+ '䕡' => '䕡',
+ '𦾱' => '𦾱',
+ '𧃒' => '𧃒',
+ '䕫' => '䕫',
+ '虐' => '虐',
+ '虜' => '虜',
+ '虧' => '虧',
+ '虩' => '虩',
+ '蚩' => '蚩',
+ '蚈' => '蚈',
+ '蜎' => '蜎',
+ '蛢' => '蛢',
+ '蝹' => '蝹',
+ '蜨' => '蜨',
+ '蝫' => '蝫',
+ '螆' => '螆',
+ '䗗' => '䗗',
+ '蟡' => '蟡',
+ '蠁' => '蠁',
+ '䗹' => '䗹',
+ '衠' => '衠',
+ '衣' => '衣',
+ '𧙧' => '𧙧',
+ '裗' => '裗',
+ '裞' => '裞',
+ '䘵' => '䘵',
+ '裺' => '裺',
+ '㒻' => '㒻',
+ '𧢮' => '𧢮',
+ '𧥦' => '𧥦',
+ '䚾' => '䚾',
+ '䛇' => '䛇',
+ '誠' => '誠',
+ '諭' => '諭',
+ '變' => '變',
+ '豕' => '豕',
+ '𧲨' => '𧲨',
+ '貫' => '貫',
+ '賁' => '賁',
+ '贛' => '贛',
+ '起' => '起',
+ '𧼯' => '𧼯',
+ '𠠄' => '𠠄',
+ '跋' => '跋',
+ '趼' => '趼',
+ '跰' => '跰',
+ '𠣞' => '𠣞',
+ '軔' => '軔',
+ '輸' => '輸',
+ '𨗒' => '𨗒',
+ '𨗭' => '𨗭',
+ '邔' => '邔',
+ '郱' => '郱',
+ '鄑' => '鄑',
+ '𨜮' => '𨜮',
+ '鄛' => '鄛',
+ '鈸' => '鈸',
+ '鋗' => '鋗',
+ '鋘' => '鋘',
+ '鉼' => '鉼',
+ '鏹' => '鏹',
+ '鐕' => '鐕',
+ '𨯺' => '𨯺',
+ '開' => '開',
+ '䦕' => '䦕',
+ '閷' => '閷',
+ '𨵷' => '𨵷',
+ '䧦' => '䧦',
+ '雃' => '雃',
+ '嶲' => '嶲',
+ '霣' => '霣',
+ '𩅅' => '𩅅',
+ '𩈚' => '𩈚',
+ '䩮' => '䩮',
+ '䩶' => '䩶',
+ '韠' => '韠',
+ '𩐊' => '𩐊',
+ '䪲' => '䪲',
+ '𩒖' => '𩒖',
+ '頋' => '頋',
+ '頋' => '頋',
+ '頩' => '頩',
+ '𩖶' => '𩖶',
+ '飢' => '飢',
+ '䬳' => '䬳',
+ '餩' => '餩',
+ '馧' => '馧',
+ '駂' => '駂',
+ '駾' => '駾',
+ '䯎' => '䯎',
+ '𩬰' => '𩬰',
+ '鬒' => '鬒',
+ '鱀' => '鱀',
+ '鳽' => '鳽',
+ '䳎' => '䳎',
+ '䳭' => '䳭',
+ '鵧' => '鵧',
+ '𪃎' => '𪃎',
+ '䳸' => '䳸',
+ '𪄅' => '𪄅',
+ '𪈎' => '𪈎',
+ '𪊑' => '𪊑',
+ '麻' => '麻',
+ '䵖' => '䵖',
+ '黹' => '黹',
+ '黾' => '黾',
+ '鼅' => '鼅',
+ '鼏' => '鼏',
+ '鼖' => '鼖',
+ '鼻' => '鼻',
+ '𪘀' => '𪘀',
+);
diff --git a/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/combiningClass.php b/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/combiningClass.php
new file mode 100644
index 0000000..ec90f36
--- /dev/null
+++ b/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/combiningClass.php
@@ -0,0 +1,876 @@
+ 230,
+ '́' => 230,
+ '̂' => 230,
+ '̃' => 230,
+ '̄' => 230,
+ '̅' => 230,
+ '̆' => 230,
+ '̇' => 230,
+ '̈' => 230,
+ '̉' => 230,
+ '̊' => 230,
+ '̋' => 230,
+ '̌' => 230,
+ '̍' => 230,
+ '̎' => 230,
+ '̏' => 230,
+ '̐' => 230,
+ '̑' => 230,
+ '̒' => 230,
+ '̓' => 230,
+ '̔' => 230,
+ '̕' => 232,
+ '̖' => 220,
+ '̗' => 220,
+ '̘' => 220,
+ '̙' => 220,
+ '̚' => 232,
+ '̛' => 216,
+ '̜' => 220,
+ '̝' => 220,
+ '̞' => 220,
+ '̟' => 220,
+ '̠' => 220,
+ '̡' => 202,
+ '̢' => 202,
+ '̣' => 220,
+ '̤' => 220,
+ '̥' => 220,
+ '̦' => 220,
+ '̧' => 202,
+ '̨' => 202,
+ '̩' => 220,
+ '̪' => 220,
+ '̫' => 220,
+ '̬' => 220,
+ '̭' => 220,
+ '̮' => 220,
+ '̯' => 220,
+ '̰' => 220,
+ '̱' => 220,
+ '̲' => 220,
+ '̳' => 220,
+ '̴' => 1,
+ '̵' => 1,
+ '̶' => 1,
+ '̷' => 1,
+ '̸' => 1,
+ '̹' => 220,
+ '̺' => 220,
+ '̻' => 220,
+ '̼' => 220,
+ '̽' => 230,
+ '̾' => 230,
+ '̿' => 230,
+ '̀' => 230,
+ '́' => 230,
+ '͂' => 230,
+ '̓' => 230,
+ '̈́' => 230,
+ 'ͅ' => 240,
+ '͆' => 230,
+ '͇' => 220,
+ '͈' => 220,
+ '͉' => 220,
+ '͊' => 230,
+ '͋' => 230,
+ '͌' => 230,
+ '͍' => 220,
+ '͎' => 220,
+ '͐' => 230,
+ '͑' => 230,
+ '͒' => 230,
+ '͓' => 220,
+ '͔' => 220,
+ '͕' => 220,
+ '͖' => 220,
+ '͗' => 230,
+ '͘' => 232,
+ '͙' => 220,
+ '͚' => 220,
+ '͛' => 230,
+ '͜' => 233,
+ '͝' => 234,
+ '͞' => 234,
+ '͟' => 233,
+ '͠' => 234,
+ '͡' => 234,
+ '͢' => 233,
+ 'ͣ' => 230,
+ 'ͤ' => 230,
+ 'ͥ' => 230,
+ 'ͦ' => 230,
+ 'ͧ' => 230,
+ 'ͨ' => 230,
+ 'ͩ' => 230,
+ 'ͪ' => 230,
+ 'ͫ' => 230,
+ 'ͬ' => 230,
+ 'ͭ' => 230,
+ 'ͮ' => 230,
+ 'ͯ' => 230,
+ '҃' => 230,
+ '҄' => 230,
+ '҅' => 230,
+ '҆' => 230,
+ '҇' => 230,
+ '֑' => 220,
+ '֒' => 230,
+ '֓' => 230,
+ '֔' => 230,
+ '֕' => 230,
+ '֖' => 220,
+ '֗' => 230,
+ '֘' => 230,
+ '֙' => 230,
+ '֚' => 222,
+ '֛' => 220,
+ '֜' => 230,
+ '֝' => 230,
+ '֞' => 230,
+ '֟' => 230,
+ '֠' => 230,
+ '֡' => 230,
+ '֢' => 220,
+ '֣' => 220,
+ '֤' => 220,
+ '֥' => 220,
+ '֦' => 220,
+ '֧' => 220,
+ '֨' => 230,
+ '֩' => 230,
+ '֪' => 220,
+ '֫' => 230,
+ '֬' => 230,
+ '֭' => 222,
+ '֮' => 228,
+ '֯' => 230,
+ 'ְ' => 10,
+ 'ֱ' => 11,
+ 'ֲ' => 12,
+ 'ֳ' => 13,
+ 'ִ' => 14,
+ 'ֵ' => 15,
+ 'ֶ' => 16,
+ 'ַ' => 17,
+ 'ָ' => 18,
+ 'ֹ' => 19,
+ 'ֺ' => 19,
+ 'ֻ' => 20,
+ 'ּ' => 21,
+ 'ֽ' => 22,
+ 'ֿ' => 23,
+ 'ׁ' => 24,
+ 'ׂ' => 25,
+ 'ׄ' => 230,
+ 'ׅ' => 220,
+ 'ׇ' => 18,
+ 'ؐ' => 230,
+ 'ؑ' => 230,
+ 'ؒ' => 230,
+ 'ؓ' => 230,
+ 'ؔ' => 230,
+ 'ؕ' => 230,
+ 'ؖ' => 230,
+ 'ؗ' => 230,
+ 'ؘ' => 30,
+ 'ؙ' => 31,
+ 'ؚ' => 32,
+ 'ً' => 27,
+ 'ٌ' => 28,
+ 'ٍ' => 29,
+ 'َ' => 30,
+ 'ُ' => 31,
+ 'ِ' => 32,
+ 'ّ' => 33,
+ 'ْ' => 34,
+ 'ٓ' => 230,
+ 'ٔ' => 230,
+ 'ٕ' => 220,
+ 'ٖ' => 220,
+ 'ٗ' => 230,
+ '٘' => 230,
+ 'ٙ' => 230,
+ 'ٚ' => 230,
+ 'ٛ' => 230,
+ 'ٜ' => 220,
+ 'ٝ' => 230,
+ 'ٞ' => 230,
+ 'ٟ' => 220,
+ 'ٰ' => 35,
+ 'ۖ' => 230,
+ 'ۗ' => 230,
+ 'ۘ' => 230,
+ 'ۙ' => 230,
+ 'ۚ' => 230,
+ 'ۛ' => 230,
+ 'ۜ' => 230,
+ '۟' => 230,
+ '۠' => 230,
+ 'ۡ' => 230,
+ 'ۢ' => 230,
+ 'ۣ' => 220,
+ 'ۤ' => 230,
+ 'ۧ' => 230,
+ 'ۨ' => 230,
+ '۪' => 220,
+ '۫' => 230,
+ '۬' => 230,
+ 'ۭ' => 220,
+ 'ܑ' => 36,
+ 'ܰ' => 230,
+ 'ܱ' => 220,
+ 'ܲ' => 230,
+ 'ܳ' => 230,
+ 'ܴ' => 220,
+ 'ܵ' => 230,
+ 'ܶ' => 230,
+ 'ܷ' => 220,
+ 'ܸ' => 220,
+ 'ܹ' => 220,
+ 'ܺ' => 230,
+ 'ܻ' => 220,
+ 'ܼ' => 220,
+ 'ܽ' => 230,
+ 'ܾ' => 220,
+ 'ܿ' => 230,
+ '݀' => 230,
+ '݁' => 230,
+ '݂' => 220,
+ '݃' => 230,
+ '݄' => 220,
+ '݅' => 230,
+ '݆' => 220,
+ '݇' => 230,
+ '݈' => 220,
+ '݉' => 230,
+ '݊' => 230,
+ '߫' => 230,
+ '߬' => 230,
+ '߭' => 230,
+ '߮' => 230,
+ '߯' => 230,
+ '߰' => 230,
+ '߱' => 230,
+ '߲' => 220,
+ '߳' => 230,
+ '߽' => 220,
+ 'ࠖ' => 230,
+ 'ࠗ' => 230,
+ '࠘' => 230,
+ '࠙' => 230,
+ 'ࠛ' => 230,
+ 'ࠜ' => 230,
+ 'ࠝ' => 230,
+ 'ࠞ' => 230,
+ 'ࠟ' => 230,
+ 'ࠠ' => 230,
+ 'ࠡ' => 230,
+ 'ࠢ' => 230,
+ 'ࠣ' => 230,
+ 'ࠥ' => 230,
+ 'ࠦ' => 230,
+ 'ࠧ' => 230,
+ 'ࠩ' => 230,
+ 'ࠪ' => 230,
+ 'ࠫ' => 230,
+ 'ࠬ' => 230,
+ '࠭' => 230,
+ '࡙' => 220,
+ '࡚' => 220,
+ '࡛' => 220,
+ '࣓' => 220,
+ 'ࣔ' => 230,
+ 'ࣕ' => 230,
+ 'ࣖ' => 230,
+ 'ࣗ' => 230,
+ 'ࣘ' => 230,
+ 'ࣙ' => 230,
+ 'ࣚ' => 230,
+ 'ࣛ' => 230,
+ 'ࣜ' => 230,
+ 'ࣝ' => 230,
+ 'ࣞ' => 230,
+ 'ࣟ' => 230,
+ '࣠' => 230,
+ '࣡' => 230,
+ 'ࣣ' => 220,
+ 'ࣤ' => 230,
+ 'ࣥ' => 230,
+ 'ࣦ' => 220,
+ 'ࣧ' => 230,
+ 'ࣨ' => 230,
+ 'ࣩ' => 220,
+ '࣪' => 230,
+ '࣫' => 230,
+ '࣬' => 230,
+ '࣭' => 220,
+ '࣮' => 220,
+ '࣯' => 220,
+ 'ࣰ' => 27,
+ 'ࣱ' => 28,
+ 'ࣲ' => 29,
+ 'ࣳ' => 230,
+ 'ࣴ' => 230,
+ 'ࣵ' => 230,
+ 'ࣶ' => 220,
+ 'ࣷ' => 230,
+ 'ࣸ' => 230,
+ 'ࣹ' => 220,
+ 'ࣺ' => 220,
+ 'ࣻ' => 230,
+ 'ࣼ' => 230,
+ 'ࣽ' => 230,
+ 'ࣾ' => 230,
+ 'ࣿ' => 230,
+ '़' => 7,
+ '्' => 9,
+ '॑' => 230,
+ '॒' => 220,
+ '॓' => 230,
+ '॔' => 230,
+ '়' => 7,
+ '্' => 9,
+ '৾' => 230,
+ '਼' => 7,
+ '੍' => 9,
+ '઼' => 7,
+ '્' => 9,
+ '଼' => 7,
+ '୍' => 9,
+ '்' => 9,
+ '్' => 9,
+ 'ౕ' => 84,
+ 'ౖ' => 91,
+ '಼' => 7,
+ '್' => 9,
+ '഻' => 9,
+ '഼' => 9,
+ '്' => 9,
+ '්' => 9,
+ 'ุ' => 103,
+ 'ู' => 103,
+ 'ฺ' => 9,
+ '่' => 107,
+ '้' => 107,
+ '๊' => 107,
+ '๋' => 107,
+ 'ຸ' => 118,
+ 'ູ' => 118,
+ '຺' => 9,
+ '່' => 122,
+ '້' => 122,
+ '໊' => 122,
+ '໋' => 122,
+ '༘' => 220,
+ '༙' => 220,
+ '༵' => 220,
+ '༷' => 220,
+ '༹' => 216,
+ 'ཱ' => 129,
+ 'ི' => 130,
+ 'ུ' => 132,
+ 'ེ' => 130,
+ 'ཻ' => 130,
+ 'ོ' => 130,
+ 'ཽ' => 130,
+ 'ྀ' => 130,
+ 'ྂ' => 230,
+ 'ྃ' => 230,
+ '྄' => 9,
+ '྆' => 230,
+ '྇' => 230,
+ '࿆' => 220,
+ '့' => 7,
+ '္' => 9,
+ '်' => 9,
+ 'ႍ' => 220,
+ '፝' => 230,
+ '፞' => 230,
+ '፟' => 230,
+ '᜔' => 9,
+ '᜴' => 9,
+ '្' => 9,
+ '៝' => 230,
+ 'ᢩ' => 228,
+ '᤹' => 222,
+ '᤺' => 230,
+ '᤻' => 220,
+ 'ᨗ' => 230,
+ 'ᨘ' => 220,
+ '᩠' => 9,
+ '᩵' => 230,
+ '᩶' => 230,
+ '᩷' => 230,
+ '᩸' => 230,
+ '᩹' => 230,
+ '᩺' => 230,
+ '᩻' => 230,
+ '᩼' => 230,
+ '᩿' => 220,
+ '᪰' => 230,
+ '᪱' => 230,
+ '᪲' => 230,
+ '᪳' => 230,
+ '᪴' => 230,
+ '᪵' => 220,
+ '᪶' => 220,
+ '᪷' => 220,
+ '᪸' => 220,
+ '᪹' => 220,
+ '᪺' => 220,
+ '᪻' => 230,
+ '᪼' => 230,
+ '᪽' => 220,
+ 'ᪿ' => 220,
+ 'ᫀ' => 220,
+ '᬴' => 7,
+ '᭄' => 9,
+ '᭫' => 230,
+ '᭬' => 220,
+ '᭭' => 230,
+ '᭮' => 230,
+ '᭯' => 230,
+ '᭰' => 230,
+ '᭱' => 230,
+ '᭲' => 230,
+ '᭳' => 230,
+ '᮪' => 9,
+ '᮫' => 9,
+ '᯦' => 7,
+ '᯲' => 9,
+ '᯳' => 9,
+ '᰷' => 7,
+ '᳐' => 230,
+ '᳑' => 230,
+ '᳒' => 230,
+ '᳔' => 1,
+ '᳕' => 220,
+ '᳖' => 220,
+ '᳗' => 220,
+ '᳘' => 220,
+ '᳙' => 220,
+ '᳚' => 230,
+ '᳛' => 230,
+ '᳜' => 220,
+ '᳝' => 220,
+ '᳞' => 220,
+ '᳟' => 220,
+ '᳠' => 230,
+ '᳢' => 1,
+ '᳣' => 1,
+ '᳤' => 1,
+ '᳥' => 1,
+ '᳦' => 1,
+ '᳧' => 1,
+ '᳨' => 1,
+ '᳭' => 220,
+ '᳴' => 230,
+ '᳸' => 230,
+ '᳹' => 230,
+ '᷀' => 230,
+ '᷁' => 230,
+ '᷂' => 220,
+ '᷃' => 230,
+ '᷄' => 230,
+ '᷅' => 230,
+ '᷆' => 230,
+ '᷇' => 230,
+ '᷈' => 230,
+ '᷉' => 230,
+ '᷊' => 220,
+ '᷋' => 230,
+ '᷌' => 230,
+ '᷍' => 234,
+ '᷎' => 214,
+ '᷏' => 220,
+ '᷐' => 202,
+ '᷑' => 230,
+ '᷒' => 230,
+ 'ᷓ' => 230,
+ 'ᷔ' => 230,
+ 'ᷕ' => 230,
+ 'ᷖ' => 230,
+ 'ᷗ' => 230,
+ 'ᷘ' => 230,
+ 'ᷙ' => 230,
+ 'ᷚ' => 230,
+ 'ᷛ' => 230,
+ 'ᷜ' => 230,
+ 'ᷝ' => 230,
+ 'ᷞ' => 230,
+ 'ᷟ' => 230,
+ 'ᷠ' => 230,
+ 'ᷡ' => 230,
+ 'ᷢ' => 230,
+ 'ᷣ' => 230,
+ 'ᷤ' => 230,
+ 'ᷥ' => 230,
+ 'ᷦ' => 230,
+ 'ᷧ' => 230,
+ 'ᷨ' => 230,
+ 'ᷩ' => 230,
+ 'ᷪ' => 230,
+ 'ᷫ' => 230,
+ 'ᷬ' => 230,
+ 'ᷭ' => 230,
+ 'ᷮ' => 230,
+ 'ᷯ' => 230,
+ 'ᷰ' => 230,
+ 'ᷱ' => 230,
+ 'ᷲ' => 230,
+ 'ᷳ' => 230,
+ 'ᷴ' => 230,
+ '᷵' => 230,
+ '᷶' => 232,
+ '᷷' => 228,
+ '᷸' => 228,
+ '᷹' => 220,
+ '᷻' => 230,
+ '᷼' => 233,
+ '᷽' => 220,
+ '᷾' => 230,
+ '᷿' => 220,
+ '⃐' => 230,
+ '⃑' => 230,
+ '⃒' => 1,
+ '⃓' => 1,
+ '⃔' => 230,
+ '⃕' => 230,
+ '⃖' => 230,
+ '⃗' => 230,
+ '⃘' => 1,
+ '⃙' => 1,
+ '⃚' => 1,
+ '⃛' => 230,
+ '⃜' => 230,
+ '⃡' => 230,
+ '⃥' => 1,
+ '⃦' => 1,
+ '⃧' => 230,
+ '⃨' => 220,
+ '⃩' => 230,
+ '⃪' => 1,
+ '⃫' => 1,
+ '⃬' => 220,
+ '⃭' => 220,
+ '⃮' => 220,
+ '⃯' => 220,
+ '⃰' => 230,
+ '⳯' => 230,
+ '⳰' => 230,
+ '⳱' => 230,
+ '⵿' => 9,
+ 'ⷠ' => 230,
+ 'ⷡ' => 230,
+ 'ⷢ' => 230,
+ 'ⷣ' => 230,
+ 'ⷤ' => 230,
+ 'ⷥ' => 230,
+ 'ⷦ' => 230,
+ 'ⷧ' => 230,
+ 'ⷨ' => 230,
+ 'ⷩ' => 230,
+ 'ⷪ' => 230,
+ 'ⷫ' => 230,
+ 'ⷬ' => 230,
+ 'ⷭ' => 230,
+ 'ⷮ' => 230,
+ 'ⷯ' => 230,
+ 'ⷰ' => 230,
+ 'ⷱ' => 230,
+ 'ⷲ' => 230,
+ 'ⷳ' => 230,
+ 'ⷴ' => 230,
+ 'ⷵ' => 230,
+ 'ⷶ' => 230,
+ 'ⷷ' => 230,
+ 'ⷸ' => 230,
+ 'ⷹ' => 230,
+ 'ⷺ' => 230,
+ 'ⷻ' => 230,
+ 'ⷼ' => 230,
+ 'ⷽ' => 230,
+ 'ⷾ' => 230,
+ 'ⷿ' => 230,
+ '〪' => 218,
+ '〫' => 228,
+ '〬' => 232,
+ '〭' => 222,
+ '〮' => 224,
+ '〯' => 224,
+ '゙' => 8,
+ '゚' => 8,
+ '꙯' => 230,
+ 'ꙴ' => 230,
+ 'ꙵ' => 230,
+ 'ꙶ' => 230,
+ 'ꙷ' => 230,
+ 'ꙸ' => 230,
+ 'ꙹ' => 230,
+ 'ꙺ' => 230,
+ 'ꙻ' => 230,
+ '꙼' => 230,
+ '꙽' => 230,
+ 'ꚞ' => 230,
+ 'ꚟ' => 230,
+ '꛰' => 230,
+ '꛱' => 230,
+ '꠆' => 9,
+ '꠬' => 9,
+ '꣄' => 9,
+ '꣠' => 230,
+ '꣡' => 230,
+ '꣢' => 230,
+ '꣣' => 230,
+ '꣤' => 230,
+ '꣥' => 230,
+ '꣦' => 230,
+ '꣧' => 230,
+ '꣨' => 230,
+ '꣩' => 230,
+ '꣪' => 230,
+ '꣫' => 230,
+ '꣬' => 230,
+ '꣭' => 230,
+ '꣮' => 230,
+ '꣯' => 230,
+ '꣰' => 230,
+ '꣱' => 230,
+ '꤫' => 220,
+ '꤬' => 220,
+ '꤭' => 220,
+ '꥓' => 9,
+ '꦳' => 7,
+ '꧀' => 9,
+ 'ꪰ' => 230,
+ 'ꪲ' => 230,
+ 'ꪳ' => 230,
+ 'ꪴ' => 220,
+ 'ꪷ' => 230,
+ 'ꪸ' => 230,
+ 'ꪾ' => 230,
+ '꪿' => 230,
+ '꫁' => 230,
+ '꫶' => 9,
+ '꯭' => 9,
+ 'ﬞ' => 26,
+ '︠' => 230,
+ '︡' => 230,
+ '︢' => 230,
+ '︣' => 230,
+ '︤' => 230,
+ '︥' => 230,
+ '︦' => 230,
+ '︧' => 220,
+ '︨' => 220,
+ '︩' => 220,
+ '︪' => 220,
+ '︫' => 220,
+ '︬' => 220,
+ '︭' => 220,
+ '︮' => 230,
+ '︯' => 230,
+ '𐇽' => 220,
+ '𐋠' => 220,
+ '𐍶' => 230,
+ '𐍷' => 230,
+ '𐍸' => 230,
+ '𐍹' => 230,
+ '𐍺' => 230,
+ '𐨍' => 220,
+ '𐨏' => 230,
+ '𐨸' => 230,
+ '𐨹' => 1,
+ '𐨺' => 220,
+ '𐨿' => 9,
+ '𐫥' => 230,
+ '𐫦' => 220,
+ '𐴤' => 230,
+ '𐴥' => 230,
+ '𐴦' => 230,
+ '𐴧' => 230,
+ '𐺫' => 230,
+ '𐺬' => 230,
+ '𐽆' => 220,
+ '𐽇' => 220,
+ '𐽈' => 230,
+ '𐽉' => 230,
+ '𐽊' => 230,
+ '𐽋' => 220,
+ '𐽌' => 230,
+ '𐽍' => 220,
+ '𐽎' => 220,
+ '𐽏' => 220,
+ '𐽐' => 220,
+ '𑁆' => 9,
+ '𑁿' => 9,
+ '𑂹' => 9,
+ '𑂺' => 7,
+ '𑄀' => 230,
+ '𑄁' => 230,
+ '𑄂' => 230,
+ '𑄳' => 9,
+ '𑄴' => 9,
+ '𑅳' => 7,
+ '𑇀' => 9,
+ '𑇊' => 7,
+ '𑈵' => 9,
+ '𑈶' => 7,
+ '𑋩' => 7,
+ '𑋪' => 9,
+ '𑌻' => 7,
+ '𑌼' => 7,
+ '𑍍' => 9,
+ '𑍦' => 230,
+ '𑍧' => 230,
+ '𑍨' => 230,
+ '𑍩' => 230,
+ '𑍪' => 230,
+ '𑍫' => 230,
+ '𑍬' => 230,
+ '𑍰' => 230,
+ '𑍱' => 230,
+ '𑍲' => 230,
+ '𑍳' => 230,
+ '𑍴' => 230,
+ '𑑂' => 9,
+ '𑑆' => 7,
+ '𑑞' => 230,
+ '𑓂' => 9,
+ '𑓃' => 7,
+ '𑖿' => 9,
+ '𑗀' => 7,
+ '𑘿' => 9,
+ '𑚶' => 9,
+ '𑚷' => 7,
+ '𑜫' => 9,
+ '𑠹' => 9,
+ '𑠺' => 7,
+ '𑤽' => 9,
+ '𑤾' => 9,
+ '𑥃' => 7,
+ '𑧠' => 9,
+ '𑨴' => 9,
+ '𑩇' => 9,
+ '𑪙' => 9,
+ '𑰿' => 9,
+ '𑵂' => 7,
+ '𑵄' => 9,
+ '𑵅' => 9,
+ '𑶗' => 9,
+ '𖫰' => 1,
+ '𖫱' => 1,
+ '𖫲' => 1,
+ '𖫳' => 1,
+ '𖫴' => 1,
+ '𖬰' => 230,
+ '𖬱' => 230,
+ '𖬲' => 230,
+ '𖬳' => 230,
+ '𖬴' => 230,
+ '𖬵' => 230,
+ '𖬶' => 230,
+ '𖿰' => 6,
+ '𖿱' => 6,
+ '𛲞' => 1,
+ '𝅥' => 216,
+ '𝅦' => 216,
+ '𝅧' => 1,
+ '𝅨' => 1,
+ '𝅩' => 1,
+ '𝅭' => 226,
+ '𝅮' => 216,
+ '𝅯' => 216,
+ '𝅰' => 216,
+ '𝅱' => 216,
+ '𝅲' => 216,
+ '𝅻' => 220,
+ '𝅼' => 220,
+ '𝅽' => 220,
+ '𝅾' => 220,
+ '𝅿' => 220,
+ '𝆀' => 220,
+ '𝆁' => 220,
+ '𝆂' => 220,
+ '𝆅' => 230,
+ '𝆆' => 230,
+ '𝆇' => 230,
+ '𝆈' => 230,
+ '𝆉' => 230,
+ '𝆊' => 220,
+ '𝆋' => 220,
+ '𝆪' => 230,
+ '𝆫' => 230,
+ '𝆬' => 230,
+ '𝆭' => 230,
+ '𝉂' => 230,
+ '𝉃' => 230,
+ '𝉄' => 230,
+ '𞀀' => 230,
+ '𞀁' => 230,
+ '𞀂' => 230,
+ '𞀃' => 230,
+ '𞀄' => 230,
+ '𞀅' => 230,
+ '𞀆' => 230,
+ '𞀈' => 230,
+ '𞀉' => 230,
+ '𞀊' => 230,
+ '𞀋' => 230,
+ '𞀌' => 230,
+ '𞀍' => 230,
+ '𞀎' => 230,
+ '𞀏' => 230,
+ '𞀐' => 230,
+ '𞀑' => 230,
+ '𞀒' => 230,
+ '𞀓' => 230,
+ '𞀔' => 230,
+ '𞀕' => 230,
+ '𞀖' => 230,
+ '𞀗' => 230,
+ '𞀘' => 230,
+ '𞀛' => 230,
+ '𞀜' => 230,
+ '𞀝' => 230,
+ '𞀞' => 230,
+ '𞀟' => 230,
+ '𞀠' => 230,
+ '𞀡' => 230,
+ '𞀣' => 230,
+ '𞀤' => 230,
+ '𞀦' => 230,
+ '𞀧' => 230,
+ '𞀨' => 230,
+ '𞀩' => 230,
+ '𞀪' => 230,
+ '𞄰' => 230,
+ '𞄱' => 230,
+ '𞄲' => 230,
+ '𞄳' => 230,
+ '𞄴' => 230,
+ '𞄵' => 230,
+ '𞄶' => 230,
+ '𞋬' => 230,
+ '𞋭' => 230,
+ '𞋮' => 230,
+ '𞋯' => 230,
+ '𞣐' => 220,
+ '𞣑' => 220,
+ '𞣒' => 220,
+ '𞣓' => 220,
+ '𞣔' => 220,
+ '𞣕' => 220,
+ '𞣖' => 220,
+ '𞥄' => 230,
+ '𞥅' => 230,
+ '𞥆' => 230,
+ '𞥇' => 230,
+ '𞥈' => 230,
+ '𞥉' => 230,
+ '𞥊' => 7,
+);
diff --git a/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/compatibilityDecomposition.php b/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/compatibilityDecomposition.php
new file mode 100644
index 0000000..1574902
--- /dev/null
+++ b/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/compatibilityDecomposition.php
@@ -0,0 +1,3695 @@
+ ' ',
+ '¨' => ' ̈',
+ 'ª' => 'a',
+ '¯' => ' ̄',
+ '²' => '2',
+ '³' => '3',
+ '´' => ' ́',
+ 'µ' => 'μ',
+ '¸' => ' ̧',
+ '¹' => '1',
+ 'º' => 'o',
+ '¼' => '1⁄4',
+ '½' => '1⁄2',
+ '¾' => '3⁄4',
+ 'IJ' => 'IJ',
+ 'ij' => 'ij',
+ 'Ŀ' => 'L·',
+ 'ŀ' => 'l·',
+ 'ʼn' => 'ʼn',
+ 'ſ' => 's',
+ 'DŽ' => 'DŽ',
+ 'Dž' => 'Dž',
+ 'dž' => 'dž',
+ 'LJ' => 'LJ',
+ 'Lj' => 'Lj',
+ 'lj' => 'lj',
+ 'NJ' => 'NJ',
+ 'Nj' => 'Nj',
+ 'nj' => 'nj',
+ 'DZ' => 'DZ',
+ 'Dz' => 'Dz',
+ 'dz' => 'dz',
+ 'ʰ' => 'h',
+ 'ʱ' => 'ɦ',
+ 'ʲ' => 'j',
+ 'ʳ' => 'r',
+ 'ʴ' => 'ɹ',
+ 'ʵ' => 'ɻ',
+ 'ʶ' => 'ʁ',
+ 'ʷ' => 'w',
+ 'ʸ' => 'y',
+ '˘' => ' ̆',
+ '˙' => ' ̇',
+ '˚' => ' ̊',
+ '˛' => ' ̨',
+ '˜' => ' ̃',
+ '˝' => ' ̋',
+ 'ˠ' => 'ɣ',
+ 'ˡ' => 'l',
+ 'ˢ' => 's',
+ 'ˣ' => 'x',
+ 'ˤ' => 'ʕ',
+ 'ͺ' => ' ͅ',
+ '΄' => ' ́',
+ '΅' => ' ̈́',
+ 'ϐ' => 'β',
+ 'ϑ' => 'θ',
+ 'ϒ' => 'Υ',
+ 'ϓ' => 'Ύ',
+ 'ϔ' => 'Ϋ',
+ 'ϕ' => 'φ',
+ 'ϖ' => 'π',
+ 'ϰ' => 'κ',
+ 'ϱ' => 'ρ',
+ 'ϲ' => 'ς',
+ 'ϴ' => 'Θ',
+ 'ϵ' => 'ε',
+ 'Ϲ' => 'Σ',
+ 'և' => 'եւ',
+ 'ٵ' => 'اٴ',
+ 'ٶ' => 'وٴ',
+ 'ٷ' => 'ۇٴ',
+ 'ٸ' => 'يٴ',
+ 'ำ' => 'ํา',
+ 'ຳ' => 'ໍາ',
+ 'ໜ' => 'ຫນ',
+ 'ໝ' => 'ຫມ',
+ '༌' => '་',
+ 'ཷ' => 'ྲཱྀ',
+ 'ཹ' => 'ླཱྀ',
+ 'ჼ' => 'ნ',
+ 'ᴬ' => 'A',
+ 'ᴭ' => 'Æ',
+ 'ᴮ' => 'B',
+ 'ᴰ' => 'D',
+ 'ᴱ' => 'E',
+ 'ᴲ' => 'Ǝ',
+ 'ᴳ' => 'G',
+ 'ᴴ' => 'H',
+ 'ᴵ' => 'I',
+ 'ᴶ' => 'J',
+ 'ᴷ' => 'K',
+ 'ᴸ' => 'L',
+ 'ᴹ' => 'M',
+ 'ᴺ' => 'N',
+ 'ᴼ' => 'O',
+ 'ᴽ' => 'Ȣ',
+ 'ᴾ' => 'P',
+ 'ᴿ' => 'R',
+ 'ᵀ' => 'T',
+ 'ᵁ' => 'U',
+ 'ᵂ' => 'W',
+ 'ᵃ' => 'a',
+ 'ᵄ' => 'ɐ',
+ 'ᵅ' => 'ɑ',
+ 'ᵆ' => 'ᴂ',
+ 'ᵇ' => 'b',
+ 'ᵈ' => 'd',
+ 'ᵉ' => 'e',
+ 'ᵊ' => 'ə',
+ 'ᵋ' => 'ɛ',
+ 'ᵌ' => 'ɜ',
+ 'ᵍ' => 'g',
+ 'ᵏ' => 'k',
+ 'ᵐ' => 'm',
+ 'ᵑ' => 'ŋ',
+ 'ᵒ' => 'o',
+ 'ᵓ' => 'ɔ',
+ 'ᵔ' => 'ᴖ',
+ 'ᵕ' => 'ᴗ',
+ 'ᵖ' => 'p',
+ 'ᵗ' => 't',
+ 'ᵘ' => 'u',
+ 'ᵙ' => 'ᴝ',
+ 'ᵚ' => 'ɯ',
+ 'ᵛ' => 'v',
+ 'ᵜ' => 'ᴥ',
+ 'ᵝ' => 'β',
+ 'ᵞ' => 'γ',
+ 'ᵟ' => 'δ',
+ 'ᵠ' => 'φ',
+ 'ᵡ' => 'χ',
+ 'ᵢ' => 'i',
+ 'ᵣ' => 'r',
+ 'ᵤ' => 'u',
+ 'ᵥ' => 'v',
+ 'ᵦ' => 'β',
+ 'ᵧ' => 'γ',
+ 'ᵨ' => 'ρ',
+ 'ᵩ' => 'φ',
+ 'ᵪ' => 'χ',
+ 'ᵸ' => 'н',
+ 'ᶛ' => 'ɒ',
+ 'ᶜ' => 'c',
+ 'ᶝ' => 'ɕ',
+ 'ᶞ' => 'ð',
+ 'ᶟ' => 'ɜ',
+ 'ᶠ' => 'f',
+ 'ᶡ' => 'ɟ',
+ 'ᶢ' => 'ɡ',
+ 'ᶣ' => 'ɥ',
+ 'ᶤ' => 'ɨ',
+ 'ᶥ' => 'ɩ',
+ 'ᶦ' => 'ɪ',
+ 'ᶧ' => 'ᵻ',
+ 'ᶨ' => 'ʝ',
+ 'ᶩ' => 'ɭ',
+ 'ᶪ' => 'ᶅ',
+ 'ᶫ' => 'ʟ',
+ 'ᶬ' => 'ɱ',
+ 'ᶭ' => 'ɰ',
+ 'ᶮ' => 'ɲ',
+ 'ᶯ' => 'ɳ',
+ 'ᶰ' => 'ɴ',
+ 'ᶱ' => 'ɵ',
+ 'ᶲ' => 'ɸ',
+ 'ᶳ' => 'ʂ',
+ 'ᶴ' => 'ʃ',
+ 'ᶵ' => 'ƫ',
+ 'ᶶ' => 'ʉ',
+ 'ᶷ' => 'ʊ',
+ 'ᶸ' => 'ᴜ',
+ 'ᶹ' => 'ʋ',
+ 'ᶺ' => 'ʌ',
+ 'ᶻ' => 'z',
+ 'ᶼ' => 'ʐ',
+ 'ᶽ' => 'ʑ',
+ 'ᶾ' => 'ʒ',
+ 'ᶿ' => 'θ',
+ 'ẚ' => 'aʾ',
+ 'ẛ' => 'ṡ',
+ '᾽' => ' ̓',
+ '᾿' => ' ̓',
+ '῀' => ' ͂',
+ '῁' => ' ̈͂',
+ '῍' => ' ̓̀',
+ '῎' => ' ̓́',
+ '῏' => ' ̓͂',
+ '῝' => ' ̔̀',
+ '῞' => ' ̔́',
+ '῟' => ' ̔͂',
+ '῭' => ' ̈̀',
+ '΅' => ' ̈́',
+ '´' => ' ́',
+ '῾' => ' ̔',
+ ' ' => ' ',
+ ' ' => ' ',
+ ' ' => ' ',
+ ' ' => ' ',
+ ' ' => ' ',
+ ' ' => ' ',
+ ' ' => ' ',
+ ' ' => ' ',
+ ' ' => ' ',
+ ' ' => ' ',
+ ' ' => ' ',
+ '‑' => '‐',
+ '‗' => ' ̳',
+ '․' => '.',
+ '‥' => '..',
+ '…' => '...',
+ ' ' => ' ',
+ '″' => '′′',
+ '‴' => '′′′',
+ '‶' => '‵‵',
+ '‷' => '‵‵‵',
+ '‼' => '!!',
+ '‾' => ' ̅',
+ '⁇' => '??',
+ '⁈' => '?!',
+ '⁉' => '!?',
+ '⁗' => '′′′′',
+ ' ' => ' ',
+ '⁰' => '0',
+ 'ⁱ' => 'i',
+ '⁴' => '4',
+ '⁵' => '5',
+ '⁶' => '6',
+ '⁷' => '7',
+ '⁸' => '8',
+ '⁹' => '9',
+ '⁺' => '+',
+ '⁻' => '−',
+ '⁼' => '=',
+ '⁽' => '(',
+ '⁾' => ')',
+ 'ⁿ' => 'n',
+ '₀' => '0',
+ '₁' => '1',
+ '₂' => '2',
+ '₃' => '3',
+ '₄' => '4',
+ '₅' => '5',
+ '₆' => '6',
+ '₇' => '7',
+ '₈' => '8',
+ '₉' => '9',
+ '₊' => '+',
+ '₋' => '−',
+ '₌' => '=',
+ '₍' => '(',
+ '₎' => ')',
+ 'ₐ' => 'a',
+ 'ₑ' => 'e',
+ 'ₒ' => 'o',
+ 'ₓ' => 'x',
+ 'ₔ' => 'ə',
+ 'ₕ' => 'h',
+ 'ₖ' => 'k',
+ 'ₗ' => 'l',
+ 'ₘ' => 'm',
+ 'ₙ' => 'n',
+ 'ₚ' => 'p',
+ 'ₛ' => 's',
+ 'ₜ' => 't',
+ '₨' => 'Rs',
+ '℀' => 'a/c',
+ '℁' => 'a/s',
+ 'ℂ' => 'C',
+ '℃' => '°C',
+ '℅' => 'c/o',
+ '℆' => 'c/u',
+ 'ℇ' => 'Ɛ',
+ '℉' => '°F',
+ 'ℊ' => 'g',
+ 'ℋ' => 'H',
+ 'ℌ' => 'H',
+ 'ℍ' => 'H',
+ 'ℎ' => 'h',
+ 'ℏ' => 'ħ',
+ 'ℐ' => 'I',
+ 'ℑ' => 'I',
+ 'ℒ' => 'L',
+ 'ℓ' => 'l',
+ 'ℕ' => 'N',
+ '№' => 'No',
+ 'ℙ' => 'P',
+ 'ℚ' => 'Q',
+ 'ℛ' => 'R',
+ 'ℜ' => 'R',
+ 'ℝ' => 'R',
+ '℠' => 'SM',
+ '℡' => 'TEL',
+ '™' => 'TM',
+ 'ℤ' => 'Z',
+ 'ℨ' => 'Z',
+ 'ℬ' => 'B',
+ 'ℭ' => 'C',
+ 'ℯ' => 'e',
+ 'ℰ' => 'E',
+ 'ℱ' => 'F',
+ 'ℳ' => 'M',
+ 'ℴ' => 'o',
+ 'ℵ' => 'א',
+ 'ℶ' => 'ב',
+ 'ℷ' => 'ג',
+ 'ℸ' => 'ד',
+ 'ℹ' => 'i',
+ '℻' => 'FAX',
+ 'ℼ' => 'π',
+ 'ℽ' => 'γ',
+ 'ℾ' => 'Γ',
+ 'ℿ' => 'Π',
+ '⅀' => '∑',
+ 'ⅅ' => 'D',
+ 'ⅆ' => 'd',
+ 'ⅇ' => 'e',
+ 'ⅈ' => 'i',
+ 'ⅉ' => 'j',
+ '⅐' => '1⁄7',
+ '⅑' => '1⁄9',
+ '⅒' => '1⁄10',
+ '⅓' => '1⁄3',
+ '⅔' => '2⁄3',
+ '⅕' => '1⁄5',
+ '⅖' => '2⁄5',
+ '⅗' => '3⁄5',
+ '⅘' => '4⁄5',
+ '⅙' => '1⁄6',
+ '⅚' => '5⁄6',
+ '⅛' => '1⁄8',
+ '⅜' => '3⁄8',
+ '⅝' => '5⁄8',
+ '⅞' => '7⁄8',
+ '⅟' => '1⁄',
+ 'Ⅰ' => 'I',
+ 'Ⅱ' => 'II',
+ 'Ⅲ' => 'III',
+ 'Ⅳ' => 'IV',
+ 'Ⅴ' => 'V',
+ 'Ⅵ' => 'VI',
+ 'Ⅶ' => 'VII',
+ 'Ⅷ' => 'VIII',
+ 'Ⅸ' => 'IX',
+ 'Ⅹ' => 'X',
+ 'Ⅺ' => 'XI',
+ 'Ⅻ' => 'XII',
+ 'Ⅼ' => 'L',
+ 'Ⅽ' => 'C',
+ 'Ⅾ' => 'D',
+ 'Ⅿ' => 'M',
+ 'ⅰ' => 'i',
+ 'ⅱ' => 'ii',
+ 'ⅲ' => 'iii',
+ 'ⅳ' => 'iv',
+ 'ⅴ' => 'v',
+ 'ⅵ' => 'vi',
+ 'ⅶ' => 'vii',
+ 'ⅷ' => 'viii',
+ 'ⅸ' => 'ix',
+ 'ⅹ' => 'x',
+ 'ⅺ' => 'xi',
+ 'ⅻ' => 'xii',
+ 'ⅼ' => 'l',
+ 'ⅽ' => 'c',
+ 'ⅾ' => 'd',
+ 'ⅿ' => 'm',
+ '↉' => '0⁄3',
+ '∬' => '∫∫',
+ '∭' => '∫∫∫',
+ '∯' => '∮∮',
+ '∰' => '∮∮∮',
+ '①' => '1',
+ '②' => '2',
+ '③' => '3',
+ '④' => '4',
+ '⑤' => '5',
+ '⑥' => '6',
+ '⑦' => '7',
+ '⑧' => '8',
+ '⑨' => '9',
+ '⑩' => '10',
+ '⑪' => '11',
+ '⑫' => '12',
+ '⑬' => '13',
+ '⑭' => '14',
+ '⑮' => '15',
+ '⑯' => '16',
+ '⑰' => '17',
+ '⑱' => '18',
+ '⑲' => '19',
+ '⑳' => '20',
+ '⑴' => '(1)',
+ '⑵' => '(2)',
+ '⑶' => '(3)',
+ '⑷' => '(4)',
+ '⑸' => '(5)',
+ '⑹' => '(6)',
+ '⑺' => '(7)',
+ '⑻' => '(8)',
+ '⑼' => '(9)',
+ '⑽' => '(10)',
+ '⑾' => '(11)',
+ '⑿' => '(12)',
+ '⒀' => '(13)',
+ '⒁' => '(14)',
+ '⒂' => '(15)',
+ '⒃' => '(16)',
+ '⒄' => '(17)',
+ '⒅' => '(18)',
+ '⒆' => '(19)',
+ '⒇' => '(20)',
+ '⒈' => '1.',
+ '⒉' => '2.',
+ '⒊' => '3.',
+ '⒋' => '4.',
+ '⒌' => '5.',
+ '⒍' => '6.',
+ '⒎' => '7.',
+ '⒏' => '8.',
+ '⒐' => '9.',
+ '⒑' => '10.',
+ '⒒' => '11.',
+ '⒓' => '12.',
+ '⒔' => '13.',
+ '⒕' => '14.',
+ '⒖' => '15.',
+ '⒗' => '16.',
+ '⒘' => '17.',
+ '⒙' => '18.',
+ '⒚' => '19.',
+ '⒛' => '20.',
+ '⒜' => '(a)',
+ '⒝' => '(b)',
+ '⒞' => '(c)',
+ '⒟' => '(d)',
+ '⒠' => '(e)',
+ '⒡' => '(f)',
+ '⒢' => '(g)',
+ '⒣' => '(h)',
+ '⒤' => '(i)',
+ '⒥' => '(j)',
+ '⒦' => '(k)',
+ '⒧' => '(l)',
+ '⒨' => '(m)',
+ '⒩' => '(n)',
+ '⒪' => '(o)',
+ '⒫' => '(p)',
+ '⒬' => '(q)',
+ '⒭' => '(r)',
+ '⒮' => '(s)',
+ '⒯' => '(t)',
+ '⒰' => '(u)',
+ '⒱' => '(v)',
+ '⒲' => '(w)',
+ '⒳' => '(x)',
+ '⒴' => '(y)',
+ '⒵' => '(z)',
+ 'Ⓐ' => 'A',
+ 'Ⓑ' => 'B',
+ 'Ⓒ' => 'C',
+ 'Ⓓ' => 'D',
+ 'Ⓔ' => 'E',
+ 'Ⓕ' => 'F',
+ 'Ⓖ' => 'G',
+ 'Ⓗ' => 'H',
+ 'Ⓘ' => 'I',
+ 'Ⓙ' => 'J',
+ 'Ⓚ' => 'K',
+ 'Ⓛ' => 'L',
+ 'Ⓜ' => 'M',
+ 'Ⓝ' => 'N',
+ 'Ⓞ' => 'O',
+ 'Ⓟ' => 'P',
+ 'Ⓠ' => 'Q',
+ 'Ⓡ' => 'R',
+ 'Ⓢ' => 'S',
+ 'Ⓣ' => 'T',
+ 'Ⓤ' => 'U',
+ 'Ⓥ' => 'V',
+ 'Ⓦ' => 'W',
+ 'Ⓧ' => 'X',
+ 'Ⓨ' => 'Y',
+ 'Ⓩ' => 'Z',
+ 'ⓐ' => 'a',
+ 'ⓑ' => 'b',
+ 'ⓒ' => 'c',
+ 'ⓓ' => 'd',
+ 'ⓔ' => 'e',
+ 'ⓕ' => 'f',
+ 'ⓖ' => 'g',
+ 'ⓗ' => 'h',
+ 'ⓘ' => 'i',
+ 'ⓙ' => 'j',
+ 'ⓚ' => 'k',
+ 'ⓛ' => 'l',
+ 'ⓜ' => 'm',
+ 'ⓝ' => 'n',
+ 'ⓞ' => 'o',
+ 'ⓟ' => 'p',
+ 'ⓠ' => 'q',
+ 'ⓡ' => 'r',
+ 'ⓢ' => 's',
+ 'ⓣ' => 't',
+ 'ⓤ' => 'u',
+ 'ⓥ' => 'v',
+ 'ⓦ' => 'w',
+ 'ⓧ' => 'x',
+ 'ⓨ' => 'y',
+ 'ⓩ' => 'z',
+ '⓪' => '0',
+ '⨌' => '∫∫∫∫',
+ '⩴' => '::=',
+ '⩵' => '==',
+ '⩶' => '===',
+ 'ⱼ' => 'j',
+ 'ⱽ' => 'V',
+ 'ⵯ' => 'ⵡ',
+ '⺟' => '母',
+ '⻳' => '龟',
+ '⼀' => '一',
+ '⼁' => '丨',
+ '⼂' => '丶',
+ '⼃' => '丿',
+ '⼄' => '乙',
+ '⼅' => '亅',
+ '⼆' => '二',
+ '⼇' => '亠',
+ '⼈' => '人',
+ '⼉' => '儿',
+ '⼊' => '入',
+ '⼋' => '八',
+ '⼌' => '冂',
+ '⼍' => '冖',
+ '⼎' => '冫',
+ '⼏' => '几',
+ '⼐' => '凵',
+ '⼑' => '刀',
+ '⼒' => '力',
+ '⼓' => '勹',
+ '⼔' => '匕',
+ '⼕' => '匚',
+ '⼖' => '匸',
+ '⼗' => '十',
+ '⼘' => '卜',
+ '⼙' => '卩',
+ '⼚' => '厂',
+ '⼛' => '厶',
+ '⼜' => '又',
+ '⼝' => '口',
+ '⼞' => '囗',
+ '⼟' => '土',
+ '⼠' => '士',
+ '⼡' => '夂',
+ '⼢' => '夊',
+ '⼣' => '夕',
+ '⼤' => '大',
+ '⼥' => '女',
+ '⼦' => '子',
+ '⼧' => '宀',
+ '⼨' => '寸',
+ '⼩' => '小',
+ '⼪' => '尢',
+ '⼫' => '尸',
+ '⼬' => '屮',
+ '⼭' => '山',
+ '⼮' => '巛',
+ '⼯' => '工',
+ '⼰' => '己',
+ '⼱' => '巾',
+ '⼲' => '干',
+ '⼳' => '幺',
+ '⼴' => '广',
+ '⼵' => '廴',
+ '⼶' => '廾',
+ '⼷' => '弋',
+ '⼸' => '弓',
+ '⼹' => '彐',
+ '⼺' => '彡',
+ '⼻' => '彳',
+ '⼼' => '心',
+ '⼽' => '戈',
+ '⼾' => '戶',
+ '⼿' => '手',
+ '⽀' => '支',
+ '⽁' => '攴',
+ '⽂' => '文',
+ '⽃' => '斗',
+ '⽄' => '斤',
+ '⽅' => '方',
+ '⽆' => '无',
+ '⽇' => '日',
+ '⽈' => '曰',
+ '⽉' => '月',
+ '⽊' => '木',
+ '⽋' => '欠',
+ '⽌' => '止',
+ '⽍' => '歹',
+ '⽎' => '殳',
+ '⽏' => '毋',
+ '⽐' => '比',
+ '⽑' => '毛',
+ '⽒' => '氏',
+ '⽓' => '气',
+ '⽔' => '水',
+ '⽕' => '火',
+ '⽖' => '爪',
+ '⽗' => '父',
+ '⽘' => '爻',
+ '⽙' => '爿',
+ '⽚' => '片',
+ '⽛' => '牙',
+ '⽜' => '牛',
+ '⽝' => '犬',
+ '⽞' => '玄',
+ '⽟' => '玉',
+ '⽠' => '瓜',
+ '⽡' => '瓦',
+ '⽢' => '甘',
+ '⽣' => '生',
+ '⽤' => '用',
+ '⽥' => '田',
+ '⽦' => '疋',
+ '⽧' => '疒',
+ '⽨' => '癶',
+ '⽩' => '白',
+ '⽪' => '皮',
+ '⽫' => '皿',
+ '⽬' => '目',
+ '⽭' => '矛',
+ '⽮' => '矢',
+ '⽯' => '石',
+ '⽰' => '示',
+ '⽱' => '禸',
+ '⽲' => '禾',
+ '⽳' => '穴',
+ '⽴' => '立',
+ '⽵' => '竹',
+ '⽶' => '米',
+ '⽷' => '糸',
+ '⽸' => '缶',
+ '⽹' => '网',
+ '⽺' => '羊',
+ '⽻' => '羽',
+ '⽼' => '老',
+ '⽽' => '而',
+ '⽾' => '耒',
+ '⽿' => '耳',
+ '⾀' => '聿',
+ '⾁' => '肉',
+ '⾂' => '臣',
+ '⾃' => '自',
+ '⾄' => '至',
+ '⾅' => '臼',
+ '⾆' => '舌',
+ '⾇' => '舛',
+ '⾈' => '舟',
+ '⾉' => '艮',
+ '⾊' => '色',
+ '⾋' => '艸',
+ '⾌' => '虍',
+ '⾍' => '虫',
+ '⾎' => '血',
+ '⾏' => '行',
+ '⾐' => '衣',
+ '⾑' => '襾',
+ '⾒' => '見',
+ '⾓' => '角',
+ '⾔' => '言',
+ '⾕' => '谷',
+ '⾖' => '豆',
+ '⾗' => '豕',
+ '⾘' => '豸',
+ '⾙' => '貝',
+ '⾚' => '赤',
+ '⾛' => '走',
+ '⾜' => '足',
+ '⾝' => '身',
+ '⾞' => '車',
+ '⾟' => '辛',
+ '⾠' => '辰',
+ '⾡' => '辵',
+ '⾢' => '邑',
+ '⾣' => '酉',
+ '⾤' => '釆',
+ '⾥' => '里',
+ '⾦' => '金',
+ '⾧' => '長',
+ '⾨' => '門',
+ '⾩' => '阜',
+ '⾪' => '隶',
+ '⾫' => '隹',
+ '⾬' => '雨',
+ '⾭' => '靑',
+ '⾮' => '非',
+ '⾯' => '面',
+ '⾰' => '革',
+ '⾱' => '韋',
+ '⾲' => '韭',
+ '⾳' => '音',
+ '⾴' => '頁',
+ '⾵' => '風',
+ '⾶' => '飛',
+ '⾷' => '食',
+ '⾸' => '首',
+ '⾹' => '香',
+ '⾺' => '馬',
+ '⾻' => '骨',
+ '⾼' => '高',
+ '⾽' => '髟',
+ '⾾' => '鬥',
+ '⾿' => '鬯',
+ '⿀' => '鬲',
+ '⿁' => '鬼',
+ '⿂' => '魚',
+ '⿃' => '鳥',
+ '⿄' => '鹵',
+ '⿅' => '鹿',
+ '⿆' => '麥',
+ '⿇' => '麻',
+ '⿈' => '黃',
+ '⿉' => '黍',
+ '⿊' => '黑',
+ '⿋' => '黹',
+ '⿌' => '黽',
+ '⿍' => '鼎',
+ '⿎' => '鼓',
+ '⿏' => '鼠',
+ '⿐' => '鼻',
+ '⿑' => '齊',
+ '⿒' => '齒',
+ '⿓' => '龍',
+ '⿔' => '龜',
+ '⿕' => '龠',
+ ' ' => ' ',
+ '〶' => '〒',
+ '〸' => '十',
+ '〹' => '卄',
+ '〺' => '卅',
+ '゛' => ' ゙',
+ '゜' => ' ゚',
+ 'ゟ' => 'より',
+ 'ヿ' => 'コト',
+ 'ㄱ' => 'ᄀ',
+ 'ㄲ' => 'ᄁ',
+ 'ㄳ' => 'ᆪ',
+ 'ㄴ' => 'ᄂ',
+ 'ㄵ' => 'ᆬ',
+ 'ㄶ' => 'ᆭ',
+ 'ㄷ' => 'ᄃ',
+ 'ㄸ' => 'ᄄ',
+ 'ㄹ' => 'ᄅ',
+ 'ㄺ' => 'ᆰ',
+ 'ㄻ' => 'ᆱ',
+ 'ㄼ' => 'ᆲ',
+ 'ㄽ' => 'ᆳ',
+ 'ㄾ' => 'ᆴ',
+ 'ㄿ' => 'ᆵ',
+ 'ㅀ' => 'ᄚ',
+ 'ㅁ' => 'ᄆ',
+ 'ㅂ' => 'ᄇ',
+ 'ㅃ' => 'ᄈ',
+ 'ㅄ' => 'ᄡ',
+ 'ㅅ' => 'ᄉ',
+ 'ㅆ' => 'ᄊ',
+ 'ㅇ' => 'ᄋ',
+ 'ㅈ' => 'ᄌ',
+ 'ㅉ' => 'ᄍ',
+ 'ㅊ' => 'ᄎ',
+ 'ㅋ' => 'ᄏ',
+ 'ㅌ' => 'ᄐ',
+ 'ㅍ' => 'ᄑ',
+ 'ㅎ' => 'ᄒ',
+ 'ㅏ' => 'ᅡ',
+ 'ㅐ' => 'ᅢ',
+ 'ㅑ' => 'ᅣ',
+ 'ㅒ' => 'ᅤ',
+ 'ㅓ' => 'ᅥ',
+ 'ㅔ' => 'ᅦ',
+ 'ㅕ' => 'ᅧ',
+ 'ㅖ' => 'ᅨ',
+ 'ㅗ' => 'ᅩ',
+ 'ㅘ' => 'ᅪ',
+ 'ㅙ' => 'ᅫ',
+ 'ㅚ' => 'ᅬ',
+ 'ㅛ' => 'ᅭ',
+ 'ㅜ' => 'ᅮ',
+ 'ㅝ' => 'ᅯ',
+ 'ㅞ' => 'ᅰ',
+ 'ㅟ' => 'ᅱ',
+ 'ㅠ' => 'ᅲ',
+ 'ㅡ' => 'ᅳ',
+ 'ㅢ' => 'ᅴ',
+ 'ㅣ' => 'ᅵ',
+ 'ㅤ' => 'ᅠ',
+ 'ㅥ' => 'ᄔ',
+ 'ㅦ' => 'ᄕ',
+ 'ㅧ' => 'ᇇ',
+ 'ㅨ' => 'ᇈ',
+ 'ㅩ' => 'ᇌ',
+ 'ㅪ' => 'ᇎ',
+ 'ㅫ' => 'ᇓ',
+ 'ㅬ' => 'ᇗ',
+ 'ㅭ' => 'ᇙ',
+ 'ㅮ' => 'ᄜ',
+ 'ㅯ' => 'ᇝ',
+ 'ㅰ' => 'ᇟ',
+ 'ㅱ' => 'ᄝ',
+ 'ㅲ' => 'ᄞ',
+ 'ㅳ' => 'ᄠ',
+ 'ㅴ' => 'ᄢ',
+ 'ㅵ' => 'ᄣ',
+ 'ㅶ' => 'ᄧ',
+ 'ㅷ' => 'ᄩ',
+ 'ㅸ' => 'ᄫ',
+ 'ㅹ' => 'ᄬ',
+ 'ㅺ' => 'ᄭ',
+ 'ㅻ' => 'ᄮ',
+ 'ㅼ' => 'ᄯ',
+ 'ㅽ' => 'ᄲ',
+ 'ㅾ' => 'ᄶ',
+ 'ㅿ' => 'ᅀ',
+ 'ㆀ' => 'ᅇ',
+ 'ㆁ' => 'ᅌ',
+ 'ㆂ' => 'ᇱ',
+ 'ㆃ' => 'ᇲ',
+ 'ㆄ' => 'ᅗ',
+ 'ㆅ' => 'ᅘ',
+ 'ㆆ' => 'ᅙ',
+ 'ㆇ' => 'ᆄ',
+ 'ㆈ' => 'ᆅ',
+ 'ㆉ' => 'ᆈ',
+ 'ㆊ' => 'ᆑ',
+ 'ㆋ' => 'ᆒ',
+ 'ㆌ' => 'ᆔ',
+ 'ㆍ' => 'ᆞ',
+ 'ㆎ' => 'ᆡ',
+ '㆒' => '一',
+ '㆓' => '二',
+ '㆔' => '三',
+ '㆕' => '四',
+ '㆖' => '上',
+ '㆗' => '中',
+ '㆘' => '下',
+ '㆙' => '甲',
+ '㆚' => '乙',
+ '㆛' => '丙',
+ '㆜' => '丁',
+ '㆝' => '天',
+ '㆞' => '地',
+ '㆟' => '人',
+ '㈀' => '(ᄀ)',
+ '㈁' => '(ᄂ)',
+ '㈂' => '(ᄃ)',
+ '㈃' => '(ᄅ)',
+ '㈄' => '(ᄆ)',
+ '㈅' => '(ᄇ)',
+ '㈆' => '(ᄉ)',
+ '㈇' => '(ᄋ)',
+ '㈈' => '(ᄌ)',
+ '㈉' => '(ᄎ)',
+ '㈊' => '(ᄏ)',
+ '㈋' => '(ᄐ)',
+ '㈌' => '(ᄑ)',
+ '㈍' => '(ᄒ)',
+ '㈎' => '(가)',
+ '㈏' => '(나)',
+ '㈐' => '(다)',
+ '㈑' => '(라)',
+ '㈒' => '(마)',
+ '㈓' => '(바)',
+ '㈔' => '(사)',
+ '㈕' => '(아)',
+ '㈖' => '(자)',
+ '㈗' => '(차)',
+ '㈘' => '(카)',
+ '㈙' => '(타)',
+ '㈚' => '(파)',
+ '㈛' => '(하)',
+ '㈜' => '(주)',
+ '㈝' => '(오전)',
+ '㈞' => '(오후)',
+ '㈠' => '(一)',
+ '㈡' => '(二)',
+ '㈢' => '(三)',
+ '㈣' => '(四)',
+ '㈤' => '(五)',
+ '㈥' => '(六)',
+ '㈦' => '(七)',
+ '㈧' => '(八)',
+ '㈨' => '(九)',
+ '㈩' => '(十)',
+ '㈪' => '(月)',
+ '㈫' => '(火)',
+ '㈬' => '(水)',
+ '㈭' => '(木)',
+ '㈮' => '(金)',
+ '㈯' => '(土)',
+ '㈰' => '(日)',
+ '㈱' => '(株)',
+ '㈲' => '(有)',
+ '㈳' => '(社)',
+ '㈴' => '(名)',
+ '㈵' => '(特)',
+ '㈶' => '(財)',
+ '㈷' => '(祝)',
+ '㈸' => '(労)',
+ '㈹' => '(代)',
+ '㈺' => '(呼)',
+ '㈻' => '(学)',
+ '㈼' => '(監)',
+ '㈽' => '(企)',
+ '㈾' => '(資)',
+ '㈿' => '(協)',
+ '㉀' => '(祭)',
+ '㉁' => '(休)',
+ '㉂' => '(自)',
+ '㉃' => '(至)',
+ '㉄' => '問',
+ '㉅' => '幼',
+ '㉆' => '文',
+ '㉇' => '箏',
+ '㉐' => 'PTE',
+ '㉑' => '21',
+ '㉒' => '22',
+ '㉓' => '23',
+ '㉔' => '24',
+ '㉕' => '25',
+ '㉖' => '26',
+ '㉗' => '27',
+ '㉘' => '28',
+ '㉙' => '29',
+ '㉚' => '30',
+ '㉛' => '31',
+ '㉜' => '32',
+ '㉝' => '33',
+ '㉞' => '34',
+ '㉟' => '35',
+ '㉠' => 'ᄀ',
+ '㉡' => 'ᄂ',
+ '㉢' => 'ᄃ',
+ '㉣' => 'ᄅ',
+ '㉤' => 'ᄆ',
+ '㉥' => 'ᄇ',
+ '㉦' => 'ᄉ',
+ '㉧' => 'ᄋ',
+ '㉨' => 'ᄌ',
+ '㉩' => 'ᄎ',
+ '㉪' => 'ᄏ',
+ '㉫' => 'ᄐ',
+ '㉬' => 'ᄑ',
+ '㉭' => 'ᄒ',
+ '㉮' => '가',
+ '㉯' => '나',
+ '㉰' => '다',
+ '㉱' => '라',
+ '㉲' => '마',
+ '㉳' => '바',
+ '㉴' => '사',
+ '㉵' => '아',
+ '㉶' => '자',
+ '㉷' => '차',
+ '㉸' => '카',
+ '㉹' => '타',
+ '㉺' => '파',
+ '㉻' => '하',
+ '㉼' => '참고',
+ '㉽' => '주의',
+ '㉾' => '우',
+ '㊀' => '一',
+ '㊁' => '二',
+ '㊂' => '三',
+ '㊃' => '四',
+ '㊄' => '五',
+ '㊅' => '六',
+ '㊆' => '七',
+ '㊇' => '八',
+ '㊈' => '九',
+ '㊉' => '十',
+ '㊊' => '月',
+ '㊋' => '火',
+ '㊌' => '水',
+ '㊍' => '木',
+ '㊎' => '金',
+ '㊏' => '土',
+ '㊐' => '日',
+ '㊑' => '株',
+ '㊒' => '有',
+ '㊓' => '社',
+ '㊔' => '名',
+ '㊕' => '特',
+ '㊖' => '財',
+ '㊗' => '祝',
+ '㊘' => '労',
+ '㊙' => '秘',
+ '㊚' => '男',
+ '㊛' => '女',
+ '㊜' => '適',
+ '㊝' => '優',
+ '㊞' => '印',
+ '㊟' => '注',
+ '㊠' => '項',
+ '㊡' => '休',
+ '㊢' => '写',
+ '㊣' => '正',
+ '㊤' => '上',
+ '㊥' => '中',
+ '㊦' => '下',
+ '㊧' => '左',
+ '㊨' => '右',
+ '㊩' => '医',
+ '㊪' => '宗',
+ '㊫' => '学',
+ '㊬' => '監',
+ '㊭' => '企',
+ '㊮' => '資',
+ '㊯' => '協',
+ '㊰' => '夜',
+ '㊱' => '36',
+ '㊲' => '37',
+ '㊳' => '38',
+ '㊴' => '39',
+ '㊵' => '40',
+ '㊶' => '41',
+ '㊷' => '42',
+ '㊸' => '43',
+ '㊹' => '44',
+ '㊺' => '45',
+ '㊻' => '46',
+ '㊼' => '47',
+ '㊽' => '48',
+ '㊾' => '49',
+ '㊿' => '50',
+ '㋀' => '1月',
+ '㋁' => '2月',
+ '㋂' => '3月',
+ '㋃' => '4月',
+ '㋄' => '5月',
+ '㋅' => '6月',
+ '㋆' => '7月',
+ '㋇' => '8月',
+ '㋈' => '9月',
+ '㋉' => '10月',
+ '㋊' => '11月',
+ '㋋' => '12月',
+ '㋌' => 'Hg',
+ '㋍' => 'erg',
+ '㋎' => 'eV',
+ '㋏' => 'LTD',
+ '㋐' => 'ア',
+ '㋑' => 'イ',
+ '㋒' => 'ウ',
+ '㋓' => 'エ',
+ '㋔' => 'オ',
+ '㋕' => 'カ',
+ '㋖' => 'キ',
+ '㋗' => 'ク',
+ '㋘' => 'ケ',
+ '㋙' => 'コ',
+ '㋚' => 'サ',
+ '㋛' => 'シ',
+ '㋜' => 'ス',
+ '㋝' => 'セ',
+ '㋞' => 'ソ',
+ '㋟' => 'タ',
+ '㋠' => 'チ',
+ '㋡' => 'ツ',
+ '㋢' => 'テ',
+ '㋣' => 'ト',
+ '㋤' => 'ナ',
+ '㋥' => 'ニ',
+ '㋦' => 'ヌ',
+ '㋧' => 'ネ',
+ '㋨' => 'ノ',
+ '㋩' => 'ハ',
+ '㋪' => 'ヒ',
+ '㋫' => 'フ',
+ '㋬' => 'ヘ',
+ '㋭' => 'ホ',
+ '㋮' => 'マ',
+ '㋯' => 'ミ',
+ '㋰' => 'ム',
+ '㋱' => 'メ',
+ '㋲' => 'モ',
+ '㋳' => 'ヤ',
+ '㋴' => 'ユ',
+ '㋵' => 'ヨ',
+ '㋶' => 'ラ',
+ '㋷' => 'リ',
+ '㋸' => 'ル',
+ '㋹' => 'レ',
+ '㋺' => 'ロ',
+ '㋻' => 'ワ',
+ '㋼' => 'ヰ',
+ '㋽' => 'ヱ',
+ '㋾' => 'ヲ',
+ '㋿' => '令和',
+ '㌀' => 'アパート',
+ '㌁' => 'アルファ',
+ '㌂' => 'アンペア',
+ '㌃' => 'アール',
+ '㌄' => 'イニング',
+ '㌅' => 'インチ',
+ '㌆' => 'ウォン',
+ '㌇' => 'エスクード',
+ '㌈' => 'エーカー',
+ '㌉' => 'オンス',
+ '㌊' => 'オーム',
+ '㌋' => 'カイリ',
+ '㌌' => 'カラット',
+ '㌍' => 'カロリー',
+ '㌎' => 'ガロン',
+ '㌏' => 'ガンマ',
+ '㌐' => 'ギガ',
+ '㌑' => 'ギニー',
+ '㌒' => 'キュリー',
+ '㌓' => 'ギルダー',
+ '㌔' => 'キロ',
+ '㌕' => 'キログラム',
+ '㌖' => 'キロメートル',
+ '㌗' => 'キロワット',
+ '㌘' => 'グラム',
+ '㌙' => 'グラムトン',
+ '㌚' => 'クルゼイロ',
+ '㌛' => 'クローネ',
+ '㌜' => 'ケース',
+ '㌝' => 'コルナ',
+ '㌞' => 'コーポ',
+ '㌟' => 'サイクル',
+ '㌠' => 'サンチーム',
+ '㌡' => 'シリング',
+ '㌢' => 'センチ',
+ '㌣' => 'セント',
+ '㌤' => 'ダース',
+ '㌥' => 'デシ',
+ '㌦' => 'ドル',
+ '㌧' => 'トン',
+ '㌨' => 'ナノ',
+ '㌩' => 'ノット',
+ '㌪' => 'ハイツ',
+ '㌫' => 'パーセント',
+ '㌬' => 'パーツ',
+ '㌭' => 'バーレル',
+ '㌮' => 'ピアストル',
+ '㌯' => 'ピクル',
+ '㌰' => 'ピコ',
+ '㌱' => 'ビル',
+ '㌲' => 'ファラッド',
+ '㌳' => 'フィート',
+ '㌴' => 'ブッシェル',
+ '㌵' => 'フラン',
+ '㌶' => 'ヘクタール',
+ '㌷' => 'ペソ',
+ '㌸' => 'ペニヒ',
+ '㌹' => 'ヘルツ',
+ '㌺' => 'ペンス',
+ '㌻' => 'ページ',
+ '㌼' => 'ベータ',
+ '㌽' => 'ポイント',
+ '㌾' => 'ボルト',
+ '㌿' => 'ホン',
+ '㍀' => 'ポンド',
+ '㍁' => 'ホール',
+ '㍂' => 'ホーン',
+ '㍃' => 'マイクロ',
+ '㍄' => 'マイル',
+ '㍅' => 'マッハ',
+ '㍆' => 'マルク',
+ '㍇' => 'マンション',
+ '㍈' => 'ミクロン',
+ '㍉' => 'ミリ',
+ '㍊' => 'ミリバール',
+ '㍋' => 'メガ',
+ '㍌' => 'メガトン',
+ '㍍' => 'メートル',
+ '㍎' => 'ヤード',
+ '㍏' => 'ヤール',
+ '㍐' => 'ユアン',
+ '㍑' => 'リットル',
+ '㍒' => 'リラ',
+ '㍓' => 'ルピー',
+ '㍔' => 'ルーブル',
+ '㍕' => 'レム',
+ '㍖' => 'レントゲン',
+ '㍗' => 'ワット',
+ '㍘' => '0点',
+ '㍙' => '1点',
+ '㍚' => '2点',
+ '㍛' => '3点',
+ '㍜' => '4点',
+ '㍝' => '5点',
+ '㍞' => '6点',
+ '㍟' => '7点',
+ '㍠' => '8点',
+ '㍡' => '9点',
+ '㍢' => '10点',
+ '㍣' => '11点',
+ '㍤' => '12点',
+ '㍥' => '13点',
+ '㍦' => '14点',
+ '㍧' => '15点',
+ '㍨' => '16点',
+ '㍩' => '17点',
+ '㍪' => '18点',
+ '㍫' => '19点',
+ '㍬' => '20点',
+ '㍭' => '21点',
+ '㍮' => '22点',
+ '㍯' => '23点',
+ '㍰' => '24点',
+ '㍱' => 'hPa',
+ '㍲' => 'da',
+ '㍳' => 'AU',
+ '㍴' => 'bar',
+ '㍵' => 'oV',
+ '㍶' => 'pc',
+ '㍷' => 'dm',
+ '㍸' => 'dm2',
+ '㍹' => 'dm3',
+ '㍺' => 'IU',
+ '㍻' => '平成',
+ '㍼' => '昭和',
+ '㍽' => '大正',
+ '㍾' => '明治',
+ '㍿' => '株式会社',
+ '㎀' => 'pA',
+ '㎁' => 'nA',
+ '㎂' => 'μA',
+ '㎃' => 'mA',
+ '㎄' => 'kA',
+ '㎅' => 'KB',
+ '㎆' => 'MB',
+ '㎇' => 'GB',
+ '㎈' => 'cal',
+ '㎉' => 'kcal',
+ '㎊' => 'pF',
+ '㎋' => 'nF',
+ '㎌' => 'μF',
+ '㎍' => 'μg',
+ '㎎' => 'mg',
+ '㎏' => 'kg',
+ '㎐' => 'Hz',
+ '㎑' => 'kHz',
+ '㎒' => 'MHz',
+ '㎓' => 'GHz',
+ '㎔' => 'THz',
+ '㎕' => 'μl',
+ '㎖' => 'ml',
+ '㎗' => 'dl',
+ '㎘' => 'kl',
+ '㎙' => 'fm',
+ '㎚' => 'nm',
+ '㎛' => 'μm',
+ '㎜' => 'mm',
+ '㎝' => 'cm',
+ '㎞' => 'km',
+ '㎟' => 'mm2',
+ '㎠' => 'cm2',
+ '㎡' => 'm2',
+ '㎢' => 'km2',
+ '㎣' => 'mm3',
+ '㎤' => 'cm3',
+ '㎥' => 'm3',
+ '㎦' => 'km3',
+ '㎧' => 'm∕s',
+ '㎨' => 'm∕s2',
+ '㎩' => 'Pa',
+ '㎪' => 'kPa',
+ '㎫' => 'MPa',
+ '㎬' => 'GPa',
+ '㎭' => 'rad',
+ '㎮' => 'rad∕s',
+ '㎯' => 'rad∕s2',
+ '㎰' => 'ps',
+ '㎱' => 'ns',
+ '㎲' => 'μs',
+ '㎳' => 'ms',
+ '㎴' => 'pV',
+ '㎵' => 'nV',
+ '㎶' => 'μV',
+ '㎷' => 'mV',
+ '㎸' => 'kV',
+ '㎹' => 'MV',
+ '㎺' => 'pW',
+ '㎻' => 'nW',
+ '㎼' => 'μW',
+ '㎽' => 'mW',
+ '㎾' => 'kW',
+ '㎿' => 'MW',
+ '㏀' => 'kΩ',
+ '㏁' => 'MΩ',
+ '㏂' => 'a.m.',
+ '㏃' => 'Bq',
+ '㏄' => 'cc',
+ '㏅' => 'cd',
+ '㏆' => 'C∕kg',
+ '㏇' => 'Co.',
+ '㏈' => 'dB',
+ '㏉' => 'Gy',
+ '㏊' => 'ha',
+ '㏋' => 'HP',
+ '㏌' => 'in',
+ '㏍' => 'KK',
+ '㏎' => 'KM',
+ '㏏' => 'kt',
+ '㏐' => 'lm',
+ '㏑' => 'ln',
+ '㏒' => 'log',
+ '㏓' => 'lx',
+ '㏔' => 'mb',
+ '㏕' => 'mil',
+ '㏖' => 'mol',
+ '㏗' => 'PH',
+ '㏘' => 'p.m.',
+ '㏙' => 'PPM',
+ '㏚' => 'PR',
+ '㏛' => 'sr',
+ '㏜' => 'Sv',
+ '㏝' => 'Wb',
+ '㏞' => 'V∕m',
+ '㏟' => 'A∕m',
+ '㏠' => '1日',
+ '㏡' => '2日',
+ '㏢' => '3日',
+ '㏣' => '4日',
+ '㏤' => '5日',
+ '㏥' => '6日',
+ '㏦' => '7日',
+ '㏧' => '8日',
+ '㏨' => '9日',
+ '㏩' => '10日',
+ '㏪' => '11日',
+ '㏫' => '12日',
+ '㏬' => '13日',
+ '㏭' => '14日',
+ '㏮' => '15日',
+ '㏯' => '16日',
+ '㏰' => '17日',
+ '㏱' => '18日',
+ '㏲' => '19日',
+ '㏳' => '20日',
+ '㏴' => '21日',
+ '㏵' => '22日',
+ '㏶' => '23日',
+ '㏷' => '24日',
+ '㏸' => '25日',
+ '㏹' => '26日',
+ '㏺' => '27日',
+ '㏻' => '28日',
+ '㏼' => '29日',
+ '㏽' => '30日',
+ '㏾' => '31日',
+ '㏿' => 'gal',
+ 'ꚜ' => 'ъ',
+ 'ꚝ' => 'ь',
+ 'ꝰ' => 'ꝯ',
+ 'ꟸ' => 'Ħ',
+ 'ꟹ' => 'œ',
+ 'ꭜ' => 'ꜧ',
+ 'ꭝ' => 'ꬷ',
+ 'ꭞ' => 'ɫ',
+ 'ꭟ' => 'ꭒ',
+ 'ꭩ' => 'ʍ',
+ 'ff' => 'ff',
+ 'fi' => 'fi',
+ 'fl' => 'fl',
+ 'ffi' => 'ffi',
+ 'ffl' => 'ffl',
+ 'ſt' => 'st',
+ 'st' => 'st',
+ 'ﬓ' => 'մն',
+ 'ﬔ' => 'մե',
+ 'ﬕ' => 'մի',
+ 'ﬖ' => 'վն',
+ 'ﬗ' => 'մխ',
+ 'ﬠ' => 'ע',
+ 'ﬡ' => 'א',
+ 'ﬢ' => 'ד',
+ 'ﬣ' => 'ה',
+ 'ﬤ' => 'כ',
+ 'ﬥ' => 'ל',
+ 'ﬦ' => 'ם',
+ 'ﬧ' => 'ר',
+ 'ﬨ' => 'ת',
+ '﬩' => '+',
+ 'ﭏ' => 'אל',
+ 'ﭐ' => 'ٱ',
+ 'ﭑ' => 'ٱ',
+ 'ﭒ' => 'ٻ',
+ 'ﭓ' => 'ٻ',
+ 'ﭔ' => 'ٻ',
+ 'ﭕ' => 'ٻ',
+ 'ﭖ' => 'پ',
+ 'ﭗ' => 'پ',
+ 'ﭘ' => 'پ',
+ 'ﭙ' => 'پ',
+ 'ﭚ' => 'ڀ',
+ 'ﭛ' => 'ڀ',
+ 'ﭜ' => 'ڀ',
+ 'ﭝ' => 'ڀ',
+ 'ﭞ' => 'ٺ',
+ 'ﭟ' => 'ٺ',
+ 'ﭠ' => 'ٺ',
+ 'ﭡ' => 'ٺ',
+ 'ﭢ' => 'ٿ',
+ 'ﭣ' => 'ٿ',
+ 'ﭤ' => 'ٿ',
+ 'ﭥ' => 'ٿ',
+ 'ﭦ' => 'ٹ',
+ 'ﭧ' => 'ٹ',
+ 'ﭨ' => 'ٹ',
+ 'ﭩ' => 'ٹ',
+ 'ﭪ' => 'ڤ',
+ 'ﭫ' => 'ڤ',
+ 'ﭬ' => 'ڤ',
+ 'ﭭ' => 'ڤ',
+ 'ﭮ' => 'ڦ',
+ 'ﭯ' => 'ڦ',
+ 'ﭰ' => 'ڦ',
+ 'ﭱ' => 'ڦ',
+ 'ﭲ' => 'ڄ',
+ 'ﭳ' => 'ڄ',
+ 'ﭴ' => 'ڄ',
+ 'ﭵ' => 'ڄ',
+ 'ﭶ' => 'ڃ',
+ 'ﭷ' => 'ڃ',
+ 'ﭸ' => 'ڃ',
+ 'ﭹ' => 'ڃ',
+ 'ﭺ' => 'چ',
+ 'ﭻ' => 'چ',
+ 'ﭼ' => 'چ',
+ 'ﭽ' => 'چ',
+ 'ﭾ' => 'ڇ',
+ 'ﭿ' => 'ڇ',
+ 'ﮀ' => 'ڇ',
+ 'ﮁ' => 'ڇ',
+ 'ﮂ' => 'ڍ',
+ 'ﮃ' => 'ڍ',
+ 'ﮄ' => 'ڌ',
+ 'ﮅ' => 'ڌ',
+ 'ﮆ' => 'ڎ',
+ 'ﮇ' => 'ڎ',
+ 'ﮈ' => 'ڈ',
+ 'ﮉ' => 'ڈ',
+ 'ﮊ' => 'ژ',
+ 'ﮋ' => 'ژ',
+ 'ﮌ' => 'ڑ',
+ 'ﮍ' => 'ڑ',
+ 'ﮎ' => 'ک',
+ 'ﮏ' => 'ک',
+ 'ﮐ' => 'ک',
+ 'ﮑ' => 'ک',
+ 'ﮒ' => 'گ',
+ 'ﮓ' => 'گ',
+ 'ﮔ' => 'گ',
+ 'ﮕ' => 'گ',
+ 'ﮖ' => 'ڳ',
+ 'ﮗ' => 'ڳ',
+ 'ﮘ' => 'ڳ',
+ 'ﮙ' => 'ڳ',
+ 'ﮚ' => 'ڱ',
+ 'ﮛ' => 'ڱ',
+ 'ﮜ' => 'ڱ',
+ 'ﮝ' => 'ڱ',
+ 'ﮞ' => 'ں',
+ 'ﮟ' => 'ں',
+ 'ﮠ' => 'ڻ',
+ 'ﮡ' => 'ڻ',
+ 'ﮢ' => 'ڻ',
+ 'ﮣ' => 'ڻ',
+ 'ﮤ' => 'ۀ',
+ 'ﮥ' => 'ۀ',
+ 'ﮦ' => 'ہ',
+ 'ﮧ' => 'ہ',
+ 'ﮨ' => 'ہ',
+ 'ﮩ' => 'ہ',
+ 'ﮪ' => 'ھ',
+ 'ﮫ' => 'ھ',
+ 'ﮬ' => 'ھ',
+ 'ﮭ' => 'ھ',
+ 'ﮮ' => 'ے',
+ 'ﮯ' => 'ے',
+ 'ﮰ' => 'ۓ',
+ 'ﮱ' => 'ۓ',
+ 'ﯓ' => 'ڭ',
+ 'ﯔ' => 'ڭ',
+ 'ﯕ' => 'ڭ',
+ 'ﯖ' => 'ڭ',
+ 'ﯗ' => 'ۇ',
+ 'ﯘ' => 'ۇ',
+ 'ﯙ' => 'ۆ',
+ 'ﯚ' => 'ۆ',
+ 'ﯛ' => 'ۈ',
+ 'ﯜ' => 'ۈ',
+ 'ﯝ' => 'ۇٴ',
+ 'ﯞ' => 'ۋ',
+ 'ﯟ' => 'ۋ',
+ 'ﯠ' => 'ۅ',
+ 'ﯡ' => 'ۅ',
+ 'ﯢ' => 'ۉ',
+ 'ﯣ' => 'ۉ',
+ 'ﯤ' => 'ې',
+ 'ﯥ' => 'ې',
+ 'ﯦ' => 'ې',
+ 'ﯧ' => 'ې',
+ 'ﯨ' => 'ى',
+ 'ﯩ' => 'ى',
+ 'ﯪ' => 'ئا',
+ 'ﯫ' => 'ئا',
+ 'ﯬ' => 'ئە',
+ 'ﯭ' => 'ئە',
+ 'ﯮ' => 'ئو',
+ 'ﯯ' => 'ئو',
+ 'ﯰ' => 'ئۇ',
+ 'ﯱ' => 'ئۇ',
+ 'ﯲ' => 'ئۆ',
+ 'ﯳ' => 'ئۆ',
+ 'ﯴ' => 'ئۈ',
+ 'ﯵ' => 'ئۈ',
+ 'ﯶ' => 'ئې',
+ 'ﯷ' => 'ئې',
+ 'ﯸ' => 'ئې',
+ 'ﯹ' => 'ئى',
+ 'ﯺ' => 'ئى',
+ 'ﯻ' => 'ئى',
+ 'ﯼ' => 'ی',
+ 'ﯽ' => 'ی',
+ 'ﯾ' => 'ی',
+ 'ﯿ' => 'ی',
+ 'ﰀ' => 'ئج',
+ 'ﰁ' => 'ئح',
+ 'ﰂ' => 'ئم',
+ 'ﰃ' => 'ئى',
+ 'ﰄ' => 'ئي',
+ 'ﰅ' => 'بج',
+ 'ﰆ' => 'بح',
+ 'ﰇ' => 'بخ',
+ 'ﰈ' => 'بم',
+ 'ﰉ' => 'بى',
+ 'ﰊ' => 'بي',
+ 'ﰋ' => 'تج',
+ 'ﰌ' => 'تح',
+ 'ﰍ' => 'تخ',
+ 'ﰎ' => 'تم',
+ 'ﰏ' => 'تى',
+ 'ﰐ' => 'تي',
+ 'ﰑ' => 'ثج',
+ 'ﰒ' => 'ثم',
+ 'ﰓ' => 'ثى',
+ 'ﰔ' => 'ثي',
+ 'ﰕ' => 'جح',
+ 'ﰖ' => 'جم',
+ 'ﰗ' => 'حج',
+ 'ﰘ' => 'حم',
+ 'ﰙ' => 'خج',
+ 'ﰚ' => 'خح',
+ 'ﰛ' => 'خم',
+ 'ﰜ' => 'سج',
+ 'ﰝ' => 'سح',
+ 'ﰞ' => 'سخ',
+ 'ﰟ' => 'سم',
+ 'ﰠ' => 'صح',
+ 'ﰡ' => 'صم',
+ 'ﰢ' => 'ضج',
+ 'ﰣ' => 'ضح',
+ 'ﰤ' => 'ضخ',
+ 'ﰥ' => 'ضم',
+ 'ﰦ' => 'طح',
+ 'ﰧ' => 'طم',
+ 'ﰨ' => 'ظم',
+ 'ﰩ' => 'عج',
+ 'ﰪ' => 'عم',
+ 'ﰫ' => 'غج',
+ 'ﰬ' => 'غم',
+ 'ﰭ' => 'فج',
+ 'ﰮ' => 'فح',
+ 'ﰯ' => 'فخ',
+ 'ﰰ' => 'فم',
+ 'ﰱ' => 'فى',
+ 'ﰲ' => 'في',
+ 'ﰳ' => 'قح',
+ 'ﰴ' => 'قم',
+ 'ﰵ' => 'قى',
+ 'ﰶ' => 'قي',
+ 'ﰷ' => 'كا',
+ 'ﰸ' => 'كج',
+ 'ﰹ' => 'كح',
+ 'ﰺ' => 'كخ',
+ 'ﰻ' => 'كل',
+ 'ﰼ' => 'كم',
+ 'ﰽ' => 'كى',
+ 'ﰾ' => 'كي',
+ 'ﰿ' => 'لج',
+ 'ﱀ' => 'لح',
+ 'ﱁ' => 'لخ',
+ 'ﱂ' => 'لم',
+ 'ﱃ' => 'لى',
+ 'ﱄ' => 'لي',
+ 'ﱅ' => 'مج',
+ 'ﱆ' => 'مح',
+ 'ﱇ' => 'مخ',
+ 'ﱈ' => 'مم',
+ 'ﱉ' => 'مى',
+ 'ﱊ' => 'مي',
+ 'ﱋ' => 'نج',
+ 'ﱌ' => 'نح',
+ 'ﱍ' => 'نخ',
+ 'ﱎ' => 'نم',
+ 'ﱏ' => 'نى',
+ 'ﱐ' => 'ني',
+ 'ﱑ' => 'هج',
+ 'ﱒ' => 'هم',
+ 'ﱓ' => 'هى',
+ 'ﱔ' => 'هي',
+ 'ﱕ' => 'يج',
+ 'ﱖ' => 'يح',
+ 'ﱗ' => 'يخ',
+ 'ﱘ' => 'يم',
+ 'ﱙ' => 'يى',
+ 'ﱚ' => 'يي',
+ 'ﱛ' => 'ذٰ',
+ 'ﱜ' => 'رٰ',
+ 'ﱝ' => 'ىٰ',
+ 'ﱞ' => ' ٌّ',
+ 'ﱟ' => ' ٍّ',
+ 'ﱠ' => ' َّ',
+ 'ﱡ' => ' ُّ',
+ 'ﱢ' => ' ِّ',
+ 'ﱣ' => ' ّٰ',
+ 'ﱤ' => 'ئر',
+ 'ﱥ' => 'ئز',
+ 'ﱦ' => 'ئم',
+ 'ﱧ' => 'ئن',
+ 'ﱨ' => 'ئى',
+ 'ﱩ' => 'ئي',
+ 'ﱪ' => 'بر',
+ 'ﱫ' => 'بز',
+ 'ﱬ' => 'بم',
+ 'ﱭ' => 'بن',
+ 'ﱮ' => 'بى',
+ 'ﱯ' => 'بي',
+ 'ﱰ' => 'تر',
+ 'ﱱ' => 'تز',
+ 'ﱲ' => 'تم',
+ 'ﱳ' => 'تن',
+ 'ﱴ' => 'تى',
+ 'ﱵ' => 'تي',
+ 'ﱶ' => 'ثر',
+ 'ﱷ' => 'ثز',
+ 'ﱸ' => 'ثم',
+ 'ﱹ' => 'ثن',
+ 'ﱺ' => 'ثى',
+ 'ﱻ' => 'ثي',
+ 'ﱼ' => 'فى',
+ 'ﱽ' => 'في',
+ 'ﱾ' => 'قى',
+ 'ﱿ' => 'قي',
+ 'ﲀ' => 'كا',
+ 'ﲁ' => 'كل',
+ 'ﲂ' => 'كم',
+ 'ﲃ' => 'كى',
+ 'ﲄ' => 'كي',
+ 'ﲅ' => 'لم',
+ 'ﲆ' => 'لى',
+ 'ﲇ' => 'لي',
+ 'ﲈ' => 'ما',
+ 'ﲉ' => 'مم',
+ 'ﲊ' => 'نر',
+ 'ﲋ' => 'نز',
+ 'ﲌ' => 'نم',
+ 'ﲍ' => 'نن',
+ 'ﲎ' => 'نى',
+ 'ﲏ' => 'ني',
+ 'ﲐ' => 'ىٰ',
+ 'ﲑ' => 'ير',
+ 'ﲒ' => 'يز',
+ 'ﲓ' => 'يم',
+ 'ﲔ' => 'ين',
+ 'ﲕ' => 'يى',
+ 'ﲖ' => 'يي',
+ 'ﲗ' => 'ئج',
+ 'ﲘ' => 'ئح',
+ 'ﲙ' => 'ئخ',
+ 'ﲚ' => 'ئم',
+ 'ﲛ' => 'ئه',
+ 'ﲜ' => 'بج',
+ 'ﲝ' => 'بح',
+ 'ﲞ' => 'بخ',
+ 'ﲟ' => 'بم',
+ 'ﲠ' => 'به',
+ 'ﲡ' => 'تج',
+ 'ﲢ' => 'تح',
+ 'ﲣ' => 'تخ',
+ 'ﲤ' => 'تم',
+ 'ﲥ' => 'ته',
+ 'ﲦ' => 'ثم',
+ 'ﲧ' => 'جح',
+ 'ﲨ' => 'جم',
+ 'ﲩ' => 'حج',
+ 'ﲪ' => 'حم',
+ 'ﲫ' => 'خج',
+ 'ﲬ' => 'خم',
+ 'ﲭ' => 'سج',
+ 'ﲮ' => 'سح',
+ 'ﲯ' => 'سخ',
+ 'ﲰ' => 'سم',
+ 'ﲱ' => 'صح',
+ 'ﲲ' => 'صخ',
+ 'ﲳ' => 'صم',
+ 'ﲴ' => 'ضج',
+ 'ﲵ' => 'ضح',
+ 'ﲶ' => 'ضخ',
+ 'ﲷ' => 'ضم',
+ 'ﲸ' => 'طح',
+ 'ﲹ' => 'ظم',
+ 'ﲺ' => 'عج',
+ 'ﲻ' => 'عم',
+ 'ﲼ' => 'غج',
+ 'ﲽ' => 'غم',
+ 'ﲾ' => 'فج',
+ 'ﲿ' => 'فح',
+ 'ﳀ' => 'فخ',
+ 'ﳁ' => 'فم',
+ 'ﳂ' => 'قح',
+ 'ﳃ' => 'قم',
+ 'ﳄ' => 'كج',
+ 'ﳅ' => 'كح',
+ 'ﳆ' => 'كخ',
+ 'ﳇ' => 'كل',
+ 'ﳈ' => 'كم',
+ 'ﳉ' => 'لج',
+ 'ﳊ' => 'لح',
+ 'ﳋ' => 'لخ',
+ 'ﳌ' => 'لم',
+ 'ﳍ' => 'له',
+ 'ﳎ' => 'مج',
+ 'ﳏ' => 'مح',
+ 'ﳐ' => 'مخ',
+ 'ﳑ' => 'مم',
+ 'ﳒ' => 'نج',
+ 'ﳓ' => 'نح',
+ 'ﳔ' => 'نخ',
+ 'ﳕ' => 'نم',
+ 'ﳖ' => 'نه',
+ 'ﳗ' => 'هج',
+ 'ﳘ' => 'هم',
+ 'ﳙ' => 'هٰ',
+ 'ﳚ' => 'يج',
+ 'ﳛ' => 'يح',
+ 'ﳜ' => 'يخ',
+ 'ﳝ' => 'يم',
+ 'ﳞ' => 'يه',
+ 'ﳟ' => 'ئم',
+ 'ﳠ' => 'ئه',
+ 'ﳡ' => 'بم',
+ 'ﳢ' => 'به',
+ 'ﳣ' => 'تم',
+ 'ﳤ' => 'ته',
+ 'ﳥ' => 'ثم',
+ 'ﳦ' => 'ثه',
+ 'ﳧ' => 'سم',
+ 'ﳨ' => 'سه',
+ 'ﳩ' => 'شم',
+ 'ﳪ' => 'شه',
+ 'ﳫ' => 'كل',
+ 'ﳬ' => 'كم',
+ 'ﳭ' => 'لم',
+ 'ﳮ' => 'نم',
+ 'ﳯ' => 'نه',
+ 'ﳰ' => 'يم',
+ 'ﳱ' => 'يه',
+ 'ﳲ' => 'ـَّ',
+ 'ﳳ' => 'ـُّ',
+ 'ﳴ' => 'ـِّ',
+ 'ﳵ' => 'طى',
+ 'ﳶ' => 'طي',
+ 'ﳷ' => 'عى',
+ 'ﳸ' => 'عي',
+ 'ﳹ' => 'غى',
+ 'ﳺ' => 'غي',
+ 'ﳻ' => 'سى',
+ 'ﳼ' => 'سي',
+ 'ﳽ' => 'شى',
+ 'ﳾ' => 'شي',
+ 'ﳿ' => 'حى',
+ 'ﴀ' => 'حي',
+ 'ﴁ' => 'جى',
+ 'ﴂ' => 'جي',
+ 'ﴃ' => 'خى',
+ 'ﴄ' => 'خي',
+ 'ﴅ' => 'صى',
+ 'ﴆ' => 'صي',
+ 'ﴇ' => 'ضى',
+ 'ﴈ' => 'ضي',
+ 'ﴉ' => 'شج',
+ 'ﴊ' => 'شح',
+ 'ﴋ' => 'شخ',
+ 'ﴌ' => 'شم',
+ 'ﴍ' => 'شر',
+ 'ﴎ' => 'سر',
+ 'ﴏ' => 'صر',
+ 'ﴐ' => 'ضر',
+ 'ﴑ' => 'طى',
+ 'ﴒ' => 'طي',
+ 'ﴓ' => 'عى',
+ 'ﴔ' => 'عي',
+ 'ﴕ' => 'غى',
+ 'ﴖ' => 'غي',
+ 'ﴗ' => 'سى',
+ 'ﴘ' => 'سي',
+ 'ﴙ' => 'شى',
+ 'ﴚ' => 'شي',
+ 'ﴛ' => 'حى',
+ 'ﴜ' => 'حي',
+ 'ﴝ' => 'جى',
+ 'ﴞ' => 'جي',
+ 'ﴟ' => 'خى',
+ 'ﴠ' => 'خي',
+ 'ﴡ' => 'صى',
+ 'ﴢ' => 'صي',
+ 'ﴣ' => 'ضى',
+ 'ﴤ' => 'ضي',
+ 'ﴥ' => 'شج',
+ 'ﴦ' => 'شح',
+ 'ﴧ' => 'شخ',
+ 'ﴨ' => 'شم',
+ 'ﴩ' => 'شر',
+ 'ﴪ' => 'سر',
+ 'ﴫ' => 'صر',
+ 'ﴬ' => 'ضر',
+ 'ﴭ' => 'شج',
+ 'ﴮ' => 'شح',
+ 'ﴯ' => 'شخ',
+ 'ﴰ' => 'شم',
+ 'ﴱ' => 'سه',
+ 'ﴲ' => 'شه',
+ 'ﴳ' => 'طم',
+ 'ﴴ' => 'سج',
+ 'ﴵ' => 'سح',
+ 'ﴶ' => 'سخ',
+ 'ﴷ' => 'شج',
+ 'ﴸ' => 'شح',
+ 'ﴹ' => 'شخ',
+ 'ﴺ' => 'طم',
+ 'ﴻ' => 'ظم',
+ 'ﴼ' => 'اً',
+ 'ﴽ' => 'اً',
+ 'ﵐ' => 'تجم',
+ 'ﵑ' => 'تحج',
+ 'ﵒ' => 'تحج',
+ 'ﵓ' => 'تحم',
+ 'ﵔ' => 'تخم',
+ 'ﵕ' => 'تمج',
+ 'ﵖ' => 'تمح',
+ 'ﵗ' => 'تمخ',
+ 'ﵘ' => 'جمح',
+ 'ﵙ' => 'جمح',
+ 'ﵚ' => 'حمي',
+ 'ﵛ' => 'حمى',
+ 'ﵜ' => 'سحج',
+ 'ﵝ' => 'سجح',
+ 'ﵞ' => 'سجى',
+ 'ﵟ' => 'سمح',
+ 'ﵠ' => 'سمح',
+ 'ﵡ' => 'سمج',
+ 'ﵢ' => 'سمم',
+ 'ﵣ' => 'سمم',
+ 'ﵤ' => 'صحح',
+ 'ﵥ' => 'صحح',
+ 'ﵦ' => 'صمم',
+ 'ﵧ' => 'شحم',
+ 'ﵨ' => 'شحم',
+ 'ﵩ' => 'شجي',
+ 'ﵪ' => 'شمخ',
+ 'ﵫ' => 'شمخ',
+ 'ﵬ' => 'شمم',
+ 'ﵭ' => 'شمم',
+ 'ﵮ' => 'ضحى',
+ 'ﵯ' => 'ضخم',
+ 'ﵰ' => 'ضخم',
+ 'ﵱ' => 'طمح',
+ 'ﵲ' => 'طمح',
+ 'ﵳ' => 'طمم',
+ 'ﵴ' => 'طمي',
+ 'ﵵ' => 'عجم',
+ 'ﵶ' => 'عمم',
+ 'ﵷ' => 'عمم',
+ 'ﵸ' => 'عمى',
+ 'ﵹ' => 'غمم',
+ 'ﵺ' => 'غمي',
+ 'ﵻ' => 'غمى',
+ 'ﵼ' => 'فخم',
+ 'ﵽ' => 'فخم',
+ 'ﵾ' => 'قمح',
+ 'ﵿ' => 'قمم',
+ 'ﶀ' => 'لحم',
+ 'ﶁ' => 'لحي',
+ 'ﶂ' => 'لحى',
+ 'ﶃ' => 'لجج',
+ 'ﶄ' => 'لجج',
+ 'ﶅ' => 'لخم',
+ 'ﶆ' => 'لخم',
+ 'ﶇ' => 'لمح',
+ 'ﶈ' => 'لمح',
+ 'ﶉ' => 'محج',
+ 'ﶊ' => 'محم',
+ 'ﶋ' => 'محي',
+ 'ﶌ' => 'مجح',
+ 'ﶍ' => 'مجم',
+ 'ﶎ' => 'مخج',
+ 'ﶏ' => 'مخم',
+ 'ﶒ' => 'مجخ',
+ 'ﶓ' => 'همج',
+ 'ﶔ' => 'همم',
+ 'ﶕ' => 'نحم',
+ 'ﶖ' => 'نحى',
+ 'ﶗ' => 'نجم',
+ 'ﶘ' => 'نجم',
+ 'ﶙ' => 'نجى',
+ 'ﶚ' => 'نمي',
+ 'ﶛ' => 'نمى',
+ 'ﶜ' => 'يمم',
+ 'ﶝ' => 'يمم',
+ 'ﶞ' => 'بخي',
+ 'ﶟ' => 'تجي',
+ 'ﶠ' => 'تجى',
+ 'ﶡ' => 'تخي',
+ 'ﶢ' => 'تخى',
+ 'ﶣ' => 'تمي',
+ 'ﶤ' => 'تمى',
+ 'ﶥ' => 'جمي',
+ 'ﶦ' => 'جحى',
+ 'ﶧ' => 'جمى',
+ 'ﶨ' => 'سخى',
+ 'ﶩ' => 'صحي',
+ 'ﶪ' => 'شحي',
+ 'ﶫ' => 'ضحي',
+ 'ﶬ' => 'لجي',
+ 'ﶭ' => 'لمي',
+ 'ﶮ' => 'يحي',
+ 'ﶯ' => 'يجي',
+ 'ﶰ' => 'يمي',
+ 'ﶱ' => 'ممي',
+ 'ﶲ' => 'قمي',
+ 'ﶳ' => 'نحي',
+ 'ﶴ' => 'قمح',
+ 'ﶵ' => 'لحم',
+ 'ﶶ' => 'عمي',
+ 'ﶷ' => 'كمي',
+ 'ﶸ' => 'نجح',
+ 'ﶹ' => 'مخي',
+ 'ﶺ' => 'لجم',
+ 'ﶻ' => 'كمم',
+ 'ﶼ' => 'لجم',
+ 'ﶽ' => 'نجح',
+ 'ﶾ' => 'جحي',
+ 'ﶿ' => 'حجي',
+ 'ﷀ' => 'مجي',
+ 'ﷁ' => 'فمي',
+ 'ﷂ' => 'بحي',
+ 'ﷃ' => 'كمم',
+ 'ﷄ' => 'عجم',
+ 'ﷅ' => 'صمم',
+ 'ﷆ' => 'سخي',
+ 'ﷇ' => 'نجي',
+ 'ﷰ' => 'صلے',
+ 'ﷱ' => 'قلے',
+ 'ﷲ' => 'الله',
+ 'ﷳ' => 'اكبر',
+ 'ﷴ' => 'محمد',
+ 'ﷵ' => 'صلعم',
+ 'ﷶ' => 'رسول',
+ 'ﷷ' => 'عليه',
+ 'ﷸ' => 'وسلم',
+ 'ﷹ' => 'صلى',
+ 'ﷺ' => 'صلى الله عليه وسلم',
+ 'ﷻ' => 'جل جلاله',
+ '﷼' => 'ریال',
+ '︐' => ',',
+ '︑' => '、',
+ '︒' => '。',
+ '︓' => ':',
+ '︔' => ';',
+ '︕' => '!',
+ '︖' => '?',
+ '︗' => '〖',
+ '︘' => '〗',
+ '︙' => '...',
+ '︰' => '..',
+ '︱' => '—',
+ '︲' => '–',
+ '︳' => '_',
+ '︴' => '_',
+ '︵' => '(',
+ '︶' => ')',
+ '︷' => '{',
+ '︸' => '}',
+ '︹' => '〔',
+ '︺' => '〕',
+ '︻' => '【',
+ '︼' => '】',
+ '︽' => '《',
+ '︾' => '》',
+ '︿' => '〈',
+ '﹀' => '〉',
+ '﹁' => '「',
+ '﹂' => '」',
+ '﹃' => '『',
+ '﹄' => '』',
+ '﹇' => '[',
+ '﹈' => ']',
+ '﹉' => ' ̅',
+ '﹊' => ' ̅',
+ '﹋' => ' ̅',
+ '﹌' => ' ̅',
+ '﹍' => '_',
+ '﹎' => '_',
+ '﹏' => '_',
+ '﹐' => ',',
+ '﹑' => '、',
+ '﹒' => '.',
+ '﹔' => ';',
+ '﹕' => ':',
+ '﹖' => '?',
+ '﹗' => '!',
+ '﹘' => '—',
+ '﹙' => '(',
+ '﹚' => ')',
+ '﹛' => '{',
+ '﹜' => '}',
+ '﹝' => '〔',
+ '﹞' => '〕',
+ '﹟' => '#',
+ '﹠' => '&',
+ '﹡' => '*',
+ '﹢' => '+',
+ '﹣' => '-',
+ '﹤' => '<',
+ '﹥' => '>',
+ '﹦' => '=',
+ '﹨' => '\\',
+ '﹩' => '$',
+ '﹪' => '%',
+ '﹫' => '@',
+ 'ﹰ' => ' ً',
+ 'ﹱ' => 'ـً',
+ 'ﹲ' => ' ٌ',
+ 'ﹴ' => ' ٍ',
+ 'ﹶ' => ' َ',
+ 'ﹷ' => 'ـَ',
+ 'ﹸ' => ' ُ',
+ 'ﹹ' => 'ـُ',
+ 'ﹺ' => ' ِ',
+ 'ﹻ' => 'ـِ',
+ 'ﹼ' => ' ّ',
+ 'ﹽ' => 'ـّ',
+ 'ﹾ' => ' ْ',
+ 'ﹿ' => 'ـْ',
+ 'ﺀ' => 'ء',
+ 'ﺁ' => 'آ',
+ 'ﺂ' => 'آ',
+ 'ﺃ' => 'أ',
+ 'ﺄ' => 'أ',
+ 'ﺅ' => 'ؤ',
+ 'ﺆ' => 'ؤ',
+ 'ﺇ' => 'إ',
+ 'ﺈ' => 'إ',
+ 'ﺉ' => 'ئ',
+ 'ﺊ' => 'ئ',
+ 'ﺋ' => 'ئ',
+ 'ﺌ' => 'ئ',
+ 'ﺍ' => 'ا',
+ 'ﺎ' => 'ا',
+ 'ﺏ' => 'ب',
+ 'ﺐ' => 'ب',
+ 'ﺑ' => 'ب',
+ 'ﺒ' => 'ب',
+ 'ﺓ' => 'ة',
+ 'ﺔ' => 'ة',
+ 'ﺕ' => 'ت',
+ 'ﺖ' => 'ت',
+ 'ﺗ' => 'ت',
+ 'ﺘ' => 'ت',
+ 'ﺙ' => 'ث',
+ 'ﺚ' => 'ث',
+ 'ﺛ' => 'ث',
+ 'ﺜ' => 'ث',
+ 'ﺝ' => 'ج',
+ 'ﺞ' => 'ج',
+ 'ﺟ' => 'ج',
+ 'ﺠ' => 'ج',
+ 'ﺡ' => 'ح',
+ 'ﺢ' => 'ح',
+ 'ﺣ' => 'ح',
+ 'ﺤ' => 'ح',
+ 'ﺥ' => 'خ',
+ 'ﺦ' => 'خ',
+ 'ﺧ' => 'خ',
+ 'ﺨ' => 'خ',
+ 'ﺩ' => 'د',
+ 'ﺪ' => 'د',
+ 'ﺫ' => 'ذ',
+ 'ﺬ' => 'ذ',
+ 'ﺭ' => 'ر',
+ 'ﺮ' => 'ر',
+ 'ﺯ' => 'ز',
+ 'ﺰ' => 'ز',
+ 'ﺱ' => 'س',
+ 'ﺲ' => 'س',
+ 'ﺳ' => 'س',
+ 'ﺴ' => 'س',
+ 'ﺵ' => 'ش',
+ 'ﺶ' => 'ش',
+ 'ﺷ' => 'ش',
+ 'ﺸ' => 'ش',
+ 'ﺹ' => 'ص',
+ 'ﺺ' => 'ص',
+ 'ﺻ' => 'ص',
+ 'ﺼ' => 'ص',
+ 'ﺽ' => 'ض',
+ 'ﺾ' => 'ض',
+ 'ﺿ' => 'ض',
+ 'ﻀ' => 'ض',
+ 'ﻁ' => 'ط',
+ 'ﻂ' => 'ط',
+ 'ﻃ' => 'ط',
+ 'ﻄ' => 'ط',
+ 'ﻅ' => 'ظ',
+ 'ﻆ' => 'ظ',
+ 'ﻇ' => 'ظ',
+ 'ﻈ' => 'ظ',
+ 'ﻉ' => 'ع',
+ 'ﻊ' => 'ع',
+ 'ﻋ' => 'ع',
+ 'ﻌ' => 'ع',
+ 'ﻍ' => 'غ',
+ 'ﻎ' => 'غ',
+ 'ﻏ' => 'غ',
+ 'ﻐ' => 'غ',
+ 'ﻑ' => 'ف',
+ 'ﻒ' => 'ف',
+ 'ﻓ' => 'ف',
+ 'ﻔ' => 'ف',
+ 'ﻕ' => 'ق',
+ 'ﻖ' => 'ق',
+ 'ﻗ' => 'ق',
+ 'ﻘ' => 'ق',
+ 'ﻙ' => 'ك',
+ 'ﻚ' => 'ك',
+ 'ﻛ' => 'ك',
+ 'ﻜ' => 'ك',
+ 'ﻝ' => 'ل',
+ 'ﻞ' => 'ل',
+ 'ﻟ' => 'ل',
+ 'ﻠ' => 'ل',
+ 'ﻡ' => 'م',
+ 'ﻢ' => 'م',
+ 'ﻣ' => 'م',
+ 'ﻤ' => 'م',
+ 'ﻥ' => 'ن',
+ 'ﻦ' => 'ن',
+ 'ﻧ' => 'ن',
+ 'ﻨ' => 'ن',
+ 'ﻩ' => 'ه',
+ 'ﻪ' => 'ه',
+ 'ﻫ' => 'ه',
+ 'ﻬ' => 'ه',
+ 'ﻭ' => 'و',
+ 'ﻮ' => 'و',
+ 'ﻯ' => 'ى',
+ 'ﻰ' => 'ى',
+ 'ﻱ' => 'ي',
+ 'ﻲ' => 'ي',
+ 'ﻳ' => 'ي',
+ 'ﻴ' => 'ي',
+ 'ﻵ' => 'لآ',
+ 'ﻶ' => 'لآ',
+ 'ﻷ' => 'لأ',
+ 'ﻸ' => 'لأ',
+ 'ﻹ' => 'لإ',
+ 'ﻺ' => 'لإ',
+ 'ﻻ' => 'لا',
+ 'ﻼ' => 'لا',
+ '!' => '!',
+ '"' => '"',
+ '#' => '#',
+ '$' => '$',
+ '%' => '%',
+ '&' => '&',
+ ''' => '\'',
+ '(' => '(',
+ ')' => ')',
+ '*' => '*',
+ '+' => '+',
+ ',' => ',',
+ '-' => '-',
+ '.' => '.',
+ '/' => '/',
+ '0' => '0',
+ '1' => '1',
+ '2' => '2',
+ '3' => '3',
+ '4' => '4',
+ '5' => '5',
+ '6' => '6',
+ '7' => '7',
+ '8' => '8',
+ '9' => '9',
+ ':' => ':',
+ ';' => ';',
+ '<' => '<',
+ '=' => '=',
+ '>' => '>',
+ '?' => '?',
+ '@' => '@',
+ 'A' => 'A',
+ 'B' => 'B',
+ 'C' => 'C',
+ 'D' => 'D',
+ 'E' => 'E',
+ 'F' => 'F',
+ 'G' => 'G',
+ 'H' => 'H',
+ 'I' => 'I',
+ 'J' => 'J',
+ 'K' => 'K',
+ 'L' => 'L',
+ 'M' => 'M',
+ 'N' => 'N',
+ 'O' => 'O',
+ 'P' => 'P',
+ 'Q' => 'Q',
+ 'R' => 'R',
+ 'S' => 'S',
+ 'T' => 'T',
+ 'U' => 'U',
+ 'V' => 'V',
+ 'W' => 'W',
+ 'X' => 'X',
+ 'Y' => 'Y',
+ 'Z' => 'Z',
+ '[' => '[',
+ '\' => '\\',
+ ']' => ']',
+ '^' => '^',
+ '_' => '_',
+ '`' => '`',
+ 'a' => 'a',
+ 'b' => 'b',
+ 'c' => 'c',
+ 'd' => 'd',
+ 'e' => 'e',
+ 'f' => 'f',
+ 'g' => 'g',
+ 'h' => 'h',
+ 'i' => 'i',
+ 'j' => 'j',
+ 'k' => 'k',
+ 'l' => 'l',
+ 'm' => 'm',
+ 'n' => 'n',
+ 'o' => 'o',
+ 'p' => 'p',
+ 'q' => 'q',
+ 'r' => 'r',
+ 's' => 's',
+ 't' => 't',
+ 'u' => 'u',
+ 'v' => 'v',
+ 'w' => 'w',
+ 'x' => 'x',
+ 'y' => 'y',
+ 'z' => 'z',
+ '{' => '{',
+ '|' => '|',
+ '}' => '}',
+ '~' => '~',
+ '⦅' => '⦅',
+ '⦆' => '⦆',
+ '。' => '。',
+ '「' => '「',
+ '」' => '」',
+ '、' => '、',
+ '・' => '・',
+ 'ヲ' => 'ヲ',
+ 'ァ' => 'ァ',
+ 'ィ' => 'ィ',
+ 'ゥ' => 'ゥ',
+ 'ェ' => 'ェ',
+ 'ォ' => 'ォ',
+ 'ャ' => 'ャ',
+ 'ュ' => 'ュ',
+ 'ョ' => 'ョ',
+ 'ッ' => 'ッ',
+ 'ー' => 'ー',
+ 'ア' => 'ア',
+ 'イ' => 'イ',
+ 'ウ' => 'ウ',
+ 'エ' => 'エ',
+ 'オ' => 'オ',
+ 'カ' => 'カ',
+ 'キ' => 'キ',
+ 'ク' => 'ク',
+ 'ケ' => 'ケ',
+ 'コ' => 'コ',
+ 'サ' => 'サ',
+ 'シ' => 'シ',
+ 'ス' => 'ス',
+ 'セ' => 'セ',
+ 'ソ' => 'ソ',
+ 'タ' => 'タ',
+ 'チ' => 'チ',
+ 'ツ' => 'ツ',
+ 'テ' => 'テ',
+ 'ト' => 'ト',
+ 'ナ' => 'ナ',
+ 'ニ' => 'ニ',
+ 'ヌ' => 'ヌ',
+ 'ネ' => 'ネ',
+ 'ノ' => 'ノ',
+ 'ハ' => 'ハ',
+ 'ヒ' => 'ヒ',
+ 'フ' => 'フ',
+ 'ヘ' => 'ヘ',
+ 'ホ' => 'ホ',
+ 'マ' => 'マ',
+ 'ミ' => 'ミ',
+ 'ム' => 'ム',
+ 'メ' => 'メ',
+ 'モ' => 'モ',
+ 'ヤ' => 'ヤ',
+ 'ユ' => 'ユ',
+ 'ヨ' => 'ヨ',
+ 'ラ' => 'ラ',
+ 'リ' => 'リ',
+ 'ル' => 'ル',
+ 'レ' => 'レ',
+ 'ロ' => 'ロ',
+ 'ワ' => 'ワ',
+ 'ン' => 'ン',
+ '゙' => '゙',
+ '゚' => '゚',
+ 'ᅠ' => 'ᅠ',
+ 'ᄀ' => 'ᄀ',
+ 'ᄁ' => 'ᄁ',
+ 'ᆪ' => 'ᆪ',
+ 'ᄂ' => 'ᄂ',
+ 'ᆬ' => 'ᆬ',
+ 'ᆭ' => 'ᆭ',
+ 'ᄃ' => 'ᄃ',
+ 'ᄄ' => 'ᄄ',
+ 'ᄅ' => 'ᄅ',
+ 'ᆰ' => 'ᆰ',
+ 'ᆱ' => 'ᆱ',
+ 'ᆲ' => 'ᆲ',
+ 'ᆳ' => 'ᆳ',
+ 'ᆴ' => 'ᆴ',
+ 'ᆵ' => 'ᆵ',
+ 'ᄚ' => 'ᄚ',
+ 'ᄆ' => 'ᄆ',
+ 'ᄇ' => 'ᄇ',
+ 'ᄈ' => 'ᄈ',
+ 'ᄡ' => 'ᄡ',
+ 'ᄉ' => 'ᄉ',
+ 'ᄊ' => 'ᄊ',
+ 'ᄋ' => 'ᄋ',
+ 'ᄌ' => 'ᄌ',
+ 'ᄍ' => 'ᄍ',
+ 'ᄎ' => 'ᄎ',
+ 'ᄏ' => 'ᄏ',
+ 'ᄐ' => 'ᄐ',
+ 'ᄑ' => 'ᄑ',
+ 'ᄒ' => 'ᄒ',
+ 'ᅡ' => 'ᅡ',
+ 'ᅢ' => 'ᅢ',
+ 'ᅣ' => 'ᅣ',
+ 'ᅤ' => 'ᅤ',
+ 'ᅥ' => 'ᅥ',
+ 'ᅦ' => 'ᅦ',
+ 'ᅧ' => 'ᅧ',
+ 'ᅨ' => 'ᅨ',
+ 'ᅩ' => 'ᅩ',
+ 'ᅪ' => 'ᅪ',
+ 'ᅫ' => 'ᅫ',
+ 'ᅬ' => 'ᅬ',
+ 'ᅭ' => 'ᅭ',
+ 'ᅮ' => 'ᅮ',
+ 'ᅯ' => 'ᅯ',
+ 'ᅰ' => 'ᅰ',
+ 'ᅱ' => 'ᅱ',
+ 'ᅲ' => 'ᅲ',
+ 'ᅳ' => 'ᅳ',
+ 'ᅴ' => 'ᅴ',
+ 'ᅵ' => 'ᅵ',
+ '¢' => '¢',
+ '£' => '£',
+ '¬' => '¬',
+ ' ̄' => ' ̄',
+ '¦' => '¦',
+ '¥' => '¥',
+ '₩' => '₩',
+ '│' => '│',
+ '←' => '←',
+ '↑' => '↑',
+ '→' => '→',
+ '↓' => '↓',
+ '■' => '■',
+ '○' => '○',
+ '𝐀' => 'A',
+ '𝐁' => 'B',
+ '𝐂' => 'C',
+ '𝐃' => 'D',
+ '𝐄' => 'E',
+ '𝐅' => 'F',
+ '𝐆' => 'G',
+ '𝐇' => 'H',
+ '𝐈' => 'I',
+ '𝐉' => 'J',
+ '𝐊' => 'K',
+ '𝐋' => 'L',
+ '𝐌' => 'M',
+ '𝐍' => 'N',
+ '𝐎' => 'O',
+ '𝐏' => 'P',
+ '𝐐' => 'Q',
+ '𝐑' => 'R',
+ '𝐒' => 'S',
+ '𝐓' => 'T',
+ '𝐔' => 'U',
+ '𝐕' => 'V',
+ '𝐖' => 'W',
+ '𝐗' => 'X',
+ '𝐘' => 'Y',
+ '𝐙' => 'Z',
+ '𝐚' => 'a',
+ '𝐛' => 'b',
+ '𝐜' => 'c',
+ '𝐝' => 'd',
+ '𝐞' => 'e',
+ '𝐟' => 'f',
+ '𝐠' => 'g',
+ '𝐡' => 'h',
+ '𝐢' => 'i',
+ '𝐣' => 'j',
+ '𝐤' => 'k',
+ '𝐥' => 'l',
+ '𝐦' => 'm',
+ '𝐧' => 'n',
+ '𝐨' => 'o',
+ '𝐩' => 'p',
+ '𝐪' => 'q',
+ '𝐫' => 'r',
+ '𝐬' => 's',
+ '𝐭' => 't',
+ '𝐮' => 'u',
+ '𝐯' => 'v',
+ '𝐰' => 'w',
+ '𝐱' => 'x',
+ '𝐲' => 'y',
+ '𝐳' => 'z',
+ '𝐴' => 'A',
+ '𝐵' => 'B',
+ '𝐶' => 'C',
+ '𝐷' => 'D',
+ '𝐸' => 'E',
+ '𝐹' => 'F',
+ '𝐺' => 'G',
+ '𝐻' => 'H',
+ '𝐼' => 'I',
+ '𝐽' => 'J',
+ '𝐾' => 'K',
+ '𝐿' => 'L',
+ '𝑀' => 'M',
+ '𝑁' => 'N',
+ '𝑂' => 'O',
+ '𝑃' => 'P',
+ '𝑄' => 'Q',
+ '𝑅' => 'R',
+ '𝑆' => 'S',
+ '𝑇' => 'T',
+ '𝑈' => 'U',
+ '𝑉' => 'V',
+ '𝑊' => 'W',
+ '𝑋' => 'X',
+ '𝑌' => 'Y',
+ '𝑍' => 'Z',
+ '𝑎' => 'a',
+ '𝑏' => 'b',
+ '𝑐' => 'c',
+ '𝑑' => 'd',
+ '𝑒' => 'e',
+ '𝑓' => 'f',
+ '𝑔' => 'g',
+ '𝑖' => 'i',
+ '𝑗' => 'j',
+ '𝑘' => 'k',
+ '𝑙' => 'l',
+ '𝑚' => 'm',
+ '𝑛' => 'n',
+ '𝑜' => 'o',
+ '𝑝' => 'p',
+ '𝑞' => 'q',
+ '𝑟' => 'r',
+ '𝑠' => 's',
+ '𝑡' => 't',
+ '𝑢' => 'u',
+ '𝑣' => 'v',
+ '𝑤' => 'w',
+ '𝑥' => 'x',
+ '𝑦' => 'y',
+ '𝑧' => 'z',
+ '𝑨' => 'A',
+ '𝑩' => 'B',
+ '𝑪' => 'C',
+ '𝑫' => 'D',
+ '𝑬' => 'E',
+ '𝑭' => 'F',
+ '𝑮' => 'G',
+ '𝑯' => 'H',
+ '𝑰' => 'I',
+ '𝑱' => 'J',
+ '𝑲' => 'K',
+ '𝑳' => 'L',
+ '𝑴' => 'M',
+ '𝑵' => 'N',
+ '𝑶' => 'O',
+ '𝑷' => 'P',
+ '𝑸' => 'Q',
+ '𝑹' => 'R',
+ '𝑺' => 'S',
+ '𝑻' => 'T',
+ '𝑼' => 'U',
+ '𝑽' => 'V',
+ '𝑾' => 'W',
+ '𝑿' => 'X',
+ '𝒀' => 'Y',
+ '𝒁' => 'Z',
+ '𝒂' => 'a',
+ '𝒃' => 'b',
+ '𝒄' => 'c',
+ '𝒅' => 'd',
+ '𝒆' => 'e',
+ '𝒇' => 'f',
+ '𝒈' => 'g',
+ '𝒉' => 'h',
+ '𝒊' => 'i',
+ '𝒋' => 'j',
+ '𝒌' => 'k',
+ '𝒍' => 'l',
+ '𝒎' => 'm',
+ '𝒏' => 'n',
+ '𝒐' => 'o',
+ '𝒑' => 'p',
+ '𝒒' => 'q',
+ '𝒓' => 'r',
+ '𝒔' => 's',
+ '𝒕' => 't',
+ '𝒖' => 'u',
+ '𝒗' => 'v',
+ '𝒘' => 'w',
+ '𝒙' => 'x',
+ '𝒚' => 'y',
+ '𝒛' => 'z',
+ '𝒜' => 'A',
+ '𝒞' => 'C',
+ '𝒟' => 'D',
+ '𝒢' => 'G',
+ '𝒥' => 'J',
+ '𝒦' => 'K',
+ '𝒩' => 'N',
+ '𝒪' => 'O',
+ '𝒫' => 'P',
+ '𝒬' => 'Q',
+ '𝒮' => 'S',
+ '𝒯' => 'T',
+ '𝒰' => 'U',
+ '𝒱' => 'V',
+ '𝒲' => 'W',
+ '𝒳' => 'X',
+ '𝒴' => 'Y',
+ '𝒵' => 'Z',
+ '𝒶' => 'a',
+ '𝒷' => 'b',
+ '𝒸' => 'c',
+ '𝒹' => 'd',
+ '𝒻' => 'f',
+ '𝒽' => 'h',
+ '𝒾' => 'i',
+ '𝒿' => 'j',
+ '𝓀' => 'k',
+ '𝓁' => 'l',
+ '𝓂' => 'm',
+ '𝓃' => 'n',
+ '𝓅' => 'p',
+ '𝓆' => 'q',
+ '𝓇' => 'r',
+ '𝓈' => 's',
+ '𝓉' => 't',
+ '𝓊' => 'u',
+ '𝓋' => 'v',
+ '𝓌' => 'w',
+ '𝓍' => 'x',
+ '𝓎' => 'y',
+ '𝓏' => 'z',
+ '𝓐' => 'A',
+ '𝓑' => 'B',
+ '𝓒' => 'C',
+ '𝓓' => 'D',
+ '𝓔' => 'E',
+ '𝓕' => 'F',
+ '𝓖' => 'G',
+ '𝓗' => 'H',
+ '𝓘' => 'I',
+ '𝓙' => 'J',
+ '𝓚' => 'K',
+ '𝓛' => 'L',
+ '𝓜' => 'M',
+ '𝓝' => 'N',
+ '𝓞' => 'O',
+ '𝓟' => 'P',
+ '𝓠' => 'Q',
+ '𝓡' => 'R',
+ '𝓢' => 'S',
+ '𝓣' => 'T',
+ '𝓤' => 'U',
+ '𝓥' => 'V',
+ '𝓦' => 'W',
+ '𝓧' => 'X',
+ '𝓨' => 'Y',
+ '𝓩' => 'Z',
+ '𝓪' => 'a',
+ '𝓫' => 'b',
+ '𝓬' => 'c',
+ '𝓭' => 'd',
+ '𝓮' => 'e',
+ '𝓯' => 'f',
+ '𝓰' => 'g',
+ '𝓱' => 'h',
+ '𝓲' => 'i',
+ '𝓳' => 'j',
+ '𝓴' => 'k',
+ '𝓵' => 'l',
+ '𝓶' => 'm',
+ '𝓷' => 'n',
+ '𝓸' => 'o',
+ '𝓹' => 'p',
+ '𝓺' => 'q',
+ '𝓻' => 'r',
+ '𝓼' => 's',
+ '𝓽' => 't',
+ '𝓾' => 'u',
+ '𝓿' => 'v',
+ '𝔀' => 'w',
+ '𝔁' => 'x',
+ '𝔂' => 'y',
+ '𝔃' => 'z',
+ '𝔄' => 'A',
+ '𝔅' => 'B',
+ '𝔇' => 'D',
+ '𝔈' => 'E',
+ '𝔉' => 'F',
+ '𝔊' => 'G',
+ '𝔍' => 'J',
+ '𝔎' => 'K',
+ '𝔏' => 'L',
+ '𝔐' => 'M',
+ '𝔑' => 'N',
+ '𝔒' => 'O',
+ '𝔓' => 'P',
+ '𝔔' => 'Q',
+ '𝔖' => 'S',
+ '𝔗' => 'T',
+ '𝔘' => 'U',
+ '𝔙' => 'V',
+ '𝔚' => 'W',
+ '𝔛' => 'X',
+ '𝔜' => 'Y',
+ '𝔞' => 'a',
+ '𝔟' => 'b',
+ '𝔠' => 'c',
+ '𝔡' => 'd',
+ '𝔢' => 'e',
+ '𝔣' => 'f',
+ '𝔤' => 'g',
+ '𝔥' => 'h',
+ '𝔦' => 'i',
+ '𝔧' => 'j',
+ '𝔨' => 'k',
+ '𝔩' => 'l',
+ '𝔪' => 'm',
+ '𝔫' => 'n',
+ '𝔬' => 'o',
+ '𝔭' => 'p',
+ '𝔮' => 'q',
+ '𝔯' => 'r',
+ '𝔰' => 's',
+ '𝔱' => 't',
+ '𝔲' => 'u',
+ '𝔳' => 'v',
+ '𝔴' => 'w',
+ '𝔵' => 'x',
+ '𝔶' => 'y',
+ '𝔷' => 'z',
+ '𝔸' => 'A',
+ '𝔹' => 'B',
+ '𝔻' => 'D',
+ '𝔼' => 'E',
+ '𝔽' => 'F',
+ '𝔾' => 'G',
+ '𝕀' => 'I',
+ '𝕁' => 'J',
+ '𝕂' => 'K',
+ '𝕃' => 'L',
+ '𝕄' => 'M',
+ '𝕆' => 'O',
+ '𝕊' => 'S',
+ '𝕋' => 'T',
+ '𝕌' => 'U',
+ '𝕍' => 'V',
+ '𝕎' => 'W',
+ '𝕏' => 'X',
+ '𝕐' => 'Y',
+ '𝕒' => 'a',
+ '𝕓' => 'b',
+ '𝕔' => 'c',
+ '𝕕' => 'd',
+ '𝕖' => 'e',
+ '𝕗' => 'f',
+ '𝕘' => 'g',
+ '𝕙' => 'h',
+ '𝕚' => 'i',
+ '𝕛' => 'j',
+ '𝕜' => 'k',
+ '𝕝' => 'l',
+ '𝕞' => 'm',
+ '𝕟' => 'n',
+ '𝕠' => 'o',
+ '𝕡' => 'p',
+ '𝕢' => 'q',
+ '𝕣' => 'r',
+ '𝕤' => 's',
+ '𝕥' => 't',
+ '𝕦' => 'u',
+ '𝕧' => 'v',
+ '𝕨' => 'w',
+ '𝕩' => 'x',
+ '𝕪' => 'y',
+ '𝕫' => 'z',
+ '𝕬' => 'A',
+ '𝕭' => 'B',
+ '𝕮' => 'C',
+ '𝕯' => 'D',
+ '𝕰' => 'E',
+ '𝕱' => 'F',
+ '𝕲' => 'G',
+ '𝕳' => 'H',
+ '𝕴' => 'I',
+ '𝕵' => 'J',
+ '𝕶' => 'K',
+ '𝕷' => 'L',
+ '𝕸' => 'M',
+ '𝕹' => 'N',
+ '𝕺' => 'O',
+ '𝕻' => 'P',
+ '𝕼' => 'Q',
+ '𝕽' => 'R',
+ '𝕾' => 'S',
+ '𝕿' => 'T',
+ '𝖀' => 'U',
+ '𝖁' => 'V',
+ '𝖂' => 'W',
+ '𝖃' => 'X',
+ '𝖄' => 'Y',
+ '𝖅' => 'Z',
+ '𝖆' => 'a',
+ '𝖇' => 'b',
+ '𝖈' => 'c',
+ '𝖉' => 'd',
+ '𝖊' => 'e',
+ '𝖋' => 'f',
+ '𝖌' => 'g',
+ '𝖍' => 'h',
+ '𝖎' => 'i',
+ '𝖏' => 'j',
+ '𝖐' => 'k',
+ '𝖑' => 'l',
+ '𝖒' => 'm',
+ '𝖓' => 'n',
+ '𝖔' => 'o',
+ '𝖕' => 'p',
+ '𝖖' => 'q',
+ '𝖗' => 'r',
+ '𝖘' => 's',
+ '𝖙' => 't',
+ '𝖚' => 'u',
+ '𝖛' => 'v',
+ '𝖜' => 'w',
+ '𝖝' => 'x',
+ '𝖞' => 'y',
+ '𝖟' => 'z',
+ '𝖠' => 'A',
+ '𝖡' => 'B',
+ '𝖢' => 'C',
+ '𝖣' => 'D',
+ '𝖤' => 'E',
+ '𝖥' => 'F',
+ '𝖦' => 'G',
+ '𝖧' => 'H',
+ '𝖨' => 'I',
+ '𝖩' => 'J',
+ '𝖪' => 'K',
+ '𝖫' => 'L',
+ '𝖬' => 'M',
+ '𝖭' => 'N',
+ '𝖮' => 'O',
+ '𝖯' => 'P',
+ '𝖰' => 'Q',
+ '𝖱' => 'R',
+ '𝖲' => 'S',
+ '𝖳' => 'T',
+ '𝖴' => 'U',
+ '𝖵' => 'V',
+ '𝖶' => 'W',
+ '𝖷' => 'X',
+ '𝖸' => 'Y',
+ '𝖹' => 'Z',
+ '𝖺' => 'a',
+ '𝖻' => 'b',
+ '𝖼' => 'c',
+ '𝖽' => 'd',
+ '𝖾' => 'e',
+ '𝖿' => 'f',
+ '𝗀' => 'g',
+ '𝗁' => 'h',
+ '𝗂' => 'i',
+ '𝗃' => 'j',
+ '𝗄' => 'k',
+ '𝗅' => 'l',
+ '𝗆' => 'm',
+ '𝗇' => 'n',
+ '𝗈' => 'o',
+ '𝗉' => 'p',
+ '𝗊' => 'q',
+ '𝗋' => 'r',
+ '𝗌' => 's',
+ '𝗍' => 't',
+ '𝗎' => 'u',
+ '𝗏' => 'v',
+ '𝗐' => 'w',
+ '𝗑' => 'x',
+ '𝗒' => 'y',
+ '𝗓' => 'z',
+ '𝗔' => 'A',
+ '𝗕' => 'B',
+ '𝗖' => 'C',
+ '𝗗' => 'D',
+ '𝗘' => 'E',
+ '𝗙' => 'F',
+ '𝗚' => 'G',
+ '𝗛' => 'H',
+ '𝗜' => 'I',
+ '𝗝' => 'J',
+ '𝗞' => 'K',
+ '𝗟' => 'L',
+ '𝗠' => 'M',
+ '𝗡' => 'N',
+ '𝗢' => 'O',
+ '𝗣' => 'P',
+ '𝗤' => 'Q',
+ '𝗥' => 'R',
+ '𝗦' => 'S',
+ '𝗧' => 'T',
+ '𝗨' => 'U',
+ '𝗩' => 'V',
+ '𝗪' => 'W',
+ '𝗫' => 'X',
+ '𝗬' => 'Y',
+ '𝗭' => 'Z',
+ '𝗮' => 'a',
+ '𝗯' => 'b',
+ '𝗰' => 'c',
+ '𝗱' => 'd',
+ '𝗲' => 'e',
+ '𝗳' => 'f',
+ '𝗴' => 'g',
+ '𝗵' => 'h',
+ '𝗶' => 'i',
+ '𝗷' => 'j',
+ '𝗸' => 'k',
+ '𝗹' => 'l',
+ '𝗺' => 'm',
+ '𝗻' => 'n',
+ '𝗼' => 'o',
+ '𝗽' => 'p',
+ '𝗾' => 'q',
+ '𝗿' => 'r',
+ '𝘀' => 's',
+ '𝘁' => 't',
+ '𝘂' => 'u',
+ '𝘃' => 'v',
+ '𝘄' => 'w',
+ '𝘅' => 'x',
+ '𝘆' => 'y',
+ '𝘇' => 'z',
+ '𝘈' => 'A',
+ '𝘉' => 'B',
+ '𝘊' => 'C',
+ '𝘋' => 'D',
+ '𝘌' => 'E',
+ '𝘍' => 'F',
+ '𝘎' => 'G',
+ '𝘏' => 'H',
+ '𝘐' => 'I',
+ '𝘑' => 'J',
+ '𝘒' => 'K',
+ '𝘓' => 'L',
+ '𝘔' => 'M',
+ '𝘕' => 'N',
+ '𝘖' => 'O',
+ '𝘗' => 'P',
+ '𝘘' => 'Q',
+ '𝘙' => 'R',
+ '𝘚' => 'S',
+ '𝘛' => 'T',
+ '𝘜' => 'U',
+ '𝘝' => 'V',
+ '𝘞' => 'W',
+ '𝘟' => 'X',
+ '𝘠' => 'Y',
+ '𝘡' => 'Z',
+ '𝘢' => 'a',
+ '𝘣' => 'b',
+ '𝘤' => 'c',
+ '𝘥' => 'd',
+ '𝘦' => 'e',
+ '𝘧' => 'f',
+ '𝘨' => 'g',
+ '𝘩' => 'h',
+ '𝘪' => 'i',
+ '𝘫' => 'j',
+ '𝘬' => 'k',
+ '𝘭' => 'l',
+ '𝘮' => 'm',
+ '𝘯' => 'n',
+ '𝘰' => 'o',
+ '𝘱' => 'p',
+ '𝘲' => 'q',
+ '𝘳' => 'r',
+ '𝘴' => 's',
+ '𝘵' => 't',
+ '𝘶' => 'u',
+ '𝘷' => 'v',
+ '𝘸' => 'w',
+ '𝘹' => 'x',
+ '𝘺' => 'y',
+ '𝘻' => 'z',
+ '𝘼' => 'A',
+ '𝘽' => 'B',
+ '𝘾' => 'C',
+ '𝘿' => 'D',
+ '𝙀' => 'E',
+ '𝙁' => 'F',
+ '𝙂' => 'G',
+ '𝙃' => 'H',
+ '𝙄' => 'I',
+ '𝙅' => 'J',
+ '𝙆' => 'K',
+ '𝙇' => 'L',
+ '𝙈' => 'M',
+ '𝙉' => 'N',
+ '𝙊' => 'O',
+ '𝙋' => 'P',
+ '𝙌' => 'Q',
+ '𝙍' => 'R',
+ '𝙎' => 'S',
+ '𝙏' => 'T',
+ '𝙐' => 'U',
+ '𝙑' => 'V',
+ '𝙒' => 'W',
+ '𝙓' => 'X',
+ '𝙔' => 'Y',
+ '𝙕' => 'Z',
+ '𝙖' => 'a',
+ '𝙗' => 'b',
+ '𝙘' => 'c',
+ '𝙙' => 'd',
+ '𝙚' => 'e',
+ '𝙛' => 'f',
+ '𝙜' => 'g',
+ '𝙝' => 'h',
+ '𝙞' => 'i',
+ '𝙟' => 'j',
+ '𝙠' => 'k',
+ '𝙡' => 'l',
+ '𝙢' => 'm',
+ '𝙣' => 'n',
+ '𝙤' => 'o',
+ '𝙥' => 'p',
+ '𝙦' => 'q',
+ '𝙧' => 'r',
+ '𝙨' => 's',
+ '𝙩' => 't',
+ '𝙪' => 'u',
+ '𝙫' => 'v',
+ '𝙬' => 'w',
+ '𝙭' => 'x',
+ '𝙮' => 'y',
+ '𝙯' => 'z',
+ '𝙰' => 'A',
+ '𝙱' => 'B',
+ '𝙲' => 'C',
+ '𝙳' => 'D',
+ '𝙴' => 'E',
+ '𝙵' => 'F',
+ '𝙶' => 'G',
+ '𝙷' => 'H',
+ '𝙸' => 'I',
+ '𝙹' => 'J',
+ '𝙺' => 'K',
+ '𝙻' => 'L',
+ '𝙼' => 'M',
+ '𝙽' => 'N',
+ '𝙾' => 'O',
+ '𝙿' => 'P',
+ '𝚀' => 'Q',
+ '𝚁' => 'R',
+ '𝚂' => 'S',
+ '𝚃' => 'T',
+ '𝚄' => 'U',
+ '𝚅' => 'V',
+ '𝚆' => 'W',
+ '𝚇' => 'X',
+ '𝚈' => 'Y',
+ '𝚉' => 'Z',
+ '𝚊' => 'a',
+ '𝚋' => 'b',
+ '𝚌' => 'c',
+ '𝚍' => 'd',
+ '𝚎' => 'e',
+ '𝚏' => 'f',
+ '𝚐' => 'g',
+ '𝚑' => 'h',
+ '𝚒' => 'i',
+ '𝚓' => 'j',
+ '𝚔' => 'k',
+ '𝚕' => 'l',
+ '𝚖' => 'm',
+ '𝚗' => 'n',
+ '𝚘' => 'o',
+ '𝚙' => 'p',
+ '𝚚' => 'q',
+ '𝚛' => 'r',
+ '𝚜' => 's',
+ '𝚝' => 't',
+ '𝚞' => 'u',
+ '𝚟' => 'v',
+ '𝚠' => 'w',
+ '𝚡' => 'x',
+ '𝚢' => 'y',
+ '𝚣' => 'z',
+ '𝚤' => 'ı',
+ '𝚥' => 'ȷ',
+ '𝚨' => 'Α',
+ '𝚩' => 'Β',
+ '𝚪' => 'Γ',
+ '𝚫' => 'Δ',
+ '𝚬' => 'Ε',
+ '𝚭' => 'Ζ',
+ '𝚮' => 'Η',
+ '𝚯' => 'Θ',
+ '𝚰' => 'Ι',
+ '𝚱' => 'Κ',
+ '𝚲' => 'Λ',
+ '𝚳' => 'Μ',
+ '𝚴' => 'Ν',
+ '𝚵' => 'Ξ',
+ '𝚶' => 'Ο',
+ '𝚷' => 'Π',
+ '𝚸' => 'Ρ',
+ '𝚹' => 'Θ',
+ '𝚺' => 'Σ',
+ '𝚻' => 'Τ',
+ '𝚼' => 'Υ',
+ '𝚽' => 'Φ',
+ '𝚾' => 'Χ',
+ '𝚿' => 'Ψ',
+ '𝛀' => 'Ω',
+ '𝛁' => '∇',
+ '𝛂' => 'α',
+ '𝛃' => 'β',
+ '𝛄' => 'γ',
+ '𝛅' => 'δ',
+ '𝛆' => 'ε',
+ '𝛇' => 'ζ',
+ '𝛈' => 'η',
+ '𝛉' => 'θ',
+ '𝛊' => 'ι',
+ '𝛋' => 'κ',
+ '𝛌' => 'λ',
+ '𝛍' => 'μ',
+ '𝛎' => 'ν',
+ '𝛏' => 'ξ',
+ '𝛐' => 'ο',
+ '𝛑' => 'π',
+ '𝛒' => 'ρ',
+ '𝛓' => 'ς',
+ '𝛔' => 'σ',
+ '𝛕' => 'τ',
+ '𝛖' => 'υ',
+ '𝛗' => 'φ',
+ '𝛘' => 'χ',
+ '𝛙' => 'ψ',
+ '𝛚' => 'ω',
+ '𝛛' => '∂',
+ '𝛜' => 'ε',
+ '𝛝' => 'θ',
+ '𝛞' => 'κ',
+ '𝛟' => 'φ',
+ '𝛠' => 'ρ',
+ '𝛡' => 'π',
+ '𝛢' => 'Α',
+ '𝛣' => 'Β',
+ '𝛤' => 'Γ',
+ '𝛥' => 'Δ',
+ '𝛦' => 'Ε',
+ '𝛧' => 'Ζ',
+ '𝛨' => 'Η',
+ '𝛩' => 'Θ',
+ '𝛪' => 'Ι',
+ '𝛫' => 'Κ',
+ '𝛬' => 'Λ',
+ '𝛭' => 'Μ',
+ '𝛮' => 'Ν',
+ '𝛯' => 'Ξ',
+ '𝛰' => 'Ο',
+ '𝛱' => 'Π',
+ '𝛲' => 'Ρ',
+ '𝛳' => 'Θ',
+ '𝛴' => 'Σ',
+ '𝛵' => 'Τ',
+ '𝛶' => 'Υ',
+ '𝛷' => 'Φ',
+ '𝛸' => 'Χ',
+ '𝛹' => 'Ψ',
+ '𝛺' => 'Ω',
+ '𝛻' => '∇',
+ '𝛼' => 'α',
+ '𝛽' => 'β',
+ '𝛾' => 'γ',
+ '𝛿' => 'δ',
+ '𝜀' => 'ε',
+ '𝜁' => 'ζ',
+ '𝜂' => 'η',
+ '𝜃' => 'θ',
+ '𝜄' => 'ι',
+ '𝜅' => 'κ',
+ '𝜆' => 'λ',
+ '𝜇' => 'μ',
+ '𝜈' => 'ν',
+ '𝜉' => 'ξ',
+ '𝜊' => 'ο',
+ '𝜋' => 'π',
+ '𝜌' => 'ρ',
+ '𝜍' => 'ς',
+ '𝜎' => 'σ',
+ '𝜏' => 'τ',
+ '𝜐' => 'υ',
+ '𝜑' => 'φ',
+ '𝜒' => 'χ',
+ '𝜓' => 'ψ',
+ '𝜔' => 'ω',
+ '𝜕' => '∂',
+ '𝜖' => 'ε',
+ '𝜗' => 'θ',
+ '𝜘' => 'κ',
+ '𝜙' => 'φ',
+ '𝜚' => 'ρ',
+ '𝜛' => 'π',
+ '𝜜' => 'Α',
+ '𝜝' => 'Β',
+ '𝜞' => 'Γ',
+ '𝜟' => 'Δ',
+ '𝜠' => 'Ε',
+ '𝜡' => 'Ζ',
+ '𝜢' => 'Η',
+ '𝜣' => 'Θ',
+ '𝜤' => 'Ι',
+ '𝜥' => 'Κ',
+ '𝜦' => 'Λ',
+ '𝜧' => 'Μ',
+ '𝜨' => 'Ν',
+ '𝜩' => 'Ξ',
+ '𝜪' => 'Ο',
+ '𝜫' => 'Π',
+ '𝜬' => 'Ρ',
+ '𝜭' => 'Θ',
+ '𝜮' => 'Σ',
+ '𝜯' => 'Τ',
+ '𝜰' => 'Υ',
+ '𝜱' => 'Φ',
+ '𝜲' => 'Χ',
+ '𝜳' => 'Ψ',
+ '𝜴' => 'Ω',
+ '𝜵' => '∇',
+ '𝜶' => 'α',
+ '𝜷' => 'β',
+ '𝜸' => 'γ',
+ '𝜹' => 'δ',
+ '𝜺' => 'ε',
+ '𝜻' => 'ζ',
+ '𝜼' => 'η',
+ '𝜽' => 'θ',
+ '𝜾' => 'ι',
+ '𝜿' => 'κ',
+ '𝝀' => 'λ',
+ '𝝁' => 'μ',
+ '𝝂' => 'ν',
+ '𝝃' => 'ξ',
+ '𝝄' => 'ο',
+ '𝝅' => 'π',
+ '𝝆' => 'ρ',
+ '𝝇' => 'ς',
+ '𝝈' => 'σ',
+ '𝝉' => 'τ',
+ '𝝊' => 'υ',
+ '𝝋' => 'φ',
+ '𝝌' => 'χ',
+ '𝝍' => 'ψ',
+ '𝝎' => 'ω',
+ '𝝏' => '∂',
+ '𝝐' => 'ε',
+ '𝝑' => 'θ',
+ '𝝒' => 'κ',
+ '𝝓' => 'φ',
+ '𝝔' => 'ρ',
+ '𝝕' => 'π',
+ '𝝖' => 'Α',
+ '𝝗' => 'Β',
+ '𝝘' => 'Γ',
+ '𝝙' => 'Δ',
+ '𝝚' => 'Ε',
+ '𝝛' => 'Ζ',
+ '𝝜' => 'Η',
+ '𝝝' => 'Θ',
+ '𝝞' => 'Ι',
+ '𝝟' => 'Κ',
+ '𝝠' => 'Λ',
+ '𝝡' => 'Μ',
+ '𝝢' => 'Ν',
+ '𝝣' => 'Ξ',
+ '𝝤' => 'Ο',
+ '𝝥' => 'Π',
+ '𝝦' => 'Ρ',
+ '𝝧' => 'Θ',
+ '𝝨' => 'Σ',
+ '𝝩' => 'Τ',
+ '𝝪' => 'Υ',
+ '𝝫' => 'Φ',
+ '𝝬' => 'Χ',
+ '𝝭' => 'Ψ',
+ '𝝮' => 'Ω',
+ '𝝯' => '∇',
+ '𝝰' => 'α',
+ '𝝱' => 'β',
+ '𝝲' => 'γ',
+ '𝝳' => 'δ',
+ '𝝴' => 'ε',
+ '𝝵' => 'ζ',
+ '𝝶' => 'η',
+ '𝝷' => 'θ',
+ '𝝸' => 'ι',
+ '𝝹' => 'κ',
+ '𝝺' => 'λ',
+ '𝝻' => 'μ',
+ '𝝼' => 'ν',
+ '𝝽' => 'ξ',
+ '𝝾' => 'ο',
+ '𝝿' => 'π',
+ '𝞀' => 'ρ',
+ '𝞁' => 'ς',
+ '𝞂' => 'σ',
+ '𝞃' => 'τ',
+ '𝞄' => 'υ',
+ '𝞅' => 'φ',
+ '𝞆' => 'χ',
+ '𝞇' => 'ψ',
+ '𝞈' => 'ω',
+ '𝞉' => '∂',
+ '𝞊' => 'ε',
+ '𝞋' => 'θ',
+ '𝞌' => 'κ',
+ '𝞍' => 'φ',
+ '𝞎' => 'ρ',
+ '𝞏' => 'π',
+ '𝞐' => 'Α',
+ '𝞑' => 'Β',
+ '𝞒' => 'Γ',
+ '𝞓' => 'Δ',
+ '𝞔' => 'Ε',
+ '𝞕' => 'Ζ',
+ '𝞖' => 'Η',
+ '𝞗' => 'Θ',
+ '𝞘' => 'Ι',
+ '𝞙' => 'Κ',
+ '𝞚' => 'Λ',
+ '𝞛' => 'Μ',
+ '𝞜' => 'Ν',
+ '𝞝' => 'Ξ',
+ '𝞞' => 'Ο',
+ '𝞟' => 'Π',
+ '𝞠' => 'Ρ',
+ '𝞡' => 'Θ',
+ '𝞢' => 'Σ',
+ '𝞣' => 'Τ',
+ '𝞤' => 'Υ',
+ '𝞥' => 'Φ',
+ '𝞦' => 'Χ',
+ '𝞧' => 'Ψ',
+ '𝞨' => 'Ω',
+ '𝞩' => '∇',
+ '𝞪' => 'α',
+ '𝞫' => 'β',
+ '𝞬' => 'γ',
+ '𝞭' => 'δ',
+ '𝞮' => 'ε',
+ '𝞯' => 'ζ',
+ '𝞰' => 'η',
+ '𝞱' => 'θ',
+ '𝞲' => 'ι',
+ '𝞳' => 'κ',
+ '𝞴' => 'λ',
+ '𝞵' => 'μ',
+ '𝞶' => 'ν',
+ '𝞷' => 'ξ',
+ '𝞸' => 'ο',
+ '𝞹' => 'π',
+ '𝞺' => 'ρ',
+ '𝞻' => 'ς',
+ '𝞼' => 'σ',
+ '𝞽' => 'τ',
+ '𝞾' => 'υ',
+ '𝞿' => 'φ',
+ '𝟀' => 'χ',
+ '𝟁' => 'ψ',
+ '𝟂' => 'ω',
+ '𝟃' => '∂',
+ '𝟄' => 'ε',
+ '𝟅' => 'θ',
+ '𝟆' => 'κ',
+ '𝟇' => 'φ',
+ '𝟈' => 'ρ',
+ '𝟉' => 'π',
+ '𝟊' => 'Ϝ',
+ '𝟋' => 'ϝ',
+ '𝟎' => '0',
+ '𝟏' => '1',
+ '𝟐' => '2',
+ '𝟑' => '3',
+ '𝟒' => '4',
+ '𝟓' => '5',
+ '𝟔' => '6',
+ '𝟕' => '7',
+ '𝟖' => '8',
+ '𝟗' => '9',
+ '𝟘' => '0',
+ '𝟙' => '1',
+ '𝟚' => '2',
+ '𝟛' => '3',
+ '𝟜' => '4',
+ '𝟝' => '5',
+ '𝟞' => '6',
+ '𝟟' => '7',
+ '𝟠' => '8',
+ '𝟡' => '9',
+ '𝟢' => '0',
+ '𝟣' => '1',
+ '𝟤' => '2',
+ '𝟥' => '3',
+ '𝟦' => '4',
+ '𝟧' => '5',
+ '𝟨' => '6',
+ '𝟩' => '7',
+ '𝟪' => '8',
+ '𝟫' => '9',
+ '𝟬' => '0',
+ '𝟭' => '1',
+ '𝟮' => '2',
+ '𝟯' => '3',
+ '𝟰' => '4',
+ '𝟱' => '5',
+ '𝟲' => '6',
+ '𝟳' => '7',
+ '𝟴' => '8',
+ '𝟵' => '9',
+ '𝟶' => '0',
+ '𝟷' => '1',
+ '𝟸' => '2',
+ '𝟹' => '3',
+ '𝟺' => '4',
+ '𝟻' => '5',
+ '𝟼' => '6',
+ '𝟽' => '7',
+ '𝟾' => '8',
+ '𝟿' => '9',
+ '𞸀' => 'ا',
+ '𞸁' => 'ب',
+ '𞸂' => 'ج',
+ '𞸃' => 'د',
+ '𞸅' => 'و',
+ '𞸆' => 'ز',
+ '𞸇' => 'ح',
+ '𞸈' => 'ط',
+ '𞸉' => 'ي',
+ '𞸊' => 'ك',
+ '𞸋' => 'ل',
+ '𞸌' => 'م',
+ '𞸍' => 'ن',
+ '𞸎' => 'س',
+ '𞸏' => 'ع',
+ '𞸐' => 'ف',
+ '𞸑' => 'ص',
+ '𞸒' => 'ق',
+ '𞸓' => 'ر',
+ '𞸔' => 'ش',
+ '𞸕' => 'ت',
+ '𞸖' => 'ث',
+ '𞸗' => 'خ',
+ '𞸘' => 'ذ',
+ '𞸙' => 'ض',
+ '𞸚' => 'ظ',
+ '𞸛' => 'غ',
+ '𞸜' => 'ٮ',
+ '𞸝' => 'ں',
+ '𞸞' => 'ڡ',
+ '𞸟' => 'ٯ',
+ '𞸡' => 'ب',
+ '𞸢' => 'ج',
+ '𞸤' => 'ه',
+ '𞸧' => 'ح',
+ '𞸩' => 'ي',
+ '𞸪' => 'ك',
+ '𞸫' => 'ل',
+ '𞸬' => 'م',
+ '𞸭' => 'ن',
+ '𞸮' => 'س',
+ '𞸯' => 'ع',
+ '𞸰' => 'ف',
+ '𞸱' => 'ص',
+ '𞸲' => 'ق',
+ '𞸴' => 'ش',
+ '𞸵' => 'ت',
+ '𞸶' => 'ث',
+ '𞸷' => 'خ',
+ '𞸹' => 'ض',
+ '𞸻' => 'غ',
+ '𞹂' => 'ج',
+ '𞹇' => 'ح',
+ '𞹉' => 'ي',
+ '𞹋' => 'ل',
+ '𞹍' => 'ن',
+ '𞹎' => 'س',
+ '𞹏' => 'ع',
+ '𞹑' => 'ص',
+ '𞹒' => 'ق',
+ '𞹔' => 'ش',
+ '𞹗' => 'خ',
+ '𞹙' => 'ض',
+ '𞹛' => 'غ',
+ '𞹝' => 'ں',
+ '𞹟' => 'ٯ',
+ '𞹡' => 'ب',
+ '𞹢' => 'ج',
+ '𞹤' => 'ه',
+ '𞹧' => 'ح',
+ '𞹨' => 'ط',
+ '𞹩' => 'ي',
+ '𞹪' => 'ك',
+ '𞹬' => 'م',
+ '𞹭' => 'ن',
+ '𞹮' => 'س',
+ '𞹯' => 'ع',
+ '𞹰' => 'ف',
+ '𞹱' => 'ص',
+ '𞹲' => 'ق',
+ '𞹴' => 'ش',
+ '𞹵' => 'ت',
+ '𞹶' => 'ث',
+ '𞹷' => 'خ',
+ '𞹹' => 'ض',
+ '𞹺' => 'ظ',
+ '𞹻' => 'غ',
+ '𞹼' => 'ٮ',
+ '𞹾' => 'ڡ',
+ '𞺀' => 'ا',
+ '𞺁' => 'ب',
+ '𞺂' => 'ج',
+ '𞺃' => 'د',
+ '𞺄' => 'ه',
+ '𞺅' => 'و',
+ '𞺆' => 'ز',
+ '𞺇' => 'ح',
+ '𞺈' => 'ط',
+ '𞺉' => 'ي',
+ '𞺋' => 'ل',
+ '𞺌' => 'م',
+ '𞺍' => 'ن',
+ '𞺎' => 'س',
+ '𞺏' => 'ع',
+ '𞺐' => 'ف',
+ '𞺑' => 'ص',
+ '𞺒' => 'ق',
+ '𞺓' => 'ر',
+ '𞺔' => 'ش',
+ '𞺕' => 'ت',
+ '𞺖' => 'ث',
+ '𞺗' => 'خ',
+ '𞺘' => 'ذ',
+ '𞺙' => 'ض',
+ '𞺚' => 'ظ',
+ '𞺛' => 'غ',
+ '𞺡' => 'ب',
+ '𞺢' => 'ج',
+ '𞺣' => 'د',
+ '𞺥' => 'و',
+ '𞺦' => 'ز',
+ '𞺧' => 'ح',
+ '𞺨' => 'ط',
+ '𞺩' => 'ي',
+ '𞺫' => 'ل',
+ '𞺬' => 'م',
+ '𞺭' => 'ن',
+ '𞺮' => 'س',
+ '𞺯' => 'ع',
+ '𞺰' => 'ف',
+ '𞺱' => 'ص',
+ '𞺲' => 'ق',
+ '𞺳' => 'ر',
+ '𞺴' => 'ش',
+ '𞺵' => 'ت',
+ '𞺶' => 'ث',
+ '𞺷' => 'خ',
+ '𞺸' => 'ذ',
+ '𞺹' => 'ض',
+ '𞺺' => 'ظ',
+ '𞺻' => 'غ',
+ '🄀' => '0.',
+ '🄁' => '0,',
+ '🄂' => '1,',
+ '🄃' => '2,',
+ '🄄' => '3,',
+ '🄅' => '4,',
+ '🄆' => '5,',
+ '🄇' => '6,',
+ '🄈' => '7,',
+ '🄉' => '8,',
+ '🄊' => '9,',
+ '🄐' => '(A)',
+ '🄑' => '(B)',
+ '🄒' => '(C)',
+ '🄓' => '(D)',
+ '🄔' => '(E)',
+ '🄕' => '(F)',
+ '🄖' => '(G)',
+ '🄗' => '(H)',
+ '🄘' => '(I)',
+ '🄙' => '(J)',
+ '🄚' => '(K)',
+ '🄛' => '(L)',
+ '🄜' => '(M)',
+ '🄝' => '(N)',
+ '🄞' => '(O)',
+ '🄟' => '(P)',
+ '🄠' => '(Q)',
+ '🄡' => '(R)',
+ '🄢' => '(S)',
+ '🄣' => '(T)',
+ '🄤' => '(U)',
+ '🄥' => '(V)',
+ '🄦' => '(W)',
+ '🄧' => '(X)',
+ '🄨' => '(Y)',
+ '🄩' => '(Z)',
+ '🄪' => '〔S〕',
+ '🄫' => 'C',
+ '🄬' => 'R',
+ '🄭' => 'CD',
+ '🄮' => 'WZ',
+ '🄰' => 'A',
+ '🄱' => 'B',
+ '🄲' => 'C',
+ '🄳' => 'D',
+ '🄴' => 'E',
+ '🄵' => 'F',
+ '🄶' => 'G',
+ '🄷' => 'H',
+ '🄸' => 'I',
+ '🄹' => 'J',
+ '🄺' => 'K',
+ '🄻' => 'L',
+ '🄼' => 'M',
+ '🄽' => 'N',
+ '🄾' => 'O',
+ '🄿' => 'P',
+ '🅀' => 'Q',
+ '🅁' => 'R',
+ '🅂' => 'S',
+ '🅃' => 'T',
+ '🅄' => 'U',
+ '🅅' => 'V',
+ '🅆' => 'W',
+ '🅇' => 'X',
+ '🅈' => 'Y',
+ '🅉' => 'Z',
+ '🅊' => 'HV',
+ '🅋' => 'MV',
+ '🅌' => 'SD',
+ '🅍' => 'SS',
+ '🅎' => 'PPV',
+ '🅏' => 'WC',
+ '🅪' => 'MC',
+ '🅫' => 'MD',
+ '🅬' => 'MR',
+ '🆐' => 'DJ',
+ '🈀' => 'ほか',
+ '🈁' => 'ココ',
+ '🈂' => 'サ',
+ '🈐' => '手',
+ '🈑' => '字',
+ '🈒' => '双',
+ '🈓' => 'デ',
+ '🈔' => '二',
+ '🈕' => '多',
+ '🈖' => '解',
+ '🈗' => '天',
+ '🈘' => '交',
+ '🈙' => '映',
+ '🈚' => '無',
+ '🈛' => '料',
+ '🈜' => '前',
+ '🈝' => '後',
+ '🈞' => '再',
+ '🈟' => '新',
+ '🈠' => '初',
+ '🈡' => '終',
+ '🈢' => '生',
+ '🈣' => '販',
+ '🈤' => '声',
+ '🈥' => '吹',
+ '🈦' => '演',
+ '🈧' => '投',
+ '🈨' => '捕',
+ '🈩' => '一',
+ '🈪' => '三',
+ '🈫' => '遊',
+ '🈬' => '左',
+ '🈭' => '中',
+ '🈮' => '右',
+ '🈯' => '指',
+ '🈰' => '走',
+ '🈱' => '打',
+ '🈲' => '禁',
+ '🈳' => '空',
+ '🈴' => '合',
+ '🈵' => '満',
+ '🈶' => '有',
+ '🈷' => '月',
+ '🈸' => '申',
+ '🈹' => '割',
+ '🈺' => '営',
+ '🈻' => '配',
+ '🉀' => '〔本〕',
+ '🉁' => '〔三〕',
+ '🉂' => '〔二〕',
+ '🉃' => '〔安〕',
+ '🉄' => '〔点〕',
+ '🉅' => '〔打〕',
+ '🉆' => '〔盗〕',
+ '🉇' => '〔勝〕',
+ '🉈' => '〔敗〕',
+ '🉐' => '得',
+ '🉑' => '可',
+ '🯰' => '0',
+ '🯱' => '1',
+ '🯲' => '2',
+ '🯳' => '3',
+ '🯴' => '4',
+ '🯵' => '5',
+ '🯶' => '6',
+ '🯷' => '7',
+ '🯸' => '8',
+ '🯹' => '9',
+);
diff --git a/vendor/symfony/polyfill-intl-normalizer/bootstrap.php b/vendor/symfony/polyfill-intl-normalizer/bootstrap.php
new file mode 100644
index 0000000..ba62006
--- /dev/null
+++ b/vendor/symfony/polyfill-intl-normalizer/bootstrap.php
@@ -0,0 +1,19 @@
+
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+use Symfony\Polyfill\Intl\Normalizer as p;
+
+if (!function_exists('normalizer_is_normalized')) {
+ function normalizer_is_normalized($s, $form = p\Normalizer::NFC) { return p\Normalizer::isNormalized($s, $form); }
+}
+if (!function_exists('normalizer_normalize')) {
+ function normalizer_normalize($s, $form = p\Normalizer::NFC) { return p\Normalizer::normalize($s, $form); }
+}
diff --git a/vendor/symfony/polyfill-intl-normalizer/composer.json b/vendor/symfony/polyfill-intl-normalizer/composer.json
new file mode 100644
index 0000000..b0986a8
--- /dev/null
+++ b/vendor/symfony/polyfill-intl-normalizer/composer.json
@@ -0,0 +1,39 @@
+{
+ "name": "symfony/polyfill-intl-normalizer",
+ "type": "library",
+ "description": "Symfony polyfill for intl's Normalizer class and related functions",
+ "keywords": ["polyfill", "shim", "compatibility", "portable", "intl", "normalizer"],
+ "homepage": "https://symfony.com",
+ "license": "MIT",
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "autoload": {
+ "psr-4": { "Symfony\\Polyfill\\Intl\\Normalizer\\": "" },
+ "files": [ "bootstrap.php" ],
+ "classmap": [ "Resources/stubs" ]
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "minimum-stability": "dev",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.18-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ }
+}
diff --git a/vendor/symfony/polyfill-php70/LICENSE b/vendor/symfony/polyfill-php70/LICENSE
new file mode 100644
index 0000000..4cd8bdd
--- /dev/null
+++ b/vendor/symfony/polyfill-php70/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2015-2019 Fabien Potencier
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+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/vendor/symfony/polyfill-php70/Php70.php b/vendor/symfony/polyfill-php70/Php70.php
new file mode 100644
index 0000000..7f1ad08
--- /dev/null
+++ b/vendor/symfony/polyfill-php70/Php70.php
@@ -0,0 +1,74 @@
+
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Polyfill\Php70;
+
+/**
+ * @author Nicolas Grekas
+ *
+ * @internal
+ */
+final class Php70
+{
+ public static function intdiv($dividend, $divisor)
+ {
+ $dividend = self::intArg($dividend, __FUNCTION__, 1);
+ $divisor = self::intArg($divisor, __FUNCTION__, 2);
+
+ if (0 === $divisor) {
+ throw new \DivisionByZeroError('Division by zero');
+ }
+ if (-1 === $divisor && ~PHP_INT_MAX === $dividend) {
+ throw new \ArithmeticError('Division of PHP_INT_MIN by -1 is not an integer');
+ }
+
+ return ($dividend - ($dividend % $divisor)) / $divisor;
+ }
+
+ public static function preg_replace_callback_array(array $patterns, $subject, $limit = -1, &$count = 0)
+ {
+ $count = 0;
+ $result = (string) $subject;
+ if (0 === $limit = self::intArg($limit, __FUNCTION__, 3)) {
+ return $result;
+ }
+
+ foreach ($patterns as $pattern => $callback) {
+ $result = preg_replace_callback($pattern, $callback, $result, $limit, $c);
+ $count += $c;
+ }
+
+ return $result;
+ }
+
+ public static function error_clear_last()
+ {
+ static $handler;
+ if (!$handler) {
+ $handler = function () { return false; };
+ }
+ set_error_handler($handler);
+ @trigger_error('');
+ restore_error_handler();
+ }
+
+ private static function intArg($value, $caller, $pos)
+ {
+ if (\is_int($value)) {
+ return $value;
+ }
+ if (!\is_numeric($value) || PHP_INT_MAX <= ($value += 0) || ~PHP_INT_MAX >= $value) {
+ throw new \TypeError(sprintf('%s() expects parameter %d to be integer, %s given', $caller, $pos, \gettype($value)));
+ }
+
+ return (int) $value;
+ }
+}
diff --git a/vendor/symfony/polyfill-php70/README.md b/vendor/symfony/polyfill-php70/README.md
new file mode 100644
index 0000000..abd5488
--- /dev/null
+++ b/vendor/symfony/polyfill-php70/README.md
@@ -0,0 +1,28 @@
+Symfony Polyfill / Php70
+========================
+
+This component provides features unavailable in releases prior to PHP 7.0:
+
+- [`intdiv`](https://php.net/intdiv)
+- [`preg_replace_callback_array`](https://php.net/preg_replace_callback_array)
+- [`error_clear_last`](https://php.net/error_clear_last)
+- `random_bytes` and `random_int` (from [paragonie/random_compat](https://github.com/paragonie/random_compat))
+- [`*Error` throwable classes](https://php.net/Error)
+- [`PHP_INT_MIN`](https://php.net/reserved.constants#constant.php-int-min)
+- `SessionUpdateTimestampHandlerInterface`
+
+More information can be found in the
+[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md).
+
+Compatibility notes
+===================
+
+To write portable code between PHP5 and PHP7, some care must be taken:
+- `\*Error` exceptions must be caught before `\Exception`;
+- after calling `error_clear_last()`, the result of `$e = error_get_last()` must be
+ verified using `isset($e['message'][0])` instead of `null !== $e`.
+
+License
+=======
+
+This library is released under the [MIT license](LICENSE).
diff --git a/vendor/symfony/polyfill-php70/Resources/stubs/ArithmeticError.php b/vendor/symfony/polyfill-php70/Resources/stubs/ArithmeticError.php
new file mode 100644
index 0000000..6819124
--- /dev/null
+++ b/vendor/symfony/polyfill-php70/Resources/stubs/ArithmeticError.php
@@ -0,0 +1,5 @@
+
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+use Symfony\Polyfill\Php70 as p;
+
+if (PHP_VERSION_ID >= 70000) {
+ return;
+}
+
+if (!defined('PHP_INT_MIN')) {
+ define('PHP_INT_MIN', ~PHP_INT_MAX);
+}
+
+if (!function_exists('intdiv')) {
+ function intdiv($dividend, $divisor) { return p\Php70::intdiv($dividend, $divisor); }
+}
+if (!function_exists('preg_replace_callback_array')) {
+ function preg_replace_callback_array(array $patterns, $subject, $limit = -1, &$count = 0) { return p\Php70::preg_replace_callback_array($patterns, $subject, $limit, $count); }
+}
+if (!function_exists('error_clear_last')) {
+ function error_clear_last() { return p\Php70::error_clear_last(); }
+}
diff --git a/vendor/symfony/polyfill-php70/composer.json b/vendor/symfony/polyfill-php70/composer.json
new file mode 100644
index 0000000..771a6f6
--- /dev/null
+++ b/vendor/symfony/polyfill-php70/composer.json
@@ -0,0 +1,37 @@
+{
+ "name": "symfony/polyfill-php70",
+ "type": "library",
+ "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions",
+ "keywords": ["polyfill", "shim", "compatibility", "portable"],
+ "homepage": "https://symfony.com",
+ "license": "MIT",
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "require": {
+ "php": ">=5.3.3",
+ "paragonie/random_compat": "~1.0|~2.0|~9.99"
+ },
+ "autoload": {
+ "psr-4": { "Symfony\\Polyfill\\Php70\\": "" },
+ "files": [ "bootstrap.php" ],
+ "classmap": [ "Resources/stubs" ]
+ },
+ "minimum-stability": "dev",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.18-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ }
+}
diff --git a/vendor/symfony/polyfill-php72/LICENSE b/vendor/symfony/polyfill-php72/LICENSE
new file mode 100644
index 0000000..4cd8bdd
--- /dev/null
+++ b/vendor/symfony/polyfill-php72/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2015-2019 Fabien Potencier
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+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/vendor/symfony/polyfill-php72/Php72.php b/vendor/symfony/polyfill-php72/Php72.php
new file mode 100644
index 0000000..9b3edc7
--- /dev/null
+++ b/vendor/symfony/polyfill-php72/Php72.php
@@ -0,0 +1,217 @@
+
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Polyfill\Php72;
+
+/**
+ * @author Nicolas Grekas
+ * @author Dariusz Rumiński
+ *
+ * @internal
+ */
+final class Php72
+{
+ private static $hashMask;
+
+ public static function utf8_encode($s)
+ {
+ $s .= $s;
+ $len = \strlen($s);
+
+ for ($i = $len >> 1, $j = 0; $i < $len; ++$i, ++$j) {
+ switch (true) {
+ case $s[$i] < "\x80": $s[$j] = $s[$i]; break;
+ case $s[$i] < "\xC0": $s[$j] = "\xC2"; $s[++$j] = $s[$i]; break;
+ default: $s[$j] = "\xC3"; $s[++$j] = \chr(\ord($s[$i]) - 64); break;
+ }
+ }
+
+ return substr($s, 0, $j);
+ }
+
+ public static function utf8_decode($s)
+ {
+ $s = (string) $s;
+ $len = \strlen($s);
+
+ for ($i = 0, $j = 0; $i < $len; ++$i, ++$j) {
+ switch ($s[$i] & "\xF0") {
+ case "\xC0":
+ case "\xD0":
+ $c = (\ord($s[$i] & "\x1F") << 6) | \ord($s[++$i] & "\x3F");
+ $s[$j] = $c < 256 ? \chr($c) : '?';
+ break;
+
+ case "\xF0":
+ ++$i;
+ // no break
+
+ case "\xE0":
+ $s[$j] = '?';
+ $i += 2;
+ break;
+
+ default:
+ $s[$j] = $s[$i];
+ }
+ }
+
+ return substr($s, 0, $j);
+ }
+
+ public static function php_os_family()
+ {
+ if ('\\' === \DIRECTORY_SEPARATOR) {
+ return 'Windows';
+ }
+
+ $map = array(
+ 'Darwin' => 'Darwin',
+ 'DragonFly' => 'BSD',
+ 'FreeBSD' => 'BSD',
+ 'NetBSD' => 'BSD',
+ 'OpenBSD' => 'BSD',
+ 'Linux' => 'Linux',
+ 'SunOS' => 'Solaris',
+ );
+
+ return isset($map[PHP_OS]) ? $map[PHP_OS] : 'Unknown';
+ }
+
+ public static function spl_object_id($object)
+ {
+ if (null === self::$hashMask) {
+ self::initHashMask();
+ }
+ if (null === $hash = spl_object_hash($object)) {
+ return;
+ }
+
+ // On 32-bit systems, PHP_INT_SIZE is 4,
+ return self::$hashMask ^ hexdec(substr($hash, 16 - (\PHP_INT_SIZE * 2 - 1), (\PHP_INT_SIZE * 2 - 1)));
+ }
+
+ public static function sapi_windows_vt100_support($stream, $enable = null)
+ {
+ if (!\is_resource($stream)) {
+ trigger_error('sapi_windows_vt100_support() expects parameter 1 to be resource, '.\gettype($stream).' given', E_USER_WARNING);
+
+ return false;
+ }
+
+ $meta = stream_get_meta_data($stream);
+
+ if ('STDIO' !== $meta['stream_type']) {
+ trigger_error('sapi_windows_vt100_support() was not able to analyze the specified stream', E_USER_WARNING);
+
+ return false;
+ }
+
+ // We cannot actually disable vt100 support if it is set
+ if (false === $enable || !self::stream_isatty($stream)) {
+ return false;
+ }
+
+ // The native function does not apply to stdin
+ $meta = array_map('strtolower', $meta);
+ $stdin = 'php://stdin' === $meta['uri'] || 'php://fd/0' === $meta['uri'];
+
+ return !$stdin
+ && (false !== getenv('ANSICON')
+ || 'ON' === getenv('ConEmuANSI')
+ || 'xterm' === getenv('TERM')
+ || 'Hyper' === getenv('TERM_PROGRAM'));
+ }
+
+ public static function stream_isatty($stream)
+ {
+ if (!\is_resource($stream)) {
+ trigger_error('stream_isatty() expects parameter 1 to be resource, '.\gettype($stream).' given', E_USER_WARNING);
+
+ return false;
+ }
+
+ if ('\\' === \DIRECTORY_SEPARATOR) {
+ $stat = @fstat($stream);
+ // Check if formatted mode is S_IFCHR
+ return $stat ? 0020000 === ($stat['mode'] & 0170000) : false;
+ }
+
+ return \function_exists('posix_isatty') && @posix_isatty($stream);
+ }
+
+ private static function initHashMask()
+ {
+ $obj = (object) array();
+ self::$hashMask = -1;
+
+ // check if we are nested in an output buffering handler to prevent a fatal error with ob_start() below
+ $obFuncs = array('ob_clean', 'ob_end_clean', 'ob_flush', 'ob_end_flush', 'ob_get_contents', 'ob_get_flush');
+ foreach (debug_backtrace(\PHP_VERSION_ID >= 50400 ? DEBUG_BACKTRACE_IGNORE_ARGS : false) as $frame) {
+ if (isset($frame['function'][0]) && !isset($frame['class']) && 'o' === $frame['function'][0] && \in_array($frame['function'], $obFuncs)) {
+ $frame['line'] = 0;
+ break;
+ }
+ }
+ if (!empty($frame['line'])) {
+ ob_start();
+ debug_zval_dump($obj);
+ self::$hashMask = (int) substr(ob_get_clean(), 17);
+ }
+
+ self::$hashMask ^= hexdec(substr(spl_object_hash($obj), 16 - (\PHP_INT_SIZE * 2 - 1), (\PHP_INT_SIZE * 2 - 1)));
+ }
+
+ public static function mb_chr($code, $encoding = null)
+ {
+ if (0x80 > $code %= 0x200000) {
+ $s = \chr($code);
+ } elseif (0x800 > $code) {
+ $s = \chr(0xC0 | $code >> 6).\chr(0x80 | $code & 0x3F);
+ } elseif (0x10000 > $code) {
+ $s = \chr(0xE0 | $code >> 12).\chr(0x80 | $code >> 6 & 0x3F).\chr(0x80 | $code & 0x3F);
+ } else {
+ $s = \chr(0xF0 | $code >> 18).\chr(0x80 | $code >> 12 & 0x3F).\chr(0x80 | $code >> 6 & 0x3F).\chr(0x80 | $code & 0x3F);
+ }
+
+ if ('UTF-8' !== $encoding) {
+ $s = mb_convert_encoding($s, $encoding, 'UTF-8');
+ }
+
+ return $s;
+ }
+
+ public static function mb_ord($s, $encoding = null)
+ {
+ if (null == $encoding) {
+ $s = mb_convert_encoding($s, 'UTF-8');
+ } elseif ('UTF-8' !== $encoding) {
+ $s = mb_convert_encoding($s, 'UTF-8', $encoding);
+ }
+
+ if (1 === \strlen($s)) {
+ return \ord($s);
+ }
+
+ $code = ($s = unpack('C*', substr($s, 0, 4))) ? $s[1] : 0;
+ if (0xF0 <= $code) {
+ return (($code - 0xF0) << 18) + (($s[2] - 0x80) << 12) + (($s[3] - 0x80) << 6) + $s[4] - 0x80;
+ }
+ if (0xE0 <= $code) {
+ return (($code - 0xE0) << 12) + (($s[2] - 0x80) << 6) + $s[3] - 0x80;
+ }
+ if (0xC0 <= $code) {
+ return (($code - 0xC0) << 6) + $s[2] - 0x80;
+ }
+
+ return $code;
+ }
+}
diff --git a/vendor/symfony/polyfill-php72/README.md b/vendor/symfony/polyfill-php72/README.md
new file mode 100644
index 0000000..59dec8a
--- /dev/null
+++ b/vendor/symfony/polyfill-php72/README.md
@@ -0,0 +1,28 @@
+Symfony Polyfill / Php72
+========================
+
+This component provides functions added to PHP 7.2 core:
+
+- [`spl_object_id`](https://php.net/spl_object_id)
+- [`stream_isatty`](https://php.net/stream_isatty)
+
+On Windows only:
+
+- [`sapi_windows_vt100_support`](https://php.net/sapi_windows_vt100_support)
+
+Moved to core since 7.2 (was in the optional XML extension earlier):
+
+- [`utf8_encode`](https://php.net/utf8_encode)
+- [`utf8_decode`](https://php.net/utf8_decode)
+
+Also, it provides constants added to PHP 7.2:
+- [`PHP_FLOAT_*`](https://php.net/reserved.constants#constant.php-float-dig)
+- [`PHP_OS_FAMILY`](https://php.net/reserved.constants#constant.php-os-family)
+
+More information can be found in the
+[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md).
+
+License
+=======
+
+This library is released under the [MIT license](LICENSE).
diff --git a/vendor/symfony/polyfill-php72/bootstrap.php b/vendor/symfony/polyfill-php72/bootstrap.php
new file mode 100644
index 0000000..a27a900
--- /dev/null
+++ b/vendor/symfony/polyfill-php72/bootstrap.php
@@ -0,0 +1,57 @@
+
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+use Symfony\Polyfill\Php72 as p;
+
+if (PHP_VERSION_ID >= 70200) {
+ return;
+}
+
+if (!defined('PHP_FLOAT_DIG')) {
+ define('PHP_FLOAT_DIG', 15);
+}
+if (!defined('PHP_FLOAT_EPSILON')) {
+ define('PHP_FLOAT_EPSILON', 2.2204460492503E-16);
+}
+if (!defined('PHP_FLOAT_MIN')) {
+ define('PHP_FLOAT_MIN', 2.2250738585072E-308);
+}
+if (!defined('PHP_FLOAT_MAX')) {
+ define('PHP_FLOAT_MAX', 1.7976931348623157E+308);
+}
+if (!defined('PHP_OS_FAMILY')) {
+ define('PHP_OS_FAMILY', p\Php72::php_os_family());
+}
+
+if ('\\' === DIRECTORY_SEPARATOR && !function_exists('sapi_windows_vt100_support')) {
+ function sapi_windows_vt100_support($stream, $enable = null) { return p\Php72::sapi_windows_vt100_support($stream, $enable); }
+}
+if (!function_exists('stream_isatty')) {
+ function stream_isatty($stream) { return p\Php72::stream_isatty($stream); }
+}
+if (!function_exists('utf8_encode')) {
+ function utf8_encode($s) { return p\Php72::utf8_encode($s); }
+}
+if (!function_exists('utf8_decode')) {
+ function utf8_decode($s) { return p\Php72::utf8_decode($s); }
+}
+if (!function_exists('spl_object_id')) {
+ function spl_object_id($s) { return p\Php72::spl_object_id($s); }
+}
+if (!function_exists('mb_ord')) {
+ function mb_ord($s, $enc = null) { return p\Php72::mb_ord($s, $enc); }
+}
+if (!function_exists('mb_chr')) {
+ function mb_chr($code, $enc = null) { return p\Php72::mb_chr($code, $enc); }
+}
+if (!function_exists('mb_scrub')) {
+ function mb_scrub($s, $enc = null) { $enc = null === $enc ? mb_internal_encoding() : $enc; return mb_convert_encoding($s, $enc, $enc); }
+}
diff --git a/vendor/symfony/polyfill-php72/composer.json b/vendor/symfony/polyfill-php72/composer.json
new file mode 100644
index 0000000..e295cab
--- /dev/null
+++ b/vendor/symfony/polyfill-php72/composer.json
@@ -0,0 +1,35 @@
+{
+ "name": "symfony/polyfill-php72",
+ "type": "library",
+ "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
+ "keywords": ["polyfill", "shim", "compatibility", "portable"],
+ "homepage": "https://symfony.com",
+ "license": "MIT",
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "autoload": {
+ "psr-4": { "Symfony\\Polyfill\\Php72\\": "" },
+ "files": [ "bootstrap.php" ]
+ },
+ "minimum-stability": "dev",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.18-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ }
+}
diff --git a/vendor/symfony/polyfill-php80/LICENSE b/vendor/symfony/polyfill-php80/LICENSE
new file mode 100644
index 0000000..5593b1d
--- /dev/null
+++ b/vendor/symfony/polyfill-php80/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2020 Fabien Potencier
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+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/vendor/symfony/polyfill-php80/Php80.php b/vendor/symfony/polyfill-php80/Php80.php
new file mode 100644
index 0000000..c03491b
--- /dev/null
+++ b/vendor/symfony/polyfill-php80/Php80.php
@@ -0,0 +1,105 @@
+
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Polyfill\Php80;
+
+/**
+ * @author Ion Bazan
+ * @author Nico Oelgart
+ * @author Nicolas Grekas
+ *
+ * @internal
+ */
+final class Php80
+{
+ public static function fdiv(float $dividend, float $divisor): float
+ {
+ return @($dividend / $divisor);
+ }
+
+ public static function get_debug_type($value): string
+ {
+ switch (true) {
+ case null === $value: return 'null';
+ case \is_bool($value): return 'bool';
+ case \is_string($value): return 'string';
+ case \is_array($value): return 'array';
+ case \is_int($value): return 'int';
+ case \is_float($value): return 'float';
+ case \is_object($value): break;
+ case $value instanceof \__PHP_Incomplete_Class: return '__PHP_Incomplete_Class';
+ default:
+ if (null === $type = @get_resource_type($value)) {
+ return 'unknown';
+ }
+
+ if ('Unknown' === $type) {
+ $type = 'closed';
+ }
+
+ return "resource ($type)";
+ }
+
+ $class = \get_class($value);
+
+ if (false === strpos($class, '@')) {
+ return $class;
+ }
+
+ return (get_parent_class($class) ?: key(class_implements($class)) ?: 'class').'@anonymous';
+ }
+
+ public static function get_resource_id($res): int
+ {
+ if (!\is_resource($res) && null === @get_resource_type($res)) {
+ throw new \TypeError(sprintf('Argument 1 passed to get_resource_id() must be of the type resource, %s given', get_debug_type($res)));
+ }
+
+ return (int) $res;
+ }
+
+ public static function preg_last_error_msg(): string
+ {
+ switch (preg_last_error()) {
+ case PREG_INTERNAL_ERROR:
+ return 'Internal error';
+ case PREG_BAD_UTF8_ERROR:
+ return 'Malformed UTF-8 characters, possibly incorrectly encoded';
+ case PREG_BAD_UTF8_OFFSET_ERROR:
+ return 'The offset did not correspond to the beginning of a valid UTF-8 code point';
+ case PREG_BACKTRACK_LIMIT_ERROR:
+ return 'Backtrack limit exhausted';
+ case PREG_RECURSION_LIMIT_ERROR:
+ return 'Recursion limit exhausted';
+ case PREG_JIT_STACKLIMIT_ERROR:
+ return 'JIT stack limit exhausted';
+ case PREG_NO_ERROR:
+ return 'No error';
+ default:
+ return 'Unknown error';
+ }
+ }
+
+ public static function str_contains(string $haystack, string $needle): bool
+ {
+ return '' === $needle || false !== strpos($haystack, $needle);
+ }
+
+ public static function str_starts_with(string $haystack, string $needle): bool
+ {
+ return 0 === \strncmp($haystack, $needle, \strlen($needle));
+ }
+
+ public static function str_ends_with(string $haystack, string $needle): bool
+ {
+ return '' === $needle || ('' !== $haystack && 0 === \substr_compare($haystack, $needle, -\strlen($needle)));
+ }
+}
diff --git a/vendor/symfony/polyfill-php80/README.md b/vendor/symfony/polyfill-php80/README.md
new file mode 100644
index 0000000..eaa3050
--- /dev/null
+++ b/vendor/symfony/polyfill-php80/README.md
@@ -0,0 +1,24 @@
+Symfony Polyfill / Php80
+========================
+
+This component provides features added to PHP 8.0 core:
+
+- `Stringable` interface
+- [`fdiv`](https://php.net/fdiv)
+- `ValueError` class
+- `UnhandledMatchError` class
+- `FILTER_VALIDATE_BOOL` constant
+- [`get_debug_type`](https://php.net/get_debug_type)
+- [`preg_last_error_msg`](https://php.net/preg_last_error_msg)
+- [`str_contains`](https://php.net/str_contains)
+- [`str_starts_with`](https://php.net/str_starts_with)
+- [`str_ends_with`](https://php.net/str_ends_with)
+- [`get_resource_id`](https://php.net/get_resource_id)
+
+More information can be found in the
+[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md).
+
+License
+=======
+
+This library is released under the [MIT license](LICENSE).
diff --git a/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php b/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php
new file mode 100644
index 0000000..ad0029a
--- /dev/null
+++ b/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php
@@ -0,0 +1,9 @@
+
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+use Symfony\Polyfill\Php80 as p;
+
+if (PHP_VERSION_ID >= 80000) {
+ return;
+}
+
+if (!defined('FILTER_VALIDATE_BOOL') && defined('FILTER_VALIDATE_BOOLEAN')) {
+ define('FILTER_VALIDATE_BOOL', FILTER_VALIDATE_BOOLEAN);
+}
+
+if (!function_exists('fdiv')) {
+ function fdiv(float $dividend, float $divisor): float { return p\Php80::fdiv($dividend, $divisor); }
+}
+if (!function_exists('preg_last_error_msg')) {
+ function preg_last_error_msg(): string { return p\Php80::preg_last_error_msg(); }
+}
+if (!function_exists('str_contains')) {
+ function str_contains(string $haystack, string $needle): bool { return p\Php80::str_contains($haystack, $needle); }
+}
+if (!function_exists('str_starts_with')) {
+ function str_starts_with(string $haystack, string $needle): bool { return p\Php80::str_starts_with($haystack, $needle); }
+}
+if (!function_exists('str_ends_with')) {
+ function str_ends_with(string $haystack, string $needle): bool { return p\Php80::str_ends_with($haystack, $needle); }
+}
+if (!function_exists('get_debug_type')) {
+ function get_debug_type($value): string { return p\Php80::get_debug_type($value); }
+}
+if (!function_exists('get_resource_id')) {
+ function get_resource_id($res): int { return p\Php80::get_resource_id($res); }
+}
diff --git a/vendor/symfony/polyfill-php80/composer.json b/vendor/symfony/polyfill-php80/composer.json
new file mode 100644
index 0000000..51086cc
--- /dev/null
+++ b/vendor/symfony/polyfill-php80/composer.json
@@ -0,0 +1,40 @@
+{
+ "name": "symfony/polyfill-php80",
+ "type": "library",
+ "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
+ "keywords": ["polyfill", "shim", "compatibility", "portable"],
+ "homepage": "https://symfony.com",
+ "license": "MIT",
+ "authors": [
+ {
+ "name": "Ion Bazan",
+ "email": "ion.bazan@gmail.com"
+ },
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "require": {
+ "php": ">=7.0.8"
+ },
+ "autoload": {
+ "psr-4": { "Symfony\\Polyfill\\Php80\\": "" },
+ "files": [ "bootstrap.php" ],
+ "classmap": [ "Resources/stubs" ]
+ },
+ "minimum-stability": "dev",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.18-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ }
+}
diff --git a/vendor/symfony/polyfill-uuid/LICENSE b/vendor/symfony/polyfill-uuid/LICENSE
new file mode 100644
index 0000000..3f853aa
--- /dev/null
+++ b/vendor/symfony/polyfill-uuid/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2018-2019 Fabien Potencier
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+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/vendor/symfony/polyfill-uuid/README.md b/vendor/symfony/polyfill-uuid/README.md
new file mode 100644
index 0000000..18c9c20
--- /dev/null
+++ b/vendor/symfony/polyfill-uuid/README.md
@@ -0,0 +1,12 @@
+Symfony Polyfill / Uuid
+========================
+
+This component provides `uuid_*` functions to users who run PHP versions without the uuid extension.
+
+More information can be found in the
+[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md).
+
+License
+=======
+
+This library is released under the [MIT license](LICENSE).
diff --git a/vendor/symfony/polyfill-uuid/Uuid.php b/vendor/symfony/polyfill-uuid/Uuid.php
new file mode 100644
index 0000000..70cd8d9
--- /dev/null
+++ b/vendor/symfony/polyfill-uuid/Uuid.php
@@ -0,0 +1,493 @@
+
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Polyfill\Uuid;
+
+/**
+ * @internal
+ *
+ * @author Grégoire Pineau
+ */
+final class Uuid
+{
+ const UUID_VARIANT_NCS = 0;
+ const UUID_VARIANT_DCE = 1;
+ const UUID_VARIANT_MICROSOFT = 2;
+ const UUID_VARIANT_OTHER = 3;
+ const UUID_TYPE_DEFAULT = 0;
+ const UUID_TYPE_TIME = 1;
+ const UUID_TYPE_MD5 = 3;
+ const UUID_TYPE_DCE = 4; // Deprecated alias
+ const UUID_TYPE_NAME = 1; // Deprecated alias
+ const UUID_TYPE_RANDOM = 4;
+ const UUID_TYPE_SHA1 = 5;
+ const UUID_TYPE_NULL = -1;
+ const UUID_TYPE_INVALID = -42;
+
+ // https://tools.ietf.org/html/rfc4122#section-4.1.4
+ // 0x01b21dd213814000 is the number of 100-ns intervals between the
+ // UUID epoch 1582-10-15 00:00:00 and the Unix epoch 1970-01-01 00:00:00.
+ const TIME_OFFSET_INT = 0x01b21dd213814000;
+ const TIME_OFFSET_BIN = "\x01\xb2\x1d\xd2\x13\x81\x40\x00";
+ const TIME_OFFSET_COM = "\xfe\x4d\xe2\x2d\xec\x7e\xc0\x00";
+
+ public static function uuid_create($uuid_type = UUID_TYPE_DEFAULT)
+ {
+ if (!\is_numeric($uuid_type) && null !== $uuid_type) {
+ trigger_error(sprintf('uuid_create() expects parameter 1 to be int, %s given', \gettype($uuid_type)), E_USER_WARNING);
+
+ return null;
+ }
+
+ switch ((int) $uuid_type) {
+ case self::UUID_TYPE_NAME:
+ case self::UUID_TYPE_TIME:
+ return self::uuid_generate_time();
+ case self::UUID_TYPE_DCE:
+ case self::UUID_TYPE_RANDOM:
+ case self::UUID_TYPE_DEFAULT:
+ return self::uuid_generate_random();
+ default:
+ trigger_error(sprintf("Unknown/invalid UUID type '%d' requested, using default type instead", $uuid_type), E_USER_WARNING);
+
+ return self::uuid_generate_random();
+ }
+ }
+
+ public static function uuid_generate_md5($uuid_ns, $name)
+ {
+ if (!\is_string($uuid_ns = self::toString($uuid_ns))) {
+ trigger_error(sprintf('uuid_generate_md5() expects parameter 1 to be string, %s given', \gettype($uuid_ns)), E_USER_WARNING);
+
+ return null;
+ }
+
+ if (!\is_string($name = self::toString($name))) {
+ trigger_error(sprintf('uuid_generate_md5() expects parameter 2 to be string, %s given', \gettype($name)), E_USER_WARNING);
+
+ return null;
+ }
+
+ if (!self::isValid($uuid_ns)) {
+ return false;
+ }
+
+ $hash = md5(hex2bin(str_replace('-', '', $uuid_ns)).$name);
+
+ return sprintf('%08s-%04s-3%03s-%04x-%012s',
+ // 32 bits for "time_low"
+ substr($hash, 0, 8),
+ // 16 bits for "time_mid"
+ substr($hash, 8, 4),
+ // 16 bits for "time_hi_and_version",
+ // four most significant bits holds version number 3
+ substr($hash, 13, 3),
+ // 16 bits:
+ // * 8 bits for "clk_seq_hi_res",
+ // * 8 bits for "clk_seq_low",
+ hexdec(substr($hash, 16, 4)) & 0x3fff | 0x8000,
+ // 48 bits for "node"
+ substr($hash, 20, 12)
+ );
+ }
+
+ public static function uuid_generate_sha1($uuid_ns, $name)
+ {
+ if (!\is_string($uuid_ns = self::toString($uuid_ns))) {
+ trigger_error(sprintf('uuid_generate_sha1() expects parameter 1 to be string, %s given', \gettype($uuid_ns)), E_USER_WARNING);
+
+ return null;
+ }
+
+ if (!\is_string($name = self::toString($name))) {
+ trigger_error(sprintf('uuid_generate_sha1() expects parameter 2 to be string, %s given', \gettype($name)), E_USER_WARNING);
+
+ return null;
+ }
+
+ if (!self::isValid($uuid_ns)) {
+ return false;
+ }
+
+ $hash = sha1(hex2bin(str_replace('-', '', $uuid_ns)).$name);
+
+ return sprintf('%08s-%04s-5%03s-%04x-%012s',
+ // 32 bits for "time_low"
+ substr($hash, 0, 8),
+ // 16 bits for "time_mid"
+ substr($hash, 8, 4),
+ // 16 bits for "time_hi_and_version",
+ // four most significant bits holds version number 5
+ substr($hash, 13, 3),
+ // 16 bits:
+ // * 8 bits for "clk_seq_hi_res",
+ // * 8 bits for "clk_seq_low",
+ // WARNING: On old libuuid version, there is a bug. 0x0fff is used instead of 0x3fff
+ // See https://github.com/karelzak/util-linux/commit/d6ddf07d31dfdc894eb8e7e6842aa856342c526e
+ hexdec(substr($hash, 16, 4)) & 0x3fff | 0x8000,
+ // 48 bits for "node"
+ substr($hash, 20, 12)
+ );
+ }
+
+ public static function uuid_is_valid($uuid)
+ {
+ if (!\is_string($uuid = self::toString($uuid))) {
+ trigger_error(sprintf('uuid_is_valid() expects parameter 1 to be string, %s given', \gettype($uuid)), E_USER_WARNING);
+
+ return null;
+ }
+
+ return self::isValid($uuid);
+ }
+
+ public static function uuid_compare($uuid1, $uuid2)
+ {
+ if (!\is_string($uuid1 = self::toString($uuid1))) {
+ trigger_error(sprintf('uuid_compare() expects parameter 1 to be string, %s given', \gettype($uuid1)), E_USER_WARNING);
+
+ return null;
+ }
+
+ if (!\is_string($uuid2 = self::toString($uuid2))) {
+ trigger_error(sprintf('uuid_compare() expects parameter 2 to be string, %s given', \gettype($uuid2)), E_USER_WARNING);
+
+ return null;
+ }
+
+ if (!self::isValid($uuid1)) {
+ return false;
+ }
+
+ if (!self::isValid($uuid2)) {
+ return false;
+ }
+
+ return strcasecmp($uuid1, $uuid2);
+ }
+
+ public static function uuid_is_null($uuid)
+ {
+ if (!\is_string($uuid = self::toString($uuid))) {
+ trigger_error(sprintf('uuid_is_null() expects parameter 1 to be string, %s given', \gettype($uuid)), E_USER_WARNING);
+
+ return null;
+ }
+
+ return '00000000-0000-0000-0000-000000000000' === $uuid;
+ }
+
+ public static function uuid_type($uuid)
+ {
+ if (!\is_string($uuid = self::toString($uuid))) {
+ trigger_error(sprintf('uuid_type() expects parameter 1 to be string, %s given', \gettype($uuid)), E_USER_WARNING);
+
+ return null;
+ }
+
+ if ('00000000-0000-0000-0000-000000000000' === $uuid) {
+ return self::UUID_TYPE_NULL;
+ }
+
+ if (null === $parsed = self::parse($uuid)) {
+ return false;
+ }
+
+ return $parsed['version'];
+ }
+
+ public static function uuid_variant($uuid)
+ {
+ if (!\is_string($uuid = self::toString($uuid))) {
+ trigger_error(sprintf('uuid_variant() expects parameter 1 to be string, %s given', \gettype($uuid)), E_USER_WARNING);
+
+ return null;
+ }
+
+ if ('00000000-0000-0000-0000-000000000000' === $uuid) {
+ return self::UUID_TYPE_NULL;
+ }
+
+ if (null === $parsed = self::parse($uuid)) {
+ return false;
+ }
+
+ if (($parsed['clock_seq'] & 0x8000) === 0) {
+ return self::UUID_VARIANT_NCS;
+ }
+ if (($parsed['clock_seq'] & 0x4000) === 0) {
+ return self::UUID_VARIANT_DCE;
+ }
+ if (($parsed['clock_seq'] & 0x2000) === 0) {
+ return self::UUID_VARIANT_MICROSOFT;
+ }
+
+ return self::UUID_VARIANT_OTHER;
+ }
+
+ public static function uuid_time($uuid)
+ {
+ if (!\is_string($uuid = self::toString($uuid))) {
+ trigger_error(sprintf('uuid_time() expects parameter 1 to be string, %s given', \gettype($uuid)), E_USER_WARNING);
+
+ return null;
+ }
+
+ if (null === $parsed = self::parse($uuid)) {
+ return false;
+ }
+
+ if (self::UUID_TYPE_TIME !== $parsed['version']) {
+ return false;
+ }
+
+
+ if (\PHP_INT_SIZE >= 8) {
+ return intdiv(hexdec($parsed['time']) - self::TIME_OFFSET_INT, 10000000);
+ }
+
+ $time = str_pad(hex2bin($parsed['time']), 8, "\0", STR_PAD_LEFT);
+ $time = self::binaryAdd($time, self::TIME_OFFSET_COM);
+ $time[0] = $time[0] & "\x7F";
+
+ return (int) substr(self::toDecimal($time), 0, -7);
+ }
+
+ public static function uuid_mac($uuid)
+ {
+ if (!\is_string($uuid = self::toString($uuid))) {
+ trigger_error(sprintf('uuid_mac() expects parameter 1 to be string, %s given', \gettype($uuid)), E_USER_WARNING);
+
+ return null;
+ }
+
+ if (null === $parsed = self::parse($uuid)) {
+ return false;
+ }
+
+ if (self::UUID_TYPE_TIME !== $parsed['version']) {
+ return false;
+ }
+
+ return strtr($parsed['node'], 'ABCDEF', 'abcdef');
+ }
+
+ public static function uuid_parse($uuid)
+ {
+ if (!\is_string($uuid = self::toString($uuid))) {
+ trigger_error(sprintf('uuid_parse() expects parameter 1 to be string, %s given', \gettype($uuid)), E_USER_WARNING);
+
+ return null;
+ }
+
+ if (!self::isValid($uuid)) {
+ return false;
+ }
+
+ return hex2bin(str_replace('-', '', $uuid));
+ }
+
+ public static function uuid_unparse($bytes)
+ {
+ if (!\is_string($bytes = self::toString($bytes))) {
+ trigger_error(sprintf('uuid_unparse() expects parameter 1 to be string, %s given', \gettype($bytes)), E_USER_WARNING);
+
+ return null;
+ }
+
+ if (16 !== \strlen($bytes)) {
+ return false;
+ }
+
+ $uuid = bin2hex($bytes);
+ $uuid = substr_replace($uuid, '-', 8, 0);
+ $uuid = substr_replace($uuid, '-', 13, 0);
+ $uuid = substr_replace($uuid, '-', 18, 0);
+
+ return substr_replace($uuid, '-', 23, 0);
+ }
+
+ private static function uuid_generate_random()
+ {
+ $uuid = bin2hex(random_bytes(16));
+
+ return sprintf('%08s-%04s-4%03s-%04x-%012s',
+ // 32 bits for "time_low"
+ substr($uuid, 0, 8),
+ // 16 bits for "time_mid"
+ substr($uuid, 8, 4),
+ // 16 bits for "time_hi_and_version",
+ // four most significant bits holds version number 4
+ substr($uuid, 13, 3),
+ // 16 bits:
+ // * 8 bits for "clk_seq_hi_res",
+ // * 8 bits for "clk_seq_low",
+ // two most significant bits holds zero and one for variant DCE1.1
+ hexdec(substr($uuid, 16, 4)) & 0x3fff | 0x8000,
+ // 48 bits for "node"
+ substr($uuid, 20, 12)
+ );
+ }
+
+ /**
+ * @see http://tools.ietf.org/html/rfc4122#section-4.2.2
+ */
+ private static function uuid_generate_time()
+ {
+ $time = microtime(false);
+ $time = substr($time, 11).substr($time, 2, 7);
+
+ if (\PHP_INT_SIZE >= 8) {
+ $time = str_pad(dechex($time + self::TIME_OFFSET_INT), 16, '0', STR_PAD_LEFT);
+ } else {
+ $time = str_pad(self::toBinary($time), 8, "\0", STR_PAD_LEFT);
+ $time = self::binaryAdd($time, self::TIME_OFFSET_BIN);
+ $time = bin2hex($time);
+ }
+
+ // https://tools.ietf.org/html/rfc4122#section-4.1.5
+ // We are using a random data for the sake of simplicity: since we are
+ // not able to get a super precise timeOfDay as a unique sequence
+ $clockSeq = random_int(0, 0x3fff);
+
+ static $node;
+ if (null === $node) {
+ if (\function_exists('apcu_fetch')) {
+ $node = apcu_fetch('__symfony_uuid_node');
+ if (false === $node) {
+ $node = sprintf('%06x%06x',
+ random_int(0, 0xffffff) | 0x010000,
+ random_int(0, 0xffffff)
+ );
+ apcu_store('__symfony_uuid_node', $node);
+ }
+ } else {
+ $node = sprintf('%06x%06x',
+ random_int(0, 0xffffff) | 0x010000,
+ random_int(0, 0xffffff)
+ );
+ }
+ }
+
+ return sprintf('%08s-%04s-1%03s-%04x-%012s',
+ // 32 bits for "time_low"
+ substr($time, -8),
+
+ // 16 bits for "time_mid"
+ substr($time, -12, 4),
+
+ // 16 bits for "time_hi_and_version",
+ // four most significant bits holds version number 1
+ substr($time, -15, 3),
+
+ // 16 bits:
+ // * 8 bits for "clk_seq_hi_res",
+ // * 8 bits for "clk_seq_low",
+ // two most significant bits holds zero and one for variant DCE1.1
+ $clockSeq | 0x8000,
+
+ // 48 bits for "node"
+ $node
+ );
+ }
+
+ private static function isValid($uuid)
+ {
+ return (bool) preg_match('{^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$}Di', $uuid);
+ }
+
+ private static function parse($uuid)
+ {
+ if (!preg_match('{^(?[0-9a-f]{8})-(?[0-9a-f]{4})-(?[0-9a-f])(?[0-9a-f]{3})-(?[0-9a-f]{4})-(?[0-9a-f]{12})$}Di', $uuid, $matches)) {
+ return null;
+ }
+
+ return array(
+ 'time' => '0'.$matches['time_hi'].$matches['time_mid'].$matches['time_low'],
+ 'version' => hexdec($matches['version']),
+ 'clock_seq' => hexdec($matches['clock_seq']),
+ 'node' => $matches['node'],
+ );
+ }
+
+ private static function toString($v)
+ {
+ if (\is_string($v) || null === $v || (\is_object($v) ? method_exists($v, '__toString') : is_scalar($v))) {
+ return (string) $v;
+ }
+
+ return $v;
+ }
+
+ private static function toBinary($digits)
+ {
+ $bytes = '';
+ $count = \strlen($digits);
+
+ while ($count) {
+ $quotient = array();
+ $remainder = 0;
+
+ for ($i = 0; $i !== $count; ++$i) {
+ $carry = $digits[$i] + $remainder * 10;
+ $digit = $carry >> 8;
+ $remainder = $carry & 0xFF;
+
+ if ($digit || $quotient) {
+ $quotient[] = $digit;
+ }
+ }
+
+ $bytes = \chr($remainder).$bytes;
+ $count = \count($digits = $quotient);
+ }
+
+ return $bytes;
+ }
+
+ private static function toDecimal($bytes)
+ {
+ $digits = '';
+ $bytes = array_values(unpack('C*', $bytes));
+
+ while ($count = \count($bytes)) {
+ $quotient = array();
+ $remainder = 0;
+
+ for ($i = 0; $i !== $count; ++$i) {
+ $carry = $bytes[$i] + ($remainder << 8);
+ $digit = (int) ($carry / 10);
+ $remainder = $carry % 10;
+
+ if ($digit || $quotient) {
+ $quotient[] = $digit;
+ }
+ }
+
+ $digits = $remainder.$digits;
+ $bytes = $quotient;
+ }
+
+ return $digits;
+ }
+
+ private static function binaryAdd($a, $b)
+ {
+ $sum = 0;
+ for ($i = 7; 0 <= $i; --$i) {
+ $sum += \ord($a[$i]) + \ord($b[$i]);
+ $a[$i] = \chr($sum & 0xFF);
+ $sum >>= 8;
+ }
+
+ return $a;
+ }
+}
diff --git a/vendor/symfony/polyfill-uuid/bootstrap.php b/vendor/symfony/polyfill-uuid/bootstrap.php
new file mode 100644
index 0000000..c41403b
--- /dev/null
+++ b/vendor/symfony/polyfill-uuid/bootstrap.php
@@ -0,0 +1,93 @@
+
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+use Symfony\Polyfill\Uuid as p;
+
+if (extension_loaded('uuid')) {
+ return;
+}
+
+if (!defined('UUID_VARIANT_NCS')) {
+ define('UUID_VARIANT_NCS', 0);
+}
+if (!defined('UUID_VARIANT_DCE')) {
+ define('UUID_VARIANT_DCE', 1);
+}
+if (!defined('UUID_VARIANT_MICROSOFT')) {
+ define('UUID_VARIANT_MICROSOFT', 2);
+}
+if (!defined('UUID_VARIANT_OTHER')) {
+ define('UUID_VARIANT_OTHER', 3);
+}
+if (!defined('UUID_TYPE_DEFAULT')) {
+ define('UUID_TYPE_DEFAULT', 0);
+}
+if (!defined('UUID_TYPE_TIME')) {
+ define('UUID_TYPE_TIME', 1);
+}
+if (!defined('UUID_TYPE_MD5')) {
+ define('UUID_TYPE_MD5', 3);
+}
+if (!defined('UUID_TYPE_DCE')) {
+ define('UUID_TYPE_DCE', 4); // Deprecated alias
+}
+if (!defined('UUID_TYPE_NAME')) {
+ define('UUID_TYPE_NAME', 1); // Deprecated alias
+}
+if (!defined('UUID_TYPE_RANDOM')) {
+ define('UUID_TYPE_RANDOM', 4);
+}
+if (!defined('UUID_TYPE_SHA1')) {
+ define('UUID_TYPE_SHA1', 5);
+}
+if (!defined('UUID_TYPE_NULL')) {
+ define('UUID_TYPE_NULL', -1);
+}
+if (!defined('UUID_TYPE_INVALID')) {
+ define('UUID_TYPE_INVALID', -42);
+}
+
+if (!function_exists('uuid_create')) {
+ function uuid_create($type = UUID_TYPE_DEFAULT) { return p\Uuid::uuid_create($type); }
+}
+if (!function_exists('uuid_generate_md5')) {
+ function uuid_generate_md5($uuid_ns, $name) { return p\Uuid::uuid_generate_md5($uuid_ns, $name); }
+}
+if (!function_exists('uuid_generate_sha1')) {
+ function uuid_generate_sha1($uuid_ns, $name) { return p\Uuid::uuid_generate_sha1($uuid_ns, $name); }
+}
+if (!function_exists('uuid_is_valid')) {
+ function uuid_is_valid($uuid) { return p\Uuid::uuid_is_valid($uuid); }
+}
+if (!function_exists('uuid_compare')) {
+ function uuid_compare($uuid1, $uuid2) { return p\Uuid::uuid_compare($uuid1, $uuid2); }
+}
+if (!function_exists('uuid_is_null')) {
+ function uuid_is_null($uuid) { return p\Uuid::uuid_is_null($uuid); }
+}
+if (!function_exists('uuid_type')) {
+ function uuid_type($uuid) { return p\Uuid::uuid_type($uuid); }
+}
+if (!function_exists('uuid_variant')) {
+ function uuid_variant($uuid) { return p\Uuid::uuid_variant($uuid); }
+}
+if (!function_exists('uuid_time')) {
+ function uuid_time($uuid) { return p\Uuid::uuid_time($uuid); }
+}
+if (!function_exists('uuid_mac')) {
+ function uuid_mac($uuid) { return p\Uuid::uuid_mac($uuid); }
+}
+if (!function_exists('uuid_parse')) {
+ function uuid_parse($uuid) { return p\Uuid::uuid_parse($uuid); }
+}
+if (!function_exists('uuid_unparse')) {
+ function uuid_unparse($uuid) { return p\Uuid::uuid_unparse($uuid); }
+}
diff --git a/vendor/symfony/polyfill-uuid/composer.json b/vendor/symfony/polyfill-uuid/composer.json
new file mode 100644
index 0000000..c037546
--- /dev/null
+++ b/vendor/symfony/polyfill-uuid/composer.json
@@ -0,0 +1,39 @@
+{
+ "name": "symfony/polyfill-uuid",
+ "type": "library",
+ "description": "Symfony polyfill for uuid functions",
+ "keywords": ["polyfill", "compatibility", "portable", "uuid"],
+ "homepage": "https://symfony.com",
+ "license": "MIT",
+ "authors": [
+ {
+ "name": "Grégoire Pineau",
+ "email": "lyrixx@lyrixx.info"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "require": {
+ "php": ">=5.3.3",
+ "paragonie/random_compat": "~1.0|~2.0|~9.99"
+ },
+ "autoload": {
+ "psr-4": { "Symfony\\Polyfill\\Uuid\\": "" },
+ "files": [ "bootstrap.php" ]
+ },
+ "suggest": {
+ "ext-uuid": "For best performance"
+ },
+ "minimum-stability": "dev",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.18-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ }
+}
From deb25e1c409821b48b25ba874548e8ffa330a694 Mon Sep 17 00:00:00 2001
From: Luke Tainton
Date: Wed, 5 Aug 2020 18:35:05 +0100
Subject: [PATCH 17/36] Revert ":chart_with_upwards_trend: Add GlitchTip"
This reverts commit d5679a626dd89b73f67521174b436278a2d2844b.
---
app/includes/prereqs.php | 6 -
app/public/index.php | 12 +-
composer.json | 5 -
composer.lock | 1882 ------
vendor/autoload.php | 7 -
vendor/clue/stream-filter/.gitignore | 2 -
vendor/clue/stream-filter/.travis.yml | 27 -
vendor/clue/stream-filter/CHANGELOG.md | 63 -
vendor/clue/stream-filter/LICENSE | 21 -
vendor/clue/stream-filter/README.md | 301 -
vendor/clue/stream-filter/composer.json | 23 -
.../stream-filter/examples/base64_decode.php | 29 -
.../stream-filter/examples/base64_encode.php | 21 -
.../clue/stream-filter/examples/uppercase.php | 9 -
vendor/clue/stream-filter/phpunit.xml.dist | 19 -
.../clue/stream-filter/src/CallbackFilter.php | 120 -
vendor/clue/stream-filter/src/functions.php | 146 -
.../stream-filter/src/functions_include.php | 5 -
.../clue/stream-filter/tests/FilterTest.php | 386 --
vendor/clue/stream-filter/tests/FunTest.php | 61 -
.../clue/stream-filter/tests/FunZlibTest.php | 79 -
vendor/composer/ClassLoader.php | 445 --
vendor/composer/LICENSE | 21 -
vendor/composer/autoload_classmap.php | 20 -
vendor/composer/autoload_files.php | 23 -
vendor/composer/autoload_namespaces.php | 9 -
vendor/composer/autoload_psr4.php | 33 -
vendor/composer/autoload_real.php | 73 -
vendor/composer/autoload_static.php | 195 -
vendor/composer/installed.json | 1924 ------
.../package-versions-deprecated/CHANGELOG.md | 120 -
.../CONTRIBUTING.md | 39 -
.../package-versions-deprecated/LICENSE | 19 -
.../package-versions-deprecated/README.md | 5 -
.../package-versions-deprecated/SECURITY.md | 5 -
.../package-versions-deprecated/composer.json | 48 -
.../package-versions-deprecated/composer.lock | 2603 --------
.../phpcs.xml.dist | 21 -
.../src/PackageVersions/FallbackVersions.php | 128 -
.../src/PackageVersions/Installer.php | 251 -
.../src/PackageVersions/Versions.php | 98 -
vendor/guzzlehttp/guzzle/.php_cs | 23 -
vendor/guzzlehttp/guzzle/CHANGELOG.md | 1338 ----
vendor/guzzlehttp/guzzle/Dockerfile | 18 -
vendor/guzzlehttp/guzzle/LICENSE | 19 -
vendor/guzzlehttp/guzzle/README.md | 90 -
vendor/guzzlehttp/guzzle/UPGRADING.md | 1203 ----
vendor/guzzlehttp/guzzle/composer.json | 59 -
vendor/guzzlehttp/guzzle/src/Client.php | 501 --
.../guzzlehttp/guzzle/src/ClientInterface.php | 87 -
.../guzzle/src/Cookie/CookieJar.php | 316 -
.../guzzle/src/Cookie/CookieJarInterface.php | 84 -
.../guzzle/src/Cookie/FileCookieJar.php | 91 -
.../guzzle/src/Cookie/SessionCookieJar.php | 72 -
.../guzzle/src/Cookie/SetCookie.php | 403 --
.../src/Exception/BadResponseException.php | 27 -
.../guzzle/src/Exception/ClientException.php | 9 -
.../guzzle/src/Exception/ConnectException.php | 37 -
.../guzzle/src/Exception/GuzzleException.php | 23 -
.../Exception/InvalidArgumentException.php | 7 -
.../guzzle/src/Exception/RequestException.php | 192 -
.../guzzle/src/Exception/SeekException.php | 27 -
.../guzzle/src/Exception/ServerException.php | 9 -
.../Exception/TooManyRedirectsException.php | 6 -
.../src/Exception/TransferException.php | 6 -
.../guzzle/src/Handler/CurlFactory.php | 585 --
.../src/Handler/CurlFactoryInterface.php | 27 -
.../guzzle/src/Handler/CurlHandler.php | 45 -
.../guzzle/src/Handler/CurlMultiHandler.php | 219 -
.../guzzle/src/Handler/EasyHandle.php | 92 -
.../guzzle/src/Handler/MockHandler.php | 195 -
.../guzzlehttp/guzzle/src/Handler/Proxy.php | 55 -
.../guzzle/src/Handler/StreamHandler.php | 545 --
vendor/guzzlehttp/guzzle/src/HandlerStack.php | 277 -
.../guzzle/src/MessageFormatter.php | 185 -
vendor/guzzlehttp/guzzle/src/Middleware.php | 254 -
vendor/guzzlehttp/guzzle/src/Pool.php | 134 -
.../guzzle/src/PrepareBodyMiddleware.php | 111 -
.../guzzle/src/RedirectMiddleware.php | 255 -
.../guzzlehttp/guzzle/src/RequestOptions.php | 263 -
.../guzzlehttp/guzzle/src/RetryMiddleware.php | 128 -
.../guzzlehttp/guzzle/src/TransferStats.php | 126 -
vendor/guzzlehttp/guzzle/src/UriTemplate.php | 237 -
vendor/guzzlehttp/guzzle/src/Utils.php | 92 -
vendor/guzzlehttp/guzzle/src/functions.php | 334 -
.../guzzle/src/functions_include.php | 6 -
vendor/guzzlehttp/promises/CHANGELOG.md | 65 -
vendor/guzzlehttp/promises/LICENSE | 19 -
vendor/guzzlehttp/promises/Makefile | 13 -
vendor/guzzlehttp/promises/README.md | 504 --
vendor/guzzlehttp/promises/composer.json | 34 -
.../promises/src/AggregateException.php | 16 -
.../promises/src/CancellationException.php | 9 -
vendor/guzzlehttp/promises/src/Coroutine.php | 151 -
.../guzzlehttp/promises/src/EachPromise.php | 229 -
.../promises/src/FulfilledPromise.php | 82 -
vendor/guzzlehttp/promises/src/Promise.php | 280 -
.../promises/src/PromiseInterface.php | 93 -
.../promises/src/PromisorInterface.php | 15 -
.../promises/src/RejectedPromise.php | 87 -
.../promises/src/RejectionException.php | 47 -
vendor/guzzlehttp/promises/src/TaskQueue.php | 66 -
.../promises/src/TaskQueueInterface.php | 25 -
vendor/guzzlehttp/promises/src/functions.php | 457 --
.../promises/src/functions_include.php | 6 -
vendor/guzzlehttp/psr7/CHANGELOG.md | 246 -
vendor/guzzlehttp/psr7/LICENSE | 19 -
vendor/guzzlehttp/psr7/README.md | 745 ---
vendor/guzzlehttp/psr7/composer.json | 49 -
vendor/guzzlehttp/psr7/src/AppendStream.php | 241 -
vendor/guzzlehttp/psr7/src/BufferStream.php | 137 -
vendor/guzzlehttp/psr7/src/CachingStream.php | 138 -
vendor/guzzlehttp/psr7/src/DroppingStream.php | 42 -
vendor/guzzlehttp/psr7/src/FnStream.php | 158 -
vendor/guzzlehttp/psr7/src/InflateStream.php | 52 -
vendor/guzzlehttp/psr7/src/LazyOpenStream.php | 39 -
vendor/guzzlehttp/psr7/src/LimitStream.php | 155 -
vendor/guzzlehttp/psr7/src/MessageTrait.php | 213 -
.../guzzlehttp/psr7/src/MultipartStream.php | 153 -
vendor/guzzlehttp/psr7/src/NoSeekStream.php | 22 -
vendor/guzzlehttp/psr7/src/PumpStream.php | 165 -
vendor/guzzlehttp/psr7/src/Request.php | 151 -
vendor/guzzlehttp/psr7/src/Response.php | 154 -
vendor/guzzlehttp/psr7/src/Rfc7230.php | 18 -
vendor/guzzlehttp/psr7/src/ServerRequest.php | 376 --
vendor/guzzlehttp/psr7/src/Stream.php | 267 -
.../psr7/src/StreamDecoratorTrait.php | 149 -
vendor/guzzlehttp/psr7/src/StreamWrapper.php | 161 -
vendor/guzzlehttp/psr7/src/UploadedFile.php | 316 -
vendor/guzzlehttp/psr7/src/Uri.php | 760 ---
vendor/guzzlehttp/psr7/src/UriNormalizer.php | 216 -
vendor/guzzlehttp/psr7/src/UriResolver.php | 219 -
vendor/guzzlehttp/psr7/src/functions.php | 899 ---
.../guzzlehttp/psr7/src/functions_include.php | 6 -
.../http-factory-guzzle/.gitignore | 5 -
.../http-factory-guzzle/.travis.yml | 32 -
.../http-interop/http-factory-guzzle/LICENSE | 21 -
.../http-factory-guzzle/README.md | 3 -
.../http-factory-guzzle/composer.json | 33 -
.../http-factory-guzzle/phpunit.xml.dist | 25 -
.../src/RequestFactory.php | 15 -
.../src/ResponseFactory.php | 15 -
.../src/ServerRequestFactory.php | 24 -
.../http-factory-guzzle/src/StreamFactory.php | 26 -
.../src/UploadedFileFactory.php | 25 -
.../http-factory-guzzle/src/UriFactory.php | 15 -
vendor/jean85/pretty-package-versions/LICENSE | 21 -
.../pretty-package-versions/codecov.yml | 1 -
.../pretty-package-versions/composer.json | 43 -
.../src/PrettyVersions.php | 25 -
.../pretty-package-versions/src/Version.php | 73 -
vendor/paragonie/random_compat/LICENSE | 22 -
vendor/paragonie/random_compat/build-phar.sh | 5 -
vendor/paragonie/random_compat/composer.json | 34 -
.../dist/random_compat.phar.pubkey | 5 -
.../dist/random_compat.phar.pubkey.asc | 11 -
vendor/paragonie/random_compat/lib/random.php | 32 -
.../random_compat/other/build_phar.php | 57 -
.../random_compat/psalm-autoload.php | 9 -
vendor/paragonie/random_compat/psalm.xml | 19 -
vendor/php-http/client-common/.php_cs.dist | 24 -
vendor/php-http/client-common/CHANGELOG.md | 247 -
vendor/php-http/client-common/LICENSE | 19 -
vendor/php-http/client-common/README.md | 55 -
vendor/php-http/client-common/composer.json | 67 -
.../client-common/src/BatchClient.php | 42 -
.../src/BatchClientInterface.php | 34 -
.../client-common/src/BatchResult.php | 157 -
.../php-http/client-common/src/Deferred.php | 152 -
.../src/EmulatedHttpAsyncClient.php | 25 -
.../client-common/src/EmulatedHttpClient.php | 24 -
.../src/Exception/BatchException.php | 37 -
.../CircularRedirectionException.php | 16 -
.../src/Exception/ClientErrorException.php | 16 -
.../Exception/HttpClientNoMatchException.php | 33 -
.../Exception/HttpClientNotFoundException.php | 16 -
.../src/Exception/LoopException.php | 16 -
.../MultipleRedirectionException.php | 16 -
.../src/Exception/ServerErrorException.php | 16 -
.../client-common/src/FlexibleHttpClient.php | 36 -
.../src/HttpAsyncClientDecorator.php | 31 -
.../src/HttpAsyncClientEmulator.php | 39 -
.../client-common/src/HttpClientDecorator.php | 32 -
.../client-common/src/HttpClientEmulator.php | 35 -
.../client-common/src/HttpClientPool.php | 24 -
.../src/HttpClientPool/HttpClientPool.php | 70 -
.../src/HttpClientPool/HttpClientPoolItem.php | 181 -
.../HttpClientPool/LeastUsedClientPool.php | 45 -
.../src/HttpClientPool/RandomClientPool.php | 31 -
.../HttpClientPool/RoundRobinClientPool.php | 42 -
.../client-common/src/HttpClientRouter.php | 74 -
.../src/HttpClientRouterInterface.php | 27 -
.../client-common/src/HttpMethodsClient.php | 150 -
.../src/HttpMethodsClientInterface.php | 116 -
vendor/php-http/client-common/src/Plugin.php | 33 -
.../src/Plugin/AddHostPlugin.php | 76 -
.../src/Plugin/AddPathPlugin.php | 78 -
.../src/Plugin/AuthenticationPlugin.php | 38 -
.../src/Plugin/BaseUriPlugin.php | 57 -
.../src/Plugin/ContentLengthPlugin.php | 39 -
.../src/Plugin/ContentTypePlugin.php | 122 -
.../client-common/src/Plugin/CookiePlugin.php | 180 -
.../src/Plugin/DecoderPlugin.php | 135 -
.../client-common/src/Plugin/ErrorPlugin.php | 92 -
.../src/Plugin/HeaderAppendPlugin.php | 48 -
.../src/Plugin/HeaderDefaultsPlugin.php | 46 -
.../src/Plugin/HeaderRemovePlugin.php | 44 -
.../src/Plugin/HeaderSetPlugin.php | 44 -
.../src/Plugin/HistoryPlugin.php | 49 -
.../client-common/src/Plugin/Journal.php | 33 -
.../src/Plugin/QueryDefaultsPlugin.php | 50 -
.../src/Plugin/RedirectPlugin.php | 258 -
.../src/Plugin/RequestMatcherPlugin.php | 56 -
.../src/Plugin/RequestSeekableBodyPlugin.php | 29 -
.../src/Plugin/ResponseSeekableBodyPlugin.php | 32 -
.../client-common/src/Plugin/RetryPlugin.php | 177 -
.../src/Plugin/SeekableBodyPlugin.php | 47 -
.../src/Plugin/VersionBridgePlugin.php | 24 -
.../client-common/src/PluginChain.php | 65 -
.../client-common/src/PluginClient.php | 133 -
.../client-common/src/PluginClientBuilder.php | 76 -
.../client-common/src/PluginClientFactory.php | 68 -
.../client-common/src/VersionBridgeClient.php | 24 -
vendor/php-http/discovery/CHANGELOG.md | 291 -
vendor/php-http/discovery/LICENSE | 19 -
vendor/php-http/discovery/README.md | 46 -
vendor/php-http/discovery/composer.json | 51 -
.../php-http/discovery/src/ClassDiscovery.php | 246 -
vendor/php-http/discovery/src/Exception.php | 12 -
.../ClassInstantiationFailedException.php | 14 -
.../Exception/DiscoveryFailedException.php | 51 -
.../Exception/NoCandidateFoundException.php | 48 -
.../src/Exception/NotFoundException.php | 16 -
.../Exception/PuliUnavailableException.php | 12 -
.../StrategyUnavailableException.php | 15 -
.../src/HttpAsyncClientDiscovery.php | 32 -
.../discovery/src/HttpClientDiscovery.php | 32 -
.../discovery/src/MessageFactoryDiscovery.php | 34 -
.../discovery/src/NotFoundException.php | 14 -
.../discovery/src/Psr17FactoryDiscovery.php | 124 -
.../discovery/src/Psr18ClientDiscovery.php | 32 -
.../src/Strategy/CommonClassesStrategy.php | 178 -
.../Strategy/CommonPsr17ClassesStrategy.php | 93 -
.../src/Strategy/DiscoveryStrategy.php | 23 -
.../src/Strategy/MockClientStrategy.php | 27 -
.../src/Strategy/PuliBetaStrategy.php | 92 -
.../discovery/src/StreamFactoryDiscovery.php | 34 -
.../discovery/src/UriFactoryDiscovery.php | 34 -
vendor/php-http/guzzle6-adapter/CHANGELOG.md | 119 -
vendor/php-http/guzzle6-adapter/LICENSE | 20 -
vendor/php-http/guzzle6-adapter/README.md | 59 -
vendor/php-http/guzzle6-adapter/composer.json | 52 -
vendor/php-http/guzzle6-adapter/puli.json | 16 -
.../php-http/guzzle6-adapter/src/Client.php | 76 -
.../Exception/UnexpectedValueException.php | 9 -
.../php-http/guzzle6-adapter/src/Promise.php | 141 -
vendor/php-http/httplug/CHANGELOG.md | 129 -
vendor/php-http/httplug/LICENSE | 20 -
vendor/php-http/httplug/README.md | 63 -
vendor/php-http/httplug/composer.json | 45 -
vendor/php-http/httplug/puli.json | 12 -
vendor/php-http/httplug/src/Exception.php | 14 -
.../httplug/src/Exception/HttpException.php | 65 -
.../src/Exception/NetworkException.php | 28 -
.../src/Exception/RequestAwareTrait.php | 26 -
.../src/Exception/RequestException.php | 29 -
.../src/Exception/TransferException.php | 14 -
.../php-http/httplug/src/HttpAsyncClient.php | 25 -
vendor/php-http/httplug/src/HttpClient.php | 15 -
.../src/Promise/HttpFulfilledPromise.php | 54 -
.../src/Promise/HttpRejectedPromise.php | 53 -
vendor/php-http/message-factory/CHANGELOG.md | 65 -
vendor/php-http/message-factory/LICENSE | 19 -
vendor/php-http/message-factory/README.md | 36 -
vendor/php-http/message-factory/composer.json | 27 -
vendor/php-http/message-factory/puli.json | 43 -
.../message-factory/src/MessageFactory.php | 12 -
.../message-factory/src/RequestFactory.php | 34 -
.../message-factory/src/ResponseFactory.php | 35 -
.../message-factory/src/StreamFactory.php | 25 -
.../message-factory/src/UriFactory.php | 24 -
vendor/php-http/message/CHANGELOG.md | 206 -
vendor/php-http/message/LICENSE | 19 -
vendor/php-http/message/README.md | 61 -
vendor/php-http/message/apigen.neon | 6 -
vendor/php-http/message/composer.json | 63 -
vendor/php-http/message/puli.json | 111 -
.../php-http/message/src/Authentication.php | 25 -
.../src/Authentication/AutoBasicAuth.php | 48 -
.../message/src/Authentication/BasicAuth.php | 44 -
.../message/src/Authentication/Bearer.php | 37 -
.../message/src/Authentication/Chain.php | 47 -
.../message/src/Authentication/Matching.php | 74 -
.../message/src/Authentication/QueryParam.php | 50 -
.../src/Authentication/RequestConditional.php | 47 -
.../message/src/Authentication/Wsse.php | 58 -
.../message/src/Builder/ResponseBuilder.php | 148 -
vendor/php-http/message/src/Cookie.php | 526 --
vendor/php-http/message/src/CookieJar.php | 220 -
vendor/php-http/message/src/CookieUtil.php | 53 -
.../src/Decorator/MessageDecorator.php | 133 -
.../src/Decorator/RequestDecorator.php | 88 -
.../src/Decorator/ResponseDecorator.php | 57 -
.../message/src/Decorator/StreamDecorator.php | 138 -
.../message/src/Encoding/ChunkStream.php | 39 -
.../message/src/Encoding/CompressStream.php | 46 -
.../message/src/Encoding/DechunkStream.php | 29 -
.../message/src/Encoding/DecompressStream.php | 46 -
.../message/src/Encoding/DeflateStream.php | 42 -
.../message/src/Encoding/Filter/Chunk.php | 30 -
.../message/src/Encoding/FilteredStream.php | 236 -
.../message/src/Encoding/GzipDecodeStream.php | 46 -
.../message/src/Encoding/GzipEncodeStream.php | 46 -
.../message/src/Encoding/InflateStream.php | 46 -
vendor/php-http/message/src/Exception.php | 10 -
.../Exception/UnexpectedValueException.php | 9 -
vendor/php-http/message/src/Formatter.php | 32 -
.../src/Formatter/CurlCommandFormatter.php | 94 -
.../Formatter/FullHttpMessageFormatter.php | 96 -
.../message/src/Formatter/SimpleFormatter.php | 42 -
.../DiactorosMessageFactory.php | 61 -
.../MessageFactory/GuzzleMessageFactory.php | 53 -
.../src/MessageFactory/SlimMessageFactory.php | 72 -
.../php-http/message/src/RequestMatcher.php | 26 -
.../RequestMatcher/CallbackRequestMatcher.php | 35 -
.../RequestMatcher/RegexRequestMatcher.php | 41 -
.../src/RequestMatcher/RequestMatcher.php | 78 -
.../message/src/Stream/BufferedStream.php | 270 -
.../StreamFactory/DiactorosStreamFactory.php | 36 -
.../src/StreamFactory/GuzzleStreamFactory.php | 21 -
.../src/StreamFactory/SlimStreamFactory.php | 37 -
.../src/UriFactory/DiactorosUriFactory.php | 29 -
.../src/UriFactory/GuzzleUriFactory.php | 22 -
.../message/src/UriFactory/SlimUriFactory.php | 31 -
vendor/php-http/message/src/filters.php | 6 -
vendor/php-http/promise/CHANGELOG.md | 48 -
vendor/php-http/promise/LICENSE | 19 -
vendor/php-http/promise/README.md | 48 -
vendor/php-http/promise/composer.json | 38 -
.../php-http/promise/src/FulfilledPromise.php | 58 -
vendor/php-http/promise/src/Promise.php | 69 -
.../php-http/promise/src/RejectedPromise.php | 58 -
vendor/psr/http-client/CHANGELOG.md | 23 -
vendor/psr/http-client/LICENSE | 19 -
vendor/psr/http-client/README.md | 12 -
vendor/psr/http-client/composer.json | 27 -
.../src/ClientExceptionInterface.php | 10 -
.../psr/http-client/src/ClientInterface.php | 20 -
.../src/NetworkExceptionInterface.php | 24 -
.../src/RequestExceptionInterface.php | 24 -
vendor/psr/http-factory/.gitignore | 2 -
vendor/psr/http-factory/.pullapprove.yml | 7 -
vendor/psr/http-factory/LICENSE | 21 -
vendor/psr/http-factory/README.md | 10 -
vendor/psr/http-factory/composer.json | 35 -
.../src/RequestFactoryInterface.php | 18 -
.../src/ResponseFactoryInterface.php | 18 -
.../src/ServerRequestFactoryInterface.php | 24 -
.../src/StreamFactoryInterface.php | 45 -
.../src/UploadedFileFactoryInterface.php | 34 -
.../http-factory/src/UriFactoryInterface.php | 17 -
vendor/psr/http-message/CHANGELOG.md | 36 -
vendor/psr/http-message/LICENSE | 19 -
vendor/psr/http-message/README.md | 13 -
vendor/psr/http-message/composer.json | 26 -
.../psr/http-message/src/MessageInterface.php | 187 -
.../psr/http-message/src/RequestInterface.php | 129 -
.../http-message/src/ResponseInterface.php | 68 -
.../src/ServerRequestInterface.php | 261 -
.../psr/http-message/src/StreamInterface.php | 158 -
.../src/UploadedFileInterface.php | 123 -
vendor/psr/http-message/src/UriInterface.php | 323 -
vendor/psr/log/LICENSE | 19 -
vendor/psr/log/Psr/Log/AbstractLogger.php | 128 -
.../log/Psr/Log/InvalidArgumentException.php | 7 -
vendor/psr/log/Psr/Log/LogLevel.php | 18 -
.../psr/log/Psr/Log/LoggerAwareInterface.php | 18 -
vendor/psr/log/Psr/Log/LoggerAwareTrait.php | 26 -
vendor/psr/log/Psr/Log/LoggerInterface.php | 125 -
vendor/psr/log/Psr/Log/LoggerTrait.php | 142 -
vendor/psr/log/Psr/Log/NullLogger.php | 30 -
vendor/psr/log/Psr/Log/Test/DummyTest.php | 18 -
.../log/Psr/Log/Test/LoggerInterfaceTest.php | 138 -
vendor/psr/log/Psr/Log/Test/TestLogger.php | 147 -
vendor/psr/log/README.md | 58 -
vendor/psr/log/composer.json | 26 -
vendor/ralouphie/getallheaders/LICENSE | 21 -
vendor/ralouphie/getallheaders/README.md | 27 -
vendor/ralouphie/getallheaders/composer.json | 26 -
.../getallheaders/src/getallheaders.php | 46 -
vendor/sentry/sentry/.php_cs.dist | 40 -
vendor/sentry/sentry/AUTHORS | 4 -
vendor/sentry/sentry/CHANGELOG.md | 402 --
vendor/sentry/sentry/LICENSE | 12 -
vendor/sentry/sentry/README.md | 122 -
vendor/sentry/sentry/UPGRADE-2.0.md | 700 --
vendor/sentry/sentry/codecov.yml | 5 -
vendor/sentry/sentry/composer.json | 94 -
vendor/sentry/sentry/psalm.xml.dist | 68 -
vendor/sentry/sentry/src/Breadcrumb.php | 398 --
vendor/sentry/sentry/src/Client.php | 214 -
vendor/sentry/sentry/src/ClientBuilder.php | 345 -
.../sentry/src/ClientBuilderInterface.php | 153 -
vendor/sentry/sentry/src/ClientInterface.php | 66 -
vendor/sentry/sentry/src/Context/Context.php | 190 -
.../sentry/src/Context/RuntimeContext.php | 157 -
.../sentry/src/Context/ServerOsContext.php | 196 -
.../sentry/sentry/src/Context/TagsContext.php | 87 -
.../sentry/sentry/src/Context/UserContext.php | 86 -
vendor/sentry/sentry/src/Dsn.php | 228 -
vendor/sentry/sentry/src/ErrorHandler.php | 499 --
vendor/sentry/sentry/src/Event.php | 704 --
vendor/sentry/sentry/src/EventFactory.php | 162 -
.../sentry/src/EventFactoryInterface.php | 25 -
vendor/sentry/sentry/src/EventId.php | 45 -
.../src/Exception/EventCreationException.php | 22 -
.../src/Exception/ExceptionInterface.php | 14 -
.../src/Exception/FatalErrorException.php | 14 -
.../Exception/InvalidArgumentException.php | 15 -
.../sentry/src/Exception/JsonException.php | 9 -
.../MissingProjectIdCredentialException.php | 23 -
.../MissingPublicKeyCredentialException.php | 23 -
.../src/Exception/SilencedErrorException.php | 13 -
.../sentry/src/FlushableClientInterface.php | 24 -
vendor/sentry/sentry/src/Frame.php | 285 -
.../Authentication/SentryAuthentication.php | 79 -
.../src/HttpClient/HttpClientFactory.php | 163 -
.../HttpClient/HttpClientFactoryInterface.php | 22 -
.../HttpClient/PluggableHttpClientFactory.php | 54 -
.../HttpClient/Plugin/GzipEncoderPlugin.php | 72 -
.../Integration/ErrorListenerIntegration.php | 84 -
.../ExceptionListenerIntegration.php | 36 -
.../FatalErrorListenerIntegration.php | 64 -
.../FrameContextifierIntegration.php | 152 -
.../sentry/sentry/src/Integration/Handler.php | 53 -
.../Integration/IgnoreErrorsIntegration.php | 102 -
.../src/Integration/IntegrationInterface.php | 17 -
.../src/Integration/ModulesIntegration.php | 73 -
.../sentry/src/Integration/RequestFetcher.php | 27 -
.../Integration/RequestFetcherInterface.php | 19 -
.../src/Integration/RequestIntegration.php | 246 -
.../Integration/TransactionIntegration.php | 47 -
vendor/sentry/sentry/src/Monolog/Handler.php | 102 -
vendor/sentry/sentry/src/Options.php | 1075 ---
vendor/sentry/sentry/src/SentrySdk.php | 64 -
.../src/Serializer/AbstractSerializer.php | 368 --
.../Serializer/RepresentationSerializer.php | 65 -
.../RepresentationSerializerInterface.php | 24 -
.../src/Serializer/SerializableInterface.php | 19 -
.../sentry/src/Serializer/Serializer.php | 19 -
.../src/Serializer/SerializerInterface.php | 20 -
vendor/sentry/sentry/src/Severity.php | 173 -
.../sentry/sentry/src/Spool/MemorySpool.php | 45 -
.../sentry/src/Spool/SpoolInterface.php | 33 -
vendor/sentry/sentry/src/Stacktrace.php | 509 --
vendor/sentry/sentry/src/State/Hub.php | 245 -
vendor/sentry/sentry/src/State/HubAdapter.php | 183 -
.../sentry/sentry/src/State/HubInterface.php | 138 -
vendor/sentry/sentry/src/State/Layer.php | 82 -
vendor/sentry/sentry/src/State/Scope.php | 339 -
.../Transport/ClosableTransportInterface.php | 23 -
.../src/Transport/DefaultTransportFactory.php | 65 -
.../sentry/src/Transport/HttpTransport.php | 198 -
.../sentry/src/Transport/NullTransport.php | 25 -
.../sentry/src/Transport/SpoolTransport.php | 51 -
.../Transport/TransportFactoryInterface.php | 21 -
.../src/Transport/TransportInterface.php | 25 -
vendor/sentry/sentry/src/Util/JSON.php | 142 -
vendor/sentry/sentry/src/Util/PHPVersion.php | 37 -
vendor/sentry/sentry/src/functions.php | 90 -
.../symfony/deprecation-contracts/.gitignore | 3 -
.../deprecation-contracts/CHANGELOG.md | 5 -
vendor/symfony/deprecation-contracts/LICENSE | 19 -
.../symfony/deprecation-contracts/README.md | 26 -
.../deprecation-contracts/composer.json | 35 -
.../deprecation-contracts/function.php | 27 -
vendor/symfony/options-resolver/CHANGELOG.md | 76 -
.../Debug/OptionsResolverIntrospector.php | 120 -
.../Exception/AccessException.php | 22 -
.../Exception/ExceptionInterface.php | 21 -
.../Exception/InvalidArgumentException.php | 21 -
.../Exception/InvalidOptionsException.php | 23 -
.../Exception/MissingOptionsException.php | 23 -
.../Exception/NoConfigurationException.php | 26 -
.../Exception/NoSuchOptionException.php | 26 -
.../Exception/OptionDefinitionException.php | 21 -
.../Exception/UndefinedOptionsException.php | 24 -
vendor/symfony/options-resolver/LICENSE | 19 -
.../options-resolver/OptionConfigurator.php | 143 -
vendor/symfony/options-resolver/Options.php | 22 -
.../options-resolver/OptionsResolver.php | 1293 ----
vendor/symfony/options-resolver/README.md | 15 -
vendor/symfony/options-resolver/composer.json | 35 -
vendor/symfony/polyfill-intl-idn/Idn.php | 915 ---
vendor/symfony/polyfill-intl-idn/Info.php | 23 -
vendor/symfony/polyfill-intl-idn/LICENSE | 19 -
vendor/symfony/polyfill-intl-idn/README.md | 12 -
.../Resources/unidata/DisallowedRanges.php | 375 --
.../Resources/unidata/Regex.php | 24 -
.../Resources/unidata/deviation.php | 8 -
.../Resources/unidata/disallowed.php | 2638 --------
.../unidata/disallowed_STD3_mapped.php | 308 -
.../unidata/disallowed_STD3_valid.php | 71 -
.../Resources/unidata/ignored.php | 273 -
.../Resources/unidata/mapped.php | 5778 -----------------
.../Resources/unidata/virama.php | 65 -
.../symfony/polyfill-intl-idn/bootstrap.php | 141 -
.../symfony/polyfill-intl-idn/composer.json | 45 -
.../symfony/polyfill-intl-normalizer/LICENSE | 19 -
.../polyfill-intl-normalizer/Normalizer.php | 308 -
.../polyfill-intl-normalizer/README.md | 14 -
.../Resources/stubs/Normalizer.php | 17 -
.../unidata/canonicalComposition.php | 945 ---
.../unidata/canonicalDecomposition.php | 2065 ------
.../Resources/unidata/combiningClass.php | 876 ---
.../unidata/compatibilityDecomposition.php | 3695 -----------
.../polyfill-intl-normalizer/bootstrap.php | 19 -
.../polyfill-intl-normalizer/composer.json | 39 -
vendor/symfony/polyfill-php70/LICENSE | 19 -
vendor/symfony/polyfill-php70/Php70.php | 74 -
vendor/symfony/polyfill-php70/README.md | 28 -
.../Resources/stubs/ArithmeticError.php | 5 -
.../Resources/stubs/AssertionError.php | 5 -
.../Resources/stubs/DivisionByZeroError.php | 5 -
.../polyfill-php70/Resources/stubs/Error.php | 5 -
.../Resources/stubs/ParseError.php | 5 -
...SessionUpdateTimestampHandlerInterface.php | 23 -
.../Resources/stubs/TypeError.php | 5 -
vendor/symfony/polyfill-php70/bootstrap.php | 30 -
vendor/symfony/polyfill-php70/composer.json | 37 -
vendor/symfony/polyfill-php72/LICENSE | 19 -
vendor/symfony/polyfill-php72/Php72.php | 217 -
vendor/symfony/polyfill-php72/README.md | 28 -
vendor/symfony/polyfill-php72/bootstrap.php | 57 -
vendor/symfony/polyfill-php72/composer.json | 35 -
vendor/symfony/polyfill-php80/LICENSE | 19 -
vendor/symfony/polyfill-php80/Php80.php | 105 -
vendor/symfony/polyfill-php80/README.md | 24 -
.../Resources/stubs/Stringable.php | 9 -
.../Resources/stubs/UnhandledMatchError.php | 5 -
.../Resources/stubs/ValueError.php | 5 -
vendor/symfony/polyfill-php80/bootstrap.php | 42 -
vendor/symfony/polyfill-php80/composer.json | 40 -
vendor/symfony/polyfill-uuid/LICENSE | 19 -
vendor/symfony/polyfill-uuid/README.md | 12 -
vendor/symfony/polyfill-uuid/Uuid.php | 493 --
vendor/symfony/polyfill-uuid/bootstrap.php | 93 -
vendor/symfony/polyfill-uuid/composer.json | 39 -
548 files changed, 4 insertions(+), 74474 deletions(-)
delete mode 100644 composer.json
delete mode 100644 composer.lock
delete mode 100644 vendor/autoload.php
delete mode 100644 vendor/clue/stream-filter/.gitignore
delete mode 100644 vendor/clue/stream-filter/.travis.yml
delete mode 100644 vendor/clue/stream-filter/CHANGELOG.md
delete mode 100644 vendor/clue/stream-filter/LICENSE
delete mode 100644 vendor/clue/stream-filter/README.md
delete mode 100644 vendor/clue/stream-filter/composer.json
delete mode 100644 vendor/clue/stream-filter/examples/base64_decode.php
delete mode 100644 vendor/clue/stream-filter/examples/base64_encode.php
delete mode 100644 vendor/clue/stream-filter/examples/uppercase.php
delete mode 100644 vendor/clue/stream-filter/phpunit.xml.dist
delete mode 100644 vendor/clue/stream-filter/src/CallbackFilter.php
delete mode 100644 vendor/clue/stream-filter/src/functions.php
delete mode 100644 vendor/clue/stream-filter/src/functions_include.php
delete mode 100644 vendor/clue/stream-filter/tests/FilterTest.php
delete mode 100644 vendor/clue/stream-filter/tests/FunTest.php
delete mode 100644 vendor/clue/stream-filter/tests/FunZlibTest.php
delete mode 100644 vendor/composer/ClassLoader.php
delete mode 100644 vendor/composer/LICENSE
delete mode 100644 vendor/composer/autoload_classmap.php
delete mode 100644 vendor/composer/autoload_files.php
delete mode 100644 vendor/composer/autoload_namespaces.php
delete mode 100644 vendor/composer/autoload_psr4.php
delete mode 100644 vendor/composer/autoload_real.php
delete mode 100644 vendor/composer/autoload_static.php
delete mode 100644 vendor/composer/installed.json
delete mode 100644 vendor/composer/package-versions-deprecated/CHANGELOG.md
delete mode 100644 vendor/composer/package-versions-deprecated/CONTRIBUTING.md
delete mode 100644 vendor/composer/package-versions-deprecated/LICENSE
delete mode 100644 vendor/composer/package-versions-deprecated/README.md
delete mode 100644 vendor/composer/package-versions-deprecated/SECURITY.md
delete mode 100644 vendor/composer/package-versions-deprecated/composer.json
delete mode 100644 vendor/composer/package-versions-deprecated/composer.lock
delete mode 100644 vendor/composer/package-versions-deprecated/phpcs.xml.dist
delete mode 100644 vendor/composer/package-versions-deprecated/src/PackageVersions/FallbackVersions.php
delete mode 100644 vendor/composer/package-versions-deprecated/src/PackageVersions/Installer.php
delete mode 100644 vendor/composer/package-versions-deprecated/src/PackageVersions/Versions.php
delete mode 100644 vendor/guzzlehttp/guzzle/.php_cs
delete mode 100644 vendor/guzzlehttp/guzzle/CHANGELOG.md
delete mode 100644 vendor/guzzlehttp/guzzle/Dockerfile
delete mode 100644 vendor/guzzlehttp/guzzle/LICENSE
delete mode 100644 vendor/guzzlehttp/guzzle/README.md
delete mode 100644 vendor/guzzlehttp/guzzle/UPGRADING.md
delete mode 100644 vendor/guzzlehttp/guzzle/composer.json
delete mode 100644 vendor/guzzlehttp/guzzle/src/Client.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/ClientInterface.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/Cookie/CookieJar.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/Cookie/SetCookie.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/Exception/BadResponseException.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/Exception/ClientException.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/Exception/ConnectException.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/Exception/GuzzleException.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/Exception/InvalidArgumentException.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/Exception/RequestException.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/Exception/SeekException.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/Exception/ServerException.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/Exception/TooManyRedirectsException.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/Exception/TransferException.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/Handler/CurlFactoryInterface.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/Handler/EasyHandle.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/Handler/MockHandler.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/Handler/Proxy.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/Handler/StreamHandler.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/HandlerStack.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/MessageFormatter.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/Middleware.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/Pool.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/RequestOptions.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/RetryMiddleware.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/TransferStats.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/UriTemplate.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/Utils.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/functions.php
delete mode 100644 vendor/guzzlehttp/guzzle/src/functions_include.php
delete mode 100644 vendor/guzzlehttp/promises/CHANGELOG.md
delete mode 100644 vendor/guzzlehttp/promises/LICENSE
delete mode 100644 vendor/guzzlehttp/promises/Makefile
delete mode 100644 vendor/guzzlehttp/promises/README.md
delete mode 100644 vendor/guzzlehttp/promises/composer.json
delete mode 100644 vendor/guzzlehttp/promises/src/AggregateException.php
delete mode 100644 vendor/guzzlehttp/promises/src/CancellationException.php
delete mode 100644 vendor/guzzlehttp/promises/src/Coroutine.php
delete mode 100644 vendor/guzzlehttp/promises/src/EachPromise.php
delete mode 100644 vendor/guzzlehttp/promises/src/FulfilledPromise.php
delete mode 100644 vendor/guzzlehttp/promises/src/Promise.php
delete mode 100644 vendor/guzzlehttp/promises/src/PromiseInterface.php
delete mode 100644 vendor/guzzlehttp/promises/src/PromisorInterface.php
delete mode 100644 vendor/guzzlehttp/promises/src/RejectedPromise.php
delete mode 100644 vendor/guzzlehttp/promises/src/RejectionException.php
delete mode 100644 vendor/guzzlehttp/promises/src/TaskQueue.php
delete mode 100644 vendor/guzzlehttp/promises/src/TaskQueueInterface.php
delete mode 100644 vendor/guzzlehttp/promises/src/functions.php
delete mode 100644 vendor/guzzlehttp/promises/src/functions_include.php
delete mode 100644 vendor/guzzlehttp/psr7/CHANGELOG.md
delete mode 100644 vendor/guzzlehttp/psr7/LICENSE
delete mode 100644 vendor/guzzlehttp/psr7/README.md
delete mode 100644 vendor/guzzlehttp/psr7/composer.json
delete mode 100644 vendor/guzzlehttp/psr7/src/AppendStream.php
delete mode 100644 vendor/guzzlehttp/psr7/src/BufferStream.php
delete mode 100644 vendor/guzzlehttp/psr7/src/CachingStream.php
delete mode 100644 vendor/guzzlehttp/psr7/src/DroppingStream.php
delete mode 100644 vendor/guzzlehttp/psr7/src/FnStream.php
delete mode 100644 vendor/guzzlehttp/psr7/src/InflateStream.php
delete mode 100644 vendor/guzzlehttp/psr7/src/LazyOpenStream.php
delete mode 100644 vendor/guzzlehttp/psr7/src/LimitStream.php
delete mode 100644 vendor/guzzlehttp/psr7/src/MessageTrait.php
delete mode 100644 vendor/guzzlehttp/psr7/src/MultipartStream.php
delete mode 100644 vendor/guzzlehttp/psr7/src/NoSeekStream.php
delete mode 100644 vendor/guzzlehttp/psr7/src/PumpStream.php
delete mode 100644 vendor/guzzlehttp/psr7/src/Request.php
delete mode 100644 vendor/guzzlehttp/psr7/src/Response.php
delete mode 100644 vendor/guzzlehttp/psr7/src/Rfc7230.php
delete mode 100644 vendor/guzzlehttp/psr7/src/ServerRequest.php
delete mode 100644 vendor/guzzlehttp/psr7/src/Stream.php
delete mode 100644 vendor/guzzlehttp/psr7/src/StreamDecoratorTrait.php
delete mode 100644 vendor/guzzlehttp/psr7/src/StreamWrapper.php
delete mode 100644 vendor/guzzlehttp/psr7/src/UploadedFile.php
delete mode 100644 vendor/guzzlehttp/psr7/src/Uri.php
delete mode 100644 vendor/guzzlehttp/psr7/src/UriNormalizer.php
delete mode 100644 vendor/guzzlehttp/psr7/src/UriResolver.php
delete mode 100644 vendor/guzzlehttp/psr7/src/functions.php
delete mode 100644 vendor/guzzlehttp/psr7/src/functions_include.php
delete mode 100644 vendor/http-interop/http-factory-guzzle/.gitignore
delete mode 100644 vendor/http-interop/http-factory-guzzle/.travis.yml
delete mode 100644 vendor/http-interop/http-factory-guzzle/LICENSE
delete mode 100644 vendor/http-interop/http-factory-guzzle/README.md
delete mode 100644 vendor/http-interop/http-factory-guzzle/composer.json
delete mode 100644 vendor/http-interop/http-factory-guzzle/phpunit.xml.dist
delete mode 100644 vendor/http-interop/http-factory-guzzle/src/RequestFactory.php
delete mode 100644 vendor/http-interop/http-factory-guzzle/src/ResponseFactory.php
delete mode 100644 vendor/http-interop/http-factory-guzzle/src/ServerRequestFactory.php
delete mode 100644 vendor/http-interop/http-factory-guzzle/src/StreamFactory.php
delete mode 100644 vendor/http-interop/http-factory-guzzle/src/UploadedFileFactory.php
delete mode 100644 vendor/http-interop/http-factory-guzzle/src/UriFactory.php
delete mode 100644 vendor/jean85/pretty-package-versions/LICENSE
delete mode 100644 vendor/jean85/pretty-package-versions/codecov.yml
delete mode 100644 vendor/jean85/pretty-package-versions/composer.json
delete mode 100644 vendor/jean85/pretty-package-versions/src/PrettyVersions.php
delete mode 100644 vendor/jean85/pretty-package-versions/src/Version.php
delete mode 100644 vendor/paragonie/random_compat/LICENSE
delete mode 100755 vendor/paragonie/random_compat/build-phar.sh
delete mode 100644 vendor/paragonie/random_compat/composer.json
delete mode 100644 vendor/paragonie/random_compat/dist/random_compat.phar.pubkey
delete mode 100644 vendor/paragonie/random_compat/dist/random_compat.phar.pubkey.asc
delete mode 100644 vendor/paragonie/random_compat/lib/random.php
delete mode 100644 vendor/paragonie/random_compat/other/build_phar.php
delete mode 100644 vendor/paragonie/random_compat/psalm-autoload.php
delete mode 100644 vendor/paragonie/random_compat/psalm.xml
delete mode 100644 vendor/php-http/client-common/.php_cs.dist
delete mode 100644 vendor/php-http/client-common/CHANGELOG.md
delete mode 100644 vendor/php-http/client-common/LICENSE
delete mode 100644 vendor/php-http/client-common/README.md
delete mode 100644 vendor/php-http/client-common/composer.json
delete mode 100644 vendor/php-http/client-common/src/BatchClient.php
delete mode 100644 vendor/php-http/client-common/src/BatchClientInterface.php
delete mode 100644 vendor/php-http/client-common/src/BatchResult.php
delete mode 100644 vendor/php-http/client-common/src/Deferred.php
delete mode 100644 vendor/php-http/client-common/src/EmulatedHttpAsyncClient.php
delete mode 100644 vendor/php-http/client-common/src/EmulatedHttpClient.php
delete mode 100644 vendor/php-http/client-common/src/Exception/BatchException.php
delete mode 100644 vendor/php-http/client-common/src/Exception/CircularRedirectionException.php
delete mode 100644 vendor/php-http/client-common/src/Exception/ClientErrorException.php
delete mode 100644 vendor/php-http/client-common/src/Exception/HttpClientNoMatchException.php
delete mode 100644 vendor/php-http/client-common/src/Exception/HttpClientNotFoundException.php
delete mode 100644 vendor/php-http/client-common/src/Exception/LoopException.php
delete mode 100644 vendor/php-http/client-common/src/Exception/MultipleRedirectionException.php
delete mode 100644 vendor/php-http/client-common/src/Exception/ServerErrorException.php
delete mode 100644 vendor/php-http/client-common/src/FlexibleHttpClient.php
delete mode 100644 vendor/php-http/client-common/src/HttpAsyncClientDecorator.php
delete mode 100644 vendor/php-http/client-common/src/HttpAsyncClientEmulator.php
delete mode 100644 vendor/php-http/client-common/src/HttpClientDecorator.php
delete mode 100644 vendor/php-http/client-common/src/HttpClientEmulator.php
delete mode 100644 vendor/php-http/client-common/src/HttpClientPool.php
delete mode 100644 vendor/php-http/client-common/src/HttpClientPool/HttpClientPool.php
delete mode 100644 vendor/php-http/client-common/src/HttpClientPool/HttpClientPoolItem.php
delete mode 100644 vendor/php-http/client-common/src/HttpClientPool/LeastUsedClientPool.php
delete mode 100644 vendor/php-http/client-common/src/HttpClientPool/RandomClientPool.php
delete mode 100644 vendor/php-http/client-common/src/HttpClientPool/RoundRobinClientPool.php
delete mode 100644 vendor/php-http/client-common/src/HttpClientRouter.php
delete mode 100644 vendor/php-http/client-common/src/HttpClientRouterInterface.php
delete mode 100644 vendor/php-http/client-common/src/HttpMethodsClient.php
delete mode 100644 vendor/php-http/client-common/src/HttpMethodsClientInterface.php
delete mode 100644 vendor/php-http/client-common/src/Plugin.php
delete mode 100644 vendor/php-http/client-common/src/Plugin/AddHostPlugin.php
delete mode 100644 vendor/php-http/client-common/src/Plugin/AddPathPlugin.php
delete mode 100644 vendor/php-http/client-common/src/Plugin/AuthenticationPlugin.php
delete mode 100644 vendor/php-http/client-common/src/Plugin/BaseUriPlugin.php
delete mode 100644 vendor/php-http/client-common/src/Plugin/ContentLengthPlugin.php
delete mode 100644 vendor/php-http/client-common/src/Plugin/ContentTypePlugin.php
delete mode 100644 vendor/php-http/client-common/src/Plugin/CookiePlugin.php
delete mode 100644 vendor/php-http/client-common/src/Plugin/DecoderPlugin.php
delete mode 100644 vendor/php-http/client-common/src/Plugin/ErrorPlugin.php
delete mode 100644 vendor/php-http/client-common/src/Plugin/HeaderAppendPlugin.php
delete mode 100644 vendor/php-http/client-common/src/Plugin/HeaderDefaultsPlugin.php
delete mode 100644 vendor/php-http/client-common/src/Plugin/HeaderRemovePlugin.php
delete mode 100644 vendor/php-http/client-common/src/Plugin/HeaderSetPlugin.php
delete mode 100644 vendor/php-http/client-common/src/Plugin/HistoryPlugin.php
delete mode 100644 vendor/php-http/client-common/src/Plugin/Journal.php
delete mode 100644 vendor/php-http/client-common/src/Plugin/QueryDefaultsPlugin.php
delete mode 100644 vendor/php-http/client-common/src/Plugin/RedirectPlugin.php
delete mode 100644 vendor/php-http/client-common/src/Plugin/RequestMatcherPlugin.php
delete mode 100644 vendor/php-http/client-common/src/Plugin/RequestSeekableBodyPlugin.php
delete mode 100644 vendor/php-http/client-common/src/Plugin/ResponseSeekableBodyPlugin.php
delete mode 100644 vendor/php-http/client-common/src/Plugin/RetryPlugin.php
delete mode 100644 vendor/php-http/client-common/src/Plugin/SeekableBodyPlugin.php
delete mode 100644 vendor/php-http/client-common/src/Plugin/VersionBridgePlugin.php
delete mode 100644 vendor/php-http/client-common/src/PluginChain.php
delete mode 100644 vendor/php-http/client-common/src/PluginClient.php
delete mode 100644 vendor/php-http/client-common/src/PluginClientBuilder.php
delete mode 100644 vendor/php-http/client-common/src/PluginClientFactory.php
delete mode 100644 vendor/php-http/client-common/src/VersionBridgeClient.php
delete mode 100644 vendor/php-http/discovery/CHANGELOG.md
delete mode 100644 vendor/php-http/discovery/LICENSE
delete mode 100644 vendor/php-http/discovery/README.md
delete mode 100644 vendor/php-http/discovery/composer.json
delete mode 100644 vendor/php-http/discovery/src/ClassDiscovery.php
delete mode 100644 vendor/php-http/discovery/src/Exception.php
delete mode 100644 vendor/php-http/discovery/src/Exception/ClassInstantiationFailedException.php
delete mode 100644 vendor/php-http/discovery/src/Exception/DiscoveryFailedException.php
delete mode 100644 vendor/php-http/discovery/src/Exception/NoCandidateFoundException.php
delete mode 100644 vendor/php-http/discovery/src/Exception/NotFoundException.php
delete mode 100644 vendor/php-http/discovery/src/Exception/PuliUnavailableException.php
delete mode 100644 vendor/php-http/discovery/src/Exception/StrategyUnavailableException.php
delete mode 100644 vendor/php-http/discovery/src/HttpAsyncClientDiscovery.php
delete mode 100644 vendor/php-http/discovery/src/HttpClientDiscovery.php
delete mode 100644 vendor/php-http/discovery/src/MessageFactoryDiscovery.php
delete mode 100644 vendor/php-http/discovery/src/NotFoundException.php
delete mode 100644 vendor/php-http/discovery/src/Psr17FactoryDiscovery.php
delete mode 100644 vendor/php-http/discovery/src/Psr18ClientDiscovery.php
delete mode 100644 vendor/php-http/discovery/src/Strategy/CommonClassesStrategy.php
delete mode 100644 vendor/php-http/discovery/src/Strategy/CommonPsr17ClassesStrategy.php
delete mode 100644 vendor/php-http/discovery/src/Strategy/DiscoveryStrategy.php
delete mode 100644 vendor/php-http/discovery/src/Strategy/MockClientStrategy.php
delete mode 100644 vendor/php-http/discovery/src/Strategy/PuliBetaStrategy.php
delete mode 100644 vendor/php-http/discovery/src/StreamFactoryDiscovery.php
delete mode 100644 vendor/php-http/discovery/src/UriFactoryDiscovery.php
delete mode 100644 vendor/php-http/guzzle6-adapter/CHANGELOG.md
delete mode 100644 vendor/php-http/guzzle6-adapter/LICENSE
delete mode 100644 vendor/php-http/guzzle6-adapter/README.md
delete mode 100644 vendor/php-http/guzzle6-adapter/composer.json
delete mode 100644 vendor/php-http/guzzle6-adapter/puli.json
delete mode 100644 vendor/php-http/guzzle6-adapter/src/Client.php
delete mode 100644 vendor/php-http/guzzle6-adapter/src/Exception/UnexpectedValueException.php
delete mode 100644 vendor/php-http/guzzle6-adapter/src/Promise.php
delete mode 100644 vendor/php-http/httplug/CHANGELOG.md
delete mode 100644 vendor/php-http/httplug/LICENSE
delete mode 100644 vendor/php-http/httplug/README.md
delete mode 100644 vendor/php-http/httplug/composer.json
delete mode 100644 vendor/php-http/httplug/puli.json
delete mode 100644 vendor/php-http/httplug/src/Exception.php
delete mode 100644 vendor/php-http/httplug/src/Exception/HttpException.php
delete mode 100644 vendor/php-http/httplug/src/Exception/NetworkException.php
delete mode 100644 vendor/php-http/httplug/src/Exception/RequestAwareTrait.php
delete mode 100644 vendor/php-http/httplug/src/Exception/RequestException.php
delete mode 100644 vendor/php-http/httplug/src/Exception/TransferException.php
delete mode 100644 vendor/php-http/httplug/src/HttpAsyncClient.php
delete mode 100644 vendor/php-http/httplug/src/HttpClient.php
delete mode 100644 vendor/php-http/httplug/src/Promise/HttpFulfilledPromise.php
delete mode 100644 vendor/php-http/httplug/src/Promise/HttpRejectedPromise.php
delete mode 100644 vendor/php-http/message-factory/CHANGELOG.md
delete mode 100644 vendor/php-http/message-factory/LICENSE
delete mode 100644 vendor/php-http/message-factory/README.md
delete mode 100644 vendor/php-http/message-factory/composer.json
delete mode 100644 vendor/php-http/message-factory/puli.json
delete mode 100644 vendor/php-http/message-factory/src/MessageFactory.php
delete mode 100644 vendor/php-http/message-factory/src/RequestFactory.php
delete mode 100644 vendor/php-http/message-factory/src/ResponseFactory.php
delete mode 100644 vendor/php-http/message-factory/src/StreamFactory.php
delete mode 100644 vendor/php-http/message-factory/src/UriFactory.php
delete mode 100644 vendor/php-http/message/CHANGELOG.md
delete mode 100644 vendor/php-http/message/LICENSE
delete mode 100644 vendor/php-http/message/README.md
delete mode 100644 vendor/php-http/message/apigen.neon
delete mode 100644 vendor/php-http/message/composer.json
delete mode 100644 vendor/php-http/message/puli.json
delete mode 100644 vendor/php-http/message/src/Authentication.php
delete mode 100644 vendor/php-http/message/src/Authentication/AutoBasicAuth.php
delete mode 100644 vendor/php-http/message/src/Authentication/BasicAuth.php
delete mode 100644 vendor/php-http/message/src/Authentication/Bearer.php
delete mode 100644 vendor/php-http/message/src/Authentication/Chain.php
delete mode 100644 vendor/php-http/message/src/Authentication/Matching.php
delete mode 100644 vendor/php-http/message/src/Authentication/QueryParam.php
delete mode 100644 vendor/php-http/message/src/Authentication/RequestConditional.php
delete mode 100644 vendor/php-http/message/src/Authentication/Wsse.php
delete mode 100644 vendor/php-http/message/src/Builder/ResponseBuilder.php
delete mode 100644 vendor/php-http/message/src/Cookie.php
delete mode 100644 vendor/php-http/message/src/CookieJar.php
delete mode 100644 vendor/php-http/message/src/CookieUtil.php
delete mode 100644 vendor/php-http/message/src/Decorator/MessageDecorator.php
delete mode 100644 vendor/php-http/message/src/Decorator/RequestDecorator.php
delete mode 100644 vendor/php-http/message/src/Decorator/ResponseDecorator.php
delete mode 100644 vendor/php-http/message/src/Decorator/StreamDecorator.php
delete mode 100644 vendor/php-http/message/src/Encoding/ChunkStream.php
delete mode 100644 vendor/php-http/message/src/Encoding/CompressStream.php
delete mode 100644 vendor/php-http/message/src/Encoding/DechunkStream.php
delete mode 100644 vendor/php-http/message/src/Encoding/DecompressStream.php
delete mode 100644 vendor/php-http/message/src/Encoding/DeflateStream.php
delete mode 100644 vendor/php-http/message/src/Encoding/Filter/Chunk.php
delete mode 100644 vendor/php-http/message/src/Encoding/FilteredStream.php
delete mode 100644 vendor/php-http/message/src/Encoding/GzipDecodeStream.php
delete mode 100644 vendor/php-http/message/src/Encoding/GzipEncodeStream.php
delete mode 100644 vendor/php-http/message/src/Encoding/InflateStream.php
delete mode 100644 vendor/php-http/message/src/Exception.php
delete mode 100644 vendor/php-http/message/src/Exception/UnexpectedValueException.php
delete mode 100644 vendor/php-http/message/src/Formatter.php
delete mode 100644 vendor/php-http/message/src/Formatter/CurlCommandFormatter.php
delete mode 100644 vendor/php-http/message/src/Formatter/FullHttpMessageFormatter.php
delete mode 100644 vendor/php-http/message/src/Formatter/SimpleFormatter.php
delete mode 100644 vendor/php-http/message/src/MessageFactory/DiactorosMessageFactory.php
delete mode 100644 vendor/php-http/message/src/MessageFactory/GuzzleMessageFactory.php
delete mode 100644 vendor/php-http/message/src/MessageFactory/SlimMessageFactory.php
delete mode 100644 vendor/php-http/message/src/RequestMatcher.php
delete mode 100644 vendor/php-http/message/src/RequestMatcher/CallbackRequestMatcher.php
delete mode 100644 vendor/php-http/message/src/RequestMatcher/RegexRequestMatcher.php
delete mode 100644 vendor/php-http/message/src/RequestMatcher/RequestMatcher.php
delete mode 100644 vendor/php-http/message/src/Stream/BufferedStream.php
delete mode 100644 vendor/php-http/message/src/StreamFactory/DiactorosStreamFactory.php
delete mode 100644 vendor/php-http/message/src/StreamFactory/GuzzleStreamFactory.php
delete mode 100644 vendor/php-http/message/src/StreamFactory/SlimStreamFactory.php
delete mode 100644 vendor/php-http/message/src/UriFactory/DiactorosUriFactory.php
delete mode 100644 vendor/php-http/message/src/UriFactory/GuzzleUriFactory.php
delete mode 100644 vendor/php-http/message/src/UriFactory/SlimUriFactory.php
delete mode 100644 vendor/php-http/message/src/filters.php
delete mode 100644 vendor/php-http/promise/CHANGELOG.md
delete mode 100644 vendor/php-http/promise/LICENSE
delete mode 100644 vendor/php-http/promise/README.md
delete mode 100644 vendor/php-http/promise/composer.json
delete mode 100644 vendor/php-http/promise/src/FulfilledPromise.php
delete mode 100644 vendor/php-http/promise/src/Promise.php
delete mode 100644 vendor/php-http/promise/src/RejectedPromise.php
delete mode 100644 vendor/psr/http-client/CHANGELOG.md
delete mode 100644 vendor/psr/http-client/LICENSE
delete mode 100644 vendor/psr/http-client/README.md
delete mode 100644 vendor/psr/http-client/composer.json
delete mode 100644 vendor/psr/http-client/src/ClientExceptionInterface.php
delete mode 100644 vendor/psr/http-client/src/ClientInterface.php
delete mode 100644 vendor/psr/http-client/src/NetworkExceptionInterface.php
delete mode 100644 vendor/psr/http-client/src/RequestExceptionInterface.php
delete mode 100644 vendor/psr/http-factory/.gitignore
delete mode 100644 vendor/psr/http-factory/.pullapprove.yml
delete mode 100644 vendor/psr/http-factory/LICENSE
delete mode 100644 vendor/psr/http-factory/README.md
delete mode 100644 vendor/psr/http-factory/composer.json
delete mode 100644 vendor/psr/http-factory/src/RequestFactoryInterface.php
delete mode 100644 vendor/psr/http-factory/src/ResponseFactoryInterface.php
delete mode 100644 vendor/psr/http-factory/src/ServerRequestFactoryInterface.php
delete mode 100644 vendor/psr/http-factory/src/StreamFactoryInterface.php
delete mode 100644 vendor/psr/http-factory/src/UploadedFileFactoryInterface.php
delete mode 100644 vendor/psr/http-factory/src/UriFactoryInterface.php
delete mode 100644 vendor/psr/http-message/CHANGELOG.md
delete mode 100644 vendor/psr/http-message/LICENSE
delete mode 100644 vendor/psr/http-message/README.md
delete mode 100644 vendor/psr/http-message/composer.json
delete mode 100644 vendor/psr/http-message/src/MessageInterface.php
delete mode 100644 vendor/psr/http-message/src/RequestInterface.php
delete mode 100644 vendor/psr/http-message/src/ResponseInterface.php
delete mode 100644 vendor/psr/http-message/src/ServerRequestInterface.php
delete mode 100644 vendor/psr/http-message/src/StreamInterface.php
delete mode 100644 vendor/psr/http-message/src/UploadedFileInterface.php
delete mode 100644 vendor/psr/http-message/src/UriInterface.php
delete mode 100644 vendor/psr/log/LICENSE
delete mode 100644 vendor/psr/log/Psr/Log/AbstractLogger.php
delete mode 100644 vendor/psr/log/Psr/Log/InvalidArgumentException.php
delete mode 100644 vendor/psr/log/Psr/Log/LogLevel.php
delete mode 100644 vendor/psr/log/Psr/Log/LoggerAwareInterface.php
delete mode 100644 vendor/psr/log/Psr/Log/LoggerAwareTrait.php
delete mode 100644 vendor/psr/log/Psr/Log/LoggerInterface.php
delete mode 100644 vendor/psr/log/Psr/Log/LoggerTrait.php
delete mode 100644 vendor/psr/log/Psr/Log/NullLogger.php
delete mode 100644 vendor/psr/log/Psr/Log/Test/DummyTest.php
delete mode 100644 vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php
delete mode 100644 vendor/psr/log/Psr/Log/Test/TestLogger.php
delete mode 100644 vendor/psr/log/README.md
delete mode 100644 vendor/psr/log/composer.json
delete mode 100644 vendor/ralouphie/getallheaders/LICENSE
delete mode 100644 vendor/ralouphie/getallheaders/README.md
delete mode 100644 vendor/ralouphie/getallheaders/composer.json
delete mode 100644 vendor/ralouphie/getallheaders/src/getallheaders.php
delete mode 100644 vendor/sentry/sentry/.php_cs.dist
delete mode 100644 vendor/sentry/sentry/AUTHORS
delete mode 100644 vendor/sentry/sentry/CHANGELOG.md
delete mode 100644 vendor/sentry/sentry/LICENSE
delete mode 100644 vendor/sentry/sentry/README.md
delete mode 100644 vendor/sentry/sentry/UPGRADE-2.0.md
delete mode 100644 vendor/sentry/sentry/codecov.yml
delete mode 100644 vendor/sentry/sentry/composer.json
delete mode 100644 vendor/sentry/sentry/psalm.xml.dist
delete mode 100644 vendor/sentry/sentry/src/Breadcrumb.php
delete mode 100644 vendor/sentry/sentry/src/Client.php
delete mode 100644 vendor/sentry/sentry/src/ClientBuilder.php
delete mode 100644 vendor/sentry/sentry/src/ClientBuilderInterface.php
delete mode 100644 vendor/sentry/sentry/src/ClientInterface.php
delete mode 100644 vendor/sentry/sentry/src/Context/Context.php
delete mode 100644 vendor/sentry/sentry/src/Context/RuntimeContext.php
delete mode 100644 vendor/sentry/sentry/src/Context/ServerOsContext.php
delete mode 100644 vendor/sentry/sentry/src/Context/TagsContext.php
delete mode 100644 vendor/sentry/sentry/src/Context/UserContext.php
delete mode 100644 vendor/sentry/sentry/src/Dsn.php
delete mode 100644 vendor/sentry/sentry/src/ErrorHandler.php
delete mode 100644 vendor/sentry/sentry/src/Event.php
delete mode 100644 vendor/sentry/sentry/src/EventFactory.php
delete mode 100644 vendor/sentry/sentry/src/EventFactoryInterface.php
delete mode 100644 vendor/sentry/sentry/src/EventId.php
delete mode 100644 vendor/sentry/sentry/src/Exception/EventCreationException.php
delete mode 100644 vendor/sentry/sentry/src/Exception/ExceptionInterface.php
delete mode 100644 vendor/sentry/sentry/src/Exception/FatalErrorException.php
delete mode 100644 vendor/sentry/sentry/src/Exception/InvalidArgumentException.php
delete mode 100644 vendor/sentry/sentry/src/Exception/JsonException.php
delete mode 100644 vendor/sentry/sentry/src/Exception/MissingProjectIdCredentialException.php
delete mode 100644 vendor/sentry/sentry/src/Exception/MissingPublicKeyCredentialException.php
delete mode 100644 vendor/sentry/sentry/src/Exception/SilencedErrorException.php
delete mode 100644 vendor/sentry/sentry/src/FlushableClientInterface.php
delete mode 100644 vendor/sentry/sentry/src/Frame.php
delete mode 100644 vendor/sentry/sentry/src/HttpClient/Authentication/SentryAuthentication.php
delete mode 100644 vendor/sentry/sentry/src/HttpClient/HttpClientFactory.php
delete mode 100644 vendor/sentry/sentry/src/HttpClient/HttpClientFactoryInterface.php
delete mode 100644 vendor/sentry/sentry/src/HttpClient/PluggableHttpClientFactory.php
delete mode 100644 vendor/sentry/sentry/src/HttpClient/Plugin/GzipEncoderPlugin.php
delete mode 100644 vendor/sentry/sentry/src/Integration/ErrorListenerIntegration.php
delete mode 100644 vendor/sentry/sentry/src/Integration/ExceptionListenerIntegration.php
delete mode 100644 vendor/sentry/sentry/src/Integration/FatalErrorListenerIntegration.php
delete mode 100644 vendor/sentry/sentry/src/Integration/FrameContextifierIntegration.php
delete mode 100644 vendor/sentry/sentry/src/Integration/Handler.php
delete mode 100644 vendor/sentry/sentry/src/Integration/IgnoreErrorsIntegration.php
delete mode 100644 vendor/sentry/sentry/src/Integration/IntegrationInterface.php
delete mode 100644 vendor/sentry/sentry/src/Integration/ModulesIntegration.php
delete mode 100644 vendor/sentry/sentry/src/Integration/RequestFetcher.php
delete mode 100644 vendor/sentry/sentry/src/Integration/RequestFetcherInterface.php
delete mode 100644 vendor/sentry/sentry/src/Integration/RequestIntegration.php
delete mode 100644 vendor/sentry/sentry/src/Integration/TransactionIntegration.php
delete mode 100644 vendor/sentry/sentry/src/Monolog/Handler.php
delete mode 100644 vendor/sentry/sentry/src/Options.php
delete mode 100644 vendor/sentry/sentry/src/SentrySdk.php
delete mode 100644 vendor/sentry/sentry/src/Serializer/AbstractSerializer.php
delete mode 100644 vendor/sentry/sentry/src/Serializer/RepresentationSerializer.php
delete mode 100644 vendor/sentry/sentry/src/Serializer/RepresentationSerializerInterface.php
delete mode 100644 vendor/sentry/sentry/src/Serializer/SerializableInterface.php
delete mode 100644 vendor/sentry/sentry/src/Serializer/Serializer.php
delete mode 100644 vendor/sentry/sentry/src/Serializer/SerializerInterface.php
delete mode 100644 vendor/sentry/sentry/src/Severity.php
delete mode 100644 vendor/sentry/sentry/src/Spool/MemorySpool.php
delete mode 100644 vendor/sentry/sentry/src/Spool/SpoolInterface.php
delete mode 100644 vendor/sentry/sentry/src/Stacktrace.php
delete mode 100644 vendor/sentry/sentry/src/State/Hub.php
delete mode 100644 vendor/sentry/sentry/src/State/HubAdapter.php
delete mode 100644 vendor/sentry/sentry/src/State/HubInterface.php
delete mode 100644 vendor/sentry/sentry/src/State/Layer.php
delete mode 100644 vendor/sentry/sentry/src/State/Scope.php
delete mode 100644 vendor/sentry/sentry/src/Transport/ClosableTransportInterface.php
delete mode 100644 vendor/sentry/sentry/src/Transport/DefaultTransportFactory.php
delete mode 100644 vendor/sentry/sentry/src/Transport/HttpTransport.php
delete mode 100644 vendor/sentry/sentry/src/Transport/NullTransport.php
delete mode 100644 vendor/sentry/sentry/src/Transport/SpoolTransport.php
delete mode 100644 vendor/sentry/sentry/src/Transport/TransportFactoryInterface.php
delete mode 100644 vendor/sentry/sentry/src/Transport/TransportInterface.php
delete mode 100644 vendor/sentry/sentry/src/Util/JSON.php
delete mode 100644 vendor/sentry/sentry/src/Util/PHPVersion.php
delete mode 100644 vendor/sentry/sentry/src/functions.php
delete mode 100644 vendor/symfony/deprecation-contracts/.gitignore
delete mode 100644 vendor/symfony/deprecation-contracts/CHANGELOG.md
delete mode 100644 vendor/symfony/deprecation-contracts/LICENSE
delete mode 100644 vendor/symfony/deprecation-contracts/README.md
delete mode 100644 vendor/symfony/deprecation-contracts/composer.json
delete mode 100644 vendor/symfony/deprecation-contracts/function.php
delete mode 100644 vendor/symfony/options-resolver/CHANGELOG.md
delete mode 100644 vendor/symfony/options-resolver/Debug/OptionsResolverIntrospector.php
delete mode 100644 vendor/symfony/options-resolver/Exception/AccessException.php
delete mode 100644 vendor/symfony/options-resolver/Exception/ExceptionInterface.php
delete mode 100644 vendor/symfony/options-resolver/Exception/InvalidArgumentException.php
delete mode 100644 vendor/symfony/options-resolver/Exception/InvalidOptionsException.php
delete mode 100644 vendor/symfony/options-resolver/Exception/MissingOptionsException.php
delete mode 100644 vendor/symfony/options-resolver/Exception/NoConfigurationException.php
delete mode 100644 vendor/symfony/options-resolver/Exception/NoSuchOptionException.php
delete mode 100644 vendor/symfony/options-resolver/Exception/OptionDefinitionException.php
delete mode 100644 vendor/symfony/options-resolver/Exception/UndefinedOptionsException.php
delete mode 100644 vendor/symfony/options-resolver/LICENSE
delete mode 100644 vendor/symfony/options-resolver/OptionConfigurator.php
delete mode 100644 vendor/symfony/options-resolver/Options.php
delete mode 100644 vendor/symfony/options-resolver/OptionsResolver.php
delete mode 100644 vendor/symfony/options-resolver/README.md
delete mode 100644 vendor/symfony/options-resolver/composer.json
delete mode 100644 vendor/symfony/polyfill-intl-idn/Idn.php
delete mode 100644 vendor/symfony/polyfill-intl-idn/Info.php
delete mode 100644 vendor/symfony/polyfill-intl-idn/LICENSE
delete mode 100644 vendor/symfony/polyfill-intl-idn/README.md
delete mode 100644 vendor/symfony/polyfill-intl-idn/Resources/unidata/DisallowedRanges.php
delete mode 100644 vendor/symfony/polyfill-intl-idn/Resources/unidata/Regex.php
delete mode 100644 vendor/symfony/polyfill-intl-idn/Resources/unidata/deviation.php
delete mode 100644 vendor/symfony/polyfill-intl-idn/Resources/unidata/disallowed.php
delete mode 100644 vendor/symfony/polyfill-intl-idn/Resources/unidata/disallowed_STD3_mapped.php
delete mode 100644 vendor/symfony/polyfill-intl-idn/Resources/unidata/disallowed_STD3_valid.php
delete mode 100644 vendor/symfony/polyfill-intl-idn/Resources/unidata/ignored.php
delete mode 100644 vendor/symfony/polyfill-intl-idn/Resources/unidata/mapped.php
delete mode 100644 vendor/symfony/polyfill-intl-idn/Resources/unidata/virama.php
delete mode 100644 vendor/symfony/polyfill-intl-idn/bootstrap.php
delete mode 100644 vendor/symfony/polyfill-intl-idn/composer.json
delete mode 100644 vendor/symfony/polyfill-intl-normalizer/LICENSE
delete mode 100644 vendor/symfony/polyfill-intl-normalizer/Normalizer.php
delete mode 100644 vendor/symfony/polyfill-intl-normalizer/README.md
delete mode 100644 vendor/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php
delete mode 100644 vendor/symfony/polyfill-intl-normalizer/Resources/unidata/canonicalComposition.php
delete mode 100644 vendor/symfony/polyfill-intl-normalizer/Resources/unidata/canonicalDecomposition.php
delete mode 100644 vendor/symfony/polyfill-intl-normalizer/Resources/unidata/combiningClass.php
delete mode 100644 vendor/symfony/polyfill-intl-normalizer/Resources/unidata/compatibilityDecomposition.php
delete mode 100644 vendor/symfony/polyfill-intl-normalizer/bootstrap.php
delete mode 100644 vendor/symfony/polyfill-intl-normalizer/composer.json
delete mode 100644 vendor/symfony/polyfill-php70/LICENSE
delete mode 100644 vendor/symfony/polyfill-php70/Php70.php
delete mode 100644 vendor/symfony/polyfill-php70/README.md
delete mode 100644 vendor/symfony/polyfill-php70/Resources/stubs/ArithmeticError.php
delete mode 100644 vendor/symfony/polyfill-php70/Resources/stubs/AssertionError.php
delete mode 100644 vendor/symfony/polyfill-php70/Resources/stubs/DivisionByZeroError.php
delete mode 100644 vendor/symfony/polyfill-php70/Resources/stubs/Error.php
delete mode 100644 vendor/symfony/polyfill-php70/Resources/stubs/ParseError.php
delete mode 100644 vendor/symfony/polyfill-php70/Resources/stubs/SessionUpdateTimestampHandlerInterface.php
delete mode 100644 vendor/symfony/polyfill-php70/Resources/stubs/TypeError.php
delete mode 100644 vendor/symfony/polyfill-php70/bootstrap.php
delete mode 100644 vendor/symfony/polyfill-php70/composer.json
delete mode 100644 vendor/symfony/polyfill-php72/LICENSE
delete mode 100644 vendor/symfony/polyfill-php72/Php72.php
delete mode 100644 vendor/symfony/polyfill-php72/README.md
delete mode 100644 vendor/symfony/polyfill-php72/bootstrap.php
delete mode 100644 vendor/symfony/polyfill-php72/composer.json
delete mode 100644 vendor/symfony/polyfill-php80/LICENSE
delete mode 100644 vendor/symfony/polyfill-php80/Php80.php
delete mode 100644 vendor/symfony/polyfill-php80/README.md
delete mode 100644 vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php
delete mode 100644 vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php
delete mode 100644 vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php
delete mode 100644 vendor/symfony/polyfill-php80/bootstrap.php
delete mode 100644 vendor/symfony/polyfill-php80/composer.json
delete mode 100644 vendor/symfony/polyfill-uuid/LICENSE
delete mode 100644 vendor/symfony/polyfill-uuid/README.md
delete mode 100644 vendor/symfony/polyfill-uuid/Uuid.php
delete mode 100644 vendor/symfony/polyfill-uuid/bootstrap.php
delete mode 100644 vendor/symfony/polyfill-uuid/composer.json
diff --git a/app/includes/prereqs.php b/app/includes/prereqs.php
index 226c978..da8ea4f 100644
--- a/app/includes/prereqs.php
+++ b/app/includes/prereqs.php
@@ -7,12 +7,6 @@ require_once __DIR__ . "/../vendor/autoload.php";
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__ . "/..");
$dotenv->load();
-// GlitchTip Logs
-Sentry\init([
- 'dsn' => 'https://06f1b7e10e04409686f8ddad61f218ec@logs.tainton.uk/2',
- 'release' => $_ENV['APP_VERSION']
-]);
-
// Session
session_start();
diff --git a/app/public/index.php b/app/public/index.php
index 125ad51..89b1008 100644
--- a/app/public/index.php
+++ b/app/public/index.php
@@ -13,8 +13,7 @@
$user_tickets_sql->setFetchMode(PDO::FETCH_ASSOC);
$user_tickets_result = $user_tickets_sql->fetchAll();
} catch (PDOException $e) {
- Sentry\captureException($e);
- // echo("Error: " . $e->getMessage());
+ echo("Error: " . $e->getMessage());
}
// Get tickets user has subscribed to
@@ -26,8 +25,7 @@
$sub_tickets_sql->setFetchMode(PDO::FETCH_ASSOC);
$sub_tickets_result = $sub_tickets_sql->fetchAll();
} catch (PDOException $e) {
- Sentry\captureException($e);
- // echo("Error: " . $e->getMessage());
+ echo("Error: " . $e->getMessage());
}
$user_tickets_sub = 0; // Force 'no subbed tickets' msg until the code works
@@ -43,8 +41,7 @@
$result = $sql->fetchAll();
$tkt = $result[0];
} catch (PDOException $e) {
- Sentry\captureException($e);
- // echo("Error: " . $e->getMessage());
+ echo("Error: " . $e->getMessage());
}
return $tkt;
}
@@ -59,8 +56,7 @@
$result = $sql->fetchAll();
$usr = $result[0]['given_name'] . " " . $result[0]['family_name'];
} catch (PDOException $e) {
- Sentry\captureException($e);
- // echo("Error: " . $e->getMessage());
+ echo("Error: " . $e->getMessage());
}
return $usr;
}
diff --git a/composer.json b/composer.json
deleted file mode 100644
index c71ec3b..0000000
--- a/composer.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "require": {
- "sentry/sdk": "^2.1"
- }
-}
diff --git a/composer.lock b/composer.lock
deleted file mode 100644
index 4063ab8..0000000
--- a/composer.lock
+++ /dev/null
@@ -1,1882 +0,0 @@
-{
- "_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": "a067efff72a78f2ed094f7f47f0d7073",
- "packages": [
- {
- "name": "clue/stream-filter",
- "version": "v1.4.1",
- "source": {
- "type": "git",
- "url": "https://github.com/clue/php-stream-filter.git",
- "reference": "5a58cc30a8bd6a4eb8f856adf61dd3e013f53f71"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/clue/php-stream-filter/zipball/5a58cc30a8bd6a4eb8f856adf61dd3e013f53f71",
- "reference": "5a58cc30a8bd6a4eb8f856adf61dd3e013f53f71",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3"
- },
- "require-dev": {
- "phpunit/phpunit": "^5.0 || ^4.8"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Clue\\StreamFilter\\": "src/"
- },
- "files": [
- "src/functions_include.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Christian Lück",
- "email": "christian@lueck.tv"
- }
- ],
- "description": "A simple and modern approach to stream filtering in PHP",
- "homepage": "https://github.com/clue/php-stream-filter",
- "keywords": [
- "bucket brigade",
- "callback",
- "filter",
- "php_user_filter",
- "stream",
- "stream_filter_append",
- "stream_filter_register"
- ],
- "time": "2019-04-09T12:31:48+00:00"
- },
- {
- "name": "composer/package-versions-deprecated",
- "version": "1.10.99",
- "source": {
- "type": "git",
- "url": "https://github.com/composer/package-versions-deprecated.git",
- "reference": "dd51b4443d58b34b6d9344cf4c288e621c9a826f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/dd51b4443d58b34b6d9344cf4c288e621c9a826f",
- "reference": "dd51b4443d58b34b6d9344cf4c288e621c9a826f",
- "shasum": ""
- },
- "require": {
- "composer-plugin-api": "^1.1.0 || ^2.0",
- "php": "^7"
- },
- "replace": {
- "ocramius/package-versions": "1.10.99"
- },
- "require-dev": {
- "composer/composer": "^1.9.3 || ^2.0@dev",
- "ext-zip": "^1.13",
- "phpunit/phpunit": "^6.5 || ^7"
- },
- "type": "composer-plugin",
- "extra": {
- "class": "PackageVersions\\Installer",
- "branch-alias": {
- "dev-master": "1.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "PackageVersions\\": "src/PackageVersions"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Marco Pivetta",
- "email": "ocramius@gmail.com"
- },
- {
- "name": "Jordi Boggiano",
- "email": "j.boggiano@seld.be"
- }
- ],
- "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)",
- "funding": [
- {
- "url": "https://packagist.com",
- "type": "custom"
- },
- {
- "url": "https://github.com/composer",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/composer/composer",
- "type": "tidelift"
- }
- ],
- "time": "2020-07-15T08:39:18+00:00"
- },
- {
- "name": "guzzlehttp/guzzle",
- "version": "6.5.5",
- "source": {
- "type": "git",
- "url": "https://github.com/guzzle/guzzle.git",
- "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/guzzle/guzzle/zipball/9d4290de1cfd701f38099ef7e183b64b4b7b0c5e",
- "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e",
- "shasum": ""
- },
- "require": {
- "ext-json": "*",
- "guzzlehttp/promises": "^1.0",
- "guzzlehttp/psr7": "^1.6.1",
- "php": ">=5.5",
- "symfony/polyfill-intl-idn": "^1.17.0"
- },
- "require-dev": {
- "ext-curl": "*",
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0",
- "psr/log": "^1.1"
- },
- "suggest": {
- "psr/log": "Required for using the Log middleware"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "6.5-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "GuzzleHttp\\": "src/"
- },
- "files": [
- "src/functions_include.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- }
- ],
- "description": "Guzzle is a PHP HTTP client library",
- "homepage": "http://guzzlephp.org/",
- "keywords": [
- "client",
- "curl",
- "framework",
- "http",
- "http client",
- "rest",
- "web service"
- ],
- "time": "2020-06-16T21:01:06+00:00"
- },
- {
- "name": "guzzlehttp/promises",
- "version": "v1.3.1",
- "source": {
- "type": "git",
- "url": "https://github.com/guzzle/promises.git",
- "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646",
- "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646",
- "shasum": ""
- },
- "require": {
- "php": ">=5.5.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.4-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "GuzzleHttp\\Promise\\": "src/"
- },
- "files": [
- "src/functions_include.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- }
- ],
- "description": "Guzzle promises library",
- "keywords": [
- "promise"
- ],
- "time": "2016-12-20T10:07:11+00:00"
- },
- {
- "name": "guzzlehttp/psr7",
- "version": "1.6.1",
- "source": {
- "type": "git",
- "url": "https://github.com/guzzle/psr7.git",
- "reference": "239400de7a173fe9901b9ac7c06497751f00727a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/guzzle/psr7/zipball/239400de7a173fe9901b9ac7c06497751f00727a",
- "reference": "239400de7a173fe9901b9ac7c06497751f00727a",
- "shasum": ""
- },
- "require": {
- "php": ">=5.4.0",
- "psr/http-message": "~1.0",
- "ralouphie/getallheaders": "^2.0.5 || ^3.0.0"
- },
- "provide": {
- "psr/http-message-implementation": "1.0"
- },
- "require-dev": {
- "ext-zlib": "*",
- "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.8"
- },
- "suggest": {
- "zendframework/zend-httphandlerrunner": "Emit PSR-7 responses"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.6-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "GuzzleHttp\\Psr7\\": "src/"
- },
- "files": [
- "src/functions_include.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- },
- {
- "name": "Tobias Schultze",
- "homepage": "https://github.com/Tobion"
- }
- ],
- "description": "PSR-7 message implementation that also provides common utility methods",
- "keywords": [
- "http",
- "message",
- "psr-7",
- "request",
- "response",
- "stream",
- "uri",
- "url"
- ],
- "time": "2019-07-01T23:21:34+00:00"
- },
- {
- "name": "http-interop/http-factory-guzzle",
- "version": "1.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/http-interop/http-factory-guzzle.git",
- "reference": "34861658efb9899a6618cef03de46e2a52c80fc0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/http-interop/http-factory-guzzle/zipball/34861658efb9899a6618cef03de46e2a52c80fc0",
- "reference": "34861658efb9899a6618cef03de46e2a52c80fc0",
- "shasum": ""
- },
- "require": {
- "guzzlehttp/psr7": "^1.4.2",
- "psr/http-factory": "^1.0"
- },
- "provide": {
- "psr/http-factory-implementation": "^1.0"
- },
- "require-dev": {
- "http-interop/http-factory-tests": "^0.5",
- "phpunit/phpunit": "^6.5"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Http\\Factory\\Guzzle\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
- }
- ],
- "description": "An HTTP Factory using Guzzle PSR7",
- "keywords": [
- "factory",
- "http",
- "psr-17",
- "psr-7"
- ],
- "time": "2018-07-31T19:32:56+00:00"
- },
- {
- "name": "jean85/pretty-package-versions",
- "version": "1.5.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Jean85/pretty-package-versions.git",
- "reference": "e9f4324e88b8664be386d90cf60fbc202e1f7fc9"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/e9f4324e88b8664be386d90cf60fbc202e1f7fc9",
- "reference": "e9f4324e88b8664be386d90cf60fbc202e1f7fc9",
- "shasum": ""
- },
- "require": {
- "composer/package-versions-deprecated": "^1.8.0",
- "php": "^7.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^6.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Jean85\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Alessandro Lai",
- "email": "alessandro.lai85@gmail.com"
- }
- ],
- "description": "A wrapper for ocramius/package-versions to get pretty versions strings",
- "keywords": [
- "composer",
- "package",
- "release",
- "versions"
- ],
- "time": "2020-06-23T06:23:06+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-http/client-common",
- "version": "2.3.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-http/client-common.git",
- "reference": "e37e46c610c87519753135fb893111798c69076a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-http/client-common/zipball/e37e46c610c87519753135fb893111798c69076a",
- "reference": "e37e46c610c87519753135fb893111798c69076a",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0",
- "php-http/httplug": "^2.0",
- "php-http/message": "^1.6",
- "php-http/message-factory": "^1.0",
- "psr/http-client": "^1.0",
- "psr/http-factory": "^1.0",
- "psr/http-message": "^1.0",
- "symfony/options-resolver": "^2.6 || ^3.4.20 || ~4.0.15 || ~4.1.9 || ^4.2.1 || ^5.0",
- "symfony/polyfill-php80": "^1.17"
- },
- "require-dev": {
- "doctrine/instantiator": "^1.1",
- "guzzlehttp/psr7": "^1.4",
- "nyholm/psr7": "^1.2",
- "phpspec/phpspec": "^5.1 || ^6.0",
- "phpspec/prophecy": "^1.10.2",
- "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.3"
- },
- "suggest": {
- "ext-json": "To detect JSON responses with the ContentTypePlugin",
- "ext-libxml": "To detect XML responses with the ContentTypePlugin",
- "php-http/cache-plugin": "PSR-6 Cache plugin",
- "php-http/logger-plugin": "PSR-3 Logger plugin",
- "php-http/stopwatch-plugin": "Symfony Stopwatch plugin"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.3.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Http\\Client\\Common\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Márk Sági-Kazár",
- "email": "mark.sagikazar@gmail.com"
- }
- ],
- "description": "Common HTTP Client implementations and tools for HTTPlug",
- "homepage": "http://httplug.io",
- "keywords": [
- "client",
- "common",
- "http",
- "httplug"
- ],
- "time": "2020-07-21T10:04:13+00:00"
- },
- {
- "name": "php-http/discovery",
- "version": "1.9.1",
- "source": {
- "type": "git",
- "url": "https://github.com/php-http/discovery.git",
- "reference": "64a18cc891957e05d91910b3c717d6bd11fbede9"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-http/discovery/zipball/64a18cc891957e05d91910b3c717d6bd11fbede9",
- "reference": "64a18cc891957e05d91910b3c717d6bd11fbede9",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0"
- },
- "conflict": {
- "nyholm/psr7": "<1.0"
- },
- "require-dev": {
- "graham-campbell/phpspec-skip-example-extension": "^5.0",
- "php-http/httplug": "^1.0 || ^2.0",
- "php-http/message-factory": "^1.0",
- "phpspec/phpspec": "^5.1 || ^6.1",
- "puli/composer-plugin": "1.0.0-beta10"
- },
- "suggest": {
- "php-http/message": "Allow to use Guzzle, Diactoros or Slim Framework factories",
- "puli/composer-plugin": "Sets up Puli which is recommended for Discovery to work. Check http://docs.php-http.org/en/latest/discovery.html for more details."
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.9-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Http\\Discovery\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Márk Sági-Kazár",
- "email": "mark.sagikazar@gmail.com"
- }
- ],
- "description": "Finds installed HTTPlug implementations and PSR-7 message factories",
- "homepage": "http://php-http.org",
- "keywords": [
- "adapter",
- "client",
- "discovery",
- "factory",
- "http",
- "message",
- "psr7"
- ],
- "time": "2020-07-13T15:44:45+00:00"
- },
- {
- "name": "php-http/guzzle6-adapter",
- "version": "v2.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/php-http/guzzle6-adapter.git",
- "reference": "6074a4b1f4d5c21061b70bab3b8ad484282fe31f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-http/guzzle6-adapter/zipball/6074a4b1f4d5c21061b70bab3b8ad484282fe31f",
- "reference": "6074a4b1f4d5c21061b70bab3b8ad484282fe31f",
- "shasum": ""
- },
- "require": {
- "guzzlehttp/guzzle": "^6.0",
- "php": "^7.1",
- "php-http/httplug": "^2.0",
- "psr/http-client": "^1.0"
- },
- "provide": {
- "php-http/async-client-implementation": "1.0",
- "php-http/client-implementation": "1.0",
- "psr/http-client-implementation": "1.0"
- },
- "require-dev": {
- "ext-curl": "*",
- "php-http/client-integration-tests": "^2.0",
- "phpunit/phpunit": "^7.4"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Http\\Adapter\\Guzzle6\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Márk Sági-Kazár",
- "email": "mark.sagikazar@gmail.com"
- },
- {
- "name": "David de Boer",
- "email": "david@ddeboer.nl"
- }
- ],
- "description": "Guzzle 6 HTTP Adapter",
- "homepage": "http://httplug.io",
- "keywords": [
- "Guzzle",
- "http"
- ],
- "time": "2018-12-16T14:44:03+00:00"
- },
- {
- "name": "php-http/httplug",
- "version": "2.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-http/httplug.git",
- "reference": "191a0a1b41ed026b717421931f8d3bd2514ffbf9"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-http/httplug/zipball/191a0a1b41ed026b717421931f8d3bd2514ffbf9",
- "reference": "191a0a1b41ed026b717421931f8d3bd2514ffbf9",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0",
- "php-http/promise": "^1.1",
- "psr/http-client": "^1.0",
- "psr/http-message": "^1.0"
- },
- "require-dev": {
- "friends-of-phpspec/phpspec-code-coverage": "^4.1",
- "phpspec/phpspec": "^5.1 || ^6.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Http\\Client\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Eric GELOEN",
- "email": "geloen.eric@gmail.com"
- },
- {
- "name": "Márk Sági-Kazár",
- "email": "mark.sagikazar@gmail.com",
- "homepage": "https://sagikazarmark.hu"
- }
- ],
- "description": "HTTPlug, the HTTP client abstraction for PHP",
- "homepage": "http://httplug.io",
- "keywords": [
- "client",
- "http"
- ],
- "time": "2020-07-13T15:43:23+00:00"
- },
- {
- "name": "php-http/message",
- "version": "1.8.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-http/message.git",
- "reference": "ce8f43ac1e294b54aabf5808515c3554a19c1e1c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-http/message/zipball/ce8f43ac1e294b54aabf5808515c3554a19c1e1c",
- "reference": "ce8f43ac1e294b54aabf5808515c3554a19c1e1c",
- "shasum": ""
- },
- "require": {
- "clue/stream-filter": "^1.4",
- "php": "^7.1",
- "php-http/message-factory": "^1.0.2",
- "psr/http-message": "^1.0"
- },
- "provide": {
- "php-http/message-factory-implementation": "1.0"
- },
- "require-dev": {
- "akeneo/phpspec-skip-example-extension": "^1.0",
- "coduo/phpspec-data-provider-extension": "^1.0",
- "ext-zlib": "*",
- "guzzlehttp/psr7": "^1.0",
- "henrikbjorn/phpspec-code-coverage": "^1.0",
- "phpspec/phpspec": "^2.4",
- "slim/slim": "^3.0",
- "zendframework/zend-diactoros": "^1.0"
- },
- "suggest": {
- "ext-zlib": "Used with compressor/decompressor streams",
- "guzzlehttp/psr7": "Used with Guzzle PSR-7 Factories",
- "slim/slim": "Used with Slim Framework PSR-7 implementation",
- "zendframework/zend-diactoros": "Used with Diactoros Factories"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.8-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Http\\Message\\": "src/"
- },
- "files": [
- "src/filters.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Márk Sági-Kazár",
- "email": "mark.sagikazar@gmail.com"
- }
- ],
- "description": "HTTP Message related tools",
- "homepage": "http://php-http.org",
- "keywords": [
- "http",
- "message",
- "psr-7"
- ],
- "time": "2019-08-05T06:55:08+00:00"
- },
- {
- "name": "php-http/message-factory",
- "version": "v1.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/php-http/message-factory.git",
- "reference": "a478cb11f66a6ac48d8954216cfed9aa06a501a1"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-http/message-factory/zipball/a478cb11f66a6ac48d8954216cfed9aa06a501a1",
- "reference": "a478cb11f66a6ac48d8954216cfed9aa06a501a1",
- "shasum": ""
- },
- "require": {
- "php": ">=5.4",
- "psr/http-message": "^1.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Http\\Message\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Márk Sági-Kazár",
- "email": "mark.sagikazar@gmail.com"
- }
- ],
- "description": "Factory interfaces for PSR-7 HTTP Message",
- "homepage": "http://php-http.org",
- "keywords": [
- "factory",
- "http",
- "message",
- "stream",
- "uri"
- ],
- "time": "2015-12-19T14:08:53+00:00"
- },
- {
- "name": "php-http/promise",
- "version": "1.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-http/promise.git",
- "reference": "4c4c1f9b7289a2ec57cde7f1e9762a5789506f88"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-http/promise/zipball/4c4c1f9b7289a2ec57cde7f1e9762a5789506f88",
- "reference": "4c4c1f9b7289a2ec57cde7f1e9762a5789506f88",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0"
- },
- "require-dev": {
- "friends-of-phpspec/phpspec-code-coverage": "^4.3.2",
- "phpspec/phpspec": "^5.1.2 || ^6.2"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.1-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Http\\Promise\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Joel Wurtz",
- "email": "joel.wurtz@gmail.com"
- },
- {
- "name": "Márk Sági-Kazár",
- "email": "mark.sagikazar@gmail.com"
- }
- ],
- "description": "Promise used for asynchronous HTTP requests",
- "homepage": "http://httplug.io",
- "keywords": [
- "promise"
- ],
- "time": "2020-07-07T09:29:14+00:00"
- },
- {
- "name": "psr/http-client",
- "version": "1.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/http-client.git",
- "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621",
- "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621",
- "shasum": ""
- },
- "require": {
- "php": "^7.0 || ^8.0",
- "psr/http-message": "^1.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\Http\\Client\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
- }
- ],
- "description": "Common interface for HTTP clients",
- "homepage": "https://github.com/php-fig/http-client",
- "keywords": [
- "http",
- "http-client",
- "psr",
- "psr-18"
- ],
- "time": "2020-06-29T06:28:15+00:00"
- },
- {
- "name": "psr/http-factory",
- "version": "1.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/http-factory.git",
- "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
- "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
- "shasum": ""
- },
- "require": {
- "php": ">=7.0.0",
- "psr/http-message": "^1.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\Http\\Message\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
- }
- ],
- "description": "Common interfaces for PSR-7 HTTP message factories",
- "keywords": [
- "factory",
- "http",
- "message",
- "psr",
- "psr-17",
- "psr-7",
- "request",
- "response"
- ],
- "time": "2019-04-30T12:38:16+00:00"
- },
- {
- "name": "psr/http-message",
- "version": "1.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/http-message.git",
- "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
- "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\Http\\Message\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
- }
- ],
- "description": "Common interface for HTTP messages",
- "homepage": "https://github.com/php-fig/http-message",
- "keywords": [
- "http",
- "http-message",
- "psr",
- "psr-7",
- "request",
- "response"
- ],
- "time": "2016-08-06T14:39:51+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": "ralouphie/getallheaders",
- "version": "3.0.3",
- "source": {
- "type": "git",
- "url": "https://github.com/ralouphie/getallheaders.git",
- "reference": "120b605dfeb996808c31b6477290a714d356e822"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
- "reference": "120b605dfeb996808c31b6477290a714d356e822",
- "shasum": ""
- },
- "require": {
- "php": ">=5.6"
- },
- "require-dev": {
- "php-coveralls/php-coveralls": "^2.1",
- "phpunit/phpunit": "^5 || ^6.5"
- },
- "type": "library",
- "autoload": {
- "files": [
- "src/getallheaders.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Ralph Khattar",
- "email": "ralph.khattar@gmail.com"
- }
- ],
- "description": "A polyfill for getallheaders.",
- "time": "2019-03-08T08:55:37+00:00"
- },
- {
- "name": "sentry/sdk",
- "version": "2.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/getsentry/sentry-php-sdk.git",
- "reference": "18921af9c2777517ef9fb480845c22a98554d6af"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/getsentry/sentry-php-sdk/zipball/18921af9c2777517ef9fb480845c22a98554d6af",
- "reference": "18921af9c2777517ef9fb480845c22a98554d6af",
- "shasum": ""
- },
- "require": {
- "http-interop/http-factory-guzzle": "^1.0",
- "php-http/guzzle6-adapter": "^1.1|^2.0",
- "sentry/sentry": "^2.3"
- },
- "type": "metapackage",
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Sentry",
- "email": "accounts@sentry.io"
- }
- ],
- "description": "This is a metapackage shipping sentry/sentry with a recommended http client.",
- "time": "2020-01-08T19:16:29+00:00"
- },
- {
- "name": "sentry/sentry",
- "version": "2.4.2",
- "source": {
- "type": "git",
- "url": "https://github.com/getsentry/sentry-php.git",
- "reference": "b3b4f4a08b184c3f22b208f357e8720ef42938b0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/b3b4f4a08b184c3f22b208f357e8720ef42938b0",
- "reference": "b3b4f4a08b184c3f22b208f357e8720ef42938b0",
- "shasum": ""
- },
- "require": {
- "ext-json": "*",
- "ext-mbstring": "*",
- "guzzlehttp/promises": "^1.3",
- "guzzlehttp/psr7": "^1.6",
- "jean85/pretty-package-versions": "^1.2",
- "php": "^7.1",
- "php-http/async-client-implementation": "^1.0",
- "php-http/client-common": "^1.5|^2.0",
- "php-http/discovery": "^1.6.1",
- "php-http/httplug": "^1.1|^2.0",
- "php-http/message": "^1.5",
- "psr/http-factory": "^1.0",
- "psr/http-message-implementation": "^1.0",
- "psr/log": "^1.0",
- "symfony/options-resolver": "^2.7|^3.0|^4.0|^5.0",
- "symfony/polyfill-uuid": "^1.13.1"
- },
- "conflict": {
- "php-http/client-common": "1.8.0",
- "raven/raven": "*"
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "^2.16",
- "monolog/monolog": "^1.3|^2.0",
- "php-http/mock-client": "^1.3",
- "phpstan/extension-installer": "^1.0",
- "phpstan/phpstan": "^0.12",
- "phpstan/phpstan-phpunit": "^0.12",
- "phpunit/phpunit": "^7.5.18",
- "symfony/phpunit-bridge": "^4.3|^5.0",
- "vimeo/psalm": "^3.4"
- },
- "suggest": {
- "monolog/monolog": "Allow sending log messages to Sentry by using the included Monolog handler."
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.4-dev"
- }
- },
- "autoload": {
- "files": [
- "src/functions.php"
- ],
- "psr-4": {
- "Sentry\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sentry",
- "email": "accounts@sentry.io"
- }
- ],
- "description": "A PHP SDK for Sentry (http://sentry.io)",
- "homepage": "http://sentry.io",
- "keywords": [
- "crash-reporting",
- "crash-reports",
- "error-handler",
- "error-monitoring",
- "log",
- "logging",
- "sentry"
- ],
- "funding": [
- {
- "url": "https://sentry.io/",
- "type": "custom"
- },
- {
- "url": "https://sentry.io/pricing/",
- "type": "custom"
- }
- ],
- "time": "2020-07-24T07:02:19+00:00"
- },
- {
- "name": "symfony/deprecation-contracts",
- "version": "v2.1.3",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "5e20b83385a77593259c9f8beb2c43cd03b2ac14"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5e20b83385a77593259c9f8beb2c43cd03b2ac14",
- "reference": "5e20b83385a77593259c9f8beb2c43cd03b2ac14",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.1-dev"
- },
- "thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
- }
- },
- "autoload": {
- "files": [
- "function.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": "A generic function and convention to trigger deprecation notices",
- "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-06-06T08:49:21+00:00"
- },
- {
- "name": "symfony/options-resolver",
- "version": "v5.1.3",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/options-resolver.git",
- "reference": "9ff59517938f88d90b6e65311fef08faa640f681"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/options-resolver/zipball/9ff59517938f88d90b6e65311fef08faa640f681",
- "reference": "9ff59517938f88d90b6e65311fef08faa640f681",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1",
- "symfony/polyfill-php80": "^1.15"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "5.1-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-07-12T12:58:00+00:00"
- },
- {
- "name": "symfony/polyfill-intl-idn",
- "version": "v1.18.1",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-intl-idn.git",
- "reference": "5dcab1bc7146cf8c1beaa4502a3d9be344334251"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/5dcab1bc7146cf8c1beaa4502a3d9be344334251",
- "reference": "5dcab1bc7146cf8c1beaa4502a3d9be344334251",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3",
- "symfony/polyfill-intl-normalizer": "^1.10",
- "symfony/polyfill-php70": "^1.10",
- "symfony/polyfill-php72": "^1.10"
- },
- "suggest": {
- "ext-intl": "For best performance"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.18-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Intl\\Idn\\": ""
- },
- "files": [
- "bootstrap.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Laurent Bassin",
- "email": "laurent@bassin.info"
- },
- {
- "name": "Trevor Rowbotham",
- "email": "trevor.rowbotham@pm.me"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "idn",
- "intl",
- "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-08-04T06:02:08+00:00"
- },
- {
- "name": "symfony/polyfill-intl-normalizer",
- "version": "v1.18.1",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
- "reference": "37078a8dd4a2a1e9ab0231af7c6cb671b2ed5a7e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/37078a8dd4a2a1e9ab0231af7c6cb671b2ed5a7e",
- "reference": "37078a8dd4a2a1e9ab0231af7c6cb671b2ed5a7e",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3"
- },
- "suggest": {
- "ext-intl": "For best performance"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.18-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
- },
- "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 for intl's Normalizer class and related functions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "intl",
- "normalizer",
- "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-07-14T12:35:20+00:00"
- },
- {
- "name": "symfony/polyfill-php70",
- "version": "v1.18.1",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php70.git",
- "reference": "0dd93f2c578bdc9c72697eaa5f1dd25644e618d3"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/0dd93f2c578bdc9c72697eaa5f1dd25644e618d3",
- "reference": "0dd93f2c578bdc9c72697eaa5f1dd25644e618d3",
- "shasum": ""
- },
- "require": {
- "paragonie/random_compat": "~1.0|~2.0|~9.99",
- "php": ">=5.3.3"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.18-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "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"
- ],
- "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-07-14T12:35:20+00:00"
- },
- {
- "name": "symfony/polyfill-php72",
- "version": "v1.18.1",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php72.git",
- "reference": "639447d008615574653fb3bc60d1986d7172eaae"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/639447d008615574653fb3bc60d1986d7172eaae",
- "reference": "639447d008615574653fb3bc60d1986d7172eaae",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.18-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "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-07-14T12:35:20+00:00"
- },
- {
- "name": "symfony/polyfill-php80",
- "version": "v1.18.1",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "d87d5766cbf48d72388a9f6b85f280c8ad51f981"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/d87d5766cbf48d72388a9f6b85f280c8ad51f981",
- "reference": "d87d5766cbf48d72388a9f6b85f280c8ad51f981",
- "shasum": ""
- },
- "require": {
- "php": ">=7.0.8"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.18-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Php80\\": ""
- },
- "files": [
- "bootstrap.php"
- ],
- "classmap": [
- "Resources/stubs"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Ion Bazan",
- "email": "ion.bazan@gmail.com"
- },
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill backporting some PHP 8.0+ 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-07-14T12:35:20+00:00"
- },
- {
- "name": "symfony/polyfill-uuid",
- "version": "v1.18.1",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-uuid.git",
- "reference": "da48e2cccd323e48c16c26481bf5800f6ab1c49d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/da48e2cccd323e48c16c26481bf5800f6ab1c49d",
- "reference": "da48e2cccd323e48c16c26481bf5800f6ab1c49d",
- "shasum": ""
- },
- "require": {
- "paragonie/random_compat": "~1.0|~2.0|~9.99",
- "php": ">=5.3.3"
- },
- "suggest": {
- "ext-uuid": "For best performance"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.18-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Uuid\\": ""
- },
- "files": [
- "bootstrap.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Grégoire Pineau",
- "email": "lyrixx@lyrixx.info"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill for uuid functions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "uuid"
- ],
- "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-07-14T12:35:20+00:00"
- }
- ],
- "packages-dev": [],
- "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/autoload.php b/vendor/autoload.php
deleted file mode 100644
index ba69c51..0000000
--- a/vendor/autoload.php
+++ /dev/null
@@ -1,7 +0,0 @@
- Note: Legacy PHP versions (PHP < 5.4) do not support passing additional data
-from the end signal handler if the stream is being closed.
-
-If your callback throws an `Exception`, then the filter process will be aborted.
-In order to play nice with PHP's stream handling, the `Exception` will be
-transformed to a PHP warning instead:
-
-```php
-Filter\append($stream, function ($chunk) {
- throw new \RuntimeException('Unexpected chunk');
-});
-
-// raises an E_USER_WARNING with "Error invoking filter: Unexpected chunk"
-fwrite($stream, 'hello');
-```
-
-The optional `$read_write` parameter can be used to only invoke the `$callback` when either writing to the stream or only when reading from the stream:
-
-```php
-Filter\append($stream, function ($chunk) {
- // will be called each time you write to the stream
- return $chunk;
-}, STREAM_FILTER_WRITE);
-
-Filter\append($stream, function ($chunk) {
- // will be called each time you read from the stream
- return $chunk;
-}, STREAM_FILTER_READ);
-```
-
-> Note that once a filter has been added to stream, the stream can no longer be passed to
-> [`stream_select()`](https://www.php.net/manual/en/function.stream-select.php)
-> (and family).
->
-> > Warning: stream_select(): cannot cast a filtered stream on this system in {file} on line {line}
->
-> This is due to limitations of PHP's stream filter support, as it can no longer reliably
-> tell when the underlying stream resource is actually ready.
-> As an alternative, consider calling `stream_select()` on the unfiltered stream and
-> then pass the unfiltered data through the [`fun()`](#fun) function.
-
-### prepend()
-
-The `prepend($stream, $callback, $read_write = STREAM_FILTER_ALL)` function can be used to
-prepend a filter callback to the given stream.
-
-Each stream can have a list of filters attached.
-This function prepends a filter to the start of this list.
-
-This function returns a filter resource which can be passed to [`remove()`](#remove).
-If the given filter can not be added, it throws an `Exception`.
-
-```php
-$filter = Filter\prepend($stream, function ($chunk) {
- // will be called each time you read or write a $chunk to/from the stream
- return $chunk;
-});
-```
-
-Except for the position in the list of filters, this function behaves exactly
-like the [`append()`](#append) function.
-For more details about its behavior, see also the [`append()`](#append) function.
-
-### fun()
-
-The `fun($filter, $parameters = null)` function can be used to
-create a filter function which uses the given built-in `$filter`.
-
-PHP comes with a useful set of [built-in filters](https://www.php.net/manual/en/filters.php).
-Using `fun()` makes accessing these as easy as passing an input string to filter
-and getting the filtered output string.
-
-```php
-$fun = Filter\fun('string.rot13');
-
-assert('grfg' === $fun('test'));
-assert('test' === $fun($fun('test'));
-```
-
-Please note that not all filter functions may be available depending on installed
-PHP extensions and the PHP version in use.
-In particular, [HHVM](https://hhvm.com/) may not offer the same filter functions
-or parameters as Zend PHP.
-Accessing an unknown filter function will result in a `RuntimeException`:
-
-```php
-Filter\fun('unknown'); // throws RuntimeException
-```
-
-Some filters may accept or require additional filter parameters – most
-filters do not require filter parameters.
-If given, the optional `$parameters` argument will be passed to the
-underlying filter handler as-is.
-In particular, note how *not passing* this parameter at all differs from
-explicitly passing a `null` value (which many filters do not accept).
-Please refer to the individual filter definition for more details.
-For example, the `string.strip_tags` filter can be invoked like this:
-
-```php
-$fun = Filter\fun('string.strip_tags', '');
-
-$ret = $fun('h
i');
-assert('hi' === $ret);
-```
-
-Under the hood, this function allocates a temporary memory stream, so it's
-recommended to clean up the filter function after use.
-Also, some filter functions (in particular the
-[zlib compression filters](https://www.php.net/manual/en/filters.compression.php))
-may use internal buffers and may emit a final data chunk on close.
-The filter function can be closed by invoking without any arguments:
-
-```php
-$fun = Filter\fun('zlib.deflate');
-
-$ret = $fun('hello') . $fun('world') . $fun();
-assert('helloworld' === gzinflate($ret));
-```
-
-The filter function must not be used anymore after it has been closed.
-Doing so will result in a `RuntimeException`:
-
-```php
-$fun = Filter\fun('string.rot13');
-$fun();
-
-$fun('test'); // throws RuntimeException
-```
-
-> Note: If you're using the zlib compression filters, then you should be wary
-about engine inconsistencies between different PHP versions and HHVM.
-These inconsistencies exist in the underlying PHP engines and there's little we
-can do about this in this library.
-[Our test suite](tests/) contains several test cases that exhibit these issues.
-If you feel some test case is missing or outdated, we're happy to accept PRs! :)
-
-### remove()
-
-The `remove($filter)` function can be used to
-remove a filter previously added via [`append()`](#append) or [`prepend()`](#prepend).
-
-```php
-$filter = Filter\append($stream, function () {
- // …
-});
-Filter\remove($filter);
-```
-
-## Install
-
-The recommended way to install this library is [through Composer](https://getcomposer.org).
-[New to Composer?](https://getcomposer.org/doc/00-intro.md)
-
-This project follows [SemVer](https://semver.org/).
-This will install the latest supported version:
-
-```bash
-$ composer require clue/stream-filter:^1.4.1
-```
-
-See also the [CHANGELOG](CHANGELOG.md) for details about version upgrades.
-
-This project aims to run on any platform and thus does not require any PHP
-extensions and supports running on legacy PHP 5.3 through current PHP 7+ and
-HHVM.
-It's *highly recommended to use PHP 7+* for this project.
-Older PHP versions may suffer from a number of inconsistencies documented above.
-
-## Tests
-
-To run the test suite, you first need to clone this repo and then install all
-dependencies [through Composer](https://getcomposer.org):
-
-```bash
-$ composer install
-```
-
-To run the test suite, go to the project root and run:
-
-```bash
-$ php vendor/bin/phpunit
-```
-
-## License
-
-This project is released under the permissive [MIT license](LICENSE).
-
-> Did you know that I offer custom development services and issuing invoices for
- sponsorships of releases and for contributions? Contact me (@clue) for details.
diff --git a/vendor/clue/stream-filter/composer.json b/vendor/clue/stream-filter/composer.json
deleted file mode 100644
index 834f2d4..0000000
--- a/vendor/clue/stream-filter/composer.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "name": "clue/stream-filter",
- "description": "A simple and modern approach to stream filtering in PHP",
- "keywords": ["stream", "callback", "filter", "php_user_filter", "stream_filter_append", "stream_filter_register", "bucket brigade"],
- "homepage": "https://github.com/clue/php-stream-filter",
- "license": "MIT",
- "authors": [
- {
- "name": "Christian Lück",
- "email": "christian@lueck.tv"
- }
- ],
- "require": {
- "php": ">=5.3"
- },
- "require-dev": {
- "phpunit/phpunit": "^5.0 || ^4.8"
- },
- "autoload": {
- "psr-4": { "Clue\\StreamFilter\\": "src/" },
- "files": [ "src/functions_include.php" ]
- }
-}
diff --git a/vendor/clue/stream-filter/examples/base64_decode.php b/vendor/clue/stream-filter/examples/base64_decode.php
deleted file mode 100644
index 2b49f10..0000000
--- a/vendor/clue/stream-filter/examples/base64_decode.php
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
- ./tests/
-
-
-
-
- ./src/
-
-
-
\ No newline at end of file
diff --git a/vendor/clue/stream-filter/src/CallbackFilter.php b/vendor/clue/stream-filter/src/CallbackFilter.php
deleted file mode 100644
index 710940b..0000000
--- a/vendor/clue/stream-filter/src/CallbackFilter.php
+++ /dev/null
@@ -1,120 +0,0 @@
-closed = false;
-
- if (!is_callable($this->params)) {
- throw new InvalidArgumentException('No valid callback parameter given to stream_filter_(append|prepend)');
- }
- $this->callback = $this->params;
-
- // callback supports end event if it accepts invocation without arguments
- $ref = new ReflectionFunction($this->callback);
- $this->supportsClose = ($ref->getNumberOfRequiredParameters() === 0);
-
- return true;
- }
-
- public function onClose()
- {
- $this->closed = true;
-
- // callback supports closing and is not already closed
- if ($this->supportsClose) {
- $this->supportsClose = false;
- // invoke without argument to signal end and discard resulting buffer
- try {
- call_user_func($this->callback);
- } catch (Exception $ignored) {
- // this might be called during engine shutdown, so it's not safe
- // to raise any errors or exceptions here
- // trigger_error('Error closing filter: ' . $ignored->getMessage(), E_USER_WARNING);
- }
- }
-
- $this->callback = null;
- }
-
- public function filter($in, $out, &$consumed, $closing)
- {
- // concatenate whole buffer from input brigade
- $data = '';
- while ($bucket = stream_bucket_make_writeable($in)) {
- $consumed += $bucket->datalen;
- $data .= $bucket->data;
- }
-
- // skip processing callback that already ended
- if ($this->closed) {
- return PSFS_FEED_ME;
- }
-
- // only invoke filter function if buffer is not empty
- // this may skip flushing a closing filter
- if ($data !== '') {
- try {
- $data = call_user_func($this->callback, $data);
- } catch (Exception $e) {
- // exception should mark filter as closed
- $this->onClose();
- trigger_error('Error invoking filter: ' . $e->getMessage(), E_USER_WARNING);
-
- return PSFS_ERR_FATAL;
- }
- }
-
- // mark filter as closed after processing closing chunk
- if ($closing) {
- $this->closed = true;
-
- // callback supports closing and is not already closed
- if ($this->supportsClose) {
- $this->supportsClose = false;
-
- // invoke without argument to signal end and append resulting buffer
- try {
- $data .= call_user_func($this->callback);
- } catch (Exception $e) {
- trigger_error('Error ending filter: ' . $e->getMessage(), E_USER_WARNING);
-
- return PSFS_ERR_FATAL;
- }
- }
- }
-
- if ($data !== '') {
- // create a new bucket for writing the resulting buffer to the output brigade
- // reusing an existing bucket turned out to be bugged in some environments (ancient PHP versions and HHVM)
- $bucket = @stream_bucket_new($this->stream, $data);
-
- // legacy PHP versions (PHP < 5.4) do not support passing data from the event signal handler
- // because closing the stream invalidates the stream and its stream bucket brigade before
- // invoking the filter close handler.
- if ($bucket !== false) {
- stream_bucket_append($out, $bucket);
- }
- }
-
- return PSFS_PASS_ON;
- }
-}
diff --git a/vendor/clue/stream-filter/src/functions.php b/vendor/clue/stream-filter/src/functions.php
deleted file mode 100644
index d1ca9dc..0000000
--- a/vendor/clue/stream-filter/src/functions.php
+++ /dev/null
@@ -1,146 +0,0 @@
- '');
- throw new RuntimeException('Unable to append filter: ' . $error['message']);
- }
-
- return $ret;
-}
-
-/**
- * prepend a callback filter to the given stream
- *
- * @param resource $stream
- * @param callable $callback
- * @param int $read_write
- * @return resource filter resource which can be used for `remove()`
- * @throws Exception on error
- * @uses stream_filter_prepend()
- */
-function prepend($stream, $callback, $read_write = STREAM_FILTER_ALL)
-{
- $ret = @stream_filter_prepend($stream, register(), $read_write, $callback);
-
- if ($ret === false) {
- $error = error_get_last() + array('message' => '');
- throw new RuntimeException('Unable to prepend filter: ' . $error['message']);
- }
-
- return $ret;
-}
-
-/**
- * Creates filter fun (function) which uses the given built-in $filter
- *
- * Some filters may accept or require additional filter parameters – most
- * filters do not require filter parameters.
- * If given, the optional `$parameters` argument will be passed to the
- * underlying filter handler as-is.
- * In particular, note how *not passing* this parameter at all differs from
- * explicitly passing a `null` value (which many filters do not accept).
- * Please refer to the individual filter definition for more details.
- *
- * @param string $filter built-in filter name. See stream_get_filters() or http://php.net/manual/en/filters.php
- * @param mixed $parameters (optional) parameters to pass to the built-in filter as-is
- * @return callable a filter callback which can be append()'ed or prepend()'ed
- * @throws RuntimeException on error
- * @link http://php.net/manual/en/filters.php
- * @see stream_get_filters()
- * @see append()
- */
-function fun($filter, $parameters = null)
-{
- $fp = fopen('php://memory', 'w');
- if (func_num_args() === 1) {
- $filter = @stream_filter_append($fp, $filter, STREAM_FILTER_WRITE);
- } else {
- $filter = @stream_filter_append($fp, $filter, STREAM_FILTER_WRITE, $parameters);
- }
-
- if ($filter === false) {
- fclose($fp);
- $error = error_get_last() + array('message' => '');
- throw new RuntimeException('Unable to access built-in filter: ' . $error['message']);
- }
-
- // append filter function which buffers internally
- $buffer = '';
- append($fp, function ($chunk) use (&$buffer) {
- $buffer .= $chunk;
-
- // always return empty string in order to skip actually writing to stream resource
- return '';
- }, STREAM_FILTER_WRITE);
-
- $closed = false;
-
- return function ($chunk = null) use ($fp, $filter, &$buffer, &$closed) {
- if ($closed) {
- throw new \RuntimeException('Unable to perform operation on closed stream');
- }
- if ($chunk === null) {
- $closed = true;
- $buffer = '';
- fclose($fp);
- return $buffer;
- }
- // initialize buffer and invoke filters by attempting to write to stream
- $buffer = '';
- fwrite($fp, $chunk);
-
- // buffer now contains everything the filter function returned
- return $buffer;
- };
-}
-
-/**
- * remove a callback filter from the given stream
- *
- * @param resource $filter
- * @return boolean true on success or false on error
- * @throws Exception on error
- * @uses stream_filter_remove()
- */
-function remove($filter)
-{
- if (@stream_filter_remove($filter) === false) {
- throw new RuntimeException('Unable to remove given filter');
- }
-}
-
-/**
- * registers the callback filter and returns the resulting filter name
- *
- * There should be little reason to call this function manually.
- *
- * @return string filter name
- * @uses CallbackFilter
- */
-function register()
-{
- static $registered = null;
- if ($registered === null) {
- $registered = 'stream-callback';
- stream_filter_register($registered, __NAMESPACE__ . '\CallbackFilter');
- }
- return $registered;
-}
diff --git a/vendor/clue/stream-filter/src/functions_include.php b/vendor/clue/stream-filter/src/functions_include.php
deleted file mode 100644
index 346a91b..0000000
--- a/vendor/clue/stream-filter/src/functions_include.php
+++ /dev/null
@@ -1,5 +0,0 @@
-createStream();
-
- StreamFilter\append($stream, function ($chunk) {
- return strtoupper($chunk);
- });
-
- fwrite($stream, 'hello');
- fwrite($stream, 'world');
- rewind($stream);
-
- $this->assertEquals('HELLOWORLD', stream_get_contents($stream));
-
- fclose($stream);
- }
-
- public function testAppendNativePhpFunction()
- {
- $stream = $this->createStream();
-
- StreamFilter\append($stream, 'strtoupper');
-
- fwrite($stream, 'hello');
- fwrite($stream, 'world');
- rewind($stream);
-
- $this->assertEquals('HELLOWORLD', stream_get_contents($stream));
-
- fclose($stream);
- }
-
- public function testAppendChangingChunkSize()
- {
- $stream = $this->createStream();
-
- StreamFilter\append($stream, function ($chunk) {
- return str_replace(array('a','e','i','o','u'), '', $chunk);
- });
-
- fwrite($stream, 'hello');
- fwrite($stream, 'world');
- rewind($stream);
-
- $this->assertEquals('hllwrld', stream_get_contents($stream));
-
- fclose($stream);
- }
-
- public function testAppendReturningEmptyStringWillNotPassThrough()
- {
- $stream = $this->createStream();
-
- StreamFilter\append($stream, function ($chunk) {
- return '';
- });
-
- fwrite($stream, 'hello');
- fwrite($stream, 'world');
- rewind($stream);
-
- $this->assertEquals('', stream_get_contents($stream));
-
- fclose($stream);
- }
-
- public function testAppendEndEventCanBeBufferedOnClose()
- {
- if (PHP_VERSION < 5.4) $this->markTestSkipped('Not supported on legacy PHP');
-
- $stream = $this->createStream();
-
- StreamFilter\append($stream, function ($chunk = null) {
- if ($chunk === null) {
- // this signals the end event
- return '!';
- }
- return $chunk . ' ';
- }, STREAM_FILTER_WRITE);
-
- $buffered = '';
- StreamFilter\append($stream, function ($chunk) use (&$buffered) {
- $buffered .= $chunk;
- return '';
- });
-
- fwrite($stream, 'hello');
- fwrite($stream, 'world');
-
- fclose($stream);
-
- $this->assertEquals('hello world !', $buffered);
- }
-
- public function testAppendEndEventWillBeCalledOnRemove()
- {
- $stream = $this->createStream();
-
- $ended = false;
- $filter = StreamFilter\append($stream, function ($chunk = null) use (&$ended) {
- if ($chunk === null) {
- $ended = true;
- }
- return $chunk;
- }, STREAM_FILTER_WRITE);
-
- $this->assertEquals(0, $ended);
- StreamFilter\remove($filter);
- $this->assertEquals(1, $ended);
- }
-
- public function testAppendEndEventWillBeCalledOnClose()
- {
- $stream = $this->createStream();
-
- $ended = false;
- StreamFilter\append($stream, function ($chunk = null) use (&$ended) {
- if ($chunk === null) {
- $ended = true;
- }
- return $chunk;
- }, STREAM_FILTER_WRITE);
-
- $this->assertEquals(0, $ended);
- fclose($stream);
- $this->assertEquals(1, $ended);
- }
-
- public function testAppendWriteOnly()
- {
- $stream = $this->createStream();
-
- $invoked = 0;
-
- StreamFilter\append($stream, function ($chunk) use (&$invoked) {
- ++$invoked;
-
- return $chunk;
- }, STREAM_FILTER_WRITE);
-
- fwrite($stream, 'a');
- fwrite($stream, 'b');
- fwrite($stream, 'c');
- rewind($stream);
-
- $this->assertEquals(3, $invoked);
- $this->assertEquals('abc', stream_get_contents($stream));
-
- fclose($stream);
- }
-
- public function testAppendReadOnly()
- {
- $stream = $this->createStream();
-
- $invoked = 0;
-
- StreamFilter\append($stream, function ($chunk) use (&$invoked) {
- ++$invoked;
-
- return $chunk;
- }, STREAM_FILTER_READ);
-
- fwrite($stream, 'a');
- fwrite($stream, 'b');
- fwrite($stream, 'c');
- rewind($stream);
-
- $this->assertEquals(0, $invoked);
- $this->assertEquals('abc', stream_get_contents($stream));
- $this->assertEquals(1, $invoked);
-
- fclose($stream);
- }
-
- public function testOrderCallingAppendAfterPrepend()
- {
- $stream = $this->createStream();
-
- StreamFilter\append($stream, function ($chunk) {
- return '[' . $chunk . ']';
- }, STREAM_FILTER_WRITE);
-
- StreamFilter\prepend($stream, function ($chunk) {
- return '(' . $chunk . ')';
- }, STREAM_FILTER_WRITE);
-
- fwrite($stream, 'hello');
- rewind($stream);
-
- $this->assertEquals('[(hello)]', stream_get_contents($stream));
-
- fclose($stream);
- }
-
- public function testRemoveFilter()
- {
- $stream = $this->createStream();
-
- $first = StreamFilter\append($stream, function ($chunk) {
- return $chunk . '?';
- }, STREAM_FILTER_WRITE);
-
- StreamFilter\append($stream, function ($chunk) {
- return $chunk . '!';
- }, STREAM_FILTER_WRITE);
-
- StreamFilter\remove($first);
-
- fwrite($stream, 'hello');
- rewind($stream);
-
- $this->assertEquals('hello!', stream_get_contents($stream));
-
- fclose($stream);
- }
-
- public function testAppendFunDechunk()
- {
- if (defined('HHVM_VERSION')) $this->markTestSkipped('Not supported on HHVM (dechunk filter does not exist)');
-
- $stream = $this->createStream();
-
- StreamFilter\append($stream, StreamFilter\fun('dechunk'), STREAM_FILTER_WRITE);
-
- fwrite($stream, "2\r\nhe\r\n");
- fwrite($stream, "3\r\nllo\r\n");
- fwrite($stream, "0\r\n\r\n");
- rewind($stream);
-
- $this->assertEquals('hello', stream_get_contents($stream));
-
- fclose($stream);
- }
-
- public function testAppendThrows()
- {
- $this->createErrorHandler($errors);
-
- $stream = $this->createStream();
- $this->createErrorHandler($errors);
-
- StreamFilter\append($stream, function ($chunk) {
- throw new \DomainException($chunk);
- });
-
- fwrite($stream, 'test');
-
- $this->removeErrorHandler();
- $this->assertCount(1, $errors);
- $this->assertContains('test', $errors[0]);
- }
-
- public function testAppendThrowsDuringEnd()
- {
- $stream = $this->createStream();
- $this->createErrorHandler($errors);
-
- StreamFilter\append($stream, function ($chunk = null) {
- if ($chunk === null) {
- throw new \DomainException('end');
- }
- return $chunk;
- });
-
- fclose($stream);
-
- $this->removeErrorHandler();
-
- // We can only assert we're not seeing an exception here…
- // * php 5.3-5.6 sees one error here
- // * php 7 does not see any error here
- // * hhvm sees the same error twice
- //
- // If you're curious:
- //
- // var_dump($errors);
- // $this->assertCount(1, $errors);
- // $this->assertContains('end', $errors[0]);
- }
-
- public function testAppendThrowsShouldTriggerEnd()
- {
- $stream = $this->createStream();
- $this->createErrorHandler($errors);
-
- $ended = false;
- StreamFilter\append($stream, function ($chunk = null) use (&$ended) {
- if ($chunk === null) {
- $ended = true;
- return '';
- }
- throw new \DomainException($chunk);
- });
-
- $this->assertEquals(false, $ended);
- fwrite($stream, 'test');
- $this->assertEquals(true, $ended);
-
- $this->removeErrorHandler();
- $this->assertCount(1, $errors);
- $this->assertContains('test', $errors[0]);
- }
-
- public function testAppendThrowsShouldTriggerEndButIgnoreExceptionDuringEnd()
- {
- //$this->markTestIncomplete();
- $stream = $this->createStream();
- $this->createErrorHandler($errors);
-
- StreamFilter\append($stream, function ($chunk = null) {
- if ($chunk === null) {
- $chunk = 'end';
- //return '';
- }
- throw new \DomainException($chunk);
- });
-
- fwrite($stream, 'test');
-
- $this->removeErrorHandler();
- $this->assertCount(1, $errors);
- $this->assertContains('test', $errors[0]);
- }
-
- /**
- * @expectedException RuntimeException
- */
- public function testAppendInvalidStreamIsRuntimeError()
- {
- if (defined('HHVM_VERSION')) $this->markTestSkipped('Not supported on HHVM (does not reject invalid stream)');
- StreamFilter\append(false, function () { });
- }
-
- /**
- * @expectedException RuntimeException
- */
- public function testPrependInvalidStreamIsRuntimeError()
- {
- if (defined('HHVM_VERSION')) $this->markTestSkipped('Not supported on HHVM (does not reject invalid stream)');
- StreamFilter\prepend(false, function () { });
- }
-
- /**
- * @expectedException RuntimeException
- */
- public function testRemoveInvalidFilterIsRuntimeError()
- {
- if (defined('HHVM_VERSION')) $this->markTestSkipped('Not supported on HHVM (does not reject invalid filters)');
- StreamFilter\remove(false);
- }
-
- /**
- * @expectedException InvalidArgumentException
- */
- public function testInvalidCallbackIsInvalidArgument()
- {
- $stream = $this->createStream();
-
- StreamFilter\append($stream, 'a-b-c');
- }
-
- private function createStream()
- {
- return fopen('php://memory', 'r+');
- }
-
- private function createErrorHandler(&$errors)
- {
- $errors = array();
- set_error_handler(function ($_, $message) use (&$errors) {
- $errors []= $message;
- });
- }
-
- private function removeErrorHandler()
- {
- restore_error_handler();
- }
-}
diff --git a/vendor/clue/stream-filter/tests/FunTest.php b/vendor/clue/stream-filter/tests/FunTest.php
deleted file mode 100644
index d0812e8..0000000
--- a/vendor/clue/stream-filter/tests/FunTest.php
+++ /dev/null
@@ -1,61 +0,0 @@
-assertEquals('grfg', $rot('test'));
- $this->assertEquals('test', $rot($rot('test')));
- $this->assertEquals(null, $rot());
- }
-
- public function testFunInQuotedPrintable()
- {
- $encode = Filter\fun('convert.quoted-printable-encode');
- $decode = Filter\fun('convert.quoted-printable-decode');
-
- $this->assertEquals('t=C3=A4st', $encode('täst'));
- $this->assertEquals('täst', $decode($encode('täst')));
- $this->assertEquals(null, $encode());
- }
-
- /**
- * @expectedException RuntimeException
- */
- public function testFunWriteAfterCloseRot13()
- {
- $rot = Filter\fun('string.rot13');
-
- $this->assertEquals(null, $rot());
- $rot('test');
- }
-
- /**
- * @expectedException RuntimeException
- */
- public function testFunInvalid()
- {
- Filter\fun('unknown');
- }
-
- public function testFunInBase64()
- {
- $encode = Filter\fun('convert.base64-encode');
- $decode = Filter\fun('convert.base64-decode');
-
- $string = 'test';
- $this->assertEquals(base64_encode($string), $encode($string) . $encode());
- $this->assertEquals($string, $decode(base64_encode($string)));
-
- $encode = Filter\fun('convert.base64-encode');
- $decode = Filter\fun('convert.base64-decode');
- $this->assertEquals($string, $decode($encode($string) . $encode()));
-
- $encode = Filter\fun('convert.base64-encode');
- $this->assertEquals(null, $encode());
- }
-}
diff --git a/vendor/clue/stream-filter/tests/FunZlibTest.php b/vendor/clue/stream-filter/tests/FunZlibTest.php
deleted file mode 100644
index 752c8a2..0000000
--- a/vendor/clue/stream-filter/tests/FunZlibTest.php
+++ /dev/null
@@ -1,79 +0,0 @@
-assertEquals(gzdeflate('hello world'), $data);
- }
-
- public function testFunZlibDeflateEmpty()
- {
- if (PHP_VERSION >= 7) $this->markTestSkipped('Not supported on PHP7 (empty string does not invoke filter)');
-
- $deflate = StreamFilter\fun('zlib.deflate');
-
- //$data = gzdeflate('');
- $data = $deflate();
-
- $this->assertEquals("\x03\x00", $data);
- }
-
- public function testFunZlibDeflateBig()
- {
- $deflate = StreamFilter\fun('zlib.deflate');
-
- $n = 1000;
- $expected = str_repeat('hello', $n);
-
- $bytes = '';
- for ($i = 0; $i < $n; ++$i) {
- $bytes .= $deflate('hello');
- }
- $bytes .= $deflate();
-
- $this->assertEquals($expected, gzinflate($bytes));
- }
-
- public function testFunZlibInflateHelloWorld()
- {
- $inflate = StreamFilter\fun('zlib.inflate');
-
- $data = $inflate(gzdeflate('hello world')) . $inflate();
-
- $this->assertEquals('hello world', $data);
- }
-
- public function testFunZlibInflateEmpty()
- {
- $inflate = StreamFilter\fun('zlib.inflate');
-
- $data = $inflate("\x03\x00") . $inflate();
-
- $this->assertEquals('', $data);
- }
-
- public function testFunZlibInflateBig()
- {
- if (defined('HHVM_VERSION')) $this->markTestSkipped('Not supported on HHVM (final chunk will not be emitted)');
-
- $inflate = StreamFilter\fun('zlib.inflate');
-
- $expected = str_repeat('hello', 10);
- $bytes = gzdeflate($expected);
-
- $ret = '';
- foreach (str_split($bytes, 2) as $chunk) {
- $ret .= $inflate($chunk);
- }
- $ret .= $inflate();
-
- $this->assertEquals($expected, $ret);
- }
-}
diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php
deleted file mode 100644
index fce8549..0000000
--- a/vendor/composer/ClassLoader.php
+++ /dev/null
@@ -1,445 +0,0 @@
-
- * Jordi Boggiano
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Composer\Autoload;
-
-/**
- * ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
- *
- * $loader = new \Composer\Autoload\ClassLoader();
- *
- * // register classes with namespaces
- * $loader->add('Symfony\Component', __DIR__.'/component');
- * $loader->add('Symfony', __DIR__.'/framework');
- *
- * // activate the autoloader
- * $loader->register();
- *
- * // to enable searching the include path (eg. for PEAR packages)
- * $loader->setUseIncludePath(true);
- *
- * In this example, if you try to use a class in the Symfony\Component
- * namespace or one of its children (Symfony\Component\Console for instance),
- * the autoloader will first look for the class under the component/
- * directory, and it will then fallback to the framework/ directory if not
- * found before giving up.
- *
- * This class is loosely based on the Symfony UniversalClassLoader.
- *
- * @author Fabien Potencier
- * @author Jordi Boggiano
- * @see http://www.php-fig.org/psr/psr-0/
- * @see http://www.php-fig.org/psr/psr-4/
- */
-class ClassLoader
-{
- // PSR-4
- private $prefixLengthsPsr4 = array();
- private $prefixDirsPsr4 = array();
- private $fallbackDirsPsr4 = array();
-
- // PSR-0
- private $prefixesPsr0 = array();
- private $fallbackDirsPsr0 = array();
-
- private $useIncludePath = false;
- private $classMap = array();
- private $classMapAuthoritative = false;
- private $missingClasses = array();
- private $apcuPrefix;
-
- public function getPrefixes()
- {
- if (!empty($this->prefixesPsr0)) {
- return call_user_func_array('array_merge', $this->prefixesPsr0);
- }
-
- return array();
- }
-
- public function getPrefixesPsr4()
- {
- return $this->prefixDirsPsr4;
- }
-
- public function getFallbackDirs()
- {
- return $this->fallbackDirsPsr0;
- }
-
- public function getFallbackDirsPsr4()
- {
- return $this->fallbackDirsPsr4;
- }
-
- public function getClassMap()
- {
- return $this->classMap;
- }
-
- /**
- * @param array $classMap Class to filename map
- */
- public function addClassMap(array $classMap)
- {
- if ($this->classMap) {
- $this->classMap = array_merge($this->classMap, $classMap);
- } else {
- $this->classMap = $classMap;
- }
- }
-
- /**
- * Registers a set of PSR-0 directories for a given prefix, either
- * appending or prepending to the ones previously set for this prefix.
- *
- * @param string $prefix The prefix
- * @param array|string $paths The PSR-0 root directories
- * @param bool $prepend Whether to prepend the directories
- */
- public function add($prefix, $paths, $prepend = false)
- {
- if (!$prefix) {
- if ($prepend) {
- $this->fallbackDirsPsr0 = array_merge(
- (array) $paths,
- $this->fallbackDirsPsr0
- );
- } else {
- $this->fallbackDirsPsr0 = array_merge(
- $this->fallbackDirsPsr0,
- (array) $paths
- );
- }
-
- return;
- }
-
- $first = $prefix[0];
- if (!isset($this->prefixesPsr0[$first][$prefix])) {
- $this->prefixesPsr0[$first][$prefix] = (array) $paths;
-
- return;
- }
- if ($prepend) {
- $this->prefixesPsr0[$first][$prefix] = array_merge(
- (array) $paths,
- $this->prefixesPsr0[$first][$prefix]
- );
- } else {
- $this->prefixesPsr0[$first][$prefix] = array_merge(
- $this->prefixesPsr0[$first][$prefix],
- (array) $paths
- );
- }
- }
-
- /**
- * Registers a set of PSR-4 directories for a given namespace, either
- * appending or prepending to the ones previously set for this namespace.
- *
- * @param string $prefix The prefix/namespace, with trailing '\\'
- * @param array|string $paths The PSR-4 base directories
- * @param bool $prepend Whether to prepend the directories
- *
- * @throws \InvalidArgumentException
- */
- public function addPsr4($prefix, $paths, $prepend = false)
- {
- if (!$prefix) {
- // Register directories for the root namespace.
- if ($prepend) {
- $this->fallbackDirsPsr4 = array_merge(
- (array) $paths,
- $this->fallbackDirsPsr4
- );
- } else {
- $this->fallbackDirsPsr4 = array_merge(
- $this->fallbackDirsPsr4,
- (array) $paths
- );
- }
- } elseif (!isset($this->prefixDirsPsr4[$prefix])) {
- // Register directories for a new namespace.
- $length = strlen($prefix);
- if ('\\' !== $prefix[$length - 1]) {
- throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
- }
- $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
- $this->prefixDirsPsr4[$prefix] = (array) $paths;
- } elseif ($prepend) {
- // Prepend directories for an already registered namespace.
- $this->prefixDirsPsr4[$prefix] = array_merge(
- (array) $paths,
- $this->prefixDirsPsr4[$prefix]
- );
- } else {
- // Append directories for an already registered namespace.
- $this->prefixDirsPsr4[$prefix] = array_merge(
- $this->prefixDirsPsr4[$prefix],
- (array) $paths
- );
- }
- }
-
- /**
- * Registers a set of PSR-0 directories for a given prefix,
- * replacing any others previously set for this prefix.
- *
- * @param string $prefix The prefix
- * @param array|string $paths The PSR-0 base directories
- */
- public function set($prefix, $paths)
- {
- if (!$prefix) {
- $this->fallbackDirsPsr0 = (array) $paths;
- } else {
- $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
- }
- }
-
- /**
- * Registers a set of PSR-4 directories for a given namespace,
- * replacing any others previously set for this namespace.
- *
- * @param string $prefix The prefix/namespace, with trailing '\\'
- * @param array|string $paths The PSR-4 base directories
- *
- * @throws \InvalidArgumentException
- */
- public function setPsr4($prefix, $paths)
- {
- if (!$prefix) {
- $this->fallbackDirsPsr4 = (array) $paths;
- } else {
- $length = strlen($prefix);
- if ('\\' !== $prefix[$length - 1]) {
- throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
- }
- $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
- $this->prefixDirsPsr4[$prefix] = (array) $paths;
- }
- }
-
- /**
- * Turns on searching the include path for class files.
- *
- * @param bool $useIncludePath
- */
- public function setUseIncludePath($useIncludePath)
- {
- $this->useIncludePath = $useIncludePath;
- }
-
- /**
- * Can be used to check if the autoloader uses the include path to check
- * for classes.
- *
- * @return bool
- */
- public function getUseIncludePath()
- {
- return $this->useIncludePath;
- }
-
- /**
- * Turns off searching the prefix and fallback directories for classes
- * that have not been registered with the class map.
- *
- * @param bool $classMapAuthoritative
- */
- public function setClassMapAuthoritative($classMapAuthoritative)
- {
- $this->classMapAuthoritative = $classMapAuthoritative;
- }
-
- /**
- * Should class lookup fail if not found in the current class map?
- *
- * @return bool
- */
- public function isClassMapAuthoritative()
- {
- return $this->classMapAuthoritative;
- }
-
- /**
- * APCu prefix to use to cache found/not-found classes, if the extension is enabled.
- *
- * @param string|null $apcuPrefix
- */
- public function setApcuPrefix($apcuPrefix)
- {
- $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
- }
-
- /**
- * The APCu prefix in use, or null if APCu caching is not enabled.
- *
- * @return string|null
- */
- public function getApcuPrefix()
- {
- return $this->apcuPrefix;
- }
-
- /**
- * Registers this instance as an autoloader.
- *
- * @param bool $prepend Whether to prepend the autoloader or not
- */
- public function register($prepend = false)
- {
- spl_autoload_register(array($this, 'loadClass'), true, $prepend);
- }
-
- /**
- * Unregisters this instance as an autoloader.
- */
- public function unregister()
- {
- spl_autoload_unregister(array($this, 'loadClass'));
- }
-
- /**
- * Loads the given class or interface.
- *
- * @param string $class The name of the class
- * @return bool|null True if loaded, null otherwise
- */
- public function loadClass($class)
- {
- if ($file = $this->findFile($class)) {
- includeFile($file);
-
- return true;
- }
- }
-
- /**
- * Finds the path to the file where the class is defined.
- *
- * @param string $class The name of the class
- *
- * @return string|false The path if found, false otherwise
- */
- public function findFile($class)
- {
- // class map lookup
- if (isset($this->classMap[$class])) {
- return $this->classMap[$class];
- }
- if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
- return false;
- }
- if (null !== $this->apcuPrefix) {
- $file = apcu_fetch($this->apcuPrefix.$class, $hit);
- if ($hit) {
- return $file;
- }
- }
-
- $file = $this->findFileWithExtension($class, '.php');
-
- // Search for Hack files if we are running on HHVM
- if (false === $file && defined('HHVM_VERSION')) {
- $file = $this->findFileWithExtension($class, '.hh');
- }
-
- if (null !== $this->apcuPrefix) {
- apcu_add($this->apcuPrefix.$class, $file);
- }
-
- if (false === $file) {
- // Remember that this class does not exist.
- $this->missingClasses[$class] = true;
- }
-
- return $file;
- }
-
- private function findFileWithExtension($class, $ext)
- {
- // PSR-4 lookup
- $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
-
- $first = $class[0];
- if (isset($this->prefixLengthsPsr4[$first])) {
- $subPath = $class;
- while (false !== $lastPos = strrpos($subPath, '\\')) {
- $subPath = substr($subPath, 0, $lastPos);
- $search = $subPath . '\\';
- if (isset($this->prefixDirsPsr4[$search])) {
- $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
- foreach ($this->prefixDirsPsr4[$search] as $dir) {
- if (file_exists($file = $dir . $pathEnd)) {
- return $file;
- }
- }
- }
- }
- }
-
- // PSR-4 fallback dirs
- foreach ($this->fallbackDirsPsr4 as $dir) {
- if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
- return $file;
- }
- }
-
- // PSR-0 lookup
- if (false !== $pos = strrpos($class, '\\')) {
- // namespaced class name
- $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
- . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
- } else {
- // PEAR-like class name
- $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
- }
-
- if (isset($this->prefixesPsr0[$first])) {
- foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
- if (0 === strpos($class, $prefix)) {
- foreach ($dirs as $dir) {
- if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
- return $file;
- }
- }
- }
- }
- }
-
- // PSR-0 fallback dirs
- foreach ($this->fallbackDirsPsr0 as $dir) {
- if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
- return $file;
- }
- }
-
- // PSR-0 include paths.
- if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
- return $file;
- }
-
- return false;
- }
-}
-
-/**
- * Scope isolated include.
- *
- * Prevents access to $this/self from included files.
- */
-function includeFile($file)
-{
- include $file;
-}
diff --git a/vendor/composer/LICENSE b/vendor/composer/LICENSE
deleted file mode 100644
index f27399a..0000000
--- a/vendor/composer/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-
-Copyright (c) Nils Adermann, Jordi Boggiano
-
-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/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php
deleted file mode 100644
index d529908..0000000
--- a/vendor/composer/autoload_classmap.php
+++ /dev/null
@@ -1,20 +0,0 @@
- $vendorDir . '/symfony/polyfill-php70/Resources/stubs/ArithmeticError.php',
- 'AssertionError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/AssertionError.php',
- 'DivisionByZeroError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/DivisionByZeroError.php',
- 'Error' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/Error.php',
- 'Normalizer' => $vendorDir . '/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php',
- 'ParseError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/ParseError.php',
- 'SessionUpdateTimestampHandlerInterface' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/SessionUpdateTimestampHandlerInterface.php',
- 'Stringable' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Stringable.php',
- 'TypeError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/TypeError.php',
- 'UnhandledMatchError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php',
- 'ValueError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/ValueError.php',
-);
diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php
deleted file mode 100644
index 93cb880..0000000
--- a/vendor/composer/autoload_files.php
+++ /dev/null
@@ -1,23 +0,0 @@
- $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php',
- 'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php',
- 'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php',
- '9c67151ae59aff4788964ce8eb2a0f43' => $vendorDir . '/clue/stream-filter/src/functions_include.php',
- '6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php',
- 'c964ee0ededf28c96ebd9db5099ef910' => $vendorDir . '/guzzlehttp/promises/src/functions_include.php',
- '8cff32064859f4559445b89279f3199c' => $vendorDir . '/php-http/message/src/filters.php',
- 'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php',
- '023d27dca8066ef29e6739335ea73bad' => $vendorDir . '/symfony/polyfill-php70/bootstrap.php',
- '25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php',
- 'f598d06aa772fa33d905e87be6398fb1' => $vendorDir . '/symfony/polyfill-intl-idn/bootstrap.php',
- '37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php',
- '09f6b20656683369174dd6fa83b7e5fb' => $vendorDir . '/symfony/polyfill-uuid/bootstrap.php',
- 'fb4ca2d97fe7ba6af750497425204e70' => $vendorDir . '/sentry/sentry/src/functions.php',
-);
diff --git a/vendor/composer/autoload_namespaces.php b/vendor/composer/autoload_namespaces.php
deleted file mode 100644
index b7fc012..0000000
--- a/vendor/composer/autoload_namespaces.php
+++ /dev/null
@@ -1,9 +0,0 @@
- array($vendorDir . '/symfony/polyfill-uuid'),
- 'Symfony\\Polyfill\\Php80\\' => array($vendorDir . '/symfony/polyfill-php80'),
- 'Symfony\\Polyfill\\Php72\\' => array($vendorDir . '/symfony/polyfill-php72'),
- 'Symfony\\Polyfill\\Php70\\' => array($vendorDir . '/symfony/polyfill-php70'),
- 'Symfony\\Polyfill\\Intl\\Normalizer\\' => array($vendorDir . '/symfony/polyfill-intl-normalizer'),
- 'Symfony\\Polyfill\\Intl\\Idn\\' => array($vendorDir . '/symfony/polyfill-intl-idn'),
- 'Symfony\\Component\\OptionsResolver\\' => array($vendorDir . '/symfony/options-resolver'),
- 'Sentry\\' => array($vendorDir . '/sentry/sentry/src'),
- 'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'),
- 'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-factory/src', $vendorDir . '/psr/http-message/src'),
- 'Psr\\Http\\Client\\' => array($vendorDir . '/psr/http-client/src'),
- 'PackageVersions\\' => array($vendorDir . '/composer/package-versions-deprecated/src/PackageVersions'),
- 'Jean85\\' => array($vendorDir . '/jean85/pretty-package-versions/src'),
- 'Http\\Promise\\' => array($vendorDir . '/php-http/promise/src'),
- 'Http\\Message\\' => array($vendorDir . '/php-http/message/src', $vendorDir . '/php-http/message-factory/src'),
- 'Http\\Factory\\Guzzle\\' => array($vendorDir . '/http-interop/http-factory-guzzle/src'),
- 'Http\\Discovery\\' => array($vendorDir . '/php-http/discovery/src'),
- 'Http\\Client\\Common\\' => array($vendorDir . '/php-http/client-common/src'),
- 'Http\\Client\\' => array($vendorDir . '/php-http/httplug/src'),
- 'Http\\Adapter\\Guzzle6\\' => array($vendorDir . '/php-http/guzzle6-adapter/src'),
- 'GuzzleHttp\\Psr7\\' => array($vendorDir . '/guzzlehttp/psr7/src'),
- 'GuzzleHttp\\Promise\\' => array($vendorDir . '/guzzlehttp/promises/src'),
- 'GuzzleHttp\\' => array($vendorDir . '/guzzlehttp/guzzle/src'),
- 'Clue\\StreamFilter\\' => array($vendorDir . '/clue/stream-filter/src'),
-);
diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php
deleted file mode 100644
index 1205311..0000000
--- a/vendor/composer/autoload_real.php
+++ /dev/null
@@ -1,73 +0,0 @@
-= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
- if ($useStaticLoader) {
- require_once __DIR__ . '/autoload_static.php';
-
- call_user_func(\Composer\Autoload\ComposerStaticInite7d02b68c97bef1a87c226b569defb55::getInitializer($loader));
- } else {
- $map = require __DIR__ . '/autoload_namespaces.php';
- foreach ($map as $namespace => $path) {
- $loader->set($namespace, $path);
- }
-
- $map = require __DIR__ . '/autoload_psr4.php';
- foreach ($map as $namespace => $path) {
- $loader->setPsr4($namespace, $path);
- }
-
- $classMap = require __DIR__ . '/autoload_classmap.php';
- if ($classMap) {
- $loader->addClassMap($classMap);
- }
- }
-
- $loader->register(true);
-
- if ($useStaticLoader) {
- $includeFiles = Composer\Autoload\ComposerStaticInite7d02b68c97bef1a87c226b569defb55::$files;
- } else {
- $includeFiles = require __DIR__ . '/autoload_files.php';
- }
- foreach ($includeFiles as $fileIdentifier => $file) {
- composerRequiree7d02b68c97bef1a87c226b569defb55($fileIdentifier, $file);
- }
-
- return $loader;
- }
-}
-
-function composerRequiree7d02b68c97bef1a87c226b569defb55($fileIdentifier, $file)
-{
- if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
- require $file;
-
- $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
- }
-}
diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php
deleted file mode 100644
index 0f757ac..0000000
--- a/vendor/composer/autoload_static.php
+++ /dev/null
@@ -1,195 +0,0 @@
- __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php',
- 'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php',
- 'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php',
- '9c67151ae59aff4788964ce8eb2a0f43' => __DIR__ . '/..' . '/clue/stream-filter/src/functions_include.php',
- '6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php',
- 'c964ee0ededf28c96ebd9db5099ef910' => __DIR__ . '/..' . '/guzzlehttp/promises/src/functions_include.php',
- '8cff32064859f4559445b89279f3199c' => __DIR__ . '/..' . '/php-http/message/src/filters.php',
- 'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php',
- '023d27dca8066ef29e6739335ea73bad' => __DIR__ . '/..' . '/symfony/polyfill-php70/bootstrap.php',
- '25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',
- 'f598d06aa772fa33d905e87be6398fb1' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/bootstrap.php',
- '37a3dc5111fe8f707ab4c132ef1dbc62' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/functions_include.php',
- '09f6b20656683369174dd6fa83b7e5fb' => __DIR__ . '/..' . '/symfony/polyfill-uuid/bootstrap.php',
- 'fb4ca2d97fe7ba6af750497425204e70' => __DIR__ . '/..' . '/sentry/sentry/src/functions.php',
- );
-
- public static $prefixLengthsPsr4 = array (
- 'S' =>
- array (
- 'Symfony\\Polyfill\\Uuid\\' => 22,
- 'Symfony\\Polyfill\\Php80\\' => 23,
- 'Symfony\\Polyfill\\Php72\\' => 23,
- 'Symfony\\Polyfill\\Php70\\' => 23,
- 'Symfony\\Polyfill\\Intl\\Normalizer\\' => 33,
- 'Symfony\\Polyfill\\Intl\\Idn\\' => 26,
- 'Symfony\\Component\\OptionsResolver\\' => 34,
- 'Sentry\\' => 7,
- ),
- 'P' =>
- array (
- 'Psr\\Log\\' => 8,
- 'Psr\\Http\\Message\\' => 17,
- 'Psr\\Http\\Client\\' => 16,
- 'PackageVersions\\' => 16,
- ),
- 'J' =>
- array (
- 'Jean85\\' => 7,
- ),
- 'H' =>
- array (
- 'Http\\Promise\\' => 13,
- 'Http\\Message\\' => 13,
- 'Http\\Factory\\Guzzle\\' => 20,
- 'Http\\Discovery\\' => 15,
- 'Http\\Client\\Common\\' => 19,
- 'Http\\Client\\' => 12,
- 'Http\\Adapter\\Guzzle6\\' => 21,
- ),
- 'G' =>
- array (
- 'GuzzleHttp\\Psr7\\' => 16,
- 'GuzzleHttp\\Promise\\' => 19,
- 'GuzzleHttp\\' => 11,
- ),
- 'C' =>
- array (
- 'Clue\\StreamFilter\\' => 18,
- ),
- );
-
- public static $prefixDirsPsr4 = array (
- 'Symfony\\Polyfill\\Uuid\\' =>
- array (
- 0 => __DIR__ . '/..' . '/symfony/polyfill-uuid',
- ),
- 'Symfony\\Polyfill\\Php80\\' =>
- array (
- 0 => __DIR__ . '/..' . '/symfony/polyfill-php80',
- ),
- 'Symfony\\Polyfill\\Php72\\' =>
- array (
- 0 => __DIR__ . '/..' . '/symfony/polyfill-php72',
- ),
- 'Symfony\\Polyfill\\Php70\\' =>
- array (
- 0 => __DIR__ . '/..' . '/symfony/polyfill-php70',
- ),
- 'Symfony\\Polyfill\\Intl\\Normalizer\\' =>
- array (
- 0 => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer',
- ),
- 'Symfony\\Polyfill\\Intl\\Idn\\' =>
- array (
- 0 => __DIR__ . '/..' . '/symfony/polyfill-intl-idn',
- ),
- 'Symfony\\Component\\OptionsResolver\\' =>
- array (
- 0 => __DIR__ . '/..' . '/symfony/options-resolver',
- ),
- 'Sentry\\' =>
- array (
- 0 => __DIR__ . '/..' . '/sentry/sentry/src',
- ),
- 'Psr\\Log\\' =>
- array (
- 0 => __DIR__ . '/..' . '/psr/log/Psr/Log',
- ),
- 'Psr\\Http\\Message\\' =>
- array (
- 0 => __DIR__ . '/..' . '/psr/http-factory/src',
- 1 => __DIR__ . '/..' . '/psr/http-message/src',
- ),
- 'Psr\\Http\\Client\\' =>
- array (
- 0 => __DIR__ . '/..' . '/psr/http-client/src',
- ),
- 'PackageVersions\\' =>
- array (
- 0 => __DIR__ . '/..' . '/composer/package-versions-deprecated/src/PackageVersions',
- ),
- 'Jean85\\' =>
- array (
- 0 => __DIR__ . '/..' . '/jean85/pretty-package-versions/src',
- ),
- 'Http\\Promise\\' =>
- array (
- 0 => __DIR__ . '/..' . '/php-http/promise/src',
- ),
- 'Http\\Message\\' =>
- array (
- 0 => __DIR__ . '/..' . '/php-http/message/src',
- 1 => __DIR__ . '/..' . '/php-http/message-factory/src',
- ),
- 'Http\\Factory\\Guzzle\\' =>
- array (
- 0 => __DIR__ . '/..' . '/http-interop/http-factory-guzzle/src',
- ),
- 'Http\\Discovery\\' =>
- array (
- 0 => __DIR__ . '/..' . '/php-http/discovery/src',
- ),
- 'Http\\Client\\Common\\' =>
- array (
- 0 => __DIR__ . '/..' . '/php-http/client-common/src',
- ),
- 'Http\\Client\\' =>
- array (
- 0 => __DIR__ . '/..' . '/php-http/httplug/src',
- ),
- 'Http\\Adapter\\Guzzle6\\' =>
- array (
- 0 => __DIR__ . '/..' . '/php-http/guzzle6-adapter/src',
- ),
- 'GuzzleHttp\\Psr7\\' =>
- array (
- 0 => __DIR__ . '/..' . '/guzzlehttp/psr7/src',
- ),
- 'GuzzleHttp\\Promise\\' =>
- array (
- 0 => __DIR__ . '/..' . '/guzzlehttp/promises/src',
- ),
- 'GuzzleHttp\\' =>
- array (
- 0 => __DIR__ . '/..' . '/guzzlehttp/guzzle/src',
- ),
- 'Clue\\StreamFilter\\' =>
- array (
- 0 => __DIR__ . '/..' . '/clue/stream-filter/src',
- ),
- );
-
- public static $classMap = array (
- 'ArithmeticError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/ArithmeticError.php',
- 'AssertionError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/AssertionError.php',
- 'DivisionByZeroError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/DivisionByZeroError.php',
- 'Error' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/Error.php',
- 'Normalizer' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php',
- 'ParseError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/ParseError.php',
- 'SessionUpdateTimestampHandlerInterface' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/SessionUpdateTimestampHandlerInterface.php',
- 'Stringable' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Stringable.php',
- 'TypeError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/TypeError.php',
- 'UnhandledMatchError' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php',
- 'ValueError' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/ValueError.php',
- );
-
- public static function getInitializer(ClassLoader $loader)
- {
- return \Closure::bind(function () use ($loader) {
- $loader->prefixLengthsPsr4 = ComposerStaticInite7d02b68c97bef1a87c226b569defb55::$prefixLengthsPsr4;
- $loader->prefixDirsPsr4 = ComposerStaticInite7d02b68c97bef1a87c226b569defb55::$prefixDirsPsr4;
- $loader->classMap = ComposerStaticInite7d02b68c97bef1a87c226b569defb55::$classMap;
-
- }, null, ClassLoader::class);
- }
-}
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
deleted file mode 100644
index 6458ba2..0000000
--- a/vendor/composer/installed.json
+++ /dev/null
@@ -1,1924 +0,0 @@
-[
- {
- "name": "clue/stream-filter",
- "version": "v1.4.1",
- "version_normalized": "1.4.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/clue/php-stream-filter.git",
- "reference": "5a58cc30a8bd6a4eb8f856adf61dd3e013f53f71"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/clue/php-stream-filter/zipball/5a58cc30a8bd6a4eb8f856adf61dd3e013f53f71",
- "reference": "5a58cc30a8bd6a4eb8f856adf61dd3e013f53f71",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3"
- },
- "require-dev": {
- "phpunit/phpunit": "^5.0 || ^4.8"
- },
- "time": "2019-04-09T12:31:48+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Clue\\StreamFilter\\": "src/"
- },
- "files": [
- "src/functions_include.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Christian Lück",
- "email": "christian@lueck.tv"
- }
- ],
- "description": "A simple and modern approach to stream filtering in PHP",
- "homepage": "https://github.com/clue/php-stream-filter",
- "keywords": [
- "bucket brigade",
- "callback",
- "filter",
- "php_user_filter",
- "stream",
- "stream_filter_append",
- "stream_filter_register"
- ]
- },
- {
- "name": "composer/package-versions-deprecated",
- "version": "1.10.99",
- "version_normalized": "1.10.99.0",
- "source": {
- "type": "git",
- "url": "https://github.com/composer/package-versions-deprecated.git",
- "reference": "dd51b4443d58b34b6d9344cf4c288e621c9a826f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/dd51b4443d58b34b6d9344cf4c288e621c9a826f",
- "reference": "dd51b4443d58b34b6d9344cf4c288e621c9a826f",
- "shasum": ""
- },
- "require": {
- "composer-plugin-api": "^1.1.0 || ^2.0",
- "php": "^7"
- },
- "replace": {
- "ocramius/package-versions": "1.10.99"
- },
- "require-dev": {
- "composer/composer": "^1.9.3 || ^2.0@dev",
- "ext-zip": "^1.13",
- "phpunit/phpunit": "^6.5 || ^7"
- },
- "time": "2020-07-15T08:39:18+00:00",
- "type": "composer-plugin",
- "extra": {
- "class": "PackageVersions\\Installer",
- "branch-alias": {
- "dev-master": "1.x-dev"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "PackageVersions\\": "src/PackageVersions"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Marco Pivetta",
- "email": "ocramius@gmail.com"
- },
- {
- "name": "Jordi Boggiano",
- "email": "j.boggiano@seld.be"
- }
- ],
- "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)",
- "funding": [
- {
- "url": "https://packagist.com",
- "type": "custom"
- },
- {
- "url": "https://github.com/composer",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/composer/composer",
- "type": "tidelift"
- }
- ]
- },
- {
- "name": "guzzlehttp/guzzle",
- "version": "6.5.5",
- "version_normalized": "6.5.5.0",
- "source": {
- "type": "git",
- "url": "https://github.com/guzzle/guzzle.git",
- "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/guzzle/guzzle/zipball/9d4290de1cfd701f38099ef7e183b64b4b7b0c5e",
- "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e",
- "shasum": ""
- },
- "require": {
- "ext-json": "*",
- "guzzlehttp/promises": "^1.0",
- "guzzlehttp/psr7": "^1.6.1",
- "php": ">=5.5",
- "symfony/polyfill-intl-idn": "^1.17.0"
- },
- "require-dev": {
- "ext-curl": "*",
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0",
- "psr/log": "^1.1"
- },
- "suggest": {
- "psr/log": "Required for using the Log middleware"
- },
- "time": "2020-06-16T21:01:06+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "6.5-dev"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "GuzzleHttp\\": "src/"
- },
- "files": [
- "src/functions_include.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- }
- ],
- "description": "Guzzle is a PHP HTTP client library",
- "homepage": "http://guzzlephp.org/",
- "keywords": [
- "client",
- "curl",
- "framework",
- "http",
- "http client",
- "rest",
- "web service"
- ]
- },
- {
- "name": "guzzlehttp/promises",
- "version": "v1.3.1",
- "version_normalized": "1.3.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/guzzle/promises.git",
- "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646",
- "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646",
- "shasum": ""
- },
- "require": {
- "php": ">=5.5.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.0"
- },
- "time": "2016-12-20T10:07:11+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.4-dev"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "GuzzleHttp\\Promise\\": "src/"
- },
- "files": [
- "src/functions_include.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- }
- ],
- "description": "Guzzle promises library",
- "keywords": [
- "promise"
- ]
- },
- {
- "name": "guzzlehttp/psr7",
- "version": "1.6.1",
- "version_normalized": "1.6.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/guzzle/psr7.git",
- "reference": "239400de7a173fe9901b9ac7c06497751f00727a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/guzzle/psr7/zipball/239400de7a173fe9901b9ac7c06497751f00727a",
- "reference": "239400de7a173fe9901b9ac7c06497751f00727a",
- "shasum": ""
- },
- "require": {
- "php": ">=5.4.0",
- "psr/http-message": "~1.0",
- "ralouphie/getallheaders": "^2.0.5 || ^3.0.0"
- },
- "provide": {
- "psr/http-message-implementation": "1.0"
- },
- "require-dev": {
- "ext-zlib": "*",
- "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.8"
- },
- "suggest": {
- "zendframework/zend-httphandlerrunner": "Emit PSR-7 responses"
- },
- "time": "2019-07-01T23:21:34+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.6-dev"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "GuzzleHttp\\Psr7\\": "src/"
- },
- "files": [
- "src/functions_include.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- },
- {
- "name": "Tobias Schultze",
- "homepage": "https://github.com/Tobion"
- }
- ],
- "description": "PSR-7 message implementation that also provides common utility methods",
- "keywords": [
- "http",
- "message",
- "psr-7",
- "request",
- "response",
- "stream",
- "uri",
- "url"
- ]
- },
- {
- "name": "http-interop/http-factory-guzzle",
- "version": "1.0.0",
- "version_normalized": "1.0.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/http-interop/http-factory-guzzle.git",
- "reference": "34861658efb9899a6618cef03de46e2a52c80fc0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/http-interop/http-factory-guzzle/zipball/34861658efb9899a6618cef03de46e2a52c80fc0",
- "reference": "34861658efb9899a6618cef03de46e2a52c80fc0",
- "shasum": ""
- },
- "require": {
- "guzzlehttp/psr7": "^1.4.2",
- "psr/http-factory": "^1.0"
- },
- "provide": {
- "psr/http-factory-implementation": "^1.0"
- },
- "require-dev": {
- "http-interop/http-factory-tests": "^0.5",
- "phpunit/phpunit": "^6.5"
- },
- "time": "2018-07-31T19:32:56+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Http\\Factory\\Guzzle\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
- }
- ],
- "description": "An HTTP Factory using Guzzle PSR7",
- "keywords": [
- "factory",
- "http",
- "psr-17",
- "psr-7"
- ]
- },
- {
- "name": "jean85/pretty-package-versions",
- "version": "1.5.0",
- "version_normalized": "1.5.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Jean85/pretty-package-versions.git",
- "reference": "e9f4324e88b8664be386d90cf60fbc202e1f7fc9"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/e9f4324e88b8664be386d90cf60fbc202e1f7fc9",
- "reference": "e9f4324e88b8664be386d90cf60fbc202e1f7fc9",
- "shasum": ""
- },
- "require": {
- "composer/package-versions-deprecated": "^1.8.0",
- "php": "^7.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^6.0"
- },
- "time": "2020-06-23T06:23:06+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.x-dev"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Jean85\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Alessandro Lai",
- "email": "alessandro.lai85@gmail.com"
- }
- ],
- "description": "A wrapper for ocramius/package-versions to get pretty versions strings",
- "keywords": [
- "composer",
- "package",
- "release",
- "versions"
- ]
- },
- {
- "name": "paragonie/random_compat",
- "version": "v9.99.99",
- "version_normalized": "9.99.99.0",
- "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."
- },
- "time": "2018-07-02T15:55:56+00:00",
- "type": "library",
- "installation-source": "dist",
- "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"
- ]
- },
- {
- "name": "php-http/client-common",
- "version": "2.3.0",
- "version_normalized": "2.3.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-http/client-common.git",
- "reference": "e37e46c610c87519753135fb893111798c69076a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-http/client-common/zipball/e37e46c610c87519753135fb893111798c69076a",
- "reference": "e37e46c610c87519753135fb893111798c69076a",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0",
- "php-http/httplug": "^2.0",
- "php-http/message": "^1.6",
- "php-http/message-factory": "^1.0",
- "psr/http-client": "^1.0",
- "psr/http-factory": "^1.0",
- "psr/http-message": "^1.0",
- "symfony/options-resolver": "^2.6 || ^3.4.20 || ~4.0.15 || ~4.1.9 || ^4.2.1 || ^5.0",
- "symfony/polyfill-php80": "^1.17"
- },
- "require-dev": {
- "doctrine/instantiator": "^1.1",
- "guzzlehttp/psr7": "^1.4",
- "nyholm/psr7": "^1.2",
- "phpspec/phpspec": "^5.1 || ^6.0",
- "phpspec/prophecy": "^1.10.2",
- "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.3"
- },
- "suggest": {
- "ext-json": "To detect JSON responses with the ContentTypePlugin",
- "ext-libxml": "To detect XML responses with the ContentTypePlugin",
- "php-http/cache-plugin": "PSR-6 Cache plugin",
- "php-http/logger-plugin": "PSR-3 Logger plugin",
- "php-http/stopwatch-plugin": "Symfony Stopwatch plugin"
- },
- "time": "2020-07-21T10:04:13+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.3.x-dev"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Http\\Client\\Common\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Márk Sági-Kazár",
- "email": "mark.sagikazar@gmail.com"
- }
- ],
- "description": "Common HTTP Client implementations and tools for HTTPlug",
- "homepage": "http://httplug.io",
- "keywords": [
- "client",
- "common",
- "http",
- "httplug"
- ]
- },
- {
- "name": "php-http/discovery",
- "version": "1.9.1",
- "version_normalized": "1.9.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-http/discovery.git",
- "reference": "64a18cc891957e05d91910b3c717d6bd11fbede9"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-http/discovery/zipball/64a18cc891957e05d91910b3c717d6bd11fbede9",
- "reference": "64a18cc891957e05d91910b3c717d6bd11fbede9",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0"
- },
- "conflict": {
- "nyholm/psr7": "<1.0"
- },
- "require-dev": {
- "graham-campbell/phpspec-skip-example-extension": "^5.0",
- "php-http/httplug": "^1.0 || ^2.0",
- "php-http/message-factory": "^1.0",
- "phpspec/phpspec": "^5.1 || ^6.1",
- "puli/composer-plugin": "1.0.0-beta10"
- },
- "suggest": {
- "php-http/message": "Allow to use Guzzle, Diactoros or Slim Framework factories",
- "puli/composer-plugin": "Sets up Puli which is recommended for Discovery to work. Check http://docs.php-http.org/en/latest/discovery.html for more details."
- },
- "time": "2020-07-13T15:44:45+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.9-dev"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Http\\Discovery\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Márk Sági-Kazár",
- "email": "mark.sagikazar@gmail.com"
- }
- ],
- "description": "Finds installed HTTPlug implementations and PSR-7 message factories",
- "homepage": "http://php-http.org",
- "keywords": [
- "adapter",
- "client",
- "discovery",
- "factory",
- "http",
- "message",
- "psr7"
- ]
- },
- {
- "name": "php-http/guzzle6-adapter",
- "version": "v2.0.1",
- "version_normalized": "2.0.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-http/guzzle6-adapter.git",
- "reference": "6074a4b1f4d5c21061b70bab3b8ad484282fe31f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-http/guzzle6-adapter/zipball/6074a4b1f4d5c21061b70bab3b8ad484282fe31f",
- "reference": "6074a4b1f4d5c21061b70bab3b8ad484282fe31f",
- "shasum": ""
- },
- "require": {
- "guzzlehttp/guzzle": "^6.0",
- "php": "^7.1",
- "php-http/httplug": "^2.0",
- "psr/http-client": "^1.0"
- },
- "provide": {
- "php-http/async-client-implementation": "1.0",
- "php-http/client-implementation": "1.0",
- "psr/http-client-implementation": "1.0"
- },
- "require-dev": {
- "ext-curl": "*",
- "php-http/client-integration-tests": "^2.0",
- "phpunit/phpunit": "^7.4"
- },
- "time": "2018-12-16T14:44:03+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.x-dev"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Http\\Adapter\\Guzzle6\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Márk Sági-Kazár",
- "email": "mark.sagikazar@gmail.com"
- },
- {
- "name": "David de Boer",
- "email": "david@ddeboer.nl"
- }
- ],
- "description": "Guzzle 6 HTTP Adapter",
- "homepage": "http://httplug.io",
- "keywords": [
- "Guzzle",
- "http"
- ]
- },
- {
- "name": "php-http/httplug",
- "version": "2.2.0",
- "version_normalized": "2.2.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-http/httplug.git",
- "reference": "191a0a1b41ed026b717421931f8d3bd2514ffbf9"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-http/httplug/zipball/191a0a1b41ed026b717421931f8d3bd2514ffbf9",
- "reference": "191a0a1b41ed026b717421931f8d3bd2514ffbf9",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0",
- "php-http/promise": "^1.1",
- "psr/http-client": "^1.0",
- "psr/http-message": "^1.0"
- },
- "require-dev": {
- "friends-of-phpspec/phpspec-code-coverage": "^4.1",
- "phpspec/phpspec": "^5.1 || ^6.0"
- },
- "time": "2020-07-13T15:43:23+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.x-dev"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Http\\Client\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Eric GELOEN",
- "email": "geloen.eric@gmail.com"
- },
- {
- "name": "Márk Sági-Kazár",
- "email": "mark.sagikazar@gmail.com",
- "homepage": "https://sagikazarmark.hu"
- }
- ],
- "description": "HTTPlug, the HTTP client abstraction for PHP",
- "homepage": "http://httplug.io",
- "keywords": [
- "client",
- "http"
- ]
- },
- {
- "name": "php-http/message",
- "version": "1.8.0",
- "version_normalized": "1.8.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-http/message.git",
- "reference": "ce8f43ac1e294b54aabf5808515c3554a19c1e1c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-http/message/zipball/ce8f43ac1e294b54aabf5808515c3554a19c1e1c",
- "reference": "ce8f43ac1e294b54aabf5808515c3554a19c1e1c",
- "shasum": ""
- },
- "require": {
- "clue/stream-filter": "^1.4",
- "php": "^7.1",
- "php-http/message-factory": "^1.0.2",
- "psr/http-message": "^1.0"
- },
- "provide": {
- "php-http/message-factory-implementation": "1.0"
- },
- "require-dev": {
- "akeneo/phpspec-skip-example-extension": "^1.0",
- "coduo/phpspec-data-provider-extension": "^1.0",
- "ext-zlib": "*",
- "guzzlehttp/psr7": "^1.0",
- "henrikbjorn/phpspec-code-coverage": "^1.0",
- "phpspec/phpspec": "^2.4",
- "slim/slim": "^3.0",
- "zendframework/zend-diactoros": "^1.0"
- },
- "suggest": {
- "ext-zlib": "Used with compressor/decompressor streams",
- "guzzlehttp/psr7": "Used with Guzzle PSR-7 Factories",
- "slim/slim": "Used with Slim Framework PSR-7 implementation",
- "zendframework/zend-diactoros": "Used with Diactoros Factories"
- },
- "time": "2019-08-05T06:55:08+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.8-dev"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Http\\Message\\": "src/"
- },
- "files": [
- "src/filters.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Márk Sági-Kazár",
- "email": "mark.sagikazar@gmail.com"
- }
- ],
- "description": "HTTP Message related tools",
- "homepage": "http://php-http.org",
- "keywords": [
- "http",
- "message",
- "psr-7"
- ]
- },
- {
- "name": "php-http/message-factory",
- "version": "v1.0.2",
- "version_normalized": "1.0.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-http/message-factory.git",
- "reference": "a478cb11f66a6ac48d8954216cfed9aa06a501a1"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-http/message-factory/zipball/a478cb11f66a6ac48d8954216cfed9aa06a501a1",
- "reference": "a478cb11f66a6ac48d8954216cfed9aa06a501a1",
- "shasum": ""
- },
- "require": {
- "php": ">=5.4",
- "psr/http-message": "^1.0"
- },
- "time": "2015-12-19T14:08:53+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0-dev"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Http\\Message\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Márk Sági-Kazár",
- "email": "mark.sagikazar@gmail.com"
- }
- ],
- "description": "Factory interfaces for PSR-7 HTTP Message",
- "homepage": "http://php-http.org",
- "keywords": [
- "factory",
- "http",
- "message",
- "stream",
- "uri"
- ]
- },
- {
- "name": "php-http/promise",
- "version": "1.1.0",
- "version_normalized": "1.1.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-http/promise.git",
- "reference": "4c4c1f9b7289a2ec57cde7f1e9762a5789506f88"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-http/promise/zipball/4c4c1f9b7289a2ec57cde7f1e9762a5789506f88",
- "reference": "4c4c1f9b7289a2ec57cde7f1e9762a5789506f88",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0"
- },
- "require-dev": {
- "friends-of-phpspec/phpspec-code-coverage": "^4.3.2",
- "phpspec/phpspec": "^5.1.2 || ^6.2"
- },
- "time": "2020-07-07T09:29:14+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.1-dev"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Http\\Promise\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Joel Wurtz",
- "email": "joel.wurtz@gmail.com"
- },
- {
- "name": "Márk Sági-Kazár",
- "email": "mark.sagikazar@gmail.com"
- }
- ],
- "description": "Promise used for asynchronous HTTP requests",
- "homepage": "http://httplug.io",
- "keywords": [
- "promise"
- ]
- },
- {
- "name": "psr/http-client",
- "version": "1.0.1",
- "version_normalized": "1.0.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/http-client.git",
- "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621",
- "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621",
- "shasum": ""
- },
- "require": {
- "php": "^7.0 || ^8.0",
- "psr/http-message": "^1.0"
- },
- "time": "2020-06-29T06:28:15+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Psr\\Http\\Client\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
- }
- ],
- "description": "Common interface for HTTP clients",
- "homepage": "https://github.com/php-fig/http-client",
- "keywords": [
- "http",
- "http-client",
- "psr",
- "psr-18"
- ]
- },
- {
- "name": "psr/http-factory",
- "version": "1.0.1",
- "version_normalized": "1.0.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/http-factory.git",
- "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
- "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
- "shasum": ""
- },
- "require": {
- "php": ">=7.0.0",
- "psr/http-message": "^1.0"
- },
- "time": "2019-04-30T12:38:16+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Psr\\Http\\Message\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
- }
- ],
- "description": "Common interfaces for PSR-7 HTTP message factories",
- "keywords": [
- "factory",
- "http",
- "message",
- "psr",
- "psr-17",
- "psr-7",
- "request",
- "response"
- ]
- },
- {
- "name": "psr/http-message",
- "version": "1.0.1",
- "version_normalized": "1.0.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/http-message.git",
- "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
- "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "time": "2016-08-06T14:39:51+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Psr\\Http\\Message\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
- }
- ],
- "description": "Common interface for HTTP messages",
- "homepage": "https://github.com/php-fig/http-message",
- "keywords": [
- "http",
- "http-message",
- "psr",
- "psr-7",
- "request",
- "response"
- ]
- },
- {
- "name": "psr/log",
- "version": "1.1.3",
- "version_normalized": "1.1.3.0",
- "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"
- },
- "time": "2020-03-23T09:12:05+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.1.x-dev"
- }
- },
- "installation-source": "dist",
- "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"
- ]
- },
- {
- "name": "ralouphie/getallheaders",
- "version": "3.0.3",
- "version_normalized": "3.0.3.0",
- "source": {
- "type": "git",
- "url": "https://github.com/ralouphie/getallheaders.git",
- "reference": "120b605dfeb996808c31b6477290a714d356e822"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
- "reference": "120b605dfeb996808c31b6477290a714d356e822",
- "shasum": ""
- },
- "require": {
- "php": ">=5.6"
- },
- "require-dev": {
- "php-coveralls/php-coveralls": "^2.1",
- "phpunit/phpunit": "^5 || ^6.5"
- },
- "time": "2019-03-08T08:55:37+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "files": [
- "src/getallheaders.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Ralph Khattar",
- "email": "ralph.khattar@gmail.com"
- }
- ],
- "description": "A polyfill for getallheaders."
- },
- {
- "name": "sentry/sdk",
- "version": "2.1.0",
- "version_normalized": "2.1.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/getsentry/sentry-php-sdk.git",
- "reference": "18921af9c2777517ef9fb480845c22a98554d6af"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/getsentry/sentry-php-sdk/zipball/18921af9c2777517ef9fb480845c22a98554d6af",
- "reference": "18921af9c2777517ef9fb480845c22a98554d6af",
- "shasum": ""
- },
- "require": {
- "http-interop/http-factory-guzzle": "^1.0",
- "php-http/guzzle6-adapter": "^1.1|^2.0",
- "sentry/sentry": "^2.3"
- },
- "time": "2020-01-08T19:16:29+00:00",
- "type": "metapackage",
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Sentry",
- "email": "accounts@sentry.io"
- }
- ],
- "description": "This is a metapackage shipping sentry/sentry with a recommended http client."
- },
- {
- "name": "sentry/sentry",
- "version": "2.4.2",
- "version_normalized": "2.4.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/getsentry/sentry-php.git",
- "reference": "b3b4f4a08b184c3f22b208f357e8720ef42938b0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/b3b4f4a08b184c3f22b208f357e8720ef42938b0",
- "reference": "b3b4f4a08b184c3f22b208f357e8720ef42938b0",
- "shasum": ""
- },
- "require": {
- "ext-json": "*",
- "ext-mbstring": "*",
- "guzzlehttp/promises": "^1.3",
- "guzzlehttp/psr7": "^1.6",
- "jean85/pretty-package-versions": "^1.2",
- "php": "^7.1",
- "php-http/async-client-implementation": "^1.0",
- "php-http/client-common": "^1.5|^2.0",
- "php-http/discovery": "^1.6.1",
- "php-http/httplug": "^1.1|^2.0",
- "php-http/message": "^1.5",
- "psr/http-factory": "^1.0",
- "psr/http-message-implementation": "^1.0",
- "psr/log": "^1.0",
- "symfony/options-resolver": "^2.7|^3.0|^4.0|^5.0",
- "symfony/polyfill-uuid": "^1.13.1"
- },
- "conflict": {
- "php-http/client-common": "1.8.0",
- "raven/raven": "*"
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "^2.16",
- "monolog/monolog": "^1.3|^2.0",
- "php-http/mock-client": "^1.3",
- "phpstan/extension-installer": "^1.0",
- "phpstan/phpstan": "^0.12",
- "phpstan/phpstan-phpunit": "^0.12",
- "phpunit/phpunit": "^7.5.18",
- "symfony/phpunit-bridge": "^4.3|^5.0",
- "vimeo/psalm": "^3.4"
- },
- "suggest": {
- "monolog/monolog": "Allow sending log messages to Sentry by using the included Monolog handler."
- },
- "time": "2020-07-24T07:02:19+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.4-dev"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "files": [
- "src/functions.php"
- ],
- "psr-4": {
- "Sentry\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sentry",
- "email": "accounts@sentry.io"
- }
- ],
- "description": "A PHP SDK for Sentry (http://sentry.io)",
- "homepage": "http://sentry.io",
- "keywords": [
- "crash-reporting",
- "crash-reports",
- "error-handler",
- "error-monitoring",
- "log",
- "logging",
- "sentry"
- ],
- "funding": [
- {
- "url": "https://sentry.io/",
- "type": "custom"
- },
- {
- "url": "https://sentry.io/pricing/",
- "type": "custom"
- }
- ]
- },
- {
- "name": "symfony/deprecation-contracts",
- "version": "v2.1.3",
- "version_normalized": "2.1.3.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "5e20b83385a77593259c9f8beb2c43cd03b2ac14"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5e20b83385a77593259c9f8beb2c43cd03b2ac14",
- "reference": "5e20b83385a77593259c9f8beb2c43cd03b2ac14",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "time": "2020-06-06T08:49:21+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.1-dev"
- },
- "thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "files": [
- "function.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": "A generic function and convention to trigger deprecation notices",
- "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"
- }
- ]
- },
- {
- "name": "symfony/options-resolver",
- "version": "v5.1.3",
- "version_normalized": "5.1.3.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/options-resolver.git",
- "reference": "9ff59517938f88d90b6e65311fef08faa640f681"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/options-resolver/zipball/9ff59517938f88d90b6e65311fef08faa640f681",
- "reference": "9ff59517938f88d90b6e65311fef08faa640f681",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1",
- "symfony/polyfill-php80": "^1.15"
- },
- "time": "2020-07-12T12:58:00+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "5.1-dev"
- }
- },
- "installation-source": "dist",
- "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"
- }
- ]
- },
- {
- "name": "symfony/polyfill-intl-idn",
- "version": "v1.18.1",
- "version_normalized": "1.18.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-intl-idn.git",
- "reference": "5dcab1bc7146cf8c1beaa4502a3d9be344334251"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/5dcab1bc7146cf8c1beaa4502a3d9be344334251",
- "reference": "5dcab1bc7146cf8c1beaa4502a3d9be344334251",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3",
- "symfony/polyfill-intl-normalizer": "^1.10",
- "symfony/polyfill-php70": "^1.10",
- "symfony/polyfill-php72": "^1.10"
- },
- "suggest": {
- "ext-intl": "For best performance"
- },
- "time": "2020-08-04T06:02:08+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.18-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Intl\\Idn\\": ""
- },
- "files": [
- "bootstrap.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Laurent Bassin",
- "email": "laurent@bassin.info"
- },
- {
- "name": "Trevor Rowbotham",
- "email": "trevor.rowbotham@pm.me"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "idn",
- "intl",
- "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"
- }
- ]
- },
- {
- "name": "symfony/polyfill-intl-normalizer",
- "version": "v1.18.1",
- "version_normalized": "1.18.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
- "reference": "37078a8dd4a2a1e9ab0231af7c6cb671b2ed5a7e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/37078a8dd4a2a1e9ab0231af7c6cb671b2ed5a7e",
- "reference": "37078a8dd4a2a1e9ab0231af7c6cb671b2ed5a7e",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3"
- },
- "suggest": {
- "ext-intl": "For best performance"
- },
- "time": "2020-07-14T12:35:20+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.18-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
- },
- "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 for intl's Normalizer class and related functions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "intl",
- "normalizer",
- "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"
- }
- ]
- },
- {
- "name": "symfony/polyfill-php70",
- "version": "v1.18.1",
- "version_normalized": "1.18.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php70.git",
- "reference": "0dd93f2c578bdc9c72697eaa5f1dd25644e618d3"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/0dd93f2c578bdc9c72697eaa5f1dd25644e618d3",
- "reference": "0dd93f2c578bdc9c72697eaa5f1dd25644e618d3",
- "shasum": ""
- },
- "require": {
- "paragonie/random_compat": "~1.0|~2.0|~9.99",
- "php": ">=5.3.3"
- },
- "time": "2020-07-14T12:35:20+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.18-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "installation-source": "dist",
- "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"
- ],
- "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"
- }
- ]
- },
- {
- "name": "symfony/polyfill-php72",
- "version": "v1.18.1",
- "version_normalized": "1.18.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php72.git",
- "reference": "639447d008615574653fb3bc60d1986d7172eaae"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/639447d008615574653fb3bc60d1986d7172eaae",
- "reference": "639447d008615574653fb3bc60d1986d7172eaae",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3"
- },
- "time": "2020-07-14T12:35:20+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.18-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "installation-source": "dist",
- "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"
- }
- ]
- },
- {
- "name": "symfony/polyfill-php80",
- "version": "v1.18.1",
- "version_normalized": "1.18.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "d87d5766cbf48d72388a9f6b85f280c8ad51f981"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/d87d5766cbf48d72388a9f6b85f280c8ad51f981",
- "reference": "d87d5766cbf48d72388a9f6b85f280c8ad51f981",
- "shasum": ""
- },
- "require": {
- "php": ">=7.0.8"
- },
- "time": "2020-07-14T12:35:20+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.18-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Php80\\": ""
- },
- "files": [
- "bootstrap.php"
- ],
- "classmap": [
- "Resources/stubs"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Ion Bazan",
- "email": "ion.bazan@gmail.com"
- },
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill backporting some PHP 8.0+ 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"
- }
- ]
- },
- {
- "name": "symfony/polyfill-uuid",
- "version": "v1.18.1",
- "version_normalized": "1.18.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-uuid.git",
- "reference": "da48e2cccd323e48c16c26481bf5800f6ab1c49d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/da48e2cccd323e48c16c26481bf5800f6ab1c49d",
- "reference": "da48e2cccd323e48c16c26481bf5800f6ab1c49d",
- "shasum": ""
- },
- "require": {
- "paragonie/random_compat": "~1.0|~2.0|~9.99",
- "php": ">=5.3.3"
- },
- "suggest": {
- "ext-uuid": "For best performance"
- },
- "time": "2020-07-14T12:35:20+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.18-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Uuid\\": ""
- },
- "files": [
- "bootstrap.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Grégoire Pineau",
- "email": "lyrixx@lyrixx.info"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill for uuid functions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "uuid"
- ],
- "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"
- }
- ]
- }
-]
diff --git a/vendor/composer/package-versions-deprecated/CHANGELOG.md b/vendor/composer/package-versions-deprecated/CHANGELOG.md
deleted file mode 100644
index a838c56..0000000
--- a/vendor/composer/package-versions-deprecated/CHANGELOG.md
+++ /dev/null
@@ -1,120 +0,0 @@
-# CHANGELOG
-
-## 1.1.3 - 2017-09-06
-
-This release fixes a bug that caused PackageVersions to prevent
-the `composer remove` and `composer update` commands to fail when
-this package is removed.
-
-In addition to that, mutation testing has been added to the suite,
-ensuring that the package is accurately and extensively tested.
-
-Total issues resolved: **3**
-
-- [40: Mutation testing, PHP 7.1 testing](https://github.com/Ocramius/PackageVersions/pull/40) thanks to @Ocramius
-- [41: Removing this package on install results in file access error](https://github.com/Ocramius/PackageVersions/issues/41) thanks to @Xerkus
-- [46: #41 Avoid issues when the package is scheduled for removal](https://github.com/Ocramius/PackageVersions/pull/46) thanks to @Jean85
-
-## 1.1.2 - 2016-12-30
-
-This release fixes a bug that caused PackageVersions to be enabled
-even when it was part of a globally installed package.
-
-Total issues resolved: **3**
-
-- [35: remove all temp directories](https://github.com/Ocramius/PackageVersions/pull/35)
-- [38: Interferes with other projects when installed globally](https://github.com/Ocramius/PackageVersions/issues/38)
-- [39: Ignore the global plugin when updating local projects](https://github.com/Ocramius/PackageVersions/pull/39)
-
-## 1.1.1 - 2016-07-25
-
-This release removes the [`"files"`](https://getcomposer.org/doc/04-schema.md#files) directive from
-[`composer.json`](https://github.com/Ocramius/PackageVersions/commit/86f2636f7c5e7b56fa035fa3826d5fcf80b6dc72),
-as it is no longer needed for `composer install --classmap-authoritative`.
-Also, that directive was causing issues with HHVM installations, since
-PackageVersions is not compatible with it.
-
-Total issues resolved: **1**
-
-- [34: Fatal error during travis build after update to 1.1.0](https://github.com/Ocramius/PackageVersions/issues/34)
-
-## 1.1.0 - 2016-07-22
-
-This release introduces support for running `composer install --classmap-authoritative`
-and `composer install --no-scripts`. Please note that performance
-while using these modes may be degraded, but the package will
-still work.
-
-Additionally, the package was tuned to prevent the plugin from
-running twice at installation.
-
-Total issues resolved: **10**
-
-- [18: Fails when using composer install --no-scripts](https://github.com/Ocramius/PackageVersions/issues/18)
-- [20: CS (spacing)](https://github.com/Ocramius/PackageVersions/pull/20)
-- [22: Document the way the require-dev section is treated](https://github.com/Ocramius/PackageVersions/issues/22)
-- [23: Underline that composer.lock is used as source of information](https://github.com/Ocramius/PackageVersions/pull/23)
-- [27: Fix incompatibility with --classmap-authoritative](https://github.com/Ocramius/PackageVersions/pull/27)
-- [29: mention optimize-autoloader composer.json config option in README](https://github.com/Ocramius/PackageVersions/pull/29)
-- [30: The version class is generated twice during composer update](https://github.com/Ocramius/PackageVersions/issues/30)
-- [31: Remove double registration of the event listeners](https://github.com/Ocramius/PackageVersions/pull/31)
-- [32: Update the usage of mock APIs to use the new API](https://github.com/Ocramius/PackageVersions/pull/32)
-- [33: Fix for #18 - support running with --no-scripts flag](https://github.com/Ocramius/PackageVersions/pull/33)
-
-## 1.0.4 - 2016-04-23
-
-This release includes a fix/workaround for composer/composer#5237,
-which causes `ocramius/package-versions` to sometimes generate a
-`Versions` class with malformed name (something like
-`Versions_composer_tmp0`) when running `composer require `.
-
-Total issues resolved: **2**
-
-- [16: Workaround for composer/composer#5237 - class parsing](https://github.com/Ocramius/PackageVersions/pull/16)
-- [17: Weird Class name being generated](https://github.com/Ocramius/PackageVersions/issues/17)
-
-## 1.0.3 - 2016-02-26
-
-This release fixes an issue related to concurrent autoloader
-re-generation caused by multiple composer plugins being installed.
-The issue was solved by removing autoloader re-generation from this
-package, but it may still affect other packages.
-
-It is now recommended that you run `composer dump-autoload --optimize`
-after installation when using this particular package.
-Please note that `composer (install|update) -o` is not sufficient
-to avoid autoload overhead when using this particular package.
-
-Total issues resolved: **1**
-
-- [15: Remove autoload re-dump optimization](https://github.com/Ocramius/PackageVersions/pull/15)
-
-## 1.0.2 - 2016-02-24
-
-This release fixes issues related to installing the component without
-any dev dependencies or with packages that don't have a source or dist
-reference, which is usual with packages defined directly in the
-`composer.json`.
-
-Total issues resolved: **3**
-
-- [11: fix composer install --no-dev PHP7](https://github.com/Ocramius/PackageVersions/pull/11)
-- [12: Packages don't always have a source/reference](https://github.com/Ocramius/PackageVersions/issues/12)
-- [13: Fix #12 - support dist and missing package version references](https://github.com/Ocramius/PackageVersions/pull/13)
-
-## 1.0.1 - 2016-02-01
-
-This release fixes an issue related with composer updates to
-already installed versions.
-Using `composer require` within a package that already used
-`ocramius/package-versions` caused the installation to be unable
-to write the `PackageVersions\Versions` class to a file.
-
-Total issues resolved: **6**
-
-- [2: remove unused use statement](https://github.com/Ocramius/PackageVersions/pull/2)
-- [3: Remove useless files from dist package](https://github.com/Ocramius/PackageVersions/pull/3)
-- [5: failed to open stream: phar error: write operations disabled by the php.ini setting phar.readonly](https://github.com/Ocramius/PackageVersions/issues/5)
-- [6: Fix/#5 use composer vendor dir](https://github.com/Ocramius/PackageVersions/pull/6)
-- [7: Hotfix - #5 generate package versions also when in phar context](https://github.com/Ocramius/PackageVersions/pull/7)
-- [8: Versions class should be ignored by VCS, as it is an install-time artifact](https://github.com/Ocramius/PackageVersions/pull/8)
diff --git a/vendor/composer/package-versions-deprecated/CONTRIBUTING.md b/vendor/composer/package-versions-deprecated/CONTRIBUTING.md
deleted file mode 100644
index 7180617..0000000
--- a/vendor/composer/package-versions-deprecated/CONTRIBUTING.md
+++ /dev/null
@@ -1,39 +0,0 @@
----
-title: Contributing
----
-
-# Contributing
-
- * Coding standard for the project is [PSR-2](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md)
- * The project will follow strict [object calisthenics](http://www.slideshare.net/guilhermeblanco/object-calisthenics-applied-to-php)
- * Any contribution must provide tests for additional introduced conditions
- * Any un-confirmed issue needs a failing test case before being accepted
- * Pull requests must be sent from a new hotfix/feature branch, not from `master`.
-
-## Installation
-
-To install the project and run the tests, you need to clone it first:
-
-```sh
-$ git clone git://github.com/Ocramius/PackageVersions.git
-```
-
-You will then need to run a composer installation:
-
-```sh
-$ cd PackageVersions
-$ curl -s https://getcomposer.org/installer | php
-$ php composer.phar update
-```
-
-## Testing
-
-The PHPUnit version to be used is the one installed as a dev- dependency via composer:
-
-```sh
-$ ./vendor/bin/phpunit
-```
-
-Accepted coverage for new contributions is 80%. Any contribution not satisfying this requirement
-won't be merged.
-
diff --git a/vendor/composer/package-versions-deprecated/LICENSE b/vendor/composer/package-versions-deprecated/LICENSE
deleted file mode 100644
index a90b079..0000000
--- a/vendor/composer/package-versions-deprecated/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2016 Marco Pivetta
-
-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/vendor/composer/package-versions-deprecated/README.md b/vendor/composer/package-versions-deprecated/README.md
deleted file mode 100644
index c5f5bba..0000000
--- a/vendor/composer/package-versions-deprecated/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Package Versions
-
-**`composer/package-versions-deprecated` is a fully-compatible fork of [`ocramius/package-versions`](https://github.com/Ocramius/PackageVersions)** which provides compatibility with Composer 1 and 2 on PHP 7+. It replaces ocramius/package-versions so if you have a dependency requiring it and you want to use Composer v2 but can not upgrade to PHP 7.4 just yet, you can require this package instead.
-
-If you have a direct dependency on ocramius/package-versions, we recommend instead that once you migrated to Composer 2 you also migrate to use the `Composer\Versions` class which offers the functionality present here out of the box.
diff --git a/vendor/composer/package-versions-deprecated/SECURITY.md b/vendor/composer/package-versions-deprecated/SECURITY.md
deleted file mode 100644
index da9c516..0000000
--- a/vendor/composer/package-versions-deprecated/SECURITY.md
+++ /dev/null
@@ -1,5 +0,0 @@
-## Security contact information
-
-To report a security vulnerability, please use the
-[Tidelift security contact](https://tidelift.com/security).
-Tidelift will coordinate the fix and disclosure.
diff --git a/vendor/composer/package-versions-deprecated/composer.json b/vendor/composer/package-versions-deprecated/composer.json
deleted file mode 100644
index dca30d0..0000000
--- a/vendor/composer/package-versions-deprecated/composer.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "name": "composer/package-versions-deprecated",
- "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)",
- "type": "composer-plugin",
- "license": "MIT",
- "authors": [
- {
- "name": "Marco Pivetta",
- "email": "ocramius@gmail.com"
- },
- {
- "name": "Jordi Boggiano",
- "email": "j.boggiano@seld.be"
- }
- ],
- "require": {
- "php": "^7",
- "composer-plugin-api": "^1.1.0 || ^2.0"
- },
- "replace": {
- "ocramius/package-versions": "1.10.99"
- },
- "require-dev": {
- "phpunit/phpunit": "^6.5 || ^7",
- "composer/composer": "^1.9.3 || ^2.0@dev",
- "ext-zip": "^1.13"
- },
- "autoload": {
- "psr-4": {
- "PackageVersions\\": "src/PackageVersions"
- }
- },
- "autoload-dev": {
- "psr-4": {
- "PackageVersionsTest\\": "test/PackageVersionsTest"
- }
- },
- "extra": {
- "class": "PackageVersions\\Installer",
- "branch-alias": {
- "dev-master": "1.x-dev"
- }
- },
- "scripts": {
- "post-update-cmd": "PackageVersions\\Installer::dumpVersionsClass",
- "post-install-cmd": "PackageVersions\\Installer::dumpVersionsClass"
- }
-}
diff --git a/vendor/composer/package-versions-deprecated/composer.lock b/vendor/composer/package-versions-deprecated/composer.lock
deleted file mode 100644
index b711f6b..0000000
--- a/vendor/composer/package-versions-deprecated/composer.lock
+++ /dev/null
@@ -1,2603 +0,0 @@
-{
- "_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": "6bfe0a7d7a51c4bdf14a2d7ea1d22d11",
- "packages": [],
- "packages-dev": [
- {
- "name": "composer/ca-bundle",
- "version": "1.2.7",
- "source": {
- "type": "git",
- "url": "https://github.com/composer/ca-bundle.git",
- "reference": "95c63ab2117a72f48f5a55da9740a3273d45b7fd"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/composer/ca-bundle/zipball/95c63ab2117a72f48f5a55da9740a3273d45b7fd",
- "reference": "95c63ab2117a72f48f5a55da9740a3273d45b7fd",
- "shasum": ""
- },
- "require": {
- "ext-openssl": "*",
- "ext-pcre": "*",
- "php": "^5.3.2 || ^7.0 || ^8.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8",
- "psr/log": "^1.0",
- "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Composer\\CaBundle\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Jordi Boggiano",
- "email": "j.boggiano@seld.be",
- "homepage": "http://seld.be"
- }
- ],
- "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.",
- "keywords": [
- "cabundle",
- "cacert",
- "certificate",
- "ssl",
- "tls"
- ],
- "funding": [
- {
- "url": "https://packagist.com",
- "type": "custom"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/composer/composer",
- "type": "tidelift"
- }
- ],
- "time": "2020-04-08T08:27:21+00:00"
- },
- {
- "name": "composer/composer",
- "version": "dev-master",
- "source": {
- "type": "git",
- "url": "https://github.com/composer/composer.git",
- "reference": "a8c105da344dd84ebd5d11be7943a45b09dc076f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/composer/composer/zipball/a8c105da344dd84ebd5d11be7943a45b09dc076f",
- "reference": "a8c105da344dd84ebd5d11be7943a45b09dc076f",
- "shasum": ""
- },
- "require": {
- "composer/ca-bundle": "^1.0",
- "composer/semver": "^1.0",
- "composer/spdx-licenses": "^1.2",
- "composer/xdebug-handler": "^1.1",
- "justinrainbow/json-schema": "^3.0 || ^4.0 || ^5.0",
- "php": "^5.3.2 || ^7.0",
- "psr/log": "^1.0",
- "seld/jsonlint": "^1.4",
- "seld/phar-utils": "^1.0",
- "symfony/console": "^2.7 || ^3.0 || ^4.0 || ^5.0",
- "symfony/filesystem": "^2.7 || ^3.0 || ^4.0 || ^5.0",
- "symfony/finder": "^2.7 || ^3.0 || ^4.0 || ^5.0",
- "symfony/process": "^2.7 || ^3.0 || ^4.0 || ^5.0"
- },
- "conflict": {
- "symfony/console": "2.8.38"
- },
- "require-dev": {
- "phpspec/prophecy": "^1.10",
- "symfony/phpunit-bridge": "^3.4"
- },
- "suggest": {
- "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages",
- "ext-zip": "Enabling the zip extension allows you to unzip archives",
- "ext-zlib": "Allow gzip compression of HTTP requests"
- },
- "bin": [
- "bin/composer"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.10-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Composer\\": "src/Composer"
- }
- },
- "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"
- }
- ],
- "description": "Composer helps you declare, manage and install dependencies of PHP projects. It ensures you have the right stack everywhere.",
- "homepage": "https://getcomposer.org/",
- "keywords": [
- "autoload",
- "dependency",
- "package"
- ],
- "support": {
- "irc": "irc://irc.freenode.org/composer",
- "issues": "https://github.com/composer/composer/issues",
- "source": "https://github.com/composer/composer/tree/master"
- },
- "funding": [
- {
- "url": "https://packagist.com",
- "type": "custom"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/composer/composer",
- "type": "tidelift"
- }
- ],
- "time": "2020-03-29T14:59:26+00:00"
- },
- {
- "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"
- ],
- "support": {
- "irc": "irc://irc.freenode.org/composer",
- "issues": "https://github.com/composer/semver/issues",
- "source": "https://github.com/composer/semver/tree/1.5.1"
- },
- "time": "2020-01-13T12:06:48+00:00"
- },
- {
- "name": "composer/spdx-licenses",
- "version": "1.5.3",
- "source": {
- "type": "git",
- "url": "https://github.com/composer/spdx-licenses.git",
- "reference": "0c3e51e1880ca149682332770e25977c70cf9dae"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/0c3e51e1880ca149682332770e25977c70cf9dae",
- "reference": "0c3e51e1880ca149682332770e25977c70cf9dae",
- "shasum": ""
- },
- "require": {
- "php": "^5.3.2 || ^7.0 || ^8.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 7"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Composer\\Spdx\\": "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": "SPDX licenses list and validation library.",
- "keywords": [
- "license",
- "spdx",
- "validator"
- ],
- "time": "2020-02-14T07:44:31+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"
- ],
- "support": {
- "irc": "irc://irc.freenode.org/composer",
- "issues": "https://github.com/composer/xdebug-handler/issues",
- "source": "https://github.com/composer/xdebug-handler/tree/master"
- },
- "funding": [
- {
- "url": "https://packagist.com",
- "type": "custom"
- }
- ],
- "time": "2020-03-01T12:26:26+00:00"
- },
- {
- "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"
- ],
- "support": {
- "issues": "https://github.com/doctrine/instantiator/issues",
- "source": "https://github.com/doctrine/instantiator/tree/master"
- },
- "time": "2019-10-21T16:45:58+00:00"
- },
- {
- "name": "justinrainbow/json-schema",
- "version": "5.2.9",
- "source": {
- "type": "git",
- "url": "https://github.com/justinrainbow/json-schema.git",
- "reference": "44c6787311242a979fa15c704327c20e7221a0e4"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/44c6787311242a979fa15c704327c20e7221a0e4",
- "reference": "44c6787311242a979fa15c704327c20e7221a0e4",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3"
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1",
- "json-schema/json-schema-test-suite": "1.2.0",
- "phpunit/phpunit": "^4.8.35"
- },
- "bin": [
- "bin/validate-json"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "5.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "JsonSchema\\": "src/JsonSchema/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Bruno Prieto Reis",
- "email": "bruno.p.reis@gmail.com"
- },
- {
- "name": "Justin Rainbow",
- "email": "justin.rainbow@gmail.com"
- },
- {
- "name": "Igor Wiedler",
- "email": "igor@wiedler.ch"
- },
- {
- "name": "Robert Schönthal",
- "email": "seroscho@googlemail.com"
- }
- ],
- "description": "A library to validate a json schema.",
- "homepage": "https://github.com/justinrainbow/json-schema",
- "keywords": [
- "json",
- "schema"
- ],
- "support": {
- "issues": "https://github.com/justinrainbow/json-schema/issues",
- "source": "https://github.com/justinrainbow/json-schema/tree/5.2.9"
- },
- "time": "2019-09-25T14:49:45+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"
- ],
- "support": {
- "issues": "https://github.com/myclabs/DeepCopy/issues",
- "source": "https://github.com/myclabs/DeepCopy/tree/1.9.5"
- },
- "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"
- ],
- "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
- "homepage": "http://www.phpdoc.org",
- "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",
- "support": {
- "issues": "https://github.com/phpDocumentor/TypeResolver/issues",
- "source": "https://github.com/phpDocumentor/TypeResolver/tree/master"
- },
- "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"
- ],
- "support": {
- "issues": "https://github.com/phpspec/prophecy/issues",
- "source": "https://github.com/phpspec/prophecy/tree/v1.10.3"
- },
- "time": "2020-03-05T15:02:03+00:00"
- },
- {
- "name": "phpunit/php-code-coverage",
- "version": "6.1.4",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/807e6013b00af69b6c5d9ceb4282d0393dbb9d8d",
- "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d",
- "shasum": ""
- },
- "require": {
- "ext-dom": "*",
- "ext-xmlwriter": "*",
- "php": "^7.1",
- "phpunit/php-file-iterator": "^2.0",
- "phpunit/php-text-template": "^1.2.1",
- "phpunit/php-token-stream": "^3.0",
- "sebastian/code-unit-reverse-lookup": "^1.0.1",
- "sebastian/environment": "^3.1 || ^4.0",
- "sebastian/version": "^2.0.1",
- "theseer/tokenizer": "^1.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^7.0"
- },
- "suggest": {
- "ext-xdebug": "^2.6.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "6.1-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
- "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
- "keywords": [
- "coverage",
- "testing",
- "xunit"
- ],
- "time": "2018-10-31T16:06:48+00:00"
- },
- {
- "name": "phpunit/php-file-iterator",
- "version": "2.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "050bedf145a257b1ff02746c31894800e5122946"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946",
- "reference": "050bedf145a257b1ff02746c31894800e5122946",
- "shasum": ""
- },
- "require": {
- "php": "^7.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^7.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "FilterIterator implementation that filters files based on a list of suffixes.",
- "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
- "keywords": [
- "filesystem",
- "iterator"
- ],
- "time": "2018-09-13T20:33:42+00:00"
- },
- {
- "name": "phpunit/php-text-template",
- "version": "1.2.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-text-template.git",
- "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
- "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3"
- },
- "type": "library",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Simple template engine.",
- "homepage": "https://github.com/sebastianbergmann/php-text-template/",
- "keywords": [
- "template"
- ],
- "time": "2015-06-21T13:50:34+00:00"
- },
- {
- "name": "phpunit/php-timer",
- "version": "2.1.2",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-timer.git",
- "reference": "1038454804406b0b5f5f520358e78c1c2f71501e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e",
- "reference": "1038454804406b0b5f5f520358e78c1c2f71501e",
- "shasum": ""
- },
- "require": {
- "php": "^7.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^7.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.1-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Utility class for timing",
- "homepage": "https://github.com/sebastianbergmann/php-timer/",
- "keywords": [
- "timer"
- ],
- "time": "2019-06-07T04:22:29+00:00"
- },
- {
- "name": "phpunit/php-token-stream",
- "version": "3.1.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-token-stream.git",
- "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/995192df77f63a59e47f025390d2d1fdf8f425ff",
- "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff",
- "shasum": ""
- },
- "require": {
- "ext-tokenizer": "*",
- "php": "^7.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^7.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.1-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": "2019-09-17T06:23:10+00:00"
- },
- {
- "name": "phpunit/phpunit",
- "version": "7.5.20",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "9467db479d1b0487c99733bb1e7944d32deded2c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9467db479d1b0487c99733bb1e7944d32deded2c",
- "reference": "9467db479d1b0487c99733bb1e7944d32deded2c",
- "shasum": ""
- },
- "require": {
- "doctrine/instantiator": "^1.1",
- "ext-dom": "*",
- "ext-json": "*",
- "ext-libxml": "*",
- "ext-mbstring": "*",
- "ext-xml": "*",
- "myclabs/deep-copy": "^1.7",
- "phar-io/manifest": "^1.0.2",
- "phar-io/version": "^2.0",
- "php": "^7.1",
- "phpspec/prophecy": "^1.7",
- "phpunit/php-code-coverage": "^6.0.7",
- "phpunit/php-file-iterator": "^2.0.1",
- "phpunit/php-text-template": "^1.2.1",
- "phpunit/php-timer": "^2.1",
- "sebastian/comparator": "^3.0",
- "sebastian/diff": "^3.0",
- "sebastian/environment": "^4.0",
- "sebastian/exporter": "^3.1",
- "sebastian/global-state": "^2.0",
- "sebastian/object-enumerator": "^3.0.3",
- "sebastian/resource-operations": "^2.0",
- "sebastian/version": "^2.0.1"
- },
- "conflict": {
- "phpunit/phpunit-mock-objects": "*"
- },
- "require-dev": {
- "ext-pdo": "*"
- },
- "suggest": {
- "ext-soap": "*",
- "ext-xdebug": "*",
- "phpunit/php-invoker": "^2.0"
- },
- "bin": [
- "phpunit"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "7.5-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "The PHP Unit Testing framework.",
- "homepage": "https://phpunit.de/",
- "keywords": [
- "phpunit",
- "testing",
- "xunit"
- ],
- "time": "2020-01-08T08:45:45+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": "sebastian/code-unit-reverse-lookup",
- "version": "1.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
- "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
- "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
- "shasum": ""
- },
- "require": {
- "php": "^5.6 || ^7.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^5.7 || ^6.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Looks up which function or method a line of code belongs to",
- "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
- "time": "2017-03-04T06:30:41+00:00"
- },
- {
- "name": "sebastian/comparator",
- "version": "3.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da",
- "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da",
- "shasum": ""
- },
- "require": {
- "php": "^7.1",
- "sebastian/diff": "^3.0",
- "sebastian/exporter": "^3.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^7.1"
- },
- "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": "Jeff Welch",
- "email": "whatthejeff@gmail.com"
- },
- {
- "name": "Volker Dusch",
- "email": "github@wallbash.com"
- },
- {
- "name": "Bernhard Schussek",
- "email": "bschussek@2bepublished.at"
- },
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Provides the functionality to compare PHP values for equality",
- "homepage": "https://github.com/sebastianbergmann/comparator",
- "keywords": [
- "comparator",
- "compare",
- "equality"
- ],
- "time": "2018-07-12T15:12:46+00:00"
- },
- {
- "name": "sebastian/diff",
- "version": "3.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29",
- "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29",
- "shasum": ""
- },
- "require": {
- "php": "^7.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^7.5 || ^8.0",
- "symfony/process": "^2 || ^3.3 || ^4"
- },
- "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": "Kore Nordmann",
- "email": "mail@kore-nordmann.de"
- },
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Diff implementation",
- "homepage": "https://github.com/sebastianbergmann/diff",
- "keywords": [
- "diff",
- "udiff",
- "unidiff",
- "unified diff"
- ],
- "time": "2019-02-04T06:01:07+00:00"
- },
- {
- "name": "sebastian/environment",
- "version": "4.2.3",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/464c90d7bdf5ad4e8a6aea15c091fec0603d4368",
- "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368",
- "shasum": ""
- },
- "require": {
- "php": "^7.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^7.5"
- },
- "suggest": {
- "ext-posix": "*"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "4.2-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Provides functionality to handle HHVM/PHP environments",
- "homepage": "http://www.github.com/sebastianbergmann/environment",
- "keywords": [
- "Xdebug",
- "environment",
- "hhvm"
- ],
- "time": "2019-11-20T08:46:58+00:00"
- },
- {
- "name": "sebastian/exporter",
- "version": "3.1.2",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/68609e1261d215ea5b21b7987539cbfbe156ec3e",
- "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e",
- "shasum": ""
- },
- "require": {
- "php": "^7.0",
- "sebastian/recursion-context": "^3.0"
- },
- "require-dev": {
- "ext-mbstring": "*",
- "phpunit/phpunit": "^6.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.1.x-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": "2019-09-14T09:02:43+00:00"
- },
- {
- "name": "sebastian/global-state",
- "version": "2.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
- "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
- "shasum": ""
- },
- "require": {
- "php": "^7.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^6.0"
- },
- "suggest": {
- "ext-uopz": "*"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Snapshotting of global state",
- "homepage": "http://www.github.com/sebastianbergmann/global-state",
- "keywords": [
- "global state"
- ],
- "time": "2017-04-27T15:39:26+00:00"
- },
- {
- "name": "sebastian/object-enumerator",
- "version": "3.0.3",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/object-enumerator.git",
- "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5",
- "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5",
- "shasum": ""
- },
- "require": {
- "php": "^7.0",
- "sebastian/object-reflector": "^1.1.1",
- "sebastian/recursion-context": "^3.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^6.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.0.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Traverses array structures and object graphs to enumerate all referenced objects",
- "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
- "time": "2017-08-03T12:35:26+00:00"
- },
- {
- "name": "sebastian/object-reflector",
- "version": "1.1.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/object-reflector.git",
- "reference": "773f97c67f28de00d397be301821b06708fca0be"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be",
- "reference": "773f97c67f28de00d397be301821b06708fca0be",
- "shasum": ""
- },
- "require": {
- "php": "^7.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^6.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.1-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Allows reflection of object attributes, including inherited and non-public ones",
- "homepage": "https://github.com/sebastianbergmann/object-reflector/",
- "time": "2017-03-29T09:07:27+00:00"
- },
- {
- "name": "sebastian/recursion-context",
- "version": "3.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
- "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
- "shasum": ""
- },
- "require": {
- "php": "^7.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^6.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.0.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Jeff Welch",
- "email": "whatthejeff@gmail.com"
- },
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- },
- {
- "name": "Adam Harvey",
- "email": "aharvey@php.net"
- }
- ],
- "description": "Provides functionality to recursively process PHP variables",
- "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
- "time": "2017-03-03T06:23:57+00:00"
- },
- {
- "name": "sebastian/resource-operations",
- "version": "2.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/resource-operations.git",
- "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9",
- "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9",
- "shasum": ""
- },
- "require": {
- "php": "^7.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Provides a list of PHP built-in functions that operate on resources",
- "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
- "time": "2018-10-04T04:07:39+00:00"
- },
- {
- "name": "sebastian/version",
- "version": "2.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/version.git",
- "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019",
- "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019",
- "shasum": ""
- },
- "require": {
- "php": ">=5.6"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Library that helps with managing the version number of Git-hosted PHP projects",
- "homepage": "https://github.com/sebastianbergmann/version",
- "time": "2016-10-03T07:35:21+00:00"
- },
- {
- "name": "seld/jsonlint",
- "version": "1.7.2",
- "source": {
- "type": "git",
- "url": "https://github.com/Seldaek/jsonlint.git",
- "reference": "e2e5d290e4d2a4f0eb449f510071392e00e10d19"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/e2e5d290e4d2a4f0eb449f510071392e00e10d19",
- "reference": "e2e5d290e4d2a4f0eb449f510071392e00e10d19",
- "shasum": ""
- },
- "require": {
- "php": "^5.3 || ^7.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
- },
- "bin": [
- "bin/jsonlint"
- ],
- "type": "library",
- "autoload": {
- "psr-4": {
- "Seld\\JsonLint\\": "src/Seld/JsonLint/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Jordi Boggiano",
- "email": "j.boggiano@seld.be",
- "homepage": "http://seld.be"
- }
- ],
- "description": "JSON Linter",
- "keywords": [
- "json",
- "linter",
- "parser",
- "validator"
- ],
- "support": {
- "issues": "https://github.com/Seldaek/jsonlint/issues",
- "source": "https://github.com/Seldaek/jsonlint/tree/1.7.2"
- },
- "time": "2019-10-24T14:27:39+00:00"
- },
- {
- "name": "seld/phar-utils",
- "version": "1.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Seldaek/phar-utils.git",
- "reference": "8800503d56b9867d43d9c303b9cbcc26016e82f0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/8800503d56b9867d43d9c303b9cbcc26016e82f0",
- "reference": "8800503d56b9867d43d9c303b9cbcc26016e82f0",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Seld\\PharUtils\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Jordi Boggiano",
- "email": "j.boggiano@seld.be"
- }
- ],
- "description": "PHAR file format utilities, for when PHP phars you up",
- "keywords": [
- "phar"
- ],
- "support": {
- "issues": "https://github.com/Seldaek/phar-utils/issues",
- "source": "https://github.com/Seldaek/phar-utils/tree/1.1.0"
- },
- "time": "2020-02-14T15:25:33+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",
- "support": {
- "source": "https://github.com/symfony/console/tree/v5.0.7"
- },
- "time": "2020-03-30T11:42:42+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",
- "support": {
- "source": "https://github.com/symfony/filesystem/tree/v5.0.7"
- },
- "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/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",
- "support": {
- "source": "https://github.com/symfony/finder/tree/5.0"
- },
- "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"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/v1.15.0"
- },
- "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"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.15.0"
- },
- "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"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-php73/tree/v1.15.0"
- },
- "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",
- "support": {
- "source": "https://github.com/symfony/process/tree/v5.0.7"
- },
- "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"
- ],
- "support": {
- "source": "https://github.com/symfony/service-contracts/tree/v2.0.1"
- },
- "time": "2019-11-18T17:27:11+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.8.0",
- "source": {
- "type": "git",
- "url": "https://github.com/webmozart/assert.git",
- "reference": "ab2cb0b3b559010b75981b1bdce728da3ee90ad6"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/webmozart/assert/zipball/ab2cb0b3b559010b75981b1bdce728da3ee90ad6",
- "reference": "ab2cb0b3b559010b75981b1bdce728da3ee90ad6",
- "shasum": ""
- },
- "require": {
- "php": "^5.3.3 || ^7.0",
- "symfony/polyfill-ctype": "^1.8"
- },
- "conflict": {
- "vimeo/psalm": "<3.9.1"
- },
- "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"
- ],
- "support": {
- "issues": "https://github.com/webmozart/assert/issues",
- "source": "https://github.com/webmozart/assert/tree/master"
- },
- "time": "2020-04-18T12:12:48+00:00"
- }
- ],
- "aliases": [],
- "minimum-stability": "stable",
- "stability-flags": {
- "composer/composer": 20
- },
- "prefer-stable": false,
- "prefer-lowest": false,
- "platform": {
- "php": "^7",
- "composer-plugin-api": "^1.1.0 || ^2.0"
- },
- "platform-dev": {
- "ext-zip": "^1.13"
- },
- "plugin-api-version": "1.1.0"
-}
diff --git a/vendor/composer/package-versions-deprecated/phpcs.xml.dist b/vendor/composer/package-versions-deprecated/phpcs.xml.dist
deleted file mode 100644
index e169c61..0000000
--- a/vendor/composer/package-versions-deprecated/phpcs.xml.dist
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- src
- test
-
-
- src/PackageVersions/Versions.php
-
-
-
- src/PackageVersions/Installer.php
-
-
diff --git a/vendor/composer/package-versions-deprecated/src/PackageVersions/FallbackVersions.php b/vendor/composer/package-versions-deprecated/src/PackageVersions/FallbackVersions.php
deleted file mode 100644
index 18e5fe6..0000000
--- a/vendor/composer/package-versions-deprecated/src/PackageVersions/FallbackVersions.php
+++ /dev/null
@@ -1,128 +0,0 @@
-
- */
- private static function getVersions(array $packageData): Generator
- {
- foreach ($packageData as $package) {
- yield $package['name'] => $package['version'] . '@' . (
- $package['source']['reference'] ?? $package['dist']['reference'] ?? ''
- );
- }
-
- yield self::ROOT_PACKAGE_NAME => self::ROOT_PACKAGE_NAME;
- }
-}
diff --git a/vendor/composer/package-versions-deprecated/src/PackageVersions/Installer.php b/vendor/composer/package-versions-deprecated/src/PackageVersions/Installer.php
deleted file mode 100644
index a0a2616..0000000
--- a/vendor/composer/package-versions-deprecated/src/PackageVersions/Installer.php
+++ /dev/null
@@ -1,251 +0,0 @@
-
- * @internal
- */
- const VERSIONS = %s;
-
- private function __construct()
- {
- class_exists(InstalledVersions::class);
- }
-
- /**
- * @throws OutOfBoundsException If a version cannot be located.
- *
- * @psalm-param key-of $packageName
- * @psalm-pure
- *
- * @psalm-suppress ImpureMethodCall we know that {@see InstalledVersions} interaction does not
- * cause any side effects here.
- */
- public static function getVersion(string $packageName): string
- {
- if (class_exists(InstalledVersions::class, false)) {
- return InstalledVersions::getPrettyVersion($packageName)
- . '@' . InstalledVersions::getReference($packageName);
- }
-
- if (isset(self::VERSIONS[$packageName])) {
- return self::VERSIONS[$packageName];
- }
-
- throw new OutOfBoundsException(
- 'Required package "' . $packageName . '" is not installed: check your ./vendor/composer/installed.json and/or ./composer.lock files'
- );
- }
-}
-
-PHP;
-
- public function activate(Composer $composer, IOInterface $io)
- {
- // Nothing to do here, as all features are provided through event listeners
- }
-
- public function deactivate(Composer $composer, IOInterface $io)
- {
- // Nothing to do here, as all features are provided through event listeners
- }
-
- public function uninstall(Composer $composer, IOInterface $io)
- {
- // Nothing to do here, as all features are provided through event listeners
- }
-
- /**
- * {@inheritDoc}
- */
- public static function getSubscribedEvents(): array
- {
- return [ScriptEvents::POST_AUTOLOAD_DUMP => 'dumpVersionsClass'];
- }
-
- /**
- * @throws RuntimeException
- */
- public static function dumpVersionsClass(Event $composerEvent)
- {
- $composer = $composerEvent->getComposer();
- $rootPackage = $composer->getPackage();
- $versions = iterator_to_array(self::getVersions($composer->getLocker(), $rootPackage));
-
- if (! array_key_exists('composer/package-versions-deprecated', $versions)) {
- //plugin must be globally installed - we only want to generate versions for projects which specifically
- //require composer/package-versions-deprecated
- return;
- }
-
- $versionClass = self::generateVersionsClass($rootPackage->getName(), $versions);
-
- self::writeVersionClassToFile($versionClass, $composer, $composerEvent->getIO());
- }
-
- /**
- * @param string[] $versions
- */
- private static function generateVersionsClass(string $rootPackageName, array $versions): string
- {
- return sprintf(
- self::$generatedClassTemplate,
- 'fin' . 'al ' . 'cla' . 'ss ' . 'Versions', // note: workaround for regex-based code parsers :-(
- $rootPackageName,
- var_export($versions, true)
- );
- }
-
- /**
- * @throws RuntimeException
- */
- private static function writeVersionClassToFile(string $versionClassSource, Composer $composer, IOInterface $io)
- {
- $installPath = self::locateRootPackageInstallPath($composer->getConfig(), $composer->getPackage())
- . '/src/PackageVersions/Versions.php';
-
- $installDir = dirname($installPath);
- if (! file_exists($installDir)) {
- $io->write('composer/package-versions-deprecated: Package not found (probably scheduled for removal); generation of version class skipped.');
-
- return;
- }
-
- if (! is_writable($installDir)) {
- $io->write(
- sprintf(
- 'composer/package-versions-deprecated: %s is not writable; generation of version class skipped.',
- $installDir
- )
- );
-
- return;
- }
-
- $io->write('composer/package-versions-deprecated: Generating version class...');
-
- $installPathTmp = $installPath . '_' . uniqid('tmp', true);
- file_put_contents($installPathTmp, $versionClassSource);
- chmod($installPathTmp, 0664);
- rename($installPathTmp, $installPath);
-
- $io->write('composer/package-versions-deprecated: ...done generating version class');
- }
-
- /**
- * @throws RuntimeException
- */
- private static function locateRootPackageInstallPath(
- Config $composerConfig,
- RootPackageInterface $rootPackage
- ): string {
- if (self::getRootPackageAlias($rootPackage)->getName() === 'composer/package-versions-deprecated') {
- return dirname($composerConfig->get('vendor-dir'));
- }
-
- return $composerConfig->get('vendor-dir') . '/composer/package-versions-deprecated';
- }
-
- private static function getRootPackageAlias(RootPackageInterface $rootPackage): PackageInterface
- {
- $package = $rootPackage;
-
- while ($package instanceof AliasPackage) {
- $package = $package->getAliasOf();
- }
-
- return $package;
- }
-
- /**
- * @return Generator&string[]
- *
- * @psalm-return Generator
- */
- private static function getVersions(Locker $locker, RootPackageInterface $rootPackage): Generator
- {
- $lockData = $locker->getLockData();
-
- $lockData['packages-dev'] = $lockData['packages-dev'] ?? [];
-
- foreach (array_merge($lockData['packages'], $lockData['packages-dev']) as $package) {
- yield $package['name'] => $package['version'] . '@' . (
- $package['source']['reference'] ?? $package['dist']['reference'] ?? ''
- );
- }
-
- foreach ($rootPackage->getReplaces() as $replace) {
- $version = $replace->getPrettyConstraint();
- if ($version === 'self.version') {
- $version = $rootPackage->getPrettyVersion();
- }
-
- yield $replace->getTarget() => $version . '@' . $rootPackage->getSourceReference();
- }
-
- yield $rootPackage->getName() => $rootPackage->getPrettyVersion() . '@' . $rootPackage->getSourceReference();
- }
-}
diff --git a/vendor/composer/package-versions-deprecated/src/PackageVersions/Versions.php b/vendor/composer/package-versions-deprecated/src/PackageVersions/Versions.php
deleted file mode 100644
index 75d11a7..0000000
--- a/vendor/composer/package-versions-deprecated/src/PackageVersions/Versions.php
+++ /dev/null
@@ -1,98 +0,0 @@
-
- * @internal
- */
- const VERSIONS = array (
- 'clue/stream-filter' => 'v1.4.1@5a58cc30a8bd6a4eb8f856adf61dd3e013f53f71',
- 'composer/package-versions-deprecated' => '1.10.99@dd51b4443d58b34b6d9344cf4c288e621c9a826f',
- 'guzzlehttp/guzzle' => '6.5.5@9d4290de1cfd701f38099ef7e183b64b4b7b0c5e',
- 'guzzlehttp/promises' => 'v1.3.1@a59da6cf61d80060647ff4d3eb2c03a2bc694646',
- 'guzzlehttp/psr7' => '1.6.1@239400de7a173fe9901b9ac7c06497751f00727a',
- 'http-interop/http-factory-guzzle' => '1.0.0@34861658efb9899a6618cef03de46e2a52c80fc0',
- 'jean85/pretty-package-versions' => '1.5.0@e9f4324e88b8664be386d90cf60fbc202e1f7fc9',
- 'paragonie/random_compat' => 'v9.99.99@84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95',
- 'php-http/client-common' => '2.3.0@e37e46c610c87519753135fb893111798c69076a',
- 'php-http/discovery' => '1.9.1@64a18cc891957e05d91910b3c717d6bd11fbede9',
- 'php-http/guzzle6-adapter' => 'v2.0.1@6074a4b1f4d5c21061b70bab3b8ad484282fe31f',
- 'php-http/httplug' => '2.2.0@191a0a1b41ed026b717421931f8d3bd2514ffbf9',
- 'php-http/message' => '1.8.0@ce8f43ac1e294b54aabf5808515c3554a19c1e1c',
- 'php-http/message-factory' => 'v1.0.2@a478cb11f66a6ac48d8954216cfed9aa06a501a1',
- 'php-http/promise' => '1.1.0@4c4c1f9b7289a2ec57cde7f1e9762a5789506f88',
- 'psr/http-client' => '1.0.1@2dfb5f6c5eff0e91e20e913f8c5452ed95b86621',
- 'psr/http-factory' => '1.0.1@12ac7fcd07e5b077433f5f2bee95b3a771bf61be',
- 'psr/http-message' => '1.0.1@f6561bf28d520154e4b0ec72be95418abe6d9363',
- 'psr/log' => '1.1.3@0f73288fd15629204f9d42b7055f72dacbe811fc',
- 'ralouphie/getallheaders' => '3.0.3@120b605dfeb996808c31b6477290a714d356e822',
- 'sentry/sdk' => '2.1.0@18921af9c2777517ef9fb480845c22a98554d6af',
- 'sentry/sentry' => '2.4.2@b3b4f4a08b184c3f22b208f357e8720ef42938b0',
- 'symfony/deprecation-contracts' => 'v2.1.3@5e20b83385a77593259c9f8beb2c43cd03b2ac14',
- 'symfony/options-resolver' => 'v5.1.3@9ff59517938f88d90b6e65311fef08faa640f681',
- 'symfony/polyfill-intl-idn' => 'v1.18.1@5dcab1bc7146cf8c1beaa4502a3d9be344334251',
- 'symfony/polyfill-intl-normalizer' => 'v1.18.1@37078a8dd4a2a1e9ab0231af7c6cb671b2ed5a7e',
- 'symfony/polyfill-php70' => 'v1.18.1@0dd93f2c578bdc9c72697eaa5f1dd25644e618d3',
- 'symfony/polyfill-php72' => 'v1.18.1@639447d008615574653fb3bc60d1986d7172eaae',
- 'symfony/polyfill-php80' => 'v1.18.1@d87d5766cbf48d72388a9f6b85f280c8ad51f981',
- 'symfony/polyfill-uuid' => 'v1.18.1@da48e2cccd323e48c16c26481bf5800f6ab1c49d',
- '__root__' => 'dev-issue-15@baeeca06cf3953f65f07b03106272a678e3eb15d',
-);
-
- private function __construct()
- {
- class_exists(InstalledVersions::class);
- }
-
- /**
- * @throws OutOfBoundsException If a version cannot be located.
- *
- * @psalm-param key-of $packageName
- * @psalm-pure
- *
- * @psalm-suppress ImpureMethodCall we know that {@see InstalledVersions} interaction does not
- * cause any side effects here.
- */
- public static function getVersion(string $packageName): string
- {
- if (class_exists(InstalledVersions::class, false)) {
- return InstalledVersions::getPrettyVersion($packageName)
- . '@' . InstalledVersions::getReference($packageName);
- }
-
- if (isset(self::VERSIONS[$packageName])) {
- return self::VERSIONS[$packageName];
- }
-
- throw new OutOfBoundsException(
- 'Required package "' . $packageName . '" is not installed: check your ./vendor/composer/installed.json and/or ./composer.lock files'
- );
- }
-}
diff --git a/vendor/guzzlehttp/guzzle/.php_cs b/vendor/guzzlehttp/guzzle/.php_cs
deleted file mode 100644
index 2dd5036..0000000
--- a/vendor/guzzlehttp/guzzle/.php_cs
+++ /dev/null
@@ -1,23 +0,0 @@
-setRiskyAllowed(true)
- ->setRules([
- '@PSR2' => true,
- 'array_syntax' => ['syntax' => 'short'],
- 'declare_strict_types' => false,
- 'concat_space' => ['spacing'=>'one'],
- 'php_unit_test_case_static_method_calls' => ['call_type' => 'self'],
- 'ordered_imports' => true,
- // 'phpdoc_align' => ['align'=>'vertical'],
- // 'native_function_invocation' => true,
- ])
- ->setFinder(
- PhpCsFixer\Finder::create()
- ->in(__DIR__.'/src')
- ->in(__DIR__.'/tests')
- ->name('*.php')
- )
-;
-
-return $config;
diff --git a/vendor/guzzlehttp/guzzle/CHANGELOG.md b/vendor/guzzlehttp/guzzle/CHANGELOG.md
deleted file mode 100644
index 464cf1c..0000000
--- a/vendor/guzzlehttp/guzzle/CHANGELOG.md
+++ /dev/null
@@ -1,1338 +0,0 @@
-# Change Log
-
-## 6.5.5 - 2020-06-16
-
-* Unpin version constraint for `symfony/polyfill-intl-idn` [#2678](https://github.com/guzzle/guzzle/pull/2678)
-
-## 6.5.4 - 2020-05-25
-
-* Fix various intl icu issues [#2626](https://github.com/guzzle/guzzle/pull/2626)
-
-## 6.5.3 - 2020-04-18
-
-* Use Symfony intl-idn polyfill [#2550](https://github.com/guzzle/guzzle/pull/2550)
-* Remove use of internal functions [#2548](https://github.com/guzzle/guzzle/pull/2548)
-
-## 6.5.2 - 2019-12-23
-
-* idn_to_ascii() fix for old PHP versions [#2489](https://github.com/guzzle/guzzle/pull/2489)
-
-## 6.5.1 - 2019-12-21
-
-* Better defaults for PHP installations with old ICU lib [#2454](https://github.com/guzzle/guzzle/pull/2454)
-* IDN support for redirects [#2424](https://github.com/guzzle/guzzle/pull/2424)
-
-## 6.5.0 - 2019-12-07
-
-* Improvement: Added support for reset internal queue in MockHandler. [#2143](https://github.com/guzzle/guzzle/pull/2143)
-* Improvement: Added support to pass arbitrary options to `curl_multi_init`. [#2287](https://github.com/guzzle/guzzle/pull/2287)
-* Fix: Gracefully handle passing `null` to the `header` option. [#2132](https://github.com/guzzle/guzzle/pull/2132)
-* Fix: `RetryMiddleware` did not do exponential delay between retries due unit mismatch. [#2132](https://github.com/guzzle/guzzle/pull/2132)
- Previously, `RetryMiddleware` would sleep for 1 millisecond, then 2 milliseconds, then 4 milliseconds.
- **After this change, `RetryMiddleware` will sleep for 1 second, then 2 seconds, then 4 seconds.**
- `Middleware::retry()` accepts a second callback parameter to override the default timeouts if needed.
-* Fix: Prevent undefined offset when using array for ssl_key options. [#2348](https://github.com/guzzle/guzzle/pull/2348)
-* Deprecated `ClientInterface::VERSION`
-
-## 6.4.1 - 2019-10-23
-
-* No `guzzle.phar` was created in 6.4.0 due expired API token. This release will fix that
-* Added `parent::__construct()` to `FileCookieJar` and `SessionCookieJar`
-
-## 6.4.0 - 2019-10-23
-
-* Improvement: Improved error messages when using curl < 7.21.2 [#2108](https://github.com/guzzle/guzzle/pull/2108)
-* Fix: Test if response is readable before returning a summary in `RequestException::getResponseBodySummary()` [#2081](https://github.com/guzzle/guzzle/pull/2081)
-* Fix: Add support for GUZZLE_CURL_SELECT_TIMEOUT environment variable [#2161](https://github.com/guzzle/guzzle/pull/2161)
-* Improvement: Added `GuzzleHttp\Exception\InvalidArgumentException` [#2163](https://github.com/guzzle/guzzle/pull/2163)
-* Improvement: Added `GuzzleHttp\_current_time()` to use `hrtime()` if that function exists. [#2242](https://github.com/guzzle/guzzle/pull/2242)
-* Improvement: Added curl's `appconnect_time` in `TransferStats` [#2284](https://github.com/guzzle/guzzle/pull/2284)
-* Improvement: Make GuzzleException extend Throwable wherever it's available [#2273](https://github.com/guzzle/guzzle/pull/2273)
-* Fix: Prevent concurrent writes to file when saving `CookieJar` [#2335](https://github.com/guzzle/guzzle/pull/2335)
-* Improvement: Update `MockHandler` so we can test transfer time [#2362](https://github.com/guzzle/guzzle/pull/2362)
-
-## 6.3.3 - 2018-04-22
-
-* Fix: Default headers when decode_content is specified
-
-
-## 6.3.2 - 2018-03-26
-
-* Fix: Release process
-
-
-## 6.3.1 - 2018-03-26
-
-* Bug fix: Parsing 0 epoch expiry times in cookies [#2014](https://github.com/guzzle/guzzle/pull/2014)
-* Improvement: Better ConnectException detection [#2012](https://github.com/guzzle/guzzle/pull/2012)
-* Bug fix: Malformed domain that contains a "/" [#1999](https://github.com/guzzle/guzzle/pull/1999)
-* Bug fix: Undefined offset when a cookie has no first key-value pair [#1998](https://github.com/guzzle/guzzle/pull/1998)
-* Improvement: Support PHPUnit 6 [#1953](https://github.com/guzzle/guzzle/pull/1953)
-* Bug fix: Support empty headers [#1915](https://github.com/guzzle/guzzle/pull/1915)
-* Bug fix: Ignore case during header modifications [#1916](https://github.com/guzzle/guzzle/pull/1916)
-
-+ Minor code cleanups, documentation fixes and clarifications.
-
-
-## 6.3.0 - 2017-06-22
-
-* Feature: force IP resolution (ipv4 or ipv6) [#1608](https://github.com/guzzle/guzzle/pull/1608), [#1659](https://github.com/guzzle/guzzle/pull/1659)
-* Improvement: Don't include summary in exception message when body is empty [#1621](https://github.com/guzzle/guzzle/pull/1621)
-* Improvement: Handle `on_headers` option in MockHandler [#1580](https://github.com/guzzle/guzzle/pull/1580)
-* Improvement: Added SUSE Linux CA path [#1609](https://github.com/guzzle/guzzle/issues/1609)
-* Improvement: Use class reference for getting the name of the class instead of using hardcoded strings [#1641](https://github.com/guzzle/guzzle/pull/1641)
-* Feature: Added `read_timeout` option [#1611](https://github.com/guzzle/guzzle/pull/1611)
-* Bug fix: PHP 7.x fixes [#1685](https://github.com/guzzle/guzzle/pull/1685), [#1686](https://github.com/guzzle/guzzle/pull/1686), [#1811](https://github.com/guzzle/guzzle/pull/1811)
-* Deprecation: BadResponseException instantiation without a response [#1642](https://github.com/guzzle/guzzle/pull/1642)
-* Feature: Added NTLM auth [#1569](https://github.com/guzzle/guzzle/pull/1569)
-* Feature: Track redirect HTTP status codes [#1711](https://github.com/guzzle/guzzle/pull/1711)
-* Improvement: Check handler type during construction [#1745](https://github.com/guzzle/guzzle/pull/1745)
-* Improvement: Always include the Content-Length if there's a body [#1721](https://github.com/guzzle/guzzle/pull/1721)
-* Feature: Added convenience method to access a cookie by name [#1318](https://github.com/guzzle/guzzle/pull/1318)
-* Bug fix: Fill `CURLOPT_CAPATH` and `CURLOPT_CAINFO` properly [#1684](https://github.com/guzzle/guzzle/pull/1684)
-* Improvement: Use `\GuzzleHttp\Promise\rejection_for` function instead of object init [#1827](https://github.com/guzzle/guzzle/pull/1827)
-
-
-+ Minor code cleanups, documentation fixes and clarifications.
-
-## 6.2.3 - 2017-02-28
-
-* Fix deprecations with guzzle/psr7 version 1.4
-
-## 6.2.2 - 2016-10-08
-
-* Allow to pass nullable Response to delay callable
-* Only add scheme when host is present
-* Fix drain case where content-length is the literal string zero
-* Obfuscate in-URL credentials in exceptions
-
-## 6.2.1 - 2016-07-18
-
-* Address HTTP_PROXY security vulnerability, CVE-2016-5385:
- https://httpoxy.org/
-* Fixing timeout bug with StreamHandler:
- https://github.com/guzzle/guzzle/pull/1488
-* Only read up to `Content-Length` in PHP StreamHandler to avoid timeouts when
- a server does not honor `Connection: close`.
-* Ignore URI fragment when sending requests.
-
-## 6.2.0 - 2016-03-21
-
-* Feature: added `GuzzleHttp\json_encode` and `GuzzleHttp\json_decode`.
- https://github.com/guzzle/guzzle/pull/1389
-* Bug fix: Fix sleep calculation when waiting for delayed requests.
- https://github.com/guzzle/guzzle/pull/1324
-* Feature: More flexible history containers.
- https://github.com/guzzle/guzzle/pull/1373
-* Bug fix: defer sink stream opening in StreamHandler.
- https://github.com/guzzle/guzzle/pull/1377
-* Bug fix: do not attempt to escape cookie values.
- https://github.com/guzzle/guzzle/pull/1406
-* Feature: report original content encoding and length on decoded responses.
- https://github.com/guzzle/guzzle/pull/1409
-* Bug fix: rewind seekable request bodies before dispatching to cURL.
- https://github.com/guzzle/guzzle/pull/1422
-* Bug fix: provide an empty string to `http_build_query` for HHVM workaround.
- https://github.com/guzzle/guzzle/pull/1367
-
-## 6.1.1 - 2015-11-22
-
-* Bug fix: Proxy::wrapSync() now correctly proxies to the appropriate handler
- https://github.com/guzzle/guzzle/commit/911bcbc8b434adce64e223a6d1d14e9a8f63e4e4
-* Feature: HandlerStack is now more generic.
- https://github.com/guzzle/guzzle/commit/f2102941331cda544745eedd97fc8fd46e1ee33e
-* Bug fix: setting verify to false in the StreamHandler now disables peer
- verification. https://github.com/guzzle/guzzle/issues/1256
-* Feature: Middleware now uses an exception factory, including more error
- context. https://github.com/guzzle/guzzle/pull/1282
-* Feature: better support for disabled functions.
- https://github.com/guzzle/guzzle/pull/1287
-* Bug fix: fixed regression where MockHandler was not using `sink`.
- https://github.com/guzzle/guzzle/pull/1292
-
-## 6.1.0 - 2015-09-08
-
-* Feature: Added the `on_stats` request option to provide access to transfer
- statistics for requests. https://github.com/guzzle/guzzle/pull/1202
-* Feature: Added the ability to persist session cookies in CookieJars.
- https://github.com/guzzle/guzzle/pull/1195
-* Feature: Some compatibility updates for Google APP Engine
- https://github.com/guzzle/guzzle/pull/1216
-* Feature: Added support for NO_PROXY to prevent the use of a proxy based on
- a simple set of rules. https://github.com/guzzle/guzzle/pull/1197
-* Feature: Cookies can now contain square brackets.
- https://github.com/guzzle/guzzle/pull/1237
-* Bug fix: Now correctly parsing `=` inside of quotes in Cookies.
- https://github.com/guzzle/guzzle/pull/1232
-* Bug fix: Cusotm cURL options now correctly override curl options of the
- same name. https://github.com/guzzle/guzzle/pull/1221
-* Bug fix: Content-Type header is now added when using an explicitly provided
- multipart body. https://github.com/guzzle/guzzle/pull/1218
-* Bug fix: Now ignoring Set-Cookie headers that have no name.
-* Bug fix: Reason phrase is no longer cast to an int in some cases in the
- cURL handler. https://github.com/guzzle/guzzle/pull/1187
-* Bug fix: Remove the Authorization header when redirecting if the Host
- header changes. https://github.com/guzzle/guzzle/pull/1207
-* Bug fix: Cookie path matching fixes
- https://github.com/guzzle/guzzle/issues/1129
-* Bug fix: Fixing the cURL `body_as_string` setting
- https://github.com/guzzle/guzzle/pull/1201
-* Bug fix: quotes are no longer stripped when parsing cookies.
- https://github.com/guzzle/guzzle/issues/1172
-* Bug fix: `form_params` and `query` now always uses the `&` separator.
- https://github.com/guzzle/guzzle/pull/1163
-* Bug fix: Adding a Content-Length to PHP stream wrapper requests if not set.
- https://github.com/guzzle/guzzle/pull/1189
-
-## 6.0.2 - 2015-07-04
-
-* Fixed a memory leak in the curl handlers in which references to callbacks
- were not being removed by `curl_reset`.
-* Cookies are now extracted properly before redirects.
-* Cookies now allow more character ranges.
-* Decoded Content-Encoding responses are now modified to correctly reflect
- their state if the encoding was automatically removed by a handler. This
- means that the `Content-Encoding` header may be removed an the
- `Content-Length` modified to reflect the message size after removing the
- encoding.
-* Added a more explicit error message when trying to use `form_params` and
- `multipart` in the same request.
-* Several fixes for HHVM support.
-* Functions are now conditionally required using an additional level of
- indirection to help with global Composer installations.
-
-## 6.0.1 - 2015-05-27
-
-* Fixed a bug with serializing the `query` request option where the `&`
- separator was missing.
-* Added a better error message for when `body` is provided as an array. Please
- use `form_params` or `multipart` instead.
-* Various doc fixes.
-
-## 6.0.0 - 2015-05-26
-
-* See the UPGRADING.md document for more information.
-* Added `multipart` and `form_params` request options.
-* Added `synchronous` request option.
-* Added the `on_headers` request option.
-* Fixed `expect` handling.
-* No longer adding default middlewares in the client ctor. These need to be
- present on the provided handler in order to work.
-* Requests are no longer initiated when sending async requests with the
- CurlMultiHandler. This prevents unexpected recursion from requests completing
- while ticking the cURL loop.
-* Removed the semantics of setting `default` to `true`. This is no longer
- required now that the cURL loop is not ticked for async requests.
-* Added request and response logging middleware.
-* No longer allowing self signed certificates when using the StreamHandler.
-* Ensuring that `sink` is valid if saving to a file.
-* Request exceptions now include a "handler context" which provides handler
- specific contextual information.
-* Added `GuzzleHttp\RequestOptions` to allow request options to be applied
- using constants.
-* `$maxHandles` has been removed from CurlMultiHandler.
-* `MultipartPostBody` is now part of the `guzzlehttp/psr7` package.
-
-## 5.3.0 - 2015-05-19
-
-* Mock now supports `save_to`
-* Marked `AbstractRequestEvent::getTransaction()` as public.
-* Fixed a bug in which multiple headers using different casing would overwrite
- previous headers in the associative array.
-* Added `Utils::getDefaultHandler()`
-* Marked `GuzzleHttp\Client::getDefaultUserAgent` as deprecated.
-* URL scheme is now always lowercased.
-
-## 6.0.0-beta.1
-
-* Requires PHP >= 5.5
-* Updated to use PSR-7
- * Requires immutable messages, which basically means an event based system
- owned by a request instance is no longer possible.
- * Utilizing the [Guzzle PSR-7 package](https://github.com/guzzle/psr7).
- * Removed the dependency on `guzzlehttp/streams`. These stream abstractions
- are available in the `guzzlehttp/psr7` package under the `GuzzleHttp\Psr7`
- namespace.
-* Added middleware and handler system
- * Replaced the Guzzle event and subscriber system with a middleware system.
- * No longer depends on RingPHP, but rather places the HTTP handlers directly
- in Guzzle, operating on PSR-7 messages.
- * Retry logic is now encapsulated in `GuzzleHttp\Middleware::retry`, which
- means the `guzzlehttp/retry-subscriber` is now obsolete.
- * Mocking responses is now handled using `GuzzleHttp\Handler\MockHandler`.
-* Asynchronous responses
- * No longer supports the `future` request option to send an async request.
- Instead, use one of the `*Async` methods of a client (e.g., `requestAsync`,
- `getAsync`, etc.).
- * Utilizing `GuzzleHttp\Promise` instead of React's promise library to avoid
- recursion required by chaining and forwarding react promises. See
- https://github.com/guzzle/promises
- * Added `requestAsync` and `sendAsync` to send request asynchronously.
- * Added magic methods for `getAsync()`, `postAsync()`, etc. to send requests
- asynchronously.
-* Request options
- * POST and form updates
- * Added the `form_fields` and `form_files` request options.
- * Removed the `GuzzleHttp\Post` namespace.
- * The `body` request option no longer accepts an array for POST requests.
- * The `exceptions` request option has been deprecated in favor of the
- `http_errors` request options.
- * The `save_to` request option has been deprecated in favor of `sink` request
- option.
-* Clients no longer accept an array of URI template string and variables for
- URI variables. You will need to expand URI templates before passing them
- into a client constructor or request method.
-* Client methods `get()`, `post()`, `put()`, `patch()`, `options()`, etc. are
- now magic methods that will send synchronous requests.
-* Replaced `Utils.php` with plain functions in `functions.php`.
-* Removed `GuzzleHttp\Collection`.
-* Removed `GuzzleHttp\BatchResults`. Batched pool results are now returned as
- an array.
-* Removed `GuzzleHttp\Query`. Query string handling is now handled using an
- associative array passed into the `query` request option. The query string
- is serialized using PHP's `http_build_query`. If you need more control, you
- can pass the query string in as a string.
-* `GuzzleHttp\QueryParser` has been replaced with the
- `GuzzleHttp\Psr7\parse_query`.
-
-## 5.2.0 - 2015-01-27
-
-* Added `AppliesHeadersInterface` to make applying headers to a request based
- on the body more generic and not specific to `PostBodyInterface`.
-* Reduced the number of stack frames needed to send requests.
-* Nested futures are now resolved in the client rather than the RequestFsm
-* Finishing state transitions is now handled in the RequestFsm rather than the
- RingBridge.
-* Added a guard in the Pool class to not use recursion for request retries.
-
-## 5.1.0 - 2014-12-19
-
-* Pool class no longer uses recursion when a request is intercepted.
-* The size of a Pool can now be dynamically adjusted using a callback.
- See https://github.com/guzzle/guzzle/pull/943.
-* Setting a request option to `null` when creating a request with a client will
- ensure that the option is not set. This allows you to overwrite default
- request options on a per-request basis.
- See https://github.com/guzzle/guzzle/pull/937.
-* Added the ability to limit which protocols are allowed for redirects by
- specifying a `protocols` array in the `allow_redirects` request option.
-* Nested futures due to retries are now resolved when waiting for synchronous
- responses. See https://github.com/guzzle/guzzle/pull/947.
-* `"0"` is now an allowed URI path. See
- https://github.com/guzzle/guzzle/pull/935.
-* `Query` no longer typehints on the `$query` argument in the constructor,
- allowing for strings and arrays.
-* Exceptions thrown in the `end` event are now correctly wrapped with Guzzle
- specific exceptions if necessary.
-
-## 5.0.3 - 2014-11-03
-
-This change updates query strings so that they are treated as un-encoded values
-by default where the value represents an un-encoded value to send over the
-wire. A Query object then encodes the value before sending over the wire. This
-means that even value query string values (e.g., ":") are url encoded. This
-makes the Query class match PHP's http_build_query function. However, if you
-want to send requests over the wire using valid query string characters that do
-not need to be encoded, then you can provide a string to Url::setQuery() and
-pass true as the second argument to specify that the query string is a raw
-string that should not be parsed or encoded (unless a call to getQuery() is
-subsequently made, forcing the query-string to be converted into a Query
-object).
-
-## 5.0.2 - 2014-10-30
-
-* Added a trailing `\r\n` to multipart/form-data payloads. See
- https://github.com/guzzle/guzzle/pull/871
-* Added a `GuzzleHttp\Pool::send()` convenience method to match the docs.
-* Status codes are now returned as integers. See
- https://github.com/guzzle/guzzle/issues/881
-* No longer overwriting an existing `application/x-www-form-urlencoded` header
- when sending POST requests, allowing for customized headers. See
- https://github.com/guzzle/guzzle/issues/877
-* Improved path URL serialization.
-
- * No longer double percent-encoding characters in the path or query string if
- they are already encoded.
- * Now properly encoding the supplied path to a URL object, instead of only
- encoding ' ' and '?'.
- * Note: This has been changed in 5.0.3 to now encode query string values by
- default unless the `rawString` argument is provided when setting the query
- string on a URL: Now allowing many more characters to be present in the
- query string without being percent encoded. See http://tools.ietf.org/html/rfc3986#appendix-A
-
-## 5.0.1 - 2014-10-16
-
-Bugfix release.
-
-* Fixed an issue where connection errors still returned response object in
- error and end events event though the response is unusable. This has been
- corrected so that a response is not returned in the `getResponse` method of
- these events if the response did not complete. https://github.com/guzzle/guzzle/issues/867
-* Fixed an issue where transfer statistics were not being populated in the
- RingBridge. https://github.com/guzzle/guzzle/issues/866
-
-## 5.0.0 - 2014-10-12
-
-Adding support for non-blocking responses and some minor API cleanup.
-
-### New Features
-
-* Added support for non-blocking responses based on `guzzlehttp/guzzle-ring`.
-* Added a public API for creating a default HTTP adapter.
-* Updated the redirect plugin to be non-blocking so that redirects are sent
- concurrently. Other plugins like this can now be updated to be non-blocking.
-* Added a "progress" event so that you can get upload and download progress
- events.
-* Added `GuzzleHttp\Pool` which implements FutureInterface and transfers
- requests concurrently using a capped pool size as efficiently as possible.
-* Added `hasListeners()` to EmitterInterface.
-* Removed `GuzzleHttp\ClientInterface::sendAll` and marked
- `GuzzleHttp\Client::sendAll` as deprecated (it's still there, just not the
- recommended way).
-
-### Breaking changes
-
-The breaking changes in this release are relatively minor. The biggest thing to
-look out for is that request and response objects no longer implement fluent
-interfaces.
-
-* Removed the fluent interfaces (i.e., `return $this`) from requests,
- responses, `GuzzleHttp\Collection`, `GuzzleHttp\Url`,
- `GuzzleHttp\Query`, `GuzzleHttp\Post\PostBody`, and
- `GuzzleHttp\Cookie\SetCookie`. This blog post provides a good outline of
- why I did this: http://ocramius.github.io/blog/fluent-interfaces-are-evil/.
- This also makes the Guzzle message interfaces compatible with the current
- PSR-7 message proposal.
-* Removed "functions.php", so that Guzzle is truly PSR-4 compliant. Except
- for the HTTP request functions from function.php, these functions are now
- implemented in `GuzzleHttp\Utils` using camelCase. `GuzzleHttp\json_decode`
- moved to `GuzzleHttp\Utils::jsonDecode`. `GuzzleHttp\get_path` moved to
- `GuzzleHttp\Utils::getPath`. `GuzzleHttp\set_path` moved to
- `GuzzleHttp\Utils::setPath`. `GuzzleHttp\batch` should now be
- `GuzzleHttp\Pool::batch`, which returns an `objectStorage`. Using functions.php
- caused problems for many users: they aren't PSR-4 compliant, require an
- explicit include, and needed an if-guard to ensure that the functions are not
- declared multiple times.
-* Rewrote adapter layer.
- * Removing all classes from `GuzzleHttp\Adapter`, these are now
- implemented as callables that are stored in `GuzzleHttp\Ring\Client`.
- * Removed the concept of "parallel adapters". Sending requests serially or
- concurrently is now handled using a single adapter.
- * Moved `GuzzleHttp\Adapter\Transaction` to `GuzzleHttp\Transaction`. The
- Transaction object now exposes the request, response, and client as public
- properties. The getters and setters have been removed.
-* Removed the "headers" event. This event was only useful for changing the
- body a response once the headers of the response were known. You can implement
- a similar behavior in a number of ways. One example might be to use a
- FnStream that has access to the transaction being sent. For example, when the
- first byte is written, you could check if the response headers match your
- expectations, and if so, change the actual stream body that is being
- written to.
-* Removed the `asArray` parameter from
- `GuzzleHttp\Message\MessageInterface::getHeader`. If you want to get a header
- value as an array, then use the newly added `getHeaderAsArray()` method of
- `MessageInterface`. This change makes the Guzzle interfaces compatible with
- the PSR-7 interfaces.
-* `GuzzleHttp\Message\MessageFactory` no longer allows subclasses to add
- custom request options using double-dispatch (this was an implementation
- detail). Instead, you should now provide an associative array to the
- constructor which is a mapping of the request option name mapping to a
- function that applies the option value to a request.
-* Removed the concept of "throwImmediately" from exceptions and error events.
- This control mechanism was used to stop a transfer of concurrent requests
- from completing. This can now be handled by throwing the exception or by
- cancelling a pool of requests or each outstanding future request individually.
-* Updated to "GuzzleHttp\Streams" 3.0.
- * `GuzzleHttp\Stream\StreamInterface::getContents()` no longer accepts a
- `maxLen` parameter. This update makes the Guzzle streams project
- compatible with the current PSR-7 proposal.
- * `GuzzleHttp\Stream\Stream::__construct`,
- `GuzzleHttp\Stream\Stream::factory`, and
- `GuzzleHttp\Stream\Utils::create` no longer accept a size in the second
- argument. They now accept an associative array of options, including the
- "size" key and "metadata" key which can be used to provide custom metadata.
-
-## 4.2.2 - 2014-09-08
-
-* Fixed a memory leak in the CurlAdapter when reusing cURL handles.
-* No longer using `request_fulluri` in stream adapter proxies.
-* Relative redirects are now based on the last response, not the first response.
-
-## 4.2.1 - 2014-08-19
-
-* Ensuring that the StreamAdapter does not always add a Content-Type header
-* Adding automated github releases with a phar and zip
-
-## 4.2.0 - 2014-08-17
-
-* Now merging in default options using a case-insensitive comparison.
- Closes https://github.com/guzzle/guzzle/issues/767
-* Added the ability to automatically decode `Content-Encoding` response bodies
- using the `decode_content` request option. This is set to `true` by default
- to decode the response body if it comes over the wire with a
- `Content-Encoding`. Set this value to `false` to disable decoding the
- response content, and pass a string to provide a request `Accept-Encoding`
- header and turn on automatic response decoding. This feature now allows you
- to pass an `Accept-Encoding` header in the headers of a request but still
- disable automatic response decoding.
- Closes https://github.com/guzzle/guzzle/issues/764
-* Added the ability to throw an exception immediately when transferring
- requests in parallel. Closes https://github.com/guzzle/guzzle/issues/760
-* Updating guzzlehttp/streams dependency to ~2.1
-* No longer utilizing the now deprecated namespaced methods from the stream
- package.
-
-## 4.1.8 - 2014-08-14
-
-* Fixed an issue in the CurlFactory that caused setting the `stream=false`
- request option to throw an exception.
- See: https://github.com/guzzle/guzzle/issues/769
-* TransactionIterator now calls rewind on the inner iterator.
- See: https://github.com/guzzle/guzzle/pull/765
-* You can now set the `Content-Type` header to `multipart/form-data`
- when creating POST requests to force multipart bodies.
- See https://github.com/guzzle/guzzle/issues/768
-
-## 4.1.7 - 2014-08-07
-
-* Fixed an error in the HistoryPlugin that caused the same request and response
- to be logged multiple times when an HTTP protocol error occurs.
-* Ensuring that cURL does not add a default Content-Type when no Content-Type
- has been supplied by the user. This prevents the adapter layer from modifying
- the request that is sent over the wire after any listeners may have already
- put the request in a desired state (e.g., signed the request).
-* Throwing an exception when you attempt to send requests that have the
- "stream" set to true in parallel using the MultiAdapter.
-* Only calling curl_multi_select when there are active cURL handles. This was
- previously changed and caused performance problems on some systems due to PHP
- always selecting until the maximum select timeout.
-* Fixed a bug where multipart/form-data POST fields were not correctly
- aggregated (e.g., values with "&").
-
-## 4.1.6 - 2014-08-03
-
-* Added helper methods to make it easier to represent messages as strings,
- including getting the start line and getting headers as a string.
-
-## 4.1.5 - 2014-08-02
-
-* Automatically retrying cURL "Connection died, retrying a fresh connect"
- errors when possible.
-* cURL implementation cleanup
-* Allowing multiple event subscriber listeners to be registered per event by
- passing an array of arrays of listener configuration.
-
-## 4.1.4 - 2014-07-22
-
-* Fixed a bug that caused multi-part POST requests with more than one field to
- serialize incorrectly.
-* Paths can now be set to "0"
-* `ResponseInterface::xml` now accepts a `libxml_options` option and added a
- missing default argument that was required when parsing XML response bodies.
-* A `save_to` stream is now created lazily, which means that files are not
- created on disk unless a request succeeds.
-
-## 4.1.3 - 2014-07-15
-
-* Various fixes to multipart/form-data POST uploads
-* Wrapping function.php in an if-statement to ensure Guzzle can be used
- globally and in a Composer install
-* Fixed an issue with generating and merging in events to an event array
-* POST headers are only applied before sending a request to allow you to change
- the query aggregator used before uploading
-* Added much more robust query string parsing
-* Fixed various parsing and normalization issues with URLs
-* Fixing an issue where multi-valued headers were not being utilized correctly
- in the StreamAdapter
-
-## 4.1.2 - 2014-06-18
-
-* Added support for sending payloads with GET requests
-
-## 4.1.1 - 2014-06-08
-
-* Fixed an issue related to using custom message factory options in subclasses
-* Fixed an issue with nested form fields in a multi-part POST
-* Fixed an issue with using the `json` request option for POST requests
-* Added `ToArrayInterface` to `GuzzleHttp\Cookie\CookieJar`
-
-## 4.1.0 - 2014-05-27
-
-* Added a `json` request option to easily serialize JSON payloads.
-* Added a `GuzzleHttp\json_decode()` wrapper to safely parse JSON.
-* Added `setPort()` and `getPort()` to `GuzzleHttp\Message\RequestInterface`.
-* Added the ability to provide an emitter to a client in the client constructor.
-* Added the ability to persist a cookie session using $_SESSION.
-* Added a trait that can be used to add event listeners to an iterator.
-* Removed request method constants from RequestInterface.
-* Fixed warning when invalid request start-lines are received.
-* Updated MessageFactory to work with custom request option methods.
-* Updated cacert bundle to latest build.
-
-4.0.2 (2014-04-16)
-------------------
-
-* Proxy requests using the StreamAdapter now properly use request_fulluri (#632)
-* Added the ability to set scalars as POST fields (#628)
-
-## 4.0.1 - 2014-04-04
-
-* The HTTP status code of a response is now set as the exception code of
- RequestException objects.
-* 303 redirects will now correctly switch from POST to GET requests.
-* The default parallel adapter of a client now correctly uses the MultiAdapter.
-* HasDataTrait now initializes the internal data array as an empty array so
- that the toArray() method always returns an array.
-
-## 4.0.0 - 2014-03-29
-
-* For more information on the 4.0 transition, see:
- http://mtdowling.com/blog/2014/03/15/guzzle-4-rc/
-* For information on changes and upgrading, see:
- https://github.com/guzzle/guzzle/blob/master/UPGRADING.md#3x-to-40
-* Added `GuzzleHttp\batch()` as a convenience function for sending requests in
- parallel without needing to write asynchronous code.
-* Restructured how events are added to `GuzzleHttp\ClientInterface::sendAll()`.
- You can now pass a callable or an array of associative arrays where each
- associative array contains the "fn", "priority", and "once" keys.
-
-## 4.0.0.rc-2 - 2014-03-25
-
-* Removed `getConfig()` and `setConfig()` from clients to avoid confusion
- around whether things like base_url, message_factory, etc. should be able to
- be retrieved or modified.
-* Added `getDefaultOption()` and `setDefaultOption()` to ClientInterface
-* functions.php functions were renamed using snake_case to match PHP idioms
-* Added support for `HTTP_PROXY`, `HTTPS_PROXY`, and
- `GUZZLE_CURL_SELECT_TIMEOUT` environment variables
-* Added the ability to specify custom `sendAll()` event priorities
-* Added the ability to specify custom stream context options to the stream
- adapter.
-* Added a functions.php function for `get_path()` and `set_path()`
-* CurlAdapter and MultiAdapter now use a callable to generate curl resources
-* MockAdapter now properly reads a body and emits a `headers` event
-* Updated Url class to check if a scheme and host are set before adding ":"
- and "//". This allows empty Url (e.g., "") to be serialized as "".
-* Parsing invalid XML no longer emits warnings
-* Curl classes now properly throw AdapterExceptions
-* Various performance optimizations
-* Streams are created with the faster `Stream\create()` function
-* Marked deprecation_proxy() as internal
-* Test server is now a collection of static methods on a class
-
-## 4.0.0-rc.1 - 2014-03-15
-
-* See https://github.com/guzzle/guzzle/blob/master/UPGRADING.md#3x-to-40
-
-## 3.8.1 - 2014-01-28
-
-* Bug: Always using GET requests when redirecting from a 303 response
-* Bug: CURLOPT_SSL_VERIFYHOST is now correctly set to false when setting `$certificateAuthority` to false in
- `Guzzle\Http\ClientInterface::setSslVerification()`
-* Bug: RedirectPlugin now uses strict RFC 3986 compliance when combining a base URL with a relative URL
-* Bug: The body of a request can now be set to `"0"`
-* Sending PHP stream requests no longer forces `HTTP/1.0`
-* Adding more information to ExceptionCollection exceptions so that users have more context, including a stack trace of
- each sub-exception
-* Updated the `$ref` attribute in service descriptions to merge over any existing parameters of a schema (rather than
- clobbering everything).
-* Merging URLs will now use the query string object from the relative URL (thus allowing custom query aggregators)
-* Query strings are now parsed in a way that they do no convert empty keys with no value to have a dangling `=`.
- For example `foo&bar=baz` is now correctly parsed and recognized as `foo&bar=baz` rather than `foo=&bar=baz`.
-* Now properly escaping the regular expression delimiter when matching Cookie domains.
-* Network access is now disabled when loading XML documents
-
-## 3.8.0 - 2013-12-05
-
-* Added the ability to define a POST name for a file
-* JSON response parsing now properly walks additionalProperties
-* cURL error code 18 is now retried automatically in the BackoffPlugin
-* Fixed a cURL error when URLs contain fragments
-* Fixed an issue in the BackoffPlugin retry event where it was trying to access all exceptions as if they were
- CurlExceptions
-* CURLOPT_PROGRESS function fix for PHP 5.5 (69fcc1e)
-* Added the ability for Guzzle to work with older versions of cURL that do not support `CURLOPT_TIMEOUT_MS`
-* Fixed a bug that was encountered when parsing empty header parameters
-* UriTemplate now has a `setRegex()` method to match the docs
-* The `debug` request parameter now checks if it is truthy rather than if it exists
-* Setting the `debug` request parameter to true shows verbose cURL output instead of using the LogPlugin
-* Added the ability to combine URLs using strict RFC 3986 compliance
-* Command objects can now return the validation errors encountered by the command
-* Various fixes to cache revalidation (#437 and 29797e5)
-* Various fixes to the AsyncPlugin
-* Cleaned up build scripts
-
-## 3.7.4 - 2013-10-02
-
-* Bug fix: 0 is now an allowed value in a description parameter that has a default value (#430)
-* Bug fix: SchemaFormatter now returns an integer when formatting to a Unix timestamp
- (see https://github.com/aws/aws-sdk-php/issues/147)
-* Bug fix: Cleaned up and fixed URL dot segment removal to properly resolve internal dots
-* Minimum PHP version is now properly specified as 5.3.3 (up from 5.3.2) (#420)
-* Updated the bundled cacert.pem (#419)
-* OauthPlugin now supports adding authentication to headers or query string (#425)
-
-## 3.7.3 - 2013-09-08
-
-* Added the ability to get the exception associated with a request/command when using `MultiTransferException` and
- `CommandTransferException`.
-* Setting `additionalParameters` of a response to false is now honored when parsing responses with a service description
-* Schemas are only injected into response models when explicitly configured.
-* No longer guessing Content-Type based on the path of a request. Content-Type is now only guessed based on the path of
- an EntityBody.
-* Bug fix: ChunkedIterator can now properly chunk a \Traversable as well as an \Iterator.
-* Bug fix: FilterIterator now relies on `\Iterator` instead of `\Traversable`.
-* Bug fix: Gracefully handling malformed responses in RequestMediator::writeResponseBody()
-* Bug fix: Replaced call to canCache with canCacheRequest in the CallbackCanCacheStrategy of the CachePlugin
-* Bug fix: Visiting XML attributes first before visiting XML children when serializing requests
-* Bug fix: Properly parsing headers that contain commas contained in quotes
-* Bug fix: mimetype guessing based on a filename is now case-insensitive
-
-## 3.7.2 - 2013-08-02
-
-* Bug fix: Properly URL encoding paths when using the PHP-only version of the UriTemplate expander
- See https://github.com/guzzle/guzzle/issues/371
-* Bug fix: Cookie domains are now matched correctly according to RFC 6265
- See https://github.com/guzzle/guzzle/issues/377
-* Bug fix: GET parameters are now used when calculating an OAuth signature
-* Bug fix: Fixed an issue with cache revalidation where the If-None-Match header was being double quoted
-* `Guzzle\Common\AbstractHasDispatcher::dispatch()` now returns the event that was dispatched
-* `Guzzle\Http\QueryString::factory()` now guesses the most appropriate query aggregator to used based on the input.
- See https://github.com/guzzle/guzzle/issues/379
-* Added a way to add custom domain objects to service description parsing using the `operation.parse_class` event. See
- https://github.com/guzzle/guzzle/pull/380
-* cURL multi cleanup and optimizations
-
-## 3.7.1 - 2013-07-05
-
-* Bug fix: Setting default options on a client now works
-* Bug fix: Setting options on HEAD requests now works. See #352
-* Bug fix: Moving stream factory before send event to before building the stream. See #353
-* Bug fix: Cookies no longer match on IP addresses per RFC 6265
-* Bug fix: Correctly parsing header parameters that are in `<>` and quotes
-* Added `cert` and `ssl_key` as request options
-* `Host` header can now diverge from the host part of a URL if the header is set manually
-* `Guzzle\Service\Command\LocationVisitor\Request\XmlVisitor` was rewritten to change from using SimpleXML to XMLWriter
-* OAuth parameters are only added via the plugin if they aren't already set
-* Exceptions are now thrown when a URL cannot be parsed
-* Returning `false` if `Guzzle\Http\EntityBody::getContentMd5()` fails
-* Not setting a `Content-MD5` on a command if calculating the Content-MD5 fails via the CommandContentMd5Plugin
-
-## 3.7.0 - 2013-06-10
-
-* See UPGRADING.md for more information on how to upgrade.
-* Requests now support the ability to specify an array of $options when creating a request to more easily modify a
- request. You can pass a 'request.options' configuration setting to a client to apply default request options to
- every request created by a client (e.g. default query string variables, headers, curl options, etc.).
-* Added a static facade class that allows you to use Guzzle with static methods and mount the class to `\Guzzle`.
- See `Guzzle\Http\StaticClient::mount`.
-* Added `command.request_options` to `Guzzle\Service\Command\AbstractCommand` to pass request options to requests
- created by a command (e.g. custom headers, query string variables, timeout settings, etc.).
-* Stream size in `Guzzle\Stream\PhpStreamRequestFactory` will now be set if Content-Length is returned in the
- headers of a response
-* Added `Guzzle\Common\Collection::setPath($path, $value)` to set a value into an array using a nested key
- (e.g. `$collection->setPath('foo/baz/bar', 'test'); echo $collection['foo']['bar']['bar'];`)
-* ServiceBuilders now support storing and retrieving arbitrary data
-* CachePlugin can now purge all resources for a given URI
-* CachePlugin can automatically purge matching cached items when a non-idempotent request is sent to a resource
-* CachePlugin now uses the Vary header to determine if a resource is a cache hit
-* `Guzzle\Http\Message\Response` now implements `\Serializable`
-* Added `Guzzle\Cache\CacheAdapterFactory::fromCache()` to more easily create cache adapters
-* `Guzzle\Service\ClientInterface::execute()` now accepts an array, single command, or Traversable
-* Fixed a bug in `Guzzle\Http\Message\Header\Link::addLink()`
-* Better handling of calculating the size of a stream in `Guzzle\Stream\Stream` using fstat() and caching the size
-* `Guzzle\Common\Exception\ExceptionCollection` now creates a more readable exception message
-* Fixing BC break: Added back the MonologLogAdapter implementation rather than extending from PsrLog so that older
- Symfony users can still use the old version of Monolog.
-* Fixing BC break: Added the implementation back in for `Guzzle\Http\Message\AbstractMessage::getTokenizedHeader()`.
- Now triggering an E_USER_DEPRECATED warning when used. Use `$message->getHeader()->parseParams()`.
-* Several performance improvements to `Guzzle\Common\Collection`
-* Added an `$options` argument to the end of the following methods of `Guzzle\Http\ClientInterface`:
- createRequest, head, delete, put, patch, post, options, prepareRequest
-* Added an `$options` argument to the end of `Guzzle\Http\Message\Request\RequestFactoryInterface::createRequest()`
-* Added an `applyOptions()` method to `Guzzle\Http\Message\Request\RequestFactoryInterface`
-* Changed `Guzzle\Http\ClientInterface::get($uri = null, $headers = null, $body = null)` to
- `Guzzle\Http\ClientInterface::get($uri = null, $headers = null, $options = array())`. You can still pass in a
- resource, string, or EntityBody into the $options parameter to specify the download location of the response.
-* Changed `Guzzle\Common\Collection::__construct($data)` to no longer accepts a null value for `$data` but a
- default `array()`
-* Added `Guzzle\Stream\StreamInterface::isRepeatable`
-* Removed `Guzzle\Http\ClientInterface::setDefaultHeaders(). Use
- $client->getConfig()->setPath('request.options/headers/{header_name}', 'value')`. or
- $client->getConfig()->setPath('request.options/headers', array('header_name' => 'value'))`.
-* Removed `Guzzle\Http\ClientInterface::getDefaultHeaders(). Use $client->getConfig()->getPath('request.options/headers')`.
-* Removed `Guzzle\Http\ClientInterface::expandTemplate()`
-* Removed `Guzzle\Http\ClientInterface::setRequestFactory()`
-* Removed `Guzzle\Http\ClientInterface::getCurlMulti()`
-* Removed `Guzzle\Http\Message\RequestInterface::canCache`
-* Removed `Guzzle\Http\Message\RequestInterface::setIsRedirect`
-* Removed `Guzzle\Http\Message\RequestInterface::isRedirect`
-* Made `Guzzle\Http\Client::expandTemplate` and `getUriTemplate` protected methods.
-* You can now enable E_USER_DEPRECATED warnings to see if you are using a deprecated method by setting
- `Guzzle\Common\Version::$emitWarnings` to true.
-* Marked `Guzzle\Http\Message\Request::isResponseBodyRepeatable()` as deprecated. Use
- `$request->getResponseBody()->isRepeatable()` instead.
-* Marked `Guzzle\Http\Message\Request::canCache()` as deprecated. Use
- `Guzzle\Plugin\Cache\DefaultCanCacheStrategy->canCacheRequest()` instead.
-* Marked `Guzzle\Http\Message\Request::canCache()` as deprecated. Use
- `Guzzle\Plugin\Cache\DefaultCanCacheStrategy->canCacheRequest()` instead.
-* Marked `Guzzle\Http\Message\Request::setIsRedirect()` as deprecated. Use the HistoryPlugin instead.
-* Marked `Guzzle\Http\Message\Request::isRedirect()` as deprecated. Use the HistoryPlugin instead.
-* Marked `Guzzle\Cache\CacheAdapterFactory::factory()` as deprecated
-* Marked 'command.headers', 'command.response_body' and 'command.on_complete' as deprecated for AbstractCommand.
- These will work through Guzzle 4.0
-* Marked 'request.params' for `Guzzle\Http\Client` as deprecated. Use [request.options][params].
-* Marked `Guzzle\Service\Client::enableMagicMethods()` as deprecated. Magic methods can no longer be disabled on a Guzzle\Service\Client.
-* Marked `Guzzle\Service\Client::getDefaultHeaders()` as deprecated. Use $client->getConfig()->getPath('request.options/headers')`.
-* Marked `Guzzle\Service\Client::setDefaultHeaders()` as deprecated. Use $client->getConfig()->setPath('request.options/headers/{header_name}', 'value')`.
-* Marked `Guzzle\Parser\Url\UrlParser` as deprecated. Just use PHP's `parse_url()` and percent encode your UTF-8.
-* Marked `Guzzle\Common\Collection::inject()` as deprecated.
-* Marked `Guzzle\Plugin\CurlAuth\CurlAuthPlugin` as deprecated. Use `$client->getConfig()->setPath('request.options/auth', array('user', 'pass', 'Basic|Digest');`
-* CacheKeyProviderInterface and DefaultCacheKeyProvider are no longer used. All of this logic is handled in a
- CacheStorageInterface. These two objects and interface will be removed in a future version.
-* Always setting X-cache headers on cached responses
-* Default cache TTLs are now handled by the CacheStorageInterface of a CachePlugin
-* `CacheStorageInterface::cache($key, Response $response, $ttl = null)` has changed to `cache(RequestInterface
- $request, Response $response);`
-* `CacheStorageInterface::fetch($key)` has changed to `fetch(RequestInterface $request);`
-* `CacheStorageInterface::delete($key)` has changed to `delete(RequestInterface $request);`
-* Added `CacheStorageInterface::purge($url)`
-* `DefaultRevalidation::__construct(CacheKeyProviderInterface $cacheKey, CacheStorageInterface $cache, CachePlugin
- $plugin)` has changed to `DefaultRevalidation::__construct(CacheStorageInterface $cache,
- CanCacheStrategyInterface $canCache = null)`
-* Added `RevalidationInterface::shouldRevalidate(RequestInterface $request, Response $response)`
-
-## 3.6.0 - 2013-05-29
-
-* ServiceDescription now implements ToArrayInterface
-* Added command.hidden_params to blacklist certain headers from being treated as additionalParameters
-* Guzzle can now correctly parse incomplete URLs
-* Mixed casing of headers are now forced to be a single consistent casing across all values for that header.
-* Messages internally use a HeaderCollection object to delegate handling case-insensitive header resolution
-* Removed the whole changedHeader() function system of messages because all header changes now go through addHeader().
-* Specific header implementations can be created for complex headers. When a message creates a header, it uses a
- HeaderFactory which can map specific headers to specific header classes. There is now a Link header and
- CacheControl header implementation.
-* Removed from interface: Guzzle\Http\ClientInterface::setUriTemplate
-* Removed from interface: Guzzle\Http\ClientInterface::setCurlMulti()
-* Removed Guzzle\Http\Message\Request::receivedRequestHeader() and implemented this functionality in
- Guzzle\Http\Curl\RequestMediator
-* Removed the optional $asString parameter from MessageInterface::getHeader(). Just cast the header to a string.
-* Removed the optional $tryChunkedTransfer option from Guzzle\Http\Message\EntityEnclosingRequestInterface
-* Removed the $asObjects argument from Guzzle\Http\Message\MessageInterface::getHeaders()
-* Removed Guzzle\Parser\ParserRegister::get(). Use getParser()
-* Removed Guzzle\Parser\ParserRegister::set(). Use registerParser().
-* All response header helper functions return a string rather than mixing Header objects and strings inconsistently
-* Removed cURL blacklist support. This is no longer necessary now that Expect, Accept, etc. are managed by Guzzle
- directly via interfaces
-* Removed the injecting of a request object onto a response object. The methods to get and set a request still exist
- but are a no-op until removed.
-* Most classes that used to require a `Guzzle\Service\Command\CommandInterface` typehint now request a
- `Guzzle\Service\Command\ArrayCommandInterface`.
-* Added `Guzzle\Http\Message\RequestInterface::startResponse()` to the RequestInterface to handle injecting a response
- on a request while the request is still being transferred
-* The ability to case-insensitively search for header values
-* Guzzle\Http\Message\Header::hasExactHeader
-* Guzzle\Http\Message\Header::raw. Use getAll()
-* Deprecated cache control specific methods on Guzzle\Http\Message\AbstractMessage. Use the CacheControl header object
- instead.
-* `Guzzle\Service\Command\CommandInterface` now extends from ToArrayInterface and ArrayAccess
-* Added the ability to cast Model objects to a string to view debug information.
-
-## 3.5.0 - 2013-05-13
-
-* Bug: Fixed a regression so that request responses are parsed only once per oncomplete event rather than multiple times
-* Bug: Better cleanup of one-time events across the board (when an event is meant to fire once, it will now remove
- itself from the EventDispatcher)
-* Bug: `Guzzle\Log\MessageFormatter` now properly writes "total_time" and "connect_time" values
-* Bug: Cloning an EntityEnclosingRequest now clones the EntityBody too
-* Bug: Fixed an undefined index error when parsing nested JSON responses with a sentAs parameter that reference a
- non-existent key
-* Bug: All __call() method arguments are now required (helps with mocking frameworks)
-* Deprecating Response::getRequest() and now using a shallow clone of a request object to remove a circular reference
- to help with refcount based garbage collection of resources created by sending a request
-* Deprecating ZF1 cache and log adapters. These will be removed in the next major version.
-* Deprecating `Response::getPreviousResponse()` (method signature still exists, but it's deprecated). Use the
- HistoryPlugin for a history.
-* Added a `responseBody` alias for the `response_body` location
-* Refactored internals to no longer rely on Response::getRequest()
-* HistoryPlugin can now be cast to a string
-* HistoryPlugin now logs transactions rather than requests and responses to more accurately keep track of the requests
- and responses that are sent over the wire
-* Added `getEffectiveUrl()` and `getRedirectCount()` to Response objects
-
-## 3.4.3 - 2013-04-30
-
-* Bug fix: Fixing bug introduced in 3.4.2 where redirect responses are duplicated on the final redirected response
-* Added a check to re-extract the temp cacert bundle from the phar before sending each request
-
-## 3.4.2 - 2013-04-29
-
-* Bug fix: Stream objects now work correctly with "a" and "a+" modes
-* Bug fix: Removing `Transfer-Encoding: chunked` header when a Content-Length is present
-* Bug fix: AsyncPlugin no longer forces HEAD requests
-* Bug fix: DateTime timezones are now properly handled when using the service description schema formatter
-* Bug fix: CachePlugin now properly handles stale-if-error directives when a request to the origin server fails
-* Setting a response on a request will write to the custom request body from the response body if one is specified
-* LogPlugin now writes to php://output when STDERR is undefined
-* Added the ability to set multiple POST files for the same key in a single call
-* application/x-www-form-urlencoded POSTs now use the utf-8 charset by default
-* Added the ability to queue CurlExceptions to the MockPlugin
-* Cleaned up how manual responses are queued on requests (removed "queued_response" and now using request.before_send)
-* Configuration loading now allows remote files
-
-## 3.4.1 - 2013-04-16
-
-* Large refactoring to how CurlMulti handles work. There is now a proxy that sits in front of a pool of CurlMulti
- handles. This greatly simplifies the implementation, fixes a couple bugs, and provides a small performance boost.
-* Exceptions are now properly grouped when sending requests in parallel
-* Redirects are now properly aggregated when a multi transaction fails
-* Redirects now set the response on the original object even in the event of a failure
-* Bug fix: Model names are now properly set even when using $refs
-* Added support for PHP 5.5's CurlFile to prevent warnings with the deprecated @ syntax
-* Added support for oauth_callback in OAuth signatures
-* Added support for oauth_verifier in OAuth signatures
-* Added support to attempt to retrieve a command first literally, then ucfirst, the with inflection
-
-## 3.4.0 - 2013-04-11
-
-* Bug fix: URLs are now resolved correctly based on http://tools.ietf.org/html/rfc3986#section-5.2. #289
-* Bug fix: Absolute URLs with a path in a service description will now properly override the base URL. #289
-* Bug fix: Parsing a query string with a single PHP array value will now result in an array. #263
-* Bug fix: Better normalization of the User-Agent header to prevent duplicate headers. #264.
-* Bug fix: Added `number` type to service descriptions.
-* Bug fix: empty parameters are removed from an OAuth signature
-* Bug fix: Revalidating a cache entry prefers the Last-Modified over the Date header
-* Bug fix: Fixed "array to string" error when validating a union of types in a service description
-* Bug fix: Removed code that attempted to determine the size of a stream when data is written to the stream
-* Bug fix: Not including an `oauth_token` if the value is null in the OauthPlugin.
-* Bug fix: Now correctly aggregating successful requests and failed requests in CurlMulti when a redirect occurs.
-* The new default CURLOPT_TIMEOUT setting has been increased to 150 seconds so that Guzzle works on poor connections.
-* Added a feature to EntityEnclosingRequest::setBody() that will automatically set the Content-Type of the request if
- the Content-Type can be determined based on the entity body or the path of the request.
-* Added the ability to overwrite configuration settings in a client when grabbing a throwaway client from a builder.
-* Added support for a PSR-3 LogAdapter.
-* Added a `command.after_prepare` event
-* Added `oauth_callback` parameter to the OauthPlugin
-* Added the ability to create a custom stream class when using a stream factory
-* Added a CachingEntityBody decorator
-* Added support for `additionalParameters` in service descriptions to define how custom parameters are serialized.
-* The bundled SSL certificate is now provided in the phar file and extracted when running Guzzle from a phar.
-* You can now send any EntityEnclosingRequest with POST fields or POST files and cURL will handle creating bodies
-* POST requests using a custom entity body are now treated exactly like PUT requests but with a custom cURL method. This
- means that the redirect behavior of POST requests with custom bodies will not be the same as POST requests that use
- POST fields or files (the latter is only used when emulating a form POST in the browser).
-* Lots of cleanup to CurlHandle::factory and RequestFactory::createRequest
-
-## 3.3.1 - 2013-03-10
-
-* Added the ability to create PHP streaming responses from HTTP requests
-* Bug fix: Running any filters when parsing response headers with service descriptions
-* Bug fix: OauthPlugin fixes to allow for multi-dimensional array signing, and sorting parameters before signing
-* Bug fix: Removed the adding of default empty arrays and false Booleans to responses in order to be consistent across
- response location visitors.
-* Bug fix: Removed the possibility of creating configuration files with circular dependencies
-* RequestFactory::create() now uses the key of a POST file when setting the POST file name
-* Added xmlAllowEmpty to serialize an XML body even if no XML specific parameters are set
-
-## 3.3.0 - 2013-03-03
-
-* A large number of performance optimizations have been made
-* Bug fix: Added 'wb' as a valid write mode for streams
-* Bug fix: `Guzzle\Http\Message\Response::json()` now allows scalar values to be returned
-* Bug fix: Fixed bug in `Guzzle\Http\Message\Response` where wrapping quotes were stripped from `getEtag()`
-* BC: Removed `Guzzle\Http\Utils` class
-* BC: Setting a service description on a client will no longer modify the client's command factories.
-* BC: Emitting IO events from a RequestMediator is now a parameter that must be set in a request's curl options using
- the 'emit_io' key. This was previously set under a request's parameters using 'curl.emit_io'
-* BC: `Guzzle\Stream\Stream::getWrapper()` and `Guzzle\Stream\Stream::getSteamType()` are no longer converted to
- lowercase
-* Operation parameter objects are now lazy loaded internally
-* Added ErrorResponsePlugin that can throw errors for responses defined in service description operations' errorResponses
-* Added support for instantiating responseType=class responseClass classes. Classes must implement
- `Guzzle\Service\Command\ResponseClassInterface`
-* Added support for additionalProperties for top-level parameters in responseType=model responseClasses. These
- additional properties also support locations and can be used to parse JSON responses where the outermost part of the
- JSON is an array
-* Added support for nested renaming of JSON models (rename sentAs to name)
-* CachePlugin
- * Added support for stale-if-error so that the CachePlugin can now serve stale content from the cache on error
- * Debug headers can now added to cached response in the CachePlugin
-
-## 3.2.0 - 2013-02-14
-
-* CurlMulti is no longer reused globally. A new multi object is created per-client. This helps to isolate clients.
-* URLs with no path no longer contain a "/" by default
-* Guzzle\Http\QueryString does no longer manages the leading "?". This is now handled in Guzzle\Http\Url.
-* BadResponseException no longer includes the full request and response message
-* Adding setData() to Guzzle\Service\Description\ServiceDescriptionInterface
-* Adding getResponseBody() to Guzzle\Http\Message\RequestInterface
-* Various updates to classes to use ServiceDescriptionInterface type hints rather than ServiceDescription
-* Header values can now be normalized into distinct values when multiple headers are combined with a comma separated list
-* xmlEncoding can now be customized for the XML declaration of a XML service description operation
-* Guzzle\Http\QueryString now uses Guzzle\Http\QueryAggregator\QueryAggregatorInterface objects to add custom value
- aggregation and no longer uses callbacks
-* The URL encoding implementation of Guzzle\Http\QueryString can now be customized
-* Bug fix: Filters were not always invoked for array service description parameters
-* Bug fix: Redirects now use a target response body rather than a temporary response body
-* Bug fix: The default exponential backoff BackoffPlugin was not giving when the request threshold was exceeded
-* Bug fix: Guzzle now takes the first found value when grabbing Cache-Control directives
-
-## 3.1.2 - 2013-01-27
-
-* Refactored how operation responses are parsed. Visitors now include a before() method responsible for parsing the
- response body. For example, the XmlVisitor now parses the XML response into an array in the before() method.
-* Fixed an issue where cURL would not automatically decompress responses when the Accept-Encoding header was sent
-* CURLOPT_SSL_VERIFYHOST is never set to 1 because it is deprecated (see 5e0ff2ef20f839e19d1eeb298f90ba3598784444)
-* Fixed a bug where redirect responses were not chained correctly using getPreviousResponse()
-* Setting default headers on a client after setting the user-agent will not erase the user-agent setting
-
-## 3.1.1 - 2013-01-20
-
-* Adding wildcard support to Guzzle\Common\Collection::getPath()
-* Adding alias support to ServiceBuilder configs
-* Adding Guzzle\Service\Resource\CompositeResourceIteratorFactory and cleaning up factory interface
-
-## 3.1.0 - 2013-01-12
-
-* BC: CurlException now extends from RequestException rather than BadResponseException
-* BC: Renamed Guzzle\Plugin\Cache\CanCacheStrategyInterface::canCache() to canCacheRequest() and added CanCacheResponse()
-* Added getData to ServiceDescriptionInterface
-* Added context array to RequestInterface::setState()
-* Bug: Removing hard dependency on the BackoffPlugin from Guzzle\Http
-* Bug: Adding required content-type when JSON request visitor adds JSON to a command
-* Bug: Fixing the serialization of a service description with custom data
-* Made it easier to deal with exceptions thrown when transferring commands or requests in parallel by providing
- an array of successful and failed responses
-* Moved getPath from Guzzle\Service\Resource\Model to Guzzle\Common\Collection
-* Added Guzzle\Http\IoEmittingEntityBody
-* Moved command filtration from validators to location visitors
-* Added `extends` attributes to service description parameters
-* Added getModels to ServiceDescriptionInterface
-
-## 3.0.7 - 2012-12-19
-
-* Fixing phar detection when forcing a cacert to system if null or true
-* Allowing filename to be passed to `Guzzle\Http\Message\Request::setResponseBody()`
-* Cleaning up `Guzzle\Common\Collection::inject` method
-* Adding a response_body location to service descriptions
-
-## 3.0.6 - 2012-12-09
-
-* CurlMulti performance improvements
-* Adding setErrorResponses() to Operation
-* composer.json tweaks
-
-## 3.0.5 - 2012-11-18
-
-* Bug: Fixing an infinite recursion bug caused from revalidating with the CachePlugin
-* Bug: Response body can now be a string containing "0"
-* Bug: Using Guzzle inside of a phar uses system by default but now allows for a custom cacert
-* Bug: QueryString::fromString now properly parses query string parameters that contain equal signs
-* Added support for XML attributes in service description responses
-* DefaultRequestSerializer now supports array URI parameter values for URI template expansion
-* Added better mimetype guessing to requests and post files
-
-## 3.0.4 - 2012-11-11
-
-* Bug: Fixed a bug when adding multiple cookies to a request to use the correct glue value
-* Bug: Cookies can now be added that have a name, domain, or value set to "0"
-* Bug: Using the system cacert bundle when using the Phar
-* Added json and xml methods to Response to make it easier to parse JSON and XML response data into data structures
-* Enhanced cookie jar de-duplication
-* Added the ability to enable strict cookie jars that throw exceptions when invalid cookies are added
-* Added setStream to StreamInterface to actually make it possible to implement custom rewind behavior for entity bodies
-* Added the ability to create any sort of hash for a stream rather than just an MD5 hash
-
-## 3.0.3 - 2012-11-04
-
-* Implementing redirects in PHP rather than cURL
-* Added PECL URI template extension and using as default parser if available
-* Bug: Fixed Content-Length parsing of Response factory
-* Adding rewind() method to entity bodies and streams. Allows for custom rewinding of non-repeatable streams.
-* Adding ToArrayInterface throughout library
-* Fixing OauthPlugin to create unique nonce values per request
-
-## 3.0.2 - 2012-10-25
-
-* Magic methods are enabled by default on clients
-* Magic methods return the result of a command
-* Service clients no longer require a base_url option in the factory
-* Bug: Fixed an issue with URI templates where null template variables were being expanded
-
-## 3.0.1 - 2012-10-22
-
-* Models can now be used like regular collection objects by calling filter, map, etc.
-* Models no longer require a Parameter structure or initial data in the constructor
-* Added a custom AppendIterator to get around a PHP bug with the `\AppendIterator`
-
-## 3.0.0 - 2012-10-15
-
-* Rewrote service description format to be based on Swagger
- * Now based on JSON schema
- * Added nested input structures and nested response models
- * Support for JSON and XML input and output models
- * Renamed `commands` to `operations`
- * Removed dot class notation
- * Removed custom types
-* Broke the project into smaller top-level namespaces to be more component friendly
-* Removed support for XML configs and descriptions. Use arrays or JSON files.
-* Removed the Validation component and Inspector
-* Moved all cookie code to Guzzle\Plugin\Cookie
-* Magic methods on a Guzzle\Service\Client now return the command un-executed.
-* Calling getResult() or getResponse() on a command will lazily execute the command if needed.
-* Now shipping with cURL's CA certs and using it by default
-* Added previousResponse() method to response objects
-* No longer sending Accept and Accept-Encoding headers on every request
-* Only sending an Expect header by default when a payload is greater than 1MB
-* Added/moved client options:
- * curl.blacklist to curl.option.blacklist
- * Added ssl.certificate_authority
-* Added a Guzzle\Iterator component
-* Moved plugins from Guzzle\Http\Plugin to Guzzle\Plugin
-* Added a more robust backoff retry strategy (replaced the ExponentialBackoffPlugin)
-* Added a more robust caching plugin
-* Added setBody to response objects
-* Updating LogPlugin to use a more flexible MessageFormatter
-* Added a completely revamped build process
-* Cleaning up Collection class and removing default values from the get method
-* Fixed ZF2 cache adapters
-
-## 2.8.8 - 2012-10-15
-
-* Bug: Fixed a cookie issue that caused dot prefixed domains to not match where popular browsers did
-
-## 2.8.7 - 2012-09-30
-
-* Bug: Fixed config file aliases for JSON includes
-* Bug: Fixed cookie bug on a request object by using CookieParser to parse cookies on requests
-* Bug: Removing the path to a file when sending a Content-Disposition header on a POST upload
-* Bug: Hardening request and response parsing to account for missing parts
-* Bug: Fixed PEAR packaging
-* Bug: Fixed Request::getInfo
-* Bug: Fixed cases where CURLM_CALL_MULTI_PERFORM return codes were causing curl transactions to fail
-* Adding the ability for the namespace Iterator factory to look in multiple directories
-* Added more getters/setters/removers from service descriptions
-* Added the ability to remove POST fields from OAuth signatures
-* OAuth plugin now supports 2-legged OAuth
-
-## 2.8.6 - 2012-09-05
-
-* Added the ability to modify and build service descriptions
-* Added the use of visitors to apply parameters to locations in service descriptions using the dynamic command
-* Added a `json` parameter location
-* Now allowing dot notation for classes in the CacheAdapterFactory
-* Using the union of two arrays rather than an array_merge when extending service builder services and service params
-* Ensuring that a service is a string before doing strpos() checks on it when substituting services for references
- in service builder config files.
-* Services defined in two different config files that include one another will by default replace the previously
- defined service, but you can now create services that extend themselves and merge their settings over the previous
-* The JsonLoader now supports aliasing filenames with different filenames. This allows you to alias something like
- '_default' with a default JSON configuration file.
-
-## 2.8.5 - 2012-08-29
-
-* Bug: Suppressed empty arrays from URI templates
-* Bug: Added the missing $options argument from ServiceDescription::factory to enable caching
-* Added support for HTTP responses that do not contain a reason phrase in the start-line
-* AbstractCommand commands are now invokable
-* Added a way to get the data used when signing an Oauth request before a request is sent
-
-## 2.8.4 - 2012-08-15
-
-* Bug: Custom delay time calculations are no longer ignored in the ExponentialBackoffPlugin
-* Added the ability to transfer entity bodies as a string rather than streamed. This gets around curl error 65. Set `body_as_string` in a request's curl options to enable.
-* Added a StreamInterface, EntityBodyInterface, and added ftell() to Guzzle\Common\Stream
-* Added an AbstractEntityBodyDecorator and a ReadLimitEntityBody decorator to transfer only a subset of a decorated stream
-* Stream and EntityBody objects will now return the file position to the previous position after a read required operation (e.g. getContentMd5())
-* Added additional response status codes
-* Removed SSL information from the default User-Agent header
-* DELETE requests can now send an entity body
-* Added an EventDispatcher to the ExponentialBackoffPlugin and added an ExponentialBackoffLogger to log backoff retries
-* Added the ability of the MockPlugin to consume mocked request bodies
-* LogPlugin now exposes request and response objects in the extras array
-
-## 2.8.3 - 2012-07-30
-
-* Bug: Fixed a case where empty POST requests were sent as GET requests
-* Bug: Fixed a bug in ExponentialBackoffPlugin that caused fatal errors when retrying an EntityEnclosingRequest that does not have a body
-* Bug: Setting the response body of a request to null after completing a request, not when setting the state of a request to new
-* Added multiple inheritance to service description commands
-* Added an ApiCommandInterface and added `getParamNames()` and `hasParam()`
-* Removed the default 2mb size cutoff from the Md5ValidatorPlugin so that it now defaults to validating everything
-* Changed CurlMulti::perform to pass a smaller timeout to CurlMulti::executeHandles
-
-## 2.8.2 - 2012-07-24
-
-* Bug: Query string values set to 0 are no longer dropped from the query string
-* Bug: A Collection object is no longer created each time a call is made to `Guzzle\Service\Command\AbstractCommand::getRequestHeaders()`
-* Bug: `+` is now treated as an encoded space when parsing query strings
-* QueryString and Collection performance improvements
-* Allowing dot notation for class paths in filters attribute of a service descriptions
-
-## 2.8.1 - 2012-07-16
-
-* Loosening Event Dispatcher dependency
-* POST redirects can now be customized using CURLOPT_POSTREDIR
-
-## 2.8.0 - 2012-07-15
-
-* BC: Guzzle\Http\Query
- * Query strings with empty variables will always show an equal sign unless the variable is set to QueryString::BLANK (e.g. ?acl= vs ?acl)
- * Changed isEncodingValues() and isEncodingFields() to isUrlEncoding()
- * Changed setEncodeValues(bool) and setEncodeFields(bool) to useUrlEncoding(bool)
- * Changed the aggregation functions of QueryString to be static methods
- * Can now use fromString() with querystrings that have a leading ?
-* cURL configuration values can be specified in service descriptions using `curl.` prefixed parameters
-* Content-Length is set to 0 before emitting the request.before_send event when sending an empty request body
-* Cookies are no longer URL decoded by default
-* Bug: URI template variables set to null are no longer expanded
-
-## 2.7.2 - 2012-07-02
-
-* BC: Moving things to get ready for subtree splits. Moving Inflection into Common. Moving Guzzle\Http\Parser to Guzzle\Parser.
-* BC: Removing Guzzle\Common\Batch\Batch::count() and replacing it with isEmpty()
-* CachePlugin now allows for a custom request parameter function to check if a request can be cached
-* Bug fix: CachePlugin now only caches GET and HEAD requests by default
-* Bug fix: Using header glue when transferring headers over the wire
-* Allowing deeply nested arrays for composite variables in URI templates
-* Batch divisors can now return iterators or arrays
-
-## 2.7.1 - 2012-06-26
-
-* Minor patch to update version number in UA string
-* Updating build process
-
-## 2.7.0 - 2012-06-25
-
-* BC: Inflection classes moved to Guzzle\Inflection. No longer static methods. Can now inject custom inflectors into classes.
-* BC: Removed magic setX methods from commands
-* BC: Magic methods mapped to service description commands are now inflected in the command factory rather than the client __call() method
-* Verbose cURL options are no longer enabled by default. Set curl.debug to true on a client to enable.
-* Bug: Now allowing colons in a response start-line (e.g. HTTP/1.1 503 Service Unavailable: Back-end server is at capacity)
-* Guzzle\Service\Resource\ResourceIteratorApplyBatched now internally uses the Guzzle\Common\Batch namespace
-* Added Guzzle\Service\Plugin namespace and a PluginCollectionPlugin
-* Added the ability to set POST fields and files in a service description
-* Guzzle\Http\EntityBody::factory() now accepts objects with a __toString() method
-* Adding a command.before_prepare event to clients
-* Added BatchClosureTransfer and BatchClosureDivisor
-* BatchTransferException now includes references to the batch divisor and transfer strategies
-* Fixed some tests so that they pass more reliably
-* Added Guzzle\Common\Log\ArrayLogAdapter
-
-## 2.6.6 - 2012-06-10
-
-* BC: Removing Guzzle\Http\Plugin\BatchQueuePlugin
-* BC: Removing Guzzle\Service\Command\CommandSet
-* Adding generic batching system (replaces the batch queue plugin and command set)
-* Updating ZF cache and log adapters and now using ZF's composer repository
-* Bug: Setting the name of each ApiParam when creating through an ApiCommand
-* Adding result_type, result_doc, deprecated, and doc_url to service descriptions
-* Bug: Changed the default cookie header casing back to 'Cookie'
-
-## 2.6.5 - 2012-06-03
-
-* BC: Renaming Guzzle\Http\Message\RequestInterface::getResourceUri() to getResource()
-* BC: Removing unused AUTH_BASIC and AUTH_DIGEST constants from
-* BC: Guzzle\Http\Cookie is now used to manage Set-Cookie data, not Cookie data
-* BC: Renaming methods in the CookieJarInterface
-* Moving almost all cookie logic out of the CookiePlugin and into the Cookie or CookieJar implementations
-* Making the default glue for HTTP headers ';' instead of ','
-* Adding a removeValue to Guzzle\Http\Message\Header
-* Adding getCookies() to request interface.
-* Making it easier to add event subscribers to HasDispatcherInterface classes. Can now directly call addSubscriber()
-
-## 2.6.4 - 2012-05-30
-
-* BC: Cleaning up how POST files are stored in EntityEnclosingRequest objects. Adding PostFile class.
-* BC: Moving ApiCommand specific functionality from the Inspector and on to the ApiCommand
-* Bug: Fixing magic method command calls on clients
-* Bug: Email constraint only validates strings
-* Bug: Aggregate POST fields when POST files are present in curl handle
-* Bug: Fixing default User-Agent header
-* Bug: Only appending or prepending parameters in commands if they are specified
-* Bug: Not requiring response reason phrases or status codes to match a predefined list of codes
-* Allowing the use of dot notation for class namespaces when using instance_of constraint
-* Added any_match validation constraint
-* Added an AsyncPlugin
-* Passing request object to the calculateWait method of the ExponentialBackoffPlugin
-* Allowing the result of a command object to be changed
-* Parsing location and type sub values when instantiating a service description rather than over and over at runtime
-
-## 2.6.3 - 2012-05-23
-
-* [BC] Guzzle\Common\FromConfigInterface no longer requires any config options.
-* [BC] Refactoring how POST files are stored on an EntityEnclosingRequest. They are now separate from POST fields.
-* You can now use an array of data when creating PUT request bodies in the request factory.
-* Removing the requirement that HTTPS requests needed a Cache-Control: public directive to be cacheable.
-* [Http] Adding support for Content-Type in multipart POST uploads per upload
-* [Http] Added support for uploading multiple files using the same name (foo[0], foo[1])
-* Adding more POST data operations for easier manipulation of POST data.
-* You can now set empty POST fields.
-* The body of a request is only shown on EntityEnclosingRequest objects that do not use POST files.
-* Split the Guzzle\Service\Inspector::validateConfig method into two methods. One to initialize when a command is created, and one to validate.
-* CS updates
-
-## 2.6.2 - 2012-05-19
-
-* [Http] Better handling of nested scope requests in CurlMulti. Requests are now always prepares in the send() method rather than the addRequest() method.
-
-## 2.6.1 - 2012-05-19
-
-* [BC] Removing 'path' support in service descriptions. Use 'uri'.
-* [BC] Guzzle\Service\Inspector::parseDocBlock is now protected. Adding getApiParamsForClass() with cache.
-* [BC] Removing Guzzle\Common\NullObject. Use https://github.com/mtdowling/NullObject if you need it.
-* [BC] Removing Guzzle\Common\XmlElement.
-* All commands, both dynamic and concrete, have ApiCommand objects.
-* Adding a fix for CurlMulti so that if all of the connections encounter some sort of curl error, then the loop exits.
-* Adding checks to EntityEnclosingRequest so that empty POST files and fields are ignored.
-* Making the method signature of Guzzle\Service\Builder\ServiceBuilder::factory more flexible.
-
-## 2.6.0 - 2012-05-15
-
-* [BC] Moving Guzzle\Service\Builder to Guzzle\Service\Builder\ServiceBuilder
-* [BC] Executing a Command returns the result of the command rather than the command
-* [BC] Moving all HTTP parsing logic to Guzzle\Http\Parsers. Allows for faster C implementations if needed.
-* [BC] Changing the Guzzle\Http\Message\Response::setProtocol() method to accept a protocol and version in separate args.
-* [BC] Moving ResourceIterator* to Guzzle\Service\Resource
-* [BC] Completely refactored ResourceIterators to iterate over a cloned command object
-* [BC] Moved Guzzle\Http\UriTemplate to Guzzle\Http\Parser\UriTemplate\UriTemplate
-* [BC] Guzzle\Guzzle is now deprecated
-* Moving Guzzle\Common\Guzzle::inject to Guzzle\Common\Collection::inject
-* Adding Guzzle\Version class to give version information about Guzzle
-* Adding Guzzle\Http\Utils class to provide getDefaultUserAgent() and getHttpDate()
-* Adding Guzzle\Curl\CurlVersion to manage caching curl_version() data
-* ServiceDescription and ServiceBuilder are now cacheable using similar configs
-* Changing the format of XML and JSON service builder configs. Backwards compatible.
-* Cleaned up Cookie parsing
-* Trimming the default Guzzle User-Agent header
-* Adding a setOnComplete() method to Commands that is called when a command completes
-* Keeping track of requests that were mocked in the MockPlugin
-* Fixed a caching bug in the CacheAdapterFactory
-* Inspector objects can be injected into a Command object
-* Refactoring a lot of code and tests to be case insensitive when dealing with headers
-* Adding Guzzle\Http\Message\HeaderComparison for easy comparison of HTTP headers using a DSL
-* Adding the ability to set global option overrides to service builder configs
-* Adding the ability to include other service builder config files from within XML and JSON files
-* Moving the parseQuery method out of Url and on to QueryString::fromString() as a static factory method.
-
-## 2.5.0 - 2012-05-08
-
-* Major performance improvements
-* [BC] Simplifying Guzzle\Common\Collection. Please check to see if you are using features that are now deprecated.
-* [BC] Using a custom validation system that allows a flyweight implementation for much faster validation. No longer using Symfony2 Validation component.
-* [BC] No longer supporting "{{ }}" for injecting into command or UriTemplates. Use "{}"
-* Added the ability to passed parameters to all requests created by a client
-* Added callback functionality to the ExponentialBackoffPlugin
-* Using microtime in ExponentialBackoffPlugin to allow more granular backoff strategies.
-* Rewinding request stream bodies when retrying requests
-* Exception is thrown when JSON response body cannot be decoded
-* Added configurable magic method calls to clients and commands. This is off by default.
-* Fixed a defect that added a hash to every parsed URL part
-* Fixed duplicate none generation for OauthPlugin.
-* Emitting an event each time a client is generated by a ServiceBuilder
-* Using an ApiParams object instead of a Collection for parameters of an ApiCommand
-* cache.* request parameters should be renamed to params.cache.*
-* Added the ability to set arbitrary curl options on requests (disable_wire, progress, etc.). See CurlHandle.
-* Added the ability to disable type validation of service descriptions
-* ServiceDescriptions and ServiceBuilders are now Serializable
diff --git a/vendor/guzzlehttp/guzzle/Dockerfile b/vendor/guzzlehttp/guzzle/Dockerfile
deleted file mode 100644
index f6a0952..0000000
--- a/vendor/guzzlehttp/guzzle/Dockerfile
+++ /dev/null
@@ -1,18 +0,0 @@
-FROM composer:latest as setup
-
-RUN mkdir /guzzle
-
-WORKDIR /guzzle
-
-RUN set -xe \
- && composer init --name=guzzlehttp/test --description="Simple project for testing Guzzle scripts" --author="Márk Sági-Kazár " --no-interaction \
- && composer require guzzlehttp/guzzle
-
-
-FROM php:7.3
-
-RUN mkdir /guzzle
-
-WORKDIR /guzzle
-
-COPY --from=setup /guzzle /guzzle
diff --git a/vendor/guzzlehttp/guzzle/LICENSE b/vendor/guzzlehttp/guzzle/LICENSE
deleted file mode 100644
index 50a177b..0000000
--- a/vendor/guzzlehttp/guzzle/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2011-2018 Michael Dowling, https://github.com/mtdowling
-
-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/vendor/guzzlehttp/guzzle/README.md b/vendor/guzzlehttp/guzzle/README.md
deleted file mode 100644
index 5fdb6c5..0000000
--- a/vendor/guzzlehttp/guzzle/README.md
+++ /dev/null
@@ -1,90 +0,0 @@
-Guzzle, PHP HTTP client
-=======================
-
-[](https://github.com/guzzle/guzzle/releases)
-[](https://travis-ci.org/guzzle/guzzle)
-[](https://packagist.org/packages/guzzlehttp/guzzle)
-
-Guzzle is a PHP HTTP client that makes it easy to send HTTP requests and
-trivial to integrate with web services.
-
-- Simple interface for building query strings, POST requests, streaming large
- uploads, streaming large downloads, using HTTP cookies, uploading JSON data,
- etc...
-- Can send both synchronous and asynchronous requests using the same interface.
-- Uses PSR-7 interfaces for requests, responses, and streams. This allows you
- to utilize other PSR-7 compatible libraries with Guzzle.
-- Abstracts away the underlying HTTP transport, allowing you to write
- environment and transport agnostic code; i.e., no hard dependency on cURL,
- PHP streams, sockets, or non-blocking event loops.
-- Middleware system allows you to augment and compose client behavior.
-
-```php
-$client = new \GuzzleHttp\Client();
-$response = $client->request('GET', 'https://api.github.com/repos/guzzle/guzzle');
-
-echo $response->getStatusCode(); # 200
-echo $response->getHeaderLine('content-type'); # 'application/json; charset=utf8'
-echo $response->getBody(); # '{"id": 1420053, "name": "guzzle", ...}'
-
-# Send an asynchronous request.
-$request = new \GuzzleHttp\Psr7\Request('GET', 'http://httpbin.org');
-$promise = $client->sendAsync($request)->then(function ($response) {
- echo 'I completed! ' . $response->getBody();
-});
-
-$promise->wait();
-```
-
-## Help and docs
-
-- [Documentation](http://guzzlephp.org/)
-- [Stack Overflow](http://stackoverflow.com/questions/tagged/guzzle)
-- [Gitter](https://gitter.im/guzzle/guzzle)
-
-
-## Installing Guzzle
-
-The recommended way to install Guzzle is through
-[Composer](http://getcomposer.org).
-
-```bash
-# Install Composer
-curl -sS https://getcomposer.org/installer | php
-```
-
-Next, run the Composer command to install the latest stable version of Guzzle:
-
-```bash
-composer require guzzlehttp/guzzle
-```
-
-After installing, you need to require Composer's autoloader:
-
-```php
-require 'vendor/autoload.php';
-```
-
-You can then later update Guzzle using composer:
-
- ```bash
-composer update
- ```
-
-
-## Version Guidance
-
-| Version | Status | Packagist | Namespace | Repo | Docs | PSR-7 | PHP Version |
-|---------|------------|---------------------|--------------|---------------------|---------------------|-------|-------------|
-| 3.x | EOL | `guzzle/guzzle` | `Guzzle` | [v3][guzzle-3-repo] | [v3][guzzle-3-docs] | No | >= 5.3.3 |
-| 4.x | EOL | `guzzlehttp/guzzle` | `GuzzleHttp` | [v4][guzzle-4-repo] | N/A | No | >= 5.4 |
-| 5.x | EOL | `guzzlehttp/guzzle` | `GuzzleHttp` | [v5][guzzle-5-repo] | [v5][guzzle-5-docs] | No | >= 5.4 |
-| 6.x | Latest | `guzzlehttp/guzzle` | `GuzzleHttp` | [v6][guzzle-6-repo] | [v6][guzzle-6-docs] | Yes | >= 5.5 |
-
-[guzzle-3-repo]: https://github.com/guzzle/guzzle3
-[guzzle-4-repo]: https://github.com/guzzle/guzzle/tree/4.x
-[guzzle-5-repo]: https://github.com/guzzle/guzzle/tree/5.3
-[guzzle-6-repo]: https://github.com/guzzle/guzzle
-[guzzle-3-docs]: http://guzzle3.readthedocs.org
-[guzzle-5-docs]: http://guzzle.readthedocs.org/en/5.3/
-[guzzle-6-docs]: http://guzzle.readthedocs.org/en/latest/
diff --git a/vendor/guzzlehttp/guzzle/UPGRADING.md b/vendor/guzzlehttp/guzzle/UPGRADING.md
deleted file mode 100644
index 91d1dcc..0000000
--- a/vendor/guzzlehttp/guzzle/UPGRADING.md
+++ /dev/null
@@ -1,1203 +0,0 @@
-Guzzle Upgrade Guide
-====================
-
-5.0 to 6.0
-----------
-
-Guzzle now uses [PSR-7](http://www.php-fig.org/psr/psr-7/) for HTTP messages.
-Due to the fact that these messages are immutable, this prompted a refactoring
-of Guzzle to use a middleware based system rather than an event system. Any
-HTTP message interaction (e.g., `GuzzleHttp\Message\Request`) need to be
-updated to work with the new immutable PSR-7 request and response objects. Any
-event listeners or subscribers need to be updated to become middleware
-functions that wrap handlers (or are injected into a
-`GuzzleHttp\HandlerStack`).
-
-- Removed `GuzzleHttp\BatchResults`
-- Removed `GuzzleHttp\Collection`
-- Removed `GuzzleHttp\HasDataTrait`
-- Removed `GuzzleHttp\ToArrayInterface`
-- The `guzzlehttp/streams` dependency has been removed. Stream functionality
- is now present in the `GuzzleHttp\Psr7` namespace provided by the
- `guzzlehttp/psr7` package.
-- Guzzle no longer uses ReactPHP promises and now uses the
- `guzzlehttp/promises` library. We use a custom promise library for three
- significant reasons:
- 1. React promises (at the time of writing this) are recursive. Promise
- chaining and promise resolution will eventually blow the stack. Guzzle
- promises are not recursive as they use a sort of trampolining technique.
- Note: there has been movement in the React project to modify promises to
- no longer utilize recursion.
- 2. Guzzle needs to have the ability to synchronously block on a promise to
- wait for a result. Guzzle promises allows this functionality (and does
- not require the use of recursion).
- 3. Because we need to be able to wait on a result, doing so using React
- promises requires wrapping react promises with RingPHP futures. This
- overhead is no longer needed, reducing stack sizes, reducing complexity,
- and improving performance.
-- `GuzzleHttp\Mimetypes` has been moved to a function in
- `GuzzleHttp\Psr7\mimetype_from_extension` and
- `GuzzleHttp\Psr7\mimetype_from_filename`.
-- `GuzzleHttp\Query` and `GuzzleHttp\QueryParser` have been removed. Query
- strings must now be passed into request objects as strings, or provided to
- the `query` request option when creating requests with clients. The `query`
- option uses PHP's `http_build_query` to convert an array to a string. If you
- need a different serialization technique, you will need to pass the query
- string in as a string. There are a couple helper functions that will make
- working with query strings easier: `GuzzleHttp\Psr7\parse_query` and
- `GuzzleHttp\Psr7\build_query`.
-- Guzzle no longer has a dependency on RingPHP. Due to the use of a middleware
- system based on PSR-7, using RingPHP and it's middleware system as well adds
- more complexity than the benefits it provides. All HTTP handlers that were
- present in RingPHP have been modified to work directly with PSR-7 messages
- and placed in the `GuzzleHttp\Handler` namespace. This significantly reduces
- complexity in Guzzle, removes a dependency, and improves performance. RingPHP
- will be maintained for Guzzle 5 support, but will no longer be a part of
- Guzzle 6.
-- As Guzzle now uses a middleware based systems the event system and RingPHP
- integration has been removed. Note: while the event system has been removed,
- it is possible to add your own type of event system that is powered by the
- middleware system.
- - Removed the `Event` namespace.
- - Removed the `Subscriber` namespace.
- - Removed `Transaction` class
- - Removed `RequestFsm`
- - Removed `RingBridge`
- - `GuzzleHttp\Subscriber\Cookie` is now provided by
- `GuzzleHttp\Middleware::cookies`
- - `GuzzleHttp\Subscriber\HttpError` is now provided by
- `GuzzleHttp\Middleware::httpError`
- - `GuzzleHttp\Subscriber\History` is now provided by
- `GuzzleHttp\Middleware::history`
- - `GuzzleHttp\Subscriber\Mock` is now provided by
- `GuzzleHttp\Handler\MockHandler`
- - `GuzzleHttp\Subscriber\Prepare` is now provided by
- `GuzzleHttp\PrepareBodyMiddleware`
- - `GuzzleHttp\Subscriber\Redirect` is now provided by
- `GuzzleHttp\RedirectMiddleware`
-- Guzzle now uses `Psr\Http\Message\UriInterface` (implements in
- `GuzzleHttp\Psr7\Uri`) for URI support. `GuzzleHttp\Url` is now gone.
-- Static functions in `GuzzleHttp\Utils` have been moved to namespaced
- functions under the `GuzzleHttp` namespace. This requires either a Composer
- based autoloader or you to include functions.php.
-- `GuzzleHttp\ClientInterface::getDefaultOption` has been renamed to
- `GuzzleHttp\ClientInterface::getConfig`.
-- `GuzzleHttp\ClientInterface::setDefaultOption` has been removed.
-- The `json` and `xml` methods of response objects has been removed. With the
- migration to strictly adhering to PSR-7 as the interface for Guzzle messages,
- adding methods to message interfaces would actually require Guzzle messages
- to extend from PSR-7 messages rather then work with them directly.
-
-## Migrating to middleware
-
-The change to PSR-7 unfortunately required significant refactoring to Guzzle
-due to the fact that PSR-7 messages are immutable. Guzzle 5 relied on an event
-system from plugins. The event system relied on mutability of HTTP messages and
-side effects in order to work. With immutable messages, you have to change your
-workflow to become more about either returning a value (e.g., functional
-middlewares) or setting a value on an object. Guzzle v6 has chosen the
-functional middleware approach.
-
-Instead of using the event system to listen for things like the `before` event,
-you now create a stack based middleware function that intercepts a request on
-the way in and the promise of the response on the way out. This is a much
-simpler and more predictable approach than the event system and works nicely
-with PSR-7 middleware. Due to the use of promises, the middleware system is
-also asynchronous.
-
-v5:
-
-```php
-use GuzzleHttp\Event\BeforeEvent;
-$client = new GuzzleHttp\Client();
-// Get the emitter and listen to the before event.
-$client->getEmitter()->on('before', function (BeforeEvent $e) {
- // Guzzle v5 events relied on mutation
- $e->getRequest()->setHeader('X-Foo', 'Bar');
-});
-```
-
-v6:
-
-In v6, you can modify the request before it is sent using the `mapRequest`
-middleware. The idiomatic way in v6 to modify the request/response lifecycle is
-to setup a handler middleware stack up front and inject the handler into a
-client.
-
-```php
-use GuzzleHttp\Middleware;
-// Create a handler stack that has all of the default middlewares attached
-$handler = GuzzleHttp\HandlerStack::create();
-// Push the handler onto the handler stack
-$handler->push(Middleware::mapRequest(function (RequestInterface $request) {
- // Notice that we have to return a request object
- return $request->withHeader('X-Foo', 'Bar');
-}));
-// Inject the handler into the client
-$client = new GuzzleHttp\Client(['handler' => $handler]);
-```
-
-## POST Requests
-
-This version added the [`form_params`](http://guzzle.readthedocs.org/en/latest/request-options.html#form_params)
-and `multipart` request options. `form_params` is an associative array of
-strings or array of strings and is used to serialize an
-`application/x-www-form-urlencoded` POST request. The
-[`multipart`](http://guzzle.readthedocs.org/en/latest/request-options.html#multipart)
-option is now used to send a multipart/form-data POST request.
-
-`GuzzleHttp\Post\PostFile` has been removed. Use the `multipart` option to add
-POST files to a multipart/form-data request.
-
-The `body` option no longer accepts an array to send POST requests. Please use
-`multipart` or `form_params` instead.
-
-The `base_url` option has been renamed to `base_uri`.
-
-4.x to 5.0
-----------
-
-## Rewritten Adapter Layer
-
-Guzzle now uses [RingPHP](http://ringphp.readthedocs.org/en/latest) to send
-HTTP requests. The `adapter` option in a `GuzzleHttp\Client` constructor
-is still supported, but it has now been renamed to `handler`. Instead of
-passing a `GuzzleHttp\Adapter\AdapterInterface`, you must now pass a PHP
-`callable` that follows the RingPHP specification.
-
-## Removed Fluent Interfaces
-
-[Fluent interfaces were removed](http://ocramius.github.io/blog/fluent-interfaces-are-evil)
-from the following classes:
-
-- `GuzzleHttp\Collection`
-- `GuzzleHttp\Url`
-- `GuzzleHttp\Query`
-- `GuzzleHttp\Post\PostBody`
-- `GuzzleHttp\Cookie\SetCookie`
-
-## Removed functions.php
-
-Removed "functions.php", so that Guzzle is truly PSR-4 compliant. The following
-functions can be used as replacements.
-
-- `GuzzleHttp\json_decode` -> `GuzzleHttp\Utils::jsonDecode`
-- `GuzzleHttp\get_path` -> `GuzzleHttp\Utils::getPath`
-- `GuzzleHttp\Utils::setPath` -> `GuzzleHttp\set_path`
-- `GuzzleHttp\Pool::batch` -> `GuzzleHttp\batch`. This function is, however,
- deprecated in favor of using `GuzzleHttp\Pool::batch()`.
-
-The "procedural" global client has been removed with no replacement (e.g.,
-`GuzzleHttp\get()`, `GuzzleHttp\post()`, etc.). Use a `GuzzleHttp\Client`
-object as a replacement.
-
-## `throwImmediately` has been removed
-
-The concept of "throwImmediately" has been removed from exceptions and error
-events. This control mechanism was used to stop a transfer of concurrent
-requests from completing. This can now be handled by throwing the exception or
-by cancelling a pool of requests or each outstanding future request
-individually.
-
-## headers event has been removed
-
-Removed the "headers" event. This event was only useful for changing the
-body a response once the headers of the response were known. You can implement
-a similar behavior in a number of ways. One example might be to use a
-FnStream that has access to the transaction being sent. For example, when the
-first byte is written, you could check if the response headers match your
-expectations, and if so, change the actual stream body that is being
-written to.
-
-## Updates to HTTP Messages
-
-Removed the `asArray` parameter from
-`GuzzleHttp\Message\MessageInterface::getHeader`. If you want to get a header
-value as an array, then use the newly added `getHeaderAsArray()` method of
-`MessageInterface`. This change makes the Guzzle interfaces compatible with
-the PSR-7 interfaces.
-
-3.x to 4.0
-----------
-
-## Overarching changes:
-
-- Now requires PHP 5.4 or greater.
-- No longer requires cURL to send requests.
-- Guzzle no longer wraps every exception it throws. Only exceptions that are
- recoverable are now wrapped by Guzzle.
-- Various namespaces have been removed or renamed.
-- No longer requiring the Symfony EventDispatcher. A custom event dispatcher
- based on the Symfony EventDispatcher is
- now utilized in `GuzzleHttp\Event\EmitterInterface` (resulting in significant
- speed and functionality improvements).
-
-Changes per Guzzle 3.x namespace are described below.
-
-## Batch
-
-The `Guzzle\Batch` namespace has been removed. This is best left to
-third-parties to implement on top of Guzzle's core HTTP library.
-
-## Cache
-
-The `Guzzle\Cache` namespace has been removed. (Todo: No suitable replacement
-has been implemented yet, but hoping to utilize a PSR cache interface).
-
-## Common
-
-- Removed all of the wrapped exceptions. It's better to use the standard PHP
- library for unrecoverable exceptions.
-- `FromConfigInterface` has been removed.
-- `Guzzle\Common\Version` has been removed. The VERSION constant can be found
- at `GuzzleHttp\ClientInterface::VERSION`.
-
-### Collection
-
-- `getAll` has been removed. Use `toArray` to convert a collection to an array.
-- `inject` has been removed.
-- `keySearch` has been removed.
-- `getPath` no longer supports wildcard expressions. Use something better like
- JMESPath for this.
-- `setPath` now supports appending to an existing array via the `[]` notation.
-
-### Events
-
-Guzzle no longer requires Symfony's EventDispatcher component. Guzzle now uses
-`GuzzleHttp\Event\Emitter`.
-
-- `Symfony\Component\EventDispatcher\EventDispatcherInterface` is replaced by
- `GuzzleHttp\Event\EmitterInterface`.
-- `Symfony\Component\EventDispatcher\EventDispatcher` is replaced by
- `GuzzleHttp\Event\Emitter`.
-- `Symfony\Component\EventDispatcher\Event` is replaced by
- `GuzzleHttp\Event\Event`, and Guzzle now has an EventInterface in
- `GuzzleHttp\Event\EventInterface`.
-- `AbstractHasDispatcher` has moved to a trait, `HasEmitterTrait`, and
- `HasDispatcherInterface` has moved to `HasEmitterInterface`. Retrieving the
- event emitter of a request, client, etc. now uses the `getEmitter` method
- rather than the `getDispatcher` method.
-
-#### Emitter
-
-- Use the `once()` method to add a listener that automatically removes itself
- the first time it is invoked.
-- Use the `listeners()` method to retrieve a list of event listeners rather than
- the `getListeners()` method.
-- Use `emit()` instead of `dispatch()` to emit an event from an emitter.
-- Use `attach()` instead of `addSubscriber()` and `detach()` instead of
- `removeSubscriber()`.
-
-```php
-$mock = new Mock();
-// 3.x
-$request->getEventDispatcher()->addSubscriber($mock);
-$request->getEventDispatcher()->removeSubscriber($mock);
-// 4.x
-$request->getEmitter()->attach($mock);
-$request->getEmitter()->detach($mock);
-```
-
-Use the `on()` method to add a listener rather than the `addListener()` method.
-
-```php
-// 3.x
-$request->getEventDispatcher()->addListener('foo', function (Event $event) { /* ... */ } );
-// 4.x
-$request->getEmitter()->on('foo', function (Event $event, $name) { /* ... */ } );
-```
-
-## Http
-
-### General changes
-
-- The cacert.pem certificate has been moved to `src/cacert.pem`.
-- Added the concept of adapters that are used to transfer requests over the
- wire.
-- Simplified the event system.
-- Sending requests in parallel is still possible, but batching is no longer a
- concept of the HTTP layer. Instead, you must use the `complete` and `error`
- events to asynchronously manage parallel request transfers.
-- `Guzzle\Http\Url` has moved to `GuzzleHttp\Url`.
-- `Guzzle\Http\QueryString` has moved to `GuzzleHttp\Query`.
-- QueryAggregators have been rewritten so that they are simply callable
- functions.
-- `GuzzleHttp\StaticClient` has been removed. Use the functions provided in
- `functions.php` for an easy to use static client instance.
-- Exceptions in `GuzzleHttp\Exception` have been updated to all extend from
- `GuzzleHttp\Exception\TransferException`.
-
-### Client
-
-Calling methods like `get()`, `post()`, `head()`, etc. no longer create and
-return a request, but rather creates a request, sends the request, and returns
-the response.
-
-```php
-// 3.0
-$request = $client->get('/');
-$response = $request->send();
-
-// 4.0
-$response = $client->get('/');
-
-// or, to mirror the previous behavior
-$request = $client->createRequest('GET', '/');
-$response = $client->send($request);
-```
-
-`GuzzleHttp\ClientInterface` has changed.
-
-- The `send` method no longer accepts more than one request. Use `sendAll` to
- send multiple requests in parallel.
-- `setUserAgent()` has been removed. Use a default request option instead. You
- could, for example, do something like:
- `$client->setConfig('defaults/headers/User-Agent', 'Foo/Bar ' . $client::getDefaultUserAgent())`.
-- `setSslVerification()` has been removed. Use default request options instead,
- like `$client->setConfig('defaults/verify', true)`.
-
-`GuzzleHttp\Client` has changed.
-
-- The constructor now accepts only an associative array. You can include a
- `base_url` string or array to use a URI template as the base URL of a client.
- You can also specify a `defaults` key that is an associative array of default
- request options. You can pass an `adapter` to use a custom adapter,
- `batch_adapter` to use a custom adapter for sending requests in parallel, or
- a `message_factory` to change the factory used to create HTTP requests and
- responses.
-- The client no longer emits a `client.create_request` event.
-- Creating requests with a client no longer automatically utilize a URI
- template. You must pass an array into a creational method (e.g.,
- `createRequest`, `get`, `put`, etc.) in order to expand a URI template.
-
-### Messages
-
-Messages no longer have references to their counterparts (i.e., a request no
-longer has a reference to it's response, and a response no loger has a
-reference to its request). This association is now managed through a
-`GuzzleHttp\Adapter\TransactionInterface` object. You can get references to
-these transaction objects using request events that are emitted over the
-lifecycle of a request.
-
-#### Requests with a body
-
-- `GuzzleHttp\Message\EntityEnclosingRequest` and
- `GuzzleHttp\Message\EntityEnclosingRequestInterface` have been removed. The
- separation between requests that contain a body and requests that do not
- contain a body has been removed, and now `GuzzleHttp\Message\RequestInterface`
- handles both use cases.
-- Any method that previously accepts a `GuzzleHttp\Response` object now accept a
- `GuzzleHttp\Message\ResponseInterface`.
-- `GuzzleHttp\Message\RequestFactoryInterface` has been renamed to
- `GuzzleHttp\Message\MessageFactoryInterface`. This interface is used to create
- both requests and responses and is implemented in
- `GuzzleHttp\Message\MessageFactory`.
-- POST field and file methods have been removed from the request object. You
- must now use the methods made available to `GuzzleHttp\Post\PostBodyInterface`
- to control the format of a POST body. Requests that are created using a
- standard `GuzzleHttp\Message\MessageFactoryInterface` will automatically use
- a `GuzzleHttp\Post\PostBody` body if the body was passed as an array or if
- the method is POST and no body is provided.
-
-```php
-$request = $client->createRequest('POST', '/');
-$request->getBody()->setField('foo', 'bar');
-$request->getBody()->addFile(new PostFile('file_key', fopen('/path/to/content', 'r')));
-```
-
-#### Headers
-
-- `GuzzleHttp\Message\Header` has been removed. Header values are now simply
- represented by an array of values or as a string. Header values are returned
- as a string by default when retrieving a header value from a message. You can
- pass an optional argument of `true` to retrieve a header value as an array
- of strings instead of a single concatenated string.
-- `GuzzleHttp\PostFile` and `GuzzleHttp\PostFileInterface` have been moved to
- `GuzzleHttp\Post`. This interface has been simplified and now allows the
- addition of arbitrary headers.
-- Custom headers like `GuzzleHttp\Message\Header\Link` have been removed. Most
- of the custom headers are now handled separately in specific
- subscribers/plugins, and `GuzzleHttp\Message\HeaderValues::parseParams()` has
- been updated to properly handle headers that contain parameters (like the
- `Link` header).
-
-#### Responses
-
-- `GuzzleHttp\Message\Response::getInfo()` and
- `GuzzleHttp\Message\Response::setInfo()` have been removed. Use the event
- system to retrieve this type of information.
-- `GuzzleHttp\Message\Response::getRawHeaders()` has been removed.
-- `GuzzleHttp\Message\Response::getMessage()` has been removed.
-- `GuzzleHttp\Message\Response::calculateAge()` and other cache specific
- methods have moved to the CacheSubscriber.
-- Header specific helper functions like `getContentMd5()` have been removed.
- Just use `getHeader('Content-MD5')` instead.
-- `GuzzleHttp\Message\Response::setRequest()` and
- `GuzzleHttp\Message\Response::getRequest()` have been removed. Use the event
- system to work with request and response objects as a transaction.
-- `GuzzleHttp\Message\Response::getRedirectCount()` has been removed. Use the
- Redirect subscriber instead.
-- `GuzzleHttp\Message\Response::isSuccessful()` and other related methods have
- been removed. Use `getStatusCode()` instead.
-
-#### Streaming responses
-
-Streaming requests can now be created by a client directly, returning a
-`GuzzleHttp\Message\ResponseInterface` object that contains a body stream
-referencing an open PHP HTTP stream.
-
-```php
-// 3.0
-use Guzzle\Stream\PhpStreamRequestFactory;
-$request = $client->get('/');
-$factory = new PhpStreamRequestFactory();
-$stream = $factory->fromRequest($request);
-$data = $stream->read(1024);
-
-// 4.0
-$response = $client->get('/', ['stream' => true]);
-// Read some data off of the stream in the response body
-$data = $response->getBody()->read(1024);
-```
-
-#### Redirects
-
-The `configureRedirects()` method has been removed in favor of a
-`allow_redirects` request option.
-
-```php
-// Standard redirects with a default of a max of 5 redirects
-$request = $client->createRequest('GET', '/', ['allow_redirects' => true]);
-
-// Strict redirects with a custom number of redirects
-$request = $client->createRequest('GET', '/', [
- 'allow_redirects' => ['max' => 5, 'strict' => true]
-]);
-```
-
-#### EntityBody
-
-EntityBody interfaces and classes have been removed or moved to
-`GuzzleHttp\Stream`. All classes and interfaces that once required
-`GuzzleHttp\EntityBodyInterface` now require
-`GuzzleHttp\Stream\StreamInterface`. Creating a new body for a request no
-longer uses `GuzzleHttp\EntityBody::factory` but now uses
-`GuzzleHttp\Stream\Stream::factory` or even better:
-`GuzzleHttp\Stream\create()`.
-
-- `Guzzle\Http\EntityBodyInterface` is now `GuzzleHttp\Stream\StreamInterface`
-- `Guzzle\Http\EntityBody` is now `GuzzleHttp\Stream\Stream`
-- `Guzzle\Http\CachingEntityBody` is now `GuzzleHttp\Stream\CachingStream`
-- `Guzzle\Http\ReadLimitEntityBody` is now `GuzzleHttp\Stream\LimitStream`
-- `Guzzle\Http\IoEmittyinEntityBody` has been removed.
-
-#### Request lifecycle events
-
-Requests previously submitted a large number of requests. The number of events
-emitted over the lifecycle of a request has been significantly reduced to make
-it easier to understand how to extend the behavior of a request. All events
-emitted during the lifecycle of a request now emit a custom
-`GuzzleHttp\Event\EventInterface` object that contains context providing
-methods and a way in which to modify the transaction at that specific point in
-time (e.g., intercept the request and set a response on the transaction).
-
-- `request.before_send` has been renamed to `before` and now emits a
- `GuzzleHttp\Event\BeforeEvent`
-- `request.complete` has been renamed to `complete` and now emits a
- `GuzzleHttp\Event\CompleteEvent`.
-- `request.sent` has been removed. Use `complete`.
-- `request.success` has been removed. Use `complete`.
-- `error` is now an event that emits a `GuzzleHttp\Event\ErrorEvent`.
-- `request.exception` has been removed. Use `error`.
-- `request.receive.status_line` has been removed.
-- `curl.callback.progress` has been removed. Use a custom `StreamInterface` to
- maintain a status update.
-- `curl.callback.write` has been removed. Use a custom `StreamInterface` to
- intercept writes.
-- `curl.callback.read` has been removed. Use a custom `StreamInterface` to
- intercept reads.
-
-`headers` is a new event that is emitted after the response headers of a
-request have been received before the body of the response is downloaded. This
-event emits a `GuzzleHttp\Event\HeadersEvent`.
-
-You can intercept a request and inject a response using the `intercept()` event
-of a `GuzzleHttp\Event\BeforeEvent`, `GuzzleHttp\Event\CompleteEvent`, and
-`GuzzleHttp\Event\ErrorEvent` event.
-
-See: http://docs.guzzlephp.org/en/latest/events.html
-
-## Inflection
-
-The `Guzzle\Inflection` namespace has been removed. This is not a core concern
-of Guzzle.
-
-## Iterator
-
-The `Guzzle\Iterator` namespace has been removed.
-
-- `Guzzle\Iterator\AppendIterator`, `Guzzle\Iterator\ChunkedIterator`, and
- `Guzzle\Iterator\MethodProxyIterator` are nice, but not a core requirement of
- Guzzle itself.
-- `Guzzle\Iterator\FilterIterator` is no longer needed because an equivalent
- class is shipped with PHP 5.4.
-- `Guzzle\Iterator\MapIterator` is not really needed when using PHP 5.5 because
- it's easier to just wrap an iterator in a generator that maps values.
-
-For a replacement of these iterators, see https://github.com/nikic/iter
-
-## Log
-
-The LogPlugin has moved to https://github.com/guzzle/log-subscriber. The
-`Guzzle\Log` namespace has been removed. Guzzle now relies on
-`Psr\Log\LoggerInterface` for all logging. The MessageFormatter class has been
-moved to `GuzzleHttp\Subscriber\Log\Formatter`.
-
-## Parser
-
-The `Guzzle\Parser` namespace has been removed. This was previously used to
-make it possible to plug in custom parsers for cookies, messages, URI
-templates, and URLs; however, this level of complexity is not needed in Guzzle
-so it has been removed.
-
-- Cookie: Cookie parsing logic has been moved to
- `GuzzleHttp\Cookie\SetCookie::fromString`.
-- Message: Message parsing logic for both requests and responses has been moved
- to `GuzzleHttp\Message\MessageFactory::fromMessage`. Message parsing is only
- used in debugging or deserializing messages, so it doesn't make sense for
- Guzzle as a library to add this level of complexity to parsing messages.
-- UriTemplate: URI template parsing has been moved to
- `GuzzleHttp\UriTemplate`. The Guzzle library will automatically use the PECL
- URI template library if it is installed.
-- Url: URL parsing is now performed in `GuzzleHttp\Url::fromString` (previously
- it was `Guzzle\Http\Url::factory()`). If custom URL parsing is necessary,
- then developers are free to subclass `GuzzleHttp\Url`.
-
-## Plugin
-
-The `Guzzle\Plugin` namespace has been renamed to `GuzzleHttp\Subscriber`.
-Several plugins are shipping with the core Guzzle library under this namespace.
-
-- `GuzzleHttp\Subscriber\Cookie`: Replaces the old CookiePlugin. Cookie jar
- code has moved to `GuzzleHttp\Cookie`.
-- `GuzzleHttp\Subscriber\History`: Replaces the old HistoryPlugin.
-- `GuzzleHttp\Subscriber\HttpError`: Throws errors when a bad HTTP response is
- received.
-- `GuzzleHttp\Subscriber\Mock`: Replaces the old MockPlugin.
-- `GuzzleHttp\Subscriber\Prepare`: Prepares the body of a request just before
- sending. This subscriber is attached to all requests by default.
-- `GuzzleHttp\Subscriber\Redirect`: Replaces the RedirectPlugin.
-
-The following plugins have been removed (third-parties are free to re-implement
-these if needed):
-
-- `GuzzleHttp\Plugin\Async` has been removed.
-- `GuzzleHttp\Plugin\CurlAuth` has been removed.
-- `GuzzleHttp\Plugin\ErrorResponse\ErrorResponsePlugin` has been removed. This
- functionality should instead be implemented with event listeners that occur
- after normal response parsing occurs in the guzzle/command package.
-
-The following plugins are not part of the core Guzzle package, but are provided
-in separate repositories:
-
-- `Guzzle\Http\Plugin\BackoffPlugin` has been rewritten to be much simpler
- to build custom retry policies using simple functions rather than various
- chained classes. See: https://github.com/guzzle/retry-subscriber
-- `Guzzle\Http\Plugin\Cache\CachePlugin` has moved to
- https://github.com/guzzle/cache-subscriber
-- `Guzzle\Http\Plugin\Log\LogPlugin` has moved to
- https://github.com/guzzle/log-subscriber
-- `Guzzle\Http\Plugin\Md5\Md5Plugin` has moved to
- https://github.com/guzzle/message-integrity-subscriber
-- `Guzzle\Http\Plugin\Mock\MockPlugin` has moved to
- `GuzzleHttp\Subscriber\MockSubscriber`.
-- `Guzzle\Http\Plugin\Oauth\OauthPlugin` has moved to
- https://github.com/guzzle/oauth-subscriber
-
-## Service
-
-The service description layer of Guzzle has moved into two separate packages:
-
-- http://github.com/guzzle/command Provides a high level abstraction over web
- services by representing web service operations using commands.
-- http://github.com/guzzle/guzzle-services Provides an implementation of
- guzzle/command that provides request serialization and response parsing using
- Guzzle service descriptions.
-
-## Stream
-
-Stream have moved to a separate package available at
-https://github.com/guzzle/streams.
-
-`Guzzle\Stream\StreamInterface` has been given a large update to cleanly take
-on the responsibilities of `Guzzle\Http\EntityBody` and
-`Guzzle\Http\EntityBodyInterface` now that they have been removed. The number
-of methods implemented by the `StreamInterface` has been drastically reduced to
-allow developers to more easily extend and decorate stream behavior.
-
-## Removed methods from StreamInterface
-
-- `getStream` and `setStream` have been removed to better encapsulate streams.
-- `getMetadata` and `setMetadata` have been removed in favor of
- `GuzzleHttp\Stream\MetadataStreamInterface`.
-- `getWrapper`, `getWrapperData`, `getStreamType`, and `getUri` have all been
- removed. This data is accessible when
- using streams that implement `GuzzleHttp\Stream\MetadataStreamInterface`.
-- `rewind` has been removed. Use `seek(0)` for a similar behavior.
-
-## Renamed methods
-
-- `detachStream` has been renamed to `detach`.
-- `feof` has been renamed to `eof`.
-- `ftell` has been renamed to `tell`.
-- `readLine` has moved from an instance method to a static class method of
- `GuzzleHttp\Stream\Stream`.
-
-## Metadata streams
-
-`GuzzleHttp\Stream\MetadataStreamInterface` has been added to denote streams
-that contain additional metadata accessible via `getMetadata()`.
-`GuzzleHttp\Stream\StreamInterface::getMetadata` and
-`GuzzleHttp\Stream\StreamInterface::setMetadata` have been removed.
-
-## StreamRequestFactory
-
-The entire concept of the StreamRequestFactory has been removed. The way this
-was used in Guzzle 3 broke the actual interface of sending streaming requests
-(instead of getting back a Response, you got a StreamInterface). Streaming
-PHP requests are now implemented through the `GuzzleHttp\Adapter\StreamAdapter`.
-
-3.6 to 3.7
-----------
-
-### Deprecations
-
-- You can now enable E_USER_DEPRECATED warnings to see if you are using any deprecated methods.:
-
-```php
-\Guzzle\Common\Version::$emitWarnings = true;
-```
-
-The following APIs and options have been marked as deprecated:
-
-- Marked `Guzzle\Http\Message\Request::isResponseBodyRepeatable()` as deprecated. Use `$request->getResponseBody()->isRepeatable()` instead.
-- Marked `Guzzle\Http\Message\Request::canCache()` as deprecated. Use `Guzzle\Plugin\Cache\DefaultCanCacheStrategy->canCacheRequest()` instead.
-- Marked `Guzzle\Http\Message\Request::canCache()` as deprecated. Use `Guzzle\Plugin\Cache\DefaultCanCacheStrategy->canCacheRequest()` instead.
-- Marked `Guzzle\Http\Message\Request::setIsRedirect()` as deprecated. Use the HistoryPlugin instead.
-- Marked `Guzzle\Http\Message\Request::isRedirect()` as deprecated. Use the HistoryPlugin instead.
-- Marked `Guzzle\Cache\CacheAdapterFactory::factory()` as deprecated
-- Marked `Guzzle\Service\Client::enableMagicMethods()` as deprecated. Magic methods can no longer be disabled on a Guzzle\Service\Client.
-- Marked `Guzzle\Parser\Url\UrlParser` as deprecated. Just use PHP's `parse_url()` and percent encode your UTF-8.
-- Marked `Guzzle\Common\Collection::inject()` as deprecated.
-- Marked `Guzzle\Plugin\CurlAuth\CurlAuthPlugin` as deprecated. Use
- `$client->getConfig()->setPath('request.options/auth', array('user', 'pass', 'Basic|Digest|NTLM|Any'));` or
- `$client->setDefaultOption('auth', array('user', 'pass', 'Basic|Digest|NTLM|Any'));`
-
-3.7 introduces `request.options` as a parameter for a client configuration and as an optional argument to all creational
-request methods. When paired with a client's configuration settings, these options allow you to specify default settings
-for various aspects of a request. Because these options make other previous configuration options redundant, several
-configuration options and methods of a client and AbstractCommand have been deprecated.
-
-- Marked `Guzzle\Service\Client::getDefaultHeaders()` as deprecated. Use `$client->getDefaultOption('headers')`.
-- Marked `Guzzle\Service\Client::setDefaultHeaders()` as deprecated. Use `$client->setDefaultOption('headers/{header_name}', 'value')`.
-- Marked 'request.params' for `Guzzle\Http\Client` as deprecated. Use `$client->setDefaultOption('params/{param_name}', 'value')`
-- Marked 'command.headers', 'command.response_body' and 'command.on_complete' as deprecated for AbstractCommand. These will work through Guzzle 4.0
-
- $command = $client->getCommand('foo', array(
- 'command.headers' => array('Test' => '123'),
- 'command.response_body' => '/path/to/file'
- ));
-
- // Should be changed to:
-
- $command = $client->getCommand('foo', array(
- 'command.request_options' => array(
- 'headers' => array('Test' => '123'),
- 'save_as' => '/path/to/file'
- )
- ));
-
-### Interface changes
-
-Additions and changes (you will need to update any implementations or subclasses you may have created):
-
-- Added an `$options` argument to the end of the following methods of `Guzzle\Http\ClientInterface`:
- createRequest, head, delete, put, patch, post, options, prepareRequest
-- Added an `$options` argument to the end of `Guzzle\Http\Message\Request\RequestFactoryInterface::createRequest()`
-- Added an `applyOptions()` method to `Guzzle\Http\Message\Request\RequestFactoryInterface`
-- Changed `Guzzle\Http\ClientInterface::get($uri = null, $headers = null, $body = null)` to
- `Guzzle\Http\ClientInterface::get($uri = null, $headers = null, $options = array())`. You can still pass in a
- resource, string, or EntityBody into the $options parameter to specify the download location of the response.
-- Changed `Guzzle\Common\Collection::__construct($data)` to no longer accepts a null value for `$data` but a
- default `array()`
-- Added `Guzzle\Stream\StreamInterface::isRepeatable`
-- Made `Guzzle\Http\Client::expandTemplate` and `getUriTemplate` protected methods.
-
-The following methods were removed from interfaces. All of these methods are still available in the concrete classes
-that implement them, but you should update your code to use alternative methods:
-
-- Removed `Guzzle\Http\ClientInterface::setDefaultHeaders(). Use
- `$client->getConfig()->setPath('request.options/headers/{header_name}', 'value')`. or
- `$client->getConfig()->setPath('request.options/headers', array('header_name' => 'value'))` or
- `$client->setDefaultOption('headers/{header_name}', 'value')`. or
- `$client->setDefaultOption('headers', array('header_name' => 'value'))`.
-- Removed `Guzzle\Http\ClientInterface::getDefaultHeaders(). Use `$client->getConfig()->getPath('request.options/headers')`.
-- Removed `Guzzle\Http\ClientInterface::expandTemplate()`. This is an implementation detail.
-- Removed `Guzzle\Http\ClientInterface::setRequestFactory()`. This is an implementation detail.
-- Removed `Guzzle\Http\ClientInterface::getCurlMulti()`. This is a very specific implementation detail.
-- Removed `Guzzle\Http\Message\RequestInterface::canCache`. Use the CachePlugin.
-- Removed `Guzzle\Http\Message\RequestInterface::setIsRedirect`. Use the HistoryPlugin.
-- Removed `Guzzle\Http\Message\RequestInterface::isRedirect`. Use the HistoryPlugin.
-
-### Cache plugin breaking changes
-
-- CacheKeyProviderInterface and DefaultCacheKeyProvider are no longer used. All of this logic is handled in a
- CacheStorageInterface. These two objects and interface will be removed in a future version.
-- Always setting X-cache headers on cached responses
-- Default cache TTLs are now handled by the CacheStorageInterface of a CachePlugin
-- `CacheStorageInterface::cache($key, Response $response, $ttl = null)` has changed to `cache(RequestInterface
- $request, Response $response);`
-- `CacheStorageInterface::fetch($key)` has changed to `fetch(RequestInterface $request);`
-- `CacheStorageInterface::delete($key)` has changed to `delete(RequestInterface $request);`
-- Added `CacheStorageInterface::purge($url)`
-- `DefaultRevalidation::__construct(CacheKeyProviderInterface $cacheKey, CacheStorageInterface $cache, CachePlugin
- $plugin)` has changed to `DefaultRevalidation::__construct(CacheStorageInterface $cache,
- CanCacheStrategyInterface $canCache = null)`
-- Added `RevalidationInterface::shouldRevalidate(RequestInterface $request, Response $response)`
-
-3.5 to 3.6
-----------
-
-* Mixed casing of headers are now forced to be a single consistent casing across all values for that header.
-* Messages internally use a HeaderCollection object to delegate handling case-insensitive header resolution
-* Removed the whole changedHeader() function system of messages because all header changes now go through addHeader().
- For example, setHeader() first removes the header using unset on a HeaderCollection and then calls addHeader().
- Keeping the Host header and URL host in sync is now handled by overriding the addHeader method in Request.
-* Specific header implementations can be created for complex headers. When a message creates a header, it uses a
- HeaderFactory which can map specific headers to specific header classes. There is now a Link header and
- CacheControl header implementation.
-* Moved getLinks() from Response to just be used on a Link header object.
-
-If you previously relied on Guzzle\Http\Message\Header::raw(), then you will need to update your code to use the
-HeaderInterface (e.g. toArray(), getAll(), etc.).
-
-### Interface changes
-
-* Removed from interface: Guzzle\Http\ClientInterface::setUriTemplate
-* Removed from interface: Guzzle\Http\ClientInterface::setCurlMulti()
-* Removed Guzzle\Http\Message\Request::receivedRequestHeader() and implemented this functionality in
- Guzzle\Http\Curl\RequestMediator
-* Removed the optional $asString parameter from MessageInterface::getHeader(). Just cast the header to a string.
-* Removed the optional $tryChunkedTransfer option from Guzzle\Http\Message\EntityEnclosingRequestInterface
-* Removed the $asObjects argument from Guzzle\Http\Message\MessageInterface::getHeaders()
-
-### Removed deprecated functions
-
-* Removed Guzzle\Parser\ParserRegister::get(). Use getParser()
-* Removed Guzzle\Parser\ParserRegister::set(). Use registerParser().
-
-### Deprecations
-
-* The ability to case-insensitively search for header values
-* Guzzle\Http\Message\Header::hasExactHeader
-* Guzzle\Http\Message\Header::raw. Use getAll()
-* Deprecated cache control specific methods on Guzzle\Http\Message\AbstractMessage. Use the CacheControl header object
- instead.
-
-### Other changes
-
-* All response header helper functions return a string rather than mixing Header objects and strings inconsistently
-* Removed cURL blacklist support. This is no longer necessary now that Expect, Accept, etc. are managed by Guzzle
- directly via interfaces
-* Removed the injecting of a request object onto a response object. The methods to get and set a request still exist
- but are a no-op until removed.
-* Most classes that used to require a `Guzzle\Service\Command\CommandInterface` typehint now request a
- `Guzzle\Service\Command\ArrayCommandInterface`.
-* Added `Guzzle\Http\Message\RequestInterface::startResponse()` to the RequestInterface to handle injecting a response
- on a request while the request is still being transferred
-* `Guzzle\Service\Command\CommandInterface` now extends from ToArrayInterface and ArrayAccess
-
-3.3 to 3.4
-----------
-
-Base URLs of a client now follow the rules of http://tools.ietf.org/html/rfc3986#section-5.2.2 when merging URLs.
-
-3.2 to 3.3
-----------
-
-### Response::getEtag() quote stripping removed
-
-`Guzzle\Http\Message\Response::getEtag()` no longer strips quotes around the ETag response header
-
-### Removed `Guzzle\Http\Utils`
-
-The `Guzzle\Http\Utils` class was removed. This class was only used for testing.
-
-### Stream wrapper and type
-
-`Guzzle\Stream\Stream::getWrapper()` and `Guzzle\Stream\Stream::getStreamType()` are no longer converted to lowercase.
-
-### curl.emit_io became emit_io
-
-Emitting IO events from a RequestMediator is now a parameter that must be set in a request's curl options using the
-'emit_io' key. This was previously set under a request's parameters using 'curl.emit_io'
-
-3.1 to 3.2
-----------
-
-### CurlMulti is no longer reused globally
-
-Before 3.2, the same CurlMulti object was reused globally for each client. This can cause issue where plugins added
-to a single client can pollute requests dispatched from other clients.
-
-If you still wish to reuse the same CurlMulti object with each client, then you can add a listener to the
-ServiceBuilder's `service_builder.create_client` event to inject a custom CurlMulti object into each client as it is
-created.
-
-```php
-$multi = new Guzzle\Http\Curl\CurlMulti();
-$builder = Guzzle\Service\Builder\ServiceBuilder::factory('/path/to/config.json');
-$builder->addListener('service_builder.create_client', function ($event) use ($multi) {
- $event['client']->setCurlMulti($multi);
-}
-});
-```
-
-### No default path
-
-URLs no longer have a default path value of '/' if no path was specified.
-
-Before:
-
-```php
-$request = $client->get('http://www.foo.com');
-echo $request->getUrl();
-// >> http://www.foo.com/
-```
-
-After:
-
-```php
-$request = $client->get('http://www.foo.com');
-echo $request->getUrl();
-// >> http://www.foo.com
-```
-
-### Less verbose BadResponseException
-
-The exception message for `Guzzle\Http\Exception\BadResponseException` no longer contains the full HTTP request and
-response information. You can, however, get access to the request and response object by calling `getRequest()` or
-`getResponse()` on the exception object.
-
-### Query parameter aggregation
-
-Multi-valued query parameters are no longer aggregated using a callback function. `Guzzle\Http\Query` now has a
-setAggregator() method that accepts a `Guzzle\Http\QueryAggregator\QueryAggregatorInterface` object. This object is
-responsible for handling the aggregation of multi-valued query string variables into a flattened hash.
-
-2.8 to 3.x
-----------
-
-### Guzzle\Service\Inspector
-
-Change `\Guzzle\Service\Inspector::fromConfig` to `\Guzzle\Common\Collection::fromConfig`
-
-**Before**
-
-```php
-use Guzzle\Service\Inspector;
-
-class YourClient extends \Guzzle\Service\Client
-{
- public static function factory($config = array())
- {
- $default = array();
- $required = array('base_url', 'username', 'api_key');
- $config = Inspector::fromConfig($config, $default, $required);
-
- $client = new self(
- $config->get('base_url'),
- $config->get('username'),
- $config->get('api_key')
- );
- $client->setConfig($config);
-
- $client->setDescription(ServiceDescription::factory(__DIR__ . DIRECTORY_SEPARATOR . 'client.json'));
-
- return $client;
- }
-```
-
-**After**
-
-```php
-use Guzzle\Common\Collection;
-
-class YourClient extends \Guzzle\Service\Client
-{
- public static function factory($config = array())
- {
- $default = array();
- $required = array('base_url', 'username', 'api_key');
- $config = Collection::fromConfig($config, $default, $required);
-
- $client = new self(
- $config->get('base_url'),
- $config->get('username'),
- $config->get('api_key')
- );
- $client->setConfig($config);
-
- $client->setDescription(ServiceDescription::factory(__DIR__ . DIRECTORY_SEPARATOR . 'client.json'));
-
- return $client;
- }
-```
-
-### Convert XML Service Descriptions to JSON
-
-**Before**
-
-```xml
-
-
-
-
-