// 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 "core/fpdfapi/cmaps/fpdf_cmaps.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[15444];
extern const FXCMAP_CMap g_FXCMAP_Japan1_cmaps[];
extern const size_t g_FXCMAP_Japan1_cmaps_size;

#endif  // CORE_FPDFAPI_CMAPS_JAPAN1_CMAPS_JAPAN1_H_
