// 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_FPDF_CMAPS_CNS1_CMAPS_CNS1_H_
#define CORE_FPDFAPI_FPDF_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_FPDF_CMAPS_CNS1_CMAPS_CNS1_H_
