mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 02:14:43 +00:00
Bug 1368948: [3/7] Add PDfium files (chromium/3029) with patches. r=jwatt
Corresponding chromium version: 58.0.3029.110 Update command: ./update.sh --commit chromium/3029 MozReview-Commit-ID: HFN3EPkFkN
This commit is contained in:
parent
dd5291a252
commit
8bbccf1c91
@ -7,4 +7,4 @@ patch files after the copy step).
|
||||
|
||||
The upstream repository is https://pdfium.googlesource.com/pdfium
|
||||
|
||||
The git commit ID last used to import was 0000000000000000000000000000000000000000 (0000-00-00 00:00:00 +0000)
|
||||
The git commit ID last used to import was 84213b529908d2b9095ad4c33ecc9fdf5d881df5 (2017-04-24 19:23:05 +0000)
|
||||
|
2
modules/pdfium/pdfium/.clang-format
Normal file
2
modules/pdfium/pdfium/.clang-format
Normal file
@ -0,0 +1,2 @@
|
||||
# http://clang.llvm.org/docs/ClangFormatStyleOptions.html
|
||||
BasedOnStyle: Chromium
|
15
modules/pdfium/pdfium/.gn
Normal file
15
modules/pdfium/pdfium/.gn
Normal file
@ -0,0 +1,15 @@
|
||||
# Copyright 2016 PDFium Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
buildconfig = "//build/config/BUILDCONFIG.gn"
|
||||
secondary_source = "//build/secondary/"
|
||||
|
||||
default_args = {
|
||||
v8_extra_library_files = []
|
||||
v8_experimental_extra_library_files = []
|
||||
v8_enable_inspector = false
|
||||
|
||||
# Turns on compiler optimizations in V8 in Debug build.
|
||||
v8_optimized_debug = true
|
||||
}
|
41
modules/pdfium/pdfium/AUTHORS
Normal file
41
modules/pdfium/pdfium/AUTHORS
Normal file
@ -0,0 +1,41 @@
|
||||
# Names should be added to this file with this pattern:
|
||||
#
|
||||
# For individuals:
|
||||
# Name <email address>
|
||||
#
|
||||
# For organizations:
|
||||
# Organization <fnmatch pattern>
|
||||
#
|
||||
# See python fnmatch module documentation for more information.
|
||||
|
||||
Andrey Khalyavin <halyavin@chromium.org>
|
||||
Antonio Gomes <tonikitoo@igalia.com>
|
||||
Brett Wilson <brettw@chromium.org>
|
||||
Bruce Dawson <brucedawson@chromium.org>
|
||||
Chery Cherian <cherycherian@gmail.com>
|
||||
Chris Palmer <palmer@chromium.org>
|
||||
Dan Sinclair <dsinclair@chromium.org>
|
||||
Finnur Thorarinsson <finnur@chromium.org>
|
||||
GiWan Go <gogil@stealien.com>
|
||||
Jiang Jiang <jiangj@opera.com>
|
||||
Jochen Eisinger <jochen@chromium.org>
|
||||
John Abd-El-Malek <jam@chromium.org>
|
||||
Julien Tinnes <jln@chromium.org>
|
||||
Ke Liu <stackexploit@gmail.com>
|
||||
Kostya Serebryany <kcc@chromium.org>
|
||||
Lei Zhang <thestig@chromium.org>
|
||||
Lucas Nihlen <luken@chromium.org>
|
||||
Matt Giuca <mgiuca@chromium.org>
|
||||
Michael Doppler <m.doppler@gmail.com>
|
||||
Miklos Vajna <vmiklos@vmiklos.hu>
|
||||
Nico Weber <thakis@chromium.org>
|
||||
Peter Kasting <pkasting@chromium.org>
|
||||
Raymes Khoury <raymes@chromium.org>
|
||||
Reid Kleckner <rnk@chromium.org>
|
||||
Robert Sesek <rsesek@chromium.org>
|
||||
Sam Clegg <sbc@chromium.org>
|
||||
Thomas Sepez <tsepez@chromium.org>
|
||||
|
||||
DocsCorp Pty Ltd. <*@docscorp.com>
|
||||
Foxit Software Inc <*@foxitsoftware.com>
|
||||
Google Inc. <*@google.com>
|
1891
modules/pdfium/pdfium/BUILD.gn
Normal file
1891
modules/pdfium/pdfium/BUILD.gn
Normal file
File diff suppressed because it is too large
Load Diff
201
modules/pdfium/pdfium/DEPS
Normal file
201
modules/pdfium/pdfium/DEPS
Normal file
@ -0,0 +1,201 @@
|
||||
use_relative_paths = True
|
||||
|
||||
vars = {
|
||||
'chromium_git': 'https://chromium.googlesource.com',
|
||||
'pdfium_git': 'https://pdfium.googlesource.com',
|
||||
|
||||
'android_ndk_revision': '26d93ec07f3ce2ec2cdfeae1b21ee6f12ff868d8',
|
||||
'build_revision': 'dd795a26b9e43ff3a0d761bfd509c2fa67a3a7a1',
|
||||
'buildtools_revision': 'cf493f8b1ae59611b19b000d7af922559b6ae92a',
|
||||
'catapult_revision': '86352b966b0245d6883e5f7df27687856978b6d7',
|
||||
'clang_revision': '37d701b87a10a2bdee1a5c3523f754ebf64a7e66',
|
||||
'cygwin_revision': 'c89e446b273697fadf3a10ff1007a97c0b7de6df',
|
||||
'gen_library_loader_revision': '916d4acd8b2cde67a390737dfba90b3c37de23a1',
|
||||
'gmock_revision': '29763965ab52f24565299976b936d1265cb6a271',
|
||||
'gtest_revision': '8245545b6dc9c4703e6496d1efd19e975ad2b038',
|
||||
'icu_revision': '73e24736676b4b438270fda44e5b2c83b49fdd80',
|
||||
'instrumented_lib_revision': '45f5814b1543e41ea0be54c771e3840ea52cca4a',
|
||||
'pdfium_tests_revision': 'd25a422ab03d6c3109370bc454c629575e969329',
|
||||
'skia_revision': '90e3cd78991ef337dbd0023efb30ece864694308',
|
||||
'tools_memory_revision': '427f10475e1a8d72424c29d00bf689122b738e5d',
|
||||
'trace_event_revision': '06294c8a4a6f744ef284cd63cfe54dbf61eea290',
|
||||
'v8_revision': '7a634798302b4ab1f1525a9a881629519c0c2a99',
|
||||
}
|
||||
|
||||
deps = {
|
||||
"base/trace_event/common":
|
||||
Var('chromium_git') + "/chromium/src/base/trace_event/common.git@" +
|
||||
Var('trace_event_revision'),
|
||||
|
||||
"build":
|
||||
Var('chromium_git') + "/chromium/src/build.git@" + Var('build_revision'),
|
||||
|
||||
"buildtools":
|
||||
Var('chromium_git') + "/chromium/buildtools.git@" + Var('buildtools_revision'),
|
||||
|
||||
"testing/corpus":
|
||||
Var('pdfium_git') + "/pdfium_tests@" + Var('pdfium_tests_revision'),
|
||||
|
||||
"testing/gmock":
|
||||
Var('chromium_git') + "/external/googlemock.git@" + Var('gmock_revision'),
|
||||
|
||||
"testing/gtest":
|
||||
Var('chromium_git') + "/external/googletest.git@" + Var('gtest_revision'),
|
||||
|
||||
"third_party/icu":
|
||||
Var('chromium_git') + "/chromium/deps/icu.git@" + Var('icu_revision'),
|
||||
|
||||
"third_party/instrumented_libraries":
|
||||
Var('chromium_git') + "/chromium/src/third_party/instrumented_libraries.git@" + Var('instrumented_lib_revision'),
|
||||
|
||||
"third_party/skia":
|
||||
Var('chromium_git') + '/skia.git' + '@' + Var('skia_revision'),
|
||||
|
||||
"tools/clang":
|
||||
Var('chromium_git') + "/chromium/src/tools/clang@" + Var('clang_revision'),
|
||||
|
||||
"tools/generate_library_loader":
|
||||
Var('chromium_git') + "/chromium/src/tools/generate_library_loader@" +
|
||||
Var('gen_library_loader_revision'),
|
||||
|
||||
# TODO(GYP): Remove this when no tools rely on GYP anymore.
|
||||
"tools/gyp":
|
||||
Var('chromium_git') + '/external/gyp.git' + '@' + 'c61b0b35c8396bfd59efc6cfc11401d912b0f510',
|
||||
|
||||
"tools/memory":
|
||||
Var('chromium_git') + "/chromium/src/tools/memory@" +
|
||||
Var('tools_memory_revision'),
|
||||
|
||||
"v8":
|
||||
Var('chromium_git') + "/v8/v8.git@" + Var('v8_revision'),
|
||||
}
|
||||
|
||||
deps_os = {
|
||||
"android": {
|
||||
"third_party/android_ndk":
|
||||
Var('chromium_git') + "/android_ndk.git@" + Var('android_ndk_revision'),
|
||||
"third_party/catapult":
|
||||
Var('chromium_git') + "/external/github.com/catapult-project/catapult.git@" + Var('catapult_revision'),
|
||||
},
|
||||
"win": {
|
||||
"v8/third_party/cygwin":
|
||||
Var('chromium_git') + "/chromium/deps/cygwin@" + Var('cygwin_revision'),
|
||||
},
|
||||
}
|
||||
|
||||
recursedeps = [
|
||||
# buildtools provides clang_format, libc++, and libc++abi
|
||||
'buildtools',
|
||||
]
|
||||
|
||||
include_rules = [
|
||||
# Basic stuff that everyone can use.
|
||||
# Note: public is not here because core cannot depend on public.
|
||||
'+testing',
|
||||
'+third_party/base',
|
||||
]
|
||||
|
||||
specific_include_rules = {
|
||||
# Allow embedder tests to use public APIs.
|
||||
"(.*embeddertest\.cpp)": [
|
||||
"+public",
|
||||
]
|
||||
}
|
||||
|
||||
hooks = [
|
||||
# Pull GN binaries. This needs to be before running GYP below.
|
||||
{
|
||||
'name': 'gn_win',
|
||||
'action': [ 'download_from_google_storage',
|
||||
'--no_resume',
|
||||
'--platform=win32',
|
||||
'--no_auth',
|
||||
'--bucket', 'chromium-gn',
|
||||
'-s', 'pdfium/buildtools/win/gn.exe.sha1',
|
||||
],
|
||||
},
|
||||
{
|
||||
'name': 'gn_mac',
|
||||
'pattern': '.',
|
||||
'action': [ 'download_from_google_storage',
|
||||
'--no_resume',
|
||||
'--platform=darwin',
|
||||
'--no_auth',
|
||||
'--bucket', 'chromium-gn',
|
||||
'-s', 'pdfium/buildtools/mac/gn.sha1',
|
||||
],
|
||||
},
|
||||
{
|
||||
'name': 'gn_linux64',
|
||||
'pattern': '.',
|
||||
'action': [ 'download_from_google_storage',
|
||||
'--no_resume',
|
||||
'--platform=linux*',
|
||||
'--no_auth',
|
||||
'--bucket', 'chromium-gn',
|
||||
'-s', 'pdfium/buildtools/linux64/gn.sha1',
|
||||
],
|
||||
},
|
||||
# Pull clang-format binaries using checked-in hashes.
|
||||
{
|
||||
'name': 'clang_format_win',
|
||||
'pattern': '.',
|
||||
'action': [ 'download_from_google_storage',
|
||||
'--no_resume',
|
||||
'--platform=win32',
|
||||
'--no_auth',
|
||||
'--bucket', 'chromium-clang-format',
|
||||
'-s', 'pdfium/buildtools/win/clang-format.exe.sha1',
|
||||
],
|
||||
},
|
||||
{
|
||||
'name': 'clang_format_mac',
|
||||
'pattern': '.',
|
||||
'action': [ 'download_from_google_storage',
|
||||
'--no_resume',
|
||||
'--platform=darwin',
|
||||
'--no_auth',
|
||||
'--bucket', 'chromium-clang-format',
|
||||
'-s', 'pdfium/buildtools/mac/clang-format.sha1',
|
||||
],
|
||||
},
|
||||
{
|
||||
'name': 'clang_format_linux',
|
||||
'pattern': '.',
|
||||
'action': [ 'download_from_google_storage',
|
||||
'--no_resume',
|
||||
'--platform=linux*',
|
||||
'--no_auth',
|
||||
'--bucket', 'chromium-clang-format',
|
||||
'-s', 'pdfium/buildtools/linux64/clang-format.sha1',
|
||||
],
|
||||
},
|
||||
{
|
||||
# Pull clang
|
||||
'name': 'clang',
|
||||
'pattern': '.',
|
||||
'action': ['python',
|
||||
'pdfium/tools/clang/scripts/update.py'
|
||||
],
|
||||
},
|
||||
{
|
||||
# Update the Windows toolchain if necessary.
|
||||
'name': 'win_toolchain',
|
||||
'pattern': '.',
|
||||
'action': ['python', 'pdfium/build/vs_toolchain.py', 'update'],
|
||||
},
|
||||
{
|
||||
# Update the Mac toolchain if necessary.
|
||||
'name': 'mac_toolchain',
|
||||
'pattern': '.',
|
||||
'action': ['python', 'pdfium/build/mac_toolchain.py'],
|
||||
},
|
||||
{
|
||||
# Pull sanitizer-instrumented third-party libraries if requested via
|
||||
# GYP_DEFINES.
|
||||
'name': 'instrumented_libraries',
|
||||
'pattern': '\\.sha1',
|
||||
'action': ['python', 'pdfium/third_party/instrumented_libraries/scripts/download_binaries.py'],
|
||||
},
|
||||
|
||||
]
|
27
modules/pdfium/pdfium/LICENSE
Normal file
27
modules/pdfium/pdfium/LICENSE
Normal file
@ -0,0 +1,27 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from
|
||||
// this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
13
modules/pdfium/pdfium/OWNERS
Normal file
13
modules/pdfium/pdfium/OWNERS
Normal file
@ -0,0 +1,13 @@
|
||||
brucedawson@chromium.org
|
||||
dsinclair@chromium.org
|
||||
jam@chromium.org
|
||||
npm@chromium.org
|
||||
thestig@chromium.org
|
||||
tsepez@chromium.org
|
||||
weili@chromium.org
|
||||
|
||||
# For V8 related changes
|
||||
jochen@chromium.org
|
||||
|
||||
# For Skia related changes
|
||||
caryclark@google.com
|
261
modules/pdfium/pdfium/PRESUBMIT.py
Normal file
261
modules/pdfium/pdfium/PRESUBMIT.py
Normal file
@ -0,0 +1,261 @@
|
||||
# Copyright 2015 The Chromium Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
"""Presubmit script for pdfium.
|
||||
|
||||
See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts
|
||||
for more details about the presubmit API built into depot_tools.
|
||||
"""
|
||||
|
||||
LINT_FILTERS = [
|
||||
# Rvalue ref checks are unreliable.
|
||||
'-build/c++11',
|
||||
# Need to fix header names not matching cpp names.
|
||||
'-build/include_order',
|
||||
# Too many to fix at the moment.
|
||||
'-readability/casting',
|
||||
# Need to refactor large methods to fix.
|
||||
'-readability/fn_size',
|
||||
# Lots of usage to fix first.
|
||||
'-runtime/int',
|
||||
# Lots of non-const references need to be fixed
|
||||
'-runtime/references',
|
||||
# We are not thread safe, so this will never pass.
|
||||
'-runtime/threadsafe_fn',
|
||||
# Figure out how to deal with #defines that git cl format creates.
|
||||
'-whitespace/indent',
|
||||
]
|
||||
|
||||
|
||||
_INCLUDE_ORDER_WARNING = (
|
||||
'Your #include order seems to be broken. Remember to use the right '
|
||||
'collation (LC_COLLATE=C) and check\nhttps://google.github.io/styleguide/'
|
||||
'cppguide.html#Names_and_Order_of_Includes')
|
||||
|
||||
|
||||
def _CheckUnwantedDependencies(input_api, output_api):
|
||||
"""Runs checkdeps on #include statements added in this
|
||||
change. Breaking - rules is an error, breaking ! rules is a
|
||||
warning.
|
||||
"""
|
||||
import sys
|
||||
# We need to wait until we have an input_api object and use this
|
||||
# roundabout construct to import checkdeps because this file is
|
||||
# eval-ed and thus doesn't have __file__.
|
||||
original_sys_path = sys.path
|
||||
try:
|
||||
sys.path = sys.path + [input_api.os_path.join(
|
||||
input_api.PresubmitLocalPath(), 'buildtools', 'checkdeps')]
|
||||
import checkdeps
|
||||
from cpp_checker import CppChecker
|
||||
from rules import Rule
|
||||
except ImportError:
|
||||
return [output_api.PresubmitError(
|
||||
'Unable to run checkdeps, does pdfium/buildtools/checkdeps exist?')]
|
||||
finally:
|
||||
# Restore sys.path to what it was before.
|
||||
sys.path = original_sys_path
|
||||
|
||||
added_includes = []
|
||||
for f in input_api.AffectedFiles():
|
||||
if not CppChecker.IsCppFile(f.LocalPath()):
|
||||
continue
|
||||
|
||||
changed_lines = [line for line_num, line in f.ChangedContents()]
|
||||
added_includes.append([f.LocalPath(), changed_lines])
|
||||
|
||||
deps_checker = checkdeps.DepsChecker(input_api.PresubmitLocalPath())
|
||||
|
||||
error_descriptions = []
|
||||
warning_descriptions = []
|
||||
for path, rule_type, rule_description in deps_checker.CheckAddedCppIncludes(
|
||||
added_includes):
|
||||
description_with_path = '%s\n %s' % (path, rule_description)
|
||||
if rule_type == Rule.DISALLOW:
|
||||
error_descriptions.append(description_with_path)
|
||||
else:
|
||||
warning_descriptions.append(description_with_path)
|
||||
|
||||
results = []
|
||||
if error_descriptions:
|
||||
results.append(output_api.PresubmitError(
|
||||
'You added one or more #includes that violate checkdeps rules.',
|
||||
error_descriptions))
|
||||
if warning_descriptions:
|
||||
results.append(output_api.PresubmitPromptOrNotify(
|
||||
'You added one or more #includes of files that are temporarily\n'
|
||||
'allowed but being removed. Can you avoid introducing the\n'
|
||||
'#include? See relevant DEPS file(s) for details and contacts.',
|
||||
warning_descriptions))
|
||||
return results
|
||||
|
||||
|
||||
def _CheckIncludeOrderForScope(scope, input_api, file_path, changed_linenums):
|
||||
"""Checks that the lines in scope occur in the right order.
|
||||
|
||||
1. C system files in alphabetical order
|
||||
2. C++ system files in alphabetical order
|
||||
3. Project's .h files
|
||||
"""
|
||||
|
||||
c_system_include_pattern = input_api.re.compile(r'\s*#include <.*\.h>')
|
||||
cpp_system_include_pattern = input_api.re.compile(r'\s*#include <.*>')
|
||||
custom_include_pattern = input_api.re.compile(r'\s*#include ".*')
|
||||
|
||||
C_SYSTEM_INCLUDES, CPP_SYSTEM_INCLUDES, CUSTOM_INCLUDES = range(3)
|
||||
|
||||
state = C_SYSTEM_INCLUDES
|
||||
|
||||
previous_line = ''
|
||||
previous_line_num = 0
|
||||
problem_linenums = []
|
||||
out_of_order = " - line belongs before previous line"
|
||||
for line_num, line in scope:
|
||||
if c_system_include_pattern.match(line):
|
||||
if state != C_SYSTEM_INCLUDES:
|
||||
problem_linenums.append((line_num, previous_line_num,
|
||||
" - C system include file in wrong block"))
|
||||
elif previous_line and previous_line > line:
|
||||
problem_linenums.append((line_num, previous_line_num,
|
||||
out_of_order))
|
||||
elif cpp_system_include_pattern.match(line):
|
||||
if state == C_SYSTEM_INCLUDES:
|
||||
state = CPP_SYSTEM_INCLUDES
|
||||
elif state == CUSTOM_INCLUDES:
|
||||
problem_linenums.append((line_num, previous_line_num,
|
||||
" - c++ system include file in wrong block"))
|
||||
elif previous_line and previous_line > line:
|
||||
problem_linenums.append((line_num, previous_line_num, out_of_order))
|
||||
elif custom_include_pattern.match(line):
|
||||
if state != CUSTOM_INCLUDES:
|
||||
state = CUSTOM_INCLUDES
|
||||
elif previous_line and previous_line > line:
|
||||
problem_linenums.append((line_num, previous_line_num, out_of_order))
|
||||
else:
|
||||
problem_linenums.append((line_num, previous_line_num,
|
||||
"Unknown include type"))
|
||||
previous_line = line
|
||||
previous_line_num = line_num
|
||||
|
||||
warnings = []
|
||||
for (line_num, previous_line_num, failure_type) in problem_linenums:
|
||||
if line_num in changed_linenums or previous_line_num in changed_linenums:
|
||||
warnings.append(' %s:%d:%s' % (file_path, line_num, failure_type))
|
||||
return warnings
|
||||
|
||||
|
||||
def _CheckIncludeOrderInFile(input_api, f, changed_linenums):
|
||||
"""Checks the #include order for the given file f."""
|
||||
|
||||
system_include_pattern = input_api.re.compile(r'\s*#include \<.*')
|
||||
# Exclude the following includes from the check:
|
||||
# 1) #include <.../...>, e.g., <sys/...> includes often need to appear in a
|
||||
# specific order.
|
||||
# 2) <atlbase.h>, "build/build_config.h"
|
||||
excluded_include_pattern = input_api.re.compile(
|
||||
r'\s*#include (\<.*/.*|\<atlbase\.h\>|"build/build_config.h")')
|
||||
custom_include_pattern = input_api.re.compile(r'\s*#include "(?P<FILE>.*)"')
|
||||
# Match the final or penultimate token if it is xxxtest so we can ignore it
|
||||
# when considering the special first include.
|
||||
test_file_tag_pattern = input_api.re.compile(
|
||||
r'_[a-z]+test(?=(_[a-zA-Z0-9]+)?\.)')
|
||||
if_pattern = input_api.re.compile(
|
||||
r'\s*#\s*(if|elif|else|endif|define|undef).*')
|
||||
# Some files need specialized order of includes; exclude such files from this
|
||||
# check.
|
||||
uncheckable_includes_pattern = input_api.re.compile(
|
||||
r'\s*#include '
|
||||
'("ipc/.*macros\.h"|<windows\.h>|".*gl.*autogen.h")\s*')
|
||||
|
||||
contents = f.NewContents()
|
||||
warnings = []
|
||||
line_num = 0
|
||||
|
||||
# Handle the special first include. If the first include file is
|
||||
# some/path/file.h, the corresponding including file can be some/path/file.cc,
|
||||
# some/other/path/file.cc, some/path/file_platform.cc, some/path/file-suffix.h
|
||||
# etc. It's also possible that no special first include exists.
|
||||
# If the included file is some/path/file_platform.h the including file could
|
||||
# also be some/path/file_xxxtest_platform.h.
|
||||
including_file_base_name = test_file_tag_pattern.sub(
|
||||
'', input_api.os_path.basename(f.LocalPath()))
|
||||
|
||||
for line in contents:
|
||||
line_num += 1
|
||||
if system_include_pattern.match(line):
|
||||
# No special first include -> process the line again along with normal
|
||||
# includes.
|
||||
line_num -= 1
|
||||
break
|
||||
match = custom_include_pattern.match(line)
|
||||
if match:
|
||||
match_dict = match.groupdict()
|
||||
header_basename = test_file_tag_pattern.sub(
|
||||
'', input_api.os_path.basename(match_dict['FILE'])).replace('.h', '')
|
||||
|
||||
if header_basename not in including_file_base_name:
|
||||
# No special first include -> process the line again along with normal
|
||||
# includes.
|
||||
line_num -= 1
|
||||
break
|
||||
|
||||
# Split into scopes: Each region between #if and #endif is its own scope.
|
||||
scopes = []
|
||||
current_scope = []
|
||||
for line in contents[line_num:]:
|
||||
line_num += 1
|
||||
if uncheckable_includes_pattern.match(line):
|
||||
continue
|
||||
if if_pattern.match(line):
|
||||
scopes.append(current_scope)
|
||||
current_scope = []
|
||||
elif ((system_include_pattern.match(line) or
|
||||
custom_include_pattern.match(line)) and
|
||||
not excluded_include_pattern.match(line)):
|
||||
current_scope.append((line_num, line))
|
||||
scopes.append(current_scope)
|
||||
|
||||
for scope in scopes:
|
||||
warnings.extend(_CheckIncludeOrderForScope(scope, input_api, f.LocalPath(),
|
||||
changed_linenums))
|
||||
return warnings
|
||||
|
||||
|
||||
def _CheckIncludeOrder(input_api, output_api):
|
||||
"""Checks that the #include order is correct.
|
||||
|
||||
1. The corresponding header for source files.
|
||||
2. C system files in alphabetical order
|
||||
3. C++ system files in alphabetical order
|
||||
4. Project's .h files in alphabetical order
|
||||
|
||||
Each region separated by #if, #elif, #else, #endif, #define and #undef follows
|
||||
these rules separately.
|
||||
"""
|
||||
def FileFilterIncludeOrder(affected_file):
|
||||
black_list = (input_api.DEFAULT_BLACK_LIST)
|
||||
return input_api.FilterSourceFile(affected_file, black_list=black_list)
|
||||
|
||||
warnings = []
|
||||
for f in input_api.AffectedFiles(file_filter=FileFilterIncludeOrder):
|
||||
if f.LocalPath().endswith(('.cc', '.cpp', '.h', '.mm')):
|
||||
changed_linenums = set(line_num for line_num, _ in f.ChangedContents())
|
||||
warnings.extend(_CheckIncludeOrderInFile(input_api, f, changed_linenums))
|
||||
|
||||
results = []
|
||||
if warnings:
|
||||
results.append(output_api.PresubmitPromptOrNotify(_INCLUDE_ORDER_WARNING,
|
||||
warnings))
|
||||
return results
|
||||
|
||||
|
||||
def CheckChangeOnUpload(input_api, output_api):
|
||||
results = []
|
||||
results += _CheckUnwantedDependencies(input_api, output_api)
|
||||
results += input_api.canned_checks.CheckPatchFormatted(input_api, output_api)
|
||||
results += input_api.canned_checks.CheckChangeLintsClean(
|
||||
input_api, output_api, None, LINT_FILTERS)
|
||||
results += _CheckIncludeOrder(input_api, output_api)
|
||||
|
||||
return results
|
159
modules/pdfium/pdfium/README.md
Normal file
159
modules/pdfium/pdfium/README.md
Normal file
@ -0,0 +1,159 @@
|
||||
# PDFium
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Get the chromium depot tools via the instructions at
|
||||
http://www.chromium.org/developers/how-tos/install-depot-tools (this provides
|
||||
the gclient utility needed below).
|
||||
|
||||
Also install Python, Subversion, and Git and make sure they're in your path.
|
||||
|
||||
|
||||
### Windows development
|
||||
|
||||
PDFium uses a similar Windows toolchain as Chromium:
|
||||
|
||||
#### Open source contributors
|
||||
Visual Studio 2015 Update 2 or later is highly recommended.
|
||||
|
||||
Run `set DEPOT_TOOLS_WIN_TOOLCHAIN=0`, or set that variable in your global
|
||||
environment.
|
||||
|
||||
Compilation is done through ninja, **not** Visual Studio.
|
||||
|
||||
### CPU Architectures supported
|
||||
|
||||
The default architecture for Windows, Linux, and Mac is "`x64`". On Windows,
|
||||
"`x86`" is also supported. GN parameter "`target_cpu = "x86"`" can be used to
|
||||
override the default value. If you specify Android build, the default CPU
|
||||
architecture will be "`arm`".
|
||||
|
||||
|
||||
#### Google employees
|
||||
|
||||
Run: `download_from_google_storage --config` and follow the
|
||||
authentication instructions. **Note that you must authenticate with your
|
||||
@google.com credentials**. Enter "0" if asked for a project-id.
|
||||
|
||||
Once you've done this, the toolchain will be installed automatically for
|
||||
you in [the step](#GenBuild) below.
|
||||
|
||||
The toolchain will be in `depot_tools\win_toolchain\vs_files\<hash>`, and windbg
|
||||
can be found in `depot_tools\win_toolchain\vs_files\<hash>\win_sdk\Debuggers`.
|
||||
|
||||
If you want the IDE for debugging and editing, you will need to install
|
||||
it separately, but this is optional and not needed for building PDFium.
|
||||
|
||||
## Get the code
|
||||
|
||||
The name of the top-level directory does not matter. In our examples, we use
|
||||
"repo". This directory must not have been used before by `gclient config` as
|
||||
each directory can only house a single gclient configuration.
|
||||
|
||||
```
|
||||
mkdir repo
|
||||
cd repo
|
||||
gclient config --unmanaged https://pdfium.googlesource.com/pdfium.git
|
||||
gclient sync
|
||||
cd pdfium
|
||||
```
|
||||
|
||||
##<a name="GenBuild"></a> Generate the build files
|
||||
|
||||
We use GN to generate the build files and
|
||||
[Ninja](http://martine.github.io/ninja/) (also included with the depot\_tools
|
||||
checkout) to execute the build files.
|
||||
|
||||
```
|
||||
gn gen <directory>
|
||||
```
|
||||
|
||||
### Selecting build configuration
|
||||
|
||||
PDFium may be built either with or without JavaScript support, and with
|
||||
or without XFA forms support. Both of these features are enabled by
|
||||
default. Also note that the XFA feature requires JavaScript.
|
||||
|
||||
Configuration is done by executing `gn args <directory>` to configure the build.
|
||||
This will launch an editor in which you can set the following arguments.
|
||||
|
||||
```
|
||||
use_goma = true # Googlers only.
|
||||
is_debug = true # Enable debugging features.
|
||||
|
||||
pdf_use_skia = false # Set true to enable experimental skia backend.
|
||||
pdf_use_skia_paths = false # Set true to enable experimental skia backend (paths only).
|
||||
|
||||
pdf_enable_xfa = true # Set false to remove XFA support (implies JS support).
|
||||
pdf_enable_v8 = true # Set false to remove Javascript support.
|
||||
pdf_is_standalone = true # Set for a non-embedded build.
|
||||
is_component_build = false # Disable component build (must be false)
|
||||
|
||||
clang_use_chrome_plugins = false # Currently must be false.
|
||||
use_sysroot = false # Currently must be false on Linux.
|
||||
```
|
||||
|
||||
Note, you must set `pdf_is_standalone = true` if you want the sample
|
||||
applications like `pdfium_test` to build.
|
||||
|
||||
When complete the arguments will be stored in `<directory>/args.gn`.
|
||||
|
||||
## Building the code
|
||||
|
||||
If you used Ninja, you can build the sample program by:
|
||||
`ninja -C <directory>/pdfium_test` You can build the entire product (which
|
||||
includes a few unit tests) by: `ninja -C <directory>`.
|
||||
|
||||
## Running the sample program
|
||||
|
||||
The pdfium\_test program supports reading, parsing, and rasterizing the pages of
|
||||
a .pdf file to .ppm or .png output image files (windows supports two other
|
||||
formats). For example: `<directory>/pdfium_test --ppm path/to/myfile.pdf`. Note
|
||||
that this will write output images to `path/to/myfile.pdf.<n>.ppm`.
|
||||
|
||||
## Testing
|
||||
|
||||
There are currently several test suites that can be run:
|
||||
|
||||
* pdfium\_unittests
|
||||
* pdfium\_embeddertests
|
||||
* testing/tools/run\_corpus\_tests.py
|
||||
* testing/tools/run\_javascript\_tests.py
|
||||
* testing/tools/run\_pixel\_tests.py
|
||||
|
||||
It is possible the tests in the `testing` directory can fail due to font
|
||||
differences on the various platforms. These tests are reliable on the bots. If
|
||||
you see failures, it can be a good idea to run the tests on the tip-of-tree
|
||||
checkout to see if the same failures appear.
|
||||
|
||||
## Waterfall
|
||||
|
||||
The current health of the source tree can be found at
|
||||
http://build.chromium.org/p/client.pdfium/console
|
||||
|
||||
## Community
|
||||
|
||||
There are several mailing lists that are setup:
|
||||
|
||||
* [PDFium](https://groups.google.com/forum/#!forum/pdfium)
|
||||
* [PDFium Reviews](https://groups.google.com/forum/#!forum/pdfium-reviews)
|
||||
* [PDFium Bugs](https://groups.google.com/forum/#!forum/pdfium-bugs)
|
||||
|
||||
Note, the Reviews and Bugs lists are typically read-only.
|
||||
|
||||
## Bugs
|
||||
|
||||
We use this
|
||||
[bug tracker](https://code.google.com/p/pdfium/issues/list), but for security
|
||||
bugs, please use [Chromium's security bug template]
|
||||
(https://code.google.com/p/chromium/issues/entry?template=Security%20Bug)
|
||||
and add the "Cr-Internals-Plugins-PDF" label.
|
||||
|
||||
## Contributing code
|
||||
|
||||
For contributing code, we will follow
|
||||
[Chromium's process](http://dev.chromium.org/developers/contributing-code)
|
||||
as much as possible. The main exceptions is:
|
||||
|
||||
1. Code has to conform to the existing style and not Chromium/Google style.
|
||||
|
28
modules/pdfium/pdfium/build_overrides/README.md
Normal file
28
modules/pdfium/pdfium/build_overrides/README.md
Normal file
@ -0,0 +1,28 @@
|
||||
# Build overrides in GN
|
||||
|
||||
This directory is used to allow different products to customize settings
|
||||
for repos which are DEPS'ed in or shared.
|
||||
|
||||
For example: V8 can be built on its own (in a "standalone" configuration),
|
||||
and it can be built as part of Chromium. V8 defines a top-level
|
||||
target, //v8:d8 (a simple executable), which will only be built in the
|
||||
standalone configuration. To indiate itis a standalone configuration, v8 can
|
||||
create a file, build_overrides/v8.gni, containing a variable,
|
||||
`build_standalone_d8 = true` and import it (as
|
||||
import("//build_overrides/v8.gni") from its top-level BUILD.gn file.
|
||||
|
||||
Chromium, on the other hand, does not need to build d8, and so it would
|
||||
create its own build_overrides/v8.gni file, and in it set
|
||||
`build_standalone_d8 = false`.
|
||||
|
||||
The two files should define the same set of variables, but the values may
|
||||
vary as appropriate to suit the the needs of the two different builds.
|
||||
|
||||
The build.gni file provides a way for projects to override defaults for
|
||||
variables used in //build itself (which we want to be shareable between
|
||||
projects).
|
||||
|
||||
TODO(crbug.com/588513): Ideally //build_overrides and, in particular,
|
||||
//build_overrides/build.gni will go away completely in favor of some
|
||||
mechanism that can re-use other required files like //.gn, so that we don't
|
||||
have to keep requiring projects to create a bunch of different files to use GN.
|
62
modules/pdfium/pdfium/build_overrides/build.gni
Normal file
62
modules/pdfium/pdfium/build_overrides/build.gni
Normal file
@ -0,0 +1,62 @@
|
||||
# Copyright 2016 The Chromium Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
# See https://bugs.chromium.org/p/webrtc/issues/detail?id=5453.
|
||||
# Some WebRTC targets require the 10.7 deployment version of the Mac SDK
|
||||
# and a 10.11 min SDK, but those targets are only used in non-Chromium
|
||||
# builds. We can remove this when Chromium drops 10.6 support and also
|
||||
# requires 10.7.
|
||||
mac_sdk_min_build_override = "10.10"
|
||||
mac_deployment_target_build_override = "10.7"
|
||||
|
||||
# Variable that can be used to support multiple build scenarios, like having
|
||||
# Chromium specific targets in a client project's GN file etc.
|
||||
build_with_chromium = false
|
||||
|
||||
# Support different NDK locations in non-Chromium builds.
|
||||
default_android_ndk_root = "//third_party/android_ndk"
|
||||
default_android_ndk_version = "r12b"
|
||||
default_android_ndk_major_version = 12
|
||||
|
||||
# PDFium builds don't support building java targets.
|
||||
enable_java_templates = false
|
||||
|
||||
# Whether to use the neon FPU instruction set or not.
|
||||
if (current_cpu == "arm") {
|
||||
arm_use_neon = true
|
||||
}
|
||||
|
||||
# PDFium builds don't use Chromium's third_party/binutils.
|
||||
linux_use_bundled_binutils_override = false
|
||||
|
||||
# PDFium just uses the Chromium suppression files for now.
|
||||
asan_suppressions_file = "//build/sanitizers/asan_suppressions.cc"
|
||||
lsan_suppressions_file = "//build/sanitizers/lsan_suppressions.cc"
|
||||
tsan_suppressions_file = "//build/sanitizers/tsan_suppressions.cc"
|
||||
|
||||
declare_args() {
|
||||
# Android 32-bit non-component, non-clang builds cannot have symbol_level=2
|
||||
# due to 4GiB file size limit, see https://crbug.com/648948.
|
||||
# Set this flag to true to skip the assertion.
|
||||
ignore_elf32_limitations = false
|
||||
|
||||
# Use the system install of Xcode for tools like ibtool, libtool, etc.
|
||||
# This does not affect the compiler. When this variable is false, targets will
|
||||
# instead use a hermetic install of Xcode. [The hermetic install can be
|
||||
# obtained with gclient sync after setting the environment variable
|
||||
# FORCE_MAC_TOOLCHAIN].
|
||||
use_system_xcode = ""
|
||||
}
|
||||
|
||||
if (use_system_xcode == "") {
|
||||
if (target_os == "mac") {
|
||||
_result = exec_script("//build/mac/should_use_hermetic_xcode.py",
|
||||
[ target_os ],
|
||||
"value")
|
||||
use_system_xcode = _result == 0
|
||||
}
|
||||
if (target_os == "ios") {
|
||||
use_system_xcode = true
|
||||
}
|
||||
}
|
15
modules/pdfium/pdfium/build_overrides/gtest.gni
Normal file
15
modules/pdfium/pdfium/build_overrides/gtest.gni
Normal file
@ -0,0 +1,15 @@
|
||||
# Copyright 2016 The Chromium Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
# Exclude support for registering main function in multi-process tests.
|
||||
gtest_include_multiprocess = false
|
||||
|
||||
# Exclude support for platform-specific operations across unit tests.
|
||||
gtest_include_platform_test = false
|
||||
|
||||
# Exclude support for testing Objective C code on OS X and iOS.
|
||||
gtest_include_objc_support = false
|
||||
|
||||
# Exclude support for flushing coverage files on iOS.
|
||||
gtest_include_ios_coverage = false
|
20
modules/pdfium/pdfium/build_overrides/pdfium.gni
Normal file
20
modules/pdfium/pdfium/build_overrides/pdfium.gni
Normal file
@ -0,0 +1,20 @@
|
||||
# Copyright 2016 The Chromium Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
# This file contains PDFium-related build overrides.
|
||||
|
||||
# Build PDFium either with or without v8 support.
|
||||
pdf_enable_v8_override = true
|
||||
|
||||
# Build PDFium either with or without XFA Forms support.
|
||||
pdf_enable_xfa_override = false
|
||||
|
||||
# Build PDFium against skia (experimental) rather than agg, replacing all PDFium graphics.
|
||||
pdf_use_skia_override = false
|
||||
|
||||
# Build PDFium against skia (experimental) rather than agg, adding only path support.
|
||||
pdf_use_skia_paths_override = false
|
||||
|
||||
# Build PDFium either with or without experimental win32 GDI APIs.
|
||||
pdf_use_win32_gdi_override = false
|
8
modules/pdfium/pdfium/codereview.settings
Normal file
8
modules/pdfium/pdfium/codereview.settings
Normal file
@ -0,0 +1,8 @@
|
||||
# This file is used by git cl to get repository specific information.
|
||||
CC_LIST: pdfium-reviews@googlegroups.com
|
||||
CODE_REVIEW_SERVER: codereview.chromium.org
|
||||
GERRIT_HOST: True
|
||||
PROJECT: pdfium
|
||||
STATUS: http://pdfium-status.appspot.com/status
|
||||
TRY_ON_UPLOAD: False
|
||||
VIEW_VC: https://pdfium.googlesource.com/pdfium/+/
|
254
modules/pdfium/pdfium/core/fdrm/crypto/fx_crypt.cpp
Normal file
254
modules/pdfium/pdfium/core/fdrm/crypto/fx_crypt.cpp
Normal file
@ -0,0 +1,254 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fdrm/crypto/fx_crypt.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
void CRYPT_ArcFourSetup(CRYPT_rc4_context* s,
|
||||
const uint8_t* key,
|
||||
uint32_t length) {
|
||||
int i, j, k, *m, a;
|
||||
s->x = 0;
|
||||
s->y = 0;
|
||||
m = s->m;
|
||||
for (i = 0; i < 256; i++) {
|
||||
m[i] = i;
|
||||
}
|
||||
j = k = 0;
|
||||
for (i = 0; i < 256; i++) {
|
||||
a = m[i];
|
||||
j = (j + a + key[k]) & 0xFF;
|
||||
m[i] = m[j];
|
||||
m[j] = a;
|
||||
if (++k >= (int)length) {
|
||||
k = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CRYPT_ArcFourCrypt(CRYPT_rc4_context* s,
|
||||
unsigned char* data,
|
||||
uint32_t length) {
|
||||
int i, x, y, *m, a, b;
|
||||
x = s->x;
|
||||
y = s->y;
|
||||
m = s->m;
|
||||
for (i = 0; i < (int)length; i++) {
|
||||
x = (x + 1) & 0xFF;
|
||||
a = m[x];
|
||||
y = (y + a) & 0xFF;
|
||||
m[x] = b = m[y];
|
||||
m[y] = a;
|
||||
data[i] ^= m[(a + b) & 0xFF];
|
||||
}
|
||||
s->x = x;
|
||||
s->y = y;
|
||||
}
|
||||
|
||||
void CRYPT_ArcFourCryptBlock(uint8_t* pData,
|
||||
uint32_t size,
|
||||
const uint8_t* key,
|
||||
uint32_t keylen) {
|
||||
CRYPT_rc4_context s;
|
||||
CRYPT_ArcFourSetup(&s, key, keylen);
|
||||
CRYPT_ArcFourCrypt(&s, pData, size);
|
||||
}
|
||||
|
||||
#define GET_UINT32(n, b, i) \
|
||||
{ \
|
||||
(n) = (uint32_t)((uint8_t*)b)[(i)] | \
|
||||
(((uint32_t)((uint8_t*)b)[(i) + 1]) << 8) | \
|
||||
(((uint32_t)((uint8_t*)b)[(i) + 2]) << 16) | \
|
||||
(((uint32_t)((uint8_t*)b)[(i) + 3]) << 24); \
|
||||
}
|
||||
#define PUT_UINT32(n, b, i) \
|
||||
{ \
|
||||
(((uint8_t*)b)[(i)]) = (uint8_t)(((n)) & 0xFF); \
|
||||
(((uint8_t*)b)[(i) + 1]) = (uint8_t)(((n) >> 8) & 0xFF); \
|
||||
(((uint8_t*)b)[(i) + 2]) = (uint8_t)(((n) >> 16) & 0xFF); \
|
||||
(((uint8_t*)b)[(i) + 3]) = (uint8_t)(((n) >> 24) & 0xFF); \
|
||||
}
|
||||
|
||||
void md5_process(CRYPT_md5_context* ctx, const uint8_t data[64]) {
|
||||
uint32_t A, B, C, D, X[16];
|
||||
GET_UINT32(X[0], data, 0);
|
||||
GET_UINT32(X[1], data, 4);
|
||||
GET_UINT32(X[2], data, 8);
|
||||
GET_UINT32(X[3], data, 12);
|
||||
GET_UINT32(X[4], data, 16);
|
||||
GET_UINT32(X[5], data, 20);
|
||||
GET_UINT32(X[6], data, 24);
|
||||
GET_UINT32(X[7], data, 28);
|
||||
GET_UINT32(X[8], data, 32);
|
||||
GET_UINT32(X[9], data, 36);
|
||||
GET_UINT32(X[10], data, 40);
|
||||
GET_UINT32(X[11], data, 44);
|
||||
GET_UINT32(X[12], data, 48);
|
||||
GET_UINT32(X[13], data, 52);
|
||||
GET_UINT32(X[14], data, 56);
|
||||
GET_UINT32(X[15], data, 60);
|
||||
#define S(x, n) ((x << n) | ((x & 0xFFFFFFFF) >> (32 - n)))
|
||||
#define P(a, b, c, d, k, s, t) \
|
||||
{ \
|
||||
a += F(b, c, d) + X[k] + t; \
|
||||
a = S(a, s) + b; \
|
||||
}
|
||||
A = ctx->state[0];
|
||||
B = ctx->state[1];
|
||||
C = ctx->state[2];
|
||||
D = ctx->state[3];
|
||||
#define F(x, y, z) (z ^ (x & (y ^ z)))
|
||||
P(A, B, C, D, 0, 7, 0xD76AA478);
|
||||
P(D, A, B, C, 1, 12, 0xE8C7B756);
|
||||
P(C, D, A, B, 2, 17, 0x242070DB);
|
||||
P(B, C, D, A, 3, 22, 0xC1BDCEEE);
|
||||
P(A, B, C, D, 4, 7, 0xF57C0FAF);
|
||||
P(D, A, B, C, 5, 12, 0x4787C62A);
|
||||
P(C, D, A, B, 6, 17, 0xA8304613);
|
||||
P(B, C, D, A, 7, 22, 0xFD469501);
|
||||
P(A, B, C, D, 8, 7, 0x698098D8);
|
||||
P(D, A, B, C, 9, 12, 0x8B44F7AF);
|
||||
P(C, D, A, B, 10, 17, 0xFFFF5BB1);
|
||||
P(B, C, D, A, 11, 22, 0x895CD7BE);
|
||||
P(A, B, C, D, 12, 7, 0x6B901122);
|
||||
P(D, A, B, C, 13, 12, 0xFD987193);
|
||||
P(C, D, A, B, 14, 17, 0xA679438E);
|
||||
P(B, C, D, A, 15, 22, 0x49B40821);
|
||||
#undef F
|
||||
#define F(x, y, z) (y ^ (z & (x ^ y)))
|
||||
P(A, B, C, D, 1, 5, 0xF61E2562);
|
||||
P(D, A, B, C, 6, 9, 0xC040B340);
|
||||
P(C, D, A, B, 11, 14, 0x265E5A51);
|
||||
P(B, C, D, A, 0, 20, 0xE9B6C7AA);
|
||||
P(A, B, C, D, 5, 5, 0xD62F105D);
|
||||
P(D, A, B, C, 10, 9, 0x02441453);
|
||||
P(C, D, A, B, 15, 14, 0xD8A1E681);
|
||||
P(B, C, D, A, 4, 20, 0xE7D3FBC8);
|
||||
P(A, B, C, D, 9, 5, 0x21E1CDE6);
|
||||
P(D, A, B, C, 14, 9, 0xC33707D6);
|
||||
P(C, D, A, B, 3, 14, 0xF4D50D87);
|
||||
P(B, C, D, A, 8, 20, 0x455A14ED);
|
||||
P(A, B, C, D, 13, 5, 0xA9E3E905);
|
||||
P(D, A, B, C, 2, 9, 0xFCEFA3F8);
|
||||
P(C, D, A, B, 7, 14, 0x676F02D9);
|
||||
P(B, C, D, A, 12, 20, 0x8D2A4C8A);
|
||||
#undef F
|
||||
#define F(x, y, z) (x ^ y ^ z)
|
||||
P(A, B, C, D, 5, 4, 0xFFFA3942);
|
||||
P(D, A, B, C, 8, 11, 0x8771F681);
|
||||
P(C, D, A, B, 11, 16, 0x6D9D6122);
|
||||
P(B, C, D, A, 14, 23, 0xFDE5380C);
|
||||
P(A, B, C, D, 1, 4, 0xA4BEEA44);
|
||||
P(D, A, B, C, 4, 11, 0x4BDECFA9);
|
||||
P(C, D, A, B, 7, 16, 0xF6BB4B60);
|
||||
P(B, C, D, A, 10, 23, 0xBEBFBC70);
|
||||
P(A, B, C, D, 13, 4, 0x289B7EC6);
|
||||
P(D, A, B, C, 0, 11, 0xEAA127FA);
|
||||
P(C, D, A, B, 3, 16, 0xD4EF3085);
|
||||
P(B, C, D, A, 6, 23, 0x04881D05);
|
||||
P(A, B, C, D, 9, 4, 0xD9D4D039);
|
||||
P(D, A, B, C, 12, 11, 0xE6DB99E5);
|
||||
P(C, D, A, B, 15, 16, 0x1FA27CF8);
|
||||
P(B, C, D, A, 2, 23, 0xC4AC5665);
|
||||
#undef F
|
||||
#define F(x, y, z) (y ^ (x | ~z))
|
||||
P(A, B, C, D, 0, 6, 0xF4292244);
|
||||
P(D, A, B, C, 7, 10, 0x432AFF97);
|
||||
P(C, D, A, B, 14, 15, 0xAB9423A7);
|
||||
P(B, C, D, A, 5, 21, 0xFC93A039);
|
||||
P(A, B, C, D, 12, 6, 0x655B59C3);
|
||||
P(D, A, B, C, 3, 10, 0x8F0CCC92);
|
||||
P(C, D, A, B, 10, 15, 0xFFEFF47D);
|
||||
P(B, C, D, A, 1, 21, 0x85845DD1);
|
||||
P(A, B, C, D, 8, 6, 0x6FA87E4F);
|
||||
P(D, A, B, C, 15, 10, 0xFE2CE6E0);
|
||||
P(C, D, A, B, 6, 15, 0xA3014314);
|
||||
P(B, C, D, A, 13, 21, 0x4E0811A1);
|
||||
P(A, B, C, D, 4, 6, 0xF7537E82);
|
||||
P(D, A, B, C, 11, 10, 0xBD3AF235);
|
||||
P(C, D, A, B, 2, 15, 0x2AD7D2BB);
|
||||
P(B, C, D, A, 9, 21, 0xEB86D391);
|
||||
#undef F
|
||||
ctx->state[0] += A;
|
||||
ctx->state[1] += B;
|
||||
ctx->state[2] += C;
|
||||
ctx->state[3] += D;
|
||||
}
|
||||
|
||||
void CRYPT_MD5Start(CRYPT_md5_context* ctx) {
|
||||
ctx->total[0] = 0;
|
||||
ctx->total[1] = 0;
|
||||
ctx->state[0] = 0x67452301;
|
||||
ctx->state[1] = 0xEFCDAB89;
|
||||
ctx->state[2] = 0x98BADCFE;
|
||||
ctx->state[3] = 0x10325476;
|
||||
}
|
||||
|
||||
void CRYPT_MD5Update(CRYPT_md5_context* ctx,
|
||||
const uint8_t* input,
|
||||
uint32_t length) {
|
||||
uint32_t left, fill;
|
||||
if (!length) {
|
||||
return;
|
||||
}
|
||||
left = (ctx->total[0] >> 3) & 0x3F;
|
||||
fill = 64 - left;
|
||||
ctx->total[0] += length << 3;
|
||||
ctx->total[1] += length >> 29;
|
||||
ctx->total[0] &= 0xFFFFFFFF;
|
||||
ctx->total[1] += ctx->total[0] < length << 3;
|
||||
if (left && length >= fill) {
|
||||
FXSYS_memcpy((void*)(ctx->buffer + left), (void*)input, fill);
|
||||
md5_process(ctx, ctx->buffer);
|
||||
length -= fill;
|
||||
input += fill;
|
||||
left = 0;
|
||||
}
|
||||
while (length >= 64) {
|
||||
md5_process(ctx, input);
|
||||
length -= 64;
|
||||
input += 64;
|
||||
}
|
||||
if (length) {
|
||||
FXSYS_memcpy((void*)(ctx->buffer + left), (void*)input, length);
|
||||
}
|
||||
}
|
||||
|
||||
const uint8_t md5_padding[64] = {
|
||||
0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
||||
|
||||
void CRYPT_MD5Finish(CRYPT_md5_context* ctx, uint8_t digest[16]) {
|
||||
uint32_t last, padn;
|
||||
uint8_t msglen[8];
|
||||
PUT_UINT32(ctx->total[0], msglen, 0);
|
||||
PUT_UINT32(ctx->total[1], msglen, 4);
|
||||
last = (ctx->total[0] >> 3) & 0x3F;
|
||||
padn = (last < 56) ? (56 - last) : (120 - last);
|
||||
CRYPT_MD5Update(ctx, md5_padding, padn);
|
||||
CRYPT_MD5Update(ctx, msglen, 8);
|
||||
PUT_UINT32(ctx->state[0], digest, 0);
|
||||
PUT_UINT32(ctx->state[1], digest, 4);
|
||||
PUT_UINT32(ctx->state[2], digest, 8);
|
||||
PUT_UINT32(ctx->state[3], digest, 12);
|
||||
}
|
||||
|
||||
void CRYPT_MD5Generate(const uint8_t* input,
|
||||
uint32_t length,
|
||||
uint8_t digest[16]) {
|
||||
CRYPT_md5_context ctx;
|
||||
CRYPT_MD5Start(&ctx);
|
||||
CRYPT_MD5Update(&ctx, input, length);
|
||||
CRYPT_MD5Finish(&ctx, digest);
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
116
modules/pdfium/pdfium/core/fdrm/crypto/fx_crypt.h
Normal file
116
modules/pdfium/pdfium/core/fdrm/crypto/fx_crypt.h
Normal file
@ -0,0 +1,116 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#ifndef CORE_FDRM_CRYPTO_FX_CRYPT_H_
|
||||
#define CORE_FDRM_CRYPTO_FX_CRYPT_H_
|
||||
|
||||
#include "core/fxcrt/fx_system.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
int32_t x;
|
||||
int32_t y;
|
||||
int32_t m[256];
|
||||
} CRYPT_rc4_context;
|
||||
|
||||
typedef struct {
|
||||
uint32_t total[2];
|
||||
uint32_t state[4];
|
||||
uint8_t buffer[64];
|
||||
} CRYPT_md5_context;
|
||||
|
||||
typedef struct {
|
||||
unsigned int h[5];
|
||||
unsigned char block[64];
|
||||
int blkused;
|
||||
unsigned int lenhi;
|
||||
unsigned int lenlo;
|
||||
} CRYPT_sha1_context;
|
||||
|
||||
typedef struct {
|
||||
uint32_t total[2];
|
||||
uint32_t state[8];
|
||||
uint8_t buffer[64];
|
||||
} CRYPT_sha256_context;
|
||||
|
||||
typedef struct {
|
||||
uint64_t total[2];
|
||||
uint64_t state[8];
|
||||
uint8_t buffer[128];
|
||||
} CRYPT_sha384_context;
|
||||
|
||||
void CRYPT_ArcFourCryptBlock(uint8_t* data,
|
||||
uint32_t size,
|
||||
const uint8_t* key,
|
||||
uint32_t keylen);
|
||||
void CRYPT_ArcFourSetup(CRYPT_rc4_context* context,
|
||||
const uint8_t* key,
|
||||
uint32_t length);
|
||||
void CRYPT_ArcFourCrypt(CRYPT_rc4_context* context,
|
||||
uint8_t* data,
|
||||
uint32_t size);
|
||||
|
||||
void CRYPT_AESSetKey(void* context,
|
||||
uint32_t blocklen,
|
||||
const uint8_t* key,
|
||||
uint32_t keylen,
|
||||
bool bEncrypt);
|
||||
void CRYPT_AESSetIV(void* context, const uint8_t* iv);
|
||||
void CRYPT_AESDecrypt(void* context,
|
||||
uint8_t* dest,
|
||||
const uint8_t* src,
|
||||
uint32_t size);
|
||||
void CRYPT_AESEncrypt(void* context,
|
||||
uint8_t* dest,
|
||||
const uint8_t* src,
|
||||
uint32_t size);
|
||||
|
||||
void CRYPT_MD5Start(CRYPT_md5_context* context);
|
||||
void CRYPT_MD5Update(CRYPT_md5_context* context,
|
||||
const uint8_t* data,
|
||||
uint32_t size);
|
||||
void CRYPT_MD5Finish(CRYPT_md5_context* context, uint8_t digest[16]);
|
||||
void CRYPT_MD5Generate(const uint8_t* data, uint32_t size, uint8_t digest[16]);
|
||||
|
||||
void CRYPT_SHA1Start(CRYPT_sha1_context* context);
|
||||
void CRYPT_SHA1Update(CRYPT_sha1_context* context,
|
||||
const uint8_t* data,
|
||||
uint32_t size);
|
||||
void CRYPT_SHA1Finish(CRYPT_sha1_context* context, uint8_t digest[20]);
|
||||
void CRYPT_SHA1Generate(const uint8_t* data, uint32_t size, uint8_t digest[20]);
|
||||
|
||||
void CRYPT_SHA256Start(CRYPT_sha256_context* context);
|
||||
void CRYPT_SHA256Update(CRYPT_sha256_context* context,
|
||||
const uint8_t* data,
|
||||
uint32_t size);
|
||||
void CRYPT_SHA256Finish(CRYPT_sha256_context* context, uint8_t digest[32]);
|
||||
void CRYPT_SHA256Generate(const uint8_t* data,
|
||||
uint32_t size,
|
||||
uint8_t digest[32]);
|
||||
|
||||
void CRYPT_SHA384Start(CRYPT_sha384_context* context);
|
||||
void CRYPT_SHA384Update(CRYPT_sha384_context* context,
|
||||
const uint8_t* data,
|
||||
uint32_t size);
|
||||
void CRYPT_SHA384Finish(CRYPT_sha384_context* context, uint8_t digest[48]);
|
||||
void CRYPT_SHA384Generate(const uint8_t* data,
|
||||
uint32_t size,
|
||||
uint8_t digest[48]);
|
||||
|
||||
void CRYPT_SHA512Start(void* context);
|
||||
void CRYPT_SHA512Update(void* context, const uint8_t* data, uint32_t size);
|
||||
void CRYPT_SHA512Finish(void* context, uint8_t digest[64]);
|
||||
void CRYPT_SHA512Generate(const uint8_t* data,
|
||||
uint32_t size,
|
||||
uint8_t digest[64]);
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
|
||||
#endif // CORE_FDRM_CRYPTO_FX_CRYPT_H_
|
833
modules/pdfium/pdfium/core/fdrm/crypto/fx_crypt_aes.cpp
Normal file
833
modules/pdfium/pdfium/core/fdrm/crypto/fx_crypt_aes.cpp
Normal file
@ -0,0 +1,833 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fdrm/crypto/fx_crypt.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#define MAX_NR 14
|
||||
#define MAX_NK 8
|
||||
#define MAX_NB 8
|
||||
#define mulby2(x) (((x & 0x7F) << 1) ^ (x & 0x80 ? 0x1B : 0))
|
||||
#define GET_32BIT_MSB_FIRST(cp) \
|
||||
(((unsigned long)(unsigned char)(cp)[3]) | \
|
||||
((unsigned long)(unsigned char)(cp)[2] << 8) | \
|
||||
((unsigned long)(unsigned char)(cp)[1] << 16) | \
|
||||
((unsigned long)(unsigned char)(cp)[0] << 24))
|
||||
#define PUT_32BIT_MSB_FIRST(cp, value) \
|
||||
do { \
|
||||
(cp)[3] = (value); \
|
||||
(cp)[2] = (value) >> 8; \
|
||||
(cp)[1] = (value) >> 16; \
|
||||
(cp)[0] = (value) >> 24; \
|
||||
} while (0)
|
||||
struct AESContext {
|
||||
unsigned int keysched[(MAX_NR + 1) * MAX_NB];
|
||||
unsigned int invkeysched[(MAX_NR + 1) * MAX_NB];
|
||||
void (*encrypt)(AESContext* ctx, unsigned int* block);
|
||||
void (*decrypt)(AESContext* ctx, unsigned int* block);
|
||||
unsigned int iv[MAX_NB];
|
||||
int Nb, Nr;
|
||||
};
|
||||
static const unsigned char Sbox[256] = {
|
||||
0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b,
|
||||
0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0,
|
||||
0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26,
|
||||
0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15,
|
||||
0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2,
|
||||
0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0,
|
||||
0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed,
|
||||
0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf,
|
||||
0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f,
|
||||
0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5,
|
||||
0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec,
|
||||
0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73,
|
||||
0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14,
|
||||
0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c,
|
||||
0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d,
|
||||
0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08,
|
||||
0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f,
|
||||
0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e,
|
||||
0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11,
|
||||
0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf,
|
||||
0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f,
|
||||
0xb0, 0x54, 0xbb, 0x16};
|
||||
static const unsigned char Sboxinv[256] = {
|
||||
0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e,
|
||||
0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87,
|
||||
0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32,
|
||||
0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e,
|
||||
0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49,
|
||||
0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16,
|
||||
0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50,
|
||||
0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84,
|
||||
0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05,
|
||||
0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02,
|
||||
0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41,
|
||||
0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73,
|
||||
0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8,
|
||||
0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89,
|
||||
0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b,
|
||||
0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4,
|
||||
0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59,
|
||||
0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d,
|
||||
0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d,
|
||||
0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61,
|
||||
0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63,
|
||||
0x55, 0x21, 0x0c, 0x7d};
|
||||
static const unsigned int E0[256] = {
|
||||
0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d, 0xfff2f20d, 0xd66b6bbd,
|
||||
0xde6f6fb1, 0x91c5c554, 0x60303050, 0x02010103, 0xce6767a9, 0x562b2b7d,
|
||||
0xe7fefe19, 0xb5d7d762, 0x4dababe6, 0xec76769a, 0x8fcaca45, 0x1f82829d,
|
||||
0x89c9c940, 0xfa7d7d87, 0xeffafa15, 0xb25959eb, 0x8e4747c9, 0xfbf0f00b,
|
||||
0x41adadec, 0xb3d4d467, 0x5fa2a2fd, 0x45afafea, 0x239c9cbf, 0x53a4a4f7,
|
||||
0xe4727296, 0x9bc0c05b, 0x75b7b7c2, 0xe1fdfd1c, 0x3d9393ae, 0x4c26266a,
|
||||
0x6c36365a, 0x7e3f3f41, 0xf5f7f702, 0x83cccc4f, 0x6834345c, 0x51a5a5f4,
|
||||
0xd1e5e534, 0xf9f1f108, 0xe2717193, 0xabd8d873, 0x62313153, 0x2a15153f,
|
||||
0x0804040c, 0x95c7c752, 0x46232365, 0x9dc3c35e, 0x30181828, 0x379696a1,
|
||||
0x0a05050f, 0x2f9a9ab5, 0x0e070709, 0x24121236, 0x1b80809b, 0xdfe2e23d,
|
||||
0xcdebeb26, 0x4e272769, 0x7fb2b2cd, 0xea75759f, 0x1209091b, 0x1d83839e,
|
||||
0x582c2c74, 0x341a1a2e, 0x361b1b2d, 0xdc6e6eb2, 0xb45a5aee, 0x5ba0a0fb,
|
||||
0xa45252f6, 0x763b3b4d, 0xb7d6d661, 0x7db3b3ce, 0x5229297b, 0xdde3e33e,
|
||||
0x5e2f2f71, 0x13848497, 0xa65353f5, 0xb9d1d168, 0x00000000, 0xc1eded2c,
|
||||
0x40202060, 0xe3fcfc1f, 0x79b1b1c8, 0xb65b5bed, 0xd46a6abe, 0x8dcbcb46,
|
||||
0x67bebed9, 0x7239394b, 0x944a4ade, 0x984c4cd4, 0xb05858e8, 0x85cfcf4a,
|
||||
0xbbd0d06b, 0xc5efef2a, 0x4faaaae5, 0xedfbfb16, 0x864343c5, 0x9a4d4dd7,
|
||||
0x66333355, 0x11858594, 0x8a4545cf, 0xe9f9f910, 0x04020206, 0xfe7f7f81,
|
||||
0xa05050f0, 0x783c3c44, 0x259f9fba, 0x4ba8a8e3, 0xa25151f3, 0x5da3a3fe,
|
||||
0x804040c0, 0x058f8f8a, 0x3f9292ad, 0x219d9dbc, 0x70383848, 0xf1f5f504,
|
||||
0x63bcbcdf, 0x77b6b6c1, 0xafdada75, 0x42212163, 0x20101030, 0xe5ffff1a,
|
||||
0xfdf3f30e, 0xbfd2d26d, 0x81cdcd4c, 0x180c0c14, 0x26131335, 0xc3ecec2f,
|
||||
0xbe5f5fe1, 0x359797a2, 0x884444cc, 0x2e171739, 0x93c4c457, 0x55a7a7f2,
|
||||
0xfc7e7e82, 0x7a3d3d47, 0xc86464ac, 0xba5d5de7, 0x3219192b, 0xe6737395,
|
||||
0xc06060a0, 0x19818198, 0x9e4f4fd1, 0xa3dcdc7f, 0x44222266, 0x542a2a7e,
|
||||
0x3b9090ab, 0x0b888883, 0x8c4646ca, 0xc7eeee29, 0x6bb8b8d3, 0x2814143c,
|
||||
0xa7dede79, 0xbc5e5ee2, 0x160b0b1d, 0xaddbdb76, 0xdbe0e03b, 0x64323256,
|
||||
0x743a3a4e, 0x140a0a1e, 0x924949db, 0x0c06060a, 0x4824246c, 0xb85c5ce4,
|
||||
0x9fc2c25d, 0xbdd3d36e, 0x43acacef, 0xc46262a6, 0x399191a8, 0x319595a4,
|
||||
0xd3e4e437, 0xf279798b, 0xd5e7e732, 0x8bc8c843, 0x6e373759, 0xda6d6db7,
|
||||
0x018d8d8c, 0xb1d5d564, 0x9c4e4ed2, 0x49a9a9e0, 0xd86c6cb4, 0xac5656fa,
|
||||
0xf3f4f407, 0xcfeaea25, 0xca6565af, 0xf47a7a8e, 0x47aeaee9, 0x10080818,
|
||||
0x6fbabad5, 0xf0787888, 0x4a25256f, 0x5c2e2e72, 0x381c1c24, 0x57a6a6f1,
|
||||
0x73b4b4c7, 0x97c6c651, 0xcbe8e823, 0xa1dddd7c, 0xe874749c, 0x3e1f1f21,
|
||||
0x964b4bdd, 0x61bdbddc, 0x0d8b8b86, 0x0f8a8a85, 0xe0707090, 0x7c3e3e42,
|
||||
0x71b5b5c4, 0xcc6666aa, 0x904848d8, 0x06030305, 0xf7f6f601, 0x1c0e0e12,
|
||||
0xc26161a3, 0x6a35355f, 0xae5757f9, 0x69b9b9d0, 0x17868691, 0x99c1c158,
|
||||
0x3a1d1d27, 0x279e9eb9, 0xd9e1e138, 0xebf8f813, 0x2b9898b3, 0x22111133,
|
||||
0xd26969bb, 0xa9d9d970, 0x078e8e89, 0x339494a7, 0x2d9b9bb6, 0x3c1e1e22,
|
||||
0x15878792, 0xc9e9e920, 0x87cece49, 0xaa5555ff, 0x50282878, 0xa5dfdf7a,
|
||||
0x038c8c8f, 0x59a1a1f8, 0x09898980, 0x1a0d0d17, 0x65bfbfda, 0xd7e6e631,
|
||||
0x844242c6, 0xd06868b8, 0x824141c3, 0x299999b0, 0x5a2d2d77, 0x1e0f0f11,
|
||||
0x7bb0b0cb, 0xa85454fc, 0x6dbbbbd6, 0x2c16163a,
|
||||
};
|
||||
static const unsigned int E1[256] = {
|
||||
0xa5c66363, 0x84f87c7c, 0x99ee7777, 0x8df67b7b, 0x0dfff2f2, 0xbdd66b6b,
|
||||
0xb1de6f6f, 0x5491c5c5, 0x50603030, 0x03020101, 0xa9ce6767, 0x7d562b2b,
|
||||
0x19e7fefe, 0x62b5d7d7, 0xe64dabab, 0x9aec7676, 0x458fcaca, 0x9d1f8282,
|
||||
0x4089c9c9, 0x87fa7d7d, 0x15effafa, 0xebb25959, 0xc98e4747, 0x0bfbf0f0,
|
||||
0xec41adad, 0x67b3d4d4, 0xfd5fa2a2, 0xea45afaf, 0xbf239c9c, 0xf753a4a4,
|
||||
0x96e47272, 0x5b9bc0c0, 0xc275b7b7, 0x1ce1fdfd, 0xae3d9393, 0x6a4c2626,
|
||||
0x5a6c3636, 0x417e3f3f, 0x02f5f7f7, 0x4f83cccc, 0x5c683434, 0xf451a5a5,
|
||||
0x34d1e5e5, 0x08f9f1f1, 0x93e27171, 0x73abd8d8, 0x53623131, 0x3f2a1515,
|
||||
0x0c080404, 0x5295c7c7, 0x65462323, 0x5e9dc3c3, 0x28301818, 0xa1379696,
|
||||
0x0f0a0505, 0xb52f9a9a, 0x090e0707, 0x36241212, 0x9b1b8080, 0x3ddfe2e2,
|
||||
0x26cdebeb, 0x694e2727, 0xcd7fb2b2, 0x9fea7575, 0x1b120909, 0x9e1d8383,
|
||||
0x74582c2c, 0x2e341a1a, 0x2d361b1b, 0xb2dc6e6e, 0xeeb45a5a, 0xfb5ba0a0,
|
||||
0xf6a45252, 0x4d763b3b, 0x61b7d6d6, 0xce7db3b3, 0x7b522929, 0x3edde3e3,
|
||||
0x715e2f2f, 0x97138484, 0xf5a65353, 0x68b9d1d1, 0x00000000, 0x2cc1eded,
|
||||
0x60402020, 0x1fe3fcfc, 0xc879b1b1, 0xedb65b5b, 0xbed46a6a, 0x468dcbcb,
|
||||
0xd967bebe, 0x4b723939, 0xde944a4a, 0xd4984c4c, 0xe8b05858, 0x4a85cfcf,
|
||||
0x6bbbd0d0, 0x2ac5efef, 0xe54faaaa, 0x16edfbfb, 0xc5864343, 0xd79a4d4d,
|
||||
0x55663333, 0x94118585, 0xcf8a4545, 0x10e9f9f9, 0x06040202, 0x81fe7f7f,
|
||||
0xf0a05050, 0x44783c3c, 0xba259f9f, 0xe34ba8a8, 0xf3a25151, 0xfe5da3a3,
|
||||
0xc0804040, 0x8a058f8f, 0xad3f9292, 0xbc219d9d, 0x48703838, 0x04f1f5f5,
|
||||
0xdf63bcbc, 0xc177b6b6, 0x75afdada, 0x63422121, 0x30201010, 0x1ae5ffff,
|
||||
0x0efdf3f3, 0x6dbfd2d2, 0x4c81cdcd, 0x14180c0c, 0x35261313, 0x2fc3ecec,
|
||||
0xe1be5f5f, 0xa2359797, 0xcc884444, 0x392e1717, 0x5793c4c4, 0xf255a7a7,
|
||||
0x82fc7e7e, 0x477a3d3d, 0xacc86464, 0xe7ba5d5d, 0x2b321919, 0x95e67373,
|
||||
0xa0c06060, 0x98198181, 0xd19e4f4f, 0x7fa3dcdc, 0x66442222, 0x7e542a2a,
|
||||
0xab3b9090, 0x830b8888, 0xca8c4646, 0x29c7eeee, 0xd36bb8b8, 0x3c281414,
|
||||
0x79a7dede, 0xe2bc5e5e, 0x1d160b0b, 0x76addbdb, 0x3bdbe0e0, 0x56643232,
|
||||
0x4e743a3a, 0x1e140a0a, 0xdb924949, 0x0a0c0606, 0x6c482424, 0xe4b85c5c,
|
||||
0x5d9fc2c2, 0x6ebdd3d3, 0xef43acac, 0xa6c46262, 0xa8399191, 0xa4319595,
|
||||
0x37d3e4e4, 0x8bf27979, 0x32d5e7e7, 0x438bc8c8, 0x596e3737, 0xb7da6d6d,
|
||||
0x8c018d8d, 0x64b1d5d5, 0xd29c4e4e, 0xe049a9a9, 0xb4d86c6c, 0xfaac5656,
|
||||
0x07f3f4f4, 0x25cfeaea, 0xafca6565, 0x8ef47a7a, 0xe947aeae, 0x18100808,
|
||||
0xd56fbaba, 0x88f07878, 0x6f4a2525, 0x725c2e2e, 0x24381c1c, 0xf157a6a6,
|
||||
0xc773b4b4, 0x5197c6c6, 0x23cbe8e8, 0x7ca1dddd, 0x9ce87474, 0x213e1f1f,
|
||||
0xdd964b4b, 0xdc61bdbd, 0x860d8b8b, 0x850f8a8a, 0x90e07070, 0x427c3e3e,
|
||||
0xc471b5b5, 0xaacc6666, 0xd8904848, 0x05060303, 0x01f7f6f6, 0x121c0e0e,
|
||||
0xa3c26161, 0x5f6a3535, 0xf9ae5757, 0xd069b9b9, 0x91178686, 0x5899c1c1,
|
||||
0x273a1d1d, 0xb9279e9e, 0x38d9e1e1, 0x13ebf8f8, 0xb32b9898, 0x33221111,
|
||||
0xbbd26969, 0x70a9d9d9, 0x89078e8e, 0xa7339494, 0xb62d9b9b, 0x223c1e1e,
|
||||
0x92158787, 0x20c9e9e9, 0x4987cece, 0xffaa5555, 0x78502828, 0x7aa5dfdf,
|
||||
0x8f038c8c, 0xf859a1a1, 0x80098989, 0x171a0d0d, 0xda65bfbf, 0x31d7e6e6,
|
||||
0xc6844242, 0xb8d06868, 0xc3824141, 0xb0299999, 0x775a2d2d, 0x111e0f0f,
|
||||
0xcb7bb0b0, 0xfca85454, 0xd66dbbbb, 0x3a2c1616,
|
||||
};
|
||||
static const unsigned int E2[256] = {
|
||||
0x63a5c663, 0x7c84f87c, 0x7799ee77, 0x7b8df67b, 0xf20dfff2, 0x6bbdd66b,
|
||||
0x6fb1de6f, 0xc55491c5, 0x30506030, 0x01030201, 0x67a9ce67, 0x2b7d562b,
|
||||
0xfe19e7fe, 0xd762b5d7, 0xabe64dab, 0x769aec76, 0xca458fca, 0x829d1f82,
|
||||
0xc94089c9, 0x7d87fa7d, 0xfa15effa, 0x59ebb259, 0x47c98e47, 0xf00bfbf0,
|
||||
0xadec41ad, 0xd467b3d4, 0xa2fd5fa2, 0xafea45af, 0x9cbf239c, 0xa4f753a4,
|
||||
0x7296e472, 0xc05b9bc0, 0xb7c275b7, 0xfd1ce1fd, 0x93ae3d93, 0x266a4c26,
|
||||
0x365a6c36, 0x3f417e3f, 0xf702f5f7, 0xcc4f83cc, 0x345c6834, 0xa5f451a5,
|
||||
0xe534d1e5, 0xf108f9f1, 0x7193e271, 0xd873abd8, 0x31536231, 0x153f2a15,
|
||||
0x040c0804, 0xc75295c7, 0x23654623, 0xc35e9dc3, 0x18283018, 0x96a13796,
|
||||
0x050f0a05, 0x9ab52f9a, 0x07090e07, 0x12362412, 0x809b1b80, 0xe23ddfe2,
|
||||
0xeb26cdeb, 0x27694e27, 0xb2cd7fb2, 0x759fea75, 0x091b1209, 0x839e1d83,
|
||||
0x2c74582c, 0x1a2e341a, 0x1b2d361b, 0x6eb2dc6e, 0x5aeeb45a, 0xa0fb5ba0,
|
||||
0x52f6a452, 0x3b4d763b, 0xd661b7d6, 0xb3ce7db3, 0x297b5229, 0xe33edde3,
|
||||
0x2f715e2f, 0x84971384, 0x53f5a653, 0xd168b9d1, 0x00000000, 0xed2cc1ed,
|
||||
0x20604020, 0xfc1fe3fc, 0xb1c879b1, 0x5bedb65b, 0x6abed46a, 0xcb468dcb,
|
||||
0xbed967be, 0x394b7239, 0x4ade944a, 0x4cd4984c, 0x58e8b058, 0xcf4a85cf,
|
||||
0xd06bbbd0, 0xef2ac5ef, 0xaae54faa, 0xfb16edfb, 0x43c58643, 0x4dd79a4d,
|
||||
0x33556633, 0x85941185, 0x45cf8a45, 0xf910e9f9, 0x02060402, 0x7f81fe7f,
|
||||
0x50f0a050, 0x3c44783c, 0x9fba259f, 0xa8e34ba8, 0x51f3a251, 0xa3fe5da3,
|
||||
0x40c08040, 0x8f8a058f, 0x92ad3f92, 0x9dbc219d, 0x38487038, 0xf504f1f5,
|
||||
0xbcdf63bc, 0xb6c177b6, 0xda75afda, 0x21634221, 0x10302010, 0xff1ae5ff,
|
||||
0xf30efdf3, 0xd26dbfd2, 0xcd4c81cd, 0x0c14180c, 0x13352613, 0xec2fc3ec,
|
||||
0x5fe1be5f, 0x97a23597, 0x44cc8844, 0x17392e17, 0xc45793c4, 0xa7f255a7,
|
||||
0x7e82fc7e, 0x3d477a3d, 0x64acc864, 0x5de7ba5d, 0x192b3219, 0x7395e673,
|
||||
0x60a0c060, 0x81981981, 0x4fd19e4f, 0xdc7fa3dc, 0x22664422, 0x2a7e542a,
|
||||
0x90ab3b90, 0x88830b88, 0x46ca8c46, 0xee29c7ee, 0xb8d36bb8, 0x143c2814,
|
||||
0xde79a7de, 0x5ee2bc5e, 0x0b1d160b, 0xdb76addb, 0xe03bdbe0, 0x32566432,
|
||||
0x3a4e743a, 0x0a1e140a, 0x49db9249, 0x060a0c06, 0x246c4824, 0x5ce4b85c,
|
||||
0xc25d9fc2, 0xd36ebdd3, 0xacef43ac, 0x62a6c462, 0x91a83991, 0x95a43195,
|
||||
0xe437d3e4, 0x798bf279, 0xe732d5e7, 0xc8438bc8, 0x37596e37, 0x6db7da6d,
|
||||
0x8d8c018d, 0xd564b1d5, 0x4ed29c4e, 0xa9e049a9, 0x6cb4d86c, 0x56faac56,
|
||||
0xf407f3f4, 0xea25cfea, 0x65afca65, 0x7a8ef47a, 0xaee947ae, 0x08181008,
|
||||
0xbad56fba, 0x7888f078, 0x256f4a25, 0x2e725c2e, 0x1c24381c, 0xa6f157a6,
|
||||
0xb4c773b4, 0xc65197c6, 0xe823cbe8, 0xdd7ca1dd, 0x749ce874, 0x1f213e1f,
|
||||
0x4bdd964b, 0xbddc61bd, 0x8b860d8b, 0x8a850f8a, 0x7090e070, 0x3e427c3e,
|
||||
0xb5c471b5, 0x66aacc66, 0x48d89048, 0x03050603, 0xf601f7f6, 0x0e121c0e,
|
||||
0x61a3c261, 0x355f6a35, 0x57f9ae57, 0xb9d069b9, 0x86911786, 0xc15899c1,
|
||||
0x1d273a1d, 0x9eb9279e, 0xe138d9e1, 0xf813ebf8, 0x98b32b98, 0x11332211,
|
||||
0x69bbd269, 0xd970a9d9, 0x8e89078e, 0x94a73394, 0x9bb62d9b, 0x1e223c1e,
|
||||
0x87921587, 0xe920c9e9, 0xce4987ce, 0x55ffaa55, 0x28785028, 0xdf7aa5df,
|
||||
0x8c8f038c, 0xa1f859a1, 0x89800989, 0x0d171a0d, 0xbfda65bf, 0xe631d7e6,
|
||||
0x42c68442, 0x68b8d068, 0x41c38241, 0x99b02999, 0x2d775a2d, 0x0f111e0f,
|
||||
0xb0cb7bb0, 0x54fca854, 0xbbd66dbb, 0x163a2c16,
|
||||
};
|
||||
static const unsigned int E3[256] = {
|
||||
0x6363a5c6, 0x7c7c84f8, 0x777799ee, 0x7b7b8df6, 0xf2f20dff, 0x6b6bbdd6,
|
||||
0x6f6fb1de, 0xc5c55491, 0x30305060, 0x01010302, 0x6767a9ce, 0x2b2b7d56,
|
||||
0xfefe19e7, 0xd7d762b5, 0xababe64d, 0x76769aec, 0xcaca458f, 0x82829d1f,
|
||||
0xc9c94089, 0x7d7d87fa, 0xfafa15ef, 0x5959ebb2, 0x4747c98e, 0xf0f00bfb,
|
||||
0xadadec41, 0xd4d467b3, 0xa2a2fd5f, 0xafafea45, 0x9c9cbf23, 0xa4a4f753,
|
||||
0x727296e4, 0xc0c05b9b, 0xb7b7c275, 0xfdfd1ce1, 0x9393ae3d, 0x26266a4c,
|
||||
0x36365a6c, 0x3f3f417e, 0xf7f702f5, 0xcccc4f83, 0x34345c68, 0xa5a5f451,
|
||||
0xe5e534d1, 0xf1f108f9, 0x717193e2, 0xd8d873ab, 0x31315362, 0x15153f2a,
|
||||
0x04040c08, 0xc7c75295, 0x23236546, 0xc3c35e9d, 0x18182830, 0x9696a137,
|
||||
0x05050f0a, 0x9a9ab52f, 0x0707090e, 0x12123624, 0x80809b1b, 0xe2e23ddf,
|
||||
0xebeb26cd, 0x2727694e, 0xb2b2cd7f, 0x75759fea, 0x09091b12, 0x83839e1d,
|
||||
0x2c2c7458, 0x1a1a2e34, 0x1b1b2d36, 0x6e6eb2dc, 0x5a5aeeb4, 0xa0a0fb5b,
|
||||
0x5252f6a4, 0x3b3b4d76, 0xd6d661b7, 0xb3b3ce7d, 0x29297b52, 0xe3e33edd,
|
||||
0x2f2f715e, 0x84849713, 0x5353f5a6, 0xd1d168b9, 0x00000000, 0xeded2cc1,
|
||||
0x20206040, 0xfcfc1fe3, 0xb1b1c879, 0x5b5bedb6, 0x6a6abed4, 0xcbcb468d,
|
||||
0xbebed967, 0x39394b72, 0x4a4ade94, 0x4c4cd498, 0x5858e8b0, 0xcfcf4a85,
|
||||
0xd0d06bbb, 0xefef2ac5, 0xaaaae54f, 0xfbfb16ed, 0x4343c586, 0x4d4dd79a,
|
||||
0x33335566, 0x85859411, 0x4545cf8a, 0xf9f910e9, 0x02020604, 0x7f7f81fe,
|
||||
0x5050f0a0, 0x3c3c4478, 0x9f9fba25, 0xa8a8e34b, 0x5151f3a2, 0xa3a3fe5d,
|
||||
0x4040c080, 0x8f8f8a05, 0x9292ad3f, 0x9d9dbc21, 0x38384870, 0xf5f504f1,
|
||||
0xbcbcdf63, 0xb6b6c177, 0xdada75af, 0x21216342, 0x10103020, 0xffff1ae5,
|
||||
0xf3f30efd, 0xd2d26dbf, 0xcdcd4c81, 0x0c0c1418, 0x13133526, 0xecec2fc3,
|
||||
0x5f5fe1be, 0x9797a235, 0x4444cc88, 0x1717392e, 0xc4c45793, 0xa7a7f255,
|
||||
0x7e7e82fc, 0x3d3d477a, 0x6464acc8, 0x5d5de7ba, 0x19192b32, 0x737395e6,
|
||||
0x6060a0c0, 0x81819819, 0x4f4fd19e, 0xdcdc7fa3, 0x22226644, 0x2a2a7e54,
|
||||
0x9090ab3b, 0x8888830b, 0x4646ca8c, 0xeeee29c7, 0xb8b8d36b, 0x14143c28,
|
||||
0xdede79a7, 0x5e5ee2bc, 0x0b0b1d16, 0xdbdb76ad, 0xe0e03bdb, 0x32325664,
|
||||
0x3a3a4e74, 0x0a0a1e14, 0x4949db92, 0x06060a0c, 0x24246c48, 0x5c5ce4b8,
|
||||
0xc2c25d9f, 0xd3d36ebd, 0xacacef43, 0x6262a6c4, 0x9191a839, 0x9595a431,
|
||||
0xe4e437d3, 0x79798bf2, 0xe7e732d5, 0xc8c8438b, 0x3737596e, 0x6d6db7da,
|
||||
0x8d8d8c01, 0xd5d564b1, 0x4e4ed29c, 0xa9a9e049, 0x6c6cb4d8, 0x5656faac,
|
||||
0xf4f407f3, 0xeaea25cf, 0x6565afca, 0x7a7a8ef4, 0xaeaee947, 0x08081810,
|
||||
0xbabad56f, 0x787888f0, 0x25256f4a, 0x2e2e725c, 0x1c1c2438, 0xa6a6f157,
|
||||
0xb4b4c773, 0xc6c65197, 0xe8e823cb, 0xdddd7ca1, 0x74749ce8, 0x1f1f213e,
|
||||
0x4b4bdd96, 0xbdbddc61, 0x8b8b860d, 0x8a8a850f, 0x707090e0, 0x3e3e427c,
|
||||
0xb5b5c471, 0x6666aacc, 0x4848d890, 0x03030506, 0xf6f601f7, 0x0e0e121c,
|
||||
0x6161a3c2, 0x35355f6a, 0x5757f9ae, 0xb9b9d069, 0x86869117, 0xc1c15899,
|
||||
0x1d1d273a, 0x9e9eb927, 0xe1e138d9, 0xf8f813eb, 0x9898b32b, 0x11113322,
|
||||
0x6969bbd2, 0xd9d970a9, 0x8e8e8907, 0x9494a733, 0x9b9bb62d, 0x1e1e223c,
|
||||
0x87879215, 0xe9e920c9, 0xcece4987, 0x5555ffaa, 0x28287850, 0xdfdf7aa5,
|
||||
0x8c8c8f03, 0xa1a1f859, 0x89898009, 0x0d0d171a, 0xbfbfda65, 0xe6e631d7,
|
||||
0x4242c684, 0x6868b8d0, 0x4141c382, 0x9999b029, 0x2d2d775a, 0x0f0f111e,
|
||||
0xb0b0cb7b, 0x5454fca8, 0xbbbbd66d, 0x16163a2c,
|
||||
};
|
||||
static const unsigned int D0[256] = {
|
||||
0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96, 0x3bab6bcb, 0x1f9d45f1,
|
||||
0xacfa58ab, 0x4be30393, 0x2030fa55, 0xad766df6, 0x88cc7691, 0xf5024c25,
|
||||
0x4fe5d7fc, 0xc52acbd7, 0x26354480, 0xb562a38f, 0xdeb15a49, 0x25ba1b67,
|
||||
0x45ea0e98, 0x5dfec0e1, 0xc32f7502, 0x814cf012, 0x8d4697a3, 0x6bd3f9c6,
|
||||
0x038f5fe7, 0x15929c95, 0xbf6d7aeb, 0x955259da, 0xd4be832d, 0x587421d3,
|
||||
0x49e06929, 0x8ec9c844, 0x75c2896a, 0xf48e7978, 0x99583e6b, 0x27b971dd,
|
||||
0xbee14fb6, 0xf088ad17, 0xc920ac66, 0x7dce3ab4, 0x63df4a18, 0xe51a3182,
|
||||
0x97513360, 0x62537f45, 0xb16477e0, 0xbb6bae84, 0xfe81a01c, 0xf9082b94,
|
||||
0x70486858, 0x8f45fd19, 0x94de6c87, 0x527bf8b7, 0xab73d323, 0x724b02e2,
|
||||
0xe31f8f57, 0x6655ab2a, 0xb2eb2807, 0x2fb5c203, 0x86c57b9a, 0xd33708a5,
|
||||
0x302887f2, 0x23bfa5b2, 0x02036aba, 0xed16825c, 0x8acf1c2b, 0xa779b492,
|
||||
0xf307f2f0, 0x4e69e2a1, 0x65daf4cd, 0x0605bed5, 0xd134621f, 0xc4a6fe8a,
|
||||
0x342e539d, 0xa2f355a0, 0x058ae132, 0xa4f6eb75, 0x0b83ec39, 0x4060efaa,
|
||||
0x5e719f06, 0xbd6e1051, 0x3e218af9, 0x96dd063d, 0xdd3e05ae, 0x4de6bd46,
|
||||
0x91548db5, 0x71c45d05, 0x0406d46f, 0x605015ff, 0x1998fb24, 0xd6bde997,
|
||||
0x894043cc, 0x67d99e77, 0xb0e842bd, 0x07898b88, 0xe7195b38, 0x79c8eedb,
|
||||
0xa17c0a47, 0x7c420fe9, 0xf8841ec9, 0x00000000, 0x09808683, 0x322bed48,
|
||||
0x1e1170ac, 0x6c5a724e, 0xfd0efffb, 0x0f853856, 0x3daed51e, 0x362d3927,
|
||||
0x0a0fd964, 0x685ca621, 0x9b5b54d1, 0x24362e3a, 0x0c0a67b1, 0x9357e70f,
|
||||
0xb4ee96d2, 0x1b9b919e, 0x80c0c54f, 0x61dc20a2, 0x5a774b69, 0x1c121a16,
|
||||
0xe293ba0a, 0xc0a02ae5, 0x3c22e043, 0x121b171d, 0x0e090d0b, 0xf28bc7ad,
|
||||
0x2db6a8b9, 0x141ea9c8, 0x57f11985, 0xaf75074c, 0xee99ddbb, 0xa37f60fd,
|
||||
0xf701269f, 0x5c72f5bc, 0x44663bc5, 0x5bfb7e34, 0x8b432976, 0xcb23c6dc,
|
||||
0xb6edfc68, 0xb8e4f163, 0xd731dcca, 0x42638510, 0x13972240, 0x84c61120,
|
||||
0x854a247d, 0xd2bb3df8, 0xaef93211, 0xc729a16d, 0x1d9e2f4b, 0xdcb230f3,
|
||||
0x0d8652ec, 0x77c1e3d0, 0x2bb3166c, 0xa970b999, 0x119448fa, 0x47e96422,
|
||||
0xa8fc8cc4, 0xa0f03f1a, 0x567d2cd8, 0x223390ef, 0x87494ec7, 0xd938d1c1,
|
||||
0x8ccaa2fe, 0x98d40b36, 0xa6f581cf, 0xa57ade28, 0xdab78e26, 0x3fadbfa4,
|
||||
0x2c3a9de4, 0x5078920d, 0x6a5fcc9b, 0x547e4662, 0xf68d13c2, 0x90d8b8e8,
|
||||
0x2e39f75e, 0x82c3aff5, 0x9f5d80be, 0x69d0937c, 0x6fd52da9, 0xcf2512b3,
|
||||
0xc8ac993b, 0x10187da7, 0xe89c636e, 0xdb3bbb7b, 0xcd267809, 0x6e5918f4,
|
||||
0xec9ab701, 0x834f9aa8, 0xe6956e65, 0xaaffe67e, 0x21bccf08, 0xef15e8e6,
|
||||
0xbae79bd9, 0x4a6f36ce, 0xea9f09d4, 0x29b07cd6, 0x31a4b2af, 0x2a3f2331,
|
||||
0xc6a59430, 0x35a266c0, 0x744ebc37, 0xfc82caa6, 0xe090d0b0, 0x33a7d815,
|
||||
0xf104984a, 0x41ecdaf7, 0x7fcd500e, 0x1791f62f, 0x764dd68d, 0x43efb04d,
|
||||
0xccaa4d54, 0xe49604df, 0x9ed1b5e3, 0x4c6a881b, 0xc12c1fb8, 0x4665517f,
|
||||
0x9d5eea04, 0x018c355d, 0xfa877473, 0xfb0b412e, 0xb3671d5a, 0x92dbd252,
|
||||
0xe9105633, 0x6dd64713, 0x9ad7618c, 0x37a10c7a, 0x59f8148e, 0xeb133c89,
|
||||
0xcea927ee, 0xb761c935, 0xe11ce5ed, 0x7a47b13c, 0x9cd2df59, 0x55f2733f,
|
||||
0x1814ce79, 0x73c737bf, 0x53f7cdea, 0x5ffdaa5b, 0xdf3d6f14, 0x7844db86,
|
||||
0xcaaff381, 0xb968c43e, 0x3824342c, 0xc2a3405f, 0x161dc372, 0xbce2250c,
|
||||
0x283c498b, 0xff0d9541, 0x39a80171, 0x080cb3de, 0xd8b4e49c, 0x6456c190,
|
||||
0x7bcb8461, 0xd532b670, 0x486c5c74, 0xd0b85742,
|
||||
};
|
||||
static const unsigned int D1[256] = {
|
||||
0x5051f4a7, 0x537e4165, 0xc31a17a4, 0x963a275e, 0xcb3bab6b, 0xf11f9d45,
|
||||
0xabacfa58, 0x934be303, 0x552030fa, 0xf6ad766d, 0x9188cc76, 0x25f5024c,
|
||||
0xfc4fe5d7, 0xd7c52acb, 0x80263544, 0x8fb562a3, 0x49deb15a, 0x6725ba1b,
|
||||
0x9845ea0e, 0xe15dfec0, 0x02c32f75, 0x12814cf0, 0xa38d4697, 0xc66bd3f9,
|
||||
0xe7038f5f, 0x9515929c, 0xebbf6d7a, 0xda955259, 0x2dd4be83, 0xd3587421,
|
||||
0x2949e069, 0x448ec9c8, 0x6a75c289, 0x78f48e79, 0x6b99583e, 0xdd27b971,
|
||||
0xb6bee14f, 0x17f088ad, 0x66c920ac, 0xb47dce3a, 0x1863df4a, 0x82e51a31,
|
||||
0x60975133, 0x4562537f, 0xe0b16477, 0x84bb6bae, 0x1cfe81a0, 0x94f9082b,
|
||||
0x58704868, 0x198f45fd, 0x8794de6c, 0xb7527bf8, 0x23ab73d3, 0xe2724b02,
|
||||
0x57e31f8f, 0x2a6655ab, 0x07b2eb28, 0x032fb5c2, 0x9a86c57b, 0xa5d33708,
|
||||
0xf2302887, 0xb223bfa5, 0xba02036a, 0x5ced1682, 0x2b8acf1c, 0x92a779b4,
|
||||
0xf0f307f2, 0xa14e69e2, 0xcd65daf4, 0xd50605be, 0x1fd13462, 0x8ac4a6fe,
|
||||
0x9d342e53, 0xa0a2f355, 0x32058ae1, 0x75a4f6eb, 0x390b83ec, 0xaa4060ef,
|
||||
0x065e719f, 0x51bd6e10, 0xf93e218a, 0x3d96dd06, 0xaedd3e05, 0x464de6bd,
|
||||
0xb591548d, 0x0571c45d, 0x6f0406d4, 0xff605015, 0x241998fb, 0x97d6bde9,
|
||||
0xcc894043, 0x7767d99e, 0xbdb0e842, 0x8807898b, 0x38e7195b, 0xdb79c8ee,
|
||||
0x47a17c0a, 0xe97c420f, 0xc9f8841e, 0x00000000, 0x83098086, 0x48322bed,
|
||||
0xac1e1170, 0x4e6c5a72, 0xfbfd0eff, 0x560f8538, 0x1e3daed5, 0x27362d39,
|
||||
0x640a0fd9, 0x21685ca6, 0xd19b5b54, 0x3a24362e, 0xb10c0a67, 0x0f9357e7,
|
||||
0xd2b4ee96, 0x9e1b9b91, 0x4f80c0c5, 0xa261dc20, 0x695a774b, 0x161c121a,
|
||||
0x0ae293ba, 0xe5c0a02a, 0x433c22e0, 0x1d121b17, 0x0b0e090d, 0xadf28bc7,
|
||||
0xb92db6a8, 0xc8141ea9, 0x8557f119, 0x4caf7507, 0xbbee99dd, 0xfda37f60,
|
||||
0x9ff70126, 0xbc5c72f5, 0xc544663b, 0x345bfb7e, 0x768b4329, 0xdccb23c6,
|
||||
0x68b6edfc, 0x63b8e4f1, 0xcad731dc, 0x10426385, 0x40139722, 0x2084c611,
|
||||
0x7d854a24, 0xf8d2bb3d, 0x11aef932, 0x6dc729a1, 0x4b1d9e2f, 0xf3dcb230,
|
||||
0xec0d8652, 0xd077c1e3, 0x6c2bb316, 0x99a970b9, 0xfa119448, 0x2247e964,
|
||||
0xc4a8fc8c, 0x1aa0f03f, 0xd8567d2c, 0xef223390, 0xc787494e, 0xc1d938d1,
|
||||
0xfe8ccaa2, 0x3698d40b, 0xcfa6f581, 0x28a57ade, 0x26dab78e, 0xa43fadbf,
|
||||
0xe42c3a9d, 0x0d507892, 0x9b6a5fcc, 0x62547e46, 0xc2f68d13, 0xe890d8b8,
|
||||
0x5e2e39f7, 0xf582c3af, 0xbe9f5d80, 0x7c69d093, 0xa96fd52d, 0xb3cf2512,
|
||||
0x3bc8ac99, 0xa710187d, 0x6ee89c63, 0x7bdb3bbb, 0x09cd2678, 0xf46e5918,
|
||||
0x01ec9ab7, 0xa8834f9a, 0x65e6956e, 0x7eaaffe6, 0x0821bccf, 0xe6ef15e8,
|
||||
0xd9bae79b, 0xce4a6f36, 0xd4ea9f09, 0xd629b07c, 0xaf31a4b2, 0x312a3f23,
|
||||
0x30c6a594, 0xc035a266, 0x37744ebc, 0xa6fc82ca, 0xb0e090d0, 0x1533a7d8,
|
||||
0x4af10498, 0xf741ecda, 0x0e7fcd50, 0x2f1791f6, 0x8d764dd6, 0x4d43efb0,
|
||||
0x54ccaa4d, 0xdfe49604, 0xe39ed1b5, 0x1b4c6a88, 0xb8c12c1f, 0x7f466551,
|
||||
0x049d5eea, 0x5d018c35, 0x73fa8774, 0x2efb0b41, 0x5ab3671d, 0x5292dbd2,
|
||||
0x33e91056, 0x136dd647, 0x8c9ad761, 0x7a37a10c, 0x8e59f814, 0x89eb133c,
|
||||
0xeecea927, 0x35b761c9, 0xede11ce5, 0x3c7a47b1, 0x599cd2df, 0x3f55f273,
|
||||
0x791814ce, 0xbf73c737, 0xea53f7cd, 0x5b5ffdaa, 0x14df3d6f, 0x867844db,
|
||||
0x81caaff3, 0x3eb968c4, 0x2c382434, 0x5fc2a340, 0x72161dc3, 0x0cbce225,
|
||||
0x8b283c49, 0x41ff0d95, 0x7139a801, 0xde080cb3, 0x9cd8b4e4, 0x906456c1,
|
||||
0x617bcb84, 0x70d532b6, 0x74486c5c, 0x42d0b857,
|
||||
};
|
||||
static const unsigned int D2[256] = {
|
||||
0xa75051f4, 0x65537e41, 0xa4c31a17, 0x5e963a27, 0x6bcb3bab, 0x45f11f9d,
|
||||
0x58abacfa, 0x03934be3, 0xfa552030, 0x6df6ad76, 0x769188cc, 0x4c25f502,
|
||||
0xd7fc4fe5, 0xcbd7c52a, 0x44802635, 0xa38fb562, 0x5a49deb1, 0x1b6725ba,
|
||||
0x0e9845ea, 0xc0e15dfe, 0x7502c32f, 0xf012814c, 0x97a38d46, 0xf9c66bd3,
|
||||
0x5fe7038f, 0x9c951592, 0x7aebbf6d, 0x59da9552, 0x832dd4be, 0x21d35874,
|
||||
0x692949e0, 0xc8448ec9, 0x896a75c2, 0x7978f48e, 0x3e6b9958, 0x71dd27b9,
|
||||
0x4fb6bee1, 0xad17f088, 0xac66c920, 0x3ab47dce, 0x4a1863df, 0x3182e51a,
|
||||
0x33609751, 0x7f456253, 0x77e0b164, 0xae84bb6b, 0xa01cfe81, 0x2b94f908,
|
||||
0x68587048, 0xfd198f45, 0x6c8794de, 0xf8b7527b, 0xd323ab73, 0x02e2724b,
|
||||
0x8f57e31f, 0xab2a6655, 0x2807b2eb, 0xc2032fb5, 0x7b9a86c5, 0x08a5d337,
|
||||
0x87f23028, 0xa5b223bf, 0x6aba0203, 0x825ced16, 0x1c2b8acf, 0xb492a779,
|
||||
0xf2f0f307, 0xe2a14e69, 0xf4cd65da, 0xbed50605, 0x621fd134, 0xfe8ac4a6,
|
||||
0x539d342e, 0x55a0a2f3, 0xe132058a, 0xeb75a4f6, 0xec390b83, 0xefaa4060,
|
||||
0x9f065e71, 0x1051bd6e, 0x8af93e21, 0x063d96dd, 0x05aedd3e, 0xbd464de6,
|
||||
0x8db59154, 0x5d0571c4, 0xd46f0406, 0x15ff6050, 0xfb241998, 0xe997d6bd,
|
||||
0x43cc8940, 0x9e7767d9, 0x42bdb0e8, 0x8b880789, 0x5b38e719, 0xeedb79c8,
|
||||
0x0a47a17c, 0x0fe97c42, 0x1ec9f884, 0x00000000, 0x86830980, 0xed48322b,
|
||||
0x70ac1e11, 0x724e6c5a, 0xfffbfd0e, 0x38560f85, 0xd51e3dae, 0x3927362d,
|
||||
0xd9640a0f, 0xa621685c, 0x54d19b5b, 0x2e3a2436, 0x67b10c0a, 0xe70f9357,
|
||||
0x96d2b4ee, 0x919e1b9b, 0xc54f80c0, 0x20a261dc, 0x4b695a77, 0x1a161c12,
|
||||
0xba0ae293, 0x2ae5c0a0, 0xe0433c22, 0x171d121b, 0x0d0b0e09, 0xc7adf28b,
|
||||
0xa8b92db6, 0xa9c8141e, 0x198557f1, 0x074caf75, 0xddbbee99, 0x60fda37f,
|
||||
0x269ff701, 0xf5bc5c72, 0x3bc54466, 0x7e345bfb, 0x29768b43, 0xc6dccb23,
|
||||
0xfc68b6ed, 0xf163b8e4, 0xdccad731, 0x85104263, 0x22401397, 0x112084c6,
|
||||
0x247d854a, 0x3df8d2bb, 0x3211aef9, 0xa16dc729, 0x2f4b1d9e, 0x30f3dcb2,
|
||||
0x52ec0d86, 0xe3d077c1, 0x166c2bb3, 0xb999a970, 0x48fa1194, 0x642247e9,
|
||||
0x8cc4a8fc, 0x3f1aa0f0, 0x2cd8567d, 0x90ef2233, 0x4ec78749, 0xd1c1d938,
|
||||
0xa2fe8cca, 0x0b3698d4, 0x81cfa6f5, 0xde28a57a, 0x8e26dab7, 0xbfa43fad,
|
||||
0x9de42c3a, 0x920d5078, 0xcc9b6a5f, 0x4662547e, 0x13c2f68d, 0xb8e890d8,
|
||||
0xf75e2e39, 0xaff582c3, 0x80be9f5d, 0x937c69d0, 0x2da96fd5, 0x12b3cf25,
|
||||
0x993bc8ac, 0x7da71018, 0x636ee89c, 0xbb7bdb3b, 0x7809cd26, 0x18f46e59,
|
||||
0xb701ec9a, 0x9aa8834f, 0x6e65e695, 0xe67eaaff, 0xcf0821bc, 0xe8e6ef15,
|
||||
0x9bd9bae7, 0x36ce4a6f, 0x09d4ea9f, 0x7cd629b0, 0xb2af31a4, 0x23312a3f,
|
||||
0x9430c6a5, 0x66c035a2, 0xbc37744e, 0xcaa6fc82, 0xd0b0e090, 0xd81533a7,
|
||||
0x984af104, 0xdaf741ec, 0x500e7fcd, 0xf62f1791, 0xd68d764d, 0xb04d43ef,
|
||||
0x4d54ccaa, 0x04dfe496, 0xb5e39ed1, 0x881b4c6a, 0x1fb8c12c, 0x517f4665,
|
||||
0xea049d5e, 0x355d018c, 0x7473fa87, 0x412efb0b, 0x1d5ab367, 0xd25292db,
|
||||
0x5633e910, 0x47136dd6, 0x618c9ad7, 0x0c7a37a1, 0x148e59f8, 0x3c89eb13,
|
||||
0x27eecea9, 0xc935b761, 0xe5ede11c, 0xb13c7a47, 0xdf599cd2, 0x733f55f2,
|
||||
0xce791814, 0x37bf73c7, 0xcdea53f7, 0xaa5b5ffd, 0x6f14df3d, 0xdb867844,
|
||||
0xf381caaf, 0xc43eb968, 0x342c3824, 0x405fc2a3, 0xc372161d, 0x250cbce2,
|
||||
0x498b283c, 0x9541ff0d, 0x017139a8, 0xb3de080c, 0xe49cd8b4, 0xc1906456,
|
||||
0x84617bcb, 0xb670d532, 0x5c74486c, 0x5742d0b8,
|
||||
};
|
||||
static const unsigned int D3[256] = {
|
||||
0xf4a75051, 0x4165537e, 0x17a4c31a, 0x275e963a, 0xab6bcb3b, 0x9d45f11f,
|
||||
0xfa58abac, 0xe303934b, 0x30fa5520, 0x766df6ad, 0xcc769188, 0x024c25f5,
|
||||
0xe5d7fc4f, 0x2acbd7c5, 0x35448026, 0x62a38fb5, 0xb15a49de, 0xba1b6725,
|
||||
0xea0e9845, 0xfec0e15d, 0x2f7502c3, 0x4cf01281, 0x4697a38d, 0xd3f9c66b,
|
||||
0x8f5fe703, 0x929c9515, 0x6d7aebbf, 0x5259da95, 0xbe832dd4, 0x7421d358,
|
||||
0xe0692949, 0xc9c8448e, 0xc2896a75, 0x8e7978f4, 0x583e6b99, 0xb971dd27,
|
||||
0xe14fb6be, 0x88ad17f0, 0x20ac66c9, 0xce3ab47d, 0xdf4a1863, 0x1a3182e5,
|
||||
0x51336097, 0x537f4562, 0x6477e0b1, 0x6bae84bb, 0x81a01cfe, 0x082b94f9,
|
||||
0x48685870, 0x45fd198f, 0xde6c8794, 0x7bf8b752, 0x73d323ab, 0x4b02e272,
|
||||
0x1f8f57e3, 0x55ab2a66, 0xeb2807b2, 0xb5c2032f, 0xc57b9a86, 0x3708a5d3,
|
||||
0x2887f230, 0xbfa5b223, 0x036aba02, 0x16825ced, 0xcf1c2b8a, 0x79b492a7,
|
||||
0x07f2f0f3, 0x69e2a14e, 0xdaf4cd65, 0x05bed506, 0x34621fd1, 0xa6fe8ac4,
|
||||
0x2e539d34, 0xf355a0a2, 0x8ae13205, 0xf6eb75a4, 0x83ec390b, 0x60efaa40,
|
||||
0x719f065e, 0x6e1051bd, 0x218af93e, 0xdd063d96, 0x3e05aedd, 0xe6bd464d,
|
||||
0x548db591, 0xc45d0571, 0x06d46f04, 0x5015ff60, 0x98fb2419, 0xbde997d6,
|
||||
0x4043cc89, 0xd99e7767, 0xe842bdb0, 0x898b8807, 0x195b38e7, 0xc8eedb79,
|
||||
0x7c0a47a1, 0x420fe97c, 0x841ec9f8, 0x00000000, 0x80868309, 0x2bed4832,
|
||||
0x1170ac1e, 0x5a724e6c, 0x0efffbfd, 0x8538560f, 0xaed51e3d, 0x2d392736,
|
||||
0x0fd9640a, 0x5ca62168, 0x5b54d19b, 0x362e3a24, 0x0a67b10c, 0x57e70f93,
|
||||
0xee96d2b4, 0x9b919e1b, 0xc0c54f80, 0xdc20a261, 0x774b695a, 0x121a161c,
|
||||
0x93ba0ae2, 0xa02ae5c0, 0x22e0433c, 0x1b171d12, 0x090d0b0e, 0x8bc7adf2,
|
||||
0xb6a8b92d, 0x1ea9c814, 0xf1198557, 0x75074caf, 0x99ddbbee, 0x7f60fda3,
|
||||
0x01269ff7, 0x72f5bc5c, 0x663bc544, 0xfb7e345b, 0x4329768b, 0x23c6dccb,
|
||||
0xedfc68b6, 0xe4f163b8, 0x31dccad7, 0x63851042, 0x97224013, 0xc6112084,
|
||||
0x4a247d85, 0xbb3df8d2, 0xf93211ae, 0x29a16dc7, 0x9e2f4b1d, 0xb230f3dc,
|
||||
0x8652ec0d, 0xc1e3d077, 0xb3166c2b, 0x70b999a9, 0x9448fa11, 0xe9642247,
|
||||
0xfc8cc4a8, 0xf03f1aa0, 0x7d2cd856, 0x3390ef22, 0x494ec787, 0x38d1c1d9,
|
||||
0xcaa2fe8c, 0xd40b3698, 0xf581cfa6, 0x7ade28a5, 0xb78e26da, 0xadbfa43f,
|
||||
0x3a9de42c, 0x78920d50, 0x5fcc9b6a, 0x7e466254, 0x8d13c2f6, 0xd8b8e890,
|
||||
0x39f75e2e, 0xc3aff582, 0x5d80be9f, 0xd0937c69, 0xd52da96f, 0x2512b3cf,
|
||||
0xac993bc8, 0x187da710, 0x9c636ee8, 0x3bbb7bdb, 0x267809cd, 0x5918f46e,
|
||||
0x9ab701ec, 0x4f9aa883, 0x956e65e6, 0xffe67eaa, 0xbccf0821, 0x15e8e6ef,
|
||||
0xe79bd9ba, 0x6f36ce4a, 0x9f09d4ea, 0xb07cd629, 0xa4b2af31, 0x3f23312a,
|
||||
0xa59430c6, 0xa266c035, 0x4ebc3774, 0x82caa6fc, 0x90d0b0e0, 0xa7d81533,
|
||||
0x04984af1, 0xecdaf741, 0xcd500e7f, 0x91f62f17, 0x4dd68d76, 0xefb04d43,
|
||||
0xaa4d54cc, 0x9604dfe4, 0xd1b5e39e, 0x6a881b4c, 0x2c1fb8c1, 0x65517f46,
|
||||
0x5eea049d, 0x8c355d01, 0x877473fa, 0x0b412efb, 0x671d5ab3, 0xdbd25292,
|
||||
0x105633e9, 0xd647136d, 0xd7618c9a, 0xa10c7a37, 0xf8148e59, 0x133c89eb,
|
||||
0xa927eece, 0x61c935b7, 0x1ce5ede1, 0x47b13c7a, 0xd2df599c, 0xf2733f55,
|
||||
0x14ce7918, 0xc737bf73, 0xf7cdea53, 0xfdaa5b5f, 0x3d6f14df, 0x44db8678,
|
||||
0xaff381ca, 0x68c43eb9, 0x24342c38, 0xa3405fc2, 0x1dc37216, 0xe2250cbc,
|
||||
0x3c498b28, 0x0d9541ff, 0xa8017139, 0x0cb3de08, 0xb4e49cd8, 0x56c19064,
|
||||
0xcb84617b, 0x32b670d5, 0x6c5c7448, 0xb85742d0,
|
||||
};
|
||||
#define ADD_ROUND_KEY_4 \
|
||||
(block[0] ^= *keysched++, block[1] ^= *keysched++, block[2] ^= *keysched++, \
|
||||
block[3] ^= *keysched++)
|
||||
#define ADD_ROUND_KEY_6 \
|
||||
(block[0] ^= *keysched++, block[1] ^= *keysched++, block[2] ^= *keysched++, \
|
||||
block[3] ^= *keysched++, block[4] ^= *keysched++, block[5] ^= *keysched++)
|
||||
#define ADD_ROUND_KEY_8 \
|
||||
(block[0] ^= *keysched++, block[1] ^= *keysched++, block[2] ^= *keysched++, \
|
||||
block[3] ^= *keysched++, block[4] ^= *keysched++, block[5] ^= *keysched++, \
|
||||
block[6] ^= *keysched++, block[7] ^= *keysched++)
|
||||
#define MOVEWORD(i) (block[i] = newstate[i])
|
||||
#undef MAKEWORD
|
||||
#define MAKEWORD(i) \
|
||||
(newstate[i] = (E0[(block[i] >> 24) & 0xFF] ^ \
|
||||
E1[(block[(i + C1) % Nb] >> 16) & 0xFF] ^ \
|
||||
E2[(block[(i + C2) % Nb] >> 8) & 0xFF] ^ \
|
||||
E3[block[(i + C3) % Nb] & 0xFF]))
|
||||
#define LASTWORD(i) \
|
||||
(newstate[i] = (Sbox[(block[i] >> 24) & 0xFF] << 24) | \
|
||||
(Sbox[(block[(i + C1) % Nb] >> 16) & 0xFF] << 16) | \
|
||||
(Sbox[(block[(i + C2) % Nb] >> 8) & 0xFF] << 8) | \
|
||||
(Sbox[(block[(i + C3) % Nb]) & 0xFF]))
|
||||
static void aes_encrypt_nb_4(AESContext* ctx, unsigned int* block) {
|
||||
int i;
|
||||
static const int C1 = 1, C2 = 2, C3 = 3, Nb = 4;
|
||||
unsigned int* keysched = ctx->keysched;
|
||||
unsigned int newstate[4];
|
||||
for (i = 0; i < ctx->Nr - 1; i++) {
|
||||
ADD_ROUND_KEY_4;
|
||||
MAKEWORD(0);
|
||||
MAKEWORD(1);
|
||||
MAKEWORD(2);
|
||||
MAKEWORD(3);
|
||||
MOVEWORD(0);
|
||||
MOVEWORD(1);
|
||||
MOVEWORD(2);
|
||||
MOVEWORD(3);
|
||||
}
|
||||
ADD_ROUND_KEY_4;
|
||||
LASTWORD(0);
|
||||
LASTWORD(1);
|
||||
LASTWORD(2);
|
||||
LASTWORD(3);
|
||||
MOVEWORD(0);
|
||||
MOVEWORD(1);
|
||||
MOVEWORD(2);
|
||||
MOVEWORD(3);
|
||||
ADD_ROUND_KEY_4;
|
||||
}
|
||||
static void aes_encrypt_nb_6(AESContext* ctx, unsigned int* block) {
|
||||
int i;
|
||||
static const int C1 = 1, C2 = 2, C3 = 3, Nb = 6;
|
||||
unsigned int* keysched = ctx->keysched;
|
||||
unsigned int newstate[6];
|
||||
for (i = 0; i < ctx->Nr - 1; i++) {
|
||||
ADD_ROUND_KEY_6;
|
||||
MAKEWORD(0);
|
||||
MAKEWORD(1);
|
||||
MAKEWORD(2);
|
||||
MAKEWORD(3);
|
||||
MAKEWORD(4);
|
||||
MAKEWORD(5);
|
||||
MOVEWORD(0);
|
||||
MOVEWORD(1);
|
||||
MOVEWORD(2);
|
||||
MOVEWORD(3);
|
||||
MOVEWORD(4);
|
||||
MOVEWORD(5);
|
||||
}
|
||||
ADD_ROUND_KEY_6;
|
||||
LASTWORD(0);
|
||||
LASTWORD(1);
|
||||
LASTWORD(2);
|
||||
LASTWORD(3);
|
||||
LASTWORD(4);
|
||||
LASTWORD(5);
|
||||
MOVEWORD(0);
|
||||
MOVEWORD(1);
|
||||
MOVEWORD(2);
|
||||
MOVEWORD(3);
|
||||
MOVEWORD(4);
|
||||
MOVEWORD(5);
|
||||
ADD_ROUND_KEY_6;
|
||||
}
|
||||
static void aes_encrypt_nb_8(AESContext* ctx, unsigned int* block) {
|
||||
int i;
|
||||
static const int C1 = 1, C2 = 3, C3 = 4, Nb = 8;
|
||||
unsigned int* keysched = ctx->keysched;
|
||||
unsigned int newstate[8];
|
||||
for (i = 0; i < ctx->Nr - 1; i++) {
|
||||
ADD_ROUND_KEY_8;
|
||||
MAKEWORD(0);
|
||||
MAKEWORD(1);
|
||||
MAKEWORD(2);
|
||||
MAKEWORD(3);
|
||||
MAKEWORD(4);
|
||||
MAKEWORD(5);
|
||||
MAKEWORD(6);
|
||||
MAKEWORD(7);
|
||||
MOVEWORD(0);
|
||||
MOVEWORD(1);
|
||||
MOVEWORD(2);
|
||||
MOVEWORD(3);
|
||||
MOVEWORD(4);
|
||||
MOVEWORD(5);
|
||||
MOVEWORD(6);
|
||||
MOVEWORD(7);
|
||||
}
|
||||
ADD_ROUND_KEY_8;
|
||||
LASTWORD(0);
|
||||
LASTWORD(1);
|
||||
LASTWORD(2);
|
||||
LASTWORD(3);
|
||||
LASTWORD(4);
|
||||
LASTWORD(5);
|
||||
LASTWORD(6);
|
||||
LASTWORD(7);
|
||||
MOVEWORD(0);
|
||||
MOVEWORD(1);
|
||||
MOVEWORD(2);
|
||||
MOVEWORD(3);
|
||||
MOVEWORD(4);
|
||||
MOVEWORD(5);
|
||||
MOVEWORD(6);
|
||||
MOVEWORD(7);
|
||||
ADD_ROUND_KEY_8;
|
||||
}
|
||||
#undef MAKEWORD
|
||||
#undef LASTWORD
|
||||
#define MAKEWORD(i) \
|
||||
(newstate[i] = (D0[(block[i] >> 24) & 0xFF] ^ \
|
||||
D1[(block[(i + C1) % Nb] >> 16) & 0xFF] ^ \
|
||||
D2[(block[(i + C2) % Nb] >> 8) & 0xFF] ^ \
|
||||
D3[block[(i + C3) % Nb] & 0xFF]))
|
||||
#define LASTWORD(i) \
|
||||
(newstate[i] = (Sboxinv[(block[i] >> 24) & 0xFF] << 24) | \
|
||||
(Sboxinv[(block[(i + C1) % Nb] >> 16) & 0xFF] << 16) | \
|
||||
(Sboxinv[(block[(i + C2) % Nb] >> 8) & 0xFF] << 8) | \
|
||||
(Sboxinv[(block[(i + C3) % Nb]) & 0xFF]))
|
||||
static void aes_decrypt_nb_4(AESContext* ctx, unsigned int* block) {
|
||||
int i;
|
||||
static const int C1 = 4 - 1, C2 = 4 - 2, C3 = 4 - 3, Nb = 4;
|
||||
unsigned int* keysched = ctx->invkeysched;
|
||||
unsigned int newstate[4];
|
||||
for (i = 0; i < ctx->Nr - 1; i++) {
|
||||
ADD_ROUND_KEY_4;
|
||||
MAKEWORD(0);
|
||||
MAKEWORD(1);
|
||||
MAKEWORD(2);
|
||||
MAKEWORD(3);
|
||||
MOVEWORD(0);
|
||||
MOVEWORD(1);
|
||||
MOVEWORD(2);
|
||||
MOVEWORD(3);
|
||||
}
|
||||
ADD_ROUND_KEY_4;
|
||||
LASTWORD(0);
|
||||
LASTWORD(1);
|
||||
LASTWORD(2);
|
||||
LASTWORD(3);
|
||||
MOVEWORD(0);
|
||||
MOVEWORD(1);
|
||||
MOVEWORD(2);
|
||||
MOVEWORD(3);
|
||||
ADD_ROUND_KEY_4;
|
||||
}
|
||||
static void aes_decrypt_nb_6(AESContext* ctx, unsigned int* block) {
|
||||
int i;
|
||||
static const int C1 = 6 - 1, C2 = 6 - 2, C3 = 6 - 3, Nb = 6;
|
||||
unsigned int* keysched = ctx->invkeysched;
|
||||
unsigned int newstate[6];
|
||||
for (i = 0; i < ctx->Nr - 1; i++) {
|
||||
ADD_ROUND_KEY_6;
|
||||
MAKEWORD(0);
|
||||
MAKEWORD(1);
|
||||
MAKEWORD(2);
|
||||
MAKEWORD(3);
|
||||
MAKEWORD(4);
|
||||
MAKEWORD(5);
|
||||
MOVEWORD(0);
|
||||
MOVEWORD(1);
|
||||
MOVEWORD(2);
|
||||
MOVEWORD(3);
|
||||
MOVEWORD(4);
|
||||
MOVEWORD(5);
|
||||
}
|
||||
ADD_ROUND_KEY_6;
|
||||
LASTWORD(0);
|
||||
LASTWORD(1);
|
||||
LASTWORD(2);
|
||||
LASTWORD(3);
|
||||
LASTWORD(4);
|
||||
LASTWORD(5);
|
||||
MOVEWORD(0);
|
||||
MOVEWORD(1);
|
||||
MOVEWORD(2);
|
||||
MOVEWORD(3);
|
||||
MOVEWORD(4);
|
||||
MOVEWORD(5);
|
||||
ADD_ROUND_KEY_6;
|
||||
}
|
||||
static void aes_decrypt_nb_8(AESContext* ctx, unsigned int* block) {
|
||||
int i;
|
||||
static const int C1 = 8 - 1, C2 = 8 - 3, C3 = 8 - 4, Nb = 8;
|
||||
unsigned int* keysched = ctx->invkeysched;
|
||||
unsigned int newstate[8];
|
||||
for (i = 0; i < ctx->Nr - 1; i++) {
|
||||
ADD_ROUND_KEY_8;
|
||||
MAKEWORD(0);
|
||||
MAKEWORD(1);
|
||||
MAKEWORD(2);
|
||||
MAKEWORD(3);
|
||||
MAKEWORD(4);
|
||||
MAKEWORD(5);
|
||||
MAKEWORD(6);
|
||||
MAKEWORD(7);
|
||||
MOVEWORD(0);
|
||||
MOVEWORD(1);
|
||||
MOVEWORD(2);
|
||||
MOVEWORD(3);
|
||||
MOVEWORD(4);
|
||||
MOVEWORD(5);
|
||||
MOVEWORD(6);
|
||||
MOVEWORD(7);
|
||||
}
|
||||
ADD_ROUND_KEY_8;
|
||||
LASTWORD(0);
|
||||
LASTWORD(1);
|
||||
LASTWORD(2);
|
||||
LASTWORD(3);
|
||||
LASTWORD(4);
|
||||
LASTWORD(5);
|
||||
LASTWORD(6);
|
||||
LASTWORD(7);
|
||||
MOVEWORD(0);
|
||||
MOVEWORD(1);
|
||||
MOVEWORD(2);
|
||||
MOVEWORD(3);
|
||||
MOVEWORD(4);
|
||||
MOVEWORD(5);
|
||||
MOVEWORD(6);
|
||||
MOVEWORD(7);
|
||||
ADD_ROUND_KEY_8;
|
||||
}
|
||||
#undef MAKEWORD
|
||||
#undef LASTWORD
|
||||
static void aes_setup(AESContext* ctx,
|
||||
int blocklen,
|
||||
const unsigned char* key,
|
||||
int keylen) {
|
||||
int i, j, Nk, rconst;
|
||||
ASSERT(blocklen == 16 || blocklen == 24 || blocklen == 32);
|
||||
ASSERT(keylen == 16 || keylen == 24 || keylen == 32);
|
||||
Nk = keylen / 4;
|
||||
ctx->Nb = blocklen / 4;
|
||||
ctx->Nr = 6 + (ctx->Nb > Nk ? ctx->Nb : Nk);
|
||||
if (ctx->Nb == 8) {
|
||||
ctx->encrypt = aes_encrypt_nb_8, ctx->decrypt = aes_decrypt_nb_8;
|
||||
} else if (ctx->Nb == 6) {
|
||||
ctx->encrypt = aes_encrypt_nb_6, ctx->decrypt = aes_decrypt_nb_6;
|
||||
} else if (ctx->Nb == 4) {
|
||||
ctx->encrypt = aes_encrypt_nb_4, ctx->decrypt = aes_decrypt_nb_4;
|
||||
}
|
||||
rconst = 1;
|
||||
for (i = 0; i < (ctx->Nr + 1) * ctx->Nb; i++) {
|
||||
if (i < Nk) {
|
||||
ctx->keysched[i] = GET_32BIT_MSB_FIRST(key + 4 * i);
|
||||
} else {
|
||||
unsigned int temp = ctx->keysched[i - 1];
|
||||
if (i % Nk == 0) {
|
||||
int a, b, c, d;
|
||||
a = (temp >> 16) & 0xFF;
|
||||
b = (temp >> 8) & 0xFF;
|
||||
c = (temp >> 0) & 0xFF;
|
||||
d = (temp >> 24) & 0xFF;
|
||||
temp = Sbox[a] ^ rconst;
|
||||
temp = (temp << 8) | Sbox[b];
|
||||
temp = (temp << 8) | Sbox[c];
|
||||
temp = (temp << 8) | Sbox[d];
|
||||
rconst = mulby2(rconst);
|
||||
} else if (i % Nk == 4 && Nk > 6) {
|
||||
int a, b, c, d;
|
||||
a = (temp >> 24) & 0xFF;
|
||||
b = (temp >> 16) & 0xFF;
|
||||
c = (temp >> 8) & 0xFF;
|
||||
d = (temp >> 0) & 0xFF;
|
||||
temp = Sbox[a];
|
||||
temp = (temp << 8) | Sbox[b];
|
||||
temp = (temp << 8) | Sbox[c];
|
||||
temp = (temp << 8) | Sbox[d];
|
||||
}
|
||||
ctx->keysched[i] = ctx->keysched[i - Nk] ^ temp;
|
||||
}
|
||||
}
|
||||
for (i = 0; i <= ctx->Nr; i++) {
|
||||
for (j = 0; j < ctx->Nb; j++) {
|
||||
unsigned int temp;
|
||||
temp = ctx->keysched[(ctx->Nr - i) * ctx->Nb + j];
|
||||
if (i != 0 && i != ctx->Nr) {
|
||||
int a, b, c, d;
|
||||
a = (temp >> 24) & 0xFF;
|
||||
b = (temp >> 16) & 0xFF;
|
||||
c = (temp >> 8) & 0xFF;
|
||||
d = (temp >> 0) & 0xFF;
|
||||
temp = D0[Sbox[a]];
|
||||
temp ^= D1[Sbox[b]];
|
||||
temp ^= D2[Sbox[c]];
|
||||
temp ^= D3[Sbox[d]];
|
||||
}
|
||||
ctx->invkeysched[i * ctx->Nb + j] = temp;
|
||||
}
|
||||
}
|
||||
}
|
||||
static void aes_decrypt(AESContext* ctx, unsigned int* block) {
|
||||
ctx->decrypt(ctx, block);
|
||||
}
|
||||
static void aes_decrypt_cbc(unsigned char* dest,
|
||||
const unsigned char* src,
|
||||
int len,
|
||||
AESContext* ctx) {
|
||||
unsigned int iv[4], x[4], ct[4];
|
||||
int i;
|
||||
ASSERT((len & 15) == 0);
|
||||
FXSYS_memcpy(iv, ctx->iv, sizeof(iv));
|
||||
while (len > 0) {
|
||||
for (i = 0; i < 4; i++) {
|
||||
x[i] = ct[i] = GET_32BIT_MSB_FIRST(src + 4 * i);
|
||||
}
|
||||
aes_decrypt(ctx, x);
|
||||
for (i = 0; i < 4; i++) {
|
||||
PUT_32BIT_MSB_FIRST(dest + 4 * i, iv[i] ^ x[i]);
|
||||
iv[i] = ct[i];
|
||||
}
|
||||
dest += 16;
|
||||
src += 16;
|
||||
len -= 16;
|
||||
}
|
||||
FXSYS_memcpy(ctx->iv, iv, sizeof(iv));
|
||||
}
|
||||
static void aes_encrypt(AESContext* ctx, unsigned int* block) {
|
||||
ctx->encrypt(ctx, block);
|
||||
}
|
||||
static void aes_encrypt_cbc(unsigned char* dest,
|
||||
const unsigned char* src,
|
||||
int len,
|
||||
AESContext* ctx) {
|
||||
unsigned int iv[4];
|
||||
int i;
|
||||
ASSERT((len & 15) == 0);
|
||||
FXSYS_memcpy(iv, ctx->iv, sizeof(iv));
|
||||
while (len > 0) {
|
||||
for (i = 0; i < 4; i++) {
|
||||
iv[i] ^= GET_32BIT_MSB_FIRST(src + 4 * i);
|
||||
}
|
||||
aes_encrypt(ctx, iv);
|
||||
for (i = 0; i < 4; i++) {
|
||||
PUT_32BIT_MSB_FIRST(dest + 4 * i, iv[i]);
|
||||
}
|
||||
dest += 16;
|
||||
src += 16;
|
||||
len -= 16;
|
||||
}
|
||||
FXSYS_memcpy(ctx->iv, iv, sizeof(iv));
|
||||
}
|
||||
void CRYPT_AESSetKey(void* context,
|
||||
uint32_t blocklen,
|
||||
const uint8_t* key,
|
||||
uint32_t keylen,
|
||||
bool bEncrypt) {
|
||||
aes_setup((AESContext*)context, blocklen, key, keylen);
|
||||
}
|
||||
void CRYPT_AESSetIV(void* context, const uint8_t* iv) {
|
||||
int i;
|
||||
for (i = 0; i < ((AESContext*)context)->Nb; i++) {
|
||||
((AESContext*)context)->iv[i] = GET_32BIT_MSB_FIRST(iv + 4 * i);
|
||||
}
|
||||
}
|
||||
void CRYPT_AESDecrypt(void* context,
|
||||
uint8_t* dest,
|
||||
const uint8_t* src,
|
||||
uint32_t len) {
|
||||
aes_decrypt_cbc(dest, src, len, (AESContext*)context);
|
||||
}
|
||||
void CRYPT_AESEncrypt(void* context,
|
||||
uint8_t* dest,
|
||||
const uint8_t* src,
|
||||
uint32_t len) {
|
||||
aes_encrypt_cbc(dest, src, len, (AESContext*)context);
|
||||
}
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
661
modules/pdfium/pdfium/core/fdrm/crypto/fx_crypt_sha.cpp
Normal file
661
modules/pdfium/pdfium/core/fdrm/crypto/fx_crypt_sha.cpp
Normal file
@ -0,0 +1,661 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fdrm/crypto/fx_crypt.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#define rol(x, y) (((x) << (y)) | (((unsigned int)x) >> (32 - y)))
|
||||
static void SHA_Core_Init(unsigned int h[5]) {
|
||||
h[0] = 0x67452301;
|
||||
h[1] = 0xefcdab89;
|
||||
h[2] = 0x98badcfe;
|
||||
h[3] = 0x10325476;
|
||||
h[4] = 0xc3d2e1f0;
|
||||
}
|
||||
static void SHATransform(unsigned int* digest, unsigned int* block) {
|
||||
unsigned int w[80];
|
||||
unsigned int a, b, c, d, e;
|
||||
int t;
|
||||
for (t = 0; t < 16; t++) {
|
||||
w[t] = block[t];
|
||||
}
|
||||
for (t = 16; t < 80; t++) {
|
||||
unsigned int tmp = w[t - 3] ^ w[t - 8] ^ w[t - 14] ^ w[t - 16];
|
||||
w[t] = rol(tmp, 1);
|
||||
}
|
||||
a = digest[0];
|
||||
b = digest[1];
|
||||
c = digest[2];
|
||||
d = digest[3];
|
||||
e = digest[4];
|
||||
for (t = 0; t < 20; t++) {
|
||||
unsigned int tmp = rol(a, 5) + ((b & c) | (d & ~b)) + e + w[t] + 0x5a827999;
|
||||
e = d;
|
||||
d = c;
|
||||
c = rol(b, 30);
|
||||
b = a;
|
||||
a = tmp;
|
||||
}
|
||||
for (t = 20; t < 40; t++) {
|
||||
unsigned int tmp = rol(a, 5) + (b ^ c ^ d) + e + w[t] + 0x6ed9eba1;
|
||||
e = d;
|
||||
d = c;
|
||||
c = rol(b, 30);
|
||||
b = a;
|
||||
a = tmp;
|
||||
}
|
||||
for (t = 40; t < 60; t++) {
|
||||
unsigned int tmp =
|
||||
rol(a, 5) + ((b & c) | (b & d) | (c & d)) + e + w[t] + 0x8f1bbcdc;
|
||||
e = d;
|
||||
d = c;
|
||||
c = rol(b, 30);
|
||||
b = a;
|
||||
a = tmp;
|
||||
}
|
||||
for (t = 60; t < 80; t++) {
|
||||
unsigned int tmp = rol(a, 5) + (b ^ c ^ d) + e + w[t] + 0xca62c1d6;
|
||||
e = d;
|
||||
d = c;
|
||||
c = rol(b, 30);
|
||||
b = a;
|
||||
a = tmp;
|
||||
}
|
||||
digest[0] += a;
|
||||
digest[1] += b;
|
||||
digest[2] += c;
|
||||
digest[3] += d;
|
||||
digest[4] += e;
|
||||
}
|
||||
|
||||
void CRYPT_SHA1Start(CRYPT_sha1_context* s) {
|
||||
SHA_Core_Init(s->h);
|
||||
s->blkused = 0;
|
||||
s->lenhi = s->lenlo = 0;
|
||||
}
|
||||
|
||||
void CRYPT_SHA1Update(CRYPT_sha1_context* s,
|
||||
const uint8_t* data,
|
||||
uint32_t size) {
|
||||
unsigned char* q = (unsigned char*)data;
|
||||
unsigned int wordblock[16];
|
||||
int len = size;
|
||||
unsigned int lenw = len;
|
||||
int i;
|
||||
s->lenlo += lenw;
|
||||
s->lenhi += (s->lenlo < lenw);
|
||||
if (s->blkused && s->blkused + len < 64) {
|
||||
FXSYS_memcpy(s->block + s->blkused, q, len);
|
||||
s->blkused += len;
|
||||
} else {
|
||||
while (s->blkused + len >= 64) {
|
||||
FXSYS_memcpy(s->block + s->blkused, q, 64 - s->blkused);
|
||||
q += 64 - s->blkused;
|
||||
len -= 64 - s->blkused;
|
||||
for (i = 0; i < 16; i++) {
|
||||
wordblock[i] = (((unsigned int)s->block[i * 4 + 0]) << 24) |
|
||||
(((unsigned int)s->block[i * 4 + 1]) << 16) |
|
||||
(((unsigned int)s->block[i * 4 + 2]) << 8) |
|
||||
(((unsigned int)s->block[i * 4 + 3]) << 0);
|
||||
}
|
||||
SHATransform(s->h, wordblock);
|
||||
s->blkused = 0;
|
||||
}
|
||||
FXSYS_memcpy(s->block, q, len);
|
||||
s->blkused = len;
|
||||
}
|
||||
}
|
||||
|
||||
void CRYPT_SHA1Finish(CRYPT_sha1_context* s, uint8_t digest[20]) {
|
||||
int i;
|
||||
int pad;
|
||||
unsigned char c[64];
|
||||
unsigned int lenhi, lenlo;
|
||||
if (s->blkused >= 56) {
|
||||
pad = 56 + 64 - s->blkused;
|
||||
} else {
|
||||
pad = 56 - s->blkused;
|
||||
}
|
||||
lenhi = (s->lenhi << 3) | (s->lenlo >> (32 - 3));
|
||||
lenlo = (s->lenlo << 3);
|
||||
FXSYS_memset(c, 0, pad);
|
||||
c[0] = 0x80;
|
||||
CRYPT_SHA1Update(s, c, pad);
|
||||
c[0] = (lenhi >> 24) & 0xFF;
|
||||
c[1] = (lenhi >> 16) & 0xFF;
|
||||
c[2] = (lenhi >> 8) & 0xFF;
|
||||
c[3] = (lenhi >> 0) & 0xFF;
|
||||
c[4] = (lenlo >> 24) & 0xFF;
|
||||
c[5] = (lenlo >> 16) & 0xFF;
|
||||
c[6] = (lenlo >> 8) & 0xFF;
|
||||
c[7] = (lenlo >> 0) & 0xFF;
|
||||
CRYPT_SHA1Update(s, c, 8);
|
||||
for (i = 0; i < 5; i++) {
|
||||
digest[i * 4] = (s->h[i] >> 24) & 0xFF;
|
||||
digest[i * 4 + 1] = (s->h[i] >> 16) & 0xFF;
|
||||
digest[i * 4 + 2] = (s->h[i] >> 8) & 0xFF;
|
||||
digest[i * 4 + 3] = (s->h[i]) & 0xFF;
|
||||
}
|
||||
}
|
||||
void CRYPT_SHA1Generate(const uint8_t* data,
|
||||
uint32_t size,
|
||||
uint8_t digest[20]) {
|
||||
CRYPT_sha1_context s;
|
||||
CRYPT_SHA1Start(&s);
|
||||
CRYPT_SHA1Update(&s, data, size);
|
||||
CRYPT_SHA1Finish(&s, digest);
|
||||
}
|
||||
#define GET_UINT32(n, b, i) \
|
||||
{ \
|
||||
(n) = ((uint32_t)(b)[(i)] << 24) | ((uint32_t)(b)[(i) + 1] << 16) | \
|
||||
((uint32_t)(b)[(i) + 2] << 8) | ((uint32_t)(b)[(i) + 3]); \
|
||||
}
|
||||
#define PUT_UINT32(n, b, i) \
|
||||
{ \
|
||||
(b)[(i)] = (uint8_t)((n) >> 24); \
|
||||
(b)[(i) + 1] = (uint8_t)((n) >> 16); \
|
||||
(b)[(i) + 2] = (uint8_t)((n) >> 8); \
|
||||
(b)[(i) + 3] = (uint8_t)((n)); \
|
||||
}
|
||||
|
||||
void CRYPT_SHA256Start(CRYPT_sha256_context* ctx) {
|
||||
ctx->total[0] = 0;
|
||||
ctx->total[1] = 0;
|
||||
ctx->state[0] = 0x6A09E667;
|
||||
ctx->state[1] = 0xBB67AE85;
|
||||
ctx->state[2] = 0x3C6EF372;
|
||||
ctx->state[3] = 0xA54FF53A;
|
||||
ctx->state[4] = 0x510E527F;
|
||||
ctx->state[5] = 0x9B05688C;
|
||||
ctx->state[6] = 0x1F83D9AB;
|
||||
ctx->state[7] = 0x5BE0CD19;
|
||||
}
|
||||
|
||||
static void sha256_process(CRYPT_sha256_context* ctx, const uint8_t data[64]) {
|
||||
uint32_t temp1, temp2, W[64];
|
||||
uint32_t A, B, C, D, E, F, G, H;
|
||||
GET_UINT32(W[0], data, 0);
|
||||
GET_UINT32(W[1], data, 4);
|
||||
GET_UINT32(W[2], data, 8);
|
||||
GET_UINT32(W[3], data, 12);
|
||||
GET_UINT32(W[4], data, 16);
|
||||
GET_UINT32(W[5], data, 20);
|
||||
GET_UINT32(W[6], data, 24);
|
||||
GET_UINT32(W[7], data, 28);
|
||||
GET_UINT32(W[8], data, 32);
|
||||
GET_UINT32(W[9], data, 36);
|
||||
GET_UINT32(W[10], data, 40);
|
||||
GET_UINT32(W[11], data, 44);
|
||||
GET_UINT32(W[12], data, 48);
|
||||
GET_UINT32(W[13], data, 52);
|
||||
GET_UINT32(W[14], data, 56);
|
||||
GET_UINT32(W[15], data, 60);
|
||||
#define SHR(x, n) ((x & 0xFFFFFFFF) >> n)
|
||||
#define ROTR(x, n) (SHR(x, n) | (x << (32 - n)))
|
||||
#define S0(x) (ROTR(x, 7) ^ ROTR(x, 18) ^ SHR(x, 3))
|
||||
#define S1(x) (ROTR(x, 17) ^ ROTR(x, 19) ^ SHR(x, 10))
|
||||
#define S2(x) (ROTR(x, 2) ^ ROTR(x, 13) ^ ROTR(x, 22))
|
||||
#define S3(x) (ROTR(x, 6) ^ ROTR(x, 11) ^ ROTR(x, 25))
|
||||
#define F0(x, y, z) ((x & y) | (z & (x | y)))
|
||||
#define F1(x, y, z) (z ^ (x & (y ^ z)))
|
||||
#define R(t) (W[t] = S1(W[t - 2]) + W[t - 7] + S0(W[t - 15]) + W[t - 16])
|
||||
#define P(a, b, c, d, e, f, g, h, x, K) \
|
||||
{ \
|
||||
temp1 = h + S3(e) + F1(e, f, g) + K + x; \
|
||||
temp2 = S2(a) + F0(a, b, c); \
|
||||
d += temp1; \
|
||||
h = temp1 + temp2; \
|
||||
}
|
||||
A = ctx->state[0];
|
||||
B = ctx->state[1];
|
||||
C = ctx->state[2];
|
||||
D = ctx->state[3];
|
||||
E = ctx->state[4];
|
||||
F = ctx->state[5];
|
||||
G = ctx->state[6];
|
||||
H = ctx->state[7];
|
||||
P(A, B, C, D, E, F, G, H, W[0], 0x428A2F98);
|
||||
P(H, A, B, C, D, E, F, G, W[1], 0x71374491);
|
||||
P(G, H, A, B, C, D, E, F, W[2], 0xB5C0FBCF);
|
||||
P(F, G, H, A, B, C, D, E, W[3], 0xE9B5DBA5);
|
||||
P(E, F, G, H, A, B, C, D, W[4], 0x3956C25B);
|
||||
P(D, E, F, G, H, A, B, C, W[5], 0x59F111F1);
|
||||
P(C, D, E, F, G, H, A, B, W[6], 0x923F82A4);
|
||||
P(B, C, D, E, F, G, H, A, W[7], 0xAB1C5ED5);
|
||||
P(A, B, C, D, E, F, G, H, W[8], 0xD807AA98);
|
||||
P(H, A, B, C, D, E, F, G, W[9], 0x12835B01);
|
||||
P(G, H, A, B, C, D, E, F, W[10], 0x243185BE);
|
||||
P(F, G, H, A, B, C, D, E, W[11], 0x550C7DC3);
|
||||
P(E, F, G, H, A, B, C, D, W[12], 0x72BE5D74);
|
||||
P(D, E, F, G, H, A, B, C, W[13], 0x80DEB1FE);
|
||||
P(C, D, E, F, G, H, A, B, W[14], 0x9BDC06A7);
|
||||
P(B, C, D, E, F, G, H, A, W[15], 0xC19BF174);
|
||||
P(A, B, C, D, E, F, G, H, R(16), 0xE49B69C1);
|
||||
P(H, A, B, C, D, E, F, G, R(17), 0xEFBE4786);
|
||||
P(G, H, A, B, C, D, E, F, R(18), 0x0FC19DC6);
|
||||
P(F, G, H, A, B, C, D, E, R(19), 0x240CA1CC);
|
||||
P(E, F, G, H, A, B, C, D, R(20), 0x2DE92C6F);
|
||||
P(D, E, F, G, H, A, B, C, R(21), 0x4A7484AA);
|
||||
P(C, D, E, F, G, H, A, B, R(22), 0x5CB0A9DC);
|
||||
P(B, C, D, E, F, G, H, A, R(23), 0x76F988DA);
|
||||
P(A, B, C, D, E, F, G, H, R(24), 0x983E5152);
|
||||
P(H, A, B, C, D, E, F, G, R(25), 0xA831C66D);
|
||||
P(G, H, A, B, C, D, E, F, R(26), 0xB00327C8);
|
||||
P(F, G, H, A, B, C, D, E, R(27), 0xBF597FC7);
|
||||
P(E, F, G, H, A, B, C, D, R(28), 0xC6E00BF3);
|
||||
P(D, E, F, G, H, A, B, C, R(29), 0xD5A79147);
|
||||
P(C, D, E, F, G, H, A, B, R(30), 0x06CA6351);
|
||||
P(B, C, D, E, F, G, H, A, R(31), 0x14292967);
|
||||
P(A, B, C, D, E, F, G, H, R(32), 0x27B70A85);
|
||||
P(H, A, B, C, D, E, F, G, R(33), 0x2E1B2138);
|
||||
P(G, H, A, B, C, D, E, F, R(34), 0x4D2C6DFC);
|
||||
P(F, G, H, A, B, C, D, E, R(35), 0x53380D13);
|
||||
P(E, F, G, H, A, B, C, D, R(36), 0x650A7354);
|
||||
P(D, E, F, G, H, A, B, C, R(37), 0x766A0ABB);
|
||||
P(C, D, E, F, G, H, A, B, R(38), 0x81C2C92E);
|
||||
P(B, C, D, E, F, G, H, A, R(39), 0x92722C85);
|
||||
P(A, B, C, D, E, F, G, H, R(40), 0xA2BFE8A1);
|
||||
P(H, A, B, C, D, E, F, G, R(41), 0xA81A664B);
|
||||
P(G, H, A, B, C, D, E, F, R(42), 0xC24B8B70);
|
||||
P(F, G, H, A, B, C, D, E, R(43), 0xC76C51A3);
|
||||
P(E, F, G, H, A, B, C, D, R(44), 0xD192E819);
|
||||
P(D, E, F, G, H, A, B, C, R(45), 0xD6990624);
|
||||
P(C, D, E, F, G, H, A, B, R(46), 0xF40E3585);
|
||||
P(B, C, D, E, F, G, H, A, R(47), 0x106AA070);
|
||||
P(A, B, C, D, E, F, G, H, R(48), 0x19A4C116);
|
||||
P(H, A, B, C, D, E, F, G, R(49), 0x1E376C08);
|
||||
P(G, H, A, B, C, D, E, F, R(50), 0x2748774C);
|
||||
P(F, G, H, A, B, C, D, E, R(51), 0x34B0BCB5);
|
||||
P(E, F, G, H, A, B, C, D, R(52), 0x391C0CB3);
|
||||
P(D, E, F, G, H, A, B, C, R(53), 0x4ED8AA4A);
|
||||
P(C, D, E, F, G, H, A, B, R(54), 0x5B9CCA4F);
|
||||
P(B, C, D, E, F, G, H, A, R(55), 0x682E6FF3);
|
||||
P(A, B, C, D, E, F, G, H, R(56), 0x748F82EE);
|
||||
P(H, A, B, C, D, E, F, G, R(57), 0x78A5636F);
|
||||
P(G, H, A, B, C, D, E, F, R(58), 0x84C87814);
|
||||
P(F, G, H, A, B, C, D, E, R(59), 0x8CC70208);
|
||||
P(E, F, G, H, A, B, C, D, R(60), 0x90BEFFFA);
|
||||
P(D, E, F, G, H, A, B, C, R(61), 0xA4506CEB);
|
||||
P(C, D, E, F, G, H, A, B, R(62), 0xBEF9A3F7);
|
||||
P(B, C, D, E, F, G, H, A, R(63), 0xC67178F2);
|
||||
ctx->state[0] += A;
|
||||
ctx->state[1] += B;
|
||||
ctx->state[2] += C;
|
||||
ctx->state[3] += D;
|
||||
ctx->state[4] += E;
|
||||
ctx->state[5] += F;
|
||||
ctx->state[6] += G;
|
||||
ctx->state[7] += H;
|
||||
}
|
||||
|
||||
void CRYPT_SHA256Update(CRYPT_sha256_context* ctx,
|
||||
const uint8_t* input,
|
||||
uint32_t length) {
|
||||
if (!length)
|
||||
return;
|
||||
|
||||
uint32_t left = ctx->total[0] & 0x3F;
|
||||
uint32_t fill = 64 - left;
|
||||
ctx->total[0] += length;
|
||||
ctx->total[0] &= 0xFFFFFFFF;
|
||||
if (ctx->total[0] < length) {
|
||||
ctx->total[1]++;
|
||||
}
|
||||
if (left && length >= fill) {
|
||||
FXSYS_memcpy((void*)(ctx->buffer + left), (void*)input, fill);
|
||||
sha256_process(ctx, ctx->buffer);
|
||||
length -= fill;
|
||||
input += fill;
|
||||
left = 0;
|
||||
}
|
||||
while (length >= 64) {
|
||||
sha256_process(ctx, input);
|
||||
length -= 64;
|
||||
input += 64;
|
||||
}
|
||||
if (length) {
|
||||
FXSYS_memcpy((void*)(ctx->buffer + left), (void*)input, length);
|
||||
}
|
||||
}
|
||||
|
||||
static const uint8_t sha256_padding[64] = {
|
||||
0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
||||
|
||||
void CRYPT_SHA256Finish(CRYPT_sha256_context* ctx, uint8_t digest[32]) {
|
||||
uint32_t last, padn;
|
||||
uint32_t high, low;
|
||||
uint8_t msglen[8];
|
||||
high = (ctx->total[0] >> 29) | (ctx->total[1] << 3);
|
||||
low = (ctx->total[0] << 3);
|
||||
PUT_UINT32(high, msglen, 0);
|
||||
PUT_UINT32(low, msglen, 4);
|
||||
last = ctx->total[0] & 0x3F;
|
||||
padn = (last < 56) ? (56 - last) : (120 - last);
|
||||
CRYPT_SHA256Update(ctx, sha256_padding, padn);
|
||||
CRYPT_SHA256Update(ctx, msglen, 8);
|
||||
PUT_UINT32(ctx->state[0], digest, 0);
|
||||
PUT_UINT32(ctx->state[1], digest, 4);
|
||||
PUT_UINT32(ctx->state[2], digest, 8);
|
||||
PUT_UINT32(ctx->state[3], digest, 12);
|
||||
PUT_UINT32(ctx->state[4], digest, 16);
|
||||
PUT_UINT32(ctx->state[5], digest, 20);
|
||||
PUT_UINT32(ctx->state[6], digest, 24);
|
||||
PUT_UINT32(ctx->state[7], digest, 28);
|
||||
}
|
||||
|
||||
void CRYPT_SHA256Generate(const uint8_t* data,
|
||||
uint32_t size,
|
||||
uint8_t digest[32]) {
|
||||
CRYPT_sha256_context ctx;
|
||||
CRYPT_SHA256Start(&ctx);
|
||||
CRYPT_SHA256Update(&ctx, data, size);
|
||||
CRYPT_SHA256Finish(&ctx, digest);
|
||||
}
|
||||
|
||||
uint64_t FX_ato64i(const FX_CHAR* str) {
|
||||
ASSERT(str);
|
||||
uint64_t ret = 0;
|
||||
int len = (int)FXSYS_strlen(str);
|
||||
len = len > 16 ? 16 : len;
|
||||
for (int i = 0; i < len; ++i) {
|
||||
if (i) {
|
||||
ret <<= 4;
|
||||
}
|
||||
if (str[i] >= '0' && str[i] <= '9') {
|
||||
ret |= (str[i] - '0') & 0xFF;
|
||||
} else if (str[i] >= 'a' && str[i] <= 'f') {
|
||||
ret |= (str[i] - 'a' + 10) & 0xFF;
|
||||
} else if (str[i] >= 'A' && str[i] <= 'F') {
|
||||
ret |= (str[i] - 'A' + 10) & 0xFF;
|
||||
} else {
|
||||
ASSERT(false);
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
void CRYPT_SHA384Start(CRYPT_sha384_context* ctx) {
|
||||
if (!ctx)
|
||||
return;
|
||||
|
||||
FXSYS_memset(ctx, 0, sizeof(CRYPT_sha384_context));
|
||||
ctx->state[0] = FX_ato64i("cbbb9d5dc1059ed8");
|
||||
ctx->state[1] = FX_ato64i("629a292a367cd507");
|
||||
ctx->state[2] = FX_ato64i("9159015a3070dd17");
|
||||
ctx->state[3] = FX_ato64i("152fecd8f70e5939");
|
||||
ctx->state[4] = FX_ato64i("67332667ffc00b31");
|
||||
ctx->state[5] = FX_ato64i("8eb44a8768581511");
|
||||
ctx->state[6] = FX_ato64i("db0c2e0d64f98fa7");
|
||||
ctx->state[7] = FX_ato64i("47b5481dbefa4fa4");
|
||||
}
|
||||
|
||||
#define SHA384_F0(x, y, z) ((x & y) | (z & (x | y)))
|
||||
#define SHA384_F1(x, y, z) (z ^ (x & (y ^ z)))
|
||||
#define SHA384_SHR(x, n) (x >> n)
|
||||
#define SHA384_ROTR(x, n) (SHA384_SHR(x, n) | x << (64 - n))
|
||||
#define SHA384_S0(x) (SHA384_ROTR(x, 1) ^ SHA384_ROTR(x, 8) ^ SHA384_SHR(x, 7))
|
||||
#define SHA384_S1(x) \
|
||||
(SHA384_ROTR(x, 19) ^ SHA384_ROTR(x, 61) ^ SHA384_SHR(x, 6))
|
||||
#define SHA384_S2(x) \
|
||||
(SHA384_ROTR(x, 28) ^ SHA384_ROTR(x, 34) ^ SHA384_ROTR(x, 39))
|
||||
#define SHA384_S3(x) \
|
||||
(SHA384_ROTR(x, 14) ^ SHA384_ROTR(x, 18) ^ SHA384_ROTR(x, 41))
|
||||
#define SHA384_P(a, b, c, d, e, f, g, h, x, K) \
|
||||
{ \
|
||||
temp1 = h + SHA384_S3(e) + SHA384_F1(e, f, g) + K + x; \
|
||||
temp2 = SHA384_S2(a) + SHA384_F0(a, b, c); \
|
||||
d += temp1; \
|
||||
h = temp1 + temp2; \
|
||||
}
|
||||
#define SHA384_R(t) \
|
||||
(W[t] = SHA384_S1(W[t - 2]) + W[t - 7] + SHA384_S0(W[t - 15]) + W[t - 16])
|
||||
|
||||
static const uint8_t sha384_padding[128] = {
|
||||
0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
};
|
||||
|
||||
static const FX_CHAR* constants[] = {
|
||||
"428a2f98d728ae22", "7137449123ef65cd", "b5c0fbcfec4d3b2f",
|
||||
"e9b5dba58189dbbc", "3956c25bf348b538", "59f111f1b605d019",
|
||||
"923f82a4af194f9b", "ab1c5ed5da6d8118", "d807aa98a3030242",
|
||||
"12835b0145706fbe", "243185be4ee4b28c", "550c7dc3d5ffb4e2",
|
||||
"72be5d74f27b896f", "80deb1fe3b1696b1", "9bdc06a725c71235",
|
||||
"c19bf174cf692694", "e49b69c19ef14ad2", "efbe4786384f25e3",
|
||||
"0fc19dc68b8cd5b5", "240ca1cc77ac9c65", "2de92c6f592b0275",
|
||||
"4a7484aa6ea6e483", "5cb0a9dcbd41fbd4", "76f988da831153b5",
|
||||
"983e5152ee66dfab", "a831c66d2db43210", "b00327c898fb213f",
|
||||
"bf597fc7beef0ee4", "c6e00bf33da88fc2", "d5a79147930aa725",
|
||||
"06ca6351e003826f", "142929670a0e6e70", "27b70a8546d22ffc",
|
||||
"2e1b21385c26c926", "4d2c6dfc5ac42aed", "53380d139d95b3df",
|
||||
"650a73548baf63de", "766a0abb3c77b2a8", "81c2c92e47edaee6",
|
||||
"92722c851482353b", "a2bfe8a14cf10364", "a81a664bbc423001",
|
||||
"c24b8b70d0f89791", "c76c51a30654be30", "d192e819d6ef5218",
|
||||
"d69906245565a910", "f40e35855771202a", "106aa07032bbd1b8",
|
||||
"19a4c116b8d2d0c8", "1e376c085141ab53", "2748774cdf8eeb99",
|
||||
"34b0bcb5e19b48a8", "391c0cb3c5c95a63", "4ed8aa4ae3418acb",
|
||||
"5b9cca4f7763e373", "682e6ff3d6b2b8a3", "748f82ee5defb2fc",
|
||||
"78a5636f43172f60", "84c87814a1f0ab72", "8cc702081a6439ec",
|
||||
"90befffa23631e28", "a4506cebde82bde9", "bef9a3f7b2c67915",
|
||||
"c67178f2e372532b", "ca273eceea26619c", "d186b8c721c0c207",
|
||||
"eada7dd6cde0eb1e", "f57d4f7fee6ed178", "06f067aa72176fba",
|
||||
"0a637dc5a2c898a6", "113f9804bef90dae", "1b710b35131c471b",
|
||||
"28db77f523047d84", "32caab7b40c72493", "3c9ebe0a15c9bebc",
|
||||
"431d67c49c100d4c", "4cc5d4becb3e42b6", "597f299cfc657e2a",
|
||||
"5fcb6fab3ad6faec", "6c44198c4a475817",
|
||||
};
|
||||
#define GET_FX_64WORD(n, b, i) \
|
||||
{ \
|
||||
(n) = ((uint64_t)(b)[(i)] << 56) | ((uint64_t)(b)[(i) + 1] << 48) | \
|
||||
((uint64_t)(b)[(i) + 2] << 40) | ((uint64_t)(b)[(i) + 3] << 32) | \
|
||||
((uint64_t)(b)[(i) + 4] << 24) | ((uint64_t)(b)[(i) + 5] << 16) | \
|
||||
((uint64_t)(b)[(i) + 6] << 8) | ((uint64_t)(b)[(i) + 7]); \
|
||||
}
|
||||
#define PUT_UINT64(n, b, i) \
|
||||
{ \
|
||||
(b)[(i)] = (uint8_t)((n) >> 56); \
|
||||
(b)[(i) + 1] = (uint8_t)((n) >> 48); \
|
||||
(b)[(i) + 2] = (uint8_t)((n) >> 40); \
|
||||
(b)[(i) + 3] = (uint8_t)((n) >> 32); \
|
||||
(b)[(i) + 4] = (uint8_t)((n) >> 24); \
|
||||
(b)[(i) + 5] = (uint8_t)((n) >> 16); \
|
||||
(b)[(i) + 6] = (uint8_t)((n) >> 8); \
|
||||
(b)[(i) + 7] = (uint8_t)((n)); \
|
||||
}
|
||||
|
||||
static void sha384_process(CRYPT_sha384_context* ctx, const uint8_t data[128]) {
|
||||
uint64_t temp1, temp2;
|
||||
uint64_t A, B, C, D, E, F, G, H;
|
||||
uint64_t W[80];
|
||||
GET_FX_64WORD(W[0], data, 0);
|
||||
GET_FX_64WORD(W[1], data, 8);
|
||||
GET_FX_64WORD(W[2], data, 16);
|
||||
GET_FX_64WORD(W[3], data, 24);
|
||||
GET_FX_64WORD(W[4], data, 32);
|
||||
GET_FX_64WORD(W[5], data, 40);
|
||||
GET_FX_64WORD(W[6], data, 48);
|
||||
GET_FX_64WORD(W[7], data, 56);
|
||||
GET_FX_64WORD(W[8], data, 64);
|
||||
GET_FX_64WORD(W[9], data, 72);
|
||||
GET_FX_64WORD(W[10], data, 80);
|
||||
GET_FX_64WORD(W[11], data, 88);
|
||||
GET_FX_64WORD(W[12], data, 96);
|
||||
GET_FX_64WORD(W[13], data, 104);
|
||||
GET_FX_64WORD(W[14], data, 112);
|
||||
GET_FX_64WORD(W[15], data, 120);
|
||||
A = ctx->state[0];
|
||||
B = ctx->state[1];
|
||||
C = ctx->state[2];
|
||||
D = ctx->state[3];
|
||||
E = ctx->state[4];
|
||||
F = ctx->state[5];
|
||||
G = ctx->state[6];
|
||||
H = ctx->state[7];
|
||||
for (int i = 0; i < 10; ++i) {
|
||||
uint64_t temp[8];
|
||||
if (i < 2) {
|
||||
temp[0] = W[i * 8];
|
||||
temp[1] = W[i * 8 + 1];
|
||||
temp[2] = W[i * 8 + 2];
|
||||
temp[3] = W[i * 8 + 3];
|
||||
temp[4] = W[i * 8 + 4];
|
||||
temp[5] = W[i * 8 + 5];
|
||||
temp[6] = W[i * 8 + 6];
|
||||
temp[7] = W[i * 8 + 7];
|
||||
} else {
|
||||
temp[0] = SHA384_R(i * 8);
|
||||
temp[1] = SHA384_R(i * 8 + 1);
|
||||
temp[2] = SHA384_R(i * 8 + 2);
|
||||
temp[3] = SHA384_R(i * 8 + 3);
|
||||
temp[4] = SHA384_R(i * 8 + 4);
|
||||
temp[5] = SHA384_R(i * 8 + 5);
|
||||
temp[6] = SHA384_R(i * 8 + 6);
|
||||
temp[7] = SHA384_R(i * 8 + 7);
|
||||
}
|
||||
SHA384_P(A, B, C, D, E, F, G, H, temp[0], FX_ato64i(constants[i * 8]));
|
||||
SHA384_P(H, A, B, C, D, E, F, G, temp[1], FX_ato64i(constants[i * 8 + 1]));
|
||||
SHA384_P(G, H, A, B, C, D, E, F, temp[2], FX_ato64i(constants[i * 8 + 2]));
|
||||
SHA384_P(F, G, H, A, B, C, D, E, temp[3], FX_ato64i(constants[i * 8 + 3]));
|
||||
SHA384_P(E, F, G, H, A, B, C, D, temp[4], FX_ato64i(constants[i * 8 + 4]));
|
||||
SHA384_P(D, E, F, G, H, A, B, C, temp[5], FX_ato64i(constants[i * 8 + 5]));
|
||||
SHA384_P(C, D, E, F, G, H, A, B, temp[6], FX_ato64i(constants[i * 8 + 6]));
|
||||
SHA384_P(B, C, D, E, F, G, H, A, temp[7], FX_ato64i(constants[i * 8 + 7]));
|
||||
}
|
||||
ctx->state[0] += A;
|
||||
ctx->state[1] += B;
|
||||
ctx->state[2] += C;
|
||||
ctx->state[3] += D;
|
||||
ctx->state[4] += E;
|
||||
ctx->state[5] += F;
|
||||
ctx->state[6] += G;
|
||||
ctx->state[7] += H;
|
||||
}
|
||||
|
||||
void CRYPT_SHA384Update(CRYPT_sha384_context* ctx,
|
||||
const uint8_t* input,
|
||||
uint32_t length) {
|
||||
uint32_t left, fill;
|
||||
if (!length) {
|
||||
return;
|
||||
}
|
||||
left = (uint32_t)ctx->total[0] & 0x7F;
|
||||
fill = 128 - left;
|
||||
ctx->total[0] += length;
|
||||
if (ctx->total[0] < length) {
|
||||
ctx->total[1]++;
|
||||
}
|
||||
if (left && length >= fill) {
|
||||
FXSYS_memcpy((void*)(ctx->buffer + left), (void*)input, fill);
|
||||
sha384_process(ctx, ctx->buffer);
|
||||
length -= fill;
|
||||
input += fill;
|
||||
left = 0;
|
||||
}
|
||||
while (length >= 128) {
|
||||
sha384_process(ctx, input);
|
||||
length -= 128;
|
||||
input += 128;
|
||||
}
|
||||
if (length) {
|
||||
FXSYS_memcpy((void*)(ctx->buffer + left), (void*)input, length);
|
||||
}
|
||||
}
|
||||
|
||||
void CRYPT_SHA384Finish(CRYPT_sha384_context* ctx, uint8_t digest[48]) {
|
||||
uint32_t last, padn;
|
||||
uint8_t msglen[16];
|
||||
FXSYS_memset(msglen, 0, 16);
|
||||
uint64_t high, low;
|
||||
high = (ctx->total[0] >> 29) | (ctx->total[1] << 3);
|
||||
low = (ctx->total[0] << 3);
|
||||
PUT_UINT64(high, msglen, 0);
|
||||
PUT_UINT64(low, msglen, 8);
|
||||
last = (uint32_t)ctx->total[0] & 0x7F;
|
||||
padn = (last < 112) ? (112 - last) : (240 - last);
|
||||
CRYPT_SHA384Update(ctx, sha384_padding, padn);
|
||||
CRYPT_SHA384Update(ctx, msglen, 16);
|
||||
PUT_UINT64(ctx->state[0], digest, 0);
|
||||
PUT_UINT64(ctx->state[1], digest, 8);
|
||||
PUT_UINT64(ctx->state[2], digest, 16);
|
||||
PUT_UINT64(ctx->state[3], digest, 24);
|
||||
PUT_UINT64(ctx->state[4], digest, 32);
|
||||
PUT_UINT64(ctx->state[5], digest, 40);
|
||||
}
|
||||
|
||||
void CRYPT_SHA384Generate(const uint8_t* data,
|
||||
uint32_t size,
|
||||
uint8_t digest[64]) {
|
||||
CRYPT_sha384_context context;
|
||||
CRYPT_SHA384Start(&context);
|
||||
CRYPT_SHA384Update(&context, data, size);
|
||||
CRYPT_SHA384Finish(&context, digest);
|
||||
}
|
||||
|
||||
void CRYPT_SHA512Start(void* context) {
|
||||
if (!context) {
|
||||
return;
|
||||
}
|
||||
CRYPT_sha384_context* ctx = (CRYPT_sha384_context*)context;
|
||||
FXSYS_memset(ctx, 0, sizeof(CRYPT_sha384_context));
|
||||
ctx->state[0] = FX_ato64i("6a09e667f3bcc908");
|
||||
ctx->state[1] = FX_ato64i("bb67ae8584caa73b");
|
||||
ctx->state[2] = FX_ato64i("3c6ef372fe94f82b");
|
||||
ctx->state[3] = FX_ato64i("a54ff53a5f1d36f1");
|
||||
ctx->state[4] = FX_ato64i("510e527fade682d1");
|
||||
ctx->state[5] = FX_ato64i("9b05688c2b3e6c1f");
|
||||
ctx->state[6] = FX_ato64i("1f83d9abfb41bd6b");
|
||||
ctx->state[7] = FX_ato64i("5be0cd19137e2179");
|
||||
}
|
||||
|
||||
void CRYPT_SHA512Update(void* context, const uint8_t* data, uint32_t size) {
|
||||
CRYPT_sha384_context* ctx = (CRYPT_sha384_context*)context;
|
||||
CRYPT_SHA384Update(ctx, data, size);
|
||||
}
|
||||
|
||||
void CRYPT_SHA512Finish(void* context, uint8_t digest[64]) {
|
||||
CRYPT_sha384_context* ctx = (CRYPT_sha384_context*)context;
|
||||
uint32_t last, padn;
|
||||
uint8_t msglen[16];
|
||||
FXSYS_memset(msglen, 0, 16);
|
||||
uint64_t high, low;
|
||||
high = (ctx->total[0] >> 29) | (ctx->total[1] << 3);
|
||||
low = (ctx->total[0] << 3);
|
||||
PUT_UINT64(high, msglen, 0);
|
||||
PUT_UINT64(low, msglen, 8);
|
||||
last = (uint32_t)ctx->total[0] & 0x7F;
|
||||
padn = (last < 112) ? (112 - last) : (240 - last);
|
||||
CRYPT_SHA512Update(ctx, sha384_padding, padn);
|
||||
CRYPT_SHA512Update(ctx, msglen, 16);
|
||||
PUT_UINT64(ctx->state[0], digest, 0);
|
||||
PUT_UINT64(ctx->state[1], digest, 8);
|
||||
PUT_UINT64(ctx->state[2], digest, 16);
|
||||
PUT_UINT64(ctx->state[3], digest, 24);
|
||||
PUT_UINT64(ctx->state[4], digest, 32);
|
||||
PUT_UINT64(ctx->state[5], digest, 40);
|
||||
PUT_UINT64(ctx->state[6], digest, 48);
|
||||
PUT_UINT64(ctx->state[7], digest, 56);
|
||||
}
|
||||
|
||||
void CRYPT_SHA512Generate(const uint8_t* data,
|
||||
uint32_t size,
|
||||
uint8_t digest[64]) {
|
||||
CRYPT_sha384_context context;
|
||||
CRYPT_SHA512Start(&context);
|
||||
CRYPT_SHA512Update(&context, data, size);
|
||||
CRYPT_SHA512Finish(&context, digest);
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
229
modules/pdfium/pdfium/core/fdrm/crypto/fx_crypt_unittest.cpp
Normal file
229
modules/pdfium/pdfium/core/fdrm/crypto/fx_crypt_unittest.cpp
Normal file
@ -0,0 +1,229 @@
|
||||
// Copyright (c) 2016 The Chromium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Originally from chromium's /src/base/md5_unittest.cc.
|
||||
|
||||
#include "core/fdrm/crypto/fx_crypt.h"
|
||||
|
||||
#include <memory>
|
||||
#include <string>
|
||||
|
||||
#include "core/fxcrt/fx_basic.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
|
||||
namespace {
|
||||
|
||||
std::string CRYPT_ToBase16(const uint8_t* digest) {
|
||||
static char const zEncode[] = "0123456789abcdef";
|
||||
std::string ret;
|
||||
ret.resize(32);
|
||||
for (int i = 0, j = 0; i < 16; i++, j += 2) {
|
||||
uint8_t a = digest[i];
|
||||
ret[j] = zEncode[(a >> 4) & 0xf];
|
||||
ret[j + 1] = zEncode[a & 0xf];
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
std::string CRYPT_MD5String(const char* str) {
|
||||
uint8_t digest[16];
|
||||
CRYPT_MD5Generate(reinterpret_cast<const uint8_t*>(str), strlen(str), digest);
|
||||
return CRYPT_ToBase16(digest);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
TEST(FXCRYPT, CRYPT_ToBase16) {
|
||||
uint8_t data[] = {0xd4, 0x1d, 0x8c, 0xd9, 0x8f, 0x00, 0xb2, 0x04,
|
||||
0xe9, 0x80, 0x09, 0x98, 0xec, 0xf8, 0x42, 0x7e};
|
||||
|
||||
std::string actual = CRYPT_ToBase16(data);
|
||||
std::string expected = "d41d8cd98f00b204e9800998ecf8427e";
|
||||
|
||||
EXPECT_EQ(expected, actual);
|
||||
}
|
||||
|
||||
TEST(FXCRYPT, MD5GenerateEmtpyData) {
|
||||
uint8_t digest[16];
|
||||
const char data[] = "";
|
||||
uint32_t length = static_cast<uint32_t>(strlen(data));
|
||||
|
||||
CRYPT_MD5Generate(reinterpret_cast<const uint8_t*>(data), length, digest);
|
||||
|
||||
uint8_t expected[] = {0xd4, 0x1d, 0x8c, 0xd9, 0x8f, 0x00, 0xb2, 0x04,
|
||||
0xe9, 0x80, 0x09, 0x98, 0xec, 0xf8, 0x42, 0x7e};
|
||||
|
||||
for (int i = 0; i < 16; ++i)
|
||||
EXPECT_EQ(expected[i], digest[i]);
|
||||
}
|
||||
|
||||
TEST(FXCRYPT, MD5GenerateOneByteData) {
|
||||
uint8_t digest[16];
|
||||
const char data[] = "a";
|
||||
uint32_t length = static_cast<uint32_t>(strlen(data));
|
||||
|
||||
CRYPT_MD5Generate(reinterpret_cast<const uint8_t*>(data), length, digest);
|
||||
|
||||
uint8_t expected[] = {0x0c, 0xc1, 0x75, 0xb9, 0xc0, 0xf1, 0xb6, 0xa8,
|
||||
0x31, 0xc3, 0x99, 0xe2, 0x69, 0x77, 0x26, 0x61};
|
||||
|
||||
for (int i = 0; i < 16; ++i)
|
||||
EXPECT_EQ(expected[i], digest[i]);
|
||||
}
|
||||
|
||||
TEST(FXCRYPT, MD5GenerateLongData) {
|
||||
const uint32_t length = 10 * 1024 * 1024 + 1;
|
||||
std::unique_ptr<char[]> data(new char[length]);
|
||||
|
||||
for (uint32_t i = 0; i < length; ++i)
|
||||
data[i] = i & 0xFF;
|
||||
|
||||
uint8_t digest[16];
|
||||
CRYPT_MD5Generate(reinterpret_cast<const uint8_t*>(data.get()), length,
|
||||
digest);
|
||||
|
||||
uint8_t expected[] = {0x90, 0xbd, 0x6a, 0xd9, 0x0a, 0xce, 0xf5, 0xad,
|
||||
0xaa, 0x92, 0x20, 0x3e, 0x21, 0xc7, 0xa1, 0x3e};
|
||||
|
||||
for (int i = 0; i < 16; ++i)
|
||||
EXPECT_EQ(expected[i], digest[i]);
|
||||
}
|
||||
|
||||
TEST(FXCRYPT, ContextWithEmptyData) {
|
||||
CRYPT_md5_context ctx;
|
||||
CRYPT_MD5Start(&ctx);
|
||||
|
||||
uint8_t digest[16];
|
||||
CRYPT_MD5Finish(&ctx, digest);
|
||||
|
||||
uint8_t expected[] = {0xd4, 0x1d, 0x8c, 0xd9, 0x8f, 0x00, 0xb2, 0x04,
|
||||
0xe9, 0x80, 0x09, 0x98, 0xec, 0xf8, 0x42, 0x7e};
|
||||
|
||||
for (int i = 0; i < 16; ++i)
|
||||
EXPECT_EQ(expected[i], digest[i]);
|
||||
}
|
||||
|
||||
TEST(FXCRYPT, ContextWithLongData) {
|
||||
CRYPT_md5_context ctx;
|
||||
CRYPT_MD5Start(&ctx);
|
||||
|
||||
const uint32_t length = 10 * 1024 * 1024 + 1;
|
||||
std::unique_ptr<uint8_t[]> data(new uint8_t[length]);
|
||||
|
||||
for (uint32_t i = 0; i < length; ++i)
|
||||
data[i] = i & 0xFF;
|
||||
|
||||
uint32_t total = 0;
|
||||
while (total < length) {
|
||||
uint32_t len = 4097; // intentionally not 2^k.
|
||||
if (len > length - total)
|
||||
len = length - total;
|
||||
|
||||
CRYPT_MD5Update(&ctx, data.get() + total, len);
|
||||
total += len;
|
||||
}
|
||||
|
||||
EXPECT_EQ(length, total);
|
||||
|
||||
uint8_t digest[16];
|
||||
CRYPT_MD5Finish(&ctx, digest);
|
||||
|
||||
uint8_t expected[] = {0x90, 0xbd, 0x6a, 0xd9, 0x0a, 0xce, 0xf5, 0xad,
|
||||
0xaa, 0x92, 0x20, 0x3e, 0x21, 0xc7, 0xa1, 0x3e};
|
||||
|
||||
for (int i = 0; i < 16; ++i)
|
||||
EXPECT_EQ(expected[i], digest[i]);
|
||||
}
|
||||
|
||||
// Example data from http://www.ietf.org/rfc/rfc1321.txt A.5 Test Suite
|
||||
TEST(FXCRYPT, MD5StringTestSuite1) {
|
||||
std::string actual = CRYPT_MD5String("");
|
||||
std::string expected = "d41d8cd98f00b204e9800998ecf8427e";
|
||||
EXPECT_EQ(expected, actual);
|
||||
}
|
||||
|
||||
TEST(FXCRYPT, MD5StringTestSuite2) {
|
||||
std::string actual = CRYPT_MD5String("a");
|
||||
std::string expected = "0cc175b9c0f1b6a831c399e269772661";
|
||||
EXPECT_EQ(expected, actual);
|
||||
}
|
||||
|
||||
TEST(FXCRYPT, MD5StringTestSuite3) {
|
||||
std::string actual = CRYPT_MD5String("abc");
|
||||
std::string expected = "900150983cd24fb0d6963f7d28e17f72";
|
||||
EXPECT_EQ(expected, actual);
|
||||
}
|
||||
|
||||
TEST(FXCRYPT, MD5StringTestSuite4) {
|
||||
std::string actual = CRYPT_MD5String("message digest");
|
||||
std::string expected = "f96b697d7cb7938d525a2f31aaf161d0";
|
||||
EXPECT_EQ(expected, actual);
|
||||
}
|
||||
|
||||
TEST(FXCRYPT, MD5StringTestSuite5) {
|
||||
std::string actual = CRYPT_MD5String("abcdefghijklmnopqrstuvwxyz");
|
||||
std::string expected = "c3fcd3d76192e4007dfb496cca67e13b";
|
||||
EXPECT_EQ(expected, actual);
|
||||
}
|
||||
|
||||
TEST(FXCRYPT, MD5StringTestSuite6) {
|
||||
std::string actual = CRYPT_MD5String(
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||
"abcdefghijklmnopqrstuvwxyz"
|
||||
"0123456789");
|
||||
std::string expected = "d174ab98d277d9f5a5611c2c9f419d9f";
|
||||
EXPECT_EQ(expected, actual);
|
||||
}
|
||||
|
||||
TEST(FXCRYPT, MD5StringTestSuite7) {
|
||||
std::string actual = CRYPT_MD5String(
|
||||
"12345678901234567890"
|
||||
"12345678901234567890"
|
||||
"12345678901234567890"
|
||||
"12345678901234567890");
|
||||
std::string expected = "57edf4a22be3c955ac49da2e2107b67a";
|
||||
EXPECT_EQ(expected, actual);
|
||||
}
|
||||
|
||||
TEST(FXCRYPT, ContextWithStringData) {
|
||||
CRYPT_md5_context ctx;
|
||||
CRYPT_MD5Start(&ctx);
|
||||
CRYPT_MD5Update(&ctx, reinterpret_cast<const uint8_t*>("abc"), 3);
|
||||
|
||||
uint8_t digest[16];
|
||||
CRYPT_MD5Finish(&ctx, digest);
|
||||
|
||||
std::string actual = CRYPT_ToBase16(digest);
|
||||
std::string expected = "900150983cd24fb0d6963f7d28e17f72";
|
||||
EXPECT_EQ(expected, actual);
|
||||
}
|
||||
|
||||
TEST(FXCRYPT, Sha256TestB1) {
|
||||
// Example B.1 from FIPS 180-2: one-block message.
|
||||
const char* input = "abc";
|
||||
const uint8_t expected[32] = {0xba, 0x78, 0x16, 0xbf, 0x8f, 0x01, 0xcf, 0xea,
|
||||
0x41, 0x41, 0x40, 0xde, 0x5d, 0xae, 0x22, 0x23,
|
||||
0xb0, 0x03, 0x61, 0xa3, 0x96, 0x17, 0x7a, 0x9c,
|
||||
0xb4, 0x10, 0xff, 0x61, 0xf2, 0x00, 0x15, 0xad};
|
||||
uint8_t actual[32];
|
||||
CRYPT_SHA256Generate(reinterpret_cast<const uint8_t*>(input), strlen(input),
|
||||
actual);
|
||||
for (size_t i = 0; i < 32; ++i)
|
||||
EXPECT_EQ(expected[i], actual[i]) << " at byte " << i;
|
||||
}
|
||||
|
||||
TEST(FXCRYPT, Sha256TestB2) {
|
||||
// Example B.2 from FIPS 180-2: multi-block message.
|
||||
const char* input =
|
||||
"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq";
|
||||
const uint8_t expected[32] = {0x24, 0x8d, 0x6a, 0x61, 0xd2, 0x06, 0x38, 0xb8,
|
||||
0xe5, 0xc0, 0x26, 0x93, 0x0c, 0x3e, 0x60, 0x39,
|
||||
0xa3, 0x3c, 0xe4, 0x59, 0x64, 0xff, 0x21, 0x67,
|
||||
0xf6, 0xec, 0xed, 0xd4, 0x19, 0xdb, 0x06, 0xc1};
|
||||
uint8_t actual[32];
|
||||
CRYPT_SHA256Generate(reinterpret_cast<const uint8_t*>(input), strlen(input),
|
||||
actual);
|
||||
for (size_t i = 0; i < 32; ++i)
|
||||
EXPECT_EQ(expected[i], actual[i]) << " at byte " << i;
|
||||
}
|
2131
modules/pdfium/pdfium/core/fpdfapi/cmaps/CNS1/Adobe-CNS1-UCS2_5.cpp
Normal file
2131
modules/pdfium/pdfium/core/fpdfapi/cmaps/CNS1/Adobe-CNS1-UCS2_5.cpp
Normal file
File diff suppressed because it is too large
Load Diff
93
modules/pdfium/pdfium/core/fpdfapi/cmaps/CNS1/B5pc-H_0.cpp
Normal file
93
modules/pdfium/pdfium/core/fpdfapi/cmaps/CNS1/B5pc-H_0.cpp
Normal file
@ -0,0 +1,93 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/CNS1/cmaps_cns1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_B5pc_H_0[247 * 3] = {
|
||||
0x0020, 0x007E, 0x0001, 0x0080, 0x0080, 0x003D, 0x00FD, 0x00FF, 0x0060,
|
||||
0xA140, 0xA158, 0x0063, 0xA159, 0xA15C, 0x35AF, 0xA15D, 0xA17E, 0x0080,
|
||||
0xA1A1, 0xA1F5, 0x00A2, 0xA1F6, 0xA1F6, 0x00F8, 0xA1F7, 0xA1F7, 0x00F7,
|
||||
0xA1F8, 0xA1FE, 0x00F9, 0xA240, 0xA27E, 0x0100, 0xA2A1, 0xA2FE, 0x013F,
|
||||
0xA340, 0xA37E, 0x019D, 0xA3A1, 0xA3BB, 0x01DC, 0xA3BD, 0xA3BF, 0x01F7,
|
||||
0xA3C0, 0xA3E0, 0x0232, 0xA440, 0xA47E, 0x0253, 0xA4A1, 0xA4FE, 0x0292,
|
||||
0xA540, 0xA57E, 0x02F0, 0xA5A1, 0xA5FE, 0x032F, 0xA640, 0xA67E, 0x038D,
|
||||
0xA6A1, 0xA6FE, 0x03CC, 0xA740, 0xA77E, 0x042A, 0xA7A1, 0xA7FE, 0x0469,
|
||||
0xA840, 0xA87E, 0x04C7, 0xA8A1, 0xA8FE, 0x0506, 0xA940, 0xA97E, 0x0564,
|
||||
0xA9A1, 0xA9FE, 0x05A3, 0xAA40, 0xAA7E, 0x0601, 0xAAA1, 0xAAFE, 0x0640,
|
||||
0xAB40, 0xAB7E, 0x069E, 0xABA1, 0xABFE, 0x06DD, 0xAC40, 0xAC7E, 0x073B,
|
||||
0xACA1, 0xACFD, 0x077A, 0xACFE, 0xACFE, 0x097F, 0xAD40, 0xAD7E, 0x07D7,
|
||||
0xADA1, 0xADFE, 0x0816, 0xAE40, 0xAE7E, 0x0874, 0xAEA1, 0xAEFE, 0x08B3,
|
||||
0xAF40, 0xAF7E, 0x0911, 0xAFA1, 0xAFCF, 0x0950, 0xAFD0, 0xAFFE, 0x0980,
|
||||
0xB040, 0xB07E, 0x09AF, 0xB0A1, 0xB0FE, 0x09EE, 0xB140, 0xB17E, 0x0A4C,
|
||||
0xB1A1, 0xB1FE, 0x0A8B, 0xB240, 0xB27E, 0x0AE9, 0xB2A1, 0xB2FE, 0x0B28,
|
||||
0xB340, 0xB37E, 0x0B86, 0xB3A1, 0xB3FE, 0x0BC5, 0xB440, 0xB47E, 0x0C23,
|
||||
0xB4A1, 0xB4FE, 0x0C62, 0xB540, 0xB57E, 0x0CC0, 0xB5A1, 0xB5FE, 0x0CFF,
|
||||
0xB640, 0xB67E, 0x0D5D, 0xB6A1, 0xB6FE, 0x0D9C, 0xB740, 0xB77E, 0x0DFA,
|
||||
0xB7A1, 0xB7FE, 0x0E39, 0xB840, 0xB87E, 0x0E97, 0xB8A1, 0xB8FE, 0x0ED6,
|
||||
0xB940, 0xB97E, 0x0F34, 0xB9A1, 0xB9FE, 0x0F73, 0xBA40, 0xBA7E, 0x0FD1,
|
||||
0xBAA1, 0xBAFE, 0x1010, 0xBB40, 0xBB7E, 0x106E, 0xBBA1, 0xBBC7, 0x10AD,
|
||||
0xBBC8, 0xBBFE, 0x10D5, 0xBC40, 0xBC7E, 0x110C, 0xBCA1, 0xBCFE, 0x114B,
|
||||
0xBD40, 0xBD7E, 0x11A9, 0xBDA1, 0xBDFE, 0x11E8, 0xBE40, 0xBE51, 0x1246,
|
||||
0xBE52, 0xBE52, 0x10D4, 0xBE53, 0xBE7E, 0x1258, 0xBEA1, 0xBEFE, 0x1284,
|
||||
0xBF40, 0xBF7E, 0x12E2, 0xBFA1, 0xBFFE, 0x1321, 0xC040, 0xC07E, 0x137F,
|
||||
0xC0A1, 0xC0FE, 0x13BE, 0xC140, 0xC17E, 0x141C, 0xC1A1, 0xC1AA, 0x145B,
|
||||
0xC1AB, 0xC1FE, 0x1466, 0xC240, 0xC27E, 0x14BA, 0xC2A1, 0xC2CA, 0x14F9,
|
||||
0xC2CB, 0xC2CB, 0x1465, 0xC2CC, 0xC2FE, 0x1523, 0xC340, 0xC360, 0x1556,
|
||||
0xC361, 0xC37E, 0x1578, 0xC3A1, 0xC3B8, 0x1596, 0xC3B9, 0xC3B9, 0x15AF,
|
||||
0xC3BA, 0xC3BA, 0x15AE, 0xC3BB, 0xC3FE, 0x15B0, 0xC440, 0xC455, 0x15F4,
|
||||
0xC456, 0xC456, 0x1577, 0xC457, 0xC47E, 0x160A, 0xC4A1, 0xC4FE, 0x1632,
|
||||
0xC540, 0xC57E, 0x1690, 0xC5A1, 0xC5FE, 0x16CF, 0xC640, 0xC67E, 0x172D,
|
||||
0xC940, 0xC949, 0x176C, 0xC94A, 0xC94A, 0x0274, 0xC94B, 0xC96B, 0x1776,
|
||||
0xC96C, 0xC97E, 0x1798, 0xC9A1, 0xC9BD, 0x17AB, 0xC9BE, 0xC9BE, 0x1797,
|
||||
0xC9BF, 0xC9EC, 0x17C8, 0xC9ED, 0xC9FE, 0x17F7, 0xCA40, 0xCA7E, 0x1809,
|
||||
0xCAA1, 0xCAF6, 0x1848, 0xCAF7, 0xCAF7, 0x17F6, 0xCAF8, 0xCAFE, 0x189E,
|
||||
0xCB40, 0xCB7E, 0x18A5, 0xCBA1, 0xCBFE, 0x18E4, 0xCC40, 0xCC7E, 0x1942,
|
||||
0xCCA1, 0xCCFE, 0x1981, 0xCD40, 0xCD7E, 0x19DF, 0xCDA1, 0xCDFE, 0x1A1E,
|
||||
0xCE40, 0xCE7E, 0x1A7C, 0xCEA1, 0xCEFE, 0x1ABB, 0xCF40, 0xCF7E, 0x1B19,
|
||||
0xCFA1, 0xCFFE, 0x1B58, 0xD040, 0xD07E, 0x1BB6, 0xD0A1, 0xD0FE, 0x1BF5,
|
||||
0xD140, 0xD17E, 0x1C53, 0xD1A1, 0xD1FE, 0x1C92, 0xD240, 0xD27E, 0x1CF0,
|
||||
0xD2A1, 0xD2FE, 0x1D2F, 0xD340, 0xD37E, 0x1D8D, 0xD3A1, 0xD3FE, 0x1DCC,
|
||||
0xD440, 0xD47E, 0x1E2A, 0xD4A1, 0xD4FE, 0x1E69, 0xD540, 0xD57E, 0x1EC7,
|
||||
0xD5A1, 0xD5FE, 0x1F06, 0xD640, 0xD67E, 0x1F64, 0xD6A1, 0xD6CB, 0x1FA3,
|
||||
0xD6CC, 0xD6CC, 0x2254, 0xD6CD, 0xD6FE, 0x1FCF, 0xD740, 0xD779, 0x2001,
|
||||
0xD77A, 0xD77A, 0x22B9, 0xD77B, 0xD77E, 0x203B, 0xD7A1, 0xD7FE, 0x203F,
|
||||
0xD840, 0xD87E, 0x209D, 0xD8A1, 0xD8FE, 0x20DC, 0xD940, 0xD97E, 0x213A,
|
||||
0xD9A1, 0xD9FE, 0x2179, 0xDA40, 0xDA7E, 0x21D7, 0xDAA1, 0xDADE, 0x2216,
|
||||
0xDADF, 0xDADF, 0x1FCE, 0xDAE0, 0xDAFE, 0x2255, 0xDB40, 0xDB7E, 0x2274,
|
||||
0xDBA1, 0xDBA6, 0x22B3, 0xDBA7, 0xDBFE, 0x22BA, 0xDC40, 0xDC7E, 0x2312,
|
||||
0xDCA1, 0xDCFE, 0x2351, 0xDD40, 0xDD7E, 0x23AF, 0xDDA1, 0xDDFB, 0x23EE,
|
||||
0xDDFC, 0xDDFC, 0x2381, 0xDDFD, 0xDDFE, 0x2449, 0xDE40, 0xDE7E, 0x244B,
|
||||
0xDEA1, 0xDEFE, 0x248A, 0xDF40, 0xDF7E, 0x24E8, 0xDFA1, 0xDFFE, 0x2527,
|
||||
0xE040, 0xE07E, 0x2585, 0xE0A1, 0xE0FE, 0x25C4, 0xE140, 0xE17E, 0x2622,
|
||||
0xE1A1, 0xE1FE, 0x2661, 0xE240, 0xE27E, 0x26BF, 0xE2A1, 0xE2FE, 0x26FE,
|
||||
0xE340, 0xE37E, 0x275C, 0xE3A1, 0xE3FE, 0x279B, 0xE440, 0xE47E, 0x27F9,
|
||||
0xE4A1, 0xE4FE, 0x2838, 0xE540, 0xE57E, 0x2896, 0xE5A1, 0xE5FE, 0x28D5,
|
||||
0xE640, 0xE67E, 0x2933, 0xE6A1, 0xE6FE, 0x2972, 0xE740, 0xE77E, 0x29D0,
|
||||
0xE7A1, 0xE7FE, 0x2A0F, 0xE840, 0xE87E, 0x2A6D, 0xE8A1, 0xE8A2, 0x2AAC,
|
||||
0xE8A3, 0xE8FE, 0x2AAF, 0xE940, 0xE975, 0x2B0B, 0xE976, 0xE97E, 0x2B42,
|
||||
0xE9A1, 0xE9FE, 0x2B4B, 0xEA40, 0xEA7E, 0x2BA9, 0xEAA1, 0xEAFE, 0x2BE8,
|
||||
0xEB40, 0xEB5A, 0x2C46, 0xEB5B, 0xEB7E, 0x2C62, 0xEBA1, 0xEBF0, 0x2C86,
|
||||
0xEBF1, 0xEBF1, 0x2AAE, 0xEBF2, 0xEBFE, 0x2CD6, 0xEC40, 0xEC7E, 0x2CE3,
|
||||
0xECA1, 0xECDD, 0x2D22, 0xECDE, 0xECDE, 0x2B41, 0xECDF, 0xECFE, 0x2D5F,
|
||||
0xED40, 0xED7E, 0x2D7F, 0xEDA1, 0xEDA9, 0x2DBE, 0xEDAA, 0xEDFE, 0x2DC8,
|
||||
0xEE40, 0xEE7E, 0x2E1D, 0xEEA1, 0xEEEA, 0x2E5C, 0xEEEB, 0xEEEB, 0x3014,
|
||||
0xEEEC, 0xEEFE, 0x2EA6, 0xEF40, 0xEF7E, 0x2EB9, 0xEFA1, 0xEFFE, 0x2EF8,
|
||||
0xF040, 0xF055, 0x2F56, 0xF056, 0xF056, 0x2DC7, 0xF057, 0xF07E, 0x2F6C,
|
||||
0xF0A1, 0xF0CA, 0x2F94, 0xF0CB, 0xF0CB, 0x2C61, 0xF0CC, 0xF0FE, 0x2FBE,
|
||||
0xF140, 0xF162, 0x2FF1, 0xF163, 0xF16A, 0x3015, 0xF16B, 0xF16B, 0x3160,
|
||||
0xF16C, 0xF17E, 0x301D, 0xF1A1, 0xF1FE, 0x3030, 0xF240, 0xF267, 0x308E,
|
||||
0xF268, 0xF268, 0x31EF, 0xF269, 0xF27E, 0x30B6, 0xF2A1, 0xF2C2, 0x30CC,
|
||||
0xF2C3, 0xF2FE, 0x30EF, 0xF340, 0xF374, 0x312B, 0xF375, 0xF37E, 0x3161,
|
||||
0xF3A1, 0xF3FE, 0x316B, 0xF440, 0xF465, 0x31C9, 0xF466, 0xF47E, 0x31F0,
|
||||
0xF4A1, 0xF4B4, 0x3209, 0xF4B5, 0xF4B5, 0x30EE, 0xF4B6, 0xF4FC, 0x321D,
|
||||
0xF4FD, 0xF4FE, 0x3265, 0xF540, 0xF57E, 0x3267, 0xF5A1, 0xF5FE, 0x32A6,
|
||||
0xF640, 0xF662, 0x3304, 0xF663, 0xF663, 0x3264, 0xF664, 0xF67E, 0x3327,
|
||||
0xF6A1, 0xF6FE, 0x3342, 0xF740, 0xF77E, 0x33A0, 0xF7A1, 0xF7FE, 0x33DF,
|
||||
0xF840, 0xF87E, 0x343D, 0xF8A1, 0xF8FE, 0x347C, 0xF940, 0xF976, 0x34DA,
|
||||
0xF977, 0xF97E, 0x3512, 0xF9A1, 0xF9C3, 0x351A, 0xF9C4, 0xF9C4, 0x3511,
|
||||
0xF9C5, 0xF9C5, 0x353D, 0xF9C6, 0xF9C6, 0x3549, 0xF9C7, 0xF9D1, 0x353E,
|
||||
0xF9D2, 0xF9D5, 0x354A,
|
||||
};
|
14
modules/pdfium/pdfium/core/fpdfapi/cmaps/CNS1/B5pc-V_0.cpp
Normal file
14
modules/pdfium/pdfium/core/fpdfapi/cmaps/CNS1/B5pc-V_0.cpp
Normal file
@ -0,0 +1,14 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/CNS1/cmaps_cns1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_B5pc_V_0[12 * 3] = {
|
||||
0xA14B, 0xA14B, 0x354E, 0xA15A, 0xA15A, 0x35AF, 0xA15C, 0xA15C, 0x35B1,
|
||||
0xA15D, 0xA15E, 0x0082, 0xA161, 0xA162, 0x0086, 0xA165, 0xA166, 0x008A,
|
||||
0xA169, 0xA16A, 0x008E, 0xA16D, 0xA16E, 0x0092, 0xA171, 0xA172, 0x0096,
|
||||
0xA175, 0xA176, 0x009A, 0xA179, 0xA17A, 0x009E, 0xA1E3, 0xA1E3, 0x354F,
|
||||
};
|
172
modules/pdfium/pdfium/core/fpdfapi/cmaps/CNS1/CNS-EUC-H_0.cpp
Normal file
172
modules/pdfium/pdfium/core/fpdfapi/cmaps/CNS1/CNS-EUC-H_0.cpp
Normal file
@ -0,0 +1,172 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/CNS1/cmaps_cns1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_CNS_EUC_H_0[157 * 3] = {
|
||||
0x0020, 0x007E, 0x3550, 0xA1A1, 0xA1FE, 0x0063, 0xA2A1, 0xA2FE, 0x00C1,
|
||||
0xA3A1, 0xA3CE, 0x011F, 0xA4A1, 0xA4FE, 0x014D, 0xA5A1, 0xA5EC, 0x01AB,
|
||||
0xA5EE, 0xA5F0, 0x01F7, 0xA6A1, 0xA6BE, 0x01FA, 0xA7A1, 0xA7A1, 0x0253,
|
||||
0xA7A2, 0xA7A4, 0x0218, 0xA7A5, 0xA7A5, 0x0254, 0xA7A6, 0xA7A6, 0x021B,
|
||||
0xA7A7, 0xA7A7, 0x025A, 0xA7A8, 0xA7A8, 0x021C, 0xA7A9, 0xA7AC, 0x025B,
|
||||
0xA7AD, 0xA7AF, 0x021D, 0xA7B0, 0xA7B0, 0x025F, 0xA7B1, 0xA7B1, 0x176E,
|
||||
0xA7B2, 0xA7B2, 0x0260, 0xA7B3, 0xA7B3, 0x0262, 0xA7B4, 0xA7B4, 0x0220,
|
||||
0xA7B5, 0xA7B5, 0x0263, 0xA7B6, 0xA7B6, 0x176F, 0xA7B7, 0xA7B7, 0x0221,
|
||||
0xA7B8, 0xA7B9, 0x0264, 0xA7BA, 0xA7BA, 0x0222, 0xA7BB, 0xA7BB, 0x1770,
|
||||
0xA7BC, 0xA7BC, 0x0223, 0xA7BD, 0xA7BD, 0x0266, 0xA7BE, 0xA7BE, 0x0279,
|
||||
0xA7BF, 0xA7BF, 0x1775, 0xA7C0, 0xA7C1, 0x027A, 0xA7C2, 0xA7C2, 0x0224,
|
||||
0xA7C3, 0xA7C6, 0x027C, 0xA7C7, 0xA7C7, 0x0225, 0xA7C8, 0xA7CB, 0x0282,
|
||||
0xA7CC, 0xA7CC, 0x1776, 0xA7CD, 0xA7CD, 0x0286, 0xA7CE, 0xA7CE, 0x0226,
|
||||
0xA7CF, 0xA7D0, 0x0288, 0xA7D1, 0xA7D2, 0x028C, 0xA7D3, 0xA7D5, 0x0227,
|
||||
0xA7D6, 0xA7D8, 0x028E, 0xA7D9, 0xA7DA, 0x022A, 0xA7DB, 0xA7DB, 0x1777,
|
||||
0xA7DC, 0xA7DF, 0x02D0, 0xA7E0, 0xA7E0, 0x02D5, 0xA7E1, 0xA7E1, 0x022C,
|
||||
0xA7E2, 0xA7E5, 0x02D6, 0xA7E6, 0xA7E6, 0x022D, 0xA7E7, 0xA7ED, 0x02DA,
|
||||
0xA7EE, 0xA7EE, 0x178A, 0xA7EF, 0xA7F2, 0x02E1, 0xA7F3, 0xA7F3, 0x178C,
|
||||
0xA7F4, 0xA7F8, 0x02E5, 0xA7F9, 0xA7F9, 0x178D, 0xA7FA, 0xA7FD, 0x02EA,
|
||||
0xA7FE, 0xA7FE, 0x0356, 0xA8A1, 0xA8A6, 0x0357, 0xA8A7, 0xA8A7, 0x035E,
|
||||
0xA8A8, 0xA8A8, 0x0362, 0xA8A9, 0xA8AA, 0x022E, 0xA8AB, 0xA8B2, 0x0363,
|
||||
0xA8B3, 0xA8B3, 0x17B2, 0xA8B4, 0xA8B6, 0x036B, 0xA8B7, 0xA8BA, 0x03F6,
|
||||
0xA8BB, 0xA8BB, 0x1812, 0xA8BC, 0xA8BE, 0x03FA, 0xA8BF, 0xA8C3, 0x03FE,
|
||||
0xA8C4, 0xA8CC, 0x0405, 0xA8CD, 0xA8CD, 0x1813, 0xA8CE, 0xA8CE, 0x1818,
|
||||
0xA8CF, 0xA8D2, 0x040F, 0xA8D3, 0xA8D3, 0x1819, 0xA8D4, 0xA8D9, 0x0508,
|
||||
0xA8DA, 0xA8DA, 0x18E7, 0xA8DB, 0xA8E2, 0x050E, 0xA8E3, 0xA8E3, 0x0230,
|
||||
0xA8E4, 0xA8E4, 0x051B, 0xA8E5, 0xA8E7, 0x0520, 0xA8E8, 0xA8EB, 0x0696,
|
||||
0xA8EC, 0xA8EC, 0x0231, 0xA8ED, 0xA8F0, 0x069F, 0xA8F1, 0xA8FB, 0x0826,
|
||||
0xA8FC, 0xA8FE, 0x09F5, 0xA9A1, 0xA9A1, 0x1E33, 0xA9A2, 0xA9A2, 0x09F8,
|
||||
0xA9A3, 0xA9A3, 0x1E34, 0xA9A4, 0xA9A5, 0x09F9, 0xA9A6, 0xA9AB, 0x0BE1,
|
||||
0xA9AC, 0xA9AE, 0x0DBB, 0xA9AF, 0xA9AF, 0x2360, 0xA9B0, 0xA9B0, 0x2612,
|
||||
0xA9B1, 0xA9B3, 0x0F7B, 0xA9B4, 0xA9B5, 0x1100, 0xA9B6, 0xA9B6, 0x1289,
|
||||
0xA9B7, 0xA9B8, 0x13B2, 0xA9B9, 0xA9B9, 0x2F0D, 0xC2A1, 0xC2C1, 0x0232,
|
||||
0xC4A1, 0xC4FE, 0x0253, 0xC5A1, 0xC5FE, 0x02B1, 0xC6A1, 0xC6FE, 0x030F,
|
||||
0xC7A1, 0xC7FE, 0x036D, 0xC8A1, 0xC8FE, 0x03CB, 0xC9A1, 0xC9FE, 0x0429,
|
||||
0xCAA1, 0xCAFE, 0x0487, 0xCBA1, 0xCBFE, 0x04E5, 0xCCA1, 0xCCFE, 0x0543,
|
||||
0xCDA1, 0xCDFE, 0x05A1, 0xCEA1, 0xCEFE, 0x05FF, 0xCFA1, 0xCFFE, 0x065D,
|
||||
0xD0A1, 0xD0FE, 0x06BB, 0xD1A1, 0xD1FE, 0x0719, 0xD2A1, 0xD2FE, 0x0777,
|
||||
0xD3A1, 0xD3FE, 0x07D5, 0xD4A1, 0xD4FE, 0x0833, 0xD5A1, 0xD5FE, 0x0891,
|
||||
0xD6A1, 0xD6FE, 0x08EF, 0xD7A1, 0xD7FE, 0x094D, 0xD8A1, 0xD8FE, 0x09AB,
|
||||
0xD9A1, 0xD9FE, 0x0A09, 0xDAA1, 0xDAFE, 0x0A67, 0xDBA1, 0xDBFE, 0x0AC5,
|
||||
0xDCA1, 0xDCFE, 0x0B23, 0xDDA1, 0xDDFE, 0x0B81, 0xDEA1, 0xDEFE, 0x0BDF,
|
||||
0xDFA1, 0xDFFE, 0x0C3D, 0xE0A1, 0xE0FE, 0x0C9B, 0xE1A1, 0xE1FE, 0x0CF9,
|
||||
0xE2A1, 0xE2FE, 0x0D57, 0xE3A1, 0xE3FE, 0x0DB5, 0xE4A1, 0xE4FE, 0x0E13,
|
||||
0xE5A1, 0xE5FE, 0x0E71, 0xE6A1, 0xE6FE, 0x0ECF, 0xE7A1, 0xE7FE, 0x0F2D,
|
||||
0xE8A1, 0xE8FE, 0x0F8B, 0xE9A1, 0xE9FE, 0x0FE9, 0xEAA1, 0xEAFE, 0x1047,
|
||||
0xEBA1, 0xEBFE, 0x10A5, 0xECA1, 0xECFE, 0x1103, 0xEDA1, 0xEDFE, 0x1161,
|
||||
0xEEA1, 0xEEFE, 0x11BF, 0xEFA1, 0xEFFE, 0x121D, 0xF0A1, 0xF0FE, 0x127B,
|
||||
0xF1A1, 0xF1FE, 0x12D9, 0xF2A1, 0xF2FE, 0x1337, 0xF3A1, 0xF3FE, 0x1395,
|
||||
0xF4A1, 0xF4FE, 0x13F3, 0xF5A1, 0xF5FE, 0x1451, 0xF6A1, 0xF6FE, 0x14AF,
|
||||
0xF7A1, 0xF7FE, 0x150D, 0xF8A1, 0xF8FE, 0x156B, 0xF9A1, 0xF9FE, 0x15C9,
|
||||
0xFAA1, 0xFAFE, 0x1627, 0xFBA1, 0xFBFE, 0x1685, 0xFCA1, 0xFCFE, 0x16E3,
|
||||
0xFDA1, 0xFDCB, 0x1741,
|
||||
};
|
||||
|
||||
const uint16_t g_FXCMAP_CNS_EUC_H_0_DWord[238 * 4] = {
|
||||
0x8EA1, 0xA1A1, 0xA1FE, 0x0063, 0x8EA1, 0xA2A1, 0xA2FE, 0x00C1, 0x8EA1,
|
||||
0xA3A1, 0xA3CE, 0x011F, 0x8EA1, 0xA4A1, 0xA4FE, 0x014D, 0x8EA1, 0xA5A1,
|
||||
0xA5EC, 0x01AB, 0x8EA1, 0xA5EE, 0xA5F0, 0x01F7, 0x8EA1, 0xA6A1, 0xA6BE,
|
||||
0x01FA, 0x8EA1, 0xA7A1, 0xA7A1, 0x0253, 0x8EA1, 0xA7A2, 0xA7A4, 0x0218,
|
||||
0x8EA1, 0xA7A5, 0xA7A5, 0x0254, 0x8EA1, 0xA7A6, 0xA7A6, 0x021B, 0x8EA1,
|
||||
0xA7A7, 0xA7A7, 0x025A, 0x8EA1, 0xA7A8, 0xA7A8, 0x021C, 0x8EA1, 0xA7A9,
|
||||
0xA7AC, 0x025B, 0x8EA1, 0xA7AD, 0xA7AF, 0x021D, 0x8EA1, 0xA7B0, 0xA7B0,
|
||||
0x025F, 0x8EA1, 0xA7B1, 0xA7B1, 0x176E, 0x8EA1, 0xA7B2, 0xA7B2, 0x0260,
|
||||
0x8EA1, 0xA7B3, 0xA7B3, 0x0262, 0x8EA1, 0xA7B4, 0xA7B4, 0x0220, 0x8EA1,
|
||||
0xA7B5, 0xA7B5, 0x0263, 0x8EA1, 0xA7B6, 0xA7B6, 0x176F, 0x8EA1, 0xA7B7,
|
||||
0xA7B7, 0x0221, 0x8EA1, 0xA7B8, 0xA7B9, 0x0264, 0x8EA1, 0xA7BA, 0xA7BA,
|
||||
0x0222, 0x8EA1, 0xA7BB, 0xA7BB, 0x1770, 0x8EA1, 0xA7BC, 0xA7BC, 0x0223,
|
||||
0x8EA1, 0xA7BD, 0xA7BD, 0x0266, 0x8EA1, 0xA7BE, 0xA7BE, 0x0279, 0x8EA1,
|
||||
0xA7BF, 0xA7BF, 0x1775, 0x8EA1, 0xA7C0, 0xA7C1, 0x027A, 0x8EA1, 0xA7C2,
|
||||
0xA7C2, 0x0224, 0x8EA1, 0xA7C3, 0xA7C6, 0x027C, 0x8EA1, 0xA7C7, 0xA7C7,
|
||||
0x0225, 0x8EA1, 0xA7C8, 0xA7CB, 0x0282, 0x8EA1, 0xA7CC, 0xA7CC, 0x1776,
|
||||
0x8EA1, 0xA7CD, 0xA7CD, 0x0286, 0x8EA1, 0xA7CE, 0xA7CE, 0x0226, 0x8EA1,
|
||||
0xA7CF, 0xA7D0, 0x0288, 0x8EA1, 0xA7D1, 0xA7D2, 0x028C, 0x8EA1, 0xA7D3,
|
||||
0xA7D5, 0x0227, 0x8EA1, 0xA7D6, 0xA7D8, 0x028E, 0x8EA1, 0xA7D9, 0xA7DA,
|
||||
0x022A, 0x8EA1, 0xA7DB, 0xA7DB, 0x1777, 0x8EA1, 0xA7DC, 0xA7DF, 0x02D0,
|
||||
0x8EA1, 0xA7E0, 0xA7E0, 0x02D5, 0x8EA1, 0xA7E1, 0xA7E1, 0x022C, 0x8EA1,
|
||||
0xA7E2, 0xA7E5, 0x02D6, 0x8EA1, 0xA7E6, 0xA7E6, 0x022D, 0x8EA1, 0xA7E7,
|
||||
0xA7ED, 0x02DA, 0x8EA1, 0xA7EE, 0xA7EE, 0x178A, 0x8EA1, 0xA7EF, 0xA7F2,
|
||||
0x02E1, 0x8EA1, 0xA7F3, 0xA7F3, 0x178C, 0x8EA1, 0xA7F4, 0xA7F8, 0x02E5,
|
||||
0x8EA1, 0xA7F9, 0xA7F9, 0x178D, 0x8EA1, 0xA7FA, 0xA7FD, 0x02EA, 0x8EA1,
|
||||
0xA7FE, 0xA7FE, 0x0356, 0x8EA1, 0xA8A1, 0xA8A6, 0x0357, 0x8EA1, 0xA8A7,
|
||||
0xA8A7, 0x035E, 0x8EA1, 0xA8A8, 0xA8A8, 0x0362, 0x8EA1, 0xA8A9, 0xA8AA,
|
||||
0x022E, 0x8EA1, 0xA8AB, 0xA8B2, 0x0363, 0x8EA1, 0xA8B3, 0xA8B3, 0x17B2,
|
||||
0x8EA1, 0xA8B4, 0xA8B6, 0x036B, 0x8EA1, 0xA8B7, 0xA8BA, 0x03F6, 0x8EA1,
|
||||
0xA8BB, 0xA8BB, 0x1812, 0x8EA1, 0xA8BC, 0xA8BE, 0x03FA, 0x8EA1, 0xA8BF,
|
||||
0xA8C3, 0x03FE, 0x8EA1, 0xA8C4, 0xA8CC, 0x0405, 0x8EA1, 0xA8CD, 0xA8CD,
|
||||
0x1813, 0x8EA1, 0xA8CE, 0xA8CE, 0x1818, 0x8EA1, 0xA8CF, 0xA8D2, 0x040F,
|
||||
0x8EA1, 0xA8D3, 0xA8D3, 0x1819, 0x8EA1, 0xA8D4, 0xA8D9, 0x0508, 0x8EA1,
|
||||
0xA8DA, 0xA8DA, 0x18E7, 0x8EA1, 0xA8DB, 0xA8E2, 0x050E, 0x8EA1, 0xA8E3,
|
||||
0xA8E3, 0x0230, 0x8EA1, 0xA8E4, 0xA8E4, 0x051B, 0x8EA1, 0xA8E5, 0xA8E7,
|
||||
0x0520, 0x8EA1, 0xA8E8, 0xA8EB, 0x0696, 0x8EA1, 0xA8EC, 0xA8EC, 0x0231,
|
||||
0x8EA1, 0xA8ED, 0xA8F0, 0x069F, 0x8EA1, 0xA8F1, 0xA8FB, 0x0826, 0x8EA1,
|
||||
0xA8FC, 0xA8FE, 0x09F5, 0x8EA1, 0xA9A1, 0xA9A1, 0x1E33, 0x8EA1, 0xA9A2,
|
||||
0xA9A2, 0x09F8, 0x8EA1, 0xA9A3, 0xA9A3, 0x1E34, 0x8EA1, 0xA9A4, 0xA9A5,
|
||||
0x09F9, 0x8EA1, 0xA9A6, 0xA9AB, 0x0BE1, 0x8EA1, 0xA9AC, 0xA9AE, 0x0DBB,
|
||||
0x8EA1, 0xA9AF, 0xA9AF, 0x2360, 0x8EA1, 0xA9B0, 0xA9B0, 0x2612, 0x8EA1,
|
||||
0xA9B1, 0xA9B3, 0x0F7B, 0x8EA1, 0xA9B4, 0xA9B5, 0x1100, 0x8EA1, 0xA9B6,
|
||||
0xA9B6, 0x1289, 0x8EA1, 0xA9B7, 0xA9B8, 0x13B2, 0x8EA1, 0xA9B9, 0xA9B9,
|
||||
0x2F0D, 0x8EA1, 0xC2A1, 0xC2C1, 0x0232, 0x8EA1, 0xC4A1, 0xC4FE, 0x0253,
|
||||
0x8EA1, 0xC5A1, 0xC5FE, 0x02B1, 0x8EA1, 0xC6A1, 0xC6FE, 0x030F, 0x8EA1,
|
||||
0xC7A1, 0xC7FE, 0x036D, 0x8EA1, 0xC8A1, 0xC8FE, 0x03CB, 0x8EA1, 0xC9A1,
|
||||
0xC9FE, 0x0429, 0x8EA1, 0xCAA1, 0xCAFE, 0x0487, 0x8EA1, 0xCBA1, 0xCBFE,
|
||||
0x04E5, 0x8EA1, 0xCCA1, 0xCCFE, 0x0543, 0x8EA1, 0xCDA1, 0xCDFE, 0x05A1,
|
||||
0x8EA1, 0xCEA1, 0xCEFE, 0x05FF, 0x8EA1, 0xCFA1, 0xCFFE, 0x065D, 0x8EA1,
|
||||
0xD0A1, 0xD0FE, 0x06BB, 0x8EA1, 0xD1A1, 0xD1FE, 0x0719, 0x8EA1, 0xD2A1,
|
||||
0xD2FE, 0x0777, 0x8EA1, 0xD3A1, 0xD3FE, 0x07D5, 0x8EA1, 0xD4A1, 0xD4FE,
|
||||
0x0833, 0x8EA1, 0xD5A1, 0xD5FE, 0x0891, 0x8EA1, 0xD6A1, 0xD6FE, 0x08EF,
|
||||
0x8EA1, 0xD7A1, 0xD7FE, 0x094D, 0x8EA1, 0xD8A1, 0xD8FE, 0x09AB, 0x8EA1,
|
||||
0xD9A1, 0xD9FE, 0x0A09, 0x8EA1, 0xDAA1, 0xDAFE, 0x0A67, 0x8EA1, 0xDBA1,
|
||||
0xDBFE, 0x0AC5, 0x8EA1, 0xDCA1, 0xDCFE, 0x0B23, 0x8EA1, 0xDDA1, 0xDDFE,
|
||||
0x0B81, 0x8EA1, 0xDEA1, 0xDEFE, 0x0BDF, 0x8EA1, 0xDFA1, 0xDFFE, 0x0C3D,
|
||||
0x8EA1, 0xE0A1, 0xE0FE, 0x0C9B, 0x8EA1, 0xE1A1, 0xE1FE, 0x0CF9, 0x8EA1,
|
||||
0xE2A1, 0xE2FE, 0x0D57, 0x8EA1, 0xE3A1, 0xE3FE, 0x0DB5, 0x8EA1, 0xE4A1,
|
||||
0xE4FE, 0x0E13, 0x8EA1, 0xE5A1, 0xE5FE, 0x0E71, 0x8EA1, 0xE6A1, 0xE6FE,
|
||||
0x0ECF, 0x8EA1, 0xE7A1, 0xE7FE, 0x0F2D, 0x8EA1, 0xE8A1, 0xE8FE, 0x0F8B,
|
||||
0x8EA1, 0xE9A1, 0xE9FE, 0x0FE9, 0x8EA1, 0xEAA1, 0xEAFE, 0x1047, 0x8EA1,
|
||||
0xEBA1, 0xEBFE, 0x10A5, 0x8EA1, 0xECA1, 0xECFE, 0x1103, 0x8EA1, 0xEDA1,
|
||||
0xEDFE, 0x1161, 0x8EA1, 0xEEA1, 0xEEFE, 0x11BF, 0x8EA1, 0xEFA1, 0xEFFE,
|
||||
0x121D, 0x8EA1, 0xF0A1, 0xF0FE, 0x127B, 0x8EA1, 0xF1A1, 0xF1FE, 0x12D9,
|
||||
0x8EA1, 0xF2A1, 0xF2FE, 0x1337, 0x8EA1, 0xF3A1, 0xF3FE, 0x1395, 0x8EA1,
|
||||
0xF4A1, 0xF4FE, 0x13F3, 0x8EA1, 0xF5A1, 0xF5FE, 0x1451, 0x8EA1, 0xF6A1,
|
||||
0xF6FE, 0x14AF, 0x8EA1, 0xF7A1, 0xF7FE, 0x150D, 0x8EA1, 0xF8A1, 0xF8FE,
|
||||
0x156B, 0x8EA1, 0xF9A1, 0xF9FE, 0x15C9, 0x8EA1, 0xFAA1, 0xFAFE, 0x1627,
|
||||
0x8EA1, 0xFBA1, 0xFBFE, 0x1685, 0x8EA1, 0xFCA1, 0xFCFE, 0x16E3, 0x8EA1,
|
||||
0xFDA1, 0xFDCB, 0x1741, 0x8EA2, 0xA1A1, 0xA1FE, 0x176C, 0x8EA2, 0xA2A1,
|
||||
0xA2FE, 0x17CA, 0x8EA2, 0xA3A1, 0xA3FE, 0x1828, 0x8EA2, 0xA4A1, 0xA4FE,
|
||||
0x1886, 0x8EA2, 0xA5A1, 0xA5FE, 0x18E4, 0x8EA2, 0xA6A1, 0xA6FE, 0x1942,
|
||||
0x8EA2, 0xA7A1, 0xA7FE, 0x19A0, 0x8EA2, 0xA8A1, 0xA8FE, 0x19FE, 0x8EA2,
|
||||
0xA9A1, 0xA9FE, 0x1A5C, 0x8EA2, 0xAAA1, 0xAAFE, 0x1ABA, 0x8EA2, 0xABA1,
|
||||
0xABFE, 0x1B18, 0x8EA2, 0xACA1, 0xACFE, 0x1B76, 0x8EA2, 0xADA1, 0xADFE,
|
||||
0x1BD4, 0x8EA2, 0xAEA1, 0xAEFE, 0x1C32, 0x8EA2, 0xAFA1, 0xAFFE, 0x1C90,
|
||||
0x8EA2, 0xB0A1, 0xB0FE, 0x1CEE, 0x8EA2, 0xB1A1, 0xB1FE, 0x1D4C, 0x8EA2,
|
||||
0xB2A1, 0xB2FE, 0x1DAA, 0x8EA2, 0xB3A1, 0xB3FE, 0x1E08, 0x8EA2, 0xB4A1,
|
||||
0xB4FE, 0x1E66, 0x8EA2, 0xB5A1, 0xB5FE, 0x1EC4, 0x8EA2, 0xB6A1, 0xB6FE,
|
||||
0x1F22, 0x8EA2, 0xB7A1, 0xB7FE, 0x1F80, 0x8EA2, 0xB8A1, 0xB8FE, 0x1FDE,
|
||||
0x8EA2, 0xB9A1, 0xB9FE, 0x203C, 0x8EA2, 0xBAA1, 0xBAFE, 0x209A, 0x8EA2,
|
||||
0xBBA1, 0xBBFE, 0x20F8, 0x8EA2, 0xBCA1, 0xBCFE, 0x2156, 0x8EA2, 0xBDA1,
|
||||
0xBDFE, 0x21B4, 0x8EA2, 0xBEA1, 0xBEFE, 0x2212, 0x8EA2, 0xBFA1, 0xBFFE,
|
||||
0x2270, 0x8EA2, 0xC0A1, 0xC0FE, 0x22CE, 0x8EA2, 0xC1A1, 0xC1FE, 0x232C,
|
||||
0x8EA2, 0xC2A1, 0xC2FE, 0x238A, 0x8EA2, 0xC3A1, 0xC3FE, 0x23E8, 0x8EA2,
|
||||
0xC4A1, 0xC4FE, 0x2446, 0x8EA2, 0xC5A1, 0xC5FE, 0x24A4, 0x8EA2, 0xC6A1,
|
||||
0xC6FE, 0x2502, 0x8EA2, 0xC7A1, 0xC7FE, 0x2560, 0x8EA2, 0xC8A1, 0xC8FE,
|
||||
0x25BE, 0x8EA2, 0xC9A1, 0xC9FE, 0x261C, 0x8EA2, 0xCAA1, 0xCAFE, 0x267A,
|
||||
0x8EA2, 0xCBA1, 0xCBFE, 0x26D8, 0x8EA2, 0xCCA1, 0xCCFE, 0x2736, 0x8EA2,
|
||||
0xCDA1, 0xCDFE, 0x2794, 0x8EA2, 0xCEA1, 0xCEFE, 0x27F2, 0x8EA2, 0xCFA1,
|
||||
0xCFFE, 0x2850, 0x8EA2, 0xD0A1, 0xD0FE, 0x28AE, 0x8EA2, 0xD1A1, 0xD1FE,
|
||||
0x290C, 0x8EA2, 0xD2A1, 0xD2FE, 0x296A, 0x8EA2, 0xD3A1, 0xD3FE, 0x29C8,
|
||||
0x8EA2, 0xD4A1, 0xD4FE, 0x2A26, 0x8EA2, 0xD5A1, 0xD5FE, 0x2A84, 0x8EA2,
|
||||
0xD6A1, 0xD6FE, 0x2AE2, 0x8EA2, 0xD7A1, 0xD7FE, 0x2B40, 0x8EA2, 0xD8A1,
|
||||
0xD8FE, 0x2B9E, 0x8EA2, 0xD9A1, 0xD9FE, 0x2BFC, 0x8EA2, 0xDAA1, 0xDAFE,
|
||||
0x2C5A, 0x8EA2, 0xDBA1, 0xDBFE, 0x2CB8, 0x8EA2, 0xDCA1, 0xDCFE, 0x2D16,
|
||||
0x8EA2, 0xDDA1, 0xDDFE, 0x2D74, 0x8EA2, 0xDEA1, 0xDEFE, 0x2DD2, 0x8EA2,
|
||||
0xDFA1, 0xDFFE, 0x2E30, 0x8EA2, 0xE0A1, 0xE0FE, 0x2E8E, 0x8EA2, 0xE1A1,
|
||||
0xE1FE, 0x2EEC, 0x8EA2, 0xE2A1, 0xE2FE, 0x2F4A, 0x8EA2, 0xE3A1, 0xE3FE,
|
||||
0x2FA8, 0x8EA2, 0xE4A1, 0xE4FE, 0x3006, 0x8EA2, 0xE5A1, 0xE5FE, 0x3064,
|
||||
0x8EA2, 0xE6A1, 0xE6FE, 0x30C2, 0x8EA2, 0xE7A1, 0xE7FE, 0x3120, 0x8EA2,
|
||||
0xE8A1, 0xE8FE, 0x317E, 0x8EA2, 0xE9A1, 0xE9FE, 0x31DC, 0x8EA2, 0xEAA1,
|
||||
0xEAFE, 0x323A, 0x8EA2, 0xEBA1, 0xEBFE, 0x3298, 0x8EA2, 0xECA1, 0xECFE,
|
||||
0x32F6, 0x8EA2, 0xEDA1, 0xEDFE, 0x3354, 0x8EA2, 0xEEA1, 0xEEFE, 0x33B2,
|
||||
0x8EA2, 0xEFA1, 0xEFFE, 0x3410, 0x8EA2, 0xF0A1, 0xF0FE, 0x346E, 0x8EA2,
|
||||
0xF1A1, 0xF1FE, 0x34CC, 0x8EA2, 0xF2A1, 0xF2C4, 0x352A,
|
||||
};
|
189
modules/pdfium/pdfium/core/fpdfapi/cmaps/CNS1/CNS-EUC-V_0.cpp
Normal file
189
modules/pdfium/pdfium/core/fpdfapi/cmaps/CNS1/CNS-EUC-V_0.cpp
Normal file
@ -0,0 +1,189 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/CNS1/cmaps_cns1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_CNS_EUC_V_0[180 * 3] = {
|
||||
0x0020, 0x007E, 0x3550, 0xA1A1, 0xA1AB, 0x0063, 0xA1AC, 0xA1AC, 0x354E,
|
||||
0xA1AD, 0xA1BA, 0x006F, 0xA1BB, 0xA1BB, 0x007C, 0xA1BC, 0xA1BC, 0x007E,
|
||||
0xA1BD, 0xA1BD, 0x007E, 0xA1BE, 0xA1BF, 0x0082, 0xA1C0, 0xA1C1, 0x0082,
|
||||
0xA1C2, 0xA1C3, 0x0086, 0xA1C4, 0xA1C5, 0x0086, 0xA1C6, 0xA1C7, 0x008A,
|
||||
0xA1C8, 0xA1C9, 0x008A, 0xA1CA, 0xA1CB, 0x008E, 0xA1CC, 0xA1CD, 0x008E,
|
||||
0xA1CE, 0xA1CF, 0x0092, 0xA1D0, 0xA1D1, 0x0092, 0xA1D2, 0xA1D3, 0x0096,
|
||||
0xA1D4, 0xA1D5, 0x0096, 0xA1D6, 0xA1D7, 0x009A, 0xA1D8, 0xA1D9, 0x009A,
|
||||
0xA1DA, 0xA1DB, 0x009E, 0xA1DC, 0xA1FE, 0x009E, 0xA2A1, 0xA2C3, 0x00C1,
|
||||
0xA2C4, 0xA2C4, 0x354F, 0xA2C5, 0xA2FE, 0x00E5, 0xA3A1, 0xA3CE, 0x011F,
|
||||
0xA4A1, 0xA4FE, 0x014D, 0xA5A1, 0xA5EC, 0x01AB, 0xA5EE, 0xA5F0, 0x01F7,
|
||||
0xA6A1, 0xA6BE, 0x01FA, 0xA7A1, 0xA7A1, 0x0253, 0xA7A2, 0xA7A4, 0x0218,
|
||||
0xA7A5, 0xA7A5, 0x0254, 0xA7A6, 0xA7A6, 0x021B, 0xA7A7, 0xA7A7, 0x025A,
|
||||
0xA7A8, 0xA7A8, 0x021C, 0xA7A9, 0xA7AC, 0x025B, 0xA7AD, 0xA7AF, 0x021D,
|
||||
0xA7B0, 0xA7B0, 0x025F, 0xA7B1, 0xA7B1, 0x176E, 0xA7B2, 0xA7B2, 0x0260,
|
||||
0xA7B3, 0xA7B3, 0x0262, 0xA7B4, 0xA7B4, 0x0220, 0xA7B5, 0xA7B5, 0x0263,
|
||||
0xA7B6, 0xA7B6, 0x176F, 0xA7B7, 0xA7B7, 0x0221, 0xA7B8, 0xA7B9, 0x0264,
|
||||
0xA7BA, 0xA7BA, 0x0222, 0xA7BB, 0xA7BB, 0x1770, 0xA7BC, 0xA7BC, 0x0223,
|
||||
0xA7BD, 0xA7BD, 0x0266, 0xA7BE, 0xA7BE, 0x0279, 0xA7BF, 0xA7BF, 0x1775,
|
||||
0xA7C0, 0xA7C1, 0x027A, 0xA7C2, 0xA7C2, 0x0224, 0xA7C3, 0xA7C6, 0x027C,
|
||||
0xA7C7, 0xA7C7, 0x0225, 0xA7C8, 0xA7CB, 0x0282, 0xA7CC, 0xA7CC, 0x1776,
|
||||
0xA7CD, 0xA7CD, 0x0286, 0xA7CE, 0xA7CE, 0x0226, 0xA7CF, 0xA7D0, 0x0288,
|
||||
0xA7D1, 0xA7D2, 0x028C, 0xA7D3, 0xA7D5, 0x0227, 0xA7D6, 0xA7D8, 0x028E,
|
||||
0xA7D9, 0xA7DA, 0x022A, 0xA7DB, 0xA7DB, 0x1777, 0xA7DC, 0xA7DF, 0x02D0,
|
||||
0xA7E0, 0xA7E0, 0x02D5, 0xA7E1, 0xA7E1, 0x022C, 0xA7E2, 0xA7E5, 0x02D6,
|
||||
0xA7E6, 0xA7E6, 0x022D, 0xA7E7, 0xA7ED, 0x02DA, 0xA7EE, 0xA7EE, 0x178A,
|
||||
0xA7EF, 0xA7F2, 0x02E1, 0xA7F3, 0xA7F3, 0x178C, 0xA7F4, 0xA7F8, 0x02E5,
|
||||
0xA7F9, 0xA7F9, 0x178D, 0xA7FA, 0xA7FD, 0x02EA, 0xA7FE, 0xA7FE, 0x0356,
|
||||
0xA8A1, 0xA8A6, 0x0357, 0xA8A7, 0xA8A7, 0x035E, 0xA8A8, 0xA8A8, 0x0362,
|
||||
0xA8A9, 0xA8AA, 0x022E, 0xA8AB, 0xA8B2, 0x0363, 0xA8B3, 0xA8B3, 0x17B2,
|
||||
0xA8B4, 0xA8B6, 0x036B, 0xA8B7, 0xA8BA, 0x03F6, 0xA8BB, 0xA8BB, 0x1812,
|
||||
0xA8BC, 0xA8BE, 0x03FA, 0xA8BF, 0xA8C3, 0x03FE, 0xA8C4, 0xA8CC, 0x0405,
|
||||
0xA8CD, 0xA8CD, 0x1813, 0xA8CE, 0xA8CE, 0x1818, 0xA8CF, 0xA8D2, 0x040F,
|
||||
0xA8D3, 0xA8D3, 0x1819, 0xA8D4, 0xA8D9, 0x0508, 0xA8DA, 0xA8DA, 0x18E7,
|
||||
0xA8DB, 0xA8E2, 0x050E, 0xA8E3, 0xA8E3, 0x0230, 0xA8E4, 0xA8E4, 0x051B,
|
||||
0xA8E5, 0xA8E7, 0x0520, 0xA8E8, 0xA8EB, 0x0696, 0xA8EC, 0xA8EC, 0x0231,
|
||||
0xA8ED, 0xA8F0, 0x069F, 0xA8F1, 0xA8FB, 0x0826, 0xA8FC, 0xA8FE, 0x09F5,
|
||||
0xA9A1, 0xA9A1, 0x1E33, 0xA9A2, 0xA9A2, 0x09F8, 0xA9A3, 0xA9A3, 0x1E34,
|
||||
0xA9A4, 0xA9A5, 0x09F9, 0xA9A6, 0xA9AB, 0x0BE1, 0xA9AC, 0xA9AE, 0x0DBB,
|
||||
0xA9AF, 0xA9AF, 0x2360, 0xA9B0, 0xA9B0, 0x2612, 0xA9B1, 0xA9B3, 0x0F7B,
|
||||
0xA9B4, 0xA9B5, 0x1100, 0xA9B6, 0xA9B6, 0x1289, 0xA9B7, 0xA9B8, 0x13B2,
|
||||
0xA9B9, 0xA9B9, 0x2F0D, 0xC2A1, 0xC2C1, 0x0232, 0xC4A1, 0xC4FE, 0x0253,
|
||||
0xC5A1, 0xC5FE, 0x02B1, 0xC6A1, 0xC6FE, 0x030F, 0xC7A1, 0xC7FE, 0x036D,
|
||||
0xC8A1, 0xC8FE, 0x03CB, 0xC9A1, 0xC9FE, 0x0429, 0xCAA1, 0xCAFE, 0x0487,
|
||||
0xCBA1, 0xCBFE, 0x04E5, 0xCCA1, 0xCCFE, 0x0543, 0xCDA1, 0xCDFE, 0x05A1,
|
||||
0xCEA1, 0xCEFE, 0x05FF, 0xCFA1, 0xCFFE, 0x065D, 0xD0A1, 0xD0FE, 0x06BB,
|
||||
0xD1A1, 0xD1FE, 0x0719, 0xD2A1, 0xD2FE, 0x0777, 0xD3A1, 0xD3FE, 0x07D5,
|
||||
0xD4A1, 0xD4FE, 0x0833, 0xD5A1, 0xD5FE, 0x0891, 0xD6A1, 0xD6FE, 0x08EF,
|
||||
0xD7A1, 0xD7FE, 0x094D, 0xD8A1, 0xD8FE, 0x09AB, 0xD9A1, 0xD9FE, 0x0A09,
|
||||
0xDAA1, 0xDAFE, 0x0A67, 0xDBA1, 0xDBFE, 0x0AC5, 0xDCA1, 0xDCFE, 0x0B23,
|
||||
0xDDA1, 0xDDFE, 0x0B81, 0xDEA1, 0xDEFE, 0x0BDF, 0xDFA1, 0xDFFE, 0x0C3D,
|
||||
0xE0A1, 0xE0FE, 0x0C9B, 0xE1A1, 0xE1FE, 0x0CF9, 0xE2A1, 0xE2FE, 0x0D57,
|
||||
0xE3A1, 0xE3FE, 0x0DB5, 0xE4A1, 0xE4FE, 0x0E13, 0xE5A1, 0xE5FE, 0x0E71,
|
||||
0xE6A1, 0xE6FE, 0x0ECF, 0xE7A1, 0xE7FE, 0x0F2D, 0xE8A1, 0xE8FE, 0x0F8B,
|
||||
0xE9A1, 0xE9FE, 0x0FE9, 0xEAA1, 0xEAFE, 0x1047, 0xEBA1, 0xEBFE, 0x10A5,
|
||||
0xECA1, 0xECFE, 0x1103, 0xEDA1, 0xEDFE, 0x1161, 0xEEA1, 0xEEFE, 0x11BF,
|
||||
0xEFA1, 0xEFFE, 0x121D, 0xF0A1, 0xF0FE, 0x127B, 0xF1A1, 0xF1FE, 0x12D9,
|
||||
0xF2A1, 0xF2FE, 0x1337, 0xF3A1, 0xF3FE, 0x1395, 0xF4A1, 0xF4FE, 0x13F3,
|
||||
0xF5A1, 0xF5FE, 0x1451, 0xF6A1, 0xF6FE, 0x14AF, 0xF7A1, 0xF7FE, 0x150D,
|
||||
0xF8A1, 0xF8FE, 0x156B, 0xF9A1, 0xF9FE, 0x15C9, 0xFAA1, 0xFAFE, 0x1627,
|
||||
0xFBA1, 0xFBFE, 0x1685, 0xFCA1, 0xFCFE, 0x16E3, 0xFDA1, 0xFDCB, 0x1741,
|
||||
};
|
||||
|
||||
const uint16_t g_FXCMAP_CNS_EUC_V_0_DWord[261 * 4] = {
|
||||
0x8EA1, 0xA1A1, 0xA1AB, 0x0063, 0x8EA1, 0xA1AC, 0xA1AC, 0x354E, 0x8EA1,
|
||||
0xA1AD, 0xA1BA, 0x006F, 0x8EA1, 0xA1BB, 0xA1BB, 0x007C, 0x8EA1, 0xA1BC,
|
||||
0xA1BC, 0x007E, 0x8EA1, 0xA1BD, 0xA1BD, 0x007E, 0x8EA1, 0xA1BE, 0xA1BF,
|
||||
0x0082, 0x8EA1, 0xA1C0, 0xA1C1, 0x0082, 0x8EA1, 0xA1C2, 0xA1C3, 0x0086,
|
||||
0x8EA1, 0xA1C4, 0xA1C5, 0x0086, 0x8EA1, 0xA1C6, 0xA1C7, 0x008A, 0x8EA1,
|
||||
0xA1C8, 0xA1C9, 0x008A, 0x8EA1, 0xA1CA, 0xA1CB, 0x008E, 0x8EA1, 0xA1CC,
|
||||
0xA1CD, 0x008E, 0x8EA1, 0xA1CE, 0xA1CF, 0x0092, 0x8EA1, 0xA1D0, 0xA1D1,
|
||||
0x0092, 0x8EA1, 0xA1D2, 0xA1D3, 0x0096, 0x8EA1, 0xA1D4, 0xA1D5, 0x0096,
|
||||
0x8EA1, 0xA1D6, 0xA1D7, 0x009A, 0x8EA1, 0xA1D8, 0xA1D9, 0x009A, 0x8EA1,
|
||||
0xA1DA, 0xA1DB, 0x009E, 0x8EA1, 0xA1DC, 0xA1FE, 0x009E, 0x8EA1, 0xA2A1,
|
||||
0xA2C3, 0x00C1, 0x8EA1, 0xA2C4, 0xA2C4, 0x354F, 0x8EA1, 0xA2C5, 0xA2FE,
|
||||
0x00E5, 0x8EA1, 0xA3A1, 0xA3CE, 0x011F, 0x8EA1, 0xA4A1, 0xA4FE, 0x014D,
|
||||
0x8EA1, 0xA5A1, 0xA5EC, 0x01AB, 0x8EA1, 0xA5EE, 0xA5F0, 0x01F7, 0x8EA1,
|
||||
0xA6A1, 0xA6BE, 0x01FA, 0x8EA1, 0xA7A1, 0xA7A1, 0x0253, 0x8EA1, 0xA7A2,
|
||||
0xA7A4, 0x0218, 0x8EA1, 0xA7A5, 0xA7A5, 0x0254, 0x8EA1, 0xA7A6, 0xA7A6,
|
||||
0x021B, 0x8EA1, 0xA7A7, 0xA7A7, 0x025A, 0x8EA1, 0xA7A8, 0xA7A8, 0x021C,
|
||||
0x8EA1, 0xA7A9, 0xA7AC, 0x025B, 0x8EA1, 0xA7AD, 0xA7AF, 0x021D, 0x8EA1,
|
||||
0xA7B0, 0xA7B0, 0x025F, 0x8EA1, 0xA7B1, 0xA7B1, 0x176E, 0x8EA1, 0xA7B2,
|
||||
0xA7B2, 0x0260, 0x8EA1, 0xA7B3, 0xA7B3, 0x0262, 0x8EA1, 0xA7B4, 0xA7B4,
|
||||
0x0220, 0x8EA1, 0xA7B5, 0xA7B5, 0x0263, 0x8EA1, 0xA7B6, 0xA7B6, 0x176F,
|
||||
0x8EA1, 0xA7B7, 0xA7B7, 0x0221, 0x8EA1, 0xA7B8, 0xA7B9, 0x0264, 0x8EA1,
|
||||
0xA7BA, 0xA7BA, 0x0222, 0x8EA1, 0xA7BB, 0xA7BB, 0x1770, 0x8EA1, 0xA7BC,
|
||||
0xA7BC, 0x0223, 0x8EA1, 0xA7BD, 0xA7BD, 0x0266, 0x8EA1, 0xA7BE, 0xA7BE,
|
||||
0x0279, 0x8EA1, 0xA7BF, 0xA7BF, 0x1775, 0x8EA1, 0xA7C0, 0xA7C1, 0x027A,
|
||||
0x8EA1, 0xA7C2, 0xA7C2, 0x0224, 0x8EA1, 0xA7C3, 0xA7C6, 0x027C, 0x8EA1,
|
||||
0xA7C7, 0xA7C7, 0x0225, 0x8EA1, 0xA7C8, 0xA7CB, 0x0282, 0x8EA1, 0xA7CC,
|
||||
0xA7CC, 0x1776, 0x8EA1, 0xA7CD, 0xA7CD, 0x0286, 0x8EA1, 0xA7CE, 0xA7CE,
|
||||
0x0226, 0x8EA1, 0xA7CF, 0xA7D0, 0x0288, 0x8EA1, 0xA7D1, 0xA7D2, 0x028C,
|
||||
0x8EA1, 0xA7D3, 0xA7D5, 0x0227, 0x8EA1, 0xA7D6, 0xA7D8, 0x028E, 0x8EA1,
|
||||
0xA7D9, 0xA7DA, 0x022A, 0x8EA1, 0xA7DB, 0xA7DB, 0x1777, 0x8EA1, 0xA7DC,
|
||||
0xA7DF, 0x02D0, 0x8EA1, 0xA7E0, 0xA7E0, 0x02D5, 0x8EA1, 0xA7E1, 0xA7E1,
|
||||
0x022C, 0x8EA1, 0xA7E2, 0xA7E5, 0x02D6, 0x8EA1, 0xA7E6, 0xA7E6, 0x022D,
|
||||
0x8EA1, 0xA7E7, 0xA7ED, 0x02DA, 0x8EA1, 0xA7EE, 0xA7EE, 0x178A, 0x8EA1,
|
||||
0xA7EF, 0xA7F2, 0x02E1, 0x8EA1, 0xA7F3, 0xA7F3, 0x178C, 0x8EA1, 0xA7F4,
|
||||
0xA7F8, 0x02E5, 0x8EA1, 0xA7F9, 0xA7F9, 0x178D, 0x8EA1, 0xA7FA, 0xA7FD,
|
||||
0x02EA, 0x8EA1, 0xA7FE, 0xA7FE, 0x0356, 0x8EA1, 0xA8A1, 0xA8A6, 0x0357,
|
||||
0x8EA1, 0xA8A7, 0xA8A7, 0x035E, 0x8EA1, 0xA8A8, 0xA8A8, 0x0362, 0x8EA1,
|
||||
0xA8A9, 0xA8AA, 0x022E, 0x8EA1, 0xA8AB, 0xA8B2, 0x0363, 0x8EA1, 0xA8B3,
|
||||
0xA8B3, 0x17B2, 0x8EA1, 0xA8B4, 0xA8B6, 0x036B, 0x8EA1, 0xA8B7, 0xA8BA,
|
||||
0x03F6, 0x8EA1, 0xA8BB, 0xA8BB, 0x1812, 0x8EA1, 0xA8BC, 0xA8BE, 0x03FA,
|
||||
0x8EA1, 0xA8BF, 0xA8C3, 0x03FE, 0x8EA1, 0xA8C4, 0xA8CC, 0x0405, 0x8EA1,
|
||||
0xA8CD, 0xA8CD, 0x1813, 0x8EA1, 0xA8CE, 0xA8CE, 0x1818, 0x8EA1, 0xA8CF,
|
||||
0xA8D2, 0x040F, 0x8EA1, 0xA8D3, 0xA8D3, 0x1819, 0x8EA1, 0xA8D4, 0xA8D9,
|
||||
0x0508, 0x8EA1, 0xA8DA, 0xA8DA, 0x18E7, 0x8EA1, 0xA8DB, 0xA8E2, 0x050E,
|
||||
0x8EA1, 0xA8E3, 0xA8E3, 0x0230, 0x8EA1, 0xA8E4, 0xA8E4, 0x051B, 0x8EA1,
|
||||
0xA8E5, 0xA8E7, 0x0520, 0x8EA1, 0xA8E8, 0xA8EB, 0x0696, 0x8EA1, 0xA8EC,
|
||||
0xA8EC, 0x0231, 0x8EA1, 0xA8ED, 0xA8F0, 0x069F, 0x8EA1, 0xA8F1, 0xA8FB,
|
||||
0x0826, 0x8EA1, 0xA8FC, 0xA8FE, 0x09F5, 0x8EA1, 0xA9A1, 0xA9A1, 0x1E33,
|
||||
0x8EA1, 0xA9A2, 0xA9A2, 0x09F8, 0x8EA1, 0xA9A3, 0xA9A3, 0x1E34, 0x8EA1,
|
||||
0xA9A4, 0xA9A5, 0x09F9, 0x8EA1, 0xA9A6, 0xA9AB, 0x0BE1, 0x8EA1, 0xA9AC,
|
||||
0xA9AE, 0x0DBB, 0x8EA1, 0xA9AF, 0xA9AF, 0x2360, 0x8EA1, 0xA9B0, 0xA9B0,
|
||||
0x2612, 0x8EA1, 0xA9B1, 0xA9B3, 0x0F7B, 0x8EA1, 0xA9B4, 0xA9B5, 0x1100,
|
||||
0x8EA1, 0xA9B6, 0xA9B6, 0x1289, 0x8EA1, 0xA9B7, 0xA9B8, 0x13B2, 0x8EA1,
|
||||
0xA9B9, 0xA9B9, 0x2F0D, 0x8EA1, 0xC2A1, 0xC2C1, 0x0232, 0x8EA1, 0xC4A1,
|
||||
0xC4FE, 0x0253, 0x8EA1, 0xC5A1, 0xC5FE, 0x02B1, 0x8EA1, 0xC6A1, 0xC6FE,
|
||||
0x030F, 0x8EA1, 0xC7A1, 0xC7FE, 0x036D, 0x8EA1, 0xC8A1, 0xC8FE, 0x03CB,
|
||||
0x8EA1, 0xC9A1, 0xC9FE, 0x0429, 0x8EA1, 0xCAA1, 0xCAFE, 0x0487, 0x8EA1,
|
||||
0xCBA1, 0xCBFE, 0x04E5, 0x8EA1, 0xCCA1, 0xCCFE, 0x0543, 0x8EA1, 0xCDA1,
|
||||
0xCDFE, 0x05A1, 0x8EA1, 0xCEA1, 0xCEFE, 0x05FF, 0x8EA1, 0xCFA1, 0xCFFE,
|
||||
0x065D, 0x8EA1, 0xD0A1, 0xD0FE, 0x06BB, 0x8EA1, 0xD1A1, 0xD1FE, 0x0719,
|
||||
0x8EA1, 0xD2A1, 0xD2FE, 0x0777, 0x8EA1, 0xD3A1, 0xD3FE, 0x07D5, 0x8EA1,
|
||||
0xD4A1, 0xD4FE, 0x0833, 0x8EA1, 0xD5A1, 0xD5FE, 0x0891, 0x8EA1, 0xD6A1,
|
||||
0xD6FE, 0x08EF, 0x8EA1, 0xD7A1, 0xD7FE, 0x094D, 0x8EA1, 0xD8A1, 0xD8FE,
|
||||
0x09AB, 0x8EA1, 0xD9A1, 0xD9FE, 0x0A09, 0x8EA1, 0xDAA1, 0xDAFE, 0x0A67,
|
||||
0x8EA1, 0xDBA1, 0xDBFE, 0x0AC5, 0x8EA1, 0xDCA1, 0xDCFE, 0x0B23, 0x8EA1,
|
||||
0xDDA1, 0xDDFE, 0x0B81, 0x8EA1, 0xDEA1, 0xDEFE, 0x0BDF, 0x8EA1, 0xDFA1,
|
||||
0xDFFE, 0x0C3D, 0x8EA1, 0xE0A1, 0xE0FE, 0x0C9B, 0x8EA1, 0xE1A1, 0xE1FE,
|
||||
0x0CF9, 0x8EA1, 0xE2A1, 0xE2FE, 0x0D57, 0x8EA1, 0xE3A1, 0xE3FE, 0x0DB5,
|
||||
0x8EA1, 0xE4A1, 0xE4FE, 0x0E13, 0x8EA1, 0xE5A1, 0xE5FE, 0x0E71, 0x8EA1,
|
||||
0xE6A1, 0xE6FE, 0x0ECF, 0x8EA1, 0xE7A1, 0xE7FE, 0x0F2D, 0x8EA1, 0xE8A1,
|
||||
0xE8FE, 0x0F8B, 0x8EA1, 0xE9A1, 0xE9FE, 0x0FE9, 0x8EA1, 0xEAA1, 0xEAFE,
|
||||
0x1047, 0x8EA1, 0xEBA1, 0xEBFE, 0x10A5, 0x8EA1, 0xECA1, 0xECFE, 0x1103,
|
||||
0x8EA1, 0xEDA1, 0xEDFE, 0x1161, 0x8EA1, 0xEEA1, 0xEEFE, 0x11BF, 0x8EA1,
|
||||
0xEFA1, 0xEFFE, 0x121D, 0x8EA1, 0xF0A1, 0xF0FE, 0x127B, 0x8EA1, 0xF1A1,
|
||||
0xF1FE, 0x12D9, 0x8EA1, 0xF2A1, 0xF2FE, 0x1337, 0x8EA1, 0xF3A1, 0xF3FE,
|
||||
0x1395, 0x8EA1, 0xF4A1, 0xF4FE, 0x13F3, 0x8EA1, 0xF5A1, 0xF5FE, 0x1451,
|
||||
0x8EA1, 0xF6A1, 0xF6FE, 0x14AF, 0x8EA1, 0xF7A1, 0xF7FE, 0x150D, 0x8EA1,
|
||||
0xF8A1, 0xF8FE, 0x156B, 0x8EA1, 0xF9A1, 0xF9FE, 0x15C9, 0x8EA1, 0xFAA1,
|
||||
0xFAFE, 0x1627, 0x8EA1, 0xFBA1, 0xFBFE, 0x1685, 0x8EA1, 0xFCA1, 0xFCFE,
|
||||
0x16E3, 0x8EA1, 0xFDA1, 0xFDCB, 0x1741, 0x8EA2, 0xA1A1, 0xA1FE, 0x176C,
|
||||
0x8EA2, 0xA2A1, 0xA2FE, 0x17CA, 0x8EA2, 0xA3A1, 0xA3FE, 0x1828, 0x8EA2,
|
||||
0xA4A1, 0xA4FE, 0x1886, 0x8EA2, 0xA5A1, 0xA5FE, 0x18E4, 0x8EA2, 0xA6A1,
|
||||
0xA6FE, 0x1942, 0x8EA2, 0xA7A1, 0xA7FE, 0x19A0, 0x8EA2, 0xA8A1, 0xA8FE,
|
||||
0x19FE, 0x8EA2, 0xA9A1, 0xA9FE, 0x1A5C, 0x8EA2, 0xAAA1, 0xAAFE, 0x1ABA,
|
||||
0x8EA2, 0xABA1, 0xABFE, 0x1B18, 0x8EA2, 0xACA1, 0xACFE, 0x1B76, 0x8EA2,
|
||||
0xADA1, 0xADFE, 0x1BD4, 0x8EA2, 0xAEA1, 0xAEFE, 0x1C32, 0x8EA2, 0xAFA1,
|
||||
0xAFFE, 0x1C90, 0x8EA2, 0xB0A1, 0xB0FE, 0x1CEE, 0x8EA2, 0xB1A1, 0xB1FE,
|
||||
0x1D4C, 0x8EA2, 0xB2A1, 0xB2FE, 0x1DAA, 0x8EA2, 0xB3A1, 0xB3FE, 0x1E08,
|
||||
0x8EA2, 0xB4A1, 0xB4FE, 0x1E66, 0x8EA2, 0xB5A1, 0xB5FE, 0x1EC4, 0x8EA2,
|
||||
0xB6A1, 0xB6FE, 0x1F22, 0x8EA2, 0xB7A1, 0xB7FE, 0x1F80, 0x8EA2, 0xB8A1,
|
||||
0xB8FE, 0x1FDE, 0x8EA2, 0xB9A1, 0xB9FE, 0x203C, 0x8EA2, 0xBAA1, 0xBAFE,
|
||||
0x209A, 0x8EA2, 0xBBA1, 0xBBFE, 0x20F8, 0x8EA2, 0xBCA1, 0xBCFE, 0x2156,
|
||||
0x8EA2, 0xBDA1, 0xBDFE, 0x21B4, 0x8EA2, 0xBEA1, 0xBEFE, 0x2212, 0x8EA2,
|
||||
0xBFA1, 0xBFFE, 0x2270, 0x8EA2, 0xC0A1, 0xC0FE, 0x22CE, 0x8EA2, 0xC1A1,
|
||||
0xC1FE, 0x232C, 0x8EA2, 0xC2A1, 0xC2FE, 0x238A, 0x8EA2, 0xC3A1, 0xC3FE,
|
||||
0x23E8, 0x8EA2, 0xC4A1, 0xC4FE, 0x2446, 0x8EA2, 0xC5A1, 0xC5FE, 0x24A4,
|
||||
0x8EA2, 0xC6A1, 0xC6FE, 0x2502, 0x8EA2, 0xC7A1, 0xC7FE, 0x2560, 0x8EA2,
|
||||
0xC8A1, 0xC8FE, 0x25BE, 0x8EA2, 0xC9A1, 0xC9FE, 0x261C, 0x8EA2, 0xCAA1,
|
||||
0xCAFE, 0x267A, 0x8EA2, 0xCBA1, 0xCBFE, 0x26D8, 0x8EA2, 0xCCA1, 0xCCFE,
|
||||
0x2736, 0x8EA2, 0xCDA1, 0xCDFE, 0x2794, 0x8EA2, 0xCEA1, 0xCEFE, 0x27F2,
|
||||
0x8EA2, 0xCFA1, 0xCFFE, 0x2850, 0x8EA2, 0xD0A1, 0xD0FE, 0x28AE, 0x8EA2,
|
||||
0xD1A1, 0xD1FE, 0x290C, 0x8EA2, 0xD2A1, 0xD2FE, 0x296A, 0x8EA2, 0xD3A1,
|
||||
0xD3FE, 0x29C8, 0x8EA2, 0xD4A1, 0xD4FE, 0x2A26, 0x8EA2, 0xD5A1, 0xD5FE,
|
||||
0x2A84, 0x8EA2, 0xD6A1, 0xD6FE, 0x2AE2, 0x8EA2, 0xD7A1, 0xD7FE, 0x2B40,
|
||||
0x8EA2, 0xD8A1, 0xD8FE, 0x2B9E, 0x8EA2, 0xD9A1, 0xD9FE, 0x2BFC, 0x8EA2,
|
||||
0xDAA1, 0xDAFE, 0x2C5A, 0x8EA2, 0xDBA1, 0xDBFE, 0x2CB8, 0x8EA2, 0xDCA1,
|
||||
0xDCFE, 0x2D16, 0x8EA2, 0xDDA1, 0xDDFE, 0x2D74, 0x8EA2, 0xDEA1, 0xDEFE,
|
||||
0x2DD2, 0x8EA2, 0xDFA1, 0xDFFE, 0x2E30, 0x8EA2, 0xE0A1, 0xE0FE, 0x2E8E,
|
||||
0x8EA2, 0xE1A1, 0xE1FE, 0x2EEC, 0x8EA2, 0xE2A1, 0xE2FE, 0x2F4A, 0x8EA2,
|
||||
0xE3A1, 0xE3FE, 0x2FA8, 0x8EA2, 0xE4A1, 0xE4FE, 0x3006, 0x8EA2, 0xE5A1,
|
||||
0xE5FE, 0x3064, 0x8EA2, 0xE6A1, 0xE6FE, 0x30C2, 0x8EA2, 0xE7A1, 0xE7FE,
|
||||
0x3120, 0x8EA2, 0xE8A1, 0xE8FE, 0x317E, 0x8EA2, 0xE9A1, 0xE9FE, 0x31DC,
|
||||
0x8EA2, 0xEAA1, 0xEAFE, 0x323A, 0x8EA2, 0xEBA1, 0xEBFE, 0x3298, 0x8EA2,
|
||||
0xECA1, 0xECFE, 0x32F6, 0x8EA2, 0xEDA1, 0xEDFE, 0x3354, 0x8EA2, 0xEEA1,
|
||||
0xEEFE, 0x33B2, 0x8EA2, 0xEFA1, 0xEFFE, 0x3410, 0x8EA2, 0xF0A1, 0xF0FE,
|
||||
0x346E, 0x8EA2, 0xF1A1, 0xF1FE, 0x34CC, 0x8EA2, 0xF2A1, 0xF2C4, 0x352A,
|
||||
};
|
@ -0,0 +1,95 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/CNS1/cmaps_cns1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_ETen_B5_H_0[254 * 3] = {
|
||||
0x0020, 0x007E, 0x3550, 0xA140, 0xA158, 0x0063, 0xA159, 0xA15C, 0x35AF,
|
||||
0xA15D, 0xA17E, 0x0080, 0xA1A1, 0xA1F5, 0x00A2, 0xA1F6, 0xA1F6, 0x00F8,
|
||||
0xA1F7, 0xA1F7, 0x00F7, 0xA1F8, 0xA1FE, 0x00F9, 0xA240, 0xA27E, 0x0100,
|
||||
0xA2A1, 0xA2FE, 0x013F, 0xA340, 0xA37E, 0x019D, 0xA3A1, 0xA3BB, 0x01DC,
|
||||
0xA3BD, 0xA3BF, 0x01F7, 0xA440, 0xA47E, 0x0253, 0xA4A1, 0xA4FE, 0x0292,
|
||||
0xA540, 0xA57E, 0x02F0, 0xA5A1, 0xA5FE, 0x032F, 0xA640, 0xA67E, 0x038D,
|
||||
0xA6A1, 0xA6FE, 0x03CC, 0xA740, 0xA77E, 0x042A, 0xA7A1, 0xA7FE, 0x0469,
|
||||
0xA840, 0xA87E, 0x04C7, 0xA8A1, 0xA8FE, 0x0506, 0xA940, 0xA97E, 0x0564,
|
||||
0xA9A1, 0xA9FE, 0x05A3, 0xAA40, 0xAA7E, 0x0601, 0xAAA1, 0xAAFE, 0x0640,
|
||||
0xAB40, 0xAB7E, 0x069E, 0xABA1, 0xABFE, 0x06DD, 0xAC40, 0xAC7E, 0x073B,
|
||||
0xACA1, 0xACFD, 0x077A, 0xACFE, 0xACFE, 0x097F, 0xAD40, 0xAD7E, 0x07D7,
|
||||
0xADA1, 0xADFE, 0x0816, 0xAE40, 0xAE7E, 0x0874, 0xAEA1, 0xAEFE, 0x08B3,
|
||||
0xAF40, 0xAF7E, 0x0911, 0xAFA1, 0xAFCF, 0x0950, 0xAFD0, 0xAFFE, 0x0980,
|
||||
0xB040, 0xB07E, 0x09AF, 0xB0A1, 0xB0FE, 0x09EE, 0xB140, 0xB17E, 0x0A4C,
|
||||
0xB1A1, 0xB1FE, 0x0A8B, 0xB240, 0xB27E, 0x0AE9, 0xB2A1, 0xB2FE, 0x0B28,
|
||||
0xB340, 0xB37E, 0x0B86, 0xB3A1, 0xB3FE, 0x0BC5, 0xB440, 0xB47E, 0x0C23,
|
||||
0xB4A1, 0xB4FE, 0x0C62, 0xB540, 0xB57E, 0x0CC0, 0xB5A1, 0xB5FE, 0x0CFF,
|
||||
0xB640, 0xB67E, 0x0D5D, 0xB6A1, 0xB6FE, 0x0D9C, 0xB740, 0xB77E, 0x0DFA,
|
||||
0xB7A1, 0xB7FE, 0x0E39, 0xB840, 0xB87E, 0x0E97, 0xB8A1, 0xB8FE, 0x0ED6,
|
||||
0xB940, 0xB97E, 0x0F34, 0xB9A1, 0xB9FE, 0x0F73, 0xBA40, 0xBA7E, 0x0FD1,
|
||||
0xBAA1, 0xBAFE, 0x1010, 0xBB40, 0xBB7E, 0x106E, 0xBBA1, 0xBBC7, 0x10AD,
|
||||
0xBBC8, 0xBBFE, 0x10D5, 0xBC40, 0xBC7E, 0x110C, 0xBCA1, 0xBCFE, 0x114B,
|
||||
0xBD40, 0xBD7E, 0x11A9, 0xBDA1, 0xBDFE, 0x11E8, 0xBE40, 0xBE51, 0x1246,
|
||||
0xBE52, 0xBE52, 0x10D4, 0xBE53, 0xBE7E, 0x1258, 0xBEA1, 0xBEFE, 0x1284,
|
||||
0xBF40, 0xBF7E, 0x12E2, 0xBFA1, 0xBFFE, 0x1321, 0xC040, 0xC07E, 0x137F,
|
||||
0xC0A1, 0xC0FE, 0x13BE, 0xC140, 0xC17E, 0x141C, 0xC1A1, 0xC1AA, 0x145B,
|
||||
0xC1AB, 0xC1FE, 0x1466, 0xC240, 0xC27E, 0x14BA, 0xC2A1, 0xC2CA, 0x14F9,
|
||||
0xC2CB, 0xC2CB, 0x1465, 0xC2CC, 0xC2FE, 0x1523, 0xC340, 0xC360, 0x1556,
|
||||
0xC361, 0xC37E, 0x1578, 0xC3A1, 0xC3B8, 0x1596, 0xC3B9, 0xC3B9, 0x15AF,
|
||||
0xC3BA, 0xC3BA, 0x15AE, 0xC3BB, 0xC3FE, 0x15B0, 0xC440, 0xC455, 0x15F4,
|
||||
0xC456, 0xC456, 0x1577, 0xC457, 0xC47E, 0x160A, 0xC4A1, 0xC4FE, 0x1632,
|
||||
0xC540, 0xC57E, 0x1690, 0xC5A1, 0xC5FE, 0x16CF, 0xC640, 0xC67E, 0x172D,
|
||||
0xC6A1, 0xC6BE, 0x01FA, 0xC6BF, 0xC6D7, 0x0219, 0xC6D8, 0xC6DE, 0x35B3,
|
||||
0xC6DF, 0xC6DF, 0x1794, 0xC6E0, 0xC6FE, 0x35BA, 0xC740, 0xC77E, 0x35D9,
|
||||
0xC7A1, 0xC7FE, 0x3618, 0xC840, 0xC87E, 0x3676, 0xC8A1, 0xC8D3, 0x36B5,
|
||||
0xC940, 0xC949, 0x176C, 0xC94A, 0xC94A, 0x0274, 0xC94B, 0xC96B, 0x1776,
|
||||
0xC96C, 0xC97E, 0x1798, 0xC9A1, 0xC9BD, 0x17AB, 0xC9BE, 0xC9BE, 0x1797,
|
||||
0xC9BF, 0xC9EC, 0x17C8, 0xC9ED, 0xC9FE, 0x17F7, 0xCA40, 0xCA7E, 0x1809,
|
||||
0xCAA1, 0xCAF6, 0x1848, 0xCAF7, 0xCAF7, 0x17F6, 0xCAF8, 0xCAFE, 0x189E,
|
||||
0xCB40, 0xCB7E, 0x18A5, 0xCBA1, 0xCBFE, 0x18E4, 0xCC40, 0xCC7E, 0x1942,
|
||||
0xCCA1, 0xCCFE, 0x1981, 0xCD40, 0xCD7E, 0x19DF, 0xCDA1, 0xCDFE, 0x1A1E,
|
||||
0xCE40, 0xCE7E, 0x1A7C, 0xCEA1, 0xCEFE, 0x1ABB, 0xCF40, 0xCF7E, 0x1B19,
|
||||
0xCFA1, 0xCFFE, 0x1B58, 0xD040, 0xD07E, 0x1BB6, 0xD0A1, 0xD0FE, 0x1BF5,
|
||||
0xD140, 0xD17E, 0x1C53, 0xD1A1, 0xD1FE, 0x1C92, 0xD240, 0xD27E, 0x1CF0,
|
||||
0xD2A1, 0xD2FE, 0x1D2F, 0xD340, 0xD37E, 0x1D8D, 0xD3A1, 0xD3FE, 0x1DCC,
|
||||
0xD440, 0xD47E, 0x1E2A, 0xD4A1, 0xD4FE, 0x1E69, 0xD540, 0xD57E, 0x1EC7,
|
||||
0xD5A1, 0xD5FE, 0x1F06, 0xD640, 0xD67E, 0x1F64, 0xD6A1, 0xD6CB, 0x1FA3,
|
||||
0xD6CC, 0xD6CC, 0x2254, 0xD6CD, 0xD6FE, 0x1FCF, 0xD740, 0xD779, 0x2001,
|
||||
0xD77A, 0xD77A, 0x22B9, 0xD77B, 0xD77E, 0x203B, 0xD7A1, 0xD7FE, 0x203F,
|
||||
0xD840, 0xD87E, 0x209D, 0xD8A1, 0xD8FE, 0x20DC, 0xD940, 0xD97E, 0x213A,
|
||||
0xD9A1, 0xD9FE, 0x2179, 0xDA40, 0xDA7E, 0x21D7, 0xDAA1, 0xDADE, 0x2216,
|
||||
0xDADF, 0xDADF, 0x1FCE, 0xDAE0, 0xDAFE, 0x2255, 0xDB40, 0xDB7E, 0x2274,
|
||||
0xDBA1, 0xDBA6, 0x22B3, 0xDBA7, 0xDBFE, 0x22BA, 0xDC40, 0xDC7E, 0x2312,
|
||||
0xDCA1, 0xDCFE, 0x2351, 0xDD40, 0xDD7E, 0x23AF, 0xDDA1, 0xDDFB, 0x23EE,
|
||||
0xDDFC, 0xDDFC, 0x2381, 0xDDFD, 0xDDFE, 0x2449, 0xDE40, 0xDE7E, 0x244B,
|
||||
0xDEA1, 0xDEFE, 0x248A, 0xDF40, 0xDF7E, 0x24E8, 0xDFA1, 0xDFFE, 0x2527,
|
||||
0xE040, 0xE07E, 0x2585, 0xE0A1, 0xE0FE, 0x25C4, 0xE140, 0xE17E, 0x2622,
|
||||
0xE1A1, 0xE1FE, 0x2661, 0xE240, 0xE27E, 0x26BF, 0xE2A1, 0xE2FE, 0x26FE,
|
||||
0xE340, 0xE37E, 0x275C, 0xE3A1, 0xE3FE, 0x279B, 0xE440, 0xE47E, 0x27F9,
|
||||
0xE4A1, 0xE4FE, 0x2838, 0xE540, 0xE57E, 0x2896, 0xE5A1, 0xE5FE, 0x28D5,
|
||||
0xE640, 0xE67E, 0x2933, 0xE6A1, 0xE6FE, 0x2972, 0xE740, 0xE77E, 0x29D0,
|
||||
0xE7A1, 0xE7FE, 0x2A0F, 0xE840, 0xE87E, 0x2A6D, 0xE8A1, 0xE8A2, 0x2AAC,
|
||||
0xE8A3, 0xE8FE, 0x2AAF, 0xE940, 0xE975, 0x2B0B, 0xE976, 0xE97E, 0x2B42,
|
||||
0xE9A1, 0xE9FE, 0x2B4B, 0xEA40, 0xEA7E, 0x2BA9, 0xEAA1, 0xEAFE, 0x2BE8,
|
||||
0xEB40, 0xEB5A, 0x2C46, 0xEB5B, 0xEB7E, 0x2C62, 0xEBA1, 0xEBF0, 0x2C86,
|
||||
0xEBF1, 0xEBF1, 0x2AAE, 0xEBF2, 0xEBFE, 0x2CD6, 0xEC40, 0xEC7E, 0x2CE3,
|
||||
0xECA1, 0xECDD, 0x2D22, 0xECDE, 0xECDE, 0x2B41, 0xECDF, 0xECFE, 0x2D5F,
|
||||
0xED40, 0xED7E, 0x2D7F, 0xEDA1, 0xEDA9, 0x2DBE, 0xEDAA, 0xEDFE, 0x2DC8,
|
||||
0xEE40, 0xEE7E, 0x2E1D, 0xEEA1, 0xEEEA, 0x2E5C, 0xEEEB, 0xEEEB, 0x3014,
|
||||
0xEEEC, 0xEEFE, 0x2EA6, 0xEF40, 0xEF7E, 0x2EB9, 0xEFA1, 0xEFFE, 0x2EF8,
|
||||
0xF040, 0xF055, 0x2F56, 0xF056, 0xF056, 0x2DC7, 0xF057, 0xF07E, 0x2F6C,
|
||||
0xF0A1, 0xF0CA, 0x2F94, 0xF0CB, 0xF0CB, 0x2C61, 0xF0CC, 0xF0FE, 0x2FBE,
|
||||
0xF140, 0xF162, 0x2FF1, 0xF163, 0xF16A, 0x3015, 0xF16B, 0xF16B, 0x3160,
|
||||
0xF16C, 0xF17E, 0x301D, 0xF1A1, 0xF1FE, 0x3030, 0xF240, 0xF267, 0x308E,
|
||||
0xF268, 0xF268, 0x31EF, 0xF269, 0xF27E, 0x30B6, 0xF2A1, 0xF2C2, 0x30CC,
|
||||
0xF2C3, 0xF2FE, 0x30EF, 0xF340, 0xF374, 0x312B, 0xF375, 0xF37E, 0x3161,
|
||||
0xF3A1, 0xF3FE, 0x316B, 0xF440, 0xF465, 0x31C9, 0xF466, 0xF47E, 0x31F0,
|
||||
0xF4A1, 0xF4B4, 0x3209, 0xF4B5, 0xF4B5, 0x30EE, 0xF4B6, 0xF4FC, 0x321D,
|
||||
0xF4FD, 0xF4FE, 0x3265, 0xF540, 0xF57E, 0x3267, 0xF5A1, 0xF5FE, 0x32A6,
|
||||
0xF640, 0xF662, 0x3304, 0xF663, 0xF663, 0x3264, 0xF664, 0xF67E, 0x3327,
|
||||
0xF6A1, 0xF6FE, 0x3342, 0xF740, 0xF77E, 0x33A0, 0xF7A1, 0xF7FE, 0x33DF,
|
||||
0xF840, 0xF87E, 0x343D, 0xF8A1, 0xF8FE, 0x347C, 0xF940, 0xF976, 0x34DA,
|
||||
0xF977, 0xF97E, 0x3512, 0xF9A1, 0xF9C3, 0x351A, 0xF9C4, 0xF9C4, 0x3511,
|
||||
0xF9C5, 0xF9C5, 0x353D, 0xF9C6, 0xF9C6, 0x3549, 0xF9C7, 0xF9D1, 0x353E,
|
||||
0xF9D2, 0xF9D5, 0x354A, 0xF9D6, 0xF9FE, 0x36E8,
|
||||
};
|
@ -0,0 +1,15 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/CNS1/cmaps_cns1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_ETen_B5_V_0[13 * 3] = {
|
||||
0xA14B, 0xA14B, 0x354E, 0xA15A, 0xA15A, 0x35AF, 0xA15C, 0xA15C,
|
||||
0x35B1, 0xA15D, 0xA15E, 0x0082, 0xA161, 0xA162, 0x0086, 0xA165,
|
||||
0xA166, 0x008A, 0xA169, 0xA16A, 0x008E, 0xA16D, 0xA16E, 0x0092,
|
||||
0xA171, 0xA172, 0x0096, 0xA175, 0xA176, 0x009A, 0xA179, 0xA17A,
|
||||
0x009E, 0xA1E3, 0xA1E3, 0x354F, 0xC6E4, 0xC6E5, 0x3711,
|
||||
};
|
@ -0,0 +1,11 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/CNS1/cmaps_cns1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_ETenms_B5_H_0[1 * 3] = {
|
||||
0x0020, 0x007E, 0x0001,
|
||||
};
|
@ -0,0 +1,16 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/CNS1/cmaps_cns1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_ETenms_B5_V_0[18 * 3] = {
|
||||
0xA14B, 0xA14B, 0x354E, 0xA14C, 0xA14C, 0x006D, 0xA156, 0xA156, 0x0138,
|
||||
0xA158, 0xA158, 0x007A, 0xA15A, 0xA15A, 0x35AF, 0xA15C, 0xA15C, 0x35B1,
|
||||
0xA15D, 0xA15E, 0x0082, 0xA161, 0xA162, 0x0086, 0xA165, 0xA166, 0x008A,
|
||||
0xA169, 0xA16A, 0x008E, 0xA16D, 0xA16E, 0x0092, 0xA171, 0xA172, 0x0096,
|
||||
0xA175, 0xA176, 0x009A, 0xA179, 0xA17A, 0x009E, 0xA17D, 0xA17E, 0x0082,
|
||||
0xA1A1, 0xA1A2, 0x0086, 0xA1A3, 0xA1A4, 0x008A, 0xC6E4, 0xC6E5, 0x3711,
|
||||
};
|
414
modules/pdfium/pdfium/core/fpdfapi/cmaps/CNS1/HKscs-B5-H_5.cpp
Normal file
414
modules/pdfium/pdfium/core/fpdfapi/cmaps/CNS1/HKscs-B5-H_5.cpp
Normal file
@ -0,0 +1,414 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/CNS1/cmaps_cns1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_HKscs_B5_H_5[1210 * 3] = {
|
||||
0x0020, 0x007E, 0x0001, 0x8740, 0x8765, 0x4A15, 0x8767, 0x8779, 0x4A3B,
|
||||
0x8840, 0x8855, 0x44C9, 0x8856, 0x887E, 0x4961, 0x88A1, 0x88A8, 0x498A,
|
||||
0x88A9, 0x88AA, 0x499C, 0x8940, 0x8941, 0x4534, 0x8943, 0x8943, 0x4536,
|
||||
0x8946, 0x8949, 0x4537, 0x894C, 0x894C, 0x453B, 0x894D, 0x894D, 0x43C3,
|
||||
0x894E, 0x8950, 0x453C, 0x8951, 0x8951, 0x439A, 0x8952, 0x897E, 0x453F,
|
||||
0x89A1, 0x89A5, 0x456C, 0x89A6, 0x89A6, 0x43A2, 0x89AB, 0x89AB, 0x43EC,
|
||||
0x89AC, 0x89AC, 0x4571, 0x89AD, 0x89AD, 0x43EB, 0x89AE, 0x89AE, 0x4572,
|
||||
0x89B0, 0x89B2, 0x4573, 0x89B5, 0x89BF, 0x4576, 0x89C1, 0x89C3, 0x4581,
|
||||
0x89C5, 0x89CE, 0x4584, 0x89CF, 0x89CF, 0x43BC, 0x89D0, 0x89D8, 0x458E,
|
||||
0x89D9, 0x89D9, 0x439C, 0x89DA, 0x89DA, 0x4597, 0x89DB, 0x89DB, 0x439E,
|
||||
0x89DC, 0x89DC, 0x4598, 0x89DD, 0x89DD, 0x439F, 0x89DE, 0x89E0, 0x4599,
|
||||
0x89E1, 0x89E1, 0x43A1, 0x89E2, 0x89E2, 0x459C, 0x89E3, 0x89E3, 0x43A3,
|
||||
0x89E4, 0x89E9, 0x459D, 0x89EA, 0x89EB, 0x43A5, 0x89EC, 0x89F9, 0x45A3,
|
||||
0x89FA, 0x89FA, 0x43A9, 0x89FB, 0x89FE, 0x45B1, 0x8A40, 0x8A40, 0x45B5,
|
||||
0x8A41, 0x8A41, 0x4309, 0x8A43, 0x8A4C, 0x430B, 0x8A4D, 0x8A4D, 0x45B6,
|
||||
0x8A4E, 0x8A59, 0x4316, 0x8A5A, 0x8A5A, 0x45B7, 0x8A5B, 0x8A5D, 0x4323,
|
||||
0x8A5E, 0x8A5E, 0x45B8, 0x8A5F, 0x8A62, 0x4327, 0x8A64, 0x8A70, 0x432C,
|
||||
0x8A71, 0x8A71, 0x45B9, 0x8A72, 0x8A74, 0x433A, 0x8A76, 0x8A76, 0x433E,
|
||||
0x8A77, 0x8A77, 0x45BA, 0x8A78, 0x8A79, 0x4340, 0x8A7A, 0x8A7A, 0x45BB,
|
||||
0x8A7B, 0x8A7B, 0x4343, 0x8A7C, 0x8A7C, 0x45BC, 0x8A7D, 0x8A7D, 0x4345,
|
||||
0x8A7E, 0x8A7E, 0x45BD, 0x8AA1, 0x8AA7, 0x4347, 0x8AA8, 0x8AA8, 0x45BE,
|
||||
0x8AA9, 0x8AAA, 0x434F, 0x8AAC, 0x8AB0, 0x4352, 0x8AB2, 0x8AB5, 0x4358,
|
||||
0x8AB6, 0x8AB6, 0x45BF, 0x8AB7, 0x8AB7, 0x435D, 0x8AB8, 0x8AB8, 0x45C0,
|
||||
0x8AB9, 0x8AB9, 0x435F, 0x8ABB, 0x8AC7, 0x4361, 0x8AC9, 0x8ACB, 0x436F,
|
||||
0x8ACC, 0x8ACC, 0x45C1, 0x8ACE, 0x8AD5, 0x4374, 0x8AD6, 0x8AD7, 0x45C2,
|
||||
0x8AD8, 0x8ADC, 0x437E, 0x8ADF, 0x8AE5, 0x4385, 0x8AE6, 0x8AE6, 0x45C4,
|
||||
0x8AE7, 0x8AE7, 0x43DB, 0x8AE8, 0x8AF4, 0x45C5, 0x8AF6, 0x8AFE, 0x45D2,
|
||||
0x8B40, 0x8B40, 0x45DB, 0x8B41, 0x8B42, 0x438C, 0x8B43, 0x8B44, 0x45DC,
|
||||
0x8B45, 0x8B45, 0x438E, 0x8B46, 0x8B46, 0x45DE, 0x8B47, 0x8B47, 0x438F,
|
||||
0x8B48, 0x8B48, 0x45DF, 0x8B49, 0x8B49, 0x4390, 0x8B4A, 0x8B4A, 0x45E0,
|
||||
0x8B4B, 0x8B4B, 0x4391, 0x8B4C, 0x8B4C, 0x45E1, 0x8B4D, 0x8B50, 0x4392,
|
||||
0x8B51, 0x8B53, 0x45E2, 0x8B55, 0x8B57, 0x45E5, 0x8B58, 0x8B58, 0x4397,
|
||||
0x8B59, 0x8B59, 0x45E8, 0x8B5A, 0x8B5A, 0x4398, 0x8B5B, 0x8B5B, 0x43C4,
|
||||
0x8B5C, 0x8B60, 0x45E9, 0x8B61, 0x8B61, 0x43A7, 0x8B62, 0x8B67, 0x45EE,
|
||||
0x8B68, 0x8B68, 0x43AC, 0x8B69, 0x8B7E, 0x45F4, 0x8BA1, 0x8BBF, 0x460A,
|
||||
0x8BC0, 0x8BDC, 0x44DF, 0x8BDE, 0x8BFD, 0x44FC, 0x8C40, 0x8C61, 0x49A1,
|
||||
0x8C62, 0x8C62, 0x4A4E, 0x8C63, 0x8C7E, 0x49C3, 0x8CA1, 0x8CA5, 0x49DF,
|
||||
0x8CA7, 0x8CC5, 0x49E4, 0x8CC9, 0x8CCC, 0x4A03, 0x8CCE, 0x8CDA, 0x4A07,
|
||||
0x8CDB, 0x8CDB, 0x4A4F, 0x8CDC, 0x8CDC, 0x4A14, 0x8CDD, 0x8CE4, 0x4A50,
|
||||
0x8CE6, 0x8CFE, 0x4A58, 0x8D40, 0x8D40, 0x4A71, 0x8D42, 0x8D5F, 0x4A72,
|
||||
0x8D60, 0x8D61, 0x4629, 0x8D62, 0x8D62, 0x43BA, 0x8D63, 0x8D67, 0x462B,
|
||||
0x8D68, 0x8D68, 0x43BB, 0x8D69, 0x8D69, 0x43A0, 0x8D6A, 0x8D6A, 0x43BD,
|
||||
0x8D6B, 0x8D6D, 0x4630, 0x8D6E, 0x8D6E, 0x43BE, 0x8D6F, 0x8D75, 0x4633,
|
||||
0x8D76, 0x8D76, 0x43BF, 0x8D77, 0x8D79, 0x463A, 0x8D7A, 0x8D7A, 0x43C0,
|
||||
0x8D7B, 0x8D7B, 0x463D, 0x8D7C, 0x8D7C, 0x43C1, 0x8D7D, 0x8D7E, 0x463E,
|
||||
0x8DA1, 0x8DA4, 0x4640, 0x8DA5, 0x8DA5, 0x43C2, 0x8DA6, 0x8DA7, 0x4644,
|
||||
0x8DA8, 0x8DA8, 0x43B9, 0x8DA9, 0x8DA9, 0x43AD, 0x8DAA, 0x8DB5, 0x4646,
|
||||
0x8DB6, 0x8DB6, 0x43C7, 0x8DB7, 0x8DC2, 0x4652, 0x8DC3, 0x8DC3, 0x43C8,
|
||||
0x8DC4, 0x8DF9, 0x465E, 0x8DFA, 0x8DFA, 0x43F9, 0x8DFB, 0x8DFE, 0x4694,
|
||||
0x8E40, 0x8E44, 0x372B, 0x8E45, 0x8E45, 0x4698, 0x8E46, 0x8E68, 0x3730,
|
||||
0x8E69, 0x8E69, 0x1055, 0x8E6A, 0x8E6A, 0x3754, 0x8E6B, 0x8E6C, 0x4699,
|
||||
0x8E6D, 0x8E6E, 0x3756, 0x8E6F, 0x8E6F, 0x2DE8, 0x8E70, 0x8E75, 0x3759,
|
||||
0x8E76, 0x8E76, 0x469B, 0x8E77, 0x8E7A, 0x375F, 0x8E7B, 0x8E7B, 0x469C,
|
||||
0x8E7C, 0x8E7D, 0x3764, 0x8E7E, 0x8E7E, 0x0121, 0x8EA1, 0x8EA5, 0x3766,
|
||||
0x8EA6, 0x8EA6, 0x469D, 0x8EA7, 0x8EAA, 0x376B, 0x8EAB, 0x8EAB, 0x106B,
|
||||
0x8EAC, 0x8EB3, 0x3770, 0x8EB4, 0x8EB4, 0x1326, 0x8EB5, 0x8EB7, 0x3779,
|
||||
0x8EB8, 0x8EB8, 0x469E, 0x8EB9, 0x8EC8, 0x377D, 0x8EC9, 0x8EC9, 0x469F,
|
||||
0x8ECA, 0x8ECC, 0x378D, 0x8ECD, 0x8ECD, 0x066B, 0x8ECE, 0x8ECF, 0x3791,
|
||||
0x8ED0, 0x8ED0, 0x132E, 0x8ED1, 0x8EE4, 0x3794, 0x8EE5, 0x8EE5, 0x46A0,
|
||||
0x8EE6, 0x8EEE, 0x37A8, 0x8EEF, 0x8EEF, 0x46A1, 0x8EF0, 0x8EF5, 0x37B1,
|
||||
0x8EF6, 0x8EF6, 0x46A2, 0x8EF7, 0x8EFE, 0x37B8, 0x8F40, 0x8F56, 0x37C0,
|
||||
0x8F57, 0x8F57, 0x0D35, 0x8F58, 0x8F58, 0x37D8, 0x8F59, 0x8F59, 0x46A3,
|
||||
0x8F5A, 0x8F5E, 0x37D9, 0x8F5F, 0x8F5F, 0x46A4, 0x8F60, 0x8F66, 0x37DE,
|
||||
0x8F67, 0x8F67, 0x46A5, 0x8F68, 0x8F68, 0x37E5, 0x8F69, 0x8F69, 0x27C2,
|
||||
0x8F6A, 0x8F6D, 0x37E7, 0x8F6E, 0x8F6E, 0x22AD, 0x8F6F, 0x8F78, 0x37EC,
|
||||
0x8F79, 0x8F79, 0x46A6, 0x8F7A, 0x8F7E, 0x37F7, 0x8FA1, 0x8FAF, 0x37FC,
|
||||
0x8FB0, 0x8FB0, 0x46A7, 0x8FB1, 0x8FC4, 0x380C, 0x8FC5, 0x8FC5, 0x46A8,
|
||||
0x8FC6, 0x8FC6, 0x3820, 0x8FC7, 0x8FC7, 0x46A9, 0x8FC8, 0x8FC9, 0x3821,
|
||||
0x8FCA, 0x8FCA, 0x46AA, 0x8FCB, 0x8FCB, 0x134C, 0x8FCC, 0x8FCC, 0x3FF9,
|
||||
0x8FCD, 0x8FD9, 0x3826, 0x8FDA, 0x8FDA, 0x46AB, 0x8FDB, 0x8FE2, 0x3833,
|
||||
0x8FE3, 0x8FE3, 0x46AC, 0x8FE4, 0x8FFB, 0x383C, 0x8FFC, 0x8FFC, 0x46AD,
|
||||
0x8FFD, 0x8FFD, 0x3854, 0x8FFE, 0x8FFE, 0x09CE, 0x9040, 0x9054, 0x3856,
|
||||
0x9055, 0x9055, 0x46AE, 0x9056, 0x905B, 0x386C, 0x905C, 0x905E, 0x46AF,
|
||||
0x905F, 0x906C, 0x3873, 0x906D, 0x906D, 0x0BC7, 0x906E, 0x906E, 0x3882,
|
||||
0x906F, 0x906F, 0x46B2, 0x9070, 0x9079, 0x3883, 0x907A, 0x907A, 0x36E9,
|
||||
0x907B, 0x907E, 0x388D, 0x90A1, 0x90A5, 0x3891, 0x90A6, 0x90A6, 0x46B3,
|
||||
0x90A7, 0x90B7, 0x3896, 0x90B8, 0x90B8, 0x46B4, 0x90B9, 0x90DB, 0x38A7,
|
||||
0x90DC, 0x90DC, 0x1391, 0x90DD, 0x90F0, 0x38CB, 0x90F1, 0x90F1, 0x16A4,
|
||||
0x90F2, 0x90FE, 0x38E0, 0x9140, 0x9164, 0x38ED, 0x9165, 0x9165, 0x46B5,
|
||||
0x9166, 0x916D, 0x3912, 0x916E, 0x916E, 0x46B6, 0x916F, 0x917D, 0x391A,
|
||||
0x917E, 0x917E, 0x46B7, 0x91A1, 0x91A1, 0x3929, 0x91A2, 0x91A2, 0x46B8,
|
||||
0x91A3, 0x91BE, 0x392A, 0x91BF, 0x91BF, 0x3072, 0x91C0, 0x91C7, 0x3947,
|
||||
0x91C8, 0x91C8, 0x46B9, 0x91C9, 0x91FE, 0x3950, 0x9240, 0x9243, 0x3986,
|
||||
0x9244, 0x9244, 0x3988, 0x9245, 0x9263, 0x398B, 0x9264, 0x9264, 0x46BA,
|
||||
0x9265, 0x926C, 0x39AB, 0x926D, 0x926D, 0x46BB, 0x926E, 0x927E, 0x39B4,
|
||||
0x92A1, 0x92AE, 0x39C5, 0x92AF, 0x92B0, 0x0119, 0x92B1, 0x92B1, 0x011C,
|
||||
0x92B2, 0x92B2, 0x011B, 0x92B3, 0x92C7, 0x39D3, 0x92C8, 0x92C8, 0x3FAC,
|
||||
0x92C9, 0x92D0, 0x39E9, 0x92D1, 0x92D1, 0x297C, 0x92D2, 0x92E4, 0x39F2,
|
||||
0x92E5, 0x92E5, 0x46BC, 0x92E6, 0x92F1, 0x3A05, 0x92F2, 0x92F2, 0x46BD,
|
||||
0x92F3, 0x92FE, 0x3A11, 0x9340, 0x9367, 0x3A1D, 0x9368, 0x9368, 0x46BE,
|
||||
0x9369, 0x937E, 0x3A45, 0x93A1, 0x93A9, 0x3A5B, 0x93AA, 0x93AA, 0x46BF,
|
||||
0x93AB, 0x93C1, 0x3A64, 0x93C2, 0x93C2, 0x46C0, 0x93C3, 0x93E4, 0x3A7B,
|
||||
0x93E5, 0x93E5, 0x46C1, 0x93E6, 0x93E7, 0x3A9D, 0x93E8, 0x93E8, 0x46C2,
|
||||
0x93E9, 0x93EA, 0x3AA0, 0x93EB, 0x93EB, 0x46C3, 0x93EC, 0x93FE, 0x3AA2,
|
||||
0x9440, 0x9445, 0x3AB5, 0x9446, 0x9446, 0x46C4, 0x9447, 0x9447, 0x1D06,
|
||||
0x9448, 0x9478, 0x3ABC, 0x9479, 0x9479, 0x46C5, 0x947A, 0x947E, 0x3AEE,
|
||||
0x94A1, 0x94C9, 0x3AF3, 0x94CA, 0x94CA, 0x29A1, 0x94CB, 0x94CB, 0x46C6,
|
||||
0x94CC, 0x94FE, 0x3B1E, 0x9540, 0x954C, 0x3B51, 0x954D, 0x954D, 0x46C7,
|
||||
0x954E, 0x9559, 0x3B5E, 0x955A, 0x955A, 0x46C8, 0x955B, 0x955E, 0x3B6A,
|
||||
0x955F, 0x955F, 0x46C9, 0x9560, 0x957E, 0x3B6F, 0x95A1, 0x95C5, 0x3B8E,
|
||||
0x95C6, 0x95C6, 0x46CA, 0x95C7, 0x95D8, 0x3BB3, 0x95D9, 0x95D9, 0x181B,
|
||||
0x95DA, 0x95FE, 0x3BC6, 0x9640, 0x9643, 0x3BEB, 0x9644, 0x9644, 0x3E2F,
|
||||
0x9645, 0x9650, 0x3BF0, 0x9651, 0x9651, 0x46CB, 0x9652, 0x9669, 0x3BFD,
|
||||
0x966A, 0x966A, 0x46CC, 0x966B, 0x967E, 0x3C16, 0x96A1, 0x96D3, 0x3C2A,
|
||||
0x96D4, 0x96D4, 0x46CD, 0x96D5, 0x96EC, 0x3C5D, 0x96ED, 0x96ED, 0x3C76,
|
||||
0x96EE, 0x96FB, 0x3C76, 0x96FC, 0x96FC, 0x2B24, 0x96FD, 0x96FE, 0x3C85,
|
||||
0x9740, 0x977E, 0x3C87, 0x97A1, 0x97FE, 0x3CC6, 0x9840, 0x9843, 0x3D24,
|
||||
0x9844, 0x9845, 0x46CE, 0x9846, 0x986E, 0x3D2A, 0x986F, 0x986F, 0x46D0,
|
||||
0x9870, 0x9874, 0x3D54, 0x9875, 0x9876, 0x46D1, 0x9877, 0x9877, 0x3D59,
|
||||
0x9878, 0x9879, 0x46D3, 0x987A, 0x987A, 0x3D5A, 0x987B, 0x987E, 0x46D5,
|
||||
0x98A1, 0x98A2, 0x46D9, 0x98A3, 0x98A3, 0x3D5B, 0x98A4, 0x98AE, 0x46DB,
|
||||
0x98AF, 0x98AF, 0x3D5C, 0x98B0, 0x98B3, 0x46E6, 0x98B4, 0x98B4, 0x43CA,
|
||||
0x98B5, 0x98B5, 0x46EA, 0x98B6, 0x98B6, 0x3D5D, 0x98B7, 0x98B7, 0x46EB,
|
||||
0x98B8, 0x98B8, 0x43CC, 0x98B9, 0x98B9, 0x3D5E, 0x98BA, 0x98BA, 0x46EC,
|
||||
0x98BB, 0x98BB, 0x43FA, 0x98BC, 0x98BC, 0x46ED, 0x98BD, 0x98BE, 0x3D5F,
|
||||
0x98BF, 0x98C1, 0x46EE, 0x98C2, 0x98C2, 0x3D61, 0x98C3, 0x98C3, 0x46F1,
|
||||
0x98C4, 0x98C4, 0x3D62, 0x98C5, 0x98C5, 0x46F2, 0x98C6, 0x98C7, 0x3D63,
|
||||
0x98C8, 0x98D1, 0x46F3, 0x98D2, 0x98D2, 0x43CD, 0x98D3, 0x98D7, 0x46FD,
|
||||
0x98D8, 0x98D9, 0x43CE, 0x98DA, 0x98DA, 0x4702, 0x98DB, 0x98DB, 0x43D1,
|
||||
0x98DC, 0x98DE, 0x4703, 0x98DF, 0x98DF, 0x43D4, 0x98E0, 0x98E2, 0x4706,
|
||||
0x98E3, 0x98E3, 0x3D65, 0x98E4, 0x98E6, 0x4709, 0x98E7, 0x98E7, 0x3D66,
|
||||
0x98E8, 0x98EC, 0x470C, 0x98ED, 0x98ED, 0x3D67, 0x98EE, 0x98EF, 0x4711,
|
||||
0x98F0, 0x98F0, 0x3D68, 0x98F1, 0x98F1, 0x4713, 0x98F2, 0x98F2, 0x3D69,
|
||||
0x98F3, 0x98F3, 0x4714, 0x98F4, 0x98F5, 0x43D5, 0x98F6, 0x98FB, 0x4715,
|
||||
0x98FC, 0x98FC, 0x3D6A, 0x98FD, 0x98FD, 0x471B, 0x98FE, 0x98FE, 0x43D7,
|
||||
0x9940, 0x9941, 0x471C, 0x9942, 0x9942, 0x43FC, 0x9943, 0x9943, 0x3D6B,
|
||||
0x9944, 0x9944, 0x471E, 0x9945, 0x9945, 0x3D6C, 0x9946, 0x9946, 0x471F,
|
||||
0x9947, 0x9947, 0x43D8, 0x9948, 0x994E, 0x4720, 0x994F, 0x994F, 0x3D6D,
|
||||
0x9950, 0x9953, 0x4727, 0x9954, 0x9954, 0x43D9, 0x9955, 0x995B, 0x472B,
|
||||
0x995C, 0x995C, 0x43DA, 0x995D, 0x9963, 0x4732, 0x9964, 0x9964, 0x43DC,
|
||||
0x9965, 0x9969, 0x4739, 0x996A, 0x996A, 0x3D6E, 0x996B, 0x996D, 0x473E,
|
||||
0x996E, 0x996E, 0x3D6F, 0x996F, 0x9974, 0x4741, 0x9975, 0x9975, 0x3D70,
|
||||
0x9976, 0x9977, 0x4747, 0x9978, 0x9978, 0x3D71, 0x9979, 0x997E, 0x4749,
|
||||
0x99A1, 0x99A1, 0x474F, 0x99A2, 0x99A2, 0x3D72, 0x99A3, 0x99A3, 0x4750,
|
||||
0x99A4, 0x99A4, 0x43C5, 0x99A5, 0x99A5, 0x4751, 0x99A6, 0x99A6, 0x43C6,
|
||||
0x99A7, 0x99AD, 0x4752, 0x99AE, 0x99AE, 0x3D73, 0x99AF, 0x99B1, 0x4759,
|
||||
0x99B2, 0x99B2, 0x43DE, 0x99B3, 0x99B5, 0x475C, 0x99B6, 0x99B6, 0x3D74,
|
||||
0x99B7, 0x99B9, 0x475F, 0x99BA, 0x99BA, 0x3D75, 0x99BB, 0x99C9, 0x4762,
|
||||
0x99CA, 0x99CA, 0x43E0, 0x99CB, 0x99CC, 0x4771, 0x99CD, 0x99CD, 0x43E2,
|
||||
0x99CE, 0x99D2, 0x4773, 0x99D3, 0x99D3, 0x43E3, 0x99D4, 0x99D5, 0x4778,
|
||||
0x99D6, 0x99D6, 0x43E5, 0x99D7, 0x99DE, 0x477A, 0x99DF, 0x99DF, 0x43DF,
|
||||
0x99E0, 0x99E1, 0x4782, 0x99E2, 0x99E2, 0x3D76, 0x99E3, 0x99E3, 0x4784,
|
||||
0x99E4, 0x99E4, 0x43AB, 0x99E5, 0x99E5, 0x4785, 0x99E6, 0x99E6, 0x43E7,
|
||||
0x99E7, 0x99E7, 0x4786, 0x99E8, 0x99E8, 0x43E9, 0x99E9, 0x99EE, 0x4787,
|
||||
0x99EF, 0x99EF, 0x43FD, 0x99F0, 0x99F3, 0x478D, 0x99F4, 0x99F4, 0x3D77,
|
||||
0x99F5, 0x99FE, 0x4791, 0x9A40, 0x9A49, 0x479B, 0x9A4A, 0x9A4A, 0x3D78,
|
||||
0x9A4B, 0x9A4B, 0x47A5, 0x9A4C, 0x9A4C, 0x3D79, 0x9A4D, 0x9A58, 0x47A6,
|
||||
0x9A59, 0x9A59, 0x3D7A, 0x9A5A, 0x9A5E, 0x47B2, 0x9A5F, 0x9A5F, 0x43AF,
|
||||
0x9A60, 0x9A60, 0x47B7, 0x9A61, 0x9A61, 0x3D7B, 0x9A62, 0x9A65, 0x47B8,
|
||||
0x9A66, 0x9A66, 0x43ED, 0x9A67, 0x9A67, 0x47BC, 0x9A68, 0x9A68, 0x3D7C,
|
||||
0x9A69, 0x9A69, 0x43EE, 0x9A6A, 0x9A6A, 0x47BD, 0x9A6B, 0x9A6B, 0x43FF,
|
||||
0x9A6C, 0x9A72, 0x47BE, 0x9A73, 0x9A73, 0x3D7D, 0x9A74, 0x9A74, 0x47C5,
|
||||
0x9A75, 0x9A75, 0x43F1, 0x9A76, 0x9A7D, 0x47C6, 0x9A7E, 0x9A7E, 0x3D7E,
|
||||
0x9AA1, 0x9AA2, 0x47CE, 0x9AA3, 0x9AA3, 0x43F3, 0x9AA4, 0x9AA4, 0x47D0,
|
||||
0x9AA5, 0x9AA5, 0x43F2, 0x9AA6, 0x9AA8, 0x47D1, 0x9AA9, 0x9AA9, 0x43F8,
|
||||
0x9AAA, 0x9AAA, 0x43F4, 0x9AAB, 0x9AB1, 0x47D4, 0x9AB2, 0x9AB2, 0x3D7F,
|
||||
0x9AB3, 0x9AB6, 0x47DB, 0x9AB7, 0x9AB7, 0x3D80, 0x9AB8, 0x9AB8, 0x47DF,
|
||||
0x9AB9, 0x9AB9, 0x3D81, 0x9ABA, 0x9ABA, 0x47E0, 0x9ABB, 0x9ABB, 0x3D82,
|
||||
0x9ABC, 0x9ABC, 0x47E1, 0x9ABD, 0x9ABD, 0x43B7, 0x9ABE, 0x9AC6, 0x47E2,
|
||||
0x9AC7, 0x9AC7, 0x3D83, 0x9AC8, 0x9ACF, 0x47EB, 0x9AD0, 0x9AD0, 0x3D84,
|
||||
0x9AD1, 0x9AD1, 0x47F3, 0x9AD2, 0x9AD2, 0x3D85, 0x9AD3, 0x9AD8, 0x47F4,
|
||||
0x9AD9, 0x9ADB, 0x3D86, 0x9ADC, 0x9AE1, 0x47FA, 0x9AE2, 0x9AE2, 0x3D89,
|
||||
0x9AE3, 0x9AE3, 0x4800, 0x9AE4, 0x9AE4, 0x3D8A, 0x9AE5, 0x9AE7, 0x4801,
|
||||
0x9AE8, 0x9AE8, 0x3D8B, 0x9AE9, 0x9AE9, 0x43B0, 0x9AEA, 0x9AED, 0x4804,
|
||||
0x9AEE, 0x9AEE, 0x43B2, 0x9AEF, 0x9AF1, 0x4808, 0x9AF2, 0x9AF2, 0x3D8C,
|
||||
0x9AF3, 0x9AF5, 0x480B, 0x9AF6, 0x9AF6, 0x3D8D, 0x9AF7, 0x9AFA, 0x480E,
|
||||
0x9AFB, 0x9AFB, 0x3D8E, 0x9AFC, 0x9AFE, 0x4812, 0x9B40, 0x9B45, 0x4815,
|
||||
0x9B46, 0x9B46, 0x3D8F, 0x9B47, 0x9B49, 0x481B, 0x9B4A, 0x9B4A, 0x3D90,
|
||||
0x9B4B, 0x9B53, 0x481E, 0x9B54, 0x9B54, 0x3D92, 0x9B55, 0x9B57, 0x4827,
|
||||
0x9B58, 0x9B58, 0x3D93, 0x9B59, 0x9B59, 0x482A, 0x9B5A, 0x9B5A, 0x3D94,
|
||||
0x9B5B, 0x9B5B, 0x482B, 0x9B5C, 0x9B5C, 0x3D95, 0x9B5D, 0x9B5D, 0x482C,
|
||||
0x9B5E, 0x9B5F, 0x3D96, 0x9B60, 0x9B60, 0x482D, 0x9B62, 0x9B6F, 0x482E,
|
||||
0x9B70, 0x9B73, 0x3D98, 0x9B74, 0x9B75, 0x483C, 0x9B76, 0x9B76, 0x2F50,
|
||||
0x9B77, 0x9B77, 0x3D9D, 0x9B78, 0x9B78, 0x1725, 0x9B79, 0x9B7A, 0x483E,
|
||||
0x9B7B, 0x9B7B, 0x32ED, 0x9B7C, 0x9B7C, 0x3DA0, 0x9B7D, 0x9B7D, 0x4840,
|
||||
0x9B7E, 0x9B7E, 0x3DA1, 0x9BA1, 0x9BA1, 0x3DA2, 0x9BA2, 0x9BA2, 0x4841,
|
||||
0x9BA3, 0x9BA4, 0x3DA3, 0x9BA5, 0x9BA6, 0x4842, 0x9BA7, 0x9BAA, 0x3DA5,
|
||||
0x9BAB, 0x9BAB, 0x4844, 0x9BAC, 0x9BAC, 0x3DA9, 0x9BAD, 0x9BAE, 0x4845,
|
||||
0x9BAF, 0x9BAF, 0x3DAA, 0x9BB0, 0x9BB1, 0x4847, 0x9BB2, 0x9BB9, 0x3DAB,
|
||||
0x9BBA, 0x9BBD, 0x4849, 0x9BBE, 0x9BBE, 0x3DB3, 0x9BBF, 0x9BBF, 0x484D,
|
||||
0x9BC0, 0x9BC5, 0x3DB4, 0x9BC6, 0x9BC6, 0x2AD9, 0x9BC7, 0x9BC9, 0x484E,
|
||||
0x9BCA, 0x9BCA, 0x3DBB, 0x9BCB, 0x9BCB, 0x4851, 0x9BCC, 0x9BCC, 0x3DBC,
|
||||
0x9BCD, 0x9BCD, 0x4852, 0x9BCE, 0x9BCE, 0x43D0, 0x9BCF, 0x9BCF, 0x4853,
|
||||
0x9BD0, 0x9BD1, 0x3DBD, 0x9BD2, 0x9BD2, 0x4854, 0x9BD3, 0x9BD3, 0x3DBF,
|
||||
0x9BD4, 0x9BD4, 0x4855, 0x9BD5, 0x9BD5, 0x3DC0, 0x9BD6, 0x9BD7, 0x4856,
|
||||
0x9BD8, 0x9BDA, 0x3DC1, 0x9BDB, 0x9BDC, 0x4858, 0x9BDD, 0x9BDD, 0x3DC4,
|
||||
0x9BDE, 0x9BDE, 0x1C14, 0x9BDF, 0x9BDF, 0x3DC5, 0x9BE0, 0x9BE0, 0x485A,
|
||||
0x9BE1, 0x9BE1, 0x3DC6, 0x9BE2, 0x9BE2, 0x485B, 0x9BE3, 0x9BE3, 0x3DC7,
|
||||
0x9BE4, 0x9BE6, 0x485C, 0x9BE7, 0x9BE7, 0x3DC8, 0x9BE8, 0x9BE8, 0x485F,
|
||||
0x9BE9, 0x9BEB, 0x3DC9, 0x9BEC, 0x9BEC, 0x41FA, 0x9BED, 0x9BED, 0x4860,
|
||||
0x9BEE, 0x9BEF, 0x3DCD, 0x9BF0, 0x9BF2, 0x4861, 0x9BF3, 0x9BF3, 0x3DCF,
|
||||
0x9BF4, 0x9BF5, 0x4864, 0x9BF6, 0x9BF6, 0x12E9, 0x9BF7, 0x9BF7, 0x4866,
|
||||
0x9BF8, 0x9BF9, 0x3DD1, 0x9BFA, 0x9BFA, 0x4867, 0x9BFB, 0x9BFC, 0x3DD3,
|
||||
0x9BFD, 0x9BFE, 0x4868, 0x9C40, 0x9C41, 0x3DD5, 0x9C42, 0x9C42, 0x2CAE,
|
||||
0x9C43, 0x9C43, 0x486A, 0x9C44, 0x9C46, 0x3DD8, 0x9C47, 0x9C47, 0x486B,
|
||||
0x9C48, 0x9C48, 0x3DDB, 0x9C49, 0x9C49, 0x486C, 0x9C4A, 0x9C4A, 0x3DDC,
|
||||
0x9C4B, 0x9C4C, 0x486D, 0x9C4D, 0x9C52, 0x3DDD, 0x9C53, 0x9C53, 0x1A64,
|
||||
0x9C54, 0x9C54, 0x486F, 0x9C55, 0x9C55, 0x3DE4, 0x9C56, 0x9C56, 0x4870,
|
||||
0x9C57, 0x9C5B, 0x3DE5, 0x9C5C, 0x9C5C, 0x4871, 0x9C5D, 0x9C5D, 0x3DEA,
|
||||
0x9C5E, 0x9C5F, 0x4872, 0x9C60, 0x9C60, 0x3DEB, 0x9C61, 0x9C61, 0x4874,
|
||||
0x9C62, 0x9C62, 0x1404, 0x9C63, 0x9C63, 0x4875, 0x9C64, 0x9C66, 0x3DED,
|
||||
0x9C67, 0x9C67, 0x4876, 0x9C68, 0x9C68, 0x2324, 0x9C69, 0x9C69, 0x4877,
|
||||
0x9C6A, 0x9C6A, 0x3DF1, 0x9C6B, 0x9C6B, 0x346A, 0x9C6C, 0x9C6C, 0x4878,
|
||||
0x9C6D, 0x9C6D, 0x3DF2, 0x9C6E, 0x9C6E, 0x4879, 0x9C6F, 0x9C72, 0x3DF3,
|
||||
0x9C73, 0x9C74, 0x487A, 0x9C75, 0x9C76, 0x3DF7, 0x9C77, 0x9C77, 0x2291,
|
||||
0x9C78, 0x9C78, 0x487C, 0x9C79, 0x9C79, 0x3DFA, 0x9C7A, 0x9C7A, 0x487D,
|
||||
0x9C7B, 0x9C7C, 0x3DFB, 0x9C7D, 0x9C7D, 0x487E, 0x9C7E, 0x9C7E, 0x3DFD,
|
||||
0x9CA1, 0x9CA2, 0x3DFE, 0x9CA3, 0x9CA4, 0x487F, 0x9CA5, 0x9CA5, 0x3E00,
|
||||
0x9CA6, 0x9CA7, 0x4881, 0x9CA8, 0x9CA9, 0x3E01, 0x9CAA, 0x9CAA, 0x4883,
|
||||
0x9CAB, 0x9CAB, 0x3E03, 0x9CAC, 0x9CAC, 0x4884, 0x9CAD, 0x9CAE, 0x3E04,
|
||||
0x9CAF, 0x9CB0, 0x4885, 0x9CB1, 0x9CBA, 0x3E06, 0x9CBB, 0x9CBB, 0x4887,
|
||||
0x9CBC, 0x9CBC, 0x1787, 0x9CBD, 0x9CBD, 0x095F, 0x9CBE, 0x9CC2, 0x3E12,
|
||||
0x9CC3, 0x9CC5, 0x4888, 0x9CC6, 0x9CCD, 0x3E17, 0x9CCE, 0x9CCE, 0x488B,
|
||||
0x9CCF, 0x9CCF, 0x3E1F, 0x9CD0, 0x9CD0, 0x1E99, 0x9CD1, 0x9CD3, 0x3E21,
|
||||
0x9CD4, 0x9CD7, 0x488C, 0x9CD8, 0x9CDA, 0x3E24, 0x9CDB, 0x9CDB, 0x4890,
|
||||
0x9CDC, 0x9CE5, 0x3E27, 0x9CE6, 0x9CE6, 0x4891, 0x9CE7, 0x9CE9, 0x3E31,
|
||||
0x9CEA, 0x9CEA, 0x4892, 0x9CEB, 0x9CEC, 0x3E34, 0x9CED, 0x9CED, 0x4893,
|
||||
0x9CEE, 0x9CF9, 0x3E36, 0x9CFA, 0x9CFC, 0x4894, 0x9CFD, 0x9CFD, 0x3E42,
|
||||
0x9CFE, 0x9CFE, 0x4897, 0x9D40, 0x9D40, 0x43E8, 0x9D41, 0x9D45, 0x4898,
|
||||
0x9D46, 0x9D46, 0x3E43, 0x9D47, 0x9D48, 0x489D, 0x9D49, 0x9D49, 0x3E44,
|
||||
0x9D4A, 0x9D4B, 0x489F, 0x9D4C, 0x9D4D, 0x3E46, 0x9D4E, 0x9D4E, 0x48A1,
|
||||
0x9D4F, 0x9D4F, 0x3E48, 0x9D50, 0x9D50, 0x48A2, 0x9D51, 0x9D51, 0x3E49,
|
||||
0x9D52, 0x9D54, 0x48A3, 0x9D55, 0x9D55, 0x3E4A, 0x9D56, 0x9D56, 0x48A6,
|
||||
0x9D57, 0x9D57, 0x25C1, 0x9D58, 0x9D59, 0x48A7, 0x9D5A, 0x9D5A, 0x0D0C,
|
||||
0x9D5B, 0x9D60, 0x48A9, 0x9D61, 0x9D61, 0x43C9, 0x9D62, 0x9D62, 0x3E4C,
|
||||
0x9D63, 0x9D63, 0x48AF, 0x9D64, 0x9D64, 0x3E4D, 0x9D65, 0x9D77, 0x48B0,
|
||||
0x9D78, 0x9D78, 0x43F5, 0x9D79, 0x9D79, 0x3E4E, 0x9D7A, 0x9D7D, 0x48C3,
|
||||
0x9D7E, 0x9D7E, 0x3E4F, 0x9DA1, 0x9DA4, 0x48C7, 0x9DA5, 0x9DA8, 0x3E50,
|
||||
0x9DA9, 0x9DA9, 0x48CB, 0x9DAA, 0x9DAA, 0x3E54, 0x9DAB, 0x9DAB, 0x48CC,
|
||||
0x9DAC, 0x9DAD, 0x3E55, 0x9DAE, 0x9DAF, 0x48CD, 0x9DB0, 0x9DB0, 0x3E58,
|
||||
0x9DB1, 0x9DB2, 0x48CF, 0x9DB3, 0x9DB3, 0x3E59, 0x9DB4, 0x9DB4, 0x48D1,
|
||||
0x9DB5, 0x9DB5, 0x3E5A, 0x9DB6, 0x9DB6, 0x48D2, 0x9DB7, 0x9DB7, 0x3E5B,
|
||||
0x9DB8, 0x9DBB, 0x48D3, 0x9DBC, 0x9DBD, 0x3E5C, 0x9DBE, 0x9DBE, 0x48D7,
|
||||
0x9DBF, 0x9DC0, 0x3E5E, 0x9DC1, 0x9DC2, 0x48D8, 0x9DC3, 0x9DC3, 0x3E60,
|
||||
0x9DC4, 0x9DC4, 0x05E6, 0x9DC5, 0x9DC6, 0x48DA, 0x9DC7, 0x9DC8, 0x3E62,
|
||||
0x9DC9, 0x9DC9, 0x48DC, 0x9DCA, 0x9DCA, 0x3E64, 0x9DCB, 0x9DCC, 0x48DD,
|
||||
0x9DCD, 0x9DD1, 0x3E65, 0x9DD2, 0x9DD2, 0x48DF, 0x9DD3, 0x9DD5, 0x3E6A,
|
||||
0x9DD6, 0x9DD9, 0x48E0, 0x9DDA, 0x9DFB, 0x3E6D, 0x9DFC, 0x9DFC, 0x48E4,
|
||||
0x9DFD, 0x9DFE, 0x3E8F, 0x9E40, 0x9E42, 0x3E91, 0x9E43, 0x9E43, 0x48E5,
|
||||
0x9E44, 0x9E5E, 0x3E95, 0x9E5F, 0x9E5F, 0x48E6, 0x9E60, 0x9E62, 0x3EB1,
|
||||
0x9E63, 0x9E63, 0x48E7, 0x9E64, 0x9E65, 0x3EB4, 0x9E66, 0x9E67, 0x48E8,
|
||||
0x9E68, 0x9E68, 0x3EB6, 0x9E69, 0x9E69, 0x48EA, 0x9E6A, 0x9E6A, 0x3EB7,
|
||||
0x9E6B, 0x9E70, 0x48EB, 0x9E71, 0x9E71, 0x3EB8, 0x9E72, 0x9E72, 0x48F1,
|
||||
0x9E73, 0x9E73, 0x3EB9, 0x9E74, 0x9E76, 0x48F2, 0x9E77, 0x9E78, 0x3EBA,
|
||||
0x9E79, 0x9E79, 0x48F5, 0x9E7A, 0x9E7A, 0x3EBC, 0x9E7B, 0x9E7B, 0x48F6,
|
||||
0x9E7C, 0x9E7C, 0x3EBD, 0x9E7D, 0x9E7D, 0x48F7, 0x9E7E, 0x9E7E, 0x3EBE,
|
||||
0x9EA1, 0x9EA2, 0x3EBF, 0x9EA3, 0x9EA3, 0x48F8, 0x9EA4, 0x9EA6, 0x3EC1,
|
||||
0x9EA7, 0x9EA8, 0x48F9, 0x9EA9, 0x9EA9, 0x0728, 0x9EAA, 0x9EAA, 0x3EC5,
|
||||
0x9EAB, 0x9EAB, 0x48FB, 0x9EAC, 0x9EAD, 0x3EC6, 0x9EAE, 0x9EAE, 0x48FC,
|
||||
0x9EAF, 0x9EB1, 0x3EC8, 0x9EB2, 0x9EB3, 0x48FD, 0x9EB4, 0x9EB4, 0x3ECB,
|
||||
0x9EB5, 0x9EB5, 0x48FF, 0x9EB6, 0x9EB7, 0x3ECC, 0x9EB8, 0x9EB8, 0x4900,
|
||||
0x9EB9, 0x9EB9, 0x3ECE, 0x9EBA, 0x9EBB, 0x4901, 0x9EBC, 0x9EBC, 0x3ECF,
|
||||
0x9EBD, 0x9EBE, 0x4903, 0x9EBF, 0x9EC0, 0x3ED0, 0x9EC1, 0x9EC3, 0x4905,
|
||||
0x9EC4, 0x9EC5, 0x3ED2, 0x9EC6, 0x9EC6, 0x4908, 0x9EC7, 0x9ECA, 0x3ED4,
|
||||
0x9ECB, 0x9ECC, 0x4909, 0x9ECD, 0x9ECD, 0x3ED9, 0x9ECE, 0x9ECF, 0x490B,
|
||||
0x9ED0, 0x9ED1, 0x3EDA, 0x9ED2, 0x9ED2, 0x490D, 0x9ED3, 0x9ED3, 0x3EDC,
|
||||
0x9ED4, 0x9ED5, 0x490E, 0x9ED6, 0x9ED7, 0x3EDD, 0x9ED8, 0x9ED9, 0x4910,
|
||||
0x9EDA, 0x9EEE, 0x3EDF, 0x9EEF, 0x9EEF, 0x24B6, 0x9EF0, 0x9EF1, 0x3EF5,
|
||||
0x9EF2, 0x9EF2, 0x4912, 0x9EF3, 0x9EF5, 0x3EF7, 0x9EF6, 0x9EF8, 0x4913,
|
||||
0x9EF9, 0x9EFA, 0x3EFA, 0x9EFB, 0x9EFB, 0x4916, 0x9EFC, 0x9EFC, 0x3EFC,
|
||||
0x9EFD, 0x9EFD, 0x1806, 0x9EFE, 0x9EFE, 0x3EFE, 0x9F40, 0x9F42, 0x3EFF,
|
||||
0x9F43, 0x9F43, 0x4917, 0x9F44, 0x9F47, 0x3F02, 0x9F48, 0x9F48, 0x4918,
|
||||
0x9F49, 0x9F4A, 0x3F06, 0x9F4B, 0x9F4C, 0x4919, 0x9F4D, 0x9F5F, 0x3F08,
|
||||
0x9F60, 0x9F60, 0x3511, 0x9F61, 0x9F65, 0x3F1C, 0x9F66, 0x9F66, 0x3945,
|
||||
0x9F67, 0x9F68, 0x491B, 0x9F69, 0x9F6F, 0x3F23, 0x9F70, 0x9F70, 0x491D,
|
||||
0x9F71, 0x9F7E, 0x3F2A, 0x9FA1, 0x9FB4, 0x3F38, 0x9FB5, 0x9FB5, 0x491E,
|
||||
0x9FB6, 0x9FBA, 0x3F4C, 0x9FBB, 0x9FBB, 0x491F, 0x9FBC, 0x9FBE, 0x3F51,
|
||||
0x9FBF, 0x9FBF, 0x4920, 0x9FC0, 0x9FC0, 0x3F54, 0x9FC1, 0x9FC1, 0x4921,
|
||||
0x9FC2, 0x9FCA, 0x3F55, 0x9FCB, 0x9FCB, 0x0F82, 0x9FCC, 0x9FCC, 0x4922,
|
||||
0x9FCD, 0x9FD3, 0x3F60, 0x9FD4, 0x9FD4, 0x4923, 0x9FD5, 0x9FD7, 0x3F68,
|
||||
0x9FD8, 0x9FD8, 0x3A3E, 0x9FD9, 0x9FE3, 0x3F6C, 0x9FE4, 0x9FE4, 0x4924,
|
||||
0x9FE5, 0x9FF8, 0x3F77, 0x9FF9, 0x9FF9, 0x4925, 0x9FFA, 0x9FFE, 0x3F8B,
|
||||
0xA040, 0xA040, 0x4926, 0xA041, 0xA046, 0x3F90, 0xA047, 0xA047, 0x4927,
|
||||
0xA048, 0xA054, 0x3F96, 0xA055, 0xA055, 0x4928, 0xA056, 0xA062, 0x3FA3,
|
||||
0xA063, 0xA063, 0x3811, 0xA064, 0xA06C, 0x3FB1, 0xA06D, 0xA06D, 0x4929,
|
||||
0xA06E, 0xA076, 0x3FBA, 0xA077, 0xA077, 0x05F2, 0xA078, 0xA07A, 0x3FC4,
|
||||
0xA07B, 0xA07B, 0x492A, 0xA07C, 0xA07E, 0x3FC7, 0xA0A1, 0xA0A1, 0x3FCA,
|
||||
0xA0A2, 0xA0A2, 0x492B, 0xA0A3, 0xA0A6, 0x3FCB, 0xA0A7, 0xA0A7, 0x492C,
|
||||
0xA0A8, 0xA0C4, 0x3FCF, 0xA0C5, 0xA0C5, 0x492D, 0xA0C6, 0xA0CF, 0x3FEC,
|
||||
0xA0D0, 0xA0D0, 0x492E, 0xA0D1, 0xA0D4, 0x3FF6, 0xA0D5, 0xA0D5, 0x3AEE,
|
||||
0xA0D6, 0xA0DE, 0x3FFB, 0xA0DF, 0xA0DF, 0x247D, 0xA0E0, 0xA0E2, 0x4005,
|
||||
0xA0E3, 0xA0E3, 0x492F, 0xA0E4, 0xA0E4, 0x3AC9, 0xA0E5, 0xA0E6, 0x4009,
|
||||
0xA0E7, 0xA0ED, 0x4930, 0xA0EE, 0xA0EE, 0x43B4, 0xA0EF, 0xA0F1, 0x4937,
|
||||
0xA0F2, 0xA0F2, 0x43B8, 0xA0F3, 0xA0FE, 0x493A, 0xA140, 0xA158, 0x0063,
|
||||
0xA159, 0xA15C, 0x35AF, 0xA15D, 0xA17E, 0x0080, 0xA1A1, 0xA1F5, 0x00A2,
|
||||
0xA1F6, 0xA1F6, 0x00F8, 0xA1F7, 0xA1F7, 0x00F7, 0xA1F8, 0xA1FE, 0x00F9,
|
||||
0xA240, 0xA27E, 0x0100, 0xA2A1, 0xA2FE, 0x013F, 0xA340, 0xA37E, 0x019D,
|
||||
0xA3A1, 0xA3BB, 0x01DC, 0xA3BD, 0xA3BF, 0x01F7, 0xA440, 0xA47E, 0x0253,
|
||||
0xA4A1, 0xA4FE, 0x0292, 0xA540, 0xA57E, 0x02F0, 0xA5A1, 0xA5FE, 0x032F,
|
||||
0xA640, 0xA67E, 0x038D, 0xA6A1, 0xA6FE, 0x03CC, 0xA740, 0xA77E, 0x042A,
|
||||
0xA7A1, 0xA7FE, 0x0469, 0xA840, 0xA87E, 0x04C7, 0xA8A1, 0xA8FE, 0x0506,
|
||||
0xA940, 0xA97E, 0x0564, 0xA9A1, 0xA9FE, 0x05A3, 0xAA40, 0xAA7E, 0x0601,
|
||||
0xAAA1, 0xAAFE, 0x0640, 0xAB40, 0xAB7E, 0x069E, 0xABA1, 0xABFE, 0x06DD,
|
||||
0xAC40, 0xAC7E, 0x073B, 0xACA1, 0xACFD, 0x077A, 0xACFE, 0xACFE, 0x097F,
|
||||
0xAD40, 0xAD7E, 0x07D7, 0xADA1, 0xADFE, 0x0816, 0xAE40, 0xAE7E, 0x0874,
|
||||
0xAEA1, 0xAEFE, 0x08B3, 0xAF40, 0xAF7E, 0x0911, 0xAFA1, 0xAFCF, 0x0950,
|
||||
0xAFD0, 0xAFFE, 0x0980, 0xB040, 0xB07E, 0x09AF, 0xB0A1, 0xB0FE, 0x09EE,
|
||||
0xB140, 0xB17E, 0x0A4C, 0xB1A1, 0xB1FE, 0x0A8B, 0xB240, 0xB27E, 0x0AE9,
|
||||
0xB2A1, 0xB2FE, 0x0B28, 0xB340, 0xB37E, 0x0B86, 0xB3A1, 0xB3FE, 0x0BC5,
|
||||
0xB440, 0xB47E, 0x0C23, 0xB4A1, 0xB4FE, 0x0C62, 0xB540, 0xB57E, 0x0CC0,
|
||||
0xB5A1, 0xB5FE, 0x0CFF, 0xB640, 0xB67E, 0x0D5D, 0xB6A1, 0xB6FE, 0x0D9C,
|
||||
0xB740, 0xB77E, 0x0DFA, 0xB7A1, 0xB7FE, 0x0E39, 0xB840, 0xB87E, 0x0E97,
|
||||
0xB8A1, 0xB8FE, 0x0ED6, 0xB940, 0xB97E, 0x0F34, 0xB9A1, 0xB9FE, 0x0F73,
|
||||
0xBA40, 0xBA7E, 0x0FD1, 0xBAA1, 0xBAFE, 0x1010, 0xBB40, 0xBB7E, 0x106E,
|
||||
0xBBA1, 0xBBC7, 0x10AD, 0xBBC8, 0xBBFE, 0x10D5, 0xBC40, 0xBC7E, 0x110C,
|
||||
0xBCA1, 0xBCFE, 0x114B, 0xBD40, 0xBD7E, 0x11A9, 0xBDA1, 0xBDFE, 0x11E8,
|
||||
0xBE40, 0xBE51, 0x1246, 0xBE52, 0xBE52, 0x10D4, 0xBE53, 0xBE7E, 0x1258,
|
||||
0xBEA1, 0xBEFE, 0x1284, 0xBF40, 0xBF7E, 0x12E2, 0xBFA1, 0xBFFE, 0x1321,
|
||||
0xC040, 0xC07E, 0x137F, 0xC0A1, 0xC0FE, 0x13BE, 0xC140, 0xC17E, 0x141C,
|
||||
0xC1A1, 0xC1AA, 0x145B, 0xC1AB, 0xC1FE, 0x1466, 0xC240, 0xC27E, 0x14BA,
|
||||
0xC2A1, 0xC2CA, 0x14F9, 0xC2CB, 0xC2CB, 0x1465, 0xC2CC, 0xC2FE, 0x1523,
|
||||
0xC340, 0xC360, 0x1556, 0xC361, 0xC37E, 0x1578, 0xC3A1, 0xC3B8, 0x1596,
|
||||
0xC3B9, 0xC3B9, 0x15AF, 0xC3BA, 0xC3BA, 0x15AE, 0xC3BB, 0xC3FE, 0x15B0,
|
||||
0xC440, 0xC455, 0x15F4, 0xC456, 0xC456, 0x1577, 0xC457, 0xC47E, 0x160A,
|
||||
0xC4A1, 0xC4FE, 0x1632, 0xC540, 0xC57E, 0x1690, 0xC5A1, 0xC5FE, 0x16CF,
|
||||
0xC640, 0xC67E, 0x172D, 0xC6A1, 0xC6BE, 0x01FA, 0xC6BF, 0xC6CE, 0x0219,
|
||||
0xC6D0, 0xC6D2, 0x022A, 0xC6D4, 0xC6D4, 0x022E, 0xC6D6, 0xC6D6, 0x0230,
|
||||
0xC6D8, 0xC6DD, 0x35B3, 0xC6E0, 0xC6FE, 0x35BA, 0xC740, 0xC77E, 0x35D9,
|
||||
0xC7A1, 0xC7FE, 0x3618, 0xC840, 0xC87E, 0x3676, 0xC8A1, 0xC8A4, 0x36B5,
|
||||
0xC8CD, 0xC8D3, 0x36E1, 0xC8D4, 0xC8D6, 0x44C6, 0xC8D7, 0xC8DF, 0x451C,
|
||||
0xC8E0, 0xC8E0, 0x499E, 0xC8E1, 0xC8E8, 0x4525, 0xC8E9, 0xC8E9, 0x499F,
|
||||
0xC8EA, 0xC8F0, 0x452D, 0xC8F1, 0xC8F1, 0x49A0, 0xC8F5, 0xC8FE, 0x4992,
|
||||
0xC940, 0xC949, 0x176C, 0xC94A, 0xC94A, 0x0274, 0xC94B, 0xC96B, 0x1776,
|
||||
0xC96C, 0xC97E, 0x1798, 0xC9A1, 0xC9BD, 0x17AB, 0xC9BE, 0xC9BE, 0x1797,
|
||||
0xC9BF, 0xC9EC, 0x17C8, 0xC9ED, 0xC9FE, 0x17F7, 0xCA40, 0xCA7E, 0x1809,
|
||||
0xCAA1, 0xCAF6, 0x1848, 0xCAF7, 0xCAF7, 0x17F6, 0xCAF8, 0xCAFE, 0x189E,
|
||||
0xCB40, 0xCB7E, 0x18A5, 0xCBA1, 0xCBFE, 0x18E4, 0xCC40, 0xCC7E, 0x1942,
|
||||
0xCCA1, 0xCCFE, 0x1981, 0xCD40, 0xCD7E, 0x19DF, 0xCDA1, 0xCDFE, 0x1A1E,
|
||||
0xCE40, 0xCE7E, 0x1A7C, 0xCEA1, 0xCEFE, 0x1ABB, 0xCF40, 0xCF7E, 0x1B19,
|
||||
0xCFA1, 0xCFFE, 0x1B58, 0xD040, 0xD07E, 0x1BB6, 0xD0A1, 0xD0FE, 0x1BF5,
|
||||
0xD140, 0xD17E, 0x1C53, 0xD1A1, 0xD1FE, 0x1C92, 0xD240, 0xD27E, 0x1CF0,
|
||||
0xD2A1, 0xD2FE, 0x1D2F, 0xD340, 0xD37E, 0x1D8D, 0xD3A1, 0xD3FE, 0x1DCC,
|
||||
0xD440, 0xD47E, 0x1E2A, 0xD4A1, 0xD4FE, 0x1E69, 0xD540, 0xD57E, 0x1EC7,
|
||||
0xD5A1, 0xD5FE, 0x1F06, 0xD640, 0xD67E, 0x1F64, 0xD6A1, 0xD6CB, 0x1FA3,
|
||||
0xD6CC, 0xD6CC, 0x2254, 0xD6CD, 0xD6FE, 0x1FCF, 0xD740, 0xD779, 0x2001,
|
||||
0xD77A, 0xD77A, 0x22B9, 0xD77B, 0xD77E, 0x203B, 0xD7A1, 0xD7FE, 0x203F,
|
||||
0xD840, 0xD87E, 0x209D, 0xD8A1, 0xD8FE, 0x20DC, 0xD940, 0xD97E, 0x213A,
|
||||
0xD9A1, 0xD9FE, 0x2179, 0xDA40, 0xDA7E, 0x21D7, 0xDAA1, 0xDADE, 0x2216,
|
||||
0xDADF, 0xDADF, 0x1FCE, 0xDAE0, 0xDAFE, 0x2255, 0xDB40, 0xDB7E, 0x2274,
|
||||
0xDBA1, 0xDBA6, 0x22B3, 0xDBA7, 0xDBFE, 0x22BA, 0xDC40, 0xDC7E, 0x2312,
|
||||
0xDCA1, 0xDCFE, 0x2351, 0xDD40, 0xDD7E, 0x23AF, 0xDDA1, 0xDDFB, 0x23EE,
|
||||
0xDDFC, 0xDDFC, 0x2381, 0xDDFD, 0xDDFE, 0x2449, 0xDE40, 0xDE7E, 0x244B,
|
||||
0xDEA1, 0xDEFE, 0x248A, 0xDF40, 0xDF7E, 0x24E8, 0xDFA1, 0xDFFE, 0x2527,
|
||||
0xE040, 0xE07E, 0x2585, 0xE0A1, 0xE0FE, 0x25C4, 0xE140, 0xE17E, 0x2622,
|
||||
0xE1A1, 0xE1FE, 0x2661, 0xE240, 0xE27E, 0x26BF, 0xE2A1, 0xE2FE, 0x26FE,
|
||||
0xE340, 0xE37E, 0x275C, 0xE3A1, 0xE3FE, 0x279B, 0xE440, 0xE47E, 0x27F9,
|
||||
0xE4A1, 0xE4FE, 0x2838, 0xE540, 0xE57E, 0x2896, 0xE5A1, 0xE5FE, 0x28D5,
|
||||
0xE640, 0xE67E, 0x2933, 0xE6A1, 0xE6FE, 0x2972, 0xE740, 0xE77E, 0x29D0,
|
||||
0xE7A1, 0xE7FE, 0x2A0F, 0xE840, 0xE87E, 0x2A6D, 0xE8A1, 0xE8A2, 0x2AAC,
|
||||
0xE8A3, 0xE8FE, 0x2AAF, 0xE940, 0xE975, 0x2B0B, 0xE976, 0xE97E, 0x2B42,
|
||||
0xE9A1, 0xE9FE, 0x2B4B, 0xEA40, 0xEA7E, 0x2BA9, 0xEAA1, 0xEAFE, 0x2BE8,
|
||||
0xEB40, 0xEB5A, 0x2C46, 0xEB5B, 0xEB7E, 0x2C62, 0xEBA1, 0xEBF0, 0x2C86,
|
||||
0xEBF1, 0xEBF1, 0x2AAE, 0xEBF2, 0xEBFE, 0x2CD6, 0xEC40, 0xEC7E, 0x2CE3,
|
||||
0xECA1, 0xECDD, 0x2D22, 0xECDE, 0xECDE, 0x2B41, 0xECDF, 0xECFE, 0x2D5F,
|
||||
0xED40, 0xED7E, 0x2D7F, 0xEDA1, 0xEDA9, 0x2DBE, 0xEDAA, 0xEDFE, 0x2DC8,
|
||||
0xEE40, 0xEE7E, 0x2E1D, 0xEEA1, 0xEEEA, 0x2E5C, 0xEEEB, 0xEEEB, 0x3014,
|
||||
0xEEEC, 0xEEFE, 0x2EA6, 0xEF40, 0xEF7E, 0x2EB9, 0xEFA1, 0xEFFE, 0x2EF8,
|
||||
0xF040, 0xF055, 0x2F56, 0xF056, 0xF056, 0x2DC7, 0xF057, 0xF07E, 0x2F6C,
|
||||
0xF0A1, 0xF0CA, 0x2F94, 0xF0CB, 0xF0CB, 0x2C61, 0xF0CC, 0xF0FE, 0x2FBE,
|
||||
0xF140, 0xF162, 0x2FF1, 0xF163, 0xF16A, 0x3015, 0xF16B, 0xF16B, 0x3160,
|
||||
0xF16C, 0xF17E, 0x301D, 0xF1A1, 0xF1FE, 0x3030, 0xF240, 0xF267, 0x308E,
|
||||
0xF268, 0xF268, 0x31EF, 0xF269, 0xF27E, 0x30B6, 0xF2A1, 0xF2C2, 0x30CC,
|
||||
0xF2C3, 0xF2FE, 0x30EF, 0xF340, 0xF374, 0x312B, 0xF375, 0xF37E, 0x3161,
|
||||
0xF3A1, 0xF3FE, 0x316B, 0xF440, 0xF465, 0x31C9, 0xF466, 0xF47E, 0x31F0,
|
||||
0xF4A1, 0xF4B4, 0x3209, 0xF4B5, 0xF4B5, 0x30EE, 0xF4B6, 0xF4FC, 0x321D,
|
||||
0xF4FD, 0xF4FE, 0x3265, 0xF540, 0xF57E, 0x3267, 0xF5A1, 0xF5FE, 0x32A6,
|
||||
0xF640, 0xF662, 0x3304, 0xF663, 0xF663, 0x3264, 0xF664, 0xF67E, 0x3327,
|
||||
0xF6A1, 0xF6FE, 0x3342, 0xF740, 0xF77E, 0x33A0, 0xF7A1, 0xF7FE, 0x33DF,
|
||||
0xF840, 0xF87E, 0x343D, 0xF8A1, 0xF8FE, 0x347C, 0xF940, 0xF976, 0x34DA,
|
||||
0xF977, 0xF97E, 0x3512, 0xF9A1, 0xF9C3, 0x351A, 0xF9C4, 0xF9C4, 0x3511,
|
||||
0xF9C5, 0xF9C5, 0x353D, 0xF9C6, 0xF9C6, 0x3549, 0xF9C7, 0xF9D1, 0x353E,
|
||||
0xF9D2, 0xF9D5, 0x354A, 0xF9D6, 0xF9FE, 0x36E8, 0xFA40, 0xFA5E, 0x400B,
|
||||
0xFA5F, 0xFA5F, 0x083A, 0xFA60, 0xFA65, 0x402B, 0xFA66, 0xFA66, 0x09FD,
|
||||
0xFA67, 0xFA7E, 0x4032, 0xFAA1, 0xFAA8, 0x404A, 0xFAA9, 0xFAAA, 0x4946,
|
||||
0xFAAB, 0xFABC, 0x4054, 0xFABD, 0xFABD, 0x030D, 0xFABE, 0xFAC4, 0x4067,
|
||||
0xFAC5, 0xFAC5, 0x016B, 0xFAC6, 0xFAD4, 0x406F, 0xFAD5, 0xFAD5, 0x0860,
|
||||
0xFAD6, 0xFAFE, 0x407F, 0xFB40, 0xFB47, 0x40A8, 0xFB48, 0xFB48, 0x3E82,
|
||||
0xFB49, 0xFB52, 0x40B1, 0xFB53, 0xFB53, 0x4948, 0xFB54, 0xFB6D, 0x40BC,
|
||||
0xFB6E, 0xFB6E, 0x4949, 0xFB6F, 0xFB7E, 0x40D7, 0xFBA1, 0xFBA2, 0x40E7,
|
||||
0xFBA3, 0xFBA3, 0x494A, 0xFBA4, 0xFBB7, 0x40EA, 0xFBB8, 0xFBB8, 0x0C23,
|
||||
0xFBB9, 0xFBBE, 0x40FF, 0xFBBF, 0xFBBF, 0x494B, 0xFBC0, 0xFBCC, 0x4105,
|
||||
0xFBCD, 0xFBCD, 0x494C, 0xFBCE, 0xFBF2, 0x4112, 0xFBF3, 0xFBF3, 0x17E4,
|
||||
0xFBF4, 0xFBF8, 0x4138, 0xFBF9, 0xFBF9, 0x3E8E, 0xFBFA, 0xFBFE, 0x413E,
|
||||
0xFC40, 0xFC49, 0x4143, 0xFC4A, 0xFC4A, 0x494D, 0xFC4B, 0xFC4E, 0x414D,
|
||||
0xFC4F, 0xFC4F, 0x212F, 0xFC50, 0xFC51, 0x4151, 0xFC52, 0xFC52, 0x494E,
|
||||
0xFC53, 0xFC62, 0x4153, 0xFC63, 0xFC63, 0x494F, 0xFC64, 0xFC6B, 0x4163,
|
||||
0xFC6C, 0xFC6C, 0x4001, 0xFC6D, 0xFC6D, 0x4950, 0xFC6E, 0xFC74, 0x416D,
|
||||
0xFC75, 0xFC75, 0x4951, 0xFC76, 0xFC7E, 0x4174, 0xFCA1, 0xFCB8, 0x417D,
|
||||
0xFCB9, 0xFCB9, 0x115F, 0xFCBA, 0xFCBB, 0x4195, 0xFCBC, 0xFCBD, 0x4952,
|
||||
0xFCBE, 0xFCCB, 0x4198, 0xFCCC, 0xFCCC, 0x4954, 0xFCCD, 0xFCE1, 0x41A7,
|
||||
0xFCE2, 0xFCE2, 0x0C79, 0xFCE3, 0xFCE3, 0x4955, 0xFCE4, 0xFCED, 0x41BD,
|
||||
0xFCEE, 0xFCEE, 0x4956, 0xFCEF, 0xFCF0, 0x41C7, 0xFCF1, 0xFCF1, 0x04C3,
|
||||
0xFCF2, 0xFCFE, 0x41CA, 0xFD40, 0xFD48, 0x41D7, 0xFD49, 0xFD49, 0x4957,
|
||||
0xFD4A, 0xFD69, 0x41E0, 0xFD6A, 0xFD6A, 0x4958, 0xFD6B, 0xFD7E, 0x4201,
|
||||
0xFDA1, 0xFDB6, 0x4215, 0xFDB7, 0xFDB7, 0x18BD, 0xFDB8, 0xFDB8, 0x0CBD,
|
||||
0xFDB9, 0xFDBA, 0x422D, 0xFDBB, 0xFDBB, 0x0CA5, 0xFDBC, 0xFDE2, 0x4230,
|
||||
0xFDE3, 0xFDE3, 0x4959, 0xFDE4, 0xFDF0, 0x4258, 0xFDF1, 0xFDF1, 0x0CCE,
|
||||
0xFDF2, 0xFDF2, 0x495A, 0xFDF3, 0xFDFE, 0x4266, 0xFE40, 0xFE51, 0x4272,
|
||||
0xFE52, 0xFE52, 0x3D70, 0xFE53, 0xFE6C, 0x4285, 0xFE6D, 0xFE6D, 0x495B,
|
||||
0xFE6E, 0xFE6E, 0x429F, 0xFE6F, 0xFE6F, 0x0E84, 0xFE70, 0xFE77, 0x42A1,
|
||||
0xFE78, 0xFE78, 0x495C, 0xFE79, 0xFE7E, 0x42A9, 0xFEA1, 0xFEA9, 0x42AF,
|
||||
0xFEAA, 0xFEAA, 0x0120, 0xFEAB, 0xFEDC, 0x42B8, 0xFEDD, 0xFEDD, 0x1BA8,
|
||||
0xFEDE, 0xFEDF, 0x495D, 0xFEE0, 0xFEEC, 0x42EB, 0xFEED, 0xFEEE, 0x495F,
|
||||
0xFEEF, 0xFEFE, 0x42F8,
|
||||
};
|
@ -0,0 +1,15 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/CNS1/cmaps_cns1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_HKscs_B5_V_5[13 * 3] = {
|
||||
0xA14B, 0xA14B, 0x354E, 0xA15A, 0xA15A, 0x35AF, 0xA15C, 0xA15C,
|
||||
0x35B1, 0xA15D, 0xA15E, 0x0082, 0xA161, 0xA162, 0x0086, 0xA165,
|
||||
0xA166, 0x008A, 0xA169, 0xA16A, 0x008E, 0xA16D, 0xA16E, 0x0092,
|
||||
0xA171, 0xA172, 0x0096, 0xA175, 0xA176, 0x009A, 0xA179, 0xA17A,
|
||||
0x009E, 0xA1E3, 0xA1E3, 0x354F, 0xC6E4, 0xC6E5, 0x3711,
|
||||
};
|
5483
modules/pdfium/pdfium/core/fpdfapi/cmaps/CNS1/UniCNS-UCS2-H_3.cpp
Normal file
5483
modules/pdfium/pdfium/core/fpdfapi/cmaps/CNS1/UniCNS-UCS2-H_3.cpp
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,15 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/CNS1/cmaps_cns1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_UniCNS_UCS2_V_3[13 * 3] = {
|
||||
0x2013, 0x2013, 0x0078, 0x2014, 0x2014, 0x007A, 0x2025, 0x2025,
|
||||
0x006D, 0x3008, 0x3009, 0x0096, 0x300A, 0x300B, 0x0092, 0x300C,
|
||||
0x300D, 0x009A, 0x300E, 0x300F, 0x009E, 0x3010, 0x3011, 0x008E,
|
||||
0x3014, 0x3015, 0x008A, 0xFE4F, 0xFE4F, 0x35B1, 0xFF08, 0xFF09,
|
||||
0x0082, 0xFF5B, 0xFF5B, 0x0086, 0xFF5D, 0xFF5D, 0x0087,
|
||||
};
|
3245
modules/pdfium/pdfium/core/fpdfapi/cmaps/CNS1/UniCNS-UTF16-H_0.cpp
Normal file
3245
modules/pdfium/pdfium/core/fpdfapi/cmaps/CNS1/UniCNS-UTF16-H_0.cpp
Normal file
File diff suppressed because it is too large
Load Diff
56
modules/pdfium/pdfium/core/fpdfapi/cmaps/CNS1/cmaps_cns1.cpp
Normal file
56
modules/pdfium/pdfium/core/fpdfapi/cmaps/CNS1/cmaps_cns1.cpp
Normal file
@ -0,0 +1,56 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/CNS1/cmaps_cns1.h"
|
||||
|
||||
#include "core/fpdfapi/cmaps/cmap_int.h"
|
||||
#include "core/fpdfapi/cpdf_modulemgr.h"
|
||||
#include "core/fpdfapi/font/font_int.h"
|
||||
#include "core/fpdfapi/page/cpdf_pagemodule.h"
|
||||
#include "core/fxcrt/fx_basic.h"
|
||||
|
||||
static const FXCMAP_CMap g_FXCMAP_CNS1_cmaps[] = {
|
||||
{"B5pc-H", FXCMAP_CMap::Range, g_FXCMAP_B5pc_H_0, 247, FXCMAP_CMap::None,
|
||||
nullptr, 0, 0},
|
||||
{"B5pc-V", FXCMAP_CMap::Range, g_FXCMAP_B5pc_V_0, 12, FXCMAP_CMap::None,
|
||||
nullptr, 0, -1},
|
||||
{"HKscs-B5-H", FXCMAP_CMap::Range, g_FXCMAP_HKscs_B5_H_5, 1210,
|
||||
FXCMAP_CMap::None, nullptr, 0, 0},
|
||||
{"HKscs-B5-V", FXCMAP_CMap::Range, g_FXCMAP_HKscs_B5_V_5, 13,
|
||||
FXCMAP_CMap::None, nullptr, 0, -1},
|
||||
{"ETen-B5-H", FXCMAP_CMap::Range, g_FXCMAP_ETen_B5_H_0, 254,
|
||||
FXCMAP_CMap::None, nullptr, 0, 0},
|
||||
{"ETen-B5-V", FXCMAP_CMap::Range, g_FXCMAP_ETen_B5_V_0, 13,
|
||||
FXCMAP_CMap::None, nullptr, 0, -1},
|
||||
{"ETenms-B5-H", FXCMAP_CMap::Range, g_FXCMAP_ETenms_B5_H_0, 1,
|
||||
FXCMAP_CMap::None, nullptr, 0, -2},
|
||||
{"ETenms-B5-V", FXCMAP_CMap::Range, g_FXCMAP_ETenms_B5_V_0, 18,
|
||||
FXCMAP_CMap::None, nullptr, 0, -1},
|
||||
{"CNS-EUC-H", FXCMAP_CMap::Range, g_FXCMAP_CNS_EUC_H_0, 157,
|
||||
FXCMAP_CMap::Range, g_FXCMAP_CNS_EUC_H_0_DWord, 238, 0},
|
||||
{"CNS-EUC-V", FXCMAP_CMap::Range, g_FXCMAP_CNS_EUC_V_0, 180,
|
||||
FXCMAP_CMap::Range, g_FXCMAP_CNS_EUC_V_0_DWord, 261, 0},
|
||||
{"UniCNS-UCS2-H", FXCMAP_CMap::Range, g_FXCMAP_UniCNS_UCS2_H_3, 16418,
|
||||
FXCMAP_CMap::None, nullptr, 0, 0},
|
||||
{"UniCNS-UCS2-V", FXCMAP_CMap::Range, g_FXCMAP_UniCNS_UCS2_V_3, 13,
|
||||
FXCMAP_CMap::None, nullptr, 0, -1},
|
||||
{"UniCNS-UTF16-H", FXCMAP_CMap::Single, g_FXCMAP_UniCNS_UTF16_H_0, 14557,
|
||||
FXCMAP_CMap::None, nullptr, 0, 0},
|
||||
{"UniCNS-UTF16-V", FXCMAP_CMap::Range, g_FXCMAP_UniCNS_UCS2_V_3, 13,
|
||||
FXCMAP_CMap::None, nullptr, 0, -1},
|
||||
};
|
||||
|
||||
void CPDF_ModuleMgr::LoadEmbeddedCNS1CMaps() {
|
||||
CPDF_FontGlobals* pFontGlobals =
|
||||
CPDF_ModuleMgr::Get()->GetPageModule()->GetFontGlobals();
|
||||
pFontGlobals->m_EmbeddedCharsets[CIDSET_CNS1].m_pMapList =
|
||||
g_FXCMAP_CNS1_cmaps;
|
||||
pFontGlobals->m_EmbeddedCharsets[CIDSET_CNS1].m_Count =
|
||||
FX_ArraySize(g_FXCMAP_CNS1_cmaps);
|
||||
pFontGlobals->m_EmbeddedToUnicodes[CIDSET_CNS1].m_pMap =
|
||||
g_FXCMAP_CNS1CID2Unicode_5;
|
||||
pFontGlobals->m_EmbeddedToUnicodes[CIDSET_CNS1].m_Count = 19088;
|
||||
}
|
29
modules/pdfium/pdfium/core/fpdfapi/cmaps/CNS1/cmaps_cns1.h
Normal file
29
modules/pdfium/pdfium/core/fpdfapi/cmaps/CNS1/cmaps_cns1.h
Normal file
@ -0,0 +1,29 @@
|
||||
// Copyright 2015 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#ifndef CORE_FPDFAPI_CMAPS_CNS1_CMAPS_CNS1_H_
|
||||
#define CORE_FPDFAPI_CMAPS_CNS1_CMAPS_CNS1_H_
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
extern const uint16_t g_FXCMAP_B5pc_H_0[];
|
||||
extern const uint16_t g_FXCMAP_B5pc_V_0[];
|
||||
extern const uint16_t g_FXCMAP_HKscs_B5_H_5[];
|
||||
extern const uint16_t g_FXCMAP_HKscs_B5_V_5[];
|
||||
extern const uint16_t g_FXCMAP_ETen_B5_H_0[];
|
||||
extern const uint16_t g_FXCMAP_ETen_B5_V_0[];
|
||||
extern const uint16_t g_FXCMAP_ETenms_B5_H_0[];
|
||||
extern const uint16_t g_FXCMAP_ETenms_B5_V_0[];
|
||||
extern const uint16_t g_FXCMAP_CNS_EUC_H_0[];
|
||||
extern const uint16_t g_FXCMAP_CNS_EUC_H_0_DWord[];
|
||||
extern const uint16_t g_FXCMAP_CNS_EUC_V_0[];
|
||||
extern const uint16_t g_FXCMAP_CNS_EUC_V_0_DWord[];
|
||||
extern const uint16_t g_FXCMAP_UniCNS_UCS2_H_3[];
|
||||
extern const uint16_t g_FXCMAP_UniCNS_UCS2_V_3[];
|
||||
extern const uint16_t g_FXCMAP_UniCNS_UTF16_H_0[];
|
||||
extern const uint16_t g_FXCMAP_CNS1CID2Unicode_5[];
|
||||
|
||||
#endif // CORE_FPDFAPI_CMAPS_CNS1_CMAPS_CNS1_H_
|
3375
modules/pdfium/pdfium/core/fpdfapi/cmaps/GB1/Adobe-GB1-UCS2_5.cpp
Normal file
3375
modules/pdfium/pdfium/core/fpdfapi/cmaps/GB1/Adobe-GB1-UCS2_5.cpp
Normal file
File diff suppressed because it is too large
Load Diff
40
modules/pdfium/pdfium/core/fpdfapi/cmaps/GB1/GB-EUC-H_0.cpp
Normal file
40
modules/pdfium/pdfium/core/fpdfapi/cmaps/GB1/GB-EUC-H_0.cpp
Normal file
@ -0,0 +1,40 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/GB1/cmaps_gb1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_GB_EUC_H_0[90 * 3] = {
|
||||
0x0020, 0x0020, 0x1E24, 0x0021, 0x007E, 0x032E, 0xA1A1, 0xA1FE, 0x0060,
|
||||
0xA2B1, 0xA2E2, 0x00BE, 0xA2E5, 0xA2EE, 0x00F0, 0xA2F1, 0xA2FC, 0x00FA,
|
||||
0xA3A1, 0xA3FE, 0x0106, 0xA4A1, 0xA4F3, 0x0164, 0xA5A1, 0xA5F6, 0x01B7,
|
||||
0xA6A1, 0xA6B8, 0x020D, 0xA6C1, 0xA6F5, 0x0225, 0xA7A1, 0xA7C1, 0x025A,
|
||||
0xA7D1, 0xA7F1, 0x027B, 0xA8A1, 0xA8C0, 0x029C, 0xA8C5, 0xA8EA, 0x02BC,
|
||||
0xA9A4, 0xA9EF, 0x02E2, 0xAAA1, 0xAAFE, 0x032E, 0xABA1, 0xABC0, 0x038C,
|
||||
0xB0A1, 0xB0FE, 0x03AC, 0xB1A1, 0xB1FE, 0x040A, 0xB2A1, 0xB2FE, 0x0468,
|
||||
0xB3A1, 0xB3FE, 0x04C6, 0xB4A1, 0xB4FE, 0x0524, 0xB5A1, 0xB5FE, 0x0582,
|
||||
0xB6A1, 0xB6FE, 0x05E0, 0xB7A1, 0xB7FE, 0x063E, 0xB8A1, 0xB8FE, 0x069C,
|
||||
0xB9A1, 0xB9FE, 0x06FA, 0xBAA1, 0xBAFE, 0x0758, 0xBBA1, 0xBBFE, 0x07B6,
|
||||
0xBCA1, 0xBCFE, 0x0814, 0xBDA1, 0xBDFE, 0x0872, 0xBEA1, 0xBEFE, 0x08D0,
|
||||
0xBFA1, 0xBFFE, 0x092E, 0xC0A1, 0xC0FE, 0x098C, 0xC1A1, 0xC1FE, 0x09EA,
|
||||
0xC2A1, 0xC2FE, 0x0A48, 0xC3A1, 0xC3FE, 0x0AA6, 0xC4A1, 0xC4FE, 0x0B04,
|
||||
0xC5A1, 0xC5FE, 0x0B62, 0xC6A1, 0xC6FE, 0x0BC0, 0xC7A1, 0xC7FE, 0x0C1E,
|
||||
0xC8A1, 0xC8FE, 0x0C7C, 0xC9A1, 0xC9FE, 0x0CDA, 0xCAA1, 0xCAFE, 0x0D38,
|
||||
0xCBA1, 0xCBFE, 0x0D96, 0xCCA1, 0xCCFE, 0x0DF4, 0xCDA1, 0xCDFE, 0x0E52,
|
||||
0xCEA1, 0xCEFE, 0x0EB0, 0xCFA1, 0xCFFE, 0x0F0E, 0xD0A1, 0xD0FE, 0x0F6C,
|
||||
0xD1A1, 0xD1FE, 0x0FCA, 0xD2A1, 0xD2FE, 0x1028, 0xD3A1, 0xD3FE, 0x1086,
|
||||
0xD4A1, 0xD4FE, 0x10E4, 0xD5A1, 0xD5FE, 0x1142, 0xD6A1, 0xD6FE, 0x11A0,
|
||||
0xD7A1, 0xD7F9, 0x11FE, 0xD8A1, 0xD8FE, 0x1257, 0xD9A1, 0xD9FE, 0x12B5,
|
||||
0xDAA1, 0xDAFE, 0x1313, 0xDBA1, 0xDBFE, 0x1371, 0xDCA1, 0xDCFE, 0x13CF,
|
||||
0xDDA1, 0xDDFE, 0x142D, 0xDEA1, 0xDEFE, 0x148B, 0xDFA1, 0xDFFE, 0x14E9,
|
||||
0xE0A1, 0xE0FE, 0x1547, 0xE1A1, 0xE1FE, 0x15A5, 0xE2A1, 0xE2FE, 0x1603,
|
||||
0xE3A1, 0xE3FE, 0x1661, 0xE4A1, 0xE4FE, 0x16BF, 0xE5A1, 0xE5FE, 0x171D,
|
||||
0xE6A1, 0xE6FE, 0x177B, 0xE7A1, 0xE7FE, 0x17D9, 0xE8A1, 0xE8FE, 0x1837,
|
||||
0xE9A1, 0xE9FE, 0x1895, 0xEAA1, 0xEAFE, 0x18F3, 0xEBA1, 0xEBFE, 0x1951,
|
||||
0xECA1, 0xECFE, 0x19AF, 0xEDA1, 0xEDFE, 0x1A0D, 0xEEA1, 0xEEFE, 0x1A6B,
|
||||
0xEFA1, 0xEFFE, 0x1AC9, 0xF0A1, 0xF0FE, 0x1B27, 0xF1A1, 0xF1FE, 0x1B85,
|
||||
0xF2A1, 0xF2FE, 0x1BE3, 0xF3A1, 0xF3FE, 0x1C41, 0xF4A1, 0xF4FE, 0x1C9F,
|
||||
0xF5A1, 0xF5FE, 0x1CFD, 0xF6A1, 0xF6FE, 0x1D5B, 0xF7A1, 0xF7FE, 0x1DB9,
|
||||
};
|
17
modules/pdfium/pdfium/core/fpdfapi/cmaps/GB1/GB-EUC-V_0.cpp
Normal file
17
modules/pdfium/pdfium/core/fpdfapi/cmaps/GB1/GB-EUC-V_0.cpp
Normal file
@ -0,0 +1,17 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/GB1/cmaps_gb1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_GB_EUC_V_0[20 * 3] = {
|
||||
0xA1A2, 0xA1A2, 0x023F, 0xA1A3, 0xA1A3, 0x023E, 0xA1AA, 0xA1AA, 0x0256,
|
||||
0xA1AB, 0xA1AC, 0x1E18, 0xA1AD, 0xA1AD, 0x0257, 0xA1B2, 0xA1BF, 0x0246,
|
||||
0xA1FE, 0xA1FE, 0x1E1A, 0xA3A1, 0xA3A1, 0x0242, 0xA3A8, 0xA3A9, 0x0244,
|
||||
0xA3AC, 0xA3AC, 0x023D, 0xA3AE, 0xA3AE, 0x1E1B, 0xA3BA, 0xA3BB, 0x0240,
|
||||
0xA3BD, 0xA3BD, 0x1E1C, 0xA3BF, 0xA3BF, 0x0243, 0xA3DB, 0xA3DB, 0x1E1D,
|
||||
0xA3DD, 0xA3DD, 0x1E1E, 0xA3DF, 0xA3DF, 0x0258, 0xA3FB, 0xA3FB, 0x0254,
|
||||
0xA3FD, 0xA3FD, 0x0255, 0xA3FE, 0xA3FE, 0x1E1F,
|
||||
};
|
1367
modules/pdfium/pdfium/core/fpdfapi/cmaps/GB1/GBK-EUC-H_2.cpp
Normal file
1367
modules/pdfium/pdfium/core/fpdfapi/cmaps/GB1/GBK-EUC-H_2.cpp
Normal file
File diff suppressed because it is too large
Load Diff
17
modules/pdfium/pdfium/core/fpdfapi/cmaps/GB1/GBK-EUC-V_2.cpp
Normal file
17
modules/pdfium/pdfium/core/fpdfapi/cmaps/GB1/GBK-EUC-V_2.cpp
Normal file
@ -0,0 +1,17 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/GB1/cmaps_gb1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_GBK_EUC_V_2[20 * 3] = {
|
||||
0xA1A2, 0xA1A2, 0x023F, 0xA1A3, 0xA1A3, 0x023E, 0xA1AA, 0xA1AA, 0x0256,
|
||||
0xA1AB, 0xA1AC, 0x1E18, 0xA1AD, 0xA1AD, 0x0257, 0xA1B2, 0xA1BF, 0x0246,
|
||||
0xA1FE, 0xA1FE, 0x1E1A, 0xA3A1, 0xA3A1, 0x0242, 0xA3A8, 0xA3A9, 0x0244,
|
||||
0xA3AC, 0xA3AC, 0x023D, 0xA3AE, 0xA3AE, 0x1E1B, 0xA3BA, 0xA3BB, 0x0240,
|
||||
0xA3BD, 0xA3BD, 0x1E1C, 0xA3BF, 0xA3BF, 0x0243, 0xA3DB, 0xA3DB, 0x1E1D,
|
||||
0xA3DD, 0xA3DD, 0x1E1E, 0xA3DF, 0xA3DF, 0x0258, 0xA3FB, 0xA3FB, 0x0254,
|
||||
0xA3FD, 0xA3FD, 0x0255, 0xA3FE, 0xA3FE, 0x1E1F,
|
||||
};
|
1822
modules/pdfium/pdfium/core/fpdfapi/cmaps/GB1/GBK2K-H_5.cpp
Normal file
1822
modules/pdfium/pdfium/core/fpdfapi/cmaps/GB1/GBK2K-H_5.cpp
Normal file
File diff suppressed because it is too large
Load Diff
24
modules/pdfium/pdfium/core/fpdfapi/cmaps/GB1/GBK2K-V_5.cpp
Normal file
24
modules/pdfium/pdfium/core/fpdfapi/cmaps/GB1/GBK2K-V_5.cpp
Normal file
@ -0,0 +1,24 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/GB1/cmaps_gb1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_GBK2K_V_5[41 * 3] = {
|
||||
0xA1A2, 0xA1A2, 0x023F, 0xA1A3, 0xA1A3, 0x023E, 0xA1AA, 0xA1AA, 0x0256,
|
||||
0xA1AB, 0xA1AC, 0x1E18, 0xA1AD, 0xA1AD, 0x0257, 0xA1B2, 0xA1BF, 0x0246,
|
||||
0xA1FE, 0xA1FE, 0x1E1A, 0xA3A1, 0xA3A1, 0x0242, 0xA3A8, 0xA3A9, 0x0244,
|
||||
0xA3AC, 0xA3AC, 0x023D, 0xA3AE, 0xA3AE, 0x1E1B, 0xA3BA, 0xA3BB, 0x0240,
|
||||
0xA3BD, 0xA3BD, 0x1E1C, 0xA3BF, 0xA3BF, 0x0243, 0xA3DB, 0xA3DB, 0x1E1D,
|
||||
0xA3DD, 0xA3DD, 0x1E1E, 0xA3DF, 0xA3DF, 0x0258, 0xA3FB, 0xA3FB, 0x0254,
|
||||
0xA3FD, 0xA3FD, 0x0255, 0xA3FE, 0xA3FE, 0x1E1F, 0xA4A1, 0xA4A1, 0x5757,
|
||||
0xA4A3, 0xA4A3, 0x5759, 0xA4A5, 0xA4A5, 0x5762, 0xA4A7, 0xA4A7, 0x5758,
|
||||
0xA4A9, 0xA4A9, 0x5760, 0xA4C3, 0xA4C3, 0x5761, 0xA4E3, 0xA4E3, 0x5764,
|
||||
0xA4E5, 0xA4E5, 0x5766, 0xA4E7, 0xA4E7, 0x5765, 0xA4EE, 0xA4EE, 0x5763,
|
||||
0xA5A1, 0xA5A1, 0x5768, 0xA5A3, 0xA5A3, 0x576A, 0xA5A5, 0xA5A5, 0x5771,
|
||||
0xA5A7, 0xA5A7, 0x5769, 0xA5A9, 0xA5A9, 0x576F, 0xA5C3, 0xA5C3, 0x5770,
|
||||
0xA5E3, 0xA5E3, 0x5773, 0xA5E5, 0xA5E5, 0x5775, 0xA5E7, 0xA5E7, 0x5774,
|
||||
0xA5EE, 0xA5EE, 0x5772, 0xA960, 0xA960, 0x577A,
|
||||
};
|
1367
modules/pdfium/pdfium/core/fpdfapi/cmaps/GB1/GBKp-EUC-H_2.cpp
Normal file
1367
modules/pdfium/pdfium/core/fpdfapi/cmaps/GB1/GBKp-EUC-H_2.cpp
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,17 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/GB1/cmaps_gb1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_GBKp_EUC_V_2[20 * 3] = {
|
||||
0xA1A2, 0xA1A2, 0x023F, 0xA1A3, 0xA1A3, 0x023E, 0xA1AA, 0xA1AA, 0x0256,
|
||||
0xA1AB, 0xA1AC, 0x1E18, 0xA1AD, 0xA1AD, 0x0257, 0xA1B2, 0xA1BF, 0x0246,
|
||||
0xA1FE, 0xA1FE, 0x1E1A, 0xA3A1, 0xA3A1, 0x0242, 0xA3A8, 0xA3A9, 0x0244,
|
||||
0xA3AC, 0xA3AC, 0x023D, 0xA3AE, 0xA3AE, 0x1E1B, 0xA3BA, 0xA3BB, 0x0240,
|
||||
0xA3BD, 0xA3BD, 0x1E1C, 0xA3BF, 0xA3BF, 0x0243, 0xA3DB, 0xA3DB, 0x1E1D,
|
||||
0xA3DD, 0xA3DD, 0x1E1E, 0xA3DF, 0xA3DF, 0x0258, 0xA3FB, 0xA3FB, 0x0254,
|
||||
0xA3FD, 0xA3FD, 0x0255, 0xA3FE, 0xA3FE, 0x1E1F,
|
||||
};
|
@ -0,0 +1,41 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/GB1/cmaps_gb1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_GBpc_EUC_H_0[91 * 3] = {
|
||||
0x0020, 0x007E, 0x0001, 0x0080, 0x0080, 0x1E20, 0x00FD, 0x00FF, 0x1E21,
|
||||
0xA1A1, 0xA1FE, 0x0060, 0xA2B1, 0xA2E2, 0x00BE, 0xA2E5, 0xA2EE, 0x00F0,
|
||||
0xA2F1, 0xA2FC, 0x00FA, 0xA3A1, 0xA3FE, 0x0106, 0xA4A1, 0xA4F3, 0x0164,
|
||||
0xA5A1, 0xA5F6, 0x01B7, 0xA6A1, 0xA6B8, 0x020D, 0xA6C1, 0xA6F5, 0x0225,
|
||||
0xA7A1, 0xA7C1, 0x025A, 0xA7D1, 0xA7F1, 0x027B, 0xA8A1, 0xA8C0, 0x029C,
|
||||
0xA8C5, 0xA8EA, 0x02BC, 0xA9A4, 0xA9EF, 0x02E2, 0xAAA1, 0xAAFE, 0x032E,
|
||||
0xABA1, 0xABC0, 0x038C, 0xB0A1, 0xB0FE, 0x03AC, 0xB1A1, 0xB1FE, 0x040A,
|
||||
0xB2A1, 0xB2FE, 0x0468, 0xB3A1, 0xB3FE, 0x04C6, 0xB4A1, 0xB4FE, 0x0524,
|
||||
0xB5A1, 0xB5FE, 0x0582, 0xB6A1, 0xB6FE, 0x05E0, 0xB7A1, 0xB7FE, 0x063E,
|
||||
0xB8A1, 0xB8FE, 0x069C, 0xB9A1, 0xB9FE, 0x06FA, 0xBAA1, 0xBAFE, 0x0758,
|
||||
0xBBA1, 0xBBFE, 0x07B6, 0xBCA1, 0xBCFE, 0x0814, 0xBDA1, 0xBDFE, 0x0872,
|
||||
0xBEA1, 0xBEFE, 0x08D0, 0xBFA1, 0xBFFE, 0x092E, 0xC0A1, 0xC0FE, 0x098C,
|
||||
0xC1A1, 0xC1FE, 0x09EA, 0xC2A1, 0xC2FE, 0x0A48, 0xC3A1, 0xC3FE, 0x0AA6,
|
||||
0xC4A1, 0xC4FE, 0x0B04, 0xC5A1, 0xC5FE, 0x0B62, 0xC6A1, 0xC6FE, 0x0BC0,
|
||||
0xC7A1, 0xC7FE, 0x0C1E, 0xC8A1, 0xC8FE, 0x0C7C, 0xC9A1, 0xC9FE, 0x0CDA,
|
||||
0xCAA1, 0xCAFE, 0x0D38, 0xCBA1, 0xCBFE, 0x0D96, 0xCCA1, 0xCCFE, 0x0DF4,
|
||||
0xCDA1, 0xCDFE, 0x0E52, 0xCEA1, 0xCEFE, 0x0EB0, 0xCFA1, 0xCFFE, 0x0F0E,
|
||||
0xD0A1, 0xD0FE, 0x0F6C, 0xD1A1, 0xD1FE, 0x0FCA, 0xD2A1, 0xD2FE, 0x1028,
|
||||
0xD3A1, 0xD3FE, 0x1086, 0xD4A1, 0xD4FE, 0x10E4, 0xD5A1, 0xD5FE, 0x1142,
|
||||
0xD6A1, 0xD6FE, 0x11A0, 0xD7A1, 0xD7F9, 0x11FE, 0xD8A1, 0xD8FE, 0x1257,
|
||||
0xD9A1, 0xD9FE, 0x12B5, 0xDAA1, 0xDAFE, 0x1313, 0xDBA1, 0xDBFE, 0x1371,
|
||||
0xDCA1, 0xDCFE, 0x13CF, 0xDDA1, 0xDDFE, 0x142D, 0xDEA1, 0xDEFE, 0x148B,
|
||||
0xDFA1, 0xDFFE, 0x14E9, 0xE0A1, 0xE0FE, 0x1547, 0xE1A1, 0xE1FE, 0x15A5,
|
||||
0xE2A1, 0xE2FE, 0x1603, 0xE3A1, 0xE3FE, 0x1661, 0xE4A1, 0xE4FE, 0x16BF,
|
||||
0xE5A1, 0xE5FE, 0x171D, 0xE6A1, 0xE6FE, 0x177B, 0xE7A1, 0xE7FE, 0x17D9,
|
||||
0xE8A1, 0xE8FE, 0x1837, 0xE9A1, 0xE9FE, 0x1895, 0xEAA1, 0xEAFE, 0x18F3,
|
||||
0xEBA1, 0xEBFE, 0x1951, 0xECA1, 0xECFE, 0x19AF, 0xEDA1, 0xEDFE, 0x1A0D,
|
||||
0xEEA1, 0xEEFE, 0x1A6B, 0xEFA1, 0xEFFE, 0x1AC9, 0xF0A1, 0xF0FE, 0x1B27,
|
||||
0xF1A1, 0xF1FE, 0x1B85, 0xF2A1, 0xF2FE, 0x1BE3, 0xF3A1, 0xF3FE, 0x1C41,
|
||||
0xF4A1, 0xF4FE, 0x1C9F, 0xF5A1, 0xF5FE, 0x1CFD, 0xF6A1, 0xF6FE, 0x1D5B,
|
||||
0xF7A1, 0xF7FE, 0x1DB9,
|
||||
};
|
@ -0,0 +1,17 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/GB1/cmaps_gb1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_GBpc_EUC_V_0[20 * 3] = {
|
||||
0xA1A2, 0xA1A2, 0x023F, 0xA1A3, 0xA1A3, 0x023E, 0xA1AA, 0xA1AA, 0x0256,
|
||||
0xA1AB, 0xA1AC, 0x1E18, 0xA1AD, 0xA1AD, 0x0257, 0xA1B2, 0xA1BF, 0x0246,
|
||||
0xA1FE, 0xA1FE, 0x1E1A, 0xA3A1, 0xA3A1, 0x0242, 0xA3A8, 0xA3A9, 0x0244,
|
||||
0xA3AC, 0xA3AC, 0x023D, 0xA3AE, 0xA3AE, 0x1E1B, 0xA3BA, 0xA3BB, 0x0240,
|
||||
0xA3BD, 0xA3BD, 0x1E1C, 0xA3BF, 0xA3BF, 0x0243, 0xA3DB, 0xA3DB, 0x1E1D,
|
||||
0xA3DD, 0xA3DD, 0x1E1E, 0xA3DF, 0xA3DF, 0x0258, 0xA3FB, 0xA3FB, 0x0254,
|
||||
0xA3FD, 0xA3FD, 0x0255, 0xA3FE, 0xA3FE, 0x1E1F,
|
||||
};
|
4619
modules/pdfium/pdfium/core/fpdfapi/cmaps/GB1/UniGB-UCS2-H_4.cpp
Normal file
4619
modules/pdfium/pdfium/core/fpdfapi/cmaps/GB1/UniGB-UCS2-H_4.cpp
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,18 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/GB1/cmaps_gb1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_UniGB_UCS2_V_4[24 * 3] = {
|
||||
0x2014, 0x2014, 0x0256, 0x2026, 0x2026, 0x0257, 0x2225, 0x2225, 0x1E1C,
|
||||
0x3001, 0x3001, 0x023F, 0x3002, 0x3002, 0x023E, 0x3008, 0x300F, 0x0248,
|
||||
0x3010, 0x3011, 0x0252, 0x3013, 0x3013, 0x1E1A, 0x3014, 0x3015, 0x0246,
|
||||
0x3016, 0x3017, 0x0250, 0xFF01, 0xFF01, 0x0242, 0xFF08, 0xFF09, 0x0244,
|
||||
0xFF0C, 0xFF0C, 0x023D, 0xFF0E, 0xFF0E, 0x1E1B, 0xFF1A, 0xFF1B, 0x0240,
|
||||
0xFF1D, 0xFF1D, 0x1E1C, 0xFF1F, 0xFF1F, 0x0243, 0xFF3B, 0xFF3B, 0x1E1D,
|
||||
0xFF3D, 0xFF3D, 0x1E1E, 0xFF3F, 0xFF3F, 0x0258, 0xFF5B, 0xFF5B, 0x0254,
|
||||
0xFF5D, 0xFF5D, 0x0255, 0xFF5E, 0xFF5E, 0x1E18, 0xFFE3, 0xFFE3, 0x1E1F,
|
||||
};
|
55
modules/pdfium/pdfium/core/fpdfapi/cmaps/GB1/cmaps_gb1.cpp
Normal file
55
modules/pdfium/pdfium/core/fpdfapi/cmaps/GB1/cmaps_gb1.cpp
Normal file
@ -0,0 +1,55 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/GB1/cmaps_gb1.h"
|
||||
|
||||
#include "core/fpdfapi/cmaps/cmap_int.h"
|
||||
#include "core/fpdfapi/cpdf_modulemgr.h"
|
||||
#include "core/fpdfapi/font/font_int.h"
|
||||
#include "core/fpdfapi/page/cpdf_pagemodule.h"
|
||||
#include "core/fxcrt/fx_basic.h"
|
||||
|
||||
static const FXCMAP_CMap g_FXCMAP_GB1_cmaps[] = {
|
||||
{"GB-EUC-H", FXCMAP_CMap::Range, g_FXCMAP_GB_EUC_H_0, 90, FXCMAP_CMap::None,
|
||||
nullptr, 0, 0},
|
||||
{"GB-EUC-V", FXCMAP_CMap::Range, g_FXCMAP_GB_EUC_V_0, 20, FXCMAP_CMap::None,
|
||||
nullptr, 0, -1},
|
||||
{"GBpc-EUC-H", FXCMAP_CMap::Range, g_FXCMAP_GBpc_EUC_H_0, 91,
|
||||
FXCMAP_CMap::None, nullptr, 0, 0},
|
||||
{"GBpc-EUC-V", FXCMAP_CMap::Range, g_FXCMAP_GBpc_EUC_V_0, 20,
|
||||
FXCMAP_CMap::None, nullptr, 0, -1},
|
||||
{"GBK-EUC-H", FXCMAP_CMap::Range, g_FXCMAP_GBK_EUC_H_2, 4071,
|
||||
FXCMAP_CMap::None, nullptr, 0, 0},
|
||||
{"GBK-EUC-V", FXCMAP_CMap::Range, g_FXCMAP_GBK_EUC_V_2, 20,
|
||||
FXCMAP_CMap::None, nullptr, 0, -1},
|
||||
{"GBKp-EUC-H", FXCMAP_CMap::Range, g_FXCMAP_GBKp_EUC_H_2, 4070,
|
||||
FXCMAP_CMap::None, nullptr, 0, -2},
|
||||
{"GBKp-EUC-V", FXCMAP_CMap::Range, g_FXCMAP_GBKp_EUC_V_2, 20,
|
||||
FXCMAP_CMap::None, nullptr, 0, -1},
|
||||
{"GBK2K-H", FXCMAP_CMap::Range, g_FXCMAP_GBK2K_H_5, 4071,
|
||||
FXCMAP_CMap::Single, g_FXCMAP_GBK2K_H_5_DWord, 1017, -4},
|
||||
{"GBK2K-V", FXCMAP_CMap::Range, g_FXCMAP_GBK2K_V_5, 41, FXCMAP_CMap::None,
|
||||
nullptr, 0, -1},
|
||||
{"UniGB-UCS2-H", FXCMAP_CMap::Range, g_FXCMAP_UniGB_UCS2_H_4, 13825,
|
||||
FXCMAP_CMap::None, nullptr, 0, 0},
|
||||
{"UniGB-UCS2-V", FXCMAP_CMap::Range, g_FXCMAP_UniGB_UCS2_V_4, 24,
|
||||
FXCMAP_CMap::None, nullptr, 0, -1},
|
||||
{"UniGB-UTF16-H", FXCMAP_CMap::Range, g_FXCMAP_UniGB_UCS2_H_4, 13825,
|
||||
FXCMAP_CMap::None, nullptr, 0, 0},
|
||||
{"UniGB-UTF16-V", FXCMAP_CMap::Range, g_FXCMAP_UniGB_UCS2_V_4, 24,
|
||||
FXCMAP_CMap::None, nullptr, 0, -1},
|
||||
};
|
||||
|
||||
void CPDF_ModuleMgr::LoadEmbeddedGB1CMaps() {
|
||||
CPDF_FontGlobals* pFontGlobals =
|
||||
CPDF_ModuleMgr::Get()->GetPageModule()->GetFontGlobals();
|
||||
pFontGlobals->m_EmbeddedCharsets[CIDSET_GB1].m_pMapList = g_FXCMAP_GB1_cmaps;
|
||||
pFontGlobals->m_EmbeddedCharsets[CIDSET_GB1].m_Count =
|
||||
FX_ArraySize(g_FXCMAP_GB1_cmaps);
|
||||
pFontGlobals->m_EmbeddedToUnicodes[CIDSET_GB1].m_pMap =
|
||||
g_FXCMAP_GB1CID2Unicode_5;
|
||||
pFontGlobals->m_EmbeddedToUnicodes[CIDSET_GB1].m_Count = 30284;
|
||||
}
|
27
modules/pdfium/pdfium/core/fpdfapi/cmaps/GB1/cmaps_gb1.h
Normal file
27
modules/pdfium/pdfium/core/fpdfapi/cmaps/GB1/cmaps_gb1.h
Normal file
@ -0,0 +1,27 @@
|
||||
// Copyright 2015 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#ifndef CORE_FPDFAPI_CMAPS_GB1_CMAPS_GB1_H_
|
||||
#define CORE_FPDFAPI_CMAPS_GB1_CMAPS_GB1_H_
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
extern const uint16_t g_FXCMAP_GB_EUC_H_0[];
|
||||
extern const uint16_t g_FXCMAP_GB_EUC_V_0[];
|
||||
extern const uint16_t g_FXCMAP_GBpc_EUC_H_0[];
|
||||
extern const uint16_t g_FXCMAP_GBpc_EUC_V_0[];
|
||||
extern const uint16_t g_FXCMAP_GBK_EUC_H_2[];
|
||||
extern const uint16_t g_FXCMAP_GBK_EUC_V_2[];
|
||||
extern const uint16_t g_FXCMAP_GBKp_EUC_H_2[];
|
||||
extern const uint16_t g_FXCMAP_GBKp_EUC_V_2[];
|
||||
extern const uint16_t g_FXCMAP_GBK2K_H_5[];
|
||||
extern const uint16_t g_FXCMAP_GBK2K_H_5_DWord[];
|
||||
extern const uint16_t g_FXCMAP_GBK2K_V_5[];
|
||||
extern const uint16_t g_FXCMAP_UniGB_UCS2_H_4[];
|
||||
extern const uint16_t g_FXCMAP_UniGB_UCS2_V_4[];
|
||||
extern const uint16_t g_FXCMAP_GB1CID2Unicode_5[];
|
||||
|
||||
#endif // CORE_FPDFAPI_CMAPS_GB1_CMAPS_GB1_H_
|
@ -0,0 +1,84 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/Japan1/cmaps_japan1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_83pv_RKSJ_H_1[222 * 3] = {
|
||||
0x0020, 0x007E, 0x0001, 0x0080, 0x0080, 0x0061, 0x00A0, 0x00DF, 0x0146,
|
||||
0x00FD, 0x00FD, 0x0098, 0x00FE, 0x00FE, 0x00E4, 0x00FF, 0x00FF, 0x007C,
|
||||
0x8140, 0x817E, 0x0279, 0x8180, 0x81AC, 0x02B8, 0x81B8, 0x81BF, 0x02E5,
|
||||
0x81C8, 0x81CE, 0x02ED, 0x81DA, 0x81E8, 0x02F4, 0x81F0, 0x81F7, 0x0303,
|
||||
0x81FC, 0x81FC, 0x030B, 0x824F, 0x8258, 0x030C, 0x8260, 0x8279, 0x0316,
|
||||
0x8281, 0x829A, 0x0330, 0x829F, 0x82F1, 0x034A, 0x8340, 0x837E, 0x039D,
|
||||
0x8380, 0x8396, 0x03DC, 0x839F, 0x83B6, 0x03F3, 0x83BF, 0x83D6, 0x040B,
|
||||
0x8440, 0x8460, 0x0423, 0x8470, 0x847E, 0x0444, 0x8480, 0x8491, 0x0453,
|
||||
0x849F, 0x849F, 0x1D37, 0x84A0, 0x84A0, 0x1D39, 0x84A1, 0x84A1, 0x1D43,
|
||||
0x84A2, 0x84A2, 0x1D47, 0x84A3, 0x84A3, 0x1D4F, 0x84A4, 0x84A4, 0x1D4B,
|
||||
0x84A5, 0x84A5, 0x1D53, 0x84A6, 0x84A6, 0x1D63, 0x84A7, 0x84A7, 0x1D5B,
|
||||
0x84A8, 0x84A8, 0x1D6B, 0x84A9, 0x84A9, 0x1D73, 0x84AA, 0x84AA, 0x1D38,
|
||||
0x84AB, 0x84AB, 0x1D3A, 0x84AC, 0x84AC, 0x1D46, 0x84AD, 0x84AD, 0x1D4A,
|
||||
0x84AE, 0x84AE, 0x1D52, 0x84AF, 0x84AF, 0x1D4E, 0x84B0, 0x84B0, 0x1D5A,
|
||||
0x84B1, 0x84B1, 0x1D6A, 0x84B2, 0x84B2, 0x1D62, 0x84B3, 0x84B3, 0x1D72,
|
||||
0x84B4, 0x84B4, 0x1D82, 0x84B5, 0x84B5, 0x1D57, 0x84B6, 0x84B6, 0x1D66,
|
||||
0x84B7, 0x84B7, 0x1D5F, 0x84B8, 0x84B8, 0x1D6E, 0x84B9, 0x84B9, 0x1D76,
|
||||
0x84BA, 0x84BA, 0x1D54, 0x84BB, 0x84BB, 0x1D67, 0x84BC, 0x84BC, 0x1D5C,
|
||||
0x84BD, 0x84BD, 0x1D6F, 0x84BE, 0x84BE, 0x1D79, 0x8540, 0x857E, 0x00E8,
|
||||
0x8580, 0x8580, 0x0186, 0x8581, 0x859E, 0x0128, 0x859F, 0x85DD, 0x0147,
|
||||
0x85DE, 0x85FC, 0x0187, 0x8640, 0x867E, 0x01A6, 0x8680, 0x8691, 0x01E5,
|
||||
0x8692, 0x8692, 0x0127, 0x8693, 0x869E, 0x01F7, 0x86A2, 0x86ED, 0x1D37,
|
||||
0x8740, 0x875D, 0x1D83, 0x875F, 0x8775, 0x1DA1, 0x8780, 0x878F, 0x1DB8,
|
||||
0x8790, 0x8790, 0x02FA, 0x8791, 0x8791, 0x02F9, 0x8792, 0x8792, 0x0301,
|
||||
0x8793, 0x8799, 0x1DC8, 0x879A, 0x879A, 0x0300, 0x879B, 0x879C, 0x1DCF,
|
||||
0x889F, 0x88FC, 0x0465, 0x8940, 0x897E, 0x04C3, 0x8980, 0x89FC, 0x0502,
|
||||
0x8A40, 0x8A7E, 0x057F, 0x8A80, 0x8AFC, 0x05BE, 0x8B40, 0x8B7E, 0x063B,
|
||||
0x8B80, 0x8BFC, 0x067A, 0x8C40, 0x8C7E, 0x06F7, 0x8C80, 0x8CFC, 0x0736,
|
||||
0x8D40, 0x8D7E, 0x07B3, 0x8D80, 0x8DFC, 0x07F2, 0x8E40, 0x8E7E, 0x086F,
|
||||
0x8E80, 0x8EFC, 0x08AE, 0x8F40, 0x8F7E, 0x092B, 0x8F80, 0x8FFC, 0x096A,
|
||||
0x9040, 0x907E, 0x09E7, 0x9080, 0x90FC, 0x0A26, 0x9140, 0x917E, 0x0AA3,
|
||||
0x9180, 0x91FC, 0x0AE2, 0x9240, 0x927E, 0x0B5F, 0x9280, 0x92FC, 0x0B9E,
|
||||
0x9340, 0x937E, 0x0C1B, 0x9380, 0x93FC, 0x0C5A, 0x9440, 0x947E, 0x0CD7,
|
||||
0x9480, 0x94FC, 0x0D16, 0x9540, 0x957E, 0x0D93, 0x9580, 0x95FC, 0x0DD2,
|
||||
0x9640, 0x967E, 0x0E4F, 0x9680, 0x96FC, 0x0E8E, 0x9740, 0x977E, 0x0F0B,
|
||||
0x9780, 0x97FC, 0x0F4A, 0x9840, 0x9872, 0x0FC7, 0x989F, 0x98FC, 0x0FFA,
|
||||
0x9940, 0x997E, 0x1058, 0x9980, 0x99FC, 0x1097, 0x9A40, 0x9A7E, 0x1114,
|
||||
0x9A80, 0x9AFC, 0x1153, 0x9B40, 0x9B7E, 0x11D0, 0x9B80, 0x9BFC, 0x120F,
|
||||
0x9C40, 0x9C7E, 0x128C, 0x9C80, 0x9CFC, 0x12CB, 0x9D40, 0x9D7E, 0x1348,
|
||||
0x9D80, 0x9DFC, 0x1387, 0x9E40, 0x9E7E, 0x1404, 0x9E80, 0x9EFC, 0x1443,
|
||||
0x9F40, 0x9F7E, 0x14C0, 0x9F80, 0x9FFC, 0x14FF, 0xE040, 0xE07E, 0x157C,
|
||||
0xE080, 0xE0FC, 0x15BB, 0xE140, 0xE17E, 0x1638, 0xE180, 0xE1FC, 0x1677,
|
||||
0xE240, 0xE27E, 0x16F4, 0xE280, 0xE2FC, 0x1733, 0xE340, 0xE37E, 0x17B0,
|
||||
0xE380, 0xE3FC, 0x17EF, 0xE440, 0xE47E, 0x186C, 0xE480, 0xE4FC, 0x18AB,
|
||||
0xE540, 0xE57E, 0x1928, 0xE580, 0xE5FC, 0x1967, 0xE640, 0xE67E, 0x19E4,
|
||||
0xE680, 0xE6FC, 0x1A23, 0xE740, 0xE77E, 0x1AA0, 0xE780, 0xE7FC, 0x1ADF,
|
||||
0xE840, 0xE87E, 0x1B5C, 0xE880, 0xE8FC, 0x1B9B, 0xE940, 0xE97E, 0x1C18,
|
||||
0xE980, 0xE9FC, 0x1C57, 0xEA40, 0xEA7E, 0x1CD4, 0xEA80, 0xEAA2, 0x1D13,
|
||||
0xEAA3, 0xEAA4, 0x205C, 0xEB40, 0xEB40, 0x0279, 0xEB41, 0xEB42, 0x1ECF,
|
||||
0xEB43, 0xEB4F, 0x027C, 0xEB50, 0xEB51, 0x1ED1, 0xEB52, 0xEB5A, 0x028B,
|
||||
0xEB5B, 0xEB5D, 0x1ED3, 0xEB5E, 0xEB5F, 0x0297, 0xEB60, 0xEB64, 0x1ED6,
|
||||
0xEB65, 0xEB68, 0x029E, 0xEB69, 0xEB7A, 0x1EDB, 0xEB7B, 0xEB7E, 0x02B4,
|
||||
0xEB80, 0xEB80, 0x02B8, 0xEB81, 0xEB81, 0x1EED, 0xEB82, 0xEBAC, 0x02BA,
|
||||
0xEBB8, 0xEBBF, 0x02E5, 0xEBC8, 0xEBCE, 0x02ED, 0xEBDA, 0xEBE8, 0x02F4,
|
||||
0xEBF0, 0xEBF7, 0x0303, 0xEBFC, 0xEBFC, 0x030B, 0xEC4F, 0xEC58, 0x030C,
|
||||
0xEC60, 0xEC79, 0x0316, 0xEC81, 0xEC9A, 0x0330, 0xEC9F, 0xEC9F, 0x1EEE,
|
||||
0xECA0, 0xECA0, 0x034B, 0xECA1, 0xECA1, 0x1EEF, 0xECA2, 0xECA2, 0x034D,
|
||||
0xECA3, 0xECA3, 0x1EF0, 0xECA4, 0xECA4, 0x034F, 0xECA5, 0xECA5, 0x1EF1,
|
||||
0xECA6, 0xECA6, 0x0351, 0xECA7, 0xECA7, 0x1EF2, 0xECA8, 0xECC0, 0x0353,
|
||||
0xECC1, 0xECC1, 0x1EF3, 0xECC2, 0xECE0, 0x036D, 0xECE1, 0xECE1, 0x1EF4,
|
||||
0xECE2, 0xECE2, 0x038D, 0xECE3, 0xECE3, 0x1EF5, 0xECE4, 0xECE4, 0x038F,
|
||||
0xECE5, 0xECE5, 0x1EF6, 0xECE6, 0xECEB, 0x0391, 0xECEC, 0xECEC, 0x1EF7,
|
||||
0xECED, 0xECF1, 0x0398, 0xED40, 0xED40, 0x1EF8, 0xED41, 0xED41, 0x039E,
|
||||
0xED42, 0xED42, 0x1EF9, 0xED43, 0xED43, 0x03A0, 0xED44, 0xED44, 0x1EFA,
|
||||
0xED45, 0xED45, 0x03A2, 0xED46, 0xED46, 0x1EFB, 0xED47, 0xED47, 0x03A4,
|
||||
0xED48, 0xED48, 0x1EFC, 0xED49, 0xED61, 0x03A6, 0xED62, 0xED62, 0x1EFD,
|
||||
0xED63, 0xED7E, 0x03C0, 0xED80, 0xED82, 0x03DC, 0xED83, 0xED83, 0x1EFE,
|
||||
0xED84, 0xED84, 0x03E0, 0xED85, 0xED85, 0x1EFF, 0xED86, 0xED86, 0x03E2,
|
||||
0xED87, 0xED87, 0x1F00, 0xED88, 0xED8D, 0x03E4, 0xED8E, 0xED8E, 0x1F01,
|
||||
0xED8F, 0xED94, 0x03EB, 0xED95, 0xED96, 0x1F02, 0xED9F, 0xEDB6, 0x03F3,
|
||||
0xEDBF, 0xEDD6, 0x040B, 0xEE40, 0xEE5D, 0x1D83, 0xEE5F, 0xEE6E, 0x1F04,
|
||||
0xEE6F, 0xEE75, 0x1DB1, 0xEE80, 0xEE81, 0x1F14, 0xEE82, 0xEE8F, 0x1DBA,
|
||||
0xEE90, 0xEE90, 0x02FA, 0xEE91, 0xEE91, 0x02F9, 0xEE92, 0xEE92, 0x0301,
|
||||
0xEE93, 0xEE99, 0x1DC8, 0xEE9A, 0xEE9A, 0x0300, 0xEE9B, 0xEE9C, 0x1DCF,
|
||||
};
|
@ -0,0 +1,67 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/Japan1/cmaps_japan1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_90ms_RKSJ_H_2[171 * 3] = {
|
||||
0x0020, 0x007D, 0x00E7, 0x007E, 0x007E, 0x0277, 0x00A0, 0x00DF, 0x0146,
|
||||
0x8140, 0x817E, 0x0279, 0x8180, 0x81AC, 0x02B8, 0x81B8, 0x81BF, 0x02E5,
|
||||
0x81C8, 0x81CE, 0x02ED, 0x81DA, 0x81E8, 0x02F4, 0x81F0, 0x81F7, 0x0303,
|
||||
0x81FC, 0x81FC, 0x030B, 0x824F, 0x8258, 0x030C, 0x8260, 0x8279, 0x0316,
|
||||
0x8281, 0x829A, 0x0330, 0x829F, 0x82F1, 0x034A, 0x8340, 0x837E, 0x039D,
|
||||
0x8380, 0x8396, 0x03DC, 0x839F, 0x83B6, 0x03F3, 0x83BF, 0x83D6, 0x040B,
|
||||
0x8440, 0x8460, 0x0423, 0x8470, 0x847E, 0x0444, 0x8480, 0x8491, 0x0453,
|
||||
0x849F, 0x849F, 0x1D37, 0x84A0, 0x84A0, 0x1D39, 0x84A1, 0x84A1, 0x1D43,
|
||||
0x84A2, 0x84A2, 0x1D47, 0x84A3, 0x84A3, 0x1D4F, 0x84A4, 0x84A4, 0x1D4B,
|
||||
0x84A5, 0x84A5, 0x1D53, 0x84A6, 0x84A6, 0x1D63, 0x84A7, 0x84A7, 0x1D5B,
|
||||
0x84A8, 0x84A8, 0x1D6B, 0x84A9, 0x84A9, 0x1D73, 0x84AA, 0x84AA, 0x1D38,
|
||||
0x84AB, 0x84AB, 0x1D3A, 0x84AC, 0x84AC, 0x1D46, 0x84AD, 0x84AD, 0x1D4A,
|
||||
0x84AE, 0x84AE, 0x1D52, 0x84AF, 0x84AF, 0x1D4E, 0x84B0, 0x84B0, 0x1D5A,
|
||||
0x84B1, 0x84B1, 0x1D6A, 0x84B2, 0x84B2, 0x1D62, 0x84B3, 0x84B3, 0x1D72,
|
||||
0x84B4, 0x84B4, 0x1D82, 0x84B5, 0x84B5, 0x1D57, 0x84B6, 0x84B6, 0x1D66,
|
||||
0x84B7, 0x84B7, 0x1D5F, 0x84B8, 0x84B8, 0x1D6E, 0x84B9, 0x84B9, 0x1D76,
|
||||
0x84BA, 0x84BA, 0x1D54, 0x84BB, 0x84BB, 0x1D67, 0x84BC, 0x84BC, 0x1D5C,
|
||||
0x84BD, 0x84BD, 0x1D6F, 0x84BE, 0x84BE, 0x1D79, 0x8740, 0x875D, 0x1D83,
|
||||
0x875F, 0x8760, 0x1DA1, 0x8761, 0x8761, 0x1F66, 0x8762, 0x8762, 0x1DA4,
|
||||
0x8763, 0x8763, 0x1F68, 0x8764, 0x8764, 0x1DA6, 0x8765, 0x8765, 0x1F6A,
|
||||
0x8766, 0x8767, 0x1DA8, 0x8768, 0x8768, 0x1F6C, 0x8769, 0x876A, 0x1DAB,
|
||||
0x876B, 0x876B, 0x1F6B, 0x876C, 0x876D, 0x1DAE, 0x876E, 0x876E, 0x1F6F,
|
||||
0x876F, 0x8775, 0x1DB1, 0x877E, 0x877E, 0x2083, 0x8780, 0x8783, 0x1DB8,
|
||||
0x8784, 0x8784, 0x1F77, 0x8785, 0x878F, 0x1DBD, 0x8790, 0x8790, 0x02FA,
|
||||
0x8791, 0x8791, 0x02F9, 0x8792, 0x8792, 0x0301, 0x8793, 0x8799, 0x1DC8,
|
||||
0x879A, 0x879A, 0x0300, 0x879B, 0x879C, 0x1DCF, 0x889F, 0x88FC, 0x0465,
|
||||
0x8940, 0x897E, 0x04C3, 0x8980, 0x89FC, 0x0502, 0x8A40, 0x8A7E, 0x057F,
|
||||
0x8A80, 0x8AFC, 0x05BE, 0x8B40, 0x8B7E, 0x063B, 0x8B80, 0x8BFC, 0x067A,
|
||||
0x8C40, 0x8C7E, 0x06F7, 0x8C80, 0x8CFC, 0x0736, 0x8D40, 0x8D7E, 0x07B3,
|
||||
0x8D80, 0x8DFC, 0x07F2, 0x8E40, 0x8E7E, 0x086F, 0x8E80, 0x8EFC, 0x08AE,
|
||||
0x8F40, 0x8F7E, 0x092B, 0x8F80, 0x8FFC, 0x096A, 0x9040, 0x907E, 0x09E7,
|
||||
0x9080, 0x90FC, 0x0A26, 0x9140, 0x917E, 0x0AA3, 0x9180, 0x91FC, 0x0AE2,
|
||||
0x9240, 0x927E, 0x0B5F, 0x9280, 0x92FC, 0x0B9E, 0x9340, 0x937E, 0x0C1B,
|
||||
0x9380, 0x93FC, 0x0C5A, 0x9440, 0x947E, 0x0CD7, 0x9480, 0x94FC, 0x0D16,
|
||||
0x9540, 0x957E, 0x0D93, 0x9580, 0x95FC, 0x0DD2, 0x9640, 0x967E, 0x0E4F,
|
||||
0x9680, 0x96FC, 0x0E8E, 0x9740, 0x977E, 0x0F0B, 0x9780, 0x97FC, 0x0F4A,
|
||||
0x9840, 0x9872, 0x0FC7, 0x989F, 0x98FC, 0x0FFA, 0x9940, 0x997E, 0x1058,
|
||||
0x9980, 0x99FC, 0x1097, 0x9A40, 0x9A7E, 0x1114, 0x9A80, 0x9AFC, 0x1153,
|
||||
0x9B40, 0x9B7E, 0x11D0, 0x9B80, 0x9BFC, 0x120F, 0x9C40, 0x9C7E, 0x128C,
|
||||
0x9C80, 0x9CFC, 0x12CB, 0x9D40, 0x9D7E, 0x1348, 0x9D80, 0x9DFC, 0x1387,
|
||||
0x9E40, 0x9E7E, 0x1404, 0x9E80, 0x9EFC, 0x1443, 0x9F40, 0x9F7E, 0x14C0,
|
||||
0x9F80, 0x9FFC, 0x14FF, 0xE040, 0xE07E, 0x157C, 0xE080, 0xE0FC, 0x15BB,
|
||||
0xE140, 0xE17E, 0x1638, 0xE180, 0xE1FC, 0x1677, 0xE240, 0xE27E, 0x16F4,
|
||||
0xE280, 0xE2FC, 0x1733, 0xE340, 0xE37E, 0x17B0, 0xE380, 0xE3FC, 0x17EF,
|
||||
0xE440, 0xE47E, 0x186C, 0xE480, 0xE4FC, 0x18AB, 0xE540, 0xE57E, 0x1928,
|
||||
0xE580, 0xE5FC, 0x1967, 0xE640, 0xE67E, 0x19E4, 0xE680, 0xE6FC, 0x1A23,
|
||||
0xE740, 0xE77E, 0x1AA0, 0xE780, 0xE7FC, 0x1ADF, 0xE840, 0xE87E, 0x1B5C,
|
||||
0xE880, 0xE8FC, 0x1B9B, 0xE940, 0xE97E, 0x1C18, 0xE980, 0xE9FC, 0x1C57,
|
||||
0xEA40, 0xEA7E, 0x1CD4, 0xEA80, 0xEAA2, 0x1D13, 0xEAA3, 0xEAA4, 0x205C,
|
||||
0xED40, 0xED7E, 0x20A7, 0xED80, 0xEDB3, 0x20E6, 0xEDB4, 0xEDB4, 0x07C9,
|
||||
0xEDB5, 0xEDFC, 0x211A, 0xEE40, 0xEE7E, 0x2162, 0xEE80, 0xEEEC, 0x21A1,
|
||||
0xEEEF, 0xEEF8, 0x1F9C, 0xEEF9, 0xEEF9, 0x02EF, 0xEEFA, 0xEEFC, 0x1F45,
|
||||
0xFA40, 0xFA49, 0x1F9C, 0xFA4A, 0xFA53, 0x1D97, 0xFA54, 0xFA54, 0x02EF,
|
||||
0xFA55, 0xFA57, 0x1F45, 0xFA58, 0xFA58, 0x1DC2, 0xFA59, 0xFA59, 0x1DBA,
|
||||
0xFA5A, 0xFA5A, 0x1F77, 0xFA5B, 0xFA5B, 0x0300, 0xFA5C, 0xFA7E, 0x20A7,
|
||||
0xFA80, 0xFACF, 0x20CA, 0xFAD0, 0xFAD0, 0x07C9, 0xFAD1, 0xFAFC, 0x211A,
|
||||
0xFB40, 0xFB7E, 0x2146, 0xFB80, 0xFBFC, 0x2185, 0xFC40, 0xFC4B, 0x2202,
|
||||
};
|
@ -0,0 +1,36 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/Japan1/cmaps_japan1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_90ms_RKSJ_V_2[78 * 3] = {
|
||||
0x8141, 0x8142, 0x1ECF, 0x8143, 0x8143, 0x204C, 0x8144, 0x8144, 0x2052,
|
||||
0x8150, 0x8151, 0x1ED1, 0x815B, 0x815D, 0x1ED3, 0x8160, 0x8164, 0x1ED6,
|
||||
0x8169, 0x817A, 0x1EDB, 0x8181, 0x8181, 0x1EED, 0x81A8, 0x81A8, 0x02E3,
|
||||
0x81A9, 0x81A9, 0x02E2, 0x81AA, 0x81AB, 0x02E0, 0x81AC, 0x81AC, 0x204E,
|
||||
0x829F, 0x829F, 0x1EEE, 0x82A1, 0x82A1, 0x1EEF, 0x82A3, 0x82A3, 0x1EF0,
|
||||
0x82A5, 0x82A5, 0x1EF1, 0x82A7, 0x82A7, 0x1EF2, 0x82C1, 0x82C1, 0x1EF3,
|
||||
0x82E1, 0x82E1, 0x1EF4, 0x82E3, 0x82E3, 0x1EF5, 0x82E5, 0x82E5, 0x1EF6,
|
||||
0x82EC, 0x82EC, 0x1EF7, 0x8340, 0x8340, 0x1EF8, 0x8342, 0x8342, 0x1EF9,
|
||||
0x8344, 0x8344, 0x1EFA, 0x8346, 0x8346, 0x1EFB, 0x8348, 0x8348, 0x1EFC,
|
||||
0x8362, 0x8362, 0x1EFD, 0x8383, 0x8383, 0x1EFE, 0x8385, 0x8385, 0x1EFF,
|
||||
0x8387, 0x8387, 0x1F00, 0x838E, 0x838E, 0x1F01, 0x8395, 0x8396, 0x1F02,
|
||||
0x849F, 0x849F, 0x1D39, 0x84A0, 0x84A0, 0x1D37, 0x84A1, 0x84A1, 0x1D47,
|
||||
0x84A2, 0x84A2, 0x1D4F, 0x84A3, 0x84A3, 0x1D4B, 0x84A4, 0x84A4, 0x1D43,
|
||||
0x84A5, 0x84A5, 0x1D63, 0x84A6, 0x84A6, 0x1D5B, 0x84A7, 0x84A7, 0x1D6B,
|
||||
0x84A8, 0x84A8, 0x1D53, 0x84A9, 0x84A9, 0x1D73, 0x84AA, 0x84AA, 0x1D3A,
|
||||
0x84AB, 0x84AB, 0x1D38, 0x84AC, 0x84AC, 0x1D4A, 0x84AD, 0x84AD, 0x1D52,
|
||||
0x84AE, 0x84AE, 0x1D4E, 0x84AF, 0x84AF, 0x1D46, 0x84B0, 0x84B0, 0x1D6A,
|
||||
0x84B1, 0x84B1, 0x1D62, 0x84B2, 0x84B2, 0x1D72, 0x84B3, 0x84B3, 0x1D5A,
|
||||
0x84B4, 0x84B4, 0x1D82, 0x84B5, 0x84B5, 0x1D66, 0x84B6, 0x84B6, 0x1D5F,
|
||||
0x84B7, 0x84B7, 0x1D6E, 0x84B8, 0x84B8, 0x1D57, 0x84B9, 0x84B9, 0x1D79,
|
||||
0x84BA, 0x84BA, 0x1D67, 0x84BB, 0x84BB, 0x1D5C, 0x84BC, 0x84BC, 0x1D6F,
|
||||
0x84BD, 0x84BD, 0x1D54, 0x84BE, 0x84BE, 0x1D76, 0x875F, 0x8760, 0x1F04,
|
||||
0x8761, 0x8761, 0x2089, 0x8762, 0x8762, 0x1F07, 0x8763, 0x8763, 0x2093,
|
||||
0x8764, 0x8764, 0x1F09, 0x8765, 0x8765, 0x2092, 0x8766, 0x8767, 0x1F0B,
|
||||
0x8768, 0x8768, 0x2098, 0x8769, 0x876A, 0x1F0E, 0x876B, 0x876B, 0x209C,
|
||||
0x876C, 0x876D, 0x1F11, 0x876E, 0x876E, 0x209D, 0x8780, 0x8781, 0x1F14,
|
||||
};
|
@ -0,0 +1,67 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/Japan1/cmaps_japan1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_90msp_RKSJ_H_2[170 * 3] = {
|
||||
0x0020, 0x007E, 0x0001, 0x00A0, 0x00DF, 0x0146, 0x8140, 0x817E, 0x0279,
|
||||
0x8180, 0x81AC, 0x02B8, 0x81B8, 0x81BF, 0x02E5, 0x81C8, 0x81CE, 0x02ED,
|
||||
0x81DA, 0x81E8, 0x02F4, 0x81F0, 0x81F7, 0x0303, 0x81FC, 0x81FC, 0x030B,
|
||||
0x824F, 0x8258, 0x030C, 0x8260, 0x8279, 0x0316, 0x8281, 0x829A, 0x0330,
|
||||
0x829F, 0x82F1, 0x034A, 0x8340, 0x837E, 0x039D, 0x8380, 0x8396, 0x03DC,
|
||||
0x839F, 0x83B6, 0x03F3, 0x83BF, 0x83D6, 0x040B, 0x8440, 0x8460, 0x0423,
|
||||
0x8470, 0x847E, 0x0444, 0x8480, 0x8491, 0x0453, 0x849F, 0x849F, 0x1D37,
|
||||
0x84A0, 0x84A0, 0x1D39, 0x84A1, 0x84A1, 0x1D43, 0x84A2, 0x84A2, 0x1D47,
|
||||
0x84A3, 0x84A3, 0x1D4F, 0x84A4, 0x84A4, 0x1D4B, 0x84A5, 0x84A5, 0x1D53,
|
||||
0x84A6, 0x84A6, 0x1D63, 0x84A7, 0x84A7, 0x1D5B, 0x84A8, 0x84A8, 0x1D6B,
|
||||
0x84A9, 0x84A9, 0x1D73, 0x84AA, 0x84AA, 0x1D38, 0x84AB, 0x84AB, 0x1D3A,
|
||||
0x84AC, 0x84AC, 0x1D46, 0x84AD, 0x84AD, 0x1D4A, 0x84AE, 0x84AE, 0x1D52,
|
||||
0x84AF, 0x84AF, 0x1D4E, 0x84B0, 0x84B0, 0x1D5A, 0x84B1, 0x84B1, 0x1D6A,
|
||||
0x84B2, 0x84B2, 0x1D62, 0x84B3, 0x84B3, 0x1D72, 0x84B4, 0x84B4, 0x1D82,
|
||||
0x84B5, 0x84B5, 0x1D57, 0x84B6, 0x84B6, 0x1D66, 0x84B7, 0x84B7, 0x1D5F,
|
||||
0x84B8, 0x84B8, 0x1D6E, 0x84B9, 0x84B9, 0x1D76, 0x84BA, 0x84BA, 0x1D54,
|
||||
0x84BB, 0x84BB, 0x1D67, 0x84BC, 0x84BC, 0x1D5C, 0x84BD, 0x84BD, 0x1D6F,
|
||||
0x84BE, 0x84BE, 0x1D79, 0x8740, 0x875D, 0x1D83, 0x875F, 0x8760, 0x1DA1,
|
||||
0x8761, 0x8761, 0x1F66, 0x8762, 0x8762, 0x1DA4, 0x8763, 0x8763, 0x1F68,
|
||||
0x8764, 0x8764, 0x1DA6, 0x8765, 0x8765, 0x1F6A, 0x8766, 0x8767, 0x1DA8,
|
||||
0x8768, 0x8768, 0x1F6C, 0x8769, 0x876A, 0x1DAB, 0x876B, 0x876B, 0x1F6B,
|
||||
0x876C, 0x876D, 0x1DAE, 0x876E, 0x876E, 0x1F6F, 0x876F, 0x8775, 0x1DB1,
|
||||
0x877E, 0x877E, 0x2083, 0x8780, 0x8783, 0x1DB8, 0x8784, 0x8784, 0x1F77,
|
||||
0x8785, 0x878F, 0x1DBD, 0x8790, 0x8790, 0x02FA, 0x8791, 0x8791, 0x02F9,
|
||||
0x8792, 0x8792, 0x0301, 0x8793, 0x8799, 0x1DC8, 0x879A, 0x879A, 0x0300,
|
||||
0x879B, 0x879C, 0x1DCF, 0x889F, 0x88FC, 0x0465, 0x8940, 0x897E, 0x04C3,
|
||||
0x8980, 0x89FC, 0x0502, 0x8A40, 0x8A7E, 0x057F, 0x8A80, 0x8AFC, 0x05BE,
|
||||
0x8B40, 0x8B7E, 0x063B, 0x8B80, 0x8BFC, 0x067A, 0x8C40, 0x8C7E, 0x06F7,
|
||||
0x8C80, 0x8CFC, 0x0736, 0x8D40, 0x8D7E, 0x07B3, 0x8D80, 0x8DFC, 0x07F2,
|
||||
0x8E40, 0x8E7E, 0x086F, 0x8E80, 0x8EFC, 0x08AE, 0x8F40, 0x8F7E, 0x092B,
|
||||
0x8F80, 0x8FFC, 0x096A, 0x9040, 0x907E, 0x09E7, 0x9080, 0x90FC, 0x0A26,
|
||||
0x9140, 0x917E, 0x0AA3, 0x9180, 0x91FC, 0x0AE2, 0x9240, 0x927E, 0x0B5F,
|
||||
0x9280, 0x92FC, 0x0B9E, 0x9340, 0x937E, 0x0C1B, 0x9380, 0x93FC, 0x0C5A,
|
||||
0x9440, 0x947E, 0x0CD7, 0x9480, 0x94FC, 0x0D16, 0x9540, 0x957E, 0x0D93,
|
||||
0x9580, 0x95FC, 0x0DD2, 0x9640, 0x967E, 0x0E4F, 0x9680, 0x96FC, 0x0E8E,
|
||||
0x9740, 0x977E, 0x0F0B, 0x9780, 0x97FC, 0x0F4A, 0x9840, 0x9872, 0x0FC7,
|
||||
0x989F, 0x98FC, 0x0FFA, 0x9940, 0x997E, 0x1058, 0x9980, 0x99FC, 0x1097,
|
||||
0x9A40, 0x9A7E, 0x1114, 0x9A80, 0x9AFC, 0x1153, 0x9B40, 0x9B7E, 0x11D0,
|
||||
0x9B80, 0x9BFC, 0x120F, 0x9C40, 0x9C7E, 0x128C, 0x9C80, 0x9CFC, 0x12CB,
|
||||
0x9D40, 0x9D7E, 0x1348, 0x9D80, 0x9DFC, 0x1387, 0x9E40, 0x9E7E, 0x1404,
|
||||
0x9E80, 0x9EFC, 0x1443, 0x9F40, 0x9F7E, 0x14C0, 0x9F80, 0x9FFC, 0x14FF,
|
||||
0xE040, 0xE07E, 0x157C, 0xE080, 0xE0FC, 0x15BB, 0xE140, 0xE17E, 0x1638,
|
||||
0xE180, 0xE1FC, 0x1677, 0xE240, 0xE27E, 0x16F4, 0xE280, 0xE2FC, 0x1733,
|
||||
0xE340, 0xE37E, 0x17B0, 0xE380, 0xE3FC, 0x17EF, 0xE440, 0xE47E, 0x186C,
|
||||
0xE480, 0xE4FC, 0x18AB, 0xE540, 0xE57E, 0x1928, 0xE580, 0xE5FC, 0x1967,
|
||||
0xE640, 0xE67E, 0x19E4, 0xE680, 0xE6FC, 0x1A23, 0xE740, 0xE77E, 0x1AA0,
|
||||
0xE780, 0xE7FC, 0x1ADF, 0xE840, 0xE87E, 0x1B5C, 0xE880, 0xE8FC, 0x1B9B,
|
||||
0xE940, 0xE97E, 0x1C18, 0xE980, 0xE9FC, 0x1C57, 0xEA40, 0xEA7E, 0x1CD4,
|
||||
0xEA80, 0xEAA2, 0x1D13, 0xEAA3, 0xEAA4, 0x205C, 0xED40, 0xED7E, 0x20A7,
|
||||
0xED80, 0xEDB3, 0x20E6, 0xEDB4, 0xEDB4, 0x07C9, 0xEDB5, 0xEDFC, 0x211A,
|
||||
0xEE40, 0xEE7E, 0x2162, 0xEE80, 0xEEEC, 0x21A1, 0xEEEF, 0xEEF8, 0x1F9C,
|
||||
0xEEF9, 0xEEF9, 0x02EF, 0xEEFA, 0xEEFC, 0x1F45, 0xFA40, 0xFA49, 0x1F9C,
|
||||
0xFA4A, 0xFA53, 0x1D97, 0xFA54, 0xFA54, 0x02EF, 0xFA55, 0xFA57, 0x1F45,
|
||||
0xFA58, 0xFA58, 0x1DC2, 0xFA59, 0xFA59, 0x1DBA, 0xFA5A, 0xFA5A, 0x1F77,
|
||||
0xFA5B, 0xFA5B, 0x0300, 0xFA5C, 0xFA7E, 0x20A7, 0xFA80, 0xFACF, 0x20CA,
|
||||
0xFAD0, 0xFAD0, 0x07C9, 0xFAD1, 0xFAFC, 0x211A, 0xFB40, 0xFB7E, 0x2146,
|
||||
0xFB80, 0xFBFC, 0x2185, 0xFC40, 0xFC4B, 0x2202,
|
||||
};
|
@ -0,0 +1,36 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/Japan1/cmaps_japan1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_90msp_RKSJ_V_2[78 * 3] = {
|
||||
0x8141, 0x8142, 0x1ECF, 0x8143, 0x8143, 0x204C, 0x8144, 0x8144, 0x2052,
|
||||
0x8150, 0x8151, 0x1ED1, 0x815B, 0x815D, 0x1ED3, 0x8160, 0x8164, 0x1ED6,
|
||||
0x8169, 0x817A, 0x1EDB, 0x8181, 0x8181, 0x1EED, 0x81A8, 0x81A8, 0x02E3,
|
||||
0x81A9, 0x81A9, 0x02E2, 0x81AA, 0x81AB, 0x02E0, 0x81AC, 0x81AC, 0x204E,
|
||||
0x829F, 0x829F, 0x1EEE, 0x82A1, 0x82A1, 0x1EEF, 0x82A3, 0x82A3, 0x1EF0,
|
||||
0x82A5, 0x82A5, 0x1EF1, 0x82A7, 0x82A7, 0x1EF2, 0x82C1, 0x82C1, 0x1EF3,
|
||||
0x82E1, 0x82E1, 0x1EF4, 0x82E3, 0x82E3, 0x1EF5, 0x82E5, 0x82E5, 0x1EF6,
|
||||
0x82EC, 0x82EC, 0x1EF7, 0x8340, 0x8340, 0x1EF8, 0x8342, 0x8342, 0x1EF9,
|
||||
0x8344, 0x8344, 0x1EFA, 0x8346, 0x8346, 0x1EFB, 0x8348, 0x8348, 0x1EFC,
|
||||
0x8362, 0x8362, 0x1EFD, 0x8383, 0x8383, 0x1EFE, 0x8385, 0x8385, 0x1EFF,
|
||||
0x8387, 0x8387, 0x1F00, 0x838E, 0x838E, 0x1F01, 0x8395, 0x8396, 0x1F02,
|
||||
0x849F, 0x849F, 0x1D39, 0x84A0, 0x84A0, 0x1D37, 0x84A1, 0x84A1, 0x1D47,
|
||||
0x84A2, 0x84A2, 0x1D4F, 0x84A3, 0x84A3, 0x1D4B, 0x84A4, 0x84A4, 0x1D43,
|
||||
0x84A5, 0x84A5, 0x1D63, 0x84A6, 0x84A6, 0x1D5B, 0x84A7, 0x84A7, 0x1D6B,
|
||||
0x84A8, 0x84A8, 0x1D53, 0x84A9, 0x84A9, 0x1D73, 0x84AA, 0x84AA, 0x1D3A,
|
||||
0x84AB, 0x84AB, 0x1D38, 0x84AC, 0x84AC, 0x1D4A, 0x84AD, 0x84AD, 0x1D52,
|
||||
0x84AE, 0x84AE, 0x1D4E, 0x84AF, 0x84AF, 0x1D46, 0x84B0, 0x84B0, 0x1D6A,
|
||||
0x84B1, 0x84B1, 0x1D62, 0x84B2, 0x84B2, 0x1D72, 0x84B3, 0x84B3, 0x1D5A,
|
||||
0x84B4, 0x84B4, 0x1D82, 0x84B5, 0x84B5, 0x1D66, 0x84B6, 0x84B6, 0x1D5F,
|
||||
0x84B7, 0x84B7, 0x1D6E, 0x84B8, 0x84B8, 0x1D57, 0x84B9, 0x84B9, 0x1D79,
|
||||
0x84BA, 0x84BA, 0x1D67, 0x84BB, 0x84BB, 0x1D5C, 0x84BC, 0x84BC, 0x1D6F,
|
||||
0x84BD, 0x84BD, 0x1D54, 0x84BE, 0x84BE, 0x1D76, 0x875F, 0x8760, 0x1F04,
|
||||
0x8761, 0x8761, 0x2089, 0x8762, 0x8762, 0x1F07, 0x8763, 0x8763, 0x2093,
|
||||
0x8764, 0x8764, 0x1F09, 0x8765, 0x8765, 0x2092, 0x8766, 0x8767, 0x1F0B,
|
||||
0x8768, 0x8768, 0x2098, 0x8769, 0x876A, 0x1F0E, 0x876B, 0x876B, 0x209C,
|
||||
0x876C, 0x876D, 0x1F11, 0x876E, 0x876E, 0x209D, 0x8780, 0x8781, 0x1F14,
|
||||
};
|
@ -0,0 +1,98 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/Japan1/cmaps_japan1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_90pv_RKSJ_H_1[263 * 3] = {
|
||||
0x0020, 0x007E, 0x0001, 0x0080, 0x0080, 0x0061, 0x00A0, 0x00DF, 0x0146,
|
||||
0x00FD, 0x00FD, 0x0098, 0x00FE, 0x00FE, 0x00E4, 0x00FF, 0x00FF, 0x007C,
|
||||
0x8140, 0x817E, 0x0279, 0x8180, 0x81AC, 0x02B8, 0x81B8, 0x81BF, 0x02E5,
|
||||
0x81C8, 0x81CE, 0x02ED, 0x81DA, 0x81E8, 0x02F4, 0x81F0, 0x81F7, 0x0303,
|
||||
0x81FC, 0x81FC, 0x030B, 0x824F, 0x8258, 0x030C, 0x8260, 0x8279, 0x0316,
|
||||
0x8281, 0x829A, 0x0330, 0x829F, 0x82F1, 0x034A, 0x8340, 0x837E, 0x039D,
|
||||
0x8380, 0x8396, 0x03DC, 0x839F, 0x83B6, 0x03F3, 0x83BF, 0x83D6, 0x040B,
|
||||
0x8440, 0x8460, 0x0423, 0x8470, 0x847E, 0x0444, 0x8480, 0x8491, 0x0453,
|
||||
0x849F, 0x849F, 0x1D37, 0x84A0, 0x84A0, 0x1D39, 0x84A1, 0x84A1, 0x1D43,
|
||||
0x84A2, 0x84A2, 0x1D47, 0x84A3, 0x84A3, 0x1D4F, 0x84A4, 0x84A4, 0x1D4B,
|
||||
0x84A5, 0x84A5, 0x1D53, 0x84A6, 0x84A6, 0x1D63, 0x84A7, 0x84A7, 0x1D5B,
|
||||
0x84A8, 0x84A8, 0x1D6B, 0x84A9, 0x84A9, 0x1D73, 0x84AA, 0x84AA, 0x1D38,
|
||||
0x84AB, 0x84AB, 0x1D3A, 0x84AC, 0x84AC, 0x1D46, 0x84AD, 0x84AD, 0x1D4A,
|
||||
0x84AE, 0x84AE, 0x1D52, 0x84AF, 0x84AF, 0x1D4E, 0x84B0, 0x84B0, 0x1D5A,
|
||||
0x84B1, 0x84B1, 0x1D6A, 0x84B2, 0x84B2, 0x1D62, 0x84B3, 0x84B3, 0x1D72,
|
||||
0x84B4, 0x84B4, 0x1D82, 0x84B5, 0x84B5, 0x1D57, 0x84B6, 0x84B6, 0x1D66,
|
||||
0x84B7, 0x84B7, 0x1D5F, 0x84B8, 0x84B8, 0x1D6E, 0x84B9, 0x84B9, 0x1D76,
|
||||
0x84BA, 0x84BA, 0x1D54, 0x84BB, 0x84BB, 0x1D67, 0x84BC, 0x84BC, 0x1D5C,
|
||||
0x84BD, 0x84BD, 0x1D6F, 0x84BE, 0x84BE, 0x1D79, 0x8540, 0x8553, 0x1D83,
|
||||
0x855E, 0x8571, 0x1F87, 0x857C, 0x857E, 0x205E, 0x8580, 0x8585, 0x2061,
|
||||
0x8591, 0x859A, 0x1F7D, 0x859F, 0x85A8, 0x1D97, 0x85A9, 0x85AA, 0x2021,
|
||||
0x85AB, 0x85AD, 0x2067, 0x85B3, 0x85BC, 0x1F9C, 0x85BD, 0x85C1, 0x206A,
|
||||
0x85DB, 0x85F4, 0x1FB0, 0x8640, 0x8640, 0x1DB1, 0x8641, 0x8641, 0x1FFA,
|
||||
0x8642, 0x8642, 0x1DB2, 0x8643, 0x8643, 0x1F54, 0x8644, 0x8644, 0x1F56,
|
||||
0x8645, 0x8645, 0x206F, 0x8646, 0x8646, 0x1DB7, 0x8647, 0x8647, 0x1F57,
|
||||
0x8648, 0x8648, 0x1DB3, 0x8649, 0x8649, 0x1F55, 0x864A, 0x864A, 0x1DB4,
|
||||
0x864B, 0x864B, 0x2070, 0x864C, 0x864D, 0x1DB5, 0x864E, 0x864E, 0x1F65,
|
||||
0x864F, 0x8655, 0x1F58, 0x8656, 0x8656, 0x2071, 0x8657, 0x8657, 0x1F64,
|
||||
0x8658, 0x8659, 0x1F62, 0x865A, 0x865C, 0x1F5F, 0x865D, 0x865D, 0x2072,
|
||||
0x869B, 0x869D, 0x1DBA, 0x869E, 0x869E, 0x2073, 0x869F, 0x869F, 0x1F52,
|
||||
0x86A0, 0x86A1, 0x1F50, 0x86A2, 0x86A2, 0x1F53, 0x86A3, 0x86A3, 0x2013,
|
||||
0x86A4, 0x86A4, 0x2015, 0x86A5, 0x86A5, 0x2014, 0x86A6, 0x86A6, 0x2016,
|
||||
0x86B3, 0x86B3, 0x1F7A, 0x86B4, 0x86B4, 0x1F78, 0x86B5, 0x86B5, 0x2074,
|
||||
0x86C7, 0x86CA, 0x201B, 0x86CB, 0x86CE, 0x2075, 0x86CF, 0x86CF, 0x1F4E,
|
||||
0x86D0, 0x86D0, 0x1F4D, 0x86D1, 0x86D1, 0x1F4C, 0x86D2, 0x86D2, 0x1F4B,
|
||||
0x86D3, 0x86D6, 0x200E, 0x8740, 0x8746, 0x2005, 0x8747, 0x8747, 0x1FD6,
|
||||
0x8748, 0x8748, 0x200C, 0x8749, 0x8749, 0x1FD1, 0x874A, 0x874A, 0x1FCA,
|
||||
0x874B, 0x874B, 0x1DC4, 0x874C, 0x874C, 0x1FD7, 0x874D, 0x874D, 0x1DC2,
|
||||
0x874E, 0x874E, 0x1FD2, 0x874F, 0x874F, 0x1FCD, 0x8750, 0x8750, 0x1DC3,
|
||||
0x8751, 0x8751, 0x1FD5, 0x8752, 0x8752, 0x1FD3, 0x8753, 0x8753, 0x1FCF,
|
||||
0x8754, 0x8754, 0x1FD4, 0x8755, 0x8755, 0x1FD0, 0x8756, 0x8757, 0x1FCB,
|
||||
0x8758, 0x8758, 0x1FCE, 0x8791, 0x8792, 0x207D, 0x8793, 0x8797, 0x1DBD,
|
||||
0x8798, 0x8798, 0x1FDA, 0x8799, 0x8799, 0x1FE5, 0x879A, 0x879A, 0x207F,
|
||||
0x879B, 0x879B, 0x1FDE, 0x879C, 0x879C, 0x1FFF, 0x879D, 0x879D, 0x2080,
|
||||
0x879E, 0x879E, 0x201F, 0x879F, 0x879F, 0x1DA1, 0x87A0, 0x87A0, 0x1F66,
|
||||
0x87A1, 0x87A1, 0x1DA4, 0x87A2, 0x87A2, 0x1DA2, 0x87A3, 0x87A3, 0x1F67,
|
||||
0x87A4, 0x87A4, 0x1FF7, 0x87A5, 0x87A6, 0x2087, 0x87A7, 0x87A7, 0x1F6A,
|
||||
0x87A8, 0x87A8, 0x1DA8, 0x87A9, 0x87AA, 0x1F68, 0x87AB, 0x87AB, 0x1DA6,
|
||||
0x87AC, 0x87AC, 0x1DA9, 0x87AD, 0x87AD, 0x1DAF, 0x87AE, 0x87AE, 0x1F6E,
|
||||
0x87AF, 0x87AF, 0x1F6C, 0x87B0, 0x87B0, 0x1DAB, 0x87B1, 0x87B1, 0x1F6D,
|
||||
0x87B2, 0x87B2, 0x1F6B, 0x87B3, 0x87B3, 0x1DAC, 0x87B4, 0x87B4, 0x1F6F,
|
||||
0x87B5, 0x87B5, 0x1DAE, 0x87BD, 0x87BD, 0x1F70, 0x87BE, 0x87BF, 0x1F73,
|
||||
0x87C0, 0x87C1, 0x1F71, 0x87E5, 0x87E7, 0x1DC5, 0x87E8, 0x87E8, 0x2083,
|
||||
0x87FA, 0x87FA, 0x1F76, 0x87FB, 0x87FC, 0x2081, 0x8840, 0x8840, 0x1DC8,
|
||||
0x8841, 0x8842, 0x1DCD, 0x8854, 0x8855, 0x1DB8, 0x8868, 0x8868, 0x1F16,
|
||||
0x886A, 0x886D, 0x2079, 0x889F, 0x88FC, 0x0465, 0x8940, 0x897E, 0x04C3,
|
||||
0x8980, 0x89FC, 0x0502, 0x8A40, 0x8A7E, 0x057F, 0x8A80, 0x8AFC, 0x05BE,
|
||||
0x8B40, 0x8B7E, 0x063B, 0x8B80, 0x8BFC, 0x067A, 0x8C40, 0x8C7E, 0x06F7,
|
||||
0x8C80, 0x8CFC, 0x0736, 0x8D40, 0x8D7E, 0x07B3, 0x8D80, 0x8DFC, 0x07F2,
|
||||
0x8E40, 0x8E7E, 0x086F, 0x8E80, 0x8EFC, 0x08AE, 0x8F40, 0x8F7E, 0x092B,
|
||||
0x8F80, 0x8FFC, 0x096A, 0x9040, 0x907E, 0x09E7, 0x9080, 0x90FC, 0x0A26,
|
||||
0x9140, 0x917E, 0x0AA3, 0x9180, 0x91FC, 0x0AE2, 0x9240, 0x927E, 0x0B5F,
|
||||
0x9280, 0x92FC, 0x0B9E, 0x9340, 0x937E, 0x0C1B, 0x9380, 0x93FC, 0x0C5A,
|
||||
0x9440, 0x947E, 0x0CD7, 0x9480, 0x94FC, 0x0D16, 0x9540, 0x957E, 0x0D93,
|
||||
0x9580, 0x95FC, 0x0DD2, 0x9640, 0x967E, 0x0E4F, 0x9680, 0x96FC, 0x0E8E,
|
||||
0x9740, 0x977E, 0x0F0B, 0x9780, 0x97FC, 0x0F4A, 0x9840, 0x9872, 0x0FC7,
|
||||
0x989F, 0x98FC, 0x0FFA, 0x9940, 0x997E, 0x1058, 0x9980, 0x99FC, 0x1097,
|
||||
0x9A40, 0x9A7E, 0x1114, 0x9A80, 0x9AFC, 0x1153, 0x9B40, 0x9B7E, 0x11D0,
|
||||
0x9B80, 0x9BFC, 0x120F, 0x9C40, 0x9C7E, 0x128C, 0x9C80, 0x9CFC, 0x12CB,
|
||||
0x9D40, 0x9D7E, 0x1348, 0x9D80, 0x9DFC, 0x1387, 0x9E40, 0x9E7E, 0x1404,
|
||||
0x9E80, 0x9EFC, 0x1443, 0x9F40, 0x9F7E, 0x14C0, 0x9F80, 0x9FFC, 0x14FF,
|
||||
0xE040, 0xE07E, 0x157C, 0xE080, 0xE0FC, 0x15BB, 0xE140, 0xE17E, 0x1638,
|
||||
0xE180, 0xE1FC, 0x1677, 0xE240, 0xE27E, 0x16F4, 0xE280, 0xE2FC, 0x1733,
|
||||
0xE340, 0xE37E, 0x17B0, 0xE380, 0xE3FC, 0x17EF, 0xE440, 0xE47E, 0x186C,
|
||||
0xE480, 0xE4FC, 0x18AB, 0xE540, 0xE57E, 0x1928, 0xE580, 0xE5FC, 0x1967,
|
||||
0xE640, 0xE67E, 0x19E4, 0xE680, 0xE6FC, 0x1A23, 0xE740, 0xE77E, 0x1AA0,
|
||||
0xE780, 0xE7FC, 0x1ADF, 0xE840, 0xE87E, 0x1B5C, 0xE880, 0xE8FC, 0x1B9B,
|
||||
0xE940, 0xE97E, 0x1C18, 0xE980, 0xE9FC, 0x1C57, 0xEA40, 0xEA7E, 0x1CD4,
|
||||
0xEA80, 0xEAA2, 0x1D13, 0xEAA3, 0xEAA4, 0x205C, 0xEB41, 0xEB42, 0x1ECF,
|
||||
0xEB50, 0xEB51, 0x1ED1, 0xEB5B, 0xEB5D, 0x1ED3, 0xEB60, 0xEB64, 0x1ED6,
|
||||
0xEB69, 0xEB7A, 0x1EDB, 0xEB81, 0xEB81, 0x1EED, 0xEC9F, 0xEC9F, 0x1EEE,
|
||||
0xECA1, 0xECA1, 0x1EEF, 0xECA3, 0xECA3, 0x1EF0, 0xECA5, 0xECA5, 0x1EF1,
|
||||
0xECA7, 0xECA7, 0x1EF2, 0xECC1, 0xECC1, 0x1EF3, 0xECE1, 0xECE1, 0x1EF4,
|
||||
0xECE3, 0xECE3, 0x1EF5, 0xECE5, 0xECE5, 0x1EF6, 0xECEC, 0xECEC, 0x1EF7,
|
||||
0xED40, 0xED40, 0x1EF8, 0xED42, 0xED42, 0x1EF9, 0xED44, 0xED44, 0x1EFA,
|
||||
0xED46, 0xED46, 0x1EFB, 0xED48, 0xED48, 0x1EFC, 0xED62, 0xED62, 0x1EFD,
|
||||
0xED83, 0xED83, 0x1EFE, 0xED85, 0xED85, 0x1EFF, 0xED87, 0xED87, 0x1F00,
|
||||
0xED8E, 0xED8E, 0x1F01, 0xED95, 0xED96, 0x1F02,
|
||||
};
|
222
modules/pdfium/pdfium/core/fpdfapi/cmaps/Japan1/Add-RKSJ-H_1.cpp
Normal file
222
modules/pdfium/pdfium/core/fpdfapi/cmaps/Japan1/Add-RKSJ-H_1.cpp
Normal file
@ -0,0 +1,222 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/Japan1/cmaps_japan1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_Add_RKSJ_H_1[635 * 3] = {
|
||||
0x0020, 0x007E, 0x00E7, 0x00A0, 0x00DF, 0x0146, 0x8140, 0x817E, 0x0279,
|
||||
0x8180, 0x81AC, 0x02B8, 0x81B8, 0x81BF, 0x02E5, 0x81C8, 0x81CE, 0x02ED,
|
||||
0x81DA, 0x81E8, 0x02F4, 0x81F0, 0x81F7, 0x0303, 0x81FC, 0x81FC, 0x030B,
|
||||
0x824F, 0x8258, 0x030C, 0x8260, 0x8279, 0x0316, 0x8281, 0x829A, 0x0330,
|
||||
0x829F, 0x82F1, 0x034A, 0x82F2, 0x82F4, 0x1F16, 0x8340, 0x837E, 0x039D,
|
||||
0x8380, 0x8396, 0x03DC, 0x839F, 0x83B6, 0x03F3, 0x83BF, 0x83D6, 0x040B,
|
||||
0x8440, 0x8460, 0x0423, 0x8470, 0x847E, 0x0444, 0x8480, 0x8491, 0x0453,
|
||||
0x849F, 0x849F, 0x1D37, 0x84A0, 0x84A0, 0x1D39, 0x84A1, 0x84A1, 0x1D43,
|
||||
0x84A2, 0x84A2, 0x1D47, 0x84A3, 0x84A3, 0x1D4F, 0x84A4, 0x84A4, 0x1D4B,
|
||||
0x84A5, 0x84A5, 0x1D53, 0x84A6, 0x84A6, 0x1D63, 0x84A7, 0x84A7, 0x1D5B,
|
||||
0x84A8, 0x84A8, 0x1D6B, 0x84A9, 0x84A9, 0x1D73, 0x84AA, 0x84AA, 0x1D38,
|
||||
0x84AB, 0x84AB, 0x1D3A, 0x84AC, 0x84AC, 0x1D46, 0x84AD, 0x84AD, 0x1D4A,
|
||||
0x84AE, 0x84AE, 0x1D52, 0x84AF, 0x84AF, 0x1D4E, 0x84B0, 0x84B0, 0x1D5A,
|
||||
0x84B1, 0x84B1, 0x1D6A, 0x84B2, 0x84B2, 0x1D62, 0x84B3, 0x84B3, 0x1D72,
|
||||
0x84B4, 0x84B4, 0x1D82, 0x84B5, 0x84B5, 0x1D57, 0x84B6, 0x84B6, 0x1D66,
|
||||
0x84B7, 0x84B7, 0x1D5F, 0x84B8, 0x84B8, 0x1D6E, 0x84B9, 0x84B9, 0x1D76,
|
||||
0x84BA, 0x84BA, 0x1D54, 0x84BB, 0x84BB, 0x1D67, 0x84BC, 0x84BC, 0x1D5C,
|
||||
0x84BD, 0x84BD, 0x1D6F, 0x84BE, 0x84BE, 0x1D79, 0x889F, 0x889F, 0x0465,
|
||||
0x88A0, 0x88A0, 0x1DD1, 0x88A1, 0x88AF, 0x0467, 0x88B0, 0x88B0, 0x1F19,
|
||||
0x88B1, 0x88B8, 0x0477, 0x88B9, 0x88B9, 0x1DD2, 0x88BA, 0x88EB, 0x0480,
|
||||
0x88EC, 0x88EC, 0x1DD3, 0x88ED, 0x88EE, 0x04B3, 0x88EF, 0x88EF, 0x1F1A,
|
||||
0x88F0, 0x88F0, 0x04B6, 0x88F1, 0x88F1, 0x1DD4, 0x88F2, 0x88F9, 0x04B8,
|
||||
0x88FA, 0x88FA, 0x1DD5, 0x88FB, 0x88FC, 0x04C1, 0x8940, 0x8948, 0x04C3,
|
||||
0x8949, 0x8949, 0x1DD6, 0x894A, 0x8951, 0x04CD, 0x8952, 0x8952, 0x1F1B,
|
||||
0x8953, 0x8953, 0x04D6, 0x8954, 0x8954, 0x1DD7, 0x8955, 0x8957, 0x04D8,
|
||||
0x8958, 0x8958, 0x1F1C, 0x8959, 0x895B, 0x04DC, 0x895C, 0x895C, 0x1DDA,
|
||||
0x895D, 0x8960, 0x04E0, 0x8961, 0x8961, 0x1DDB, 0x8962, 0x897E, 0x04E5,
|
||||
0x8980, 0x898A, 0x0502, 0x898B, 0x898B, 0x1DDC, 0x898C, 0x89A5, 0x050E,
|
||||
0x89A6, 0x89A6, 0x1DDD, 0x89A7, 0x89A7, 0x0529, 0x89A8, 0x89A8, 0x1DDE,
|
||||
0x89A9, 0x89DD, 0x052B, 0x89DE, 0x89DE, 0x1DDF, 0x89DF, 0x89E4, 0x0561,
|
||||
0x89E5, 0x89E5, 0x1F1D, 0x89E6, 0x89F7, 0x0568, 0x89F8, 0x89F8, 0x1DE0,
|
||||
0x89F9, 0x89FC, 0x057B, 0x8A40, 0x8A40, 0x057F, 0x8A41, 0x8A41, 0x1DE2,
|
||||
0x8A42, 0x8A7E, 0x0581, 0x8A80, 0x8A8A, 0x05BE, 0x8A8B, 0x8A8B, 0x1DE4,
|
||||
0x8A8C, 0x8A92, 0x05CA, 0x8A93, 0x8A93, 0x1DE5, 0x8A94, 0x8A99, 0x05D2,
|
||||
0x8A9A, 0x8A9A, 0x1DE6, 0x8A9B, 0x8ABF, 0x05D9, 0x8AC0, 0x8AC0, 0x1DE7,
|
||||
0x8AC1, 0x8ACA, 0x05FF, 0x8ACB, 0x8ACB, 0x1DE8, 0x8ACC, 0x8AE2, 0x060A,
|
||||
0x8AE3, 0x8AE3, 0x1DE9, 0x8AE4, 0x8AFC, 0x0622, 0x8B40, 0x8B49, 0x063B,
|
||||
0x8B4A, 0x8B4A, 0x1DEA, 0x8B4B, 0x8B5E, 0x0646, 0x8B5F, 0x8B5F, 0x1DEB,
|
||||
0x8B60, 0x8B7E, 0x065B, 0x8B80, 0x8B81, 0x067A, 0x8B82, 0x8B82, 0x1F1E,
|
||||
0x8B83, 0x8B87, 0x067D, 0x8B88, 0x8B88, 0x1F1F, 0x8B89, 0x8B9F, 0x0683,
|
||||
0x8BA0, 0x8BA0, 0x1DEC, 0x8BA1, 0x8BA7, 0x069B, 0x8BA8, 0x8BA8, 0x1DED,
|
||||
0x8BA9, 0x8BBF, 0x06A3, 0x8BC0, 0x8BC0, 0x1F20, 0x8BC1, 0x8BCC, 0x06BB,
|
||||
0x8BCD, 0x8BCD, 0x1DEE, 0x8BCE, 0x8BEA, 0x06C8, 0x8BEB, 0x8BEB, 0x1DEF,
|
||||
0x8BEC, 0x8BF1, 0x06E6, 0x8BF2, 0x8BF2, 0x1DF0, 0x8BF3, 0x8BF8, 0x06ED,
|
||||
0x8BF9, 0x8BF9, 0x1DF1, 0x8BFA, 0x8BFA, 0x06F4, 0x8BFB, 0x8BFB, 0x1DF2,
|
||||
0x8BFC, 0x8BFC, 0x06F6, 0x8C40, 0x8C55, 0x06F7, 0x8C56, 0x8C56, 0x1DF4,
|
||||
0x8C57, 0x8C70, 0x070E, 0x8C71, 0x8C71, 0x1DF7, 0x8C72, 0x8C7E, 0x0729,
|
||||
0x8C80, 0x8C90, 0x0736, 0x8C91, 0x8C91, 0x1DFA, 0x8C92, 0x8C9C, 0x0748,
|
||||
0x8C9D, 0x8C9D, 0x1F21, 0x8C9E, 0x8C9E, 0x1DFC, 0x8C9F, 0x8CB1, 0x0755,
|
||||
0x8CB2, 0x8CB2, 0x1DFD, 0x8CB3, 0x8CBE, 0x0769, 0x8CBF, 0x8CBF, 0x1DFE,
|
||||
0x8CC0, 0x8CFC, 0x0776, 0x8D40, 0x8D49, 0x07B3, 0x8D4A, 0x8D4A, 0x1DFF,
|
||||
0x8D4B, 0x8D7E, 0x07BE, 0x8D80, 0x8D8C, 0x07F2, 0x8D8D, 0x8D8D, 0x1E02,
|
||||
0x8D8E, 0x8D93, 0x0800, 0x8D94, 0x8D94, 0x1E03, 0x8D95, 0x8D98, 0x0807,
|
||||
0x8D99, 0x8D99, 0x1E04, 0x8D9A, 0x8DD0, 0x080C, 0x8DD1, 0x8DD1, 0x1E05,
|
||||
0x8DD2, 0x8DE4, 0x0844, 0x8DE5, 0x8DE5, 0x1E06, 0x8DE6, 0x8DF1, 0x0858,
|
||||
0x8DF2, 0x8DF2, 0x1E07, 0x8DF3, 0x8DFC, 0x0865, 0x8E40, 0x8E45, 0x086F,
|
||||
0x8E46, 0x8E46, 0x1E08, 0x8E47, 0x8E48, 0x0876, 0x8E49, 0x8E49, 0x1E09,
|
||||
0x8E4A, 0x8E4A, 0x0879, 0x8E4B, 0x8E4B, 0x1E0A, 0x8E4C, 0x8E57, 0x087B,
|
||||
0x8E58, 0x8E58, 0x1E0B, 0x8E59, 0x8E5F, 0x0888, 0x8E60, 0x8E60, 0x1F22,
|
||||
0x8E61, 0x8E7E, 0x0890, 0x8E80, 0x8EC5, 0x08AE, 0x8EC6, 0x8EC6, 0x1E0D,
|
||||
0x8EC7, 0x8EDA, 0x08F5, 0x8EDB, 0x8EDC, 0x1E0F, 0x8EDD, 0x8EFC, 0x090B,
|
||||
0x8F40, 0x8F49, 0x092B, 0x8F4A, 0x8F4A, 0x1E11, 0x8F4B, 0x8F54, 0x0936,
|
||||
0x8F55, 0x8F55, 0x1E12, 0x8F56, 0x8F7E, 0x0941, 0x8F80, 0x8F8B, 0x096A,
|
||||
0x8F8C, 0x8F8C, 0x1E13, 0x8F8D, 0x8F91, 0x0977, 0x8F92, 0x8F93, 0x1E15,
|
||||
0x8F94, 0x8FA2, 0x097E, 0x8FA3, 0x8FA3, 0x1E17, 0x8FA4, 0x8FB0, 0x098E,
|
||||
0x8FB1, 0x8FB1, 0x1E18, 0x8FB2, 0x8FD2, 0x099C, 0x8FD3, 0x8FD3, 0x1E1A,
|
||||
0x8FD4, 0x8FDC, 0x09BE, 0x8FDD, 0x8FDD, 0x1E1B, 0x8FDE, 0x8FE1, 0x09C8,
|
||||
0x8FE2, 0x8FE2, 0x1E1C, 0x8FE3, 0x8FFC, 0x09CD, 0x9040, 0x9048, 0x09E7,
|
||||
0x9049, 0x9049, 0x1E1D, 0x904A, 0x9077, 0x09F1, 0x9078, 0x9078, 0x1F23,
|
||||
0x9079, 0x907E, 0x0A20, 0x9080, 0x9080, 0x1E1F, 0x9081, 0x909F, 0x0A27,
|
||||
0x90A0, 0x90A0, 0x1E21, 0x90A1, 0x90E3, 0x0A47, 0x90E4, 0x90E4, 0x1E23,
|
||||
0x90E5, 0x90EE, 0x0A8B, 0x90EF, 0x90EF, 0x1E24, 0x90F0, 0x90F6, 0x0A96,
|
||||
0x90F7, 0x90F7, 0x1E26, 0x90F8, 0x90F8, 0x1F24, 0x90F9, 0x90F9, 0x0A9F,
|
||||
0x90FA, 0x90FB, 0x1F25, 0x90FC, 0x90FC, 0x0AA2, 0x9140, 0x9145, 0x0AA3,
|
||||
0x9146, 0x9146, 0x1E28, 0x9147, 0x9157, 0x0AAA, 0x9158, 0x9158, 0x1E29,
|
||||
0x9159, 0x916A, 0x0ABC, 0x916B, 0x916B, 0x1E2A, 0x916C, 0x916D, 0x0ACF,
|
||||
0x916E, 0x916E, 0x1E2B, 0x916F, 0x917D, 0x0AD2, 0x917E, 0x917E, 0x1E2C,
|
||||
0x9180, 0x9188, 0x0AE2, 0x9189, 0x9189, 0x1E2D, 0x918A, 0x91B4, 0x0AEC,
|
||||
0x91B5, 0x91B5, 0x1F27, 0x91B6, 0x91BA, 0x0B18, 0x91BB, 0x91BB, 0x1E2E,
|
||||
0x91BC, 0x91CA, 0x0B1E, 0x91CB, 0x91CB, 0x1E2F, 0x91CC, 0x91D9, 0x0B2E,
|
||||
0x91DA, 0x91DA, 0x1E30, 0x91DB, 0x91E0, 0x0B3D, 0x91E1, 0x91E1, 0x1E31,
|
||||
0x91E2, 0x91EC, 0x0B44, 0x91ED, 0x91ED, 0x1E32, 0x91EE, 0x91FA, 0x0B50,
|
||||
0x91FB, 0x91FB, 0x1E35, 0x91FC, 0x91FC, 0x0B5E, 0x9240, 0x9245, 0x0B5F,
|
||||
0x9246, 0x9246, 0x1E36, 0x9247, 0x9247, 0x0B66, 0x9248, 0x9248, 0x1E37,
|
||||
0x9249, 0x924B, 0x0B68, 0x924C, 0x924D, 0x1E39, 0x924E, 0x925B, 0x0B6D,
|
||||
0x925C, 0x925C, 0x1E3B, 0x925D, 0x927E, 0x0B7C, 0x9280, 0x928F, 0x0B9E,
|
||||
0x9290, 0x9290, 0x1E3C, 0x9291, 0x9294, 0x0BAF, 0x9295, 0x9295, 0x1E3D,
|
||||
0x9296, 0x929B, 0x0BB4, 0x929C, 0x929C, 0x1E3E, 0x929D, 0x92BA, 0x0BBB,
|
||||
0x92BB, 0x92BB, 0x1E3F, 0x92BC, 0x92C5, 0x0BDA, 0x92C6, 0x92C6, 0x1E40,
|
||||
0x92C7, 0x92C7, 0x0BE5, 0x92C8, 0x92C8, 0x1E41, 0x92C9, 0x92CC, 0x0BE7,
|
||||
0x92CD, 0x92CD, 0x1E43, 0x92CE, 0x92FC, 0x0BEC, 0x9340, 0x9340, 0x0C1B,
|
||||
0x9341, 0x9341, 0x1E44, 0x9342, 0x9345, 0x0C1D, 0x9346, 0x9346, 0x1E45,
|
||||
0x9347, 0x934C, 0x0C22, 0x934D, 0x934D, 0x1E46, 0x934E, 0x9354, 0x0C29,
|
||||
0x9355, 0x9355, 0x1E47, 0x9356, 0x935D, 0x0C31, 0x935E, 0x935E, 0x1E48,
|
||||
0x935F, 0x9366, 0x0C3A, 0x9367, 0x9367, 0x1E49, 0x9368, 0x9369, 0x0C43,
|
||||
0x936A, 0x936A, 0x1E4A, 0x936B, 0x936F, 0x0C46, 0x9370, 0x9370, 0x1F28,
|
||||
0x9371, 0x9371, 0x1E4C, 0x9372, 0x937E, 0x0C4D, 0x9380, 0x9383, 0x0C5A,
|
||||
0x9384, 0x9384, 0x1E4D, 0x9385, 0x9397, 0x0C5F, 0x9398, 0x9398, 0x1E4E,
|
||||
0x9399, 0x93BF, 0x0C73, 0x93C0, 0x93C0, 0x1E50, 0x93C1, 0x93D1, 0x0C9B,
|
||||
0x93D2, 0x93D2, 0x1E51, 0x93D3, 0x93D8, 0x0CAD, 0x93D9, 0x93D9, 0x1E53,
|
||||
0x93DA, 0x93E3, 0x0CB4, 0x93E4, 0x93E5, 0x1E56, 0x93E6, 0x93E7, 0x0CC0,
|
||||
0x93E8, 0x93E8, 0x1E58, 0x93E9, 0x93F3, 0x0CC3, 0x93F4, 0x93F4, 0x1EC0,
|
||||
0x93F5, 0x93FC, 0x0CCF, 0x9440, 0x9447, 0x0CD7, 0x9448, 0x9448, 0x1E59,
|
||||
0x9449, 0x9449, 0x1F29, 0x944A, 0x9457, 0x0CE1, 0x9458, 0x9458, 0x1E5A,
|
||||
0x9459, 0x9475, 0x0CF0, 0x9476, 0x9476, 0x1E5B, 0x9477, 0x947E, 0x0D0E,
|
||||
0x9480, 0x9486, 0x0D16, 0x9487, 0x9487, 0x1E5C, 0x9488, 0x9488, 0x0D1E,
|
||||
0x9489, 0x9489, 0x1E5D, 0x948A, 0x948C, 0x0D20, 0x948D, 0x948D, 0x1E5E,
|
||||
0x948E, 0x94A1, 0x0D24, 0x94A2, 0x94A2, 0x1E5F, 0x94A3, 0x94AB, 0x0D39,
|
||||
0x94AC, 0x94AC, 0x1E60, 0x94AD, 0x94AD, 0x0D43, 0x94AE, 0x94AE, 0x1E61,
|
||||
0x94AF, 0x94BD, 0x0D45, 0x94BE, 0x94BE, 0x1F2A, 0x94BF, 0x94D1, 0x0D55,
|
||||
0x94D2, 0x94D2, 0x1E62, 0x94D3, 0x94F2, 0x0D69, 0x94F3, 0x94F3, 0x1E64,
|
||||
0x94F4, 0x94FC, 0x0D8A, 0x9540, 0x9540, 0x0D93, 0x9541, 0x9542, 0x1E65,
|
||||
0x9543, 0x954D, 0x0D96, 0x954E, 0x954E, 0x1E67, 0x954F, 0x9550, 0x0DA2,
|
||||
0x9551, 0x9551, 0x1E68, 0x9552, 0x9553, 0x0DA5, 0x9554, 0x9554, 0x1E69,
|
||||
0x9555, 0x955E, 0x0DA8, 0x955F, 0x955F, 0x1E6A, 0x9560, 0x956C, 0x0DB3,
|
||||
0x956D, 0x956D, 0x1E6B, 0x956E, 0x957E, 0x0DC1, 0x9580, 0x95C0, 0x0DD2,
|
||||
0x95C1, 0x95C1, 0x1E6D, 0x95C2, 0x95CA, 0x0E14, 0x95CB, 0x95CB, 0x1E6E,
|
||||
0x95CC, 0x95D0, 0x0E1E, 0x95D1, 0x95D1, 0x1F2B, 0x95D2, 0x95D7, 0x0E24,
|
||||
0x95D8, 0x95D8, 0x1E6F, 0x95D9, 0x95F6, 0x0E2B, 0x95F7, 0x95F7, 0x1E70,
|
||||
0x95F8, 0x95FC, 0x0E4A, 0x9640, 0x9647, 0x0E4F, 0x9648, 0x9648, 0x1E72,
|
||||
0x9649, 0x9669, 0x0E58, 0x966A, 0x966A, 0x1E73, 0x966B, 0x967E, 0x0E7A,
|
||||
0x9680, 0x968F, 0x0E8E, 0x9690, 0x9690, 0x1E74, 0x9691, 0x9697, 0x0E9F,
|
||||
0x9698, 0x9698, 0x1F2C, 0x9699, 0x96CA, 0x0EA7, 0x96CB, 0x96CB, 0x1E75,
|
||||
0x96CC, 0x96D6, 0x0EDA, 0x96D7, 0x96D7, 0x1E76, 0x96D8, 0x96DC, 0x0EE6,
|
||||
0x96DD, 0x96DD, 0x1E77, 0x96DE, 0x96DF, 0x0EEC, 0x96E0, 0x96E0, 0x1E78,
|
||||
0x96E1, 0x96F7, 0x0EEF, 0x96F8, 0x96F8, 0x1E79, 0x96F9, 0x96F9, 0x0F07,
|
||||
0x96FA, 0x96FA, 0x1E7A, 0x96FB, 0x96FC, 0x0F09, 0x9740, 0x9750, 0x0F0B,
|
||||
0x9751, 0x9751, 0x1E7C, 0x9752, 0x976E, 0x0F1D, 0x976F, 0x976F, 0x1E7D,
|
||||
0x9770, 0x9772, 0x0F3B, 0x9773, 0x9773, 0x1E7E, 0x9774, 0x977E, 0x0F3F,
|
||||
0x9780, 0x9788, 0x0F4A, 0x9789, 0x9789, 0x1E7F, 0x978A, 0x97F7, 0x0F54,
|
||||
0x97F8, 0x97F9, 0x1E81, 0x97FA, 0x97FA, 0x1F2D, 0x97FB, 0x97FC, 0x0FC5,
|
||||
0x9840, 0x9840, 0x1E83, 0x9841, 0x984F, 0x0FC8, 0x9850, 0x9850, 0x1E84,
|
||||
0x9851, 0x9857, 0x0FD8, 0x9858, 0x9858, 0x1E85, 0x9859, 0x9872, 0x0FE0,
|
||||
0x989F, 0x98FC, 0x0FFA, 0x9940, 0x9940, 0x1058, 0x9941, 0x9941, 0x1F2E,
|
||||
0x9942, 0x995B, 0x105A, 0x995C, 0x995C, 0x1E86, 0x995D, 0x996B, 0x1075,
|
||||
0x996C, 0x996C, 0x1E89, 0x996D, 0x997E, 0x1085, 0x9980, 0x99B5, 0x1097,
|
||||
0x99B6, 0x99B6, 0x1F2F, 0x99B7, 0x99FC, 0x10CE, 0x9A40, 0x9A4E, 0x1114,
|
||||
0x9A4F, 0x9A4F, 0x1E8A, 0x9A50, 0x9A58, 0x1124, 0x9A59, 0x9A59, 0x1E8B,
|
||||
0x9A5A, 0x9A66, 0x112E, 0x9A67, 0x9A67, 0x1F30, 0x9A68, 0x9A7C, 0x113C,
|
||||
0x9A7D, 0x9A7D, 0x1E8D, 0x9A7E, 0x9A7E, 0x1152, 0x9A80, 0x9A8A, 0x1153,
|
||||
0x9A8B, 0x9A8B, 0x1E8E, 0x9A8C, 0x9A8C, 0x1F31, 0x9A8D, 0x9AC1, 0x1160,
|
||||
0x9AC2, 0x9AC2, 0x1E8F, 0x9AC3, 0x9AC3, 0x1F32, 0x9AC4, 0x9AE9, 0x1197,
|
||||
0x9AEA, 0x9AEA, 0x1F33, 0x9AEB, 0x9AFC, 0x11BE, 0x9B40, 0x9B5B, 0x11D0,
|
||||
0x9B5C, 0x9B5C, 0x1E90, 0x9B5D, 0x9B7E, 0x11ED, 0x9B80, 0x9B82, 0x120F,
|
||||
0x9B83, 0x9B83, 0x1E91, 0x9B84, 0x9B97, 0x1213, 0x9B98, 0x9B98, 0x1F34,
|
||||
0x9B99, 0x9B9F, 0x1228, 0x9BA0, 0x9BA0, 0x1E92, 0x9BA1, 0x9BFA, 0x1230,
|
||||
0x9BFB, 0x9BFC, 0x1F35, 0x9C40, 0x9C7E, 0x128C, 0x9C80, 0x9CA1, 0x12CB,
|
||||
0x9CA2, 0x9CA2, 0x1E94, 0x9CA3, 0x9CFC, 0x12EE, 0x9D40, 0x9D46, 0x1348,
|
||||
0x9D47, 0x9D47, 0x1F37, 0x9D48, 0x9D7E, 0x1350, 0x9D80, 0x9D80, 0x1E95,
|
||||
0x9D81, 0x9D8B, 0x1388, 0x9D8C, 0x9D8C, 0x1E96, 0x9D8D, 0x9DB6, 0x1394,
|
||||
0x9DB7, 0x9DB7, 0x1E97, 0x9DB8, 0x9DF7, 0x13BF, 0x9DF8, 0x9DF8, 0x1F38,
|
||||
0x9DF9, 0x9DFC, 0x1400, 0x9E40, 0x9E63, 0x1404, 0x9E64, 0x9E64, 0x1E99,
|
||||
0x9E65, 0x9E7E, 0x1429, 0x9E80, 0x9E8A, 0x1443, 0x9E8B, 0x9E8B, 0x1E9B,
|
||||
0x9E8C, 0x9EFC, 0x144F, 0x9F40, 0x9F7E, 0x14C0, 0x9F80, 0x9F80, 0x14FF,
|
||||
0x9F81, 0x9F81, 0x1F39, 0x9F82, 0x9FCD, 0x1501, 0x9FCE, 0x9FCE, 0x1E9D,
|
||||
0x9FCF, 0x9FD3, 0x154E, 0x9FD4, 0x9FD4, 0x1F3A, 0x9FD5, 0x9FF3, 0x1554,
|
||||
0x9FF4, 0x9FF4, 0x1F3B, 0x9FF5, 0x9FFC, 0x1574, 0xE040, 0xE07E, 0x157C,
|
||||
0xE080, 0xE092, 0x15BB, 0xE093, 0xE093, 0x1E9E, 0xE094, 0xE0A3, 0x15CF,
|
||||
0xE0A4, 0xE0A4, 0x1E9F, 0xE0A5, 0xE0DC, 0x15E0, 0xE0DD, 0xE0DD, 0x1EA0,
|
||||
0xE0DE, 0xE0FC, 0x1619, 0xE140, 0xE149, 0x1638, 0xE14A, 0xE14A, 0x1EA1,
|
||||
0xE14B, 0xE17E, 0x1643, 0xE180, 0xE1EC, 0x1677, 0xE1ED, 0xE1ED, 0x1EA5,
|
||||
0xE1EE, 0xE1FC, 0x16E5, 0xE240, 0xE268, 0x16F4, 0xE269, 0xE269, 0x1EA6,
|
||||
0xE26A, 0xE272, 0x171E, 0xE273, 0xE273, 0x1EA7, 0xE274, 0xE277, 0x1728,
|
||||
0xE278, 0xE278, 0x1F3C, 0xE279, 0xE27E, 0x172D, 0xE280, 0xE2B6, 0x1733,
|
||||
0xE2B7, 0xE2B7, 0x1EA8, 0xE2B8, 0xE2BD, 0x176B, 0xE2BE, 0xE2BE, 0x1F3D,
|
||||
0xE2BF, 0xE2E1, 0x1772, 0xE2E2, 0xE2E2, 0x1EA9, 0xE2E3, 0xE2EB, 0x1796,
|
||||
0xE2EC, 0xE2EC, 0x1EAA, 0xE2ED, 0xE2FC, 0x17A0, 0xE340, 0xE357, 0x17B0,
|
||||
0xE358, 0xE358, 0x1EAB, 0xE359, 0xE359, 0x17C9, 0xE35A, 0xE35A, 0x1EAC,
|
||||
0xE35B, 0xE364, 0x17CB, 0xE365, 0xE365, 0x1EAD, 0xE366, 0xE37E, 0x17D6,
|
||||
0xE380, 0xE3C6, 0x17EF, 0xE3C7, 0xE3C7, 0x1F3E, 0xE3C8, 0xE3FC, 0x1837,
|
||||
0xE440, 0xE47E, 0x186C, 0xE480, 0xE483, 0x18AB, 0xE484, 0xE484, 0x1EAF,
|
||||
0xE485, 0xE488, 0x18B0, 0xE489, 0xE489, 0x1EB0, 0xE48A, 0xE491, 0x18B5,
|
||||
0xE492, 0xE492, 0x1EB1, 0xE493, 0xE4B8, 0x18BE, 0xE4B9, 0xE4B9, 0x1EB3,
|
||||
0xE4BA, 0xE4CA, 0x18E5, 0xE4CB, 0xE4CB, 0x1F3F, 0xE4CC, 0xE4FC, 0x18F7,
|
||||
0xE540, 0xE57E, 0x1928, 0xE580, 0xE59D, 0x1967, 0xE59E, 0xE59E, 0x1F40,
|
||||
0xE59F, 0xE5B9, 0x1986, 0xE5BA, 0xE5BB, 0x1F41, 0xE5BC, 0xE5EC, 0x19A3,
|
||||
0xE5ED, 0xE5ED, 0x1EB8, 0xE5EE, 0xE5FC, 0x19D5, 0xE640, 0xE650, 0x19E4,
|
||||
0xE651, 0xE651, 0x1EB9, 0xE652, 0xE67E, 0x19F6, 0xE680, 0xE685, 0x1A23,
|
||||
0xE686, 0xE686, 0x1EBA, 0xE687, 0xE6E6, 0x1A2A, 0xE6E7, 0xE6E7, 0x1EBC,
|
||||
0xE6E8, 0xE6FC, 0x1A8B, 0xE740, 0xE76C, 0x1AA0, 0xE76D, 0xE76D, 0x1EBE,
|
||||
0xE76E, 0xE77E, 0x1ACE, 0xE780, 0xE7A6, 0x1ADF, 0xE7A7, 0xE7A7, 0x1EC1,
|
||||
0xE7A8, 0xE7BA, 0x1B07, 0xE7BB, 0xE7BB, 0x1EC2, 0xE7BC, 0xE7FC, 0x1B1B,
|
||||
0xE840, 0xE87E, 0x1B5C, 0xE880, 0xE8CE, 0x1B9B, 0xE8CF, 0xE8CF, 0x1EC7,
|
||||
0xE8D0, 0xE8FC, 0x1BEB, 0xE940, 0xE977, 0x1C18, 0xE978, 0xE978, 0x1F43,
|
||||
0xE979, 0xE97E, 0x1C51, 0xE980, 0xE9AA, 0x1C57, 0xE9AB, 0xE9AB, 0x1ECA,
|
||||
0xE9AC, 0xE9B9, 0x1C83, 0xE9BA, 0xE9BA, 0x1ECB, 0xE9BB, 0xE9CB, 0x1C92,
|
||||
0xE9CC, 0xE9CC, 0x1ECC, 0xE9CD, 0xE9FC, 0x1CA4, 0xEA40, 0xEA6F, 0x1CD4,
|
||||
0xEA70, 0xEA70, 0x1ECD, 0xEA71, 0xEA71, 0x1F44, 0xEA72, 0xEA7E, 0x1D06,
|
||||
0xEA80, 0xEA9C, 0x1D13, 0xEA9D, 0xEA9D, 0x1ECE, 0xEA9E, 0xEAA2, 0x1D31,
|
||||
0xEAA3, 0xEAA4, 0x205C, 0xEC40, 0xEC42, 0x1F45, 0xEC46, 0xEC46, 0x1F48,
|
||||
0xEC47, 0xEC47, 0x0300, 0xEC48, 0xEC48, 0x02FA, 0xEC49, 0xEC49, 0x02F9,
|
||||
0xEC4D, 0xEC57, 0x1F49, 0xEC5B, 0xEC5D, 0x1DB1, 0xEC5E, 0xEC5E, 0x1F54,
|
||||
0xEC5F, 0xEC5F, 0x1DB7, 0xEC60, 0xEC62, 0x1F55, 0xEC63, 0xEC65, 0x1DB4,
|
||||
0xEC66, 0xEC6F, 0x1F58, 0xEC70, 0xEC70, 0x0303, 0xEC71, 0xEC71, 0x1F62,
|
||||
0xEC72, 0xEC72, 0x0304, 0xEC73, 0xEC74, 0x1F63, 0xEC76, 0xEC76, 0x1F65,
|
||||
0xEC78, 0xEC78, 0x1DA4, 0xEC79, 0xEC79, 0x1DA1, 0xEC7A, 0xEC7A, 0x1F66,
|
||||
0xEC7B, 0xEC7B, 0x1DA2, 0xEC7C, 0xEC7E, 0x1F67, 0xEC80, 0xEC80, 0x1DA6,
|
||||
0xEC81, 0xEC81, 0x1F6A, 0xEC82, 0xEC82, 0x1DA8, 0xEC83, 0xEC83, 0x1DAC,
|
||||
0xEC84, 0xEC84, 0x1F6B, 0xEC85, 0xEC85, 0x1DAE, 0xEC86, 0xEC86, 0x1DAB,
|
||||
0xEC87, 0xEC88, 0x1F6C, 0xEC89, 0xEC89, 0x1DAF, 0xEC8A, 0xEC90, 0x1F6E,
|
||||
0xEC94, 0xEC99, 0x1F75, 0xEC9A, 0xEC9A, 0x1DBA, 0xEC9B, 0xEC9B, 0x1F7B,
|
||||
0xEC9E, 0xEC9E, 0x1F7C, 0xECA7, 0xECB0, 0x1F7D, 0xECB2, 0xECC5, 0x1F87,
|
||||
0xECC7, 0xECDA, 0x1D83, 0xECDB, 0xECDB, 0x1F9B, 0xECDC, 0xECE5, 0x1D97,
|
||||
0xECE9, 0xECFC, 0x1F9C, 0xED40, 0xED59, 0x1FB0, 0xED64, 0xED64, 0x1F16,
|
||||
0xED68, 0xED69, 0x1FCA, 0xED6A, 0xED6A, 0x1DC4, 0xED6B, 0xED6D, 0x1FCC,
|
||||
0xED6E, 0xED6E, 0x1DC3, 0xED6F, 0xED73, 0x1FCF, 0xED74, 0xED74, 0x1DC2,
|
||||
0xED75, 0xED78, 0x1FD4, 0xED7C, 0xED7E, 0x1FD8, 0xED80, 0xED8A, 0x1FDB,
|
||||
0xED8F, 0xED9E, 0x1FE6, 0xEF40, 0xEF41, 0x1ECF, 0xEF42, 0xEF42, 0x204C,
|
||||
0xEF43, 0xEF43, 0x2052, 0xEF44, 0xEF4D, 0x1ED1, 0xEF4E, 0xEF4E, 0x205A,
|
||||
0xEF4F, 0xEF4F, 0x2053, 0xEF50, 0xEF50, 0x2058, 0xEF51, 0xEF51, 0x2055,
|
||||
0xEF52, 0xEF63, 0x1EDB, 0xEF64, 0xEF79, 0x1EEE, 0xEF7A, 0xEF7B, 0x2048,
|
||||
0xEF8D, 0xEF90, 0x02E0, 0xEF91, 0xEF94, 0x1FF6,
|
||||
};
|
@ -0,0 +1,29 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/Japan1/cmaps_japan1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_Add_RKSJ_V_1[57 * 3] = {
|
||||
0x8141, 0x8142, 0x1ECF, 0x8143, 0x8143, 0x204C, 0x8144, 0x8144, 0x2052,
|
||||
0x8150, 0x8151, 0x1ED1, 0x815B, 0x815D, 0x1ED3, 0x8160, 0x8164, 0x1ED6,
|
||||
0x8165, 0x8165, 0x205A, 0x8166, 0x8166, 0x2053, 0x8167, 0x8167, 0x2058,
|
||||
0x8168, 0x8168, 0x2055, 0x8169, 0x817A, 0x1EDB, 0x829F, 0x829F, 0x1EEE,
|
||||
0x82A1, 0x82A1, 0x1EEF, 0x82A3, 0x82A3, 0x1EF0, 0x82A5, 0x82A5, 0x1EF1,
|
||||
0x82A7, 0x82A7, 0x1EF2, 0x82C1, 0x82C1, 0x1EF3, 0x82E1, 0x82E1, 0x1EF4,
|
||||
0x82E3, 0x82E3, 0x1EF5, 0x82E5, 0x82E5, 0x1EF6, 0x82EC, 0x82EC, 0x1EF7,
|
||||
0x82F3, 0x82F4, 0x2048, 0x8340, 0x8340, 0x1EF8, 0x8342, 0x8342, 0x1EF9,
|
||||
0x8344, 0x8344, 0x1EFA, 0x8346, 0x8346, 0x1EFB, 0x8348, 0x8348, 0x1EFC,
|
||||
0x8362, 0x8362, 0x1EFD, 0x8383, 0x8383, 0x1EFE, 0x8385, 0x8385, 0x1EFF,
|
||||
0x8387, 0x8387, 0x1F00, 0x838E, 0x838E, 0x1F01, 0x8395, 0x8396, 0x1F02,
|
||||
0xEC78, 0xEC78, 0x1F07, 0xEC79, 0xEC79, 0x1F04, 0xEC7A, 0xEC7A, 0x2089,
|
||||
0xEC7B, 0xEC7B, 0x1F05, 0xEC7C, 0xEC7C, 0x208A, 0xEC7D, 0xEC7E, 0x2093,
|
||||
0xEC80, 0xEC80, 0x1F09, 0xEC81, 0xEC81, 0x2092, 0xEC82, 0xEC82, 0x1F0B,
|
||||
0xEC83, 0xEC83, 0x1F0F, 0xEC84, 0xEC84, 0x209C, 0xEC85, 0xEC85, 0x1F11,
|
||||
0xEC86, 0xEC86, 0x1F0E, 0xEC87, 0xEC87, 0x2098, 0xEC88, 0xEC88, 0x209B,
|
||||
0xEC89, 0xEC89, 0x1F12, 0xEC8A, 0xEC8A, 0x2097, 0xEC8B, 0xEC8C, 0x209D,
|
||||
0xEC8D, 0xEC8D, 0x20A6, 0xEC8E, 0xEC8E, 0x20A5, 0xEC8F, 0xEC8F, 0x20A1,
|
||||
0xEC90, 0xEC90, 0x20A4, 0xEC95, 0xEC95, 0x2084, 0xEF92, 0xEF92, 0x208D,
|
||||
};
|
File diff suppressed because it is too large
Load Diff
50
modules/pdfium/pdfium/core/fpdfapi/cmaps/Japan1/EUC-H_1.cpp
Normal file
50
modules/pdfium/pdfium/core/fpdfapi/cmaps/Japan1/EUC-H_1.cpp
Normal file
@ -0,0 +1,50 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/Japan1/cmaps_japan1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_EUC_H_1[120 * 3] = {
|
||||
0x0020, 0x007E, 0x00E7, 0x8EA0, 0x8EDF, 0x0146, 0xA1A1, 0xA1FE, 0x0279,
|
||||
0xA2A1, 0xA2AE, 0x02D7, 0xA2BA, 0xA2C1, 0x02E5, 0xA2CA, 0xA2D0, 0x02ED,
|
||||
0xA2DC, 0xA2EA, 0x02F4, 0xA2F2, 0xA2F9, 0x0303, 0xA2FE, 0xA2FE, 0x030B,
|
||||
0xA3B0, 0xA3B9, 0x030C, 0xA3C1, 0xA3DA, 0x0316, 0xA3E1, 0xA3FA, 0x0330,
|
||||
0xA4A1, 0xA4F3, 0x034A, 0xA5A1, 0xA5F6, 0x039D, 0xA6A1, 0xA6B8, 0x03F3,
|
||||
0xA6C1, 0xA6D8, 0x040B, 0xA7A1, 0xA7C1, 0x0423, 0xA7D1, 0xA7F1, 0x0444,
|
||||
0xA8A1, 0xA8A1, 0x1D37, 0xA8A2, 0xA8A2, 0x1D39, 0xA8A3, 0xA8A3, 0x1D43,
|
||||
0xA8A4, 0xA8A4, 0x1D47, 0xA8A5, 0xA8A5, 0x1D4F, 0xA8A6, 0xA8A6, 0x1D4B,
|
||||
0xA8A7, 0xA8A7, 0x1D53, 0xA8A8, 0xA8A8, 0x1D63, 0xA8A9, 0xA8A9, 0x1D5B,
|
||||
0xA8AA, 0xA8AA, 0x1D6B, 0xA8AB, 0xA8AB, 0x1D73, 0xA8AC, 0xA8AC, 0x1D38,
|
||||
0xA8AD, 0xA8AD, 0x1D3A, 0xA8AE, 0xA8AE, 0x1D46, 0xA8AF, 0xA8AF, 0x1D4A,
|
||||
0xA8B0, 0xA8B0, 0x1D52, 0xA8B1, 0xA8B1, 0x1D4E, 0xA8B2, 0xA8B2, 0x1D5A,
|
||||
0xA8B3, 0xA8B3, 0x1D6A, 0xA8B4, 0xA8B4, 0x1D62, 0xA8B5, 0xA8B5, 0x1D72,
|
||||
0xA8B6, 0xA8B6, 0x1D82, 0xA8B7, 0xA8B7, 0x1D57, 0xA8B8, 0xA8B8, 0x1D66,
|
||||
0xA8B9, 0xA8B9, 0x1D5F, 0xA8BA, 0xA8BA, 0x1D6E, 0xA8BB, 0xA8BB, 0x1D76,
|
||||
0xA8BC, 0xA8BC, 0x1D54, 0xA8BD, 0xA8BD, 0x1D67, 0xA8BE, 0xA8BE, 0x1D5C,
|
||||
0xA8BF, 0xA8BF, 0x1D6F, 0xA8C0, 0xA8C0, 0x1D79, 0xB0A1, 0xB0FE, 0x0465,
|
||||
0xB1A1, 0xB1FE, 0x04C3, 0xB2A1, 0xB2FE, 0x0521, 0xB3A1, 0xB3FE, 0x057F,
|
||||
0xB4A1, 0xB4FE, 0x05DD, 0xB5A1, 0xB5FE, 0x063B, 0xB6A1, 0xB6FE, 0x0699,
|
||||
0xB7A1, 0xB7FE, 0x06F7, 0xB8A1, 0xB8FE, 0x0755, 0xB9A1, 0xB9FE, 0x07B3,
|
||||
0xBAA1, 0xBAFE, 0x0811, 0xBBA1, 0xBBFE, 0x086F, 0xBCA1, 0xBCFE, 0x08CD,
|
||||
0xBDA1, 0xBDFE, 0x092B, 0xBEA1, 0xBEFE, 0x0989, 0xBFA1, 0xBFFE, 0x09E7,
|
||||
0xC0A1, 0xC0FE, 0x0A45, 0xC1A1, 0xC1FE, 0x0AA3, 0xC2A1, 0xC2FE, 0x0B01,
|
||||
0xC3A1, 0xC3FE, 0x0B5F, 0xC4A1, 0xC4FE, 0x0BBD, 0xC5A1, 0xC5FE, 0x0C1B,
|
||||
0xC6A1, 0xC6FE, 0x0C79, 0xC7A1, 0xC7FE, 0x0CD7, 0xC8A1, 0xC8FE, 0x0D35,
|
||||
0xC9A1, 0xC9FE, 0x0D93, 0xCAA1, 0xCAFE, 0x0DF1, 0xCBA1, 0xCBFE, 0x0E4F,
|
||||
0xCCA1, 0xCCFE, 0x0EAD, 0xCDA1, 0xCDFE, 0x0F0B, 0xCEA1, 0xCEFE, 0x0F69,
|
||||
0xCFA1, 0xCFD3, 0x0FC7, 0xD0A1, 0xD0FE, 0x0FFA, 0xD1A1, 0xD1FE, 0x1058,
|
||||
0xD2A1, 0xD2FE, 0x10B6, 0xD3A1, 0xD3FE, 0x1114, 0xD4A1, 0xD4FE, 0x1172,
|
||||
0xD5A1, 0xD5FE, 0x11D0, 0xD6A1, 0xD6FE, 0x122E, 0xD7A1, 0xD7FE, 0x128C,
|
||||
0xD8A1, 0xD8FE, 0x12EA, 0xD9A1, 0xD9FE, 0x1348, 0xDAA1, 0xDAFE, 0x13A6,
|
||||
0xDBA1, 0xDBFE, 0x1404, 0xDCA1, 0xDCFE, 0x1462, 0xDDA1, 0xDDFE, 0x14C0,
|
||||
0xDEA1, 0xDEFE, 0x151E, 0xDFA1, 0xDFFE, 0x157C, 0xE0A1, 0xE0FE, 0x15DA,
|
||||
0xE1A1, 0xE1FE, 0x1638, 0xE2A1, 0xE2FE, 0x1696, 0xE3A1, 0xE3FE, 0x16F4,
|
||||
0xE4A1, 0xE4FE, 0x1752, 0xE5A1, 0xE5FE, 0x17B0, 0xE6A1, 0xE6FE, 0x180E,
|
||||
0xE7A1, 0xE7FE, 0x186C, 0xE8A1, 0xE8FE, 0x18CA, 0xE9A1, 0xE9FE, 0x1928,
|
||||
0xEAA1, 0xEAFE, 0x1986, 0xEBA1, 0xEBFE, 0x19E4, 0xECA1, 0xECFE, 0x1A42,
|
||||
0xEDA1, 0xEDFE, 0x1AA0, 0xEEA1, 0xEEFE, 0x1AFE, 0xEFA1, 0xEFFE, 0x1B5C,
|
||||
0xF0A1, 0xF0FE, 0x1BBA, 0xF1A1, 0xF1FE, 0x1C18, 0xF2A1, 0xF2FE, 0x1C76,
|
||||
0xF3A1, 0xF3FE, 0x1CD4, 0xF4A1, 0xF4A4, 0x1D32, 0xF4A5, 0xF4A6, 0x205C,
|
||||
};
|
19
modules/pdfium/pdfium/core/fpdfapi/cmaps/Japan1/EUC-V_1.cpp
Normal file
19
modules/pdfium/pdfium/core/fpdfapi/cmaps/Japan1/EUC-V_1.cpp
Normal file
@ -0,0 +1,19 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/Japan1/cmaps_japan1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_EUC_V_1[27 * 3] = {
|
||||
0xA1A2, 0xA1A3, 0x1ECF, 0xA1B1, 0xA1B2, 0x1ED1, 0xA1BC, 0xA1BE, 0x1ED3,
|
||||
0xA1C1, 0xA1C5, 0x1ED6, 0xA1CA, 0xA1DB, 0x1EDB, 0xA1E1, 0xA1E1, 0x1EED,
|
||||
0xA4A1, 0xA4A1, 0x1EEE, 0xA4A3, 0xA4A3, 0x1EEF, 0xA4A5, 0xA4A5, 0x1EF0,
|
||||
0xA4A7, 0xA4A7, 0x1EF1, 0xA4A9, 0xA4A9, 0x1EF2, 0xA4C3, 0xA4C3, 0x1EF3,
|
||||
0xA4E3, 0xA4E3, 0x1EF4, 0xA4E5, 0xA4E5, 0x1EF5, 0xA4E7, 0xA4E7, 0x1EF6,
|
||||
0xA4EE, 0xA4EE, 0x1EF7, 0xA5A1, 0xA5A1, 0x1EF8, 0xA5A3, 0xA5A3, 0x1EF9,
|
||||
0xA5A5, 0xA5A5, 0x1EFA, 0xA5A7, 0xA5A7, 0x1EFB, 0xA5A9, 0xA5A9, 0x1EFC,
|
||||
0xA5C3, 0xA5C3, 0x1EFD, 0xA5E3, 0xA5E3, 0x1EFE, 0xA5E5, 0xA5E5, 0x1EFF,
|
||||
0xA5E7, 0xA5E7, 0x1F00, 0xA5EE, 0xA5EE, 0x1F01, 0xA5F5, 0xA5F6, 0x1F02,
|
||||
};
|
232
modules/pdfium/pdfium/core/fpdfapi/cmaps/Japan1/Ext-RKSJ-H_2.cpp
Normal file
232
modules/pdfium/pdfium/core/fpdfapi/cmaps/Japan1/Ext-RKSJ-H_2.cpp
Normal file
@ -0,0 +1,232 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/Japan1/cmaps_japan1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_Ext_RKSJ_H_2[665 * 3] = {
|
||||
0x0020, 0x007E, 0x00E7, 0x00A0, 0x00DF, 0x0146, 0x8140, 0x817E, 0x0279,
|
||||
0x8180, 0x8188, 0x02B8, 0x8189, 0x8189, 0x1D36, 0x818A, 0x81AC, 0x02C2,
|
||||
0x824F, 0x8258, 0x030C, 0x8260, 0x8279, 0x0316, 0x8281, 0x829A, 0x0330,
|
||||
0x829F, 0x82F1, 0x034A, 0x8340, 0x837E, 0x039D, 0x8380, 0x8396, 0x03DC,
|
||||
0x839F, 0x83B6, 0x03F3, 0x83BF, 0x83D6, 0x040B, 0x8440, 0x8460, 0x0423,
|
||||
0x8470, 0x847E, 0x0444, 0x8480, 0x8491, 0x0453, 0x8540, 0x857E, 0x00E8,
|
||||
0x8580, 0x8580, 0x0186, 0x8581, 0x859E, 0x0128, 0x859F, 0x85DD, 0x0147,
|
||||
0x85DE, 0x85FC, 0x0187, 0x8640, 0x867E, 0x01A6, 0x8680, 0x8691, 0x01E5,
|
||||
0x8692, 0x8692, 0x0127, 0x8693, 0x869E, 0x01F7, 0x86A2, 0x86ED, 0x1D37,
|
||||
0x8740, 0x875D, 0x1D83, 0x875F, 0x8775, 0x1DA1, 0x877E, 0x877E, 0x2083,
|
||||
0x8780, 0x878F, 0x1DB8, 0x8790, 0x8790, 0x02FA, 0x8791, 0x8791, 0x02F9,
|
||||
0x8792, 0x8792, 0x0301, 0x8793, 0x8799, 0x1DC8, 0x879A, 0x879A, 0x0300,
|
||||
0x879B, 0x879C, 0x1DCF, 0x889F, 0x889F, 0x0465, 0x88A0, 0x88A0, 0x1DD1,
|
||||
0x88A1, 0x88B0, 0x0467, 0x88B1, 0x88B1, 0x1CA2, 0x88B2, 0x88B8, 0x0478,
|
||||
0x88B9, 0x88B9, 0x1DD2, 0x88BA, 0x88EB, 0x0480, 0x88EC, 0x88EC, 0x1DD3,
|
||||
0x88ED, 0x88F0, 0x04B3, 0x88F1, 0x88F1, 0x1DD4, 0x88F2, 0x88F9, 0x04B8,
|
||||
0x88FA, 0x88FA, 0x1DD5, 0x88FB, 0x88FC, 0x04C1, 0x8940, 0x8948, 0x04C3,
|
||||
0x8949, 0x8949, 0x1DD6, 0x894A, 0x8953, 0x04CD, 0x8954, 0x8954, 0x1DD7,
|
||||
0x8955, 0x8957, 0x04D8, 0x8958, 0x8958, 0x1DD8, 0x8959, 0x895A, 0x04DC,
|
||||
0x895B, 0x895C, 0x1DD9, 0x895D, 0x8960, 0x04E0, 0x8961, 0x8961, 0x1DDB,
|
||||
0x8962, 0x897E, 0x04E5, 0x8980, 0x898A, 0x0502, 0x898B, 0x898B, 0x1DDC,
|
||||
0x898C, 0x89A5, 0x050E, 0x89A6, 0x89A6, 0x1DDD, 0x89A7, 0x89A7, 0x1CC9,
|
||||
0x89A8, 0x89A8, 0x1DDE, 0x89A9, 0x89DD, 0x052B, 0x89DE, 0x89DE, 0x1DDF,
|
||||
0x89DF, 0x89F7, 0x0561, 0x89F8, 0x89F8, 0x1DE0, 0x89F9, 0x89FA, 0x057B,
|
||||
0x89FB, 0x89FB, 0x1DE1, 0x89FC, 0x89FC, 0x057E, 0x8A40, 0x8A40, 0x057F,
|
||||
0x8A41, 0x8A41, 0x1DE2, 0x8A42, 0x8A60, 0x0581, 0x8A61, 0x8A61, 0x1961,
|
||||
0x8A62, 0x8A67, 0x05A1, 0x8A68, 0x8A68, 0x139F, 0x8A69, 0x8A7E, 0x05A8,
|
||||
0x8A80, 0x8A84, 0x05BE, 0x8A85, 0x8A85, 0x1DE3, 0x8A86, 0x8A8A, 0x05C4,
|
||||
0x8A8B, 0x8A8B, 0x1DE4, 0x8A8C, 0x8A92, 0x05CA, 0x8A93, 0x8A93, 0x1DE5,
|
||||
0x8A94, 0x8A95, 0x05D2, 0x8A96, 0x8A96, 0x1731, 0x8A97, 0x8A99, 0x05D5,
|
||||
0x8A9A, 0x8A9A, 0x1DE6, 0x8A9B, 0x8ABF, 0x05D9, 0x8AC0, 0x8AC0, 0x1DE7,
|
||||
0x8AC1, 0x8AC1, 0x1572, 0x8AC2, 0x8ACA, 0x0600, 0x8ACB, 0x8ACB, 0x1DE8,
|
||||
0x8ACC, 0x8ACF, 0x060A, 0x8AD0, 0x8AD0, 0x1A20, 0x8AD1, 0x8AE2, 0x060F,
|
||||
0x8AE3, 0x8AE3, 0x1DE9, 0x8AE4, 0x8AFC, 0x0622, 0x8B40, 0x8B49, 0x063B,
|
||||
0x8B4A, 0x8B4A, 0x1DEA, 0x8B4B, 0x8B5E, 0x0646, 0x8B5F, 0x8B5F, 0x1DEB,
|
||||
0x8B60, 0x8B7E, 0x065B, 0x8B80, 0x8B9F, 0x067A, 0x8BA0, 0x8BA0, 0x1DEC,
|
||||
0x8BA1, 0x8BA7, 0x069B, 0x8BA8, 0x8BA8, 0x1DED, 0x8BA9, 0x8BC3, 0x06A3,
|
||||
0x8BC4, 0x8BC4, 0x1D32, 0x8BC5, 0x8BCC, 0x06BF, 0x8BCD, 0x8BCD, 0x1DEE,
|
||||
0x8BCE, 0x8BEA, 0x06C8, 0x8BEB, 0x8BEB, 0x1DEF, 0x8BEC, 0x8BF1, 0x06E6,
|
||||
0x8BF2, 0x8BF2, 0x1DF0, 0x8BF3, 0x8BF8, 0x06ED, 0x8BF9, 0x8BF9, 0x1DF1,
|
||||
0x8BFA, 0x8BFA, 0x06F4, 0x8BFB, 0x8BFB, 0x1DF2, 0x8BFC, 0x8BFC, 0x06F6,
|
||||
0x8C40, 0x8C42, 0x06F7, 0x8C43, 0x8C43, 0x1DF3, 0x8C44, 0x8C55, 0x06FB,
|
||||
0x8C56, 0x8C56, 0x1DF4, 0x8C57, 0x8C63, 0x070E, 0x8C64, 0x8C64, 0x1DF5,
|
||||
0x8C65, 0x8C6C, 0x071C, 0x8C6D, 0x8C6D, 0x1DF6, 0x8C6E, 0x8C70, 0x0725,
|
||||
0x8C71, 0x8C71, 0x1DF7, 0x8C72, 0x8C73, 0x0729, 0x8C74, 0x8C74, 0x1DF8,
|
||||
0x8C75, 0x8C79, 0x072C, 0x8C7A, 0x8C7A, 0x1C0D, 0x8C7B, 0x8C7E, 0x0732,
|
||||
0x8C80, 0x8C83, 0x0736, 0x8C84, 0x8C84, 0x1DF9, 0x8C85, 0x8C90, 0x073B,
|
||||
0x8C91, 0x8C91, 0x1DFA, 0x8C92, 0x8C98, 0x0748, 0x8C99, 0x8C99, 0x1DFB,
|
||||
0x8C9A, 0x8C9D, 0x0750, 0x8C9E, 0x8C9E, 0x1DFC, 0x8C9F, 0x8CB1, 0x0755,
|
||||
0x8CB2, 0x8CB2, 0x1DFD, 0x8CB3, 0x8CBE, 0x0769, 0x8CBF, 0x8CBF, 0x1DFE,
|
||||
0x8CC0, 0x8CFC, 0x0776, 0x8D40, 0x8D49, 0x07B3, 0x8D4A, 0x8D4A, 0x1DFF,
|
||||
0x8D4B, 0x8D55, 0x07BE, 0x8D56, 0x8D56, 0x1E00, 0x8D57, 0x8D60, 0x07CA,
|
||||
0x8D61, 0x8D61, 0x1E01, 0x8D62, 0x8D7A, 0x07D5, 0x8D7B, 0x8D7B, 0x16DD,
|
||||
0x8D7C, 0x8D7E, 0x07EF, 0x8D80, 0x8D8C, 0x07F2, 0x8D8D, 0x8D8D, 0x1E02,
|
||||
0x8D8E, 0x8D93, 0x0800, 0x8D94, 0x8D94, 0x1E03, 0x8D95, 0x8D98, 0x0807,
|
||||
0x8D99, 0x8D99, 0x1E04, 0x8D9A, 0x8DD0, 0x080C, 0x8DD1, 0x8DD1, 0x1E05,
|
||||
0x8DD2, 0x8DE4, 0x0844, 0x8DE5, 0x8DE5, 0x1E06, 0x8DE6, 0x8DF1, 0x0858,
|
||||
0x8DF2, 0x8DF2, 0x1E07, 0x8DF3, 0x8DFC, 0x0865, 0x8E40, 0x8E45, 0x086F,
|
||||
0x8E46, 0x8E46, 0x1E08, 0x8E47, 0x8E48, 0x0876, 0x8E49, 0x8E49, 0x1E09,
|
||||
0x8E4A, 0x8E4A, 0x0879, 0x8E4B, 0x8E4B, 0x1E0A, 0x8E4C, 0x8E57, 0x087B,
|
||||
0x8E58, 0x8E58, 0x1E0B, 0x8E59, 0x8E7E, 0x0888, 0x8E80, 0x8EB5, 0x08AE,
|
||||
0x8EB6, 0x8EB6, 0x1E0C, 0x8EB7, 0x8EC5, 0x08E5, 0x8EC6, 0x8EC6, 0x1E0D,
|
||||
0x8EC7, 0x8EC7, 0x1929, 0x8EC8, 0x8ED4, 0x08F6, 0x8ED5, 0x8ED5, 0x1E0E,
|
||||
0x8ED6, 0x8EDA, 0x0904, 0x8EDB, 0x8EDC, 0x1E0F, 0x8EDD, 0x8EFC, 0x090B,
|
||||
0x8F40, 0x8F49, 0x092B, 0x8F4A, 0x8F4A, 0x1E11, 0x8F4B, 0x8F54, 0x0936,
|
||||
0x8F55, 0x8F55, 0x1E12, 0x8F56, 0x8F7E, 0x0941, 0x8F80, 0x8F8B, 0x096A,
|
||||
0x8F8C, 0x8F8D, 0x1E13, 0x8F8E, 0x8F91, 0x0978, 0x8F92, 0x8F93, 0x1E15,
|
||||
0x8F94, 0x8FA2, 0x097E, 0x8FA3, 0x8FA3, 0x1E17, 0x8FA4, 0x8FB0, 0x098E,
|
||||
0x8FB1, 0x8FB1, 0x1E18, 0x8FB2, 0x8FBC, 0x099C, 0x8FBD, 0x8FBD, 0x1E19,
|
||||
0x8FBE, 0x8FD2, 0x09A8, 0x8FD3, 0x8FD3, 0x1E1A, 0x8FD4, 0x8FDC, 0x09BE,
|
||||
0x8FDD, 0x8FDD, 0x1E1B, 0x8FDE, 0x8FE1, 0x09C8, 0x8FE2, 0x8FE2, 0x1E1C,
|
||||
0x8FE3, 0x8FFC, 0x09CD, 0x9040, 0x9048, 0x09E7, 0x9049, 0x9049, 0x1E1D,
|
||||
0x904A, 0x9077, 0x09F1, 0x9078, 0x9078, 0x1E1E, 0x9079, 0x907E, 0x0A20,
|
||||
0x9080, 0x9080, 0x1E1F, 0x9081, 0x9088, 0x0A27, 0x9089, 0x9089, 0x1E20,
|
||||
0x908A, 0x909F, 0x0A30, 0x90A0, 0x90A0, 0x1E21, 0x90A1, 0x90BF, 0x0A47,
|
||||
0x90C0, 0x90C0, 0x1E22, 0x90C1, 0x90E3, 0x0A67, 0x90E4, 0x90E4, 0x1E23,
|
||||
0x90E5, 0x90EE, 0x0A8B, 0x90EF, 0x90F0, 0x1E24, 0x90F1, 0x90F6, 0x0A97,
|
||||
0x90F7, 0x90F8, 0x1E26, 0x90F9, 0x90FC, 0x0A9F, 0x9140, 0x9145, 0x0AA3,
|
||||
0x9146, 0x9146, 0x1E28, 0x9147, 0x9147, 0x1A6E, 0x9148, 0x9157, 0x0AAB,
|
||||
0x9158, 0x9158, 0x1E29, 0x9159, 0x916A, 0x0ABC, 0x916B, 0x916B, 0x1E2A,
|
||||
0x916C, 0x916D, 0x0ACF, 0x916E, 0x916E, 0x1E2B, 0x916F, 0x917D, 0x0AD2,
|
||||
0x917E, 0x917E, 0x1E2C, 0x9180, 0x9188, 0x0AE2, 0x9189, 0x9189, 0x1E2D,
|
||||
0x918A, 0x91BA, 0x0AEC, 0x91BB, 0x91BB, 0x1E2E, 0x91BC, 0x91CA, 0x0B1E,
|
||||
0x91CB, 0x91CB, 0x1E2F, 0x91CC, 0x91D9, 0x0B2E, 0x91DA, 0x91DA, 0x1E30,
|
||||
0x91DB, 0x91E0, 0x0B3D, 0x91E1, 0x91E1, 0x1E31, 0x91E2, 0x91EC, 0x0B44,
|
||||
0x91ED, 0x91ED, 0x1E32, 0x91EE, 0x91F2, 0x0B50, 0x91F3, 0x91F4, 0x1E33,
|
||||
0x91F5, 0x91FA, 0x0B57, 0x91FB, 0x91FB, 0x1E35, 0x91FC, 0x91FC, 0x0B5E,
|
||||
0x9240, 0x9245, 0x0B5F, 0x9246, 0x9246, 0x1E36, 0x9247, 0x9247, 0x0B66,
|
||||
0x9248, 0x9249, 0x1E37, 0x924A, 0x924B, 0x0B69, 0x924C, 0x924D, 0x1E39,
|
||||
0x924E, 0x925B, 0x0B6D, 0x925C, 0x925C, 0x1E3B, 0x925D, 0x927E, 0x0B7C,
|
||||
0x9280, 0x928F, 0x0B9E, 0x9290, 0x9290, 0x1E3C, 0x9291, 0x9294, 0x0BAF,
|
||||
0x9295, 0x9295, 0x1E3D, 0x9296, 0x929B, 0x0BB4, 0x929C, 0x929C, 0x1E3E,
|
||||
0x929D, 0x92BA, 0x0BBB, 0x92BB, 0x92BB, 0x1E3F, 0x92BC, 0x92C5, 0x0BDA,
|
||||
0x92C6, 0x92C6, 0x1E40, 0x92C7, 0x92C7, 0x0BE5, 0x92C8, 0x92C8, 0x1E41,
|
||||
0x92C9, 0x92CA, 0x0BE7, 0x92CB, 0x92CB, 0x1E42, 0x92CC, 0x92CC, 0x0BEA,
|
||||
0x92CD, 0x92CD, 0x1E43, 0x92CE, 0x92D8, 0x0BEC, 0x92D9, 0x92D9, 0x11B5,
|
||||
0x92DA, 0x92FC, 0x0BF8, 0x9340, 0x9340, 0x0C1B, 0x9341, 0x9341, 0x1E44,
|
||||
0x9342, 0x9345, 0x0C1D, 0x9346, 0x9346, 0x1E45, 0x9347, 0x934C, 0x0C22,
|
||||
0x934D, 0x934D, 0x1E46, 0x934E, 0x9354, 0x0C29, 0x9355, 0x9355, 0x1E47,
|
||||
0x9356, 0x935D, 0x0C31, 0x935E, 0x935E, 0x1E48, 0x935F, 0x9366, 0x0C3A,
|
||||
0x9367, 0x9367, 0x1E49, 0x9368, 0x9369, 0x0C43, 0x936A, 0x936A, 0x1E4A,
|
||||
0x936B, 0x936F, 0x0C46, 0x9370, 0x9371, 0x1E4B, 0x9372, 0x9375, 0x0C4D,
|
||||
0x9376, 0x9376, 0x16DF, 0x9377, 0x937E, 0x0C52, 0x9380, 0x9383, 0x0C5A,
|
||||
0x9384, 0x9384, 0x1E4D, 0x9385, 0x938D, 0x0C5F, 0x938E, 0x938E, 0x1450,
|
||||
0x938F, 0x9392, 0x0C69, 0x9393, 0x9393, 0x1536, 0x9394, 0x9397, 0x0C6E,
|
||||
0x9398, 0x9398, 0x1E4E, 0x9399, 0x93BB, 0x0C73, 0x93BC, 0x93BC, 0x1E4F,
|
||||
0x93BD, 0x93BF, 0x0C97, 0x93C0, 0x93C0, 0x1E50, 0x93C1, 0x93D1, 0x0C9B,
|
||||
0x93D2, 0x93D3, 0x1E51, 0x93D4, 0x93D8, 0x0CAE, 0x93D9, 0x93DA, 0x1E53,
|
||||
0x93DB, 0x93DE, 0x0CB5, 0x93DF, 0x93DF, 0x1E55, 0x93E0, 0x93E3, 0x0CBA,
|
||||
0x93E4, 0x93E5, 0x1E56, 0x93E6, 0x93E7, 0x0CC0, 0x93E8, 0x93E8, 0x1E58,
|
||||
0x93E9, 0x93F3, 0x0CC3, 0x93F4, 0x93F4, 0x1AED, 0x93F5, 0x93FC, 0x0CCF,
|
||||
0x9440, 0x9447, 0x0CD7, 0x9448, 0x9448, 0x1E59, 0x9449, 0x9457, 0x0CE0,
|
||||
0x9458, 0x9458, 0x1E5A, 0x9459, 0x9475, 0x0CF0, 0x9476, 0x9476, 0x1E5B,
|
||||
0x9477, 0x947E, 0x0D0E, 0x9480, 0x9486, 0x0D16, 0x9487, 0x9487, 0x1E5C,
|
||||
0x9488, 0x9488, 0x1989, 0x9489, 0x9489, 0x1E5D, 0x948A, 0x948C, 0x0D20,
|
||||
0x948D, 0x948D, 0x1E5E, 0x948E, 0x94A1, 0x0D24, 0x94A2, 0x94A2, 0x1E5F,
|
||||
0x94A3, 0x94AB, 0x0D39, 0x94AC, 0x94AC, 0x1E60, 0x94AD, 0x94AD, 0x0D43,
|
||||
0x94AE, 0x94AE, 0x1E61, 0x94AF, 0x94D1, 0x0D45, 0x94D2, 0x94D2, 0x1E62,
|
||||
0x94D3, 0x94DF, 0x0D69, 0x94E0, 0x94E0, 0x1E63, 0x94E1, 0x94F2, 0x0D77,
|
||||
0x94F3, 0x94F3, 0x1E64, 0x94F4, 0x94FC, 0x0D8A, 0x9540, 0x9540, 0x0D93,
|
||||
0x9541, 0x9542, 0x1E65, 0x9543, 0x954D, 0x0D96, 0x954E, 0x954E, 0x1E67,
|
||||
0x954F, 0x954F, 0x143B, 0x9550, 0x9550, 0x0DA3, 0x9551, 0x9551, 0x1E68,
|
||||
0x9552, 0x9553, 0x0DA5, 0x9554, 0x9554, 0x1E69, 0x9555, 0x955E, 0x0DA8,
|
||||
0x955F, 0x955F, 0x1E6A, 0x9560, 0x956C, 0x0DB3, 0x956D, 0x956D, 0x1E6B,
|
||||
0x956E, 0x956F, 0x0DC1, 0x9570, 0x9570, 0x1E6C, 0x9571, 0x957E, 0x0DC4,
|
||||
0x9580, 0x95C0, 0x0DD2, 0x95C1, 0x95C1, 0x1E6D, 0x95C2, 0x95CA, 0x0E14,
|
||||
0x95CB, 0x95CB, 0x1E6E, 0x95CC, 0x95D7, 0x0E1E, 0x95D8, 0x95D8, 0x1E6F,
|
||||
0x95D9, 0x95F6, 0x0E2B, 0x95F7, 0x95F7, 0x1E70, 0x95F8, 0x95FC, 0x0E4A,
|
||||
0x9640, 0x9640, 0x0E4F, 0x9641, 0x9641, 0x1E71, 0x9642, 0x9647, 0x0E51,
|
||||
0x9648, 0x9648, 0x1E72, 0x9649, 0x9669, 0x0E58, 0x966A, 0x966A, 0x1E73,
|
||||
0x966B, 0x967E, 0x0E7A, 0x9680, 0x9689, 0x0E8E, 0x968A, 0x968A, 0x1D33,
|
||||
0x968B, 0x968F, 0x0E99, 0x9690, 0x9690, 0x1E74, 0x9691, 0x9698, 0x0E9F,
|
||||
0x9699, 0x9699, 0x102F, 0x969A, 0x96CA, 0x0EA8, 0x96CB, 0x96CB, 0x1E75,
|
||||
0x96CC, 0x96D6, 0x0EDA, 0x96D7, 0x96D7, 0x1E76, 0x96D8, 0x96DC, 0x0EE6,
|
||||
0x96DD, 0x96DD, 0x1E77, 0x96DE, 0x96DF, 0x0EEC, 0x96E0, 0x96E0, 0x1E78,
|
||||
0x96E1, 0x96F6, 0x0EEF, 0x96F7, 0x96F7, 0x1935, 0x96F8, 0x96F8, 0x1E79,
|
||||
0x96F9, 0x96F9, 0x0F07, 0x96FA, 0x96FA, 0x1E7A, 0x96FB, 0x96FB, 0x0F09,
|
||||
0x96FC, 0x96FC, 0x1E7B, 0x9740, 0x9750, 0x0F0B, 0x9751, 0x9751, 0x1E7C,
|
||||
0x9752, 0x976E, 0x0F1D, 0x976F, 0x976F, 0x1E7D, 0x9770, 0x9772, 0x0F3B,
|
||||
0x9773, 0x9773, 0x1E7E, 0x9774, 0x9778, 0x0F3F, 0x9779, 0x9779, 0x1D34,
|
||||
0x977A, 0x977E, 0x0F45, 0x9780, 0x9788, 0x0F4A, 0x9789, 0x9789, 0x1E7F,
|
||||
0x978A, 0x97C8, 0x0F54, 0x97C9, 0x97C9, 0x1E80, 0x97CA, 0x97F7, 0x0F94,
|
||||
0x97F8, 0x97F9, 0x1E81, 0x97FA, 0x97FC, 0x0FC4, 0x9840, 0x9840, 0x1E83,
|
||||
0x9841, 0x984F, 0x0FC8, 0x9850, 0x9850, 0x1E84, 0x9851, 0x9854, 0x0FD8,
|
||||
0x9855, 0x9855, 0x1777, 0x9856, 0x9857, 0x0FDD, 0x9858, 0x9858, 0x1E85,
|
||||
0x9859, 0x9872, 0x0FE0, 0x989F, 0x98D3, 0x0FFA, 0x98D4, 0x98D4, 0x0EA7,
|
||||
0x98D5, 0x98FC, 0x1030, 0x9940, 0x995B, 0x1058, 0x995C, 0x995C, 0x1E86,
|
||||
0x995D, 0x9965, 0x1075, 0x9966, 0x9966, 0x1E87, 0x9967, 0x9969, 0x107F,
|
||||
0x996A, 0x996A, 0x1E88, 0x996B, 0x996B, 0x1083, 0x996C, 0x996C, 0x1E89,
|
||||
0x996D, 0x997E, 0x1085, 0x9980, 0x99FC, 0x1097, 0x9A40, 0x9A4E, 0x1114,
|
||||
0x9A4F, 0x9A4F, 0x1E8A, 0x9A50, 0x9A58, 0x1124, 0x9A59, 0x9A59, 0x1E8B,
|
||||
0x9A5A, 0x9A6E, 0x112E, 0x9A6F, 0x9A6F, 0x1E8C, 0x9A70, 0x9A7C, 0x1144,
|
||||
0x9A7D, 0x9A7D, 0x1E8D, 0x9A7E, 0x9A7E, 0x1152, 0x9A80, 0x9A8A, 0x1153,
|
||||
0x9A8B, 0x9A8B, 0x1E8E, 0x9A8C, 0x9AC1, 0x115F, 0x9AC2, 0x9AC2, 0x1E8F,
|
||||
0x9AC3, 0x9AE1, 0x1196, 0x9AE2, 0x9AE2, 0x0BF7, 0x9AE3, 0x9AFC, 0x11B6,
|
||||
0x9B40, 0x9B5B, 0x11D0, 0x9B5C, 0x9B5C, 0x1E90, 0x9B5D, 0x9B7E, 0x11ED,
|
||||
0x9B80, 0x9B82, 0x120F, 0x9B83, 0x9B83, 0x1E91, 0x9B84, 0x9B9F, 0x1213,
|
||||
0x9BA0, 0x9BA0, 0x1E92, 0x9BA1, 0x9BEF, 0x1230, 0x9BF0, 0x9BF0, 0x1E93,
|
||||
0x9BF1, 0x9BFC, 0x1280, 0x9C40, 0x9C7E, 0x128C, 0x9C80, 0x9CA1, 0x12CB,
|
||||
0x9CA2, 0x9CA2, 0x1E94, 0x9CA3, 0x9CFC, 0x12EE, 0x9D40, 0x9D7E, 0x1348,
|
||||
0x9D80, 0x9D80, 0x1E95, 0x9D81, 0x9D8B, 0x1388, 0x9D8C, 0x9D8C, 0x1E96,
|
||||
0x9D8D, 0x9D97, 0x1394, 0x9D98, 0x9D98, 0x05A7, 0x9D99, 0x9DB6, 0x13A0,
|
||||
0x9DB7, 0x9DB7, 0x1E97, 0x9DB8, 0x9DCA, 0x13BF, 0x9DCB, 0x9DCB, 0x1E98,
|
||||
0x9DCC, 0x9DFC, 0x13D3, 0x9E40, 0x9E63, 0x1404, 0x9E64, 0x9E64, 0x1E99,
|
||||
0x9E65, 0x9E68, 0x1429, 0x9E69, 0x9E69, 0x1E9A, 0x9E6A, 0x9E76, 0x142E,
|
||||
0x9E77, 0x9E77, 0x0DA2, 0x9E78, 0x9E7E, 0x143C, 0x9E80, 0x9E8A, 0x1443,
|
||||
0x9E8B, 0x9E8B, 0x1E9B, 0x9E8C, 0x9E8C, 0x144F, 0x9E8D, 0x9E8D, 0x0C68,
|
||||
0x9E8E, 0x9E93, 0x1451, 0x9E94, 0x9E94, 0x1E9C, 0x9E95, 0x9EFC, 0x1458,
|
||||
0x9F40, 0x9F7E, 0x14C0, 0x9F80, 0x9FB6, 0x14FF, 0x9FB7, 0x9FB7, 0x0C6D,
|
||||
0x9FB8, 0x9FCD, 0x1537, 0x9FCE, 0x9FCE, 0x1E9D, 0x9FCF, 0x9FF2, 0x154E,
|
||||
0x9FF3, 0x9FF3, 0x05FF, 0x9FF4, 0x9FFC, 0x1573, 0xE040, 0xE07E, 0x157C,
|
||||
0xE080, 0xE092, 0x15BB, 0xE093, 0xE093, 0x1E9E, 0xE094, 0xE0A3, 0x15CF,
|
||||
0xE0A4, 0xE0A4, 0x1E9F, 0xE0A5, 0xE0DC, 0x15E0, 0xE0DD, 0xE0DD, 0x1EA0,
|
||||
0xE0DE, 0xE0F3, 0x1619, 0xE0F4, 0xE0F4, 0x1D35, 0xE0F5, 0xE0FC, 0x1630,
|
||||
0xE140, 0xE149, 0x1638, 0xE14A, 0xE14A, 0x1EA1, 0xE14B, 0xE14E, 0x1643,
|
||||
0xE14F, 0xE150, 0x1EA2, 0xE151, 0xE17E, 0x1649, 0xE180, 0xE1A8, 0x1677,
|
||||
0xE1A9, 0xE1A9, 0x1EA4, 0xE1AA, 0xE1E5, 0x16A1, 0xE1E6, 0xE1E6, 0x07EE,
|
||||
0xE1E7, 0xE1E7, 0x16DE, 0xE1E8, 0xE1E8, 0x0C51, 0xE1E9, 0xE1EC, 0x16E0,
|
||||
0xE1ED, 0xE1ED, 0x1EA5, 0xE1EE, 0xE1FC, 0x16E5, 0xE240, 0xE268, 0x16F4,
|
||||
0xE269, 0xE269, 0x1EA6, 0xE26A, 0xE272, 0x171E, 0xE273, 0xE273, 0x1EA7,
|
||||
0xE274, 0xE27C, 0x1728, 0xE27D, 0xE27D, 0x05D4, 0xE27E, 0xE27E, 0x1732,
|
||||
0xE280, 0xE2B6, 0x1733, 0xE2B7, 0xE2B7, 0x1EA8, 0xE2B8, 0xE2C3, 0x176B,
|
||||
0xE2C4, 0xE2C4, 0x0FDC, 0xE2C5, 0xE2E1, 0x1778, 0xE2E2, 0xE2E2, 0x1EA9,
|
||||
0xE2E3, 0xE2EB, 0x1796, 0xE2EC, 0xE2EC, 0x1EAA, 0xE2ED, 0xE2FC, 0x17A0,
|
||||
0xE340, 0xE357, 0x17B0, 0xE358, 0xE358, 0x1EAB, 0xE359, 0xE359, 0x17C9,
|
||||
0xE35A, 0xE35A, 0x1EAC, 0xE35B, 0xE364, 0x17CB, 0xE365, 0xE365, 0x1EAD,
|
||||
0xE366, 0xE37E, 0x17D6, 0xE380, 0xE3C3, 0x17EF, 0xE3C4, 0xE3C4, 0x1EAE,
|
||||
0xE3C5, 0xE3FC, 0x1834, 0xE440, 0xE47E, 0x186C, 0xE480, 0xE483, 0x18AB,
|
||||
0xE484, 0xE484, 0x1EAF, 0xE485, 0xE488, 0x18B0, 0xE489, 0xE489, 0x1EB0,
|
||||
0xE48A, 0xE491, 0x18B5, 0xE492, 0xE492, 0x1EB1, 0xE493, 0xE4B1, 0x18BE,
|
||||
0xE4B2, 0xE4B2, 0x1EB2, 0xE4B3, 0xE4B8, 0x18DE, 0xE4B9, 0xE4B9, 0x1EB3,
|
||||
0xE4BA, 0xE4F1, 0x18E5, 0xE4F2, 0xE4F2, 0x1EB4, 0xE4F3, 0xE4FC, 0x191E,
|
||||
0xE540, 0xE540, 0x1928, 0xE541, 0xE541, 0x08F5, 0xE542, 0xE54C, 0x192A,
|
||||
0xE54D, 0xE54D, 0x0F05, 0xE54E, 0xE55A, 0x1936, 0xE55B, 0xE55B, 0x1EB5,
|
||||
0xE55C, 0xE578, 0x1944, 0xE579, 0xE579, 0x05A0, 0xE57A, 0xE57E, 0x1962,
|
||||
0xE580, 0xE5A1, 0x1967, 0xE5A2, 0xE5A2, 0x0D1E, 0xE5A3, 0xE5A4, 0x198A,
|
||||
0xE5A5, 0xE5A5, 0x1EB6, 0xE5A6, 0xE5BA, 0x198D, 0xE5BB, 0xE5BB, 0x1EB7,
|
||||
0xE5BC, 0xE5EC, 0x19A3, 0xE5ED, 0xE5ED, 0x1EB8, 0xE5EE, 0xE5FC, 0x19D5,
|
||||
0xE640, 0xE650, 0x19E4, 0xE651, 0xE651, 0x1EB9, 0xE652, 0xE67B, 0x19F6,
|
||||
0xE67C, 0xE67C, 0x060E, 0xE67D, 0xE67E, 0x1A21, 0xE680, 0xE685, 0x1A23,
|
||||
0xE686, 0xE686, 0x1EBA, 0xE687, 0xE695, 0x1A2A, 0xE696, 0xE696, 0x1EBB,
|
||||
0xE697, 0xE6CA, 0x1A3A, 0xE6CB, 0xE6CB, 0x0AAA, 0xE6CC, 0xE6E6, 0x1A6F,
|
||||
0xE6E7, 0xE6E7, 0x1EBC, 0xE6E8, 0xE6F1, 0x1A8B, 0xE6F2, 0xE6F2, 0x1EBD,
|
||||
0xE6F3, 0xE6FC, 0x1A96, 0xE740, 0xE76C, 0x1AA0, 0xE76D, 0xE76D, 0x1EBE,
|
||||
0xE76E, 0xE77E, 0x1ACE, 0xE780, 0xE78B, 0x1ADF, 0xE78C, 0xE78C, 0x1EBF,
|
||||
0xE78D, 0xE78D, 0x1AEC, 0xE78E, 0xE78E, 0x1EC0, 0xE78F, 0xE7A6, 0x1AEE,
|
||||
0xE7A7, 0xE7A7, 0x1EC1, 0xE7A8, 0xE7BA, 0x1B07, 0xE7BB, 0xE7BB, 0x1EC2,
|
||||
0xE7BC, 0xE7D4, 0x1B1B, 0xE7D5, 0xE7D5, 0x1EC3, 0xE7D6, 0xE7FC, 0x1B35,
|
||||
0xE840, 0xE87E, 0x1B5C, 0xE880, 0xE884, 0x1B9B, 0xE885, 0xE885, 0x1EC4,
|
||||
0xE886, 0xE8B0, 0x1BA1, 0xE8B1, 0xE8B1, 0x1EC5, 0xE8B2, 0xE8C2, 0x1BCD,
|
||||
0xE8C3, 0xE8C3, 0x1EC6, 0xE8C4, 0xE8CE, 0x1BDF, 0xE8CF, 0xE8CF, 0x1EC7,
|
||||
0xE8D0, 0xE8D4, 0x1BEB, 0xE8D5, 0xE8D5, 0x1EC8, 0xE8D6, 0xE8F1, 0x1BF1,
|
||||
0xE8F2, 0xE8F2, 0x0731, 0xE8F3, 0xE8F3, 0x1EC9, 0xE8F4, 0xE8FC, 0x1C0F,
|
||||
0xE940, 0xE97E, 0x1C18, 0xE980, 0xE9AA, 0x1C57, 0xE9AB, 0xE9AB, 0x1ECA,
|
||||
0xE9AC, 0xE9B9, 0x1C83, 0xE9BA, 0xE9BA, 0x1ECB, 0xE9BB, 0xE9CA, 0x1C92,
|
||||
0xE9CB, 0xE9CB, 0x0477, 0xE9CC, 0xE9CC, 0x1ECC, 0xE9CD, 0xE9F1, 0x1CA4,
|
||||
0xE9F2, 0xE9F2, 0x0529, 0xE9F3, 0xE9FC, 0x1CCA, 0xEA40, 0xEA6F, 0x1CD4,
|
||||
0xEA70, 0xEA70, 0x1ECD, 0xEA71, 0xEA7E, 0x1D05, 0xEA80, 0xEA9C, 0x1D13,
|
||||
0xEA9D, 0xEA9D, 0x1ECE, 0xEA9E, 0xEA9E, 0x1D31, 0xED40, 0xED7E, 0x20A7,
|
||||
0xED80, 0xEDB3, 0x20E6, 0xEDB4, 0xEDB4, 0x07C9, 0xEDB5, 0xEDFC, 0x211A,
|
||||
0xEE40, 0xEE7E, 0x2162, 0xEE80, 0xEEEC, 0x21A1, 0xEEEF, 0xEEF8, 0x1F9C,
|
||||
0xEEF9, 0xEEF9, 0x02EF, 0xEEFA, 0xEEFC, 0x1F45,
|
||||
};
|
@ -0,0 +1,23 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/Japan1/cmaps_japan1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_Ext_RKSJ_V_2[39 * 3] = {
|
||||
0x8141, 0x8142, 0x1ECF, 0x8143, 0x8143, 0x204C, 0x8144, 0x8144, 0x2052,
|
||||
0x814A, 0x814A, 0x2050, 0x814B, 0x814B, 0x204F, 0x815B, 0x815D, 0x1ED3,
|
||||
0x8160, 0x8164, 0x1ED6, 0x8165, 0x8165, 0x2059, 0x8166, 0x8166, 0x2054,
|
||||
0x8167, 0x8167, 0x2057, 0x8168, 0x8168, 0x2056, 0x8169, 0x817A, 0x1EDB,
|
||||
0x818B, 0x818B, 0x204D, 0x818C, 0x818C, 0x2051, 0x818D, 0x818D, 0x205B,
|
||||
0x81AC, 0x81AC, 0x204E, 0x829F, 0x829F, 0x1EEE, 0x82A1, 0x82A1, 0x1EEF,
|
||||
0x82A3, 0x82A3, 0x1EF0, 0x82A5, 0x82A5, 0x1EF1, 0x82A7, 0x82A7, 0x1EF2,
|
||||
0x82C1, 0x82C1, 0x1EF3, 0x82E1, 0x82E1, 0x1EF4, 0x82E3, 0x82E3, 0x1EF5,
|
||||
0x82E5, 0x82E5, 0x1EF6, 0x82EC, 0x82EC, 0x1EF7, 0x8340, 0x8340, 0x1EF8,
|
||||
0x8342, 0x8342, 0x1EF9, 0x8344, 0x8344, 0x1EFA, 0x8346, 0x8346, 0x1EFB,
|
||||
0x8348, 0x8348, 0x1EFC, 0x8362, 0x8362, 0x1EFD, 0x8383, 0x8383, 0x1EFE,
|
||||
0x8385, 0x8385, 0x1EFF, 0x8387, 0x8387, 0x1F00, 0x838E, 0x838E, 0x1F01,
|
||||
0x8395, 0x8396, 0x1F02, 0x875F, 0x876E, 0x1F04, 0x8780, 0x8781, 0x1F14,
|
||||
};
|
50
modules/pdfium/pdfium/core/fpdfapi/cmaps/Japan1/H_1.cpp
Normal file
50
modules/pdfium/pdfium/core/fpdfapi/cmaps/Japan1/H_1.cpp
Normal file
@ -0,0 +1,50 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/Japan1/cmaps_japan1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_H_1[118 * 3] = {
|
||||
0x2121, 0x217E, 0x0279, 0x2221, 0x222E, 0x02D7, 0x223A, 0x2241, 0x02E5,
|
||||
0x224A, 0x2250, 0x02ED, 0x225C, 0x226A, 0x02F4, 0x2272, 0x2279, 0x0303,
|
||||
0x227E, 0x227E, 0x030B, 0x2330, 0x2339, 0x030C, 0x2341, 0x235A, 0x0316,
|
||||
0x2361, 0x237A, 0x0330, 0x2421, 0x2473, 0x034A, 0x2521, 0x2576, 0x039D,
|
||||
0x2621, 0x2638, 0x03F3, 0x2641, 0x2658, 0x040B, 0x2721, 0x2741, 0x0423,
|
||||
0x2751, 0x2771, 0x0444, 0x2821, 0x2821, 0x1D37, 0x2822, 0x2822, 0x1D39,
|
||||
0x2823, 0x2823, 0x1D43, 0x2824, 0x2824, 0x1D47, 0x2825, 0x2825, 0x1D4F,
|
||||
0x2826, 0x2826, 0x1D4B, 0x2827, 0x2827, 0x1D53, 0x2828, 0x2828, 0x1D63,
|
||||
0x2829, 0x2829, 0x1D5B, 0x282A, 0x282A, 0x1D6B, 0x282B, 0x282B, 0x1D73,
|
||||
0x282C, 0x282C, 0x1D38, 0x282D, 0x282D, 0x1D3A, 0x282E, 0x282E, 0x1D46,
|
||||
0x282F, 0x282F, 0x1D4A, 0x2830, 0x2830, 0x1D52, 0x2831, 0x2831, 0x1D4E,
|
||||
0x2832, 0x2832, 0x1D5A, 0x2833, 0x2833, 0x1D6A, 0x2834, 0x2834, 0x1D62,
|
||||
0x2835, 0x2835, 0x1D72, 0x2836, 0x2836, 0x1D82, 0x2837, 0x2837, 0x1D57,
|
||||
0x2838, 0x2838, 0x1D66, 0x2839, 0x2839, 0x1D5F, 0x283A, 0x283A, 0x1D6E,
|
||||
0x283B, 0x283B, 0x1D76, 0x283C, 0x283C, 0x1D54, 0x283D, 0x283D, 0x1D67,
|
||||
0x283E, 0x283E, 0x1D5C, 0x283F, 0x283F, 0x1D6F, 0x2840, 0x2840, 0x1D79,
|
||||
0x3021, 0x307E, 0x0465, 0x3121, 0x317E, 0x04C3, 0x3221, 0x327E, 0x0521,
|
||||
0x3321, 0x337E, 0x057F, 0x3421, 0x347E, 0x05DD, 0x3521, 0x357E, 0x063B,
|
||||
0x3621, 0x367E, 0x0699, 0x3721, 0x377E, 0x06F7, 0x3821, 0x387E, 0x0755,
|
||||
0x3921, 0x397E, 0x07B3, 0x3A21, 0x3A7E, 0x0811, 0x3B21, 0x3B7E, 0x086F,
|
||||
0x3C21, 0x3C7E, 0x08CD, 0x3D21, 0x3D7E, 0x092B, 0x3E21, 0x3E7E, 0x0989,
|
||||
0x3F21, 0x3F7E, 0x09E7, 0x4021, 0x407E, 0x0A45, 0x4121, 0x417E, 0x0AA3,
|
||||
0x4221, 0x427E, 0x0B01, 0x4321, 0x437E, 0x0B5F, 0x4421, 0x447E, 0x0BBD,
|
||||
0x4521, 0x457E, 0x0C1B, 0x4621, 0x467E, 0x0C79, 0x4721, 0x477E, 0x0CD7,
|
||||
0x4821, 0x487E, 0x0D35, 0x4921, 0x497E, 0x0D93, 0x4A21, 0x4A7E, 0x0DF1,
|
||||
0x4B21, 0x4B7E, 0x0E4F, 0x4C21, 0x4C7E, 0x0EAD, 0x4D21, 0x4D7E, 0x0F0B,
|
||||
0x4E21, 0x4E7E, 0x0F69, 0x4F21, 0x4F53, 0x0FC7, 0x5021, 0x507E, 0x0FFA,
|
||||
0x5121, 0x517E, 0x1058, 0x5221, 0x527E, 0x10B6, 0x5321, 0x537E, 0x1114,
|
||||
0x5421, 0x547E, 0x1172, 0x5521, 0x557E, 0x11D0, 0x5621, 0x567E, 0x122E,
|
||||
0x5721, 0x577E, 0x128C, 0x5821, 0x587E, 0x12EA, 0x5921, 0x597E, 0x1348,
|
||||
0x5A21, 0x5A7E, 0x13A6, 0x5B21, 0x5B7E, 0x1404, 0x5C21, 0x5C7E, 0x1462,
|
||||
0x5D21, 0x5D7E, 0x14C0, 0x5E21, 0x5E7E, 0x151E, 0x5F21, 0x5F7E, 0x157C,
|
||||
0x6021, 0x607E, 0x15DA, 0x6121, 0x617E, 0x1638, 0x6221, 0x627E, 0x1696,
|
||||
0x6321, 0x637E, 0x16F4, 0x6421, 0x647E, 0x1752, 0x6521, 0x657E, 0x17B0,
|
||||
0x6621, 0x667E, 0x180E, 0x6721, 0x677E, 0x186C, 0x6821, 0x687E, 0x18CA,
|
||||
0x6921, 0x697E, 0x1928, 0x6A21, 0x6A7E, 0x1986, 0x6B21, 0x6B7E, 0x19E4,
|
||||
0x6C21, 0x6C7E, 0x1A42, 0x6D21, 0x6D7E, 0x1AA0, 0x6E21, 0x6E7E, 0x1AFE,
|
||||
0x6F21, 0x6F7E, 0x1B5C, 0x7021, 0x707E, 0x1BBA, 0x7121, 0x717E, 0x1C18,
|
||||
0x7221, 0x727E, 0x1C76, 0x7321, 0x737E, 0x1CD4, 0x7421, 0x7424, 0x1D32,
|
||||
0x7425, 0x7426, 0x205C,
|
||||
};
|
@ -0,0 +1,12 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/Japan1/cmaps_japan1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_UniJIS_UCS2_HW_H_4[4 * 3] = {
|
||||
0x0020, 0x005B, 0x00E7, 0x005C, 0x005C, 0x220F,
|
||||
0x005D, 0x007E, 0x0124, 0x00A5, 0x00A5, 0x0123,
|
||||
};
|
@ -0,0 +1,77 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/Japan1/cmaps_japan1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_UniJIS_UCS2_HW_V_4[199 * 3] = {
|
||||
0x0020, 0x005B, 0x00E7, 0x005C, 0x005C, 0x220F, 0x005D, 0x007E, 0x0124,
|
||||
0x00A5, 0x00A5, 0x0123, 0x00B0, 0x00B0, 0x204D, 0x2010, 0x2010, 0x1ED5,
|
||||
0x2015, 0x2015, 0x1ED4, 0x2016, 0x2016, 0x1ED7, 0x2018, 0x2019, 0x2059,
|
||||
0x201C, 0x201D, 0x2057, 0x2025, 0x2025, 0x1EDA, 0x2026, 0x2026, 0x1ED9,
|
||||
0x2032, 0x2032, 0x2051, 0x2033, 0x2033, 0x205B, 0x2190, 0x2190, 0x02E2,
|
||||
0x2191, 0x2191, 0x02E0, 0x2192, 0x2192, 0x02E3, 0x2193, 0x2193, 0x02E1,
|
||||
0x2195, 0x2195, 0x2FB6, 0x21C4, 0x21C4, 0x2077, 0x21C5, 0x21C5, 0x2076,
|
||||
0x21C6, 0x21C6, 0x2078, 0x21E6, 0x21E6, 0x1F4C, 0x21E7, 0x21E7, 0x1F4E,
|
||||
0x21E8, 0x21E8, 0x1F4B, 0x21E9, 0x21E9, 0x1F4D, 0x2225, 0x2225, 0x1ED7,
|
||||
0x223C, 0x223C, 0x1ED6, 0x22EF, 0x22EF, 0x1ED9, 0x2500, 0x2501, 0x1D39,
|
||||
0x2502, 0x2503, 0x1D37, 0x2504, 0x2505, 0x1D3D, 0x2506, 0x2507, 0x1D3B,
|
||||
0x2508, 0x2509, 0x1D41, 0x250A, 0x250B, 0x1D3F, 0x250C, 0x250C, 0x1D47,
|
||||
0x250D, 0x250D, 0x1D49, 0x250E, 0x250E, 0x1D48, 0x250F, 0x250F, 0x1D4A,
|
||||
0x2510, 0x2510, 0x1D4F, 0x2511, 0x2511, 0x1D51, 0x2512, 0x2512, 0x1D50,
|
||||
0x2513, 0x2513, 0x1D52, 0x2514, 0x2514, 0x1D43, 0x2515, 0x2515, 0x1D45,
|
||||
0x2516, 0x2516, 0x1D44, 0x2517, 0x2517, 0x1D46, 0x2518, 0x2518, 0x1D4B,
|
||||
0x2519, 0x2519, 0x1D4D, 0x251A, 0x251A, 0x1D4C, 0x251B, 0x251B, 0x1D4E,
|
||||
0x251C, 0x251C, 0x1D63, 0x251D, 0x251D, 0x1D67, 0x251E, 0x251E, 0x1D65,
|
||||
0x251F, 0x251F, 0x1D64, 0x2520, 0x2520, 0x1D66, 0x2521, 0x2521, 0x1D69,
|
||||
0x2522, 0x2522, 0x1D68, 0x2523, 0x2524, 0x1D6A, 0x2525, 0x2525, 0x1D6F,
|
||||
0x2526, 0x2526, 0x1D6D, 0x2527, 0x2527, 0x1D6C, 0x2528, 0x2528, 0x1D6E,
|
||||
0x2529, 0x2529, 0x1D71, 0x252A, 0x252A, 0x1D70, 0x252B, 0x252B, 0x1D72,
|
||||
0x252C, 0x252C, 0x1D5B, 0x252D, 0x252F, 0x1D5D, 0x2530, 0x2530, 0x1D5C,
|
||||
0x2531, 0x2533, 0x1D60, 0x2534, 0x2534, 0x1D53, 0x2535, 0x2537, 0x1D55,
|
||||
0x2538, 0x2538, 0x1D54, 0x2539, 0x253B, 0x1D58, 0x253D, 0x253F, 0x1D77,
|
||||
0x2540, 0x2540, 0x1D75, 0x2541, 0x2541, 0x1D74, 0x2542, 0x2542, 0x1D76,
|
||||
0x2543, 0x2543, 0x1D7B, 0x2544, 0x2544, 0x1D7D, 0x2545, 0x2545, 0x1D7A,
|
||||
0x2546, 0x2546, 0x1D7C, 0x2547, 0x2547, 0x1D81, 0x2548, 0x2548, 0x1D80,
|
||||
0x2549, 0x254A, 0x1D7E, 0x261C, 0x261C, 0x201D, 0x261D, 0x261D, 0x201B,
|
||||
0x261E, 0x261E, 0x201E, 0x261F, 0x261F, 0x201C, 0x2702, 0x2702, 0x2F92,
|
||||
0x27A1, 0x27A1, 0x2011, 0x3001, 0x3002, 0x1ECF, 0x3008, 0x3011, 0x1EE3,
|
||||
0x3013, 0x3013, 0x204E, 0x3014, 0x3015, 0x1EDD, 0x301C, 0x301C, 0x1ED6,
|
||||
0x301D, 0x301D, 0x1F14, 0x301F, 0x301F, 0x1F15, 0x3041, 0x3041, 0x1EEE,
|
||||
0x3043, 0x3043, 0x1EEF, 0x3045, 0x3045, 0x1EF0, 0x3047, 0x3047, 0x1EF1,
|
||||
0x3049, 0x3049, 0x1EF2, 0x3063, 0x3063, 0x1EF3, 0x3083, 0x3083, 0x1EF4,
|
||||
0x3085, 0x3085, 0x1EF5, 0x3087, 0x3087, 0x1EF6, 0x308E, 0x308E, 0x1EF7,
|
||||
0x309B, 0x309B, 0x2050, 0x309C, 0x309C, 0x204F, 0x30A1, 0x30A1, 0x1EF8,
|
||||
0x30A3, 0x30A3, 0x1EF9, 0x30A5, 0x30A5, 0x1EFA, 0x30A7, 0x30A7, 0x1EFB,
|
||||
0x30A9, 0x30A9, 0x1EFC, 0x30C3, 0x30C3, 0x1EFD, 0x30E3, 0x30E3, 0x1EFE,
|
||||
0x30E5, 0x30E5, 0x1EFF, 0x30E7, 0x30E7, 0x1F00, 0x30EE, 0x30EE, 0x1F01,
|
||||
0x30F5, 0x30F6, 0x1F02, 0x30FC, 0x30FC, 0x1ED3, 0x3300, 0x3300, 0x209E,
|
||||
0x3301, 0x3302, 0x2EB6, 0x3303, 0x3303, 0x2092, 0x3304, 0x3304, 0x2EB8,
|
||||
0x3305, 0x3305, 0x208D, 0x3306, 0x3306, 0x2EB9, 0x3307, 0x3307, 0x2EBD,
|
||||
0x3308, 0x3308, 0x2EBB, 0x3309, 0x3309, 0x2EC0, 0x330A, 0x330A, 0x2EBE,
|
||||
0x330B, 0x330B, 0x2EC2, 0x330C, 0x330C, 0x2EC4, 0x330D, 0x330D, 0x1F0E,
|
||||
0x330E, 0x3313, 0x2EC5, 0x3314, 0x3314, 0x1F05, 0x3315, 0x3315, 0x2094,
|
||||
0x3316, 0x3316, 0x208A, 0x3317, 0x3317, 0x2ECC, 0x3318, 0x3318, 0x2093,
|
||||
0x3319, 0x3319, 0x2ECE, 0x331A, 0x331D, 0x2ED0, 0x331E, 0x331E, 0x20A1,
|
||||
0x331F, 0x3321, 0x2ED4, 0x3322, 0x3322, 0x2089, 0x3323, 0x3323, 0x209C,
|
||||
0x3324, 0x3324, 0x2ED7, 0x3325, 0x3325, 0x2ED9, 0x3326, 0x3326, 0x1F0F,
|
||||
0x3327, 0x3327, 0x1F09, 0x3328, 0x3329, 0x2EDC, 0x332A, 0x332A, 0x20A4,
|
||||
0x332B, 0x332B, 0x1F11, 0x332D, 0x332D, 0x2EDF, 0x332E, 0x3330, 0x2EE2,
|
||||
0x3331, 0x3331, 0x20A6, 0x3332, 0x3332, 0x2EE5, 0x3333, 0x3333, 0x208E,
|
||||
0x3334, 0x3335, 0x2EE8, 0x3336, 0x3336, 0x1F0B, 0x3337, 0x3337, 0x2EEE,
|
||||
0x3338, 0x3338, 0x2EF0, 0x3339, 0x3339, 0x2097, 0x333A, 0x333A, 0x2EF1,
|
||||
0x333B, 0x333B, 0x209D, 0x333C, 0x333C, 0x2EEA, 0x333D, 0x333D, 0x2EF2,
|
||||
0x333E, 0x3340, 0x2EF4, 0x3341, 0x3341, 0x2EF3, 0x3342, 0x3342, 0x209B,
|
||||
0x3343, 0x3346, 0x2EF7, 0x3347, 0x3347, 0x20A5, 0x3348, 0x3348, 0x2EFB,
|
||||
0x3349, 0x3349, 0x1F04, 0x334A, 0x334A, 0x1F12, 0x334B, 0x334C, 0x2EFC,
|
||||
0x334D, 0x334D, 0x1F07, 0x334E, 0x334E, 0x2091, 0x334F, 0x3350, 0x2EFE,
|
||||
0x3351, 0x3351, 0x1F0C, 0x3352, 0x3352, 0x2F02, 0x3353, 0x3353, 0x2F06,
|
||||
0x3354, 0x3354, 0x2F03, 0x3355, 0x3356, 0x2F07, 0x3357, 0x3357, 0x2098,
|
||||
0x337F, 0x337F, 0x2084, 0xFF08, 0xFF09, 0x1EDB, 0xFF0C, 0xFF0C, 0x204C,
|
||||
0xFF0E, 0xFF0E, 0x2052, 0xFF1D, 0xFF1D, 0x1EED, 0xFF3B, 0xFF3B, 0x1EDF,
|
||||
0xFF3D, 0xFF3D, 0x1EE0, 0xFF3F, 0xFF3F, 0x1ED2, 0xFF5B, 0xFF5B, 0x1EE1,
|
||||
0xFF5C, 0xFF5C, 0x1ED8, 0xFF5D, 0xFF5D, 0x1EE2, 0xFF5E, 0xFF5E, 0x1ED6,
|
||||
0xFFE3, 0xFFE3, 0x1ED1,
|
||||
};
|
2182
modules/pdfium/pdfium/core/fpdfapi/cmaps/Japan1/UniJIS-UCS2-H_4.cpp
Normal file
2182
modules/pdfium/pdfium/core/fpdfapi/cmaps/Japan1/UniJIS-UCS2-H_4.cpp
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,66 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/Japan1/cmaps_japan1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_UniJIS_UCS2_V_4[251 * 2] = {
|
||||
0x00B0, 0x204D, 0x2010, 0x1ED5, 0x2015, 0x1ED4, 0x2016, 0x1ED7, 0x2018,
|
||||
0x2059, 0x2019, 0x205A, 0x201C, 0x2057, 0x201D, 0x2058, 0x2025, 0x1EDA,
|
||||
0x2026, 0x1ED9, 0x2032, 0x2051, 0x2033, 0x205B, 0x2190, 0x02E2, 0x2191,
|
||||
0x02E0, 0x2192, 0x02E3, 0x2193, 0x02E1, 0x2195, 0x2FB6, 0x21C4, 0x2077,
|
||||
0x21C5, 0x2076, 0x21C6, 0x2078, 0x21E6, 0x1F4C, 0x21E7, 0x1F4E, 0x21E8,
|
||||
0x1F4B, 0x21E9, 0x1F4D, 0x2225, 0x1ED7, 0x223C, 0x1ED6, 0x22EF, 0x1ED9,
|
||||
0x2500, 0x1D39, 0x2501, 0x1D3A, 0x2502, 0x1D37, 0x2503, 0x1D38, 0x2504,
|
||||
0x1D3D, 0x2505, 0x1D3E, 0x2506, 0x1D3B, 0x2507, 0x1D3C, 0x2508, 0x1D41,
|
||||
0x2509, 0x1D42, 0x250A, 0x1D3F, 0x250B, 0x1D40, 0x250C, 0x1D47, 0x250D,
|
||||
0x1D49, 0x250E, 0x1D48, 0x250F, 0x1D4A, 0x2510, 0x1D4F, 0x2511, 0x1D51,
|
||||
0x2512, 0x1D50, 0x2513, 0x1D52, 0x2514, 0x1D43, 0x2515, 0x1D45, 0x2516,
|
||||
0x1D44, 0x2517, 0x1D46, 0x2518, 0x1D4B, 0x2519, 0x1D4D, 0x251A, 0x1D4C,
|
||||
0x251B, 0x1D4E, 0x251C, 0x1D63, 0x251D, 0x1D67, 0x251E, 0x1D65, 0x251F,
|
||||
0x1D64, 0x2520, 0x1D66, 0x2521, 0x1D69, 0x2522, 0x1D68, 0x2523, 0x1D6A,
|
||||
0x2524, 0x1D6B, 0x2525, 0x1D6F, 0x2526, 0x1D6D, 0x2527, 0x1D6C, 0x2528,
|
||||
0x1D6E, 0x2529, 0x1D71, 0x252A, 0x1D70, 0x252B, 0x1D72, 0x252C, 0x1D5B,
|
||||
0x252D, 0x1D5D, 0x252E, 0x1D5E, 0x252F, 0x1D5F, 0x2530, 0x1D5C, 0x2531,
|
||||
0x1D60, 0x2532, 0x1D61, 0x2533, 0x1D62, 0x2534, 0x1D53, 0x2535, 0x1D55,
|
||||
0x2536, 0x1D56, 0x2537, 0x1D57, 0x2538, 0x1D54, 0x2539, 0x1D58, 0x253A,
|
||||
0x1D59, 0x253B, 0x1D5A, 0x253D, 0x1D77, 0x253E, 0x1D78, 0x253F, 0x1D79,
|
||||
0x2540, 0x1D75, 0x2541, 0x1D74, 0x2542, 0x1D76, 0x2543, 0x1D7B, 0x2544,
|
||||
0x1D7D, 0x2545, 0x1D7A, 0x2546, 0x1D7C, 0x2547, 0x1D81, 0x2548, 0x1D80,
|
||||
0x2549, 0x1D7E, 0x254A, 0x1D7F, 0x261C, 0x201D, 0x261D, 0x201B, 0x261E,
|
||||
0x201E, 0x261F, 0x201C, 0x2702, 0x2F92, 0x27A1, 0x2011, 0x3001, 0x1ECF,
|
||||
0x3002, 0x1ED0, 0x3008, 0x1EE3, 0x3009, 0x1EE4, 0x300A, 0x1EE5, 0x300B,
|
||||
0x1EE6, 0x300C, 0x1EE7, 0x300D, 0x1EE8, 0x300E, 0x1EE9, 0x300F, 0x1EEA,
|
||||
0x3010, 0x1EEB, 0x3011, 0x1EEC, 0x3013, 0x204E, 0x3014, 0x1EDD, 0x3015,
|
||||
0x1EDE, 0x301C, 0x1ED6, 0x301D, 0x1F14, 0x301F, 0x1F15, 0x3041, 0x1EEE,
|
||||
0x3043, 0x1EEF, 0x3045, 0x1EF0, 0x3047, 0x1EF1, 0x3049, 0x1EF2, 0x3063,
|
||||
0x1EF3, 0x3083, 0x1EF4, 0x3085, 0x1EF5, 0x3087, 0x1EF6, 0x308E, 0x1EF7,
|
||||
0x309B, 0x2050, 0x309C, 0x204F, 0x30A1, 0x1EF8, 0x30A3, 0x1EF9, 0x30A5,
|
||||
0x1EFA, 0x30A7, 0x1EFB, 0x30A9, 0x1EFC, 0x30C3, 0x1EFD, 0x30E3, 0x1EFE,
|
||||
0x30E5, 0x1EFF, 0x30E7, 0x1F00, 0x30EE, 0x1F01, 0x30F5, 0x1F02, 0x30F6,
|
||||
0x1F03, 0x30FC, 0x1ED3, 0x3300, 0x209E, 0x3301, 0x2EB6, 0x3302, 0x2EB7,
|
||||
0x3303, 0x2092, 0x3304, 0x2EB8, 0x3305, 0x208D, 0x3306, 0x2EB9, 0x3307,
|
||||
0x2EBD, 0x3308, 0x2EBB, 0x3309, 0x2EC0, 0x330A, 0x2EBE, 0x330B, 0x2EC2,
|
||||
0x330C, 0x2EC4, 0x330D, 0x1F0E, 0x330E, 0x2EC5, 0x330F, 0x2EC6, 0x3310,
|
||||
0x2EC7, 0x3311, 0x2EC8, 0x3312, 0x2EC9, 0x3313, 0x2ECA, 0x3314, 0x1F05,
|
||||
0x3315, 0x2094, 0x3316, 0x208A, 0x3317, 0x2ECC, 0x3318, 0x2093, 0x3319,
|
||||
0x2ECE, 0x331A, 0x2ED0, 0x331B, 0x2ED1, 0x331C, 0x2ED2, 0x331D, 0x2ED3,
|
||||
0x331E, 0x20A1, 0x331F, 0x2ED4, 0x3320, 0x2ED5, 0x3321, 0x2ED6, 0x3322,
|
||||
0x2089, 0x3323, 0x209C, 0x3324, 0x2ED7, 0x3325, 0x2ED9, 0x3326, 0x1F0F,
|
||||
0x3327, 0x1F09, 0x3328, 0x2EDC, 0x3329, 0x2EDD, 0x332A, 0x20A4, 0x332B,
|
||||
0x1F11, 0x332D, 0x2EDF, 0x332E, 0x2EE2, 0x332F, 0x2EE3, 0x3330, 0x2EE4,
|
||||
0x3331, 0x20A6, 0x3332, 0x2EE5, 0x3333, 0x208E, 0x3334, 0x2EE8, 0x3335,
|
||||
0x2EE9, 0x3336, 0x1F0B, 0x3337, 0x2EEE, 0x3338, 0x2EF0, 0x3339, 0x2097,
|
||||
0x333A, 0x2EF1, 0x333B, 0x209D, 0x333C, 0x2EEA, 0x333D, 0x2EF2, 0x333E,
|
||||
0x2EF4, 0x333F, 0x2EF5, 0x3340, 0x2EF6, 0x3341, 0x2EF3, 0x3342, 0x209B,
|
||||
0x3343, 0x2EF7, 0x3344, 0x2EF8, 0x3345, 0x2EF9, 0x3346, 0x2EFA, 0x3347,
|
||||
0x20A5, 0x3348, 0x2EFB, 0x3349, 0x1F04, 0x334A, 0x1F12, 0x334B, 0x2EFC,
|
||||
0x334C, 0x2EFD, 0x334D, 0x1F07, 0x334E, 0x2091, 0x334F, 0x2EFE, 0x3350,
|
||||
0x2EFF, 0x3351, 0x1F0C, 0x3352, 0x2F02, 0x3353, 0x2F06, 0x3354, 0x2F03,
|
||||
0x3355, 0x2F07, 0x3356, 0x2F08, 0x3357, 0x2098, 0x337F, 0x2084, 0xFF08,
|
||||
0x1EDB, 0xFF09, 0x1EDC, 0xFF0C, 0x204C, 0xFF0E, 0x2052, 0xFF1D, 0x1EED,
|
||||
0xFF3B, 0x1EDF, 0xFF3D, 0x1EE0, 0xFF3F, 0x1ED2, 0xFF5B, 0x1EE1, 0xFF5C,
|
||||
0x1ED8, 0xFF5D, 0x1EE2, 0xFF5E, 0x1ED6, 0xFFE3, 0x1ED1,
|
||||
};
|
19
modules/pdfium/pdfium/core/fpdfapi/cmaps/Japan1/V_1.cpp
Normal file
19
modules/pdfium/pdfium/core/fpdfapi/cmaps/Japan1/V_1.cpp
Normal file
@ -0,0 +1,19 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/Japan1/cmaps_japan1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_V_1[27 * 3] = {
|
||||
0x2122, 0x2123, 0x1ECF, 0x2131, 0x2132, 0x1ED1, 0x213C, 0x213E, 0x1ED3,
|
||||
0x2141, 0x2145, 0x1ED6, 0x214A, 0x215B, 0x1EDB, 0x2161, 0x2161, 0x1EED,
|
||||
0x2421, 0x2421, 0x1EEE, 0x2423, 0x2423, 0x1EEF, 0x2425, 0x2425, 0x1EF0,
|
||||
0x2427, 0x2427, 0x1EF1, 0x2429, 0x2429, 0x1EF2, 0x2443, 0x2443, 0x1EF3,
|
||||
0x2463, 0x2463, 0x1EF4, 0x2465, 0x2465, 0x1EF5, 0x2467, 0x2467, 0x1EF6,
|
||||
0x246E, 0x246E, 0x1EF7, 0x2521, 0x2521, 0x1EF8, 0x2523, 0x2523, 0x1EF9,
|
||||
0x2525, 0x2525, 0x1EFA, 0x2527, 0x2527, 0x1EFB, 0x2529, 0x2529, 0x1EFC,
|
||||
0x2543, 0x2543, 0x1EFD, 0x2563, 0x2563, 0x1EFE, 0x2565, 0x2565, 0x1EFF,
|
||||
0x2567, 0x2567, 0x1F00, 0x256E, 0x256E, 0x1F01, 0x2575, 0x2576, 0x1F02,
|
||||
};
|
@ -0,0 +1,68 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/Japan1/cmaps_japan1.h"
|
||||
|
||||
#include "core/fpdfapi/cmaps/cmap_int.h"
|
||||
#include "core/fpdfapi/cpdf_modulemgr.h"
|
||||
#include "core/fpdfapi/font/font_int.h"
|
||||
#include "core/fpdfapi/page/cpdf_pagemodule.h"
|
||||
#include "core/fxcrt/fx_basic.h"
|
||||
|
||||
static const FXCMAP_CMap g_FXCMAP_Japan1_cmaps[] = {
|
||||
{"83pv-RKSJ-H", FXCMAP_CMap::Range, g_FXCMAP_83pv_RKSJ_H_1, 222,
|
||||
FXCMAP_CMap::None, nullptr, 0, 0},
|
||||
{"90ms-RKSJ-H", FXCMAP_CMap::Range, g_FXCMAP_90ms_RKSJ_H_2, 171,
|
||||
FXCMAP_CMap::None, nullptr, 0, 0},
|
||||
{"90ms-RKSJ-V", FXCMAP_CMap::Range, g_FXCMAP_90ms_RKSJ_V_2, 78,
|
||||
FXCMAP_CMap::None, nullptr, 0, -1},
|
||||
{"90msp-RKSJ-H", FXCMAP_CMap::Range, g_FXCMAP_90msp_RKSJ_H_2, 170,
|
||||
FXCMAP_CMap::None, nullptr, 0, -2},
|
||||
{"90msp-RKSJ-V", FXCMAP_CMap::Range, g_FXCMAP_90msp_RKSJ_V_2, 78,
|
||||
FXCMAP_CMap::None, nullptr, 0, -1},
|
||||
{"90pv-RKSJ-H", FXCMAP_CMap::Range, g_FXCMAP_90pv_RKSJ_H_1, 263,
|
||||
FXCMAP_CMap::None, nullptr, 0, 0},
|
||||
{"Add-RKSJ-H", FXCMAP_CMap::Range, g_FXCMAP_Add_RKSJ_H_1, 635,
|
||||
FXCMAP_CMap::None, nullptr, 0, 0},
|
||||
{"Add-RKSJ-V", FXCMAP_CMap::Range, g_FXCMAP_Add_RKSJ_V_1, 57,
|
||||
FXCMAP_CMap::None, nullptr, 0, -1},
|
||||
{"EUC-H", FXCMAP_CMap::Range, g_FXCMAP_EUC_H_1, 120, FXCMAP_CMap::None,
|
||||
nullptr, 0, 0},
|
||||
{"EUC-V", FXCMAP_CMap::Range, g_FXCMAP_EUC_V_1, 27, FXCMAP_CMap::None,
|
||||
nullptr, 0, -1},
|
||||
{"Ext-RKSJ-H", FXCMAP_CMap::Range, g_FXCMAP_Ext_RKSJ_H_2, 665,
|
||||
FXCMAP_CMap::None, nullptr, 0, -4},
|
||||
{"Ext-RKSJ-V", FXCMAP_CMap::Range, g_FXCMAP_Ext_RKSJ_V_2, 39,
|
||||
FXCMAP_CMap::None, nullptr, 0, -1},
|
||||
{"H", FXCMAP_CMap::Range, g_FXCMAP_H_1, 118, FXCMAP_CMap::None, nullptr, 0,
|
||||
0},
|
||||
{"V", FXCMAP_CMap::Range, g_FXCMAP_V_1, 27, FXCMAP_CMap::None, nullptr, 0,
|
||||
-1},
|
||||
{"UniJIS-UCS2-H", FXCMAP_CMap::Single, g_FXCMAP_UniJIS_UCS2_H_4, 9772,
|
||||
FXCMAP_CMap::None, nullptr, 0, 0},
|
||||
{"UniJIS-UCS2-V", FXCMAP_CMap::Single, g_FXCMAP_UniJIS_UCS2_V_4, 251,
|
||||
FXCMAP_CMap::None, nullptr, 0, -1},
|
||||
{"UniJIS-UCS2-HW-H", FXCMAP_CMap::Range, g_FXCMAP_UniJIS_UCS2_HW_H_4, 4,
|
||||
FXCMAP_CMap::None, nullptr, 0, -2},
|
||||
{"UniJIS-UCS2-HW-V", FXCMAP_CMap::Range, g_FXCMAP_UniJIS_UCS2_HW_V_4, 199,
|
||||
FXCMAP_CMap::None, nullptr, 0, -1},
|
||||
{"UniJIS-UTF16-H", FXCMAP_CMap::Single, g_FXCMAP_UniJIS_UCS2_H_4, 9772,
|
||||
FXCMAP_CMap::None, nullptr, 0, 0},
|
||||
{"UniJIS-UTF16-V", FXCMAP_CMap::Single, g_FXCMAP_UniJIS_UCS2_V_4, 251,
|
||||
FXCMAP_CMap::None, nullptr, 0, -1},
|
||||
};
|
||||
|
||||
void CPDF_ModuleMgr::LoadEmbeddedJapan1CMaps() {
|
||||
CPDF_FontGlobals* pFontGlobals =
|
||||
CPDF_ModuleMgr::Get()->GetPageModule()->GetFontGlobals();
|
||||
pFontGlobals->m_EmbeddedCharsets[CIDSET_JAPAN1].m_pMapList =
|
||||
g_FXCMAP_Japan1_cmaps;
|
||||
pFontGlobals->m_EmbeddedCharsets[CIDSET_JAPAN1].m_Count =
|
||||
FX_ArraySize(g_FXCMAP_Japan1_cmaps);
|
||||
pFontGlobals->m_EmbeddedToUnicodes[CIDSET_JAPAN1].m_pMap =
|
||||
g_FXCMAP_Japan1CID2Unicode_4;
|
||||
pFontGlobals->m_EmbeddedToUnicodes[CIDSET_JAPAN1].m_Count = 15444;
|
||||
}
|
@ -0,0 +1,35 @@
|
||||
// Copyright 2015 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#ifndef CORE_FPDFAPI_CMAPS_JAPAN1_CMAPS_JAPAN1_H_
|
||||
#define CORE_FPDFAPI_CMAPS_JAPAN1_CMAPS_JAPAN1_H_
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
extern const uint16_t g_FXCMAP_83pv_RKSJ_H_1[];
|
||||
extern const uint16_t g_FXCMAP_90ms_RKSJ_H_2[];
|
||||
extern const uint16_t g_FXCMAP_90ms_RKSJ_V_2[];
|
||||
extern const uint16_t g_FXCMAP_90msp_RKSJ_H_2[];
|
||||
extern const uint16_t g_FXCMAP_90msp_RKSJ_V_2[];
|
||||
extern const uint16_t g_FXCMAP_90pv_RKSJ_H_1[];
|
||||
extern const uint16_t g_FXCMAP_Add_RKSJ_H_1[];
|
||||
extern const uint16_t g_FXCMAP_Add_RKSJ_V_1[];
|
||||
extern const uint16_t g_FXCMAP_EUC_H_1[];
|
||||
extern const uint16_t g_FXCMAP_EUC_V_1[];
|
||||
extern const uint16_t g_FXCMAP_Ext_RKSJ_H_2[];
|
||||
extern const uint16_t g_FXCMAP_Ext_RKSJ_V_2[];
|
||||
extern const uint16_t g_FXCMAP_H_1[];
|
||||
extern const uint16_t g_FXCMAP_V_1[];
|
||||
extern const uint16_t g_FXCMAP_UniJIS_UCS2_H_4[];
|
||||
extern const uint16_t g_FXCMAP_UniJIS_UCS2_V_4[];
|
||||
extern const uint16_t g_FXCMAP_UniJIS_UCS2_HW_H_4[];
|
||||
extern const uint16_t g_FXCMAP_UniJIS_UCS2_HW_V_4[];
|
||||
extern const uint16_t g_FXCMAP_UniJIS_UTF16_H_0[];
|
||||
extern const uint16_t g_FXCMAP_UniJIS_UTF16_H_0_DWord[];
|
||||
extern const uint16_t g_FXCMAP_UniJIS_UTF16_V_0[];
|
||||
extern const uint16_t g_FXCMAP_Japan1CID2Unicode_4[];
|
||||
|
||||
#endif // CORE_FPDFAPI_CMAPS_JAPAN1_CMAPS_JAPAN1_H_
|
File diff suppressed because it is too large
Load Diff
166
modules/pdfium/pdfium/core/fpdfapi/cmaps/Korea1/KSC-EUC-H_0.cpp
Normal file
166
modules/pdfium/pdfium/core/fpdfapi/cmaps/Korea1/KSC-EUC-H_0.cpp
Normal file
@ -0,0 +1,166 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/Korea1/cmaps_korea1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_KSC_EUC_H_0[467 * 3] = {
|
||||
0x0020, 0x007E, 0x1F9E, 0xA1A1, 0xA1FE, 0x0065, 0xA2A1, 0xA2E5, 0x00C3,
|
||||
0xA3A1, 0xA3FE, 0x0108, 0xA4A1, 0xA4D3, 0x0166, 0xA4D5, 0xA4FE, 0x0199,
|
||||
0xA5A1, 0xA5AA, 0x01C3, 0xA5B0, 0xA5B9, 0x01CD, 0xA5C1, 0xA5D8, 0x01D7,
|
||||
0xA5E1, 0xA5F8, 0x01EF, 0xA6A1, 0xA6E4, 0x0207, 0xA7A1, 0xA7EF, 0x024B,
|
||||
0xA8A1, 0xA8A4, 0x029A, 0xA8A6, 0xA8A6, 0x029E, 0xA8A8, 0xA8AF, 0x029F,
|
||||
0xA8B1, 0xA8FE, 0x02A7, 0xA9A1, 0xA9FE, 0x02F5, 0xAAA1, 0xAAF3, 0x0353,
|
||||
0xABA1, 0xABF6, 0x03A6, 0xACA1, 0xACC1, 0x03FC, 0xACD1, 0xACF1, 0x041D,
|
||||
0xB0A1, 0xB0FE, 0x043E, 0xB1A1, 0xB1FE, 0x049C, 0xB2A1, 0xB2FE, 0x04FA,
|
||||
0xB3A1, 0xB3FE, 0x0558, 0xB4A1, 0xB4FE, 0x05B6, 0xB5A1, 0xB5FE, 0x0614,
|
||||
0xB6A1, 0xB6FE, 0x0672, 0xB7A1, 0xB7FE, 0x06D0, 0xB8A1, 0xB8FE, 0x072E,
|
||||
0xB9A1, 0xB9FE, 0x078C, 0xBAA1, 0xBAFE, 0x07EA, 0xBBA1, 0xBBFE, 0x0848,
|
||||
0xBCA1, 0xBCFE, 0x08A6, 0xBDA1, 0xBDFE, 0x0904, 0xBEA1, 0xBEFE, 0x0962,
|
||||
0xBFA1, 0xBFFE, 0x09C0, 0xC0A1, 0xC0FE, 0x0A1E, 0xC1A1, 0xC1FE, 0x0A7C,
|
||||
0xC2A1, 0xC2FE, 0x0ADA, 0xC3A1, 0xC3FE, 0x0B38, 0xC4A1, 0xC4FE, 0x0B96,
|
||||
0xC5A1, 0xC5FE, 0x0BF4, 0xC6A1, 0xC6FE, 0x0C52, 0xC7A1, 0xC7FE, 0x0CB0,
|
||||
0xC8A1, 0xC8FE, 0x0D0E, 0xCAA1, 0xCAFE, 0x0D6C, 0xCBA1, 0xCBCF, 0x0DCA,
|
||||
0xCBD0, 0xCBD0, 0x1014, 0xCBD1, 0xCBD5, 0x0DF9, 0xCBD6, 0xCBD6, 0x0E5E,
|
||||
0xCBD7, 0xCBE6, 0x0DFE, 0xCBE7, 0xCBE7, 0x1B8D, 0xCBE8, 0xCBFE, 0x0E0E,
|
||||
0xCCA1, 0xCCFE, 0x0E25, 0xCDA1, 0xCDCE, 0x0E83, 0xCDCF, 0xCDCF, 0x0D84,
|
||||
0xCDD0, 0xCDE7, 0x0EB1, 0xCDE8, 0xCDE8, 0x1EDC, 0xCDE9, 0xCDFE, 0x0EC9,
|
||||
0xCEA1, 0xCEAC, 0x0EDF, 0xCEAD, 0xCEAD, 0x0EDA, 0xCEAE, 0xCEFE, 0x0EEB,
|
||||
0xCFA1, 0xCFFA, 0x0F3C, 0xCFFB, 0xCFFB, 0x0F3E, 0xCFFC, 0xCFFE, 0x0F96,
|
||||
0xD0A1, 0xD0A1, 0x0F99, 0xD0A2, 0xD0A2, 0x0F6A, 0xD0A3, 0xD0B7, 0x0F9A,
|
||||
0xD0B8, 0xD0B8, 0x0F6A, 0xD0B9, 0xD0CF, 0x0FAF, 0xD0D0, 0xD0D0, 0x0E7C,
|
||||
0xD0D1, 0xD0DC, 0x0FC6, 0xD0DD, 0xD0DD, 0x1023, 0xD0DE, 0xD0FE, 0x0FD2,
|
||||
0xD1A1, 0xD1D3, 0x0FF3, 0xD1D4, 0xD1D4, 0x1116, 0xD1D5, 0xD1D5, 0x103C,
|
||||
0xD1D6, 0xD1D7, 0x1026, 0xD1D8, 0xD1D8, 0x1117, 0xD1D9, 0xD1DA, 0x1028,
|
||||
0xD1DB, 0xD1E0, 0x1118, 0xD1E1, 0xD1E1, 0x102A, 0xD1E2, 0xD1E2, 0x16A8,
|
||||
0xD1E3, 0xD1E5, 0x111E, 0xD1E6, 0xD1E6, 0x1122, 0xD1E7, 0xD1E7, 0x102B,
|
||||
0xD1E8, 0xD1EB, 0x1123, 0xD1EC, 0xD1EC, 0x102C, 0xD1ED, 0xD1ED, 0x1127,
|
||||
0xD1EE, 0xD1EE, 0x102D, 0xD1EF, 0xD1F0, 0x112A, 0xD1F1, 0xD1F1, 0x102E,
|
||||
0xD1F2, 0xD1F2, 0x112C, 0xD1F3, 0xD1F5, 0x102F, 0xD1F6, 0xD1F6, 0x112F,
|
||||
0xD1F7, 0xD1F9, 0x1032, 0xD1FA, 0xD1FA, 0x1133, 0xD1FB, 0xD1FB, 0x1035,
|
||||
0xD1FC, 0xD1FD, 0x1136, 0xD1FE, 0xD1FE, 0x1139, 0xD2A1, 0xD2A1, 0x1036,
|
||||
0xD2A2, 0xD2A3, 0x113A, 0xD2A4, 0xD2A6, 0x1037, 0xD2A7, 0xD2AA, 0x113C,
|
||||
0xD2AB, 0xD2AB, 0x1143, 0xD2AC, 0xD2AC, 0x103A, 0xD2AD, 0xD2AD, 0x1144,
|
||||
0xD2AE, 0xD2B1, 0x103B, 0xD2B2, 0xD2B2, 0x1148, 0xD2B3, 0xD2BD, 0x103F,
|
||||
0xD2BE, 0xD2BE, 0x119F, 0xD2BF, 0xD2C1, 0x104A, 0xD2C2, 0xD2C3, 0x11A1,
|
||||
0xD2C4, 0xD2C4, 0x11A5, 0xD2C5, 0xD2C5, 0x104D, 0xD2C6, 0xD2CA, 0x11A6,
|
||||
0xD2CB, 0xD2CB, 0x11AC, 0xD2CC, 0xD2CC, 0x104E, 0xD2CD, 0xD2CE, 0x11AD,
|
||||
0xD2CF, 0xD2D4, 0x11B0, 0xD2D5, 0xD2D7, 0x11B7, 0xD2D8, 0xD2D8, 0x104F,
|
||||
0xD2D9, 0xD2DA, 0x11BD, 0xD2DB, 0xD2DD, 0x1050, 0xD2DE, 0xD2DF, 0x11C1,
|
||||
0xD2E0, 0xD2E0, 0x1053, 0xD2E1, 0xD2E1, 0x11C3, 0xD2E2, 0xD2E2, 0x11C6,
|
||||
0xD2E3, 0xD2E3, 0x1054, 0xD2E4, 0xD2E4, 0x11D4, 0xD2E5, 0xD2E8, 0x11D6,
|
||||
0xD2E9, 0xD2EA, 0x11DB, 0xD2EB, 0xD2EB, 0x11E0, 0xD2EC, 0xD2EF, 0x1055,
|
||||
0xD2F0, 0xD2F3, 0x11FC, 0xD2F4, 0xD2F5, 0x1201, 0xD2F6, 0xD2F6, 0x1059,
|
||||
0xD2F7, 0xD2F8, 0x1203, 0xD2F9, 0xD2FE, 0x105A, 0xD3A1, 0xD3FE, 0x1060,
|
||||
0xD4A1, 0xD4E5, 0x10BE, 0xD4E6, 0xD4E6, 0x10DE, 0xD4E7, 0xD4FB, 0x1103,
|
||||
0xD4FC, 0xD4FC, 0x1028, 0xD4FD, 0xD4FE, 0x1118, 0xD5A1, 0xD5A4, 0x111A,
|
||||
0xD5A5, 0xD5A5, 0x16A8, 0xD5A6, 0xD5AA, 0x111E, 0xD5AB, 0xD5AB, 0x102B,
|
||||
0xD5AC, 0xD5AD, 0x1123, 0xD5AE, 0xD5AE, 0x1060, 0xD5AF, 0xD5FE, 0x1125,
|
||||
0xD6A1, 0xD6B7, 0x1175, 0xD6B8, 0xD6B8, 0x1047, 0xD6B9, 0xD6CC, 0x118C,
|
||||
0xD6CD, 0xD6CD, 0x104C, 0xD6CE, 0xD6FE, 0x11A0, 0xD7A1, 0xD7CA, 0x11D1,
|
||||
0xD7CB, 0xD7CB, 0x15B0, 0xD7CC, 0xD7E3, 0x11FB, 0xD7E4, 0xD7E4, 0x1918,
|
||||
0xD7E5, 0xD7FE, 0x1213, 0xD8A1, 0xD8FE, 0x122D, 0xD9A1, 0xD9FE, 0x128B,
|
||||
0xDAA1, 0xDAFE, 0x12E9, 0xDBA1, 0xDBC4, 0x1347, 0xDBC5, 0xDBC5, 0x141F,
|
||||
0xDBC6, 0xDBE3, 0x136B, 0xDBE4, 0xDBE4, 0x133A, 0xDBE5, 0xDBFE, 0x1389,
|
||||
0xDCA1, 0xDCA4, 0x13A3, 0xDCA5, 0xDCA5, 0x1D5E, 0xDCA6, 0xDCFE, 0x13A7,
|
||||
0xDDA1, 0xDDA4, 0x1400, 0xDDA5, 0xDDA5, 0x13D7, 0xDDA6, 0xDDD4, 0x1404,
|
||||
0xDDD5, 0xDDD5, 0x13F5, 0xDDD6, 0xDDF3, 0x1433, 0xDDF4, 0xDDF4, 0x1DB7,
|
||||
0xDDF5, 0xDDFE, 0x1451, 0xDEA1, 0xDEFB, 0x145B, 0xDEFC, 0xDEFC, 0x15D0,
|
||||
0xDEFD, 0xDEFD, 0x14B6, 0xDEFE, 0xDEFE, 0x14F7, 0xDFA1, 0xDFB2, 0x14B7,
|
||||
0xDFB3, 0xDFB3, 0x1BAB, 0xDFB4, 0xDFE0, 0x14C9, 0xDFE1, 0xDFE1, 0x14F2,
|
||||
0xDFE2, 0xDFE7, 0x14F6, 0xDFE8, 0xDFE8, 0x156D, 0xDFE9, 0xDFFE, 0x14FC,
|
||||
0xE0A1, 0xE0F0, 0x1512, 0xE0F1, 0xE0F1, 0x1771, 0xE0F2, 0xE0FE, 0x1562,
|
||||
0xE1A1, 0xE1AC, 0x156F, 0xE1AD, 0xE1AD, 0x1554, 0xE1AE, 0xE1EC, 0x157B,
|
||||
0xE1ED, 0xE1ED, 0x14C5, 0xE1EE, 0xE1FE, 0x15BA, 0xE2A1, 0xE2FE, 0x15CB,
|
||||
0xE3A1, 0xE3F4, 0x1629, 0xE3F5, 0xE3F5, 0x1B61, 0xE3F6, 0xE3FE, 0x167D,
|
||||
0xE4A1, 0xE4A1, 0x1CCA, 0xE4A2, 0xE4A8, 0x1686, 0xE4A9, 0xE4A9, 0x162E,
|
||||
0xE4AA, 0xE4FE, 0x168D, 0xE5A1, 0xE5AD, 0x16E2, 0xE5AE, 0xE5AE, 0x16F2,
|
||||
0xE5AF, 0xE5B0, 0x16EF, 0xE5B1, 0xE5B2, 0x1149, 0xE5B3, 0xE5B8, 0x16F1,
|
||||
0xE5B9, 0xE5B9, 0x114B, 0xE5BA, 0xE5BA, 0x16F7, 0xE5BB, 0xE5BC, 0x114D,
|
||||
0xE5BD, 0xE5C3, 0x16F8, 0xE5C4, 0xE5C4, 0x114F, 0xE5C5, 0xE5CD, 0x16FF,
|
||||
0xE5CE, 0xE5CE, 0x1153, 0xE5CF, 0xE5CF, 0x1708, 0xE5D0, 0xE5D0, 0x1154,
|
||||
0xE5D1, 0xE5D1, 0x1709, 0xE5D2, 0xE5D2, 0x1155, 0xE5D3, 0xE5D5, 0x170A,
|
||||
0xE5D6, 0xE5D6, 0x1157, 0xE5D7, 0xE5F9, 0x170D, 0xE5FA, 0xE5FB, 0x115A,
|
||||
0xE5FC, 0xE5FC, 0x103F, 0xE5FD, 0xE5FD, 0x1730, 0xE5FE, 0xE5FE, 0x115C,
|
||||
0xE6A1, 0xE6A1, 0x115F, 0xE6A2, 0xE6A3, 0x1731, 0xE6A4, 0xE6A4, 0x1161,
|
||||
0xE6A5, 0xE6A6, 0x1733, 0xE6A7, 0xE6A7, 0x1162, 0xE6A8, 0xE6AC, 0x1735,
|
||||
0xE6AD, 0xE6AD, 0x1165, 0xE6AE, 0xE6AE, 0x173A, 0xE6AF, 0xE6B1, 0x1167,
|
||||
0xE6B2, 0xE6B2, 0x173B, 0xE6B3, 0xE6B3, 0x116A, 0xE6B4, 0xE6B6, 0x173C,
|
||||
0xE6B7, 0xE6B8, 0x116B, 0xE6B9, 0xE6BB, 0x173F, 0xE6BC, 0xE6BC, 0x116F,
|
||||
0xE6BD, 0xE6C3, 0x1742, 0xE6C4, 0xE6C4, 0x1040, 0xE6C5, 0xE6C5, 0x1749,
|
||||
0xE6C6, 0xE6C7, 0x1171, 0xE6C8, 0xE6C9, 0x174A, 0xE6CA, 0xE6CA, 0x1041,
|
||||
0xE6CB, 0xE6D1, 0x174C, 0xE6D2, 0xE6D2, 0x1174, 0xE6D3, 0xE6D5, 0x1753,
|
||||
0xE6D6, 0xE6D6, 0x1175, 0xE6D7, 0xE6D8, 0x1756, 0xE6D9, 0xE6D9, 0x1176,
|
||||
0xE6DA, 0xE6DB, 0x1758, 0xE6DC, 0xE6DC, 0x1042, 0xE6DD, 0xE6DE, 0x175A,
|
||||
0xE6DF, 0xE6DF, 0x1177, 0xE6E0, 0xE6E0, 0x175C, 0xE6E1, 0xE6E1, 0x1178,
|
||||
0xE6E2, 0xE6E3, 0x175D, 0xE6E4, 0xE6E4, 0x117A, 0xE6E5, 0xE6E5, 0x1179,
|
||||
0xE6E6, 0xE6E6, 0x117B, 0xE6E7, 0xE6E7, 0x175F, 0xE6E8, 0xE6E8, 0x117C,
|
||||
0xE6E9, 0xE6E9, 0x1760, 0xE6EA, 0xE6EB, 0x117E, 0xE6EC, 0xE6EC, 0x192F,
|
||||
0xE6ED, 0xE6EE, 0x1761, 0xE6EF, 0xE6EF, 0x1181, 0xE6F0, 0xE6F0, 0x1763,
|
||||
0xE6F1, 0xE6F1, 0x1182, 0xE6F2, 0xE6F2, 0x1554, 0xE6F3, 0xE6F4, 0x1764,
|
||||
0xE6F5, 0xE6F5, 0x1183, 0xE6F6, 0xE6F6, 0x1043, 0xE6F7, 0xE6F7, 0x1046,
|
||||
0xE6F8, 0xE6F8, 0x1766, 0xE6F9, 0xE6F9, 0x1185, 0xE6FA, 0xE6FE, 0x1767,
|
||||
0xE7A1, 0xE7A1, 0x1187, 0xE7A2, 0xE7A5, 0x176C, 0xE7A6, 0xE7A6, 0x1188,
|
||||
0xE7A7, 0xE7A8, 0x1770, 0xE7A9, 0xE7A9, 0x1189, 0xE7AA, 0xE7AA, 0x118B,
|
||||
0xE7AB, 0xE7AB, 0x1772, 0xE7AC, 0xE7AC, 0x1047, 0xE7AD, 0xE7AD, 0x118D,
|
||||
0xE7AE, 0xE7AF, 0x1773, 0xE7B0, 0xE7B0, 0x118E, 0xE7B1, 0xE7BE, 0x1775,
|
||||
0xE7BF, 0xE7BF, 0x118F, 0xE7C0, 0xE7C0, 0x1783, 0xE7C1, 0xE7C1, 0x1E67,
|
||||
0xE7C2, 0xE7C5, 0x1784, 0xE7C6, 0xE7C6, 0x1191, 0xE7C7, 0xE7C7, 0x1193,
|
||||
0xE7C8, 0xE7CA, 0x1788, 0xE7CB, 0xE7CB, 0x1195, 0xE7CC, 0xE7CC, 0x178B,
|
||||
0xE7CD, 0xE7CD, 0x1196, 0xE7CE, 0xE7CE, 0x178C, 0xE7CF, 0xE7D0, 0x1197,
|
||||
0xE7D1, 0xE7D2, 0x178D, 0xE7D3, 0xE7D3, 0x119A, 0xE7D4, 0xE7DE, 0x178F,
|
||||
0xE7DF, 0xE7DF, 0x119C, 0xE7E0, 0xE7E3, 0x179A, 0xE7E4, 0xE7E4, 0x119D,
|
||||
0xE7E5, 0xE7E5, 0x179E, 0xE7E6, 0xE7E6, 0x119E, 0xE7E7, 0xE7F6, 0x179F,
|
||||
0xE7F7, 0xE7F7, 0x16A5, 0xE7F8, 0xE7FE, 0x17AF, 0xE8A1, 0xE8E6, 0x17B6,
|
||||
0xE8E7, 0xE8E8, 0x11C7, 0xE8E9, 0xE8EF, 0x17FC, 0xE8F0, 0xE8F0, 0x11C9,
|
||||
0xE8F1, 0xE8F1, 0x1054, 0xE8F2, 0xE8F6, 0x1803, 0xE8F7, 0xE8F7, 0x11CB,
|
||||
0xE8F8, 0xE8F8, 0x1808, 0xE8F9, 0xE8F9, 0x16A8, 0xE8FA, 0xE8FA, 0x1809,
|
||||
0xE8FB, 0xE8FB, 0x11CC, 0xE8FC, 0xE8FD, 0x180A, 0xE8FE, 0xE8FE, 0x11CD,
|
||||
0xE9A1, 0xE9A6, 0x180C, 0xE9A7, 0xE9A7, 0x11D0, 0xE9A8, 0xE9AB, 0x1812,
|
||||
0xE9AC, 0xE9AC, 0x11D1, 0xE9AD, 0xE9CB, 0x1816, 0xE9CC, 0xE9CC, 0x11D3,
|
||||
0xE9CD, 0xE9F6, 0x1835, 0xE9F7, 0xE9F7, 0x1F34, 0xE9F8, 0xE9FE, 0x185F,
|
||||
0xEAA1, 0xEAC0, 0x1866, 0xEAC1, 0xEAC1, 0x17EB, 0xEAC2, 0xEAE4, 0x1886,
|
||||
0xEAE5, 0xEAE5, 0x11E1, 0xEAE6, 0xEAF3, 0x18A9, 0xEAF4, 0xEAF4, 0x1057,
|
||||
0xEAF5, 0xEAF6, 0x18B7, 0xEAF7, 0xEAF7, 0x11E3, 0xEAF8, 0xEAFB, 0x18B9,
|
||||
0xEAFC, 0xEAFC, 0x11E5, 0xEAFD, 0xEAFD, 0x18BD, 0xEAFE, 0xEAFE, 0x11E6,
|
||||
0xEBA1, 0xEBA3, 0x18BE, 0xEBA4, 0xEBA4, 0x11E8, 0xEBA5, 0xEBA6, 0x18C1,
|
||||
0xEBA7, 0xEBA7, 0x11EA, 0xEBA8, 0xEBA8, 0x18C3, 0xEBA9, 0xEBA9, 0x11EC,
|
||||
0xEBAA, 0xEBAA, 0x1058, 0xEBAB, 0xEBB9, 0x18C4, 0xEBBA, 0xEBBB, 0x11EE,
|
||||
0xEBBC, 0xEBBC, 0x18D3, 0xEBBD, 0xEBBD, 0x11F0, 0xEBBE, 0xEBC0, 0x18D4,
|
||||
0xEBC1, 0xEBC1, 0x11F1, 0xEBC2, 0xEBC2, 0x11F3, 0xEBC3, 0xEBC5, 0x18D7,
|
||||
0xEBC6, 0xEBC7, 0x11F4, 0xEBC8, 0xEBCB, 0x18DA, 0xEBCC, 0xEBCC, 0x11F7,
|
||||
0xEBCD, 0xEBCE, 0x18DE, 0xEBCF, 0xEBD1, 0x11F8, 0xEBD2, 0xEBD2, 0x15B0,
|
||||
0xEBD3, 0xEBD7, 0x18E0, 0xEBD8, 0xEBD8, 0x11FB, 0xEBD9, 0xEBFE, 0x18E5,
|
||||
0xECA1, 0xECA5, 0x190B, 0xECA6, 0xECA6, 0x1206, 0xECA7, 0xECA7, 0x1208,
|
||||
0xECA8, 0xECA9, 0x1910, 0xECAA, 0xECAA, 0x120A, 0xECAB, 0xECAE, 0x1912,
|
||||
0xECAF, 0xECAF, 0x173E, 0xECB0, 0xECB1, 0x120C, 0xECB2, 0xECB2, 0x105B,
|
||||
0xECB3, 0xECB4, 0x1916, 0xECB5, 0xECB5, 0x1211, 0xECB6, 0xECB7, 0x1918,
|
||||
0xECB8, 0xECB8, 0x1213, 0xECB9, 0xECB9, 0x191A, 0xECBA, 0xECBA, 0x1215,
|
||||
0xECBB, 0xECBF, 0x191B, 0xECC0, 0xECC1, 0x1218, 0xECC2, 0xECC4, 0x1920,
|
||||
0xECC5, 0xECC5, 0x121A, 0xECC6, 0xECC6, 0x121C, 0xECC7, 0xECC8, 0x1923,
|
||||
0xECC9, 0xECCA, 0x105C, 0xECCB, 0xECD4, 0x1925, 0xECD5, 0xECD5, 0x121E,
|
||||
0xECD6, 0xECDC, 0x192F, 0xECDD, 0xECDE, 0x1220, 0xECDF, 0xECE0, 0x1936,
|
||||
0xECE1, 0xECE1, 0x1222, 0xECE2, 0xECE3, 0x1938, 0xECE4, 0xECE4, 0x1224,
|
||||
0xECE5, 0xECE6, 0x193A, 0xECE7, 0xECE8, 0x1225, 0xECE9, 0xECF6, 0x193C,
|
||||
0xECF7, 0xECF8, 0x1227, 0xECF9, 0xECF9, 0x194A, 0xECFA, 0xECFA, 0x122A,
|
||||
0xECFB, 0xECFE, 0x194B, 0xEDA1, 0xEDA3, 0x122D, 0xEDA4, 0xEDED, 0x194F,
|
||||
0xEDEE, 0xEDEE, 0x14E7, 0xEDEF, 0xEDFE, 0x1999, 0xEEA1, 0xEEDA, 0x19A9,
|
||||
0xEEDB, 0xEEDB, 0x195E, 0xEEDC, 0xEEFE, 0x19E3, 0xEFA1, 0xEFFE, 0x1A06,
|
||||
0xF0A1, 0xF0FE, 0x1A64, 0xF1A1, 0xF1FE, 0x1AC2, 0xF2A1, 0xF2BC, 0x1B20,
|
||||
0xF2BD, 0xF2BD, 0x1663, 0xF2BE, 0xF2F9, 0x1B3C, 0xF2FA, 0xF2FA, 0x168B,
|
||||
0xF2FB, 0xF2FE, 0x1B78, 0xF3A1, 0xF3B0, 0x1B7C, 0xF3B1, 0xF3B1, 0x105F,
|
||||
0xF3B2, 0xF3FE, 0x1B8C, 0xF4A1, 0xF4A6, 0x1BD9, 0xF4A7, 0xF4A7, 0x1954,
|
||||
0xF4A8, 0xF4ED, 0x1BDF, 0xF4EE, 0xF4EE, 0x1A1C, 0xF4EF, 0xF4FE, 0x1C25,
|
||||
0xF5A1, 0xF5FE, 0x1C35, 0xF6A1, 0xF6F3, 0x1C93, 0xF6F4, 0xF6F4, 0x10B7,
|
||||
0xF6F5, 0xF6F5, 0x1CE6, 0xF6F6, 0xF6F6, 0x1BE3, 0xF6F7, 0xF6FE, 0x1CE7,
|
||||
0xF7A1, 0xF7B7, 0x1CEF, 0xF7B8, 0xF7B8, 0x1097, 0xF7B9, 0xF7C7, 0x1D06,
|
||||
0xF7C8, 0xF7C8, 0x10AA, 0xF7C9, 0xF7D2, 0x1D15, 0xF7D3, 0xF7D3, 0x10F4,
|
||||
0xF7D4, 0xF7FE, 0x1D1F, 0xF8A1, 0xF8DA, 0x1D4A, 0xF8DB, 0xF8DB, 0x1D94,
|
||||
0xF8DC, 0xF8EF, 0x1D84, 0xF8F0, 0xF8F0, 0x13E0, 0xF8F1, 0xF8FE, 0x1D98,
|
||||
0xF9A1, 0xF9FE, 0x1DA6, 0xFAA1, 0xFAA1, 0x1E1D, 0xFAA2, 0xFAA2, 0x0DE6,
|
||||
0xFAA3, 0xFAE5, 0x1E04, 0xFAE6, 0xFAE6, 0x0E3C, 0xFAE7, 0xFAFE, 0x1E47,
|
||||
0xFBA1, 0xFBFE, 0x1E5F, 0xFCA1, 0xFCA8, 0x1EBD, 0xFCA9, 0xFCA9, 0x0EE7,
|
||||
0xFCAA, 0xFCFE, 0x1EC5, 0xFDA1, 0xFDFE, 0x1F1A,
|
||||
};
|
@ -0,0 +1,16 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/Korea1/cmaps_korea1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_KSC_EUC_V_0[16 * 3] = {
|
||||
0xA1A2, 0xA1A3, 0x1F78, 0xA1A5, 0xA1A5, 0x1F7A, 0xA1A6, 0xA1A6,
|
||||
0x2080, 0xA1A9, 0xA1AB, 0x1F7B, 0xA1AD, 0xA1AD, 0x1F7E, 0xA1B2,
|
||||
0xA1BD, 0x1F7F, 0xA1EB, 0xA1EB, 0x1F8B, 0xA3A1, 0xA3A1, 0x1F8C,
|
||||
0xA3A8, 0xA3A9, 0x1F8D, 0xA3AC, 0xA3AC, 0x1F8F, 0xA3AE, 0xA3AE,
|
||||
0x1F90, 0xA3BA, 0xA3BF, 0x1F91, 0xA3DB, 0xA3DB, 0x1F97, 0xA3DD,
|
||||
0xA3DD, 0x1F98, 0xA3DF, 0xA3DF, 0x1F99, 0xA3FB, 0xA3FE, 0x1F9A,
|
||||
};
|
@ -0,0 +1,235 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/Korea1/cmaps_korea1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_KSCms_UHC_HW_H_1[675 * 3] = {
|
||||
0x0020, 0x007E, 0x1F9E, 0x8141, 0x815A, 0x2475, 0x8161, 0x817A, 0x248F,
|
||||
0x8181, 0x81FE, 0x24A9, 0x8241, 0x825A, 0x2527, 0x8261, 0x827A, 0x2541,
|
||||
0x8281, 0x82FE, 0x255B, 0x8341, 0x835A, 0x25D9, 0x8361, 0x837A, 0x25F3,
|
||||
0x8381, 0x83FE, 0x260D, 0x8441, 0x845A, 0x268B, 0x8461, 0x847A, 0x26A5,
|
||||
0x8481, 0x84FE, 0x26BF, 0x8541, 0x855A, 0x273D, 0x8561, 0x857A, 0x2757,
|
||||
0x8581, 0x85FE, 0x2771, 0x8641, 0x865A, 0x27EF, 0x8661, 0x867A, 0x2809,
|
||||
0x8681, 0x86FE, 0x2823, 0x8741, 0x875A, 0x28A1, 0x8761, 0x877A, 0x28BB,
|
||||
0x8781, 0x87FE, 0x28D5, 0x8841, 0x885A, 0x2953, 0x8861, 0x887A, 0x296D,
|
||||
0x8881, 0x88FE, 0x2987, 0x8941, 0x895A, 0x2A05, 0x8961, 0x897A, 0x2A1F,
|
||||
0x8981, 0x89FE, 0x2A39, 0x8A41, 0x8A5A, 0x2AB7, 0x8A61, 0x8A7A, 0x2AD1,
|
||||
0x8A81, 0x8AFE, 0x2AEB, 0x8B41, 0x8B5A, 0x2B69, 0x8B61, 0x8B7A, 0x2B83,
|
||||
0x8B81, 0x8BFE, 0x2B9D, 0x8C41, 0x8C5A, 0x2C1B, 0x8C61, 0x8C7A, 0x2C35,
|
||||
0x8C81, 0x8CFE, 0x2C4F, 0x8D41, 0x8D5A, 0x2CCD, 0x8D61, 0x8D7A, 0x2CE7,
|
||||
0x8D81, 0x8DFE, 0x2D01, 0x8E41, 0x8E5A, 0x2D7F, 0x8E61, 0x8E7A, 0x2D99,
|
||||
0x8E81, 0x8EFE, 0x2DB3, 0x8F41, 0x8F5A, 0x2E31, 0x8F61, 0x8F7A, 0x2E4B,
|
||||
0x8F81, 0x8FFE, 0x2E65, 0x9041, 0x905A, 0x2EE3, 0x9061, 0x907A, 0x2EFD,
|
||||
0x9081, 0x90FE, 0x2F17, 0x9141, 0x915A, 0x2F95, 0x9161, 0x917A, 0x2FAF,
|
||||
0x9181, 0x91FE, 0x2FC9, 0x9241, 0x925A, 0x3047, 0x9261, 0x927A, 0x3061,
|
||||
0x9281, 0x92FE, 0x307B, 0x9341, 0x935A, 0x30F9, 0x9361, 0x937A, 0x3113,
|
||||
0x9381, 0x93FE, 0x312D, 0x9441, 0x945A, 0x31AB, 0x9461, 0x947A, 0x31C5,
|
||||
0x9481, 0x94FE, 0x31DF, 0x9541, 0x955A, 0x325D, 0x9561, 0x957A, 0x3277,
|
||||
0x9581, 0x95FE, 0x3291, 0x9641, 0x965A, 0x330F, 0x9661, 0x967A, 0x3329,
|
||||
0x9681, 0x96FE, 0x3343, 0x9741, 0x975A, 0x33C1, 0x9761, 0x977A, 0x33DB,
|
||||
0x9781, 0x97FE, 0x33F5, 0x9841, 0x985A, 0x3473, 0x9861, 0x987A, 0x348D,
|
||||
0x9881, 0x98FE, 0x34A7, 0x9941, 0x995A, 0x3525, 0x9961, 0x997A, 0x353F,
|
||||
0x9981, 0x99FE, 0x3559, 0x9A41, 0x9A5A, 0x35D7, 0x9A61, 0x9A7A, 0x35F1,
|
||||
0x9A81, 0x9AFE, 0x360B, 0x9B41, 0x9B5A, 0x3689, 0x9B61, 0x9B7A, 0x36A3,
|
||||
0x9B81, 0x9BFE, 0x36BD, 0x9C41, 0x9C5A, 0x373B, 0x9C61, 0x9C7A, 0x3755,
|
||||
0x9C81, 0x9CFE, 0x376F, 0x9D41, 0x9D5A, 0x37ED, 0x9D61, 0x9D7A, 0x3807,
|
||||
0x9D81, 0x9DFE, 0x3821, 0x9E41, 0x9E5A, 0x389F, 0x9E61, 0x9E7A, 0x38B9,
|
||||
0x9E81, 0x9EFE, 0x38D3, 0x9F41, 0x9F5A, 0x3951, 0x9F61, 0x9F7A, 0x396B,
|
||||
0x9F81, 0x9FFE, 0x3985, 0xA041, 0xA05A, 0x3A03, 0xA061, 0xA07A, 0x3A1D,
|
||||
0xA081, 0xA0FE, 0x3A37, 0xA141, 0xA15A, 0x3AB5, 0xA161, 0xA17A, 0x3ACF,
|
||||
0xA181, 0xA1A0, 0x3AE9, 0xA1A1, 0xA1FE, 0x0065, 0xA241, 0xA25A, 0x3B09,
|
||||
0xA261, 0xA27A, 0x3B23, 0xA281, 0xA2A0, 0x3B3D, 0xA2A1, 0xA2E5, 0x00C3,
|
||||
0xA341, 0xA35A, 0x3B5D, 0xA361, 0xA37A, 0x3B77, 0xA381, 0xA3A0, 0x3B91,
|
||||
0xA3A1, 0xA3FE, 0x0108, 0xA441, 0xA45A, 0x3BB1, 0xA461, 0xA47A, 0x3BCB,
|
||||
0xA481, 0xA4A0, 0x3BE5, 0xA4A1, 0xA4D3, 0x0166, 0xA4D5, 0xA4FE, 0x0199,
|
||||
0xA541, 0xA55A, 0x3C05, 0xA561, 0xA57A, 0x3C1F, 0xA581, 0xA5A0, 0x3C39,
|
||||
0xA5A1, 0xA5AA, 0x01C3, 0xA5B0, 0xA5B9, 0x01CD, 0xA5C1, 0xA5D8, 0x01D7,
|
||||
0xA5E1, 0xA5F8, 0x01EF, 0xA641, 0xA65A, 0x3C59, 0xA661, 0xA67A, 0x3C73,
|
||||
0xA681, 0xA6A0, 0x3C8D, 0xA6A1, 0xA6E4, 0x0207, 0xA741, 0xA75A, 0x3CAD,
|
||||
0xA761, 0xA77A, 0x3CC7, 0xA781, 0xA7A0, 0x3CE1, 0xA7A1, 0xA7EF, 0x024B,
|
||||
0xA841, 0xA85A, 0x3D01, 0xA861, 0xA87A, 0x3D1B, 0xA881, 0xA8A0, 0x3D35,
|
||||
0xA8A1, 0xA8A4, 0x029A, 0xA8A6, 0xA8A6, 0x029E, 0xA8A8, 0xA8AF, 0x029F,
|
||||
0xA8B1, 0xA8FE, 0x02A7, 0xA941, 0xA95A, 0x3D55, 0xA961, 0xA97A, 0x3D6F,
|
||||
0xA981, 0xA9A0, 0x3D89, 0xA9A1, 0xA9FE, 0x02F5, 0xAA41, 0xAA5A, 0x3DA9,
|
||||
0xAA61, 0xAA7A, 0x3DC3, 0xAA81, 0xAAA0, 0x3DDD, 0xAAA1, 0xAAF3, 0x0353,
|
||||
0xAB41, 0xAB5A, 0x3DFD, 0xAB61, 0xAB7A, 0x3E17, 0xAB81, 0xABA0, 0x3E31,
|
||||
0xABA1, 0xABF6, 0x03A6, 0xAC41, 0xAC5A, 0x3E51, 0xAC61, 0xAC7A, 0x3E6B,
|
||||
0xAC81, 0xACA0, 0x3E85, 0xACA1, 0xACC1, 0x03FC, 0xACD1, 0xACF1, 0x041D,
|
||||
0xAD41, 0xAD5A, 0x3EA5, 0xAD61, 0xAD7A, 0x3EBF, 0xAD81, 0xADA0, 0x3ED9,
|
||||
0xAE41, 0xAE5A, 0x3EF9, 0xAE61, 0xAE7A, 0x3F13, 0xAE81, 0xAEA0, 0x3F2D,
|
||||
0xAF41, 0xAF5A, 0x3F4D, 0xAF61, 0xAF7A, 0x3F67, 0xAF81, 0xAFA0, 0x3F81,
|
||||
0xB041, 0xB05A, 0x3FA1, 0xB061, 0xB07A, 0x3FBB, 0xB081, 0xB0A0, 0x3FD5,
|
||||
0xB0A1, 0xB0FE, 0x043E, 0xB141, 0xB15A, 0x3FF5, 0xB161, 0xB17A, 0x400F,
|
||||
0xB181, 0xB1A0, 0x4029, 0xB1A1, 0xB1FE, 0x049C, 0xB241, 0xB25A, 0x4049,
|
||||
0xB261, 0xB27A, 0x4063, 0xB281, 0xB2A0, 0x407D, 0xB2A1, 0xB2FE, 0x04FA,
|
||||
0xB341, 0xB35A, 0x409D, 0xB361, 0xB37A, 0x40B7, 0xB381, 0xB3A0, 0x40D1,
|
||||
0xB3A1, 0xB3FE, 0x0558, 0xB441, 0xB45A, 0x40F1, 0xB461, 0xB47A, 0x410B,
|
||||
0xB481, 0xB4A0, 0x4125, 0xB4A1, 0xB4FE, 0x05B6, 0xB541, 0xB55A, 0x4145,
|
||||
0xB561, 0xB57A, 0x415F, 0xB581, 0xB5A0, 0x4179, 0xB5A1, 0xB5FE, 0x0614,
|
||||
0xB641, 0xB65A, 0x4199, 0xB661, 0xB67A, 0x41B3, 0xB681, 0xB6A0, 0x41CD,
|
||||
0xB6A1, 0xB6FE, 0x0672, 0xB741, 0xB75A, 0x41ED, 0xB761, 0xB77A, 0x4207,
|
||||
0xB781, 0xB7A0, 0x4221, 0xB7A1, 0xB7FE, 0x06D0, 0xB841, 0xB85A, 0x4241,
|
||||
0xB861, 0xB87A, 0x425B, 0xB881, 0xB8A0, 0x4275, 0xB8A1, 0xB8FE, 0x072E,
|
||||
0xB941, 0xB95A, 0x4295, 0xB961, 0xB97A, 0x42AF, 0xB981, 0xB9A0, 0x42C9,
|
||||
0xB9A1, 0xB9FE, 0x078C, 0xBA41, 0xBA5A, 0x42E9, 0xBA61, 0xBA7A, 0x4303,
|
||||
0xBA81, 0xBAA0, 0x431D, 0xBAA1, 0xBAFE, 0x07EA, 0xBB41, 0xBB5A, 0x433D,
|
||||
0xBB61, 0xBB7A, 0x4357, 0xBB81, 0xBBA0, 0x4371, 0xBBA1, 0xBBFE, 0x0848,
|
||||
0xBC41, 0xBC5A, 0x4391, 0xBC61, 0xBC7A, 0x43AB, 0xBC81, 0xBCA0, 0x43C5,
|
||||
0xBCA1, 0xBCFE, 0x08A6, 0xBD41, 0xBD5A, 0x43E5, 0xBD61, 0xBD7A, 0x43FF,
|
||||
0xBD81, 0xBDA0, 0x4419, 0xBDA1, 0xBDFE, 0x0904, 0xBE41, 0xBE5A, 0x4439,
|
||||
0xBE61, 0xBE7A, 0x4453, 0xBE81, 0xBEA0, 0x446D, 0xBEA1, 0xBEFE, 0x0962,
|
||||
0xBF41, 0xBF5A, 0x448D, 0xBF61, 0xBF7A, 0x44A7, 0xBF81, 0xBFA0, 0x44C1,
|
||||
0xBFA1, 0xBFFE, 0x09C0, 0xC041, 0xC05A, 0x44E1, 0xC061, 0xC07A, 0x44FB,
|
||||
0xC081, 0xC0A0, 0x4515, 0xC0A1, 0xC0FE, 0x0A1E, 0xC141, 0xC15A, 0x4535,
|
||||
0xC161, 0xC17A, 0x454F, 0xC181, 0xC1A0, 0x4569, 0xC1A1, 0xC1FE, 0x0A7C,
|
||||
0xC241, 0xC25A, 0x4589, 0xC261, 0xC27A, 0x45A3, 0xC281, 0xC2A0, 0x45BD,
|
||||
0xC2A1, 0xC2FE, 0x0ADA, 0xC341, 0xC35A, 0x45DD, 0xC361, 0xC37A, 0x45F7,
|
||||
0xC381, 0xC3A0, 0x4611, 0xC3A1, 0xC3FE, 0x0B38, 0xC441, 0xC45A, 0x4631,
|
||||
0xC461, 0xC47A, 0x464B, 0xC481, 0xC4A0, 0x4665, 0xC4A1, 0xC4FE, 0x0B96,
|
||||
0xC541, 0xC55A, 0x4685, 0xC561, 0xC57A, 0x469F, 0xC581, 0xC5A0, 0x46B9,
|
||||
0xC5A1, 0xC5FE, 0x0BF4, 0xC641, 0xC652, 0x46D9, 0xC6A1, 0xC6FE, 0x0C52,
|
||||
0xC7A1, 0xC7FE, 0x0CB0, 0xC8A1, 0xC8FE, 0x0D0E, 0xCAA1, 0xCAFE, 0x0D6C,
|
||||
0xCBA1, 0xCBCF, 0x0DCA, 0xCBD0, 0xCBD0, 0x1014, 0xCBD1, 0xCBD5, 0x0DF9,
|
||||
0xCBD6, 0xCBD6, 0x0E5E, 0xCBD7, 0xCBE6, 0x0DFE, 0xCBE7, 0xCBE7, 0x1B8D,
|
||||
0xCBE8, 0xCBFE, 0x0E0E, 0xCCA1, 0xCCFE, 0x0E25, 0xCDA1, 0xCDCE, 0x0E83,
|
||||
0xCDCF, 0xCDCF, 0x0D84, 0xCDD0, 0xCDE7, 0x0EB1, 0xCDE8, 0xCDE8, 0x1EDC,
|
||||
0xCDE9, 0xCDFE, 0x0EC9, 0xCEA1, 0xCEAC, 0x0EDF, 0xCEAD, 0xCEAD, 0x0EDA,
|
||||
0xCEAE, 0xCEFE, 0x0EEB, 0xCFA1, 0xCFFA, 0x0F3C, 0xCFFB, 0xCFFB, 0x0F3E,
|
||||
0xCFFC, 0xCFFE, 0x0F96, 0xD0A1, 0xD0A1, 0x0F99, 0xD0A2, 0xD0A2, 0x0F6A,
|
||||
0xD0A3, 0xD0B7, 0x0F9A, 0xD0B8, 0xD0B8, 0x0F6A, 0xD0B9, 0xD0CF, 0x0FAF,
|
||||
0xD0D0, 0xD0D0, 0x0E7C, 0xD0D1, 0xD0DC, 0x0FC6, 0xD0DD, 0xD0DD, 0x1023,
|
||||
0xD0DE, 0xD0FE, 0x0FD2, 0xD1A1, 0xD1D3, 0x0FF3, 0xD1D4, 0xD1D4, 0x1116,
|
||||
0xD1D5, 0xD1D5, 0x103C, 0xD1D6, 0xD1D7, 0x1026, 0xD1D8, 0xD1D8, 0x1117,
|
||||
0xD1D9, 0xD1DA, 0x1028, 0xD1DB, 0xD1E0, 0x1118, 0xD1E1, 0xD1E1, 0x102A,
|
||||
0xD1E2, 0xD1E2, 0x16A8, 0xD1E3, 0xD1E5, 0x111E, 0xD1E6, 0xD1E6, 0x1122,
|
||||
0xD1E7, 0xD1E7, 0x102B, 0xD1E8, 0xD1EB, 0x1123, 0xD1EC, 0xD1EC, 0x102C,
|
||||
0xD1ED, 0xD1ED, 0x1127, 0xD1EE, 0xD1EE, 0x102D, 0xD1EF, 0xD1F0, 0x112A,
|
||||
0xD1F1, 0xD1F1, 0x102E, 0xD1F2, 0xD1F2, 0x112C, 0xD1F3, 0xD1F5, 0x102F,
|
||||
0xD1F6, 0xD1F6, 0x112F, 0xD1F7, 0xD1F9, 0x1032, 0xD1FA, 0xD1FA, 0x1133,
|
||||
0xD1FB, 0xD1FB, 0x1035, 0xD1FC, 0xD1FD, 0x1136, 0xD1FE, 0xD1FE, 0x1139,
|
||||
0xD2A1, 0xD2A1, 0x1036, 0xD2A2, 0xD2A3, 0x113A, 0xD2A4, 0xD2A6, 0x1037,
|
||||
0xD2A7, 0xD2AA, 0x113C, 0xD2AB, 0xD2AB, 0x1143, 0xD2AC, 0xD2AC, 0x103A,
|
||||
0xD2AD, 0xD2AD, 0x1144, 0xD2AE, 0xD2B1, 0x103B, 0xD2B2, 0xD2B2, 0x1148,
|
||||
0xD2B3, 0xD2BD, 0x103F, 0xD2BE, 0xD2BE, 0x119F, 0xD2BF, 0xD2C1, 0x104A,
|
||||
0xD2C2, 0xD2C3, 0x11A1, 0xD2C4, 0xD2C4, 0x11A5, 0xD2C5, 0xD2C5, 0x104D,
|
||||
0xD2C6, 0xD2CA, 0x11A6, 0xD2CB, 0xD2CB, 0x11AC, 0xD2CC, 0xD2CC, 0x104E,
|
||||
0xD2CD, 0xD2CE, 0x11AD, 0xD2CF, 0xD2D4, 0x11B0, 0xD2D5, 0xD2D7, 0x11B7,
|
||||
0xD2D8, 0xD2D8, 0x104F, 0xD2D9, 0xD2DA, 0x11BD, 0xD2DB, 0xD2DD, 0x1050,
|
||||
0xD2DE, 0xD2DF, 0x11C1, 0xD2E0, 0xD2E0, 0x1053, 0xD2E1, 0xD2E1, 0x11C3,
|
||||
0xD2E2, 0xD2E2, 0x11C6, 0xD2E3, 0xD2E3, 0x1054, 0xD2E4, 0xD2E4, 0x11D4,
|
||||
0xD2E5, 0xD2E8, 0x11D6, 0xD2E9, 0xD2EA, 0x11DB, 0xD2EB, 0xD2EB, 0x11E0,
|
||||
0xD2EC, 0xD2EF, 0x1055, 0xD2F0, 0xD2F3, 0x11FC, 0xD2F4, 0xD2F5, 0x1201,
|
||||
0xD2F6, 0xD2F6, 0x1059, 0xD2F7, 0xD2F8, 0x1203, 0xD2F9, 0xD2FE, 0x105A,
|
||||
0xD3A1, 0xD3FE, 0x1060, 0xD4A1, 0xD4E5, 0x10BE, 0xD4E6, 0xD4E6, 0x10DE,
|
||||
0xD4E7, 0xD4FB, 0x1103, 0xD4FC, 0xD4FC, 0x1028, 0xD4FD, 0xD4FE, 0x1118,
|
||||
0xD5A1, 0xD5A4, 0x111A, 0xD5A5, 0xD5A5, 0x16A8, 0xD5A6, 0xD5AA, 0x111E,
|
||||
0xD5AB, 0xD5AB, 0x102B, 0xD5AC, 0xD5AD, 0x1123, 0xD5AE, 0xD5AE, 0x1060,
|
||||
0xD5AF, 0xD5FE, 0x1125, 0xD6A1, 0xD6B7, 0x1175, 0xD6B8, 0xD6B8, 0x1047,
|
||||
0xD6B9, 0xD6CC, 0x118C, 0xD6CD, 0xD6CD, 0x104C, 0xD6CE, 0xD6FE, 0x11A0,
|
||||
0xD7A1, 0xD7CA, 0x11D1, 0xD7CB, 0xD7CB, 0x15B0, 0xD7CC, 0xD7E3, 0x11FB,
|
||||
0xD7E4, 0xD7E4, 0x1918, 0xD7E5, 0xD7FE, 0x1213, 0xD8A1, 0xD8FE, 0x122D,
|
||||
0xD9A1, 0xD9FE, 0x128B, 0xDAA1, 0xDAFE, 0x12E9, 0xDBA1, 0xDBC4, 0x1347,
|
||||
0xDBC5, 0xDBC5, 0x141F, 0xDBC6, 0xDBE3, 0x136B, 0xDBE4, 0xDBE4, 0x133A,
|
||||
0xDBE5, 0xDBFE, 0x1389, 0xDCA1, 0xDCA4, 0x13A3, 0xDCA5, 0xDCA5, 0x1D5E,
|
||||
0xDCA6, 0xDCFE, 0x13A7, 0xDDA1, 0xDDA4, 0x1400, 0xDDA5, 0xDDA5, 0x13D7,
|
||||
0xDDA6, 0xDDD4, 0x1404, 0xDDD5, 0xDDD5, 0x13F5, 0xDDD6, 0xDDF3, 0x1433,
|
||||
0xDDF4, 0xDDF4, 0x1DB7, 0xDDF5, 0xDDFE, 0x1451, 0xDEA1, 0xDEFB, 0x145B,
|
||||
0xDEFC, 0xDEFC, 0x15D0, 0xDEFD, 0xDEFD, 0x14B6, 0xDEFE, 0xDEFE, 0x14F7,
|
||||
0xDFA1, 0xDFB2, 0x14B7, 0xDFB3, 0xDFB3, 0x1BAB, 0xDFB4, 0xDFE0, 0x14C9,
|
||||
0xDFE1, 0xDFE1, 0x14F2, 0xDFE2, 0xDFE7, 0x14F6, 0xDFE8, 0xDFE8, 0x156D,
|
||||
0xDFE9, 0xDFFE, 0x14FC, 0xE0A1, 0xE0F0, 0x1512, 0xE0F1, 0xE0F1, 0x1771,
|
||||
0xE0F2, 0xE0FE, 0x1562, 0xE1A1, 0xE1AC, 0x156F, 0xE1AD, 0xE1AD, 0x1554,
|
||||
0xE1AE, 0xE1EC, 0x157B, 0xE1ED, 0xE1ED, 0x14C5, 0xE1EE, 0xE1FE, 0x15BA,
|
||||
0xE2A1, 0xE2FE, 0x15CB, 0xE3A1, 0xE3F4, 0x1629, 0xE3F5, 0xE3F5, 0x1B61,
|
||||
0xE3F6, 0xE3FE, 0x167D, 0xE4A1, 0xE4A1, 0x1CCA, 0xE4A2, 0xE4A8, 0x1686,
|
||||
0xE4A9, 0xE4A9, 0x162E, 0xE4AA, 0xE4FE, 0x168D, 0xE5A1, 0xE5AD, 0x16E2,
|
||||
0xE5AE, 0xE5AE, 0x16F2, 0xE5AF, 0xE5B0, 0x16EF, 0xE5B1, 0xE5B2, 0x1149,
|
||||
0xE5B3, 0xE5B8, 0x16F1, 0xE5B9, 0xE5B9, 0x114B, 0xE5BA, 0xE5BA, 0x16F7,
|
||||
0xE5BB, 0xE5BC, 0x114D, 0xE5BD, 0xE5C3, 0x16F8, 0xE5C4, 0xE5C4, 0x114F,
|
||||
0xE5C5, 0xE5CD, 0x16FF, 0xE5CE, 0xE5CE, 0x1153, 0xE5CF, 0xE5CF, 0x1708,
|
||||
0xE5D0, 0xE5D0, 0x1154, 0xE5D1, 0xE5D1, 0x1709, 0xE5D2, 0xE5D2, 0x1155,
|
||||
0xE5D3, 0xE5D5, 0x170A, 0xE5D6, 0xE5D6, 0x1157, 0xE5D7, 0xE5F9, 0x170D,
|
||||
0xE5FA, 0xE5FB, 0x115A, 0xE5FC, 0xE5FC, 0x103F, 0xE5FD, 0xE5FD, 0x1730,
|
||||
0xE5FE, 0xE5FE, 0x115C, 0xE6A1, 0xE6A1, 0x115F, 0xE6A2, 0xE6A3, 0x1731,
|
||||
0xE6A4, 0xE6A4, 0x1161, 0xE6A5, 0xE6A6, 0x1733, 0xE6A7, 0xE6A7, 0x1162,
|
||||
0xE6A8, 0xE6AC, 0x1735, 0xE6AD, 0xE6AD, 0x1165, 0xE6AE, 0xE6AE, 0x173A,
|
||||
0xE6AF, 0xE6B1, 0x1167, 0xE6B2, 0xE6B2, 0x173B, 0xE6B3, 0xE6B3, 0x116A,
|
||||
0xE6B4, 0xE6B6, 0x173C, 0xE6B7, 0xE6B8, 0x116B, 0xE6B9, 0xE6BB, 0x173F,
|
||||
0xE6BC, 0xE6BC, 0x116F, 0xE6BD, 0xE6C3, 0x1742, 0xE6C4, 0xE6C4, 0x1040,
|
||||
0xE6C5, 0xE6C5, 0x1749, 0xE6C6, 0xE6C7, 0x1171, 0xE6C8, 0xE6C9, 0x174A,
|
||||
0xE6CA, 0xE6CA, 0x1041, 0xE6CB, 0xE6D1, 0x174C, 0xE6D2, 0xE6D2, 0x1174,
|
||||
0xE6D3, 0xE6D5, 0x1753, 0xE6D6, 0xE6D6, 0x1175, 0xE6D7, 0xE6D8, 0x1756,
|
||||
0xE6D9, 0xE6D9, 0x1176, 0xE6DA, 0xE6DB, 0x1758, 0xE6DC, 0xE6DC, 0x1042,
|
||||
0xE6DD, 0xE6DE, 0x175A, 0xE6DF, 0xE6DF, 0x1177, 0xE6E0, 0xE6E0, 0x175C,
|
||||
0xE6E1, 0xE6E1, 0x1178, 0xE6E2, 0xE6E3, 0x175D, 0xE6E4, 0xE6E4, 0x117A,
|
||||
0xE6E5, 0xE6E5, 0x1179, 0xE6E6, 0xE6E6, 0x117B, 0xE6E7, 0xE6E7, 0x175F,
|
||||
0xE6E8, 0xE6E8, 0x117C, 0xE6E9, 0xE6E9, 0x1760, 0xE6EA, 0xE6EB, 0x117E,
|
||||
0xE6EC, 0xE6EC, 0x192F, 0xE6ED, 0xE6EE, 0x1761, 0xE6EF, 0xE6EF, 0x1181,
|
||||
0xE6F0, 0xE6F0, 0x1763, 0xE6F1, 0xE6F1, 0x1182, 0xE6F2, 0xE6F2, 0x1554,
|
||||
0xE6F3, 0xE6F4, 0x1764, 0xE6F5, 0xE6F5, 0x1183, 0xE6F6, 0xE6F6, 0x1043,
|
||||
0xE6F7, 0xE6F7, 0x1046, 0xE6F8, 0xE6F8, 0x1766, 0xE6F9, 0xE6F9, 0x1185,
|
||||
0xE6FA, 0xE6FE, 0x1767, 0xE7A1, 0xE7A1, 0x1187, 0xE7A2, 0xE7A5, 0x176C,
|
||||
0xE7A6, 0xE7A6, 0x1188, 0xE7A7, 0xE7A8, 0x1770, 0xE7A9, 0xE7A9, 0x1189,
|
||||
0xE7AA, 0xE7AA, 0x118B, 0xE7AB, 0xE7AB, 0x1772, 0xE7AC, 0xE7AC, 0x1047,
|
||||
0xE7AD, 0xE7AD, 0x118D, 0xE7AE, 0xE7AF, 0x1773, 0xE7B0, 0xE7B0, 0x118E,
|
||||
0xE7B1, 0xE7BE, 0x1775, 0xE7BF, 0xE7BF, 0x118F, 0xE7C0, 0xE7C0, 0x1783,
|
||||
0xE7C1, 0xE7C1, 0x1E67, 0xE7C2, 0xE7C5, 0x1784, 0xE7C6, 0xE7C6, 0x1191,
|
||||
0xE7C7, 0xE7C7, 0x1193, 0xE7C8, 0xE7CA, 0x1788, 0xE7CB, 0xE7CB, 0x1195,
|
||||
0xE7CC, 0xE7CC, 0x178B, 0xE7CD, 0xE7CD, 0x1196, 0xE7CE, 0xE7CE, 0x178C,
|
||||
0xE7CF, 0xE7D0, 0x1197, 0xE7D1, 0xE7D2, 0x178D, 0xE7D3, 0xE7D3, 0x119A,
|
||||
0xE7D4, 0xE7DE, 0x178F, 0xE7DF, 0xE7DF, 0x119C, 0xE7E0, 0xE7E3, 0x179A,
|
||||
0xE7E4, 0xE7E4, 0x119D, 0xE7E5, 0xE7E5, 0x179E, 0xE7E6, 0xE7E6, 0x119E,
|
||||
0xE7E7, 0xE7F6, 0x179F, 0xE7F7, 0xE7F7, 0x16A5, 0xE7F8, 0xE7FE, 0x17AF,
|
||||
0xE8A1, 0xE8E6, 0x17B6, 0xE8E7, 0xE8E8, 0x11C7, 0xE8E9, 0xE8EF, 0x17FC,
|
||||
0xE8F0, 0xE8F0, 0x11C9, 0xE8F1, 0xE8F1, 0x1054, 0xE8F2, 0xE8F6, 0x1803,
|
||||
0xE8F7, 0xE8F7, 0x11CB, 0xE8F8, 0xE8F8, 0x1808, 0xE8F9, 0xE8F9, 0x16A8,
|
||||
0xE8FA, 0xE8FA, 0x1809, 0xE8FB, 0xE8FB, 0x11CC, 0xE8FC, 0xE8FD, 0x180A,
|
||||
0xE8FE, 0xE8FE, 0x11CD, 0xE9A1, 0xE9A6, 0x180C, 0xE9A7, 0xE9A7, 0x11D0,
|
||||
0xE9A8, 0xE9AB, 0x1812, 0xE9AC, 0xE9AC, 0x11D1, 0xE9AD, 0xE9CB, 0x1816,
|
||||
0xE9CC, 0xE9CC, 0x11D3, 0xE9CD, 0xE9F6, 0x1835, 0xE9F7, 0xE9F7, 0x1F34,
|
||||
0xE9F8, 0xE9FE, 0x185F, 0xEAA1, 0xEAC0, 0x1866, 0xEAC1, 0xEAC1, 0x17EB,
|
||||
0xEAC2, 0xEAE4, 0x1886, 0xEAE5, 0xEAE5, 0x11E1, 0xEAE6, 0xEAF3, 0x18A9,
|
||||
0xEAF4, 0xEAF4, 0x1057, 0xEAF5, 0xEAF6, 0x18B7, 0xEAF7, 0xEAF7, 0x11E3,
|
||||
0xEAF8, 0xEAFB, 0x18B9, 0xEAFC, 0xEAFC, 0x11E5, 0xEAFD, 0xEAFD, 0x18BD,
|
||||
0xEAFE, 0xEAFE, 0x11E6, 0xEBA1, 0xEBA3, 0x18BE, 0xEBA4, 0xEBA4, 0x11E8,
|
||||
0xEBA5, 0xEBA6, 0x18C1, 0xEBA7, 0xEBA7, 0x11EA, 0xEBA8, 0xEBA8, 0x18C3,
|
||||
0xEBA9, 0xEBA9, 0x11EC, 0xEBAA, 0xEBAA, 0x1058, 0xEBAB, 0xEBB9, 0x18C4,
|
||||
0xEBBA, 0xEBBB, 0x11EE, 0xEBBC, 0xEBBC, 0x18D3, 0xEBBD, 0xEBBD, 0x11F0,
|
||||
0xEBBE, 0xEBC0, 0x18D4, 0xEBC1, 0xEBC1, 0x11F1, 0xEBC2, 0xEBC2, 0x11F3,
|
||||
0xEBC3, 0xEBC5, 0x18D7, 0xEBC6, 0xEBC7, 0x11F4, 0xEBC8, 0xEBCB, 0x18DA,
|
||||
0xEBCC, 0xEBCC, 0x11F7, 0xEBCD, 0xEBCE, 0x18DE, 0xEBCF, 0xEBD1, 0x11F8,
|
||||
0xEBD2, 0xEBD2, 0x15B0, 0xEBD3, 0xEBD7, 0x18E0, 0xEBD8, 0xEBD8, 0x11FB,
|
||||
0xEBD9, 0xEBFE, 0x18E5, 0xECA1, 0xECA5, 0x190B, 0xECA6, 0xECA6, 0x1206,
|
||||
0xECA7, 0xECA7, 0x1208, 0xECA8, 0xECA9, 0x1910, 0xECAA, 0xECAA, 0x120A,
|
||||
0xECAB, 0xECAE, 0x1912, 0xECAF, 0xECAF, 0x173E, 0xECB0, 0xECB1, 0x120C,
|
||||
0xECB2, 0xECB2, 0x105B, 0xECB3, 0xECB4, 0x1916, 0xECB5, 0xECB5, 0x1211,
|
||||
0xECB6, 0xECB7, 0x1918, 0xECB8, 0xECB8, 0x1213, 0xECB9, 0xECB9, 0x191A,
|
||||
0xECBA, 0xECBA, 0x1215, 0xECBB, 0xECBF, 0x191B, 0xECC0, 0xECC1, 0x1218,
|
||||
0xECC2, 0xECC4, 0x1920, 0xECC5, 0xECC5, 0x121A, 0xECC6, 0xECC6, 0x121C,
|
||||
0xECC7, 0xECC8, 0x1923, 0xECC9, 0xECCA, 0x105C, 0xECCB, 0xECD4, 0x1925,
|
||||
0xECD5, 0xECD5, 0x121E, 0xECD6, 0xECDC, 0x192F, 0xECDD, 0xECDE, 0x1220,
|
||||
0xECDF, 0xECE0, 0x1936, 0xECE1, 0xECE1, 0x1222, 0xECE2, 0xECE3, 0x1938,
|
||||
0xECE4, 0xECE4, 0x1224, 0xECE5, 0xECE6, 0x193A, 0xECE7, 0xECE8, 0x1225,
|
||||
0xECE9, 0xECF6, 0x193C, 0xECF7, 0xECF8, 0x1227, 0xECF9, 0xECF9, 0x194A,
|
||||
0xECFA, 0xECFA, 0x122A, 0xECFB, 0xECFE, 0x194B, 0xEDA1, 0xEDA3, 0x122D,
|
||||
0xEDA4, 0xEDED, 0x194F, 0xEDEE, 0xEDEE, 0x14E7, 0xEDEF, 0xEDFE, 0x1999,
|
||||
0xEEA1, 0xEEDA, 0x19A9, 0xEEDB, 0xEEDB, 0x195E, 0xEEDC, 0xEEFE, 0x19E3,
|
||||
0xEFA1, 0xEFFE, 0x1A06, 0xF0A1, 0xF0FE, 0x1A64, 0xF1A1, 0xF1FE, 0x1AC2,
|
||||
0xF2A1, 0xF2BC, 0x1B20, 0xF2BD, 0xF2BD, 0x1663, 0xF2BE, 0xF2F9, 0x1B3C,
|
||||
0xF2FA, 0xF2FA, 0x168B, 0xF2FB, 0xF2FE, 0x1B78, 0xF3A1, 0xF3B0, 0x1B7C,
|
||||
0xF3B1, 0xF3B1, 0x105F, 0xF3B2, 0xF3FE, 0x1B8C, 0xF4A1, 0xF4A6, 0x1BD9,
|
||||
0xF4A7, 0xF4A7, 0x1954, 0xF4A8, 0xF4ED, 0x1BDF, 0xF4EE, 0xF4EE, 0x1A1C,
|
||||
0xF4EF, 0xF4FE, 0x1C25, 0xF5A1, 0xF5FE, 0x1C35, 0xF6A1, 0xF6F3, 0x1C93,
|
||||
0xF6F4, 0xF6F4, 0x10B7, 0xF6F5, 0xF6F5, 0x1CE6, 0xF6F6, 0xF6F6, 0x1BE3,
|
||||
0xF6F7, 0xF6FE, 0x1CE7, 0xF7A1, 0xF7B7, 0x1CEF, 0xF7B8, 0xF7B8, 0x1097,
|
||||
0xF7B9, 0xF7C7, 0x1D06, 0xF7C8, 0xF7C8, 0x10AA, 0xF7C9, 0xF7D2, 0x1D15,
|
||||
0xF7D3, 0xF7D3, 0x10F4, 0xF7D4, 0xF7FE, 0x1D1F, 0xF8A1, 0xF8DA, 0x1D4A,
|
||||
0xF8DB, 0xF8DB, 0x1D94, 0xF8DC, 0xF8EF, 0x1D84, 0xF8F0, 0xF8F0, 0x13E0,
|
||||
0xF8F1, 0xF8FE, 0x1D98, 0xF9A1, 0xF9FE, 0x1DA6, 0xFAA1, 0xFAA1, 0x1E1D,
|
||||
0xFAA2, 0xFAA2, 0x0DE6, 0xFAA3, 0xFAE5, 0x1E04, 0xFAE6, 0xFAE6, 0x0E3C,
|
||||
0xFAE7, 0xFAFE, 0x1E47, 0xFBA1, 0xFBFE, 0x1E5F, 0xFCA1, 0xFCA8, 0x1EBD,
|
||||
0xFCA9, 0xFCA9, 0x0EE7, 0xFCAA, 0xFCFE, 0x1EC5, 0xFDA1, 0xFDFE, 0x1F1A,
|
||||
};
|
@ -0,0 +1,16 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/Korea1/cmaps_korea1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_KSCms_UHC_HW_V_1[16 * 3] = {
|
||||
0xA1A2, 0xA1A3, 0x1F78, 0xA1A5, 0xA1A5, 0x1F7A, 0xA1A6, 0xA1A6,
|
||||
0x2080, 0xA1A9, 0xA1AB, 0x1F7B, 0xA1AD, 0xA1AD, 0x1F7E, 0xA1B2,
|
||||
0xA1BD, 0x1F7F, 0xA1EB, 0xA1EB, 0x1F8B, 0xA3A1, 0xA3A1, 0x1F8C,
|
||||
0xA3A8, 0xA3A9, 0x1F8D, 0xA3AC, 0xA3AC, 0x1F8F, 0xA3AE, 0xA3AE,
|
||||
0x1F90, 0xA3BA, 0xA3BF, 0x1F91, 0xA3DB, 0xA3DB, 0x1F97, 0xA3DD,
|
||||
0xA3DD, 0x1F98, 0xA3DF, 0xA3DF, 0x1F99, 0xA3FB, 0xA3FE, 0x1F9A,
|
||||
};
|
@ -0,0 +1,235 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/Korea1/cmaps_korea1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_KSCms_UHC_H_1[675 * 3] = {
|
||||
0x0020, 0x007E, 0x0001, 0x8141, 0x815A, 0x2475, 0x8161, 0x817A, 0x248F,
|
||||
0x8181, 0x81FE, 0x24A9, 0x8241, 0x825A, 0x2527, 0x8261, 0x827A, 0x2541,
|
||||
0x8281, 0x82FE, 0x255B, 0x8341, 0x835A, 0x25D9, 0x8361, 0x837A, 0x25F3,
|
||||
0x8381, 0x83FE, 0x260D, 0x8441, 0x845A, 0x268B, 0x8461, 0x847A, 0x26A5,
|
||||
0x8481, 0x84FE, 0x26BF, 0x8541, 0x855A, 0x273D, 0x8561, 0x857A, 0x2757,
|
||||
0x8581, 0x85FE, 0x2771, 0x8641, 0x865A, 0x27EF, 0x8661, 0x867A, 0x2809,
|
||||
0x8681, 0x86FE, 0x2823, 0x8741, 0x875A, 0x28A1, 0x8761, 0x877A, 0x28BB,
|
||||
0x8781, 0x87FE, 0x28D5, 0x8841, 0x885A, 0x2953, 0x8861, 0x887A, 0x296D,
|
||||
0x8881, 0x88FE, 0x2987, 0x8941, 0x895A, 0x2A05, 0x8961, 0x897A, 0x2A1F,
|
||||
0x8981, 0x89FE, 0x2A39, 0x8A41, 0x8A5A, 0x2AB7, 0x8A61, 0x8A7A, 0x2AD1,
|
||||
0x8A81, 0x8AFE, 0x2AEB, 0x8B41, 0x8B5A, 0x2B69, 0x8B61, 0x8B7A, 0x2B83,
|
||||
0x8B81, 0x8BFE, 0x2B9D, 0x8C41, 0x8C5A, 0x2C1B, 0x8C61, 0x8C7A, 0x2C35,
|
||||
0x8C81, 0x8CFE, 0x2C4F, 0x8D41, 0x8D5A, 0x2CCD, 0x8D61, 0x8D7A, 0x2CE7,
|
||||
0x8D81, 0x8DFE, 0x2D01, 0x8E41, 0x8E5A, 0x2D7F, 0x8E61, 0x8E7A, 0x2D99,
|
||||
0x8E81, 0x8EFE, 0x2DB3, 0x8F41, 0x8F5A, 0x2E31, 0x8F61, 0x8F7A, 0x2E4B,
|
||||
0x8F81, 0x8FFE, 0x2E65, 0x9041, 0x905A, 0x2EE3, 0x9061, 0x907A, 0x2EFD,
|
||||
0x9081, 0x90FE, 0x2F17, 0x9141, 0x915A, 0x2F95, 0x9161, 0x917A, 0x2FAF,
|
||||
0x9181, 0x91FE, 0x2FC9, 0x9241, 0x925A, 0x3047, 0x9261, 0x927A, 0x3061,
|
||||
0x9281, 0x92FE, 0x307B, 0x9341, 0x935A, 0x30F9, 0x9361, 0x937A, 0x3113,
|
||||
0x9381, 0x93FE, 0x312D, 0x9441, 0x945A, 0x31AB, 0x9461, 0x947A, 0x31C5,
|
||||
0x9481, 0x94FE, 0x31DF, 0x9541, 0x955A, 0x325D, 0x9561, 0x957A, 0x3277,
|
||||
0x9581, 0x95FE, 0x3291, 0x9641, 0x965A, 0x330F, 0x9661, 0x967A, 0x3329,
|
||||
0x9681, 0x96FE, 0x3343, 0x9741, 0x975A, 0x33C1, 0x9761, 0x977A, 0x33DB,
|
||||
0x9781, 0x97FE, 0x33F5, 0x9841, 0x985A, 0x3473, 0x9861, 0x987A, 0x348D,
|
||||
0x9881, 0x98FE, 0x34A7, 0x9941, 0x995A, 0x3525, 0x9961, 0x997A, 0x353F,
|
||||
0x9981, 0x99FE, 0x3559, 0x9A41, 0x9A5A, 0x35D7, 0x9A61, 0x9A7A, 0x35F1,
|
||||
0x9A81, 0x9AFE, 0x360B, 0x9B41, 0x9B5A, 0x3689, 0x9B61, 0x9B7A, 0x36A3,
|
||||
0x9B81, 0x9BFE, 0x36BD, 0x9C41, 0x9C5A, 0x373B, 0x9C61, 0x9C7A, 0x3755,
|
||||
0x9C81, 0x9CFE, 0x376F, 0x9D41, 0x9D5A, 0x37ED, 0x9D61, 0x9D7A, 0x3807,
|
||||
0x9D81, 0x9DFE, 0x3821, 0x9E41, 0x9E5A, 0x389F, 0x9E61, 0x9E7A, 0x38B9,
|
||||
0x9E81, 0x9EFE, 0x38D3, 0x9F41, 0x9F5A, 0x3951, 0x9F61, 0x9F7A, 0x396B,
|
||||
0x9F81, 0x9FFE, 0x3985, 0xA041, 0xA05A, 0x3A03, 0xA061, 0xA07A, 0x3A1D,
|
||||
0xA081, 0xA0FE, 0x3A37, 0xA141, 0xA15A, 0x3AB5, 0xA161, 0xA17A, 0x3ACF,
|
||||
0xA181, 0xA1A0, 0x3AE9, 0xA1A1, 0xA1FE, 0x0065, 0xA241, 0xA25A, 0x3B09,
|
||||
0xA261, 0xA27A, 0x3B23, 0xA281, 0xA2A0, 0x3B3D, 0xA2A1, 0xA2E5, 0x00C3,
|
||||
0xA341, 0xA35A, 0x3B5D, 0xA361, 0xA37A, 0x3B77, 0xA381, 0xA3A0, 0x3B91,
|
||||
0xA3A1, 0xA3FE, 0x0108, 0xA441, 0xA45A, 0x3BB1, 0xA461, 0xA47A, 0x3BCB,
|
||||
0xA481, 0xA4A0, 0x3BE5, 0xA4A1, 0xA4D3, 0x0166, 0xA4D5, 0xA4FE, 0x0199,
|
||||
0xA541, 0xA55A, 0x3C05, 0xA561, 0xA57A, 0x3C1F, 0xA581, 0xA5A0, 0x3C39,
|
||||
0xA5A1, 0xA5AA, 0x01C3, 0xA5B0, 0xA5B9, 0x01CD, 0xA5C1, 0xA5D8, 0x01D7,
|
||||
0xA5E1, 0xA5F8, 0x01EF, 0xA641, 0xA65A, 0x3C59, 0xA661, 0xA67A, 0x3C73,
|
||||
0xA681, 0xA6A0, 0x3C8D, 0xA6A1, 0xA6E4, 0x0207, 0xA741, 0xA75A, 0x3CAD,
|
||||
0xA761, 0xA77A, 0x3CC7, 0xA781, 0xA7A0, 0x3CE1, 0xA7A1, 0xA7EF, 0x024B,
|
||||
0xA841, 0xA85A, 0x3D01, 0xA861, 0xA87A, 0x3D1B, 0xA881, 0xA8A0, 0x3D35,
|
||||
0xA8A1, 0xA8A4, 0x029A, 0xA8A6, 0xA8A6, 0x029E, 0xA8A8, 0xA8AF, 0x029F,
|
||||
0xA8B1, 0xA8FE, 0x02A7, 0xA941, 0xA95A, 0x3D55, 0xA961, 0xA97A, 0x3D6F,
|
||||
0xA981, 0xA9A0, 0x3D89, 0xA9A1, 0xA9FE, 0x02F5, 0xAA41, 0xAA5A, 0x3DA9,
|
||||
0xAA61, 0xAA7A, 0x3DC3, 0xAA81, 0xAAA0, 0x3DDD, 0xAAA1, 0xAAF3, 0x0353,
|
||||
0xAB41, 0xAB5A, 0x3DFD, 0xAB61, 0xAB7A, 0x3E17, 0xAB81, 0xABA0, 0x3E31,
|
||||
0xABA1, 0xABF6, 0x03A6, 0xAC41, 0xAC5A, 0x3E51, 0xAC61, 0xAC7A, 0x3E6B,
|
||||
0xAC81, 0xACA0, 0x3E85, 0xACA1, 0xACC1, 0x03FC, 0xACD1, 0xACF1, 0x041D,
|
||||
0xAD41, 0xAD5A, 0x3EA5, 0xAD61, 0xAD7A, 0x3EBF, 0xAD81, 0xADA0, 0x3ED9,
|
||||
0xAE41, 0xAE5A, 0x3EF9, 0xAE61, 0xAE7A, 0x3F13, 0xAE81, 0xAEA0, 0x3F2D,
|
||||
0xAF41, 0xAF5A, 0x3F4D, 0xAF61, 0xAF7A, 0x3F67, 0xAF81, 0xAFA0, 0x3F81,
|
||||
0xB041, 0xB05A, 0x3FA1, 0xB061, 0xB07A, 0x3FBB, 0xB081, 0xB0A0, 0x3FD5,
|
||||
0xB0A1, 0xB0FE, 0x043E, 0xB141, 0xB15A, 0x3FF5, 0xB161, 0xB17A, 0x400F,
|
||||
0xB181, 0xB1A0, 0x4029, 0xB1A1, 0xB1FE, 0x049C, 0xB241, 0xB25A, 0x4049,
|
||||
0xB261, 0xB27A, 0x4063, 0xB281, 0xB2A0, 0x407D, 0xB2A1, 0xB2FE, 0x04FA,
|
||||
0xB341, 0xB35A, 0x409D, 0xB361, 0xB37A, 0x40B7, 0xB381, 0xB3A0, 0x40D1,
|
||||
0xB3A1, 0xB3FE, 0x0558, 0xB441, 0xB45A, 0x40F1, 0xB461, 0xB47A, 0x410B,
|
||||
0xB481, 0xB4A0, 0x4125, 0xB4A1, 0xB4FE, 0x05B6, 0xB541, 0xB55A, 0x4145,
|
||||
0xB561, 0xB57A, 0x415F, 0xB581, 0xB5A0, 0x4179, 0xB5A1, 0xB5FE, 0x0614,
|
||||
0xB641, 0xB65A, 0x4199, 0xB661, 0xB67A, 0x41B3, 0xB681, 0xB6A0, 0x41CD,
|
||||
0xB6A1, 0xB6FE, 0x0672, 0xB741, 0xB75A, 0x41ED, 0xB761, 0xB77A, 0x4207,
|
||||
0xB781, 0xB7A0, 0x4221, 0xB7A1, 0xB7FE, 0x06D0, 0xB841, 0xB85A, 0x4241,
|
||||
0xB861, 0xB87A, 0x425B, 0xB881, 0xB8A0, 0x4275, 0xB8A1, 0xB8FE, 0x072E,
|
||||
0xB941, 0xB95A, 0x4295, 0xB961, 0xB97A, 0x42AF, 0xB981, 0xB9A0, 0x42C9,
|
||||
0xB9A1, 0xB9FE, 0x078C, 0xBA41, 0xBA5A, 0x42E9, 0xBA61, 0xBA7A, 0x4303,
|
||||
0xBA81, 0xBAA0, 0x431D, 0xBAA1, 0xBAFE, 0x07EA, 0xBB41, 0xBB5A, 0x433D,
|
||||
0xBB61, 0xBB7A, 0x4357, 0xBB81, 0xBBA0, 0x4371, 0xBBA1, 0xBBFE, 0x0848,
|
||||
0xBC41, 0xBC5A, 0x4391, 0xBC61, 0xBC7A, 0x43AB, 0xBC81, 0xBCA0, 0x43C5,
|
||||
0xBCA1, 0xBCFE, 0x08A6, 0xBD41, 0xBD5A, 0x43E5, 0xBD61, 0xBD7A, 0x43FF,
|
||||
0xBD81, 0xBDA0, 0x4419, 0xBDA1, 0xBDFE, 0x0904, 0xBE41, 0xBE5A, 0x4439,
|
||||
0xBE61, 0xBE7A, 0x4453, 0xBE81, 0xBEA0, 0x446D, 0xBEA1, 0xBEFE, 0x0962,
|
||||
0xBF41, 0xBF5A, 0x448D, 0xBF61, 0xBF7A, 0x44A7, 0xBF81, 0xBFA0, 0x44C1,
|
||||
0xBFA1, 0xBFFE, 0x09C0, 0xC041, 0xC05A, 0x44E1, 0xC061, 0xC07A, 0x44FB,
|
||||
0xC081, 0xC0A0, 0x4515, 0xC0A1, 0xC0FE, 0x0A1E, 0xC141, 0xC15A, 0x4535,
|
||||
0xC161, 0xC17A, 0x454F, 0xC181, 0xC1A0, 0x4569, 0xC1A1, 0xC1FE, 0x0A7C,
|
||||
0xC241, 0xC25A, 0x4589, 0xC261, 0xC27A, 0x45A3, 0xC281, 0xC2A0, 0x45BD,
|
||||
0xC2A1, 0xC2FE, 0x0ADA, 0xC341, 0xC35A, 0x45DD, 0xC361, 0xC37A, 0x45F7,
|
||||
0xC381, 0xC3A0, 0x4611, 0xC3A1, 0xC3FE, 0x0B38, 0xC441, 0xC45A, 0x4631,
|
||||
0xC461, 0xC47A, 0x464B, 0xC481, 0xC4A0, 0x4665, 0xC4A1, 0xC4FE, 0x0B96,
|
||||
0xC541, 0xC55A, 0x4685, 0xC561, 0xC57A, 0x469F, 0xC581, 0xC5A0, 0x46B9,
|
||||
0xC5A1, 0xC5FE, 0x0BF4, 0xC641, 0xC652, 0x46D9, 0xC6A1, 0xC6FE, 0x0C52,
|
||||
0xC7A1, 0xC7FE, 0x0CB0, 0xC8A1, 0xC8FE, 0x0D0E, 0xCAA1, 0xCAFE, 0x0D6C,
|
||||
0xCBA1, 0xCBCF, 0x0DCA, 0xCBD0, 0xCBD0, 0x1014, 0xCBD1, 0xCBD5, 0x0DF9,
|
||||
0xCBD6, 0xCBD6, 0x0E5E, 0xCBD7, 0xCBE6, 0x0DFE, 0xCBE7, 0xCBE7, 0x1B8D,
|
||||
0xCBE8, 0xCBFE, 0x0E0E, 0xCCA1, 0xCCFE, 0x0E25, 0xCDA1, 0xCDCE, 0x0E83,
|
||||
0xCDCF, 0xCDCF, 0x0D84, 0xCDD0, 0xCDE7, 0x0EB1, 0xCDE8, 0xCDE8, 0x1EDC,
|
||||
0xCDE9, 0xCDFE, 0x0EC9, 0xCEA1, 0xCEAC, 0x0EDF, 0xCEAD, 0xCEAD, 0x0EDA,
|
||||
0xCEAE, 0xCEFE, 0x0EEB, 0xCFA1, 0xCFFA, 0x0F3C, 0xCFFB, 0xCFFB, 0x0F3E,
|
||||
0xCFFC, 0xCFFE, 0x0F96, 0xD0A1, 0xD0A1, 0x0F99, 0xD0A2, 0xD0A2, 0x0F6A,
|
||||
0xD0A3, 0xD0B7, 0x0F9A, 0xD0B8, 0xD0B8, 0x0F6A, 0xD0B9, 0xD0CF, 0x0FAF,
|
||||
0xD0D0, 0xD0D0, 0x0E7C, 0xD0D1, 0xD0DC, 0x0FC6, 0xD0DD, 0xD0DD, 0x1023,
|
||||
0xD0DE, 0xD0FE, 0x0FD2, 0xD1A1, 0xD1D3, 0x0FF3, 0xD1D4, 0xD1D4, 0x1116,
|
||||
0xD1D5, 0xD1D5, 0x103C, 0xD1D6, 0xD1D7, 0x1026, 0xD1D8, 0xD1D8, 0x1117,
|
||||
0xD1D9, 0xD1DA, 0x1028, 0xD1DB, 0xD1E0, 0x1118, 0xD1E1, 0xD1E1, 0x102A,
|
||||
0xD1E2, 0xD1E2, 0x16A8, 0xD1E3, 0xD1E5, 0x111E, 0xD1E6, 0xD1E6, 0x1122,
|
||||
0xD1E7, 0xD1E7, 0x102B, 0xD1E8, 0xD1EB, 0x1123, 0xD1EC, 0xD1EC, 0x102C,
|
||||
0xD1ED, 0xD1ED, 0x1127, 0xD1EE, 0xD1EE, 0x102D, 0xD1EF, 0xD1F0, 0x112A,
|
||||
0xD1F1, 0xD1F1, 0x102E, 0xD1F2, 0xD1F2, 0x112C, 0xD1F3, 0xD1F5, 0x102F,
|
||||
0xD1F6, 0xD1F6, 0x112F, 0xD1F7, 0xD1F9, 0x1032, 0xD1FA, 0xD1FA, 0x1133,
|
||||
0xD1FB, 0xD1FB, 0x1035, 0xD1FC, 0xD1FD, 0x1136, 0xD1FE, 0xD1FE, 0x1139,
|
||||
0xD2A1, 0xD2A1, 0x1036, 0xD2A2, 0xD2A3, 0x113A, 0xD2A4, 0xD2A6, 0x1037,
|
||||
0xD2A7, 0xD2AA, 0x113C, 0xD2AB, 0xD2AB, 0x1143, 0xD2AC, 0xD2AC, 0x103A,
|
||||
0xD2AD, 0xD2AD, 0x1144, 0xD2AE, 0xD2B1, 0x103B, 0xD2B2, 0xD2B2, 0x1148,
|
||||
0xD2B3, 0xD2BD, 0x103F, 0xD2BE, 0xD2BE, 0x119F, 0xD2BF, 0xD2C1, 0x104A,
|
||||
0xD2C2, 0xD2C3, 0x11A1, 0xD2C4, 0xD2C4, 0x11A5, 0xD2C5, 0xD2C5, 0x104D,
|
||||
0xD2C6, 0xD2CA, 0x11A6, 0xD2CB, 0xD2CB, 0x11AC, 0xD2CC, 0xD2CC, 0x104E,
|
||||
0xD2CD, 0xD2CE, 0x11AD, 0xD2CF, 0xD2D4, 0x11B0, 0xD2D5, 0xD2D7, 0x11B7,
|
||||
0xD2D8, 0xD2D8, 0x104F, 0xD2D9, 0xD2DA, 0x11BD, 0xD2DB, 0xD2DD, 0x1050,
|
||||
0xD2DE, 0xD2DF, 0x11C1, 0xD2E0, 0xD2E0, 0x1053, 0xD2E1, 0xD2E1, 0x11C3,
|
||||
0xD2E2, 0xD2E2, 0x11C6, 0xD2E3, 0xD2E3, 0x1054, 0xD2E4, 0xD2E4, 0x11D4,
|
||||
0xD2E5, 0xD2E8, 0x11D6, 0xD2E9, 0xD2EA, 0x11DB, 0xD2EB, 0xD2EB, 0x11E0,
|
||||
0xD2EC, 0xD2EF, 0x1055, 0xD2F0, 0xD2F3, 0x11FC, 0xD2F4, 0xD2F5, 0x1201,
|
||||
0xD2F6, 0xD2F6, 0x1059, 0xD2F7, 0xD2F8, 0x1203, 0xD2F9, 0xD2FE, 0x105A,
|
||||
0xD3A1, 0xD3FE, 0x1060, 0xD4A1, 0xD4E5, 0x10BE, 0xD4E6, 0xD4E6, 0x10DE,
|
||||
0xD4E7, 0xD4FB, 0x1103, 0xD4FC, 0xD4FC, 0x1028, 0xD4FD, 0xD4FE, 0x1118,
|
||||
0xD5A1, 0xD5A4, 0x111A, 0xD5A5, 0xD5A5, 0x16A8, 0xD5A6, 0xD5AA, 0x111E,
|
||||
0xD5AB, 0xD5AB, 0x102B, 0xD5AC, 0xD5AD, 0x1123, 0xD5AE, 0xD5AE, 0x1060,
|
||||
0xD5AF, 0xD5FE, 0x1125, 0xD6A1, 0xD6B7, 0x1175, 0xD6B8, 0xD6B8, 0x1047,
|
||||
0xD6B9, 0xD6CC, 0x118C, 0xD6CD, 0xD6CD, 0x104C, 0xD6CE, 0xD6FE, 0x11A0,
|
||||
0xD7A1, 0xD7CA, 0x11D1, 0xD7CB, 0xD7CB, 0x15B0, 0xD7CC, 0xD7E3, 0x11FB,
|
||||
0xD7E4, 0xD7E4, 0x1918, 0xD7E5, 0xD7FE, 0x1213, 0xD8A1, 0xD8FE, 0x122D,
|
||||
0xD9A1, 0xD9FE, 0x128B, 0xDAA1, 0xDAFE, 0x12E9, 0xDBA1, 0xDBC4, 0x1347,
|
||||
0xDBC5, 0xDBC5, 0x141F, 0xDBC6, 0xDBE3, 0x136B, 0xDBE4, 0xDBE4, 0x133A,
|
||||
0xDBE5, 0xDBFE, 0x1389, 0xDCA1, 0xDCA4, 0x13A3, 0xDCA5, 0xDCA5, 0x1D5E,
|
||||
0xDCA6, 0xDCFE, 0x13A7, 0xDDA1, 0xDDA4, 0x1400, 0xDDA5, 0xDDA5, 0x13D7,
|
||||
0xDDA6, 0xDDD4, 0x1404, 0xDDD5, 0xDDD5, 0x13F5, 0xDDD6, 0xDDF3, 0x1433,
|
||||
0xDDF4, 0xDDF4, 0x1DB7, 0xDDF5, 0xDDFE, 0x1451, 0xDEA1, 0xDEFB, 0x145B,
|
||||
0xDEFC, 0xDEFC, 0x15D0, 0xDEFD, 0xDEFD, 0x14B6, 0xDEFE, 0xDEFE, 0x14F7,
|
||||
0xDFA1, 0xDFB2, 0x14B7, 0xDFB3, 0xDFB3, 0x1BAB, 0xDFB4, 0xDFE0, 0x14C9,
|
||||
0xDFE1, 0xDFE1, 0x14F2, 0xDFE2, 0xDFE7, 0x14F6, 0xDFE8, 0xDFE8, 0x156D,
|
||||
0xDFE9, 0xDFFE, 0x14FC, 0xE0A1, 0xE0F0, 0x1512, 0xE0F1, 0xE0F1, 0x1771,
|
||||
0xE0F2, 0xE0FE, 0x1562, 0xE1A1, 0xE1AC, 0x156F, 0xE1AD, 0xE1AD, 0x1554,
|
||||
0xE1AE, 0xE1EC, 0x157B, 0xE1ED, 0xE1ED, 0x14C5, 0xE1EE, 0xE1FE, 0x15BA,
|
||||
0xE2A1, 0xE2FE, 0x15CB, 0xE3A1, 0xE3F4, 0x1629, 0xE3F5, 0xE3F5, 0x1B61,
|
||||
0xE3F6, 0xE3FE, 0x167D, 0xE4A1, 0xE4A1, 0x1CCA, 0xE4A2, 0xE4A8, 0x1686,
|
||||
0xE4A9, 0xE4A9, 0x162E, 0xE4AA, 0xE4FE, 0x168D, 0xE5A1, 0xE5AD, 0x16E2,
|
||||
0xE5AE, 0xE5AE, 0x16F2, 0xE5AF, 0xE5B0, 0x16EF, 0xE5B1, 0xE5B2, 0x1149,
|
||||
0xE5B3, 0xE5B8, 0x16F1, 0xE5B9, 0xE5B9, 0x114B, 0xE5BA, 0xE5BA, 0x16F7,
|
||||
0xE5BB, 0xE5BC, 0x114D, 0xE5BD, 0xE5C3, 0x16F8, 0xE5C4, 0xE5C4, 0x114F,
|
||||
0xE5C5, 0xE5CD, 0x16FF, 0xE5CE, 0xE5CE, 0x1153, 0xE5CF, 0xE5CF, 0x1708,
|
||||
0xE5D0, 0xE5D0, 0x1154, 0xE5D1, 0xE5D1, 0x1709, 0xE5D2, 0xE5D2, 0x1155,
|
||||
0xE5D3, 0xE5D5, 0x170A, 0xE5D6, 0xE5D6, 0x1157, 0xE5D7, 0xE5F9, 0x170D,
|
||||
0xE5FA, 0xE5FB, 0x115A, 0xE5FC, 0xE5FC, 0x103F, 0xE5FD, 0xE5FD, 0x1730,
|
||||
0xE5FE, 0xE5FE, 0x115C, 0xE6A1, 0xE6A1, 0x115F, 0xE6A2, 0xE6A3, 0x1731,
|
||||
0xE6A4, 0xE6A4, 0x1161, 0xE6A5, 0xE6A6, 0x1733, 0xE6A7, 0xE6A7, 0x1162,
|
||||
0xE6A8, 0xE6AC, 0x1735, 0xE6AD, 0xE6AD, 0x1165, 0xE6AE, 0xE6AE, 0x173A,
|
||||
0xE6AF, 0xE6B1, 0x1167, 0xE6B2, 0xE6B2, 0x173B, 0xE6B3, 0xE6B3, 0x116A,
|
||||
0xE6B4, 0xE6B6, 0x173C, 0xE6B7, 0xE6B8, 0x116B, 0xE6B9, 0xE6BB, 0x173F,
|
||||
0xE6BC, 0xE6BC, 0x116F, 0xE6BD, 0xE6C3, 0x1742, 0xE6C4, 0xE6C4, 0x1040,
|
||||
0xE6C5, 0xE6C5, 0x1749, 0xE6C6, 0xE6C7, 0x1171, 0xE6C8, 0xE6C9, 0x174A,
|
||||
0xE6CA, 0xE6CA, 0x1041, 0xE6CB, 0xE6D1, 0x174C, 0xE6D2, 0xE6D2, 0x1174,
|
||||
0xE6D3, 0xE6D5, 0x1753, 0xE6D6, 0xE6D6, 0x1175, 0xE6D7, 0xE6D8, 0x1756,
|
||||
0xE6D9, 0xE6D9, 0x1176, 0xE6DA, 0xE6DB, 0x1758, 0xE6DC, 0xE6DC, 0x1042,
|
||||
0xE6DD, 0xE6DE, 0x175A, 0xE6DF, 0xE6DF, 0x1177, 0xE6E0, 0xE6E0, 0x175C,
|
||||
0xE6E1, 0xE6E1, 0x1178, 0xE6E2, 0xE6E3, 0x175D, 0xE6E4, 0xE6E4, 0x117A,
|
||||
0xE6E5, 0xE6E5, 0x1179, 0xE6E6, 0xE6E6, 0x117B, 0xE6E7, 0xE6E7, 0x175F,
|
||||
0xE6E8, 0xE6E8, 0x117C, 0xE6E9, 0xE6E9, 0x1760, 0xE6EA, 0xE6EB, 0x117E,
|
||||
0xE6EC, 0xE6EC, 0x192F, 0xE6ED, 0xE6EE, 0x1761, 0xE6EF, 0xE6EF, 0x1181,
|
||||
0xE6F0, 0xE6F0, 0x1763, 0xE6F1, 0xE6F1, 0x1182, 0xE6F2, 0xE6F2, 0x1554,
|
||||
0xE6F3, 0xE6F4, 0x1764, 0xE6F5, 0xE6F5, 0x1183, 0xE6F6, 0xE6F6, 0x1043,
|
||||
0xE6F7, 0xE6F7, 0x1046, 0xE6F8, 0xE6F8, 0x1766, 0xE6F9, 0xE6F9, 0x1185,
|
||||
0xE6FA, 0xE6FE, 0x1767, 0xE7A1, 0xE7A1, 0x1187, 0xE7A2, 0xE7A5, 0x176C,
|
||||
0xE7A6, 0xE7A6, 0x1188, 0xE7A7, 0xE7A8, 0x1770, 0xE7A9, 0xE7A9, 0x1189,
|
||||
0xE7AA, 0xE7AA, 0x118B, 0xE7AB, 0xE7AB, 0x1772, 0xE7AC, 0xE7AC, 0x1047,
|
||||
0xE7AD, 0xE7AD, 0x118D, 0xE7AE, 0xE7AF, 0x1773, 0xE7B0, 0xE7B0, 0x118E,
|
||||
0xE7B1, 0xE7BE, 0x1775, 0xE7BF, 0xE7BF, 0x118F, 0xE7C0, 0xE7C0, 0x1783,
|
||||
0xE7C1, 0xE7C1, 0x1E67, 0xE7C2, 0xE7C5, 0x1784, 0xE7C6, 0xE7C6, 0x1191,
|
||||
0xE7C7, 0xE7C7, 0x1193, 0xE7C8, 0xE7CA, 0x1788, 0xE7CB, 0xE7CB, 0x1195,
|
||||
0xE7CC, 0xE7CC, 0x178B, 0xE7CD, 0xE7CD, 0x1196, 0xE7CE, 0xE7CE, 0x178C,
|
||||
0xE7CF, 0xE7D0, 0x1197, 0xE7D1, 0xE7D2, 0x178D, 0xE7D3, 0xE7D3, 0x119A,
|
||||
0xE7D4, 0xE7DE, 0x178F, 0xE7DF, 0xE7DF, 0x119C, 0xE7E0, 0xE7E3, 0x179A,
|
||||
0xE7E4, 0xE7E4, 0x119D, 0xE7E5, 0xE7E5, 0x179E, 0xE7E6, 0xE7E6, 0x119E,
|
||||
0xE7E7, 0xE7F6, 0x179F, 0xE7F7, 0xE7F7, 0x16A5, 0xE7F8, 0xE7FE, 0x17AF,
|
||||
0xE8A1, 0xE8E6, 0x17B6, 0xE8E7, 0xE8E8, 0x11C7, 0xE8E9, 0xE8EF, 0x17FC,
|
||||
0xE8F0, 0xE8F0, 0x11C9, 0xE8F1, 0xE8F1, 0x1054, 0xE8F2, 0xE8F6, 0x1803,
|
||||
0xE8F7, 0xE8F7, 0x11CB, 0xE8F8, 0xE8F8, 0x1808, 0xE8F9, 0xE8F9, 0x16A8,
|
||||
0xE8FA, 0xE8FA, 0x1809, 0xE8FB, 0xE8FB, 0x11CC, 0xE8FC, 0xE8FD, 0x180A,
|
||||
0xE8FE, 0xE8FE, 0x11CD, 0xE9A1, 0xE9A6, 0x180C, 0xE9A7, 0xE9A7, 0x11D0,
|
||||
0xE9A8, 0xE9AB, 0x1812, 0xE9AC, 0xE9AC, 0x11D1, 0xE9AD, 0xE9CB, 0x1816,
|
||||
0xE9CC, 0xE9CC, 0x11D3, 0xE9CD, 0xE9F6, 0x1835, 0xE9F7, 0xE9F7, 0x1F34,
|
||||
0xE9F8, 0xE9FE, 0x185F, 0xEAA1, 0xEAC0, 0x1866, 0xEAC1, 0xEAC1, 0x17EB,
|
||||
0xEAC2, 0xEAE4, 0x1886, 0xEAE5, 0xEAE5, 0x11E1, 0xEAE6, 0xEAF3, 0x18A9,
|
||||
0xEAF4, 0xEAF4, 0x1057, 0xEAF5, 0xEAF6, 0x18B7, 0xEAF7, 0xEAF7, 0x11E3,
|
||||
0xEAF8, 0xEAFB, 0x18B9, 0xEAFC, 0xEAFC, 0x11E5, 0xEAFD, 0xEAFD, 0x18BD,
|
||||
0xEAFE, 0xEAFE, 0x11E6, 0xEBA1, 0xEBA3, 0x18BE, 0xEBA4, 0xEBA4, 0x11E8,
|
||||
0xEBA5, 0xEBA6, 0x18C1, 0xEBA7, 0xEBA7, 0x11EA, 0xEBA8, 0xEBA8, 0x18C3,
|
||||
0xEBA9, 0xEBA9, 0x11EC, 0xEBAA, 0xEBAA, 0x1058, 0xEBAB, 0xEBB9, 0x18C4,
|
||||
0xEBBA, 0xEBBB, 0x11EE, 0xEBBC, 0xEBBC, 0x18D3, 0xEBBD, 0xEBBD, 0x11F0,
|
||||
0xEBBE, 0xEBC0, 0x18D4, 0xEBC1, 0xEBC1, 0x11F1, 0xEBC2, 0xEBC2, 0x11F3,
|
||||
0xEBC3, 0xEBC5, 0x18D7, 0xEBC6, 0xEBC7, 0x11F4, 0xEBC8, 0xEBCB, 0x18DA,
|
||||
0xEBCC, 0xEBCC, 0x11F7, 0xEBCD, 0xEBCE, 0x18DE, 0xEBCF, 0xEBD1, 0x11F8,
|
||||
0xEBD2, 0xEBD2, 0x15B0, 0xEBD3, 0xEBD7, 0x18E0, 0xEBD8, 0xEBD8, 0x11FB,
|
||||
0xEBD9, 0xEBFE, 0x18E5, 0xECA1, 0xECA5, 0x190B, 0xECA6, 0xECA6, 0x1206,
|
||||
0xECA7, 0xECA7, 0x1208, 0xECA8, 0xECA9, 0x1910, 0xECAA, 0xECAA, 0x120A,
|
||||
0xECAB, 0xECAE, 0x1912, 0xECAF, 0xECAF, 0x173E, 0xECB0, 0xECB1, 0x120C,
|
||||
0xECB2, 0xECB2, 0x105B, 0xECB3, 0xECB4, 0x1916, 0xECB5, 0xECB5, 0x1211,
|
||||
0xECB6, 0xECB7, 0x1918, 0xECB8, 0xECB8, 0x1213, 0xECB9, 0xECB9, 0x191A,
|
||||
0xECBA, 0xECBA, 0x1215, 0xECBB, 0xECBF, 0x191B, 0xECC0, 0xECC1, 0x1218,
|
||||
0xECC2, 0xECC4, 0x1920, 0xECC5, 0xECC5, 0x121A, 0xECC6, 0xECC6, 0x121C,
|
||||
0xECC7, 0xECC8, 0x1923, 0xECC9, 0xECCA, 0x105C, 0xECCB, 0xECD4, 0x1925,
|
||||
0xECD5, 0xECD5, 0x121E, 0xECD6, 0xECDC, 0x192F, 0xECDD, 0xECDE, 0x1220,
|
||||
0xECDF, 0xECE0, 0x1936, 0xECE1, 0xECE1, 0x1222, 0xECE2, 0xECE3, 0x1938,
|
||||
0xECE4, 0xECE4, 0x1224, 0xECE5, 0xECE6, 0x193A, 0xECE7, 0xECE8, 0x1225,
|
||||
0xECE9, 0xECF6, 0x193C, 0xECF7, 0xECF8, 0x1227, 0xECF9, 0xECF9, 0x194A,
|
||||
0xECFA, 0xECFA, 0x122A, 0xECFB, 0xECFE, 0x194B, 0xEDA1, 0xEDA3, 0x122D,
|
||||
0xEDA4, 0xEDED, 0x194F, 0xEDEE, 0xEDEE, 0x14E7, 0xEDEF, 0xEDFE, 0x1999,
|
||||
0xEEA1, 0xEEDA, 0x19A9, 0xEEDB, 0xEEDB, 0x195E, 0xEEDC, 0xEEFE, 0x19E3,
|
||||
0xEFA1, 0xEFFE, 0x1A06, 0xF0A1, 0xF0FE, 0x1A64, 0xF1A1, 0xF1FE, 0x1AC2,
|
||||
0xF2A1, 0xF2BC, 0x1B20, 0xF2BD, 0xF2BD, 0x1663, 0xF2BE, 0xF2F9, 0x1B3C,
|
||||
0xF2FA, 0xF2FA, 0x168B, 0xF2FB, 0xF2FE, 0x1B78, 0xF3A1, 0xF3B0, 0x1B7C,
|
||||
0xF3B1, 0xF3B1, 0x105F, 0xF3B2, 0xF3FE, 0x1B8C, 0xF4A1, 0xF4A6, 0x1BD9,
|
||||
0xF4A7, 0xF4A7, 0x1954, 0xF4A8, 0xF4ED, 0x1BDF, 0xF4EE, 0xF4EE, 0x1A1C,
|
||||
0xF4EF, 0xF4FE, 0x1C25, 0xF5A1, 0xF5FE, 0x1C35, 0xF6A1, 0xF6F3, 0x1C93,
|
||||
0xF6F4, 0xF6F4, 0x10B7, 0xF6F5, 0xF6F5, 0x1CE6, 0xF6F6, 0xF6F6, 0x1BE3,
|
||||
0xF6F7, 0xF6FE, 0x1CE7, 0xF7A1, 0xF7B7, 0x1CEF, 0xF7B8, 0xF7B8, 0x1097,
|
||||
0xF7B9, 0xF7C7, 0x1D06, 0xF7C8, 0xF7C8, 0x10AA, 0xF7C9, 0xF7D2, 0x1D15,
|
||||
0xF7D3, 0xF7D3, 0x10F4, 0xF7D4, 0xF7FE, 0x1D1F, 0xF8A1, 0xF8DA, 0x1D4A,
|
||||
0xF8DB, 0xF8DB, 0x1D94, 0xF8DC, 0xF8EF, 0x1D84, 0xF8F0, 0xF8F0, 0x13E0,
|
||||
0xF8F1, 0xF8FE, 0x1D98, 0xF9A1, 0xF9FE, 0x1DA6, 0xFAA1, 0xFAA1, 0x1E1D,
|
||||
0xFAA2, 0xFAA2, 0x0DE6, 0xFAA3, 0xFAE5, 0x1E04, 0xFAE6, 0xFAE6, 0x0E3C,
|
||||
0xFAE7, 0xFAFE, 0x1E47, 0xFBA1, 0xFBFE, 0x1E5F, 0xFCA1, 0xFCA8, 0x1EBD,
|
||||
0xFCA9, 0xFCA9, 0x0EE7, 0xFCAA, 0xFCFE, 0x1EC5, 0xFDA1, 0xFDFE, 0x1F1A,
|
||||
};
|
@ -0,0 +1,16 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/Korea1/cmaps_korea1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_KSCms_UHC_V_1[16 * 3] = {
|
||||
0xA1A2, 0xA1A3, 0x1F78, 0xA1A5, 0xA1A5, 0x1F7A, 0xA1A6, 0xA1A6,
|
||||
0x2080, 0xA1A9, 0xA1AB, 0x1F7B, 0xA1AD, 0xA1AD, 0x1F7E, 0xA1B2,
|
||||
0xA1BD, 0x1F7F, 0xA1EB, 0xA1EB, 0x1F8B, 0xA3A1, 0xA3A1, 0x1F8C,
|
||||
0xA3A8, 0xA3A9, 0x1F8D, 0xA3AC, 0xA3AC, 0x1F8F, 0xA3AE, 0xA3AE,
|
||||
0x1F90, 0xA3BA, 0xA3BF, 0x1F91, 0xA3DB, 0xA3DB, 0x1F97, 0xA3DD,
|
||||
0xA3DD, 0x1F98, 0xA3DF, 0xA3DF, 0x1F99, 0xA3FB, 0xA3FE, 0x1F9A,
|
||||
};
|
@ -0,0 +1,180 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/Korea1/cmaps_korea1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_KSCpc_EUC_H_0[509 * 3] = {
|
||||
0x0020, 0x007E, 0x0001, 0x0081, 0x0083, 0x0060, 0x00FE, 0x00FF, 0x0063,
|
||||
0xA141, 0xA17D, 0x1FFF, 0xA181, 0xA19A, 0x203C, 0xA19C, 0xA1A0, 0x2056,
|
||||
0xA1A1, 0xA1A1, 0x0065, 0xA1A2, 0xA1A3, 0x205B, 0xA1A4, 0xA1FE, 0x0068,
|
||||
0xA241, 0xA24C, 0x205D, 0xA2A1, 0xA2E5, 0x00C3, 0xA2E6, 0xA2FE, 0x2069,
|
||||
0xA341, 0xA37D, 0x2082, 0xA381, 0xA39F, 0x20BF, 0xA3A1, 0xA3FE, 0x0108,
|
||||
0xA441, 0xA47D, 0x20DE, 0xA481, 0xA49F, 0x211B, 0xA4A1, 0xA4D3, 0x0166,
|
||||
0xA4D5, 0xA4FE, 0x0199, 0xA541, 0xA57D, 0x213A, 0xA581, 0xA58B, 0x2177,
|
||||
0xA5A1, 0xA5AA, 0x01C3, 0xA5B0, 0xA5B9, 0x01CD, 0xA5C1, 0xA5D8, 0x01D7,
|
||||
0xA5DA, 0xA5DE, 0x2182, 0xA5E1, 0xA5F8, 0x01EF, 0xA5F9, 0xA5FC, 0x2187,
|
||||
0xA641, 0xA67D, 0x218B, 0xA681, 0xA68A, 0x21C8, 0xA68D, 0xA693, 0x21D2,
|
||||
0xA696, 0xA69B, 0x21D9, 0xA69E, 0xA69F, 0x21DF, 0xA6A1, 0xA6E4, 0x0207,
|
||||
0xA6E5, 0xA6FE, 0x21E1, 0xA741, 0xA77D, 0x21FB, 0xA781, 0xA79F, 0x2238,
|
||||
0xA7A1, 0xA7EF, 0x024B, 0xA7F0, 0xA7FE, 0x2257, 0xA841, 0xA87D, 0x2266,
|
||||
0xA881, 0xA89F, 0x22A3, 0xA8A1, 0xA8A4, 0x029A, 0xA8A6, 0xA8A6, 0x029E,
|
||||
0xA8A8, 0xA8AF, 0x029F, 0xA8B1, 0xA8FE, 0x02A7, 0xA941, 0xA974, 0x22C2,
|
||||
0xA9A1, 0xA9FE, 0x02F5, 0xAA41, 0xAA7D, 0x22F6, 0xAA81, 0xAA9F, 0x2333,
|
||||
0xAAA1, 0xAAF3, 0x0353, 0xAAF4, 0xAAFE, 0x2352, 0xAB41, 0xAB7D, 0x235D,
|
||||
0xAB81, 0xAB9F, 0x239A, 0xABA1, 0xABF6, 0x03A6, 0xABF7, 0xABFA, 0x23B9,
|
||||
0xABFB, 0xABFD, 0x2472, 0xAC41, 0xAC7D, 0x23BD, 0xAC81, 0xAC97, 0x23FA,
|
||||
0xACA1, 0xACC1, 0x03FC, 0xACC2, 0xACD0, 0x2411, 0xACD1, 0xACF1, 0x041D,
|
||||
0xACF2, 0xACF6, 0x2420, 0xAD41, 0xAD7D, 0x2425, 0xADA1, 0xADB0, 0x2462,
|
||||
0xB0A1, 0xB0FE, 0x043E, 0xB1A1, 0xB1FE, 0x049C, 0xB2A1, 0xB2FE, 0x04FA,
|
||||
0xB3A1, 0xB3FE, 0x0558, 0xB4A1, 0xB4FE, 0x05B6, 0xB5A1, 0xB5FE, 0x0614,
|
||||
0xB6A1, 0xB6FE, 0x0672, 0xB7A1, 0xB7FE, 0x06D0, 0xB8A1, 0xB8FE, 0x072E,
|
||||
0xB9A1, 0xB9FE, 0x078C, 0xBAA1, 0xBAFE, 0x07EA, 0xBBA1, 0xBBFE, 0x0848,
|
||||
0xBCA1, 0xBCFE, 0x08A6, 0xBDA1, 0xBDFE, 0x0904, 0xBEA1, 0xBEFE, 0x0962,
|
||||
0xBFA1, 0xBFFE, 0x09C0, 0xC0A1, 0xC0FE, 0x0A1E, 0xC1A1, 0xC1FE, 0x0A7C,
|
||||
0xC2A1, 0xC2FE, 0x0ADA, 0xC3A1, 0xC3FE, 0x0B38, 0xC4A1, 0xC4FE, 0x0B96,
|
||||
0xC5A1, 0xC5FE, 0x0BF4, 0xC6A1, 0xC6FE, 0x0C52, 0xC7A1, 0xC7FE, 0x0CB0,
|
||||
0xC8A1, 0xC8FE, 0x0D0E, 0xCAA1, 0xCAFE, 0x0D6C, 0xCBA1, 0xCBCF, 0x0DCA,
|
||||
0xCBD0, 0xCBD0, 0x1014, 0xCBD1, 0xCBD5, 0x0DF9, 0xCBD6, 0xCBD6, 0x0E5E,
|
||||
0xCBD7, 0xCBE6, 0x0DFE, 0xCBE7, 0xCBE7, 0x1B8D, 0xCBE8, 0xCBFE, 0x0E0E,
|
||||
0xCCA1, 0xCCFE, 0x0E25, 0xCDA1, 0xCDCE, 0x0E83, 0xCDCF, 0xCDCF, 0x0D84,
|
||||
0xCDD0, 0xCDE7, 0x0EB1, 0xCDE8, 0xCDE8, 0x1EDC, 0xCDE9, 0xCDFE, 0x0EC9,
|
||||
0xCEA1, 0xCEAC, 0x0EDF, 0xCEAD, 0xCEAD, 0x0EDA, 0xCEAE, 0xCEFE, 0x0EEB,
|
||||
0xCFA1, 0xCFFA, 0x0F3C, 0xCFFB, 0xCFFB, 0x0F3E, 0xCFFC, 0xCFFE, 0x0F96,
|
||||
0xD0A1, 0xD0A1, 0x0F99, 0xD0A2, 0xD0A2, 0x0F6A, 0xD0A3, 0xD0B7, 0x0F9A,
|
||||
0xD0B8, 0xD0B8, 0x0F6A, 0xD0B9, 0xD0CF, 0x0FAF, 0xD0D0, 0xD0D0, 0x0E7C,
|
||||
0xD0D1, 0xD0DC, 0x0FC6, 0xD0DD, 0xD0DD, 0x1023, 0xD0DE, 0xD0FE, 0x0FD2,
|
||||
0xD1A1, 0xD1D3, 0x0FF3, 0xD1D4, 0xD1D4, 0x1116, 0xD1D5, 0xD1D5, 0x103C,
|
||||
0xD1D6, 0xD1D7, 0x1026, 0xD1D8, 0xD1D8, 0x1117, 0xD1D9, 0xD1DA, 0x1028,
|
||||
0xD1DB, 0xD1E0, 0x1118, 0xD1E1, 0xD1E1, 0x102A, 0xD1E2, 0xD1E2, 0x16A8,
|
||||
0xD1E3, 0xD1E5, 0x111E, 0xD1E6, 0xD1E6, 0x1122, 0xD1E7, 0xD1E7, 0x102B,
|
||||
0xD1E8, 0xD1EB, 0x1123, 0xD1EC, 0xD1EC, 0x102C, 0xD1ED, 0xD1ED, 0x1127,
|
||||
0xD1EE, 0xD1EE, 0x102D, 0xD1EF, 0xD1F0, 0x112A, 0xD1F1, 0xD1F1, 0x102E,
|
||||
0xD1F2, 0xD1F2, 0x112C, 0xD1F3, 0xD1F5, 0x102F, 0xD1F6, 0xD1F6, 0x112F,
|
||||
0xD1F7, 0xD1F9, 0x1032, 0xD1FA, 0xD1FA, 0x1133, 0xD1FB, 0xD1FB, 0x1035,
|
||||
0xD1FC, 0xD1FD, 0x1136, 0xD1FE, 0xD1FE, 0x1139, 0xD2A1, 0xD2A1, 0x1036,
|
||||
0xD2A2, 0xD2A3, 0x113A, 0xD2A4, 0xD2A6, 0x1037, 0xD2A7, 0xD2AA, 0x113C,
|
||||
0xD2AB, 0xD2AB, 0x1143, 0xD2AC, 0xD2AC, 0x103A, 0xD2AD, 0xD2AD, 0x1144,
|
||||
0xD2AE, 0xD2B1, 0x103B, 0xD2B2, 0xD2B2, 0x1148, 0xD2B3, 0xD2BD, 0x103F,
|
||||
0xD2BE, 0xD2BE, 0x119F, 0xD2BF, 0xD2C1, 0x104A, 0xD2C2, 0xD2C3, 0x11A1,
|
||||
0xD2C4, 0xD2C4, 0x11A5, 0xD2C5, 0xD2C5, 0x104D, 0xD2C6, 0xD2CA, 0x11A6,
|
||||
0xD2CB, 0xD2CB, 0x11AC, 0xD2CC, 0xD2CC, 0x104E, 0xD2CD, 0xD2CE, 0x11AD,
|
||||
0xD2CF, 0xD2D4, 0x11B0, 0xD2D5, 0xD2D7, 0x11B7, 0xD2D8, 0xD2D8, 0x104F,
|
||||
0xD2D9, 0xD2DA, 0x11BD, 0xD2DB, 0xD2DD, 0x1050, 0xD2DE, 0xD2DF, 0x11C1,
|
||||
0xD2E0, 0xD2E0, 0x1053, 0xD2E1, 0xD2E1, 0x11C3, 0xD2E2, 0xD2E2, 0x11C6,
|
||||
0xD2E3, 0xD2E3, 0x1054, 0xD2E4, 0xD2E4, 0x11D4, 0xD2E5, 0xD2E8, 0x11D6,
|
||||
0xD2E9, 0xD2EA, 0x11DB, 0xD2EB, 0xD2EB, 0x11E0, 0xD2EC, 0xD2EF, 0x1055,
|
||||
0xD2F0, 0xD2F3, 0x11FC, 0xD2F4, 0xD2F5, 0x1201, 0xD2F6, 0xD2F6, 0x1059,
|
||||
0xD2F7, 0xD2F8, 0x1203, 0xD2F9, 0xD2FE, 0x105A, 0xD3A1, 0xD3FE, 0x1060,
|
||||
0xD4A1, 0xD4E5, 0x10BE, 0xD4E6, 0xD4E6, 0x10DE, 0xD4E7, 0xD4FB, 0x1103,
|
||||
0xD4FC, 0xD4FC, 0x1028, 0xD4FD, 0xD4FE, 0x1118, 0xD5A1, 0xD5A4, 0x111A,
|
||||
0xD5A5, 0xD5A5, 0x16A8, 0xD5A6, 0xD5AA, 0x111E, 0xD5AB, 0xD5AB, 0x102B,
|
||||
0xD5AC, 0xD5AD, 0x1123, 0xD5AE, 0xD5AE, 0x1060, 0xD5AF, 0xD5FE, 0x1125,
|
||||
0xD6A1, 0xD6B7, 0x1175, 0xD6B8, 0xD6B8, 0x1047, 0xD6B9, 0xD6CC, 0x118C,
|
||||
0xD6CD, 0xD6CD, 0x104C, 0xD6CE, 0xD6FE, 0x11A0, 0xD7A1, 0xD7CA, 0x11D1,
|
||||
0xD7CB, 0xD7CB, 0x15B0, 0xD7CC, 0xD7E3, 0x11FB, 0xD7E4, 0xD7E4, 0x1918,
|
||||
0xD7E5, 0xD7FE, 0x1213, 0xD8A1, 0xD8FE, 0x122D, 0xD9A1, 0xD9FE, 0x128B,
|
||||
0xDAA1, 0xDAFE, 0x12E9, 0xDBA1, 0xDBC4, 0x1347, 0xDBC5, 0xDBC5, 0x141F,
|
||||
0xDBC6, 0xDBE3, 0x136B, 0xDBE4, 0xDBE4, 0x133A, 0xDBE5, 0xDBFE, 0x1389,
|
||||
0xDCA1, 0xDCA4, 0x13A3, 0xDCA5, 0xDCA5, 0x1D5E, 0xDCA6, 0xDCFE, 0x13A7,
|
||||
0xDDA1, 0xDDA4, 0x1400, 0xDDA5, 0xDDA5, 0x13D7, 0xDDA6, 0xDDD4, 0x1404,
|
||||
0xDDD5, 0xDDD5, 0x13F5, 0xDDD6, 0xDDF3, 0x1433, 0xDDF4, 0xDDF4, 0x1DB7,
|
||||
0xDDF5, 0xDDFE, 0x1451, 0xDEA1, 0xDEFB, 0x145B, 0xDEFC, 0xDEFC, 0x15D0,
|
||||
0xDEFD, 0xDEFD, 0x14B6, 0xDEFE, 0xDEFE, 0x14F7, 0xDFA1, 0xDFB2, 0x14B7,
|
||||
0xDFB3, 0xDFB3, 0x1BAB, 0xDFB4, 0xDFE0, 0x14C9, 0xDFE1, 0xDFE1, 0x14F2,
|
||||
0xDFE2, 0xDFE7, 0x14F6, 0xDFE8, 0xDFE8, 0x156D, 0xDFE9, 0xDFFE, 0x14FC,
|
||||
0xE0A1, 0xE0F0, 0x1512, 0xE0F1, 0xE0F1, 0x1771, 0xE0F2, 0xE0FE, 0x1562,
|
||||
0xE1A1, 0xE1AC, 0x156F, 0xE1AD, 0xE1AD, 0x1554, 0xE1AE, 0xE1EC, 0x157B,
|
||||
0xE1ED, 0xE1ED, 0x14C5, 0xE1EE, 0xE1FE, 0x15BA, 0xE2A1, 0xE2FE, 0x15CB,
|
||||
0xE3A1, 0xE3F4, 0x1629, 0xE3F5, 0xE3F5, 0x1B61, 0xE3F6, 0xE3FE, 0x167D,
|
||||
0xE4A1, 0xE4A1, 0x1CCA, 0xE4A2, 0xE4A8, 0x1686, 0xE4A9, 0xE4A9, 0x162E,
|
||||
0xE4AA, 0xE4FE, 0x168D, 0xE5A1, 0xE5AD, 0x16E2, 0xE5AE, 0xE5AE, 0x16F2,
|
||||
0xE5AF, 0xE5B0, 0x16EF, 0xE5B1, 0xE5B2, 0x1149, 0xE5B3, 0xE5B8, 0x16F1,
|
||||
0xE5B9, 0xE5B9, 0x114B, 0xE5BA, 0xE5BA, 0x16F7, 0xE5BB, 0xE5BC, 0x114D,
|
||||
0xE5BD, 0xE5C3, 0x16F8, 0xE5C4, 0xE5C4, 0x114F, 0xE5C5, 0xE5CD, 0x16FF,
|
||||
0xE5CE, 0xE5CE, 0x1153, 0xE5CF, 0xE5CF, 0x1708, 0xE5D0, 0xE5D0, 0x1154,
|
||||
0xE5D1, 0xE5D1, 0x1709, 0xE5D2, 0xE5D2, 0x1155, 0xE5D3, 0xE5D5, 0x170A,
|
||||
0xE5D6, 0xE5D6, 0x1157, 0xE5D7, 0xE5F9, 0x170D, 0xE5FA, 0xE5FB, 0x115A,
|
||||
0xE5FC, 0xE5FC, 0x103F, 0xE5FD, 0xE5FD, 0x1730, 0xE5FE, 0xE5FE, 0x115C,
|
||||
0xE6A1, 0xE6A1, 0x115F, 0xE6A2, 0xE6A3, 0x1731, 0xE6A4, 0xE6A4, 0x1161,
|
||||
0xE6A5, 0xE6A6, 0x1733, 0xE6A7, 0xE6A7, 0x1162, 0xE6A8, 0xE6AC, 0x1735,
|
||||
0xE6AD, 0xE6AD, 0x1165, 0xE6AE, 0xE6AE, 0x173A, 0xE6AF, 0xE6B1, 0x1167,
|
||||
0xE6B2, 0xE6B2, 0x173B, 0xE6B3, 0xE6B3, 0x116A, 0xE6B4, 0xE6B6, 0x173C,
|
||||
0xE6B7, 0xE6B8, 0x116B, 0xE6B9, 0xE6BB, 0x173F, 0xE6BC, 0xE6BC, 0x116F,
|
||||
0xE6BD, 0xE6C3, 0x1742, 0xE6C4, 0xE6C4, 0x1040, 0xE6C5, 0xE6C5, 0x1749,
|
||||
0xE6C6, 0xE6C7, 0x1171, 0xE6C8, 0xE6C9, 0x174A, 0xE6CA, 0xE6CA, 0x1041,
|
||||
0xE6CB, 0xE6D1, 0x174C, 0xE6D2, 0xE6D2, 0x1174, 0xE6D3, 0xE6D5, 0x1753,
|
||||
0xE6D6, 0xE6D6, 0x1175, 0xE6D7, 0xE6D8, 0x1756, 0xE6D9, 0xE6D9, 0x1176,
|
||||
0xE6DA, 0xE6DB, 0x1758, 0xE6DC, 0xE6DC, 0x1042, 0xE6DD, 0xE6DE, 0x175A,
|
||||
0xE6DF, 0xE6DF, 0x1177, 0xE6E0, 0xE6E0, 0x175C, 0xE6E1, 0xE6E1, 0x1178,
|
||||
0xE6E2, 0xE6E3, 0x175D, 0xE6E4, 0xE6E4, 0x117A, 0xE6E5, 0xE6E5, 0x1179,
|
||||
0xE6E6, 0xE6E6, 0x117B, 0xE6E7, 0xE6E7, 0x175F, 0xE6E8, 0xE6E8, 0x117C,
|
||||
0xE6E9, 0xE6E9, 0x1760, 0xE6EA, 0xE6EB, 0x117E, 0xE6EC, 0xE6EC, 0x192F,
|
||||
0xE6ED, 0xE6EE, 0x1761, 0xE6EF, 0xE6EF, 0x1181, 0xE6F0, 0xE6F0, 0x1763,
|
||||
0xE6F1, 0xE6F1, 0x1182, 0xE6F2, 0xE6F2, 0x1554, 0xE6F3, 0xE6F4, 0x1764,
|
||||
0xE6F5, 0xE6F5, 0x1183, 0xE6F6, 0xE6F6, 0x1043, 0xE6F7, 0xE6F7, 0x1046,
|
||||
0xE6F8, 0xE6F8, 0x1766, 0xE6F9, 0xE6F9, 0x1185, 0xE6FA, 0xE6FE, 0x1767,
|
||||
0xE7A1, 0xE7A1, 0x1187, 0xE7A2, 0xE7A5, 0x176C, 0xE7A6, 0xE7A6, 0x1188,
|
||||
0xE7A7, 0xE7A8, 0x1770, 0xE7A9, 0xE7A9, 0x1189, 0xE7AA, 0xE7AA, 0x118B,
|
||||
0xE7AB, 0xE7AB, 0x1772, 0xE7AC, 0xE7AC, 0x1047, 0xE7AD, 0xE7AD, 0x118D,
|
||||
0xE7AE, 0xE7AF, 0x1773, 0xE7B0, 0xE7B0, 0x118E, 0xE7B1, 0xE7BE, 0x1775,
|
||||
0xE7BF, 0xE7BF, 0x118F, 0xE7C0, 0xE7C0, 0x1783, 0xE7C1, 0xE7C1, 0x1E67,
|
||||
0xE7C2, 0xE7C5, 0x1784, 0xE7C6, 0xE7C6, 0x1191, 0xE7C7, 0xE7C7, 0x1193,
|
||||
0xE7C8, 0xE7CA, 0x1788, 0xE7CB, 0xE7CB, 0x1195, 0xE7CC, 0xE7CC, 0x178B,
|
||||
0xE7CD, 0xE7CD, 0x1196, 0xE7CE, 0xE7CE, 0x178C, 0xE7CF, 0xE7D0, 0x1197,
|
||||
0xE7D1, 0xE7D2, 0x178D, 0xE7D3, 0xE7D3, 0x119A, 0xE7D4, 0xE7DE, 0x178F,
|
||||
0xE7DF, 0xE7DF, 0x119C, 0xE7E0, 0xE7E3, 0x179A, 0xE7E4, 0xE7E4, 0x119D,
|
||||
0xE7E5, 0xE7E5, 0x179E, 0xE7E6, 0xE7E6, 0x119E, 0xE7E7, 0xE7F6, 0x179F,
|
||||
0xE7F7, 0xE7F7, 0x16A5, 0xE7F8, 0xE7FE, 0x17AF, 0xE8A1, 0xE8E6, 0x17B6,
|
||||
0xE8E7, 0xE8E8, 0x11C7, 0xE8E9, 0xE8EF, 0x17FC, 0xE8F0, 0xE8F0, 0x11C9,
|
||||
0xE8F1, 0xE8F1, 0x1054, 0xE8F2, 0xE8F6, 0x1803, 0xE8F7, 0xE8F7, 0x11CB,
|
||||
0xE8F8, 0xE8F8, 0x1808, 0xE8F9, 0xE8F9, 0x16A8, 0xE8FA, 0xE8FA, 0x1809,
|
||||
0xE8FB, 0xE8FB, 0x11CC, 0xE8FC, 0xE8FD, 0x180A, 0xE8FE, 0xE8FE, 0x11CD,
|
||||
0xE9A1, 0xE9A6, 0x180C, 0xE9A7, 0xE9A7, 0x11D0, 0xE9A8, 0xE9AB, 0x1812,
|
||||
0xE9AC, 0xE9AC, 0x11D1, 0xE9AD, 0xE9CB, 0x1816, 0xE9CC, 0xE9CC, 0x11D3,
|
||||
0xE9CD, 0xE9F6, 0x1835, 0xE9F7, 0xE9F7, 0x1F34, 0xE9F8, 0xE9FE, 0x185F,
|
||||
0xEAA1, 0xEAC0, 0x1866, 0xEAC1, 0xEAC1, 0x17EB, 0xEAC2, 0xEAE4, 0x1886,
|
||||
0xEAE5, 0xEAE5, 0x11E1, 0xEAE6, 0xEAF3, 0x18A9, 0xEAF4, 0xEAF4, 0x1057,
|
||||
0xEAF5, 0xEAF6, 0x18B7, 0xEAF7, 0xEAF7, 0x11E3, 0xEAF8, 0xEAFB, 0x18B9,
|
||||
0xEAFC, 0xEAFC, 0x11E5, 0xEAFD, 0xEAFD, 0x18BD, 0xEAFE, 0xEAFE, 0x11E6,
|
||||
0xEBA1, 0xEBA3, 0x18BE, 0xEBA4, 0xEBA4, 0x11E8, 0xEBA5, 0xEBA6, 0x18C1,
|
||||
0xEBA7, 0xEBA7, 0x11EA, 0xEBA8, 0xEBA8, 0x18C3, 0xEBA9, 0xEBA9, 0x11EC,
|
||||
0xEBAA, 0xEBAA, 0x1058, 0xEBAB, 0xEBB9, 0x18C4, 0xEBBA, 0xEBBB, 0x11EE,
|
||||
0xEBBC, 0xEBBC, 0x18D3, 0xEBBD, 0xEBBD, 0x11F0, 0xEBBE, 0xEBC0, 0x18D4,
|
||||
0xEBC1, 0xEBC1, 0x11F1, 0xEBC2, 0xEBC2, 0x11F3, 0xEBC3, 0xEBC5, 0x18D7,
|
||||
0xEBC6, 0xEBC7, 0x11F4, 0xEBC8, 0xEBCB, 0x18DA, 0xEBCC, 0xEBCC, 0x11F7,
|
||||
0xEBCD, 0xEBCE, 0x18DE, 0xEBCF, 0xEBD1, 0x11F8, 0xEBD2, 0xEBD2, 0x15B0,
|
||||
0xEBD3, 0xEBD7, 0x18E0, 0xEBD8, 0xEBD8, 0x11FB, 0xEBD9, 0xEBFE, 0x18E5,
|
||||
0xECA1, 0xECA5, 0x190B, 0xECA6, 0xECA6, 0x1206, 0xECA7, 0xECA7, 0x1208,
|
||||
0xECA8, 0xECA9, 0x1910, 0xECAA, 0xECAA, 0x120A, 0xECAB, 0xECAE, 0x1912,
|
||||
0xECAF, 0xECAF, 0x173E, 0xECB0, 0xECB1, 0x120C, 0xECB2, 0xECB2, 0x105B,
|
||||
0xECB3, 0xECB4, 0x1916, 0xECB5, 0xECB5, 0x1211, 0xECB6, 0xECB7, 0x1918,
|
||||
0xECB8, 0xECB8, 0x1213, 0xECB9, 0xECB9, 0x191A, 0xECBA, 0xECBA, 0x1215,
|
||||
0xECBB, 0xECBF, 0x191B, 0xECC0, 0xECC1, 0x1218, 0xECC2, 0xECC4, 0x1920,
|
||||
0xECC5, 0xECC5, 0x121A, 0xECC6, 0xECC6, 0x121C, 0xECC7, 0xECC8, 0x1923,
|
||||
0xECC9, 0xECCA, 0x105C, 0xECCB, 0xECD4, 0x1925, 0xECD5, 0xECD5, 0x121E,
|
||||
0xECD6, 0xECDC, 0x192F, 0xECDD, 0xECDE, 0x1220, 0xECDF, 0xECE0, 0x1936,
|
||||
0xECE1, 0xECE1, 0x1222, 0xECE2, 0xECE3, 0x1938, 0xECE4, 0xECE4, 0x1224,
|
||||
0xECE5, 0xECE6, 0x193A, 0xECE7, 0xECE8, 0x1225, 0xECE9, 0xECF6, 0x193C,
|
||||
0xECF7, 0xECF8, 0x1227, 0xECF9, 0xECF9, 0x194A, 0xECFA, 0xECFA, 0x122A,
|
||||
0xECFB, 0xECFE, 0x194B, 0xEDA1, 0xEDA3, 0x122D, 0xEDA4, 0xEDED, 0x194F,
|
||||
0xEDEE, 0xEDEE, 0x14E7, 0xEDEF, 0xEDFE, 0x1999, 0xEEA1, 0xEEDA, 0x19A9,
|
||||
0xEEDB, 0xEEDB, 0x195E, 0xEEDC, 0xEEFE, 0x19E3, 0xEFA1, 0xEFFE, 0x1A06,
|
||||
0xF0A1, 0xF0FE, 0x1A64, 0xF1A1, 0xF1FE, 0x1AC2, 0xF2A1, 0xF2BC, 0x1B20,
|
||||
0xF2BD, 0xF2BD, 0x1663, 0xF2BE, 0xF2F9, 0x1B3C, 0xF2FA, 0xF2FA, 0x168B,
|
||||
0xF2FB, 0xF2FE, 0x1B78, 0xF3A1, 0xF3B0, 0x1B7C, 0xF3B1, 0xF3B1, 0x105F,
|
||||
0xF3B2, 0xF3FE, 0x1B8C, 0xF4A1, 0xF4A6, 0x1BD9, 0xF4A7, 0xF4A7, 0x1954,
|
||||
0xF4A8, 0xF4ED, 0x1BDF, 0xF4EE, 0xF4EE, 0x1A1C, 0xF4EF, 0xF4FE, 0x1C25,
|
||||
0xF5A1, 0xF5FE, 0x1C35, 0xF6A1, 0xF6F3, 0x1C93, 0xF6F4, 0xF6F4, 0x10B7,
|
||||
0xF6F5, 0xF6F5, 0x1CE6, 0xF6F6, 0xF6F6, 0x1BE3, 0xF6F7, 0xF6FE, 0x1CE7,
|
||||
0xF7A1, 0xF7B7, 0x1CEF, 0xF7B8, 0xF7B8, 0x1097, 0xF7B9, 0xF7C7, 0x1D06,
|
||||
0xF7C8, 0xF7C8, 0x10AA, 0xF7C9, 0xF7D2, 0x1D15, 0xF7D3, 0xF7D3, 0x10F4,
|
||||
0xF7D4, 0xF7FE, 0x1D1F, 0xF8A1, 0xF8DA, 0x1D4A, 0xF8DB, 0xF8DB, 0x1D94,
|
||||
0xF8DC, 0xF8EF, 0x1D84, 0xF8F0, 0xF8F0, 0x13E0, 0xF8F1, 0xF8FE, 0x1D98,
|
||||
0xF9A1, 0xF9FE, 0x1DA6, 0xFAA1, 0xFAA1, 0x1E1D, 0xFAA2, 0xFAA2, 0x0DE6,
|
||||
0xFAA3, 0xFAE5, 0x1E04, 0xFAE6, 0xFAE6, 0x0E3C, 0xFAE7, 0xFAFE, 0x1E47,
|
||||
0xFBA1, 0xFBFE, 0x1E5F, 0xFCA1, 0xFCA8, 0x1EBD, 0xFCA9, 0xFCA9, 0x0EE7,
|
||||
0xFCAA, 0xFCFE, 0x1EC5, 0xFDA1, 0xFDFE, 0x1F1A,
|
||||
};
|
2808
modules/pdfium/pdfium/core/fpdfapi/cmaps/Korea1/UniKS-UCS2-H_1.cpp
Normal file
2808
modules/pdfium/pdfium/core/fpdfapi/cmaps/Korea1/UniKS-UCS2-H_1.cpp
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,16 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/Korea1/cmaps_korea1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_UniKS_UCS2_V_1[18 * 3] = {
|
||||
0x2013, 0x2014, 0x1F7B, 0x2016, 0x2016, 0x1F7D, 0x2025, 0x2025, 0x1F7A,
|
||||
0x3001, 0x3002, 0x1F78, 0x3008, 0x3011, 0x1F81, 0x3013, 0x3013, 0x1F8B,
|
||||
0x3014, 0x3015, 0x1F7F, 0xFF01, 0xFF01, 0x1F8C, 0xFF08, 0xFF09, 0x1F8D,
|
||||
0xFF0C, 0xFF0C, 0x1F8F, 0xFF0E, 0xFF0E, 0x1F90, 0xFF1A, 0xFF1F, 0x1F91,
|
||||
0xFF3B, 0xFF3B, 0x1F97, 0xFF3D, 0xFF3D, 0x1F98, 0xFF3F, 0xFF3F, 0x1F99,
|
||||
0xFF5B, 0xFF5D, 0x1F9A, 0xFF5E, 0xFF5E, 0x1F7E, 0xFFE3, 0xFFE3, 0x1F9D,
|
||||
};
|
@ -0,0 +1,46 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/Korea1/cmaps_korea1.h"
|
||||
|
||||
const uint16_t g_FXCMAP_UniKS_UTF16_H_0[158 * 2] = {
|
||||
0x00A9, 0x0062, 0x2010, 0x0061, 0x20A9, 0x0060, 0x2F00, 0x193C, 0x2F04,
|
||||
0x18EC, 0x2F06, 0x190D, 0x2F08, 0x192B, 0x2F0A, 0x194D, 0x2F0B, 0x1D4B,
|
||||
0x2F11, 0x10AE, 0x2F12, 0x116A, 0x2F14, 0x143F, 0x2F17, 0x168C, 0x2F18,
|
||||
0x13D5, 0x2F1C, 0x1839, 0x2F1D, 0x0F3D, 0x2F1F, 0x1D1B, 0x2F20, 0x1487,
|
||||
0x2F23, 0x151B, 0x2F24, 0x109D, 0x2F25, 0x103F, 0x2F26, 0x1958, 0x2F28,
|
||||
0x1C4F, 0x2F29, 0x1580, 0x2F2B, 0x1641, 0x2F2D, 0x14B9, 0x2F2F, 0x0ECF,
|
||||
0x2F30, 0x0FED, 0x2F31, 0x0E14, 0x2F32, 0x0D99, 0x2F38, 0x0F7C, 0x2F3C,
|
||||
0x1684, 0x2F3D, 0x0EDC, 0x2F3E, 0x1E80, 0x2F3F, 0x15CC, 0x2F40, 0x1B27,
|
||||
0x2F42, 0x12E8, 0x2F43, 0x10FD, 0x2F44, 0x0FBB, 0x2F45, 0x1356, 0x2F46,
|
||||
0x12D3, 0x2F47, 0x1940, 0x2F48, 0x17ED, 0x2F49, 0x1889, 0x2F4A, 0x12B4,
|
||||
0x2F4B, 0x1F5B, 0x2F4C, 0x1B2C, 0x2F4F, 0x12D6, 0x2F50, 0x144C, 0x2F51,
|
||||
0x12A8, 0x2F52, 0x168E, 0x2F54, 0x15D3, 0x2F55, 0x1EBB, 0x2F56, 0x1A93,
|
||||
0x2F57, 0x1409, 0x2F58, 0x1F1A, 0x2F5A, 0x1D61, 0x2F5B, 0x1696, 0x2F5C,
|
||||
0x1842, 0x2F5D, 0x0E37, 0x2F5E, 0x1E3D, 0x2F5F, 0x17C1, 0x2F60, 0x0EDE,
|
||||
0x2F61, 0x17D4, 0x2F62, 0x0DC1, 0x2F63, 0x14FA, 0x2F64, 0x182D, 0x2F65,
|
||||
0x1A08, 0x2F66, 0x1DBA, 0x2F69, 0x1381, 0x2F6A, 0x1DB0, 0x2F6B, 0x1293,
|
||||
0x2F6C, 0x12B7, 0x2F6D, 0x12AD, 0x2F6E, 0x164D, 0x2F6F, 0x1525, 0x2F70,
|
||||
0x164E, 0x2F72, 0x1EBE, 0x2F73, 0x1E4B, 0x2F74, 0x122D, 0x2F75, 0x1AF4,
|
||||
0x2F76, 0x12FF, 0x2F78, 0x140C, 0x2F7A, 0x1708, 0x2F7B, 0x184A, 0x2F7C,
|
||||
0x11A7, 0x2F7D, 0x191B, 0x2F7F, 0x191C, 0x2F80, 0x18E0, 0x2F81, 0x18D5,
|
||||
0x2F82, 0x1675, 0x2F83, 0x1966, 0x2F84, 0x1B37, 0x2F85, 0x0F5A, 0x2F86,
|
||||
0x1550, 0x2F87, 0x1BF6, 0x2F88, 0x1AE8, 0x2F89, 0x0DA8, 0x2F8A, 0x14F8,
|
||||
0x2F8B, 0x1C40, 0x2F8E, 0x1E4C, 0x2F8F, 0x1E1D, 0x2F90, 0x1909, 0x2F92,
|
||||
0x0E3C, 0x2F93, 0x0D92, 0x2F94, 0x1721, 0x2F95, 0x0EBC, 0x2F96, 0x1103,
|
||||
0x2F97, 0x1656, 0x2F99, 0x1D58, 0x2F9A, 0x19EC, 0x2F9B, 0x1AEC, 0x2F9C,
|
||||
0x1AAE, 0x2F9D, 0x167B, 0x2F9E, 0x1B8D, 0x2F9F, 0x167C, 0x2FA0, 0x1B61,
|
||||
0x2FA2, 0x18F5, 0x2FA3, 0x18D0, 0x2FA5, 0x121A, 0x2FA6, 0x1023, 0x2FA7,
|
||||
0x19A8, 0x2FA8, 0x12EE, 0x2FA9, 0x141B, 0x2FAC, 0x1853, 0x2FAD, 0x1C23,
|
||||
0x2FAE, 0x1464, 0x2FAF, 0x1288, 0x2FB0, 0x1E35, 0x2FB1, 0x18A3, 0x2FB3,
|
||||
0x18F1, 0x2FB4, 0x1E4D, 0x2FB5, 0x1DAB, 0x2FB6, 0x1465, 0x2FB7, 0x1665,
|
||||
0x2FB8, 0x15F9, 0x2FB9, 0x1E26, 0x2FBA, 0x1235, 0x2FBB, 0x0EC9, 0x2FBC,
|
||||
0x0EB5, 0x2FC1, 0x0F99, 0x2FC2, 0x1716, 0x2FC3, 0x1AAB, 0x2FC4, 0x11AF,
|
||||
0x2FC5, 0x11B5, 0x2FC6, 0x1276, 0x2FC7, 0x1237, 0x2FC8, 0x1EF7, 0x2FC9,
|
||||
0x1519, 0x2FCA, 0x1F52, 0x2FCD, 0x1A66, 0x2FCE, 0x0EB6, 0x2FCF, 0x151A,
|
||||
0x2FD0, 0x1466, 0x2FD1, 0x1A7D, 0x2FD2, 0x1CBF, 0x2FD3, 0x11D3, 0x2FD4,
|
||||
0x0F6A,
|
||||
};
|
@ -0,0 +1,50 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/Korea1/cmaps_korea1.h"
|
||||
|
||||
#include "core/fpdfapi/cmaps/cmap_int.h"
|
||||
#include "core/fpdfapi/cpdf_modulemgr.h"
|
||||
#include "core/fpdfapi/font/font_int.h"
|
||||
#include "core/fpdfapi/page/cpdf_pagemodule.h"
|
||||
#include "core/fxcrt/fx_basic.h"
|
||||
|
||||
static const FXCMAP_CMap g_FXCMAP_Korea1_cmaps[] = {
|
||||
{"KSC-EUC-H", FXCMAP_CMap::Range, g_FXCMAP_KSC_EUC_H_0, 467,
|
||||
FXCMAP_CMap::None, nullptr, 0, 0},
|
||||
{"KSC-EUC-V", FXCMAP_CMap::Range, g_FXCMAP_KSC_EUC_V_0, 16,
|
||||
FXCMAP_CMap::None, nullptr, 0, -1},
|
||||
{"KSCms-UHC-H", FXCMAP_CMap::Range, g_FXCMAP_KSCms_UHC_H_1, 675,
|
||||
FXCMAP_CMap::None, nullptr, 0, -2},
|
||||
{"KSCms-UHC-V", FXCMAP_CMap::Range, g_FXCMAP_KSCms_UHC_V_1, 16,
|
||||
FXCMAP_CMap::None, nullptr, 0, -1},
|
||||
{"KSCms-UHC-HW-H", FXCMAP_CMap::Range, g_FXCMAP_KSCms_UHC_HW_H_1, 675,
|
||||
FXCMAP_CMap::None, nullptr, 0, 0},
|
||||
{"KSCms-UHC-HW-V", FXCMAP_CMap::Range, g_FXCMAP_KSCms_UHC_HW_V_1, 16,
|
||||
FXCMAP_CMap::None, nullptr, 0, -1},
|
||||
{"KSCpc-EUC-H", FXCMAP_CMap::Range, g_FXCMAP_KSCpc_EUC_H_0, 509,
|
||||
FXCMAP_CMap::None, nullptr, 0, -6},
|
||||
{"UniKS-UCS2-H", FXCMAP_CMap::Range, g_FXCMAP_UniKS_UCS2_H_1, 8394,
|
||||
FXCMAP_CMap::None, nullptr, 0, 0},
|
||||
{"UniKS-UCS2-V", FXCMAP_CMap::Range, g_FXCMAP_UniKS_UCS2_V_1, 18,
|
||||
FXCMAP_CMap::None, nullptr, 0, -1},
|
||||
{"UniKS-UTF16-H", FXCMAP_CMap::Single, g_FXCMAP_UniKS_UTF16_H_0, 158,
|
||||
FXCMAP_CMap::None, nullptr, 0, -2},
|
||||
{"UniKS-UTF16-V", FXCMAP_CMap::Range, g_FXCMAP_UniKS_UCS2_V_1, 18,
|
||||
FXCMAP_CMap::None, nullptr, 0, -1},
|
||||
};
|
||||
|
||||
void CPDF_ModuleMgr::LoadEmbeddedKorea1CMaps() {
|
||||
CPDF_FontGlobals* pFontGlobals =
|
||||
CPDF_ModuleMgr::Get()->GetPageModule()->GetFontGlobals();
|
||||
pFontGlobals->m_EmbeddedCharsets[CIDSET_KOREA1].m_pMapList =
|
||||
g_FXCMAP_Korea1_cmaps;
|
||||
pFontGlobals->m_EmbeddedCharsets[CIDSET_KOREA1].m_Count =
|
||||
FX_ArraySize(g_FXCMAP_Korea1_cmaps);
|
||||
pFontGlobals->m_EmbeddedToUnicodes[CIDSET_KOREA1].m_pMap =
|
||||
g_FXCMAP_Korea1CID2Unicode_2;
|
||||
pFontGlobals->m_EmbeddedToUnicodes[CIDSET_KOREA1].m_Count = 18352;
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
// Copyright 2015 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#ifndef CORE_FPDFAPI_CMAPS_KOREA1_CMAPS_KOREA1_H_
|
||||
#define CORE_FPDFAPI_CMAPS_KOREA1_CMAPS_KOREA1_H_
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
extern const uint16_t g_FXCMAP_KSC_EUC_H_0[];
|
||||
extern const uint16_t g_FXCMAP_KSC_EUC_V_0[];
|
||||
extern const uint16_t g_FXCMAP_KSCms_UHC_H_1[];
|
||||
extern const uint16_t g_FXCMAP_KSCms_UHC_V_1[];
|
||||
extern const uint16_t g_FXCMAP_KSCms_UHC_HW_H_1[];
|
||||
extern const uint16_t g_FXCMAP_KSCms_UHC_HW_V_1[];
|
||||
extern const uint16_t g_FXCMAP_KSCpc_EUC_H_0[];
|
||||
extern const uint16_t g_FXCMAP_UniKS_UCS2_H_1[];
|
||||
extern const uint16_t g_FXCMAP_UniKS_UCS2_V_1[];
|
||||
extern const uint16_t g_FXCMAP_UniKS_UTF16_H_0[];
|
||||
extern const uint16_t g_FXCMAP_Korea1CID2Unicode_2[];
|
||||
|
||||
#endif // CORE_FPDFAPI_CMAPS_KOREA1_CMAPS_KOREA1_H_
|
33
modules/pdfium/pdfium/core/fpdfapi/cmaps/cmap_int.h
Normal file
33
modules/pdfium/pdfium/core/fpdfapi/cmaps/cmap_int.h
Normal file
@ -0,0 +1,33 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#ifndef CORE_FPDFAPI_CMAPS_CMAP_INT_H_
|
||||
#define CORE_FPDFAPI_CMAPS_CMAP_INT_H_
|
||||
|
||||
#include "core/fxcrt/fx_string.h"
|
||||
#include "core/fxcrt/fx_system.h"
|
||||
|
||||
struct FXCMAP_CMap {
|
||||
enum MapType { None, Single, Range, Reverse };
|
||||
|
||||
const char* m_Name;
|
||||
MapType m_WordMapType;
|
||||
const uint16_t* m_pWordMap;
|
||||
int m_WordCount;
|
||||
MapType m_DWordMapType;
|
||||
const uint16_t* m_pDWordMap;
|
||||
int m_DWordCount;
|
||||
int m_UseOffset;
|
||||
};
|
||||
|
||||
void FPDFAPI_FindEmbeddedCMap(const CFX_ByteString& name,
|
||||
int charset,
|
||||
int coding,
|
||||
const FXCMAP_CMap*& pMap);
|
||||
uint16_t FPDFAPI_CIDFromCharCode(const FXCMAP_CMap* pMap, uint32_t charcode);
|
||||
uint32_t FPDFAPI_CharCodeFromCID(const FXCMAP_CMap* pMap, uint16_t cid);
|
||||
|
||||
#endif // CORE_FPDFAPI_CMAPS_CMAP_INT_H_
|
154
modules/pdfium/pdfium/core/fpdfapi/cmaps/fpdf_cmaps.cpp
Normal file
154
modules/pdfium/pdfium/core/fpdfapi/cmaps/fpdf_cmaps.cpp
Normal file
@ -0,0 +1,154 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cmaps/cmap_int.h"
|
||||
|
||||
#include "core/fpdfapi/cpdf_modulemgr.h"
|
||||
#include "core/fpdfapi/font/font_int.h"
|
||||
#include "core/fpdfapi/page/cpdf_pagemodule.h"
|
||||
|
||||
extern "C" {
|
||||
|
||||
static int compareWord(const void* p1, const void* p2) {
|
||||
return (*(uint16_t*)p1) - (*(uint16_t*)p2);
|
||||
}
|
||||
|
||||
static int compareWordRange(const void* key, const void* element) {
|
||||
if (*(uint16_t*)key < *(uint16_t*)element)
|
||||
return -1;
|
||||
if (*(uint16_t*)key > ((uint16_t*)element)[1])
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int compareDWordRange(const void* p1, const void* p2) {
|
||||
uint32_t key = *(uint32_t*)p1;
|
||||
uint16_t hiword = (uint16_t)(key >> 16);
|
||||
uint16_t* element = (uint16_t*)p2;
|
||||
if (hiword < element[0])
|
||||
return -1;
|
||||
if (hiword > element[0])
|
||||
return 1;
|
||||
|
||||
uint16_t loword = (uint16_t)key;
|
||||
if (loword < element[1])
|
||||
return -1;
|
||||
if (loword > element[2])
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int compareDWordSingle(const void* p1, const void* p2) {
|
||||
uint32_t key = *(uint32_t*)p1;
|
||||
uint32_t value = ((*(uint16_t*)p2) << 16) | ((uint16_t*)p2)[1];
|
||||
if (key < value)
|
||||
return -1;
|
||||
if (key > value)
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
}; // extern "C"
|
||||
|
||||
void FPDFAPI_FindEmbeddedCMap(const CFX_ByteString& bsName,
|
||||
int charset,
|
||||
int coding,
|
||||
const FXCMAP_CMap*& pMap) {
|
||||
pMap = nullptr;
|
||||
CPDF_FontGlobals* pFontGlobals =
|
||||
CPDF_ModuleMgr::Get()->GetPageModule()->GetFontGlobals();
|
||||
const FXCMAP_CMap* pCMaps =
|
||||
pFontGlobals->m_EmbeddedCharsets[charset].m_pMapList;
|
||||
for (uint32_t i = 0; i < pFontGlobals->m_EmbeddedCharsets[charset].m_Count;
|
||||
i++) {
|
||||
if (bsName == pCMaps[i].m_Name) {
|
||||
pMap = &pCMaps[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
uint16_t FPDFAPI_CIDFromCharCode(const FXCMAP_CMap* pMap, uint32_t charcode) {
|
||||
if (charcode >> 16) {
|
||||
while (1) {
|
||||
if (pMap->m_DWordMapType == FXCMAP_CMap::Range) {
|
||||
uint16_t* found = static_cast<uint16_t*>(
|
||||
FXSYS_bsearch(&charcode, pMap->m_pDWordMap, pMap->m_DWordCount, 8,
|
||||
compareDWordRange));
|
||||
if (found)
|
||||
return found[3] + (uint16_t)charcode - found[1];
|
||||
|
||||
} else if (pMap->m_DWordMapType == FXCMAP_CMap::Single) {
|
||||
uint16_t* found = static_cast<uint16_t*>(
|
||||
FXSYS_bsearch(&charcode, pMap->m_pDWordMap, pMap->m_DWordCount, 6,
|
||||
compareDWordSingle));
|
||||
if (found)
|
||||
return found[2];
|
||||
}
|
||||
if (pMap->m_UseOffset == 0)
|
||||
return 0;
|
||||
|
||||
pMap = pMap + pMap->m_UseOffset;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint16_t code = (uint16_t)charcode;
|
||||
while (1) {
|
||||
if (!pMap->m_pWordMap)
|
||||
return 0;
|
||||
if (pMap->m_WordMapType == FXCMAP_CMap::Single) {
|
||||
uint16_t* found = static_cast<uint16_t*>(FXSYS_bsearch(
|
||||
&code, pMap->m_pWordMap, pMap->m_WordCount, 4, compareWord));
|
||||
if (found)
|
||||
return found[1];
|
||||
|
||||
} else if (pMap->m_WordMapType == FXCMAP_CMap::Range) {
|
||||
uint16_t* found = static_cast<uint16_t*>(FXSYS_bsearch(
|
||||
&code, pMap->m_pWordMap, pMap->m_WordCount, 6, compareWordRange));
|
||||
if (found)
|
||||
return found[2] + code - found[0];
|
||||
}
|
||||
if (pMap->m_UseOffset == 0)
|
||||
return 0;
|
||||
|
||||
pMap = pMap + pMap->m_UseOffset;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint32_t FPDFAPI_CharCodeFromCID(const FXCMAP_CMap* pMap, uint16_t cid) {
|
||||
// TODO(dsinclair): This should be checking both pMap->m_WordMap and
|
||||
// pMap->m_DWordMap. There was a second while() but it was never reached as
|
||||
// the first always returns. Investigate and determine how this should
|
||||
// really be working. (https://codereview.chromium.org/2235743003 removed the
|
||||
// second while loop.)
|
||||
while (1) {
|
||||
if (pMap->m_WordMapType == FXCMAP_CMap::Single) {
|
||||
const uint16_t* pCur = pMap->m_pWordMap;
|
||||
const uint16_t* pEnd = pMap->m_pWordMap + pMap->m_WordCount * 2;
|
||||
while (pCur < pEnd) {
|
||||
if (pCur[1] == cid)
|
||||
return pCur[0];
|
||||
|
||||
pCur += 2;
|
||||
}
|
||||
} else if (pMap->m_WordMapType == FXCMAP_CMap::Range) {
|
||||
const uint16_t* pCur = pMap->m_pWordMap;
|
||||
const uint16_t* pEnd = pMap->m_pWordMap + pMap->m_WordCount * 3;
|
||||
while (pCur < pEnd) {
|
||||
if (cid >= pCur[2] && cid <= pCur[2] + pCur[1] - pCur[0])
|
||||
return pCur[0] + cid - pCur[2];
|
||||
|
||||
pCur += 3;
|
||||
}
|
||||
}
|
||||
if (pMap->m_UseOffset == 0)
|
||||
return 0;
|
||||
|
||||
pMap = pMap + pMap->m_UseOffset;
|
||||
}
|
||||
}
|
62
modules/pdfium/pdfium/core/fpdfapi/cpdf_modulemgr.cpp
Normal file
62
modules/pdfium/pdfium/core/fpdfapi/cpdf_modulemgr.cpp
Normal file
@ -0,0 +1,62 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cpdf_modulemgr.h"
|
||||
|
||||
#include "core/fpdfapi/page/cpdf_pagemodule.h"
|
||||
#include "core/fxcodec/fx_codec.h"
|
||||
#include "third_party/base/ptr_util.h"
|
||||
|
||||
namespace {
|
||||
|
||||
CPDF_ModuleMgr* g_pDefaultMgr = nullptr;
|
||||
|
||||
} // namespace
|
||||
|
||||
// static
|
||||
CPDF_ModuleMgr* CPDF_ModuleMgr::Get() {
|
||||
if (!g_pDefaultMgr)
|
||||
g_pDefaultMgr = new CPDF_ModuleMgr;
|
||||
return g_pDefaultMgr;
|
||||
}
|
||||
|
||||
// static
|
||||
void CPDF_ModuleMgr::Destroy() {
|
||||
delete g_pDefaultMgr;
|
||||
g_pDefaultMgr = nullptr;
|
||||
}
|
||||
|
||||
CPDF_ModuleMgr::CPDF_ModuleMgr() : m_pCodecModule(nullptr) {}
|
||||
|
||||
CPDF_ModuleMgr::~CPDF_ModuleMgr() {}
|
||||
|
||||
void CPDF_ModuleMgr::InitPageModule() {
|
||||
m_pPageModule = pdfium::MakeUnique<CPDF_PageModule>();
|
||||
}
|
||||
|
||||
CCodec_FaxModule* CPDF_ModuleMgr::GetFaxModule() {
|
||||
return m_pCodecModule ? m_pCodecModule->GetFaxModule() : nullptr;
|
||||
}
|
||||
|
||||
CCodec_JpegModule* CPDF_ModuleMgr::GetJpegModule() {
|
||||
return m_pCodecModule ? m_pCodecModule->GetJpegModule() : nullptr;
|
||||
}
|
||||
|
||||
CCodec_JpxModule* CPDF_ModuleMgr::GetJpxModule() {
|
||||
return m_pCodecModule ? m_pCodecModule->GetJpxModule() : nullptr;
|
||||
}
|
||||
|
||||
CCodec_Jbig2Module* CPDF_ModuleMgr::GetJbig2Module() {
|
||||
return m_pCodecModule ? m_pCodecModule->GetJbig2Module() : nullptr;
|
||||
}
|
||||
|
||||
CCodec_IccModule* CPDF_ModuleMgr::GetIccModule() {
|
||||
return m_pCodecModule ? m_pCodecModule->GetIccModule() : nullptr;
|
||||
}
|
||||
|
||||
CCodec_FlateModule* CPDF_ModuleMgr::GetFlateModule() {
|
||||
return m_pCodecModule ? m_pCodecModule->GetFlateModule() : nullptr;
|
||||
}
|
76
modules/pdfium/pdfium/core/fpdfapi/cpdf_modulemgr.h
Normal file
76
modules/pdfium/pdfium/core/fpdfapi/cpdf_modulemgr.h
Normal file
@ -0,0 +1,76 @@
|
||||
// Copyright 2016 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#ifndef CORE_FPDFAPI_CPDF_MODULEMGR_H_
|
||||
#define CORE_FPDFAPI_CPDF_MODULEMGR_H_
|
||||
|
||||
#include <memory>
|
||||
#include <utility>
|
||||
|
||||
#include "core/fxcrt/fx_basic.h"
|
||||
|
||||
class CCodec_FaxModule;
|
||||
class CCodec_FlateModule;
|
||||
class CCodec_IccModule;
|
||||
class CCodec_Jbig2Module;
|
||||
class CCodec_JpegModule;
|
||||
class CCodec_JpxModule;
|
||||
class CCodec_ModuleMgr;
|
||||
class CPDF_PageModule;
|
||||
|
||||
class CFSDK_UnsupportInfo_Adapter {
|
||||
public:
|
||||
explicit CFSDK_UnsupportInfo_Adapter(void* unsp_info)
|
||||
: m_unsp_info(unsp_info) {}
|
||||
|
||||
void* GetUnspInfo() const { return m_unsp_info; }
|
||||
|
||||
private:
|
||||
void* const m_unsp_info;
|
||||
};
|
||||
|
||||
class CPDF_ModuleMgr {
|
||||
public:
|
||||
static CPDF_ModuleMgr* Get();
|
||||
static void Destroy();
|
||||
static const int kFileBufSize = 512;
|
||||
|
||||
void SetCodecModule(CCodec_ModuleMgr* pModule) { m_pCodecModule = pModule; }
|
||||
CCodec_ModuleMgr* GetCodecModule() { return m_pCodecModule; }
|
||||
|
||||
void InitPageModule();
|
||||
CPDF_PageModule* GetPageModule() const { return m_pPageModule.get(); }
|
||||
|
||||
void SetUnsupportInfoAdapter(
|
||||
std::unique_ptr<CFSDK_UnsupportInfo_Adapter> pAdapter) {
|
||||
m_pUnsupportInfoAdapter = std::move(pAdapter);
|
||||
}
|
||||
CFSDK_UnsupportInfo_Adapter* GetUnsupportInfoAdapter() const {
|
||||
return m_pUnsupportInfoAdapter.get();
|
||||
}
|
||||
|
||||
void LoadEmbeddedGB1CMaps();
|
||||
void LoadEmbeddedCNS1CMaps();
|
||||
void LoadEmbeddedJapan1CMaps();
|
||||
void LoadEmbeddedKorea1CMaps();
|
||||
|
||||
CCodec_FaxModule* GetFaxModule();
|
||||
CCodec_JpegModule* GetJpegModule();
|
||||
CCodec_JpxModule* GetJpxModule();
|
||||
CCodec_Jbig2Module* GetJbig2Module();
|
||||
CCodec_IccModule* GetIccModule();
|
||||
CCodec_FlateModule* GetFlateModule();
|
||||
|
||||
private:
|
||||
CPDF_ModuleMgr();
|
||||
~CPDF_ModuleMgr();
|
||||
|
||||
CCodec_ModuleMgr* m_pCodecModule;
|
||||
std::unique_ptr<CPDF_PageModule> m_pPageModule;
|
||||
std::unique_ptr<CFSDK_UnsupportInfo_Adapter> m_pUnsupportInfoAdapter;
|
||||
};
|
||||
|
||||
#endif // CORE_FPDFAPI_CPDF_MODULEMGR_H_
|
@ -0,0 +1,18 @@
|
||||
// Copyright 2016 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/cpdf_pagerendercontext.h"
|
||||
|
||||
#include "core/fpdfapi/render/cpdf_progressiverenderer.h"
|
||||
#include "core/fpdfapi/render/cpdf_rendercontext.h"
|
||||
#include "core/fpdfapi/render/cpdf_renderoptions.h"
|
||||
#include "core/fpdfdoc/cpdf_annotlist.h"
|
||||
#include "core/fpdfdoc/cpdf_occontext.h"
|
||||
#include "core/fxge/cfx_renderdevice.h"
|
||||
|
||||
CPDF_PageRenderContext::CPDF_PageRenderContext() {}
|
||||
|
||||
CPDF_PageRenderContext::~CPDF_PageRenderContext() {}
|
31
modules/pdfium/pdfium/core/fpdfapi/cpdf_pagerendercontext.h
Normal file
31
modules/pdfium/pdfium/core/fpdfapi/cpdf_pagerendercontext.h
Normal file
@ -0,0 +1,31 @@
|
||||
// Copyright 2016 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#ifndef CORE_FPDFAPI_CPDF_PAGERENDERCONTEXT_H_
|
||||
#define CORE_FPDFAPI_CPDF_PAGERENDERCONTEXT_H_
|
||||
|
||||
#include <memory>
|
||||
|
||||
class CFX_RenderDevice;
|
||||
class CPDF_AnnotList;
|
||||
class CPDF_ProgressiveRenderer;
|
||||
class CPDF_RenderContext;
|
||||
class CPDF_RenderOptions;
|
||||
|
||||
// Everything about rendering is put here: for OOM recovery
|
||||
class CPDF_PageRenderContext {
|
||||
public:
|
||||
CPDF_PageRenderContext();
|
||||
~CPDF_PageRenderContext();
|
||||
|
||||
std::unique_ptr<CPDF_AnnotList> m_pAnnots;
|
||||
std::unique_ptr<CFX_RenderDevice> m_pDevice;
|
||||
std::unique_ptr<CPDF_RenderContext> m_pContext;
|
||||
std::unique_ptr<CPDF_ProgressiveRenderer> m_pRenderer;
|
||||
std::unique_ptr<CPDF_RenderOptions> m_pOptions;
|
||||
};
|
||||
|
||||
#endif // CORE_FPDFAPI_CPDF_PAGERENDERCONTEXT_H_
|
103
modules/pdfium/pdfium/core/fpdfapi/edit/cpdf_creator.h
Normal file
103
modules/pdfium/pdfium/core/fpdfapi/edit/cpdf_creator.h
Normal file
@ -0,0 +1,103 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#ifndef CORE_FPDFAPI_EDIT_CPDF_CREATOR_H_
|
||||
#define CORE_FPDFAPI_EDIT_CPDF_CREATOR_H_
|
||||
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
|
||||
#include "core/fxcrt/cfx_retain_ptr.h"
|
||||
#include "core/fxcrt/fx_basic.h"
|
||||
|
||||
class CPDF_Array;
|
||||
class CPDF_CryptoHandler;
|
||||
class CPDF_Dictionary;
|
||||
class CPDF_Document;
|
||||
class CPDF_Object;
|
||||
class CPDF_Parser;
|
||||
class CPDF_XRefStream;
|
||||
|
||||
#define FPDFCREATE_INCREMENTAL 1
|
||||
#define FPDFCREATE_NO_ORIGINAL 2
|
||||
#define FPDFCREATE_PROGRESSIVE 4
|
||||
#define FPDFCREATE_OBJECTSTREAM 8
|
||||
|
||||
CFX_ByteTextBuf& operator<<(CFX_ByteTextBuf& buf, const CPDF_Object* pObj);
|
||||
|
||||
class CPDF_Creator {
|
||||
public:
|
||||
explicit CPDF_Creator(CPDF_Document* pDoc);
|
||||
~CPDF_Creator();
|
||||
|
||||
void RemoveSecurity();
|
||||
bool Create(const CFX_RetainPtr<IFX_WriteStream>& pFile, uint32_t flags = 0);
|
||||
int32_t Continue(IFX_Pause* pPause = nullptr);
|
||||
bool SetFileVersion(int32_t fileVersion = 17);
|
||||
|
||||
private:
|
||||
friend class CPDF_ObjectStream;
|
||||
friend class CPDF_XRefStream;
|
||||
|
||||
bool Create(uint32_t flags);
|
||||
void ResetStandardSecurity();
|
||||
void Clear();
|
||||
|
||||
void InitOldObjNumOffsets();
|
||||
void InitNewObjNumOffsets();
|
||||
void InitID(bool bDefault = true);
|
||||
|
||||
void AppendNewObjNum(uint32_t objbum);
|
||||
int32_t AppendObjectNumberToXRef(uint32_t objnum);
|
||||
|
||||
int32_t WriteDoc_Stage1(IFX_Pause* pPause);
|
||||
int32_t WriteDoc_Stage2(IFX_Pause* pPause);
|
||||
int32_t WriteDoc_Stage3(IFX_Pause* pPause);
|
||||
int32_t WriteDoc_Stage4(IFX_Pause* pPause);
|
||||
|
||||
int32_t WriteOldIndirectObject(uint32_t objnum);
|
||||
int32_t WriteOldObjs(IFX_Pause* pPause);
|
||||
int32_t WriteNewObjs(bool bIncremental, IFX_Pause* pPause);
|
||||
int32_t WriteIndirectObj(const CPDF_Object* pObj);
|
||||
int32_t WriteDirectObj(uint32_t objnum,
|
||||
const CPDF_Object* pObj,
|
||||
bool bEncrypt = true);
|
||||
int32_t WriteIndirectObjectToStream(const CPDF_Object* pObj);
|
||||
int32_t WriteIndirectObj(uint32_t objnum, const CPDF_Object* pObj);
|
||||
int32_t WriteIndirectObjectToStream(uint32_t objnum,
|
||||
const uint8_t* pBuffer,
|
||||
uint32_t dwSize);
|
||||
|
||||
int32_t WriteStream(const CPDF_Object* pStream,
|
||||
uint32_t objnum,
|
||||
CPDF_CryptoHandler* pCrypto);
|
||||
|
||||
CPDF_Document* const m_pDocument;
|
||||
CPDF_Parser* const m_pParser;
|
||||
bool m_bSecurityChanged;
|
||||
CPDF_Dictionary* m_pEncryptDict;
|
||||
uint32_t m_dwEncryptObjNum;
|
||||
bool m_bEncryptCloned;
|
||||
CPDF_CryptoHandler* m_pCryptoHandler;
|
||||
// Whether this owns the crypto handler |m_pCryptoHandler|.
|
||||
bool m_bLocalCryptoHandler;
|
||||
CPDF_Object* m_pMetadata;
|
||||
std::unique_ptr<CPDF_XRefStream> m_pXRefStream;
|
||||
int32_t m_ObjectStreamSize;
|
||||
uint32_t m_dwLastObjNum;
|
||||
CFX_FileBufferArchive m_File;
|
||||
FX_FILESIZE m_Offset;
|
||||
int32_t m_iStage;
|
||||
uint32_t m_dwFlags;
|
||||
FX_POSITION m_Pos;
|
||||
FX_FILESIZE m_XrefStart;
|
||||
CFX_FileSizeListArray m_ObjectOffset;
|
||||
std::vector<uint32_t> m_NewObjNumArray; // Sorted, ascending.
|
||||
std::unique_ptr<CPDF_Array> m_pIDArray;
|
||||
int32_t m_FileVersion;
|
||||
};
|
||||
|
||||
#endif // CORE_FPDFAPI_EDIT_CPDF_CREATOR_H_
|
@ -0,0 +1,276 @@
|
||||
// Copyright 2016 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/edit/cpdf_pagecontentgenerator.h"
|
||||
|
||||
#include <tuple>
|
||||
#include <utility>
|
||||
|
||||
#include "core/fpdfapi/font/cpdf_font.h"
|
||||
#include "core/fpdfapi/page/cpdf_docpagedata.h"
|
||||
#include "core/fpdfapi/page/cpdf_image.h"
|
||||
#include "core/fpdfapi/page/cpdf_imageobject.h"
|
||||
#include "core/fpdfapi/page/cpdf_page.h"
|
||||
#include "core/fpdfapi/page/cpdf_path.h"
|
||||
#include "core/fpdfapi/page/cpdf_pathobject.h"
|
||||
#include "core/fpdfapi/page/cpdf_textobject.h"
|
||||
#include "core/fpdfapi/parser/cpdf_dictionary.h"
|
||||
#include "core/fpdfapi/parser/cpdf_document.h"
|
||||
#include "core/fpdfapi/parser/cpdf_name.h"
|
||||
#include "core/fpdfapi/parser/cpdf_number.h"
|
||||
#include "core/fpdfapi/parser/cpdf_reference.h"
|
||||
#include "core/fpdfapi/parser/cpdf_stream.h"
|
||||
#include "core/fpdfapi/parser/fpdf_parser_decode.h"
|
||||
|
||||
namespace {
|
||||
|
||||
CFX_ByteTextBuf& operator<<(CFX_ByteTextBuf& ar, const CFX_Matrix& matrix) {
|
||||
ar << matrix.a << " " << matrix.b << " " << matrix.c << " " << matrix.d << " "
|
||||
<< matrix.e << " " << matrix.f;
|
||||
return ar;
|
||||
}
|
||||
|
||||
bool GetColor(const CPDF_Color* pColor, FX_FLOAT* rgb) {
|
||||
int intRGB[3];
|
||||
if (!pColor ||
|
||||
pColor->GetColorSpace() != CPDF_ColorSpace::GetStockCS(PDFCS_DEVICERGB) ||
|
||||
!pColor->GetRGB(intRGB[0], intRGB[1], intRGB[2])) {
|
||||
return false;
|
||||
}
|
||||
rgb[0] = intRGB[0] / 255.0f;
|
||||
rgb[1] = intRGB[1] / 255.0f;
|
||||
rgb[2] = intRGB[2] / 255.0f;
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
CPDF_PageContentGenerator::CPDF_PageContentGenerator(CPDF_Page* pPage)
|
||||
: m_pPage(pPage), m_pDocument(m_pPage->m_pDocument) {
|
||||
for (const auto& pObj : *pPage->GetPageObjectList()) {
|
||||
if (pObj)
|
||||
m_pageObjects.push_back(pObj.get());
|
||||
}
|
||||
}
|
||||
|
||||
CPDF_PageContentGenerator::~CPDF_PageContentGenerator() {}
|
||||
|
||||
void CPDF_PageContentGenerator::GenerateContent() {
|
||||
CFX_ByteTextBuf buf;
|
||||
for (CPDF_PageObject* pPageObj : m_pageObjects) {
|
||||
if (CPDF_ImageObject* pImageObject = pPageObj->AsImage())
|
||||
ProcessImage(&buf, pImageObject);
|
||||
else if (CPDF_PathObject* pPathObj = pPageObj->AsPath())
|
||||
ProcessPath(&buf, pPathObj);
|
||||
else if (CPDF_TextObject* pTextObj = pPageObj->AsText())
|
||||
ProcessText(&buf, pTextObj);
|
||||
}
|
||||
CPDF_Dictionary* pPageDict = m_pPage->m_pFormDict;
|
||||
CPDF_Object* pContent =
|
||||
pPageDict ? pPageDict->GetDirectObjectFor("Contents") : nullptr;
|
||||
if (pContent)
|
||||
pPageDict->RemoveFor("Contents");
|
||||
|
||||
CPDF_Stream* pStream = m_pDocument->NewIndirect<CPDF_Stream>();
|
||||
pStream->SetData(buf.GetBuffer(), buf.GetLength());
|
||||
pPageDict->SetNewFor<CPDF_Reference>("Contents", m_pDocument,
|
||||
pStream->GetObjNum());
|
||||
}
|
||||
|
||||
CFX_ByteString CPDF_PageContentGenerator::RealizeResource(
|
||||
uint32_t dwResourceObjNum,
|
||||
const CFX_ByteString& bsType) {
|
||||
ASSERT(dwResourceObjNum);
|
||||
if (!m_pPage->m_pResources) {
|
||||
m_pPage->m_pResources = m_pDocument->NewIndirect<CPDF_Dictionary>();
|
||||
m_pPage->m_pFormDict->SetNewFor<CPDF_Reference>(
|
||||
"Resources", m_pDocument, m_pPage->m_pResources->GetObjNum());
|
||||
}
|
||||
CPDF_Dictionary* pResList = m_pPage->m_pResources->GetDictFor(bsType);
|
||||
if (!pResList)
|
||||
pResList = m_pPage->m_pResources->SetNewFor<CPDF_Dictionary>(bsType);
|
||||
|
||||
CFX_ByteString name;
|
||||
int idnum = 1;
|
||||
while (1) {
|
||||
name.Format("FX%c%d", bsType[0], idnum);
|
||||
if (!pResList->KeyExist(name)) {
|
||||
break;
|
||||
}
|
||||
idnum++;
|
||||
}
|
||||
pResList->SetNewFor<CPDF_Reference>(name, m_pDocument, dwResourceObjNum);
|
||||
return name;
|
||||
}
|
||||
|
||||
void CPDF_PageContentGenerator::ProcessImage(CFX_ByteTextBuf* buf,
|
||||
CPDF_ImageObject* pImageObj) {
|
||||
if ((pImageObj->matrix().a == 0 && pImageObj->matrix().b == 0) ||
|
||||
(pImageObj->matrix().c == 0 && pImageObj->matrix().d == 0)) {
|
||||
return;
|
||||
}
|
||||
*buf << "q " << pImageObj->matrix() << " cm ";
|
||||
|
||||
CPDF_Image* pImage = pImageObj->GetImage();
|
||||
if (pImage->IsInline())
|
||||
return;
|
||||
|
||||
CPDF_Stream* pStream = pImage->GetStream();
|
||||
if (!pStream)
|
||||
return;
|
||||
|
||||
bool bWasInline = pStream->IsInline();
|
||||
if (bWasInline)
|
||||
pImage->ConvertStreamToIndirectObject();
|
||||
|
||||
uint32_t dwObjNum = pStream->GetObjNum();
|
||||
CFX_ByteString name = RealizeResource(dwObjNum, "XObject");
|
||||
if (bWasInline)
|
||||
pImageObj->SetUnownedImage(m_pDocument->GetPageData()->GetImage(dwObjNum));
|
||||
|
||||
*buf << "/" << PDF_NameEncode(name) << " Do Q\n";
|
||||
}
|
||||
|
||||
// Processing path with operators from Tables 4.9 and 4.10 of PDF spec 1.7:
|
||||
// "re" appends a rectangle (here, used only if the whole path is a rectangle)
|
||||
// "m" moves current point to the given coordinates
|
||||
// "l" creates a line from current point to the new point
|
||||
// "c" adds a Bezier curve from current to last point, using the two other
|
||||
// points as the Bezier control points
|
||||
// Note: "l", "c" change the current point
|
||||
// "h" closes the subpath (appends a line from current to starting point)
|
||||
// Path painting operators: "S", "n", "B", "f", "B*", "f*", depending on
|
||||
// the filling mode and whether we want stroking the path or not.
|
||||
// "Q" restores the graphics state imposed by the ProcessGraphics method.
|
||||
void CPDF_PageContentGenerator::ProcessPath(CFX_ByteTextBuf* buf,
|
||||
CPDF_PathObject* pPathObj) {
|
||||
ProcessGraphics(buf, pPathObj);
|
||||
auto& pPoints = pPathObj->m_Path.GetPoints();
|
||||
if (pPathObj->m_Path.IsRect()) {
|
||||
CFX_PointF diff = pPoints[2].m_Point - pPoints[0].m_Point;
|
||||
*buf << pPoints[0].m_Point.x << " " << pPoints[0].m_Point.y << " " << diff.x
|
||||
<< " " << diff.y << " re";
|
||||
} else {
|
||||
for (size_t i = 0; i < pPoints.size(); i++) {
|
||||
if (i > 0)
|
||||
*buf << " ";
|
||||
*buf << pPoints[i].m_Point.x << " " << pPoints[i].m_Point.y;
|
||||
FXPT_TYPE pointType = pPoints[i].m_Type;
|
||||
if (pointType == FXPT_TYPE::MoveTo) {
|
||||
*buf << " m";
|
||||
} else if (pointType == FXPT_TYPE::LineTo) {
|
||||
*buf << " l";
|
||||
} else if (pointType == FXPT_TYPE::BezierTo) {
|
||||
if (i + 2 >= pPoints.size() ||
|
||||
!pPoints[i].IsTypeAndOpen(FXPT_TYPE::BezierTo) ||
|
||||
!pPoints[i + 1].IsTypeAndOpen(FXPT_TYPE::BezierTo) ||
|
||||
pPoints[i + 2].m_Type != FXPT_TYPE::BezierTo) {
|
||||
// If format is not supported, close the path and paint
|
||||
*buf << " h";
|
||||
break;
|
||||
}
|
||||
*buf << " " << pPoints[i + 1].m_Point.x << " "
|
||||
<< pPoints[i + 1].m_Point.y << " " << pPoints[i + 2].m_Point.x
|
||||
<< " " << pPoints[i + 2].m_Point.y << " c";
|
||||
i += 2;
|
||||
}
|
||||
if (pPoints[i].m_CloseFigure)
|
||||
*buf << " h";
|
||||
}
|
||||
}
|
||||
if (pPathObj->m_FillType == 0)
|
||||
*buf << (pPathObj->m_bStroke ? " S" : " n");
|
||||
else if (pPathObj->m_FillType == FXFILL_WINDING)
|
||||
*buf << (pPathObj->m_bStroke ? " B" : " f");
|
||||
else if (pPathObj->m_FillType == FXFILL_ALTERNATE)
|
||||
*buf << (pPathObj->m_bStroke ? " B*" : " f*");
|
||||
*buf << " Q\n";
|
||||
}
|
||||
|
||||
// This method supports color operators rg and RGB from Table 4.24 of PDF spec
|
||||
// 1.7. A color will not be set if the colorspace is not DefaultRGB or the RGB
|
||||
// values cannot be obtained. The method also adds an external graphics
|
||||
// dictionary, as described in Section 4.3.4.
|
||||
// "rg" sets the fill color, "RG" sets the stroke color (using DefaultRGB)
|
||||
// "w" sets the stroke line width.
|
||||
// "ca" sets the fill alpha, "CA" sets the stroke alpha.
|
||||
// "q" saves the graphics state, so that the settings can later be reversed
|
||||
void CPDF_PageContentGenerator::ProcessGraphics(CFX_ByteTextBuf* buf,
|
||||
CPDF_PageObject* pPageObj) {
|
||||
*buf << "q ";
|
||||
FX_FLOAT fillColor[3];
|
||||
if (GetColor(pPageObj->m_ColorState.GetFillColor(), fillColor)) {
|
||||
*buf << fillColor[0] << " " << fillColor[1] << " " << fillColor[2]
|
||||
<< " rg ";
|
||||
}
|
||||
FX_FLOAT strokeColor[3];
|
||||
if (GetColor(pPageObj->m_ColorState.GetStrokeColor(), strokeColor)) {
|
||||
*buf << strokeColor[0] << " " << strokeColor[1] << " " << strokeColor[2]
|
||||
<< " RG ";
|
||||
}
|
||||
FX_FLOAT lineWidth = pPageObj->m_GraphState.GetLineWidth();
|
||||
if (lineWidth != 1.0f)
|
||||
*buf << lineWidth << " w ";
|
||||
|
||||
GraphicsData graphD;
|
||||
graphD.fillAlpha = pPageObj->m_GeneralState.GetFillAlpha();
|
||||
graphD.strokeAlpha = pPageObj->m_GeneralState.GetStrokeAlpha();
|
||||
if (graphD.fillAlpha == 1.0f && graphD.strokeAlpha == 1.0f)
|
||||
return;
|
||||
|
||||
CFX_ByteString name;
|
||||
auto it = m_pPage->m_GraphicsMap.find(graphD);
|
||||
if (it != m_pPage->m_GraphicsMap.end()) {
|
||||
name = it->second;
|
||||
} else {
|
||||
auto gsDict = pdfium::MakeUnique<CPDF_Dictionary>();
|
||||
gsDict->SetNewFor<CPDF_Number>("ca", graphD.fillAlpha);
|
||||
gsDict->SetNewFor<CPDF_Number>("CA", graphD.strokeAlpha);
|
||||
CPDF_Object* pDict = m_pDocument->AddIndirectObject(std::move(gsDict));
|
||||
uint32_t dwObjNum = pDict->GetObjNum();
|
||||
name = RealizeResource(dwObjNum, "ExtGState");
|
||||
m_pPage->m_GraphicsMap[graphD] = name;
|
||||
}
|
||||
*buf << "/" << PDF_NameEncode(name) << " gs ";
|
||||
}
|
||||
|
||||
// This method adds text to the buffer, BT begins the text object, ET ends it.
|
||||
// Tm sets the text matrix (allows positioning and transforming text).
|
||||
// Tf sets the font name (from Font in Resources) and font size.
|
||||
// Tj sets the actual text, <####...> is used when specifying charcodes.
|
||||
void CPDF_PageContentGenerator::ProcessText(CFX_ByteTextBuf* buf,
|
||||
CPDF_TextObject* pTextObj) {
|
||||
// TODO(npm): Add support for something other than standard type1 fonts.
|
||||
*buf << "BT " << pTextObj->GetTextMatrix() << " Tm ";
|
||||
CPDF_Font* pFont = pTextObj->GetFont();
|
||||
if (!pFont)
|
||||
pFont = CPDF_Font::GetStockFont(m_pDocument, "Helvetica");
|
||||
FontData fontD;
|
||||
fontD.baseFont = pFont->GetBaseFont();
|
||||
auto it = m_pPage->m_FontsMap.find(fontD);
|
||||
CFX_ByteString dictName;
|
||||
if (it != m_pPage->m_FontsMap.end()) {
|
||||
dictName = it->second;
|
||||
} else {
|
||||
auto fontDict = pdfium::MakeUnique<CPDF_Dictionary>();
|
||||
fontDict->SetNewFor<CPDF_Name>("Type", "Font");
|
||||
fontDict->SetNewFor<CPDF_Name>("Subtype", "Type1");
|
||||
fontDict->SetNewFor<CPDF_Name>("BaseFont", fontD.baseFont);
|
||||
CPDF_Object* pDict = m_pDocument->AddIndirectObject(std::move(fontDict));
|
||||
uint32_t dwObjNum = pDict->GetObjNum();
|
||||
dictName = RealizeResource(dwObjNum, "Font");
|
||||
m_pPage->m_FontsMap[fontD] = dictName;
|
||||
}
|
||||
*buf << "/" << PDF_NameEncode(dictName) << " " << pTextObj->GetFontSize()
|
||||
<< " Tf ";
|
||||
CFX_ByteString text;
|
||||
for (uint32_t charcode : pTextObj->m_CharCodes) {
|
||||
if (charcode == CPDF_Font::kInvalidCharCode)
|
||||
continue;
|
||||
pFont->AppendChar(text, charcode);
|
||||
}
|
||||
*buf << PDF_EncodeString(text, true) << " Tj ET\n";
|
||||
}
|
@ -0,0 +1,44 @@
|
||||
// Copyright 2016 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#ifndef CORE_FPDFAPI_EDIT_CPDF_PAGECONTENTGENERATOR_H_
|
||||
#define CORE_FPDFAPI_EDIT_CPDF_PAGECONTENTGENERATOR_H_
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "core/fxcrt/fx_basic.h"
|
||||
#include "core/fxcrt/fx_system.h"
|
||||
|
||||
class CPDF_Document;
|
||||
class CPDF_ImageObject;
|
||||
class CPDF_Page;
|
||||
class CPDF_PageObject;
|
||||
class CPDF_PathObject;
|
||||
class CPDF_TextObject;
|
||||
|
||||
class CPDF_PageContentGenerator {
|
||||
public:
|
||||
explicit CPDF_PageContentGenerator(CPDF_Page* pPage);
|
||||
~CPDF_PageContentGenerator();
|
||||
|
||||
void GenerateContent();
|
||||
|
||||
private:
|
||||
friend class CPDF_PageContentGeneratorTest;
|
||||
|
||||
void ProcessPath(CFX_ByteTextBuf* buf, CPDF_PathObject* pPathObj);
|
||||
void ProcessImage(CFX_ByteTextBuf* buf, CPDF_ImageObject* pImageObj);
|
||||
void ProcessGraphics(CFX_ByteTextBuf* buf, CPDF_PageObject* pPageObj);
|
||||
void ProcessText(CFX_ByteTextBuf* buf, CPDF_TextObject* pTextObj);
|
||||
CFX_ByteString RealizeResource(uint32_t dwResourceObjNum,
|
||||
const CFX_ByteString& bsType);
|
||||
|
||||
CPDF_Page* const m_pPage;
|
||||
CPDF_Document* const m_pDocument;
|
||||
std::vector<CPDF_PageObject*> m_pageObjects;
|
||||
};
|
||||
|
||||
#endif // CORE_FPDFAPI_EDIT_CPDF_PAGECONTENTGENERATOR_H_
|
@ -0,0 +1,178 @@
|
||||
// Copyright 2017 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "core/fpdfapi/edit/cpdf_pagecontentgenerator.h"
|
||||
|
||||
#include "core/fpdfapi/cpdf_modulemgr.h"
|
||||
#include "core/fpdfapi/font/cpdf_font.h"
|
||||
#include "core/fpdfapi/page/cpdf_page.h"
|
||||
#include "core/fpdfapi/page/cpdf_pathobject.h"
|
||||
#include "core/fpdfapi/page/cpdf_textobject.h"
|
||||
#include "core/fpdfapi/parser/cpdf_document.h"
|
||||
#include "core/fpdfapi/parser/cpdf_parser.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
#include "third_party/base/ptr_util.h"
|
||||
|
||||
class CPDF_PageContentGeneratorTest : public testing::Test {
|
||||
protected:
|
||||
void SetUp() override { CPDF_ModuleMgr::Get()->InitPageModule(); }
|
||||
|
||||
void TearDown() override { CPDF_ModuleMgr::Destroy(); }
|
||||
|
||||
void TestProcessPath(CPDF_PageContentGenerator* pGen,
|
||||
CFX_ByteTextBuf* buf,
|
||||
CPDF_PathObject* pPathObj) {
|
||||
pGen->ProcessPath(buf, pPathObj);
|
||||
}
|
||||
|
||||
CPDF_Dictionary* TestGetResource(CPDF_PageContentGenerator* pGen,
|
||||
const CFX_ByteString& type,
|
||||
const CFX_ByteString& name) {
|
||||
return pGen->m_pPage->m_pResources->GetDictFor(type)->GetDictFor(name);
|
||||
}
|
||||
|
||||
void TestProcessText(CPDF_PageContentGenerator* pGen,
|
||||
CFX_ByteTextBuf* buf,
|
||||
CPDF_TextObject* pTextObj) {
|
||||
pGen->ProcessText(buf, pTextObj);
|
||||
}
|
||||
};
|
||||
|
||||
TEST_F(CPDF_PageContentGeneratorTest, ProcessRect) {
|
||||
auto pPathObj = pdfium::MakeUnique<CPDF_PathObject>();
|
||||
pPathObj->m_Path.AppendRect(10, 5, 13, 30);
|
||||
pPathObj->m_FillType = FXFILL_ALTERNATE;
|
||||
pPathObj->m_bStroke = true;
|
||||
|
||||
auto pTestPage = pdfium::MakeUnique<CPDF_Page>(nullptr, nullptr, false);
|
||||
CPDF_PageContentGenerator generator(pTestPage.get());
|
||||
CFX_ByteTextBuf buf;
|
||||
TestProcessPath(&generator, &buf, pPathObj.get());
|
||||
EXPECT_EQ("q 10 5 3 25 re B* Q\n", buf.MakeString());
|
||||
|
||||
pPathObj = pdfium::MakeUnique<CPDF_PathObject>();
|
||||
pPathObj->m_Path.AppendPoint(CFX_PointF(0, 0), FXPT_TYPE::MoveTo, false);
|
||||
pPathObj->m_Path.AppendPoint(CFX_PointF(5.2f, 0), FXPT_TYPE::LineTo, false);
|
||||
pPathObj->m_Path.AppendPoint(CFX_PointF(5.2f, 3.78f), FXPT_TYPE::LineTo,
|
||||
false);
|
||||
pPathObj->m_Path.AppendPoint(CFX_PointF(0, 3.78f), FXPT_TYPE::LineTo, true);
|
||||
pPathObj->m_FillType = 0;
|
||||
pPathObj->m_bStroke = false;
|
||||
buf.Clear();
|
||||
|
||||
TestProcessPath(&generator, &buf, pPathObj.get());
|
||||
EXPECT_EQ("q 0 0 5.2 3.78 re n Q\n", buf.MakeString());
|
||||
}
|
||||
|
||||
TEST_F(CPDF_PageContentGeneratorTest, ProcessPath) {
|
||||
auto pPathObj = pdfium::MakeUnique<CPDF_PathObject>();
|
||||
pPathObj->m_Path.AppendPoint(CFX_PointF(3.102f, 4.67f), FXPT_TYPE::MoveTo,
|
||||
false);
|
||||
pPathObj->m_Path.AppendPoint(CFX_PointF(5.45f, 0.29f), FXPT_TYPE::LineTo,
|
||||
false);
|
||||
pPathObj->m_Path.AppendPoint(CFX_PointF(4.24f, 3.15f), FXPT_TYPE::BezierTo,
|
||||
false);
|
||||
pPathObj->m_Path.AppendPoint(CFX_PointF(4.65f, 2.98f), FXPT_TYPE::BezierTo,
|
||||
false);
|
||||
pPathObj->m_Path.AppendPoint(CFX_PointF(3.456f, 0.24f), FXPT_TYPE::BezierTo,
|
||||
false);
|
||||
pPathObj->m_Path.AppendPoint(CFX_PointF(10.6f, 11.15f), FXPT_TYPE::LineTo,
|
||||
false);
|
||||
pPathObj->m_Path.AppendPoint(CFX_PointF(11, 12.5f), FXPT_TYPE::LineTo, false);
|
||||
pPathObj->m_Path.AppendPoint(CFX_PointF(11.46f, 12.67f), FXPT_TYPE::BezierTo,
|
||||
false);
|
||||
pPathObj->m_Path.AppendPoint(CFX_PointF(11.84f, 12.96f), FXPT_TYPE::BezierTo,
|
||||
false);
|
||||
pPathObj->m_Path.AppendPoint(CFX_PointF(12, 13.64f), FXPT_TYPE::BezierTo,
|
||||
true);
|
||||
pPathObj->m_FillType = FXFILL_WINDING;
|
||||
pPathObj->m_bStroke = false;
|
||||
|
||||
auto pTestPage = pdfium::MakeUnique<CPDF_Page>(nullptr, nullptr, false);
|
||||
CPDF_PageContentGenerator generator(pTestPage.get());
|
||||
CFX_ByteTextBuf buf;
|
||||
TestProcessPath(&generator, &buf, pPathObj.get());
|
||||
EXPECT_EQ(
|
||||
"q 3.102 4.67 m 5.45 0.29 l 4.24 3.15 4.65 2.98 3.456 0.24 c 10.6 11.15 "
|
||||
"l 11 12.5 l 11.46 12.67 11.84 12.96 12 13.64 c h f Q\n",
|
||||
buf.MakeString());
|
||||
}
|
||||
|
||||
TEST_F(CPDF_PageContentGeneratorTest, ProcessGraphics) {
|
||||
auto pPathObj = pdfium::MakeUnique<CPDF_PathObject>();
|
||||
pPathObj->m_Path.AppendPoint(CFX_PointF(1, 2), FXPT_TYPE::MoveTo, false);
|
||||
pPathObj->m_Path.AppendPoint(CFX_PointF(3, 4), FXPT_TYPE::LineTo, false);
|
||||
pPathObj->m_Path.AppendPoint(CFX_PointF(5, 6), FXPT_TYPE::LineTo, true);
|
||||
pPathObj->m_FillType = FXFILL_WINDING;
|
||||
pPathObj->m_bStroke = true;
|
||||
|
||||
FX_FLOAT rgb[3] = {0.5f, 0.7f, 0.35f};
|
||||
CPDF_ColorSpace* pCS = CPDF_ColorSpace::GetStockCS(PDFCS_DEVICERGB);
|
||||
pPathObj->m_ColorState.SetFillColor(pCS, rgb, 3);
|
||||
|
||||
FX_FLOAT rgb2[3] = {1, 0.9f, 0};
|
||||
pPathObj->m_ColorState.SetStrokeColor(pCS, rgb2, 3);
|
||||
pPathObj->m_GeneralState.SetFillAlpha(0.5f);
|
||||
pPathObj->m_GeneralState.SetStrokeAlpha(0.8f);
|
||||
|
||||
auto pDoc = pdfium::MakeUnique<CPDF_Document>(nullptr);
|
||||
pDoc->CreateNewDoc();
|
||||
CPDF_Dictionary* pPageDict = pDoc->CreateNewPage(0);
|
||||
auto pTestPage = pdfium::MakeUnique<CPDF_Page>(pDoc.get(), pPageDict, false);
|
||||
CPDF_PageContentGenerator generator(pTestPage.get());
|
||||
CFX_ByteTextBuf buf;
|
||||
TestProcessPath(&generator, &buf, pPathObj.get());
|
||||
CFX_ByteString pathString = buf.MakeString();
|
||||
|
||||
// Color RGB values used are integers divided by 255.
|
||||
EXPECT_EQ("q 0.501961 0.701961 0.34902 rg 1 0.901961 0 RG /",
|
||||
pathString.Left(48));
|
||||
EXPECT_EQ(" gs 1 2 m 3 4 l 5 6 l h B Q\n", pathString.Right(28));
|
||||
ASSERT_TRUE(pathString.GetLength() > 76);
|
||||
CPDF_Dictionary* externalGS = TestGetResource(
|
||||
&generator, "ExtGState", pathString.Mid(48, pathString.GetLength() - 76));
|
||||
ASSERT_TRUE(externalGS);
|
||||
EXPECT_EQ(0.5f, externalGS->GetNumberFor("ca"));
|
||||
EXPECT_EQ(0.8f, externalGS->GetNumberFor("CA"));
|
||||
|
||||
// Same path, now with a stroke.
|
||||
pPathObj->m_GraphState.SetLineWidth(10.5f);
|
||||
buf.Clear();
|
||||
TestProcessPath(&generator, &buf, pPathObj.get());
|
||||
CFX_ByteString pathString2 = buf.MakeString();
|
||||
EXPECT_EQ("q 0.501961 0.701961 0.34902 rg 1 0.901961 0 RG 10.5 w /",
|
||||
pathString2.Left(55));
|
||||
EXPECT_EQ(" gs 1 2 m 3 4 l 5 6 l h B Q\n", pathString2.Right(28));
|
||||
|
||||
// Compare with the previous (should use same dictionary for gs)
|
||||
EXPECT_EQ(pathString.GetLength() + 7, pathString2.GetLength());
|
||||
EXPECT_EQ(pathString.Mid(48, pathString.GetLength() - 76),
|
||||
pathString2.Mid(55, pathString2.GetLength() - 83));
|
||||
}
|
||||
|
||||
TEST_F(CPDF_PageContentGeneratorTest, ProcessText) {
|
||||
auto pDoc = pdfium::MakeUnique<CPDF_Document>(nullptr);
|
||||
pDoc->CreateNewDoc();
|
||||
CPDF_Dictionary* pPageDict = pDoc->CreateNewPage(0);
|
||||
auto pTestPage = pdfium::MakeUnique<CPDF_Page>(pDoc.get(), pPageDict, false);
|
||||
CPDF_PageContentGenerator generator(pTestPage.get());
|
||||
auto pTextObj = pdfium::MakeUnique<CPDF_TextObject>();
|
||||
CPDF_Font* pFont = CPDF_Font::GetStockFont(pDoc.get(), "Times-Roman");
|
||||
pTextObj->m_TextState.SetFont(pFont);
|
||||
pTextObj->m_TextState.SetFontSize(10.0f);
|
||||
pTextObj->Transform(CFX_Matrix(1, 0, 0, 1, 100, 100));
|
||||
pTextObj->SetText("Hello World");
|
||||
CFX_ByteTextBuf buf;
|
||||
TestProcessText(&generator, &buf, pTextObj.get());
|
||||
CFX_ByteString textString = buf.MakeString();
|
||||
EXPECT_LT(61, textString.GetLength());
|
||||
EXPECT_EQ("BT 1 0 0 1 100 100 Tm /", textString.Left(23));
|
||||
EXPECT_EQ(" 10 Tf <48656C6C6F20576F726C64> Tj ET\n", textString.Right(38));
|
||||
CPDF_Dictionary* fontDict = TestGetResource(
|
||||
&generator, "Font", textString.Mid(23, textString.GetLength() - 61));
|
||||
ASSERT_TRUE(fontDict);
|
||||
EXPECT_EQ("Font", fontDict->GetStringFor("Type"));
|
||||
EXPECT_EQ("Type1", fontDict->GetStringFor("Subtype"));
|
||||
EXPECT_EQ("Times-Roman", fontDict->GetStringFor("BaseFont"));
|
||||
}
|
77
modules/pdfium/pdfium/core/fpdfapi/edit/editint.h
Normal file
77
modules/pdfium/pdfium/core/fpdfapi/edit/editint.h
Normal file
@ -0,0 +1,77 @@
|
||||
// Copyright 2014 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#ifndef CORE_FPDFAPI_EDIT_EDITINT_H_
|
||||
#define CORE_FPDFAPI_EDIT_EDITINT_H_
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "core/fxcrt/fx_basic.h"
|
||||
#include "core/fxcrt/fx_stream.h"
|
||||
#include "core/fxcrt/fx_system.h"
|
||||
|
||||
class CPDF_Creator;
|
||||
class CPDF_Object;
|
||||
|
||||
class CPDF_ObjectStream {
|
||||
public:
|
||||
struct Item {
|
||||
uint32_t objnum;
|
||||
FX_STRSIZE offset;
|
||||
};
|
||||
|
||||
CPDF_ObjectStream();
|
||||
~CPDF_ObjectStream();
|
||||
|
||||
void Start();
|
||||
FX_FILESIZE End(CPDF_Creator* pCreator);
|
||||
void CompressIndirectObject(uint32_t dwObjNum, const CPDF_Object* pObj);
|
||||
void CompressIndirectObject(uint32_t dwObjNum,
|
||||
const uint8_t* pBuffer,
|
||||
uint32_t dwSize);
|
||||
|
||||
std::vector<Item> m_Items;
|
||||
CFX_ByteTextBuf m_Buffer;
|
||||
uint32_t m_dwObjNum;
|
||||
int32_t m_index;
|
||||
};
|
||||
|
||||
class CPDF_XRefStream {
|
||||
public:
|
||||
struct Index {
|
||||
uint32_t objnum;
|
||||
uint32_t count;
|
||||
};
|
||||
|
||||
CPDF_XRefStream();
|
||||
~CPDF_XRefStream();
|
||||
|
||||
bool Start();
|
||||
int32_t CompressIndirectObject(uint32_t dwObjNum,
|
||||
const CPDF_Object* pObj,
|
||||
CPDF_Creator* pCreator);
|
||||
int32_t CompressIndirectObject(uint32_t dwObjNum,
|
||||
const uint8_t* pBuffer,
|
||||
uint32_t dwSize,
|
||||
CPDF_Creator* pCreator);
|
||||
bool End(CPDF_Creator* pCreator, bool bEOF = false);
|
||||
void AddObjectNumberToIndexArray(uint32_t objnum);
|
||||
bool EndXRefStream(CPDF_Creator* pCreator);
|
||||
|
||||
std::vector<Index> m_IndexArray;
|
||||
FX_FILESIZE m_PrevOffset;
|
||||
uint32_t m_dwTempObjNum;
|
||||
|
||||
protected:
|
||||
int32_t EndObjectStream(CPDF_Creator* pCreator, bool bEOF = true);
|
||||
bool GenerateXRefStream(CPDF_Creator* pCreator, bool bEOF);
|
||||
|
||||
size_t m_iSeg;
|
||||
CPDF_ObjectStream m_ObjStream;
|
||||
CFX_ByteTextBuf m_Buffer;
|
||||
};
|
||||
|
||||
#endif // CORE_FPDFAPI_EDIT_EDITINT_H_
|
1995
modules/pdfium/pdfium/core/fpdfapi/edit/fpdf_edit_create.cpp
Normal file
1995
modules/pdfium/pdfium/core/fpdfapi/edit/fpdf_edit_create.cpp
Normal file
File diff suppressed because it is too large
Load Diff
851
modules/pdfium/pdfium/core/fpdfapi/font/cpdf_cidfont.cpp
Normal file
851
modules/pdfium/pdfium/core/fpdfapi/font/cpdf_cidfont.cpp
Normal file
@ -0,0 +1,851 @@
|
||||
// Copyright 2016 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/font/cpdf_cidfont.h"
|
||||
|
||||
#include <algorithm>
|
||||
#include <vector>
|
||||
|
||||
#include "core/fpdfapi/cmaps/cmap_int.h"
|
||||
#include "core/fpdfapi/cpdf_modulemgr.h"
|
||||
#include "core/fpdfapi/font/cpdf_fontencoding.h"
|
||||
#include "core/fpdfapi/font/font_int.h"
|
||||
#include "core/fpdfapi/font/ttgsubtable.h"
|
||||
#include "core/fpdfapi/page/cpdf_pagemodule.h"
|
||||
#include "core/fpdfapi/parser/cpdf_array.h"
|
||||
#include "core/fpdfapi/parser/cpdf_dictionary.h"
|
||||
#include "core/fpdfapi/parser/cpdf_stream_acc.h"
|
||||
#include "third_party/base/numerics/safe_math.h"
|
||||
#include "third_party/base/ptr_util.h"
|
||||
|
||||
namespace {
|
||||
|
||||
const uint16_t g_CharsetCPs[CIDSET_NUM_SETS] = {0, 936, 950, 932, 949, 1200};
|
||||
|
||||
const struct CIDTransform {
|
||||
uint16_t cid;
|
||||
uint8_t a;
|
||||
uint8_t b;
|
||||
uint8_t c;
|
||||
uint8_t d;
|
||||
uint8_t e;
|
||||
uint8_t f;
|
||||
} g_Japan1_VertCIDs[] = {
|
||||
{97, 129, 0, 0, 127, 55, 0}, {7887, 127, 0, 0, 127, 76, 89},
|
||||
{7888, 127, 0, 0, 127, 79, 94}, {7889, 0, 129, 127, 0, 17, 127},
|
||||
{7890, 0, 129, 127, 0, 17, 127}, {7891, 0, 129, 127, 0, 17, 127},
|
||||
{7892, 0, 129, 127, 0, 17, 127}, {7893, 0, 129, 127, 0, 17, 127},
|
||||
{7894, 0, 129, 127, 0, 17, 127}, {7895, 0, 129, 127, 0, 17, 127},
|
||||
{7896, 0, 129, 127, 0, 17, 127}, {7897, 0, 129, 127, 0, 17, 127},
|
||||
{7898, 0, 129, 127, 0, 17, 127}, {7899, 0, 129, 127, 0, 17, 104},
|
||||
{7900, 0, 129, 127, 0, 17, 127}, {7901, 0, 129, 127, 0, 17, 104},
|
||||
{7902, 0, 129, 127, 0, 17, 127}, {7903, 0, 129, 127, 0, 17, 127},
|
||||
{7904, 0, 129, 127, 0, 17, 127}, {7905, 0, 129, 127, 0, 17, 114},
|
||||
{7906, 0, 129, 127, 0, 17, 127}, {7907, 0, 129, 127, 0, 17, 127},
|
||||
{7908, 0, 129, 127, 0, 17, 127}, {7909, 0, 129, 127, 0, 17, 127},
|
||||
{7910, 0, 129, 127, 0, 17, 127}, {7911, 0, 129, 127, 0, 17, 127},
|
||||
{7912, 0, 129, 127, 0, 17, 127}, {7913, 0, 129, 127, 0, 17, 127},
|
||||
{7914, 0, 129, 127, 0, 17, 127}, {7915, 0, 129, 127, 0, 17, 114},
|
||||
{7916, 0, 129, 127, 0, 17, 127}, {7917, 0, 129, 127, 0, 17, 127},
|
||||
{7918, 127, 0, 0, 127, 18, 25}, {7919, 127, 0, 0, 127, 18, 25},
|
||||
{7920, 127, 0, 0, 127, 18, 25}, {7921, 127, 0, 0, 127, 18, 25},
|
||||
{7922, 127, 0, 0, 127, 18, 25}, {7923, 127, 0, 0, 127, 18, 25},
|
||||
{7924, 127, 0, 0, 127, 18, 25}, {7925, 127, 0, 0, 127, 18, 25},
|
||||
{7926, 127, 0, 0, 127, 18, 25}, {7927, 127, 0, 0, 127, 18, 25},
|
||||
{7928, 127, 0, 0, 127, 18, 25}, {7929, 127, 0, 0, 127, 18, 25},
|
||||
{7930, 127, 0, 0, 127, 18, 25}, {7931, 127, 0, 0, 127, 18, 25},
|
||||
{7932, 127, 0, 0, 127, 18, 25}, {7933, 127, 0, 0, 127, 18, 25},
|
||||
{7934, 127, 0, 0, 127, 18, 25}, {7935, 127, 0, 0, 127, 18, 25},
|
||||
{7936, 127, 0, 0, 127, 18, 25}, {7937, 127, 0, 0, 127, 18, 25},
|
||||
{7938, 127, 0, 0, 127, 18, 25}, {7939, 127, 0, 0, 127, 18, 25},
|
||||
{8720, 0, 129, 127, 0, 19, 102}, {8721, 0, 129, 127, 0, 13, 127},
|
||||
{8722, 0, 129, 127, 0, 19, 108}, {8723, 0, 129, 127, 0, 19, 102},
|
||||
{8724, 0, 129, 127, 0, 19, 102}, {8725, 0, 129, 127, 0, 19, 102},
|
||||
{8726, 0, 129, 127, 0, 19, 102}, {8727, 0, 129, 127, 0, 19, 102},
|
||||
{8728, 0, 129, 127, 0, 19, 114}, {8729, 0, 129, 127, 0, 19, 114},
|
||||
{8730, 0, 129, 127, 0, 38, 108}, {8731, 0, 129, 127, 0, 13, 108},
|
||||
{8732, 0, 129, 127, 0, 19, 108}, {8733, 0, 129, 127, 0, 19, 108},
|
||||
{8734, 0, 129, 127, 0, 19, 108}, {8735, 0, 129, 127, 0, 19, 108},
|
||||
{8736, 0, 129, 127, 0, 19, 102}, {8737, 0, 129, 127, 0, 19, 102},
|
||||
{8738, 0, 129, 127, 0, 19, 102}, {8739, 0, 129, 127, 0, 19, 102},
|
||||
{8740, 0, 129, 127, 0, 19, 102}, {8741, 0, 129, 127, 0, 19, 102},
|
||||
{8742, 0, 129, 127, 0, 19, 102}, {8743, 0, 129, 127, 0, 19, 102},
|
||||
{8744, 0, 129, 127, 0, 19, 102}, {8745, 0, 129, 127, 0, 19, 102},
|
||||
{8746, 0, 129, 127, 0, 19, 114}, {8747, 0, 129, 127, 0, 19, 114},
|
||||
{8748, 0, 129, 127, 0, 19, 102}, {8749, 0, 129, 127, 0, 19, 102},
|
||||
{8750, 0, 129, 127, 0, 19, 102}, {8751, 0, 129, 127, 0, 19, 102},
|
||||
{8752, 0, 129, 127, 0, 19, 102}, {8753, 0, 129, 127, 0, 19, 102},
|
||||
{8754, 0, 129, 127, 0, 19, 102}, {8755, 0, 129, 127, 0, 19, 102},
|
||||
{8756, 0, 129, 127, 0, 19, 102}, {8757, 0, 129, 127, 0, 19, 102},
|
||||
{8758, 0, 129, 127, 0, 19, 102}, {8759, 0, 129, 127, 0, 19, 102},
|
||||
{8760, 0, 129, 127, 0, 19, 102}, {8761, 0, 129, 127, 0, 19, 102},
|
||||
{8762, 0, 129, 127, 0, 19, 102}, {8763, 0, 129, 127, 0, 19, 102},
|
||||
{8764, 0, 129, 127, 0, 19, 102}, {8765, 0, 129, 127, 0, 19, 102},
|
||||
{8766, 0, 129, 127, 0, 19, 102}, {8767, 0, 129, 127, 0, 19, 102},
|
||||
{8768, 0, 129, 127, 0, 19, 102}, {8769, 0, 129, 127, 0, 19, 102},
|
||||
{8770, 0, 129, 127, 0, 19, 102}, {8771, 0, 129, 127, 0, 19, 102},
|
||||
{8772, 0, 129, 127, 0, 19, 102}, {8773, 0, 129, 127, 0, 19, 102},
|
||||
{8774, 0, 129, 127, 0, 19, 102}, {8775, 0, 129, 127, 0, 19, 102},
|
||||
{8776, 0, 129, 127, 0, 19, 102}, {8777, 0, 129, 127, 0, 19, 102},
|
||||
{8778, 0, 129, 127, 0, 19, 102}, {8779, 0, 129, 127, 0, 19, 114},
|
||||
{8780, 0, 129, 127, 0, 19, 108}, {8781, 0, 129, 127, 0, 19, 114},
|
||||
{8782, 0, 129, 127, 0, 13, 114}, {8783, 0, 129, 127, 0, 19, 108},
|
||||
{8784, 0, 129, 127, 0, 13, 114}, {8785, 0, 129, 127, 0, 19, 108},
|
||||
{8786, 0, 129, 127, 0, 19, 108}, {8787, 0, 129, 127, 0, 19, 108},
|
||||
{8788, 0, 129, 127, 0, 19, 108}, {8789, 0, 129, 127, 0, 19, 108},
|
||||
{8790, 0, 129, 127, 0, 19, 108}, {8791, 0, 129, 127, 0, 19, 108},
|
||||
{8792, 0, 129, 127, 0, 19, 108}, {8793, 0, 129, 127, 0, 19, 108},
|
||||
{8794, 0, 129, 127, 0, 19, 108}, {8795, 0, 129, 127, 0, 19, 108},
|
||||
{8796, 0, 129, 127, 0, 19, 108}, {8797, 0, 129, 127, 0, 19, 108},
|
||||
{8798, 0, 129, 127, 0, 19, 108}, {8799, 0, 129, 127, 0, 19, 108},
|
||||
{8800, 0, 129, 127, 0, 19, 108}, {8801, 0, 129, 127, 0, 19, 108},
|
||||
{8802, 0, 129, 127, 0, 19, 108}, {8803, 0, 129, 127, 0, 19, 108},
|
||||
{8804, 0, 129, 127, 0, 19, 108}, {8805, 0, 129, 127, 0, 19, 108},
|
||||
{8806, 0, 129, 127, 0, 19, 108}, {8807, 0, 129, 127, 0, 19, 108},
|
||||
{8808, 0, 129, 127, 0, 19, 108}, {8809, 0, 129, 127, 0, 19, 108},
|
||||
{8810, 0, 129, 127, 0, 19, 108}, {8811, 0, 129, 127, 0, 19, 114},
|
||||
{8812, 0, 129, 127, 0, 19, 102}, {8813, 0, 129, 127, 0, 19, 114},
|
||||
{8814, 0, 129, 127, 0, 76, 102}, {8815, 0, 129, 127, 0, 13, 121},
|
||||
{8816, 0, 129, 127, 0, 19, 114}, {8817, 0, 129, 127, 0, 19, 127},
|
||||
{8818, 0, 129, 127, 0, 19, 114}, {8819, 0, 129, 127, 0, 218, 108},
|
||||
};
|
||||
|
||||
CPDF_FontGlobals* GetFontGlobals() {
|
||||
return CPDF_ModuleMgr::Get()->GetPageModule()->GetFontGlobals();
|
||||
}
|
||||
|
||||
#if _FXM_PLATFORM_ != _FXM_PLATFORM_WINDOWS_
|
||||
|
||||
bool IsValidEmbeddedCharcodeFromUnicodeCharset(CIDSet charset) {
|
||||
switch (charset) {
|
||||
case CIDSET_GB1:
|
||||
case CIDSET_CNS1:
|
||||
case CIDSET_JAPAN1:
|
||||
case CIDSET_KOREA1:
|
||||
return true;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
FX_WCHAR EmbeddedUnicodeFromCharcode(const FXCMAP_CMap* pEmbedMap,
|
||||
CIDSet charset,
|
||||
uint32_t charcode) {
|
||||
if (!IsValidEmbeddedCharcodeFromUnicodeCharset(charset))
|
||||
return 0;
|
||||
|
||||
uint16_t cid = FPDFAPI_CIDFromCharCode(pEmbedMap, charcode);
|
||||
const auto& codes = GetFontGlobals()->m_EmbeddedToUnicodes[charset];
|
||||
if (codes.m_pMap && cid && cid < codes.m_Count)
|
||||
return codes.m_pMap[cid];
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint32_t EmbeddedCharcodeFromUnicode(const FXCMAP_CMap* pEmbedMap,
|
||||
CIDSet charset,
|
||||
FX_WCHAR unicode) {
|
||||
if (!IsValidEmbeddedCharcodeFromUnicodeCharset(charset))
|
||||
return 0;
|
||||
|
||||
const auto& codes = GetFontGlobals()->m_EmbeddedToUnicodes[charset];
|
||||
const uint16_t* pCodes = codes.m_pMap;
|
||||
if (!pCodes)
|
||||
return 0;
|
||||
|
||||
for (uint32_t i = 0; i < codes.m_Count; ++i) {
|
||||
if (pCodes[i] == unicode) {
|
||||
uint32_t CharCode = FPDFAPI_CharCodeFromCID(pEmbedMap, i);
|
||||
if (CharCode)
|
||||
return CharCode;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif // _FXM_PLATFORM_ != _FXM_PLATFORM_WINDOWS_
|
||||
|
||||
void FT_UseCIDCharmap(FXFT_Face face, int coding) {
|
||||
int encoding;
|
||||
switch (coding) {
|
||||
case CIDCODING_GB:
|
||||
encoding = FXFT_ENCODING_GB2312;
|
||||
break;
|
||||
case CIDCODING_BIG5:
|
||||
encoding = FXFT_ENCODING_BIG5;
|
||||
break;
|
||||
case CIDCODING_JIS:
|
||||
encoding = FXFT_ENCODING_SJIS;
|
||||
break;
|
||||
case CIDCODING_KOREA:
|
||||
encoding = FXFT_ENCODING_JOHAB;
|
||||
break;
|
||||
default:
|
||||
encoding = FXFT_ENCODING_UNICODE;
|
||||
}
|
||||
int err = FXFT_Select_Charmap(face, encoding);
|
||||
if (err)
|
||||
err = FXFT_Select_Charmap(face, FXFT_ENCODING_UNICODE);
|
||||
if (err && FXFT_Get_Face_Charmaps(face))
|
||||
FXFT_Set_Charmap(face, *FXFT_Get_Face_Charmaps(face));
|
||||
}
|
||||
|
||||
bool IsMetricForCID(const uint32_t* pEntry, uint16_t CID) {
|
||||
return pEntry[0] <= CID && pEntry[1] >= CID;
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
CPDF_CIDFont::CPDF_CIDFont()
|
||||
: m_pCID2UnicodeMap(nullptr),
|
||||
m_bCIDIsGID(false),
|
||||
m_bAnsiWidthsFixed(false),
|
||||
m_bAdobeCourierStd(false) {
|
||||
for (size_t i = 0; i < FX_ArraySize(m_CharBBox); ++i)
|
||||
m_CharBBox[i] = FX_RECT(-1, -1, -1, -1);
|
||||
}
|
||||
|
||||
CPDF_CIDFont::~CPDF_CIDFont() {}
|
||||
|
||||
bool CPDF_CIDFont::IsCIDFont() const {
|
||||
return true;
|
||||
}
|
||||
|
||||
const CPDF_CIDFont* CPDF_CIDFont::AsCIDFont() const {
|
||||
return this;
|
||||
}
|
||||
|
||||
CPDF_CIDFont* CPDF_CIDFont::AsCIDFont() {
|
||||
return this;
|
||||
}
|
||||
|
||||
uint16_t CPDF_CIDFont::CIDFromCharCode(uint32_t charcode) const {
|
||||
return m_pCMap ? m_pCMap->CIDFromCharCode(charcode)
|
||||
: static_cast<uint16_t>(charcode);
|
||||
}
|
||||
|
||||
bool CPDF_CIDFont::IsVertWriting() const {
|
||||
return m_pCMap && m_pCMap->IsVertWriting();
|
||||
}
|
||||
|
||||
CFX_WideString CPDF_CIDFont::UnicodeFromCharCode(uint32_t charcode) const {
|
||||
CFX_WideString str = CPDF_Font::UnicodeFromCharCode(charcode);
|
||||
if (!str.IsEmpty())
|
||||
return str;
|
||||
FX_WCHAR ret = GetUnicodeFromCharCode(charcode);
|
||||
return ret ? ret : CFX_WideString();
|
||||
}
|
||||
|
||||
FX_WCHAR CPDF_CIDFont::GetUnicodeFromCharCode(uint32_t charcode) const {
|
||||
switch (m_pCMap->m_Coding) {
|
||||
case CIDCODING_UCS2:
|
||||
case CIDCODING_UTF16:
|
||||
return static_cast<FX_WCHAR>(charcode);
|
||||
case CIDCODING_CID:
|
||||
if (!m_pCID2UnicodeMap || !m_pCID2UnicodeMap->IsLoaded())
|
||||
return 0;
|
||||
return m_pCID2UnicodeMap->UnicodeFromCID(static_cast<uint16_t>(charcode));
|
||||
}
|
||||
if (m_pCID2UnicodeMap && m_pCID2UnicodeMap->IsLoaded() && m_pCMap->IsLoaded())
|
||||
return m_pCID2UnicodeMap->UnicodeFromCID(CIDFromCharCode(charcode));
|
||||
|
||||
#if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_
|
||||
FX_WCHAR unicode;
|
||||
int charsize = 1;
|
||||
if (charcode > 255) {
|
||||
charcode = (charcode % 256) * 256 + (charcode / 256);
|
||||
charsize = 2;
|
||||
}
|
||||
int ret = FXSYS_MultiByteToWideChar(
|
||||
g_CharsetCPs[m_pCMap->m_Coding], 0,
|
||||
reinterpret_cast<const FX_CHAR*>(&charcode), charsize, &unicode, 1);
|
||||
return ret == 1 ? unicode : 0;
|
||||
#else
|
||||
if (!m_pCMap->m_pEmbedMap)
|
||||
return 0;
|
||||
return EmbeddedUnicodeFromCharcode(m_pCMap->m_pEmbedMap, m_pCMap->m_Charset,
|
||||
charcode);
|
||||
#endif
|
||||
}
|
||||
|
||||
uint32_t CPDF_CIDFont::CharCodeFromUnicode(FX_WCHAR unicode) const {
|
||||
uint32_t charcode = CPDF_Font::CharCodeFromUnicode(unicode);
|
||||
if (charcode)
|
||||
return charcode;
|
||||
switch (m_pCMap->m_Coding) {
|
||||
case CIDCODING_UNKNOWN:
|
||||
return 0;
|
||||
case CIDCODING_UCS2:
|
||||
case CIDCODING_UTF16:
|
||||
return unicode;
|
||||
case CIDCODING_CID: {
|
||||
if (!m_pCID2UnicodeMap || !m_pCID2UnicodeMap->IsLoaded())
|
||||
return 0;
|
||||
uint32_t CID = 0;
|
||||
while (CID < 65536) {
|
||||
FX_WCHAR this_unicode =
|
||||
m_pCID2UnicodeMap->UnicodeFromCID(static_cast<uint16_t>(CID));
|
||||
if (this_unicode == unicode)
|
||||
return CID;
|
||||
CID++;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (unicode < 0x80)
|
||||
return static_cast<uint32_t>(unicode);
|
||||
if (m_pCMap->m_Coding == CIDCODING_CID)
|
||||
return 0;
|
||||
#if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_
|
||||
uint8_t buffer[32];
|
||||
int ret = FXSYS_WideCharToMultiByte(
|
||||
g_CharsetCPs[m_pCMap->m_Coding], 0, &unicode, 1,
|
||||
reinterpret_cast<char*>(buffer), 4, nullptr, nullptr);
|
||||
if (ret == 1)
|
||||
return buffer[0];
|
||||
if (ret == 2)
|
||||
return buffer[0] * 256 + buffer[1];
|
||||
#else
|
||||
if (m_pCMap->m_pEmbedMap) {
|
||||
return EmbeddedCharcodeFromUnicode(m_pCMap->m_pEmbedMap, m_pCMap->m_Charset,
|
||||
unicode);
|
||||
}
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool CPDF_CIDFont::Load() {
|
||||
if (m_pFontDict->GetStringFor("Subtype") == "TrueType") {
|
||||
LoadGB2312();
|
||||
return true;
|
||||
}
|
||||
|
||||
CPDF_Array* pFonts = m_pFontDict->GetArrayFor("DescendantFonts");
|
||||
if (!pFonts || pFonts->GetCount() != 1)
|
||||
return false;
|
||||
|
||||
CPDF_Dictionary* pCIDFontDict = pFonts->GetDictAt(0);
|
||||
if (!pCIDFontDict)
|
||||
return false;
|
||||
|
||||
m_BaseFont = pCIDFontDict->GetStringFor("BaseFont");
|
||||
if ((m_BaseFont.Compare("CourierStd") == 0 ||
|
||||
m_BaseFont.Compare("CourierStd-Bold") == 0 ||
|
||||
m_BaseFont.Compare("CourierStd-BoldOblique") == 0 ||
|
||||
m_BaseFont.Compare("CourierStd-Oblique") == 0) &&
|
||||
!IsEmbedded()) {
|
||||
m_bAdobeCourierStd = true;
|
||||
}
|
||||
CPDF_Dictionary* pFontDesc = pCIDFontDict->GetDictFor("FontDescriptor");
|
||||
if (pFontDesc)
|
||||
LoadFontDescriptor(pFontDesc);
|
||||
|
||||
CPDF_Object* pEncoding = m_pFontDict->GetDirectObjectFor("Encoding");
|
||||
if (!pEncoding)
|
||||
return false;
|
||||
|
||||
CFX_ByteString subtype = pCIDFontDict->GetStringFor("Subtype");
|
||||
m_bType1 = (subtype == "CIDFontType0");
|
||||
|
||||
CPDF_CMapManager& manager = GetFontGlobals()->m_CMapManager;
|
||||
if (pEncoding->IsName()) {
|
||||
CFX_ByteString cmap = pEncoding->GetString();
|
||||
bool bPromptCJK = m_pFontFile && m_bType1;
|
||||
m_pCMap = manager.GetPredefinedCMap(cmap, bPromptCJK);
|
||||
if (!m_pCMap)
|
||||
return false;
|
||||
} else if (CPDF_Stream* pStream = pEncoding->AsStream()) {
|
||||
m_pCMap = pdfium::MakeUnique<CPDF_CMap>();
|
||||
CPDF_StreamAcc acc;
|
||||
acc.LoadAllData(pStream, false);
|
||||
m_pCMap->LoadEmbedded(acc.GetData(), acc.GetSize());
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
m_Charset = m_pCMap->m_Charset;
|
||||
if (m_Charset == CIDSET_UNKNOWN) {
|
||||
CPDF_Dictionary* pCIDInfo = pCIDFontDict->GetDictFor("CIDSystemInfo");
|
||||
if (pCIDInfo) {
|
||||
m_Charset =
|
||||
CharsetFromOrdering(pCIDInfo->GetStringFor("Ordering").AsStringC());
|
||||
}
|
||||
}
|
||||
if (m_Charset != CIDSET_UNKNOWN) {
|
||||
bool bPromptCJK = !m_pFontFile && (m_pCMap->m_Coding == CIDCODING_CID ||
|
||||
pCIDFontDict->KeyExist("W"));
|
||||
m_pCID2UnicodeMap = manager.GetCID2UnicodeMap(m_Charset, bPromptCJK);
|
||||
}
|
||||
if (m_Font.GetFace()) {
|
||||
if (m_bType1)
|
||||
FXFT_Select_Charmap(m_Font.GetFace(), FXFT_ENCODING_UNICODE);
|
||||
else
|
||||
FT_UseCIDCharmap(m_Font.GetFace(), m_pCMap->m_Coding);
|
||||
}
|
||||
m_DefaultWidth = pCIDFontDict->GetIntegerFor("DW", 1000);
|
||||
CPDF_Array* pWidthArray = pCIDFontDict->GetArrayFor("W");
|
||||
if (pWidthArray)
|
||||
LoadMetricsArray(pWidthArray, &m_WidthList, 1);
|
||||
if (!IsEmbedded())
|
||||
LoadSubstFont();
|
||||
|
||||
if (m_pFontFile || (GetSubstFont()->m_SubstFlags & FXFONT_SUBST_EXACT)) {
|
||||
CPDF_Object* pmap = pCIDFontDict->GetDirectObjectFor("CIDToGIDMap");
|
||||
if (pmap) {
|
||||
if (CPDF_Stream* pStream = pmap->AsStream()) {
|
||||
m_pStreamAcc = pdfium::MakeUnique<CPDF_StreamAcc>();
|
||||
m_pStreamAcc->LoadAllData(pStream, false);
|
||||
} else if (pmap->GetString() == "Identity") {
|
||||
#if _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_
|
||||
if (m_pFontFile)
|
||||
m_bCIDIsGID = true;
|
||||
#else
|
||||
m_bCIDIsGID = true;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
CheckFontMetrics();
|
||||
if (IsVertWriting()) {
|
||||
pWidthArray = pCIDFontDict->GetArrayFor("W2");
|
||||
if (pWidthArray)
|
||||
LoadMetricsArray(pWidthArray, &m_VertMetrics, 3);
|
||||
CPDF_Array* pDefaultArray = pCIDFontDict->GetArrayFor("DW2");
|
||||
if (pDefaultArray) {
|
||||
m_DefaultVY = pDefaultArray->GetIntegerAt(0);
|
||||
m_DefaultW1 = pDefaultArray->GetIntegerAt(1);
|
||||
} else {
|
||||
m_DefaultVY = 880;
|
||||
m_DefaultW1 = -1000;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
FX_RECT CPDF_CIDFont::GetCharBBox(uint32_t charcode) {
|
||||
if (charcode < 256 && m_CharBBox[charcode].right != -1)
|
||||
return m_CharBBox[charcode];
|
||||
|
||||
FX_RECT rect;
|
||||
bool bVert = false;
|
||||
int glyph_index = GlyphFromCharCode(charcode, &bVert);
|
||||
FXFT_Face face = m_Font.GetFace();
|
||||
if (face) {
|
||||
if (FXFT_Is_Face_Tricky(face)) {
|
||||
int err = FXFT_Load_Glyph(face, glyph_index,
|
||||
FXFT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH);
|
||||
if (!err) {
|
||||
FXFT_BBox cbox;
|
||||
FXFT_Glyph glyph;
|
||||
err = FXFT_Get_Glyph(((FXFT_Face)face)->glyph, &glyph);
|
||||
if (!err) {
|
||||
FXFT_Glyph_Get_CBox(glyph, FXFT_GLYPH_BBOX_PIXELS, &cbox);
|
||||
int pixel_size_x = ((FXFT_Face)face)->size->metrics.x_ppem;
|
||||
int pixel_size_y = ((FXFT_Face)face)->size->metrics.y_ppem;
|
||||
if (pixel_size_x == 0 || pixel_size_y == 0) {
|
||||
rect = FX_RECT(cbox.xMin, cbox.yMax, cbox.xMax, cbox.yMin);
|
||||
} else {
|
||||
rect = FX_RECT(cbox.xMin * 1000 / pixel_size_x,
|
||||
cbox.yMax * 1000 / pixel_size_y,
|
||||
cbox.xMax * 1000 / pixel_size_x,
|
||||
cbox.yMin * 1000 / pixel_size_y);
|
||||
}
|
||||
rect.top = std::min(rect.top,
|
||||
static_cast<int>(FXFT_Get_Face_Ascender(face)));
|
||||
rect.bottom = std::max(
|
||||
rect.bottom, static_cast<int>(FXFT_Get_Face_Descender(face)));
|
||||
FXFT_Done_Glyph(glyph);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
int err = FXFT_Load_Glyph(face, glyph_index, FXFT_LOAD_NO_SCALE);
|
||||
if (err == 0) {
|
||||
rect = FX_RECT(TT2PDF(FXFT_Get_Glyph_HoriBearingX(face), face),
|
||||
TT2PDF(FXFT_Get_Glyph_HoriBearingY(face), face),
|
||||
TT2PDF(FXFT_Get_Glyph_HoriBearingX(face) +
|
||||
FXFT_Get_Glyph_Width(face),
|
||||
face),
|
||||
TT2PDF(FXFT_Get_Glyph_HoriBearingY(face) -
|
||||
FXFT_Get_Glyph_Height(face),
|
||||
face));
|
||||
rect.top += rect.top / 64;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!m_pFontFile && m_Charset == CIDSET_JAPAN1) {
|
||||
uint16_t CID = CIDFromCharCode(charcode);
|
||||
const uint8_t* pTransform = GetCIDTransform(CID);
|
||||
if (pTransform && !bVert) {
|
||||
CFX_Matrix matrix(CIDTransformToFloat(pTransform[0]),
|
||||
CIDTransformToFloat(pTransform[1]),
|
||||
CIDTransformToFloat(pTransform[2]),
|
||||
CIDTransformToFloat(pTransform[3]),
|
||||
CIDTransformToFloat(pTransform[4]) * 1000,
|
||||
CIDTransformToFloat(pTransform[5]) * 1000);
|
||||
CFX_FloatRect rect_f(rect);
|
||||
matrix.TransformRect(rect_f);
|
||||
rect = rect_f.GetOuterRect();
|
||||
}
|
||||
}
|
||||
if (charcode < 256)
|
||||
m_CharBBox[charcode] = rect;
|
||||
|
||||
return rect;
|
||||
}
|
||||
|
||||
int CPDF_CIDFont::GetCharWidthF(uint32_t charcode) {
|
||||
if (charcode < 0x80 && m_bAnsiWidthsFixed)
|
||||
return (charcode >= 32 && charcode < 127) ? 500 : 0;
|
||||
|
||||
uint16_t cid = CIDFromCharCode(charcode);
|
||||
size_t size = m_WidthList.size();
|
||||
const uint32_t* pList = m_WidthList.data();
|
||||
for (size_t i = 0; i < size; i += 3) {
|
||||
const uint32_t* pEntry = pList + i;
|
||||
if (IsMetricForCID(pEntry, cid))
|
||||
return static_cast<int>(pEntry[2]);
|
||||
}
|
||||
return m_DefaultWidth;
|
||||
}
|
||||
|
||||
short CPDF_CIDFont::GetVertWidth(uint16_t CID) const {
|
||||
size_t vertsize = m_VertMetrics.size() / 5;
|
||||
if (vertsize) {
|
||||
const uint32_t* pTable = m_VertMetrics.data();
|
||||
for (size_t i = 0; i < vertsize; i++) {
|
||||
const uint32_t* pEntry = pTable + (i * 5);
|
||||
if (IsMetricForCID(pEntry, CID))
|
||||
return static_cast<short>(pEntry[2]);
|
||||
}
|
||||
}
|
||||
return m_DefaultW1;
|
||||
}
|
||||
|
||||
void CPDF_CIDFont::GetVertOrigin(uint16_t CID, short& vx, short& vy) const {
|
||||
size_t vertsize = m_VertMetrics.size() / 5;
|
||||
if (vertsize) {
|
||||
const uint32_t* pTable = m_VertMetrics.data();
|
||||
for (size_t i = 0; i < vertsize; i++) {
|
||||
const uint32_t* pEntry = pTable + (i * 5);
|
||||
if (IsMetricForCID(pEntry, CID)) {
|
||||
vx = static_cast<short>(pEntry[3]);
|
||||
vy = static_cast<short>(pEntry[4]);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
uint32_t dwWidth = m_DefaultWidth;
|
||||
size_t size = m_WidthList.size();
|
||||
const uint32_t* pList = m_WidthList.data();
|
||||
for (size_t i = 0; i < size; i += 3) {
|
||||
const uint32_t* pEntry = pList + i;
|
||||
if (IsMetricForCID(pEntry, CID)) {
|
||||
dwWidth = pEntry[2];
|
||||
break;
|
||||
}
|
||||
}
|
||||
vx = static_cast<short>(dwWidth) / 2;
|
||||
vy = m_DefaultVY;
|
||||
}
|
||||
|
||||
int CPDF_CIDFont::GetGlyphIndex(uint32_t unicode, bool* pVertGlyph) {
|
||||
if (pVertGlyph)
|
||||
*pVertGlyph = false;
|
||||
|
||||
FXFT_Face face = m_Font.GetFace();
|
||||
int index = FXFT_Get_Char_Index(face, unicode);
|
||||
if (unicode == 0x2502)
|
||||
return index;
|
||||
|
||||
if (!index || !IsVertWriting())
|
||||
return index;
|
||||
|
||||
if (m_pTTGSUBTable)
|
||||
return GetVerticalGlyph(index, pVertGlyph);
|
||||
|
||||
if (!m_Font.GetSubData()) {
|
||||
unsigned long length = 0;
|
||||
int error = FXFT_Load_Sfnt_Table(face, FT_MAKE_TAG('G', 'S', 'U', 'B'), 0,
|
||||
nullptr, &length);
|
||||
if (!error)
|
||||
m_Font.SetSubData(FX_Alloc(uint8_t, length));
|
||||
}
|
||||
int error = FXFT_Load_Sfnt_Table(face, FT_MAKE_TAG('G', 'S', 'U', 'B'), 0,
|
||||
m_Font.GetSubData(), nullptr);
|
||||
if (error || !m_Font.GetSubData())
|
||||
return index;
|
||||
|
||||
m_pTTGSUBTable = pdfium::MakeUnique<CFX_CTTGSUBTable>();
|
||||
m_pTTGSUBTable->LoadGSUBTable((FT_Bytes)m_Font.GetSubData());
|
||||
return GetVerticalGlyph(index, pVertGlyph);
|
||||
}
|
||||
|
||||
int CPDF_CIDFont::GetVerticalGlyph(int index, bool* pVertGlyph) {
|
||||
uint32_t vindex = 0;
|
||||
m_pTTGSUBTable->GetVerticalGlyph(index, &vindex);
|
||||
if (!vindex)
|
||||
return index;
|
||||
|
||||
index = vindex;
|
||||
if (pVertGlyph)
|
||||
*pVertGlyph = true;
|
||||
return index;
|
||||
}
|
||||
|
||||
int CPDF_CIDFont::GlyphFromCharCode(uint32_t charcode, bool* pVertGlyph) {
|
||||
if (pVertGlyph)
|
||||
*pVertGlyph = false;
|
||||
|
||||
if (!m_pFontFile && !m_pStreamAcc) {
|
||||
uint16_t cid = CIDFromCharCode(charcode);
|
||||
FX_WCHAR unicode = 0;
|
||||
if (m_bCIDIsGID) {
|
||||
#if _FXM_PLATFORM_ != _FXM_PLATFORM_APPLE_
|
||||
return cid;
|
||||
#else
|
||||
if (m_Flags & FXFONT_SYMBOLIC)
|
||||
return cid;
|
||||
|
||||
CFX_WideString uni_str = UnicodeFromCharCode(charcode);
|
||||
if (uni_str.IsEmpty())
|
||||
return cid;
|
||||
|
||||
unicode = uni_str.GetAt(0);
|
||||
#endif
|
||||
} else {
|
||||
if (cid && m_pCID2UnicodeMap && m_pCID2UnicodeMap->IsLoaded())
|
||||
unicode = m_pCID2UnicodeMap->UnicodeFromCID(cid);
|
||||
if (unicode == 0)
|
||||
unicode = GetUnicodeFromCharCode(charcode);
|
||||
if (unicode == 0) {
|
||||
CFX_WideString unicode_str = UnicodeFromCharCode(charcode);
|
||||
if (!unicode_str.IsEmpty())
|
||||
unicode = unicode_str.GetAt(0);
|
||||
}
|
||||
}
|
||||
FXFT_Face face = m_Font.GetFace();
|
||||
if (unicode == 0) {
|
||||
if (!m_bAdobeCourierStd)
|
||||
return charcode ? static_cast<int>(charcode) : -1;
|
||||
|
||||
charcode += 31;
|
||||
bool bMSUnicode = FT_UseTTCharmap(face, 3, 1);
|
||||
bool bMacRoman = !bMSUnicode && FT_UseTTCharmap(face, 1, 0);
|
||||
int iBaseEncoding = PDFFONT_ENCODING_STANDARD;
|
||||
if (bMSUnicode)
|
||||
iBaseEncoding = PDFFONT_ENCODING_WINANSI;
|
||||
else if (bMacRoman)
|
||||
iBaseEncoding = PDFFONT_ENCODING_MACROMAN;
|
||||
const FX_CHAR* name = GetAdobeCharName(
|
||||
iBaseEncoding, std::vector<CFX_ByteString>(), charcode);
|
||||
if (!name)
|
||||
return charcode ? static_cast<int>(charcode) : -1;
|
||||
|
||||
int index = 0;
|
||||
uint16_t name_unicode = PDF_UnicodeFromAdobeName(name);
|
||||
if (!name_unicode)
|
||||
return charcode ? static_cast<int>(charcode) : -1;
|
||||
|
||||
if (iBaseEncoding == PDFFONT_ENCODING_STANDARD)
|
||||
return FXFT_Get_Char_Index(face, name_unicode);
|
||||
|
||||
if (iBaseEncoding == PDFFONT_ENCODING_WINANSI) {
|
||||
index = FXFT_Get_Char_Index(face, name_unicode);
|
||||
} else {
|
||||
ASSERT(iBaseEncoding == PDFFONT_ENCODING_MACROMAN);
|
||||
uint32_t maccode =
|
||||
FT_CharCodeFromUnicode(FXFT_ENCODING_APPLE_ROMAN, name_unicode);
|
||||
index = maccode ? FXFT_Get_Char_Index(face, maccode)
|
||||
: FXFT_Get_Name_Index(face, const_cast<char*>(name));
|
||||
}
|
||||
if (index == 0 || index == 0xffff)
|
||||
return charcode ? static_cast<int>(charcode) : -1;
|
||||
return index;
|
||||
}
|
||||
if (m_Charset == CIDSET_JAPAN1) {
|
||||
if (unicode == '\\') {
|
||||
unicode = '/';
|
||||
#if _FXM_PLATFORM_ != _FXM_PLATFORM_APPLE_
|
||||
} else if (unicode == 0xa5) {
|
||||
unicode = 0x5c;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
if (!face)
|
||||
return unicode;
|
||||
|
||||
int err = FXFT_Select_Charmap(face, FXFT_ENCODING_UNICODE);
|
||||
if (err) {
|
||||
int i;
|
||||
for (i = 0; i < FXFT_Get_Face_CharmapCount(face); i++) {
|
||||
uint32_t ret = FT_CharCodeFromUnicode(
|
||||
FXFT_Get_Charmap_Encoding(FXFT_Get_Face_Charmaps(face)[i]),
|
||||
static_cast<FX_WCHAR>(charcode));
|
||||
if (ret == 0)
|
||||
continue;
|
||||
FXFT_Set_Charmap(face, FXFT_Get_Face_Charmaps(face)[i]);
|
||||
unicode = static_cast<FX_WCHAR>(ret);
|
||||
break;
|
||||
}
|
||||
if (i == FXFT_Get_Face_CharmapCount(face) && i) {
|
||||
FXFT_Set_Charmap(face, FXFT_Get_Face_Charmaps(face)[0]);
|
||||
unicode = static_cast<FX_WCHAR>(charcode);
|
||||
}
|
||||
}
|
||||
if (FXFT_Get_Face_Charmap(face)) {
|
||||
int index = GetGlyphIndex(unicode, pVertGlyph);
|
||||
return index != 0 ? index : -1;
|
||||
}
|
||||
return unicode;
|
||||
}
|
||||
|
||||
if (!m_Font.GetFace())
|
||||
return -1;
|
||||
|
||||
uint16_t cid = CIDFromCharCode(charcode);
|
||||
if (!m_pStreamAcc) {
|
||||
if (m_bType1)
|
||||
return cid;
|
||||
|
||||
if (m_pFontFile && !m_pCMap->m_pMapping)
|
||||
return cid;
|
||||
if (m_pCMap->m_Coding == CIDCODING_UNKNOWN ||
|
||||
!FXFT_Get_Face_Charmap(m_Font.GetFace())) {
|
||||
return cid;
|
||||
}
|
||||
if (FXFT_Get_Charmap_Encoding(FXFT_Get_Face_Charmap(m_Font.GetFace())) ==
|
||||
FXFT_ENCODING_UNICODE) {
|
||||
CFX_WideString unicode_str = UnicodeFromCharCode(charcode);
|
||||
if (unicode_str.IsEmpty())
|
||||
return -1;
|
||||
|
||||
charcode = unicode_str.GetAt(0);
|
||||
}
|
||||
return GetGlyphIndex(charcode, pVertGlyph);
|
||||
}
|
||||
uint32_t byte_pos = cid * 2;
|
||||
if (byte_pos + 2 > m_pStreamAcc->GetSize())
|
||||
return -1;
|
||||
|
||||
const uint8_t* pdata = m_pStreamAcc->GetData() + byte_pos;
|
||||
return pdata[0] * 256 + pdata[1];
|
||||
}
|
||||
|
||||
uint32_t CPDF_CIDFont::GetNextChar(const FX_CHAR* pString,
|
||||
int nStrLen,
|
||||
int& offset) const {
|
||||
return m_pCMap->GetNextChar(pString, nStrLen, offset);
|
||||
}
|
||||
|
||||
int CPDF_CIDFont::GetCharSize(uint32_t charcode) const {
|
||||
return m_pCMap->GetCharSize(charcode);
|
||||
}
|
||||
|
||||
int CPDF_CIDFont::CountChar(const FX_CHAR* pString, int size) const {
|
||||
return m_pCMap->CountChar(pString, size);
|
||||
}
|
||||
|
||||
int CPDF_CIDFont::AppendChar(FX_CHAR* str, uint32_t charcode) const {
|
||||
return m_pCMap->AppendChar(str, charcode);
|
||||
}
|
||||
|
||||
bool CPDF_CIDFont::IsUnicodeCompatible() const {
|
||||
if (m_pCID2UnicodeMap && m_pCID2UnicodeMap->IsLoaded() && m_pCMap->IsLoaded())
|
||||
return true;
|
||||
return m_pCMap->m_Coding != CIDCODING_UNKNOWN;
|
||||
}
|
||||
|
||||
void CPDF_CIDFont::LoadSubstFont() {
|
||||
pdfium::base::CheckedNumeric<int> safeStemV(m_StemV);
|
||||
safeStemV *= 5;
|
||||
m_Font.LoadSubst(m_BaseFont, !m_bType1, m_Flags,
|
||||
safeStemV.ValueOrDefault(FXFONT_FW_NORMAL), m_ItalicAngle,
|
||||
g_CharsetCPs[m_Charset], IsVertWriting());
|
||||
}
|
||||
|
||||
void CPDF_CIDFont::LoadMetricsArray(CPDF_Array* pArray,
|
||||
std::vector<uint32_t>* result,
|
||||
int nElements) {
|
||||
int width_status = 0;
|
||||
int iCurElement = 0;
|
||||
int first_code = 0;
|
||||
int last_code = 0;
|
||||
for (size_t i = 0; i < pArray->GetCount(); i++) {
|
||||
CPDF_Object* pObj = pArray->GetDirectObjectAt(i);
|
||||
if (!pObj)
|
||||
continue;
|
||||
|
||||
if (CPDF_Array* pObjArray = pObj->AsArray()) {
|
||||
if (width_status != 1)
|
||||
return;
|
||||
|
||||
for (size_t j = 0; j < pObjArray->GetCount(); j += nElements) {
|
||||
result->push_back(first_code);
|
||||
result->push_back(first_code);
|
||||
for (int k = 0; k < nElements; k++)
|
||||
result->push_back(pObjArray->GetIntegerAt(j + k));
|
||||
first_code++;
|
||||
}
|
||||
width_status = 0;
|
||||
} else {
|
||||
if (width_status == 0) {
|
||||
first_code = pObj->GetInteger();
|
||||
width_status = 1;
|
||||
} else if (width_status == 1) {
|
||||
last_code = pObj->GetInteger();
|
||||
width_status = 2;
|
||||
iCurElement = 0;
|
||||
} else {
|
||||
if (!iCurElement) {
|
||||
result->push_back(first_code);
|
||||
result->push_back(last_code);
|
||||
}
|
||||
result->push_back(pObj->GetInteger());
|
||||
iCurElement++;
|
||||
if (iCurElement == nElements)
|
||||
width_status = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// static
|
||||
FX_FLOAT CPDF_CIDFont::CIDTransformToFloat(uint8_t ch) {
|
||||
return (ch < 128 ? ch : ch - 255) * (1.0f / 127);
|
||||
}
|
||||
|
||||
void CPDF_CIDFont::LoadGB2312() {
|
||||
m_BaseFont = m_pFontDict->GetStringFor("BaseFont");
|
||||
CPDF_Dictionary* pFontDesc = m_pFontDict->GetDictFor("FontDescriptor");
|
||||
if (pFontDesc)
|
||||
LoadFontDescriptor(pFontDesc);
|
||||
|
||||
m_Charset = CIDSET_GB1;
|
||||
m_bType1 = false;
|
||||
CPDF_CMapManager& manager = GetFontGlobals()->m_CMapManager;
|
||||
m_pCMap = manager.GetPredefinedCMap("GBK-EUC-H", false);
|
||||
m_pCID2UnicodeMap = manager.GetCID2UnicodeMap(m_Charset, false);
|
||||
if (!IsEmbedded())
|
||||
LoadSubstFont();
|
||||
|
||||
CheckFontMetrics();
|
||||
m_DefaultWidth = 1000;
|
||||
m_bAnsiWidthsFixed = true;
|
||||
}
|
||||
|
||||
const uint8_t* CPDF_CIDFont::GetCIDTransform(uint16_t CID) const {
|
||||
if (m_Charset != CIDSET_JAPAN1 || m_pFontFile)
|
||||
return nullptr;
|
||||
|
||||
const auto* pEnd = g_Japan1_VertCIDs + FX_ArraySize(g_Japan1_VertCIDs);
|
||||
const auto* pTransform = std::lower_bound(
|
||||
g_Japan1_VertCIDs, pEnd, CID,
|
||||
[](const CIDTransform& entry, uint16_t cid) { return entry.cid < cid; });
|
||||
return (pTransform < pEnd && CID == pTransform->cid) ? &pTransform->a
|
||||
: nullptr;
|
||||
}
|
92
modules/pdfium/pdfium/core/fpdfapi/font/cpdf_cidfont.h
Normal file
92
modules/pdfium/pdfium/core/fpdfapi/font/cpdf_cidfont.h
Normal file
@ -0,0 +1,92 @@
|
||||
// Copyright 2016 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#ifndef CORE_FPDFAPI_FONT_CPDF_CIDFONT_H_
|
||||
#define CORE_FPDFAPI_FONT_CPDF_CIDFONT_H_
|
||||
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
|
||||
#include "core/fpdfapi/font/cpdf_font.h"
|
||||
#include "core/fxcrt/cfx_maybe_owned.h"
|
||||
#include "core/fxcrt/fx_string.h"
|
||||
#include "core/fxcrt/fx_system.h"
|
||||
|
||||
enum CIDSet {
|
||||
CIDSET_UNKNOWN,
|
||||
CIDSET_GB1,
|
||||
CIDSET_CNS1,
|
||||
CIDSET_JAPAN1,
|
||||
CIDSET_KOREA1,
|
||||
CIDSET_UNICODE,
|
||||
CIDSET_NUM_SETS
|
||||
};
|
||||
|
||||
class CFX_CTTGSUBTable;
|
||||
class CPDF_Array;
|
||||
class CPDF_CID2UnicodeMap;
|
||||
class CPDF_CMap;
|
||||
class CPDF_StreamAcc;
|
||||
|
||||
class CPDF_CIDFont : public CPDF_Font {
|
||||
public:
|
||||
CPDF_CIDFont();
|
||||
~CPDF_CIDFont() override;
|
||||
|
||||
static FX_FLOAT CIDTransformToFloat(uint8_t ch);
|
||||
|
||||
// CPDF_Font:
|
||||
bool IsCIDFont() const override;
|
||||
const CPDF_CIDFont* AsCIDFont() const override;
|
||||
CPDF_CIDFont* AsCIDFont() override;
|
||||
int GlyphFromCharCode(uint32_t charcode, bool* pVertGlyph) override;
|
||||
int GetCharWidthF(uint32_t charcode) override;
|
||||
FX_RECT GetCharBBox(uint32_t charcode) override;
|
||||
uint32_t GetNextChar(const FX_CHAR* pString,
|
||||
int nStrLen,
|
||||
int& offset) const override;
|
||||
int CountChar(const FX_CHAR* pString, int size) const override;
|
||||
int AppendChar(FX_CHAR* str, uint32_t charcode) const override;
|
||||
bool IsVertWriting() const override;
|
||||
bool IsUnicodeCompatible() const override;
|
||||
bool Load() override;
|
||||
CFX_WideString UnicodeFromCharCode(uint32_t charcode) const override;
|
||||
uint32_t CharCodeFromUnicode(FX_WCHAR Unicode) const override;
|
||||
|
||||
uint16_t CIDFromCharCode(uint32_t charcode) const;
|
||||
const uint8_t* GetCIDTransform(uint16_t CID) const;
|
||||
short GetVertWidth(uint16_t CID) const;
|
||||
void GetVertOrigin(uint16_t CID, short& vx, short& vy) const;
|
||||
int GetCharSize(uint32_t charcode) const;
|
||||
|
||||
protected:
|
||||
void LoadGB2312();
|
||||
int GetGlyphIndex(uint32_t unicodeb, bool* pVertGlyph);
|
||||
int GetVerticalGlyph(int index, bool* pVertGlyph);
|
||||
void LoadMetricsArray(CPDF_Array* pArray,
|
||||
std::vector<uint32_t>* result,
|
||||
int nElements);
|
||||
void LoadSubstFont();
|
||||
FX_WCHAR GetUnicodeFromCharCode(uint32_t charcode) const;
|
||||
|
||||
CFX_MaybeOwned<CPDF_CMap> m_pCMap;
|
||||
CPDF_CID2UnicodeMap* m_pCID2UnicodeMap;
|
||||
CIDSet m_Charset;
|
||||
bool m_bType1;
|
||||
bool m_bCIDIsGID;
|
||||
uint16_t m_DefaultWidth;
|
||||
std::unique_ptr<CPDF_StreamAcc> m_pStreamAcc;
|
||||
bool m_bAnsiWidthsFixed;
|
||||
FX_RECT m_CharBBox[256];
|
||||
std::vector<uint32_t> m_WidthList;
|
||||
short m_DefaultVY;
|
||||
short m_DefaultW1;
|
||||
std::vector<uint32_t> m_VertMetrics;
|
||||
bool m_bAdobeCourierStd;
|
||||
std::unique_ptr<CFX_CTTGSUBTable> m_pTTGSUBTable;
|
||||
};
|
||||
|
||||
#endif // CORE_FPDFAPI_FONT_CPDF_CIDFONT_H_
|
470
modules/pdfium/pdfium/core/fpdfapi/font/cpdf_font.cpp
Normal file
470
modules/pdfium/pdfium/core/fpdfapi/font/cpdf_font.cpp
Normal file
@ -0,0 +1,470 @@
|
||||
// Copyright 2016 PDFium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||||
|
||||
#include "core/fpdfapi/font/cpdf_font.h"
|
||||
|
||||
#include <memory>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
#include "core/fpdfapi/cpdf_modulemgr.h"
|
||||
#include "core/fpdfapi/font/cpdf_fontencoding.h"
|
||||
#include "core/fpdfapi/font/cpdf_truetypefont.h"
|
||||
#include "core/fpdfapi/font/cpdf_type1font.h"
|
||||
#include "core/fpdfapi/font/cpdf_type3font.h"
|
||||
#include "core/fpdfapi/font/font_int.h"
|
||||
#include "core/fpdfapi/page/cpdf_docpagedata.h"
|
||||
#include "core/fpdfapi/page/cpdf_pagemodule.h"
|
||||
#include "core/fpdfapi/parser/cpdf_array.h"
|
||||
#include "core/fpdfapi/parser/cpdf_dictionary.h"
|
||||
#include "core/fpdfapi/parser/cpdf_document.h"
|
||||
#include "core/fpdfapi/parser/cpdf_name.h"
|
||||
#include "core/fpdfapi/parser/cpdf_stream_acc.h"
|
||||
#include "core/fxcrt/fx_memory.h"
|
||||
#include "core/fxge/fx_freetype.h"
|
||||
#include "third_party/base/ptr_util.h"
|
||||
#include "third_party/base/stl_util.h"
|
||||
|
||||
namespace {
|
||||
|
||||
const uint8_t kChineseFontNames[][5] = {{0xCB, 0xCE, 0xCC, 0xE5, 0x00},
|
||||
{0xBF, 0xAC, 0xCC, 0xE5, 0x00},
|
||||
{0xBA, 0xDA, 0xCC, 0xE5, 0x00},
|
||||
{0xB7, 0xC2, 0xCB, 0xCE, 0x00},
|
||||
{0xD0, 0xC2, 0xCB, 0xCE, 0x00}};
|
||||
|
||||
void GetPredefinedEncoding(const CFX_ByteString& value, int* basemap) {
|
||||
if (value == "WinAnsiEncoding")
|
||||
*basemap = PDFFONT_ENCODING_WINANSI;
|
||||
else if (value == "MacRomanEncoding")
|
||||
*basemap = PDFFONT_ENCODING_MACROMAN;
|
||||
else if (value == "MacExpertEncoding")
|
||||
*basemap = PDFFONT_ENCODING_MACEXPERT;
|
||||
else if (value == "PDFDocEncoding")
|
||||
*basemap = PDFFONT_ENCODING_PDFDOC;
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
CPDF_Font::CPDF_Font()
|
||||
: m_pFontFile(nullptr),
|
||||
m_pFontDict(nullptr),
|
||||
m_bToUnicodeLoaded(false),
|
||||
m_Flags(0),
|
||||
m_StemV(0),
|
||||
m_Ascent(0),
|
||||
m_Descent(0),
|
||||
m_ItalicAngle(0) {}
|
||||
|
||||
CPDF_Font::~CPDF_Font() {
|
||||
if (m_pFontFile) {
|
||||
m_pDocument->GetPageData()->ReleaseFontFileStreamAcc(
|
||||
m_pFontFile->GetStream()->AsStream());
|
||||
}
|
||||
}
|
||||
|
||||
bool CPDF_Font::IsType1Font() const {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool CPDF_Font::IsTrueTypeFont() const {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool CPDF_Font::IsType3Font() const {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool CPDF_Font::IsCIDFont() const {
|
||||
return false;
|
||||
}
|
||||
|
||||
const CPDF_Type1Font* CPDF_Font::AsType1Font() const {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
CPDF_Type1Font* CPDF_Font::AsType1Font() {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
const CPDF_TrueTypeFont* CPDF_Font::AsTrueTypeFont() const {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
CPDF_TrueTypeFont* CPDF_Font::AsTrueTypeFont() {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
const CPDF_Type3Font* CPDF_Font::AsType3Font() const {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
CPDF_Type3Font* CPDF_Font::AsType3Font() {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
const CPDF_CIDFont* CPDF_Font::AsCIDFont() const {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
CPDF_CIDFont* CPDF_Font::AsCIDFont() {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
bool CPDF_Font::IsUnicodeCompatible() const {
|
||||
return false;
|
||||
}
|
||||
|
||||
int CPDF_Font::CountChar(const FX_CHAR* pString, int size) const {
|
||||
return size;
|
||||
}
|
||||
|
||||
int CPDF_Font::GlyphFromCharCodeExt(uint32_t charcode) {
|
||||
return GlyphFromCharCode(charcode, nullptr);
|
||||
}
|
||||
|
||||
bool CPDF_Font::IsVertWriting() const {
|
||||
const CPDF_CIDFont* pCIDFont = AsCIDFont();
|
||||
return pCIDFont ? pCIDFont->IsVertWriting() : m_Font.IsVertical();
|
||||
}
|
||||
|
||||
int CPDF_Font::AppendChar(FX_CHAR* buf, uint32_t charcode) const {
|
||||
*buf = static_cast<FX_CHAR>(charcode);
|
||||
return 1;
|
||||
}
|
||||
|
||||
void CPDF_Font::AppendChar(CFX_ByteString& str, uint32_t charcode) const {
|
||||
char buf[4];
|
||||
int len = AppendChar(buf, charcode);
|
||||
if (len == 1) {
|
||||
str += buf[0];
|
||||
} else {
|
||||
str += CFX_ByteString(buf, len);
|
||||
}
|
||||
}
|
||||
|
||||
CFX_WideString CPDF_Font::UnicodeFromCharCode(uint32_t charcode) const {
|
||||
if (!m_bToUnicodeLoaded)
|
||||
LoadUnicodeMap();
|
||||
|
||||
return m_pToUnicodeMap ? m_pToUnicodeMap->Lookup(charcode) : CFX_WideString();
|
||||
}
|
||||
|
||||
uint32_t CPDF_Font::CharCodeFromUnicode(FX_WCHAR unicode) const {
|
||||
if (!m_bToUnicodeLoaded)
|
||||
LoadUnicodeMap();
|
||||
|
||||
return m_pToUnicodeMap ? m_pToUnicodeMap->ReverseLookup(unicode) : 0;
|
||||
}
|
||||
|
||||
void CPDF_Font::LoadFontDescriptor(CPDF_Dictionary* pFontDesc) {
|
||||
m_Flags = pFontDesc->GetIntegerFor("Flags", FXFONT_NONSYMBOLIC);
|
||||
int ItalicAngle = 0;
|
||||
bool bExistItalicAngle = false;
|
||||
if (pFontDesc->KeyExist("ItalicAngle")) {
|
||||
ItalicAngle = pFontDesc->GetIntegerFor("ItalicAngle");
|
||||
bExistItalicAngle = true;
|
||||
}
|
||||
if (ItalicAngle < 0) {
|
||||
m_Flags |= FXFONT_ITALIC;
|
||||
m_ItalicAngle = ItalicAngle;
|
||||
}
|
||||
bool bExistStemV = false;
|
||||
if (pFontDesc->KeyExist("StemV")) {
|
||||
m_StemV = pFontDesc->GetIntegerFor("StemV");
|
||||
bExistStemV = true;
|
||||
}
|
||||
bool bExistAscent = false;
|
||||
if (pFontDesc->KeyExist("Ascent")) {
|
||||
m_Ascent = pFontDesc->GetIntegerFor("Ascent");
|
||||
bExistAscent = true;
|
||||
}
|
||||
bool bExistDescent = false;
|
||||
if (pFontDesc->KeyExist("Descent")) {
|
||||
m_Descent = pFontDesc->GetIntegerFor("Descent");
|
||||
bExistDescent = true;
|
||||
}
|
||||
bool bExistCapHeight = false;
|
||||
if (pFontDesc->KeyExist("CapHeight"))
|
||||
bExistCapHeight = true;
|
||||
if (bExistItalicAngle && bExistAscent && bExistCapHeight && bExistDescent &&
|
||||
bExistStemV) {
|
||||
m_Flags |= FXFONT_USEEXTERNATTR;
|
||||
}
|
||||
if (m_Descent > 10)
|
||||
m_Descent = -m_Descent;
|
||||
CPDF_Array* pBBox = pFontDesc->GetArrayFor("FontBBox");
|
||||
if (pBBox) {
|
||||
m_FontBBox.left = pBBox->GetIntegerAt(0);
|
||||
m_FontBBox.bottom = pBBox->GetIntegerAt(1);
|
||||
m_FontBBox.right = pBBox->GetIntegerAt(2);
|
||||
m_FontBBox.top = pBBox->GetIntegerAt(3);
|
||||
}
|
||||
|
||||
CPDF_Stream* pFontFile = pFontDesc->GetStreamFor("FontFile");
|
||||
if (!pFontFile)
|
||||
pFontFile = pFontDesc->GetStreamFor("FontFile2");
|
||||
if (!pFontFile)
|
||||
pFontFile = pFontDesc->GetStreamFor("FontFile3");
|
||||
if (!pFontFile)
|
||||
return;
|
||||
|
||||
m_pFontFile = m_pDocument->LoadFontFile(pFontFile);
|
||||
if (!m_pFontFile)
|
||||
return;
|
||||
|
||||
const uint8_t* pFontData = m_pFontFile->GetData();
|
||||
uint32_t dwFontSize = m_pFontFile->GetSize();
|
||||
if (!m_Font.LoadEmbedded(pFontData, dwFontSize)) {
|
||||
m_pDocument->GetPageData()->ReleaseFontFileStreamAcc(
|
||||
m_pFontFile->GetStream()->AsStream());
|
||||
m_pFontFile = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
void CPDF_Font::CheckFontMetrics() {
|
||||
if (m_FontBBox.top == 0 && m_FontBBox.bottom == 0 && m_FontBBox.left == 0 &&
|
||||
m_FontBBox.right == 0) {
|
||||
FXFT_Face face = m_Font.GetFace();
|
||||
if (face) {
|
||||
m_FontBBox.left = TT2PDF(FXFT_Get_Face_xMin(face), face);
|
||||
m_FontBBox.bottom = TT2PDF(FXFT_Get_Face_yMin(face), face);
|
||||
m_FontBBox.right = TT2PDF(FXFT_Get_Face_xMax(face), face);
|
||||
m_FontBBox.top = TT2PDF(FXFT_Get_Face_yMax(face), face);
|
||||
m_Ascent = TT2PDF(FXFT_Get_Face_Ascender(face), face);
|
||||
m_Descent = TT2PDF(FXFT_Get_Face_Descender(face), face);
|
||||
} else {
|
||||
bool bFirst = true;
|
||||
for (int i = 0; i < 256; i++) {
|
||||
FX_RECT rect = GetCharBBox(i);
|
||||
if (rect.left == rect.right) {
|
||||
continue;
|
||||
}
|
||||
if (bFirst) {
|
||||
m_FontBBox = rect;
|
||||
bFirst = false;
|
||||
} else {
|
||||
if (m_FontBBox.top < rect.top) {
|
||||
m_FontBBox.top = rect.top;
|
||||
}
|
||||
if (m_FontBBox.right < rect.right) {
|
||||
m_FontBBox.right = rect.right;
|
||||
}
|
||||
if (m_FontBBox.left > rect.left) {
|
||||
m_FontBBox.left = rect.left;
|
||||
}
|
||||
if (m_FontBBox.bottom > rect.bottom) {
|
||||
m_FontBBox.bottom = rect.bottom;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (m_Ascent == 0 && m_Descent == 0) {
|
||||
FX_RECT rect = GetCharBBox('A');
|
||||
m_Ascent = rect.bottom == rect.top ? m_FontBBox.top : rect.top;
|
||||
rect = GetCharBBox('g');
|
||||
m_Descent = rect.bottom == rect.top ? m_FontBBox.bottom : rect.bottom;
|
||||
}
|
||||
}
|
||||
|
||||
void CPDF_Font::LoadUnicodeMap() const {
|
||||
m_bToUnicodeLoaded = true;
|
||||
CPDF_Stream* pStream = m_pFontDict->GetStreamFor("ToUnicode");
|
||||
if (!pStream) {
|
||||
return;
|
||||
}
|
||||
m_pToUnicodeMap = pdfium::MakeUnique<CPDF_ToUnicodeMap>();
|
||||
m_pToUnicodeMap->Load(pStream);
|
||||
}
|
||||
|
||||
int CPDF_Font::GetStringWidth(const FX_CHAR* pString, int size) {
|
||||
int offset = 0;
|
||||
int width = 0;
|
||||
while (offset < size) {
|
||||
uint32_t charcode = GetNextChar(pString, size, offset);
|
||||
width += GetCharWidthF(charcode);
|
||||
}
|
||||
return width;
|
||||
}
|
||||
|
||||
CPDF_Font* CPDF_Font::GetStockFont(CPDF_Document* pDoc,
|
||||
const CFX_ByteStringC& name) {
|
||||
CFX_ByteString fontname(name);
|
||||
int font_id = PDF_GetStandardFontName(&fontname);
|
||||
if (font_id < 0)
|
||||
return nullptr;
|
||||
|
||||
CPDF_FontGlobals* pFontGlobals =
|
||||
CPDF_ModuleMgr::Get()->GetPageModule()->GetFontGlobals();
|
||||
CPDF_Font* pFont = pFontGlobals->Find(pDoc, font_id);
|
||||
if (pFont)
|
||||
return pFont;
|
||||
|
||||
CPDF_Dictionary* pDict = new CPDF_Dictionary(pDoc->GetByteStringPool());
|
||||
pDict->SetNewFor<CPDF_Name>("Type", "Font");
|
||||
pDict->SetNewFor<CPDF_Name>("Subtype", "Type1");
|
||||
pDict->SetNewFor<CPDF_Name>("BaseFont", fontname);
|
||||
pDict->SetNewFor<CPDF_Name>("Encoding", "WinAnsiEncoding");
|
||||
return pFontGlobals->Set(pDoc, font_id, CPDF_Font::Create(nullptr, pDict));
|
||||
}
|
||||
|
||||
std::unique_ptr<CPDF_Font> CPDF_Font::Create(CPDF_Document* pDoc,
|
||||
CPDF_Dictionary* pFontDict) {
|
||||
CFX_ByteString type = pFontDict->GetStringFor("Subtype");
|
||||
std::unique_ptr<CPDF_Font> pFont;
|
||||
if (type == "TrueType") {
|
||||
CFX_ByteString tag = pFontDict->GetStringFor("BaseFont").Left(4);
|
||||
for (size_t i = 0; i < FX_ArraySize(kChineseFontNames); ++i) {
|
||||
if (tag == CFX_ByteString(kChineseFontNames[i], 4)) {
|
||||
CPDF_Dictionary* pFontDesc = pFontDict->GetDictFor("FontDescriptor");
|
||||
if (!pFontDesc || !pFontDesc->KeyExist("FontFile2"))
|
||||
pFont = pdfium::MakeUnique<CPDF_CIDFont>();
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!pFont)
|
||||
pFont = pdfium::MakeUnique<CPDF_TrueTypeFont>();
|
||||
} else if (type == "Type3") {
|
||||
pFont = pdfium::MakeUnique<CPDF_Type3Font>();
|
||||
} else if (type == "Type0") {
|
||||
pFont = pdfium::MakeUnique<CPDF_CIDFont>();
|
||||
} else {
|
||||
pFont = pdfium::MakeUnique<CPDF_Type1Font>();
|
||||
}
|
||||
pFont->m_pFontDict = pFontDict;
|
||||
pFont->m_pDocument = pDoc;
|
||||
pFont->m_BaseFont = pFontDict->GetStringFor("BaseFont");
|
||||
return pFont->Load() ? std::move(pFont) : nullptr;
|
||||
}
|
||||
|
||||
uint32_t CPDF_Font::GetNextChar(const FX_CHAR* pString,
|
||||
int nStrLen,
|
||||
int& offset) const {
|
||||
if (offset < 0 || nStrLen < 1) {
|
||||
return 0;
|
||||
}
|
||||
uint8_t ch = offset < nStrLen ? pString[offset++] : pString[nStrLen - 1];
|
||||
return static_cast<uint32_t>(ch);
|
||||
}
|
||||
|
||||
void CPDF_Font::LoadPDFEncoding(CPDF_Object* pEncoding,
|
||||
int& iBaseEncoding,
|
||||
std::vector<CFX_ByteString>* pCharNames,
|
||||
bool bEmbedded,
|
||||
bool bTrueType) {
|
||||
if (!pEncoding) {
|
||||
if (m_BaseFont == "Symbol") {
|
||||
iBaseEncoding = bTrueType ? PDFFONT_ENCODING_MS_SYMBOL
|
||||
: PDFFONT_ENCODING_ADOBE_SYMBOL;
|
||||
} else if (!bEmbedded && iBaseEncoding == PDFFONT_ENCODING_BUILTIN) {
|
||||
iBaseEncoding = PDFFONT_ENCODING_WINANSI;
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (pEncoding->IsName()) {
|
||||
if (iBaseEncoding == PDFFONT_ENCODING_ADOBE_SYMBOL ||
|
||||
iBaseEncoding == PDFFONT_ENCODING_ZAPFDINGBATS) {
|
||||
return;
|
||||
}
|
||||
if ((m_Flags & FXFONT_SYMBOLIC) && m_BaseFont == "Symbol") {
|
||||
if (!bTrueType)
|
||||
iBaseEncoding = PDFFONT_ENCODING_ADOBE_SYMBOL;
|
||||
return;
|
||||
}
|
||||
CFX_ByteString bsEncoding = pEncoding->GetString();
|
||||
if (bsEncoding.Compare("MacExpertEncoding") == 0) {
|
||||
bsEncoding = "WinAnsiEncoding";
|
||||
}
|
||||
GetPredefinedEncoding(bsEncoding, &iBaseEncoding);
|
||||
return;
|
||||
}
|
||||
|
||||
CPDF_Dictionary* pDict = pEncoding->AsDictionary();
|
||||
if (!pDict)
|
||||
return;
|
||||
|
||||
if (iBaseEncoding != PDFFONT_ENCODING_ADOBE_SYMBOL &&
|
||||
iBaseEncoding != PDFFONT_ENCODING_ZAPFDINGBATS) {
|
||||
CFX_ByteString bsEncoding = pDict->GetStringFor("BaseEncoding");
|
||||
if (bsEncoding.Compare("MacExpertEncoding") == 0 && bTrueType) {
|
||||
bsEncoding = "WinAnsiEncoding";
|
||||
}
|
||||
GetPredefinedEncoding(bsEncoding, &iBaseEncoding);
|
||||
}
|
||||
if ((!bEmbedded || bTrueType) && iBaseEncoding == PDFFONT_ENCODING_BUILTIN)
|
||||
iBaseEncoding = PDFFONT_ENCODING_STANDARD;
|
||||
|
||||
CPDF_Array* pDiffs = pDict->GetArrayFor("Differences");
|
||||
if (!pDiffs)
|
||||
return;
|
||||
|
||||
pCharNames->resize(256);
|
||||
uint32_t cur_code = 0;
|
||||
for (uint32_t i = 0; i < pDiffs->GetCount(); i++) {
|
||||
CPDF_Object* pElement = pDiffs->GetDirectObjectAt(i);
|
||||
if (!pElement)
|
||||
continue;
|
||||
|
||||
if (CPDF_Name* pName = pElement->AsName()) {
|
||||
if (cur_code < 256)
|
||||
(*pCharNames)[cur_code] = pName->GetString();
|
||||
cur_code++;
|
||||
} else {
|
||||
cur_code = pElement->GetInteger();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool CPDF_Font::IsStandardFont() const {
|
||||
if (!IsType1Font())
|
||||
return false;
|
||||
if (m_pFontFile)
|
||||
return false;
|
||||
if (AsType1Font()->GetBase14Font() < 0)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
const FX_CHAR* CPDF_Font::GetAdobeCharName(
|
||||
int iBaseEncoding,
|
||||
const std::vector<CFX_ByteString>& charnames,
|
||||
int charcode) {
|
||||
if (charcode < 0 || charcode >= 256) {
|
||||
ASSERT(false);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
if (!charnames.empty() && !charnames[charcode].IsEmpty())
|
||||
return charnames[charcode].c_str();
|
||||
|
||||
const FX_CHAR* name = nullptr;
|
||||
if (iBaseEncoding)
|
||||
name = PDF_CharNameFromPredefinedCharSet(iBaseEncoding, charcode);
|
||||
return name && name[0] ? name : nullptr;
|
||||
}
|
||||
|
||||
uint32_t CPDF_Font::FallbackFontFromCharcode(uint32_t charcode) {
|
||||
if (m_FontFallbacks.empty()) {
|
||||
m_FontFallbacks.push_back(pdfium::MakeUnique<CFX_Font>());
|
||||
m_FontFallbacks[0]->LoadSubst("Arial", IsTrueTypeFont(), m_Flags,
|
||||
m_StemV * 5, m_ItalicAngle, 0,
|
||||
IsVertWriting());
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int CPDF_Font::FallbackGlyphFromCharcode(int fallbackFont, uint32_t charcode) {
|
||||
if (fallbackFont < 0 ||
|
||||
fallbackFont >= pdfium::CollectionSize<int>(m_FontFallbacks)) {
|
||||
return -1;
|
||||
}
|
||||
int glyph =
|
||||
FXFT_Get_Char_Index(m_FontFallbacks[fallbackFont]->GetFace(), charcode);
|
||||
if (glyph == 0 || glyph == 0xffff)
|
||||
return -1;
|
||||
return glyph;
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user