// 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_SRC_FPDFAPI_FPDF_CMAPS_JAPAN1_CMAPS_JAPAN1_H_
#define CORE_SRC_FPDFAPI_FPDF_CMAPS_JAPAN1_CMAPS_JAPAN1_H_

#include "../../../../include/fxcrt/fx_system.h"  // For FX_WORD.

extern const FX_WORD g_FXCMAP_83pv_RKSJ_H_1[];
extern const FX_WORD g_FXCMAP_90ms_RKSJ_H_2[];
extern const FX_WORD g_FXCMAP_90ms_RKSJ_V_2[];
extern const FX_WORD g_FXCMAP_90msp_RKSJ_H_2[];
extern const FX_WORD g_FXCMAP_90msp_RKSJ_V_2[];
extern const FX_WORD g_FXCMAP_90pv_RKSJ_H_1[];
extern const FX_WORD g_FXCMAP_Add_RKSJ_H_1[];
extern const FX_WORD g_FXCMAP_Add_RKSJ_V_1[];
extern const FX_WORD g_FXCMAP_EUC_H_1[];
extern const FX_WORD g_FXCMAP_EUC_V_1[];
extern const FX_WORD g_FXCMAP_Ext_RKSJ_H_2[];
extern const FX_WORD g_FXCMAP_Ext_RKSJ_V_2[];
extern const FX_WORD g_FXCMAP_H_1[];
extern const FX_WORD g_FXCMAP_V_1[];
extern const FX_WORD g_FXCMAP_UniJIS_UCS2_H_4[];
extern const FX_WORD g_FXCMAP_UniJIS_UCS2_V_4[];
extern const FX_WORD g_FXCMAP_UniJIS_UCS2_HW_H_4[];
extern const FX_WORD g_FXCMAP_UniJIS_UCS2_HW_V_4[];
extern const FX_WORD g_FXCMAP_UniJIS_UTF16_H_0[];
extern const FX_WORD g_FXCMAP_UniJIS_UTF16_H_0_DWord[];
extern const FX_WORD g_FXCMAP_UniJIS_UTF16_V_0[];
extern const FX_WORD g_FXCMAP_Japan1CID2Unicode_4[];

#endif  // CORE_SRC_FPDFAPI_FPDF_CMAPS_JAPAN1_CMAPS_JAPAN1_H_
