Version Description
- adjust syntax to ensure plugin compatibility check can run on older php versions (eg. PHP 5.2)
- removed dependency on ext-mbstring by allowing mbstring polyfill to be used as fallback
- export zip filename now incorporates blogname and utc date for better consistency and organization
- clean and end all output buffers by default to ensure PHP doesn't store zip archive in output buffer and run out of memory
Download this release
Release Info
Developer | andrej.pavlovic |
Plugin | Export Media Library |
Version | 3.0.1 |
Comparing to | |
See all releases |
Code changes from version 3.0.0 to 3.0.1
- index.php +3 -2
- lib/DependencyCheck.php +0 -13
- lib/MassEdge/WordPress/Plugin/ExportMediaLibrary/API.php +6 -0
- lib/MassEdge/WordPress/Plugin/ExportMediaLibrary/Module/AdminPageExport.php +15 -1
- readme.txt +7 -1
- vendor/autoload.php +1 -1
- vendor/composer/autoload_files.php +10 -0
- vendor/composer/autoload_psr4.php +1 -0
- vendor/composer/autoload_real.php +22 -4
- vendor/composer/autoload_static.php +16 -4
- vendor/composer/installed.json +87 -23
- vendor/maennchen/zipstream-php/CHANGELOG.md +9 -0
- vendor/maennchen/zipstream-php/README.md +53 -11
- vendor/maennchen/zipstream-php/composer.json +2 -2
- vendor/maennchen/zipstream-php/psalm.xml +55 -0
- vendor/maennchen/zipstream-php/src/Bigint.php +4 -4
- vendor/maennchen/zipstream-php/src/File.php +8 -11
- vendor/maennchen/zipstream-php/src/Stream.php +0 -5
- vendor/maennchen/zipstream-php/src/ZipStream.php +8 -2
- vendor/maennchen/zipstream-php/test/BigintTest.php +3 -3
- vendor/maennchen/zipstream-php/test/ZipStreamTest.php +26 -0
- vendor/myclabs/php-enum/README.md +1 -0
- vendor/myclabs/php-enum/composer.json +3 -2
- vendor/myclabs/php-enum/psalm.xml +20 -0
- vendor/myclabs/php-enum/src/Enum.php +40 -6
- vendor/symfony/polyfill-mbstring/LICENSE +19 -0
- vendor/symfony/polyfill-mbstring/Mbstring.php +847 -0
- vendor/symfony/polyfill-mbstring/README.md +13 -0
- vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php +1096 -0
- vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php +5 -0
- vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php +1104 -0
- vendor/symfony/polyfill-mbstring/bootstrap.php +141 -0
- vendor/symfony/polyfill-mbstring/composer.json +34 -0
index.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Export Media Library
|
4 |
Plugin URI: https://github.com/massedge/wordpress-plugin-export-media-library
|
5 |
Description: Allows admins to export media library files as a compressed zip archive.
|
6 |
-
Version: 3.0.
|
7 |
Author: Mass Edge Inc.
|
8 |
Author URI: https://www.massedge.com/
|
9 |
License: GPL3
|
@@ -14,7 +14,8 @@ if (!defined('ABSPATH')) exit; // Exit if accessed directly
|
|
14 |
|
15 |
// ensure all dependencies met before fully initializing plugin code
|
16 |
require 'lib/DependencyCheck.php';
|
17 |
-
|
|
|
18 |
|
19 |
define('MASSEDGE_WORDPRESS_PLUGIN_EXPORT_MEDIA_LIBRARY_PLUGIN_PATH', __FILE__);
|
20 |
require 'run.php';
|
3 |
Plugin Name: Export Media Library
|
4 |
Plugin URI: https://github.com/massedge/wordpress-plugin-export-media-library
|
5 |
Description: Allows admins to export media library files as a compressed zip archive.
|
6 |
+
Version: 3.0.1
|
7 |
Author: Mass Edge Inc.
|
8 |
Author URI: https://www.massedge.com/
|
9 |
License: GPL3
|
14 |
|
15 |
// ensure all dependencies met before fully initializing plugin code
|
16 |
require 'lib/DependencyCheck.php';
|
17 |
+
$massEdgeWordPressPluginEmlDependencyCheck = new MassEdgeWordPressPluginExportMediaLibraryDependencyCheck(__FILE__);
|
18 |
+
if (!$massEdgeWordPressPluginEmlDependencyCheck->run()) return;
|
19 |
|
20 |
define('MASSEDGE_WORDPRESS_PLUGIN_EXPORT_MEDIA_LIBRARY_PLUGIN_PATH', __FILE__);
|
21 |
require 'run.php';
|
lib/DependencyCheck.php
CHANGED
@@ -5,8 +5,6 @@ class MassEdgeWordPressPluginExportMediaLibraryDependencyCheck {
|
|
5 |
|
6 |
const MINIMUM_PHP_VERSION_REQUIRED = '7.1';
|
7 |
|
8 |
-
const MBSTRING_EXTENSION_NAME = 'mbstring';
|
9 |
-
|
10 |
private $pluginPath;
|
11 |
private $adminNoticePluginDisabledMessage;
|
12 |
|
@@ -25,17 +23,6 @@ class MassEdgeWordPressPluginExportMediaLibraryDependencyCheck {
|
|
25 |
));
|
26 |
}
|
27 |
|
28 |
-
foreach(array(self::MBSTRING_EXTENSION_NAME) as $extensionName) {
|
29 |
-
// ensure extension is enabled
|
30 |
-
if (!extension_loaded($extensionName)) {
|
31 |
-
return self::checkFailed(sprintf(
|
32 |
-
'%s plugin requires the \'%s\' extension to be enabled in you PHP installation.',
|
33 |
-
self::PLUGIN_NAME,
|
34 |
-
$extensionName
|
35 |
-
));
|
36 |
-
}
|
37 |
-
}
|
38 |
-
|
39 |
return true;
|
40 |
}
|
41 |
|
5 |
|
6 |
const MINIMUM_PHP_VERSION_REQUIRED = '7.1';
|
7 |
|
|
|
|
|
8 |
private $pluginPath;
|
9 |
private $adminNoticePluginDisabledMessage;
|
10 |
|
23 |
));
|
24 |
}
|
25 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
return true;
|
27 |
}
|
28 |
|
lib/MassEdge/WordPress/Plugin/ExportMediaLibrary/API.php
CHANGED
@@ -28,6 +28,7 @@ class API {
|
|
28 |
'add_attachment_callback' => function($value, $params) { return $value; },
|
29 |
'add_attachment_failed_callback' => function($params) {},
|
30 |
'add_extra_files_callback' => function($params) {},
|
|
|
31 |
];
|
32 |
}
|
33 |
|
@@ -50,6 +51,11 @@ class API {
|
|
50 |
$compressionMethod = new MethodOptions(
|
51 |
($options['compress']) ? MethodOptions::DEFLATE : MethodOptions::STORE
|
52 |
);
|
|
|
|
|
|
|
|
|
|
|
53 |
|
54 |
// create a new zipstream object
|
55 |
$archiveOptions = new ArchiveOptions();
|
28 |
'add_attachment_callback' => function($value, $params) { return $value; },
|
29 |
'add_attachment_failed_callback' => function($params) {},
|
30 |
'add_extra_files_callback' => function($params) {},
|
31 |
+
'purge_output_buffers' => true,
|
32 |
];
|
33 |
}
|
34 |
|
51 |
$compressionMethod = new MethodOptions(
|
52 |
($options['compress']) ? MethodOptions::DEFLATE : MethodOptions::STORE
|
53 |
);
|
54 |
+
|
55 |
+
// clear output buffers
|
56 |
+
if ($options['purge_output_buffers']) {
|
57 |
+
while (ob_get_level()) if (!ob_end_clean()) break;
|
58 |
+
}
|
59 |
|
60 |
// create a new zipstream object
|
61 |
$archiveOptions = new ArchiveOptions();
|
lib/MassEdge/WordPress/Plugin/ExportMediaLibrary/Module/AdminPageExport.php
CHANGED
@@ -35,7 +35,7 @@ class AdminPageExport extends Base {
|
|
35 |
if (!check_admin_referer(self::FIELD_NONCE_DOWNLOAD_ACTION)) return;
|
36 |
|
37 |
// create name for download
|
38 |
-
$filename =
|
39 |
|
40 |
// set folder structure
|
41 |
$folderStructure = (
|
@@ -113,4 +113,18 @@ class AdminPageExport extends Base {
|
|
113 |
<?php
|
114 |
echo ob_get_clean();
|
115 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
116 |
}
|
35 |
if (!check_admin_referer(self::FIELD_NONCE_DOWNLOAD_ACTION)) return;
|
36 |
|
37 |
// create name for download
|
38 |
+
$filename = self::getExportFilename(get_option('blogname'));
|
39 |
|
40 |
// set folder structure
|
41 |
$folderStructure = (
|
113 |
<?php
|
114 |
echo ob_get_clean();
|
115 |
}
|
116 |
+
|
117 |
+
private static function getExportFilename($blogname) {
|
118 |
+
$name = mb_strtolower($blogname);
|
119 |
+
$name = preg_replace('/\s+/', '_', $name);
|
120 |
+
$name = preg_replace('/[^\w\d_]/iu','', $name);
|
121 |
+
|
122 |
+
$unsanatizedFilename = implode('-', [
|
123 |
+
'media_library_export',
|
124 |
+
$name,
|
125 |
+
current_time('Y_m_d_H_i_s', true),
|
126 |
+
]) . '.zip';
|
127 |
+
|
128 |
+
return sanitize_file_name($unsanatizedFilename);
|
129 |
+
}
|
130 |
}
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Tags: export media library, download media library, media library, export, downl
|
|
4 |
Requires at least: 4.7.10
|
5 |
Tested up to: 5.3
|
6 |
Requires PHP: 7.1
|
7 |
-
Stable tag: 3.0.
|
8 |
License: GPLv3
|
9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
@@ -26,6 +26,12 @@ Allows users to export media library files as a compressed zip archive.
|
|
26 |
|
27 |
== Changelog ==
|
28 |
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
= 3.0.0 =
|
30 |
* bumped minimum php version to 7.1
|
31 |
* flush buffer after every write in order to avoid exceeding memory
|
4 |
Requires at least: 4.7.10
|
5 |
Tested up to: 5.3
|
6 |
Requires PHP: 7.1
|
7 |
+
Stable tag: 3.0.1
|
8 |
License: GPLv3
|
9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
26 |
|
27 |
== Changelog ==
|
28 |
|
29 |
+
= 3.0.1 =
|
30 |
+
* adjust syntax to ensure plugin compatibility check can run on older php versions (eg. PHP 5.2)
|
31 |
+
* removed dependency on ext-mbstring by allowing mbstring polyfill to be used as fallback
|
32 |
+
* export zip filename now incorporates blogname and utc date for better consistency and organization
|
33 |
+
* clean and end all output buffers by default to ensure PHP doesn't store zip archive in output buffer and run out of memory
|
34 |
+
|
35 |
= 3.0.0 =
|
36 |
* bumped minimum php version to 7.1
|
37 |
* flush buffer after every write in order to avoid exceeding memory
|
vendor/autoload.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInit2f935c889239f09e679be069f42693f4::getLoader();
|
vendor/composer/autoload_files.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// autoload_files.php @generated by Composer
|
4 |
+
|
5 |
+
$vendorDir = dirname(dirname(__FILE__));
|
6 |
+
$baseDir = dirname($vendorDir);
|
7 |
+
|
8 |
+
return array(
|
9 |
+
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
|
10 |
+
);
|
vendor/composer/autoload_psr4.php
CHANGED
@@ -7,6 +7,7 @@ $baseDir = dirname($vendorDir);
|
|
7 |
|
8 |
return array(
|
9 |
'ZipStream\\' => array($vendorDir . '/maennchen/zipstream-php/src'),
|
|
|
10 |
'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src'),
|
11 |
'MyCLabs\\Enum\\' => array($vendorDir . '/myclabs/php-enum/src'),
|
12 |
'' => array($baseDir . '/lib'),
|
7 |
|
8 |
return array(
|
9 |
'ZipStream\\' => array($vendorDir . '/maennchen/zipstream-php/src'),
|
10 |
+
'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'),
|
11 |
'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src'),
|
12 |
'MyCLabs\\Enum\\' => array($vendorDir . '/myclabs/php-enum/src'),
|
13 |
'' => array($baseDir . '/lib'),
|
vendor/composer/autoload_real.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
-
class
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
@@ -19,15 +19,15 @@ class ComposerAutoloaderInit70c1bea2cbce529378170e8f3fa2903d
|
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
-
spl_autoload_register(array('
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
-
spl_autoload_unregister(array('
|
25 |
|
26 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
27 |
if ($useStaticLoader) {
|
28 |
require_once __DIR__ . '/autoload_static.php';
|
29 |
|
30 |
-
call_user_func(\Composer\Autoload\
|
31 |
} else {
|
32 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
33 |
foreach ($map as $namespace => $path) {
|
@@ -47,6 +47,24 @@ class ComposerAutoloaderInit70c1bea2cbce529378170e8f3fa2903d
|
|
47 |
|
48 |
$loader->register(true);
|
49 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
return $loader;
|
51 |
}
|
52 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
+
class ComposerAutoloaderInit2f935c889239f09e679be069f42693f4
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
+
spl_autoload_register(array('ComposerAutoloaderInit2f935c889239f09e679be069f42693f4', 'loadClassLoader'), true, true);
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit2f935c889239f09e679be069f42693f4', 'loadClassLoader'));
|
25 |
|
26 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
27 |
if ($useStaticLoader) {
|
28 |
require_once __DIR__ . '/autoload_static.php';
|
29 |
|
30 |
+
call_user_func(\Composer\Autoload\ComposerStaticInit2f935c889239f09e679be069f42693f4::getInitializer($loader));
|
31 |
} else {
|
32 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
33 |
foreach ($map as $namespace => $path) {
|
47 |
|
48 |
$loader->register(true);
|
49 |
|
50 |
+
if ($useStaticLoader) {
|
51 |
+
$includeFiles = Composer\Autoload\ComposerStaticInit2f935c889239f09e679be069f42693f4::$files;
|
52 |
+
} else {
|
53 |
+
$includeFiles = require __DIR__ . '/autoload_files.php';
|
54 |
+
}
|
55 |
+
foreach ($includeFiles as $fileIdentifier => $file) {
|
56 |
+
composerRequire2f935c889239f09e679be069f42693f4($fileIdentifier, $file);
|
57 |
+
}
|
58 |
+
|
59 |
return $loader;
|
60 |
}
|
61 |
}
|
62 |
+
|
63 |
+
function composerRequire2f935c889239f09e679be069f42693f4($fileIdentifier, $file)
|
64 |
+
{
|
65 |
+
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
66 |
+
require $file;
|
67 |
+
|
68 |
+
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
69 |
+
}
|
70 |
+
}
|
vendor/composer/autoload_static.php
CHANGED
@@ -4,13 +4,21 @@
|
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
-
class
|
8 |
{
|
|
|
|
|
|
|
|
|
9 |
public static $prefixLengthsPsr4 = array (
|
10 |
'Z' =>
|
11 |
array (
|
12 |
'ZipStream\\' => 10,
|
13 |
),
|
|
|
|
|
|
|
|
|
14 |
'P' =>
|
15 |
array (
|
16 |
'Psr\\Http\\Message\\' => 17,
|
@@ -26,6 +34,10 @@ class ComposerStaticInit70c1bea2cbce529378170e8f3fa2903d
|
|
26 |
array (
|
27 |
0 => __DIR__ . '/..' . '/maennchen/zipstream-php/src',
|
28 |
),
|
|
|
|
|
|
|
|
|
29 |
'Psr\\Http\\Message\\' =>
|
30 |
array (
|
31 |
0 => __DIR__ . '/..' . '/psr/http-message/src',
|
@@ -43,9 +55,9 @@ class ComposerStaticInit70c1bea2cbce529378170e8f3fa2903d
|
|
43 |
public static function getInitializer(ClassLoader $loader)
|
44 |
{
|
45 |
return \Closure::bind(function () use ($loader) {
|
46 |
-
$loader->prefixLengthsPsr4 =
|
47 |
-
$loader->prefixDirsPsr4 =
|
48 |
-
$loader->fallbackDirsPsr4 =
|
49 |
|
50 |
}, null, ClassLoader::class);
|
51 |
}
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
+
class ComposerStaticInit2f935c889239f09e679be069f42693f4
|
8 |
{
|
9 |
+
public static $files = array (
|
10 |
+
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
|
11 |
+
);
|
12 |
+
|
13 |
public static $prefixLengthsPsr4 = array (
|
14 |
'Z' =>
|
15 |
array (
|
16 |
'ZipStream\\' => 10,
|
17 |
),
|
18 |
+
'S' =>
|
19 |
+
array (
|
20 |
+
'Symfony\\Polyfill\\Mbstring\\' => 26,
|
21 |
+
),
|
22 |
'P' =>
|
23 |
array (
|
24 |
'Psr\\Http\\Message\\' => 17,
|
34 |
array (
|
35 |
0 => __DIR__ . '/..' . '/maennchen/zipstream-php/src',
|
36 |
),
|
37 |
+
'Symfony\\Polyfill\\Mbstring\\' =>
|
38 |
+
array (
|
39 |
+
0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring',
|
40 |
+
),
|
41 |
'Psr\\Http\\Message\\' =>
|
42 |
array (
|
43 |
0 => __DIR__ . '/..' . '/psr/http-message/src',
|
55 |
public static function getInitializer(ClassLoader $loader)
|
56 |
{
|
57 |
return \Closure::bind(function () use ($loader) {
|
58 |
+
$loader->prefixLengthsPsr4 = ComposerStaticInit2f935c889239f09e679be069f42693f4::$prefixLengthsPsr4;
|
59 |
+
$loader->prefixDirsPsr4 = ComposerStaticInit2f935c889239f09e679be069f42693f4::$prefixDirsPsr4;
|
60 |
+
$loader->fallbackDirsPsr4 = ComposerStaticInit2f935c889239f09e679be069f42693f4::$fallbackDirsPsr4;
|
61 |
|
62 |
}, null, ClassLoader::class);
|
63 |
}
|
vendor/composer/installed.json
CHANGED
@@ -1,24 +1,24 @@
|
|
1 |
[
|
2 |
{
|
3 |
"name": "maennchen/zipstream-php",
|
4 |
-
"version": "
|
5 |
-
"version_normalized": "
|
6 |
"source": {
|
7 |
"type": "git",
|
8 |
-
"url": "https://github.com/
|
9 |
-
"reference": "
|
10 |
},
|
11 |
"dist": {
|
12 |
"type": "zip",
|
13 |
-
"url": "https://api.github.com/repos/
|
14 |
-
"reference": "
|
15 |
"shasum": ""
|
16 |
},
|
17 |
"require": {
|
18 |
-
"ext-mbstring": "*",
|
19 |
"myclabs/php-enum": "^1.5",
|
20 |
"php": ">= 7.1",
|
21 |
-
"psr/http-message": "^1.0"
|
|
|
22 |
},
|
23 |
"require-dev": {
|
24 |
"ext-zip": "*",
|
@@ -26,7 +26,7 @@
|
|
26 |
"mikey179/vfsstream": "^1.6",
|
27 |
"phpunit/phpunit": ">= 7.5"
|
28 |
},
|
29 |
-
"time": "
|
30 |
"type": "library",
|
31 |
"installation-source": "source",
|
32 |
"autoload": {
|
@@ -34,7 +34,6 @@
|
|
34 |
"ZipStream\\": "src/"
|
35 |
}
|
36 |
},
|
37 |
-
"notification-url": "https://packagist.org/downloads/",
|
38 |
"license": [
|
39 |
"MIT"
|
40 |
],
|
@@ -43,14 +42,14 @@
|
|
43 |
"name": "Paul Duncan",
|
44 |
"email": "pabs@pablotron.org"
|
45 |
},
|
46 |
-
{
|
47 |
-
"name": "Jesse Donat",
|
48 |
-
"email": "donatj@gmail.com"
|
49 |
-
},
|
50 |
{
|
51 |
"name": "Jonatan Männchen",
|
52 |
"email": "jonatan@maennchen.ch"
|
53 |
},
|
|
|
|
|
|
|
|
|
54 |
{
|
55 |
"name": "András Kolesár",
|
56 |
"email": "kolesar@kolesar.hu"
|
@@ -60,21 +59,24 @@
|
|
60 |
"keywords": [
|
61 |
"stream",
|
62 |
"zip"
|
63 |
-
]
|
|
|
|
|
|
|
64 |
},
|
65 |
{
|
66 |
"name": "myclabs/php-enum",
|
67 |
-
"version": "1.7.
|
68 |
-
"version_normalized": "1.7.
|
69 |
"source": {
|
70 |
"type": "git",
|
71 |
"url": "https://github.com/myclabs/php-enum.git",
|
72 |
-
"reference": "
|
73 |
},
|
74 |
"dist": {
|
75 |
"type": "zip",
|
76 |
-
"url": "https://api.github.com/repos/myclabs/php-enum/zipball/
|
77 |
-
"reference": "
|
78 |
"shasum": ""
|
79 |
},
|
80 |
"require": {
|
@@ -82,10 +84,11 @@
|
|
82 |
"php": ">=7.1"
|
83 |
},
|
84 |
"require-dev": {
|
85 |
-
"phpunit/phpunit": "^
|
86 |
-
"squizlabs/php_codesniffer": "1.*"
|
|
|
87 |
},
|
88 |
-
"time": "
|
89 |
"type": "library",
|
90 |
"installation-source": "dist",
|
91 |
"autoload": {
|
@@ -160,5 +163,66 @@
|
|
160 |
"request",
|
161 |
"response"
|
162 |
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
163 |
}
|
164 |
]
|
1 |
[
|
2 |
{
|
3 |
"name": "maennchen/zipstream-php",
|
4 |
+
"version": "dev-massedge-wp-eml",
|
5 |
+
"version_normalized": "dev-massedge-wp-eml",
|
6 |
"source": {
|
7 |
"type": "git",
|
8 |
+
"url": "https://github.com/massedge/ZipStream-PHP.git",
|
9 |
+
"reference": "2c3cc0c80e0191b0017c0f4adb48f01303deb46f"
|
10 |
},
|
11 |
"dist": {
|
12 |
"type": "zip",
|
13 |
+
"url": "https://api.github.com/repos/massedge/ZipStream-PHP/zipball/2c3cc0c80e0191b0017c0f4adb48f01303deb46f",
|
14 |
+
"reference": "2c3cc0c80e0191b0017c0f4adb48f01303deb46f",
|
15 |
"shasum": ""
|
16 |
},
|
17 |
"require": {
|
|
|
18 |
"myclabs/php-enum": "^1.5",
|
19 |
"php": ">= 7.1",
|
20 |
+
"psr/http-message": "^1.0",
|
21 |
+
"symfony/polyfill-mbstring": "^1.0"
|
22 |
},
|
23 |
"require-dev": {
|
24 |
"ext-zip": "*",
|
26 |
"mikey179/vfsstream": "^1.6",
|
27 |
"phpunit/phpunit": ">= 7.5"
|
28 |
},
|
29 |
+
"time": "2020-05-28T17:18:27+00:00",
|
30 |
"type": "library",
|
31 |
"installation-source": "source",
|
32 |
"autoload": {
|
34 |
"ZipStream\\": "src/"
|
35 |
}
|
36 |
},
|
|
|
37 |
"license": [
|
38 |
"MIT"
|
39 |
],
|
42 |
"name": "Paul Duncan",
|
43 |
"email": "pabs@pablotron.org"
|
44 |
},
|
|
|
|
|
|
|
|
|
45 |
{
|
46 |
"name": "Jonatan Männchen",
|
47 |
"email": "jonatan@maennchen.ch"
|
48 |
},
|
49 |
+
{
|
50 |
+
"name": "Jesse Donat",
|
51 |
+
"email": "donatj@gmail.com"
|
52 |
+
},
|
53 |
{
|
54 |
"name": "András Kolesár",
|
55 |
"email": "kolesar@kolesar.hu"
|
59 |
"keywords": [
|
60 |
"stream",
|
61 |
"zip"
|
62 |
+
],
|
63 |
+
"support": {
|
64 |
+
"source": "https://github.com/massedge/ZipStream-PHP/tree/massedge-wp-eml"
|
65 |
+
}
|
66 |
},
|
67 |
{
|
68 |
"name": "myclabs/php-enum",
|
69 |
+
"version": "1.7.6",
|
70 |
+
"version_normalized": "1.7.6.0",
|
71 |
"source": {
|
72 |
"type": "git",
|
73 |
"url": "https://github.com/myclabs/php-enum.git",
|
74 |
+
"reference": "5f36467c7a87e20fbdc51e524fd8f9d1de80187c"
|
75 |
},
|
76 |
"dist": {
|
77 |
"type": "zip",
|
78 |
+
"url": "https://api.github.com/repos/myclabs/php-enum/zipball/5f36467c7a87e20fbdc51e524fd8f9d1de80187c",
|
79 |
+
"reference": "5f36467c7a87e20fbdc51e524fd8f9d1de80187c",
|
80 |
"shasum": ""
|
81 |
},
|
82 |
"require": {
|
84 |
"php": ">=7.1"
|
85 |
},
|
86 |
"require-dev": {
|
87 |
+
"phpunit/phpunit": "^7",
|
88 |
+
"squizlabs/php_codesniffer": "1.*",
|
89 |
+
"vimeo/psalm": "^3.8"
|
90 |
},
|
91 |
+
"time": "2020-02-14T08:15:52+00:00",
|
92 |
"type": "library",
|
93 |
"installation-source": "dist",
|
94 |
"autoload": {
|
163 |
"request",
|
164 |
"response"
|
165 |
]
|
166 |
+
},
|
167 |
+
{
|
168 |
+
"name": "symfony/polyfill-mbstring",
|
169 |
+
"version": "v1.17.0",
|
170 |
+
"version_normalized": "1.17.0.0",
|
171 |
+
"source": {
|
172 |
+
"type": "git",
|
173 |
+
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
174 |
+
"reference": "fa79b11539418b02fc5e1897267673ba2c19419c"
|
175 |
+
},
|
176 |
+
"dist": {
|
177 |
+
"type": "zip",
|
178 |
+
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fa79b11539418b02fc5e1897267673ba2c19419c",
|
179 |
+
"reference": "fa79b11539418b02fc5e1897267673ba2c19419c",
|
180 |
+
"shasum": ""
|
181 |
+
},
|
182 |
+
"require": {
|
183 |
+
"php": ">=5.3.3"
|
184 |
+
},
|
185 |
+
"suggest": {
|
186 |
+
"ext-mbstring": "For best performance"
|
187 |
+
},
|
188 |
+
"time": "2020-05-12T16:47:27+00:00",
|
189 |
+
"type": "library",
|
190 |
+
"extra": {
|
191 |
+
"branch-alias": {
|
192 |
+
"dev-master": "1.17-dev"
|
193 |
+
}
|
194 |
+
},
|
195 |
+
"installation-source": "dist",
|
196 |
+
"autoload": {
|
197 |
+
"psr-4": {
|
198 |
+
"Symfony\\Polyfill\\Mbstring\\": ""
|
199 |
+
},
|
200 |
+
"files": [
|
201 |
+
"bootstrap.php"
|
202 |
+
]
|
203 |
+
},
|
204 |
+
"notification-url": "https://packagist.org/downloads/",
|
205 |
+
"license": [
|
206 |
+
"MIT"
|
207 |
+
],
|
208 |
+
"authors": [
|
209 |
+
{
|
210 |
+
"name": "Nicolas Grekas",
|
211 |
+
"email": "p@tchwork.com"
|
212 |
+
},
|
213 |
+
{
|
214 |
+
"name": "Symfony Community",
|
215 |
+
"homepage": "https://symfony.com/contributors"
|
216 |
+
}
|
217 |
+
],
|
218 |
+
"description": "Symfony polyfill for the Mbstring extension",
|
219 |
+
"homepage": "https://symfony.com",
|
220 |
+
"keywords": [
|
221 |
+
"compatibility",
|
222 |
+
"mbstring",
|
223 |
+
"polyfill",
|
224 |
+
"portable",
|
225 |
+
"shim"
|
226 |
+
]
|
227 |
}
|
228 |
]
|
vendor/maennchen/zipstream-php/CHANGELOG.md
CHANGED
@@ -5,6 +5,15 @@ All notable changes to this project will be documented in this file.
|
|
5 |
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
6 |
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
## [1.2.0] - 2019-07-11
|
9 |
|
10 |
### Added
|
5 |
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
6 |
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
7 |
|
8 |
+
## [2.0.0] - 2020-02-22
|
9 |
+
### Breaking change
|
10 |
+
- Only the self opened streams will be closed (#139)
|
11 |
+
If you were relying on ZipStream to close streams that the library didn't open,
|
12 |
+
you'll need to close them yourself now.
|
13 |
+
|
14 |
+
### Changed
|
15 |
+
- Minor change to data descriptor (#136)
|
16 |
+
|
17 |
## [1.2.0] - 2019-07-11
|
18 |
|
19 |
### Added
|
vendor/maennchen/zipstream-php/README.md
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
[![Code Coverage](https://scrutinizer-ci.com/g/maennchen/ZipStream-PHP/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/maennchen/ZipStream-PHP/)
|
6 |
[![Latest Stable Version](https://poser.pugx.org/maennchen/zipstream-php/v/stable)](https://packagist.org/packages/maennchen/zipstream-php)
|
7 |
[![Total Downloads](https://poser.pugx.org/maennchen/zipstream-php/downloads)](https://packagist.org/packages/maennchen/zipstream-php)
|
8 |
-
[![License](https://img.shields.io/github/license/maennchen/zipstream-php.svg)](LICENSE)
|
9 |
|
10 |
## Overview
|
11 |
|
@@ -26,30 +26,30 @@ composer require maennchen/zipstream-php
|
|
26 |
Here's a simple example:
|
27 |
|
28 |
```php
|
29 |
-
|
30 |
require 'vendor/autoload.php';
|
31 |
|
32 |
-
|
33 |
$options = new ZipStream\Option\Archive();
|
34 |
$options->setSendHttpHeaders(true);
|
35 |
|
36 |
-
|
37 |
$zip = new ZipStream\ZipStream('example.zip', $options);
|
38 |
|
39 |
-
|
40 |
$zip->addFile('hello.txt', 'This is the contents of hello.txt');
|
41 |
|
42 |
-
|
43 |
$zip->addFileFromPath('some_image.jpg', 'path/to/image.jpg');
|
44 |
|
45 |
-
|
46 |
$fp = tmpfile();
|
47 |
fwrite($fp, 'The quick brown fox jumped over the lazy dog.');
|
48 |
rewind($fp);
|
49 |
$zip->addFileFromStream('goodbye.txt', $fp);
|
50 |
fclose($fp);
|
51 |
|
52 |
-
|
53 |
$zip->finish();
|
54 |
```
|
55 |
|
@@ -59,6 +59,18 @@ the current default storage method is 'deflate' i.e files are stored with Compre
|
|
59 |
|
60 |
See the [Wiki](https://github.com/maennchen/ZipStream-PHP/wiki) for details.
|
61 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
62 |
## Upgrade to version 1.0.0
|
63 |
|
64 |
* All options parameters to all function have been moved from an `array` to structured option objects. See [the wiki](https://github.com/maennchen/ZipStream-PHP/wiki/Available-options) for examples.
|
@@ -74,8 +86,38 @@ ZipStream-PHP is a collaborative project. Please take a look at the [CONTRIBUTIN
|
|
74 |
|
75 |
## About the Authors
|
76 |
|
77 |
-
* Paul Duncan <pabs@pablotron.org> -
|
78 |
-
* Jonatan Männchen <jonatan@maennchen.ch> -
|
79 |
* Jesse G. Donat <donatj@gmail.com> - https://donatstudios.com
|
80 |
-
* Nicolas CARPi <
|
81 |
* Nik Barham <nik@brokencube.co.uk> - https://www.brokencube.co.uk
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
[![Code Coverage](https://scrutinizer-ci.com/g/maennchen/ZipStream-PHP/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/maennchen/ZipStream-PHP/)
|
6 |
[![Latest Stable Version](https://poser.pugx.org/maennchen/zipstream-php/v/stable)](https://packagist.org/packages/maennchen/zipstream-php)
|
7 |
[![Total Downloads](https://poser.pugx.org/maennchen/zipstream-php/downloads)](https://packagist.org/packages/maennchen/zipstream-php)
|
8 |
+
[![Financial Contributors on Open Collective](https://opencollective.com/zipstream/all/badge.svg?label=financial+contributors)](https://opencollective.com/zipstream) [![License](https://img.shields.io/github/license/maennchen/zipstream-php.svg)](LICENSE)
|
9 |
|
10 |
## Overview
|
11 |
|
26 |
Here's a simple example:
|
27 |
|
28 |
```php
|
29 |
+
// Autoload the dependencies
|
30 |
require 'vendor/autoload.php';
|
31 |
|
32 |
+
// enable output of HTTP headers
|
33 |
$options = new ZipStream\Option\Archive();
|
34 |
$options->setSendHttpHeaders(true);
|
35 |
|
36 |
+
// create a new zipstream object
|
37 |
$zip = new ZipStream\ZipStream('example.zip', $options);
|
38 |
|
39 |
+
// create a file named 'hello.txt'
|
40 |
$zip->addFile('hello.txt', 'This is the contents of hello.txt');
|
41 |
|
42 |
+
// add a file named 'some_image.jpg' from a local file 'path/to/image.jpg'
|
43 |
$zip->addFileFromPath('some_image.jpg', 'path/to/image.jpg');
|
44 |
|
45 |
+
// add a file named 'goodbye.txt' from an open stream resource
|
46 |
$fp = tmpfile();
|
47 |
fwrite($fp, 'The quick brown fox jumped over the lazy dog.');
|
48 |
rewind($fp);
|
49 |
$zip->addFileFromStream('goodbye.txt', $fp);
|
50 |
fclose($fp);
|
51 |
|
52 |
+
// finish the zip stream
|
53 |
$zip->finish();
|
54 |
```
|
55 |
|
59 |
|
60 |
See the [Wiki](https://github.com/maennchen/ZipStream-PHP/wiki) for details.
|
61 |
|
62 |
+
## Known issue
|
63 |
+
|
64 |
+
The native Mac OS archive extraction tool might not open archives in some conditions. A workaround is to disable the Zip64 feature with the option `$opt->setEnableZip64(false)`. This limits the archive to 4 Gb and 64k files but will allow Mac OS users to open them without issue. See #116.
|
65 |
+
|
66 |
+
The linux `unzip` utility might not handle properly unicode characters. It is recommended to extract with another tool like [7-zip](https://www.7-zip.org/). See #146.
|
67 |
+
|
68 |
+
## Upgrade to version 2.0.0
|
69 |
+
|
70 |
+
* Only the self opened streams will be closed (#139)
|
71 |
+
If you were relying on ZipStream to close streams that the library didn't open,
|
72 |
+
you'll need to close them yourself now.
|
73 |
+
|
74 |
## Upgrade to version 1.0.0
|
75 |
|
76 |
* All options parameters to all function have been moved from an `array` to structured option objects. See [the wiki](https://github.com/maennchen/ZipStream-PHP/wiki/Available-options) for examples.
|
86 |
|
87 |
## About the Authors
|
88 |
|
89 |
+
* Paul Duncan <pabs@pablotron.org> - https://pablotron.org/
|
90 |
+
* Jonatan Männchen <jonatan@maennchen.ch> - https://maennchen.dev
|
91 |
* Jesse G. Donat <donatj@gmail.com> - https://donatstudios.com
|
92 |
+
* Nicolas CARPi <nico-git@deltablot.email> - https://www.deltablot.com
|
93 |
* Nik Barham <nik@brokencube.co.uk> - https://www.brokencube.co.uk
|
94 |
+
|
95 |
+
## Contributors
|
96 |
+
|
97 |
+
### Code Contributors
|
98 |
+
|
99 |
+
This project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)].
|
100 |
+
<a href="https://github.com/maennchen/ZipStream-PHP/graphs/contributors"><img src="https://opencollective.com/zipstream/contributors.svg?width=890&button=false" /></a>
|
101 |
+
|
102 |
+
### Financial Contributors
|
103 |
+
|
104 |
+
Become a financial contributor and help us sustain our community. [[Contribute](https://opencollective.com/zipstream/contribute)]
|
105 |
+
|
106 |
+
#### Individuals
|
107 |
+
|
108 |
+
<a href="https://opencollective.com/zipstream"><img src="https://opencollective.com/zipstream/individuals.svg?width=890"></a>
|
109 |
+
|
110 |
+
#### Organizations
|
111 |
+
|
112 |
+
Support this project with your organization. Your logo will show up here with a link to your website. [[Contribute](https://opencollective.com/zipstream/contribute)]
|
113 |
+
|
114 |
+
<a href="https://opencollective.com/zipstream/organization/0/website"><img src="https://opencollective.com/zipstream/organization/0/avatar.svg"></a>
|
115 |
+
<a href="https://opencollective.com/zipstream/organization/1/website"><img src="https://opencollective.com/zipstream/organization/1/avatar.svg"></a>
|
116 |
+
<a href="https://opencollective.com/zipstream/organization/2/website"><img src="https://opencollective.com/zipstream/organization/2/avatar.svg"></a>
|
117 |
+
<a href="https://opencollective.com/zipstream/organization/3/website"><img src="https://opencollective.com/zipstream/organization/3/avatar.svg"></a>
|
118 |
+
<a href="https://opencollective.com/zipstream/organization/4/website"><img src="https://opencollective.com/zipstream/organization/4/avatar.svg"></a>
|
119 |
+
<a href="https://opencollective.com/zipstream/organization/5/website"><img src="https://opencollective.com/zipstream/organization/5/avatar.svg"></a>
|
120 |
+
<a href="https://opencollective.com/zipstream/organization/6/website"><img src="https://opencollective.com/zipstream/organization/6/avatar.svg"></a>
|
121 |
+
<a href="https://opencollective.com/zipstream/organization/7/website"><img src="https://opencollective.com/zipstream/organization/7/avatar.svg"></a>
|
122 |
+
<a href="https://opencollective.com/zipstream/organization/8/website"><img src="https://opencollective.com/zipstream/organization/8/avatar.svg"></a>
|
123 |
+
<a href="https://opencollective.com/zipstream/organization/9/website"><img src="https://opencollective.com/zipstream/organization/9/avatar.svg"></a>
|
vendor/maennchen/zipstream-php/composer.json
CHANGED
@@ -23,7 +23,7 @@
|
|
23 |
],
|
24 |
"require": {
|
25 |
"php": ">= 7.1",
|
26 |
-
"
|
27 |
"psr/http-message": "^1.0",
|
28 |
"myclabs/php-enum": "^1.5"
|
29 |
},
|
@@ -31,7 +31,7 @@
|
|
31 |
"phpunit/phpunit": ">= 7.5",
|
32 |
"guzzlehttp/guzzle": ">= 6.3",
|
33 |
"ext-zip": "*",
|
34 |
-
"mikey179/
|
35 |
},
|
36 |
"autoload": {
|
37 |
"psr-4": {
|
23 |
],
|
24 |
"require": {
|
25 |
"php": ">= 7.1",
|
26 |
+
"symfony/polyfill-mbstring": "^1.0",
|
27 |
"psr/http-message": "^1.0",
|
28 |
"myclabs/php-enum": "^1.5"
|
29 |
},
|
31 |
"phpunit/phpunit": ">= 7.5",
|
32 |
"guzzlehttp/guzzle": ">= 6.3",
|
33 |
"ext-zip": "*",
|
34 |
+
"mikey179/vfsstream": "^1.6"
|
35 |
},
|
36 |
"autoload": {
|
37 |
"psr-4": {
|
vendor/maennchen/zipstream-php/psalm.xml
ADDED
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<psalm
|
3 |
+
totallyTyped="false"
|
4 |
+
resolveFromConfigFile="true"
|
5 |
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
6 |
+
xmlns="https://getpsalm.org/schema/config"
|
7 |
+
xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"
|
8 |
+
>
|
9 |
+
<projectFiles>
|
10 |
+
<directory name="src" />
|
11 |
+
<ignoreFiles>
|
12 |
+
<directory name="vendor" />
|
13 |
+
</ignoreFiles>
|
14 |
+
</projectFiles>
|
15 |
+
|
16 |
+
<issueHandlers>
|
17 |
+
<LessSpecificReturnType errorLevel="info" />
|
18 |
+
|
19 |
+
<!-- level 3 issues - slightly lazy code writing, but provably low false-negatives -->
|
20 |
+
|
21 |
+
<DeprecatedMethod errorLevel="info" />
|
22 |
+
<DeprecatedProperty errorLevel="info" />
|
23 |
+
<DeprecatedClass errorLevel="info" />
|
24 |
+
<DeprecatedConstant errorLevel="info" />
|
25 |
+
<DeprecatedFunction errorLevel="info" />
|
26 |
+
<DeprecatedInterface errorLevel="info" />
|
27 |
+
<DeprecatedTrait errorLevel="info" />
|
28 |
+
|
29 |
+
<InternalMethod errorLevel="info" />
|
30 |
+
<InternalProperty errorLevel="info" />
|
31 |
+
<InternalClass errorLevel="info" />
|
32 |
+
|
33 |
+
<MissingClosureReturnType errorLevel="info" />
|
34 |
+
<MissingReturnType errorLevel="info" />
|
35 |
+
<MissingPropertyType errorLevel="info" />
|
36 |
+
<InvalidDocblock errorLevel="info" />
|
37 |
+
<MisplacedRequiredParam errorLevel="info" />
|
38 |
+
|
39 |
+
<PropertyNotSetInConstructor errorLevel="info" />
|
40 |
+
<MissingConstructor errorLevel="info" />
|
41 |
+
<MissingClosureParamType errorLevel="info" />
|
42 |
+
<MissingParamType errorLevel="info" />
|
43 |
+
|
44 |
+
<RedundantCondition errorLevel="info" />
|
45 |
+
|
46 |
+
<DocblockTypeContradiction errorLevel="info" />
|
47 |
+
<RedundantConditionGivenDocblockType errorLevel="info" />
|
48 |
+
|
49 |
+
<UnresolvableInclude errorLevel="info" />
|
50 |
+
|
51 |
+
<RawObjectIteration errorLevel="info" />
|
52 |
+
|
53 |
+
<InvalidStringClass errorLevel="info" />
|
54 |
+
</issueHandlers>
|
55 |
+
</psalm>
|
vendor/maennchen/zipstream-php/src/Bigint.php
CHANGED
@@ -95,14 +95,14 @@ class Bigint
|
|
95 |
* Get low FF
|
96 |
*
|
97 |
* @param bool $force
|
98 |
-
* @return
|
99 |
*/
|
100 |
-
public function getLowFF(bool $force = false):
|
101 |
{
|
102 |
if ($force || $this->isOver32()) {
|
103 |
-
return 0xFFFFFFFF;
|
104 |
}
|
105 |
-
return $this->getLow32();
|
106 |
}
|
107 |
|
108 |
/**
|
95 |
* Get low FF
|
96 |
*
|
97 |
* @param bool $force
|
98 |
+
* @return float
|
99 |
*/
|
100 |
+
public function getLowFF(bool $force = false): float
|
101 |
{
|
102 |
if ($force || $this->isOver32()) {
|
103 |
+
return (float)0xFFFFFFFF;
|
104 |
}
|
105 |
+
return (float)$this->getLow32();
|
106 |
}
|
107 |
|
108 |
/**
|
vendor/maennchen/zipstream-php/src/File.php
CHANGED
@@ -117,6 +117,7 @@ class File
|
|
117 |
|
118 |
$stream = new DeflateStream(fopen($path, 'rb'));
|
119 |
$this->processStream($stream);
|
|
|
120 |
}
|
121 |
}
|
122 |
|
@@ -303,22 +304,18 @@ class File
|
|
303 |
{
|
304 |
|
305 |
if ($this->bits & self::BIT_ZERO_HEADER) {
|
|
|
|
|
|
|
|
|
|
|
306 |
$fields = [
|
307 |
['V', ZipStream::DATA_DESCRIPTOR_SIGNATURE],
|
308 |
['V', $this->crc], // CRC32
|
309 |
-
[
|
310 |
-
[
|
311 |
];
|
312 |
|
313 |
-
if ($this->zip->opt->isEnableZip64()) {
|
314 |
-
$fields = [
|
315 |
-
['V', ZipStream::DATA_DESCRIPTOR_SIGNATURE],
|
316 |
-
['V', $this->crc], // CRC32
|
317 |
-
['P', $this->zlen], // Length of compressed data
|
318 |
-
['P', $this->len], // Length of original data
|
319 |
-
];
|
320 |
-
}
|
321 |
-
|
322 |
$footer = ZipStream::packFields($fields);
|
323 |
$this->zip->send($footer);
|
324 |
} else {
|
117 |
|
118 |
$stream = new DeflateStream(fopen($path, 'rb'));
|
119 |
$this->processStream($stream);
|
120 |
+
$stream->close();
|
121 |
}
|
122 |
}
|
123 |
|
304 |
{
|
305 |
|
306 |
if ($this->bits & self::BIT_ZERO_HEADER) {
|
307 |
+
// compressed and uncompressed size
|
308 |
+
$sizeFormat = 'V';
|
309 |
+
if ($this->zip->opt->isEnableZip64()) {
|
310 |
+
$sizeFormat = 'P';
|
311 |
+
}
|
312 |
$fields = [
|
313 |
['V', ZipStream::DATA_DESCRIPTOR_SIGNATURE],
|
314 |
['V', $this->crc], // CRC32
|
315 |
+
[$sizeFormat, $this->zlen], // Length of compressed data
|
316 |
+
[$sizeFormat, $this->len], // Length of original data
|
317 |
];
|
318 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
319 |
$footer = ZipStream::packFields($fields);
|
320 |
$this->zip->send($footer);
|
321 |
} else {
|
vendor/maennchen/zipstream-php/src/Stream.php
CHANGED
@@ -22,11 +22,6 @@ class Stream implements StreamInterface
|
|
22 |
$this->stream = $stream;
|
23 |
}
|
24 |
|
25 |
-
public function __destruct()
|
26 |
-
{
|
27 |
-
$this->close();
|
28 |
-
}
|
29 |
-
|
30 |
/**
|
31 |
* Closes the stream and any underlying resources.
|
32 |
*
|
22 |
$this->stream = $stream;
|
23 |
}
|
24 |
|
|
|
|
|
|
|
|
|
|
|
25 |
/**
|
26 |
* Closes the stream and any underlying resources.
|
27 |
*
|
vendor/maennchen/zipstream-php/src/ZipStream.php
CHANGED
@@ -268,7 +268,7 @@ class ZipStream
|
|
268 |
* Add an open stream to the archive.
|
269 |
*
|
270 |
* @param String $name - path of file in archive (including directory).
|
271 |
-
* @param
|
272 |
* @param FileOptions $options
|
273 |
*
|
274 |
* File Options:
|
@@ -462,8 +462,14 @@ class ZipStream
|
|
462 |
fwrite($this->opt->getOutputStream(), $str);
|
463 |
|
464 |
if ($this->opt->isFlushOutput()) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
465 |
flush();
|
466 |
-
ob_flush();
|
467 |
}
|
468 |
}
|
469 |
|
268 |
* Add an open stream to the archive.
|
269 |
*
|
270 |
* @param String $name - path of file in archive (including directory).
|
271 |
+
* @param resource $stream - contents of file as a stream resource
|
272 |
* @param FileOptions $options
|
273 |
*
|
274 |
* File Options:
|
462 |
fwrite($this->opt->getOutputStream(), $str);
|
463 |
|
464 |
if ($this->opt->isFlushOutput()) {
|
465 |
+
// flush output buffer if it is on and flushable
|
466 |
+
$status = ob_get_status();
|
467 |
+
if (isset($status['flags']) && ($status['flags'] & PHP_OUTPUT_HANDLER_FLUSHABLE)) {
|
468 |
+
ob_flush();
|
469 |
+
}
|
470 |
+
|
471 |
+
// Flush system buffers after flushing userspace output buffer
|
472 |
flush();
|
|
|
473 |
}
|
474 |
}
|
475 |
|
vendor/maennchen/zipstream-php/test/BigintTest.php
CHANGED
@@ -32,8 +32,8 @@ class BigintTest extends TestCase
|
|
32 |
$this->assertSame(3, $bigint->getLow32());
|
33 |
$this->assertFalse($bigint->isOver32());
|
34 |
$this->assertTrue($bigint->isOver32(true));
|
35 |
-
$this->assertSame($bigint->getLowFF(), $bigint->getLow32());
|
36 |
-
$this->assertSame($bigint->getLowFF(true), 0xFFFFFFFF);
|
37 |
}
|
38 |
|
39 |
public function testAddWithOverflowAtLowestByte(): void
|
@@ -52,7 +52,7 @@ class BigintTest extends TestCase
|
|
52 |
$bigint = $bigint->add(Bigint::init(0x01));
|
53 |
$this->assertSame('0x0000000100000000', $bigint->getHex64());
|
54 |
$this->assertTrue($bigint->isOver32());
|
55 |
-
$this->assertSame(0xFFFFFFFF, $bigint->getLowFF());
|
56 |
}
|
57 |
|
58 |
public function testAddWithOverflowAtInteger64(): void
|
32 |
$this->assertSame(3, $bigint->getLow32());
|
33 |
$this->assertFalse($bigint->isOver32());
|
34 |
$this->assertTrue($bigint->isOver32(true));
|
35 |
+
$this->assertSame($bigint->getLowFF(), (float)$bigint->getLow32());
|
36 |
+
$this->assertSame($bigint->getLowFF(true), (float)0xFFFFFFFF);
|
37 |
}
|
38 |
|
39 |
public function testAddWithOverflowAtLowestByte(): void
|
52 |
$bigint = $bigint->add(Bigint::init(0x01));
|
53 |
$this->assertSame('0x0000000100000000', $bigint->getHex64());
|
54 |
$this->assertTrue($bigint->isOver32());
|
55 |
+
$this->assertSame((float)0xFFFFFFFF, $bigint->getLowFF());
|
56 |
}
|
57 |
|
58 |
public function testAddWithOverflowAtInteger64(): void
|
vendor/maennchen/zipstream-php/test/ZipStreamTest.php
CHANGED
@@ -557,4 +557,30 @@ class ZipStreamTest extends TestCase
|
|
557 |
$this->assertStringEqualsFile($tmpDir . '/sample.txt', 'Sample String Data');
|
558 |
$this->assertStringEqualsFile($tmpDir . '/test/sample.txt', 'More Simple Sample Data');
|
559 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
560 |
}
|
557 |
$this->assertStringEqualsFile($tmpDir . '/sample.txt', 'Sample String Data');
|
558 |
$this->assertStringEqualsFile($tmpDir . '/test/sample.txt', 'More Simple Sample Data');
|
559 |
}
|
560 |
+
|
561 |
+
public function testCreateArchiveWithOutputBufferingOffAndFlushOptionSet(): void
|
562 |
+
{
|
563 |
+
// WORKAROUND (1/2): remove phpunit's output buffer in order to run test without any buffering
|
564 |
+
ob_end_flush();
|
565 |
+
$this->assertEquals(0, ob_get_level());
|
566 |
+
|
567 |
+
[$tmp, $stream] = $this->getTmpFileStream();
|
568 |
+
|
569 |
+
$options = new ArchiveOptions();
|
570 |
+
$options->setOutputStream($stream);
|
571 |
+
$options->setFlushOutput(true);
|
572 |
+
|
573 |
+
$zip = new ZipStream(null, $options);
|
574 |
+
|
575 |
+
$zip->addFile('sample.txt', 'Sample String Data');
|
576 |
+
|
577 |
+
$zip->finish();
|
578 |
+
fclose($stream);
|
579 |
+
|
580 |
+
$tmpDir = $this->validateAndExtractZip($tmp);
|
581 |
+
$this->assertStringEqualsFile($tmpDir . '/sample.txt', 'Sample String Data');
|
582 |
+
|
583 |
+
// WORKAROUND (2/2): add back output buffering so that PHPUnit doesn't complain that it is missing
|
584 |
+
ob_start();
|
585 |
+
}
|
586 |
}
|
vendor/myclabs/php-enum/README.md
CHANGED
@@ -3,6 +3,7 @@
|
|
3 |
[![Build Status](https://travis-ci.org/myclabs/php-enum.png?branch=master)](https://travis-ci.org/myclabs/php-enum)
|
4 |
[![Latest Stable Version](https://poser.pugx.org/myclabs/php-enum/version.png)](https://packagist.org/packages/myclabs/php-enum)
|
5 |
[![Total Downloads](https://poser.pugx.org/myclabs/php-enum/downloads.png)](https://packagist.org/packages/myclabs/php-enum)
|
|
|
6 |
|
7 |
Maintenance for this project is [supported via Tidelift](https://tidelift.com/subscription/pkg/packagist-myclabs-php-enum?utm_source=packagist-myclabs-php-enum&utm_medium=referral&utm_campaign=readme).
|
8 |
|
3 |
[![Build Status](https://travis-ci.org/myclabs/php-enum.png?branch=master)](https://travis-ci.org/myclabs/php-enum)
|
4 |
[![Latest Stable Version](https://poser.pugx.org/myclabs/php-enum/version.png)](https://packagist.org/packages/myclabs/php-enum)
|
5 |
[![Total Downloads](https://poser.pugx.org/myclabs/php-enum/downloads.png)](https://packagist.org/packages/myclabs/php-enum)
|
6 |
+
[![psalm](https://shepherd.dev/github/myclabs/php-enum/coverage.svg)](https://shepherd.dev/github/myclabs/php-enum)
|
7 |
|
8 |
Maintenance for this project is [supported via Tidelift](https://tidelift.com/subscription/pkg/packagist-myclabs-php-enum?utm_source=packagist-myclabs-php-enum&utm_medium=referral&utm_campaign=readme).
|
9 |
|
vendor/myclabs/php-enum/composer.json
CHANGED
@@ -26,7 +26,8 @@
|
|
26 |
"ext-json": "*"
|
27 |
},
|
28 |
"require-dev": {
|
29 |
-
"phpunit/phpunit": "^
|
30 |
-
"squizlabs/php_codesniffer": "1.*"
|
|
|
31 |
}
|
32 |
}
|
26 |
"ext-json": "*"
|
27 |
},
|
28 |
"require-dev": {
|
29 |
+
"phpunit/phpunit": "^7",
|
30 |
+
"squizlabs/php_codesniffer": "1.*",
|
31 |
+
"vimeo/psalm": "^3.8"
|
32 |
}
|
33 |
}
|
vendor/myclabs/php-enum/psalm.xml
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<psalm
|
3 |
+
totallyTyped="true"
|
4 |
+
resolveFromConfigFile="true"
|
5 |
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
6 |
+
xmlns="https://getpsalm.org/schema/config"
|
7 |
+
xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"
|
8 |
+
>
|
9 |
+
<projectFiles>
|
10 |
+
<directory name="src" />
|
11 |
+
<ignoreFiles>
|
12 |
+
<directory name="vendor" />
|
13 |
+
<directory name="src/PHPUnit" />
|
14 |
+
</ignoreFiles>
|
15 |
+
</projectFiles>
|
16 |
+
|
17 |
+
<issueHandlers>
|
18 |
+
<MixedAssignment errorLevel="info" />
|
19 |
+
</issueHandlers>
|
20 |
+
</psalm>
|
vendor/myclabs/php-enum/src/Enum.php
CHANGED
@@ -14,6 +14,9 @@ namespace MyCLabs\Enum;
|
|
14 |
* @author Matthieu Napoli <matthieu@mnapoli.fr>
|
15 |
* @author Daniel Costa <danielcosta@gmail.com>
|
16 |
* @author Mirosław Filip <mirfilip@gmail.com>
|
|
|
|
|
|
|
17 |
*/
|
18 |
abstract class Enum implements \JsonSerializable
|
19 |
{
|
@@ -21,38 +24,48 @@ abstract class Enum implements \JsonSerializable
|
|
21 |
* Enum value
|
22 |
*
|
23 |
* @var mixed
|
|
|
24 |
*/
|
25 |
protected $value;
|
26 |
|
27 |
/**
|
28 |
* Store existing constants in a static cache per object.
|
29 |
*
|
|
|
30 |
* @var array
|
|
|
31 |
*/
|
32 |
protected static $cache = [];
|
33 |
|
34 |
/**
|
35 |
* Creates a new value of some type
|
36 |
*
|
|
|
37 |
* @param mixed $value
|
38 |
*
|
|
|
39 |
* @throws \UnexpectedValueException if incompatible type is given.
|
40 |
*/
|
41 |
public function __construct($value)
|
42 |
{
|
43 |
if ($value instanceof static) {
|
|
|
44 |
$value = $value->getValue();
|
45 |
}
|
46 |
|
47 |
if (!$this->isValid($value)) {
|
48 |
-
|
|
|
49 |
}
|
50 |
|
|
|
51 |
$this->value = $value;
|
52 |
}
|
53 |
|
54 |
/**
|
|
|
55 |
* @return mixed
|
|
|
56 |
*/
|
57 |
public function getValue()
|
58 |
{
|
@@ -62,6 +75,7 @@ abstract class Enum implements \JsonSerializable
|
|
62 |
/**
|
63 |
* Returns the enum key (i.e. the constant name).
|
64 |
*
|
|
|
65 |
* @return mixed
|
66 |
*/
|
67 |
public function getKey()
|
@@ -70,6 +84,8 @@ abstract class Enum implements \JsonSerializable
|
|
70 |
}
|
71 |
|
72 |
/**
|
|
|
|
|
73 |
* @return string
|
74 |
*/
|
75 |
public function __toString()
|
@@ -83,18 +99,22 @@ abstract class Enum implements \JsonSerializable
|
|
83 |
*
|
84 |
* This method is final, for more information read https://github.com/myclabs/php-enum/issues/4
|
85 |
*
|
|
|
|
|
86 |
* @return bool
|
87 |
*/
|
88 |
final public function equals($variable = null): bool
|
89 |
{
|
90 |
return $variable instanceof self
|
91 |
&& $this->getValue() === $variable->getValue()
|
92 |
-
&&
|
93 |
}
|
94 |
|
95 |
/**
|
96 |
* Returns the names (keys) of all constants in the Enum class
|
97 |
*
|
|
|
|
|
98 |
* @return array
|
99 |
*/
|
100 |
public static function keys()
|
@@ -105,12 +125,15 @@ abstract class Enum implements \JsonSerializable
|
|
105 |
/**
|
106 |
* Returns instances of the Enum class of all Enum constants
|
107 |
*
|
|
|
|
|
108 |
* @return static[] Constant name in key, Enum instance in value
|
109 |
*/
|
110 |
public static function values()
|
111 |
{
|
112 |
$values = array();
|
113 |
|
|
|
114 |
foreach (static::toArray() as $key => $value) {
|
115 |
$values[$key] = new static($value);
|
116 |
}
|
@@ -121,11 +144,16 @@ abstract class Enum implements \JsonSerializable
|
|
121 |
/**
|
122 |
* Returns all possible values as an array
|
123 |
*
|
|
|
|
|
|
|
|
|
124 |
* @return array Constant name in key, constant value in value
|
125 |
*/
|
126 |
public static function toArray()
|
127 |
{
|
128 |
-
$class =
|
|
|
129 |
if (!isset(static::$cache[$class])) {
|
130 |
$reflection = new \ReflectionClass($class);
|
131 |
static::$cache[$class] = $reflection->getConstants();
|
@@ -138,7 +166,8 @@ abstract class Enum implements \JsonSerializable
|
|
138 |
* Check if is valid enum value
|
139 |
*
|
140 |
* @param $value
|
141 |
-
*
|
|
|
142 |
* @return bool
|
143 |
*/
|
144 |
public static function isValid($value)
|
@@ -150,7 +179,8 @@ abstract class Enum implements \JsonSerializable
|
|
150 |
* Check if is valid enum key
|
151 |
*
|
152 |
* @param $key
|
153 |
-
*
|
|
|
154 |
* @return bool
|
155 |
*/
|
156 |
public static function isValidKey($key)
|
@@ -165,6 +195,8 @@ abstract class Enum implements \JsonSerializable
|
|
165 |
*
|
166 |
* @param $value
|
167 |
*
|
|
|
|
|
168 |
* @return mixed
|
169 |
*/
|
170 |
public static function search($value)
|
@@ -179,6 +211,7 @@ abstract class Enum implements \JsonSerializable
|
|
179 |
* @param array $arguments
|
180 |
*
|
181 |
* @return static
|
|
|
182 |
* @throws \BadMethodCallException
|
183 |
*/
|
184 |
public static function __callStatic($name, $arguments)
|
@@ -188,7 +221,7 @@ abstract class Enum implements \JsonSerializable
|
|
188 |
return new static($array[$name]);
|
189 |
}
|
190 |
|
191 |
-
throw new \BadMethodCallException("No static method or enum constant '$name' in class " .
|
192 |
}
|
193 |
|
194 |
/**
|
@@ -197,6 +230,7 @@ abstract class Enum implements \JsonSerializable
|
|
197 |
*
|
198 |
* @return mixed
|
199 |
* @link http://php.net/manual/en/jsonserializable.jsonserialize.php
|
|
|
200 |
*/
|
201 |
public function jsonSerialize()
|
202 |
{
|
14 |
* @author Matthieu Napoli <matthieu@mnapoli.fr>
|
15 |
* @author Daniel Costa <danielcosta@gmail.com>
|
16 |
* @author Mirosław Filip <mirfilip@gmail.com>
|
17 |
+
*
|
18 |
+
* @psalm-template T
|
19 |
+
* @psalm-immutable
|
20 |
*/
|
21 |
abstract class Enum implements \JsonSerializable
|
22 |
{
|
24 |
* Enum value
|
25 |
*
|
26 |
* @var mixed
|
27 |
+
* @psalm-var T
|
28 |
*/
|
29 |
protected $value;
|
30 |
|
31 |
/**
|
32 |
* Store existing constants in a static cache per object.
|
33 |
*
|
34 |
+
*
|
35 |
* @var array
|
36 |
+
* @psalm-var array<class-string, array<string, mixed>>
|
37 |
*/
|
38 |
protected static $cache = [];
|
39 |
|
40 |
/**
|
41 |
* Creates a new value of some type
|
42 |
*
|
43 |
+
* @psalm-pure
|
44 |
* @param mixed $value
|
45 |
*
|
46 |
+
* @psalm-param static<T>|T $value
|
47 |
* @throws \UnexpectedValueException if incompatible type is given.
|
48 |
*/
|
49 |
public function __construct($value)
|
50 |
{
|
51 |
if ($value instanceof static) {
|
52 |
+
/** @psalm-var T */
|
53 |
$value = $value->getValue();
|
54 |
}
|
55 |
|
56 |
if (!$this->isValid($value)) {
|
57 |
+
/** @psalm-suppress InvalidCast */
|
58 |
+
throw new \UnexpectedValueException("Value '$value' is not part of the enum " . static::class);
|
59 |
}
|
60 |
|
61 |
+
/** @psalm-var T */
|
62 |
$this->value = $value;
|
63 |
}
|
64 |
|
65 |
/**
|
66 |
+
* @psalm-pure
|
67 |
* @return mixed
|
68 |
+
* @psalm-return T
|
69 |
*/
|
70 |
public function getValue()
|
71 |
{
|
75 |
/**
|
76 |
* Returns the enum key (i.e. the constant name).
|
77 |
*
|
78 |
+
* @psalm-pure
|
79 |
* @return mixed
|
80 |
*/
|
81 |
public function getKey()
|
84 |
}
|
85 |
|
86 |
/**
|
87 |
+
* @psalm-pure
|
88 |
+
* @psalm-suppress InvalidCast
|
89 |
* @return string
|
90 |
*/
|
91 |
public function __toString()
|
99 |
*
|
100 |
* This method is final, for more information read https://github.com/myclabs/php-enum/issues/4
|
101 |
*
|
102 |
+
* @psalm-pure
|
103 |
+
* @psalm-param mixed $variable
|
104 |
* @return bool
|
105 |
*/
|
106 |
final public function equals($variable = null): bool
|
107 |
{
|
108 |
return $variable instanceof self
|
109 |
&& $this->getValue() === $variable->getValue()
|
110 |
+
&& static::class === \get_class($variable);
|
111 |
}
|
112 |
|
113 |
/**
|
114 |
* Returns the names (keys) of all constants in the Enum class
|
115 |
*
|
116 |
+
* @psalm-pure
|
117 |
+
* @psalm-return list<string>
|
118 |
* @return array
|
119 |
*/
|
120 |
public static function keys()
|
125 |
/**
|
126 |
* Returns instances of the Enum class of all Enum constants
|
127 |
*
|
128 |
+
* @psalm-pure
|
129 |
+
* @psalm-return array<string, static>
|
130 |
* @return static[] Constant name in key, Enum instance in value
|
131 |
*/
|
132 |
public static function values()
|
133 |
{
|
134 |
$values = array();
|
135 |
|
136 |
+
/** @psalm-var T $value */
|
137 |
foreach (static::toArray() as $key => $value) {
|
138 |
$values[$key] = new static($value);
|
139 |
}
|
144 |
/**
|
145 |
* Returns all possible values as an array
|
146 |
*
|
147 |
+
* @psalm-pure
|
148 |
+
* @psalm-suppress ImpureStaticProperty
|
149 |
+
*
|
150 |
+
* @psalm-return array<string, mixed>
|
151 |
* @return array Constant name in key, constant value in value
|
152 |
*/
|
153 |
public static function toArray()
|
154 |
{
|
155 |
+
$class = static::class;
|
156 |
+
|
157 |
if (!isset(static::$cache[$class])) {
|
158 |
$reflection = new \ReflectionClass($class);
|
159 |
static::$cache[$class] = $reflection->getConstants();
|
166 |
* Check if is valid enum value
|
167 |
*
|
168 |
* @param $value
|
169 |
+
* @psalm-param mixed $value
|
170 |
+
* @psalm-pure
|
171 |
* @return bool
|
172 |
*/
|
173 |
public static function isValid($value)
|
179 |
* Check if is valid enum key
|
180 |
*
|
181 |
* @param $key
|
182 |
+
* @psalm-param string $key
|
183 |
+
* @psalm-pure
|
184 |
* @return bool
|
185 |
*/
|
186 |
public static function isValidKey($key)
|
195 |
*
|
196 |
* @param $value
|
197 |
*
|
198 |
+
* @psalm-param mixed $value
|
199 |
+
* @psalm-pure
|
200 |
* @return mixed
|
201 |
*/
|
202 |
public static function search($value)
|
211 |
* @param array $arguments
|
212 |
*
|
213 |
* @return static
|
214 |
+
* @psalm-pure
|
215 |
* @throws \BadMethodCallException
|
216 |
*/
|
217 |
public static function __callStatic($name, $arguments)
|
221 |
return new static($array[$name]);
|
222 |
}
|
223 |
|
224 |
+
throw new \BadMethodCallException("No static method or enum constant '$name' in class " . static::class);
|
225 |
}
|
226 |
|
227 |
/**
|
230 |
*
|
231 |
* @return mixed
|
232 |
* @link http://php.net/manual/en/jsonserializable.jsonserialize.php
|
233 |
+
* @psalm-pure
|
234 |
*/
|
235 |
public function jsonSerialize()
|
236 |
{
|
vendor/symfony/polyfill-mbstring/LICENSE
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Copyright (c) 2015-2019 Fabien Potencier
|
2 |
+
|
3 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
4 |
+
of this software and associated documentation files (the "Software"), to deal
|
5 |
+
in the Software without restriction, including without limitation the rights
|
6 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7 |
+
copies of the Software, and to permit persons to whom the Software is furnished
|
8 |
+
to do so, subject to the following conditions:
|
9 |
+
|
10 |
+
The above copyright notice and this permission notice shall be included in all
|
11 |
+
copies or substantial portions of the Software.
|
12 |
+
|
13 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19 |
+
THE SOFTWARE.
|
vendor/symfony/polyfill-mbstring/Mbstring.php
ADDED
@@ -0,0 +1,847 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/*
|
4 |
+
* This file is part of the Symfony package.
|
5 |
+
*
|
6 |
+
* (c) Fabien Potencier <fabien@symfony.com>
|
7 |
+
*
|
8 |
+
* For the full copyright and license information, please view the LICENSE
|
9 |
+
* file that was distributed with this source code.
|
10 |
+
*/
|
11 |
+
|
12 |
+
namespace Symfony\Polyfill\Mbstring;
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Partial mbstring implementation in PHP, iconv based, UTF-8 centric.
|
16 |
+
*
|
17 |
+
* Implemented:
|
18 |
+
* - mb_chr - Returns a specific character from its Unicode code point
|
19 |
+
* - mb_convert_encoding - Convert character encoding
|
20 |
+
* - mb_convert_variables - Convert character code in variable(s)
|
21 |
+
* - mb_decode_mimeheader - Decode string in MIME header field
|
22 |
+
* - mb_encode_mimeheader - Encode string for MIME header XXX NATIVE IMPLEMENTATION IS REALLY BUGGED
|
23 |
+
* - mb_decode_numericentity - Decode HTML numeric string reference to character
|
24 |
+
* - mb_encode_numericentity - Encode character to HTML numeric string reference
|
25 |
+
* - mb_convert_case - Perform case folding on a string
|
26 |
+
* - mb_detect_encoding - Detect character encoding
|
27 |
+
* - mb_get_info - Get internal settings of mbstring
|
28 |
+
* - mb_http_input - Detect HTTP input character encoding
|
29 |
+
* - mb_http_output - Set/Get HTTP output character encoding
|
30 |
+
* - mb_internal_encoding - Set/Get internal character encoding
|
31 |
+
* - mb_list_encodings - Returns an array of all supported encodings
|
32 |
+
* - mb_ord - Returns the Unicode code point of a character
|
33 |
+
* - mb_output_handler - Callback function converts character encoding in output buffer
|
34 |
+
* - mb_scrub - Replaces ill-formed byte sequences with substitute characters
|
35 |
+
* - mb_strlen - Get string length
|
36 |
+
* - mb_strpos - Find position of first occurrence of string in a string
|
37 |
+
* - mb_strrpos - Find position of last occurrence of a string in a string
|
38 |
+
* - mb_str_split - Convert a string to an array
|
39 |
+
* - mb_strtolower - Make a string lowercase
|
40 |
+
* - mb_strtoupper - Make a string uppercase
|
41 |
+
* - mb_substitute_character - Set/Get substitution character
|
42 |
+
* - mb_substr - Get part of string
|
43 |
+
* - mb_stripos - Finds position of first occurrence of a string within another, case insensitive
|
44 |
+
* - mb_stristr - Finds first occurrence of a string within another, case insensitive
|
45 |
+
* - mb_strrchr - Finds the last occurrence of a character in a string within another
|
46 |
+
* - mb_strrichr - Finds the last occurrence of a character in a string within another, case insensitive
|
47 |
+
* - mb_strripos - Finds position of last occurrence of a string within another, case insensitive
|
48 |
+
* - mb_strstr - Finds first occurrence of a string within another
|
49 |
+
* - mb_strwidth - Return width of string
|
50 |
+
* - mb_substr_count - Count the number of substring occurrences
|
51 |
+
*
|
52 |
+
* Not implemented:
|
53 |
+
* - mb_convert_kana - Convert "kana" one from another ("zen-kaku", "han-kaku" and more)
|
54 |
+
* - mb_ereg_* - Regular expression with multibyte support
|
55 |
+
* - mb_parse_str - Parse GET/POST/COOKIE data and set global variable
|
56 |
+
* - mb_preferred_mime_name - Get MIME charset string
|
57 |
+
* - mb_regex_encoding - Returns current encoding for multibyte regex as string
|
58 |
+
* - mb_regex_set_options - Set/Get the default options for mbregex functions
|
59 |
+
* - mb_send_mail - Send encoded mail
|
60 |
+
* - mb_split - Split multibyte string using regular expression
|
61 |
+
* - mb_strcut - Get part of string
|
62 |
+
* - mb_strimwidth - Get truncated string with specified width
|
63 |
+
*
|
64 |
+
* @author Nicolas Grekas <p@tchwork.com>
|
65 |
+
*
|
66 |
+
* @internal
|
67 |
+
*/
|
68 |
+
final class Mbstring
|
69 |
+
{
|
70 |
+
const MB_CASE_FOLD = PHP_INT_MAX;
|
71 |
+
|
72 |
+
private static $encodingList = array('ASCII', 'UTF-8');
|
73 |
+
private static $language = 'neutral';
|
74 |
+
private static $internalEncoding = 'UTF-8';
|
75 |
+
private static $caseFold = array(
|
76 |
+
array('µ', 'ſ', "\xCD\x85", 'ς', "\xCF\x90", "\xCF\x91", "\xCF\x95", "\xCF\x96", "\xCF\xB0", "\xCF\xB1", "\xCF\xB5", "\xE1\xBA\x9B", "\xE1\xBE\xBE"),
|
77 |
+
array('μ', 's', 'ι', 'σ', 'β', 'θ', 'φ', 'π', 'κ', 'ρ', 'ε', "\xE1\xB9\xA1", 'ι'),
|
78 |
+
);
|
79 |
+
|
80 |
+
public static function mb_convert_encoding($s, $toEncoding, $fromEncoding = null)
|
81 |
+
{
|
82 |
+
if (\is_array($fromEncoding) || false !== strpos($fromEncoding, ',')) {
|
83 |
+
$fromEncoding = self::mb_detect_encoding($s, $fromEncoding);
|
84 |
+
} else {
|
85 |
+
$fromEncoding = self::getEncoding($fromEncoding);
|
86 |
+
}
|
87 |
+
|
88 |
+
$toEncoding = self::getEncoding($toEncoding);
|
89 |
+
|
90 |
+
if ('BASE64' === $fromEncoding) {
|
91 |
+
$s = base64_decode($s);
|
92 |
+
$fromEncoding = $toEncoding;
|
93 |
+
}
|
94 |
+
|
95 |
+
if ('BASE64' === $toEncoding) {
|
96 |
+
return base64_encode($s);
|
97 |
+
}
|
98 |
+
|
99 |
+
if ('HTML-ENTITIES' === $toEncoding || 'HTML' === $toEncoding) {
|
100 |
+
if ('HTML-ENTITIES' === $fromEncoding || 'HTML' === $fromEncoding) {
|
101 |
+
$fromEncoding = 'Windows-1252';
|
102 |
+
}
|
103 |
+
if ('UTF-8' !== $fromEncoding) {
|
104 |
+
$s = iconv($fromEncoding, 'UTF-8//IGNORE', $s);
|
105 |
+
}
|
106 |
+
|
107 |
+
return preg_replace_callback('/[\x80-\xFF]+/', array(__CLASS__, 'html_encoding_callback'), $s);
|
108 |
+
}
|
109 |
+
|
110 |
+
if ('HTML-ENTITIES' === $fromEncoding) {
|
111 |
+
$s = html_entity_decode($s, ENT_COMPAT, 'UTF-8');
|
112 |
+
$fromEncoding = 'UTF-8';
|
113 |
+
}
|
114 |
+
|
115 |
+
return iconv($fromEncoding, $toEncoding.'//IGNORE', $s);
|
116 |
+
}
|
117 |
+
|
118 |
+
public static function mb_convert_variables($toEncoding, $fromEncoding, &$a = null, &$b = null, &$c = null, &$d = null, &$e = null, &$f = null)
|
119 |
+
{
|
120 |
+
$vars = array(&$a, &$b, &$c, &$d, &$e, &$f);
|
121 |
+
|
122 |
+
$ok = true;
|
123 |
+
array_walk_recursive($vars, function (&$v) use (&$ok, $toEncoding, $fromEncoding) {
|
124 |
+
if (false === $v = Mbstring::mb_convert_encoding($v, $toEncoding, $fromEncoding)) {
|
125 |
+
$ok = false;
|
126 |
+
}
|
127 |
+
});
|
128 |
+
|
129 |
+
return $ok ? $fromEncoding : false;
|
130 |
+
}
|
131 |
+
|
132 |
+
public static function mb_decode_mimeheader($s)
|
133 |
+
{
|
134 |
+
return iconv_mime_decode($s, 2, self::$internalEncoding);
|
135 |
+
}
|
136 |
+
|
137 |
+
public static function mb_encode_mimeheader($s, $charset = null, $transferEncoding = null, $linefeed = null, $indent = null)
|
138 |
+
{
|
139 |
+
trigger_error('mb_encode_mimeheader() is bugged. Please use iconv_mime_encode() instead', E_USER_WARNING);
|
140 |
+
}
|
141 |
+
|
142 |
+
public static function mb_decode_numericentity($s, $convmap, $encoding = null)
|
143 |
+
{
|
144 |
+
if (null !== $s && !\is_scalar($s) && !(\is_object($s) && \method_exists($s, '__toString'))) {
|
145 |
+
trigger_error('mb_decode_numericentity() expects parameter 1 to be string, '.\gettype($s).' given', E_USER_WARNING);
|
146 |
+
|
147 |
+
return null;
|
148 |
+
}
|
149 |
+
|
150 |
+
if (!\is_array($convmap) || !$convmap) {
|
151 |
+
return false;
|
152 |
+
}
|
153 |
+
|
154 |
+
if (null !== $encoding && !\is_scalar($encoding)) {
|
155 |
+
trigger_error('mb_decode_numericentity() expects parameter 3 to be string, '.\gettype($s).' given', E_USER_WARNING);
|
156 |
+
|
157 |
+
return ''; // Instead of null (cf. mb_encode_numericentity).
|
158 |
+
}
|
159 |
+
|
160 |
+
$s = (string) $s;
|
161 |
+
if ('' === $s) {
|
162 |
+
return '';
|
163 |
+
}
|
164 |
+
|
165 |
+
$encoding = self::getEncoding($encoding);
|
166 |
+
|
167 |
+
if ('UTF-8' === $encoding) {
|
168 |
+
$encoding = null;
|
169 |
+
if (!preg_match('//u', $s)) {
|
170 |
+
$s = @iconv('UTF-8', 'UTF-8//IGNORE', $s);
|
171 |
+
}
|
172 |
+
} else {
|
173 |
+
$s = iconv($encoding, 'UTF-8//IGNORE', $s);
|
174 |
+
}
|
175 |
+
|
176 |
+
$cnt = floor(\count($convmap) / 4) * 4;
|
177 |
+
|
178 |
+
for ($i = 0; $i < $cnt; $i += 4) {
|
179 |
+
// collector_decode_htmlnumericentity ignores $convmap[$i + 3]
|
180 |
+
$convmap[$i] += $convmap[$i + 2];
|
181 |
+
$convmap[$i + 1] += $convmap[$i + 2];
|
182 |
+
}
|
183 |
+
|
184 |
+
$s = preg_replace_callback('/&#(?:0*([0-9]+)|x0*([0-9a-fA-F]+))(?!&);?/', function (array $m) use ($cnt, $convmap) {
|
185 |
+
$c = isset($m[2]) ? (int) hexdec($m[2]) : $m[1];
|
186 |
+
for ($i = 0; $i < $cnt; $i += 4) {
|
187 |
+
if ($c >= $convmap[$i] && $c <= $convmap[$i + 1]) {
|
188 |
+
return Mbstring::mb_chr($c - $convmap[$i + 2]);
|
189 |
+
}
|
190 |
+
}
|
191 |
+
|
192 |
+
return $m[0];
|
193 |
+
}, $s);
|
194 |
+
|
195 |
+
if (null === $encoding) {
|
196 |
+
return $s;
|
197 |
+
}
|
198 |
+
|
199 |
+
return iconv('UTF-8', $encoding.'//IGNORE', $s);
|
200 |
+
}
|
201 |
+
|
202 |
+
public static function mb_encode_numericentity($s, $convmap, $encoding = null, $is_hex = false)
|
203 |
+
{
|
204 |
+
if (null !== $s && !\is_scalar($s) && !(\is_object($s) && \method_exists($s, '__toString'))) {
|
205 |
+
trigger_error('mb_encode_numericentity() expects parameter 1 to be string, '.\gettype($s).' given', E_USER_WARNING);
|
206 |
+
|
207 |
+
return null;
|
208 |
+
}
|
209 |
+
|
210 |
+
if (!\is_array($convmap) || !$convmap) {
|
211 |
+
return false;
|
212 |
+
}
|
213 |
+
|
214 |
+
if (null !== $encoding && !\is_scalar($encoding)) {
|
215 |
+
trigger_error('mb_encode_numericentity() expects parameter 3 to be string, '.\gettype($s).' given', E_USER_WARNING);
|
216 |
+
|
217 |
+
return null; // Instead of '' (cf. mb_decode_numericentity).
|
218 |
+
}
|
219 |
+
|
220 |
+
if (null !== $is_hex && !\is_scalar($is_hex)) {
|
221 |
+
trigger_error('mb_encode_numericentity() expects parameter 4 to be boolean, '.\gettype($s).' given', E_USER_WARNING);
|
222 |
+
|
223 |
+
return null;
|
224 |
+
}
|
225 |
+
|
226 |
+
$s = (string) $s;
|
227 |
+
if ('' === $s) {
|
228 |
+
return '';
|
229 |
+
}
|
230 |
+
|
231 |
+
$encoding = self::getEncoding($encoding);
|
232 |
+
|
233 |
+
if ('UTF-8' === $encoding) {
|
234 |
+
$encoding = null;
|
235 |
+
if (!preg_match('//u', $s)) {
|
236 |
+
$s = @iconv('UTF-8', 'UTF-8//IGNORE', $s);
|
237 |
+
}
|
238 |
+
} else {
|
239 |
+
$s = iconv($encoding, 'UTF-8//IGNORE', $s);
|
240 |
+
}
|
241 |
+
|
242 |
+
static $ulenMask = array("\xC0" => 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4);
|
243 |
+
|
244 |
+
$cnt = floor(\count($convmap) / 4) * 4;
|
245 |
+
$i = 0;
|
246 |
+
$len = \strlen($s);
|
247 |
+
$result = '';
|
248 |
+
|
249 |
+
while ($i < $len) {
|
250 |
+
$ulen = $s[$i] < "\x80" ? 1 : $ulenMask[$s[$i] & "\xF0"];
|
251 |
+
$uchr = substr($s, $i, $ulen);
|
252 |
+
$i += $ulen;
|
253 |
+
$c = self::mb_ord($uchr);
|
254 |
+
|
255 |
+
for ($j = 0; $j < $cnt; $j += 4) {
|
256 |
+
if ($c >= $convmap[$j] && $c <= $convmap[$j + 1]) {
|
257 |
+
$cOffset = ($c + $convmap[$j + 2]) & $convmap[$j + 3];
|
258 |
+
$result .= $is_hex ? sprintf('&#x%X;', $cOffset) : '&#'.$cOffset.';';
|
259 |
+
continue 2;
|
260 |
+
}
|
261 |
+
}
|
262 |
+
$result .= $uchr;
|
263 |
+
}
|
264 |
+
|
265 |
+
if (null === $encoding) {
|
266 |
+
return $result;
|
267 |
+
}
|
268 |
+
|
269 |
+
return iconv('UTF-8', $encoding.'//IGNORE', $result);
|
270 |
+
}
|
271 |
+
|
272 |
+
public static function mb_convert_case($s, $mode, $encoding = null)
|
273 |
+
{
|
274 |
+
$s = (string) $s;
|
275 |
+
if ('' === $s) {
|
276 |
+
return '';
|
277 |
+
}
|
278 |
+
|
279 |
+
$encoding = self::getEncoding($encoding);
|
280 |
+
|
281 |
+
if ('UTF-8' === $encoding) {
|
282 |
+
$encoding = null;
|
283 |
+
if (!preg_match('//u', $s)) {
|
284 |
+
$s = @iconv('UTF-8', 'UTF-8//IGNORE', $s);
|
285 |
+
}
|
286 |
+
} else {
|
287 |
+
$s = iconv($encoding, 'UTF-8//IGNORE', $s);
|
288 |
+
}
|
289 |
+
|
290 |
+
if (MB_CASE_TITLE == $mode) {
|
291 |
+
static $titleRegexp = null;
|
292 |
+
if (null === $titleRegexp) {
|
293 |
+
$titleRegexp = self::getData('titleCaseRegexp');
|
294 |
+
}
|
295 |
+
$s = preg_replace_callback($titleRegexp, array(__CLASS__, 'title_case'), $s);
|
296 |
+
} else {
|
297 |
+
if (MB_CASE_UPPER == $mode) {
|
298 |
+
static $upper = null;
|
299 |
+
if (null === $upper) {
|
300 |
+
$upper = self::getData('upperCase');
|
301 |
+
}
|
302 |
+
$map = $upper;
|
303 |
+
} else {
|
304 |
+
if (self::MB_CASE_FOLD === $mode) {
|
305 |
+
$s = str_replace(self::$caseFold[0], self::$caseFold[1], $s);
|
306 |
+
}
|
307 |
+
|
308 |
+
static $lower = null;
|
309 |
+
if (null === $lower) {
|
310 |
+
$lower = self::getData('lowerCase');
|
311 |
+
}
|
312 |
+
$map = $lower;
|
313 |
+
}
|
314 |
+
|
315 |
+
static $ulenMask = array("\xC0" => 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4);
|
316 |
+
|
317 |
+
$i = 0;
|
318 |
+
$len = \strlen($s);
|
319 |
+
|
320 |
+
while ($i < $len) {
|
321 |
+
$ulen = $s[$i] < "\x80" ? 1 : $ulenMask[$s[$i] & "\xF0"];
|
322 |
+
$uchr = substr($s, $i, $ulen);
|
323 |
+
$i += $ulen;
|
324 |
+
|
325 |
+
if (isset($map[$uchr])) {
|
326 |
+
$uchr = $map[$uchr];
|
327 |
+
$nlen = \strlen($uchr);
|
328 |
+
|
329 |
+
if ($nlen == $ulen) {
|
330 |
+
$nlen = $i;
|
331 |
+
do {
|
332 |
+
$s[--$nlen] = $uchr[--$ulen];
|
333 |
+
} while ($ulen);
|
334 |
+
} else {
|
335 |
+
$s = substr_replace($s, $uchr, $i - $ulen, $ulen);
|
336 |
+
$len += $nlen - $ulen;
|
337 |
+
$i += $nlen - $ulen;
|
338 |
+
}
|
339 |
+
}
|
340 |
+
}
|
341 |
+
}
|
342 |
+
|
343 |
+
if (null === $encoding) {
|
344 |
+
return $s;
|
345 |
+
}
|
346 |
+
|
347 |
+
return iconv('UTF-8', $encoding.'//IGNORE', $s);
|
348 |
+
}
|
349 |
+
|
350 |
+
public static function mb_internal_encoding($encoding = null)
|
351 |
+
{
|
352 |
+
if (null === $encoding) {
|
353 |
+
return self::$internalEncoding;
|
354 |
+
}
|
355 |
+
|
356 |
+
$encoding = self::getEncoding($encoding);
|
357 |
+
|
358 |
+
if ('UTF-8' === $encoding || false !== @iconv($encoding, $encoding, ' ')) {
|
359 |
+
self::$internalEncoding = $encoding;
|
360 |
+
|
361 |
+
return true;
|
362 |
+
}
|
363 |
+
|
364 |
+
return false;
|
365 |
+
}
|
366 |
+
|
367 |
+
public static function mb_language($lang = null)
|
368 |
+
{
|
369 |
+
if (null === $lang) {
|
370 |
+
return self::$language;
|
371 |
+
}
|
372 |
+
|
373 |
+
switch ($lang = strtolower($lang)) {
|
374 |
+
case 'uni':
|
375 |
+
case 'neutral':
|
376 |
+
self::$language = $lang;
|
377 |
+
|
378 |
+
return true;
|
379 |
+
}
|
380 |
+
|
381 |
+
return false;
|
382 |
+
}
|
383 |
+
|
384 |
+
public static function mb_list_encodings()
|
385 |
+
{
|
386 |
+
return array('UTF-8');
|
387 |
+
}
|
388 |
+
|
389 |
+
public static function mb_encoding_aliases($encoding)
|
390 |
+
{
|
391 |
+
switch (strtoupper($encoding)) {
|
392 |
+
case 'UTF8':
|
393 |
+
case 'UTF-8':
|
394 |
+
return array('utf8');
|
395 |
+
}
|
396 |
+
|
397 |
+
return false;
|
398 |
+
}
|
399 |
+
|
400 |
+
public static function mb_check_encoding($var = null, $encoding = null)
|
401 |
+
{
|
402 |
+
if (null === $encoding) {
|
403 |
+
if (null === $var) {
|
404 |
+
return false;
|
405 |
+
}
|
406 |
+
$encoding = self::$internalEncoding;
|
407 |
+
}
|
408 |
+
|
409 |
+
return self::mb_detect_encoding($var, array($encoding)) || false !== @iconv($encoding, $encoding, $var);
|
410 |
+
}
|
411 |
+
|
412 |
+
public static function mb_detect_encoding($str, $encodingList = null, $strict = false)
|
413 |
+
{
|
414 |
+
if (null === $encodingList) {
|
415 |
+
$encodingList = self::$encodingList;
|
416 |
+
} else {
|
417 |
+
if (!\is_array($encodingList)) {
|
418 |
+
$encodingList = array_map('trim', explode(',', $encodingList));
|
419 |
+
}
|
420 |
+
$encodingList = array_map('strtoupper', $encodingList);
|
421 |
+
}
|
422 |
+
|
423 |
+
foreach ($encodingList as $enc) {
|
424 |
+
switch ($enc) {
|
425 |
+
case 'ASCII':
|
426 |
+
if (!preg_match('/[\x80-\xFF]/', $str)) {
|
427 |
+
return $enc;
|
428 |
+
}
|
429 |
+
break;
|
430 |
+
|
431 |
+
case 'UTF8':
|
432 |
+
case 'UTF-8':
|
433 |
+
if (preg_match('//u', $str)) {
|
434 |
+
return 'UTF-8';
|
435 |
+
}
|
436 |
+
break;
|
437 |
+
|
438 |
+
default:
|
439 |
+
if (0 === strncmp($enc, 'ISO-8859-', 9)) {
|
440 |
+
return $enc;
|
441 |
+
}
|
442 |
+
}
|
443 |
+
}
|
444 |
+
|
445 |
+
return false;
|
446 |
+
}
|
447 |
+
|
448 |
+
public static function mb_detect_order($encodingList = null)
|
449 |
+
{
|
450 |
+
if (null === $encodingList) {
|
451 |
+
return self::$encodingList;
|
452 |
+
}
|
453 |
+
|
454 |
+
if (!\is_array($encodingList)) {
|
455 |
+
$encodingList = array_map('trim', explode(',', $encodingList));
|
456 |
+
}
|
457 |
+
$encodingList = array_map('strtoupper', $encodingList);
|
458 |
+
|
459 |
+
foreach ($encodingList as $enc) {
|
460 |
+
switch ($enc) {
|
461 |
+
default:
|
462 |
+
if (strncmp($enc, 'ISO-8859-', 9)) {
|
463 |
+
return false;
|
464 |
+
}
|
465 |
+
// no break
|
466 |
+
case 'ASCII':
|
467 |
+
case 'UTF8':
|
468 |
+
case 'UTF-8':
|
469 |
+
}
|
470 |
+
}
|
471 |
+
|
472 |
+
self::$encodingList = $encodingList;
|
473 |
+
|
474 |
+
return true;
|
475 |
+
}
|
476 |
+
|
477 |
+
public static function mb_strlen($s, $encoding = null)
|
478 |
+
{
|
479 |
+
$encoding = self::getEncoding($encoding);
|
480 |
+
if ('CP850' === $encoding || 'ASCII' === $encoding) {
|
481 |
+
return \strlen($s);
|
482 |
+
}
|
483 |
+
|
484 |
+
return @iconv_strlen($s, $encoding);
|
485 |
+
}
|
486 |
+
|
487 |
+
public static function mb_strpos($haystack, $needle, $offset = 0, $encoding = null)
|
488 |
+
{
|
489 |
+
$encoding = self::getEncoding($encoding);
|
490 |
+
if ('CP850' === $encoding || 'ASCII' === $encoding) {
|
491 |
+
return strpos($haystack, $needle, $offset);
|
492 |
+
}
|
493 |
+
|
494 |
+
$needle = (string) $needle;
|
495 |
+
if ('' === $needle) {
|
496 |
+
trigger_error(__METHOD__.': Empty delimiter', E_USER_WARNING);
|
497 |
+
|
498 |
+
return false;
|
499 |
+
}
|
500 |
+
|
501 |
+
return iconv_strpos($haystack, $needle, $offset, $encoding);
|
502 |
+
}
|
503 |
+
|
504 |
+
public static function mb_strrpos($haystack, $needle, $offset = 0, $encoding = null)
|
505 |
+
{
|
506 |
+
$encoding = self::getEncoding($encoding);
|
507 |
+
if ('CP850' === $encoding || 'ASCII' === $encoding) {
|
508 |
+
return strrpos($haystack, $needle, $offset);
|
509 |
+
}
|
510 |
+
|
511 |
+
if ($offset != (int) $offset) {
|
512 |
+
$offset = 0;
|
513 |
+
} elseif ($offset = (int) $offset) {
|
514 |
+
if ($offset < 0) {
|
515 |
+
if (0 > $offset += self::mb_strlen($needle)) {
|
516 |
+
$haystack = self::mb_substr($haystack, 0, $offset, $encoding);
|
517 |
+
}
|
518 |
+
$offset = 0;
|
519 |
+
} else {
|
520 |
+
$haystack = self::mb_substr($haystack, $offset, 2147483647, $encoding);
|
521 |
+
}
|
522 |
+
}
|
523 |
+
|
524 |
+
$pos = iconv_strrpos($haystack, $needle, $encoding);
|
525 |
+
|
526 |
+
return false !== $pos ? $offset + $pos : false;
|
527 |
+
}
|
528 |
+
|
529 |
+
public static function mb_str_split($string, $split_length = 1, $encoding = null)
|
530 |
+
{
|
531 |
+
if (null !== $string && !\is_scalar($string) && !(\is_object($string) && \method_exists($string, '__toString'))) {
|
532 |
+
trigger_error('mb_str_split() expects parameter 1 to be string, '.\gettype($string).' given', E_USER_WARNING);
|
533 |
+
|
534 |
+
return null;
|
535 |
+
}
|
536 |
+
|
537 |
+
if (1 > $split_length = (int) $split_length) {
|
538 |
+
trigger_error('The length of each segment must be greater than zero', E_USER_WARNING);
|
539 |
+
|
540 |
+
return false;
|
541 |
+
}
|
542 |
+
|
543 |
+
if (null === $encoding) {
|
544 |
+
$encoding = mb_internal_encoding();
|
545 |
+
}
|
546 |
+
|
547 |
+
if ('UTF-8' === $encoding = self::getEncoding($encoding)) {
|
548 |
+
$rx = '/(';
|
549 |
+
while (65535 < $split_length) {
|
550 |
+
$rx .= '.{65535}';
|
551 |
+
$split_length -= 65535;
|
552 |
+
}
|
553 |
+
$rx .= '.{'.$split_length.'})/us';
|
554 |
+
|
555 |
+
return preg_split($rx, $string, null, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
|
556 |
+
}
|
557 |
+
|
558 |
+
$result = array();
|
559 |
+
$length = mb_strlen($string, $encoding);
|
560 |
+
|
561 |
+
for ($i = 0; $i < $length; $i += $split_length) {
|
562 |
+
$result[] = mb_substr($string, $i, $split_length, $encoding);
|
563 |
+
}
|
564 |
+
|
565 |
+
return $result;
|
566 |
+
}
|
567 |
+
|
568 |
+
public static function mb_strtolower($s, $encoding = null)
|
569 |
+
{
|
570 |
+
return self::mb_convert_case($s, MB_CASE_LOWER, $encoding);
|
571 |
+
}
|
572 |
+
|
573 |
+
public static function mb_strtoupper($s, $encoding = null)
|
574 |
+
{
|
575 |
+
return self::mb_convert_case($s, MB_CASE_UPPER, $encoding);
|
576 |
+
}
|
577 |
+
|
578 |
+
public static function mb_substitute_character($c = null)
|
579 |
+
{
|
580 |
+
if (0 === strcasecmp($c, 'none')) {
|
581 |
+
return true;
|
582 |
+
}
|
583 |
+
|
584 |
+
return null !== $c ? false : 'none';
|
585 |
+
}
|
586 |
+
|
587 |
+
public static function mb_substr($s, $start, $length = null, $encoding = null)
|
588 |
+
{
|
589 |
+
$encoding = self::getEncoding($encoding);
|
590 |
+
if ('CP850' === $encoding || 'ASCII' === $encoding) {
|
591 |
+
return (string) substr($s, $start, null === $length ? 2147483647 : $length);
|
592 |
+
}
|
593 |
+
|
594 |
+
if ($start < 0) {
|
595 |
+
$start = iconv_strlen($s, $encoding) + $start;
|
596 |
+
if ($start < 0) {
|
597 |
+
$start = 0;
|
598 |
+
}
|
599 |
+
}
|
600 |
+
|
601 |
+
if (null === $length) {
|
602 |
+
$length = 2147483647;
|
603 |
+
} elseif ($length < 0) {
|
604 |
+
$length = iconv_strlen($s, $encoding) + $length - $start;
|
605 |
+
if ($length < 0) {
|
606 |
+
return '';
|
607 |
+
}
|
608 |
+
}
|
609 |
+
|
610 |
+
return (string) iconv_substr($s, $start, $length, $encoding);
|
611 |
+
}
|
612 |
+
|
613 |
+
public static function mb_stripos($haystack, $needle, $offset = 0, $encoding = null)
|
614 |
+
{
|
615 |
+
$haystack = self::mb_convert_case($haystack, self::MB_CASE_FOLD, $encoding);
|
616 |
+
$needle = self::mb_convert_case($needle, self::MB_CASE_FOLD, $encoding);
|
617 |
+
|
618 |
+
return self::mb_strpos($haystack, $needle, $offset, $encoding);
|
619 |
+
}
|
620 |
+
|
621 |
+
public static function mb_stristr($haystack, $needle, $part = false, $encoding = null)
|
622 |
+
{
|
623 |
+
$pos = self::mb_stripos($haystack, $needle, 0, $encoding);
|
624 |
+
|
625 |
+
return self::getSubpart($pos, $part, $haystack, $encoding);
|
626 |
+
}
|
627 |
+
|
628 |
+
public static function mb_strrchr($haystack, $needle, $part = false, $encoding = null)
|
629 |
+
{
|
630 |
+
$encoding = self::getEncoding($encoding);
|
631 |
+
if ('CP850' === $encoding || 'ASCII' === $encoding) {
|
632 |
+
return strrchr($haystack, $needle, $part);
|
633 |
+
}
|
634 |
+
$needle = self::mb_substr($needle, 0, 1, $encoding);
|
635 |
+
$pos = iconv_strrpos($haystack, $needle, $encoding);
|
636 |
+
|
637 |
+
return self::getSubpart($pos, $part, $haystack, $encoding);
|
638 |
+
}
|
639 |
+
|
640 |
+
public static function mb_strrichr($haystack, $needle, $part = false, $encoding = null)
|
641 |
+
{
|
642 |
+
$needle = self::mb_substr($needle, 0, 1, $encoding);
|
643 |
+
$pos = self::mb_strripos($haystack, $needle, $encoding);
|
644 |
+
|
645 |
+
return self::getSubpart($pos, $part, $haystack, $encoding);
|
646 |
+
}
|
647 |
+
|
648 |
+
public static function mb_strripos($haystack, $needle, $offset = 0, $encoding = null)
|
649 |
+
{
|
650 |
+
$haystack = self::mb_convert_case($haystack, self::MB_CASE_FOLD, $encoding);
|
651 |
+
$needle = self::mb_convert_case($needle, self::MB_CASE_FOLD, $encoding);
|
652 |
+
|
653 |
+
return self::mb_strrpos($haystack, $needle, $offset, $encoding);
|
654 |
+
}
|
655 |
+
|
656 |
+
public static function mb_strstr($haystack, $needle, $part = false, $encoding = null)
|
657 |
+
{
|
658 |
+
$pos = strpos($haystack, $needle);
|
659 |
+
if (false === $pos) {
|
660 |
+
return false;
|
661 |
+
}
|
662 |
+
if ($part) {
|
663 |
+
return substr($haystack, 0, $pos);
|
664 |
+
}
|
665 |
+
|
666 |
+
return substr($haystack, $pos);
|
667 |
+
}
|
668 |
+
|
669 |
+
public static function mb_get_info($type = 'all')
|
670 |
+
{
|
671 |
+
$info = array(
|
672 |
+
'internal_encoding' => self::$internalEncoding,
|
673 |
+
'http_output' => 'pass',
|
674 |
+
'http_output_conv_mimetypes' => '^(text/|application/xhtml\+xml)',
|
675 |
+
'func_overload' => 0,
|
676 |
+
'func_overload_list' => 'no overload',
|
677 |
+
'mail_charset' => 'UTF-8',
|
678 |
+
'mail_header_encoding' => 'BASE64',
|
679 |
+
'mail_body_encoding' => 'BASE64',
|
680 |
+
'illegal_chars' => 0,
|
681 |
+
'encoding_translation' => 'Off',
|
682 |
+
'language' => self::$language,
|
683 |
+
'detect_order' => self::$encodingList,
|
684 |
+
'substitute_character' => 'none',
|
685 |
+
'strict_detection' => 'Off',
|
686 |
+
);
|
687 |
+
|
688 |
+
if ('all' === $type) {
|
689 |
+
return $info;
|
690 |
+
}
|
691 |
+
if (isset($info[$type])) {
|
692 |
+
return $info[$type];
|
693 |
+
}
|
694 |
+
|
695 |
+
return false;
|
696 |
+
}
|
697 |
+
|
698 |
+
public static function mb_http_input($type = '')
|
699 |
+
{
|
700 |
+
return false;
|
701 |
+
}
|
702 |
+
|
703 |
+
public static function mb_http_output($encoding = null)
|
704 |
+
{
|
705 |
+
return null !== $encoding ? 'pass' === $encoding : 'pass';
|
706 |
+
}
|
707 |
+
|
708 |
+
public static function mb_strwidth($s, $encoding = null)
|
709 |
+
{
|
710 |
+
$encoding = self::getEncoding($encoding);
|
711 |
+
|
712 |
+
if ('UTF-8' !== $encoding) {
|
713 |
+
$s = iconv($encoding, 'UTF-8//IGNORE', $s);
|
714 |
+
}
|
715 |
+
|
716 |
+
$s = preg_replace('/[\x{1100}-\x{115F}\x{2329}\x{232A}\x{2E80}-\x{303E}\x{3040}-\x{A4CF}\x{AC00}-\x{D7A3}\x{F900}-\x{FAFF}\x{FE10}-\x{FE19}\x{FE30}-\x{FE6F}\x{FF00}-\x{FF60}\x{FFE0}-\x{FFE6}\x{20000}-\x{2FFFD}\x{30000}-\x{3FFFD}]/u', '', $s, -1, $wide);
|
717 |
+
|
718 |
+
return ($wide << 1) + iconv_strlen($s, 'UTF-8');
|
719 |
+
}
|
720 |
+
|
721 |
+
public static function mb_substr_count($haystack, $needle, $encoding = null)
|
722 |
+
{
|
723 |
+
return substr_count($haystack, $needle);
|
724 |
+
}
|
725 |
+
|
726 |
+
public static function mb_output_handler($contents, $status)
|
727 |
+
{
|
728 |
+
return $contents;
|
729 |
+
}
|
730 |
+
|
731 |
+
public static function mb_chr($code, $encoding = null)
|
732 |
+
{
|
733 |
+
if (0x80 > $code %= 0x200000) {
|
734 |
+
$s = \chr($code);
|
735 |
+
} elseif (0x800 > $code) {
|
736 |
+
$s = \chr(0xC0 | $code >> 6).\chr(0x80 | $code & 0x3F);
|
737 |
+
} elseif (0x10000 > $code) {
|
738 |
+
$s = \chr(0xE0 | $code >> 12).\chr(0x80 | $code >> 6 & 0x3F).\chr(0x80 | $code & 0x3F);
|
739 |
+
} else {
|
740 |
+
$s = \chr(0xF0 | $code >> 18).\chr(0x80 | $code >> 12 & 0x3F).\chr(0x80 | $code >> 6 & 0x3F).\chr(0x80 | $code & 0x3F);
|
741 |
+
}
|
742 |
+
|
743 |
+
if ('UTF-8' !== $encoding = self::getEncoding($encoding)) {
|
744 |
+
$s = mb_convert_encoding($s, $encoding, 'UTF-8');
|
745 |
+
}
|
746 |
+
|
747 |
+
return $s;
|
748 |
+
}
|
749 |
+
|
750 |
+
public static function mb_ord($s, $encoding = null)
|
751 |
+
{
|
752 |
+
if ('UTF-8' !== $encoding = self::getEncoding($encoding)) {
|
753 |
+
$s = mb_convert_encoding($s, 'UTF-8', $encoding);
|
754 |
+
}
|
755 |
+
|
756 |
+
if (1 === \strlen($s)) {
|
757 |
+
return \ord($s);
|
758 |
+
}
|
759 |
+
|
760 |
+
$code = ($s = unpack('C*', substr($s, 0, 4))) ? $s[1] : 0;
|
761 |
+
if (0xF0 <= $code) {
|
762 |
+
return (($code - 0xF0) << 18) + (($s[2] - 0x80) << 12) + (($s[3] - 0x80) << 6) + $s[4] - 0x80;
|
763 |
+
}
|
764 |
+
if (0xE0 <= $code) {
|
765 |
+
return (($code - 0xE0) << 12) + (($s[2] - 0x80) << 6) + $s[3] - 0x80;
|
766 |
+
}
|
767 |
+
if (0xC0 <= $code) {
|
768 |
+
return (($code - 0xC0) << 6) + $s[2] - 0x80;
|
769 |
+
}
|
770 |
+
|
771 |
+
return $code;
|
772 |
+
}
|
773 |
+
|
774 |
+
private static function getSubpart($pos, $part, $haystack, $encoding)
|
775 |
+
{
|
776 |
+
if (false === $pos) {
|
777 |
+
return false;
|
778 |
+
}
|
779 |
+
if ($part) {
|
780 |
+
return self::mb_substr($haystack, 0, $pos, $encoding);
|
781 |
+
}
|
782 |
+
|
783 |
+
return self::mb_substr($haystack, $pos, null, $encoding);
|
784 |
+
}
|
785 |
+
|
786 |
+
private static function html_encoding_callback(array $m)
|
787 |
+
{
|
788 |
+
$i = 1;
|
789 |
+
$entities = '';
|
790 |
+
$m = unpack('C*', htmlentities($m[0], ENT_COMPAT, 'UTF-8'));
|
791 |
+
|
792 |
+
while (isset($m[$i])) {
|
793 |
+
if (0x80 > $m[$i]) {
|
794 |
+
$entities .= \chr($m[$i++]);
|
795 |
+
continue;
|
796 |
+
}
|
797 |
+
if (0xF0 <= $m[$i]) {
|
798 |
+
$c = (($m[$i++] - 0xF0) << 18) + (($m[$i++] - 0x80) << 12) + (($m[$i++] - 0x80) << 6) + $m[$i++] - 0x80;
|
799 |
+
} elseif (0xE0 <= $m[$i]) {
|
800 |
+
$c = (($m[$i++] - 0xE0) << 12) + (($m[$i++] - 0x80) << 6) + $m[$i++] - 0x80;
|
801 |
+
} else {
|
802 |
+
$c = (($m[$i++] - 0xC0) << 6) + $m[$i++] - 0x80;
|
803 |
+
}
|
804 |
+
|
805 |
+
$entities .= '&#'.$c.';';
|
806 |
+
}
|
807 |
+
|
808 |
+
return $entities;
|
809 |
+
}
|
810 |
+
|
811 |
+
private static function title_case(array $s)
|
812 |
+
{
|
813 |
+
return self::mb_convert_case($s[1], MB_CASE_UPPER, 'UTF-8').self::mb_convert_case($s[2], MB_CASE_LOWER, 'UTF-8');
|
814 |
+
}
|
815 |
+
|
816 |
+
private static function getData($file)
|
817 |
+
{
|
818 |
+
if (file_exists($file = __DIR__.'/Resources/unidata/'.$file.'.php')) {
|
819 |
+
return require $file;
|
820 |
+
}
|
821 |
+
|
822 |
+
return false;
|
823 |
+
}
|
824 |
+
|
825 |
+
private static function getEncoding($encoding)
|
826 |
+
{
|
827 |
+
if (null === $encoding) {
|
828 |
+
return self::$internalEncoding;
|
829 |
+
}
|
830 |
+
|
831 |
+
if ('UTF-8' === $encoding) {
|
832 |
+
return 'UTF-8';
|
833 |
+
}
|
834 |
+
|
835 |
+
$encoding = strtoupper($encoding);
|
836 |
+
|
837 |
+
if ('8BIT' === $encoding || 'BINARY' === $encoding) {
|
838 |
+
return 'CP850';
|
839 |
+
}
|
840 |
+
|
841 |
+
if ('UTF8' === $encoding) {
|
842 |
+
return 'UTF-8';
|
843 |
+
}
|
844 |
+
|
845 |
+
return $encoding;
|
846 |
+
}
|
847 |
+
}
|
vendor/symfony/polyfill-mbstring/README.md
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Symfony Polyfill / Mbstring
|
2 |
+
===========================
|
3 |
+
|
4 |
+
This component provides a partial, native PHP implementation for the
|
5 |
+
[Mbstring](https://php.net/mbstring) extension.
|
6 |
+
|
7 |
+
More information can be found in the
|
8 |
+
[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md).
|
9 |
+
|
10 |
+
License
|
11 |
+
=======
|
12 |
+
|
13 |
+
This library is released under the [MIT license](LICENSE).
|
vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php
ADDED
@@ -0,0 +1,1096 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
return array(
|
4 |
+
'A' => 'a',
|
5 |
+
'B' => 'b',
|
6 |
+
'C' => 'c',
|
7 |
+
'D' => 'd',
|
8 |
+
'E' => 'e',
|
9 |
+
'F' => 'f',
|
10 |
+
'G' => 'g',
|
11 |
+
'H' => 'h',
|
12 |
+
'I' => 'i',
|
13 |
+
'J' => 'j',
|
14 |
+
'K' => 'k',
|
15 |
+
'L' => 'l',
|
16 |
+
'M' => 'm',
|
17 |
+
'N' => 'n',
|
18 |
+
'O' => 'o',
|
19 |
+
'P' => 'p',
|
20 |
+
'Q' => 'q',
|
21 |
+
'R' => 'r',
|
22 |
+
'S' => 's',
|
23 |
+
'T' => 't',
|
24 |
+
'U' => 'u',
|
25 |
+
'V' => 'v',
|
26 |
+
'W' => 'w',
|
27 |
+
'X' => 'x',
|
28 |
+
'Y' => 'y',
|
29 |
+
'Z' => 'z',
|
30 |
+
'À' => 'à',
|
31 |
+
'Á' => 'á',
|
32 |
+
'Â' => 'â',
|
33 |
+
'Ã' => 'ã',
|
34 |
+
'Ä' => 'ä',
|
35 |
+
'Å' => 'å',
|
36 |
+
'Æ' => 'æ',
|
37 |
+
'Ç' => 'ç',
|
38 |
+
'È' => 'è',
|
39 |
+
'É' => 'é',
|
40 |
+
'Ê' => 'ê',
|
41 |
+
'Ë' => 'ë',
|
42 |
+
'Ì' => 'ì',
|
43 |
+
'Í' => 'í',
|
44 |
+
'Î' => 'î',
|
45 |
+
'Ï' => 'ï',
|
46 |
+
'Ð' => 'ð',
|
47 |
+
'Ñ' => 'ñ',
|
48 |
+
'Ò' => 'ò',
|
49 |
+
'Ó' => 'ó',
|
50 |
+
'Ô' => 'ô',
|
51 |
+
'Õ' => 'õ',
|
52 |
+
'Ö' => 'ö',
|
53 |
+
'Ø' => 'ø',
|
54 |
+
'Ù' => 'ù',
|
55 |
+
'Ú' => 'ú',
|
56 |
+
'Û' => 'û',
|
57 |
+
'Ü' => 'ü',
|
58 |
+
'Ý' => 'ý',
|
59 |
+
'Þ' => 'þ',
|
60 |
+
'Ā' => 'ā',
|
61 |
+
'Ă' => 'ă',
|
62 |
+
'Ą' => 'ą',
|
63 |
+
'Ć' => 'ć',
|
64 |
+
'Ĉ' => 'ĉ',
|
65 |
+
'Ċ' => 'ċ',
|
66 |
+
'Č' => 'č',
|
67 |
+
'Ď' => 'ď',
|
68 |
+
'Đ' => 'đ',
|
69 |
+
'Ē' => 'ē',
|
70 |
+
'Ĕ' => 'ĕ',
|
71 |
+
'Ė' => 'ė',
|
72 |
+
'Ę' => 'ę',
|
73 |
+
'Ě' => 'ě',
|
74 |
+
'Ĝ' => 'ĝ',
|
75 |
+
'Ğ' => 'ğ',
|
76 |
+
'Ġ' => 'ġ',
|
77 |
+
'Ģ' => 'ģ',
|
78 |
+
'Ĥ' => 'ĥ',
|
79 |
+
'Ħ' => 'ħ',
|
80 |
+
'Ĩ' => 'ĩ',
|
81 |
+
'Ī' => 'ī',
|
82 |
+
'Ĭ' => 'ĭ',
|
83 |
+
'Į' => 'į',
|
84 |
+
'İ' => 'i',
|
85 |
+
'IJ' => 'ij',
|
86 |
+
'Ĵ' => 'ĵ',
|
87 |
+
'Ķ' => 'ķ',
|
88 |
+
'Ĺ' => 'ĺ',
|
89 |
+
'Ļ' => 'ļ',
|
90 |
+
'Ľ' => 'ľ',
|
91 |
+
'Ŀ' => 'ŀ',
|
92 |
+
'Ł' => 'ł',
|
93 |
+
'Ń' => 'ń',
|
94 |
+
'Ņ' => 'ņ',
|
95 |
+
'Ň' => 'ň',
|
96 |
+
'Ŋ' => 'ŋ',
|
97 |
+
'Ō' => 'ō',
|
98 |
+
'Ŏ' => 'ŏ',
|
99 |
+
'Ő' => 'ő',
|
100 |
+
'Œ' => 'œ',
|
101 |
+
'Ŕ' => 'ŕ',
|
102 |
+
'Ŗ' => 'ŗ',
|
103 |
+
'Ř' => 'ř',
|
104 |
+
'Ś' => 'ś',
|
105 |
+
'Ŝ' => 'ŝ',
|
106 |
+
'Ş' => 'ş',
|
107 |
+
'Š' => 'š',
|
108 |
+
'Ţ' => 'ţ',
|
109 |
+
'Ť' => 'ť',
|
110 |
+
'Ŧ' => 'ŧ',
|
111 |
+
'Ũ' => 'ũ',
|
112 |
+
'Ū' => 'ū',
|
113 |
+
'Ŭ' => 'ŭ',
|
114 |
+
'Ů' => 'ů',
|
115 |
+
'Ű' => 'ű',
|
116 |
+
'Ų' => 'ų',
|
117 |
+
'Ŵ' => 'ŵ',
|
118 |
+
'Ŷ' => 'ŷ',
|
119 |
+
'Ÿ' => 'ÿ',
|
120 |
+
'Ź' => 'ź',
|
121 |
+
'Ż' => 'ż',
|
122 |
+
'Ž' => 'ž',
|
123 |
+
'Ɓ' => 'ɓ',
|
124 |
+
'Ƃ' => 'ƃ',
|
125 |
+
'Ƅ' => 'ƅ',
|
126 |
+
'Ɔ' => 'ɔ',
|
127 |
+
'Ƈ' => 'ƈ',
|
128 |
+
'Ɖ' => 'ɖ',
|
129 |
+
'Ɗ' => 'ɗ',
|
130 |
+
'Ƌ' => 'ƌ',
|
131 |
+
'Ǝ' => 'ǝ',
|
132 |
+
'Ə' => 'ə',
|
133 |
+
'Ɛ' => 'ɛ',
|
134 |
+
'Ƒ' => 'ƒ',
|
135 |
+
'Ɠ' => 'ɠ',
|
136 |
+
'Ɣ' => 'ɣ',
|
137 |
+
'Ɩ' => 'ɩ',
|
138 |
+
'Ɨ' => 'ɨ',
|
139 |
+
'Ƙ' => 'ƙ',
|
140 |
+
'Ɯ' => 'ɯ',
|
141 |
+
'Ɲ' => 'ɲ',
|
142 |
+
'Ɵ' => 'ɵ',
|
143 |
+
'Ơ' => 'ơ',
|
144 |
+
'Ƣ' => 'ƣ',
|
145 |
+
'Ƥ' => 'ƥ',
|
146 |
+
'Ʀ' => 'ʀ',
|
147 |
+
'Ƨ' => 'ƨ',
|
148 |
+
'Ʃ' => 'ʃ',
|
149 |
+
'Ƭ' => 'ƭ',
|
150 |
+
'Ʈ' => 'ʈ',
|
151 |
+
'Ư' => 'ư',
|
152 |
+
'Ʊ' => 'ʊ',
|
153 |
+
'Ʋ' => 'ʋ',
|
154 |
+
'Ƴ' => 'ƴ',
|
155 |
+
'Ƶ' => 'ƶ',
|
156 |
+
'Ʒ' => 'ʒ',
|
157 |
+
'Ƹ' => 'ƹ',
|
158 |
+
'Ƽ' => 'ƽ',
|
159 |
+
'DŽ' => 'dž',
|
160 |
+
'Dž' => 'dž',
|
161 |
+
'LJ' => 'lj',
|
162 |
+
'Lj' => 'lj',
|
163 |
+
'NJ' => 'nj',
|
164 |
+
'Nj' => 'nj',
|
165 |
+
'Ǎ' => 'ǎ',
|
166 |
+
'Ǐ' => 'ǐ',
|
167 |
+
'Ǒ' => 'ǒ',
|
168 |
+
'Ǔ' => 'ǔ',
|
169 |
+
'Ǖ' => 'ǖ',
|
170 |
+
'Ǘ' => 'ǘ',
|
171 |
+
'Ǚ' => 'ǚ',
|
172 |
+
'Ǜ' => 'ǜ',
|
173 |
+
'Ǟ' => 'ǟ',
|
174 |
+
'Ǡ' => 'ǡ',
|
175 |
+
'Ǣ' => 'ǣ',
|
176 |
+
'Ǥ' => 'ǥ',
|
177 |
+
'Ǧ' => 'ǧ',
|
178 |
+
'Ǩ' => 'ǩ',
|
179 |
+
'Ǫ' => 'ǫ',
|
180 |
+
'Ǭ' => 'ǭ',
|
181 |
+
'Ǯ' => 'ǯ',
|
182 |
+
'DZ' => 'dz',
|
183 |
+
'Dz' => 'dz',
|
184 |
+
'Ǵ' => 'ǵ',
|
185 |
+
'Ƕ' => 'ƕ',
|
186 |
+
'Ƿ' => 'ƿ',
|
187 |
+
'Ǹ' => 'ǹ',
|
188 |
+
'Ǻ' => 'ǻ',
|
189 |
+
'Ǽ' => 'ǽ',
|
190 |
+
'Ǿ' => 'ǿ',
|
191 |
+
'Ȁ' => 'ȁ',
|
192 |
+
'Ȃ' => 'ȃ',
|
193 |
+
'Ȅ' => 'ȅ',
|
194 |
+
'Ȇ' => 'ȇ',
|
195 |
+
'Ȉ' => 'ȉ',
|
196 |
+
'Ȋ' => 'ȋ',
|
197 |
+
'Ȍ' => 'ȍ',
|
198 |
+
'Ȏ' => 'ȏ',
|
199 |
+
'Ȑ' => 'ȑ',
|
200 |
+
'Ȓ' => 'ȓ',
|
201 |
+
'Ȕ' => 'ȕ',
|
202 |
+
'Ȗ' => 'ȗ',
|
203 |
+
'Ș' => 'ș',
|
204 |
+
'Ț' => 'ț',
|
205 |
+
'Ȝ' => 'ȝ',
|
206 |
+
'Ȟ' => 'ȟ',
|
207 |
+
'Ƞ' => 'ƞ',
|
208 |
+
'Ȣ' => 'ȣ',
|
209 |
+
'Ȥ' => 'ȥ',
|
210 |
+
'Ȧ' => 'ȧ',
|
211 |
+
'Ȩ' => 'ȩ',
|
212 |
+
'Ȫ' => 'ȫ',
|
213 |
+
'Ȭ' => 'ȭ',
|
214 |
+
'Ȯ' => 'ȯ',
|
215 |
+
'Ȱ' => 'ȱ',
|
216 |
+
'Ȳ' => 'ȳ',
|
217 |
+
'Ⱥ' => 'ⱥ',
|
218 |
+
'Ȼ' => 'ȼ',
|
219 |
+
'Ƚ' => 'ƚ',
|
220 |
+
'Ⱦ' => 'ⱦ',
|
221 |
+
'Ɂ' => 'ɂ',
|
222 |
+
'Ƀ' => 'ƀ',
|
223 |
+
'Ʉ' => 'ʉ',
|
224 |
+
'Ʌ' => 'ʌ',
|
225 |
+
'Ɇ' => 'ɇ',
|
226 |
+
'Ɉ' => 'ɉ',
|
227 |
+
'Ɋ' => 'ɋ',
|
228 |
+
'Ɍ' => 'ɍ',
|
229 |
+
'Ɏ' => 'ɏ',
|
230 |
+
'Ͱ' => 'ͱ',
|
231 |
+
'Ͳ' => 'ͳ',
|
232 |
+
'Ͷ' => 'ͷ',
|
233 |
+
'Ϳ' => 'ϳ',
|
234 |
+
'Ά' => 'ά',
|
235 |
+
'Έ' => 'έ',
|
236 |
+
'Ή' => 'ή',
|
237 |
+
'Ί' => 'ί',
|
238 |
+
'Ό' => 'ό',
|
239 |
+
'Ύ' => 'ύ',
|
240 |
+
'Ώ' => 'ώ',
|
241 |
+
'Α' => 'α',
|
242 |
+
'Β' => 'β',
|
243 |
+
'Γ' => 'γ',
|
244 |
+
'Δ' => 'δ',
|
245 |
+
'Ε' => 'ε',
|
246 |
+
'Ζ' => 'ζ',
|
247 |
+
'Η' => 'η',
|
248 |
+
'Θ' => 'θ',
|
249 |
+
'Ι' => 'ι',
|
250 |
+
'Κ' => 'κ',
|
251 |
+
'Λ' => 'λ',
|
252 |
+
'Μ' => 'μ',
|
253 |
+
'Ν' => 'ν',
|
254 |
+
'Ξ' => 'ξ',
|
255 |
+
'Ο' => 'ο',
|
256 |
+
'Π' => 'π',
|
257 |
+
'Ρ' => 'ρ',
|
258 |
+
'Σ' => 'σ',
|
259 |
+
'Τ' => 'τ',
|
260 |
+
'Υ' => 'υ',
|
261 |
+
'Φ' => 'φ',
|
262 |
+
'Χ' => 'χ',
|
263 |
+
'Ψ' => 'ψ',
|
264 |
+
'Ω' => 'ω',
|
265 |
+
'Ϊ' => 'ϊ',
|
266 |
+
'Ϋ' => 'ϋ',
|
267 |
+
'Ϗ' => 'ϗ',
|
268 |
+
'Ϙ' => 'ϙ',
|
269 |
+
'Ϛ' => 'ϛ',
|
270 |
+
'Ϝ' => 'ϝ',
|
271 |
+
'Ϟ' => 'ϟ',
|
272 |
+
'Ϡ' => 'ϡ',
|
273 |
+
'Ϣ' => 'ϣ',
|
274 |
+
'Ϥ' => 'ϥ',
|
275 |
+
'Ϧ' => 'ϧ',
|
276 |
+
'Ϩ' => 'ϩ',
|
277 |
+
'Ϫ' => 'ϫ',
|
278 |
+
'Ϭ' => 'ϭ',
|
279 |
+
'Ϯ' => 'ϯ',
|
280 |
+
'ϴ' => 'θ',
|
281 |
+
'Ϸ' => 'ϸ',
|
282 |
+
'Ϲ' => 'ϲ',
|
283 |
+
'Ϻ' => 'ϻ',
|
284 |
+
'Ͻ' => 'ͻ',
|
285 |
+
'Ͼ' => 'ͼ',
|
286 |
+
'Ͽ' => 'ͽ',
|
287 |
+
'Ѐ' => 'ѐ',
|
288 |
+
'Ё' => 'ё',
|
289 |
+
'Ђ' => 'ђ',
|
290 |
+
'Ѓ' => 'ѓ',
|
291 |
+
'Є' => 'є',
|
292 |
+
'Ѕ' => 'ѕ',
|
293 |
+
'І' => 'і',
|
294 |
+
'Ї' => 'ї',
|
295 |
+
'Ј' => 'ј',
|
296 |
+
'Љ' => 'љ',
|
297 |
+
'Њ' => 'њ',
|
298 |
+
'Ћ' => 'ћ',
|
299 |
+
'Ќ' => 'ќ',
|
300 |
+
'Ѝ' => 'ѝ',
|
301 |
+
'Ў' => 'ў',
|
302 |
+
'Џ' => 'џ',
|
303 |
+
'А' => 'а',
|
304 |
+
'Б' => 'б',
|
305 |
+
'В' => 'в',
|
306 |
+
'Г' => 'г',
|
307 |
+
'Д' => 'д',
|
308 |
+
'Е' => 'е',
|
309 |
+
'Ж' => 'ж',
|
310 |
+
'З' => 'з',
|
311 |
+
'И' => 'и',
|
312 |
+
'Й' => 'й',
|
313 |
+
'К' => 'к',
|
314 |
+
'Л' => 'л',
|
315 |
+
'М' => 'м',
|
316 |
+
'Н' => 'н',
|
317 |
+
'О' => 'о',
|
318 |
+
'П' => 'п',
|
319 |
+
'Р' => 'р',
|
320 |
+
'С' => 'с',
|
321 |
+
'Т' => 'т',
|
322 |
+
'У' => 'у',
|
323 |
+
'Ф' => 'ф',
|
324 |
+
'Х' => 'х',
|
325 |
+
'Ц' => 'ц',
|
326 |
+
'Ч' => 'ч',
|
327 |
+
'Ш' => 'ш',
|
328 |
+
'Щ' => 'щ',
|
329 |
+
'Ъ' => 'ъ',
|
330 |
+
'Ы' => 'ы',
|
331 |
+
'Ь' => 'ь',
|
332 |
+
'Э' => 'э',
|
333 |
+
'Ю' => 'ю',
|
334 |
+
'Я' => 'я',
|
335 |
+
'Ѡ' => 'ѡ',
|
336 |
+
'Ѣ' => 'ѣ',
|
337 |
+
'Ѥ' => 'ѥ',
|
338 |
+
'Ѧ' => 'ѧ',
|
339 |
+
'Ѩ' => 'ѩ',
|
340 |
+
'Ѫ' => 'ѫ',
|
341 |
+
'Ѭ' => 'ѭ',
|
342 |
+
'Ѯ' => 'ѯ',
|
343 |
+
'Ѱ' => 'ѱ',
|
344 |
+
'Ѳ' => 'ѳ',
|
345 |
+
'Ѵ' => 'ѵ',
|
346 |
+
'Ѷ' => 'ѷ',
|
347 |
+
'Ѹ' => 'ѹ',
|
348 |
+
'Ѻ' => 'ѻ',
|
349 |
+
'Ѽ' => 'ѽ',
|
350 |
+
'Ѿ' => 'ѿ',
|
351 |
+
'Ҁ' => 'ҁ',
|
352 |
+
'Ҋ' => 'ҋ',
|
353 |
+
'Ҍ' => 'ҍ',
|
354 |
+
'Ҏ' => 'ҏ',
|
355 |
+
'Ґ' => 'ґ',
|
356 |
+
'Ғ' => 'ғ',
|
357 |
+
'Ҕ' => 'ҕ',
|
358 |
+
'Җ' => 'җ',
|
359 |
+
'Ҙ' => 'ҙ',
|
360 |
+
'Қ' => 'қ',
|
361 |
+
'Ҝ' => 'ҝ',
|
362 |
+
'Ҟ' => 'ҟ',
|
363 |
+
'Ҡ' => 'ҡ',
|
364 |
+
'Ң' => 'ң',
|
365 |
+
'Ҥ' => 'ҥ',
|
366 |
+
'Ҧ' => 'ҧ',
|
367 |
+
'Ҩ' => 'ҩ',
|
368 |
+
'Ҫ' => 'ҫ',
|
369 |
+
'Ҭ' => 'ҭ',
|
370 |
+
'Ү' => 'ү',
|
371 |
+
'Ұ' => 'ұ',
|
372 |
+
'Ҳ' => 'ҳ',
|
373 |
+
'Ҵ' => 'ҵ',
|
374 |
+
'Ҷ' => 'ҷ',
|
375 |
+
'Ҹ' => 'ҹ',
|
376 |
+
'Һ' => 'һ',
|
377 |
+
'Ҽ' => 'ҽ',
|
378 |
+
'Ҿ' => 'ҿ',
|
379 |
+
'Ӏ' => 'ӏ',
|
380 |
+
'Ӂ' => 'ӂ',
|
381 |
+
'Ӄ' => 'ӄ',
|
382 |
+
'Ӆ' => 'ӆ',
|
383 |
+
'Ӈ' => 'ӈ',
|
384 |
+
'Ӊ' => 'ӊ',
|
385 |
+
'Ӌ' => 'ӌ',
|
386 |
+
'Ӎ' => 'ӎ',
|
387 |
+
'Ӑ' => 'ӑ',
|
388 |
+
'Ӓ' => 'ӓ',
|
389 |
+
'Ӕ' => 'ӕ',
|
390 |
+
'Ӗ' => 'ӗ',
|
391 |
+
'Ә' => 'ә',
|
392 |
+
'Ӛ' => 'ӛ',
|
393 |
+
'Ӝ' => 'ӝ',
|
394 |
+
'Ӟ' => 'ӟ',
|
395 |
+
'Ӡ' => 'ӡ',
|
396 |
+
'Ӣ' => 'ӣ',
|
397 |
+
'Ӥ' => 'ӥ',
|
398 |
+
'Ӧ' => 'ӧ',
|
399 |
+
'Ө' => 'ө',
|
400 |
+
'Ӫ' => 'ӫ',
|
401 |
+
'Ӭ' => 'ӭ',
|
402 |
+
'Ӯ' => 'ӯ',
|
403 |
+
'Ӱ' => 'ӱ',
|
404 |
+
'Ӳ' => 'ӳ',
|
405 |
+
'Ӵ' => 'ӵ',
|
406 |
+
'Ӷ' => 'ӷ',
|
407 |
+
'Ӹ' => 'ӹ',
|
408 |
+
'Ӻ' => 'ӻ',
|
409 |
+
'Ӽ' => 'ӽ',
|
410 |
+
'Ӿ' => 'ӿ',
|
411 |
+
'Ԁ' => 'ԁ',
|
412 |
+
'Ԃ' => 'ԃ',
|
413 |
+
'Ԅ' => 'ԅ',
|
414 |
+
'Ԇ' => 'ԇ',
|
415 |
+
'Ԉ' => 'ԉ',
|
416 |
+
'Ԋ' => 'ԋ',
|
417 |
+
'Ԍ' => 'ԍ',
|
418 |
+
'Ԏ' => 'ԏ',
|
419 |
+
'Ԑ' => 'ԑ',
|
420 |
+
'Ԓ' => 'ԓ',
|
421 |
+
'Ԕ' => 'ԕ',
|
422 |
+
'Ԗ' => 'ԗ',
|
423 |
+
'Ԙ' => 'ԙ',
|
424 |
+
'Ԛ' => 'ԛ',
|
425 |
+
'Ԝ' => 'ԝ',
|
426 |
+
'Ԟ' => 'ԟ',
|
427 |
+
'Ԡ' => 'ԡ',
|
428 |
+
'Ԣ' => 'ԣ',
|
429 |
+
'Ԥ' => 'ԥ',
|
430 |
+
'Ԧ' => 'ԧ',
|
431 |
+
'Ԩ' => 'ԩ',
|
432 |
+
'Ԫ' => 'ԫ',
|
433 |
+
'Ԭ' => 'ԭ',
|
434 |
+
'Ԯ' => 'ԯ',
|
435 |
+
'Ա' => 'ա',
|
436 |
+
'Բ' => 'բ',
|
437 |
+
'Գ' => 'գ',
|
438 |
+
'Դ' => 'դ',
|
439 |
+
'Ե' => 'ե',
|
440 |
+
'Զ' => 'զ',
|
441 |
+
'Է' => 'է',
|
442 |
+
'Ը' => 'ը',
|
443 |
+
'Թ' => 'թ',
|
444 |
+
'Ժ' => 'ժ',
|
445 |
+
'Ի' => 'ի',
|
446 |
+
'Լ' => 'լ',
|
447 |
+
'Խ' => 'խ',
|
448 |
+
'Ծ' => 'ծ',
|
449 |
+
'Կ' => 'կ',
|
450 |
+
'Հ' => 'հ',
|
451 |
+
'Ձ' => 'ձ',
|
452 |
+
'Ղ' => 'ղ',
|
453 |
+
'Ճ' => 'ճ',
|
454 |
+
'Մ' => 'մ',
|
455 |
+
'Յ' => 'յ',
|
456 |
+
'Ն' => 'ն',
|
457 |
+
'Շ' => 'շ',
|
458 |
+
'Ո' => 'ո',
|
459 |
+
'Չ' => 'չ',
|
460 |
+
'Պ' => 'պ',
|
461 |
+
'Ջ' => 'ջ',
|
462 |
+
'Ռ' => 'ռ',
|
463 |
+
'Ս' => 'ս',
|
464 |
+
'Վ' => 'վ',
|
465 |
+
'Տ' => 'տ',
|
466 |
+
'Ր' => 'ր',
|
467 |
+
'Ց' => 'ց',
|
468 |
+
'Ւ' => 'ւ',
|
469 |
+
'Փ' => 'փ',
|
470 |
+
'Ք' => 'ք',
|
471 |
+
'Օ' => 'օ',
|
472 |
+
'Ֆ' => 'ֆ',
|
473 |
+
'Ⴀ' => 'ⴀ',
|
474 |
+
'Ⴁ' => 'ⴁ',
|
475 |
+
'Ⴂ' => 'ⴂ',
|
476 |
+
'Ⴃ' => 'ⴃ',
|
477 |
+
'Ⴄ' => 'ⴄ',
|
478 |
+
'Ⴅ' => 'ⴅ',
|
479 |
+
'Ⴆ' => 'ⴆ',
|
480 |
+
'Ⴇ' => 'ⴇ',
|
481 |
+
'Ⴈ' => 'ⴈ',
|
482 |
+
'Ⴉ' => 'ⴉ',
|
483 |
+
'Ⴊ' => 'ⴊ',
|
484 |
+
'Ⴋ' => 'ⴋ',
|
485 |
+
'Ⴌ' => 'ⴌ',
|
486 |
+
'Ⴍ' => 'ⴍ',
|
487 |
+
'Ⴎ' => 'ⴎ',
|
488 |
+
'Ⴏ' => 'ⴏ',
|
489 |
+
'Ⴐ' => 'ⴐ',
|
490 |
+
'Ⴑ' => 'ⴑ',
|
491 |
+
'Ⴒ' => 'ⴒ',
|
492 |
+
'Ⴓ' => 'ⴓ',
|
493 |
+
'Ⴔ' => 'ⴔ',
|
494 |
+
'Ⴕ' => 'ⴕ',
|
495 |
+
'Ⴖ' => 'ⴖ',
|
496 |
+
'Ⴗ' => 'ⴗ',
|
497 |
+
'Ⴘ' => 'ⴘ',
|
498 |
+
'Ⴙ' => 'ⴙ',
|
499 |
+
'Ⴚ' => 'ⴚ',
|
500 |
+
'Ⴛ' => 'ⴛ',
|
501 |
+
'Ⴜ' => 'ⴜ',
|
502 |
+
'Ⴝ' => 'ⴝ',
|
503 |
+
'Ⴞ' => 'ⴞ',
|
504 |
+
'Ⴟ' => 'ⴟ',
|
505 |
+
'Ⴠ' => 'ⴠ',
|
506 |
+
'Ⴡ' => 'ⴡ',
|
507 |
+
'Ⴢ' => 'ⴢ',
|
508 |
+
'Ⴣ' => 'ⴣ',
|
509 |
+
'Ⴤ' => 'ⴤ',
|
510 |
+
'Ⴥ' => 'ⴥ',
|
511 |
+
'Ⴧ' => 'ⴧ',
|
512 |
+
'Ⴭ' => 'ⴭ',
|
513 |
+
'Ḁ' => 'ḁ',
|
514 |
+
'Ḃ' => 'ḃ',
|
515 |
+
'Ḅ' => 'ḅ',
|
516 |
+
'Ḇ' => 'ḇ',
|
517 |
+
'Ḉ' => 'ḉ',
|
518 |
+
'Ḋ' => 'ḋ',
|
519 |
+
'Ḍ' => 'ḍ',
|
520 |
+
'Ḏ' => 'ḏ',
|
521 |
+
'Ḑ' => 'ḑ',
|
522 |
+
'Ḓ' => 'ḓ',
|
523 |
+
'Ḕ' => 'ḕ',
|
524 |
+
'Ḗ' => 'ḗ',
|
525 |
+
'Ḙ' => 'ḙ',
|
526 |
+
'Ḛ' => 'ḛ',
|
527 |
+
'Ḝ' => 'ḝ',
|
528 |
+
'Ḟ' => 'ḟ',
|
529 |
+
'Ḡ' => 'ḡ',
|
530 |
+
'Ḣ' => 'ḣ',
|
531 |
+
'Ḥ' => 'ḥ',
|
532 |
+
'Ḧ' => 'ḧ',
|
533 |
+
'Ḩ' => 'ḩ',
|
534 |
+
'Ḫ' => 'ḫ',
|
535 |
+
'Ḭ' => 'ḭ',
|
536 |
+
'Ḯ' => 'ḯ',
|
537 |
+
'Ḱ' => 'ḱ',
|
538 |
+
'Ḳ' => 'ḳ',
|
539 |
+
'Ḵ' => 'ḵ',
|
540 |
+
'Ḷ' => 'ḷ',
|
541 |
+
'Ḹ' => 'ḹ',
|
542 |
+
'Ḻ' => 'ḻ',
|
543 |
+
'Ḽ' => 'ḽ',
|
544 |
+
'Ḿ' => 'ḿ',
|
545 |
+
'Ṁ' => 'ṁ',
|
546 |
+
'Ṃ' => 'ṃ',
|
547 |
+
'Ṅ' => 'ṅ',
|
548 |
+
'Ṇ' => 'ṇ',
|
549 |
+
'Ṉ' => 'ṉ',
|
550 |
+
'Ṋ' => 'ṋ',
|
551 |
+
'Ṍ' => 'ṍ',
|
552 |
+
'Ṏ' => 'ṏ',
|
553 |
+
'Ṑ' => 'ṑ',
|
554 |
+
'Ṓ' => 'ṓ',
|
555 |
+
'Ṕ' => 'ṕ',
|
556 |
+
'Ṗ' => 'ṗ',
|
557 |
+
'Ṙ' => 'ṙ',
|
558 |
+
'Ṛ' => 'ṛ',
|
559 |
+
'Ṝ' => 'ṝ',
|
560 |
+
'Ṟ' => 'ṟ',
|
561 |
+
'Ṡ' => 'ṡ',
|
562 |
+
'Ṣ' => 'ṣ',
|
563 |
+
'Ṥ' => 'ṥ',
|
564 |
+
'Ṧ' => 'ṧ',
|
565 |
+
'Ṩ' => 'ṩ',
|
566 |
+
'Ṫ' => 'ṫ',
|
567 |
+
'Ṭ' => 'ṭ',
|
568 |
+
'Ṯ' => 'ṯ',
|
569 |
+
'Ṱ' => 'ṱ',
|
570 |
+
'Ṳ' => 'ṳ',
|
571 |
+
'Ṵ' => 'ṵ',
|
572 |
+
'Ṷ' => 'ṷ',
|
573 |
+
'Ṹ' => 'ṹ',
|
574 |
+
'Ṻ' => 'ṻ',
|
575 |
+
'Ṽ' => 'ṽ',
|
576 |
+
'Ṿ' => 'ṿ',
|
577 |
+
'Ẁ' => 'ẁ',
|
578 |
+
'Ẃ' => 'ẃ',
|
579 |
+
'Ẅ' => 'ẅ',
|
580 |
+
'Ẇ' => 'ẇ',
|
581 |
+
'Ẉ' => 'ẉ',
|
582 |
+
'Ẋ' => 'ẋ',
|
583 |
+
'Ẍ' => 'ẍ',
|
584 |
+
'Ẏ' => 'ẏ',
|
585 |
+
'Ẑ' => 'ẑ',
|
586 |
+
'Ẓ' => 'ẓ',
|
587 |
+
'Ẕ' => 'ẕ',
|
588 |
+
'ẞ' => 'ß',
|
589 |
+
'Ạ' => 'ạ',
|
590 |
+
'Ả' => 'ả',
|
591 |
+
'Ấ' => 'ấ',
|
592 |
+
'Ầ' => 'ầ',
|
593 |
+
'Ẩ' => 'ẩ',
|
594 |
+
'Ẫ' => 'ẫ',
|
595 |
+
'Ậ' => 'ậ',
|
596 |
+
'Ắ' => 'ắ',
|
597 |
+
'Ằ' => 'ằ',
|
598 |
+
'Ẳ' => 'ẳ',
|
599 |
+
'Ẵ' => 'ẵ',
|
600 |
+
'Ặ' => 'ặ',
|
601 |
+
'Ẹ' => 'ẹ',
|
602 |
+
'Ẻ' => 'ẻ',
|
603 |
+
'Ẽ' => 'ẽ',
|
604 |
+
'Ế' => 'ế',
|
605 |
+
'Ề' => 'ề',
|
606 |
+
'Ể' => 'ể',
|
607 |
+
'Ễ' => 'ễ',
|
608 |
+
'Ệ' => 'ệ',
|
609 |
+
'Ỉ' => 'ỉ',
|
610 |
+
'Ị' => 'ị',
|
611 |
+
'Ọ' => 'ọ',
|
612 |
+
'Ỏ' => 'ỏ',
|
613 |
+
'Ố' => 'ố',
|
614 |
+
'Ồ' => 'ồ',
|
615 |
+
'Ổ' => 'ổ',
|
616 |
+
'Ỗ' => 'ỗ',
|
617 |
+
'Ộ' => 'ộ',
|
618 |
+
'Ớ' => 'ớ',
|
619 |
+
'Ờ' => 'ờ',
|
620 |
+
'Ở' => 'ở',
|
621 |
+
'Ỡ' => 'ỡ',
|
622 |
+
'Ợ' => 'ợ',
|
623 |
+
'Ụ' => 'ụ',
|
624 |
+
'Ủ' => 'ủ',
|
625 |
+
'Ứ' => 'ứ',
|
626 |
+
'Ừ' => 'ừ',
|
627 |
+
'Ử' => 'ử',
|
628 |
+
'Ữ' => 'ữ',
|
629 |
+
'Ự' => 'ự',
|
630 |
+
'Ỳ' => 'ỳ',
|
631 |
+
'Ỵ' => 'ỵ',
|
632 |
+
'Ỷ' => 'ỷ',
|
633 |
+
'Ỹ' => 'ỹ',
|
634 |
+
'Ỻ' => 'ỻ',
|
635 |
+
'Ỽ' => 'ỽ',
|
636 |
+
'Ỿ' => 'ỿ',
|
637 |
+
'Ἀ' => 'ἀ',
|
638 |
+
'Ἁ' => 'ἁ',
|
639 |
+
'Ἂ' => 'ἂ',
|
640 |
+
'Ἃ' => 'ἃ',
|
641 |
+
'Ἄ' => 'ἄ',
|
642 |
+
'Ἅ' => 'ἅ',
|
643 |
+
'Ἆ' => 'ἆ',
|
644 |
+
'Ἇ' => 'ἇ',
|
645 |
+
'Ἐ' => 'ἐ',
|
646 |
+
'Ἑ' => 'ἑ',
|
647 |
+
'Ἒ' => 'ἒ',
|
648 |
+
'Ἓ' => 'ἓ',
|
649 |
+
'Ἔ' => 'ἔ',
|
650 |
+
'Ἕ' => 'ἕ',
|
651 |
+
'Ἠ' => 'ἠ',
|
652 |
+
'Ἡ' => 'ἡ',
|
653 |
+
'Ἢ' => 'ἢ',
|
654 |
+
'Ἣ' => 'ἣ',
|
655 |
+
'Ἤ' => 'ἤ',
|
656 |
+
'Ἥ' => 'ἥ',
|
657 |
+
'Ἦ' => 'ἦ',
|
658 |
+
'Ἧ' => 'ἧ',
|
659 |
+
'Ἰ' => 'ἰ',
|
660 |
+
'Ἱ' => 'ἱ',
|
661 |
+
'Ἲ' => 'ἲ',
|
662 |
+
'Ἳ' => 'ἳ',
|
663 |
+
'Ἴ' => 'ἴ',
|
664 |
+
'Ἵ' => 'ἵ',
|
665 |
+
'Ἶ' => 'ἶ',
|
666 |
+
'Ἷ' => 'ἷ',
|
667 |
+
'Ὀ' => 'ὀ',
|
668 |
+
'Ὁ' => 'ὁ',
|
669 |
+
'Ὂ' => 'ὂ',
|
670 |
+
'Ὃ' => 'ὃ',
|
671 |
+
'Ὄ' => 'ὄ',
|
672 |
+
'Ὅ' => 'ὅ',
|
673 |
+
'Ὑ' => 'ὑ',
|
674 |
+
'Ὓ' => 'ὓ',
|
675 |
+
'Ὕ' => 'ὕ',
|
676 |
+
'Ὗ' => 'ὗ',
|
677 |
+
'Ὠ' => 'ὠ',
|
678 |
+
'Ὡ' => 'ὡ',
|
679 |
+
'Ὢ' => 'ὢ',
|
680 |
+
'Ὣ' => 'ὣ',
|
681 |
+
'Ὤ' => 'ὤ',
|
682 |
+
'Ὥ' => 'ὥ',
|
683 |
+
'Ὦ' => 'ὦ',
|
684 |
+
'Ὧ' => 'ὧ',
|
685 |
+
'ᾈ' => 'ᾀ',
|
686 |
+
'ᾉ' => 'ᾁ',
|
687 |
+
'ᾊ' => 'ᾂ',
|
688 |
+
'ᾋ' => 'ᾃ',
|
689 |
+
'ᾌ' => 'ᾄ',
|
690 |
+
'ᾍ' => 'ᾅ',
|
691 |
+
'ᾎ' => 'ᾆ',
|
692 |
+
'ᾏ' => 'ᾇ',
|
693 |
+
'ᾘ' => 'ᾐ',
|
694 |
+
'ᾙ' => 'ᾑ',
|
695 |
+
'ᾚ' => 'ᾒ',
|
696 |
+
'ᾛ' => 'ᾓ',
|
697 |
+
'ᾜ' => 'ᾔ',
|
698 |
+
'ᾝ' => 'ᾕ',
|
699 |
+
'ᾞ' => 'ᾖ',
|
700 |
+
'ᾟ' => 'ᾗ',
|
701 |
+
'ᾨ' => 'ᾠ',
|
702 |
+
'ᾩ' => 'ᾡ',
|
703 |
+
'ᾪ' => 'ᾢ',
|
704 |
+
'ᾫ' => 'ᾣ',
|
705 |
+
'ᾬ' => 'ᾤ',
|
706 |
+
'ᾭ' => 'ᾥ',
|
707 |
+
'ᾮ' => 'ᾦ',
|
708 |
+
'ᾯ' => 'ᾧ',
|
709 |
+
'Ᾰ' => 'ᾰ',
|
710 |
+
'Ᾱ' => 'ᾱ',
|
711 |
+
'Ὰ' => 'ὰ',
|
712 |
+
'Ά' => 'ά',
|
713 |
+
'ᾼ' => 'ᾳ',
|
714 |
+
'Ὲ' => 'ὲ',
|
715 |
+
'Έ' => 'έ',
|
716 |
+
'Ὴ' => 'ὴ',
|
717 |
+
'Ή' => 'ή',
|
718 |
+
'ῌ' => 'ῃ',
|
719 |
+
'Ῐ' => 'ῐ',
|
720 |
+
'Ῑ' => 'ῑ',
|
721 |
+
'Ὶ' => 'ὶ',
|
722 |
+
'Ί' => 'ί',
|
723 |
+
'Ῠ' => 'ῠ',
|
724 |
+
'Ῡ' => 'ῡ',
|
725 |
+
'Ὺ' => 'ὺ',
|
726 |
+
'Ύ' => 'ύ',
|
727 |
+
'Ῥ' => 'ῥ',
|
728 |
+
'Ὸ' => 'ὸ',
|
729 |
+
'Ό' => 'ό',
|
730 |
+
'Ὼ' => 'ὼ',
|
731 |
+
'Ώ' => 'ώ',
|
732 |
+
'ῼ' => 'ῳ',
|
733 |
+
'Ω' => 'ω',
|
734 |
+
'K' => 'k',
|
735 |
+
'Å' => 'å',
|
736 |
+
'Ⅎ' => 'ⅎ',
|
737 |
+
'Ⅰ' => 'ⅰ',
|
738 |
+
'Ⅱ' => 'ⅱ',
|
739 |
+
'Ⅲ' => 'ⅲ',
|
740 |
+
'Ⅳ' => 'ⅳ',
|
741 |
+
'Ⅴ' => 'ⅴ',
|
742 |
+
'Ⅵ' => 'ⅵ',
|
743 |
+
'Ⅶ' => 'ⅶ',
|
744 |
+
'Ⅷ' => 'ⅷ',
|
745 |
+
'Ⅸ' => 'ⅸ',
|
746 |
+
'Ⅹ' => 'ⅹ',
|
747 |
+
'Ⅺ' => 'ⅺ',
|
748 |
+
'Ⅻ' => 'ⅻ',
|
749 |
+
'Ⅼ' => 'ⅼ',
|
750 |
+
'Ⅽ' => 'ⅽ',
|
751 |
+
'Ⅾ' => 'ⅾ',
|
752 |
+
'Ⅿ' => 'ⅿ',
|
753 |
+
'Ↄ' => 'ↄ',
|
754 |
+
'Ⓐ' => 'ⓐ',
|
755 |
+
'Ⓑ' => 'ⓑ',
|
756 |
+
'Ⓒ' => 'ⓒ',
|
757 |
+
'Ⓓ' => 'ⓓ',
|
758 |
+
'Ⓔ' => 'ⓔ',
|
759 |
+
'Ⓕ' => 'ⓕ',
|
760 |
+
'Ⓖ' => 'ⓖ',
|
761 |
+
'Ⓗ' => 'ⓗ',
|
762 |
+
'Ⓘ' => 'ⓘ',
|
763 |
+
'Ⓙ' => 'ⓙ',
|
764 |
+
'Ⓚ' => 'ⓚ',
|
765 |
+
'Ⓛ' => 'ⓛ',
|
766 |
+
'Ⓜ' => 'ⓜ',
|
767 |
+
'Ⓝ' => 'ⓝ',
|
768 |
+
'Ⓞ' => 'ⓞ',
|
769 |
+
'Ⓟ' => 'ⓟ',
|
770 |
+
'Ⓠ' => 'ⓠ',
|
771 |
+
'Ⓡ' => 'ⓡ',
|
772 |
+
'Ⓢ' => 'ⓢ',
|
773 |
+
'Ⓣ' => 'ⓣ',
|
774 |
+
'Ⓤ' => 'ⓤ',
|
775 |
+
'Ⓥ' => 'ⓥ',
|
776 |
+
'Ⓦ' => 'ⓦ',
|
777 |
+
'Ⓧ' => 'ⓧ',
|
778 |
+
'Ⓨ' => 'ⓨ',
|
779 |
+
'Ⓩ' => 'ⓩ',
|
780 |
+
'Ⰰ' => 'ⰰ',
|
781 |
+
'Ⰱ' => 'ⰱ',
|
782 |
+
'Ⰲ' => 'ⰲ',
|
783 |
+
'Ⰳ' => 'ⰳ',
|
784 |
+
'Ⰴ' => 'ⰴ',
|
785 |
+
'Ⰵ' => 'ⰵ',
|
786 |
+
'Ⰶ' => 'ⰶ',
|
787 |
+
'Ⰷ' => 'ⰷ',
|
788 |
+
'Ⰸ' => 'ⰸ',
|
789 |
+
'Ⰹ' => 'ⰹ',
|
790 |
+
'Ⰺ' => 'ⰺ',
|
791 |
+
'Ⰻ' => 'ⰻ',
|
792 |
+
'Ⰼ' => 'ⰼ',
|
793 |
+
'Ⰽ' => 'ⰽ',
|
794 |
+
'Ⰾ' => 'ⰾ',
|
795 |
+
'Ⰿ' => 'ⰿ',
|
796 |
+
'Ⱀ' => 'ⱀ',
|
797 |
+
'Ⱁ' => 'ⱁ',
|
798 |
+
'Ⱂ' => 'ⱂ',
|
799 |
+
'Ⱃ' => 'ⱃ',
|
800 |
+
'Ⱄ' => 'ⱄ',
|
801 |
+
'Ⱅ' => 'ⱅ',
|
802 |
+
'Ⱆ' => 'ⱆ',
|
803 |
+
'Ⱇ' => 'ⱇ',
|
804 |
+
'Ⱈ' => 'ⱈ',
|
805 |
+
'Ⱉ' => 'ⱉ',
|
806 |
+
'Ⱊ' => 'ⱊ',
|
807 |
+
'Ⱋ' => 'ⱋ',
|
808 |
+
'Ⱌ' => 'ⱌ',
|
809 |
+
'Ⱍ' => 'ⱍ',
|
810 |
+
'Ⱎ' => 'ⱎ',
|
811 |
+
'Ⱏ' => 'ⱏ',
|
812 |
+
'Ⱐ' => 'ⱐ',
|
813 |
+
'Ⱑ' => 'ⱑ',
|
814 |
+
'Ⱒ' => 'ⱒ',
|
815 |
+
'Ⱓ' => 'ⱓ',
|
816 |
+
'Ⱔ' => 'ⱔ',
|
817 |
+
'Ⱕ' => 'ⱕ',
|
818 |
+
'Ⱖ' => 'ⱖ',
|
819 |
+
'Ⱗ' => 'ⱗ',
|
820 |
+
'Ⱘ' => 'ⱘ',
|
821 |
+
'Ⱙ' => 'ⱙ',
|
822 |
+
'Ⱚ' => 'ⱚ',
|
823 |
+
'Ⱛ' => 'ⱛ',
|
824 |
+
'Ⱜ' => 'ⱜ',
|
825 |
+
'Ⱝ' => 'ⱝ',
|
826 |
+
'Ⱞ' => 'ⱞ',
|
827 |
+
'Ⱡ' => 'ⱡ',
|
828 |
+
'Ɫ' => 'ɫ',
|
829 |
+
'Ᵽ' => 'ᵽ',
|
830 |
+
'Ɽ' => 'ɽ',
|
831 |
+
'Ⱨ' => 'ⱨ',
|
832 |
+
'Ⱪ' => 'ⱪ',
|
833 |
+
'Ⱬ' => 'ⱬ',
|
834 |
+
'Ɑ' => 'ɑ',
|
835 |
+
'Ɱ' => 'ɱ',
|
836 |
+
'Ɐ' => 'ɐ',
|
837 |
+
'Ɒ' => 'ɒ',
|
838 |
+
'Ⱳ' => 'ⱳ',
|
839 |
+
'Ⱶ' => 'ⱶ',
|
840 |
+
'Ȿ' => 'ȿ',
|
841 |
+
'Ɀ' => 'ɀ',
|
842 |
+
'Ⲁ' => 'ⲁ',
|
843 |
+
'Ⲃ' => 'ⲃ',
|
844 |
+
'Ⲅ' => 'ⲅ',
|
845 |
+
'Ⲇ' => 'ⲇ',
|
846 |
+
'Ⲉ' => 'ⲉ',
|
847 |
+
'Ⲋ' => 'ⲋ',
|
848 |
+
'Ⲍ' => 'ⲍ',
|
849 |
+
'Ⲏ' => 'ⲏ',
|
850 |
+
'Ⲑ' => 'ⲑ',
|
851 |
+
'Ⲓ' => 'ⲓ',
|
852 |
+
'Ⲕ' => 'ⲕ',
|
853 |
+
'Ⲗ' => 'ⲗ',
|
854 |
+
'Ⲙ' => 'ⲙ',
|
855 |
+
'Ⲛ' => 'ⲛ',
|
856 |
+
'Ⲝ' => 'ⲝ',
|
857 |
+
'Ⲟ' => 'ⲟ',
|
858 |
+
'Ⲡ' => 'ⲡ',
|
859 |
+
'Ⲣ' => 'ⲣ',
|
860 |
+
'Ⲥ' => 'ⲥ',
|
861 |
+
'Ⲧ' => 'ⲧ',
|
862 |
+
'Ⲩ' => 'ⲩ',
|
863 |
+
'Ⲫ' => 'ⲫ',
|
864 |
+
'Ⲭ' => 'ⲭ',
|
865 |
+
'Ⲯ' => 'ⲯ',
|
866 |
+
'Ⲱ' => 'ⲱ',
|
867 |
+
'Ⲳ' => 'ⲳ',
|
868 |
+
'Ⲵ' => 'ⲵ',
|
869 |
+
'Ⲷ' => 'ⲷ',
|
870 |
+
'Ⲹ' => 'ⲹ',
|
871 |
+
'Ⲻ' => 'ⲻ',
|
872 |
+
'Ⲽ' => 'ⲽ',
|
873 |
+
'Ⲿ' => 'ⲿ',
|
874 |
+
'Ⳁ' => 'ⳁ',
|
875 |
+
'Ⳃ' => 'ⳃ',
|
876 |
+
'Ⳅ' => 'ⳅ',
|
877 |
+
'Ⳇ' => 'ⳇ',
|
878 |
+
'Ⳉ' => 'ⳉ',
|
879 |
+
'Ⳋ' => 'ⳋ',
|
880 |
+
'Ⳍ' => 'ⳍ',
|
881 |
+
'Ⳏ' => 'ⳏ',
|
882 |
+
'Ⳑ' => 'ⳑ',
|
883 |
+
'Ⳓ' => 'ⳓ',
|
884 |
+
'Ⳕ' => 'ⳕ',
|
885 |
+
'Ⳗ' => 'ⳗ',
|
886 |
+
'Ⳙ' => 'ⳙ',
|
887 |
+
'Ⳛ' => 'ⳛ',
|
888 |
+
'Ⳝ' => 'ⳝ',
|
889 |
+
'Ⳟ' => 'ⳟ',
|
890 |
+
'Ⳡ' => 'ⳡ',
|
891 |
+
'Ⳣ' => 'ⳣ',
|
892 |
+
'Ⳬ' => 'ⳬ',
|
893 |
+
'Ⳮ' => 'ⳮ',
|
894 |
+
'Ⳳ' => 'ⳳ',
|
895 |
+
'Ꙁ' => 'ꙁ',
|
896 |
+
'Ꙃ' => 'ꙃ',
|
897 |
+
'Ꙅ' => 'ꙅ',
|
898 |
+
'Ꙇ' => 'ꙇ',
|
899 |
+
'Ꙉ' => 'ꙉ',
|
900 |
+
'Ꙋ' => 'ꙋ',
|
901 |
+
'Ꙍ' => 'ꙍ',
|
902 |
+
'Ꙏ' => 'ꙏ',
|
903 |
+
'Ꙑ' => 'ꙑ',
|
904 |
+
'Ꙓ' => 'ꙓ',
|
905 |
+
'Ꙕ' => 'ꙕ',
|
906 |
+
'Ꙗ' => 'ꙗ',
|
907 |
+
'Ꙙ' => 'ꙙ',
|
908 |
+
'Ꙛ' => 'ꙛ',
|
909 |
+
'Ꙝ' => 'ꙝ',
|
910 |
+
'Ꙟ' => 'ꙟ',
|
911 |
+
'Ꙡ' => 'ꙡ',
|
912 |
+
'Ꙣ' => 'ꙣ',
|
913 |
+
'Ꙥ' => 'ꙥ',
|
914 |
+
'Ꙧ' => 'ꙧ',
|
915 |
+
'Ꙩ' => 'ꙩ',
|
916 |
+
'Ꙫ' => 'ꙫ',
|
917 |
+
'Ꙭ' => 'ꙭ',
|
918 |
+
'Ꚁ' => 'ꚁ',
|
919 |
+
'Ꚃ' => 'ꚃ',
|
920 |
+
'Ꚅ' => 'ꚅ',
|
921 |
+
'Ꚇ' => 'ꚇ',
|
922 |
+
'Ꚉ' => 'ꚉ',
|
923 |
+
'Ꚋ' => 'ꚋ',
|
924 |
+
'Ꚍ' => 'ꚍ',
|
925 |
+
'Ꚏ' => 'ꚏ',
|
926 |
+
'Ꚑ' => 'ꚑ',
|
927 |
+
'Ꚓ' => 'ꚓ',
|
928 |
+
'Ꚕ' => 'ꚕ',
|
929 |
+
'Ꚗ' => 'ꚗ',
|
930 |
+
'Ꚙ' => 'ꚙ',
|
931 |
+
'Ꚛ' => 'ꚛ',
|
932 |
+
'Ꜣ' => 'ꜣ',
|
933 |
+
'Ꜥ' => 'ꜥ',
|
934 |
+
'Ꜧ' => 'ꜧ',
|
935 |
+
'Ꜩ' => 'ꜩ',
|
936 |
+
'Ꜫ' => 'ꜫ',
|
937 |
+
'Ꜭ' => 'ꜭ',
|
938 |
+
'Ꜯ' => 'ꜯ',
|
939 |
+
'Ꜳ' => 'ꜳ',
|
940 |
+
'Ꜵ' => 'ꜵ',
|
941 |
+
'Ꜷ' => 'ꜷ',
|
942 |
+
'Ꜹ' => 'ꜹ',
|
943 |
+
'Ꜻ' => 'ꜻ',
|
944 |
+
'Ꜽ' => 'ꜽ',
|
945 |
+
'Ꜿ' => 'ꜿ',
|
946 |
+
'Ꝁ' => 'ꝁ',
|
947 |
+
'Ꝃ' => 'ꝃ',
|
948 |
+
'Ꝅ' => 'ꝅ',
|
949 |
+
'Ꝇ' => 'ꝇ',
|
950 |
+
'Ꝉ' => 'ꝉ',
|
951 |
+
'Ꝋ' => 'ꝋ',
|
952 |
+
'Ꝍ' => 'ꝍ',
|
953 |
+
'Ꝏ' => 'ꝏ',
|
954 |
+
'Ꝑ' => 'ꝑ',
|
955 |
+
'Ꝓ' => 'ꝓ',
|
956 |
+
'Ꝕ' => 'ꝕ',
|
957 |
+
'Ꝗ' => 'ꝗ',
|
958 |
+
'Ꝙ' => 'ꝙ',
|
959 |
+
'Ꝛ' => 'ꝛ',
|
960 |
+
'Ꝝ' => 'ꝝ',
|
961 |
+
'Ꝟ' => 'ꝟ',
|
962 |
+
'Ꝡ' => 'ꝡ',
|
963 |
+
'Ꝣ' => 'ꝣ',
|
964 |
+
'Ꝥ' => 'ꝥ',
|
965 |
+
'Ꝧ' => 'ꝧ',
|
966 |
+
'Ꝩ' => 'ꝩ',
|
967 |
+
'Ꝫ' => 'ꝫ',
|
968 |
+
'Ꝭ' => 'ꝭ',
|
969 |
+
'Ꝯ' => 'ꝯ',
|
970 |
+
'Ꝺ' => 'ꝺ',
|
971 |
+
'Ꝼ' => 'ꝼ',
|
972 |
+
'Ᵹ' => 'ᵹ',
|
973 |
+
'Ꝿ' => 'ꝿ',
|
974 |
+
'Ꞁ' => 'ꞁ',
|
975 |
+
'Ꞃ' => 'ꞃ',
|
976 |
+
'Ꞅ' => 'ꞅ',
|
977 |
+
'Ꞇ' => 'ꞇ',
|
978 |
+
'Ꞌ' => 'ꞌ',
|
979 |
+
'Ɥ' => 'ɥ',
|
980 |
+
'Ꞑ' => 'ꞑ',
|
981 |
+
'Ꞓ' => 'ꞓ',
|
982 |
+
'Ꞗ' => 'ꞗ',
|
983 |
+
'Ꞙ' => 'ꞙ',
|
984 |
+
'Ꞛ' => 'ꞛ',
|
985 |
+
'Ꞝ' => 'ꞝ',
|
986 |
+
'Ꞟ' => 'ꞟ',
|
987 |
+
'Ꞡ' => 'ꞡ',
|
988 |
+
'Ꞣ' => 'ꞣ',
|
989 |
+
'Ꞥ' => 'ꞥ',
|
990 |
+
'Ꞧ' => 'ꞧ',
|
991 |
+
'Ꞩ' => 'ꞩ',
|
992 |
+
'Ɦ' => 'ɦ',
|
993 |
+
'Ɜ' => 'ɜ',
|
994 |
+
'Ɡ' => 'ɡ',
|
995 |
+
'Ɬ' => 'ɬ',
|
996 |
+
'Ʞ' => 'ʞ',
|
997 |
+
'Ʇ' => 'ʇ',
|
998 |
+
'A' => 'a',
|
999 |
+
'B' => 'b',
|
1000 |
+
'C' => 'c',
|
1001 |
+
'D' => 'd',
|
1002 |
+
'E' => 'e',
|
1003 |
+
'F' => 'f',
|
1004 |
+
'G' => 'g',
|
1005 |
+
'H' => 'h',
|
1006 |
+
'I' => 'i',
|
1007 |
+
'J' => 'j',
|
1008 |
+
'K' => 'k',
|
1009 |
+
'L' => 'l',
|
1010 |
+
'M' => 'm',
|
1011 |
+
'N' => 'n',
|
1012 |
+
'O' => 'o',
|
1013 |
+
'P' => 'p',
|
1014 |
+
'Q' => 'q',
|
1015 |
+
'R' => 'r',
|
1016 |
+
'S' => 's',
|
1017 |
+
'T' => 't',
|
1018 |
+
'U' => 'u',
|
1019 |
+
'V' => 'v',
|
1020 |
+
'W' => 'w',
|
1021 |
+
'X' => 'x',
|
1022 |
+
'Y' => 'y',
|
1023 |
+
'Z' => 'z',
|
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 |
+
'𑢧' => '𑣇',
|
1072 |
+
'𑢨' => '𑣈',
|
1073 |
+
'𑢩' => '𑣉',
|
1074 |
+
'𑢪' => '𑣊',
|
1075 |
+
'𑢫' => '𑣋',
|
1076 |
+
'𑢬' => '𑣌',
|
1077 |
+
'𑢭' => '𑣍',
|
1078 |
+
'𑢮' => '𑣎',
|
1079 |
+
'𑢯' => '𑣏',
|
1080 |
+
'𑢰' => '𑣐',
|
1081 |
+
'𑢱' => '𑣑',
|
1082 |
+
'𑢲' => '𑣒',
|
1083 |
+
'𑢳' => '𑣓',
|
1084 |
+
'𑢴' => '𑣔',
|
1085 |
+
'𑢵' => '𑣕',
|
1086 |
+
'𑢶' => '𑣖',
|
1087 |
+
'𑢷' => '𑣗',
|
1088 |
+
'𑢸' => '𑣘',
|
1089 |
+
'𑢹' => '𑣙',
|
1090 |
+
'𑢺' => '𑣚',
|
1091 |
+
'𑢻' => '𑣛',
|
1092 |
+
'𑢼' => '𑣜',
|
1093 |
+
'𑢽' => '𑣝',
|
1094 |
+
'𑢾' => '𑣞',
|
1095 |
+
'𑢿' => '𑣟',
|
1096 |
+
);
|
vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// from Case_Ignorable in https://unicode.org/Public/UNIDATA/DerivedCoreProperties.txt
|
4 |
+
|
5 |
+
return '/(?<![\x{0027}\x{002E}\x{003A}\x{005E}\x{0060}\x{00A8}\x{00AD}\x{00AF}\x{00B4}\x{00B7}\x{00B8}\x{02B0}-\x{02C1}\x{02C2}-\x{02C5}\x{02C6}-\x{02D1}\x{02D2}-\x{02DF}\x{02E0}-\x{02E4}\x{02E5}-\x{02EB}\x{02EC}\x{02ED}\x{02EE}\x{02EF}-\x{02FF}\x{0300}-\x{036F}\x{0374}\x{0375}\x{037A}\x{0384}-\x{0385}\x{0387}\x{0483}-\x{0487}\x{0488}-\x{0489}\x{0559}\x{0591}-\x{05BD}\x{05BF}\x{05C1}-\x{05C2}\x{05C4}-\x{05C5}\x{05C7}\x{05F4}\x{0600}-\x{0605}\x{0610}-\x{061A}\x{061C}\x{0640}\x{064B}-\x{065F}\x{0670}\x{06D6}-\x{06DC}\x{06DD}\x{06DF}-\x{06E4}\x{06E5}-\x{06E6}\x{06E7}-\x{06E8}\x{06EA}-\x{06ED}\x{070F}\x{0711}\x{0730}-\x{074A}\x{07A6}-\x{07B0}\x{07EB}-\x{07F3}\x{07F4}-\x{07F5}\x{07FA}\x{07FD}\x{0816}-\x{0819}\x{081A}\x{081B}-\x{0823}\x{0824}\x{0825}-\x{0827}\x{0828}\x{0829}-\x{082D}\x{0859}-\x{085B}\x{08D3}-\x{08E1}\x{08E2}\x{08E3}-\x{0902}\x{093A}\x{093C}\x{0941}-\x{0948}\x{094D}\x{0951}-\x{0957}\x{0962}-\x{0963}\x{0971}\x{0981}\x{09BC}\x{09C1}-\x{09C4}\x{09CD}\x{09E2}-\x{09E3}\x{09FE}\x{0A01}-\x{0A02}\x{0A3C}\x{0A41}-\x{0A42}\x{0A47}-\x{0A48}\x{0A4B}-\x{0A4D}\x{0A51}\x{0A70}-\x{0A71}\x{0A75}\x{0A81}-\x{0A82}\x{0ABC}\x{0AC1}-\x{0AC5}\x{0AC7}-\x{0AC8}\x{0ACD}\x{0AE2}-\x{0AE3}\x{0AFA}-\x{0AFF}\x{0B01}\x{0B3C}\x{0B3F}\x{0B41}-\x{0B44}\x{0B4D}\x{0B56}\x{0B62}-\x{0B63}\x{0B82}\x{0BC0}\x{0BCD}\x{0C00}\x{0C04}\x{0C3E}-\x{0C40}\x{0C46}-\x{0C48}\x{0C4A}-\x{0C4D}\x{0C55}-\x{0C56}\x{0C62}-\x{0C63}\x{0C81}\x{0CBC}\x{0CBF}\x{0CC6}\x{0CCC}-\x{0CCD}\x{0CE2}-\x{0CE3}\x{0D00}-\x{0D01}\x{0D3B}-\x{0D3C}\x{0D41}-\x{0D44}\x{0D4D}\x{0D62}-\x{0D63}\x{0DCA}\x{0DD2}-\x{0DD4}\x{0DD6}\x{0E31}\x{0E34}-\x{0E3A}\x{0E46}\x{0E47}-\x{0E4E}\x{0EB1}\x{0EB4}-\x{0EB9}\x{0EBB}-\x{0EBC}\x{0EC6}\x{0EC8}-\x{0ECD}\x{0F18}-\x{0F19}\x{0F35}\x{0F37}\x{0F39}\x{0F71}-\x{0F7E}\x{0F80}-\x{0F84}\x{0F86}-\x{0F87}\x{0F8D}-\x{0F97}\x{0F99}-\x{0FBC}\x{0FC6}\x{102D}-\x{1030}\x{1032}-\x{1037}\x{1039}-\x{103A}\x{103D}-\x{103E}\x{1058}-\x{1059}\x{105E}-\x{1060}\x{1071}-\x{1074}\x{1082}\x{1085}-\x{1086}\x{108D}\x{109D}\x{10FC}\x{135D}-\x{135F}\x{1712}-\x{1714}\x{1732}-\x{1734}\x{1752}-\x{1753}\x{1772}-\x{1773}\x{17B4}-\x{17B5}\x{17B7}-\x{17BD}\x{17C6}\x{17C9}-\x{17D3}\x{17D7}\x{17DD}\x{180B}-\x{180D}\x{180E}\x{1843}\x{1885}-\x{1886}\x{18A9}\x{1920}-\x{1922}\x{1927}-\x{1928}\x{1932}\x{1939}-\x{193B}\x{1A17}-\x{1A18}\x{1A1B}\x{1A56}\x{1A58}-\x{1A5E}\x{1A60}\x{1A62}\x{1A65}-\x{1A6C}\x{1A73}-\x{1A7C}\x{1A7F}\x{1AA7}\x{1AB0}-\x{1ABD}\x{1ABE}\x{1B00}-\x{1B03}\x{1B34}\x{1B36}-\x{1B3A}\x{1B3C}\x{1B42}\x{1B6B}-\x{1B73}\x{1B80}-\x{1B81}\x{1BA2}-\x{1BA5}\x{1BA8}-\x{1BA9}\x{1BAB}-\x{1BAD}\x{1BE6}\x{1BE8}-\x{1BE9}\x{1BED}\x{1BEF}-\x{1BF1}\x{1C2C}-\x{1C33}\x{1C36}-\x{1C37}\x{1C78}-\x{1C7D}\x{1CD0}-\x{1CD2}\x{1CD4}-\x{1CE0}\x{1CE2}-\x{1CE8}\x{1CED}\x{1CF4}\x{1CF8}-\x{1CF9}\x{1D2C}-\x{1D6A}\x{1D78}\x{1D9B}-\x{1DBF}\x{1DC0}-\x{1DF9}\x{1DFB}-\x{1DFF}\x{1FBD}\x{1FBF}-\x{1FC1}\x{1FCD}-\x{1FCF}\x{1FDD}-\x{1FDF}\x{1FED}-\x{1FEF}\x{1FFD}-\x{1FFE}\x{200B}-\x{200F}\x{2018}\x{2019}\x{2024}\x{2027}\x{202A}-\x{202E}\x{2060}-\x{2064}\x{2066}-\x{206F}\x{2071}\x{207F}\x{2090}-\x{209C}\x{20D0}-\x{20DC}\x{20DD}-\x{20E0}\x{20E1}\x{20E2}-\x{20E4}\x{20E5}-\x{20F0}\x{2C7C}-\x{2C7D}\x{2CEF}-\x{2CF1}\x{2D6F}\x{2D7F}\x{2DE0}-\x{2DFF}\x{2E2F}\x{3005}\x{302A}-\x{302D}\x{3031}-\x{3035}\x{303B}\x{3099}-\x{309A}\x{309B}-\x{309C}\x{309D}-\x{309E}\x{30FC}-\x{30FE}\x{A015}\x{A4F8}-\x{A4FD}\x{A60C}\x{A66F}\x{A670}-\x{A672}\x{A674}-\x{A67D}\x{A67F}\x{A69C}-\x{A69D}\x{A69E}-\x{A69F}\x{A6F0}-\x{A6F1}\x{A700}-\x{A716}\x{A717}-\x{A71F}\x{A720}-\x{A721}\x{A770}\x{A788}\x{A789}-\x{A78A}\x{A7F8}-\x{A7F9}\x{A802}\x{A806}\x{A80B}\x{A825}-\x{A826}\x{A8C4}-\x{A8C5}\x{A8E0}-\x{A8F1}\x{A8FF}\x{A926}-\x{A92D}\x{A947}-\x{A951}\x{A980}-\x{A982}\x{A9B3}\x{A9B6}-\x{A9B9}\x{A9BC}\x{A9CF}\x{A9E5}\x{A9E6}\x{AA29}-\x{AA2E}\x{AA31}-\x{AA32}\x{AA35}-\x{AA36}\x{AA43}\x{AA4C}\x{AA70}\x{AA7C}\x{AAB0}\x{AAB2}-\x{AAB4}\x{AAB7}-\x{AAB8}\x{AABE}-\x{AABF}\x{AAC1}\x{AADD}\x{AAEC}-\x{AAED}\x{AAF3}-\x{AAF4}\x{AAF6}\x{AB5B}\x{AB5C}-\x{AB5F}\x{ABE5}\x{ABE8}\x{ABED}\x{FB1E}\x{FBB2}-\x{FBC1}\x{FE00}-\x{FE0F}\x{FE13}\x{FE20}-\x{FE2F}\x{FE52}\x{FE55}\x{FEFF}\x{FF07}\x{FF0E}\x{FF1A}\x{FF3E}\x{FF40}\x{FF70}\x{FF9E}-\x{FF9F}\x{FFE3}\x{FFF9}-\x{FFFB}\x{101FD}\x{102E0}\x{10376}-\x{1037A}\x{10A01}-\x{10A03}\x{10A05}-\x{10A06}\x{10A0C}-\x{10A0F}\x{10A38}-\x{10A3A}\x{10A3F}\x{10AE5}-\x{10AE6}\x{10D24}-\x{10D27}\x{10F46}-\x{10F50}\x{11001}\x{11038}-\x{11046}\x{1107F}-\x{11081}\x{110B3}-\x{110B6}\x{110B9}-\x{110BA}\x{110BD}\x{110CD}\x{11100}-\x{11102}\x{11127}-\x{1112B}\x{1112D}-\x{11134}\x{11173}\x{11180}-\x{11181}\x{111B6}-\x{111BE}\x{111C9}-\x{111CC}\x{1122F}-\x{11231}\x{11234}\x{11236}-\x{11237}\x{1123E}\x{112DF}\x{112E3}-\x{112EA}\x{11300}-\x{11301}\x{1133B}-\x{1133C}\x{11340}\x{11366}-\x{1136C}\x{11370}-\x{11374}\x{11438}-\x{1143F}\x{11442}-\x{11444}\x{11446}\x{1145E}\x{114B3}-\x{114B8}\x{114BA}\x{114BF}-\x{114C0}\x{114C2}-\x{114C3}\x{115B2}-\x{115B5}\x{115BC}-\x{115BD}\x{115BF}-\x{115C0}\x{115DC}-\x{115DD}\x{11633}-\x{1163A}\x{1163D}\x{1163F}-\x{11640}\x{116AB}\x{116AD}\x{116B0}-\x{116B5}\x{116B7}\x{1171D}-\x{1171F}\x{11722}-\x{11725}\x{11727}-\x{1172B}\x{1182F}-\x{11837}\x{11839}-\x{1183A}\x{11A01}-\x{11A0A}\x{11A33}-\x{11A38}\x{11A3B}-\x{11A3E}\x{11A47}\x{11A51}-\x{11A56}\x{11A59}-\x{11A5B}\x{11A8A}-\x{11A96}\x{11A98}-\x{11A99}\x{11C30}-\x{11C36}\x{11C38}-\x{11C3D}\x{11C3F}\x{11C92}-\x{11CA7}\x{11CAA}-\x{11CB0}\x{11CB2}-\x{11CB3}\x{11CB5}-\x{11CB6}\x{11D31}-\x{11D36}\x{11D3A}\x{11D3C}-\x{11D3D}\x{11D3F}-\x{11D45}\x{11D47}\x{11D90}-\x{11D91}\x{11D95}\x{11D97}\x{11EF3}-\x{11EF4}\x{16AF0}-\x{16AF4}\x{16B30}-\x{16B36}\x{16B40}-\x{16B43}\x{16F8F}-\x{16F92}\x{16F93}-\x{16F9F}\x{16FE0}-\x{16FE1}\x{1BC9D}-\x{1BC9E}\x{1BCA0}-\x{1BCA3}\x{1D167}-\x{1D169}\x{1D173}-\x{1D17A}\x{1D17B}-\x{1D182}\x{1D185}-\x{1D18B}\x{1D1AA}-\x{1D1AD}\x{1D242}-\x{1D244}\x{1DA00}-\x{1DA36}\x{1DA3B}-\x{1DA6C}\x{1DA75}\x{1DA84}\x{1DA9B}-\x{1DA9F}\x{1DAA1}-\x{1DAAF}\x{1E000}-\x{1E006}\x{1E008}-\x{1E018}\x{1E01B}-\x{1E021}\x{1E023}-\x{1E024}\x{1E026}-\x{1E02A}\x{1E8D0}-\x{1E8D6}\x{1E944}-\x{1E94A}\x{1F3FB}-\x{1F3FF}\x{E0001}\x{E0020}-\x{E007F}\x{E0100}-\x{E01EF}])(\pL)(\pL*+)/u';
|
vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php
ADDED
@@ -0,0 +1,1104 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
return array(
|
4 |
+
'a' => 'A',
|
5 |
+
'b' => 'B',
|
6 |
+
'c' => 'C',
|
7 |
+
'd' => 'D',
|
8 |
+
'e' => 'E',
|
9 |
+
'f' => 'F',
|
10 |
+
'g' => 'G',
|
11 |
+
'h' => 'H',
|
12 |
+
'i' => 'I',
|
13 |
+
'j' => 'J',
|
14 |
+
'k' => 'K',
|
15 |
+
'l' => 'L',
|
16 |
+
'm' => 'M',
|
17 |
+
'n' => 'N',
|
18 |
+
'o' => 'O',
|
19 |
+
'p' => 'P',
|
20 |
+
'q' => 'Q',
|
21 |
+
'r' => 'R',
|
22 |
+
's' => 'S',
|
23 |
+
't' => 'T',
|
24 |
+
'u' => 'U',
|
25 |
+
'v' => 'V',
|
26 |
+
'w' => 'W',
|
27 |
+
'x' => 'X',
|
28 |
+
'y' => 'Y',
|
29 |
+
'z' => 'Z',
|
30 |
+
'µ' => 'Μ',
|
31 |
+
'à' => 'À',
|
32 |
+
'á' => 'Á',
|
33 |
+
'â' => 'Â',
|
34 |
+
'ã' => 'Ã',
|
35 |
+
'ä' => 'Ä',
|
36 |
+
'å' => 'Å',
|
37 |
+
'æ' => 'Æ',
|
38 |
+
'ç' => 'Ç',
|
39 |
+
'è' => 'È',
|
40 |
+
'é' => 'É',
|
41 |
+
'ê' => 'Ê',
|
42 |
+
'ë' => 'Ë',
|
43 |
+
'ì' => 'Ì',
|
44 |
+
'í' => 'Í',
|
45 |
+
'î' => 'Î',
|
46 |
+
'ï' => 'Ï',
|
47 |
+
'ð' => 'Ð',
|
48 |
+
'ñ' => 'Ñ',
|
49 |
+
'ò' => 'Ò',
|
50 |
+
'ó' => 'Ó',
|
51 |
+
'ô' => 'Ô',
|
52 |
+
'õ' => 'Õ',
|
53 |
+
'ö' => 'Ö',
|
54 |
+
'ø' => 'Ø',
|
55 |
+
'ù' => 'Ù',
|
56 |
+
'ú' => 'Ú',
|
57 |
+
'û' => 'Û',
|
58 |
+
'ü' => 'Ü',
|
59 |
+
'ý' => 'Ý',
|
60 |
+
'þ' => 'Þ',
|
61 |
+
'ÿ' => 'Ÿ',
|
62 |
+
'ā' => 'Ā',
|
63 |
+
'ă' => 'Ă',
|
64 |
+
'ą' => 'Ą',
|
65 |
+
'ć' => 'Ć',
|
66 |
+
'ĉ' => 'Ĉ',
|
67 |
+
'ċ' => 'Ċ',
|
68 |
+
'č' => 'Č',
|
69 |
+
'ď' => 'Ď',
|
70 |
+
'đ' => 'Đ',
|
71 |
+
'ē' => 'Ē',
|
72 |
+
'ĕ' => 'Ĕ',
|
73 |
+
'ė' => 'Ė',
|
74 |
+
'ę' => 'Ę',
|
75 |
+
'ě' => 'Ě',
|
76 |
+
'ĝ' => 'Ĝ',
|
77 |
+
'ğ' => 'Ğ',
|
78 |
+
'ġ' => 'Ġ',
|
79 |
+
'ģ' => 'Ģ',
|
80 |
+
'ĥ' => 'Ĥ',
|
81 |
+
'ħ' => 'Ħ',
|
82 |
+
'ĩ' => 'Ĩ',
|
83 |
+
'ī' => 'Ī',
|
84 |
+
'ĭ' => 'Ĭ',
|
85 |
+
'į' => 'Į',
|
86 |
+
'ı' => 'I',
|
87 |
+
'ij' => 'IJ',
|
88 |
+
'ĵ' => 'Ĵ',
|
89 |
+
'ķ' => 'Ķ',
|
90 |
+
'ĺ' => 'Ĺ',
|
91 |
+
'ļ' => 'Ļ',
|
92 |
+
'ľ' => 'Ľ',
|
93 |
+
'ŀ' => 'Ŀ',
|
94 |
+
'ł' => 'Ł',
|
95 |
+
'ń' => 'Ń',
|
96 |
+
'ņ' => 'Ņ',
|
97 |
+
'ň' => 'Ň',
|
98 |
+
'ŋ' => 'Ŋ',
|
99 |
+
'ō' => 'Ō',
|
100 |
+
'ŏ' => 'Ŏ',
|
101 |
+
'ő' => 'Ő',
|
102 |
+
'œ' => 'Œ',
|
103 |
+
'ŕ' => 'Ŕ',
|
104 |
+
'ŗ' => 'Ŗ',
|
105 |
+
'ř' => 'Ř',
|
106 |
+
'ś' => 'Ś',
|
107 |
+
'ŝ' => 'Ŝ',
|
108 |
+
'ş' => 'Ş',
|
109 |
+
'š' => 'Š',
|
110 |
+
'ţ' => 'Ţ',
|
111 |
+
'ť' => 'Ť',
|
112 |
+
'ŧ' => 'Ŧ',
|
113 |
+
'ũ' => 'Ũ',
|
114 |
+
'ū' => 'Ū',
|
115 |
+
'ŭ' => 'Ŭ',
|
116 |
+
'ů' => 'Ů',
|
117 |
+
'ű' => 'Ű',
|
118 |
+
'ų' => 'Ų',
|
119 |
+
'ŵ' => 'Ŵ',
|
120 |
+
'ŷ' => 'Ŷ',
|
121 |
+
'ź' => 'Ź',
|
122 |
+
'ż' => 'Ż',
|
123 |
+
'ž' => 'Ž',
|
124 |
+
'ſ' => 'S',
|
125 |
+
'ƀ' => 'Ƀ',
|
126 |
+
'ƃ' => 'Ƃ',
|
127 |
+
'ƅ' => 'Ƅ',
|
128 |
+
'ƈ' => 'Ƈ',
|
129 |
+
'ƌ' => 'Ƌ',
|
130 |
+
'ƒ' => 'Ƒ',
|
131 |
+
'ƕ' => 'Ƕ',
|
132 |
+
'ƙ' => 'Ƙ',
|
133 |
+
'ƚ' => 'Ƚ',
|
134 |
+
'ƞ' => 'Ƞ',
|
135 |
+
'ơ' => 'Ơ',
|
136 |
+
'ƣ' => 'Ƣ',
|
137 |
+
'ƥ' => 'Ƥ',
|
138 |
+
'ƨ' => 'Ƨ',
|
139 |
+
'ƭ' => 'Ƭ',
|
140 |
+
'ư' => 'Ư',
|
141 |
+
'ƴ' => 'Ƴ',
|
142 |
+
'ƶ' => 'Ƶ',
|
143 |
+
'ƹ' => 'Ƹ',
|
144 |
+
'ƽ' => 'Ƽ',
|
145 |
+
'ƿ' => 'Ƿ',
|
146 |
+
'Dž' => 'DŽ',
|
147 |
+
'dž' => 'DŽ',
|
148 |
+
'Lj' => 'LJ',
|
149 |
+
'lj' => 'LJ',
|
150 |
+
'Nj' => 'NJ',
|
151 |
+
'nj' => 'NJ',
|
152 |
+
'ǎ' => 'Ǎ',
|
153 |
+
'ǐ' => 'Ǐ',
|
154 |
+
'ǒ' => 'Ǒ',
|
155 |
+
'ǔ' => 'Ǔ',
|
156 |
+
'ǖ' => 'Ǖ',
|
157 |
+
'ǘ' => 'Ǘ',
|
158 |
+
'ǚ' => 'Ǚ',
|
159 |
+
'ǜ' => 'Ǜ',
|
160 |
+
'ǝ' => 'Ǝ',
|
161 |
+
'ǟ' => 'Ǟ',
|
162 |
+
'ǡ' => 'Ǡ',
|
163 |
+
'ǣ' => 'Ǣ',
|
164 |
+
'ǥ' => 'Ǥ',
|
165 |
+
'ǧ' => 'Ǧ',
|
166 |
+
'ǩ' => 'Ǩ',
|
167 |
+
'ǫ' => 'Ǫ',
|
168 |
+
'ǭ' => 'Ǭ',
|
169 |
+
'ǯ' => 'Ǯ',
|
170 |
+
'Dz' => 'DZ',
|
171 |
+
'dz' => 'DZ',
|
172 |
+
'ǵ' => 'Ǵ',
|
173 |
+
'ǹ' => 'Ǹ',
|
174 |
+
'ǻ' => 'Ǻ',
|
175 |
+
'ǽ' => 'Ǽ',
|
176 |
+
'ǿ' => 'Ǿ',
|
177 |
+
'ȁ' => 'Ȁ',
|
178 |
+
'ȃ' => 'Ȃ',
|
179 |
+
'ȅ' => 'Ȅ',
|
180 |
+
'ȇ' => 'Ȇ',
|
181 |
+
'ȉ' => 'Ȉ',
|
182 |
+
'ȋ' => 'Ȋ',
|
183 |
+
'ȍ' => 'Ȍ',
|
184 |
+
'ȏ' => 'Ȏ',
|
185 |
+
'ȑ' => 'Ȑ',
|
186 |
+
'ȓ' => 'Ȓ',
|
187 |
+
'ȕ' => 'Ȕ',
|
188 |
+
'ȗ' => 'Ȗ',
|
189 |
+
'ș' => 'Ș',
|
190 |
+
'ț' => 'Ț',
|
191 |
+
'ȝ' => 'Ȝ',
|
192 |
+
'ȟ' => 'Ȟ',
|
193 |
+
'ȣ' => 'Ȣ',
|
194 |
+
'ȥ' => 'Ȥ',
|
195 |
+
'ȧ' => 'Ȧ',
|
196 |
+
'ȩ' => 'Ȩ',
|
197 |
+
'ȫ' => 'Ȫ',
|
198 |
+
'ȭ' => 'Ȭ',
|
199 |
+
'ȯ' => 'Ȯ',
|
200 |
+
'ȱ' => 'Ȱ',
|
201 |
+
'ȳ' => 'Ȳ',
|
202 |
+
'ȼ' => 'Ȼ',
|
203 |
+
'ȿ' => 'Ȿ',
|
204 |
+
'ɀ' => 'Ɀ',
|
205 |
+
'ɂ' => 'Ɂ',
|
206 |
+
'ɇ' => 'Ɇ',
|
207 |
+
'ɉ' => 'Ɉ',
|
208 |
+
'ɋ' => 'Ɋ',
|
209 |
+
'ɍ' => 'Ɍ',
|
210 |
+
'ɏ' => 'Ɏ',
|
211 |
+
'ɐ' => 'Ɐ',
|
212 |
+
'ɑ' => 'Ɑ',
|
213 |
+
'ɒ' => 'Ɒ',
|
214 |
+
'ɓ' => 'Ɓ',
|
215 |
+
'ɔ' => 'Ɔ',
|
216 |
+
'ɖ' => 'Ɖ',
|
217 |
+
'ɗ' => 'Ɗ',
|
218 |
+
'ə' => 'Ə',
|
219 |
+
'ɛ' => 'Ɛ',
|
220 |
+
'ɜ' => 'Ɜ',
|
221 |
+
'ɠ' => 'Ɠ',
|
222 |
+
'ɡ' => 'Ɡ',
|
223 |
+
'ɣ' => 'Ɣ',
|
224 |
+
'ɥ' => 'Ɥ',
|
225 |
+
'ɦ' => 'Ɦ',
|
226 |
+
'ɨ' => 'Ɨ',
|
227 |
+
'ɩ' => 'Ɩ',
|
228 |
+
'ɫ' => 'Ɫ',
|
229 |
+
'ɬ' => 'Ɬ',
|
230 |
+
'ɯ' => 'Ɯ',
|
231 |
+
'ɱ' => 'Ɱ',
|
232 |
+
'ɲ' => 'Ɲ',
|
233 |
+
'ɵ' => 'Ɵ',
|
234 |
+
'ɽ' => 'Ɽ',
|
235 |
+
'ʀ' => 'Ʀ',
|
236 |
+
'ʃ' => 'Ʃ',
|
237 |
+
'ʇ' => 'Ʇ',
|
238 |
+
'ʈ' => 'Ʈ',
|
239 |
+
'ʉ' => 'Ʉ',
|
240 |
+
'ʊ' => 'Ʊ',
|
241 |
+
'ʋ' => 'Ʋ',
|
242 |
+
'ʌ' => 'Ʌ',
|
243 |
+
'ʒ' => 'Ʒ',
|
244 |
+
'ʞ' => 'Ʞ',
|
245 |
+
'ͅ' => 'Ι',
|
246 |
+
'ͱ' => 'Ͱ',
|
247 |
+
'ͳ' => 'Ͳ',
|
248 |
+
'ͷ' => 'Ͷ',
|
249 |
+
'ͻ' => 'Ͻ',
|
250 |
+
'ͼ' => 'Ͼ',
|
251 |
+
'ͽ' => 'Ͽ',
|
252 |
+
'ά' => 'Ά',
|
253 |
+
'έ' => 'Έ',
|
254 |
+
'ή' => 'Ή',
|
255 |
+
'ί' => 'Ί',
|
256 |
+
'α' => 'Α',
|
257 |
+
'β' => 'Β',
|
258 |
+
'γ' => 'Γ',
|
259 |
+
'δ' => 'Δ',
|
260 |
+
'ε' => 'Ε',
|
261 |
+
'ζ' => 'Ζ',
|
262 |
+
'η' => 'Η',
|
263 |
+
'θ' => 'Θ',
|
264 |
+
'ι' => 'Ι',
|
265 |
+
'κ' => 'Κ',
|
266 |
+
'λ' => 'Λ',
|
267 |
+
'μ' => 'Μ',
|
268 |
+
'ν' => 'Ν',
|
269 |
+
'ξ' => 'Ξ',
|
270 |
+
'ο' => 'Ο',
|
271 |
+
'π' => 'Π',
|
272 |
+
'ρ' => 'Ρ',
|
273 |
+
'ς' => 'Σ',
|
274 |
+
'σ' => 'Σ',
|
275 |
+
'τ' => 'Τ',
|
276 |
+
'υ' => 'Υ',
|
277 |
+
'φ' => 'Φ',
|
278 |
+
'χ' => 'Χ',
|
279 |
+
'ψ' => 'Ψ',
|
280 |
+
'ω' => 'Ω',
|
281 |
+
'ϊ' => 'Ϊ',
|
282 |
+
'ϋ' => 'Ϋ',
|
283 |
+
'ό' => 'Ό',
|
284 |
+
'ύ' => 'Ύ',
|
285 |
+
'ώ' => 'Ώ',
|
286 |
+
'ϐ' => 'Β',
|
287 |
+
'ϑ' => 'Θ',
|
288 |
+
'ϕ' => 'Φ',
|
289 |
+
'ϖ' => 'Π',
|
290 |
+
'ϗ' => 'Ϗ',
|
291 |
+
'ϙ' => 'Ϙ',
|
292 |
+
'ϛ' => 'Ϛ',
|
293 |
+
'ϝ' => 'Ϝ',
|
294 |
+
'ϟ' => 'Ϟ',
|
295 |
+
'ϡ' => 'Ϡ',
|
296 |
+
'ϣ' => 'Ϣ',
|
297 |
+
'ϥ' => 'Ϥ',
|
298 |
+
'ϧ' => 'Ϧ',
|
299 |
+
'ϩ' => 'Ϩ',
|
300 |
+
'ϫ' => 'Ϫ',
|
301 |
+
'ϭ' => 'Ϭ',
|
302 |
+
'ϯ' => 'Ϯ',
|
303 |
+
'ϰ' => 'Κ',
|
304 |
+
'ϱ' => 'Ρ',
|
305 |
+
'ϲ' => 'Ϲ',
|
306 |
+
'ϳ' => 'Ϳ',
|
307 |
+
'ϵ' => 'Ε',
|
308 |
+
'ϸ' => 'Ϸ',
|
309 |
+
'ϻ' => 'Ϻ',
|
310 |
+
'а' => 'А',
|
311 |
+
'б' => 'Б',
|
312 |
+
'в' => 'В',
|
313 |
+
'г' => 'Г',
|
314 |
+
'д' => 'Д',
|
315 |
+
'е' => 'Е',
|
316 |
+
'ж' => 'Ж',
|
317 |
+
'з' => 'З',
|
318 |
+
'и' => 'И',
|
319 |
+
'й' => 'Й',
|
320 |
+
'к' => 'К',
|
321 |
+
'л' => 'Л',
|
322 |
+
'м' => 'М',
|
323 |
+
'н' => 'Н',
|
324 |
+
'о' => 'О',
|
325 |
+
'п' => 'П',
|
326 |
+
'р' => 'Р',
|
327 |
+
'с' => 'С',
|
328 |
+
'т' => 'Т',
|
329 |
+
'у' => 'У',
|
330 |
+
'ф' => 'Ф',
|
331 |
+
'х' => 'Х',
|
332 |
+
'ц' => 'Ц',
|
333 |
+
'ч' => 'Ч',
|
334 |
+
'ш' => 'Ш',
|
335 |
+
'щ' => 'Щ',
|
336 |
+
'ъ' => 'Ъ',
|
337 |
+
'ы' => 'Ы',
|
338 |
+
'ь' => 'Ь',
|
339 |
+
'э' => 'Э',
|
340 |
+
'ю' => 'Ю',
|
341 |
+
'я' => 'Я',
|
342 |
+
'ѐ' => 'Ѐ',
|
343 |
+
'ё' => 'Ё',
|
344 |
+
'ђ' => 'Ђ',
|
345 |
+
'ѓ' => 'Ѓ',
|
346 |
+
'є' => 'Є',
|
347 |
+
'ѕ' => 'Ѕ',
|
348 |
+
'і' => 'І',
|
349 |
+
'ї' => 'Ї',
|
350 |
+
'ј' => 'Ј',
|
351 |
+
'љ' => 'Љ',
|
352 |
+
'њ' => 'Њ',
|
353 |
+
'ћ' => 'Ћ',
|
354 |
+
'ќ' => 'Ќ',
|
355 |
+
'ѝ' => 'Ѝ',
|
356 |
+
'ў' => 'Ў',
|
357 |
+
'џ' => 'Џ',
|
358 |
+
'ѡ' => 'Ѡ',
|
359 |
+
'ѣ' => 'Ѣ',
|
360 |
+
'ѥ' => 'Ѥ',
|
361 |
+
'ѧ' => 'Ѧ',
|
362 |
+
'ѩ' => 'Ѩ',
|
363 |
+
'ѫ' => 'Ѫ',
|
364 |
+
'ѭ' => 'Ѭ',
|
365 |
+
'ѯ' => 'Ѯ',
|
366 |
+
'ѱ' => 'Ѱ',
|
367 |
+
'ѳ' => 'Ѳ',
|
368 |
+
'ѵ' => 'Ѵ',
|
369 |
+
'ѷ' => 'Ѷ',
|
370 |
+
'ѹ' => 'Ѹ',
|
371 |
+
'ѻ' => 'Ѻ',
|
372 |
+
'ѽ' => 'Ѽ',
|
373 |
+
'ѿ' => 'Ѿ',
|
374 |
+
'ҁ' => 'Ҁ',
|
375 |
+
'ҋ' => 'Ҋ',
|
376 |
+
'ҍ' => 'Ҍ',
|
377 |
+
'ҏ' => 'Ҏ',
|
378 |
+
'ґ' => 'Ґ',
|
379 |
+
'ғ' => 'Ғ',
|
380 |
+
'ҕ' => 'Ҕ',
|
381 |
+
'җ' => 'Җ',
|
382 |
+
'ҙ' => 'Ҙ',
|
383 |
+
'қ' => 'Қ',
|
384 |
+
'ҝ' => 'Ҝ',
|
385 |
+
'ҟ' => 'Ҟ',
|
386 |
+
'ҡ' => 'Ҡ',
|
387 |
+
'ң' => 'Ң',
|
388 |
+
'ҥ' => 'Ҥ',
|
389 |
+
'ҧ' => 'Ҧ',
|
390 |
+
'ҩ' => 'Ҩ',
|
391 |
+
'ҫ' => 'Ҫ',
|
392 |
+
'ҭ' => 'Ҭ',
|
393 |
+
'ү' => 'Ү',
|
394 |
+
'ұ' => 'Ұ',
|
395 |
+
'ҳ' => 'Ҳ',
|
396 |
+
'ҵ' => 'Ҵ',
|
397 |
+
'ҷ' => 'Ҷ',
|
398 |
+
'ҹ' => 'Ҹ',
|
399 |
+
'һ' => 'Һ',
|
400 |
+
'ҽ' => 'Ҽ',
|
401 |
+
'ҿ' => 'Ҿ',
|
402 |
+
'ӂ' => 'Ӂ',
|
403 |
+
'ӄ' => 'Ӄ',
|
404 |
+
'ӆ' => 'Ӆ',
|
405 |
+
'ӈ' => 'Ӈ',
|
406 |
+
'ӊ' => 'Ӊ',
|
407 |
+
'ӌ' => 'Ӌ',
|
408 |
+
'ӎ' => 'Ӎ',
|
409 |
+
'ӏ' => 'Ӏ',
|
410 |
+
'ӑ' => 'Ӑ',
|
411 |
+
'ӓ' => 'Ӓ',
|
412 |
+
'ӕ' => 'Ӕ',
|
413 |
+
'ӗ' => 'Ӗ',
|
414 |
+
'ә' => 'Ә',
|
415 |
+
'ӛ' => 'Ӛ',
|
416 |
+
'ӝ' => 'Ӝ',
|
417 |
+
'ӟ' => 'Ӟ',
|
418 |
+
'ӡ' => 'Ӡ',
|
419 |
+
'ӣ' => 'Ӣ',
|
420 |
+
'ӥ' => 'Ӥ',
|
421 |
+
'ӧ' => 'Ӧ',
|
422 |
+
'ө' => 'Ө',
|
423 |
+
'ӫ' => 'Ӫ',
|
424 |
+
'ӭ' => 'Ӭ',
|
425 |
+
'ӯ' => 'Ӯ',
|
426 |
+
'ӱ' => 'Ӱ',
|
427 |
+
'ӳ' => 'Ӳ',
|
428 |
+
'ӵ' => 'Ӵ',
|
429 |
+
'ӷ' => 'Ӷ',
|
430 |
+
'ӹ' => 'Ӹ',
|
431 |
+
'ӻ' => 'Ӻ',
|
432 |
+
'ӽ' => 'Ӽ',
|
433 |
+
'ӿ' => 'Ӿ',
|
434 |
+
'ԁ' => 'Ԁ',
|
435 |
+
'ԃ' => 'Ԃ',
|
436 |
+
'ԅ' => 'Ԅ',
|
437 |
+
'ԇ' => 'Ԇ',
|
438 |
+
'ԉ' => 'Ԉ',
|
439 |
+
'ԋ' => 'Ԋ',
|
440 |
+
'ԍ' => 'Ԍ',
|
441 |
+
'ԏ' => 'Ԏ',
|
442 |
+
'ԑ' => 'Ԑ',
|
443 |
+
'ԓ' => 'Ԓ',
|
444 |
+
'ԕ' => 'Ԕ',
|
445 |
+
'ԗ' => 'Ԗ',
|
446 |
+
'ԙ' => 'Ԙ',
|
447 |
+
'ԛ' => 'Ԛ',
|
448 |
+
'ԝ' => 'Ԝ',
|
449 |
+
'ԟ' => 'Ԟ',
|
450 |
+
'ԡ' => 'Ԡ',
|
451 |
+
'ԣ' => 'Ԣ',
|
452 |
+
'ԥ' => 'Ԥ',
|
453 |
+
'ԧ' => 'Ԧ',
|
454 |
+
'ԩ' => 'Ԩ',
|
455 |
+
'ԫ' => 'Ԫ',
|
456 |
+
'ԭ' => 'Ԭ',
|
457 |
+
'ԯ' => 'Ԯ',
|
458 |
+
'ա' => 'Ա',
|
459 |
+
'բ' => 'Բ',
|
460 |
+
'գ' => 'Գ',
|
461 |
+
'դ' => 'Դ',
|
462 |
+
'ե' => 'Ե',
|
463 |
+
'զ' => 'Զ',
|
464 |
+
'է' => 'Է',
|
465 |
+
'ը' => 'Ը',
|
466 |
+
'թ' => 'Թ',
|
467 |
+
'ժ' => 'Ժ',
|
468 |
+
'ի' => 'Ի',
|
469 |
+
'լ' => 'Լ',
|
470 |
+
'խ' => 'Խ',
|
471 |
+
'ծ' => 'Ծ',
|
472 |
+
'կ' => 'Կ',
|
473 |
+
'հ' => 'Հ',
|
474 |
+
'ձ' => 'Ձ',
|
475 |
+
'ղ' => 'Ղ',
|
476 |
+
'ճ' => 'Ճ',
|
477 |
+
'մ' => 'Մ',
|
478 |
+
'յ' => 'Յ',
|
479 |
+
'ն' => 'Ն',
|
480 |
+
'շ' => 'Շ',
|
481 |
+
'ո' => 'Ո',
|
482 |
+
'չ' => 'Չ',
|
483 |
+
'պ' => 'Պ',
|
484 |
+
'ջ' => 'Ջ',
|
485 |
+
'ռ' => 'Ռ',
|
486 |
+
'ս' => 'Ս',
|
487 |
+
'վ' => 'Վ',
|
488 |
+
'տ' => 'Տ',
|
489 |
+
'ր' => 'Ր',
|
490 |
+
'ց' => 'Ց',
|
491 |
+
'ւ' => 'Ւ',
|
492 |
+
'փ' => 'Փ',
|
493 |
+
'ք' => 'Ք',
|
494 |
+
'օ' => 'Օ',
|
495 |
+
'ֆ' => 'Ֆ',
|
496 |
+
'ᵹ' => 'Ᵹ',
|
497 |
+
'ᵽ' => 'Ᵽ',
|
498 |
+
'ḁ' => 'Ḁ',
|
499 |
+
'ḃ' => 'Ḃ',
|
500 |
+
'ḅ' => 'Ḅ',
|
501 |
+
'ḇ' => 'Ḇ',
|
502 |
+
'ḉ' => 'Ḉ',
|
503 |
+
'ḋ' => 'Ḋ',
|
504 |
+
'ḍ' => 'Ḍ',
|
505 |
+
'ḏ' => 'Ḏ',
|
506 |
+
'ḑ' => 'Ḑ',
|
507 |
+
'ḓ' => 'Ḓ',
|
508 |
+
'ḕ' => 'Ḕ',
|
509 |
+
'ḗ' => 'Ḗ',
|
510 |
+
'ḙ' => 'Ḙ',
|
511 |
+
'ḛ' => 'Ḛ',
|
512 |
+
'ḝ' => 'Ḝ',
|
513 |
+
'ḟ' => 'Ḟ',
|
514 |
+
'ḡ' => 'Ḡ',
|
515 |
+
'ḣ' => 'Ḣ',
|
516 |
+
'ḥ' => 'Ḥ',
|
517 |
+
'ḧ' => 'Ḧ',
|
518 |
+
'ḩ' => 'Ḩ',
|
519 |
+
'ḫ' => 'Ḫ',
|
520 |
+
'ḭ' => 'Ḭ',
|
521 |
+
'ḯ' => 'Ḯ',
|
522 |
+
'ḱ' => 'Ḱ',
|
523 |
+
'ḳ' => 'Ḳ',
|
524 |
+
'ḵ' => 'Ḵ',
|
525 |
+
'ḷ' => 'Ḷ',
|
526 |
+
'ḹ' => 'Ḹ',
|
527 |
+
'ḻ' => 'Ḻ',
|
528 |
+
'ḽ' => 'Ḽ',
|
529 |
+
'ḿ' => 'Ḿ',
|
530 |
+
'ṁ' => 'Ṁ',
|
531 |
+
'ṃ' => 'Ṃ',
|
532 |
+
'ṅ' => 'Ṅ',
|
533 |
+
'ṇ' => 'Ṇ',
|
534 |
+
'ṉ' => 'Ṉ',
|
535 |
+
'ṋ' => 'Ṋ',
|
536 |
+
'ṍ' => 'Ṍ',
|
537 |
+
'ṏ' => 'Ṏ',
|
538 |
+
'ṑ' => 'Ṑ',
|
539 |
+
'ṓ' => 'Ṓ',
|
540 |
+
'ṕ' => 'Ṕ',
|
541 |
+
'ṗ' => 'Ṗ',
|
542 |
+
'ṙ' => 'Ṙ',
|
543 |
+
'ṛ' => 'Ṛ',
|
544 |
+
'ṝ' => 'Ṝ',
|
545 |
+
'ṟ' => 'Ṟ',
|
546 |
+
'ṡ' => 'Ṡ',
|
547 |
+
'ṣ' => 'Ṣ',
|
548 |
+
'ṥ' => 'Ṥ',
|
549 |
+
'ṧ' => 'Ṧ',
|
550 |
+
'ṩ' => 'Ṩ',
|
551 |
+
'ṫ' => 'Ṫ',
|
552 |
+
'ṭ' => 'Ṭ',
|
553 |
+
'ṯ' => 'Ṯ',
|
554 |
+
'ṱ' => 'Ṱ',
|
555 |
+
'ṳ' => 'Ṳ',
|
556 |
+
'ṵ' => 'Ṵ',
|
557 |
+
'ṷ' => 'Ṷ',
|
558 |
+
'ṹ' => 'Ṹ',
|
559 |
+
'ṻ' => 'Ṻ',
|
560 |
+
'ṽ' => 'Ṽ',
|
561 |
+
'ṿ' => 'Ṿ',
|
562 |
+
'ẁ' => 'Ẁ',
|
563 |
+
'ẃ' => 'Ẃ',
|
564 |
+
'ẅ' => 'Ẅ',
|
565 |
+
'ẇ' => 'Ẇ',
|
566 |
+
'ẉ' => 'Ẉ',
|
567 |
+
'ẋ' => 'Ẋ',
|
568 |
+
'ẍ' => 'Ẍ',
|
569 |
+
'ẏ' => 'Ẏ',
|
570 |
+
'ẑ' => 'Ẑ',
|
571 |
+
'ẓ' => 'Ẓ',
|
572 |
+
'ẕ' => 'Ẕ',
|
573 |
+
'ẛ' => 'Ṡ',
|
574 |
+
'ạ' => 'Ạ',
|
575 |
+
'ả' => 'Ả',
|
576 |
+
'ấ' => 'Ấ',
|
577 |
+
'ầ' => 'Ầ',
|
578 |
+
'ẩ' => 'Ẩ',
|
579 |
+
'ẫ' => 'Ẫ',
|
580 |
+
'ậ' => 'Ậ',
|
581 |
+
'ắ' => 'Ắ',
|
582 |
+
'ằ' => 'Ằ',
|
583 |
+
'ẳ' => 'Ẳ',
|
584 |
+
'ẵ' => 'Ẵ',
|
585 |
+
'ặ' => 'Ặ',
|
586 |
+
'ẹ' => 'Ẹ',
|
587 |
+
'ẻ' => 'Ẻ',
|
588 |
+
'ẽ' => 'Ẽ',
|
589 |
+
'ế' => 'Ế',
|
590 |
+
'ề' => 'Ề',
|
591 |
+
'ể' => 'Ể',
|
592 |
+
'ễ' => 'Ễ',
|
593 |
+
'ệ' => 'Ệ',
|
594 |
+
'ỉ' => 'Ỉ',
|
595 |
+
'ị' => 'Ị',
|
596 |
+
'ọ' => 'Ọ',
|
597 |
+
'ỏ' => 'Ỏ',
|
598 |
+
'ố' => 'Ố',
|
599 |
+
'ồ' => 'Ồ',
|
600 |
+
'ổ' => 'Ổ',
|
601 |
+
'ỗ' => 'Ỗ',
|
602 |
+
'ộ' => 'Ộ',
|
603 |
+
'ớ' => 'Ớ',
|
604 |
+
'ờ' => 'Ờ',
|
605 |
+
'ở' => 'Ở',
|
606 |
+
'ỡ' => 'Ỡ',
|
607 |
+
'ợ' => 'Ợ',
|
608 |
+
'ụ' => 'Ụ',
|
609 |
+
'ủ' => 'Ủ',
|
610 |
+
'ứ' => 'Ứ',
|
611 |
+
'ừ' => 'Ừ',
|
612 |
+
'ử' => 'Ử',
|
613 |
+
'ữ' => 'Ữ',
|
614 |
+
'ự' => 'Ự',
|
615 |
+
'ỳ' => 'Ỳ',
|
616 |
+
'ỵ' => 'Ỵ',
|
617 |
+
'ỷ' => 'Ỷ',
|
618 |
+
'ỹ' => 'Ỹ',
|
619 |
+
'ỻ' => 'Ỻ',
|
620 |
+
'ỽ' => 'Ỽ',
|
621 |
+
'ỿ' => 'Ỿ',
|
622 |
+
'ἀ' => 'Ἀ',
|
623 |
+
'ἁ' => 'Ἁ',
|
624 |
+
'ἂ' => 'Ἂ',
|
625 |
+
'ἃ' => 'Ἃ',
|
626 |
+
'ἄ' => 'Ἄ',
|
627 |
+
'ἅ' => 'Ἅ',
|
628 |
+
'ἆ' => 'Ἆ',
|
629 |
+
'ἇ' => 'Ἇ',
|
630 |
+
'ἐ' => 'Ἐ',
|
631 |
+
'ἑ' => 'Ἑ',
|
632 |
+
'ἒ' => 'Ἒ',
|
633 |
+
'ἓ' => 'Ἓ',
|
634 |
+
'ἔ' => 'Ἔ',
|
635 |
+
'ἕ' => 'Ἕ',
|
636 |
+
'ἠ' => 'Ἠ',
|
637 |
+
'ἡ' => 'Ἡ',
|
638 |
+
'ἢ' => 'Ἢ',
|
639 |
+
'ἣ' => 'Ἣ',
|
640 |
+
'ἤ' => 'Ἤ',
|
641 |
+
'ἥ' => 'Ἥ',
|
642 |
+
'ἦ' => 'Ἦ',
|
643 |
+
'ἧ' => 'Ἧ',
|
644 |
+
'ἰ' => 'Ἰ',
|
645 |
+
'ἱ' => 'Ἱ',
|
646 |
+
'ἲ' => 'Ἲ',
|
647 |
+
'ἳ' => 'Ἳ',
|
648 |
+
'ἴ' => 'Ἴ',
|
649 |
+
'ἵ' => 'Ἵ',
|
650 |
+
'ἶ' => 'Ἶ',
|
651 |
+
'ἷ' => 'Ἷ',
|
652 |
+
'ὀ' => 'Ὀ',
|
653 |
+
'ὁ' => 'Ὁ',
|
654 |
+
'ὂ' => 'Ὂ',
|
655 |
+
'ὃ' => 'Ὃ',
|
656 |
+
'ὄ' => 'Ὄ',
|
657 |
+
'ὅ' => 'Ὅ',
|
658 |
+
'ὑ' => 'Ὑ',
|
659 |
+
'ὓ' => 'Ὓ',
|
660 |
+
'ὕ' => 'Ὕ',
|
661 |
+
'ὗ' => 'Ὗ',
|
662 |
+
'ὠ' => 'Ὠ',
|
663 |
+
'ὡ' => 'Ὡ',
|
664 |
+
'ὢ' => 'Ὢ',
|
665 |
+
'ὣ' => 'Ὣ',
|
666 |
+
'ὤ' => 'Ὤ',
|
667 |
+
'ὥ' => 'Ὥ',
|
668 |
+
'ὦ' => 'Ὦ',
|
669 |
+
'ὧ' => 'Ὧ',
|
670 |
+
'ὰ' => 'Ὰ',
|
671 |
+
'ά' => 'Ά',
|
672 |
+
'ὲ' => 'Ὲ',
|
673 |
+
'έ' => 'Έ',
|
674 |
+
'ὴ' => 'Ὴ',
|
675 |
+
'ή' => 'Ή',
|
676 |
+
'ὶ' => 'Ὶ',
|
677 |
+
'ί' => 'Ί',
|
678 |
+
'ὸ' => 'Ὸ',
|
679 |
+
'ό' => 'Ό',
|
680 |
+
'ὺ' => 'Ὺ',
|
681 |
+
'ύ' => 'Ύ',
|
682 |
+
'ὼ' => 'Ὼ',
|
683 |
+
'ώ' => 'Ώ',
|
684 |
+
'ᾀ' => 'ᾈ',
|
685 |
+
'ᾁ' => 'ᾉ',
|
686 |
+
'ᾂ' => 'ᾊ',
|
687 |
+
'ᾃ' => 'ᾋ',
|
688 |
+
'ᾄ' => 'ᾌ',
|
689 |
+
'ᾅ' => 'ᾍ',
|
690 |
+
'ᾆ' => 'ᾎ',
|
691 |
+
'ᾇ' => 'ᾏ',
|
692 |
+
'ᾐ' => 'ᾘ',
|
693 |
+
'ᾑ' => 'ᾙ',
|
694 |
+
'ᾒ' => 'ᾚ',
|
695 |
+
'ᾓ' => 'ᾛ',
|
696 |
+
'ᾔ' => 'ᾜ',
|
697 |
+
'ᾕ' => 'ᾝ',
|
698 |
+
'ᾖ' => 'ᾞ',
|
699 |
+
'ᾗ' => 'ᾟ',
|
700 |
+
'ᾠ' => 'ᾨ',
|
701 |
+
'ᾡ' => 'ᾩ',
|
702 |
+
'ᾢ' => 'ᾪ',
|
703 |
+
'ᾣ' => 'ᾫ',
|
704 |
+
'ᾤ' => 'ᾬ',
|
705 |
+
'ᾥ' => 'ᾭ',
|
706 |
+
'ᾦ' => 'ᾮ',
|
707 |
+
'ᾧ' => 'ᾯ',
|
708 |
+
'ᾰ' => 'Ᾰ',
|
709 |
+
'ᾱ' => 'Ᾱ',
|
710 |
+
'ᾳ' => 'ᾼ',
|
711 |
+
'ι' => 'Ι',
|
712 |
+
'ῃ' => 'ῌ',
|
713 |
+
'ῐ' => 'Ῐ',
|
714 |
+
'ῑ' => 'Ῑ',
|
715 |
+
'ῠ' => 'Ῠ',
|
716 |
+
'ῡ' => 'Ῡ',
|
717 |
+
'ῥ' => 'Ῥ',
|
718 |
+
'ῳ' => 'ῼ',
|
719 |
+
'ⅎ' => 'Ⅎ',
|
720 |
+
'ⅰ' => 'Ⅰ',
|
721 |
+
'ⅱ' => 'Ⅱ',
|
722 |
+
'ⅲ' => 'Ⅲ',
|
723 |
+
'ⅳ' => 'Ⅳ',
|
724 |
+
'ⅴ' => 'Ⅴ',
|
725 |
+
'ⅵ' => 'Ⅵ',
|
726 |
+
'ⅶ' => 'Ⅶ',
|
727 |
+
'ⅷ' => 'Ⅷ',
|
728 |
+
'ⅸ' => 'Ⅸ',
|
729 |
+
'ⅹ' => 'Ⅹ',
|
730 |
+
'ⅺ' => 'Ⅺ',
|
731 |
+
'ⅻ' => 'Ⅻ',
|
732 |
+
'ⅼ' => 'Ⅼ',
|
733 |
+
'ⅽ' => 'Ⅽ',
|
734 |
+
'ⅾ' => 'Ⅾ',
|
735 |
+
'ⅿ' => 'Ⅿ',
|
736 |
+
'ↄ' => 'Ↄ',
|
737 |
+
'ⓐ' => 'Ⓐ',
|
738 |
+
'ⓑ' => 'Ⓑ',
|
739 |
+
'ⓒ' => 'Ⓒ',
|
740 |
+
'ⓓ' => 'Ⓓ',
|
741 |
+
'ⓔ' => 'Ⓔ',
|
742 |
+
'ⓕ' => 'Ⓕ',
|
743 |
+
'ⓖ' => 'Ⓖ',
|
744 |
+
'ⓗ' => 'Ⓗ',
|
745 |
+
'ⓘ' => 'Ⓘ',
|
746 |
+
'ⓙ' => 'Ⓙ',
|
747 |
+
'ⓚ' => 'Ⓚ',
|
748 |
+
'ⓛ' => 'Ⓛ',
|
749 |
+
'ⓜ' => 'Ⓜ',
|
750 |
+
'ⓝ' => 'Ⓝ',
|
751 |
+
'ⓞ' => 'Ⓞ',
|
752 |
+
'ⓟ' => 'Ⓟ',
|
753 |
+
'ⓠ' => 'Ⓠ',
|
754 |
+
'ⓡ' => 'Ⓡ',
|
755 |
+
'ⓢ' => 'Ⓢ',
|
756 |
+
'ⓣ' => 'Ⓣ',
|
757 |
+
'ⓤ' => 'Ⓤ',
|
758 |
+
'ⓥ' => 'Ⓥ',
|
759 |
+
'ⓦ' => 'Ⓦ',
|
760 |
+
'ⓧ' => 'Ⓧ',
|
761 |
+
'ⓨ' => 'Ⓨ',
|
762 |
+
'ⓩ' => 'Ⓩ',
|
763 |
+
'ⰰ' => 'Ⰰ',
|
764 |
+
'ⰱ' => 'Ⰱ',
|
765 |
+
'ⰲ' => 'Ⰲ',
|
766 |
+
'ⰳ' => 'Ⰳ',
|
767 |
+
'ⰴ' => 'Ⰴ',
|
768 |
+
'ⰵ' => 'Ⰵ',
|
769 |
+
'ⰶ' => 'Ⰶ',
|
770 |
+
'ⰷ' => 'Ⰷ',
|
771 |
+
'ⰸ' => 'Ⰸ',
|
772 |
+
'ⰹ' => 'Ⰹ',
|
773 |
+
'ⰺ' => 'Ⰺ',
|
774 |
+
'ⰻ' => 'Ⰻ',
|
775 |
+
'ⰼ' => 'Ⰼ',
|
776 |
+
'ⰽ' => 'Ⰽ',
|
777 |
+
'ⰾ' => 'Ⰾ',
|
778 |
+
'ⰿ' => 'Ⰿ',
|
779 |
+
'ⱀ' => 'Ⱀ',
|
780 |
+
'ⱁ' => 'Ⱁ',
|
781 |
+
'ⱂ' => 'Ⱂ',
|
782 |
+
'ⱃ' => 'Ⱃ',
|
783 |
+
'ⱄ' => 'Ⱄ',
|
784 |
+
'ⱅ' => 'Ⱅ',
|
785 |
+
'ⱆ' => 'Ⱆ',
|
786 |
+
'ⱇ' => 'Ⱇ',
|
787 |
+
'ⱈ' => 'Ⱈ',
|
788 |
+
'ⱉ' => 'Ⱉ',
|
789 |
+
'ⱊ' => 'Ⱊ',
|
790 |
+
'ⱋ' => 'Ⱋ',
|
791 |
+
'ⱌ' => 'Ⱌ',
|
792 |
+
'ⱍ' => 'Ⱍ',
|
793 |
+
'ⱎ' => 'Ⱎ',
|
794 |
+
'ⱏ' => 'Ⱏ',
|
795 |
+
'ⱐ' => 'Ⱐ',
|
796 |
+
'ⱑ' => 'Ⱑ',
|
797 |
+
'ⱒ' => 'Ⱒ',
|
798 |
+
'ⱓ' => 'Ⱓ',
|
799 |
+
'ⱔ' => 'Ⱔ',
|
800 |
+
'ⱕ' => 'Ⱕ',
|
801 |
+
'ⱖ' => 'Ⱖ',
|
802 |
+
'ⱗ' => 'Ⱗ',
|
803 |
+
'ⱘ' => 'Ⱘ',
|
804 |
+
'ⱙ' => 'Ⱙ',
|
805 |
+
'ⱚ' => 'Ⱚ',
|
806 |
+
'ⱛ' => 'Ⱛ',
|
807 |
+
'ⱜ' => 'Ⱜ',
|
808 |
+
'ⱝ' => 'Ⱝ',
|
809 |
+
'ⱞ' => 'Ⱞ',
|
810 |
+
'ⱡ' => 'Ⱡ',
|
811 |
+
'ⱥ' => 'Ⱥ',
|
812 |
+
'ⱦ' => 'Ⱦ',
|
813 |
+
'ⱨ' => 'Ⱨ',
|
814 |
+
'ⱪ' => 'Ⱪ',
|
815 |
+
'ⱬ' => 'Ⱬ',
|
816 |
+
'ⱳ' => 'Ⱳ',
|
817 |
+
'ⱶ' => 'Ⱶ',
|
818 |
+
'ⲁ' => 'Ⲁ',
|
819 |
+
'ⲃ' => 'Ⲃ',
|
820 |
+
'ⲅ' => 'Ⲅ',
|
821 |
+
'ⲇ' => 'Ⲇ',
|
822 |
+
'ⲉ' => 'Ⲉ',
|
823 |
+
'ⲋ' => 'Ⲋ',
|
824 |
+
'ⲍ' => 'Ⲍ',
|
825 |
+
'ⲏ' => 'Ⲏ',
|
826 |
+
'ⲑ' => 'Ⲑ',
|
827 |
+
'ⲓ' => 'Ⲓ',
|
828 |
+
'ⲕ' => 'Ⲕ',
|
829 |
+
'ⲗ' => 'Ⲗ',
|
830 |
+
'ⲙ' => 'Ⲙ',
|
831 |
+
'ⲛ' => 'Ⲛ',
|
832 |
+
'ⲝ' => 'Ⲝ',
|
833 |
+
'ⲟ' => 'Ⲟ',
|
834 |
+
'ⲡ' => 'Ⲡ',
|
835 |
+
'ⲣ' => 'Ⲣ',
|
836 |
+
'ⲥ' => 'Ⲥ',
|
837 |
+
'ⲧ' => 'Ⲧ',
|
838 |
+
'ⲩ' => 'Ⲩ',
|
839 |
+
'ⲫ' => 'Ⲫ',
|
840 |
+
'ⲭ' => 'Ⲭ',
|
841 |
+
'ⲯ' => 'Ⲯ',
|
842 |
+
'ⲱ' => 'Ⲱ',
|
843 |
+
'ⲳ' => 'Ⲳ',
|
844 |
+
'ⲵ' => 'Ⲵ',
|
845 |
+
'ⲷ' => 'Ⲷ',
|
846 |
+
'ⲹ' => 'Ⲹ',
|
847 |
+
'ⲻ' => 'Ⲻ',
|
848 |
+
'ⲽ' => 'Ⲽ',
|
849 |
+
'ⲿ' => 'Ⲿ',
|
850 |
+
'ⳁ' => 'Ⳁ',
|
851 |
+
'ⳃ' => 'Ⳃ',
|
852 |
+
'ⳅ' => 'Ⳅ',
|
853 |
+
'ⳇ' => 'Ⳇ',
|
854 |
+
'ⳉ' => 'Ⳉ',
|
855 |
+
'ⳋ' => 'Ⳋ',
|
856 |
+
'ⳍ' => 'Ⳍ',
|
857 |
+
'ⳏ' => 'Ⳏ',
|
858 |
+
'ⳑ' => 'Ⳑ',
|
859 |
+
'ⳓ' => 'Ⳓ',
|
860 |
+
'ⳕ' => 'Ⳕ',
|
861 |
+
'ⳗ' => 'Ⳗ',
|
862 |
+
'ⳙ' => 'Ⳙ',
|
863 |
+
'ⳛ' => 'Ⳛ',
|
864 |
+
'ⳝ' => 'Ⳝ',
|
865 |
+
'ⳟ' => 'Ⳟ',
|
866 |
+
'ⳡ' => 'Ⳡ',
|
867 |
+
'ⳣ' => 'Ⳣ',
|
868 |
+
'ⳬ' => 'Ⳬ',
|
869 |
+
'ⳮ' => 'Ⳮ',
|
870 |
+
'ⳳ' => 'Ⳳ',
|
871 |
+
'ⴀ' => 'Ⴀ',
|
872 |
+
'ⴁ' => 'Ⴁ',
|
873 |
+
'ⴂ' => 'Ⴂ',
|
874 |
+
'ⴃ' => 'Ⴃ',
|
875 |
+
'ⴄ' => 'Ⴄ',
|
876 |
+
'ⴅ' => 'Ⴅ',
|
877 |
+
'ⴆ' => 'Ⴆ',
|
878 |
+
'ⴇ' => 'Ⴇ',
|
879 |
+
'ⴈ' => 'Ⴈ',
|
880 |
+
'ⴉ' => 'Ⴉ',
|
881 |
+
'ⴊ' => 'Ⴊ',
|
882 |
+
'ⴋ' => 'Ⴋ',
|
883 |
+
'ⴌ' => 'Ⴌ',
|
884 |
+
'ⴍ' => 'Ⴍ',
|
885 |
+
'ⴎ' => 'Ⴎ',
|
886 |
+
'ⴏ' => 'Ⴏ',
|
887 |
+
'ⴐ' => 'Ⴐ',
|
888 |
+
'ⴑ' => 'Ⴑ',
|
889 |
+
'ⴒ' => 'Ⴒ',
|
890 |
+
'ⴓ' => 'Ⴓ',
|
891 |
+
'ⴔ' => 'Ⴔ',
|
892 |
+
'ⴕ' => 'Ⴕ',
|
893 |
+
'ⴖ' => 'Ⴖ',
|
894 |
+
'ⴗ' => 'Ⴗ',
|
895 |
+
'ⴘ' => 'Ⴘ',
|
896 |
+
'ⴙ' => 'Ⴙ',
|
897 |
+
'ⴚ' => 'Ⴚ',
|
898 |
+
'ⴛ' => 'Ⴛ',
|
899 |
+
'ⴜ' => 'Ⴜ',
|
900 |
+
'ⴝ' => 'Ⴝ',
|
901 |
+
'ⴞ' => 'Ⴞ',
|
902 |
+
'ⴟ' => 'Ⴟ',
|
903 |
+
'ⴠ' => 'Ⴠ',
|
904 |
+
'ⴡ' => 'Ⴡ',
|
905 |
+
'ⴢ' => 'Ⴢ',
|
906 |
+
'ⴣ' => 'Ⴣ',
|
907 |
+
'ⴤ' => 'Ⴤ',
|
908 |
+
'ⴥ' => 'Ⴥ',
|
909 |
+
'ⴧ' => 'Ⴧ',
|
910 |
+
'ⴭ' => 'Ⴭ',
|
911 |
+
'ꙁ' => 'Ꙁ',
|
912 |
+
'ꙃ' => 'Ꙃ',
|
913 |
+
'ꙅ' => 'Ꙅ',
|
914 |
+
'ꙇ' => 'Ꙇ',
|
915 |
+
'ꙉ' => 'Ꙉ',
|
916 |
+
'ꙋ' => 'Ꙋ',
|
917 |
+
'ꙍ' => 'Ꙍ',
|
918 |
+
'ꙏ' => 'Ꙏ',
|
919 |
+
'ꙑ' => 'Ꙑ',
|
920 |
+
'ꙓ' => 'Ꙓ',
|
921 |
+
'ꙕ' => 'Ꙕ',
|
922 |
+
'ꙗ' => 'Ꙗ',
|
923 |
+
'ꙙ' => 'Ꙙ',
|
924 |
+
'ꙛ' => 'Ꙛ',
|
925 |
+
'ꙝ' => 'Ꙝ',
|
926 |
+
'ꙟ' => 'Ꙟ',
|
927 |
+
'ꙡ' => 'Ꙡ',
|
928 |
+
'ꙣ' => 'Ꙣ',
|
929 |
+
'ꙥ' => 'Ꙥ',
|
930 |
+
'ꙧ' => 'Ꙧ',
|
931 |
+
'ꙩ' => 'Ꙩ',
|
932 |
+
'ꙫ' => 'Ꙫ',
|
933 |
+
'ꙭ' => 'Ꙭ',
|
934 |
+
'ꚁ' => 'Ꚁ',
|
935 |
+
'ꚃ' => 'Ꚃ',
|
936 |
+
'ꚅ' => 'Ꚅ',
|
937 |
+
'ꚇ' => 'Ꚇ',
|
938 |
+
'ꚉ' => 'Ꚉ',
|
939 |
+
'ꚋ' => 'Ꚋ',
|
940 |
+
'ꚍ' => 'Ꚍ',
|
941 |
+
'ꚏ' => 'Ꚏ',
|
942 |
+
'ꚑ' => 'Ꚑ',
|
943 |
+
'ꚓ' => 'Ꚓ',
|
944 |
+
'ꚕ' => 'Ꚕ',
|
945 |
+
'ꚗ' => 'Ꚗ',
|
946 |
+
'ꚙ' => 'Ꚙ',
|
947 |
+
'ꚛ' => 'Ꚛ',
|
948 |
+
'ꜣ' => 'Ꜣ',
|
949 |
+
'ꜥ' => 'Ꜥ',
|
950 |
+
'ꜧ' => 'Ꜧ',
|
951 |
+
'ꜩ' => 'Ꜩ',
|
952 |
+
'ꜫ' => 'Ꜫ',
|
953 |
+
'ꜭ' => 'Ꜭ',
|
954 |
+
'ꜯ' => 'Ꜯ',
|
955 |
+
'ꜳ' => 'Ꜳ',
|
956 |
+
'ꜵ' => 'Ꜵ',
|
957 |
+
'ꜷ' => 'Ꜷ',
|
958 |
+
'ꜹ' => 'Ꜹ',
|
959 |
+
'ꜻ' => 'Ꜻ',
|
960 |
+
'ꜽ' => 'Ꜽ',
|
961 |
+
'ꜿ' => 'Ꜿ',
|
962 |
+
'ꝁ' => 'Ꝁ',
|
963 |
+
'ꝃ' => 'Ꝃ',
|
964 |
+
'ꝅ' => 'Ꝅ',
|
965 |
+
'ꝇ' => 'Ꝇ',
|
966 |
+
'ꝉ' => 'Ꝉ',
|
967 |
+
'ꝋ' => 'Ꝋ',
|
968 |
+
'ꝍ' => 'Ꝍ',
|
969 |
+
'ꝏ' => 'Ꝏ',
|
970 |
+
'ꝑ' => 'Ꝑ',
|
971 |
+
'ꝓ' => 'Ꝓ',
|
972 |
+
'ꝕ' => 'Ꝕ',
|
973 |
+
'ꝗ' => 'Ꝗ',
|
974 |
+
'ꝙ' => 'Ꝙ',
|
975 |
+
'ꝛ' => 'Ꝛ',
|
976 |
+
'ꝝ' => 'Ꝝ',
|
977 |
+
'ꝟ' => 'Ꝟ',
|
978 |
+
'ꝡ' => 'Ꝡ',
|
979 |
+
'ꝣ' => 'Ꝣ',
|
980 |
+
'ꝥ' => 'Ꝥ',
|
981 |
+
'ꝧ' => 'Ꝧ',
|
982 |
+
'ꝩ' => 'Ꝩ',
|
983 |
+
'ꝫ' => 'Ꝫ',
|
984 |
+
'ꝭ' => 'Ꝭ',
|
985 |
+
'ꝯ' => 'Ꝯ',
|
986 |
+
'ꝺ' => 'Ꝺ',
|
987 |
+
'ꝼ' => 'Ꝼ',
|
988 |
+
'ꝿ' => 'Ꝿ',
|
989 |
+
'ꞁ' => 'Ꞁ',
|
990 |
+
'ꞃ' => 'Ꞃ',
|
991 |
+
'ꞅ' => 'Ꞅ',
|
992 |
+
'ꞇ' => 'Ꞇ',
|
993 |
+
'ꞌ' => 'Ꞌ',
|
994 |
+
'ꞑ' => 'Ꞑ',
|
995 |
+
'ꞓ' => 'Ꞓ',
|
996 |
+
'ꞗ' => 'Ꞗ',
|
997 |
+
'ꞙ' => 'Ꞙ',
|
998 |
+
'ꞛ' => 'Ꞛ',
|
999 |
+
'ꞝ' => 'Ꞝ',
|
1000 |
+
'ꞟ' => 'Ꞟ',
|
1001 |
+
'ꞡ' => 'Ꞡ',
|
1002 |
+
'ꞣ' => 'Ꞣ',
|
1003 |
+
'ꞥ' => 'Ꞥ',
|
1004 |
+
'ꞧ' => 'Ꞧ',
|
1005 |
+
'ꞩ' => 'Ꞩ',
|
1006 |
+
'a' => 'A',
|
1007 |
+
'b' => 'B',
|
1008 |
+
'c' => 'C',
|
1009 |
+
'd' => 'D',
|
1010 |
+
'e' => 'E',
|
1011 |
+
'f' => 'F',
|
1012 |
+
'g' => 'G',
|
1013 |
+
'h' => 'H',
|
1014 |
+
'i' => 'I',
|
1015 |
+
'j' => 'J',
|
1016 |
+
'k' => 'K',
|
1017 |
+
'l' => 'L',
|
1018 |
+
'm' => 'M',
|
1019 |
+
'n' => 'N',
|
1020 |
+
'o' => 'O',
|
1021 |
+
'p' => 'P',
|
1022 |
+
'q' => 'Q',
|
1023 |
+
'r' => 'R',
|
1024 |
+
's' => 'S',
|
1025 |
+
't' => 'T',
|
1026 |
+
'u' => 'U',
|
1027 |
+
'v' => 'V',
|
1028 |
+
'w' => 'W',
|
1029 |
+
'x' => 'X',
|
1030 |
+
'y' => 'Y',
|
1031 |
+
'z' => 'Z',
|
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 |
+
'𐑏' => '𐐧',
|
1072 |
+
'𑣀' => '𑢠',
|
1073 |
+
'𑣁' => '𑢡',
|
1074 |
+
'𑣂' => '𑢢',
|
1075 |
+
'𑣃' => '𑢣',
|
1076 |
+
'𑣄' => '𑢤',
|
1077 |
+
'𑣅' => '𑢥',
|
1078 |
+
'𑣆' => '𑢦',
|
1079 |
+
'𑣇' => '𑢧',
|
1080 |
+
'𑣈' => '𑢨',
|
1081 |
+
'𑣉' => '𑢩',
|
1082 |
+
'𑣊' => '𑢪',
|
1083 |
+
'𑣋' => '𑢫',
|
1084 |
+
'𑣌' => '𑢬',
|
1085 |
+
'𑣍' => '𑢭',
|
1086 |
+
'𑣎' => '𑢮',
|
1087 |
+
'𑣏' => '𑢯',
|
1088 |
+
'𑣐' => '𑢰',
|
1089 |
+
'𑣑' => '𑢱',
|
1090 |
+
'𑣒' => '𑢲',
|
1091 |
+
'𑣓' => '𑢳',
|
1092 |
+
'𑣔' => '𑢴',
|
1093 |
+
'𑣕' => '𑢵',
|
1094 |
+
'𑣖' => '𑢶',
|
1095 |
+
'𑣗' => '𑢷',
|
1096 |
+
'𑣘' => '𑢸',
|
1097 |
+
'𑣙' => '𑢹',
|
1098 |
+
'𑣚' => '𑢺',
|
1099 |
+
'𑣛' => '𑢻',
|
1100 |
+
'𑣜' => '𑢼',
|
1101 |
+
'𑣝' => '𑢽',
|
1102 |
+
'𑣞' => '𑢾',
|
1103 |
+
'𑣟' => '𑢿',
|
1104 |
+
);
|
vendor/symfony/polyfill-mbstring/bootstrap.php
ADDED
@@ -0,0 +1,141 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/*
|
4 |
+
* This file is part of the Symfony package.
|
5 |
+
*
|
6 |
+
* (c) Fabien Potencier <fabien@symfony.com>
|
7 |
+
*
|
8 |
+
* For the full copyright and license information, please view the LICENSE
|
9 |
+
* file that was distributed with this source code.
|
10 |
+
*/
|
11 |
+
|
12 |
+
use Symfony\Polyfill\Mbstring as p;
|
13 |
+
|
14 |
+
if (!function_exists('mb_convert_encoding')) {
|
15 |
+
function mb_convert_encoding($s, $to, $from = null) { return p\Mbstring::mb_convert_encoding($s, $to, $from); }
|
16 |
+
}
|
17 |
+
if (!function_exists('mb_decode_mimeheader')) {
|
18 |
+
function mb_decode_mimeheader($s) { return p\Mbstring::mb_decode_mimeheader($s); }
|
19 |
+
}
|
20 |
+
if (!function_exists('mb_encode_mimeheader')) {
|
21 |
+
function mb_encode_mimeheader($s, $charset = null, $transferEnc = null, $lf = null, $indent = null) { return p\Mbstring::mb_encode_mimeheader($s, $charset, $transferEnc, $lf, $indent); }
|
22 |
+
}
|
23 |
+
if (!function_exists('mb_decode_numericentity')) {
|
24 |
+
function mb_decode_numericentity($s, $convmap, $enc = null) { return p\Mbstring::mb_decode_numericentity($s, $convmap, $enc); }
|
25 |
+
}
|
26 |
+
if (!function_exists('mb_encode_numericentity')) {
|
27 |
+
function mb_encode_numericentity($s, $convmap, $enc = null, $is_hex = false) { return p\Mbstring::mb_encode_numericentity($s, $convmap, $enc, $is_hex); }
|
28 |
+
}
|
29 |
+
if (!function_exists('mb_convert_case')) {
|
30 |
+
function mb_convert_case($s, $mode, $enc = null) { return p\Mbstring::mb_convert_case($s, $mode, $enc); }
|
31 |
+
}
|
32 |
+
if (!function_exists('mb_internal_encoding')) {
|
33 |
+
function mb_internal_encoding($enc = null) { return p\Mbstring::mb_internal_encoding($enc); }
|
34 |
+
}
|
35 |
+
if (!function_exists('mb_language')) {
|
36 |
+
function mb_language($lang = null) { return p\Mbstring::mb_language($lang); }
|
37 |
+
}
|
38 |
+
if (!function_exists('mb_list_encodings')) {
|
39 |
+
function mb_list_encodings() { return p\Mbstring::mb_list_encodings(); }
|
40 |
+
}
|
41 |
+
if (!function_exists('mb_encoding_aliases')) {
|
42 |
+
function mb_encoding_aliases($encoding) { return p\Mbstring::mb_encoding_aliases($encoding); }
|
43 |
+
}
|
44 |
+
if (!function_exists('mb_check_encoding')) {
|
45 |
+
function mb_check_encoding($var = null, $encoding = null) { return p\Mbstring::mb_check_encoding($var, $encoding); }
|
46 |
+
}
|
47 |
+
if (!function_exists('mb_detect_encoding')) {
|
48 |
+
function mb_detect_encoding($str, $encodingList = null, $strict = false) { return p\Mbstring::mb_detect_encoding($str, $encodingList, $strict); }
|
49 |
+
}
|
50 |
+
if (!function_exists('mb_detect_order')) {
|
51 |
+
function mb_detect_order($encodingList = null) { return p\Mbstring::mb_detect_order($encodingList); }
|
52 |
+
}
|
53 |
+
if (!function_exists('mb_parse_str')) {
|
54 |
+
function mb_parse_str($s, &$result = array()) { parse_str($s, $result); }
|
55 |
+
}
|
56 |
+
if (!function_exists('mb_strlen')) {
|
57 |
+
function mb_strlen($s, $enc = null) { return p\Mbstring::mb_strlen($s, $enc); }
|
58 |
+
}
|
59 |
+
if (!function_exists('mb_strpos')) {
|
60 |
+
function mb_strpos($s, $needle, $offset = 0, $enc = null) { return p\Mbstring::mb_strpos($s, $needle, $offset, $enc); }
|
61 |
+
}
|
62 |
+
if (!function_exists('mb_strtolower')) {
|
63 |
+
function mb_strtolower($s, $enc = null) { return p\Mbstring::mb_strtolower($s, $enc); }
|
64 |
+
}
|
65 |
+
if (!function_exists('mb_strtoupper')) {
|
66 |
+
function mb_strtoupper($s, $enc = null) { return p\Mbstring::mb_strtoupper($s, $enc); }
|
67 |
+
}
|
68 |
+
if (!function_exists('mb_substitute_character')) {
|
69 |
+
function mb_substitute_character($char = null) { return p\Mbstring::mb_substitute_character($char); }
|
70 |
+
}
|
71 |
+
if (!function_exists('mb_substr')) {
|
72 |
+
function mb_substr($s, $start, $length = 2147483647, $enc = null) { return p\Mbstring::mb_substr($s, $start, $length, $enc); }
|
73 |
+
}
|
74 |
+
if (!function_exists('mb_stripos')) {
|
75 |
+
function mb_stripos($s, $needle, $offset = 0, $enc = null) { return p\Mbstring::mb_stripos($s, $needle, $offset, $enc); }
|
76 |
+
}
|
77 |
+
if (!function_exists('mb_stristr')) {
|
78 |
+
function mb_stristr($s, $needle, $part = false, $enc = null) { return p\Mbstring::mb_stristr($s, $needle, $part, $enc); }
|
79 |
+
}
|
80 |
+
if (!function_exists('mb_strrchr')) {
|
81 |
+
function mb_strrchr($s, $needle, $part = false, $enc = null) { return p\Mbstring::mb_strrchr($s, $needle, $part, $enc); }
|
82 |
+
}
|
83 |
+
if (!function_exists('mb_strrichr')) {
|
84 |
+
function mb_strrichr($s, $needle, $part = false, $enc = null) { return p\Mbstring::mb_strrichr($s, $needle, $part, $enc); }
|
85 |
+
}
|
86 |
+
if (!function_exists('mb_strripos')) {
|
87 |
+
function mb_strripos($s, $needle, $offset = 0, $enc = null) { return p\Mbstring::mb_strripos($s, $needle, $offset, $enc); }
|
88 |
+
}
|
89 |
+
if (!function_exists('mb_strrpos')) {
|
90 |
+
function mb_strrpos($s, $needle, $offset = 0, $enc = null) { return p\Mbstring::mb_strrpos($s, $needle, $offset, $enc); }
|
91 |
+
}
|
92 |
+
if (!function_exists('mb_strstr')) {
|
93 |
+
function mb_strstr($s, $needle, $part = false, $enc = null) { return p\Mbstring::mb_strstr($s, $needle, $part, $enc); }
|
94 |
+
}
|
95 |
+
if (!function_exists('mb_get_info')) {
|
96 |
+
function mb_get_info($type = 'all') { return p\Mbstring::mb_get_info($type); }
|
97 |
+
}
|
98 |
+
if (!function_exists('mb_http_output')) {
|
99 |
+
function mb_http_output($enc = null) { return p\Mbstring::mb_http_output($enc); }
|
100 |
+
}
|
101 |
+
if (!function_exists('mb_strwidth')) {
|
102 |
+
function mb_strwidth($s, $enc = null) { return p\Mbstring::mb_strwidth($s, $enc); }
|
103 |
+
}
|
104 |
+
if (!function_exists('mb_substr_count')) {
|
105 |
+
function mb_substr_count($haystack, $needle, $enc = null) { return p\Mbstring::mb_substr_count($haystack, $needle, $enc); }
|
106 |
+
}
|
107 |
+
if (!function_exists('mb_output_handler')) {
|
108 |
+
function mb_output_handler($contents, $status) { return p\Mbstring::mb_output_handler($contents, $status); }
|
109 |
+
}
|
110 |
+
if (!function_exists('mb_http_input')) {
|
111 |
+
function mb_http_input($type = '') { return p\Mbstring::mb_http_input($type); }
|
112 |
+
}
|
113 |
+
if (!function_exists('mb_convert_variables')) {
|
114 |
+
function mb_convert_variables($toEncoding, $fromEncoding, &$a = null, &$b = null, &$c = null, &$d = null, &$e = null, &$f = null) { return p\Mbstring::mb_convert_variables($toEncoding, $fromEncoding, $a, $b, $c, $d, $e, $f); }
|
115 |
+
}
|
116 |
+
if (!function_exists('mb_ord')) {
|
117 |
+
function mb_ord($s, $enc = null) { return p\Mbstring::mb_ord($s, $enc); }
|
118 |
+
}
|
119 |
+
if (!function_exists('mb_chr')) {
|
120 |
+
function mb_chr($code, $enc = null) { return p\Mbstring::mb_chr($code, $enc); }
|
121 |
+
}
|
122 |
+
if (!function_exists('mb_scrub')) {
|
123 |
+
function mb_scrub($s, $enc = null) { $enc = null === $enc ? mb_internal_encoding() : $enc; return mb_convert_encoding($s, $enc, $enc); }
|
124 |
+
}
|
125 |
+
if (!function_exists('mb_str_split')) {
|
126 |
+
function mb_str_split($string, $split_length = 1, $encoding = null) { return p\Mbstring::mb_str_split($string, $split_length, $encoding); }
|
127 |
+
}
|
128 |
+
|
129 |
+
if (extension_loaded('mbstring')) {
|
130 |
+
return;
|
131 |
+
}
|
132 |
+
|
133 |
+
if (!defined('MB_CASE_UPPER')) {
|
134 |
+
define('MB_CASE_UPPER', 0);
|
135 |
+
}
|
136 |
+
if (!defined('MB_CASE_LOWER')) {
|
137 |
+
define('MB_CASE_LOWER', 1);
|
138 |
+
}
|
139 |
+
if (!defined('MB_CASE_TITLE')) {
|
140 |
+
define('MB_CASE_TITLE', 2);
|
141 |
+
}
|
vendor/symfony/polyfill-mbstring/composer.json
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "symfony/polyfill-mbstring",
|
3 |
+
"type": "library",
|
4 |
+
"description": "Symfony polyfill for the Mbstring extension",
|
5 |
+
"keywords": ["polyfill", "shim", "compatibility", "portable", "mbstring"],
|
6 |
+
"homepage": "https://symfony.com",
|
7 |
+
"license": "MIT",
|
8 |
+
"authors": [
|
9 |
+
{
|
10 |
+
"name": "Nicolas Grekas",
|
11 |
+
"email": "p@tchwork.com"
|
12 |
+
},
|
13 |
+
{
|
14 |
+
"name": "Symfony Community",
|
15 |
+
"homepage": "https://symfony.com/contributors"
|
16 |
+
}
|
17 |
+
],
|
18 |
+
"require": {
|
19 |
+
"php": ">=5.3.3"
|
20 |
+
},
|
21 |
+
"autoload": {
|
22 |
+
"psr-4": { "Symfony\\Polyfill\\Mbstring\\": "" },
|
23 |
+
"files": [ "bootstrap.php" ]
|
24 |
+
},
|
25 |
+
"suggest": {
|
26 |
+
"ext-mbstring": "For best performance"
|
27 |
+
},
|
28 |
+
"minimum-stability": "dev",
|
29 |
+
"extra": {
|
30 |
+
"branch-alias": {
|
31 |
+
"dev-master": "1.17-dev"
|
32 |
+
}
|
33 |
+
}
|
34 |
+
}
|